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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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' }
+ ],
+})