diff --git a/src/api/mes/workSchedulingDetail/index.ts b/src/api/mes/workSchedulingDetail/index.ts new file mode 100644 index 000000000..0bd6244ea --- /dev/null +++ b/src/api/mes/workSchedulingDetail/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface WorkSchedulingDetailVO { + schedulingCode: string + schedulingId: number + taskSort: number + nodeCode: string + workstationValidate: string + deviceValidate: string + personValidate: string + reportPerson: string + receivePerson: string + planCount: number + reportCount: number + reportType: number + qualifiedCount: number + unqualifiedCount: number + receiveWorkstation: string + receiveDevice: string + materialValidate: string +} + +// 查询工单任务明细列表 +export const getWorkSchedulingDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/mes/work-scheduling-detail/senior', data }) + } else { + return await request.get({ url: `/mes/work-scheduling-detail/page`, params }) + } +} + +// 查询工单任务明细详情 +export const getWorkSchedulingDetail = async (id: number) => { + return await request.get({ url: `/mes/work-scheduling-detail/get?id=` + id }) +} + +// 新增工单任务明细 +export const createWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => { + return await request.post({ url: `/mes/work-scheduling-detail/create`, data }) +} + +// 修改工单任务明细 +export const updateWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => { + return await request.put({ url: `/mes/work-scheduling-detail/update`, data }) +} + +// 删除工单任务明细 +export const deleteWorkSchedulingDetail = async (id: number) => { + return await request.delete({ url: `/mes/work-scheduling-detail/delete?id=` + id }) +} + +// 导出工单任务明细 Excel +export const exportWorkSchedulingDetail = async (params) => { + return await request.download({ url: `/mes/work-scheduling-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/mes/work-scheduling-detail/get-import-template' }) +} diff --git a/src/views/mes/item/index.vue b/src/views/mes/item/index.vue index 3ddf781ac..148c77cae 100644 --- a/src/views/mes/item/index.vue +++ b/src/views/mes/item/index.vue @@ -167,9 +167,7 @@ const openForm = (type: string, row?: any) => { if (item.field == 'dataStandvalue') { item.componentProps.disabled = false } - if (item.field == 'status') { - item.componentProps.disabled = true - } + } if(row.dataType == 'SWITCH'){ if (item.field == 'dataVerify') { @@ -178,9 +176,7 @@ const openForm = (type: string, row?: any) => { if (item.field == 'dataStandvalue') { item.componentProps.disabled = true } - if (item.field == 'status') { - item.componentProps.disabled = false - } + } if(row.dataType == 'TEXT'){ if (item.field == 'dataVerify') { @@ -189,9 +185,7 @@ const openForm = (type: string, row?: any) => { if (item.field == 'dataStandvalue') { item.componentProps.disabled = true } - if (item.field == 'status') { - item.componentProps.disabled = true - } + } }) }else{ @@ -208,9 +202,7 @@ const openForm = (type: string, row?: any) => { if (item.field == 'dataStandvalue') { item.componentProps.disabled = false } - if (item.field == 'status') { - item.componentProps.disabled = false - } + }) } basicFormRef.value.open(type, row) diff --git a/src/views/mes/workScheduling/components/Detail.vue b/src/views/mes/workScheduling/components/Detail.vue new file mode 100644 index 000000000..7da6f49e8 --- /dev/null +++ b/src/views/mes/workScheduling/components/Detail.vue @@ -0,0 +1,946 @@ + + + + + + {{ titleValueRef }} {{ titleNameRef }} + + + + + + + + + + + + + + + + + + + + {{ item }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/mes/workScheduling/index.vue b/src/views/mes/workScheduling/index.vue index 9df35398a..d41e3d2bc 100644 --- a/src/views/mes/workScheduling/index.vue +++ b/src/views/mes/workScheduling/index.vue @@ -27,9 +27,9 @@ v-model:currentPage="tableObject.currentPage" v-model:sort="tableObject.sort" > - - - {{ row.code }} + + + {{ row.planMaserCode }} @@ -51,7 +51,22 @@ /> - + @@ -59,12 +74,13 @@ diff --git a/src/views/mes/workScheduling/workScheduling.data.ts b/src/views/mes/workScheduling/workScheduling.data.ts index 16bda9f81..3201a4e1f 100644 --- a/src/views/mes/workScheduling/workScheduling.data.ts +++ b/src/views/mes/workScheduling/workScheduling.data.ts @@ -10,21 +10,29 @@ export const WorkScheduling = useCrudSchemas(reactive([ label: '主键', field: 'id', sort: 'custom', - isForm: false, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, }, { label: '状态', field: 'status', sort: 'custom', - isSearch: true, - isForm: false, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, }, { label: '创建时间', field: 'createTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, search: { component: 'DatePicker', componentProps: { @@ -141,3 +149,185 @@ export const WorkScheduling = useCrudSchemas(reactive([ } } ])) + + +// 表单校验 +export const WorkSchedulingDetailRules = reactive({ +}) + +export const WorkSchedulingDetail = useCrudSchemas(reactive([ + { + label: '主键', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm:false, + isDetail: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')] + } + }, + }, + { + label: '工单号', + field: 'schedulingCode', + sort: 'custom', + isSearch: true, + }, + { + label: '任务ID', + field: 'schedulingId', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '任务序号', + field: 'taskSort', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '工序编号', + field: 'nodeCode', + sort: 'custom', + isSearch: true, + }, + { + label: '允许工位', + field: 'workstationValidate', + sort: 'custom', + }, + { + label: '允许设备', + field: 'deviceValidate', + sort: 'custom', + }, + { + label: '允许人员', + field: 'personValidate', + sort: 'custom', + }, + { + label: '报工人', + field: 'reportPerson', + sort: 'custom', + isSearch: true, + }, + { + label: '生产人', + field: 'receivePerson', + sort: 'custom', + isSearch: true, + }, + { + label: '计划数量', + field: 'planCount', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '报工数量', + field: 'reportCount', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '报工方式', + field: 'reportType', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '合格数', + field: 'qualifiedCount', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '不合格数', + field: 'unqualifiedCount', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '生产工位', + field: 'receiveWorkstation', + sort: 'custom', + isSearch: true, + }, + { + label: '生产设备', + field: 'receiveDevice', + sort: 'custom', + isSearch: true, + }, + { + label: '生产物料', + field: 'materialValidate', + sort: 'custom', + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +]))