From 3c1c84a3a765d26fc3792ad3c28dfacdd2b02169 Mon Sep 17 00:00:00 2001 From: ljlong_2630 Date: Wed, 5 Jun 2024 15:01:51 +0800 Subject: [PATCH 01/44] =?UTF-8?q?=E5=B7=A5=E8=A3=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/eam/toolAccounts/index.ts | 21 +- src/api/eam/toolEquipmentIn/index.ts | 64 +++ src/api/eam/toolEquipmentOut/index.ts | 64 +++ src/api/wms/process/index.ts | 5 + src/api/wms/productionline/index.ts | 6 + src/api/wms/workstation/index.ts | 6 + src/components/Detail/src/DetailLedger.vue | 111 +++-- src/utils/dict.ts | 5 +- .../equipmentAccounts.data.ts | 248 ++++++++++- src/views/eam/equipmentAccounts/index.vue | 54 ++- .../equipmentShutdown.data.ts | 173 +++++++- .../equipmentSigning/equipmentSigning.data.ts | 129 ++++-- src/views/eam/equipmentSigning/index.vue | 270 ++++++++++++ .../equipmentTransferRecord.data.ts | 351 ++++++++++++--- .../eam/equipmentTransferRecord/index.vue | 32 +- src/views/eam/toolAccounts/index.vue | 231 +++++++++- .../eam/toolAccounts/toolAccounts.data.ts | 405 +++++++++++++++++- src/views/eam/toolEquipmentIn/index.vue | 290 +++++++++++++ .../toolEquipmentIn/toolEquipmentIn.data.ts | 350 +++++++++++++++ src/views/eam/toolEquipmentOut/index.vue | 253 +++++++++++ .../toolEquipmentOut/toolEquipmentOut.data.ts | 230 ++++++++++ 21 files changed, 3133 insertions(+), 165 deletions(-) create mode 100644 src/api/eam/toolEquipmentIn/index.ts create mode 100644 src/api/eam/toolEquipmentOut/index.ts create mode 100644 src/views/eam/equipmentSigning/index.vue create mode 100644 src/views/eam/toolEquipmentIn/index.vue create mode 100644 src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts create mode 100644 src/views/eam/toolEquipmentOut/index.vue create mode 100644 src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts diff --git a/src/api/eam/toolAccounts/index.ts b/src/api/eam/toolAccounts/index.ts index 0f5ebd032..bf938205e 100644 --- a/src/api/eam/toolAccounts/index.ts +++ b/src/api/eam/toolAccounts/index.ts @@ -42,38 +42,43 @@ export const getToolAccountsPage = async (params) => { if (params.isSearch) { delete params.isSearch const data = {...params} - return await request.post({ url: '/eam/tool-accounts/senior', data }) + return await request.post({ url: '/eam/tool/tool-accounts/senior', data }) } else { - return await request.get({ url: `/eam/tool-accounts/page`, params }) + return await request.get({ url: `/eam/tool/tool-accounts/page`, params }) } } // 查询工装台账详情 export const getToolAccounts = async (id: number) => { - return await request.get({ url: `/eam/tool-accounts/get?id=` + id }) + return await request.get({ url: `/eam/tool/tool-accounts/get?id=` + id }) } // 新增工装台账 export const createToolAccounts = async (data: ToolAccountsVO) => { - return await request.post({ url: `/eam/tool-accounts/create`, data }) + return await request.post({ url: `/eam/tool/tool-accounts/create`, data }) } // 修改工装台账 export const updateToolAccounts = async (data: ToolAccountsVO) => { - return await request.put({ url: `/eam/tool-accounts/update`, data }) + return await request.put({ url: `/eam/tool/tool-accounts/update`, data }) } // 删除工装台账 export const deleteToolAccounts = async (id: number) => { - return await request.delete({ url: `/eam/tool-accounts/delete?id=` + id }) + return await request.delete({ url: `/eam/tool/tool-accounts/delete?id=` + id }) } // 导出工装台账 Excel export const exportToolAccounts = async (params) => { - return await request.download({ url: `/eam/tool-accounts/export-excel`, params }) + return await request.download({ url: `/eam/tool/tool-accounts/export-excel`, params }) } // 下载用户导入模板 export const importTemplate = () => { - return request.download({ url: '/eam/tool-accounts/get-import-template' }) + return request.download({ url: '/eam/tool/tool-accounts/get-import-template' }) +} + +// 查询工装台账列表 +export const getToolAccountsNoPage = async (params) => { + return await request.get({ url: `/eam/tool/tool-accounts/noPage`, params }) } \ No newline at end of file diff --git a/src/api/eam/toolEquipmentIn/index.ts b/src/api/eam/toolEquipmentIn/index.ts new file mode 100644 index 000000000..d175f6dd2 --- /dev/null +++ b/src/api/eam/toolEquipmentIn/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface ToolEquipmentInVO { + id: number + describing: string + toolCode: string + status: string + approver: number + approveContent: string + approveTime: Date + factoryAreaCode: string + workshopCode: string + lineCode: string + processCode: string + workstationCode: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询工装入库记录列表 +export const getToolEquipmentInPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/tool/tool-equipment-in/senior', data }) + } else { + return await request.get({ url: `/eam/tool/tool-equipment-in/page`, params }) + } +} + +// 查询工装入库记录详情 +export const getToolEquipmentIn = async (id: number) => { + return await request.get({ url: `/eam/tool/tool-equipment-in/get?id=` + id }) +} + +// 新增工装入库记录 +export const createToolEquipmentIn = async (data: ToolEquipmentInVO) => { + return await request.post({ url: `/eam/tool/tool-equipment-in/create`, data }) +} + +// 修改工装入库记录 +export const updateToolEquipmentIn = async (data: ToolEquipmentInVO) => { + return await request.put({ url: `/eam/tool/tool-equipment-in/update`, data }) +} + +// 删除工装入库记录 +export const deleteToolEquipmentIn = async (id: number) => { + return await request.delete({ url: `/eam/tool/tool-equipment-in/delete?id=` + id }) +} + +// 导出工装入库记录 Excel +export const exportToolEquipmentIn = async (params) => { + return await request.download({ url: `/eam/tool/tool-equipment-in/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/tool/tool-equipment-in/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/toolEquipmentOut/index.ts b/src/api/eam/toolEquipmentOut/index.ts new file mode 100644 index 000000000..7ffda68c9 --- /dev/null +++ b/src/api/eam/toolEquipmentOut/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface ToolEquipmentOutVO { + id: number + theme: string + toolCode: string + type: string + qty: number + status: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询工装出库记录列表 +export const getToolEquipmentOutPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/tool/tool-equipment-out/senior', data }) + } else { + return await request.get({ url: `/eam/tool/tool-equipment-out/page`, params }) + } +} + +// 查询工装出库记录详情 +export const getToolEquipmentOut = async (id: number) => { + return await request.get({ url: `/eam/tool/tool-equipment-out/get?id=` + id }) +} + +// 新增工装出库记录 +export const createToolEquipmentOut = async (data: ToolEquipmentOutVO) => { + return await request.post({ url: `/eam/tool/tool-equipment-out/create`, data }) +} + +// 修改工装出库记录 +export const updateToolEquipmentOut = async (data: ToolEquipmentOutVO) => { + return await request.put({ url: `/eam/tool/tool-equipment-out/update`, data }) +} + +// 删除工装出库记录 +export const deleteToolEquipmentOut = async (id: number) => { + return await request.delete({ url: `/eam/tool/tool-equipment-out/delete?id=` + id }) +} + +// 导出工装出库记录 Excel +export const exportToolEquipmentOut = async (params) => { + return await request.download({ url: `/eam/tool/tool-equipment-out/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/tool/tool-equipment-out/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/process/index.ts b/src/api/wms/process/index.ts index c89f7e192..c9e5d1d5f 100644 --- a/src/api/wms/process/index.ts +++ b/src/api/wms/process/index.ts @@ -57,4 +57,9 @@ export const exportProcess = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/process/get-import-template' }) +} + +// 查询工序列表 +export const getProcessNoPage = async (params) => { + return await request.get({ url: `/wms/process/noPage`, params }) } \ No newline at end of file diff --git a/src/api/wms/productionline/index.ts b/src/api/wms/productionline/index.ts index 050c8a0fb..85e5fce07 100644 --- a/src/api/wms/productionline/index.ts +++ b/src/api/wms/productionline/index.ts @@ -58,4 +58,10 @@ export const exportProductionline = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/productionline/get-import-template' }) +} + + +// 查询生产线列表 +export const getProductionlineNoPage = async (params) => { + return await request.get({ url: `/wms/productionline/noPage`, params }) } \ No newline at end of file diff --git a/src/api/wms/workstation/index.ts b/src/api/wms/workstation/index.ts index 5eef9a588..780baf167 100644 --- a/src/api/wms/workstation/index.ts +++ b/src/api/wms/workstation/index.ts @@ -70,4 +70,10 @@ export const selectAreaTypeToLocation = async (params) => { } else { return await request.get({ url: `/wms/workstation/pageAreaToLocation`, params }) } +} + + +// 查询工位列表 +export const getWorkstationNoPage = async (params) => { + return await request.get({ url: `/wms/workstation/noPage`, params }) } \ No newline at end of file diff --git a/src/components/Detail/src/DetailLedger.vue b/src/components/Detail/src/DetailLedger.vue index b0f221ab0..5e0964f3e 100644 --- a/src/components/Detail/src/DetailLedger.vue +++ b/src/components/Detail/src/DetailLedger.vue @@ -91,28 +91,16 @@ - - - - - - - - + + + + {{ value }} + + @@ -447,6 +435,11 @@ const props = defineProps({ required: false, default: null }, + dynamicInfoFields: { + type: Object, + required: false, + default: null + } // 附件 备注 变更记录 别名 }) const isShowDrawer = ref(false) @@ -457,6 +450,8 @@ const fileParmas = ref({ funcCode: props.funcCode, fileBusiType: '' }) +const dynamicInfo = ref() +const dynamicInfoName = ref("") const operationRecordType = ref() const operationRecordList = ref(props.operationRecordList) if (props.isBasic == true) { @@ -480,14 +475,15 @@ if (props.isBasic == true) { const otherList = [...props.annexTable, { + label: '动态信息', + prop: 'DynamicInfo' + },{ label: '拓展属性', prop: 'ExpandProps' - }, - { + },{ label: '操作记录', prop: 'OperationRecord' - }, - { + },{ label:props.annexAlias.label, prop:'Annex' },{ @@ -521,6 +517,8 @@ const initialData = ref([]) const codeLabelPrefix = ref('属性编号') const valueLabelPrefix = ref('属性值') const expandPropsFormRef = ref(); +const operate = ref(false) +const operationTabParam = ref({}) //附件 备注 变更记录 高度计算 const remarkHeight = computed(() => { const tab = unref(tabRef) @@ -646,9 +644,13 @@ const change = (item, index) => { getExtendedPropsList() }else if(item.prop == 'OperationRecord'){ if(props.operationRecordList){ + operate.value = true operationRecordType.value = props.operationRecordList[0]?.value } } + if(item.prop != 'OperationRecord'){ + operate.value = false + } } //主表所需的参数 @@ -693,6 +695,9 @@ const titleValueRef = ref() const count =ref(0) const deviceNumber = ref('') const openDetail = async (row: any, titleName: any, titleValue: any, tableName: any) => { + //动态信息获取 + getDynamicInfo(row) + titleNameRef.value = titleName titleValueRef.value = titleValue deviceNumber.value = row.number?row.number:row.code @@ -771,6 +776,7 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: detailLoading.value = false } } + } defineExpose({ openDetail, formRef }) // 提供 open 方法,用于打开弹窗 @@ -1125,6 +1131,28 @@ const getExtendedPropsList = async () => { } const handleOperationTabsChange = async (val) => { + if(val == 'report'){ + operationTabParam.value = { + 'equipmentCode' : deviceNumber.value, + } + }else if(val == 'repair'){ + operationTabParam.value = { + 'equipmentCode' : deviceNumber.value, + } + }else if(val == 'maintenance'){ + operationTabParam.value = { + 'equipmentCode' : deviceNumber.value, + } + }else if(val == 'inspection'){ + operationTabParam.value = { + 'equipmentCode' : deviceNumber.value, + } + }else if(val == 'spot_check'){ + operationTabParam.value = { + 'equipmentCode' : deviceNumber.value, + } + } + tableObjectRef.value.loading = false emit("handleOperationTabsChange",val) } @@ -1140,7 +1168,6 @@ const dialogUploadNumber = ref() const dialogUploadBusiCode = ref() const dialogFormKey = ref(0) const openDialog = async(row: any, titleName: any, titleValue: any) => { - debugger const { tableObject, tableMethods } = useTable({ getListApi: props.dialogApiPage, // 分页接口 defaultParams: getDialogParams(row) @@ -1172,7 +1199,8 @@ watch( () => props.apiPage, () => { const { tableObject, tableMethods } = useTable({ - getListApi: props.apiPage // 分页接口 + getListApi: props.apiPage, // 分页接口 + defaultParams: getSubTabParams() }) tableObject.params.masterId = masterParmas.value.masterId detailAllSchemasRef.value = props.detailAllSchemas @@ -1187,6 +1215,32 @@ watch( getList() } ) +const getSubTabParams = () => { + if(operate.value){ + return operationTabParam.value + } +} + +const getDynamicInfo = (row) => { + dynamicInfoName.value = row.name?row.name:"" + // 使用 reduce 方法筛选出符合条件的键值对 + dynamicInfo.value = Object.keys(row).reduce((acc, key) => { + let name = ""; + let value = row[key]; + if (props.dynamicInfoFields?.includes(key)) { + props.allSchemas?.tableColumns?.find((item) => { + if (item.field == key) { + name = item.label; + } + }); + } + if (name) { + acc[name] = value!=undefined&&value!=null&&value!=""?value:'undefined'; // 使用 item.label 作为键,row[key] 作为值 + } + return acc; + }, {}); +} + diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 05d390269..d4a6c4d1b 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -354,5 +354,8 @@ export enum DICT_TYPE { REPAIR_LEVEL = 'repair_level', //维修级别 IS_COMPLETED = 'is_completed', //是否完成 MAINTENANCE_CYCLE ='maintenance_cycle', // 保养周期 - EAM_ORDER_STATUS = 'eam_order_status' + EAM_ORDER_STATUS = 'eam_order_status',// 工单状态 + TOOL_CLASS = 'tool_class', //工装类型 + TOOL_OUT_TYPE = 'tool_out_type', //工装出库类型 + } diff --git a/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts b/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts index f3bbe38b9..e8e9609dd 100644 --- a/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts +++ b/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts @@ -9,10 +9,19 @@ import * as EquipmentSupplierApi from '@/api/eam/equipmentSupplier' import { EquipmentManufacturer } from '@/views/eam/equipmentManufacturer/equipmentManufacturer.data' import * as EquipmentManufacturerApi from '@/api/eam/equipmentManufacturer' import * as ConfigApi from '@/api/infra/config' +import * as ProductionlineApi from '@/api/wms/productionline' +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' +import * as ProcessApi from '@/api/wms/process' +import { Process } from '@/views/wms/basicDataManage/factoryModeling/process/process.data' +import * as WorkStationApi from '@/api/wms/workstation' +import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data' + const workshopNoPage = await WorkshopApi.getWorkshopNoPage({}) const equipmentManufacturerNoPage = await EquipmentManufacturerApi.getEquipmentManufacturerNoPage({}) const equipmentSupplierNoPage = await EquipmentSupplierApi.getEquipmentSupplierNoPage({}) +const productionlineNoPage = await ProductionlineApi.getProductionlineNoPage({}); const autoCodeSwitch = await ConfigApi.getConfigKey('deviceCodeAutoSwitch') +// ProductionlineApi.getProductionlinePage const autoSwitch = ref(false) if (autoCodeSwitch == 'TRUE') { autoSwitch.value = true @@ -29,6 +38,7 @@ export const EquipmentAccountsRules = reactive({ power: [ { validator:validateNum, message: '输入功率格式不正确', trigger: 'blur'} ], + workshopName: [required] }) export const EquipmentAccounts = useCrudSchemas(reactive([ @@ -164,7 +174,7 @@ export const EquipmentAccounts = useCrudSchemas(reactive([ filterable: true, } }, - formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { return equipmentSupplierNoPage.find((item) => item.number == cellValue)?.name }, }, @@ -173,6 +183,7 @@ export const EquipmentAccounts = useCrudSchemas(reactive([ field: 'supplierName', sort: 'custom', isSearch: false, + isTable: false, form: { // labelMessage: '信息提示说明!!!', componentProps: { @@ -265,7 +276,7 @@ export const EquipmentAccounts = useCrudSchemas(reactive([ } } }, - formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { return equipmentManufacturerNoPage.find((item) => item.number == cellValue)?.name }, }, @@ -274,6 +285,7 @@ export const EquipmentAccounts = useCrudSchemas(reactive([ field: 'manufactureName', sort: 'custom', isSearch: false, + isTable: false, form: { componentProps: { isSearchList: true, // 开启查询弹窗 @@ -371,17 +383,243 @@ export const EquipmentAccounts = useCrudSchemas(reactive([ }, }, { - label: '工段编号', - field: 'workshopSectionCode', + label: '产线编号', + field: 'lineCode', sort: 'custom', - isSearch: false + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: productionlineNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return productionlineNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '产线编号', + field: 'lineName', + sort: 'custom', + isSearch: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择生产线代码', // 输入框占位文本 + multiple:true, + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '生产线信息', // 查询弹窗标题 + searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'workshopCode', + value:'workshopCode', + message: '请填写车间代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } }, + // { + // label: '工序编号', + // field: 'processCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工序代码', + // searchField: 'code', + // searchTitle: '工序信息', + // searchAllSchemas: Process.allSchemas, + // searchPage: ProcessApi.getProcessPage, + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + // { + // label: '工位编号', + // field: 'workstationCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择工位', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '工位信息', // 查询弹窗标题 + // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 + // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key:'available', + // value:'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, { label: '备注', field: 'remark', sort: 'custom', isSearch: true }, + { + label: '平均故障间隔时间', + field: 'purchaseInterval', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + }, + { + label: '总运行时长', + field: 'totalRunningTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '保养运行时长', + field: 'maintenanceRunningTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '使用次数', + field: 'usageTimes', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + }, + { + label: '上一次检验日期', + field: 'lastInspectionDate', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '设备停机率', + field: 'outageRate', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + }, + { + label: '平均故障恢复时间', + field: 'breakdownRecover', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable: true, + isForm: false, + isTableForm: false, + }, { label: '操作', field: 'action', diff --git a/src/views/eam/equipmentAccounts/index.vue b/src/views/eam/equipmentAccounts/index.vue index 3cea5f4bd..08cac0893 100644 --- a/src/views/eam/equipmentAccounts/index.vue +++ b/src/views/eam/equipmentAccounts/index.vue @@ -62,14 +62,15 @@ :apiPage="apiPage" :dialogApiPage="dialogApiPage" :dialogAllSchemas="dialogAllSchemas" - funcCode="device_mould_picture" + :dynamicInfoFields="dynamicInfoFields" + funcCode="device_mould_file" /> - + + diff --git a/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts b/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts index d0f0950b9..74eaf6585 100644 --- a/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts +++ b/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts @@ -1,6 +1,24 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' +import * as UserApi from '@/api/system/user' +import { EquipmentAccounts,EquipmentAccountsRules } from '../equipmentAccounts/equipmentAccounts.data' +import * as EquipmentAccountsApi from '@/api/eam/equipmentAccounts' +import * as ProductionlineApi from '@/api/wms/productionline' +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' +import * as WorkshopApi from '@/api/wms/workshop' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import * as ProcessApi from '@/api/wms/process' +import { Process } from '@/views/wms/basicDataManage/factoryModeling/process/process.data' +import * as WorkStationApi from '@/api/wms/workstation' +import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data' +export interface User { + id: number, + nickname: string +} + +const userList = ref([]) +userList.value = await UserApi.getSimpleUserList() // 表单校验 export const EquipmentTransferRecordRules = reactive({ equipmentCode: [required], @@ -12,48 +30,51 @@ export const EquipmentTransferRecord = useCrudSchemas(reactive([ label: '设备编码', field: 'equipmentCode', sort: 'custom', - isSearch: true - }, - { - label: '设备类型枚举', - field: 'type', - sort: 'custom', - dictType: DICT_TYPE.DEVICE_TYPE, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 - isSearch: false, + isSearch: true, form: { - component: 'Select' - } - }, - { - label: '操作日期', - field: 'operationDate', - sort: 'custom', - formatter: dateFormatter, - isSearch: false, - search: { - component: 'DatePicker', + colProps: { + span: 24 + }, + // labelMessage: '信息提示说明!!!', componentProps: { - valueFormat: 'YYYY-MM-DD HH:mm:ss', - type: 'daterange', - defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择设备', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '设备信息', // 查询弹窗标题 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchPage: EquipmentAccountsApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] } }, - form: { - component: 'DatePicker', - componentProps: { - type: 'datetime', - valueFormat: 'x' - } - } - }, - { - label: '操作人', - field: 'operationer', - sort: 'custom', - isSearch: false }, // { + // label: '操作人', + // field: 'operationer', + // sort: 'custom', + // isSearch: true, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userList.value.find((item) => item.id == cellValue)?.nickname + // }, + // form: { + // component: 'Select', + // componentProps: { // 假设deptList是部门数据列表 + // options: userList.value, + // optionsAlias: { + // valueField: 'id', + // labelField: 'nickname' + // }, + // disabled: false, + // placeholder: "请选择操作人", + // filterable: true, + // multiple: false, + // } + // } + // }, + // { // label: '原所属厂区编号', // field: 'beforeFactoryAreaCode', // sort: 'custom', @@ -66,42 +87,260 @@ export const EquipmentTransferRecord = useCrudSchemas(reactive([ isSearch: true }, { - label: '原车间编号', - field: 'beforeWorkshopCode', + label: '新地点', + field: 'nowLocation', sort: 'custom', isSearch: true }, { - label: '原工段编号', - field: 'beforeWorkshopSectionCode', + label: '原车间编号', + field: 'beforeWorkshopCode', sort: 'custom', - isSearch: false + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择车间代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, }, { - label: '现地点', - field: 'nowLocation', + label: '新车间编号', + field: 'workshopCode', sort: 'custom', - isSearch: true + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择车间代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, }, - // { - // label: '所属厂区编号', - // field: 'factoryAreaCode', - // sort: 'custom', - // isSearch: true - // }, { - label: '车间编号', - field: 'workshopCode', + label: '原产线编号', + field: 'beforeLineCode', sort: 'custom', - isSearch: true + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择生产线代码', // 输入框占位文本 + multiple:true, + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '生产线信息', // 查询弹窗标题 + searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'workshopCode', + value:'beforeWorkshopCode', + message: '请填写车间代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } }, { - label: '工段编号', - field: 'workshopSectionCode', + label: '新产线编号', + field: 'lineCode', sort: 'custom', - isSearch: false + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择生产线代码', // 输入框占位文本 + multiple:true, + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '生产线信息', // 查询弹窗标题 + searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'workshopCode', + value:'workshopCode', + message: '请填写车间代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } }, // { + // label: '操作日期', + // field: 'operationDate', + // sort: 'custom', + // formatter: dateFormatter, + // isSearch: false, + // 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')] + // } + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // type: 'datetime', + // valueFormat: 'x' + // } + // } + // }, + // { + // label: '原工序编号', + // field: 'beforeProcessCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工序代码', + // searchField: 'code', + // searchTitle: '工序信息', + // searchAllSchemas: Process.allSchemas, + // searchPage: ProcessApi.getProcessPage, + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + // { + // label: '新工序编号', + // field: 'processCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工序代码', + // searchField: 'code', + // searchTitle: '工序信息', + // searchAllSchemas: Process.allSchemas, + // searchPage: ProcessApi.getProcessPage, + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + // { + // label: '原工位编号', + // field: 'beforeWorkstationCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择工位', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '工位信息', // 查询弹窗标题 + // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 + // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key:'available', + // value:'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + + + // { + // label: '新工位编号', + // field: 'workstationCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择工位', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '工位信息', // 查询弹窗标题 + // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 + // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key:'available', + // value:'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + // { // label: '是否可用', // field: 'available', // sort: 'custom', diff --git a/src/views/eam/equipmentTransferRecord/index.vue b/src/views/eam/equipmentTransferRecord/index.vue index dcab8a1ec..1a44b6f4c 100644 --- a/src/views/eam/equipmentTransferRecord/index.vue +++ b/src/views/eam/equipmentTransferRecord/index.vue @@ -48,6 +48,7 @@ :apiCreate="EquipmentTransferRecordApi.createEquipmentTransferRecord" @searchTableSuccess="searchTableSuccess" :isBusiness="false" + @onEnter="onEnter" /> @@ -59,19 +60,25 @@ diff --git a/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts b/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts new file mode 100644 index 000000000..6178bec25 --- /dev/null +++ b/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts @@ -0,0 +1,350 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as WorkshopApi from '@/api/wms/workshop' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import * as ProductionlineApi from '@/api/wms/productionline' +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' +import { ToolAccounts} from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' + +const workshopNoPage = await WorkshopApi.getWorkshopNoPage({}) +const productionlineNoPage = await ProductionlineApi.getProductionlineNoPage({}); +const toolAccountsListNoPage = await ToolAccountsApi.getToolAccountsNoPage({}); + +// 表单校验 +export const ToolEquipmentInRules = reactive({ + toolCode: [required], + status: [required] +}) + +export const ToolEquipmentIn = useCrudSchemas(reactive([ + { + label: '工装', + field: 'toolCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: toolAccountsListNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return toolAccountsListNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '工装', + field: 'toolName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择工装', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '工装信息', // 查询弹窗标题 + searchAllSchemas: ToolAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ToolAccountsApi.getToolAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + }, + { + label: '入库信息描述', + field: 'describing', + sort: 'custom', + isSearch: true, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + { + label: '入库审核状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + // { + // label: '所属厂区编号', + // field: 'factoryAreaCode', + // sort: 'custom', + // isSearch: true + // }, + { + label: '车间编号', + field: 'workshopCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: workshopNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return workshopNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '车间编号', + field: 'workshopName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择车间代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + disable:true, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + }, + { + label: '产线编号', + field: 'lineCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: productionlineNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return productionlineNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '产线编号', + field: 'lineName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择生产线代码', // 输入框占位文本 + multiple:true, + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '生产线信息', // 查询弹窗标题 + searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'workshopCode', + value:'workshopCode', + message: '请填写车间代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + // { + // label: '工序编号', + // field: 'processCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工序代码', + // searchField: 'code', + // searchTitle: '工序信息', + // searchAllSchemas: Process.allSchemas, + // searchPage: ProcessApi.getProcessPage, + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + // { + // label: '工位编号', + // field: 'workstationCode', + // sort: 'custom', + // isSearch: true, + // form:{ + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择工位', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '工位信息', // 查询弹窗标题 + // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 + // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key:'productionLineCode', + // value:'lineCode', + // message: '请填写生产线代码!', + // isMainValue: true + // },{ + // key:'workshopCode', + // value:'workshopCode', + // message: '请填写车间代码!', + // isMainValue: true + // },{ + // key:'available', + // value:'TRUE', + // isMainValue: false + // }] + // } + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + // { + // label: '是否可用', + // field: 'available', + // sort: 'custom', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + // isSearch: false, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/toolEquipmentOut/index.vue b/src/views/eam/toolEquipmentOut/index.vue new file mode 100644 index 000000000..e8238edef --- /dev/null +++ b/src/views/eam/toolEquipmentOut/index.vue @@ -0,0 +1,253 @@ + + + diff --git a/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts b/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts new file mode 100644 index 000000000..ceb0b8f5d --- /dev/null +++ b/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts @@ -0,0 +1,230 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { ToolAccounts} from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' +import * as UserApi from '@/api/system/user' +const toolAccountsListNoPage = await ToolAccountsApi.getToolAccountsNoPage({}); +const userListNoPage = await UserApi.getSimpleUserList(); + +// 表单校验 +export const ToolEquipmentOutRules = reactive({ + theme: [required], + toolCode: [required], + type: [required], + qty: [required], + status: [required], + applyer: [required], + concurrencyStamp: [required] +}) + +export const ToolEquipmentOut = useCrudSchemas(reactive([ + { + label: '工装', + field: 'toolCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: toolAccountsListNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return toolAccountsListNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '工装', + field: 'toolName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择工装', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '工装信息', // 查询弹窗标题 + searchAllSchemas: ToolAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ToolAccountsApi.getToolAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + }, + { + label: '出库主题', + field: 'theme', + sort: 'custom', + isSearch: true + }, + { + label: '出库类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.TOOL_OUT_TYPE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select', + } + }, + { + label: '出库申请人', + field: 'applyer', + sort: 'custom', + isSearch: true, + form: { + component: 'Select', + componentProps: { + options: userListNoPage, + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userListNoPage.find((item) => item.id == cellValue)?.nickname + }, + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: true, + form: { + component: 'Select', + componentProps: { + options: userListNoPage, + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userListNoPage.find((item) => item.id == cellValue)?.nickname + }, + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '自动审核', + field: 'autoExamine', + sort: 'custom', + isForm: false, + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + // { + // label: '是否可用', + // field: 'available', + // sort: 'custom', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + // isSearch: false, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) From b60022ce964891fb805078dab10ccda26e5200e0 Mon Sep 17 00:00:00 2001 From: yufei0306 <13417315+yufei0306@user.noreply.gitee.com> Date: Thu, 6 Jun 2024 17:26:34 +0800 Subject: [PATCH 02/44] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/rowDrop/index.vue | 6 ++++-- .../supplierdeliverRequestMain.data.ts | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/rowDrop/index.vue b/src/components/rowDrop/index.vue index 2dd0fc663..cfc21a0f5 100644 --- a/src/components/rowDrop/index.vue +++ b/src/components/rowDrop/index.vue @@ -91,7 +91,7 @@ const save = () => { myTableColumns.splice(myTableColumns[actionData],1) myTableColumns = [...myTableColumns,actionData] } - if(props.allSchemas?.tableColumns[0].fixed=='left'){ + if(props.allSchemas?.tableColumns[0].fixed=='left'&&!saveDate.find(item=>item.fixed=='left')){ saveDate.push(props.allSchemas?.tableColumns[0]) } allData.value.forEach((item) => { @@ -100,7 +100,9 @@ const save = () => { _item.isTable = false if (checkedDataList.value.indexOf(_item.label) > -1) { _item.isTable = true - saveDate.push(_item) + if(!saveDate.includes(_item)){ + saveDate.push(_item) + } } } }) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts index c903200e0..a4cd1c76a 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts @@ -910,6 +910,7 @@ export const SupplierdeliverRequestDetail = useCrudSchemas(reactive Date: Thu, 6 Jun 2024 17:27:14 +0800 Subject: [PATCH 03/44] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productionplan/productionMain/index.vue | 19 +++++++++++++----- .../productionMain/productionMain.data.ts | 14 ++++++------- .../productionMainAssemble/index.vue | 20 ++++++++++++++----- .../productionMainAssemble.data.ts | 8 ++++---- .../productionMainAssembleSparePart/index.vue | 20 ++++++++++++++----- .../productionMainAssembleSparePart.data.ts | 10 +++++----- .../productionMainPredictSparePart/index.vue | 19 +++++++++++++----- .../productionMainPredictSparePart.data.ts | 12 +++++------ 8 files changed, 80 insertions(+), 42 deletions(-) diff --git a/src/views/wms/productionManage/productionplan/productionMain/index.vue b/src/views/wms/productionManage/productionplan/productionMain/index.vue index 60a317857..4d1503c0a 100644 --- a/src/views/wms/productionManage/productionplan/productionMain/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMain/index.vue @@ -76,7 +76,7 @@ /> - @@ -361,7 +361,7 @@ const buttonTableClick = async (val, row) => { } else if (val == 'delete') { // 删除 handleDelete(row.masterId) } - + } /** 添加/修改操作 */ @@ -499,10 +499,19 @@ const importSuccess = () => { // 筛选提交 const searchFormClick = (searchData) => { - tableObject.params = { - isSearch: true, - filters: searchData.filters + tableObject.params.isSearch = true + if(!searchData.filters){//重置的时候应用 + searchData.filters = [] + } + let filters = [...searchData.filters] + if(!filters.find(item=>item.column=='plan_type')){ + filters = [...filters,{ + action:'==', + column:'plan_type', + value:'predict', + }] } + tableObject.params.filters = filters getList() // 刷新当前列表 } diff --git a/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts b/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts index e8b547ebc..63d0981a2 100644 --- a/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts @@ -307,7 +307,7 @@ export const ProductionMain = useCrudSchemas(reactive([ }, isForm: false, }, - + { label: '备注', field: 'remark', @@ -651,7 +651,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ key: 'available', value: 'TRUE', isMainValue: false - }], + }], }, }, { @@ -833,8 +833,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', - isSearch: true, - isTable: true, + isSearch: false, + isTable: false, sort: 'custom', table: { width: 150 @@ -852,8 +852,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ type: 'Select', default: 'TRUE' }, - // isTableForm: false, - // isForm: false + isTableForm: false, + isForm: false }, { label: '单据号', @@ -914,7 +914,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false, }, - + { label: '操作', hiddenInMain:true, diff --git a/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue b/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue index cb2e711bd..4c0d3956b 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue @@ -74,7 +74,7 @@ /> - @@ -349,7 +349,7 @@ const buttonTableClick = async (val, row) => { } else if (val == 'delete') { // 删除 handleDelete(row.masterId) } - + } /** 添加/修改操作 */ @@ -487,10 +487,20 @@ const importSuccess = () => { // 筛选提交 const searchFormClick = (searchData) => { - tableObject.params = { - isSearch: true, - filters: searchData.filters + tableObject.params.isSearch = true + if(!searchData.filters){//重置的时候应用 + searchData.filters = [] + } + let filters = [...searchData.filters] + console.log('searchData',routeName.value); + if(!filters.find(item=>item.column=='plan_type')){ + filters = [...filters,{ + action:'==', + column:'plan_type', + value:'assemble', + }] } + tableObject.params.filters = filters getList() // 刷新当前列表 } diff --git a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts index 42815a1fb..f4489f8d2 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts @@ -298,7 +298,7 @@ export const ProductionMain = useCrudSchemas(reactive([ }, isForm: false, }, - + { label: '备注', field: 'remark', @@ -641,7 +641,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ key: 'available', value: 'TRUE', isMainValue: false - }], + }], }, }, { @@ -820,8 +820,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', - isSearch: true, - isTable: true, + isSearch: false, + isTable: false, sort: 'custom', table: { width: 150 diff --git a/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/index.vue b/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/index.vue index 71a77f15a..1e078b89c 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/index.vue @@ -74,7 +74,7 @@ /> - @@ -349,7 +349,7 @@ const buttonTableClick = async (val, row) => { } else if (val == 'delete') { // 删除 handleDelete(row.masterId) } - + } /** 添加/修改操作 */ @@ -486,10 +486,20 @@ const importSuccess = () => { // 筛选提交 const searchFormClick = (searchData) => { - tableObject.params = { - isSearch: true, - filters: searchData.filters + tableObject.params.isSearch = true + if(!searchData.filters){//重置的时候应用 + searchData.filters = [] + } + let filters = [...searchData.filters] + console.log('searchData',routeName.value); + if(!filters.find(item=>item.column=='plan_type')){ + filters = [...filters,{ + action:'==', + column:'plan_type', + value:'assembleSparePart', + }] } + tableObject.params.filters = filters getList() // 刷新当前列表 } diff --git a/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/productionMainAssembleSparePart.data.ts b/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/productionMainAssembleSparePart.data.ts index 08b6d9f17..670e4f9f0 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/productionMainAssembleSparePart.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMainAssembleSparePart/productionMainAssembleSparePart.data.ts @@ -298,7 +298,7 @@ export const ProductionMain = useCrudSchemas(reactive([ isTable: false, isForm: false, }, - + { label: '备注', field: 'remark', @@ -641,7 +641,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ key: 'available', value: 'TRUE', isMainValue: false - }], + }], }, }, { @@ -820,8 +820,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', - isSearch: true, - isTable: true, + isSearch: false, + isTable: false, sort: 'custom', table: { width: 150 @@ -901,7 +901,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false, }, - + { label: '操作', hiddenInMain:true, diff --git a/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/index.vue b/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/index.vue index e62017597..164a58c10 100644 --- a/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/index.vue @@ -74,7 +74,7 @@ /> - @@ -349,7 +349,7 @@ const buttonTableClick = async (val, row) => { } else if (val == 'delete') { // 删除 handleDelete(row.masterId) } - + } /** 添加/修改操作 */ @@ -487,10 +487,19 @@ const importSuccess = () => { // 筛选提交 const searchFormClick = (searchData) => { - tableObject.params = { - isSearch: true, - filters: searchData.filters + tableObject.params.isSearch = true + if(!searchData.filters){//重置的时候应用 + searchData.filters = [] + } + let filters = [...searchData.filters] + if(!filters.find(item=>item.column=='plan_type')){ + filters = [...filters,{ + action:'==', + column:'plan_type', + value:'predictSparePart', + }] } + tableObject.params.filters = filters getList() // 刷新当前列表 } diff --git a/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/productionMainPredictSparePart.data.ts b/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/productionMainPredictSparePart.data.ts index a8d893c0a..d5bac9614 100644 --- a/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/productionMainPredictSparePart.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMainPredictSparePart/productionMainPredictSparePart.data.ts @@ -195,7 +195,7 @@ export const ProductionMain = useCrudSchemas(reactive([ } } }, - + { label: '物料代码', field: 'detailItemCode', @@ -299,7 +299,7 @@ export const ProductionMain = useCrudSchemas(reactive([ }, isForm: false, }, - + { label: '备注', field: 'remark', @@ -642,7 +642,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ key: 'available', value: 'TRUE', isMainValue: false - }], + }], }, }, { @@ -792,7 +792,7 @@ export const ProductionDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false, }, - + { label: '创建时间', field: 'createTime', @@ -822,8 +822,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', - isSearch: true, - isTable: true, + isSearch: false, + isTable: false, hiddenInMain: true, sort: 'custom', table: { From a10c47429cc9341113a4d45e3d7d5990a329ccca Mon Sep 17 00:00:00 2001 From: lidm0086 Date: Thu, 6 Jun 2024 17:28:04 +0800 Subject: [PATCH 04/44] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E8=87=AA=E5=88=97=E8=A1=A8=20+=20=E7=AD=9B=E9=80=89=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/productionDetail/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/api/wms/productionDetail/index.ts b/src/api/wms/productionDetail/index.ts index 313ecbba9..b9c7674af 100644 --- a/src/api/wms/productionDetail/index.ts +++ b/src/api/wms/productionDetail/index.ts @@ -18,7 +18,13 @@ export interface ProductionDetailVO { // 查询生产计划子列表 export const getProductionDetailPage = async (params) => { - return await request.get({ url: `/wms/production-detail/page`, params }) + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/production-detail/senior', data }) + } else { + return await request.get({ url: `/wms/production-detail/page`, params }) + } } // 查询生产计划子详情 From 93715be67138d2a37fbe6a4c5f730813fe31d5ff Mon Sep 17 00:00:00 2001 From: chenfang Date: Thu, 6 Jun 2024 20:00:02 +0800 Subject: [PATCH 05/44] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=A1=86=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockupMainJob/stockupMainJob.data.ts | 19 ++----------------- .../stockupMainRecord.data.ts | 5 ----- .../stockupMainRequest.data.ts | 11 +---------- 3 files changed, 3 insertions(+), 32 deletions(-) diff --git a/src/views/wms/deliversettlementManage/stockup/stockupMainJob/stockupMainJob.data.ts b/src/views/wms/deliversettlementManage/stockup/stockupMainJob/stockupMainJob.data.ts index 6946ee9f8..b5d73acc3 100644 --- a/src/views/wms/deliversettlementManage/stockup/stockupMainJob/stockupMainJob.data.ts +++ b/src/views/wms/deliversettlementManage/stockup/stockupMainJob/stockupMainJob.data.ts @@ -437,8 +437,7 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '单据号', field: 'number', sort: 'custom', - isSearch: true, - table: { + table: { width: 150 }, hiddenInMain:true @@ -447,7 +446,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '包装号', field: 'packingNumber', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -457,7 +455,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '批次', field: 'batch', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -467,7 +464,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '库存状态', field: 'inventoryStatus', sort: 'custom', - isSearch: true, form: { component: 'Radio' }, @@ -480,7 +476,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '货主代码', field: 'ownerCode', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -490,7 +485,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '器具号', field: 'containerNumber', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -501,7 +495,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '物料代码', field: 'itemCode', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -510,7 +503,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '物品名称', field: 'itemName', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -519,7 +511,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '物品描述1', field: 'itemDesc1', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -529,7 +520,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '物品描述2', field: 'itemDesc2', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -539,7 +529,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '项目代码', field: 'projectCode', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -549,7 +538,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '数量', field: 'qty', sort: 'custom', - isSearch: true, }, { label: '计量单位', @@ -575,7 +563,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '从库位', field: 'fromLocationCode', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -584,7 +571,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '到库位', field: 'toLocationCode', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -593,7 +579,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '备注', field: 'remark', sort: 'custom', - isSearch: true, hiddenInMain:true, }, { @@ -601,7 +586,6 @@ export const StockupDetailJob = useCrudSchemas(reactive([ field: 'createTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, hiddenInMain:true, search: { component: 'DatePicker', @@ -620,6 +604,7 @@ export const StockupDetailJob = useCrudSchemas(reactive([ label: '操作', field: 'action', isForm: false, + hiddenInMain: true, table: { width: 150, fixed: 'right' diff --git a/src/views/wms/deliversettlementManage/stockup/stockupMainRecord/stockupMainRecord.data.ts b/src/views/wms/deliversettlementManage/stockup/stockupMainRecord/stockupMainRecord.data.ts index bd725f183..063de8810 100644 --- a/src/views/wms/deliversettlementManage/stockup/stockupMainRecord/stockupMainRecord.data.ts +++ b/src/views/wms/deliversettlementManage/stockup/stockupMainRecord/stockupMainRecord.data.ts @@ -323,7 +323,6 @@ export const StockupDetailRecord = useCrudSchemas(reactive([ label: '包装号', field: 'packingNumber', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -333,7 +332,6 @@ export const StockupDetailRecord = useCrudSchemas(reactive([ label: '批次', field: 'batch', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -353,7 +351,6 @@ export const StockupDetailRecord = useCrudSchemas(reactive([ label: '物料代码', field: 'itemCode', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -362,7 +359,6 @@ export const StockupDetailRecord = useCrudSchemas(reactive([ label: '物品名称', field: 'itemName', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -556,7 +552,6 @@ export const StockupDetailRecord = useCrudSchemas(reactive([ field: 'available', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', - isSearch: true, isTable: true, hiddenInMain: true, sort: 'custom', diff --git a/src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts b/src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts index 561429701..df9f84ce6 100644 --- a/src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts +++ b/src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts @@ -280,6 +280,7 @@ export const StockupMainRequest = useCrudSchemas(reactive([ formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return userDeptArray.find((account) => account.id == cellValue)?.name }, + isForm:false, form: { value: userDept.id, component: 'Select', @@ -495,7 +496,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '单据号', field: 'number', sort: 'custom', - isSearch: true, isForm: false, isTableForm: false, table: { @@ -593,7 +593,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '物料代码', field: 'itemCode', sort: 'custom', - isSearch: true, table: { width: 150 }, @@ -630,7 +629,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '物品名称', field: 'itemName', sort: 'custom', - isSearch: true, isTableForm: false, table: { width: 150 @@ -640,7 +638,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '物品描述1', field: 'itemDesc1', sort: 'custom', - isSearch: true, isTableForm: false, table: { width: 120 @@ -651,7 +648,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '物品描述2', field: 'itemDesc2', sort: 'custom', - isSearch: true, isTableForm: false, table: { width: 120 @@ -662,7 +658,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '项目代码', field: 'projectCode', sort: 'custom', - isSearch: true, isTableForm: false, table: { width: 120 @@ -673,7 +668,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '数量', field: 'qty', sort: 'custom', - isSearch: true, tableForm: { type: 'InputNumber', min: 1, @@ -712,7 +706,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '到库位', field: 'toLocationCode', sort: 'custom', - isSearch: true, table: { width: 120 }, @@ -759,7 +752,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ label: '备注', field: 'remark', sort: 'custom', - isSearch: true, hiddenInMain: true }, { @@ -767,7 +759,6 @@ export const StockupDetailRequest = useCrudSchemas(reactive([ field: 'createTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, table: { width: 120 }, From 09586a0844f4e7dd60cd44a7e16e78194fd96515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B7=BB=E7=A0=96-JAVA=5CAdministrator?= <591141169@qq.com> Date: Fri, 7 Jun 2024 08:52:11 +0800 Subject: [PATCH 06/44] =?UTF-8?q?EAM=E6=96=B0=E4=BB=A3=E7=A0=81=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/eam/adjustRecordDetail/index.ts | 46 ++ src/api/eam/adjustRecordMain/index.ts | 46 ++ src/api/eam/applicationRecordDetail/index.ts | 57 +++ src/api/eam/applicationRecordMain/index.ts | 67 +++ src/api/eam/countJobDetail/index.ts | 51 +++ src/api/eam/countJobMain/index.ts | 56 +++ src/api/eam/countRecordDetail/index.ts | 51 +++ src/api/eam/countRecordMain/index.ts | 61 +++ src/api/eam/countadjustPlan/index.ts | 51 +++ src/api/eam/itemAccounts/index.ts | 63 +++ src/api/eam/itemApplyDetail/index.ts | 57 +++ src/api/eam/itemInLocation/index.ts | 50 +++ src/api/eam/itemLocationReplace/index.ts | 49 +++ src/api/eam/itemMaintenance/index.ts | 52 +++ src/api/eam/itemOrderDetail/index.ts | 65 +++ src/api/eam/itemOrderMain/index.ts | 71 ++++ src/api/eam/itemOutLocation/index.ts | 50 +++ src/api/eam/sparePartsApplyDetail/index.ts | 63 +++ src/api/eam/sparePartsApplyMain/index.ts | 65 +++ src/api/eam/transaction/index.ts | 53 +++ .../eam/adjustRecord/adjustRecord.data.ts | 189 +++++++++ src/views/eam/adjustRecord/index.vue | 322 ++++++++++++++ .../applicationRecordMain.data.ts | 329 +++++++++++++++ src/views/eam/applicationRecord/index.vue | 309 ++++++++++++++ src/views/eam/countRecord/countRecord.data.ts | 242 +++++++++++ src/views/eam/countRecord/index.vue | 339 +++++++++++++++ .../countadjustPlan/countadjustPlan.data.ts | 78 ++++ src/views/eam/countadjustPlan/index.vue | 244 +++++++++++ .../countadjustWork/countadjustWork.data.ts | 156 +++++++ src/views/eam/countadjustWork/index.vue | 306 ++++++++++++++ src/views/eam/itemAccounts/index.vue | 399 ++++++++++++++++++ .../eam/itemAccounts/itemAccounts.data.ts | 349 +++++++++++++++ src/views/eam/itemInLocation/index.vue | 224 ++++++++++ .../eam/itemInLocation/itemInLocation.data.ts | 53 +++ src/views/eam/itemLocationReplace/index.vue | 244 +++++++++++ .../itemLocationReplace.data.ts | 55 +++ src/views/eam/itemMaintenance/index.vue | 243 +++++++++++ .../itemMaintenance/itemMaintenance.data.ts | 110 +++++ src/views/eam/itemOrderMain/index.vue | 304 +++++++++++++ .../eam/itemOrderMain/itemOrderMain.data.ts | 310 ++++++++++++++ src/views/eam/itemOutLocation/index.vue | 243 +++++++++++ .../itemOutLocation/itemOutLocation.data.ts | 53 +++ .../SparePartsApply.data.ts | 290 +++++++++++++ src/views/eam/sparePartsApplyMain/index.vue | 372 ++++++++++++++++ src/views/eam/transaction/index.vue | 241 +++++++++++ src/views/eam/transaction/transaction.data.ts | 94 +++++ 46 files changed, 7222 insertions(+) create mode 100644 src/api/eam/adjustRecordDetail/index.ts create mode 100644 src/api/eam/adjustRecordMain/index.ts create mode 100644 src/api/eam/applicationRecordDetail/index.ts create mode 100644 src/api/eam/applicationRecordMain/index.ts create mode 100644 src/api/eam/countJobDetail/index.ts create mode 100644 src/api/eam/countJobMain/index.ts create mode 100644 src/api/eam/countRecordDetail/index.ts create mode 100644 src/api/eam/countRecordMain/index.ts create mode 100644 src/api/eam/countadjustPlan/index.ts create mode 100644 src/api/eam/itemAccounts/index.ts create mode 100644 src/api/eam/itemApplyDetail/index.ts create mode 100644 src/api/eam/itemInLocation/index.ts create mode 100644 src/api/eam/itemLocationReplace/index.ts create mode 100644 src/api/eam/itemMaintenance/index.ts create mode 100644 src/api/eam/itemOrderDetail/index.ts create mode 100644 src/api/eam/itemOrderMain/index.ts create mode 100644 src/api/eam/itemOutLocation/index.ts create mode 100644 src/api/eam/sparePartsApplyDetail/index.ts create mode 100644 src/api/eam/sparePartsApplyMain/index.ts create mode 100644 src/api/eam/transaction/index.ts create mode 100644 src/views/eam/adjustRecord/adjustRecord.data.ts create mode 100644 src/views/eam/adjustRecord/index.vue create mode 100644 src/views/eam/applicationRecord/applicationRecordMain.data.ts create mode 100644 src/views/eam/applicationRecord/index.vue create mode 100644 src/views/eam/countRecord/countRecord.data.ts create mode 100644 src/views/eam/countRecord/index.vue create mode 100644 src/views/eam/countadjustPlan/countadjustPlan.data.ts create mode 100644 src/views/eam/countadjustPlan/index.vue create mode 100644 src/views/eam/countadjustWork/countadjustWork.data.ts create mode 100644 src/views/eam/countadjustWork/index.vue create mode 100644 src/views/eam/itemAccounts/index.vue create mode 100644 src/views/eam/itemAccounts/itemAccounts.data.ts create mode 100644 src/views/eam/itemInLocation/index.vue create mode 100644 src/views/eam/itemInLocation/itemInLocation.data.ts create mode 100644 src/views/eam/itemLocationReplace/index.vue create mode 100644 src/views/eam/itemLocationReplace/itemLocationReplace.data.ts create mode 100644 src/views/eam/itemMaintenance/index.vue create mode 100644 src/views/eam/itemMaintenance/itemMaintenance.data.ts create mode 100644 src/views/eam/itemOrderMain/index.vue create mode 100644 src/views/eam/itemOrderMain/itemOrderMain.data.ts create mode 100644 src/views/eam/itemOutLocation/index.vue create mode 100644 src/views/eam/itemOutLocation/itemOutLocation.data.ts create mode 100644 src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts create mode 100644 src/views/eam/sparePartsApplyMain/index.vue create mode 100644 src/views/eam/transaction/index.vue create mode 100644 src/views/eam/transaction/transaction.data.ts diff --git a/src/api/eam/adjustRecordDetail/index.ts b/src/api/eam/adjustRecordDetail/index.ts new file mode 100644 index 000000000..d8f18cb8b --- /dev/null +++ b/src/api/eam/adjustRecordDetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface AdjustRecordDetailVO { + number: string + planNumber: string + requestNumber: string + requestTime: Date + jobNumber: string + recordNumber: string +} + +// 查询备件盘点调整记录主列表 +export const getAdjustRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/adjustRecordDetail/senior', data }) + } else { + return await request.get({ url: `/eam/adjustRecordDetail/page`, params }) + } +} + +// 查询备件盘点调整记录主详情 +export const getAdjustRecordDetail = async (id: number) => { + return await request.get({ url: `/eam/adjustRecordDetail/get?id=` + id }) +} + +// 新增备件盘点调整记录主 +export const createAdjustRecordDetail = async (data: AdjustRecordDetailVO) => { + return await request.post({ url: `/eam/adjustRecordDetail/create`, data }) +} + +// 修改备件盘点调整记录主 +export const updateAdjustRecordDetail = async (data: AdjustRecordDetailVO) => { + return await request.put({ url: `/eam/adjustRecordDetail/update`, data }) +} + +// 删除备件盘点调整记录主 +export const deleteAdjustRecordDetail = async (id: number) => { + return await request.delete({ url: `/eam/adjustRecordDetail/delete?id=` + id }) +} + +// 导出备件盘点调整记录主 Excel +export const exportAdjustRecordDetail = async (params) => { + return await request.download({ url: `/eam/adjustRecordDetail/export-excel`, params }) +} diff --git a/src/api/eam/adjustRecordMain/index.ts b/src/api/eam/adjustRecordMain/index.ts new file mode 100644 index 000000000..9eb4297b1 --- /dev/null +++ b/src/api/eam/adjustRecordMain/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface AdjustRecordMainVO { + number: string + planNumber: string + requestNumber: string + requestTime: Date + jobNumber: string + recordNumber: string +} + +// 查询备件盘点调整记录主列表 +export const getAdjustRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/adjustRecordMain/senior', data }) + } else { + return await request.get({ url: `/eam/adjustRecordMain/page`, params }) + } +} + +// 查询备件盘点调整记录主详情 +export const getAdjustRecordMain = async (id: number) => { + return await request.get({ url: `/eam/adjustRecordMain/get?id=` + id }) +} + +// 新增备件盘点调整记录主 +export const createAdjustRecordMain = async (data: AdjustRecordMainVO) => { + return await request.post({ url: `/eam/adjustRecordMain/create`, data }) +} + +// 修改备件盘点调整记录主 +export const updateAdjustRecordMain = async (data: AdjustRecordMainVO) => { + return await request.put({ url: `/eam/adjustRecordMain/update`, data }) +} + +// 删除备件盘点调整记录主 +export const deleteAdjustRecordMain = async (id: number) => { + return await request.delete({ url: `/eam/adjustRecordMain/delete?id=` + id }) +} + +// 导出备件盘点调整记录主 Excel +export const exportAdjustRecordMain = async (params) => { + return await request.download({ url: `/eam/adjustRecordMain/export-excel`, params }) +} diff --git a/src/api/eam/applicationRecordDetail/index.ts b/src/api/eam/applicationRecordDetail/index.ts new file mode 100644 index 000000000..9a45b466a --- /dev/null +++ b/src/api/eam/applicationRecordDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ItemApplyDetailVO { + number : string + name : string + type : string + applyId : number + applyDeptId : number + approveId : number + approveTime : Date + outId : number + outTime : Date + siteId : string + available : string + concurrencyStamp : number +} + +// 查询备件申领记录主列表 +export const getApplicationRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/item-apply-request-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-detail/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getApplicationRecordDetail = async (id : number) => { + return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createApplicationRecordDetail = async (data : ItemApplyDetailVO) => { + return await request.post({ url: `/eam/item-apply-request-detail/create`, data }) +} + +// 修改备件申领记录主 +export const updateApplicationRecordDetail = async (data : ItemApplyDetailVO) => { + return await request.put({ url: `/eam/item-apply-request-detail/update`, data }) +} + +// 删除备件申领记录主 +export const deleteApplicationRecordDetail = async (id : number) => { + return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportApplicationRecordDetail = async (params) => { + return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-detail/get-import-template' }) +} diff --git a/src/api/eam/applicationRecordMain/index.ts b/src/api/eam/applicationRecordMain/index.ts new file mode 100644 index 000000000..207b15a2e --- /dev/null +++ b/src/api/eam/applicationRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ItemApplyMainVO { + number: string + name: string + type: string + applyId: number + applyDeptId: number + approveId: number + approveTime: Date + outId: number + outTime: Date + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件申领记录主列表 +export const getApplicationRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-apply-request-main/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-main/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createApplicationRecordMain = async (data: ItemApplyMainVO) => { + return await request.post({ url: `/eam/item-apply-request-main/create`, data }) +} + +// 修改备件申领记录主 +export const updateApplicationRecordMain = async (data: ItemApplyMainVO) => { + return await request.put({ url: `/eam/item-apply-request-main/update`, data }) +} + +// 删除备件申领记录主 +export const deleteApplicationRecordMain = async (id: number) => { + return await request.delete({ url: `/eam/item-apply-request-main/delete?id=` + id }) +} + +// 审批通过备件申领记录主 +export const agreeApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/agree?id=` + id }) +} + +// 审批驳回备件申领记录主 +export const disAgreeApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/disAgree?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportApplicationRecordMain = async (params) => { + return await request.download({ url: `/eam/item-apply-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-main/get-import-template' }) +} diff --git a/src/api/eam/countJobDetail/index.ts b/src/api/eam/countJobDetail/index.ts new file mode 100644 index 000000000..5f06e894f --- /dev/null +++ b/src/api/eam/countJobDetail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountJobDetailVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countJobDetail/senior', data }) + } else { + return await request.get({ url: `/eam/countJobDetail/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountJobDetail = async (id : number) => { + return await request.get({ url: `/eam/countJobDetail/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountJobDetail = async (data : CountJobDetailVO) => { + return await request.post({ url: `/eam/countJobDetail/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountJobDetail = async (data : CountJobDetailVO) => { + return await request.put({ url: `/eam/countJobDetail/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountJobDetail = async (id : number) => { + return await request.delete({ url: `/eam/countJobDetail/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountJobDetail = async (params) => { + return await request.download({ url: `/eam/countJobDetail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countJobDetail/get-import-template' }) +} diff --git a/src/api/eam/countJobMain/index.ts b/src/api/eam/countJobMain/index.ts new file mode 100644 index 000000000..2ead754e0 --- /dev/null +++ b/src/api/eam/countJobMain/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface CountJobMainVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countJobMain/senior', data }) + } else { + return await request.get({ url: `/eam/countJobMain/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountJobMain = async (id : number) => { + return await request.get({ url: `/eam/countJobMain/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountJobMain = async (data : CountJobMainVO) => { + return await request.post({ url: `/eam/countJobMain/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountJobMain = async (data : CountJobMainVO) => { + return await request.put({ url: `/eam/countJobMain/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountJobMain = async (id : number) => { + return await request.delete({ url: `/eam/countJobMain/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const handleMainExport = async (id : number) => { + return await request.download({ url: `/eam/countJobMain/handleMainExport?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountJobMain = async (params) => { + return await request.download({ url: `/eam/countJobMain/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countJobMain/get-import-template' }) +} diff --git a/src/api/eam/countRecordDetail/index.ts b/src/api/eam/countRecordDetail/index.ts new file mode 100644 index 000000000..0387608c3 --- /dev/null +++ b/src/api/eam/countRecordDetail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountRecordDetailVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countRecordDetail/senior', data }) + } else { + return await request.get({ url: `/eam/countRecordDetail/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountRecordDetail = async (id : number) => { + return await request.get({ url: `/eam/countRecordDetail/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountRecordDetail = async (data : CountRecordDetailVO) => { + return await request.post({ url: `/eam/countRecordDetail/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountRecordDetail = async (data : CountRecordDetailVO) => { + return await request.put({ url: `/eam/countRecordDetail/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountRecordDetail = async (id : number) => { + return await request.delete({ url: `/eam/countRecordDetail/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountRecordDetail = async (params) => { + return await request.download({ url: `/eam/countRecordDetail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countRecordDetail/get-import-template' }) +} diff --git a/src/api/eam/countRecordMain/index.ts b/src/api/eam/countRecordMain/index.ts new file mode 100644 index 000000000..512ae4c4c --- /dev/null +++ b/src/api/eam/countRecordMain/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface CountRecordMainVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountRecordMainPage = async (params) => { + params.status="CANGENERATE" + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countRecordMain/senior', data }) + } else { + return await request.get({ url: `/eam/countRecordMain/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountRecordMain = async (id : number) => { + return await request.get({ url: `/eam/countRecordMain/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountRecordMain = async (data : CountRecordMainVO) => { + return await request.post({ url: `/eam/countRecordMain/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountRecordMain = async (data : CountRecordMainVO) => { + return await request.put({ url: `/eam/countRecordMain/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountRecordMain = async (id : number) => { + return await request.delete({ url: `/eam/countRecordMain/delete?id=` + id }) +} +// 盘点调整 +export const adjustCountRecordMain = async (id : number) => { + return await request.get({ url: `/eam/countRecordMain/adjust?number=` + id }) +} + +// 导出备件盘点计划 Excel +export const handleMainExport = async (id : number) => { + return await request.download({ url: `/eam/countRecordMain/handleMainExport?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCounRecordMain = async (params) => { + return await request.download({ url: `/eam/countRecordMain/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countRecordMain/get-import-template' }) +} diff --git a/src/api/eam/countadjustPlan/index.ts b/src/api/eam/countadjustPlan/index.ts new file mode 100644 index 000000000..4a9470f1a --- /dev/null +++ b/src/api/eam/countadjustPlan/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountadjustPlanVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountadjustPlanPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countadjust-plan/senior', data }) + } else { + return await request.get({ url: `/eam/countadjust-plan/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountadjustPlan = async (id : number) => { + return await request.get({ url: `/eam/countadjust-plan/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountadjustPlan = async (data : CountadjustPlanVO) => { + return await request.post({ url: `/eam/countadjust-plan/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountadjustPlan = async (data : CountadjustPlanVO) => { + return await request.put({ url: `/eam/countadjust-plan/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountadjustPlan = async (id : number) => { + return await request.delete({ url: `/eam/countadjust-plan/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountadjustPlan = async (params) => { + return await request.download({ url: `/eam/countadjust-plan/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countadjust-plan/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/itemAccounts/index.ts b/src/api/eam/itemAccounts/index.ts new file mode 100644 index 000000000..88fb3d16f --- /dev/null +++ b/src/api/eam/itemAccounts/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface ItemAccountsVO { + itemNumber: string + qty: number + areaNumber: string + isInAccount: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件台账列表 +export const getItemAccountsPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-accounts/senior', data }) + } else { + return await request.get({ url: `/eam/item-accounts/page`, params }) + } +} + +// 查询备件台账详情 +export const getItemAccounts = async (id: number) => { + return await request.get({ url: `/eam/item-accounts/get?id=` + id }) +} + +// 新增备件台账 +export const createItemAccounts = async (data: ItemAccountsVO) => { + return await request.post({ url: `/eam/item-accounts/create`, data }) +} + +// 修改备件台账 +export const updateItemAccounts = async (data: ItemAccountsVO) => { + return await request.put({ url: `/eam/item-accounts/update`, data }) +} + +// 删除备件台账 +export const deleteItemAccounts = async (id: number) => { + return await request.delete({ url: `/eam/item-accounts/delete?id=` + id }) +} + +// 导出备件台账 Excel +export const exportItemAccounts = async (params) => { + return await request.download({ url: `/eam/item-accounts/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-accounts/get-import-template' }) +} + +// 更改备件库位 +export const replaceLocation = async (data: Array) => { + return await request.post({url: `/eam/item-accounts/replaceLocation `, data }); +}; + +// 备件不分页 + +export const getItemAccountsNoPage = async (params) => { + return await request.get({ url: `/eam/item-accounts/noPage`, params }) +} diff --git a/src/api/eam/itemApplyDetail/index.ts b/src/api/eam/itemApplyDetail/index.ts new file mode 100644 index 000000000..0941c11a3 --- /dev/null +++ b/src/api/eam/itemApplyDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ItemApplyDetailVO { + number: string + name: string + type: string + applyId: number + applyDeptId: number + approveId: number + approveTime: Date + outId: number + outTime: Date + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件申领记录主列表 +export const getItemApplyDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-apply-request-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-detail/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getItemApplyDetail = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createItemApplyDetail = async (data: ItemApplyDetailVO) => { + return await request.post({ url: `/eam/item-apply-request-detail/create`, data }) +} + +// 修改备件申领记录主 +export const updateItemApplyDetail = async (data: ItemApplyDetailVO) => { + return await request.put({ url: `/eam/item-apply-request-detail/update`, data }) +} + +// 删除备件申领记录主 +export const deleteItemApplyDetail = async (id: number) => { + return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportItemApplyDetail = async (params) => { + return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-detail/get-import-template' }) +} diff --git a/src/api/eam/itemInLocation/index.ts b/src/api/eam/itemInLocation/index.ts new file mode 100644 index 000000000..9589db346 --- /dev/null +++ b/src/api/eam/itemInLocation/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface ItemInLocationVO { + number: string + itemNumber: string + locationNumber: string + type: string + qty: number +} + +// 查询备件入库记录列表 +export const getItemInLocationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-in-location/senior', data }) + } else { + return await request.get({ url: `/eam/item-in-location/page`, params }) + } +} + +// 查询备件入库记录详情 +export const getItemInLocation = async (id: number) => { + return await request.get({ url: `/eam/item-in-location/get?id=` + id }) +} + +// 新增备件入库记录 +export const createItemInLocation = async (data: ItemInLocationVO) => { + return await request.post({ url: `/eam/item-in-location/create`, data }) +} + +// 修改备件入库记录 +export const updateItemInLocation = async (data: ItemInLocationVO) => { + return await request.put({ url: `/eam/item-in-location/update`, data }) +} + +// 删除备件入库记录 +export const deleteItemInLocation = async (id: number) => { + return await request.delete({ url: `/eam/item-in-location/delete?id=` + id }) +} + +// 导出备件入库记录 Excel +export const exportItemInLocation = async (params) => { + return await request.download({ url: `/eam/item-in-location/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-in-location/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/itemLocationReplace/index.ts b/src/api/eam/itemLocationReplace/index.ts new file mode 100644 index 000000000..7bdab64df --- /dev/null +++ b/src/api/eam/itemLocationReplace/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface ItemLocationReplaceVO { + locationNumber: string + describe: string + oldItemNumber: string + itemNumber: string +} + +// 查询备件库位变更记录列表 +export const getItemLocationReplacePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-location-replace/senior', data }) + } else { + return await request.get({ url: `/eam/item-location-replace/page`, params }) + } +} + +// 查询备件库位变更记录详情 +export const getItemLocationReplace = async (id: number) => { + return await request.get({ url: `/eam/item-location-replace/get?id=` + id }) +} + +// 新增备件库位变更记录 +export const createItemLocationReplace = async (data: ItemLocationReplaceVO) => { + return await request.post({ url: `/eam/item-location-replace/create`, data }) +} + +// 修改备件库位变更记录 +export const updateItemLocationReplace = async (data: ItemLocationReplaceVO) => { + return await request.put({ url: `/eam/item-location-replace/update`, data }) +} + +// 删除备件库位变更记录 +export const deleteItemLocationReplace = async (id: number) => { + return await request.delete({ url: `/eam/item-location-replace/delete?id=` + id }) +} + +// 导出备件库位变更记录 Excel +export const exportItemLocationReplace = async (params) => { + return await request.download({ url: `/eam/item-location-replace/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-location-replace/get-import-template' }) +} diff --git a/src/api/eam/itemMaintenance/index.ts b/src/api/eam/itemMaintenance/index.ts new file mode 100644 index 000000000..d6fe941c5 --- /dev/null +++ b/src/api/eam/itemMaintenance/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface ItemMaintenanceVO { + number: string + itemNumber: string + qty: number + result: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件维修记录列表 +export const getItemMaintenancePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-maintenance-record/senior', data }) + } else { + return await request.get({ url: `/eam/item-maintenance-record/page`, params }) + } +} + +// 查询备件维修记录详情 +export const getItemMaintenance = async (id: number) => { + return await request.get({ url: `/eam/item-maintenance-record/get?id=` + id }) +} + +// 新增备件维修记录 +export const createItemMaintenance = async (data: ItemMaintenanceVO) => { + return await request.post({ url: `/eam/item-maintenance-record/create`, data }) +} + +// 修改备件维修记录 +export const updateItemMaintenance = async (data: ItemMaintenanceVO) => { + return await request.put({ url: `/eam/item-maintenance-record/update`, data }) +} + +// 删除备件维修记录 +export const deleteItemMaintenance = async (id: number) => { + return await request.delete({ url: `/eam/item-maintenance-record/delete?id=` + id }) +} + +// 导出备件维修记录 Excel +export const exportItemMaintenance = async (params) => { + return await request.download({ url: `/eam/item-maintenance-record/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-maintenance-record/get-import-template' }) +} diff --git a/src/api/eam/itemOrderDetail/index.ts b/src/api/eam/itemOrderDetail/index.ts new file mode 100644 index 000000000..339c3482c --- /dev/null +++ b/src/api/eam/itemOrderDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ItemOrderDetailVO { + number: string + date: string + phone: string + fax: string + purchaser: string + supplierNumber: string + supplierName: string + supplierAddress: string + shipTo: string + invoiceTo: string + contacts: string + contactsPhone: string + paymentType: string + registLocation: string + bank: string + account: string + dutyParagraph: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件采购订单主列表 +export const getItemOrderDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-order-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-order-detail/page`, params }) + } +} + +// 查询备件采购订单主详情 +export const getItemOrderDetail = async (id: number) => { + return await request.get({ url: `/eam/item-order-detail/get?id=` + id }) +} + +// 新增备件采购订单主 +export const createItemOrderDetail = async (data: ItemOrderDetailVO) => { + return await request.post({ url: `/eam/item-order-detail/create`, data }) +} + +// 修改备件采购订单主 +export const updateItemOrderDetail = async (data: ItemOrderDetailVO) => { + return await request.put({ url: `/eam/item-order-detail/update`, data }) +} + +// 删除备件采购订单主 +export const deleteItemOrderDetail = async (id: number) => { + return await request.delete({ url: `/eam/item-order-detail/delete?id=` + id }) +} + +// 导出备件采购订单主 Excel +export const exportItemOrderDetail = async (params) => { + return await request.download({ url: `/eam/item-order-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-order-detail/get-import-template' }) +} diff --git a/src/api/eam/itemOrderMain/index.ts b/src/api/eam/itemOrderMain/index.ts new file mode 100644 index 000000000..125851b14 --- /dev/null +++ b/src/api/eam/itemOrderMain/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface ItemOrderMainVO { + number: string + date: string + phone: string + fax: string + purchaser: string + supplierNumber: string + supplierName: string + supplierAddress: string + shipTo: string + invoiceTo: string + contacts: string + contactsPhone: string + paymentType: string + registLocation: string + bank: string + account: string + dutyParagraph: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件采购订单主列表 +export const getItemOrderMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-order-main/senior', data }) + } else { + return await request.get({ url: `/eam/item-order-main/page`, params }) + } +} + +// 查询备件采购订单主详情 +export const getItemOrderMain = async (id: number) => { + return await request.get({ url: `/eam/item-order-main/get?id=` + id }) +} + +// 新增备件采购订单主 +export const createItemOrderMain = async (data: ItemOrderMainVO) => { + return await request.post({ url: `/eam/item-order-main/create`, data }) +} + +// 修改备件采购订单主 +export const updateItemOrderMain = async (data: ItemOrderMainVO) => { + return await request.put({ url: `/eam/item-order-main/update`, data }) +} + +// 删除备件采购订单主 +export const deleteItemOrderMain = async (id: number) => { + return await request.delete({ url: `/eam/item-order-main/delete?id=` + id }) +} + +// 关闭采购订单主 +export const closeItemOrderMain = async (id: number) => { + return await request.post({ url: `/eam/item-order-main/close?id=` + id }) +} + + +// 导出备件采购订单主 Excel +export const exportItemOrderMain = async (params) => { + return await request.download({ url: `/eam/item-order-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-order-main/get-import-template' }) +} diff --git a/src/api/eam/itemOutLocation/index.ts b/src/api/eam/itemOutLocation/index.ts new file mode 100644 index 000000000..a6660ae38 --- /dev/null +++ b/src/api/eam/itemOutLocation/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface ItemOutLocationVO { + number: string + itemNumber: string + locationNumber: string + type: string + qty: number +} + +// 查询备件出库记录列表 +export const getItemOutLocationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-out-location/senior', data }) + } else { + return await request.get({ url: `/eam/item-out-location/page`, params }) + } +} + +// 查询备件出库记录详情 +export const getItemOutLocation = async (id: number) => { + return await request.get({ url: `/eam/item-out-location/get?id=` + id }) +} + +// 新增备件出库记录 +export const createItemOutLocation = async (data: ItemOutLocationVO) => { + return await request.post({ url: `/eam/item-out-location/create`, data }) +} + +// 修改备件出库记录 +export const updateItemOutLocation = async (data: ItemOutLocationVO) => { + return await request.put({ url: `/eam/item-out-location/update`, data }) +} + +// 删除备件出库记录 +export const deleteItemOutLocation = async (id: number) => { + return await request.delete({ url: `/eam/item-out-location/delete?id=` + id }) +} + +// 导出备件出库记录 Excel +export const exportItemOutLocation = async (params) => { + return await request.download({ url: `/eam/item-out-location/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-out-location/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsApplyDetail/index.ts b/src/api/eam/sparePartsApplyDetail/index.ts new file mode 100644 index 000000000..ae94831de --- /dev/null +++ b/src/api/eam/sparePartsApplyDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface SparePartsApplyDetailVO { + id: number + number: string + masterId: number + sparePartsCode: string + isRadeIn: string + applyQty: number + currentQty: number + type: string + currentSinglePrice: number + equipmentCode: byte[] + jobNumber: byte[] + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件领用申请子列表 +export const getSparePartsApplyDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-apply-detail/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-apply-detail/page`, params }) + } +} + +// 查询备件领用申请子详情 +export const getSparePartsApplyDetail = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-apply-detail/get?id=` + id }) +} + +// 新增备件领用申请子 +export const createSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => { + return await request.post({ url: `/eam/spare-parts-apply-detail/create`, data }) +} + +// 修改备件领用申请子 +export const updateSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => { + return await request.put({ url: `/eam/spare-parts-apply-detail/update`, data }) +} + +// 删除备件领用申请子 +export const deleteSparePartsApplyDetail = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-apply-detail/delete?id=` + id }) +} + +// 导出备件领用申请子 Excel +export const exportSparePartsApplyDetail = async (params) => { + return await request.download({ url: `/eam/spare-parts-apply-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-apply-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsApplyMain/index.ts b/src/api/eam/sparePartsApplyMain/index.ts new file mode 100644 index 000000000..c69234979 --- /dev/null +++ b/src/api/eam/sparePartsApplyMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface SparePartsApplyMainVO { + id: number + number: string + description: string + applyDeptId: string + sumVal: number + status: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + directCreateRecord: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件领用申请列表 +export const getSparePartsApplyMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-apply-main/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-apply-main/page`, params }) + } +} + +// 查询备件领用申请详情 +export const getSparePartsApplyMain = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-apply-main/get?id=` + id }) +} + +// 新增备件领用申请 +export const createSparePartsApplyMain = async (data: SparePartsApplyMainVO) => { + return await request.post({ url: `/eam/spare-parts-apply-main/create`, data }) +} + +// 修改备件领用申请 +export const updateSparePartsApplyMain = async (data: SparePartsApplyMainVO) => { + return await request.put({ url: `/eam/spare-parts-apply-main/update`, data }) +} + +// 删除备件领用申请 +export const deleteSparePartsApplyMain = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-apply-main/delete?id=` + id }) +} + +// 导出备件领用申请 Excel +export const exportSparePartsApplyMain = async (params) => { + return await request.download({ url: `/eam/spare-parts-apply-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-apply-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/transaction/index.ts b/src/api/eam/transaction/index.ts new file mode 100644 index 000000000..c11588aec --- /dev/null +++ b/src/api/eam/transaction/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface TransactionVO { + itemNumber: string + locationNumber: string + transactionType: string + inventoryAction: string + businessType: string + inventoryStatus: string + uom: string + qty: number +} + +// 查询库存事务列表 +export const getTransactionPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/transaction/senior', data }) + } else { + return await request.get({ url: `/eam/transaction/page`, params }) + } +} + +// 查询库存事务详情 +export const getTransaction = async (id: number) => { + return await request.get({ url: `/eam/transaction/get?id=` + id }) +} + +// 新增库存事务 +export const createTransaction = async (data: TransactionVO) => { + return await request.post({ url: `/eam/transaction/create`, data }) +} + +// 修改库存事务 +export const updateTransaction = async (data: TransactionVO) => { + return await request.put({ url: `/eam/transaction/update`, data }) +} + +// 删除库存事务 +export const deleteTransaction = async (id: number) => { + return await request.delete({ url: `/eam/transaction/delete?id=` + id }) +} + +// 导出库存事务 Excel +export const exportTransaction = async (params) => { + return await request.download({ url: `/eam/transaction/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/transaction/get-import-template' }) +} diff --git a/src/views/eam/adjustRecord/adjustRecord.data.ts b/src/views/eam/adjustRecord/adjustRecord.data.ts new file mode 100644 index 000000000..e2f5bb39d --- /dev/null +++ b/src/views/eam/adjustRecord/adjustRecord.data.ts @@ -0,0 +1,189 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const Rules = reactive({ + number: [required], + planNumber: [required], +}) + +export const AdjustRecordMain = useCrudSchemas(reactive([ + { + label: '调整编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '计划编号', + field: 'planNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '任务编号', + field: 'jobNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +//表单校验 +export const AdjustRecordMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) +/** + * @returns {Array} 备件申请子表 + */ +export const AdjustRecordDetail = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '盘点数量', + field: 'countQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '差异数量', + field: 'differenceQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const AdjustRecordDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/adjustRecord/index.vue b/src/views/eam/adjustRecord/index.vue new file mode 100644 index 000000000..e144d3276 --- /dev/null +++ b/src/views/eam/adjustRecord/index.vue @@ -0,0 +1,322 @@ + + + diff --git a/src/views/eam/applicationRecord/applicationRecordMain.data.ts b/src/views/eam/applicationRecord/applicationRecordMain.data.ts new file mode 100644 index 000000000..c7d233246 --- /dev/null +++ b/src/views/eam/applicationRecord/applicationRecordMain.data.ts @@ -0,0 +1,329 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' +import * as ItemAccountsApi from '@/api/eam/itemAccounts' +// import * as DeviceMoldItemsApi from '@/api/eam/basic/deviceMaintenance' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申请主表 + */ +export const ApplicationRecordMain = useCrudSchemas(reactive([ + { + label: '领用编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '申领人', + field: 'applyId', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '审批人', + field: 'approveId', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '出库人', + field: 'outId', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '描述', + field: 'name', + sort: 'custom', + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.ITEM_APPLY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const ApplicationRecordMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +export const DeviceMOLD = useCrudSchemas(reactive([ + { + label: '编号', + field: 'number', + sort: 'custom', + isForm: false, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + }, + { + label: '规格型号', + field: 'specification', + sort: 'custom', + }, + +])) + +/** + * @returns {Array} 备件申请子表 + */ +export const ApplicationRecordDetail = useCrudSchemas(reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', + searchField: 'number', + searchTitle: '库区信息', + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + }, + }, + { + label: '类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.DEVICE_MOLD_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: false + } + }, + + + // { + // label: '设备/模具编号', + // field: 'deviceNumber', + // sort: 'custom', + // isSearch: true, + // tableForm: { + // isInpuFocusShow: true, + // searchListPlaceholder: '请选择单号', + // searchField: 'number', + // searchTitle: '单号信息', + // searchAllSchemas: DeviceMOLD.allSchemas, // 查询弹窗所需类 + // searchPage: DeviceMoldItemsApi.getNumber, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key: 'available', + // value: "TRUE", + // isMainValue: false + // }, { + // key: 'type', + // value: "type", + // isMainValue: true + // } + // ] + // }, + // }, + { + label: '申领数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '库存数量', + field: 'currentQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + + + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + + + { + label: '是否以旧换新', + field: 'isRadeIn', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '备注', + field: 'remark', + table: { + width: 150 + }, + }, + + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const ApplicationRecordDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], + stdPackUnit: [ + { required: true, message: '请选择标包单位', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + taxRate: [ + { required: true, message: '请输入税率', trigger: 'blur' } + ], + shippedQty: [ + { required: true, message: '请输入已发货数量', trigger: 'blur' } + ], + receivedQty: [ + { required: true, message: '请输入已收货数量', trigger: 'blur' } + ], + returnedQty: [ + { required: true, message: '请输入已退货数量', trigger: 'blur' } + ], + putawayQty: [ + { required: true, message: '请输入已上架数量', trigger: 'blur' } + ], + overReceivingPercent: [ + { required: true, message: '请输入超收百分比', trigger: 'blur' } + ], + orderQty: [ + { required: true, message: '请输入订单数量', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请选择计量单位', trigger: 'change' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], + nuumber: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物品代码', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/applicationRecord/index.vue b/src/views/eam/applicationRecord/index.vue new file mode 100644 index 000000000..46c6691d2 --- /dev/null +++ b/src/views/eam/applicationRecord/index.vue @@ -0,0 +1,309 @@ + + + diff --git a/src/views/eam/countRecord/countRecord.data.ts b/src/views/eam/countRecord/countRecord.data.ts new file mode 100644 index 000000000..c6d5c3112 --- /dev/null +++ b/src/views/eam/countRecord/countRecord.data.ts @@ -0,0 +1,242 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申领主表 + */ +export const CountRecordMain = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '工单编号', + field: 'jobNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '计划编号', + field: 'requestNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.ADJUST_STATUS, + dictClass: 'string', + isTable: true, + isForm: true, + tableForm: { + type: 'Select' + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const CountRecordMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const CountRecordDetail = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '盘点数量', + field: 'countQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '差异数量', + field: 'differenceQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const CountRecordDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/countRecord/index.vue b/src/views/eam/countRecord/index.vue new file mode 100644 index 000000000..b8a269b1b --- /dev/null +++ b/src/views/eam/countRecord/index.vue @@ -0,0 +1,339 @@ + + + diff --git a/src/views/eam/countadjustPlan/countadjustPlan.data.ts b/src/views/eam/countadjustPlan/countadjustPlan.data.ts new file mode 100644 index 000000000..c1e5d3c95 --- /dev/null +++ b/src/views/eam/countadjustPlan/countadjustPlan.data.ts @@ -0,0 +1,78 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const CountadjustPlanRules = reactive({ + number: [required], + name: [required], + classification: [ + { required: true, message: '请选择盘点类型', trigger: 'blur' } + ], + +}) + +export const CountadjustPlan = useCrudSchemas(reactive([ + { + label: '计划编号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isSearch: true, + }, + { + label: '盘点类型', + field: 'classification', + sort: 'custom', + dictType: DICT_TYPE.CLASSIFICATION, + dictClass: 'string', + isSearch: false, + isTable: true, + isForm: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: false + } + }, + { + label: '是否账内库', + field: 'isInAccount', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 140 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/countadjustPlan/index.vue b/src/views/eam/countadjustPlan/index.vue new file mode 100644 index 000000000..efa6eb661 --- /dev/null +++ b/src/views/eam/countadjustPlan/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/countadjustWork/countadjustWork.data.ts b/src/views/eam/countadjustWork/countadjustWork.data.ts new file mode 100644 index 000000000..2453aa364 --- /dev/null +++ b/src/views/eam/countadjustWork/countadjustWork.data.ts @@ -0,0 +1,156 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申领主表 + */ +export const CountJobMain = useCrudSchemas(reactive([ + { + label: '计划编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '工单编号', + field: 'jobNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const CountJobMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const CountJobDetail = useCrudSchemas(reactive([ + { + label: '工单编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const CountJobDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/countadjustWork/index.vue b/src/views/eam/countadjustWork/index.vue new file mode 100644 index 000000000..65c87d3bc --- /dev/null +++ b/src/views/eam/countadjustWork/index.vue @@ -0,0 +1,306 @@ + + + diff --git a/src/views/eam/itemAccounts/index.vue b/src/views/eam/itemAccounts/index.vue new file mode 100644 index 000000000..d3b39e599 --- /dev/null +++ b/src/views/eam/itemAccounts/index.vue @@ -0,0 +1,399 @@ + + + diff --git a/src/views/eam/itemAccounts/itemAccounts.data.ts b/src/views/eam/itemAccounts/itemAccounts.data.ts new file mode 100644 index 000000000..f92091519 --- /dev/null +++ b/src/views/eam/itemAccounts/itemAccounts.data.ts @@ -0,0 +1,349 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' + +import * as SparePartApi from '@/api/eam/sparePart' +import { SparePart } from '@/views/eam/sparePart/sparePart.data' + +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemAccountsRules = reactive({ + itemNumber: [required], + singlePrice: [required], + locationNumber: [required], + qty: [required] +}) + +export const ItemAccounts = useCrudSchemas( + reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '编号信息', // 查询弹窗标题 + searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类 + searchPage: SparePartApi.getSparePartPage, // 查询弹窗所需分页方法 + searchCondition: [ + // { + // key: 'warehouseCode', + // value: 'warehouseCode', + // message: '请填写仓库代码!', + // isMainValue: true + // }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + } + }, + + { + label: '备件名称', + field: 'name', + sort: 'custom', + isSearch: true, + isForm: true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [ + // { + // key: 'warehouseCode', + // value: 'warehouseCode', + // message: '请填写仓库代码!', + // isMainValue: true + // }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + } + }, + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isSearch: true, + table: { + width: 180 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '品牌', + field: 'brand', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '规格型号', + field: 'specifications', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '是否全局', + field: 'isOverall', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '科目', + field: 'subject', + sort: 'custom', + dictType: DICT_TYPE.SUBJECT, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '科目代码', + field: 'subjectCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '类别', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '区域', + field: 'region', + sort: 'custom', + dictType: DICT_TYPE.REGION, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '备件分类', + field: 'classification', + sort: 'custom', + dictType: DICT_TYPE.PART_CLASS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '生产厂家', + field: 'manufacturer', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '库存下限', + field: 'minInventory', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '库存上限', + field: 'maxInventory', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '更换周期', + field: 'replacementCycle', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '存放位置描述', + field: 'storageLocation', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + componentProps: { + disabled: true + } + }, + + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail: false, + componentProps: { + disabled: true + } + }, + + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/eam/itemInLocation/index.vue b/src/views/eam/itemInLocation/index.vue new file mode 100644 index 000000000..725f78ec0 --- /dev/null +++ b/src/views/eam/itemInLocation/index.vue @@ -0,0 +1,224 @@ + + + diff --git a/src/views/eam/itemInLocation/itemInLocation.data.ts b/src/views/eam/itemInLocation/itemInLocation.data.ts new file mode 100644 index 000000000..4aef77dd6 --- /dev/null +++ b/src/views/eam/itemInLocation/itemInLocation.data.ts @@ -0,0 +1,53 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const ItemInLocationRules = reactive({ + number: [required], + itemNumber: [required], + locationNumber: [required], +}) + +export const ItemInLocation = useCrudSchemas(reactive([ + { + label: '入库编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '入库类型', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + component: 'Select' + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemLocationReplace/index.vue b/src/views/eam/itemLocationReplace/index.vue new file mode 100644 index 000000000..939d5693e --- /dev/null +++ b/src/views/eam/itemLocationReplace/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts new file mode 100644 index 000000000..75ed8da3b --- /dev/null +++ b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts @@ -0,0 +1,55 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemLocationReplaceRules = reactive({ + locationNumber: [required], + oldItemNumber: [required], + itemNumber: [required], +}) + +export const ItemLocationReplace = useCrudSchemas(reactive([ + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + + { + label: '变更前备件编号', + field: 'oldItemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '变更后备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '变更时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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: 'action', + isForm: false, + table: { + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemMaintenance/index.vue b/src/views/eam/itemMaintenance/index.vue new file mode 100644 index 000000000..c21050d6c --- /dev/null +++ b/src/views/eam/itemMaintenance/index.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/eam/itemMaintenance/itemMaintenance.data.ts b/src/views/eam/itemMaintenance/itemMaintenance.data.ts new file mode 100644 index 000000000..b72ca4d0e --- /dev/null +++ b/src/views/eam/itemMaintenance/itemMaintenance.data.ts @@ -0,0 +1,110 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemMaintenanceRules = reactive({ + number: [required], + itemNumber: [required], + qty: [required], + concurrencyStamp: [required], +}) + +export const ItemMaintenance = useCrudSchemas(reactive([ + { + label: '维修工单编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + }, + { + label: '事务类型', + field: 'result', + dictType: DICT_TYPE.RESULT, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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: 'reasons', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemOrderMain/index.vue b/src/views/eam/itemOrderMain/index.vue new file mode 100644 index 000000000..b37492d05 --- /dev/null +++ b/src/views/eam/itemOrderMain/index.vue @@ -0,0 +1,304 @@ + + + diff --git a/src/views/eam/itemOrderMain/itemOrderMain.data.ts b/src/views/eam/itemOrderMain/itemOrderMain.data.ts new file mode 100644 index 000000000..2c127f91c --- /dev/null +++ b/src/views/eam/itemOrderMain/itemOrderMain.data.ts @@ -0,0 +1,310 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { SparePart } from '@/views/eam/sparePart/sparePart.data' +import * as ItemApi from '@/api/eam/sparePart' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申请主表 + */ +export const ItemOrderMain = useCrudSchemas(reactive([ + { + label: '采购订单编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 150, + fixed: 'left' + }, + }, + { + label: '电话', + field: 'phone', + sort: 'custom', + }, + { + label: '传真', + field: 'fax', + sort: 'custom', + }, + { + label: '采购员', + field: 'purchaser', + sort: 'custom', + }, + { + label: '供应商编号', + field: 'supplierNumber', + sort: 'custom', + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + }, + { + label: '供应商地址', + field: 'supplierAddress', + sort: 'custom', + }, + { + label: '发货至', + field: 'shipTo', + sort: 'custom', + }, + { + label: '开票至', + field: 'invoiceTo', + sort: 'custom', + }, + { + label: '联系人', + field: 'contacts', + sort: 'custom', + }, + { + label: '联系电话', + field: 'contactsPhone', + sort: 'custom', + }, + { + label: '付款方式', + field: 'paymentType', + sort: 'custom', + form: { + component: 'Select' + }, + }, + { + label: '注册地', + field: 'registLocation', + sort: 'custom', + }, + { + label: '开户行', + field: 'bank', + sort: 'custom', + }, + { + label: '账号', + field: 'account', + sort: 'custom', + }, + { + label: '税号', + field: 'dutyParagraph', + sort: 'custom', + }, + // { + // label: '是否关闭', + // field: 'available', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isSearch: false, + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm: { + // type: 'Select', + // inactiveValue: 'FALSE', + // disabled: true + // }, + // form: { + // component: 'Switch', + // value: 'FALSE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.IS_COMPLETE, + dictClass: 'string', + isTable: true, + isForm: true, + tableForm: { + type: 'Select' + }, + form: { + value: 'INCOMPLETE', + componentProps: { + disabled: true, + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const ItemOrderMainRules = reactive({ + available: [ + { required: true, message: '请选择是否关闭', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const ItemOrderDetail = useCrudSchemas(reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', + searchField: 'number', + searchTitle: '备件信息', + searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类 + searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + }, + }, + { + label: '备件名称', + field: 'itemName', + sort: 'custom', + isSearch: true, + table: { + width: 110, + }, + tableForm: { + disabled: true + } + }, + { + label: '单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '是否以旧换新', + field: 'isRadeIn', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '库存数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '备注', + field: 'remark', + table: { + width: 150 + }, + }, + + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const ItemOrderDetailRules = reactive({ + singlePrice: [ + { required: true, message: '请输入备件单价', trigger: 'blur' }, + ], +}) diff --git a/src/views/eam/itemOutLocation/index.vue b/src/views/eam/itemOutLocation/index.vue new file mode 100644 index 000000000..0773cbbbd --- /dev/null +++ b/src/views/eam/itemOutLocation/index.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/eam/itemOutLocation/itemOutLocation.data.ts b/src/views/eam/itemOutLocation/itemOutLocation.data.ts new file mode 100644 index 000000000..ac2890387 --- /dev/null +++ b/src/views/eam/itemOutLocation/itemOutLocation.data.ts @@ -0,0 +1,53 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const ItemOutLocationRules = reactive({ + number: [required], + itemNumber: [required], + locationNumber: [required], +}) + +export const ItemOutLocation = useCrudSchemas(reactive([ + { + label: '出库编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '出库类型', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + component: 'Select' + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) \ No newline at end of file diff --git a/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts new file mode 100644 index 000000000..b58324f71 --- /dev/null +++ b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts @@ -0,0 +1,290 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +import * as ItemAccountsApi from '@/api/eam/itemAccounts' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' + +import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data' +import * as EquipmentItemApi from '@/api/eam/equipmentAccounts' + +import { dateFormatter } from '@/utils/formatTime' + +export const SparePartsApplyMain = useCrudSchemas( + reactive([ + { + label: '申请编号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '申领备件总价', + field: 'sumVal', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'Radio' + } + }, + { + label: '申请人', + field: 'applyer', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: true, + isForm: false + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isForm: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '自动审核', + field: 'autoExamine', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const SparePartsApplyMainRules = reactive({ + description: [{ required: true, message: '描述不能为空', trigger: 'change' }] +}) +/** + * @returns {Array} 备件申请子表 + */ +export const SparePartsApplyDetail = useCrudSchemas( + reactive([ + { + label: '备件编号', + field: 'sparePartsCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + { + label: '设备类别', + field: 'type', + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '设备工装编号', + field: 'equipmentCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '设备信息', // 查询弹窗标题 + searchListPlaceholder: '请选择 设备编号', // 输入框占位文本 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + multiple: true, + searchCondition: [ + { + key: 'status', + value: 'NORMAL', + action: '==', + isSearch: true, + isMainValue: false + } + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'status', + value: 'NORMAL', + action: '==', + isSearch: true, + isMainValue: false + } + ] + } + }, + + { + label: '库存数量', + field: 'currentQty', + sort: 'custom', + isSearch: false, + tableForm: { + disabled: true + } + }, + { + label: '申领数量', + field: 'applyQty', + sort: 'custom', + isSearch: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false + } + ]) +) + +//表单校验 +export const SparePartsApplyDetailRules = reactive({ + applyQty: [{ required: true, message: '请输入标包数量', trigger: 'blur' }] +}) diff --git a/src/views/eam/sparePartsApplyMain/index.vue b/src/views/eam/sparePartsApplyMain/index.vue new file mode 100644 index 000000000..698503b35 --- /dev/null +++ b/src/views/eam/sparePartsApplyMain/index.vue @@ -0,0 +1,372 @@ + + + diff --git a/src/views/eam/transaction/index.vue b/src/views/eam/transaction/index.vue new file mode 100644 index 000000000..c9857a614 --- /dev/null +++ b/src/views/eam/transaction/index.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/views/eam/transaction/transaction.data.ts b/src/views/eam/transaction/transaction.data.ts new file mode 100644 index 000000000..f75af8ac6 --- /dev/null +++ b/src/views/eam/transaction/transaction.data.ts @@ -0,0 +1,94 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const Rules = reactive({ + itemNumber: [required], + locationNumber: [required], + inventoryAction: [required], + businessType: [required], + uom: [required], +}) + +export const Transaction = useCrudSchemas(reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编码', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '事务类型', + field: 'transactionType', + sort: 'custom', + dictType: DICT_TYPE.TRANSACTION_TYPE, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存动作', + field: 'inventoryAction', + sort: 'custom', + dictType: DICT_TYPE.INVENTORY_ACTION, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '关联单号', + field: 'associatedNumber', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + isSearch: false, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) From 6011f084407d98d407710d07e45393e95fb5b886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B7=BB=E7=A0=96-JAVA=5CAdministrator?= <591141169@qq.com> Date: Fri, 7 Jun 2024 11:25:09 +0800 Subject: [PATCH 07/44] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/eam/applicationRecord/index.vue | 540 ++++++++++++---------- 1 file changed, 301 insertions(+), 239 deletions(-) diff --git a/src/views/eam/applicationRecord/index.vue b/src/views/eam/applicationRecord/index.vue index 46c6691d2..f37e311d3 100644 --- a/src/views/eam/applicationRecord/index.vue +++ b/src/views/eam/applicationRecord/index.vue @@ -1,309 +1,371 @@ @@ -162,7 +162,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => }) } // if(formField == 'itemCode') { - // row['uom'] = val[0]['customerUom'] + // row['uom'] = val[0]['customerUom'] // } // 明细查询页赋值 row[formField] = val[0][searchField] @@ -414,7 +414,7 @@ const handleExport = async () => { const data = await DeliverPlanMainApi.exportDeliverPlanMain(tableObject.params) download.excel(data, '发货计划主.xlsx') }else{ - const data = await DeliverRequestMainApi.exportZZBJDeliverPlanMain(tableObject.params) + const data = await DeliverPlanMainApi.exportZZBJDeliverPlanMain(tableObject.params) download.excel(data, '自制备件发货计划主.xlsx') } } catch { From ac146e24a86df6b927adf1cacf29131afc746513 Mon Sep 17 00:00:00 2001 From: TengXF <302828528@qq.com> Date: Fri, 7 Jun 2024 11:42:37 +0800 Subject: [PATCH 10/44] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D=20=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E5=B7=A5=E5=BA=8F=E4=BB=A3=E7=A0=81=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productscrapRequestMain.data.ts | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts index 06833299d..8b8359079 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts @@ -44,7 +44,7 @@ const queryParams = { // id 转str 否则form回显匹配不到 userDept.id = userDept.id.toString() const userDeptArray:any = [userDept] - + /** * @returns {Array} 制品报废申请主表 @@ -250,7 +250,7 @@ export const ProductscrapRequestMain = useCrudSchemas(reactive([ }, isForm: false, }, - + { label: '创建时间', field: 'createTime', @@ -539,7 +539,7 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ isForm: false, isTableForm: false, }, - + { label: '来源工位代码', field: 'workStationCode', @@ -837,7 +837,7 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ } } }, - + { label: '包装号', field: 'packingNumber', @@ -884,8 +884,8 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ disabled: true } }, - - + + { label: '库存状态', field: 'inventoryStatus', @@ -916,7 +916,7 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ isForm: false, isTableForm: false, }, - + { label: '物料描述1', field: 'itemDesc1', @@ -939,8 +939,8 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ isForm: false, isTableForm: false, }, - - + + { label: '项目代码', field: 'projectCode', @@ -952,7 +952,7 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ isForm: false, isTableForm: false, }, - + { label: '最后更新时间', field: 'updateTime', @@ -1047,7 +1047,7 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false }, - + { label: '操作', field: 'action', @@ -1075,9 +1075,9 @@ export const ProductscrapRequestDetailRules = reactive({ workStationCode: [ { required: true, message: '请选择工位代码', trigger: 'change' } ], - processCode: [ - { required: true, message: '请选择工序代码', trigger: 'change' } - ], + // processCode: [ + // { required: true, message: '请选择工序代码', trigger: 'change' } + // ], itemCode: [ { required: true, message: '请选择物料代码', trigger: 'change' } ], @@ -1189,7 +1189,7 @@ export const ProdcutscrapBomScrap = useCrudSchemas(reactive([ disabled: true } }, - + { label: '从库位代码', field: 'fromLocationCode', @@ -1261,5 +1261,5 @@ export const ProdcutscrapBomScrap = useCrudSchemas(reactive([ //表单校验 export const ProdcutscrapBomScrapRules = reactive({ - + }) From 032ab53a24d339f0a822d84f379a001832695bed Mon Sep 17 00:00:00 2001 From: yufei0306 <13417315+yufei0306@user.noreply.gitee.com> Date: Fri, 7 Jun 2024 11:57:48 +0800 Subject: [PATCH 11/44] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=9C=88=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.wyf | 30 +++++++++---------- .../customerdock/customerdock.data.ts | 8 ++--- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.env.wyf b/.env.wyf index ae1a58502..5b2520335 100644 --- a/.env.wyf +++ b/.env.wyf @@ -3,16 +3,16 @@ NODE_ENV=test VITE_DEV=false -# 请求路径 -VITE_BASE_URL='http://192.168.0.108:12080' -# 上传路径 -VITE_UPLOAD_URL='http://192.168.0.108:12080/admin-api/infra/file/upload' +# # # 请求路径 +# VITE_BASE_URL='http://192.168.0.110:12080' +# # 上传路径 +# VITE_UPLOAD_URL='http://192.168.0.110:12080/admin-api/infra/file/upload' -# # 请求路径 -# VITE_BASE_URL='http://dev.ccwin-in.com:25300/api' +# 请求路径 +VITE_BASE_URL='http://dev.ccwin-in.com:25300/api' -# # 上传路径 -# VITE_UPLOAD_URL='http://dev.ccwin-in.com:25300/api/admin-api/infra/file/upload' +# 上传路径 +VITE_UPLOAD_URL='http://dev.ccwin-in.com:25300/api/admin-api/infra/file/upload' # 接口前缀 VITE_API_BASEPATH= @@ -35,17 +35,17 @@ VITE_BASE_PATH=/ # 输出路径 VITE_OUT_DIR=sfms3.0 +# # 自定义接口路径 +# VITE_INTERFACE_URL='http://192.168.0.108:12080/magic/web/index.html' + +# # 积木报表请求路径 +# VITE_JMREPORT_BASE_URL='http://192.168.0.108:12080' + # 自定义接口路径 -VITE_INTERFACE_URL='http://192.168.0.108:12080/magic/web/index.html' +VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html' # 积木报表请求路径 VITE_JMREPORT_BASE_URL='http://192.168.0.108:12080' -# # 自定义接口路径 -# VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html' - -# # 积木报表请求路径 -# VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25310' - # 租户配置 VITE_TENANT='["长春","成都"]' \ No newline at end of file diff --git a/src/views/wms/basicDataManage/customerManage/customerdock/customerdock.data.ts b/src/views/wms/basicDataManage/customerManage/customerdock/customerdock.data.ts index 3c0c61dd3..27a5f66e5 100644 --- a/src/views/wms/basicDataManage/customerManage/customerdock/customerdock.data.ts +++ b/src/views/wms/basicDataManage/customerManage/customerdock/customerdock.data.ts @@ -142,7 +142,7 @@ export const Customerdock = useCrudSchemas(reactive([ form: { // // labelMessage: '信息提示说明!!!', componentProps: { - disabled:true + // disabled:true // isSearchList: true, // 开启查询弹窗 // searchListPlaceholder: '请选择库位代码', // 输入框占位文本 // searchField: 'code', // 查询弹窗赋值字段 @@ -285,9 +285,9 @@ export const CustomerdockRules = reactive({ { max: 50, message: '不得超过50个字符', trigger: 'blur' }, { validator:validateYS, message: '请输入正确的代码', trigger: 'blur'} ], - defaultLocationCode:[ - { required: true, message: '请选择库位代码', trigger: 'blur' }, - ], + // defaultLocationCode:[ + // { required: true, message: '请选择库位代码', trigger: 'blur' }, + // ], name: [ { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], From 4ec85a110aa66612346bf191f42dccb6dd943dbd Mon Sep 17 00:00:00 2001 From: yufei0306 <13417315+yufei0306@user.noreply.gitee.com> Date: Fri, 7 Jun 2024 12:01:27 +0800 Subject: [PATCH 12/44] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/rowDrop/index.vue | 103 +++++++++--------- .../supplierdeliverRecordMain.data.ts | 1 + 2 files changed, 50 insertions(+), 54 deletions(-) diff --git a/src/components/rowDrop/index.vue b/src/components/rowDrop/index.vue index cfc21a0f5..f9e4b9a96 100644 --- a/src/components/rowDrop/index.vue +++ b/src/components/rowDrop/index.vue @@ -47,11 +47,14 @@ const allData = ref([]) // 字段设置列表展现字段 除操作外 const checkedDataList = ref([]) const checkAll = ref(true) const handlecheckallchange = (val: boolean) => { + console.log('handlecheckallchange全部',val) checkedDataList.value = val ? allData.value : [] isIndeterminate.value = false save() } const handlecheckedchange = (value: string[]) => { + console.log('handlecheckedchange',value) + console.log('allData',allData.value) const checkedCount = value.length checkAll.value = checkedCount === allData.value.length isIndeterminate.value = checkedCount > 0 && checkedCount < allData.value.length @@ -80,44 +83,43 @@ const closeRowDrop = () => { // 保存 const save = () => { - let saveDate:any[] = [] // 默认列表第一列(弹出详情用) let myTableColumns = props.allSchemas.tableColumns if(props.detailAllSchemas){ myTableColumns = [...props.allSchemas?.tableColumns,...props.detailAllSchemas?.tableMainColumns] } - let actionData = myTableColumns.find(item=>item.field=='action') - if(actionData){ - myTableColumns.splice(myTableColumns[actionData],1) - myTableColumns = [...myTableColumns,actionData] - } - if(props.allSchemas?.tableColumns[0].fixed=='left'&&!saveDate.find(item=>item.fixed=='left')){ - saveDate.push(props.allSchemas?.tableColumns[0]) - } - allData.value.forEach((item) => { - const _item:any = myTableColumns.find(itemColumns => (itemColumns.label == item )) - if(_item){ - _item.isTable = false - if (checkedDataList.value.indexOf(_item.label) > -1) { - _item.isTable = true - if(!saveDate.includes(_item)){ + console.log('myTableColumns',myTableColumns) + console.log('checkedDataList',checkedDataList) + console.log('allData',allData.value) + + let leftArr = [] + let rightArr = [] + myTableColumns.forEach(item=>{ + if(item.fixed=='left'){ + leftArr.push(item) + }else if(item.fixed=='right'){ + rightArr.push(item) + } + }) + let saveDate:any[] = [...leftArr] + allData.value.forEach(itemLabel=>{ + const _item:any = myTableColumns.find(itemColumns => (itemColumns.label == itemLabel )) + if(_item){ + _item.isTable = checkedDataList.value.find(checkedLabel => checkedLabel==itemLabel)?true:false + if(_item.isTable){ saveDate.push(_item) } } - } }) - // 默认操作列 - if(actionData&&!saveDate.includes(actionData)){ - saveDate.push(actionData) - } + saveDate = [...saveDate,...rightArr] updataTableColumns(saveDate) - console.log(99, saveDate) - let paramsData = saveDate.map(item=>({ label:item.label, fixed:item.fixed, - field:item.field + field:item.field, + isTable:item.isTable })) + console.log('paramsData',paramsData) RedisApi.addRedis({key: routeName.value,value: JSON.stringify(paramsData)}).then(() => { }).catch(err => { console.log(err) @@ -149,46 +151,41 @@ const dragover = (e) => { // 初始化当前全选状态 const initSelectSta = () => { RedisApi.getRedis(routeName.value).then(res => { - - let _myTableColumns = [...props.allSchemas?.tableColumns] + let myTableColumns = [...props.allSchemas?.tableColumns] if(props.detailAllSchemas){ - _myTableColumns = [...props.allSchemas?.tableColumns,...props.detailAllSchemas?.tableMainColumns] + myTableColumns = [...props.allSchemas?.tableColumns,...props.detailAllSchemas?.tableMainColumns] } - updateSort(_myTableColumns) + let leftArr = [] + let rightArr = [] + myTableColumns.forEach(item=>{ + if(item.fixed=='left'){ + leftArr.push(item) + }else if(item.fixed=='right'){ + rightArr.push(item) + } + }) + updateSort(myTableColumns) // 有缓存 if (res) { checkedDataList.value = [] allData.value = [] // 缓存回显临时变量 - const _showTableColumns = [] - _showTableColumns.push(_myTableColumns[0]) + const _showTableColumns = [...leftArr] // 显示缓存中的字段 JSON.parse(res).forEach((item, index) => { // 列表字段第一个不能参与排序及显隐操作(详情弹窗必备) // 列表字段操作列不能参与排序及显隐操作 if (!item.fixed) { - if (item.field != 'action') { + if (item.isTable) { checkedDataList.value.push(item.label) - _showTableColumns.push(_myTableColumns.find(myItem => (myItem.label == item.label))) - allData.value.push(t(`ts.${item.label}`).replace('ts.','')) } + let itemColumn = myTableColumns.find(myItem => (myItem.label == item.label)) + itemColumn.isTable = item.isTable + _showTableColumns.push(itemColumn) + allData.value.push(t(`ts.${item.label}`).replace('ts.','')) } }) - - // 字段设置 显示全部字段 - _myTableColumns?.forEach((myTableItem, index) => { - // 列表字段第一个不能参与排序及显隐操作(详情弹窗必备) - // 列表字段操作列不能参与排序及显隐操作 - if (!myTableItem.fixed) { - if (myTableItem.field != 'action') { - if (allData.value.indexOf(myTableItem.label) == -1) { - allData.value.push(t(`ts.${myTableItem.label}`).replace('ts.','')) - } - } - } - }) - - _showTableColumns.push(_myTableColumns[_myTableColumns.length-1]) + _showTableColumns = [..._showTableColumns,...rightArr] if(checkedDataList.value.length>0){ if(allData.value?.length != checkedDataList.value.length){ isIndeterminate.value = true @@ -206,18 +203,16 @@ const initSelectSta = () => { } else { // 无缓存 checkedDataList.value = [] allData.value = [] - _myTableColumns?.forEach((item, index) => { + myTableColumns?.forEach((item, index) => { // 列表字段第一个不能参与排序及显隐操作(详情弹窗必备) // 列表字段操作列不能参与排序及显隐操作 if (!item.fixed) { - if (item.field != 'action') { - checkedDataList.value.push(item.label) - allData.value.push(t(`ts.${item.label}`).replace('ts.','')) - } + checkedDataList.value.push(item.label) + allData.value.push(t(`ts.${item.label}`).replace('ts.','')) } }) checkAll.value = true - updataTableColumns(_myTableColumns) + updataTableColumns(myTableColumns) } }).catch(err => { console.log(err) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts index 20e9c604d..d4b7f0c34 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts @@ -675,6 +675,7 @@ export const SupplierdeliverRecordDetail = useCrudSchemas(reactive label: '单据号', field: 'number', sort: 'custom', + hiddenInMain:true, table: { width: 180 }, From c67dc8c6c08503fe62fca65824f23b680adec93c Mon Sep 17 00:00:00 2001 From: gaojs <757918719@qq.com> Date: Fri, 7 Jun 2024 13:12:41 +0800 Subject: [PATCH 13/44] =?UTF-8?q?EAM=20=20=E2=80=94=E2=80=94>=20=E6=8A=A5?= =?UTF-8?q?=E4=BF=AE=E5=B7=A5=E5=8D=95=20=E6=8A=A5=E4=BF=AE=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=20=20=E7=BB=B4=E4=BF=AE=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/eam/equipmentRepairJobMain/index.ts | 15 +- src/hooks/web/useMessage.ts | 3 +- src/utils/disposition/defaultButtons.ts | 26 +++ .../equipmentMaintenanceMain/finishForm1.vue | 5 +- .../eam/equipmentMaintenanceMain/index.vue | 18 +- .../equipmentRepairJobMain.data.ts | 46 +++- .../equipmentRepairJobMain/finishForm1.vue | 211 ++++++++++++++++++ .../equipmentRepairJobMain/finishForm3.vue | 209 +++++++++++++++++ .../eam/equipmentRepairJobMain/index.vue | 117 ++++++++++ .../supplierinvoiceRequestMain.data.ts | 2 +- 10 files changed, 631 insertions(+), 21 deletions(-) create mode 100644 src/views/eam/equipmentRepairJobMain/finishForm1.vue create mode 100644 src/views/eam/equipmentRepairJobMain/finishForm3.vue diff --git a/src/api/eam/equipmentRepairJobMain/index.ts b/src/api/eam/equipmentRepairJobMain/index.ts index 0d83bcb3e..0d19f793a 100644 --- a/src/api/eam/equipmentRepairJobMain/index.ts +++ b/src/api/eam/equipmentRepairJobMain/index.ts @@ -14,9 +14,12 @@ export interface EquipmentRepairJobMainVO { startTime: Date endTime: Date totalMinutes: number - verifyer: number - verifyContent: string - verifyTime: Date + verifyerRepair: number + verifyContentRepair: string + verifyTimeRepair: Date + verifyerReport: number + verifyContentReport: string + verifyTimeReport: Date maintenancer: number maintenancePhone: string completeResult: string @@ -100,3 +103,9 @@ export const importTemplate = () => { export const updateEquipmentRepairOrder = async (data: EquipmentRepairJobMainVO) => { return await request.post({ url: `/eam/equipment-repair-job-main/updateOrder`, data }) } + +//验证不通过,打回维修工单 +export const backEquipmentRepairOrder = async (data: EquipmentRepairJobMainVO) => { + return await request.post({ url: `/eam/equipment-repair-job-main/fallback`, data }) +} + diff --git a/src/hooks/web/useMessage.ts b/src/hooks/web/useMessage.ts index 8bd660bcb..1de182273 100644 --- a/src/hooks/web/useMessage.ts +++ b/src/hooks/web/useMessage.ts @@ -62,9 +62,10 @@ export const useMessage = () => { // 验证窗体 confirmPassword(content: string, tip?: string) { return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), { + distinguishCancelAndClose: true, confirmButtonText: t('验证通过'), cancelButtonText: t('验证不通过'), - type: 'warning' + type: 'warning', }) }, // 审核窗体 diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts index 25cb20558..e56253106 100644 --- a/src/utils/disposition/defaultButtons.ts +++ b/src/utils/disposition/defaultButtons.ts @@ -415,6 +415,32 @@ export function mainListValidateBtn(option:any) { }) } +// 主列表-报修验证按钮 +export function mainListValidateReportBtn(option:any) { + return __defaultBtnOption(option,{ + label: t(`ts.报修验证`).replace('ts.', ''), + name: 'validate_report', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-维修验证按钮 +export function mainListValidateRepairBtn(option:any) { + return __defaultBtnOption(option,{ + label: t(`ts.维修验证`).replace('ts.', ''), + name: 'validate_repair', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + // 主列表-审核按钮 export function mainListAuditingBtn(option:any) { return __defaultBtnOption(option,{ diff --git a/src/views/eam/equipmentMaintenanceMain/finishForm1.vue b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue index c50b366ad..34f04c3ce 100644 --- a/src/views/eam/equipmentMaintenanceMain/finishForm1.vue +++ b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue @@ -169,8 +169,7 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗 /** 提交表单 */ const submitForm = async (val) => { - //把success函数传递到父页面 - emit('success',formData.value.id) + // 校验表单 if (!basicFormRef) return const valid = await basicFormRef.value.validate() @@ -178,6 +177,8 @@ const submitForm = async (val) => { //发送数据 await EquipmentMaintenanceMainApi.updateEquipmentMaintenanceMain(formData.value) + //把success函数传递到父页面 + emit('success',formData.value.id) dialogVisible.value = false } diff --git a/src/views/eam/equipmentMaintenanceMain/index.vue b/src/views/eam/equipmentMaintenanceMain/index.vue index d9f106904..a9dd788f7 100644 --- a/src/views/eam/equipmentMaintenanceMain/index.vue +++ b/src/views/eam/equipmentMaintenanceMain/index.vue @@ -363,14 +363,16 @@ const handleValidate = async (row) => { // 二次确认 //打开提交表单 finishForm1Ref.value.open('update', row); - }).catch (async () => { - const params = ref({id: '', status:''}) - params.value.id = row.id - params.value.status = '5' - await EquipmentMaintenanceMainApi.backMaintenanceOrder(params.value) - message.success(t('工单已打回')) - // 刷新列表 - await getList() + }).catch (async (action: Action) => { + if(action === 'cancel'){ + const params = ref({id: '', status:''}) + params.value.id = row.id + params.value.status = '5' + await EquipmentMaintenanceMainApi.backMaintenanceOrder(params.value) + message.success(t('工单已打回')) + // 刷新列表 + await getList() + } }) } diff --git a/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts b/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts index f516ddd2a..14f3d3a3a 100644 --- a/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts +++ b/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts @@ -166,20 +166,54 @@ export const EquipmentRepairJobMain = useCrudSchemas(reactive([ isSearch: false, }, { - label: '验证人', - field: 'verifyer', + label: '维修验证人', + field: 'verifyerRepair', sort: 'custom', isSearch: false, }, { - label: '验证内容', - field: 'verifyContent', + label: '维修验证内容', + field: 'verifyContentRepair', sort: 'custom', isSearch: false, }, { - label: '验证时间', - field: 'verifyTime', + label: '维修验证时间', + field: 'verifyTimeRepair', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '报修验证人', + field: 'verifyerReport', + sort: 'custom', + isSearch: false, + }, + { + label: '报修验证内容', + field: 'verifyContentReport', + sort: 'custom', + isSearch: false, + }, + { + label: '报修验证时间', + field: 'verifyTimeReport', sort: 'custom', formatter: dateFormatter, isSearch: false, diff --git a/src/views/eam/equipmentRepairJobMain/finishForm1.vue b/src/views/eam/equipmentRepairJobMain/finishForm1.vue new file mode 100644 index 000000000..6fe664349 --- /dev/null +++ b/src/views/eam/equipmentRepairJobMain/finishForm1.vue @@ -0,0 +1,211 @@ + + + + diff --git a/src/views/eam/equipmentRepairJobMain/finishForm3.vue b/src/views/eam/equipmentRepairJobMain/finishForm3.vue new file mode 100644 index 000000000..41dbd233c --- /dev/null +++ b/src/views/eam/equipmentRepairJobMain/finishForm3.vue @@ -0,0 +1,209 @@ + + + + diff --git a/src/views/eam/equipmentRepairJobMain/index.vue b/src/views/eam/equipmentRepairJobMain/index.vue index d341b418a..4360f477d 100644 --- a/src/views/eam/equipmentRepairJobMain/index.vue +++ b/src/views/eam/equipmentRepairJobMain/index.vue @@ -50,7 +50,9 @@ :isBusiness="false" /> + + { defaultButtons.mainListReceiveOrderBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:equipmentRepairJobMain:update'}), // 接单 defaultButtons.mainListExecuteBtn({hide: isShowStatusButton(row,['4']),hasPermi:'eam:equipmentRepairJobMain:update'}), // 执行 defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentRepairJobMain:update'}), //完成 + defaultButtons.mainListValidateRepairBtn({hide: isShowStatusButton(row,['6']),hasPermi:'eam:equipmentRepairJobMain:update'}), // 维修验证 + defaultButtons.mainListValidateReportBtn({hide: isShowStatusButton(row,['7']),hasPermi:'eam:equipmentRepairJobMain:update'}), // 报修验证 ] } @@ -182,6 +188,10 @@ const buttonTableClick = async (val, row) => { handleExecute(row.id) } else if (val == 'finish') { // 完成 handleFinish(row) + } else if (val == 'validate_repair') { // 维修验证 + handleValidateRepair(row) + } else if (val == 'validate_report') { // 报修验证 + handleValidateReport(row) } @@ -251,6 +261,52 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => { }) } + +/** 报修验证按钮操作 */ +const finishForm3Ref = ref() +const handleValidateReport = async (row) => { + await message.delConfirm('是否验证所选中工单?'); + message.confirmPassword(t('')).then(async () => { + // 二次确认 + //打开提交表单 + finishForm3Ref.value.open('update', row); + }).catch (async (action: Action) => { + if(action === 'cancel'){ + const params = ref({id: '', status:''}) + params.value.id = row.id + params.value.status = '5' + //生成新工单 + await EquipmentRepairJobMainApi.backEquipmentRepairOrder(params.value) + message.success(t('工单已打回')) + // 刷新列表 + await getList() + } + }) + +} + +/** 维修验证按钮操作 */ +const finishForm1Ref = ref() +const handleValidateRepair = async (row) => { + await message.delConfirm('是否验证所选中工单?'); + message.confirmPassword(t('')).then(async () => { + // 二次确认 + //打开提交表单 + finishForm1Ref.value.open('update', row); + }).catch (async (action: Action) => { + if(action === 'cancel'){ + const params = ref({id: '', status:''}) + params.value.id = row.id + params.value.status = '5' + await EquipmentRepairJobMainApi.backEquipmentRepairOrder(params.value) + message.success(t('工单已打回')) + // 刷新列表 + await getList() + } + }) + +} + /** 完成按钮操作 */ const finishForm2Ref = ref() const handleFinish = async (row) => { @@ -313,6 +369,36 @@ const handleDelete = async (id: number) => { } +//finishForm1 关闭按钮回传 +const getClosed1=(val)=> { + nextTick?.(() => { + console.log(val) + getList() + }) +} + +//finishForm1 提交按钮回传 +const getData1=(val)=> { + nextTick?.(async () => { + console.log(val) + try { + const params = ref({ + id: '', + status:'', + }) + params.value.id = val + params.value.status = '7' + await EquipmentRepairJobMainApi.updateEquipmentRepairOrder(params.value) + message.success(t('工单已流转')) + // 刷新列表 + await getList() + } catch {} + + } + ) +} + + //finishForm2 关闭按钮回传 const getClosed2=(val)=> { @@ -338,6 +424,37 @@ const getData2=(val)=> { }) } + + +//finishForm3 关闭按钮回传 +const getClosed3=(val)=> { + nextTick?.(() => { + console.log(val) + getList() + }) +} + +//finishForm3 提交按钮回传 +const getData3=(val)=> { + nextTick?.(async () => { + console.log(val) + try { + const params = ref({ + id: '', + status:'', + }) + params.value.id = val + params.value.status = '7' + await EquipmentRepairJobMainApi.updateEquipmentRepairOrder(params.value) + message.success(t('工单已流转')) + // 刷新列表 + await getList() + } catch {} + + } + ) +} + /** 导出按钮操作 */ const exportLoading = ref(false) // 导出的加载中 const handleExport = async () => { diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts index 642c6ac15..e56c65428 100644 --- a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts @@ -28,7 +28,7 @@ const requestsettingData = data?.list[0] || {} userDept.id = userDept.id.toString() const userDeptArray:any = [userDept] - const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'purchase',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) + const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'procurement_role',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) /** * @returns {Array} 采购员列表 */ From b8f8a7666e53e8e94e939459f7ff60259bd69467 Mon Sep 17 00:00:00 2001 From: yufei0306 <13417315+yufei0306@user.noreply.gitee.com> Date: Fri, 7 Jun 2024 13:12:54 +0800 Subject: [PATCH 14/44] console.log --- src/components/rowDrop/index.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/rowDrop/index.vue b/src/components/rowDrop/index.vue index f9e4b9a96..815959610 100644 --- a/src/components/rowDrop/index.vue +++ b/src/components/rowDrop/index.vue @@ -47,14 +47,14 @@ const allData = ref([]) // 字段设置列表展现字段 除操作外 const checkedDataList = ref([]) const checkAll = ref(true) const handlecheckallchange = (val: boolean) => { - console.log('handlecheckallchange全部',val) + // console.log('handlecheckallchange全部',val) checkedDataList.value = val ? allData.value : [] isIndeterminate.value = false save() } const handlecheckedchange = (value: string[]) => { - console.log('handlecheckedchange',value) - console.log('allData',allData.value) + // console.log('handlecheckedchange',value) + // console.log('allData',allData.value) const checkedCount = value.length checkAll.value = checkedCount === allData.value.length isIndeterminate.value = checkedCount > 0 && checkedCount < allData.value.length @@ -88,9 +88,9 @@ const save = () => { if(props.detailAllSchemas){ myTableColumns = [...props.allSchemas?.tableColumns,...props.detailAllSchemas?.tableMainColumns] } - console.log('myTableColumns',myTableColumns) - console.log('checkedDataList',checkedDataList) - console.log('allData',allData.value) + // console.log('myTableColumns',myTableColumns) + // console.log('checkedDataList',checkedDataList) + // console.log('allData',allData.value) let leftArr = [] let rightArr = [] @@ -119,7 +119,7 @@ const save = () => { field:item.field, isTable:item.isTable })) - console.log('paramsData',paramsData) + // console.log('paramsData',paramsData) RedisApi.addRedis({key: routeName.value,value: JSON.stringify(paramsData)}).then(() => { }).catch(err => { console.log(err) From a16d2fde149af0415006e0e87156e3d7943c4ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Fri, 7 Jun 2024 13:29:00 +0800 Subject: [PATCH 15/44] a --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 871612b43..6966b07c3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## dev发布2024-06-01-001 +## dev发布2024-06-01-002 **xxxx.data.ts 文件配置说明** **form表单查询弹窗配置** form: { From 17d2e41149a408ff1fd29ca33f44ace6a964b4c9 Mon Sep 17 00:00:00 2001 From: chenfang Date: Fri, 7 Jun 2024 14:06:36 +0800 Subject: [PATCH 16/44] =?UTF-8?q?bom=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productreceiptscrap/productreceiptscrapRecordMain/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue b/src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue index 091372a96..84962d800 100644 --- a/src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue +++ b/src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue @@ -221,7 +221,7 @@ const tableFormButton = async (val , row) => { bomModelVisible.value = true DialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息' detatableDataBom.params = { - masterId: row.masterId + masterId: row.id } await getDetailListBom() } From 0890b8754aa13af74e040fc90e282e672d841d77 Mon Sep 17 00:00:00 2001 From: bjang03 Date: Fri, 7 Jun 2024 16:14:37 +0800 Subject: [PATCH 17/44] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D=201=E3=80=81?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BE=9B=E5=BA=94=E5=95=86=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=96=B0=E5=A2=9E=E6=97=A0=E6=B3=95=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=87=87=E8=B4=AD=E4=BB=B7=E6=A0=BC=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supplierinvoiceRequestMain.data.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts index e56c65428..a38d68dcf 100644 --- a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts @@ -27,8 +27,8 @@ const requestsettingData = data?.list[0] || {} // id 转str 否则form回显匹配不到 userDept.id = userDept.id.toString() const userDeptArray:any = [userDept] - - const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'procurement_role',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) + +const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'purchase',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) /** * @returns {Array} 采购员列表 */ From 611c968b22e2e1185fd578314cb677713019c938 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Fri, 7 Jun 2024 16:14:38 +0800 Subject: [PATCH 18/44] =?UTF-8?q?=E5=A4=87=E4=BB=B6=E5=85=A5=E8=B4=A6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eam/sparePartsInLocationDetail/index.ts | 58 +++ src/api/eam/sparePartsInLocationMain/index.ts | 65 +++ src/utils/dict.ts | 3 +- src/views/eam/sparePart/sparePart.data.ts | 3 +- src/views/eam/sparepartsinlocation/index.vue | 380 ++++++++++++++++++ .../sparePartsInLocationMain.data.ts | 322 +++++++++++++++ 6 files changed, 828 insertions(+), 3 deletions(-) create mode 100644 src/api/eam/sparePartsInLocationDetail/index.ts create mode 100644 src/api/eam/sparePartsInLocationMain/index.ts create mode 100644 src/views/eam/sparepartsinlocation/index.vue create mode 100644 src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts diff --git a/src/api/eam/sparePartsInLocationDetail/index.ts b/src/api/eam/sparePartsInLocationDetail/index.ts new file mode 100644 index 000000000..827687a36 --- /dev/null +++ b/src/api/eam/sparePartsInLocationDetail/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface SparePartsInLocationDetailVO { + id: number + number: string + masterId: number + sparePartsCode: string + isRadeIn: string + applyQty: number + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件入库记录子列表 +export const getSparePartsInLocationDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-in-location-detail/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-in-location-detail/page`, params }) + } +} + +// 查询备件入库记录子详情 +export const getSparePartsInLocationDetail = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-in-location-detail/get?id=` + id }) +} + +// 新增备件入库记录子 +export const createSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => { + return await request.post({ url: `/eam/spare-parts-in-location-detail/create`, data }) +} + +// 修改备件入库记录子 +export const updateSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => { + return await request.put({ url: `/eam/spare-parts-in-location-detail/update`, data }) +} + +// 删除备件入库记录子 +export const deleteSparePartsInLocationDetail = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-in-location-detail/delete?id=` + id }) +} + +// 导出备件入库记录子 Excel +export const exportSparePartsInLocationDetail = async (params) => { + return await request.download({ url: `/eam/spare-parts-in-location-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-in-location-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsInLocationMain/index.ts b/src/api/eam/sparePartsInLocationMain/index.ts new file mode 100644 index 000000000..100f8fdb9 --- /dev/null +++ b/src/api/eam/sparePartsInLocationMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface SparePartsInLocationMainVO { + id: number + number: string + theme: string + status: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + directCreateRecord: string + areaCode: string + locationCode: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件领用出库记录主列表 +export const getSparePartsInLocationMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-in-location-main/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-in-location-main/page`, params }) + } +} + +// 查询备件领用出库记录主详情 +export const getSparePartsInLocationMain = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-in-location-main/get?id=` + id }) +} + +// 新增备件领用出库记录主 +export const createSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => { + return await request.post({ url: `/eam/spare-parts-in-location-main/create`, data }) +} + +// 修改备件领用出库记录主 +export const updateSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => { + return await request.put({ url: `/eam/spare-parts-in-location-main/update`, data }) +} + +// 删除备件领用出库记录主 +export const deleteSparePartsInLocationMain = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-in-location-main/delete?id=` + id }) +} + +// 导出备件领用出库记录主 Excel +export const exportSparePartsInLocationMain = async (params) => { + return await request.download({ url: `/eam/spare-parts-in-location-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-in-location-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 2b6969a8c..226390604 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -363,5 +363,6 @@ export enum DICT_TYPE { EAM_MAINTENANCE_URGENCY = 'eam_maintenance_urgency', // 维保紧急程度 EAM_MAINTENANCE_LEVEL = 'eam_maintenance_level', // 维保维修级别 EAM_REPAIR_STATUS = 'eam_repair_status', // 维修状态 - OFF_BACK_STATUS = 'off_back_status' + OFF_BACK_STATUS = 'off_back_status', + SPAREPARTS_APPLY_STATUS_ENUM = 'spareparts_apply_status_enum'// 流程状态 } diff --git a/src/views/eam/sparePart/sparePart.data.ts b/src/views/eam/sparePart/sparePart.data.ts index bd87fd3bf..86f74f2ab 100644 --- a/src/views/eam/sparePart/sparePart.data.ts +++ b/src/views/eam/sparePart/sparePart.data.ts @@ -25,7 +25,7 @@ export const SparePart = useCrudSchemas(reactive([ isSearch: false, isTable: false, isForm: false, - isDetail:false, + isDetail:false }, { label: '备件编号', @@ -197,7 +197,6 @@ export const SparePart = useCrudSchemas(reactive([ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, - isForm: false, }, { label: '部门id', diff --git a/src/views/eam/sparepartsinlocation/index.vue b/src/views/eam/sparepartsinlocation/index.vue new file mode 100644 index 000000000..4371d9f2b --- /dev/null +++ b/src/views/eam/sparepartsinlocation/index.vue @@ -0,0 +1,380 @@ + + + diff --git a/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts new file mode 100644 index 000000000..b40f19427 --- /dev/null +++ b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts @@ -0,0 +1,322 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as ItemAccountsApi from '@/api/eam/itemAccounts' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' + + +// 表单校验 +export const SparePartsInLocationMainRules = reactive({ + number: [required], + theme: [required], + // status: [required], + // areaCode: [required], + // locationCode: [required], + concurrencyStamp: [required], +}) +// 备件入库主表 +export const SparePartsInLocationMain = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '编号', + field: 'number', + sort: 'custom', + isSearch: false, + isForm: false, + }, + { + label: '入库主题', + field: 'theme', + sort: 'custom', + isSearch: false, + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: false, + isForm:false, + + dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM, + dictClass: 'string', + + }, + { + label: '入库申请人', + field: 'applyer', + sort: 'custom', + isSearch: false, + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: false, + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: false, + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '入库时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '库位编号', + field: 'locationCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + }, + { + label: '库区编号', + field: 'areaCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isDetail:false + } +])) +// 备件入库子表 +export const SparePartsInLocationDetailRules = reactive({ + number: [required], + masterId: [required], + sparePartsCode: [required], + applyQty: [required], + concurrencyStamp: [required], +}) + +export const SparePartsInLocationDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + isTableForm:false + }, + { + label: '单号', + field: 'number', + sort: 'custom', + + isSearch: false, + isTable: false, + isForm: false, + isTableForm:false + }, + { + label: '主表ID', + field: 'masterId', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + isSearch: false, + isTable: false, + isForm: false, + isTableForm:false + }, + { + label: '备件编号', + field: 'sparePartsCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + { + label: '库存数量', + field: 'currentQty', + sort: 'custom', + isSearch: false, + tableForm: { + disabled: true + }, + isDetail:false, + isTable:false + }, + { + label: '申领数量', + field: 'applyQty', + sort: 'custom', + isSearch: false + }, + { + 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, + isTableForm:false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false + } +])) + From d36987c8233f1e4170534f0c9ab9a123f334ee6f Mon Sep 17 00:00:00 2001 From: zhaoxuebing <1291173720@qq.com> Date: Fri, 7 Jun 2024 16:18:36 +0800 Subject: [PATCH 19/44] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/dict.ts | 3 ++- .../inventoryinitRecordMain/index.vue | 2 +- .../inventoryinitRequestMain/index.vue | 23 ++++++++++++++++++- .../inventoryinitRequestMain.data.ts | 17 ++++++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 226390604..dd9d89dee 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -364,5 +364,6 @@ export enum DICT_TYPE { EAM_MAINTENANCE_LEVEL = 'eam_maintenance_level', // 维保维修级别 EAM_REPAIR_STATUS = 'eam_repair_status', // 维修状态 OFF_BACK_STATUS = 'off_back_status', - SPAREPARTS_APPLY_STATUS_ENUM = 'spareparts_apply_status_enum'// 流程状态 + SPAREPARTS_APPLY_STATUS_ENUM = 'spareparts_apply_status_enum',// 流程状态 + IS_LINE_ITEM = 'is_line_item', // 是否是线边 } diff --git a/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRecordMain/index.vue b/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRecordMain/index.vue index b3f3f93b1..e00ac3d7d 100644 --- a/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRecordMain/index.vue +++ b/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRecordMain/index.vue @@ -222,7 +222,7 @@ const handleSelectionPoint = async ()=>{ window.open(src.value+'&asn_number='+res.cgLabel) } if(!res.cgLabel&&!res.zzLabel){ - message.error('包装不存在,无法打印') + message.warning('包装不存在,无法打印或者是线边物料数据不生成包装!') } }).catch(err => { console.log(err) diff --git a/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue b/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue index 3d4e61e40..ec7d59008 100644 --- a/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue +++ b/src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue @@ -77,6 +77,9 @@ + +