# Conflicts:
#	src/pages/product/inbound/finishProductOffline/index.vue
#	src/pages/raw/handover/feeding/Location.vue
#	src/pages/raw/handover/returning/index.vue
#	src/pages/raw/ingoods/dnReceipt/ImportDN.vue
master
hou 3 years ago
commit 81e668033f

@ -6,6 +6,7 @@ module.exports = {
extends: ['plugin:vue/essential', 'eslint:recommended', '@vue/typescript/recommended', '@vue/prettier', '@vue/prettier/@typescript-eslint'],
globals: {
uni: true,
plus: true,
},
parserOptions: {
ecmaVersion: 2020,

1
.gitignore vendored

@ -15,7 +15,6 @@ yarn-error.log*
# Editor directories and files
.project
.idea
.vscode
*.suo
*.ntvs*
*.njsproj

@ -0,0 +1,85 @@
{
"i18n-ally.localesPaths": ["src/i18n", "src/i18n/lang"],
"i18n-ally.displayLanguage": "zh",
"workbench.iconTheme": "material-icon-theme",
"git.enableSmartCommit": true,
"git.autofetch": true,
"files.associations": {
"*.js": "javascriptreact",
"*.cjson": "jsonc",
"*.wxss": "css",
"*.wxs": "javascript",
"*.ejs": "plaintext"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
//
"editor.fontSize": 12,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll": false
},
"editor.formatOnSave": false,
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"window.zoomLevel": 0,
"liveServer.settings.donotShowInfoMsg": true,
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.detectIndentation": false,
"explorer.confirmDelete": false,
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
//
"fileheader.customMade": {
//
"Author": "zhou lei",
"Date": "Do not edit", //
"LastEditTime": "Do not edit", //
"LastEditors": "zhou lei", //
"Description": "",
"FilePath": "Do not edit", //
"custom_string_obkoro1": "联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.quickSuggestions": {
"strings": true
},
"emmet.includeLanguages": {
"wxml": "html",
"vue-html": "html"
},
"emmet.syntaxProfiles": {
"postcss": "css"
},
"emmet.triggerExpansionOnTab": true,
"tailwindCSS.emmetCompletions": true,
"tailwindCSS.validate": true,
"minapp-vscode.disableAutoConfig": true,
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"liveServer.settings.donotVerifyTags": true,
"diffEditor.ignoreTrimWhitespace": false,
"redhat.telemetry.enabled": true,
"gitlens.advanced.messages": {
"suppressGitMissingWarning": true
}
}

@ -87,7 +87,9 @@
"@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.0-29820201110001",
"@dcloudio/webpack-uni-mp-loader": "^2.0.0-29820201110001",
"@dcloudio/webpack-uni-pages-loader": "^2.0.0-29820201110001",
"@types/html5plus": "^1.0.2",
"@types/lodash": "^4.14.165",
"@types/uni-app": "^1.4.4",
"@typescript-eslint/eslint-plugin": "^4.9.0",
"@typescript-eslint/parser": "^4.9.0",
"@vue/cli-plugin-babel": "~4.5.0",

@ -1,30 +1,82 @@
<!--
* @Author: zhou lei
* @Date: 2021-12-14 09:59:02
* @LastEditTime: 2022-01-20 11:53:51
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/App.vue
* 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司
-->
<script lang="ts">
import Vue from "vue";
import Vue from 'vue';
import MyMixin from './utils/mixin';
// #ifdef APP-PLUS
import checkAppUpdate from "@/plugins/app-update";
import checkAppUpdate from '@/plugins/app-update';
// #endif
export default Vue.extend({
mpType: "app",
mpType: 'app',
onLaunch() {
console.log("App Launch");
console.log('App Launch');
// #ifdef APP-PLUS
checkAppUpdate();
// #endif
},
onShow() {
console.log("App Show");
console.log('App Show');
},
onHide() {
console.log("App Hide");
console.log('App Hide');
},
});
</script>
<style lang="scss">
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */
@import "~uview-ui/index.scss";
@import '~uview-ui/index.scss';
/*每个页面公共css */
page {
height: 100%;
}
.library {
width: 100%;
height: 100rpx;
display: flex;
.library-left {
width: 45%;
height: 100%;
display: flex;
view {
// width: 120rpx;
line-height: 100rpx;
}
.search {
padding-left: 30px;
}
}
.library-right {
width: 55%;
height: 100%;
display: flex;
.library-right-title {
width: 140rpx;
height: 100%;
line-height: 100rpx;
}
.input {
width: 200rpx;
height: 70rpx;
margin-top: 15rpx;
margin-left: 15rpx;
}
}
}
// .uni-input-input:disabled{
// background:red;
// }
.uni-input-input[disabled] {
//background: rgb(233 231 231 / 38%);
background: #ecefefb3;
color: rgb(158, 157, 157);
}
</style>

@ -1,7 +1,17 @@
import { Component, Vue } from "vue-property-decorator";
import { page } from "@/utils/page";
import { session } from "@/store/modules/session";
import { image } from "@/utils/image";
/*
* @Author: zhou lei
* @Date: 2021-11-08 17:12:53
* @LastEditTime: 2022-01-20 11:57:05
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/components/base/page.ts
* :910592680@qq.com 18669792120
*/
import { Component, Vue } from 'vue-property-decorator';
import { page } from '@/utils/page';
import { session } from '@/store/modules/session';
import { image } from '@/utils/image';
@Component
export class BasePage extends Vue {
/**

@ -27,6 +27,8 @@ export default {
//版本更新
updatePrompt: '更新提示',
Tip1: '检测到有新版本,是否更新?',
restart: '重启',
Tip2: '更新成功,是否重启?',
//服务器设置
ServerSetting: '服务器设置',
PleaseInputIPAddress: '请输入IP地址',

@ -25,11 +25,13 @@ export default {
Inventory_query: 'Inventory query',
success: 'Success',
error: 'Error',
successful: 'query was successful',
operation: 'operation',
successful: 'Query was successful',
operation: 'Operation',
//版本更新
updatePrompt: 'Update tips',
Tip1: 'New version detected, update?',
restart: 'Restart',
Tip2: 'Update succeeded. Are you sure to restart?',
//服务器设置
ServerSetting: 'Server Setting',
PleaseInputIPAddress: 'Please input IP address',
@ -41,7 +43,7 @@ export default {
workArea_Title: 'Work area list',
workArea_SubTitle: 'Hello, Please select your work area from the list',
workArea_SelelctOne: 'Please select one work area from the list',
workArea_Selelct: 'selelct',
workArea_Selelct: 'Selelct',
workArea_Warehouse: 'WH',
workArea_WarehouseName: 'WH name',
workArea_RegionName: 'Region name',
@ -130,7 +132,7 @@ export default {
Pi_upload: 'Upload',
Pi_tip1: 'Please input the pick Qty',
Pi_tip2: 'The pick up Qty is an greater than 0',
detailed: 'detailed',
detailed: 'Detailed',
Pi_tip3: 'Please update the pick up Qty before uploading',
Pi_tip10: 'Please update the append Qty before uploading',
Pi_tip4: 'No data available to upload',
@ -150,7 +152,7 @@ export default {
Pi_CurrentPickingQuantity: 'Current Pick up Qty',
Pi_PickedQuantity: 'Picked Qty',
Pi_QuantityHandedOver: 'Handedover Qty',
Pi_distribution: 'distribution',
Pi_distribution: 'Distribution',
Cumulative: 'Cumulative',
//汇总交接
@ -203,9 +205,9 @@ export default {
Scrap: 'FG scrap',
CollectionAndBorrowing: 'FG cost center',
Inventory: 'FG PSV',
raw_Inventory: 'raw Inventory',
raw_Inventory: 'Raw Inventory',
Transfer: 'Library Code',
generate: 'generate',
generate: 'Generate',
RowWarehouse: 'RAW WH',
SemiProductZC: 'SFG transfer',
@ -233,25 +235,25 @@ export default {
// 委外-入库
CommissionEntrant: 'Subcontracting receipt',
CommissionedSingleNumber: 'single',
CommissionedMaterielNo: 'code',
CommissionedMaterielDesc: 'describe',
CommissionedSingleNumber: 'Order No',
CommissionedMaterielNo: 'Code',
CommissionedMaterielDesc: 'Describe',
SourceLocation: 'Source location',
barcode: 'Please enter barcode',
Requisition: 'Requisition',
scrapForm: 'Please scan the scrap form first',
finishedProduct: 'Please select finished product code first',
CommissionedDemandData: 'Demand',
CommissionedCumulativeData: 'total',
CommissionedCumulativeData: 'Total',
CommissionedLocation: 'Loc',
CommissionedThisNumber: 'quantity',
CommissionedThisNumber: 'Quantity',
CommissionedNumber: 'Receipt quantity',
CommissionedEntrantDetails: 'Warehousing',
greater: 'Cannot be greater than total',
LibraryCode: 'Please change the library code',
CommissionedReceiptQuantity: 'Receipt quantity',
TargetLocation: 'Please select a different target location',
subcontract: 'subcontract',
subcontract: 'Subcontract',
// 委外-出库
CommissionGoOut: 'Subcontracting issue',
@ -271,11 +273,11 @@ export default {
endtime: 'Please select an end time',
end: 'End time',
starttime: 'Please select an start time',
start: 'start time',
start: 'Start time',
_tips5: 'Please select the same location',
_tips6: 'Please enter the order number to query first',
Out: 'Out',
enter: 'enter',
enter: 'Enter',
//移库
Warehouse_QueryCriteria: 'Query criteria',
Warehouse_TransferOrderNo: 'Transfer order No',
@ -286,7 +288,7 @@ export default {
Warehouse_OrderNo: 'Order No',
LocationScanned: 'Location scanned',
Warehouse_OriginalLocation: 'Original Loc',
code: 'code',
code: 'Inventory number',
Warehouse_TargetLocation: 'Target Loc',
Warehouse_Tip: 'Please input the transfer order No',
transfer_barcode: 'Library transfer barcode',
@ -297,14 +299,14 @@ export default {
Scrap_ScrapNo: 'Scrap',
Scrap_Tip: 'Please input scrap No',
Scrap_ScrapDetails: 'Scrap detail',
operatingTime: 'operatingTime',
operatingTime: 'OperatingTime',
finishedProductReport: 'Scrap details',
//领用借用
borrow_OrderNo: 'Order No',
borrow_Tip: 'Please input order No',
borrow_CollectionAndBorrowingDetails: 'Cost center detail',
usingDetail: 'borrowing details',
usingDetail: 'Borrowing details',
//成品主菜单
// EnterTheWarehouse: 'Enter The Warehouse',
@ -325,10 +327,10 @@ export default {
DumpListSH: 'SFG receive',
DumpListSHMX: 'SFG receive detail',
deliver: 'DN deliver goods',
Line: 'rowItem',
screen: 'screen',
Line: 'RowItem',
screen: 'Screen',
time: 'Please select the time first',
po_Deliver: 'deliver',
po_Deliver: 'Deliver',
//成品入库主菜单
product_item1: 'FG inward',
product_item2: 'Transfer vehicle offline',
@ -347,12 +349,12 @@ export default {
product_TransferCar: 'Transfer vehicle',
product_MaterialCode: 'MAT code',
product_FGCode: 'FG code',
product_add: 'add',
product_add: 'Add',
product_FGDes: 'FG desc',
product_MaterialDes: 'MAT desc',
product_Number: 'Qty',
repeatedly: 'Do not add repeatedly',
delete: 'delete',
delete: 'Delete',
product_costCenter: 'Cost center',
product_Unit: 'Unit',
product_Cancel: 'Cancel',
@ -368,12 +370,12 @@ export default {
product_Tip8: 'Success!',
product_Tip9: 'The barcode is not in the warehouse',
//半成品冰箱下线
product_unit1: 'pcs',
product_unit2: 'pair',
product_unit3: 'yard',
product_unit4: 'set',
product_unit5: 'ctn',
product_unit6: 'other',
product_unit1: 'PCS',
product_unit2: 'Pair',
product_unit3: 'Yard',
product_unit4: 'Set',
product_unit5: 'CTN',
product_unit6: 'Other',
product_unit7: 'Please input material barcode',
//成品空调/洗衣机下线
//半成品门体上线

@ -1,3 +1,12 @@
/*
* @Author: zhou lei
* @Date: 2021-11-08 12:10:26
* @LastEditTime: 2022-01-21 13:37:04
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/main.ts
* :910592680@qq.com 18669792120
*/
import Vue from 'vue';
import uView from 'uview-ui';
import i18n from '@/i18n';
@ -8,6 +17,7 @@ import { Alerts } from '@/components/alert/alert';
import filters from '@/utils/filter';
import plugins from '@/plugins';
import wybTable from '@/plugins/wyb-table/wyb-table.vue';
import MyMixins from './utils/mixin';
Vue.config.productionTip = false;
@ -19,6 +29,7 @@ Vue.use(Alerts);
Vue.use(filters);
// 引入插件组件
Vue.use(plugins);
Vue.mixin(MyMixins);
Vue.component('wyb-table', wybTable);
export default new App({

@ -24,7 +24,7 @@
}"
><u-input
v-model="form.username"
:placeholder="this.$t('message.PleaseInputUserName')"
:placeholder="$t('message.PleaseInputUserName')"
placeholder-style="color: rgba(255, 255, 255, 0.36)"
:custom-style="{
height: '88rpx',
@ -32,6 +32,7 @@
color: 'rgba(255, 255, 255, 0.67)',
}"
/></u-form-item>
<u-form-item
class="form-item"
prop="password"
@ -44,7 +45,7 @@
}"
><u-input
v-model="form.password"
:placeholder="this.$t('message.PleaseInputPassword')"
:placeholder="$t('message.PleaseInputPassword')"
type="password"
placeholder-style="color: rgba(255, 255, 255, 0.36)"
:custom-style="{
@ -77,7 +78,7 @@
</template>
<script lang="ts">
import { Component, Ref } from 'vue-property-decorator';
import { Component, Ref, Watch } from 'vue-property-decorator';
import { server } from '@/pages/login/server/model';
import Alerts from '@/components/alert/alerts.vue';
import { page } from '@/utils/page';
@ -85,7 +86,7 @@ import { session } from '@/store/modules/session';
import { BasePage } from '@/components/base/page';
import { VForm } from 'vue/types/form';
import { Lang } from '@/i18n';
import { url } from '@/utils/url';
// mixin
// import { any } from 'lodash/fp';
@Component({
@ -107,6 +108,14 @@ export default class LoginPage extends BasePage {
return server.serverAddress;
}
//
username = '';
@Watch('username')
typeNum() {
this.$nextTick(() => {
this.username = this.username.replace(/^(\d+)\.(\d\d).*$/, '$1.$2');
});
}
form = {
username: '',
password: '',
@ -143,10 +152,8 @@ export default class LoginPage extends BasePage {
async update() {
await session.QueryVersion();
if (this.Version != session.Version) {
//alert('!');
//
uni.showModal({
//title: this.$t('message.updatePrompt') as string,
content: this.$t('message.Tip1') as string,
confirmText: this.$t('message.workArea_Confirm') as string,
cancelText: this.$t('message.Cancel') as string,
@ -154,38 +161,103 @@ export default class LoginPage extends BasePage {
if (res.confirm) {
//
let downloadApkUrl = session.url;
// uni.downloadFile({
// url: downloadApkUrl,
// });
var dtask = plus.downloader.createDownload(downloadApkUrl, {}, function (d, status) {
if (status == 200) {
console.log('Download success: ' + d.filename);
uni.showToast({
icon: 'none',
title: d.filename,
});
} else {
console.log('Download failed: ' + status);
}
////////////////uni,
uni.downloadFile({
url: downloadApkUrl,
success: (downloadResult) => {
//uni.hideLoading();
if (downloadResult.statusCode == 200) {
//
plus.runtime.install(downloadResult.tempFilePath as any, { force: true }, function () {
//uni.showToast('');
plus.runtime.restart();
});
// uni.showModal({
// //content: '',
// content: this.$t('message.Tip2') as string,
// confirmText: this.$t('message.restart') as string,
// cancelText: this.$t('message.Cancel') as string,
// success: function (res) {
// if (res.confirm == true) {
// plus.runtime.install(downloadResult.tempFilePath, { force: true }, function (res) {
// //uni.showToast('');
// plus.runtime.restart();
// });
// }
// },
// });
}
},
});
dtask.start();
///////////////////// plus
// plus.downloader
// .createDownload(downloadApkUrl, {}, function (d, status) {
// uni.showModal({
// content: status,
// });
// if (status == 200) {
// uni.showModal({
// title: '',
// content: this.$t('message.Tip2') as string,
// confirmText: this.$t('message.restart') as string,
// cancelText: this.$t('message.Cancel') as string,
// success: function (res) {
// if (res.confirm == true) {
// plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), { force: true }, function (res) {
// //uni.showToast('');
// plus.runtime.restart();
// });
// }
// },
// });
// } else {
// console.log('Download failed: ' + status);
// }
// })
// .start();
// dtask.start();
/////////////////plus
} else if (res.cancel) {
//console.log('');
}
},
});
//dtask.addEventListener("statechanged", onStateChanged, false);
// await uni.downloadFile({
// url: session.url,
// success: (res) => {
// console.log('res.statusCode', res.statusCode);
// console.log('res.tempFilePath', res.tempFilePath);
// console.log("url,url,url",session.url);
// },
// });
}
}
/////////////////
//
async installApk(path) {
plus.runtime.install(
path,
{},
function () {
console.log('安装文件成功!');
plus.runtime.restart();
},
function (e) {
uni.hideLoading();
console.log(JSON.stringify(e)); //enullpath_downloads/apk/10.apk
uni.showToast({
title: '安装失败',
mask: false,
duration: 1500,
});
},
);
}
/* 安装失败 */
failed() {
uni.showToast({
icon: 'none',
mask: true,
title: '更新失败!请退出重试或向工作人员反映',
duration: 1500,
});
setTimeout(function () {
plus.runtime.quit();
}, 1500);
}
////////////////////////////
login(): void {
this.$form.validate(async (valid: boolean) => {
if (valid) {

@ -10,7 +10,7 @@
<u-form class="form" ref="form" :model="form" :error-type="['toast']" label-width="120rpx">
<u-row align="top">
<u-col :span="12">
<u-form-item :required="true" :label="this.$t('message.product_Location')" prop="dockName">
<u-form-item :required="true" :label="$t('message.product_Location')" prop="dockName">
<jPicker sureColor="#ff0000" @bindpicker="bookTypeChange" showKey="value" valKey="value" :val="form.aimWl.value" :options="model.returningTypeList" />
<!-- <u-input v-model="form.dockName" type="select" @click="returningTypeSelect = true" />-->
<!-- <u-select-->
@ -24,8 +24,8 @@
<!-- "-->
<!-- ></u-select>-->
</u-form-item>
<u-form-item :label="this.$t('message.product_barCode')">
<u-search :placeholder="this.$t('message.po_PleaseInput')" v-model="form.barCode" @search="getBarcode" :focus="firstFocus" maxlength="20" :show-action="false"></u-search>
<u-form-item :label="$t('message.product_barCode')">
<u-search :placeholder="$t('message.po_PleaseInput')" v-model="form.barCode" @search="getBarcode" :focus="firstFocus" maxlength="20" :show-action="false"></u-search>
</u-form-item>
</u-col>
<u-col :span="12">
@ -206,10 +206,7 @@ export default class finishProductOfflineDom extends BasePage {
*/
onOk() {
if (this.selectMaterielList.length == 0) {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip2') as string,
});
this.customToast(this.$t('message.product_Tip2') as string);
} else {
this.$form.validate(async (valid: boolean) => {
if (!valid) return;
@ -246,10 +243,7 @@ export default class finishProductOfflineDom extends BasePage {
}
getBarcode() {
if (this.form.aimWl.value == undefined) {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip3') as string,
});
this.customToast(this.$t('message.product_Tip3') as string);
return;
}
console.log('this.form', this.form);
@ -274,10 +268,7 @@ export default class finishProductOfflineDom extends BasePage {
this.$table.onCheckAllTap();
});
} else {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip7') as string,
});
this.customToast(this.$t('message.product_Tip7') as string);
}
}
const item = {

@ -66,10 +66,7 @@ export default class stoOutboundDom extends BasePage {
}
async BackSweep() {
if (!this.barCode) {
uni.showToast({
icon: 'none',
title: this.$t('message.barcode') as string,
});
this.customToast(this.$t('message.barcode') as string);
return;
}
let params = {
@ -82,7 +79,7 @@ export default class stoOutboundDom extends BasePage {
await this.model.BackSweep(params);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.succeeded') as string,
});
this.barCode = '';

@ -14,7 +14,7 @@
</u-form-item>
<!-- 单据总数 -->
<u-form-item :label="$t('message.product_TotalNumber')">
<u-input v-model="model.orderInInfo.stoAmount" :placeholder="$t('message.po_PleaseInput')" />
<u-input v-model="model.orderInInfo.stoAmount" :disabled="true" type="number" placeholder="" />
</u-form-item>
<!-- 行项目 -->
<u-form-item :required="true" :label="$t('message.Line')">
@ -38,7 +38,7 @@
</u-col>
<u-col :span="6">
<u-form-item :label="$t('message.product_Swept')" label-width="80rpx">
<u-input v-model="form.scanAmount" :placeholder="$t('message.po_PleaseInput')" />
<u-input v-model="form.scanAmount" :disabled="true" :placeholder="$t('message.po_PleaseInput')" type="number" />
</u-form-item>
</u-col>
</u-row>
@ -164,10 +164,7 @@ export default class stoOutboundDom extends BasePage {
//
async detailed() {
if (!this.form.orderNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as any,
});
this.customToast(this.$t('message.Commission_tips1') as any);
return;
}
await this.model.queryDetailed(this.form.orderNo);
@ -175,10 +172,7 @@ export default class stoOutboundDom extends BasePage {
}
BackSweep() {
if (!this.form.orderNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as any,
});
this.customToast(this.$t('message.Commission_tips1') as any);
return;
}
sessionStorage.setItem('SweepCode', JSON.stringify(this.form.orderNo));
@ -186,16 +180,13 @@ export default class stoOutboundDom extends BasePage {
}
async query() {
if (!this.form.orderNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as any,
});
this.customToast(this.$t('message.Commission_tips1') as any);
return;
}
await this.model.findProdInfoByDN(this.form.orderNo);
if (model.DNcode == '1') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.successful') as any,
});
this.form.productCode = this.model.materielList[0].materialCode;
@ -339,10 +330,7 @@ export default class stoOutboundDom extends BasePage {
this.$form.validate(async (valid: boolean) => {
if (!valid) return;
if (parseInt(this.form.orderAmount) <= this.form.scanAmount) {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip6') as string,
});
this.customToast(this.$t('message.product_Tip6') as string);
return;
}
//let selctlist: any = [];
@ -407,6 +395,10 @@ export default class stoOutboundDom extends BasePage {
</script>
<style lang="scss" scoped>
.uni-input-input:disabled {
-webkit-text-fill-color: currentcolor;
background-color: #1753ea;
}
.page-raw-returning {
background: #f2f2f2 linear-gradient(0deg, #f2f2f2 0%, #4a78ea 51%, #1753ea 100%) no-repeat;
background-size: 100% 600rpx;
@ -468,4 +460,18 @@ export default class stoOutboundDom extends BasePage {
// .button-bar {
// }
}
.input[disabled] {
background-color: rgb(228, 143, 143); //
color: #666;
opacity: 1; //0.3
-webkit-text-fill-color: #666; //IOS
-webkit-opacity: 1; //IOS
}
.disabled{
background-color: rgb(228, 143, 143); //
color: #666;
opacity: 1; //0.3
-webkit-text-fill-color: #666; //IOS
-webkit-opacity: 1; //IOS
}
</style>

@ -255,11 +255,11 @@ export default class stoOutboundDom extends BasePage {
onSubmit() {
this.$form.validate(async (valid: boolean) => {
if (this.form.productCode.slice(0, 9) != this.form.barCode.slice(0, 9)) {
uni.showToast({ icon: 'none', title: this.$t('message.product_Tip5') as string });
this.customToast(this.$t('message.product_Tip5') as string);
return;
}
if (parseInt(this.form.orderAmount) <= parseInt(this.form.scanAmount)) {
uni.showToast({ icon: 'none', title: this.$t('message.product_Tip6') as string });
this.customToast(this.$t('message.product_Tip6') as string);
return;
}
let list = [
@ -302,7 +302,7 @@ export default class stoOutboundDom extends BasePage {
this.form.scanAmount += 1;
this.$table.onCheckAllTap();
} else {
uni.showToast({ icon: 'none', title: this.$t('message.product_Tip7') as string });
this.customToast(this.$t('message.product_Tip7') as string);
}
}
}

@ -87,10 +87,7 @@ export default class ProductCheckReceipt extends BasePage {
//
async query() {
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
let param = {
@ -100,10 +97,7 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.queryScrapList(param);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
let num = 0;
this.model.modelList.forEach((item: any) => {
num += item.spQty;
@ -129,16 +123,10 @@ export default class ProductCheckReceipt extends BasePage {
//
async scanning() {
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
}
if (!this.form.barcode) {
uni.showToast({
icon: 'none',
title: this.$t('message.barcode') as string,
});
this.customToast(this.$t('message.barcode') as string);
}
let params = {
factoryCode: session.factoryCode,
@ -155,10 +143,7 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.getProductCode(params);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.total += 1;
this.model.modelList.forEach((item: any) => {
if (item.locCode == this.wl.value) {
@ -172,24 +157,15 @@ export default class ProductCheckReceipt extends BasePage {
//
async onSubmit() {
if (this.form.pddNo == '') {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string,
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (this.total == '') {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string,
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (!this.Some) {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip3') as string,
});
this.customToast(this.$t('message.product_Tip3') as string);
return;
}
const params = {
@ -205,7 +181,7 @@ export default class ProductCheckReceipt extends BasePage {
await this.model.onTakeoutConfirm(params);
if (this.model.status == 'S') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.success') as string,
});
this.form.pddNo = '';

@ -95,10 +95,7 @@ export default class ProductCheckReceipt extends BasePage {
//
async query() {
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
let param = {
@ -108,11 +105,8 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.queryScrapList(param);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
let num: number = 0;
this.customToast(this.$t('message.product_Tip8') as string);
let num = 0;
this.model.modelList.forEach((item: any) => {
num += parseFloat(item.spQty);
let arr: any = {};
@ -138,16 +132,10 @@ export default class ProductCheckReceipt extends BasePage {
//
async scanning() {
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.scrapForm') as string,
});
this.customToast(this.$t('message.scrapForm') as string);
}
if (!this.form.barcode) {
uni.showToast({
icon: 'none',
title: this.$t('message.barcode') as string,
});
this.customToast(this.$t('message.barcode') as string);
}
let params = {
factoryCode: session.factoryCode,
@ -164,10 +152,7 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.getProductCode(params);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.total += 1;
this.model.modelList.forEach((item: any) => {
if (item.productCode == this.wl.value) {
@ -181,24 +166,15 @@ export default class ProductCheckReceipt extends BasePage {
//
async onSubmit() {
if (this.form.pddNo == '') {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string,
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (this.total == '') {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string,
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (!this.Some) {
uni.showToast({
icon: 'none',
title: this.$t('message.selectCode') as string,
});
this.customToast(this.$t('message.selectCode') as string);
return;
}
const params = {
@ -214,7 +190,7 @@ export default class ProductCheckReceipt extends BasePage {
await this.model.onTakeoutConfirm(params);
if (this.model.status == 'S') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.success') as string,
});
this.form.pddNo = '';

@ -36,7 +36,7 @@
</u-form-item>
<!-- 成本中心 -->
<u-form-item :label="$t('message.product_costCenter')">
<u-input v-model="Some.costCenter" :disabled="true" :placeholder="$t('message.po_PleaseInput')" />
<u-input v-model="Some.costCenter" placeholder="" :disabled="true" />
</u-form-item>
<!-- 已扫 -->
<u-form-item :label="$t('message.product_Swept')">
@ -99,10 +99,7 @@ export default class ProductCheckReceipt extends BasePage {
//
async query() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
let param = {
@ -115,10 +112,7 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.queryScrapList(param);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.wl.value = this.model.choiceCodeList[0].value;
this.Some = this.model.recordsList[0];
}
@ -135,22 +129,13 @@ export default class ProductCheckReceipt extends BasePage {
//
async scanning() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.scrapForm') as string,
});
this.customToast(this.$t('message.scrapForm') as string);
}
if (!this.Some) {
uni.showToast({
icon: 'none',
title: this.$t('message.finishedProduct') as string,
});
this.customToast(this.$t('message.finishedProduct') as string);
}
if (!this.form.barcode) {
uni.showToast({
icon: 'none',
title: this.$t('message.barcode') as string,
});
this.customToast(this.$t('message.barcode') as string);
return;
}
let params = {
@ -162,10 +147,7 @@ export default class ProductCheckReceipt extends BasePage {
};
await this.model.getProductCode(params);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.Some.actualQty += 1;
}
}
@ -188,7 +170,7 @@ export default class ProductCheckReceipt extends BasePage {
await this.model.onTakeoutConfirm(orderlist);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.success') as string,
});
}
@ -200,10 +182,7 @@ export default class ProductCheckReceipt extends BasePage {
//
async bill() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
await this.model.queryDetailed(this.form.order3);

@ -31,17 +31,17 @@
<!-- 总数 -->
<u-col :span="6">
<u-form-item :label="$t('message.Warehouse_TotalNumber')" label-width="80rpx">
<u-input v-model="form.ypQty" :placeholder="$t('message.po_PleaseInput')" />
<u-input v-model="form.ypQty" :placeholder="$t('message.po_PleaseInput')" type="number" />
</u-form-item>
</u-col>
</u-row>
<!-- 成品描述 -->
<u-form-item :label="$t('message.product_FGDes')">
<u-input v-model="productDescZh" :placeholder="$t('message.po_PleaseInput')" style="overflow: hidden" />
<u-input v-model="productDescZh" placeholder="" :disabled="true" style="overflow: hidden" />
</u-form-item>
<!-- 成品编码 -->
<u-form-item :label="$t('message.product_FGCode')">
<u-input v-model="productCode" :placeholder="$t('message.po_PleaseInput')" />
<u-input v-model="productCode" placeholder="" :disabled="true" />
</u-form-item>
</u-form>
<!-- 底部Button -->
@ -121,17 +121,11 @@ export default class productCheckReceipt extends BasePage {
}
async query() {
if (this.form.pddNo == '') {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
}
await this.model.getProductCode(this.form.pddNo);
if (model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
//
const storeList = [];
storeList.push(this.model.WlListaa[0]);
@ -177,10 +171,7 @@ export default class productCheckReceipt extends BasePage {
// +1
async scanCode(e: any) {
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string, //
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
const list = {
@ -207,17 +198,11 @@ export default class productCheckReceipt extends BasePage {
this.$form.validate((valid: boolean) => {
if (!valid) return;
if (!this.form.pddNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string, //
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (!this.form.originWl.productCode) {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip6') as string, //
});
this.customToast(this.$t('message.Warehouse_Tip6') as string);
return;
}
if (this.form.originWl.ypQty == this.form.originWl.spQty) {

@ -2,7 +2,7 @@
<view class="page-product-receipt">
<view class="header" :style="{ backgroundColor: `rgba(23, 83, 234, ${scrollTop / 100})` }">
<view class="left">
<u-icon class="icon" name="arrow-left" @click="uni.navigateBack()" />
<u-icon class="icon" name="arrow-left" @click="uni.navigateBack({})" />
</view>
<view class="title">{{ $t('message.Scrap') }}</view>
<view class="right"></view>
@ -64,7 +64,7 @@
<u-button type="primary" @click="onSubmit">{{ $t('message.InventoryFinish') }}</u-button>
</u-col>
<u-col :span="4">
<u-button type="error" @click="uni.navigateBack()">{{ $t('message.po_Return') }}</u-button>
<u-button type="error" @click="uni.navigateBack({})">{{ $t('message.po_Return') }}</u-button>
</u-col>
</u-row>
</view>
@ -79,10 +79,10 @@ import { VForm, VFormRules } from 'vue/types/form';
import model from './model';
import { session } from '@/store/modules/session';
interface OptionType {
label: string;
value: string;
}
// interface OptionType {
// label: string;
// value: string;
// }
@Component({
components: {
@ -111,22 +111,13 @@ export default class productCheckReceipt extends BasePage {
//
async scanning() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.scrapForm') as string,
});
this.customToast(this.$t('message.scrapForm') as string);
}
if (!this.Some) {
uni.showToast({
icon: 'none',
title: this.$t('message.finishedProduct') as string,
});
this.customToast(this.$t('message.finishedProduct') as string);
}
if (!this.form.barcode) {
uni.showToast({
icon: 'none',
title: this.$t('message.barcode') as string,
});
this.customToast(this.$t('message.barcode') as string);
return;
}
let params = {
@ -138,10 +129,7 @@ export default class productCheckReceipt extends BasePage {
};
await this.model.getProductCode(params);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.Some.actualQty += 1;
}
}
@ -158,10 +146,7 @@ export default class productCheckReceipt extends BasePage {
//
async query() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
let param = {
@ -174,10 +159,7 @@ export default class productCheckReceipt extends BasePage {
};
await this.model.queryScrapList(param);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.customToast(this.$t('message.product_Tip8') as string);
this.model.recordsList.forEach((item: any) => {
item.fileNo = ' ';
});
@ -188,10 +170,7 @@ export default class productCheckReceipt extends BasePage {
//
async onSubmit() {
if (!this.Some.fileNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.fileNumber') as string,
});
this.customToast(this.$t('message.fileNumber') as string);
return;
}
const orderlist = [
@ -212,7 +191,7 @@ export default class productCheckReceipt extends BasePage {
await this.model.onTakeoutConfirm(orderlist);
if (this.model.code == '1') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.success') as string,
});
this.Some = {};
@ -225,10 +204,7 @@ export default class productCheckReceipt extends BasePage {
//
async bill() {
if (!this.form.order3) {
uni.showToast({
icon: 'none',
title: this.$t('message.Commission_tips1') as string,
});
this.customToast(this.$t('message.Commission_tips1') as string);
return;
}
await this.model.queryDetailed(this.form.order3);

@ -37,10 +37,7 @@ export default class RawReceiptDetail extends BasePage {
}
async generate() {
if (this.userDefined4 == '') {
uni.showToast({
icon: 'none',
title: this.$t('message._tips6') as any,
});
this.customToast(this.$t('message._tips6') as any);
return;
}
let content = {

@ -101,16 +101,13 @@ export default class productCheckReceipt extends BasePage {
//
async query() {
if (this.form.productCode == ' ' || this.form.productCode.length == 0) {
uni.showToast({
icon: 'none',
title: this.$t('message.product_unit7') as string,
});
this.customToast(this.$t('message.product_unit7') as string);
return;
}
await model.getProductCode(this.form.productCode);
if (model.code == '1') {
uni.showToast({
icon: 'none',
icon: 'success',
title: this.$t('message.successful') as string,
});
}
@ -141,31 +138,19 @@ export default class productCheckReceipt extends BasePage {
this.$form.validate(async (valid: boolean) => {
if (!valid) return;
if (this.userDefined4 == ' ' || this.userDefined4.length == 0) {
uni.showToast({
icon: 'none',
title: this.$t('message.LibraryCode') as string,
});
this.customToast(this.$t('message.LibraryCode') as string);
return;
}
if (!this.form.productCode) {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip5') as string,
});
this.customToast(this.$t('message.Warehouse_Tip5') as string);
return;
}
if (!this.form.aimWl.value) {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip3') as string,
});
this.customToast(this.$t('message.Warehouse_Tip3') as string);
return;
}
if (this.form.aimWl.value == model.orderInInfo.locCode) {
uni.showToast({
icon: 'none',
title: this.$t('message.TargetLocation') as string,
});
this.customToast(this.$t('message.TargetLocation') as string);
return;
}
const orderlist = [
@ -183,10 +168,7 @@ export default class productCheckReceipt extends BasePage {
];
await this.model.onTakeoutConfirm(orderlist);
if (model.code == '1') {
uni.showToast({
icon: 'none',
title: this.$t('message.Warehouse_Tip9') as string,
});
this.customToast(this.$t('message.Warehouse_Tip9') as string);
this.form.productCode = '';
model.empty();
setTimeout(() => {

@ -47,11 +47,11 @@
<view class="library">
<view class="library-left">
<view>{{ $t('message.CommissionedLocation') }}</view>
<jPicker sureColor="#ff0000" style="width: 230rpx" @bindpicker="LocationChoice" showKey="value" valKey="value" :val="wlCode" class="search" :options="Location" />
<jPicker sureColor="#ff0000" style="width: 230rpx" @bindpicker="LocationChoice" showKey="value" valKey="value" :val="wlCode.value" class="search" :options="Location" />
</view>
<view class="library-right">
<view class="library-right-title">{{ $t('message.CommissionedThisNumber') }}</view>
<u-input :placeholder="$t('message.po_PleaseInput')" v-model="nowAmount" :type="type" :border="border" class="input" />
<u-input :placeholder="$t('message.po_PleaseInput')" v-model="nowAmount" type="number" :border="border" class="input" />
</view>
</view>
<!-- 添加 -->

@ -237,8 +237,7 @@ export default class Aggregating extends BasePage {
async onReady() {
this.$form.setRules(this.rules);
model.clearProOrderList();
//guoshuang
// this.form.sapFactoryCode = session.factoryCode;
this.form.sapFactoryCode = session.factoryCode;
}
/**
* 确认

@ -29,7 +29,7 @@
</view>
<view class="library-right">
<view class="library-right-title">{{ $t('message.CommissionedThisNumber') }}:</view>
<u-input v-model="qty" :type="type" :border="border" :placeholder="$t('message.Summary_PleaseInputNumber')" class="input" />
<u-input v-model="qty" type="number" :border="border" :placeholder="$t('message.Summary_PleaseInputNumber')" class="input" />
</view>
</view>
<!-- 添加 -->

@ -30,7 +30,7 @@
</view>
<view class="library-right">
<view class="library-right-title">{{ $t('message.CommissionedThisNumber') }}:</view>
<u-input v-model="qty" :type="type" :border="border" :placeholder="$t('message.Summary_PleaseInputNumber')" class="input" />
<u-input v-model="qty" type="number" :border="border" :placeholder="$t('message.Summary_PleaseInputNumber')" class="input" />
</view>
</view>
<!-- 添加 -->

@ -156,8 +156,7 @@ export default class pickingDom extends BasePage {
onReady() {
this.$form.setRules(this.rules);
model.clearProOrderList();
// guoshuang
// this.form.sapFactoryCode = session.factoryCode;
this.form.sapFactoryCode = session.factoryCode;
}
/**

@ -47,14 +47,14 @@
</view>
<!-- 工厂 -->
<u-row gutter="0">
<u-col :span="7">
<u-col :span="6">
<u-form-item :label="$t('message.Pi_factory')" prop="sapFactoryCode">
<u-input :disabled="true" v-model="model.orderInInfo.sapFactoryCode" placeholder="" />
</u-form-item>
</u-col>
<u-col :span="5">
<u-form-item :required="true" :label="$t('message.Summary_Number')" prop="amount" label-width="120rpx">
<u-input v-model="form.amount" disabled placeholder=" " style="margin-left: 12px" />
<u-col :span="6">
<u-form-item :required="true" :label="$t('message.Summary_Number')" prop="amount" label-width="80rpx">
<u-input v-model="form.amount" type="number" :placeholder="$t('message.po_PleaseInput')" style="margin-left: 12px" />
</u-form-item>
</u-col>
</u-row>

@ -269,8 +269,7 @@ export default class Virtual extends BasePage {
async onReady() {
this.$form.setRules(this.rules);
model.clearProOrderList();
//guoshuang
//this.form.sapFactoryCode = session.factoryCode;
this.form.sapFactoryCode = session.factoryCode;
}
/**

@ -48,8 +48,7 @@
</view>
<view class="number-right">
<view class="number-right-title">{{ $t('message.Cumulative') }}</view>
<u-input v-model="every.receiptAmount" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" disabled />
<!-- <u-input v-model="allNum" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" disabled /> -->
<u-input v-model="every.receiptAmount" placeholder="" :type="type" :border="border" class="input" disabled />
</view>
</view>
<!-- 库位 -->
@ -60,7 +59,7 @@
</view>
<view class="library-right">
<view class="library-right-title">{{ $t('message.CommissionedThisNumber') }}</view>
<u-input v-model="receiptAmount" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" />
<u-input v-model="receiptAmount" :placeholder="$t('message.po_PleaseInput')" type="number" :border="border" class="input" />
</view>
</view>
<!-- 添加 -->
@ -553,39 +552,39 @@ export default class dnReceiptDom extends BasePage {
}
}
}
.library {
width: 100%;
height: 100rpx;
display: flex;
.library-left {
width: 50%;
height: 100%;
display: flex;
view {
width: 100rpx;
line-height: 100rpx;
}
.search {
padding-left: 20px;
}
}
.library-right {
width: 50%;
height: 100%;
display: flex;
.library-right-title {
width: 120rpx;
height: 100%;
padding-left: 4px;
line-height: 100rpx;
}
.input {
width: 200rpx;
height: 70rpx;
margin-top: 15rpx;
}
}
}
// .library {
// width: 100%;
// height: 100rpx;
// display: flex;
// .library-left {
// width: 50%;
// height: 100%;
// display: flex;
// view {
// width: 100rpx;
// line-height: 100rpx;
// }
// .search {
// padding-left: 30px;
// }
// }
// .library-right {
// width: 50%;
// height: 100%;
// display: flex;
// .library-right-title {
// width: 120rpx;
// height: 100%;
// line-height: 100rpx;
// }
// .input {
// width: 200rpx;
// height: 70rpx;
// margin-top: 15rpx;
// margin-left: 15rpx;
// }
// }
// }
.add {
width: 100%;
height: 100rpx;

@ -44,12 +44,11 @@
<view class="number">
<view class="number-left">
<view class="number-left-title">{{ $t('message.DemandQuantity') }}</view>
<u-input v-model="every.requestAmount" placeholder=" " :type="type" :border="border" class="input" disabled />
<u-input v-model="every.requestAmount" placeholder=" " :type="type" :border="border" class="input" :disabled="true" />
</view>
<view class="number-right">
<view class="number-right-title">{{ $t('message.Cumulative') }}</view>
<u-input v-model="every.receiptAmount" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" disabled />
<!-- <u-input v-model="allNum" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" disabled /> -->
<u-input v-model="every.receiptAmount" placeholder="" :type="type" :border="border" class="input" :disabled="true" style="background-color: #f4f5f5" />
</view>
</view>
<!-- 库位 -->
@ -60,7 +59,7 @@
</view>
<view class="library-right">
<view class="library-right-title">{{ $t('message.CommissionedThisNumber') }}</view>
<u-input v-model="receiptAmount" :placeholder="$t('message.po_PleaseInput')" :type="type" :border="border" class="input" />
<u-input v-model="receiptAmount" :placeholder="$t('message.po_PleaseInput')" type="number" :border="border" class="input" />
</view>
</view>
<!-- 添加 -->
@ -130,6 +129,15 @@ export default class dnReceiptDom extends BasePage {
poNo: any = null;
//
requestAmount: number = null;
//receiptAmount = (this.receiptAmount.match(/\d+(.\d{0,2})?/) || [''])[0];
async onReady() {
// this.model.DNReceivingList = [];
this.resetForm();
//this.initLocation();
}
input() {
this.receiptAmount = (this.receiptAmount.match(/\d+(.\d{0,2})?/) || [''])[0];
}
//
//
async initLocation(condition): Promise<LocationDetail[]> {
@ -553,39 +561,39 @@ export default class dnReceiptDom extends BasePage {
}
}
}
.library {
width: 100%;
height: 100rpx;
display: flex;
.library-left {
width: 50%;
height: 100%;
display: flex;
view {
width: 100rpx;
line-height: 100rpx;
}
.search {
padding-left: 20px;
}
}
.library-right {
width: 50%;
height: 100%;
display: flex;
.library-right-title {
width: 120rpx;
height: 100%;
padding-left: 4px;
line-height: 100rpx;
}
.input {
width: 200rpx;
height: 70rpx;
margin-top: 15rpx;
}
}
}
// .library {
// width: 100%;
// height: 100rpx;
// display: flex;
// .library-left {
// width: 50%;
// height: 100%;
// display: flex;
// view {
// width: 100rpx;
// line-height: 100rpx;
// }
// .search {
// padding-left: 30px;
// }
// }
// .library-right {
// width: 50%;
// height: 100%;
// display: flex;
// .library-right-title {
// width: 120rpx;
// height: 100%;
// line-height: 100rpx;
// }
// .input {
// width: 200rpx;
// height: 70rpx;
// margin-top: 15rpx;
// margin-left: 15rpx;
// }
// }
// }
.add {
width: 100%;
height: 100rpx;

@ -28,7 +28,7 @@
</u-form-item>
<!-- 数量 -->
<u-form-item :label="$t('message.Summary_Number')">
<u-input v-model="Some.qty" placeholder="" />
<u-input v-model="Some.qty" placeholder="" type="number" />
</u-form-item>
<!-- 原库位 -->
<u-form-item :label="$t('message.Warehouse_OriginalLocation')">

@ -47,6 +47,7 @@
<u-input
v-model="form.spQty"
:placeholder="$t('message.po_PleaseInput')"
type="number"
/>
</u-form-item>
</u-form>

@ -28,7 +28,7 @@
</u-form-item>
<!-- 数量 -->
<u-form-item :label="$t('message.Summary_Number')">
<u-input v-model="Some.qty" placeholder="" />
<u-input v-model="Some.qty" placeholder="" type="number" />
</u-form-item>
<!-- 原库位 -->
<u-form-item :label="$t('message.Warehouse_OriginalLocation')">

@ -35,7 +35,7 @@
</u-form-item>
<!-- 本次数量 -->
<u-form-item :label="$t('message.CommissionedThisNumber')">
<u-input v-model="NEWqty" placeholder="" />
<u-input v-model="NEWqty" placeholder="" type="number" />
</u-form-item>
</u-form>
<view class="bottom-bar">

10
src/sfc.d.ts vendored

@ -1,3 +1,13 @@
/*
* @Author: zhou lei
* @Date: 2021-11-08 12:10:26
* @LastEditTime: 2022-01-21 09:24:11
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/sfc.d.ts
* :910592680@qq.com 18669792120
*/
// 1. 确保在声明补充的类型之前导入 'vue'
declare module '*.vue' {
import Vue from 'vue';
export default Vue;

@ -0,0 +1,29 @@
/*
* @Author: zhou lei
* @Date: 2022-01-20 11:26:20
* @LastEditTime: 2022-01-20 17:48:10
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/utils/mixin.ts
* :910592680@qq.com 18669792120
*/
import Vue from 'vue';
import { Component } from 'vue-property-decorator';
@Component // 一定要用Component修饰
export default class MyMixins extends Vue {
customToast(msg: string, type = 'MODEL', title = '') {
if (type === 'toast') {
uni.showToast({
title: msg,
});
} else {
uni.showModal({
title: title,
content: msg,
confirmText: this.$t('message.workArea_Confirm') as string,
cancelText: this.$t('message.Cancel') as string,
});
}
}
}

@ -113,18 +113,41 @@ http.interceptors.response.use(
} else if (error) {
switch (error.statusCode) {
/* eslint-disable */
case 400: error.message = vm.$t('message.request_Tip1') as string; break
case 401: error.message = vm.$t('message.request_Tip2') as string; break
case 403: error.message = vm.$t('message.request_Tip3') as string; break
case 404: error.message = vm.$t('message.request_Tip4') as string + error.config.url; break
case 408: error.message = vm.$t('message.request_Tip5') as string; break
case 500: error.message = vm.$t('message.request_Tip6') as string; break
case 501: error.message = vm.$t('message.request_Tip7') as string; break
case 502: error.message = vm.$t('message.request_Tip8') as string; break
case 503: error.message = vm.$t('message.request_Tip9') as string; break
case 504: error.message = vm.$t('message.request_Tip10') as string; break
case 505: error.message = vm.$t('message.request_Tip11') as string; break
default: break
case 400:
error.message = vm.$t('message.request_Tip1') as string;
break;
case 401:
error.message = vm.$t('message.request_Tip2') as string;
break;
case 403:
error.message = vm.$t('message.request_Tip3') as string;
break;
case 404:
error.message = (vm.$t('message.request_Tip4') as string) + error.config.url;
break;
case 408:
error.message = vm.$t('message.request_Tip5') as string;
break;
case 500:
error.message = vm.$t('message.request_Tip6') as string;
break;
case 501:
error.message = vm.$t('message.request_Tip7') as string;
break;
case 502:
error.message = vm.$t('message.request_Tip8') as string;
break;
case 503:
error.message = vm.$t('message.request_Tip9') as string;
break;
case 504:
error.message = vm.$t('message.request_Tip10') as string;
break;
case 505:
error.message = vm.$t('message.request_Tip11') as string;
break;
default:
break;
/* eslint-enable */
}
}
@ -149,9 +172,16 @@ function errorLog(error: Error, hideError: boolean) {
}
// 显示提示
hideError ||
uni.showToast({
icon: 'none',
title: error.message,
// uni.showToast({
// icon: 'none',
// title: error.message,
// });
uni.showModal({
title: '',
content: error.message,
confirmText: vm.$t('message.workArea_Confirm') as string,
cancelText: vm.$t('message.Cancel') as string,
showCancel: false,
});
}

@ -19,7 +19,8 @@
"webpack-env",
"@dcloudio/types",
"miniprogram-api-typings",
"mini-types"
"mini-types",
"@types/html5plus"
],
"paths": {
"@/*": [

@ -0,0 +1,26 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
/*
* @Author: zhou lei
* @Date: 2022-01-21 09:23:56
* @LastEditTime: 2022-01-21 11:47:17
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/types/vue-prototype.d.ts
* :910592680@qq.com 18669792120
*/
import Vue from 'vue';
// 在 types/vue.d.ts 里 Vue 有构造函数类型
declare module 'vue/types/vue' {
interface Vue {
// $myProperty: string;
/**
*
* @param {string} msg
* @param {string} [type='toast']
* @param {string} [title='']
* @memberof Vue
*/
customToast(msg: string, type?: string = 'toast', title?: string = ''): void;
}
}

@ -1611,6 +1611,11 @@
dependencies:
"@types/node" "*"
"@types/html5plus@^1.0.2":
version "1.0.2"
resolved "https://registry.npmmirror.com/@types/html5plus/download/@types/html5plus-1.0.2.tgz#43e1aaca4584e7e2cf0db082389f42fbba98062c"
integrity sha1-Q+GqykWE5+LPDbCCOJ9C+7qYBiw=
"@types/http-proxy-middleware@*":
version "0.19.3"
resolved "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1605053627891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03"
@ -1737,6 +1742,13 @@
dependencies:
source-map "^0.6.1"
"@types/uni-app@^1.4.4":
version "1.4.4"
resolved "https://registry.npmmirror.com/@types/uni-app/download/@types/uni-app-1.4.4.tgz#fe73d0e7c89d5e750605e088ff6695846e019c36"
integrity sha1-/nPQ58idXnUGBeCI/2aVhG4BnDY=
dependencies:
vue "^2.6.8"
"@types/webpack-dev-server@^3.11.0":
version "3.11.1"
resolved "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz?cache=0&sync_timestamp=1605057456418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-dev-server%2Fdownload%2F%40types%2Fwebpack-dev-server-3.11.1.tgz#f8f4dac1da226d530bd15a1d5dc34b23ba766ccb"
@ -11562,6 +11574,11 @@ vue@^2.6.11:
resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1606321041576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
integrity sha1-9evU+mvShpQD4pqJau1JBEVskSM=
vue@^2.6.8:
version "2.6.14"
resolved "https://registry.npmmirror.com/vue/download/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"
integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==
vuex-class@^0.3.2:
version "0.3.2"
resolved "https://registry.npm.taobao.org/vuex-class/download/vuex-class-0.3.2.tgz#c7e96a076c1682137d4d23a8dcfdc63f220e17a8"

Loading…
Cancel
Save