初始化仓库
This commit is contained in:
219
pages/wms/inventory/inventoryByBatchNo.vue
Normal file
219
pages/wms/inventory/inventoryByBatchNo.vue
Normal file
@@ -0,0 +1,219 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<uni-forms ref="form" :modelValue="formData" labelWidth="120px" :rules="rules">
|
||||
<uni-forms-item label="盘点作业单" name="wmsMatInvCode" required>
|
||||
<uni-easyinput v-model="formData.wmsMatInvCode" suffixIcon="scan" type="text" :focus='true'
|
||||
@iconClick="scanInvCode" @change="clearInvDeatil" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="物料批号" name="batchNo" required>
|
||||
<uni-easyinput v-model="formData.batchNo" suffixIcon="scan" type="text" @iconClick="scanBatchNo"
|
||||
@change="getInvDeatil" />
|
||||
</uni-forms-item>
|
||||
<u-divider text="盘点单信息"></u-divider>
|
||||
<uni-forms-item label="盘点单明细编码" name="wmsInvDetailDefCode">
|
||||
<uni-data-select v-model="formData.wmsInvDetailDefCode" :localdata="invJobDetailSelectList"
|
||||
@change="changeDetail" :clear="false"></uni-data-select>
|
||||
</uni-forms-item>
|
||||
<u-divider text="详细信息"></u-divider>
|
||||
<uni-forms-item label="物料编码" name="materialCode">
|
||||
<uni-easyinput v-model="formData.materialCode" type="text" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="物料名称" name="materialName">
|
||||
<uni-easyinput v-model="formData.materialName" type="text" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="仓库编码" name="whCode">
|
||||
<uni-easyinput v-model="formData.whCode" type="text" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="库区编码" name="areaCode">
|
||||
<uni-easyinput v-model="formData.areaCode" type="text" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="库位编码" name="storageLocationCode">
|
||||
<uni-easyinput v-model="formData.storageLocationCode" type="text" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="账面数量" name="theoryNumber">
|
||||
<uni-easyinput v-model="formData.theoryNumber" type="number" disabled />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="实盘数量" name="actualNumber">
|
||||
<u-number-box v-model="formData.actualNumber" inputWidth="auto" button-size="36" min="0"></u-number-box>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
<u-button type="primary" @click="submit">提交</u-button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getInvJob,
|
||||
listInvJob
|
||||
} from "@/api/wms/invJob.js";
|
||||
import {
|
||||
listInvJobDetail,
|
||||
updateInvJobDetail
|
||||
} from "@/api/wms/invJobDetail.js"
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
invJobDetailList: [],
|
||||
invJobDetailSelectList: [],
|
||||
wmsInvDetailList: null,
|
||||
invJobDetailInfo: null,
|
||||
formData: {
|
||||
// 详情单 id
|
||||
id: null,
|
||||
wmsMatInvCode: null,
|
||||
wmsInvDetailDefCode: null,
|
||||
materialCode: null,
|
||||
materialName: null,
|
||||
batchNo: null,
|
||||
whCode: null,
|
||||
areaCode: null,
|
||||
storageLocationCode: null,
|
||||
theoryNumber: null,
|
||||
actualNumber: null,
|
||||
},
|
||||
rules: {
|
||||
wmsMatInvCode: {
|
||||
rules: [{
|
||||
required: true,
|
||||
errorMessage: '请输入盘点单!'
|
||||
}]
|
||||
},
|
||||
batchNo: {
|
||||
rules: [{
|
||||
required: true,
|
||||
errorMessage: '请输入批号编码!'
|
||||
}]
|
||||
},
|
||||
actualNumber: {
|
||||
rules: [{
|
||||
required: true,
|
||||
errorMessage: '请输入实盘数量!'
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 扫描盘点作业单编码
|
||||
scanInvCode() {
|
||||
const _this = this;
|
||||
uni.scanCode({
|
||||
scanType: ['barCode', 'qrCode'],
|
||||
success: function(res) {
|
||||
_this.formData.wmsMatInvCode = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 扫描物料批号
|
||||
scanBatchNo() {
|
||||
if (!this.formData.wmsMatInvCode) {
|
||||
this.$modal.msg("请先扫描盘点作业单编码!")
|
||||
return
|
||||
}
|
||||
const _this = this;
|
||||
uni.scanCode({
|
||||
scanType: ['barCode', 'qrCode'],
|
||||
success: function(res) {
|
||||
_this.formData.batchNo = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 获取盘点明细
|
||||
async getInvDeatil() {
|
||||
if (!this.formData.wmsMatInvCode) {
|
||||
this.$modal.msg("请先扫描盘点作业单编码!")
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '获取盘点明细...'
|
||||
});
|
||||
await listInvJobDetail({
|
||||
wmsInvJobCode: this.formData.wmsMatInvCode,
|
||||
batchNo: this.formData.batchNo
|
||||
}).then(res => {
|
||||
// 存储明细列表到本地
|
||||
this.invJobDetailList = res.rows
|
||||
// 生成 select 列表
|
||||
this.invJobDetailSelectList = []
|
||||
this.invJobDetailList.forEach(item => {
|
||||
this.invJobDetailSelectList.push({
|
||||
text: item.wmsInvJobDetailCode,
|
||||
value: item.wmsInvJobDetailCode,
|
||||
disabled: false
|
||||
})
|
||||
})
|
||||
this.formData.wmsInvDetailDefCode = this.invJobDetailList[0]?.wmsInvJobDetailCode
|
||||
// 默认渲染第一个明细单
|
||||
this.renderDetail(this.formData.wmsInvDetailDefCode)
|
||||
}).catch(() => {
|
||||
this.$modal.msg("未获取到盘点作业明细信息")
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
// 根据明细编码找到对应的物料信息
|
||||
renderDetail(code) {
|
||||
const i = this.invJobDetailList.findIndex(item => item.wmsInvJobDetailCode === code)
|
||||
|
||||
this.formData.id = this.invJobDetailList[i].id
|
||||
this.formData.materialCode = this.invJobDetailList[i].materialCode
|
||||
this.formData.materialName = this.invJobDetailList[i].materialName
|
||||
this.formData.whCode = this.invJobDetailList[i].whCode
|
||||
this.formData.areaCode = this.invJobDetailList[i].areaCode
|
||||
this.formData.shelvesCode = this.invJobDetailList[i].shelvesCode
|
||||
this.formData.storageLocationCode = this.invJobDetailList[i].storageLocationCode
|
||||
this.formData.theoryNumber = this.invJobDetailList[i].theoryNumber
|
||||
},
|
||||
// 切换明细单
|
||||
changeDetail(e) {
|
||||
this.clearInvDeatil()
|
||||
this.renderDetail(e)
|
||||
},
|
||||
// 重置表单
|
||||
clearInvDeatil() {
|
||||
Object.keys(this.formData).forEach(key => {
|
||||
if (!["wmsMatInvCode", "wmsInvDetailDefCode", "batchNo"].includes(key)) {
|
||||
this.formData[key] = null
|
||||
}
|
||||
})
|
||||
this.actualNumber = 0
|
||||
},
|
||||
submit() {
|
||||
const _this = this;
|
||||
_this.$refs.form.validate().then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '您确定盘点该物料吗?',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
uni.showLoading({
|
||||
title: '提交盘点明细单...'
|
||||
});
|
||||
updateInvJobDetail(_this.formData).then(() => {
|
||||
_this.$modal.closeLoading();
|
||||
_this.$modal.msgSuccess("盘点成功!");
|
||||
setTimeout(() => {
|
||||
_this.$tab.switchTab("/pages/work/index");
|
||||
}, 500);
|
||||
});
|
||||
} else if (res.cancel) {
|
||||
console.log('用户点击取消');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.container {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.uni-forms-item {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user