diff --git a/.env.wyf b/.env.wyf index ee1d6eb3a..4c5de71c6 100644 --- a/.env.wyf +++ b/.env.wyf @@ -4,9 +4,9 @@ NODE_ENV=test VITE_DEV=false # 请求路径 -VITE_BASE_URL='http://192.168.0.108:12080' +VITE_BASE_URL='http://192.168.0.113:12080' # 上传路径 -VITE_UPLOAD_URL='http://192.168.0.108:12080/admin-api/infra/file/upload' +VITE_UPLOAD_URL='http://192.168.0.113:12080/admin-api/infra/file/upload' # # 请求路径 # VITE_BASE_URL='http://dev.ccwin-in.com:25300/api' diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts index 4b21cda4d..15189a33d 100644 --- a/src/api/wms/balance/index.ts +++ b/src/api/wms/balance/index.ts @@ -150,3 +150,14 @@ export const selectLocationTypeToBalance = async (params) => { return request.get({ url: '/wms/balance/pageLocationCodeToBalance', params}) } } + +// 获得配置筛选出的库存余额分页 +export const selectConfigToBalance = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/pageConfigToBalanceSenior', data }) + } else { + return request.get({ url: '/wms/balance/pageConfigToBalance', params}) + } +} diff --git a/src/api/wms/containerDetailRequest/index.ts b/src/api/wms/containerDetailRequest/index.ts new file mode 100644 index 000000000..a88d054ca --- /dev/null +++ b/src/api/wms/containerDetailRequest/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface ContainerDetailRequestVO { + id: number + masterId: number + number: string + containerNumber: string + fromLocationCode: string + toLocationCode: string + qty: number + uom: string + remark: string + siteId: string + concurrencyStamp: number + fromOwnerCode: string + toOwnerCode: string +} + +// 查询器具管理申请子列表 +export const getContainerDetailRequestPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-detail-request/senior', data }) + } else { + return await request.get({ url: `/wms/container-detail-request/page`, params }) + } +} + +// 查询器具管理申请子详情 +export const getContainerDetailRequest = async (id: number) => { + return await request.get({ url: `/wms/container-detail-request/get?id=` + id }) +} + +// 新增器具管理申请子 +export const createContainerDetailRequest = async (data: ContainerDetailRequestVO) => { + return await request.post({ url: `/wms/container-detail-request/create`, data }) +} + +// 修改器具管理申请子 +export const c = async (data: ContainerDetailRequestVO) => { + return await request.put({ url: `/wms/container-detail-request/update`, data }) +} + +// 删除器具管理申请子 +export const deleteContainerDetailRequest = async (id: number) => { + return await request.delete({ url: `/wms/container-detail-request/delete?id=` + id }) +} + +// 导出器具管理申请子 Excel +export const exportContainerDetailRequest = async (params) => { + return await request.download({ url: `/wms/container-detail-request/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-detail-request/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerMainRequest/index.ts b/src/api/wms/containerMainRequest/index.ts new file mode 100644 index 000000000..35e7a9f8d --- /dev/null +++ b/src/api/wms/containerMainRequest/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +export interface ContainerMainRequestVO { + id: number + type: string + available: string + remark: string + extraProperties: string + concurrencyStamp: number + siteId: string +} + +// 查询器具管理申请主列表 +export const getContainerMainRequestPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-main-request/senior', data }) + } else { + return await request.get({ url: `/wms/container-main-request/page`, params }) + } +} + +// 查询器具管理申请主详情 +export const getContainerMainRequest = async (id: number) => { + return await request.get({ url: `/wms/container-main-request/get?id=` + id }) +} + +// 新增器具管理申请主 +export const createContainerMainRequest = async (data: ContainerMainRequestVO) => { + return await request.post({ url: `/wms/container-main-request/create`, data }) +} + +// 修改器具管理申请主 +export const updateContainerMainRequest = async (data: ContainerMainRequestVO) => { + return await request.put({ url: `/wms/container-main-request/update`, data }) +} + +// 删除器具管理申请主 +export const deleteContainerMainRequest = async (id: number) => { + return await request.delete({ url: `/wms/container-main-request/delete?id=` + id }) +} + +// 导出器具管理申请主 Excel +export const exportContainerMainRequest = async (params) => { + return await request.download({ url: `/wms/container-main-request/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-main-request/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/container-main-request/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/container-main-request/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/container-main-request/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/container-main-request/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/container-main-request/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/container-main-request/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/containerRecordMain/index.ts b/src/api/wms/containerRecordMain/index.ts new file mode 100644 index 000000000..ea84c1260 --- /dev/null +++ b/src/api/wms/containerRecordMain/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ContainerRecordMainVO { + id: number + type: string + number: string + requestNumber: string + status: string + available: string + remark: string + extraProperties: string + concurrencyStamp: number + siteId: string + departmentCode: string +} + +// 查询器具管理记录主列表 +export const getContainerRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-record-main/page`, params }) + } +} + +// 查询器具管理记录主详情 +export const getContainerRecordMain = async (id: number) => { + return await request.get({ url: `/wms/container-record-main/get?id=` + id }) +} + +// 新增器具管理记录主 +export const createContainerRecordMain = async (data: ContainerRecordMainVO) => { + return await request.post({ url: `/wms/container-record-main/create`, data }) +} + +// 修改器具管理记录主 +export const updateContainerRecordMain = async (data: ContainerRecordMainVO) => { + return await request.put({ url: `/wms/container-record-main/update`, data }) +} + +// 删除器具管理记录主 +export const deleteContainerRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/container-record-main/delete?id=` + id }) +} + +// 导出器具管理记录主 Excel +export const exportContainerRecordMain = async (params) => { + return await request.download({ url: `/wms/container-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/itembasic/index.ts b/src/api/wms/itembasic/index.ts index 20f58f85c..a92781ac3 100644 --- a/src/api/wms/itembasic/index.ts +++ b/src/api/wms/itembasic/index.ts @@ -98,4 +98,14 @@ export const selectTypeToItembasic = async (params) => { } else { return await request.get({ url: `/wms/itembasic/pageTypeToItembasic`, params }) } +} + +// 查询物料类型为器具的信息列表 +export const selectConfigToItembasic = async (params) => { + if (params.isSearch) { + const data = {...params} + return request.post({ url: '/wms/itembasic/pageConfigToItembasicSenior', data }) + } else { + return await request.get({ url: `/wms/itembasic/pageConfigToItembasic`, params }) + } } \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 90dddeceb..170df34ab 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -281,6 +281,7 @@ export enum DICT_TYPE { PLAN_PRODUCTION_TYPE = "plan_production_type", // 生产计划类型 DELIVER_TYPE="deliver_type",//发货类型 BILL_TYPE="bill_type", // 发票类型 + CONTAIN_MANAGE_TYPE="contain_menage_type",//器具管理类型 // ========== 业务 - mes ========== MESDO_STATUS= 'mes_do_status', // 工单执行状态 diff --git a/src/views/wms/basicDataManage/itemManage/packageunit/index.vue b/src/views/wms/basicDataManage/itemManage/packageunit/index.vue index 1177ae564..075c78dbd 100644 --- a/src/views/wms/basicDataManage/itemManage/packageunit/index.vue +++ b/src/views/wms/basicDataManage/itemManage/packageunit/index.vue @@ -149,6 +149,31 @@ const buttonTableClick = async (val, row) => { /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { + if(type == "update"){ + Packageunit.allSchemas.formSchema.forEach((item) => { + if (item.field == 'code') { + item.componentProps.disabled = true + } + if (item.field == 'name') { + item.componentProps.disabled = true + } + if (item.field == 'manageBalance') { + item.componentProps.disabled = true + } + }) + }else { + Packageunit.allSchemas.formSchema.forEach((item) => { + if (item.field == 'code') { + item.componentProps.disabled = false + } + if (item.field == 'name') { + item.componentProps.disabled = false + } + if (item.field == 'manageBalance') { + item.componentProps.disabled = false + } + }) + } basicFormRef.value.open(type, row) } diff --git a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts new file mode 100644 index 000000000..b15436d33 --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts @@ -0,0 +1,418 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { TableColumn } from '@/types/table' +import { dateFormatter } from '@/utils/formatTime' + +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 getRequestsettingApi from '@/api/wms/requestsetting/index' + +// 表单校验 +export const ContainerMainRequestRules = reactive({ + type:[ + { required: true, message: '请选择类型', trigger: 'change' }, + ], + concurrencyStamp: [required], +}) + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'ContainerRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + + // 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() +const userDeptArray:any = [userDept] + +export const ContainerMainRequest = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 100 + }, + },{ + label: '类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.CONTAIN_MANAGE_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 120 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + table: { + width: 150 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm: false, + table: { + width: 150 + }, + isTable:false, + 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: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + 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: false, + 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: false, + 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: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + table: { + width: 200 + }, + isForm: false, + }, + { + label: '扩展属性', + field: 'extraProperties', + sort: 'custom', + isForm: false, + isTable: false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + isForm: false, + isTable: false + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isForm: false, + table: { + width: 100 + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +// 表单校验 +export const ContainerDetailRequestRules = reactive({ + fromLocationCode: [required], + toLocationCode: [required], + concurrencyStamp: [required], +}) + +export const ContainerDetailRequest = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '主表ID', + field: 'masterId', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择器具号', + searchField: 'itemCode', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.selectConfigToBalance, + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择器具号', + searchField: 'itemCode', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.selectConfigToBalance, + } + } + }, + { + label: '来源库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '目标库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + table: { + width: 120 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + table: { + width: 200 + }, + isForm: false, + isTableForm: false + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + diff --git a/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue new file mode 100644 index 000000000..38ebcd11c --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue @@ -0,0 +1,424 @@ + + + diff --git a/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/containerRecordMain.data.ts b/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/containerRecordMain.data.ts new file mode 100644 index 000000000..6c7faacb0 --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/containerRecordMain.data.ts @@ -0,0 +1,111 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ContainerRecordMainRules = reactive({ + available: [required], + concurrencyStamp: [required], +}) + +export const ContainerRecordMain = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false, + }, + { + label: '类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.CONTAIN_MANAGE_TYPE, + dictClass: 'string', + isSearch: true, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Radio' + }, + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '扩展属性', + field: 'extraProperties', + sort: 'custom', + isSearch: true, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isSearch: true, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + isForm: false, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/index.vue b/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/index.vue new file mode 100644 index 000000000..c8321bf5d --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/containerRecordMain/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue b/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue new file mode 100644 index 000000000..dadb6ac5c --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue @@ -0,0 +1,385 @@ + + + +./initialContainerMainRequest.data \ No newline at end of file diff --git a/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts b/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts new file mode 100644 index 000000000..0f4e928c3 --- /dev/null +++ b/src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts @@ -0,0 +1,446 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { TableColumn } from '@/types/table' +import { dateFormatter } from '@/utils/formatTime' + +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 ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' + +// 表单校验 +export const ContainerMainRequestRules = reactive({ + type:[ + { required: true, message: '请选择类型', trigger: 'change' }, + ], + concurrencyStamp: [required], +}) + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'ContainerRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + + // 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { ItemBasic } from '@/utils/disposition/formFields' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() +const userDeptArray:any = [userDept] + +export const ContainerMainRequest = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 100 + }, + }, + { + 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: 'type', + sort: 'custom', + dictType: DICT_TYPE.CONTAIN_MANAGE_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 120 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + table: { + width: 150 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm: false, + table: { + width: 150 + }, + isTable:false, + 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: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + 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: false, + 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: false, + 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: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + table: { + width: 200 + }, + isForm: false, + }, + { + label: '扩展属性', + field: 'extraProperties', + sort: 'custom', + isForm: false, + isTable: false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + isForm: false, + isTable: false + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isForm: false, + table: { + width: 100 + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +// 表单校验 +export const ContainerDetailRequestRules = reactive({ + fromLocationCode: [required], + toLocationCode: [required], + concurrencyStamp: [required], +}) + +export const ContainerDetailRequest = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '主表ID', + field: 'masterId', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择器具号', + searchField: 'itemCode', + searchTitle: '器具信息', + searchAllSchemas: Itembasic.allSchemas, + searchPage: ItembasicApi.selectConfigToItembasic, + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择器具号', + searchField: 'itemCode', + searchTitle: '器具信息', + searchAllSchemas: Itembasic.allSchemas, + searchPage: ItembasicApi.selectConfigToItembasic, + } + } + }, + { + label: '目标库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择到库位代码', + searchField: 'code', + searchTitle: '库位信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.selectBusinessTypeToLocation, + } + } + }, + { + label: '到数量', + field: 'toQty', + sort: 'custom', + }, + { + 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: 'remark', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + table: { + width: 200 + }, + isForm: false, + isTableForm: false + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + isForm: false, + isTableForm: false, + isTable: false + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) +