diff --git a/src/api/label-split-merge/label-split-merge.js b/src/api/label-split-merge/label-split-merge.js new file mode 100644 index 0000000..92fa073 --- /dev/null +++ b/src/api/label-split-merge/label-split-merge.js @@ -0,0 +1,41 @@ +import { createAPI } from "@/utils/httpRequest.js"; + +/** + * 根据标签条码获取库存信息 + * @param {Object} data - 查询参数 + * @param {string} data.labelCode - 标签条码 + * @param {string} data.site - 站点 + * @param {string} data.warehouseId - 仓库ID + */ +export const getStockInfoByLabelCode = data => createAPI(`label-split-merge/stock-info`, 'post', data) + +/** + * 标签拆分 + * @param {Object} data - 拆分数据 + * @param {string} data.originalLabelCode - 原标签条码 + * @param {string} data.site - 站点 + * @param {string} data.warehouseId - 仓库ID + * @param {string} data.buNo - 业务单元 + * @param {string} data.partNo - 物料编码 + * @param {string} data.batchNo - 批次号 + * @param {string} data.locationId - 库位 + * @param {number} data.originalQuantity - 原数量 + * @param {number} data.splitQuantity - 拆分数量 + */ +export const splitLabel = data => createAPI(`label-split-merge/split`, 'post', data) + +/** + * 标签合并 + * @param {Object} data - 合并数据 + * @param {string} data.targetLabelCode - 目标标签条码 + * @param {string} data.sourceLabelCode - 源标签条码 + * @param {string} data.site - 站点 + * @param {string} data.warehouseId - 仓库ID + * @param {string} data.buNo - 业务单元 + * @param {string} data.partNo - 物料编码 + * @param {string} data.batchNo - 批次号 + * @param {string} data.locationId - 库位 + * @param {number} data.targetQuantity - 目标标签数量 + * @param {number} data.sourceQuantity - 源标签数量 + */ +export const mergeLabel = data => createAPI(`label-split-merge/merge`, 'post', data) \ No newline at end of file diff --git a/src/api/other-inbound/other-inbound.js b/src/api/other-inbound/other-inbound.js new file mode 100644 index 0000000..6d5e57d --- /dev/null +++ b/src/api/other-inbound/other-inbound.js @@ -0,0 +1,37 @@ +import { createAPI } from "@/utils/httpRequest.js"; + +/** + * 获取其它入库单列表 + * @param {Object} data - 查询参数 + */ +export const getOtherInboundList = data => createAPI(`otherInbound/getInboundList`, 'post', data) + +/** + * 获取其它入库单详情 + * @param {Object} data - 查询参数 + */ +export const getOtherInboundDetails = data => createAPI(`otherInbound/getInboundDetails`, 'post', data) + +/** + * 验证物料与其它入库单是否匹配 + * @param {Object} data - 验证参数 + */ +export const validateMaterialWithInbound = data => createAPI(`otherInbound/validateMaterialWithInbound`, 'post', data) + +/** + * 确认其它入库 + * @param {Object} data - 入库数据 + */ +export const confirmOtherInbound = data => createAPI(`otherInbound/confirmOtherInbound`, 'post', data) + +/** + * 获取其它入库单物料清单 + * @param {Object} data - 查询参数 {site, buNo, inboundNo} + */ +export const getMaterialList = data => createAPI(`otherInbound/getMaterialList`, 'post', data) + +/** + * 添加物料到入库单 + * @param {Object} data - 添加物料参数 {site, buNo, inboundNo, materialCode, actualQty, warehouseId} + */ +export const addMaterialToInbound = data => createAPI(`otherInbound/addMaterialToInbound`, 'post', data) \ No newline at end of file diff --git a/src/api/property-change/property-change.js b/src/api/property-change/property-change.js new file mode 100644 index 0000000..03ad40d --- /dev/null +++ b/src/api/property-change/property-change.js @@ -0,0 +1,29 @@ +import { createAPI } from "@/utils/httpRequest.js"; + +/** + * 根据标签条码获取库存信息 + * @param {Object} data - 查询参数 + * @param {string} data.labelCode - 标签条码 + * @param {string} data.site - 站点 + * @param {string} data.warehouseId - 仓库ID + */ +export const getStockInfoByLabelCode = data => createAPI(`property-change/stock-info`, 'post', data) + +/** + * 保存属性变动 + * @param {Object} data - 变动数据 + * @param {string} data.labelCode - 标签条码 + * @param {string} data.site - 站点 + * @param {string} data.warehouseId - 仓库ID + * @param {string} data.buNo - 业务单元 + * @param {string} data.partNo - 物料编码 + * @param {string} data.batchNo - 批次号 + * @param {string} data.oldLocationId - 原库位 + * @param {string} data.newLocationId - 新库位 + * @param {string} data.oldProductionDate - 原生产日期 + * @param {string} data.newProductionDate - 新生产日期 + * @param {string} data.oldExpiryDate - 原有效期 + * @param {string} data.newExpiryDate - 新有效期 + * @param {number} data.quantity - 数量 + */ +export const savePropertyChange = data => createAPI(`property-change/save`, 'post', data) \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 2aa00ec..5575bb6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -23,58 +23,110 @@ const globalRoutes = [ { path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } }, { path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } }, // 采购入库 - {path: "/purchaseInbound",name: "porecv", component: resolve => require(["@/views/modules/purchase-inbound/purchase-inbound.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/recv",name: "recv", component: resolve => require(["@/views/modules/purchase-inbound/purchase-inbound.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/qualifiedStorage",name: "qualifiedStorage", component: resolve => require(["@/views/modules/purchase-inbound/qualifiedStorage.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { path: "/purchaseInbound", name: "porecv", component: resolve => require(["@/views/modules/purchase-inbound/purchase-inbound.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { path: "/recv", name: "recv", component: resolve => require(["@/views/modules/purchase-inbound/purchase-inbound.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { path: "/qualifiedStorage", name: "qualifiedStorage", component: resolve => require(["@/views/modules/purchase-inbound/qualifiedStorage.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, // 入库上架页面 - {path: "/inboundStorage/:buNo/:inboundNo",name: "inboundStorage", - component: resolve => require(["@/views/modules/purchase-inbound/inboundStorage.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { + path: "/inboundStorage/:buNo/:inboundNo", name: "inboundStorage", + component: resolve => require(["@/views/modules/purchase-inbound/inboundStorage.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, // 销售退货 - {path: "/salesReturn",name: "salesReturn", component: resolve => require(["@/views/modules/sales-return/sales-return.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/salesReturnList",name: "salesReturnList", component: resolve => require(["@/views/modules/sales-return/salesReturnList.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/salesReturnStorage/:returnNo/:partNo/:buNo",name: "SalesReturnStorage", - component: resolve => require(["@/views/modules/sales-return/salesReturnStorage.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { path: "/salesReturn", name: "salesReturn", component: resolve => require(["@/views/modules/sales-return/sales-return.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { path: "/salesReturnList", name: "salesReturnList", component: resolve => require(["@/views/modules/sales-return/salesReturnList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { + path: "/salesReturnStorage/:returnNo/:partNo/:buNo", name: "SalesReturnStorage", + component: resolve => require(["@/views/modules/sales-return/salesReturnStorage.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, -// 生产发料 - {path: "/productionissue",name: "productionissue", component: resolve => require(["@/views/modules/production-issue/productionIssuePda.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + // 生产发料 + { path: "/productionissue", name: "productionissue", component: resolve => require(["@/views/modules/production-issue/productionIssuePda.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, // 生产领料 - {path: "/production",name: "salesReturn", component: resolve => require(["@/views/modules/production-pick/production.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/productionPicking",name: "productionPicking", component: resolve => require(["@/views/modules/production-pick/productionPicking.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/productionPickingDetail/:buNo/:outboundNo",name: "productionPickingDetail", component: resolve => require(["@/views/modules/production-pick/productionPickingDetail.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { path: "/production", name: "salesReturn", component: resolve => require(["@/views/modules/production-pick/production.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { path: "/productionPicking", name: "productionPicking", component: resolve => require(["@/views/modules/production-pick/productionPicking.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + { path: "/productionPickingDetail/:buNo/:outboundNo", name: "productionPickingDetail", component: resolve => require(["@/views/modules/production-pick/productionPickingDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, // 生产入库 - {path: "/productionInbound",name: "productionInbound", - component: resolve => require(["@/views/modules/production/production-inbound.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/productionQualifiedStorage",name: "productionQualifiedStorage", - component: resolve => require(["@/views/modules/production/productionQualifiedStorage.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/productionInboundStorage/:buNo/:inboundNo",name: "productionInboundStorage", - component: resolve => require(["@/views/modules/production/productionInboundStorage.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { + path: "/productionInbound", name: "productionInbound", + component: resolve => require(["@/views/modules/production/production-inbound.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/productionQualifiedStorage", name: "productionQualifiedStorage", + component: resolve => require(["@/views/modules/production/productionQualifiedStorage.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/productionInboundStorage/:buNo/:inboundNo", name: "productionInboundStorage", + component: resolve => require(["@/views/modules/production/productionInboundStorage.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, // 销售出库 - {path: "/salesOutbound",name: "salesOutbound", - component: resolve => require(["@/views/modules/sales/sales-outbound.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/salesOutboundList",name: "salesOutboundList", - component: resolve => require(["@/views/modules/sales/salesOutboundList.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/salesOutboundDetail/:buNo/:outboundNo",name: "salesOutboundDetail", - component: resolve => require(["@/views/modules/sales/salesOutboundDetail.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { + path: "/salesOutbound", name: "salesOutbound", + component: resolve => require(["@/views/modules/sales/sales-outbound.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/salesOutboundList", name: "salesOutboundList", + component: resolve => require(["@/views/modules/sales/salesOutboundList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/salesOutboundDetail/:buNo/:outboundNo", name: "salesOutboundDetail", + component: resolve => require(["@/views/modules/sales/salesOutboundDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, // 采购退货 - {path: "/purchaseReturn",name: "purchaseReturn", - component: resolve => require(["@/views/modules/purchase-return/purchase-return.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/purchaseReturnList",name: "purchaseReturnList", - component: resolve => require(["@/views/modules/purchase-return/purchaseReturnList.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/purchaseReturnDetail/:buNo/:returnNo",name: "purchaseReturnDetail", - component: resolve => require(["@/views/modules/purchase-return/purchaseReturnDetail.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { + path: "/purchaseReturn", name: "purchaseReturn", + component: resolve => require(["@/views/modules/purchase-return/purchase-return.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/purchaseReturnList", name: "purchaseReturnList", + component: resolve => require(["@/views/modules/purchase-return/purchaseReturnList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/purchaseReturnDetail/:buNo/:returnNo", name: "purchaseReturnDetail", + component: resolve => require(["@/views/modules/purchase-return/purchaseReturnDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + + // 其他出入库 + { + path: "/otherInout", name: "otherInout", + component: resolve => require(["@/views/modules/other-inout/other-inout.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, // 其他出库 - {path: "/otherInout",name: "otherInout", - component: resolve => require(["@/views/modules/other-inout/other-inout.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/otherOutboundList",name: "otherOutboundList", - component: resolve => require(["@/views/modules/other-inout/otherOutboundList.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, - {path: "/otherOutboundDetail/:buNo/:outboundNo",name: "otherOutboundDetail", - component: resolve => require(["@/views/modules/other-inout/otherOutboundDetail.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + { + path: "/otherOutboundList", name: "otherOutboundList", + component: resolve => require(["@/views/modules/other-inout/otherOutboundList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/otherOutboundDetail/:buNo/:outboundNo", name: "otherOutboundDetail", + component: resolve => require(["@/views/modules/other-inout/otherOutboundDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + + // 其他入库 + { + path: "/otherInboundList", name: "otherInboundList", + component: resolve => require(["@/views/modules/other-inout/otherInboundList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + { + path: "/otherInboundDetail/:inboundNo/:buNo", name: "otherInboundDetail", + component: resolve => require(["@/views/modules/other-inout/otherInboundDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + + // 属性变动 + { + path: "/propertyChange", name: "propertyChange", + component: resolve => require(["@/views/modules/property-change/propertyChange.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, + + // 拆合组托 + { + path: "/labelSplitMerge", name: "labelSplitMerge", + component: resolve => require(["@/views/modules/label-split-merge/labelSplitMerge.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } + }, ] @@ -88,8 +140,8 @@ const mainRoutes = { children: [ { path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页' } }, ], - beforeEnter (to, from, next) { - let token =Vue.cookie.get('token') + beforeEnter(to, from, next) { + let token = Vue.cookie.get('token') if (!token || !/\S/.test(token)) { clearLoginInfo() next({ name: 'login' }) @@ -117,8 +169,8 @@ router.beforeEach((to, from, next) => { http({ url: http.adornUrl('/sys/menu/nav'), method: 'get', - params: {'l': i18n.locale,menuType: "pc"} - }).then(({data}) => { + params: { 'l': i18n.locale, menuType: "pc" } + }).then(({ data }) => { if (data && data.code === 0) { //fnAddDynamicMenuRoutes(data.menuList) //router.options.isAddDynamicMenuRoutes = true @@ -139,7 +191,7 @@ router.beforeEach((to, from, next) => { * 判断当前路由类型, global: 全局路由, main: 主入口路由 * @param {*} route 当前路由 */ -function fnCurrentRouteType (route, globalRoutes = []) { +function fnCurrentRouteType(route, globalRoutes = []) { var temp = [] for (var i = 0; i < globalRoutes.length; i++) { if (route.path === globalRoutes[i].path) { diff --git a/src/views/main.vue b/src/views/main.vue index 3cba785..d69decc 100644 --- a/src/views/main.vue +++ b/src/views/main.vue @@ -107,7 +107,7 @@ 库内管理
- -