From 9be2e2f91332ed341406acf9739d8912dddbf6fe Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 22 七月 2025 20:43:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue | 323 +++++++++++++++++++++++++++++++++++ src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue | 2 src/views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue | 156 +++++++++++++++++ src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue | 21 ++ 4 files changed, 501 insertions(+), 1 deletions(-) diff --git a/src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue b/src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue new file mode 100644 index 0000000..3202893 --- /dev/null +++ b/src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue @@ -0,0 +1,323 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper" v-if="isDisplayOperation"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="5" :lg="6" :md="8" :sm="24"> + <a-form-item label="缁熶竴缂栫爜"> + <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="queryParam.equipmentId"/> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="鍙樻洿鍗曞彿"> + <a-input placeholder="璇疯緭鍏ュ彉鏇村崟鍙�" v-model="queryParam.changeOrderNum"/> + </a-form-item> + </a-col> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> + <a-form-item label="鐢宠鏃堕棿"> + <a-range-picker v-model="queryParam.dates" @change="handleDateRangeChange" value-format="YYYY-MM-DD"/> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="6" :md="8" :sm="12"> + <a-form-item label="鍙樻洿鐘舵��"> + <j-dict-select-tag dict-code="third_maintenance_change_status" placeholder="璇烽�夋嫨鍙樻洿鐘舵��" + v-model="queryParam.changeStatus"/> + </a-form-item> + </a-col> + + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + + <!-- table鍖哄煙-begin --> + <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" + :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" + @change="handleTableChange"> + <span slot="action" slot-scope="text, record"> + <tamplate v-if="record.changeStatus=='WAIT_SUBMIT'"> + <a @click="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical"/> + + <a-popconfirm title="纭畾鎻愪氦鍚楋紵" @confirm="handleSubmit(record.id)"> + <a>鎻愪氦</a> + </a-popconfirm> + + <a-divider type="vertical"/> + + <a-popconfirm title="纭畾浣滃簾鍚楋紵" @confirm="handleAbolish(record.id)"> + <a>浣滃簾</a> + </a-popconfirm> + </tamplate> + + <a @click="handleDetail(record)" v-if="record.changeStatus!='WAIT_SUBMIT'&&record.changeStatus!='ABOLISH'">璇︽儏</a> + </span> + </a-table> + <!-- table鍖哄煙-end --> + + <!-- 琛ㄥ崟鍖哄煙 --> + <eam-third-maintenance-change-modal ref="orderChangeModal" @ok="modalFormOk"/> + + <!--鍙樻洿娴佺▼琛ㄥ崟--> +<!-- <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal"--> +<!-- :selectShenpiData="selectThirdMaintenanceData"/>--> + + </a-card> +</template> + +<script> + // import EamThirdMaintenanceOrderModal from './modules/EamThirdMaintenanceOrderModal' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + import { deleteAction, getAction } from '@api/manage' + // import ThirdMaintenanceApprovalModal + // from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' + import EamThirdMaintenanceChangeModal + from '@views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue' + + export default { + name: 'EamThirdMaintenanceChangeList', + mixins: [JeecgListMixin], + components: { + EamThirdMaintenanceChangeModal, + LxSearchEquipmentSelect, + // EamThirdMaintenanceOrderModal, + // ThirdMaintenanceApprovalModal + }, + props: { + isDisplayOperation: { + type: Boolean, + default: true + } + }, + data() { + return { + description: '璁惧涓夌骇淇濆吇鍙樻洿椤甸潰', + disableMixinCreated: true, + selectThirdMaintenanceData: {}, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + fixed: 'left', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '缁熶竴缂栫爜', + align: 'center', + dataIndex: 'equipmentCode', + fixed: 'left' + }, + { + title: '璁惧鍚嶇О', + align: 'center', + dataIndex: 'equipmentName', + fixed: 'left' + }, + { + title: '璁惧鍨嬪彿', + align: 'center', + dataIndex: 'equipmentModel', + fixed: 'left' + }, + { + title: '宸ュ崟鍙�', + align: 'center', + dataIndex: 'orderNum_dictText' + }, + { + title: '鍙樻洿鍗曞彿', + align: 'center', + dataIndex: 'changeOrderNum' + }, + { + title: '鐢宠浜�', + align: 'center', + dataIndex: 'applicant_dictText' + }, + { + title: '鐢宠閮ㄩ棬', + align: 'center', + dataIndex: 'factoryOrgCode_dictText' + }, + { + title: '鐢宠鏃ユ湡', + align: 'center', + dataIndex: 'applyDate' + }, + { + title: '鐢宠绫诲瀷', + align: 'center', + dataIndex: 'applyCategory_dictText' + }, + { + title: '鍙樻洿鐘舵��', + align: 'center', + dataIndex: 'changeStatus_dictText' + }, + { + title: '鍙樻洿鍘熷洜绫诲瀷', + align: 'center', + dataIndex: 'applyReasonType_dictText' + }, + { + title: '寤朵繚(鍙樻洿)鍘熷洜', + align: 'center', + dataIndex: 'applyReason' + }, + { + title: '寤惰繜淇濆吇鏃ユ湡', + align: 'center', + dataIndex: 'deferredMaintenanceDate' + }, + { + title: '涓荤棰嗗绛惧瓧', + align: 'center', + dataIndex: 'equipmentManagerSignature_dictText' + }, + { + title: '涓荤棰嗗绛惧瓧鏃堕棿', + align: 'center', + dataIndex: 'equipmentManagerSignatureTime' + }, + { + title: '閮ㄩ棬棰嗗绛惧瓧', + align: 'center', + dataIndex: 'departManagerSignature_dictText' + }, + { + title: '閮ㄩ棬棰嗗绛惧瓧鏃堕棿', + align: 'center', + dataIndex: 'departManagerSignatureTime' + }, + { + title: '鐢熶骇淇濋殰閮ㄩ瀵肩瀛�', + align: 'center', + dataIndex: 'productionSupportSignature_dictText' + }, + { + title: '鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�', + align: 'center', + dataIndex: 'productionSupportSignatureTime' + }, + { + title: 'HF缂栫爜', + align: 'center', + dataIndex: 'hfCode' + } + ], + url: { + list: '/eam/eamThirdMaintenanceChange/list', + abolish: '/eam/eamThirdMaintenanceChange/abolish', + collect: '/eam/eamThirdMaintenanceChange/collect' + } + } + }, + created() { + if (!this.isDisplayOperation) { + return + } + const operationColumn = { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + scopedSlots: { customRender: 'action' } + } + this.columns = [...this.columns, operationColumn] + this.loadData(1) + }, + computed: {}, + methods: { + /** + * 鎻愪氦鏃惰Е鍙� + * @param id + */ + handleSubmit(id) { + const that = this + that.loading = true + getAction(this.url.submit, { id }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + that.loading = false + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + + /** + * 浣滃簾鏃惰Е鍙� + * @param id + */ + handleAbolish(id) { + const that = this + that.loading = true + getAction(this.url.abolish, { id }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + that.loading = false + } + }) + }, + + // /** + // * 鐐瑰嚮璇︽儏鏃惰Е鍙� + // * @param record + // */ + // handleDetail(record) { + // this.selectThirdMaintenanceData = Object.assign({}, record) + // this.$refs.thirdMaintenanceApprovalModal.title = '璇︽儏' + // this.$refs.thirdMaintenanceApprovalModal.visible = true + // this.$refs.thirdMaintenanceApprovalModal.disableSubmit = true + // this.$refs.thirdMaintenanceApprovalModal.recordDetail(record) + // }, + + /** + * 鐢宠鏃堕棿鍙戠敓鏀瑰彉鏃惰Е鍙� + * @param dateStringArray + */ + handleDateRangeChange(dateStringArray) { + this.queryParam.dateBegin = dateStringArray[0] + this.queryParam.dateEnd = dateStringArray[1] + }, + + handlePrint(record) { + let href = `${window._CONFIG['domianURL']}/jmreport/view/1094880052100399104?id=` + record.id + // + `&orderId=` + record.id; //缃戠珯閾炬帴 + window.open(href, '_blank') + } + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue index 215c2a4..f0ec1cb 100644 --- a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue +++ b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue @@ -58,6 +58,12 @@ <a-divider type="vertical"/> </template> + <template v-if="record.maintenanceStatus == 'WAIT_MAINTENANCE'||record.maintenanceStatus=='FREEZE'"> + <a @click="handleOrderChange(record)">鍙樻洿</a> + + <a-divider type="vertical"/> + </template> + <a @click="handleDetail(record)">璇︽儏</a> <template v-if="record.maintenanceStatus === 'COMPLETE'"> @@ -74,6 +80,9 @@ <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectThirdMaintenanceData"/> + + <!--宸ュ崟鍙樻洿寮圭獥--> + <eam-third-maintenance-change-modal ref="orderChangeModal" @ok="modalFormOk"/> </a-card> </template> @@ -84,11 +93,14 @@ import { deleteAction, getAction } from '@api/manage' import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' + import EamThirdMaintenanceChangeModal + from '@views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue' export default { name: 'EamThirdMaintenanceOrderList', mixins: [JeecgListMixin], components: { + EamThirdMaintenanceChangeModal, LxSearchEquipmentSelect, EamThirdMaintenanceOrderModal, ThirdMaintenanceApprovalModal @@ -305,6 +317,15 @@ }, /** + * 鐐瑰嚮鍙樻洿鏃惰Е鍙� + * @param record + */ + handleOrderChange(record) { + this.$refs.orderChangeModal.title = '鍙樻洿' + this.$refs.orderChangeModal.add(record) + }, + + /** * 鐐瑰嚮棰嗗彇鏃惰Е鍙� * @param id */ diff --git a/src/views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue b/src/views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue new file mode 100644 index 0000000..d9aa27e --- /dev/null +++ b/src/views/eam/technical/modules/EamThirdMaintenanceChangeModal.vue @@ -0,0 +1,156 @@ +<template> + <j-modal :title="title" :width="1300" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen + @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴"> + <a-spin :spinning="confirmLoading"> + <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-row> + <a-col :span="8"> + <a-form-model-item label="宸ュ崟鍙�"> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.orderId"/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍙樻洿鍗曞彿"> + <a-input placeholder="绯荤粺鑷姩鐢熸垚" disabled v-model="model.changeOrderNum"/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> + <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" + maintenanceCategory="THIRD_MAINTENANCE" @autocompleteForm="autocompleteForm"/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item prop="deferredMaintenanceDate" label="寤惰繜淇濆吇鏃ユ湡"> + <a-date-picker v-model="model.deferredMaintenanceDate" value-format="YYYY-MM-DD" style="width: 100%"/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item prop="applyCategory" label="鐢宠绫诲瀷"> + <j-dict-select-tag v-model="model.applyCategory" placeholder="璇烽�夋嫨鐢宠绫诲瀷" + dict-code="third_maintenance_change_category"/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item prop="applyReasonType" label="鍙樻洿鍘熷洜绫诲瀷"> + <j-dict-select-tag v-model="model.applyReasonType" placeholder="璇烽�夋嫨鍙樻洿鍘熷洜绫诲瀷" + dict-code="third_maintenance_change_reason"/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍙樻洿鍘熷洜" :labelCol="{span:2}" :wrapperCol="{span:21}"> + <a-textarea v-model="model.applyReason" placeholder="璇疯緭鍏ュ彉鏇村師鍥�"/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}"> + <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"/> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> +import { postAction } from '@/api/manage' +import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' + +export default { + name: 'EamThirdMaintenanceChangeModal', + components: { + MaintenanceEquipmentSelect + + }, + data() { + return { + title: '鎿嶄綔', + visible: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + confirmLoading: false, + validatorRules: { + deferredMaintenanceDate: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }], + applyCategory: [{ required: true, message: '璇烽�夋嫨鐢宠绫诲瀷', trigger: 'change' }], + applyReasonType: [{ required: true, message: '璇烽�夋嫨鍙樻洿鍘熷洜', trigger: 'change' }], + }, + url: { + add: '/eam/eamThirdMaintenanceChange/add', + edit: '/eam/eamThirdMaintenanceChange/edit' + } + } + }, + methods: { + add({ id, equipmentId }) { + this.model = Object.assign({ orderId: id, equipmentId }) + this.visible = true + }, + + edit(record) { + this.model = Object.assign({}, record) + this.visible = true + }, + + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true + + let httpUrl + if (!that.model.id) { + httpUrl = that.url.add + } else { + httpUrl = that.url.edit + } + + postAction(httpUrl, that.model) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + if (!that.model.id) { + that.$router.push('/eam/maintenance/EamThirdMaintenanceChangeList') + return + } + that.close() + that.$emit('ok') + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.confirmLoading = false + }) + } else { + return false + } + }) + }, + + handleCancel() { + this.close() + }, + + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + } + } +} +</script> \ No newline at end of file diff --git a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue index 1662efc..04647d7 100644 --- a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue +++ b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue @@ -509,7 +509,7 @@ * @param callback 缁撴灉鍥炶皟鍑芥暟 */ customValidator({ cellValue, row }, callback) { - if (this.activeTabKey == '1' && row.inspectionResult != 'NORMAL') { + if (this.activeTabKey == '1' && row.inspectionResult == 'ANOMALY') { if (!cellValue) { callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀� } else { -- Gitblit v1.9.3