From 274886d38b315edf365fe1a19db8162729fc72a6 Mon Sep 17 00:00:00 2001 From: x Date: Mon, 1 Jun 2026 09:25:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=8C=85=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/zw/jb-lower-mater.vue | 264 +++++++++++++++++++++++++++++++---- pages/zw/jb-return-mater.vue | 161 ++++++++++++++++++--- pages/zw/jb-up-mater.vue | 159 ++++++++++++++++++--- pages/zw/ll-instore.vue | 146 ++++++++++++++++++- utils/getData4.js | 21 +-- 5 files changed, 670 insertions(+), 81 deletions(-) diff --git a/pages/zw/jb-lower-mater.vue b/pages/zw/jb-lower-mater.vue index 49547b1..b87e99f 100644 --- a/pages/zw/jb-lower-mater.vue +++ b/pages/zw/jb-lower-mater.vue @@ -45,15 +45,6 @@ - - - 人工转运 - - - - - - @@ -61,30 +52,21 @@ 工单号 - 物料编码 物料名称 + 批次号 工单状态 开工人 - 创建者 - 计划重量 - 实际重量 - 计划量 - 实际量 + 重量 {{e.workorder_code}} - {{e.material_code}} {{e.material_name}} - + {{e.pcsn}} {{e.workorder_status_name}} {{e.operator}} - {{e.create_name}} {{e.plan_weight}} - {{e.real_weight}} - {{e.plan_qty}} - {{e.real_qty}} @@ -94,7 +76,55 @@ - + + + + + + + + 转运类型: + + + + 人工转运 + + + + AGV转运 + + + + + + + 库位信息: + + {{ selectStructName || '请选择' }} + + + + + + + + + + + + + + + + + {{ item.struct_name }} + + @@ -102,7 +132,7 @@ + diff --git a/pages/zw/jb-return-mater.vue b/pages/zw/jb-return-mater.vue index 0538a7b..8cf3c41 100644 --- a/pages/zw/jb-return-mater.vue +++ b/pages/zw/jb-return-mater.vue @@ -35,26 +35,21 @@ 工单号 - 物料编码 物料名称 - + 批次号 + 工单状态 开工人 - 创建者 - 计划量 - 实际量 + 重量 {{e.workorder_code}} - {{e.material_code}} {{e.material_name}} - - + {{e.pcsn}} + {{e.workorder_status_name}} {{e.operator}} - {{e.create_name}} - {{e.plan_qty}} - {{e.real_qty}} + {{e.plan_weight}} @@ -64,7 +59,30 @@ - + + + + + + + 转运类型: + + + + 人工转运 + + + + AGV转运 + + + + + + + + + @@ -92,6 +110,8 @@ pkId: '', pkObj: {}, disabled: false, + showDialog: false, // 控制弹窗显示 + selectType: '0', // 选中的类型 statusMap: { '1': '未开始', '3': '生产中', @@ -117,6 +137,22 @@ this._regionList() }, methods: { + // 关闭弹窗 + closeDialog() { + this.showDialog = false + }, + // 保存并关闭 + save() { + this._jbReturnMaterial() + this.showDialog = false + }, + handleSubmit () { + if (!this.index || !this.index2 || !this.val1 || !this.pkId) { + this.disabled = false + return + } + this.showDialog = true + }, async _regionList () { try { let res = await regionList() @@ -222,12 +258,8 @@ }, async _jbReturnMaterial () { this.disabled = true - if (!this.index || !this.index2 || !this.val1 || !this.pkId) { - this.disabled = false - return - } try { - let res = await jbReturnMaterial(this.index, this.index2, this.val1, this.pkId) + let res = await jbReturnMaterial(this.index, this.index2, this.val1, this.pkId, this.selectType) if (res.code === '200') { uni.showToast({ title: res.message, @@ -248,3 +280,98 @@ } } + diff --git a/pages/zw/jb-up-mater.vue b/pages/zw/jb-up-mater.vue index ab9e608..21ffa00 100644 --- a/pages/zw/jb-up-mater.vue +++ b/pages/zw/jb-up-mater.vue @@ -27,30 +27,21 @@ 工单号 - 物料编码 物料名称 + 批次号 工单状态 开工人 - 创建者 - 计划重量 - 实际重量 - 计划量 - 实际量 + 重量 {{e.workorder_code}} - {{e.material_code}} {{e.material_name}} - + {{e.pcsn}} {{e.workorder_status_name}} {{e.operator}} - {{e.create_name}} {{e.plan_weight}} - {{e.real_weight}} - {{e.plan_qty}} - {{e.real_qty}} @@ -60,9 +51,32 @@ - + + + + + + 转运类型: + + + + 人工转运 + + + + AGV转运 + + + + + + + + + + @@ -88,6 +102,8 @@ pkId: '', pkObj: {}, disabled: false, + showDialog: false, // 控制弹窗显示 + selectType: '0', // 选中的类型 statusMap: { '1': '未开始', '3': '生产中', @@ -113,6 +129,22 @@ this._regionList() }, methods: { + // 关闭弹窗 + closeDialog() { + this.showDialog = false + }, + // 保存并关闭 + save() { + this._callMaterial() + this.showDialog = false + }, + handleSubmit () { + if (!this.index2 || !this.pkId) { + this.disabled = false + return + } + this.showDialog = true + }, // 获取状态名称 getStatusName (status) { return this.statusMap[status] || '' @@ -204,12 +236,8 @@ }, async _callMaterial () { this.disabled = true - if (!this.index2 || !this.pkId) { - this.disabled = false - return - } try { - let res = await callMaterial(this.pkId, this.index2, this.index) + let res = await callMaterial(this.pkId, this.index2, this.index, this.selectType) if (res.code === '200') { uni.showToast({ title: res.message, @@ -255,3 +283,98 @@ } } + \ No newline at end of file diff --git a/pages/zw/ll-instore.vue b/pages/zw/ll-instore.vue index f9e7504..6d55435 100644 --- a/pages/zw/ll-instore.vue +++ b/pages/zw/ll-instore.vue @@ -80,7 +80,31 @@ - + + + + + + + + 转运类型: + + + + 人工转运 + + + + AGV转运 + + + + + + + + + @@ -112,7 +136,9 @@ pkId: '', currentData: {}, flag: false, - disabled: false + disabled: false, + showDialog: false, // 控制弹窗显示 + selectType: '0' // 选中的类型 }; }, onLoad (options) { @@ -123,6 +149,22 @@ this._getInBillList() }, methods: { + // 关闭弹窗 + closeDialog() { + this.showDialog = false + }, + // 保存并关闭 + save() { + this._zwConfirmIn() + this.showDialog = false + }, + handleSubmit () { + if (!this.checkedArr.length) { + this.disabled = false + return + } + this.showDialog = true + }, // async _getPlate () { // try { // let res = await getPlate(this.val1) @@ -182,20 +224,17 @@ async _zwConfirmIn () { this.disabled = true this.checkedArr = this.dataList.filter(el => el.checked === true) - if (!this.checkedArr.length) { - this.disabled = false - return - } try { // 去掉checked字段再上传 this.checkedArr.forEach(item => delete item.checked); - let res = await zwConfirmIn(this.checkedArr) + let res = await zwConfirmIn(this.checkedArr, this.selectType) if (res.code === '200') { uni.showToast({ title: res.message, icon: 'none' }) this.clearUp() + this._getInBillList() } else { uni.showToast({ title: res.message, @@ -217,5 +256,98 @@ // background-color: transparent; // color: #fff; } +/* 弹窗:居中 + 无遮罩 */ +.dialog { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 90%; + max-width: 600rpx; + background: #fff; + border-radius: 16rpx; + z-index: 100; + overflow: hidden; +} + +/* 转运类型行 */ +.form-line { + display: flex; + align-items: center; + padding: 40rpx; + padding-top: 50rpx; +} + +.label { + font-size: 30rpx; + width: 150rpx; + flex-shrink: 0; +} + +/* 单选组:横排 + 不换行 */ +.radio-group { + display: flex; + align-items: center; + white-space: nowrap; +} + +.radio-item { + display: flex; + align-items: center; + margin-right: 50rpx; +} + +/* 单选圆圈 */ +.circle { + width: 36rpx; + height: 36rpx; + border: 2rpx solid #ccc; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-right: 12rpx; +} + +.dot { + width: 20rpx; + height: 20rpx; + background: #007aff; + border-radius: 50%; +} + +.radio-item.active .circle { + border-color: #007aff; +} + +.text { + font-size: 30rpx; + white-space: nowrap; /* 强制不换行 */ +} + +/* 底部按钮 */ +.btn-group { + display: flex; + border-top: 1rpx solid #eee; +} + +.btn { + flex: 1; + height: 90rpx; + line-height: 90rpx; + font-size: 30rpx; + border: none; + background: #fff; +} + +.cancel { + border-right: 1rpx solid #eee; + color: #666; +} + +.save { + color: #007aff; + font-weight: 500; +} diff --git a/utils/getData4.js b/utils/getData4.js index 342c785..813274f 100644 --- a/utils/getData4.js +++ b/utils/getData4.js @@ -149,9 +149,9 @@ export const getOrderList = (pcode, flag) => request({ data: {point_code: pcode, flag: flag} }) // 开工 -export const callMaterial = (wid, pcode, area) => request({ +export const callMaterial = (wid, pcode, area, type) => request({ url:'api/pda/jb/callMaterial', - data: {workorder_id: wid, point_code: pcode, area: area} + data: {workorder_id: wid, point_code: pcode, area: area, type: type} }) // 上料完成 export const callMaterialFinish = (wid, pcode, area) => request({ @@ -166,9 +166,14 @@ export const getWeight = (pcode, wid) => request({ data: {point_code: pcode, workorder_id: wid} }) // 下料 -export const downMaterial = (wid, area, weight, pcode, tcode, lcode, type) => request({ +export const downMaterial = (wid, area, weight, pcode, tcode, lcode, type, scode, sname) => request({ url:'api/pda/jb/downMaterial', - data: {workorder_id: wid, area: area, weight: weight, point_code: pcode, tp_code: tcode, lt_code: lcode, type: type} + data: {workorder_id: wid, area: area, weight: weight, point_code: pcode, tp_code: tcode, lt_code: lcode, type: type, struct_code: scode, struct_name: sname} +}) +// 库位信息下拉框,获取库位列表 +export const structListByWorkId = (wid) => request({ + url:'api/pda/schPoint/structListByWorkId', + data: {workorder_id: wid} }) // 获取解包点位的托盘编码 export const jbGetVehicleCode = (pcode) => request({ @@ -200,9 +205,9 @@ export const jbEmptyTakeOut = (pcode) => request({ // 解包退料 // 解包退料 -export const jbReturnMaterial = (area, pcode, tpcode, wid) => request({ +export const jbReturnMaterial = (area, pcode, tpcode, wid, type) => request({ url:'api/pda/jb/jbReturnMaterial', - data: {area: area, point_code: pcode, tp_code: tpcode, workorder_id: wid} + data: {area: area, point_code: pcode, tp_code: tpcode, workorder_id: wid, type: type} }) // 人车安全 @@ -224,9 +229,9 @@ export const getAllIntoRegionMembers = (rcode) => request({ // 来料入库 // 来料入库接口 -export const zwConfirmIn = (plist) => request({ +export const zwConfirmIn = (plist, type) => request({ url:'api/pda/iosIn/zwConfirmIn', - data: {param_list: plist} + data: {param_list: plist, type: type} }) // 获取单据下拉清单 export const getFormDataList = (date) => request({