diff --git a/src/api/mes/workSchedulingDetail/index.ts b/src/api/mes/workSchedulingDetail/index.ts index 0bd6244ea..f39e63513 100644 --- a/src/api/mes/workSchedulingDetail/index.ts +++ b/src/api/mes/workSchedulingDetail/index.ts @@ -40,7 +40,10 @@ export const getWorkSchedulingDetail = async (id: number) => { export const createWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => { return await request.post({ url: `/mes/work-scheduling-detail/create`, data }) } - +// 更新工序的状态 +export const processFinished = async (id:number) => { + return await request.get({ url: `/mes/work-scheduling-detail/processFinished?id=`+id }) +} // 修改工单任务明细 export const updateWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => { return await request.put({ url: `/mes/work-scheduling-detail/update`, data }) diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 064cc88b7..3e38361f5 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -618,11 +618,11 @@ export default { }, ts: { 代码:'代码', - 全部 : 'All', + 全部 :'全部', 标准:'标准', - 委外 : '委外', - 其它 :'其它', - 其他 :'其他', + 委外:'委外', + 其它:'其它', + 其他:'其他', 是否可用: '是否可用', 类型:'类型', 名称:'名称', diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 7450ea0ae..90dddeceb 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -284,6 +284,7 @@ export enum DICT_TYPE { // ========== 业务 - mes ========== MESDO_STATUS= 'mes_do_status', // 工单执行状态 + MES_PROCESS_STATUS= 'mes_process_status', // 工单工序状态 MES_WORKBILL_MODEL='mes_workbill_model',// 工单模式 单工单(根据产品数量生成多个工单)、批量工单(一个产品一个工单) MES_TASK_MODE='mes_task_mode', //生产模式 派工方式、领工方式 MES_PLANDO_STATUS='mes_plando_status', //计划执行状 diff --git a/src/views/mes/ordermonthplan/index.vue b/src/views/mes/ordermonthplan/index.vue index fc5c30e21..6c59a287a 100644 --- a/src/views/mes/ordermonthplan/index.vue +++ b/src/views/mes/ordermonthplan/index.vue @@ -86,7 +86,7 @@ hasPermi: '' }]" @buttonBaseClick="detailButtonBaseClick" - @buttondataTable="detailButtonBaseClick" + @tableFormButton="detailButtonBaseClick" /> { //formRef.setValues({standardBom:'bomddd'}) // getProcessroutes(val[0][searchField]) productName = val[0].name - getBoms(val[0][searchField]) } if(formField=='factoryCode'){ factoryName = val[0].name @@ -304,15 +303,6 @@ const searchTableSuccess = (formField, searchField, val, formRef) => { }) } -const bomOptions=ref([]) -const getBoms = async (code: String) => { - bomOptions.value = await OrderDayApi.getBoms(code) - MesOrderMonthSub.allSchemas.formSchema.forEach(item => { - if (item.field == 'bomCode') { - item.componentProps.options = bomOptions.value - } - }) -} const createMesOrderMonthSub = async (data: MesOrderMonthSubVO) => { diff --git a/src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts b/src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts index f4a25613e..c44addc8c 100644 --- a/src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts +++ b/src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts @@ -67,11 +67,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ sort: 'custom', isTable: false, isSearch: true, - form: { - component:'Select', - componentProps: { - options: [{lablel:'bom',value:'bom'}] - } + table: { + width: 200, + fixed: 'left' } }, { diff --git a/src/views/mes/workScheduling/components/Detail.vue b/src/views/mes/workScheduling/components/Detail.vue index b42ae5cd2..dc9f96206 100644 --- a/src/views/mes/workScheduling/components/Detail.vue +++ b/src/views/mes/workScheduling/components/Detail.vue @@ -90,14 +90,14 @@ > @@ -224,8 +225,7 @@ import BasicForm from '@/components/BasicForm/src/BasicForm.vue' import TableHead from '@/components/TableHead/src/TableHead.vue' import DetailTable from '@/components/DetailTable/src/DetailTable.vue' import { SearchTable } from '@/components/SearchTable' -import { defaultFreshBtn } from '@/utils/disposition/defaultButtons' - +import * as WorkSchedulingDetailApi from '@/api/mes/workSchedulingDetail' defineOptions({ name: 'Detail' }) const message = useMessage() // 消息弹窗 @@ -555,7 +555,6 @@ const masterParmas = ref({ const HeadButttondata = ref() // 列表-操作按钮 const buttondata = ref() - /** 表格弹窗 */ const initModel = (schema: FormSchema[], formModel: Recordable) => { const model: Recordable = { ...formModel } @@ -604,7 +603,7 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: tableObjectRef.value.params = { schedulingCode: row.schedulingCode } - console.log(tableObjectRef.value.params) + //console.log(tableObjectRef.value.params) await getList() } isShowDrawer.value = true @@ -659,6 +658,12 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: }) ] } + + if(row.status == '1'){ + props.buttondataTable[0].hide = false + }else{ + props.buttondataTable[0].hide = true + } buttondata.value = [...detailButtonEdit, ...detailButtonDelete, ...props.buttondataTable] } finally { detailLoading.value = false @@ -795,6 +800,7 @@ const opensearchTable = ( ) } + // 字段设置 更新主列表字段 // const updataTableColumns = (val) => { // detailAllSchemas.tableColumns.value = val @@ -827,7 +833,11 @@ const buttonTableClick = async (val, row) => { } else if (val == 'delete') { // 删除 handleDelete(row.id) - } else { + } else if (val == 'pfinished') { + + WorkSchedulingDetailApi.processFinished(row.id) + getList() + }else { emit('tableFormButton', val, row) } } @@ -836,6 +846,7 @@ const openForm = async (type: string, row?: number) => { formRef.value.open(type, row, masterParmas.value) emit('detailOpenForm', type, row) } + // form 提交 const submitForm = async (formType, data) => { try { diff --git a/src/views/mes/workScheduling/components/finish.vue b/src/views/mes/workScheduling/components/finish.vue index e01d5f681..927e7094e 100644 --- a/src/views/mes/workScheduling/components/finish.vue +++ b/src/views/mes/workScheduling/components/finish.vue @@ -38,7 +38,7 @@ 保存 @@ -96,12 +96,14 @@ const getCurrentWorkerList = async (row) => { } personData.value = await workschedulingApi.getCurrentWorkerList(params) } +const saveFlag=ref(false) //提交报工 -const saveReport = () => { +const saveReport = async() => { let data = { - reportDate: dayjs(new Date()).format('YYYY-MM-DD HH:mm:sss'), + reportDate: dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'), schedulingCode: rowData.value.schedulingCode, processCode: currentProcess.value, + id:rowData.value.id, list: [ { reportCount: reportCount.value, @@ -112,7 +114,11 @@ const saveReport = () => { } ] } + saveFlag.value=true workschedulingApi.completeHandle(data) + saveFlag.value=false + dialogVisible.value = false + emit('close') } // 传递给父类 const emit = defineEmits(['success', 'close']) diff --git a/src/views/mes/workScheduling/components/report.vue b/src/views/mes/workScheduling/components/report.vue index 136b47ac9..4661a8675 100644 --- a/src/views/mes/workScheduling/components/report.vue +++ b/src/views/mes/workScheduling/components/report.vue @@ -130,11 +130,16 @@ const saveReport = async() => { ] } saveFlag.value = true + try { + await workschedulingApi.reportWorkByProcess(data) + }finally{ + saveFlag.value = false + dialogVisible.value = false + emit('close') + } //console.log("report-saveReport-82",data) - await workschedulingApi.reportWorkByProcess(data) - saveFlag.value = false - dialogVisible.value = false - emit('close') + //await workschedulingApi.reportWorkByProcess(data) + } // 传递给父类 const emit = defineEmits(['success', 'close']) diff --git a/src/views/mes/workScheduling/index.vue b/src/views/mes/workScheduling/index.vue index c12d7bd90..748959db6 100644 --- a/src/views/mes/workScheduling/index.vue +++ b/src/views/mes/workScheduling/index.vue @@ -61,6 +61,7 @@ :apiUpdate="WorkSchedulingDetailApi.updateWorkSchedulingDetail" :apiDelete="WorkSchedulingDetailApi.deleteWorkSchedulingDetail" :detailButtonIsShowAdd="false" + :buttondataTable="buttondataTable" :detailButtonIsShowEdit="false" :detailButtonIsShowDelete="false" @handleMainFefresh="handleMainFefresh" @@ -85,6 +86,7 @@ import Detail from './components/Detail.vue' import Report from './components/report.vue' import Finish from './components/finish.vue' + defineOptions({ name: 'MesWorkScheduling' }) const message = useMessage() // 消息弹窗 @@ -94,7 +96,21 @@ const route = useRoute() // 路由信息 const routeName = ref() routeName.value = route.name const tableColumns = ref(WorkScheduling.allSchemas.tableColumns) - +// 详情 table 操作扩展 按钮 +const buttondataTable = ref([{ + label: '完工', + name: 'pfinished', + hide: false, + type: 'primary', + icon: '', + color: '', + hasPermi: '', + link: true, // 文本展现按钮 + }]) +// 查看 Bom 按钮回调事件 +const tableFormButton = async (val , row) => { + getList() +} // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef) => { nextTick(() => { @@ -174,10 +190,12 @@ const butttondata=(row) =>{ return [ defaultButtons.mainListHandleBtn({label:"终止",name:'terminate',hide: isShowMainButton(row,['-1','0']),hasPermi:'mes:workScheduling:update'}), // defaultButtons.mainListHandleBtn({label:"暂停",name:'pause',hide: isShowMainButton(row,['1']),hasPermi:'mes:workScheduling:update'}), defaultButtons.mainListHandleBtn({label:"恢复",name:'resume',hide: isShowMainButton(row,['3']),hasPermi:'mes:workScheduling:update'}), - defaultButtons.mainListHandleBtn({label:"开工",name:'start',hide: isShowMainButton(row,['0']),hasPermi:'mes:workScheduling:update'}), - defaultButtons.mainListHandleBtn({label:"报工",name:'report',hide: isShowMainButton(row,['1'] ),hasPermi:'mes:workScheduling:update'}), + defaultButtons.mainListHandleBtn({label:"开工",name:'start',hide: isShowMainButton(row,['-1','0']),hasPermi:'mes:workScheduling:update'}), + defaultButtons.mainListHandleBtn({label:"报工",name:'report',hide: isShowMainButton(row,['4'] ),hasPermi:'mes:workScheduling:update'}), + defaultButtons.mainListHandleBtn({label:"质检",name:'check',hide: isShowMainButton(row,['5'] ),hasPermi:'mes:workScheduling:update'}), defaultButtons.mainListHandleBtn({label:"完工",name:'finish',hide: isShowMainButton(row,['1']),hasPermi:'mes:workScheduling:update'}), - defaultButtons.mainListHandleBtn({label:"叫料",name:'callMaterial',hide: isShowMainButton(row,['1']),hasPermi:'mes:workScheduling:update'}), + //defaultButtons.mainListHandleBtn({label:"叫料",name:'callMaterial',hide: isShowMainButton(row,['1']),hasPermi:'mes:workScheduling:update'}), + ]} const reportRef=ref() const reportFinishRef=ref() @@ -195,6 +213,8 @@ const buttonTableClick = async (val, row) => { changeBillStatus(row,"1") }else if(val=='report'){ reportRef.value.openDetail(row,"报工") + }else if(val=='check'){ + //reportRef.value.openDetail(row,"报工") }else if(val=='finish'){ finishReport(row) } else if(val=='callMaterial'){ @@ -211,6 +231,7 @@ const openForm = (type: string, row?: any) => { //完工报工 const finishReport=async(row)=>{ let params={ + id:row.id, planDayCode:row.planMasterCode, processCode:row.workingNode } diff --git a/src/views/mes/workScheduling/workScheduling.data.ts b/src/views/mes/workScheduling/workScheduling.data.ts index 890ceff4b..658876f4b 100644 --- a/src/views/mes/workScheduling/workScheduling.data.ts +++ b/src/views/mes/workScheduling/workScheduling.data.ts @@ -192,9 +192,14 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([ field: 'status', sort: 'custom', isSearch: false, - isTable: false, + isTable: true, isForm:false, isDetail:false, + dictType: DICT_TYPE.MES_PROCESS_STATUS, + dictClass: 'string', + form: { + component: 'Select', + }, }, { @@ -307,12 +312,12 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([ value: 0 }, }, - { - label: '报工人', - field: 'reportPerson', - sort: 'custom', - isSearch: true, - }, + // { + // label: '报工人', + // field: 'reportPerson', + // sort: 'custom', + // isSearch: true, + // }, { label: '报工数量', field: 'reportCount', @@ -373,22 +378,22 @@ export const WorkSchedulingDetail = useCrudSchemas(reactive([ // field: 'materialValidate', // sort: 'custom', // }, - { - label: '备注', - field: 'remark', - sort: 'custom', - isSearch: false, - isTable: false, - isForm:false, - isDetail:false, - }, // { - // label: '操作', - // field: 'action', - // isForm: false, - // table: { - // width: 150, - // fixed: 'right' - // } - // } + // label: '备注', + // field: 'remark', + // sort: 'custom', + // isSearch: false, + // isTable: false, + // isForm:false, + // isDetail:false, + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } ]))