diff --git a/.env.local b/.env.local index 2eb3a785..5d330e83 100644 --- a/.env.local +++ b/.env.local @@ -8,8 +8,8 @@ VITE_DEV=true # 线上环境 # VITE_BASE_URL='https://besure.ngsk.tech:7001' # 本地联调 -VITE_BASE_URL='http://192.168.5.160:48081' -# VITE_BASE_URL='http://192.168.43.233:48081' +# VITE_BASE_URL='http://192.168.5.142:48081' +VITE_BASE_URL='http://192.168.43.233:48081' # VITE_BASE_URL='http://192.168.5.5:48081' diff --git a/src/api/erp/stock/out/index.ts b/src/api/erp/stock/out/index.ts index 79d2d74b..cc54ea20 100644 --- a/src/api/erp/stock/out/index.ts +++ b/src/api/erp/stock/out/index.ts @@ -7,12 +7,27 @@ export interface StockOutVO { customerId: number // 客户编号 outTime: Date // 出库时间 outType: string //出库类型 + stockUserId?: string totalCount: number // 合计数量 totalPrice: number // 合计金额,单位:元 status: number // 状态 remark: string // 备注 } +export interface StockOutApproveRecordVO { + id: number + stockOutId: number + actionType: string + fromStatus: number + toStatus: number + targetUserId: number + targetUserName: string + remark: string + creator: string + creatorName: string + createTime: string +} + // ERP 其它出库单 API export const StockOutApi = { // 查询其它出库单分页 @@ -46,6 +61,18 @@ export const StockOutApi = { }) }, + submitStockOut: async (data: { id: string; auditUserId: string; remark?: string }) => { + return await request.put({ url: `/erp/stock-out/submit`, data }) + }, + + auditStockOut: async (data: { id: string; status: string; remark?: string }) => { + return await request.put({ url: `/erp/stock-out/audit`, data }) + }, + + getApproveRecordList: async (id: number) => { + return await request.get({ url: `/erp/stock-out/approve-record-list`, params: { id } }) + }, + // 删除其它出库单 deleteStockOut: async (ids: number[]) => { return await request.delete({ diff --git a/src/locales/en.ts b/src/locales/en.ts index aa4bc5f9..d047ed49 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -371,6 +371,17 @@ export default { totalPrice: 'Total Price', inType: 'Inbound Type', file: 'Attachment', + stockUser: 'Handler', + auditUser: 'Auditor', + submitAudit: 'Submit Audit', + auditApprove: 'Audit Approved', + auditReject: 'Audit Rejected', + auditRecord: 'Audit Record', + index: 'Index', + operator: 'Operator', + operateTime: 'Operation Time', + operateAction: 'Action', + operateDesc: 'Description', tabProduct: 'Product Inbound', tabMaterial: 'Material Inbound', tabPart: 'Part Inbound', @@ -385,12 +396,22 @@ export default { placeholderSupplier: 'Please select supplier', placeholderInTime: 'Select inbound time', placeholderInType: 'Please select inbound type', + placeholderStockUser: 'Please select handler', + placeholderAuditUser: 'Please select auditor', + placeholderSubmitRemark: 'Please enter submit remark', + placeholderAuditApproveRemark: 'Please enter approval remark', + placeholderAuditRejectRemark: 'Please enter rejection remark', validatorInTimeRequired: 'Inbound time is required', validatorInTypeRequired: 'Inbound type is required', + validatorStockUserRequired: 'Please select handler', + validatorAuditUserRequired: 'Please select auditor', confirmApprove: 'Are you sure to approve this inbound order?', confirmReverseApprove: 'Are you sure to reverse approve this inbound order?', approveSuccess: 'Approve success', reverseApproveSuccess: 'Reverse approve success', + submitSuccess: 'Submit success', + auditApproveSuccess: 'Audit approve success', + auditRejectSuccess: 'Audit reject success', exportName: 'Other Inbound Order.xls', list: 'Inbound Product List', addItem: 'Add Inbound Product' @@ -398,12 +419,30 @@ export default { Out: { no: 'Outbound No', customer: 'Customer', + product: 'Product', outTime: 'Outbound Time', outType: 'Outbound Type', warehouse: 'Warehouse', + creator: 'Creator', + status: 'Status', remark: 'Remark', file: 'Attachment', list: 'Outbound Product List', + productInfo: 'Product Info', + materialInfo: 'Material Info', + sparePartInfo: 'Spare Part Info', + count: 'Quantity', + auditUser: 'Auditor', + stockUser: 'Handler', + submitAudit: 'Submit Audit', + auditApprove: 'Audit Approved', + auditReject: 'Audit Rejected', + auditRecord: 'Audit Record', + index: 'Index', + operator: 'Operator', + operateTime: 'Operation Time', + operateAction: 'Action', + operateDesc: 'Description', tabOther: 'Other Outbound', tabPart: 'Part Outbound', tabMaterial: 'Material Outbound', @@ -411,34 +450,64 @@ export default { tabPick: 'Pick Outbound', placeholderNo: 'Auto-generated on save', placeholderCustomer: 'Please select customer', + placeholderProduct: 'Please select product', + placeholderWarehouse: 'Please select warehouse', + placeholderCreator: 'Please select creator', + placeholderStatus: 'Please select status', placeholderOutTime: 'Select outbound time', placeholderOutType: 'Please select outbound type', placeholderRemark: 'Please enter remark', + placeholderAuditUser: 'Please select auditor', + placeholderStockUser: 'Please select handler', + placeholderSubmitRemark: 'Please enter submit remark', + placeholderAuditApproveRemark: 'Please enter approval remark', + placeholderAuditRejectRemark: 'Please enter rejection remark', validatorOutTimeRequired: 'Outbound time is required', validatorOutTypeRequired: 'Outbound type is required', + validatorStockUserRequired: 'Please select handler', + validatorAuditUserRequired: 'Please select auditor', confirmApprove: 'Are you sure to approve this outbound order?', confirmReverseApprove: 'Are you sure to reverse approve this outbound order?', approveSuccess: 'Approve success', reverseApproveSuccess: 'Reverse approve success', + submitSuccess: 'Submit success', + auditApproveSuccess: 'Audit approve success', + auditRejectSuccess: 'Audit reject success', exportName: 'Other Outbound Order.xls', addItem: 'Add Outbound Product' }, Item: { index: 'Index', warehouse: 'Warehouse Name', + area: 'Area', product: 'Product Name', stock: 'Stock', barcode: 'Barcode', unit: 'Unit', + inventoryUnit: 'Inventory Unit', + purchaseUnit: 'Purchase Unit', + purchaseUnitConvertQuantity: 'Purchase Convert Qty', + inputUnitType: 'Unit Input Type', + inputCount: 'Input Count', count: 'Quantity', price: 'Price', totalPrice: 'Total Price', remark: 'Remark', action: 'Action', + selectCode: 'Select Code', + code: 'Code', + name: 'Name', + spec: 'Specification', + category: 'Category', placeholderWarehouse: 'Please select warehouse', + placeholderArea: 'Please select area', placeholderProduct: 'Please select product', placeholderBarcode: 'Please select barcode', + placeholderInputUnitType: 'Please select', + placeholderCode: 'Please enter code', + placeholderName: 'Please enter name', validatorWarehouseRequired: 'Warehouse is required', + validatorAreaRequired: 'Please select area', validatorProductRequired: 'Product is required', validatorCountRequired: 'Quantity is required' }, diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 20a2cf6d..47b9738c 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -371,6 +371,17 @@ export default { totalPrice: '合计金额', inType: '入库类型', file: '附件', + stockUser: '经办人', + auditUser: '审核人', + submitAudit: '提交审核', + auditApprove: '审核通过', + auditReject: '审核驳回', + auditRecord: '审核记录', + index: '序号', + operator: '操作人', + operateTime: '操作时间', + operateAction: '操作动作', + operateDesc: '操作说明', tabProduct: '产品入库', tabMaterial: '原料入库', tabPart: '备件入库', @@ -385,12 +396,22 @@ export default { placeholderSupplier: '请选择供应商', placeholderInTime: '选择入库时间', placeholderInType: '请选择入库类型', + placeholderStockUser: '请选择经办人', + placeholderAuditUser: '请选择审核人', + placeholderSubmitRemark: '请输入提交备注', + placeholderAuditApproveRemark: '请输入审核通过备注', + placeholderAuditRejectRemark: '请输入驳回备注', validatorInTimeRequired: '入库时间不能为空', validatorInTypeRequired: '入库类型不能为空', + validatorStockUserRequired: '请选择经办人', + validatorAuditUserRequired: '请选择审核人', confirmApprove: '确定审批该入库单吗?', confirmReverseApprove: '确定反审批该入库单吗?', approveSuccess: '审批成功', reverseApproveSuccess: '反审批成功', + submitSuccess: '提交成功', + auditApproveSuccess: '审核通过成功', + auditRejectSuccess: '驳回成功', exportName: '其它入库单.xls', list: '入库产品清单', addItem: '添加入库产品' @@ -398,12 +419,30 @@ export default { Out: { no: '出库单号', customer: '客户', + product: '产品', outTime: '出库时间', outType: '出库类型', warehouse: '仓库', + creator: '创建人', + status: '状态', remark: '备注', file: '附件', list: '出库产品清单', + productInfo: '产品信息', + materialInfo: '物料信息', + sparePartInfo: '备件信息', + count: '数量', + auditUser: '审核人', + stockUser: '经办人', + submitAudit: '提交审核', + auditApprove: '审核通过', + auditReject: '审核驳回', + auditRecord: '审核记录', + index: '序号', + operator: '操作人', + operateTime: '操作时间', + operateAction: '操作动作', + operateDesc: '操作说明', tabOther: '其他出库', tabPart: '备件出库', tabMaterial: '原料出库', @@ -411,34 +450,64 @@ export default { tabPick: '领料出库', placeholderNo: '保存时自动生成', placeholderCustomer: '请选择客户', + placeholderProduct: '请选择产品', + placeholderWarehouse: '请选择仓库', + placeholderCreator: '请选择创建人', + placeholderStatus: '请选择状态', placeholderOutTime: '选择出库时间', placeholderOutType: '请选择出库类型', placeholderRemark: '请输入备注', + placeholderAuditUser: '请选择审核人', + placeholderStockUser: '请选择经办人', + placeholderSubmitRemark: '请输入提交备注', + placeholderAuditApproveRemark: '请输入审核通过备注', + placeholderAuditRejectRemark: '请输入驳回备注', validatorOutTimeRequired: '出库时间不能为空', validatorOutTypeRequired: '出库类型不能为空', + validatorStockUserRequired: '请选择经办人', + validatorAuditUserRequired: '请选择审核人', confirmApprove: '确定审批该出库单吗?', confirmReverseApprove: '确定反审批该出库单吗?', approveSuccess: '审批成功', reverseApproveSuccess: '反审批成功', + submitSuccess: '提交成功', + auditApproveSuccess: '审核通过成功', + auditRejectSuccess: '驳回成功', exportName: '其它出库单.xls', addItem: '添加出库产品' }, Item: { index: '序号', warehouse: '仓库名称', + area: '库区', product: '名称', stock: '库存', barcode: '编码', unit: '单位', + inventoryUnit: '库存单位', + purchaseUnit: '采购单位', + purchaseUnitConvertQuantity: '采购换算数量', + inputUnitType: '单位输入方式', + inputCount: '录入数量', count: '数量', price: '产品单价', totalPrice: '合计金额', remark: '备注', action: '操作', + selectCode: '选择编码', + code: '编码', + name: '名称', + spec: '规格型号', + category: '分类', placeholderWarehouse: '请选择仓库', + placeholderArea: '请选择库区', placeholderProduct: '请选择产品', placeholderBarcode: '请选择编码', + placeholderInputUnitType: '请选择', + placeholderCode: '请输入编码', + placeholderName: '请输入名称', validatorWarehouseRequired: '仓库不能为空', + validatorAreaRequired: '请选择库区', validatorProductRequired: '产品不能为空', validatorCountRequired: '产品数量不能为空' }, diff --git a/src/views/erp/stock/in/StockInForm.vue b/src/views/erp/stock/in/StockInForm.vue index 4c857e09..88fc5db2 100644 --- a/src/views/erp/stock/in/StockInForm.vue +++ b/src/views/erp/stock/in/StockInForm.vue @@ -82,12 +82,12 @@ - + - + - - - - + + + + - + @@ -189,7 +189,7 @@ const formData = ref({ const formRules = reactive({ inTime: [{ required: true, message: t('ErpStock.In.validatorInTimeRequired'), trigger: 'blur' }], inType: [{ required: true, message: t('ErpStock.In.validatorInTypeRequired'), trigger: 'blur' }], - stockUserId: [{ required: true, message: '请选择经办人', trigger: 'change' }] + stockUserId: [{ required: true, message: t('ErpStock.In.validatorStockUserRequired'), trigger: 'change' }] }) const disabled = computed(() => formType.value === 'detail') const formRef = ref() // 表单 Ref @@ -258,11 +258,11 @@ const getAuditRecordList = async (id: number) => { } const formatAuditAction = (row: StockInApproveRecordVO) => { - if (row.toStatus === 10) return '提交' - if (row.toStatus === 20) return '审核通过' - if (row.toStatus === 1) return '驳回' - if (row.actionType === 'SUBMIT') return '提交' - if (row.actionType === 'AUDIT') return '审核' + if (row.toStatus === 10) return t('ErpStock.In.submitAudit') + if (row.toStatus === 20) return t('ErpStock.In.auditApprove') + if (row.toStatus === 1) return t('ErpStock.In.auditReject') + if (row.actionType === 'SUBMIT') return t('ErpStock.In.submitAudit') + if (row.actionType === 'AUDIT') return t('ErpStock.In.auditApprove') return row.actionType || '-' } diff --git a/src/views/erp/stock/in/components/StockInItemForm.vue b/src/views/erp/stock/in/components/StockInItemForm.vue index cb6154ef..661ef9c3 100644 --- a/src/views/erp/stock/in/components/StockInItemForm.vue +++ b/src/views/erp/stock/in/components/StockInItemForm.vue @@ -13,10 +13,10 @@ - + - + - +