From 39f1cd99f27c50d90a151bc88a26042222c1a6e8 Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Wed, 10 Sep 2025 13:17:57 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/enterExit.js | 16 ++-- pages/enterAndExit/enter/add.vue | 96 +++++++++++++++++---- pages/enterAndExit/enter/index.vue | 4 +- pages/enterAndExit/enter/recordDetail.vue | 2 +- pages/enterAndExit/enter/selectDocument.vue | 13 +-- pages/enterAndExit/enter/selectGoods.vue | 20 +++-- pages/enterAndExit/exit/add.vue | 26 +++--- pages/enterAndExit/exit/index.vue | 4 +- pages/enterAndExit/exit/selectDocument.vue | 13 +-- pages/enterAndExit/exit/selectGoods.vue | 15 ++-- pages/enterAndExit/goods/index.vue | 5 +- 11 files changed, 145 insertions(+), 69 deletions(-) diff --git a/api/enterExit.js b/api/enterExit.js index 123a74e..ed4df3c 100644 --- a/api/enterExit.js +++ b/api/enterExit.js @@ -5,9 +5,9 @@ import request from '@/utils/request'; */ export function getInventoryOfGoodsApi(data) { return request({ - url: '/smart-canteen/api/v1/drpinventory/list?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize, - method: 'post', - data + url: '/smart-canteen/api/v1/drpinventory/list', + method: 'get', + params:data }) } /** @@ -44,9 +44,9 @@ export function getGoodsApi(data,param) { */ export function getInBoundGoodsApi(data) { return request({ - url: '/smart-canteen/api/v1/drpinventory/list?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize, - method: 'POST', - data + url: '/smart-canteen/api/v1/drpinventory/list', + method: 'get', + params:data }) } @@ -101,9 +101,9 @@ export function getWarehouseApi(areaId) { * @data 获取人员 * @returns {Promise | Promise} */ -export function getPersonApi(roleId) { +export function getPersonApi() { return request({ - url: '/system/user/list?pageNum=1&pageSize=1000&roleIds=' + roleId, + url: '/system/user/list?pageNum=1&pageSize=1000&roleIds=' + 130, method: 'get', }) } diff --git a/pages/enterAndExit/enter/add.vue b/pages/enterAndExit/enter/add.vue index 2dce21c..02c3134 100644 --- a/pages/enterAndExit/enter/add.vue +++ b/pages/enterAndExit/enter/add.vue @@ -218,7 +218,7 @@ export default { intoType: { options: [ { name: '采购入库', text: '采购入库', value: '1' }, { name: '退料入库', text: '退料入库', value: '2' }, - { name: '调拨入库', text: '调拨入库', value: '3' + { name: '即入即出', text: '即入即出', value: '3' }], title: '请选择入库了类型' } }, @@ -255,8 +255,16 @@ export default { isUploading: false, } }, - onLoad(options) { - if (options.selectList) { + onLoad() { + this.getGoodData() + this.getAreaControlList() + this.getWarehouseControlList() + this.getPersonEnterControlList() + this.getSupplierControlList() + }, + methods: { + getGoodData(options){ + if (!options || !options.selectList) return this.imsIntoInventoryDetailVOList = JSON.parse(decodeURIComponent(options.selectList)) console.log('选中的货品列表:', this.imsIntoInventoryDetailVOList) this.imsIntoInventoryDetailVOList.forEach(item => { @@ -266,13 +274,7 @@ export default { console.log('form------',this.form) this.areaControlName = this.getDisplayName('areaId', this.form.areaId) this.calculateTotal() - } - this.getAreaControlList() - this.getWarehouseControlList() - this.getPersonEnterControlList() - this.getSupplierControlList() - }, - methods: { + }, async getAreaControlList() { const res = await getAreaApi() this.selectors.areaId.options = res.data[0].children.map(item => ({ @@ -397,17 +399,38 @@ export default { }, selectGoods() { if (!this.form.areaId) { - uni.showToast({ - title: '请先选择所属区域', - icon: 'none' - }) - return + uni.showToast({ + title: '请先选择所属区域', + icon: 'none' + }) + return + } + if (!this.form.warehouseId) { + uni.showToast({ + title: '请先选择所属仓库', + icon: 'none' + }) + return } uni.navigateTo({ url: '/pages/enterAndExit/enter/selectGoods?form=' + JSON.stringify(this.form) + '&selectList=' + encodeURIComponent(JSON.stringify(this.imsIntoInventoryDetailVOList)) }) }, selectDocument() { + if (!this.form.areaId) { + uni.showToast({ + title: '请先选择所属区域', + icon: 'none' + }) + return + } + if (!this.form.warehouseId) { + uni.showToast({ + title: '请先选择所属仓库', + icon: 'none' + }) + return + } uni.navigateTo({ url: '/pages/enterAndExit/enter/selectDocument?form=' + JSON.stringify(this.form) }) @@ -472,6 +495,24 @@ export default { tf = true return } + if (this.checkIsExist(item.unitPrice)) { + this.isUploading = false + uni.showToast({ + title: '请输入货品:【' + item.materialName + '】的单价', + icon: 'none' + }) + tf = true + return + } + if (item.unitPrice < 0) { + this.isUploading = false + uni.showToast({ + title: '货品:【' + item.materialName + '】的单价必须大于等于0', + icon: 'none' + }) + tf = true + return + } if (this.checkIsExist(item.purNum)) { this.isUploading = false uni.showToast({ @@ -481,6 +522,15 @@ export default { tf = true return } + if (item.purNum <= 0) { + this.isUploading = false + uni.showToast({ + title: '货品:【' + item.materialName + '】的数量必须大于0', + icon: 'none' + }) + tf = true + return + } if (item.orderNum && item.orderNum > 0 && item.purNum > item.orderNum) { this.isUploading = false uni.showToast({ @@ -539,10 +589,16 @@ export default { console.log(res) if (res.code == 200) { // this.$modal.msgError("收藏成功") - uni.$u.toast('入库成功') - setTimeout(() => { - this.$tab.reLaunch('/pages/enterAndExit/enter/index') - }, 1000) + if(res.msg == '操作成功'){ + uni.$u.toast('入库成功') + setTimeout(() => { + this.$tab.reLaunch('/pages/enterAndExit/enter/index') + }, 1000) + }else{ + uni.$u.toast(res.msg) + this.isUploading = false + } + }else { this.isUploading = false uni.$u.toast('入库失败,请稍后再试') @@ -590,10 +646,12 @@ export default { this.showExpireCalendar = false }, openProductCalendar(item) { + this.hideKeyboard() this.showProductCalendar = true this.selectedItem = item // 保存当前选中的商品 }, openExpireCalendar(item) { + this.hideKeyboard() this.showExpireCalendar = true this.selectedItem = item // 保存当前选中的商品 }, diff --git a/pages/enterAndExit/enter/index.vue b/pages/enterAndExit/enter/index.vue index f068535..2f82b2f 100644 --- a/pages/enterAndExit/enter/index.vue +++ b/pages/enterAndExit/enter/index.vue @@ -2,7 +2,7 @@ - @@ -119,7 +119,7 @@ export default { let params = { pageNum: this.pageNum, pageSize: this.pageSize, - searchValue: this.searchValue + intoCode: this.searchValue } try { const res = await getWarehouseEntryRecordApi(params) diff --git a/pages/enterAndExit/enter/recordDetail.vue b/pages/enterAndExit/enter/recordDetail.vue index 617e17a..c0628d0 100644 --- a/pages/enterAndExit/enter/recordDetail.vue +++ b/pages/enterAndExit/enter/recordDetail.vue @@ -82,7 +82,7 @@ 单价(元): - {{ item.unitPrice / 100 }} + {{ item.unitPrice }} 供应商: diff --git a/pages/enterAndExit/enter/selectDocument.vue b/pages/enterAndExit/enter/selectDocument.vue index 35be0c8..72bd261 100644 --- a/pages/enterAndExit/enter/selectDocument.vue +++ b/pages/enterAndExit/enter/selectDocument.vue @@ -3,7 +3,7 @@ - @@ -150,10 +150,13 @@ export default { item.supplierId = this.selectList[0].supplierId this.form.remark = this.form.remark || '' }) - url += '?selectList=' + encodeURIComponent(JSON.stringify(orderGoodsDetailList)) + '&form=' + JSON.stringify(this.form) - uni.navigateTo({ - url - }) + let pages = getCurrentPages(); + let prePage = pages[pages.length - 2]; //上一个页面 + prePage.$vm["getGoodData"]({ + selectList: encodeURIComponent(JSON.stringify(orderGoodsDetailList)), + form: JSON.stringify(this.form) + }); + uni.navigateBack(-1) } } } diff --git a/pages/enterAndExit/enter/selectGoods.vue b/pages/enterAndExit/enter/selectGoods.vue index 3645dca..9f9702e 100644 --- a/pages/enterAndExit/enter/selectGoods.vue +++ b/pages/enterAndExit/enter/selectGoods.vue @@ -18,7 +18,7 @@ 计量单位 - { item.checked = false }) @@ -157,11 +159,15 @@ export default { this.selectList.forEach(item => { item.unitPrice = item.unitPrice / 100 }) - url += '?selectList=' + encodeURIComponent(JSON.stringify(this.selectList)) + '&form=' + JSON.stringify(this.form) - uni.navigateTo({ - url - }) - } + // url += '?selectList=' + encodeURIComponent(JSON.stringify(this.selectList)) + '&form=' + JSON.stringify(this.form) + let pages = getCurrentPages(); + let prePage = pages[pages.length - 2]; //上一个页面 + prePage.$vm["getGoodData"]({ + selectList: encodeURIComponent(JSON.stringify(this.selectList)), + form: JSON.stringify(this.form) + }); + uni.navigateBack(-1) + }, } } diff --git a/pages/enterAndExit/exit/add.vue b/pages/enterAndExit/exit/add.vue index 0ca3598..8f47c47 100644 --- a/pages/enterAndExit/exit/add.vue +++ b/pages/enterAndExit/exit/add.vue @@ -163,16 +163,6 @@ name: '报损出库', text: '报损出库', value: '2' - }, - { - name: '退货出库', - text: '退货出库', - value: '3' - }, - { - name: '调拨出库', - text: '调拨出库', - value: '4' } ], title: '请选择出库类型' @@ -222,6 +212,18 @@ this.getSupplierControlList() }, methods: { + getGoodData(options){ + if (!options || !options.selectList) return + this.imsOutInventoryDetailAddList = JSON.parse(decodeURIComponent(options.selectList)) + console.log('选中的货品列表:', this.imsOutInventoryDetailAddList) + this.imsOutInventoryDetailAddList.forEach(item => { + item.checked = false // 初始化为未选中状态 + }) + this.form = options.form ? JSON.parse(decodeURIComponent(options.form)) : this.form + console.log('form------',this.form) + this.areaControlName = this.getDisplayName('areaId', this.form.areaId) + this.calculateTotal() + }, async getAreaControlList() { const res = await getAreaApi() this.selectors.areaId.options = res.data[0].children.map(item => ({ @@ -242,13 +244,13 @@ }, async getFetchUserIdControlList() { // 假设有一个获取入库人列表的API - const res = await getPersonApi(124) // 这里可以替换为实际的API + const res = await getPersonApi() // 这里可以替换为实际的API this.selectors.fetchUserId.options = res.rows.map(item => ({ name: item.userName, text: item.userName, value: item.userId })) - console.log(res, '入库人列表') + console.log('入库人列表',res) }, async getSupplierControlList() { // 假设有一个获取供应商列表的API diff --git a/pages/enterAndExit/exit/index.vue b/pages/enterAndExit/exit/index.vue index 3822562..5932764 100644 --- a/pages/enterAndExit/exit/index.vue +++ b/pages/enterAndExit/exit/index.vue @@ -2,7 +2,7 @@ - @@ -119,7 +119,7 @@ export default { let params = { pageNum: this.pageNum, pageSize: this.pageSize, - searchValue: this.searchValue + outCode: this.searchValue } try { const res = await getWarehouseOutRecordApi(params) diff --git a/pages/enterAndExit/exit/selectDocument.vue b/pages/enterAndExit/exit/selectDocument.vue index 7b5db4d..1042cd8 100644 --- a/pages/enterAndExit/exit/selectDocument.vue +++ b/pages/enterAndExit/exit/selectDocument.vue @@ -3,7 +3,7 @@ - @@ -142,10 +142,13 @@ export default { item.materialNum = item.fetchNum this.form.remark = this.form.remark || '' }) - url += '?selectList=' + encodeURIComponent(JSON.stringify(orderGoodsDetailList)) + '&form=' + JSON.stringify(this.form) - uni.navigateTo({ - url - }) + let pages = getCurrentPages(); + let prePage = pages[pages.length - 2]; //上一个页面 + prePage.$vm["getGoodData"]({ + selectList: encodeURIComponent(JSON.stringify(orderGoodsDetailList)), + form: JSON.stringify(this.form) + }); + uni.navigateBack(-1) } } } diff --git a/pages/enterAndExit/exit/selectGoods.vue b/pages/enterAndExit/exit/selectGoods.vue index c5c2fbe..aa84edf 100644 --- a/pages/enterAndExit/exit/selectGoods.vue +++ b/pages/enterAndExit/exit/selectGoods.vue @@ -18,7 +18,7 @@ 计量单位 - - + @@ -15,6 +15,7 @@ 货品编码:{{item.materialCode}} 货品类别:{{item.materialTypeName}} + 货品仓库:{{item.warehouseName }} 计量单位:{{item.unitName}} 库存数量:{{item.materialNum}} @@ -68,7 +69,7 @@ export default { let params = { pageNum: this.pageNum, pageSize: this.pageSize, - searchValue: this.searchValue, + materialName: this.searchValue, } try { const res = await getInventoryOfGoodsApi(params)