From 62387ac17667ce7a0f6d700172fc4f800353fe38 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期一, 08 九月 2025 11:28:32 +0800 Subject: [PATCH] 排产工单模块工艺点检功能页面 --- src/views/mes/MesProductionWorkOrderListView.vue | 10 + src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue | 233 ++++++++++++++++++++++++++++++++++++++++++++++ src/views/eam/base/modules/EamProcessParametersModal.vue | 2 3 files changed, 242 insertions(+), 3 deletions(-) diff --git a/src/views/eam/base/modules/EamProcessParametersModal.vue b/src/views/eam/base/modules/EamProcessParametersModal.vue index 2b05740..5e001fe 100644 --- a/src/views/eam/base/modules/EamProcessParametersModal.vue +++ b/src/views/eam/base/modules/EamProcessParametersModal.vue @@ -18,7 +18,7 @@ <a-input placeholder="璇疯緭鍏ュ弬鏁板悕绉�" v-model="model.parameterName" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parameterCategory" label="鍙傛暟鍒嗙被"> - <j-dict-select-tag dict-code="process_parameters_categorys" placeholder="璇烽�夋嫨鍙傛暟鍒嗙被" v-model="model.parameterCategory" /> + <j-dict-select-tag dict-code="process_parameters_category" placeholder="璇烽�夋嫨鍙傛暟鍒嗙被" v-model="model.parameterCategory" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parameterUnit" label="璁¢噺鍗曚綅"> <a-input placeholder="璇疯緭鍏ヨ閲忓崟浣�" v-model="model.parameterUnit" /> diff --git a/src/views/mes/MesProductionWorkOrderListView.vue b/src/views/mes/MesProductionWorkOrderListView.vue index 5c4defa..eeabf79 100644 --- a/src/views/mes/MesProductionWorkOrderListView.vue +++ b/src/views/mes/MesProductionWorkOrderListView.vue @@ -113,7 +113,7 @@ </span> <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '0'"> <a-divider type="vertical" /> - <a @click="handleCompletenessCheck(record)">宸ヨ壓鐐规</a> + <a @click="handleProcessCheck(record)">宸ヨ壓鐐规</a> </span> <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '1'"> <a-divider type="vertical" /> @@ -196,6 +196,7 @@ <MesProductionWorkOrderReportModal ref="MesProductionWorkOrderReportModal" @ok="modalFormOk"></MesProductionWorkOrderReportModal> <MesProductionWorkOrderCompletenessCheckModal ref="MesProductionWorkOrderCompletenessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderCompletenessCheckModal> <MesProductionWorkOrderEquipmentInspectionModal ref="MesProductionWorkOrderEquipmentInspectionModal" @ok="modalFormOk"></MesProductionWorkOrderEquipmentInspectionModal> + <MesProductionWorkOrderProcessCheckModal ref="MesProductionWorkOrderProcessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderProcessCheckModal> </a-card> </template> @@ -214,6 +215,7 @@ import MesProductionWorkOrderReportModal from '@views/mes/modules/MesProductionWorkOrderReportModal.vue' import MesProductionWorkOrderCompletenessCheckModal from '@views/mes/modules/MesProductionWorkOrderCompletenessCheckModal.vue' import MesProductionWorkOrderEquipmentInspectionModal from '@views/mes/modules/MesProductionWorkOrderEquipmentInspectionModal.vue' +import MesProductionWorkOrderProcessCheckModal from '@views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue' import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue' import moment from 'moment/moment' @@ -229,7 +231,8 @@ MesProductionWorkOrderRepublishModal, MesProductionWorkOrderReportModal, MesProductionWorkOrderCompletenessCheckModal, - MesProductionWorkOrderEquipmentInspectionModal + MesProductionWorkOrderEquipmentInspectionModal, + MesProductionWorkOrderProcessCheckModal }, data() { return { @@ -651,6 +654,9 @@ handleEquipmentInspection(record) { this.$refs.MesProductionWorkOrderEquipmentInspectionModal.inspect(record) }, + handleProcessCheck(record) { + this.$refs.MesProductionWorkOrderProcessCheckModal.inspect(record) + }, async handleUnLoadingDetail(row){ console.log('row---->',row) const unloadingResult = await getAction(this.url.queryUnloadingByLoadingId,{'loadingId':row.id}) diff --git a/src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue b/src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue new file mode 100644 index 0000000..762a56c --- /dev/null +++ b/src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue @@ -0,0 +1,233 @@ +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + switchFullscreen + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + + <a-spin :spinning="spinning"> + <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-row :gutter="24"> + <a-col :span="8"> + <a-form-model-item prop="equipmentId" label="璁惧缂栧彿"> + <a-select placeholder="璇烽�夋嫨璁惧" v-model="model.equipmentId" :options="processCheckEquipmentOptions" @change="handleEquipmentChange"></a-select> + </a-form-model-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <vxe-table + ref="table" + border + show-overflow + show-header-overflow + :scroll-x="{enabled: true}" + :data="dataSource" + :edit-config="{trigger: 'click', mode: 'cell'}" + :edit-rules="editRules" + > + <vxe-table-column title="搴忓彿" type="seq" width="50" align="center"></vxe-table-column> + <vxe-table-column title="鍙傛暟缂栫爜" field="parameterCode" align="center"></vxe-table-column> + <vxe-table-column title="鍙傛暟鍚嶇О" field="parameterName" align="center"></vxe-table-column> + <vxe-table-column title="鍙傛暟鍒嗙被" field="parameterCategory" align="center"> + <template #default="{ row }"> + <span v-if="row.parameterCategory">{{ parameterCategoryDict[row.parameterCategory] }}</span> + </template> + </vxe-table-column> + <vxe-table-column title="璁¢噺鍗曚綅" field="parameterUnit" align="center"></vxe-table-column> + <vxe-table-column title="鍙傛暟鑼冨洿" field="parameterPeriod" align="center"></vxe-table-column> + <vxe-table-column title="鐐规缁撴灉" field="checkResult" align="center" + :edit-render="{name: '$select', options: checkResultOptions, events: {change: handleCheckResultChange}}"> + <template #default="{ row }"> + <span v-if="row.checkResult">{{ row.checkResultLabel }}</span> + <span v-else class="placeholder-text">璇烽�夋嫨鐐规缁撴灉</span> + </template> + </vxe-table-column> + <vxe-table-column title="寮傚父鎻忚堪" field="exceptionDescription" align="center" + :edit-render="{name: '$input', placeholder: '璇疯緭鍏ュ紓甯告弿杩�'}"> + <template #default="{ row }"> + <span v-if="row.checkResult === '2' && !row.exceptionDescription" class="placeholder-text">璇疯緭鍏ュ紓甯告弿杩�</span> + <span v-else-if="row.exceptionDescription">{{ row.exceptionDescription }}</span> + </template> + <template #edit="{ row }"> + <vxe-input v-if="row.checkResult === '2'" v-model="row.exceptionDescription" placeholder="璇疯緭鍏ュ紓甯告弿杩�" /> + </template> + </vxe-table-column> + </vxe-table> + </a-row> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> +import { postAction, getAction, putAction } from '@api/manage' +import { ajaxGetDictItems } from '@api/api' + +export default { + name: 'MesProductionWorkOrderProcessCheckModal', + data () { + return { + title: '璁惧鐐规', + width: 1200, + visible: false, + loading: false, + disableSubmit: false, + model: {}, + spinning: false, + validatorRules: { + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + checkResultOptions: [ + { + label: '姝e父', + value: '1' + }, + { + label: '寮傚父', + value: '2' + } + ], + parameterCategoryDict: {}, + dataSource: [], + editRules: { + checkResult: [ + { required: true, message: '妫�鏌ョ粨鏋滃繀椤婚�夋嫨' } + ], + exceptionDescription: [ + { + required: true, + message: '寮傚父鎻忚堪涓嶈兘涓虹┖', + validator: ({ cellValue, row }) => { + // 褰撶偣妫�缁撴灉涓哄紓甯告椂锛屽紓甯告弿杩板繀濉� + if (row.checkResult === '2') { + return cellValue && cellValue.trim() !== '' ? true : new Error('寮傚父鎻忚堪蹇呴』濉啓'); + } + return true; + } + } + ] + }, + url: { + listProcessCheckEquipment: '/eam/equipment/listProductionLineProcessCheckEquipment', + queryByEquipmentId: '/eam/equipmentProcessParameters/queryByEquipmentId', + addProcessCheck: '/eam/eamProcessCheck/add', + updateOrderInspectionStatus: '/mes/mesProductionWorkOrder/edit' + }, + processCheckEquipmentOptions: [], + workOrderId: null + } + }, + computed: { + formDisabled(){ + return this.disabled + } + }, + methods: { + handleCheckResultChange($event, value) { + const selected = this.checkResultOptions.find(item => item.value === value.value) + $event.row.checkResultLabel = selected.label + }, + inspect (record) { + this.resetFormData() + ajaxGetDictItems("process_parameters_category").then(res => { + if (res.success) { + res.result.forEach(item => { + this.parameterCategoryDict[item.value] = item.label + }) + } + }) + this.workOrderId = record.id + getAction(this.url.listProcessCheckEquipment, {orderId: record.id}).then(res => { + if (res.success) { + this.processCheckEquipmentOptions = res.result + } + }) + this.visible = true + }, + close () { + this.$emit('close'); + this.visible = false; + }, + handleEquipmentChange(id) { + getAction(this.url.queryByEquipmentId, {equipmentId: id}).then(res => { + if (res.success) { + this.dataSource = res.result + } + }) + }, + handleOk () { + this.$refs.table.validate((valid) => { + if (valid) { + this.$message.error("璇峰畬鎴愭墍鏈夊繀濉俊鎭悗鍐嶆彁浜わ紒") + } else { + let tableData = this.$refs.table.getTableData().fullData + const data = { + equipmentId: this.model.equipmentId, + workOrderId: this.workOrderId, + checkDetailList: tableData + } + console.log(data) + postAction(this.url.addProcessCheck, data).then(res=> { + if (res.success) { + this.$message.success(res.message) + getAction(this.url.listProcessCheckEquipment, {orderId: this.workOrderId}).then(res => { + if (res.success) { + if (res.result && res.result.length > 0) { + // 杩樻湁璁惧闇�瑕佺偣妫�锛屾竻绌鸿〃鍗曞拰琛ㄦ牸鏁版嵁 + this.processCheckEquipmentOptions = res.result + this.resetFormData() + } else { + // 娌℃湁闇�瑕佺偣妫�鐨勮澶囷紝鏇存柊鐐规鐘舵�� + putAction(this.url.updateOrderInspectionStatus, {id: this.workOrderId, processInspectionFlag: '1'}).then(res => { + if (res.success) { + this.$message.success('宸ヨ壓鐐规瀹屾垚') + this.submitCallback() + } else { + this.$message.warning(res.message) + } + }) + this.submitCallback() + } + } + }) + } else { + this.$message.warning(res.message) + } + }) + } + }) + }, + resetFormData() { + this.model = {} + this.dataSource = [] + }, + submitCallback(){ + this.$emit('ok'); + this.visible = false; + }, + handleCancel () { + this.close() + } + } +} +</script> + +<style scoped> + +.placeholder-text { + color: #999; + font-style: italic; +} + +</style> -- Gitblit v1.9.3