From 6b56e5f2adf27d4a05385d62a3a1e06df119f2f3 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 26 Dec 2025 13:23:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=B0=83=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E5=85=A5=E5=BA=93=20=E5=87=BA=E5=BA=93=20=E6=94=BE?= =?UTF-8?q?=E8=B4=A7=E9=87=8D=E6=96=B0=E5=88=86=E9=85=8D=E8=B4=A7=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RuoYi-App-master/App.vue | 71 +- RuoYi-App-master/api/in/ktpin.js | 2 +- RuoYi-App-master/api/in/order.js | 16 +- RuoYi-App-master/api/out/ktpout.js | 2 +- RuoYi-App-master/api/pandian/confirm.js | 9 + .../language-switcher/language-switcher.vue | 52 +- RuoYi-App-master/main.js | 18 - RuoYi-App-master/manifest.json | 2 +- RuoYi-App-master/package.json | 1 - RuoYi-App-master/pages.json | 28 +- .../pages/charts/spaceAnalysis.vue | 16 +- RuoYi-App-master/pages/in/backIn.vue | 46 +- RuoYi-App-master/pages/in/bindMsg.vue | 1191 +++++++---------- RuoYi-App-master/pages/in/bindPro.vue | 16 +- RuoYi-App-master/pages/in/inorder.vue | 54 +- RuoYi-App-master/pages/in/ktpin.vue | 151 +-- RuoYi-App-master/pages/in/menu.vue | 36 +- RuoYi-App-master/pages/in/qualityCheck.vue | 46 +- RuoYi-App-master/pages/index.vue | 84 +- RuoYi-App-master/pages/login.vue | 22 +- RuoYi-App-master/pages/mine/index.vue | 12 +- RuoYi-App-master/pages/mine/setting/index.vue | 6 +- RuoYi-App-master/pages/out/bindShell.vue | 61 +- RuoYi-App-master/pages/out/ckMakeSure.vue | 187 +-- .../pages/out/ckMakeSureByTray.vue | 28 +- RuoYi-App-master/pages/out/errorout.vue | 139 +- RuoYi-App-master/pages/out/ktpout.vue | 136 +- RuoYi-App-master/pages/out/menu.vue | 24 +- RuoYi-App-master/pages/out/move.vue | 40 +- RuoYi-App-master/pages/out/pkout.vue | 56 +- RuoYi-App-master/pages/pandian/confirm.vue | 420 ++++-- RuoYi-App-master/pages/pandian/menu.vue | 8 +- RuoYi-App-master/pages/pandian/pkconfirm.vue | 52 +- RuoYi-App-master/pages/setting.vue | 50 +- RuoYi-App-master/pages/task/taskList.vue | 48 +- RuoYi-App-master/permission.js | 136 +- .../com/ruoyi/api/domain/RequestEnter.java | 2 + .../api/domain/RequestEnterResponse.java | 2 +- .../api/service/impl/ToWcsServiceImpl.java | 13 +- .../api/service/impl/ToWmsServiceImpl.java | 14 +- .../service/impl/MydoJobServiceImpl.java | 8 +- .../src/main/resources/application-druid.yml | 2 +- .../src/main/resources/application.yml | 2 +- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 4 - .../mapper/job/MydoJobDetailMapper.xml | 2 +- ruoyi-ui/src/api/in/stockInDetail.js | 9 + ruoyi-ui/src/views/in/stockIn/index.vue | 120 +- ruoyi-ui/src/views/rf/bindTraycode.vue | 355 +++++ ruoyi-ui/src/views/rf/emptyInTrayCode.vue | 355 +++++ ruoyi-ui/src/views/rf/emptyOutTrayCode.vue | 355 +++++ ruoyi-ui/src/views/rf/outMakeSure.vue | 355 +++++ ruoyi-ui/src/views/rf/pdMakeSure.vue | 355 +++++ .../src/views/search/ViewOutJobFlow/index.vue | 10 +- 53 files changed, 3397 insertions(+), 1832 deletions(-) create mode 100644 ruoyi-ui/src/views/rf/bindTraycode.vue create mode 100644 ruoyi-ui/src/views/rf/emptyInTrayCode.vue create mode 100644 ruoyi-ui/src/views/rf/emptyOutTrayCode.vue create mode 100644 ruoyi-ui/src/views/rf/outMakeSure.vue create mode 100644 ruoyi-ui/src/views/rf/pdMakeSure.vue diff --git a/RuoYi-App-master/App.vue b/RuoYi-App-master/App.vue index 656874c..ed38100 100644 --- a/RuoYi-App-master/App.vue +++ b/RuoYi-App-master/App.vue @@ -4,16 +4,13 @@ import { getToken } from '@/utils/auth' export default { - globalData: { - config: {} - }, onLaunch: function() { this.initApp() }, - onShow: function() { - // 检查应用状态,确保从后台恢复时状态一致 - this.checkAppState() - }, + // onShow: function() { + // // 检查应用状态,确保从后台恢复时状态一致 + // this.checkAppState() + // }, methods: { // 初始化应用 initApp() { @@ -29,43 +26,39 @@ }, checkLogin() { if (!getToken()) { + console.log('checkLogin 检查登录状态,token不存在') + this.$tab.reLaunch('/pages/login') } - }, - checkAppState() { - // 检查Token状态和页面导航栈状态 - console.log('应用从后台切换到前台,检查应用状态') - - // 获取当前页面路径,判断是否在登录页 - const pages = getCurrentPages() - const currentPage = pages[pages.length - 1] - const currentPagePath = currentPage ? currentPage.route : '' - - // 如果当前页面是登录页,则不检查token - if (currentPagePath === 'pages/login') { - console.log('当前已在登录页面,不进行token检查') - return - } - - // 检查Token状态 - if (!getToken()) { - console.log('Token不存在,提示并跳转到登录页') - uni.showToast({ - icon: 'none', - title: '登录已过期,请重新登录' - }) - setTimeout(() => { - uni.reLaunch({ url: '/pages/login' }) - }, 1500) - } else { - console.log('Token存在,不做操作') - } - - } - + // checkAppState() { + // // 检查Token状态和页面导航栈状态 + // console.log('应用从后台切换到前台,检查应用状态') + // // 检查Token状态 + // if (!getToken()) { + // console.log('Token不存在,跳转到登录页') + // this.$tab.reLaunch('/pages/login') + // return + // } + // // 检查页面导航栈状态 + // const pages = getCurrentPages() + // if (pages.length === 0) { + // console.log('页面导航栈为空,跳转到首页') + // this.$tab.reLaunch('/pages/index') + // return + // } + // // 检查当前页面是否为登录页 + // const currentPage = pages[pages.length - 1].route + // if (currentPage === 'pages/login') { + // // 如果当前页面是登录页,不做任何操作 + // console.log('当前页面是登录页,不需要跳转') + // } + + + // } } } + + + .uni-select__input-box:hover { + border-color: #c0c4cc; + } +} + \ No newline at end of file diff --git a/RuoYi-App-master/pages/in/bindPro.vue b/RuoYi-App-master/pages/in/bindPro.vue index c938136..cf3ccee 100644 --- a/RuoYi-App-master/pages/in/bindPro.vue +++ b/RuoYi-App-master/pages/in/bindPro.vue @@ -168,7 +168,7 @@ }) } - // try { + try { const response = await bindTray(this.formData) console.log(response) @@ -193,13 +193,13 @@ icon: 'none' }) } - // } catch (error) { - // // console.error('绑定托盘失败:', error) - // uni.showToast({ - // title: '绑定托盘失败', - // icon: 'none' - // }) - // } + } catch (error) { + console.error('绑定托盘失败:', error) + uni.showToast({ + title: '网络错误,请稍后重试', + icon: 'none' + }) + } } } } diff --git a/RuoYi-App-master/pages/in/inorder.vue b/RuoYi-App-master/pages/in/inorder.vue index 54b69db..cab3b3b 100644 --- a/RuoYi-App-master/pages/in/inorder.vue +++ b/RuoYi-App-master/pages/in/inorder.vue @@ -3,7 +3,7 @@ - {{ $t('inbound.inorder.orderNumber') }} - {{ order.stockinId }} - - - {{ $t('inbound.inorder.createTime') }} - {{ order.createDate }} - - - {{ $t('inbound.inorder.supplier') }} - {{ order.supplierName }} - + 单据编号: + {{ order.stockinId }} + + + 创建时间: + {{ order.createDate }} + + + 供应商 + {{ order.supplierName }} + - {{ $t('inbound.inorder.goodsInfo') }} + 物品信息 - - {{ $t('inbound.inorder.productName') }} - {{ $t('inbound.inorder.planQuantity') }} - {{ $t('inbound.inorder.inboundQuantity') }} - + + 物品名称 + 计划数量 + 入库数量 + {{ goods.extraField.materialDesc }} @@ -60,8 +60,8 @@ + 入库 + @@ -70,7 +70,7 @@ - {{ $t('inbound.inorder.noOrderInfo') }} + 暂无入库单信息 @@ -118,7 +118,7 @@ export default { } catch (error) { console.error('获取入库单列表失败:', error) uni.showToast({ - title: this.$t('inbound.inorder.getOrderListFailed'), + title: '获取入库单列表失败', icon: 'none' }) } @@ -139,7 +139,7 @@ export default { } catch (error) { console.error('获取物品信息失败:', error) uni.showToast({ - title: this.$t('inbound.inorder.getItemInfoFailed'), + title: '获取物品信息失败', icon: 'none' }) } @@ -187,7 +187,7 @@ export default { if (Number(goods.inQuantity) > maxQuantity) { goods.inQuantity = maxQuantity; uni.showToast({ - title: this.$t('inbound.inorder.exceedInboundQuantity'), + title: '超出可入库数量', icon: 'none' }); } @@ -197,7 +197,7 @@ export default { async handleInStock(goods) { if (!this.isValidQuantity(goods)) { uni.showToast({ - title: this.$t('inbound.inorder.enterValidQuantity'), + title: '请输入有效的入库数量', icon: 'none' }) return @@ -210,7 +210,7 @@ export default { }) uni.showToast({ - title: this.$t('inbound.inorder.inboundSuccess'), + title: '入库成功', icon: 'success' }) @@ -219,7 +219,7 @@ export default { } catch (error) { console.error('入库操作失败:', error) uni.showToast({ - title: this.$t('inbound.inorder.inboundFailed'), + title: '入库失败', icon: 'none' }) } diff --git a/RuoYi-App-master/pages/in/ktpin.vue b/RuoYi-App-master/pages/in/ktpin.vue index 11a5251..5d23a11 100644 --- a/RuoYi-App-master/pages/in/ktpin.vue +++ b/RuoYi-App-master/pages/in/ktpin.vue @@ -1,10 +1,10 @@ @@ -86,14 +86,14 @@ export default { })) } else { uni.showToast({ - title: response.msg || this.$t('inbound.qualityCheck.getOrdersFailed'), + title: response.msg || '获取单据列表失败', icon: 'none' }) } } catch (error) { console.error('获取单据列表失败:', error) uni.showToast({ - title: this.$t('inbound.qualityCheck.getOrdersFailed'), + title: '获取单据列表失败', icon: 'none' }) } @@ -117,14 +117,14 @@ export default { this.$set(this.orderList[index], 'materials', response.rows) } else { uni.showToast({ - title: response.msg || this.$t('inbound.qualityCheck.getMaterialsFailed'), + title: response.msg || '获取物料信息失败', icon: 'none' }) } } catch (error) { console.error('获取物料信息失败:', error) uni.showToast({ - title: this.$t('inbound.qualityCheck.getMaterialsFailed'), + title: '获取物料信息失败', icon: 'none' }) } @@ -135,7 +135,7 @@ export default { const order = this.orderList[index] if (!order.materials || order.materials.length === 0) { uni.showToast({ - title: this.$t('inbound.qualityCheck.noMaterials'), + title: '暂无可质检的物料', icon: 'none' }) return @@ -150,7 +150,7 @@ export default { if (materials.length === 0) { uni.showToast({ - title: this.$t('inbound.qualityCheck.allChecked'), + title: '所有物料已完成质检', icon: 'none' }) return @@ -164,7 +164,7 @@ export default { if (response.code === 200) { uni.showToast({ - title: this.$t('inbound.qualityCheck.batchCheckSuccess'), + title: '批量质检完成', icon: 'success' }) @@ -179,14 +179,14 @@ export default { this.fetchOrderList() } else { uni.showToast({ - title: response.msg || this.$t('inbound.qualityCheck.batchCheckFailed'), + title: response.msg || '批量质检失败', icon: 'none' }) } } catch (error) { console.error('批量质检失败:', error) uni.showToast({ - title: this.$t('inbound.qualityCheck.batchCheckFailed'), + title: '批量质检失败', icon: 'none' }) } @@ -203,7 +203,7 @@ export default { }) if (response.code === 200) { uni.showToast({ - title: `${material.extraField.materialDesc} ${this.$t('inbound.qualityCheck.checkSuccess')}`, + title: `${material.extraField.materialDesc} 质检完成`, icon: 'success' }) // 重新获取当前单据的物料列表 @@ -216,7 +216,7 @@ export default { } } else { uni.showToast({ - title: response.msg || this.$t('inbound.qualityCheck.checkFailed'), + title: response.msg || '质检操作失败', icon: 'none' }) } @@ -230,7 +230,7 @@ export default { // 验证输入值 if (isNaN(newQuantity) || newQuantity < 0) { uni.showToast({ - title: this.$t('inbound.qualityCheck.invalidQuantity'), + title: '请输入有效的数量', icon: 'none' }) material.quantity = material.quantity diff --git a/RuoYi-App-master/pages/index.vue b/RuoYi-App-master/pages/index.vue index 9c2866c..2c144c6 100644 --- a/RuoYi-App-master/pages/index.vue +++ b/RuoYi-App-master/pages/index.vue @@ -2,19 +2,19 @@ - {{ $t('home.greeting') }}{{ userName }} - {{ $t('home.today') }}{{ currentDate }} + 你好,{{ userName }} + 今天是{{ currentDate }} - + - - {{ $t('home.pendingTasks') }} + @@ -42,35 +42,45 @@ - {{ $t('home.inbound.title') }} - {{ $t('home.inbound.desc') }} + 入库管理 + 收货、上架、验收 - + - {{ $t('home.outbound.title') }} - {{ $t('home.outbound.desc') }} + 出库管理 + 拣货、打包、发货 - + + + + + + 托盘管理 + 空托盘出入库 + + + + + - {{ $t('home.stocktaking.title') }} - {{ $t('home.stocktaking.desc') }} + 盘点管理 + 周期盘点、抽查 @@ -78,8 +88,7 @@ diff --git a/RuoYi-App-master/pages/login.vue b/RuoYi-App-master/pages/login.vue index 86d3635..7872d2c 100644 --- a/RuoYi-App-master/pages/login.vue +++ b/RuoYi-App-master/pages/login.vue @@ -3,12 +3,12 @@ - {{ $t('login.appTitle') }} + WMS手持终端 - {{ $t('mine.personalInfo') }} + 个人信息 @@ -67,7 +67,7 @@ - {{ $t('mine.appSettings') }} + 应用设置 @@ -110,7 +110,7 @@ this.$tab.navigateTo('/pages/mine/avatar/index') }, handleLogout() { - this.$modal.confirm(this.$t('mine.logoutConfirm')).then(() => { + this.$modal.confirm('确定注销并退出系统吗?').then(() => { this.$store.dispatch('LogOut').then(() => { this.$tab.reLaunch('/pages/index') }) @@ -126,7 +126,7 @@ this.$modal.showToast('QQ:①133713780(Full)、②146013835(Full)、③189091635') }, handleBuilding() { - this.$modal.showToast(this.$t('mine.moduleBuilding')) + this.$modal.showToast('模块建设中~') } } } diff --git a/RuoYi-App-master/pages/mine/setting/index.vue b/RuoYi-App-master/pages/mine/setting/index.vue index 930a037..64f6fb4 100644 --- a/RuoYi-App-master/pages/mine/setting/index.vue +++ b/RuoYi-App-master/pages/mine/setting/index.vue @@ -22,14 +22,14 @@ - {{ $t('mine.setting.updateServer') }} + 修改服务器配置 - {{ $t('mine.setting.logout') }} + 退出登录 @@ -126,7 +126,7 @@ this.$tab.navigateTo('/pages/setting') }, handleLogout() { - this.$modal.confirm(this.$t('mine.logoutConfirm')).then(() => { + this.$modal.confirm('确定注销并退出系统吗?').then(() => { this.$store.dispatch('LogOut').then(() => { this.$tab.reLaunch('/pages/login') }) diff --git a/RuoYi-App-master/pages/out/bindShell.vue b/RuoYi-App-master/pages/out/bindShell.vue index 9874337..dfb5750 100644 --- a/RuoYi-App-master/pages/out/bindShell.vue +++ b/RuoYi-App-master/pages/out/bindShell.vue @@ -1,7 +1,7 @@ @@ -68,25 +68,19 @@ export default { try { const response = await getTaskDetail({trayCode: value,inOut:'2'}) if (response.code === 200) { - // 设置materialList并初始化pickQuantity为outQuantity的值 - this.materialList = (response.data || []).map(item => { - return { - ...item, - pickQuantity: item.outQuantity - } - }) + this.materialList = response.data || [] } else { uni.showToast({ - title: response.msg || this.$t('common.noData'), + title: response.msg || '暂无数据', icon: 'none' }) } } catch (error) { - console.error(this.$t('outbound.exception.getTrayInfoFailed'), error) - uni.showToast({ - title: this.$t('outbound.exception.getTrayInfoFailed'), - icon: 'none' - }) + console.error('获取托盘信息失败', error) + uni.showToast({ + title: '获取托盘信息失败', + icon: 'none' + }) } } }, @@ -94,37 +88,6 @@ export default { handleClear() { this.materialList = [] }, - // 验证拣货数量不超过出库数量且不为负数 - validatePickQuantity(item) { - // 转换为数字 - let pickQty = Number(item.pickQuantity) - let outQty = Number(item.outQuantity) - - // 检查是否为有效数字 - if (isNaN(pickQty) || pickQty === '') { - item.pickQuantity = outQty - return - } - - // 检查是否为负数 - if (pickQty < 0) { - uni.showToast({ - title: this.$t('outbound.exception.pickQuantityNegative'), - icon: 'none' - }) - item.pickQuantity = 0 - return - } - - // 检查是否超过出库数量 - if (pickQty > outQty) { - uni.showToast({ - title: this.$t('outbound.exception.pickQuantityExceed'), - icon: 'none' - }) - item.pickQuantity = outQty - } - }, // 处理扫码事件 handleScan() { uni.scanCode({ @@ -138,71 +101,19 @@ export default { async handleSubmit() { if (!this.materialList.length) { uni.showToast({ - title: this.$t('outbound.exception.scanTrayFirst'), + title: '请先扫描托盘条码', icon: 'none' }) return } - - // 提交前再次验证所有物料的pickQuantity - let isValid = true - this.materialList.forEach(item => { - // 转换为数字 - let pickQty = Number(item.pickQuantity) - let outQty = Number(item.outQuantity) - - // 检查是否为有效数字 - if (isNaN(pickQty) || pickQty === '') { - isValid = false - uni.showToast({ - title: this.$t('outbound.exception.invalidPickQuantity'), - icon: 'none' - }) - item.pickQuantity = outQty - return - } - - // 检查是否为负数 - if (pickQty < 0) { - isValid = false - uni.showToast({ - title: this.$t('outbound.exception.pickQuantityNegative'), - icon: 'none' - }) - item.pickQuantity = 0 - return - } - - // 检查是否超过出库数量 - if (pickQty > outQty) { - isValid = false - uni.showToast({ - title: this.$t('outbound.exception.pickQuantityExceed'), - icon: 'none' - }) - item.pickQuantity = outQty - } - }) - - if (!isValid) return - - // 准备提交数据,包含所有物料编码和pickQuantity - const materialDetails = this.materialList.map(item => { - return { - jobDetailId: item.jobDetailId, - productId: item.productId, - pickQuantity: item.pickQuantity - } - }) - try { const response = await submitError({ - trayCode: this.trayCode, - materialDetails: materialDetails + trayCode: this.trayCode + }) if (response.code === 200) { uni.showToast({ - title: this.$t('outbound.exception.submitSuccess'), + title: '提交成功', icon: 'success' }) // 清空数据 @@ -210,16 +121,16 @@ export default { this.materialList = [] } else { uni.showToast({ - title: response.msg || this.$t('outbound.exception.submitFailed'), + title: response.msg || '提交失败', icon: 'none' }) } } catch (error) { - console.error(this.$t('outbound.exception.submitFailed'), error) - uni.showToast({ - title: this.$t('outbound.exception.submitFailed'), - icon: 'none' - }) + console.error('提交失败', error) + uni.showToast({ + title: '提交失败', + icon: 'none' + }) } } } diff --git a/RuoYi-App-master/pages/out/ktpout.vue b/RuoYi-App-master/pages/out/ktpout.vue index 1e8a125..cd6d465 100644 --- a/RuoYi-App-master/pages/out/ktpout.vue +++ b/RuoYi-App-master/pages/out/ktpout.vue @@ -2,43 +2,28 @@ - + - - - - - - - - - - {{ $t('outbound.emptyPalletBox.emptyPallet.cargoSpaceHeight') }}{{ cargoSpaceHeight }}{{ $t('outbound.emptyPalletBox.emptyPallet.meter') }} - - - + + + - + @@ -53,9 +38,7 @@ export default { return { formData: { warehouseId: '', - cargoSpaceId: '', - exitId: '', - cargoSpaceName: '' + exitId: '' }, warehouseList: [], cargoSpaceList: [], @@ -73,17 +56,17 @@ export default { const res = await getBasWarehouList({ pageNum:1, pageSize:100, - typeData:['1','2'] + // typeData:['1','2'] }) if (res.code === 200) { this.warehouseList = res.rows.map(item => ({ value: item.warehouseId, - text: item.warehouseName, - type: item.warehouseType + text: item.warehouseName + // type: item.warehouseType })) } } catch (error) { - console.error(this.$t('outbound.emptyPalletBox.emptyPallet.getWarehouseListFailed'), error) + console.error('获取仓库列表失败', error) } }, async handleWarehouseChange(warehouseId) { @@ -92,97 +75,27 @@ export default { this.currentWarehouseType = selectedWarehouse ? selectedWarehouse.type : '' this.formData.exitId = '' - if (this.currentWarehouseType == '2') { + // if (this.currentWarehouseType == '2') { // 模拟出口数据,实际项目中应该从后端获取 this.exitList = [ - { value: '1', text: this.$t('outbound.emptyPalletBox.emptyPallet.exit') + '1' }, - { value: '2', text: this.$t('outbound.emptyPalletBox.emptyPallet.exit') + '2' }, - { value: '3', text: this.$t('outbound.emptyPalletBox.emptyPallet.exit') + '3' } + { value: '1', text: '出口方向1' }, + { value: '2', text: '出口方向2' } ] - } - }, - handleCargoSpaceSelect(item) { - this.formData.cargoSpaceId = item.value - }, - async handleRecommendCargoSpace() { - if (!this.formData.warehouseId) { - uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.selectWarehouse'), - icon: 'none' - }) - return - } - // try { - const response = await getFullCargoSpaceListByWarehouse({ warehouseId: this.formData.warehouseId }) - if (response.code === 200 && response.data.length > 0) { - // 获取第一个推荐货位 - this.formData.cargoSpaceId = response.data[0].cargoSpaceId - this.formData.cargoSpaceName = response.data[0].cargoSpaceName - // 手动触发handleCargoSpaceInput方法获取货位高度信息 - await this.handleCargoSpaceInput(response.data[0].cargoSpaceName) - - } else { - uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.noAvailableCargoSpace'), - icon: 'none' - }) - } - // } catch (error) { - // console.error('获取推荐货位失败:', error) - // uni.showToast({ - // title: '获取推荐货位失败', - // icon: 'none' - // }) // } }, - // 处理货位选择 - async handleCargoSpaceInput(value) { - if (value) { - try { - const response = await getCargoSpaceList({ cargoSpaceName: value, warehouseId: this.formData.warehouseId }) - if (response.code === 200 && response.rows.length > 0) { - this.formData.cargoSpaceId = response.rows[0].cargoSpaceId - this.cargoSpaceHeight = response.rows[0].cargoHight - console.log(this.formData.cargoSpaceId) - } else { - uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.getCargoSpaceInfoFailed'), - icon: 'none' - }) - this.formData.cargoSpaceId = '' - this.cargoSpaceHeight = null - } - } catch (error) { - uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.getCargoSpaceInfoFailed'), - icon: 'none' - }) - this.formData.cargoSpaceId = '' - this.cargoSpaceHeight = null - } - } else { - this.formData.cargoSpaceId = '' - this.cargoSpaceHeight = null - } - }, + async handleSubmit() { if (!this.formData.warehouseId) { uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.selectWarehouse'), + title: '请选择仓库', icon: 'none' }) return } - if (this.currentWarehouseType == '1' && !this.formData.cargoSpaceId) { + + if ( !this.formData.exitId) { uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.selectCargoSpace'), - icon: 'none' - }) - return - } - if (this.currentWarehouseType == '2' && !this.formData.exitId) { - uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.selectExit'), + title: '请选择出口', icon: 'none' }) return @@ -194,22 +107,19 @@ export default { if (response.code === 200) { uni.showToast({ - title: this.$t('outbound.emptyPalletBox.emptyPallet.outboundSuccess'), + title: '空托盘出库成功', icon: 'success' }) // 重置表单数据 this.formData = { warehouseId: '', - cargoSpaceId: '', exitId: '' } - this.cargoSpaceList = [] this.exitList = [] - this.currentWarehouseType = '' - this.cargoSpaceHeight = '' + } else { uni.showToast({ - title: response.msg || this.$t('outbound.emptyPalletBox.emptyPallet.outboundOperationFailed'), + title: response.msg || '出库操作失败', icon: 'none' }) } diff --git a/RuoYi-App-master/pages/out/menu.vue b/RuoYi-App-master/pages/out/menu.vue index e1be8cc..1712bfa 100644 --- a/RuoYi-App-master/pages/out/menu.vue +++ b/RuoYi-App-master/pages/out/menu.vue @@ -6,8 +6,8 @@ - {{ $t('outbound.emptyPalletBox.title') }} - {{ $t('outbound.emptyPalletBox.desc') }} + 空托盘/料箱出库 + 空托盘/料箱出库管理 @@ -15,8 +15,8 @@ - {{ $t('outbound.pkout.title') }} - {{ $t('outbound.pkout.desc') }} + 平库出库 + 平库出库管理 @@ -24,8 +24,8 @@ - {{ $t('outbound.ckMakeSureByTray.title') }} - {{ $t('outbound.ckMakeSureByTray.desc') }} + 出库确认 + 出库单确认管理 @@ -33,8 +33,8 @@ - {{ $t('outbound.bindShelf.title') }} - {{ $t('outbound.bindShelf.desc') }} + 绑定料架 + 出库单确认管理 @@ -42,8 +42,8 @@ - {{ $t('outbound.exception.title') }} - {{ $t('outbound.exception.desc') }} + 异常出库 + 异常出库 @@ -51,8 +51,8 @@ - {{ $t('outbound.move.title') }} - {{ $t('outbound.move.desc') }} + 料架搬运 + 点对点搬运 diff --git a/RuoYi-App-master/pages/out/move.vue b/RuoYi-App-master/pages/out/move.vue index c07b79e..5d05f22 100644 --- a/RuoYi-App-master/pages/out/move.vue +++ b/RuoYi-App-master/pages/out/move.vue @@ -3,49 +3,49 @@ - + - + - + - + - + @@ -82,7 +82,7 @@ export default { this.pointTypeList = res.map(item => ({ value: item.dictValue, - text: this.$t(item.dictLabel) + text: item.dictLabel })) @@ -90,7 +90,7 @@ export default { } catch (error) { console.error('获取点位列表失败', error) uni.showToast({ - title: this.$t('outbound.move.getPointTypeListFailed'), + title: '获取点位类型列表失败', icon: 'none' }) } @@ -118,7 +118,7 @@ async handleStartPointTypeChange(value) { } catch (error) { console.error('获取端口列表失败', error) uni.showToast({ - title: this.$t('outbound.move.getPortListFailed'), + title: '获取端口列表失败', icon: 'none' }) } @@ -148,7 +148,7 @@ async handleStartPointTypeChange(value) { } catch (error) { console.error('获取目标端口列表失败', error) uni.showToast({ - title: this.$t('outbound.move.getPortListFailed'), + title: '获取端口列表失败', icon: 'none' }) } @@ -161,7 +161,7 @@ async handleStartPointTypeChange(value) { // 表单验证 if (!this.formData.startPointType) { uni.showToast({ - title: this.$t('outbound.move.startPointTypeRequired'), + title: '请选择起始点类型', icon: 'none' }) return @@ -169,7 +169,7 @@ async handleStartPointTypeChange(value) { if (!this.formData.targetPointType) { uni.showToast({ - title: this.$t('outbound.move.targetPointTypeRequired'), + title: '请选择目标点类型', icon: 'none' }) return @@ -177,7 +177,7 @@ async handleStartPointTypeChange(value) { if (!this.formData.sourceLocationId) { uni.showToast({ - title: this.$t('outbound.move.sourceLocationRequired'), + title: '请选择起始位置', icon: 'none' }) return @@ -185,7 +185,7 @@ async handleStartPointTypeChange(value) { if (!this.formData.targetLocationId) { uni.showToast({ - title: this.$t('outbound.move.targetLocationRequired'), + title: '请选择目标位置', icon: 'none' }) return @@ -197,7 +197,7 @@ async handleStartPointTypeChange(value) { endPoint:this.formData.targetLocationId}) if (res.code === 200) { uni.showToast({ - title: this.$t('outbound.move.submitSuccess'), + title: '提交成功', icon: 'success' }) // 重置表单 @@ -211,14 +211,14 @@ async handleStartPointTypeChange(value) { this.targetLocationList = [] } else { uni.showToast({ - title: res.msg || this.$t('outbound.move.submitFailed'), + title: res.msg || '提交失败', icon: 'none' }) } } catch (error) { console.error('提交移库请求失败', error) uni.showToast({ - title: res.msg ||this.$t('outbound.move.submitError'), + title: res.msg ||'提交请求失败', icon: 'none' }) } diff --git a/RuoYi-App-master/pages/out/pkout.vue b/RuoYi-App-master/pages/out/pkout.vue index 641b476..9a84732 100644 --- a/RuoYi-App-master/pages/out/pkout.vue +++ b/RuoYi-App-master/pages/out/pkout.vue @@ -3,7 +3,7 @@ - {{ $t('outbound.pkout.orderNumber') }} + 单据编号: {{ order.stockoutId }} - {{ $t('outbound.pkout.createTime') }} + 创建时间: {{ order.createDate }} - {{ $t('outbound.pkout.customer') }} + 客户: {{ order.customerName }} - {{ $t('outbound.pkout.goodsInfo') }} + 物品信息 - - {{ $t('outbound.pkout.productName') }} - {{ $t('outbound.pkout.planQuantity') }} - {{ $t('outbound.pkout.outboundQuantity') }} - {{ $t('outbound.pkout.operation') }} + + 物品名称 + 计划数量 + 出库数量 + 操作 @@ -49,7 +49,7 @@ {{ goods.quantity - goods.assignNum }} @@ -59,7 +59,7 @@ - {{ $t('outbound.pkout.noOrderInfo') }} + 暂无出库单信息 @@ -102,11 +102,11 @@ export default { goodsList: null })) } catch (error) { - console.error(this.$t('outbound.pkout.getOrderListFailed'), error) - uni.showToast({ - title: this.$t('outbound.pkout.getOrderListFailed'), - icon: 'none' - }) + console.error('获取出库单列表失败', error) + uni.showToast({ + title: '获取出库单列表失败', + icon: 'none' + }) } }, // 获取物品列表 @@ -123,11 +123,11 @@ export default { // outQuantity: item.quantity-item.assignNum })) } catch (error) { - console.error(this.$t('outbound.pkout.getItemInfoFailed'), error) - uni.showToast({ - title: this.$t('outbound.pkout.getItemInfoFailed'), - icon: 'none' - }) + console.error('获取物品信息失败', error) + uni.showToast({ + title: '获取物品信息失败', + icon: 'none' + }) } }, // 处理出库单点击 @@ -179,18 +179,18 @@ export default { }) uni.showToast({ - title: this.$t('outbound.pkout.outboundSuccess'), - icon: 'success' - }) + title: '出库成功', + icon: 'success' + }) // 刷新数据 this.getOrderList() } catch (error) { console.error('出库失败:', error) uni.showToast({ - title: this.$t('outbound.pkout.outboundFailed'), - icon: 'none' - }) + title: '出库失败', + icon: 'none' + }) } } } diff --git a/RuoYi-App-master/pages/pandian/confirm.vue b/RuoYi-App-master/pages/pandian/confirm.vue index 65f356f..1267fdd 100644 --- a/RuoYi-App-master/pages/pandian/confirm.vue +++ b/RuoYi-App-master/pages/pandian/confirm.vue @@ -1,60 +1,146 @@ + diff --git a/ruoyi-ui/src/views/rf/emptyInTrayCode.vue b/ruoyi-ui/src/views/rf/emptyInTrayCode.vue new file mode 100644 index 0000000..8dc5c5b --- /dev/null +++ b/ruoyi-ui/src/views/rf/emptyInTrayCode.vue @@ -0,0 +1,355 @@ + + + + diff --git a/ruoyi-ui/src/views/rf/emptyOutTrayCode.vue b/ruoyi-ui/src/views/rf/emptyOutTrayCode.vue new file mode 100644 index 0000000..8dc5c5b --- /dev/null +++ b/ruoyi-ui/src/views/rf/emptyOutTrayCode.vue @@ -0,0 +1,355 @@ + + + + diff --git a/ruoyi-ui/src/views/rf/outMakeSure.vue b/ruoyi-ui/src/views/rf/outMakeSure.vue new file mode 100644 index 0000000..8dc5c5b --- /dev/null +++ b/ruoyi-ui/src/views/rf/outMakeSure.vue @@ -0,0 +1,355 @@ + + + + diff --git a/ruoyi-ui/src/views/rf/pdMakeSure.vue b/ruoyi-ui/src/views/rf/pdMakeSure.vue new file mode 100644 index 0000000..8dc5c5b --- /dev/null +++ b/ruoyi-ui/src/views/rf/pdMakeSure.vue @@ -0,0 +1,355 @@ + + + + diff --git a/ruoyi-ui/src/views/search/ViewOutJobFlow/index.vue b/ruoyi-ui/src/views/search/ViewOutJobFlow/index.vue index d0d3b0d..2cb846c 100644 --- a/ruoyi-ui/src/views/search/ViewOutJobFlow/index.vue +++ b/ruoyi-ui/src/views/search/ViewOutJobFlow/index.vue @@ -392,13 +392,13 @@ - + - - + + @@ -436,7 +436,7 @@ - +