diff --git a/src/api/automatedWarehouse/palletPacking.js b/src/api/automatedWarehouse/palletPacking.js index 418bfcb..37dd2f2 100644 --- a/src/api/automatedWarehouse/palletPacking.js +++ b/src/api/automatedWarehouse/palletPacking.js @@ -78,6 +78,7 @@ export const callEmptyPalletToStation = data => createAPI(`/wcsIntegration/callE // 结束分拣(下达预约送货任务到Z104区域,并更新pallet_detail的wcs_flag为1)- rqrq export const finishSorting = data => createAPI(`/wcsIntegration/finishSorting`,'post',data) +export const finishSortingNoAgv = data => createAPI(`/wcsIntegration/finishSortingNoAgv`,'post',data) // 根据栈板站点获取分拣明细RFID列表 - rqrq export const getSortingList = data => createAPI(`/wcsIntegration/getSortingList`,'post',data) diff --git a/src/router/index.js b/src/router/index.js index d1fc84d..35778ae 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -138,6 +138,7 @@ const globalRoutes = [ {path: "/emptyPalletAssembly",name: "emptyPalletAssembly", component: resolve => require(["@/views/modules/automatedWarehouse/emptyPalletAssembly.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, {path: "/cancelWcsPallet",name: "cancelWcsPallet", component: resolve => require(["@/views/modules/automatedWarehouse/cancelWcsPallet.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, {path: "/callOutToStation",name: "callOutToStation", component: resolve => require(["@/views/modules/automatedWarehouse/callOutToStation.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + {path: "/palletSortingNoAgv",name: "palletSortingNoAgv", component: resolve => require(["@/views/modules/automatedWarehouse/palletSortingNoAgv.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, ] diff --git a/src/utils/common.js b/src/utils/common.js index 82c789d..ced9f77 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -29,3 +29,85 @@ export function throttle(fn, wait = 3000) { }, wait) } } + +// ========== 错误处理相关 ========== - rqrq + +/** + * @Description 截取错误信息,防止提示过长 - rqrq + * @param {Error|Object|String} error - 错误对象、包含msg字段的对象或错误字符串 + * @param {String} defaultMsg - 默认错误信息 + * @param {Number} maxLength - 最大长度,默认100字符 + * @return {String} 处理后的错误信息 + * @author rqrq + * @date 2024/01/17 + */ +export function formatErrorMsg(error, defaultMsg = '操作失败', maxLength = 100) { + let errorMsg = defaultMsg; + + // 从error对象中提取错误信息 - rqrq + if (error) { + if (typeof error === 'string') { + errorMsg = error; + } else if (error.message) { + errorMsg = error.message; + } else if (error.msg) { + errorMsg = error.msg; + } + } + + // 截取过长的错误信息 - rqrq + if (errorMsg && errorMsg.length > maxLength) { + errorMsg = errorMsg.substring(0, maxLength) + '...'; + } + + return errorMsg; +} + +/** + * @Description 统一的错误提示弹窗(带聚焦控制)- rqrq + * @param {Object} vm - Vue组件实例(this) + * @param {Error|Object|String} error - 错误对象 + * @param {String} defaultMsg - 默认错误信息 + * @param {String} inputRef - 需要聚焦的输入框ref名称(可选) + * @author rqrq + * @date 2024/01/17 + */ +export function showErrorAlert(vm, error, defaultMsg = '操作失败', inputRef = '') { + const errorMsg = formatErrorMsg(error, defaultMsg); + + vm.$alert(errorMsg, '错误', { + confirmButtonText: '确定', + callback: () => { + // 如果提供了inputRef,则在回调中聚焦 - rqrq + if (inputRef) { + vm.$nextTick(() => { + if (vm.$refs[inputRef]) { + vm.$refs[inputRef].focus(); + } + }); + } + } + }); +} + +/** + * @Description 统一的成功提示(带回调)- rqrq + * @param {Object} vm - Vue组件实例(this) + * @param {String} msg - 成功提示信息 + * @param {Function} callback - 成功后的回调函数(可选) + * @author rqrq + * @date 2024/01/17 + */ +export function showSuccessMsg(vm, msg = '操作成功', callback) { + vm.$message({ + message: msg, + type: 'success', + duration: 2000, + showClose: true, + onClose: () => { + if (typeof callback === 'function') { + callback(); + } + } + }); +} \ No newline at end of file diff --git a/src/views/main.vue b/src/views/main.vue index 1db5852..76ab6b4 100644 --- a/src/views/main.vue +++ b/src/views/main.vue @@ -199,6 +199,12 @@ + diff --git a/src/views/modules/automatedWarehouse/palletSortingNoAgv.vue b/src/views/modules/automatedWarehouse/palletSortingNoAgv.vue new file mode 100644 index 0000000..bce0141 --- /dev/null +++ b/src/views/modules/automatedWarehouse/palletSortingNoAgv.vue @@ -0,0 +1,1902 @@ + + + + +