From 39cd1e8029b6a87636e25b71aaf74ec60b25dc4d Mon Sep 17 00:00:00 2001 From: gaojs <757918719@qq.com> Date: Thu, 19 Sep 2024 17:21:15 +0800 Subject: [PATCH] =?UTF-8?q?WMS=20bug=20=20HL-5968=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E3=80=8A=E9=9A=94=E7=A6=BB=E8=BD=AC=E5=90=88=E6=A0=BC-?= =?UTF-8?q?=E7=BA=BF=E8=BE=B9=E3=80=8B=E5=8A=9F=E8=83=BD=20=E9=99=A4?= =?UTF-8?q?=E5=8E=BB=E5=AF=BC=E5=85=A5=E5=9D=87=E5=B7=B2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/inventorymoveJobMain/index.ts | 12 + src/api/wms/inventorymoveRecordMain/index.ts | 14 +- src/api/wms/inventorymoveRequestMain/index.ts | 11 + .../inventorymoveJobMain/index.vue | 18 +- .../inventorymoveRecordMain/index.vue | 17 +- .../inventorymoveRequestMain/index.vue | 2 +- .../inventorymoveRequestMainHOLDWIP/index.vue | 748 ++++++++++++++ .../inventorymoveRequestMain.data.ts | 947 ++++++++++++++++++ 8 files changed, 1764 insertions(+), 5 deletions(-) create mode 100644 src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue create mode 100644 src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/inventorymoveRequestMain.data.ts diff --git a/src/api/wms/inventorymoveJobMain/index.ts b/src/api/wms/inventorymoveJobMain/index.ts index 177d2cf08..11e2341c5 100644 --- a/src/api/wms/inventorymoveJobMain/index.ts +++ b/src/api/wms/inventorymoveJobMain/index.ts @@ -119,6 +119,18 @@ export const exportHoldToOkJobMain = async (params) => { } } +// 导出隔离转线边任务主 Excel +export const exportHoldToWipJobMain = async (params) => { + params.businessType = 'HoldToWip' + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data }) + } else { + return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params }) + } +} + // 导出隔离转报废任务主 Excel export const exportHoldToScrapJobMain = async (params) => { params.businessType = 'HoldToScrap' diff --git a/src/api/wms/inventorymoveRecordMain/index.ts b/src/api/wms/inventorymoveRecordMain/index.ts index b096c3511..79e6afd82 100644 --- a/src/api/wms/inventorymoveRecordMain/index.ts +++ b/src/api/wms/inventorymoveRecordMain/index.ts @@ -104,6 +104,18 @@ export const exportHoldToOkRecordMain = async (params) => { } } +// 导出隔离转线边记录主 Excel +export const exportHoldToWipRecordMain = async (params) => { + params.businessType = 'HoldToWip' + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data }) + } else { + return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params }) + } +} + // 导出隔离转报废记录主 Excel export const exportHoldToScrapRecordMain = async (params) => { params.businessType = 'HoldToScrap' @@ -158,4 +170,4 @@ export const receive = (id) => { // 拒收隔离收货 export const refuse = (id) => { return request.put({ url: '/wms/inventorymove-record-main/refuse?id=' + id }) -} \ No newline at end of file +} diff --git a/src/api/wms/inventorymoveRequestMain/index.ts b/src/api/wms/inventorymoveRequestMain/index.ts index f7bfa0704..2bcac86d2 100644 --- a/src/api/wms/inventorymoveRequestMain/index.ts +++ b/src/api/wms/inventorymoveRequestMain/index.ts @@ -92,6 +92,17 @@ export const exportHoldToOkRequestMain = async (params) => { } } +export const exportHoldToWipRequestMain = async (params) => { + params.businessType = 'HoldToWip' + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data }) + } else { + return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params }) + } +} + // 导出隔离转报废申请主 Excel export const exportHoldToScrapRequestMain = async (params) => { params.businessType = 'HoldToScrap' diff --git a/src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue b/src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue index 40b0ceec8..f242cd0cf 100644 --- a/src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue +++ b/src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue @@ -75,6 +75,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons' import { CACHE_KEY, useCache } from '@/hooks/web/useCache' import { formatDate } from '@/utils/formatTime' import { usePageLoading } from '@/hooks/web/usePageLoading' +import {exportHoldToWipJobMain} from "@/api/wms/inventorymoveJobMain"; const { loadStart, loadDone } = usePageLoading() // 库存转移任务主 defineOptions({ name: 'InventorymoveJobMain' }) @@ -172,7 +173,17 @@ const importFileName = ref() // toInventoryStatus.value = "OK" businessType.value = 'HoldToOk' importFileName.value = '隔离转合格任务' -} else if ( routeName.value == 'HoldtoscrapJobMain') { +} else if ( routeName.value == 'HoldtoWipJobMain') { + tableObject.params = { + // fromInventoryStatus: 'HOLD', + // toInventoryStatus:'OK', + businessType :'HoldtoWip' + } + // fromInventoryStatus.value = 'HOLD' + // toInventoryStatus.value = "OK" + businessType.value = 'HoldtoWip' + importFileName.value = '隔离转线边任务' + }else if ( routeName.value == 'HoldtoscrapJobMain') { tableObject.params = { // fromInventoryStatus: 'HOLD', // toInventoryStatus:'SCRAP', @@ -315,7 +326,10 @@ const handleExport = async () => { }else if ( routeName.value == 'HoldtookJobMain') { const data = await InventorymoveJobMainApi.exportHoldToOkJobMain(tableObject.params) download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) - }else if ( routeName.value == 'HoldtoscrapJobMain') { + }else if ( routeName.value == 'HoldtoWipJobMain') { + const data = await InventorymoveJobMainApi.exportHoldToWipJobMain(tableObject.params) + download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) + }else if ( routeName.value == 'HoldtoscrapJobMain') { const data = await InventorymoveJobMainApi.exportHoldToScrapJobMain(tableObject.params) download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) }else if ( routeName.value == 'OktoscrapJobMain') { diff --git a/src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue b/src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue index 74cc549e2..5cd8e4be7 100644 --- a/src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue +++ b/src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue @@ -73,6 +73,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons' import { CACHE_KEY, useCache } from '@/hooks/web/useCache' import { formatDate } from '@/utils/formatTime' import { usePageLoading } from '@/hooks/web/usePageLoading' +import {exportHoldToWipRecordMain} from "@/api/wms/inventorymoveRecordMain"; const { loadStart, loadDone } = usePageLoading() // 库存转移记录主 defineOptions({ name: 'InventorymoveRecordMain' }) @@ -135,7 +136,18 @@ const { tableObject, tableMethods } = useTable({ businessType.value = 'HoldtoOk' importFileName.value = '隔离转合格记录' recordImport.value = true; -} else if ( routeName.value == 'HoldtoscrapRecordMain') { +}else if ( routeName.value == 'HoldtoWipRecordMain') { + tableObject.params = { + // fromInventoryStatus: 'HOLD', + // toInventoryStatus:'OK', + businessType :'HoldtoWip' + } + // fromInventoryStatus.value = 'HOLD' + // toInventoryStatus.value = "OK" + businessType.value = 'HoldtoWip' + importFileName.value = '隔离转线边记录' + recordImport.value = true; + } else if ( routeName.value == 'HoldtoscrapRecordMain') { tableObject.params = { // fromInventoryStatus: 'HOLD', // toInventoryStatus:'SCRAP', @@ -256,6 +268,9 @@ const handleExport = async () => { }else if ( routeName.value == 'HoldtookRecordMain') { const data = await InventorymoveRecordMainApi.exportHoldToOkRecordMain(tableObject.params) download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) + }else if ( routeName.value == 'HoldtoWipRecordMain') { + const data = await InventorymoveRecordMainApi.exportHoldToWipRecordMain(tableObject.params) + download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) }else if ( routeName.value == 'HoldtoscrapRecordMain') { const data = await InventorymoveRecordMainApi.exportHoldToScrapRecordMain(tableObject.params) download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) diff --git a/src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue index ba9fdea29..9b168764f 100644 --- a/src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue +++ b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue @@ -736,6 +736,7 @@ const submitForm = async (formType, submitData) => { message.warning('从库位和到库位不能相同') return } + data.businessType = businessType.value data.subList = tableData.value // 拼接子表数据参数 let isExist = false tableData.value.forEach(item => { @@ -835,7 +836,6 @@ onMounted(async () => { } //隔离转合格 else if(routeName.value == "HoldtookRequestMain"){ - console.log("sssssssssssssssss"); importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateHoldOk() } else { diff --git a/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue new file mode 100644 index 000000000..cd3b631ce --- /dev/null +++ b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue @@ -0,0 +1,748 @@ + + + diff --git a/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/inventorymoveRequestMain.data.ts b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/inventorymoveRequestMain.data.ts new file mode 100644 index 000000000..e6fe0cb00 --- /dev/null +++ b/src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/inventorymoveRequestMain.data.ts @@ -0,0 +1,947 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' + +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' + +import * as WarehouseApi from '@/api/wms/warehouse' +import { Warehouse } from '@/views/wms/basicDataManage/factoryModeling/warehouse/warehouse.data' + +const { t } = useI18n() // 国际化 + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'MoveRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + +/** + * @returns {Array} 库存转移申请主表 + */ +export const InventorymoveRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isForm: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择从仓库代码', + searchField: 'code', + searchTitle: '仓库基础信息', + searchAllSchemas: Warehouse.allSchemas, + searchPage: WarehouseApi.pageBusinessTypeToWarehouse, + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择从仓库代码', + searchField: 'code', + searchTitle: '仓库基础信息', + searchAllSchemas: Warehouse.allSchemas, + searchPage: WarehouseApi.pageBusinessTypeToWarehouse, + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + } + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm: false, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + // { + // label: '从库区类型范围', + // field: 'fromAreaTypes', + // // dictType: DICT_TYPE.AREA_TYPE, + // // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + // { + // label: '从库区代码范围', + // field: 'fromAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + + // { + // label: '到库区类型范围', + // field: 'toAreaTypes', + // // dictType: DICT_TYPE.AREA_TYPE, + // // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch: true, + // isForm: false, + // }, + // { + // label: '到库区代码范围', + // field: 'toAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + // { + // label: '业务类型', + // field: 'businessType', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // value: 'Move', + // componentProps: { + // disabled: true + // } + // }, + // isForm: false, + // }, + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // isForm: false, + // table: { + // width: 150 + // }, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userDeptArray.find((account) => account.id == cellValue)?.name + // }, + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + // }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '自动提交', + // field: 'autoCommit', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // isForm: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: requestsettingData.autoCommit, + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled: true + // } + // } + // }, + // { + // label: '自动通过', + // field: 'autoAgree', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // isForm: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: requestsettingData.autoAgree, + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled: true + // } + // } + // }, + // { + // label: '自动执行', + // field: 'autoExecute', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // isForm: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: requestsettingData.autoExecute, + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled: true + // } + // } + // }, + // { + // label: '直接生成记录', + // field: 'directCreateRecord', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isForm: false, + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: requestsettingData.directCreateRecord, + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled: true + // } + // } + // }, + // { + // label: '使用在途库', + // field: 'useOnTheWayLocation', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + isTable: true, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + isTable: false + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) + +//表单校验 +export const InventorymoveRequestMainRules = reactive({ + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'blur' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 库存转移申请子表 + */ +export const InventorymoveRequestDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + hiddenInMain: true, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + multiple:true, + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择从包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.selectLocationTypeToBalance, + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择从包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.selectLocationTypeToBalance, + } + } + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm: { + // disabled: true + // }, + // form: { + // componentProps: { + // disabled: true + // } + // } + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false, + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + searchCondition: [ + { + key: 'type', + value: 'businessType', + isMainValue: true + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + isRepeat:true, + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + searchCondition: [ + { + key: 'type', + value: 'businessType', + isMainValue: true + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + } + }, + { + label: '从库存状态', + field: 'fromInventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'Select' + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '到库存状态', + field: 'toInventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'Select' + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + hiddenInMain: true, + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + hiddenInMain: true, + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + hiddenInMain: true, + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + hiddenInMain: true, + isTableForm: false, + isForm: false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + isTableForm: false, + isForm: false + }, + // { + // label: '最后更新时间', + // field: 'updateTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: { width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isForm: false + // }, + // { + // label: '最后更新者', + // field: 'updater', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + hiddenInMain: true, + isTableForm:false, + } +])) + +//表单校验 +export const InventorymoveRequestDetailRules = reactive({ + itemCode: [ + { required: true, message: '请点击从包装号选择物料代码', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + fromInventoryStatus: [ + { required: true, message: '请选择从库存状态', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +})