From 73dbf3aabed9a07df0d27fb0c6bafa94a3d9805a Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 07 七月 2025 21:16:57 +0800 Subject: [PATCH] 修改导入 --- src/views/eam/maintenance/modules/EamInspectionOrderModal.vue | 320 +++++++++++++++++++++++++---------------------------- 1 files changed, 151 insertions(+), 169 deletions(-) diff --git a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue index 8a81706..1ecc745 100644 --- a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue +++ b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue @@ -4,7 +4,8 @@ <a-spin :spinning="spinning"> <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-row :gutter="24"> + + <a-row> <a-col :span="8"> <a-form-model-item prop="standardCode" label="宸ュ崟鍙�"> <a-input placeholder="宸ュ崟鍙疯嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/> @@ -12,62 +13,65 @@ </a-col> <a-col :span="8"> <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> - <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" - :maintenanceCategory="maintenanceCategory" :disabled="disabled" + <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" :allow-clear="false" + maintenanceCategory="POINT_INSPECTION" :disabled="!editable" @autocompleteForm="autocompleteForm"/> </a-form-model-item> </a-col> <a-col :span="8"> <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О"> - <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardName"/> - </a-form-model-item> - </a-col> - </a-row> - <a-row :gutter="24"> - <a-col :span="8"> - <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜"> - <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardCode"/> - </a-form-model-item> - </a-col> - <a-col :span="8"> - <a-form-model-item label="淇濆吇鍛ㄦ湡"> - <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" readOnly/> - </a-form-model-item> - </a-col> - <a-col :span="8"> - <a-form-model-item prop="operator" label="鐐规浜�"> - <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨鐐规浜�" :disabled="!model.equipmentId" - :dictOptions="maintenanceOperatorOptions"/> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardName"/> </a-form-model-item> </a-col> </a-row> - <a-row :gutter="24"> + <a-row> <a-col :span="8"> - <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate"> - <j-date :placeholder="!model.maintenancePeriod?'璇峰~鍐欎繚鍏诲懆鏈�':'璇烽�夋嫨鐐规鏃ユ湡'" v-model="model.inspectionDate" - :disabled="!model.maintenancePeriod" - @change="expirationTimeFrom(model.inspectionDate)" style="width: 100%"/> + <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜"> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardCode"/> </a-form-model-item> </a-col> <a-col :span="8"> - <a-form-model-item label="鐐规杩囨湡鏃堕棿"> - <j-date placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" v-model="model.expirationTime" disabled style="width: 100%"/> + <a-form-model-item label="淇濆吇鍛ㄦ湡"> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate"> + <a-date-picker v-model="model.inspectionDate" @change="expirationTimeFrom(model.inspectionDate)" + :allow-clear="false" value-format="YYYY-MM-DD" style="width: 100%"/> </a-form-model-item> </a-col> </a-row> - <a-row :gutter="24"> + + <a-row> + <a-col :span="8"> + <a-form-model-item label="鐐规杩囨湡鏃堕棿"> + <a-date-picker placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" :value="model.expirationTime" disabled style="width: 100%" + value-format="YYYY-MM-DD"/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> <a-col :span="24"> <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark"> <a-textarea v-model="model.remark" rows="3" placeholder="璇疯緭鍏ュ娉�"/> </a-form-model-item> </a-col> </a-row> - <a-row :gutter="24"> - <j-vxe-table ref="editableDetailTable" :rowNumber="true" :rowSelection="true" :bordered="true" - :alwaysEdit="true" :toolbar="true" keep-source :height="300" :loading="detail.loading" - :dataSource="detail.dataSource" :columns="detail.columns" style="margin-top: 8px;"/> - </a-row> + + <a-tabs default-active-key="1"> + <a-tab-pane key="1" tab="鏃ョ偣妫�"> + <j-vxe-table rowNumber bordered keep-source :height="300" always-edit :dataSource="detail.dayInspectionList" + :columns="detail.standardInspectionColumns"/> + </a-tab-pane> + <a-tab-pane key="2" tab="鍛ㄧ偣妫�" v-if="detail.weekInspectionList.length>0" forceRender> + <j-vxe-table rowNumber bordered always-edit keep-source :height="300" + :dataSource="detail.weekInspectionList" + :columns="detail.weekInspectionColumns"/> + </a-tab-pane> + </a-tabs> </a-form-model> </a-spin> </j-modal> @@ -78,7 +82,7 @@ import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' import { JVXETypes } from '@/components/jeecg/JVxeTable' import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect' - import moment from 'dayjs' + import moment from 'moment' export default { name: 'EamMaintenanceStandardModal', @@ -101,66 +105,93 @@ }, confirmLoading: false, spinning: false, - disabled: false, + editable: true, validatorRules: { - // standardName: [ - // { required: true, message: '璇疯緭鍏ヨ鑼冨悕绉�!' } - // ], inspectionDate: [ { required: true, message: '璇烽�夋嫨鐐规鏃ユ湡', trigger: 'change' } ], - // maintenancePeriod: [ - // { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈燂紝鍗曚綅锛氬ぉ!' } - // ], equipmentId: [ - { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' } + { required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' } ] }, url: { add: '/eam/eamInspectionOrder/add', edit: '/eam/eamInspectionOrder/edit', detail: '/eam/eamMaintenanceStandardDetail/queryList', - detailOrder: '/eam/eamInspectionOrderDetail/queryList', - userSelect: '/eam/user_select/list' + weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList' }, - maintenanceCategory: 'POINT_INSPECTION', - maintenanceOperatorOptions: [], standardId: '', - standardType: false, detail: { - loading: false, - dataSource: [], - columns: [ + dayInspectionList: [], + weekInspectionList: [], + standardInspectionColumns: [ { title: '搴忓彿', key: 'itemCode', type: JVXETypes.inputNumber, - width: '10%', + width: 100, align: 'center', - validateRules: [ - { required: true, message: '璇疯緭鍏�${title}' }, - { unique: true, message: '搴忓彿涓嶈兘閲嶅' } - ] + disabled: true }, { title: '淇濆吇椤�', key: 'itemName', type: JVXETypes.textarea, - width: '20%', align: 'center', - validateRules: [ - { required: true, message: '璇疯緭鍏�${title}' } - ] + disabled: true + }, + { + title: '淇濆吇瑙勮寖鎴栬姹�', + key: 'itemDemand', + type: JVXETypes.textarea, + align: 'center', + disabled: true + } + ], + weekInspectionColumns: [], + weekInspectionOrderColumns: [ + { + title: '搴忓彿', + key: 'itemCode', + type: JVXETypes.normal, + width: 60, + align: 'center', + fixed: 'left' + }, + { + title: '淇濆吇椤�', + key: 'itemName', + type: JVXETypes.textarea, + align: 'center', + fixed: 'left' }, { title: '淇濆吇瑕佹眰', key: 'itemDemand', type: JVXETypes.textarea, - width: '30%', align: 'center', - validateRules: [ - { required: true, message: '璇疯緭鍏�${title}' } - ] + fixed: 'left' + }, + { + title: '鐐规缁撴灉', + key: 'inspectionResult', + type: JVXETypes.slot, + slotName: 'inspectionResult', + align: 'center' + }, + { + title: '寮傚父鎻忚堪', + key: 'exceptionDescription', + type: JVXETypes.slot, + slotName: 'exceptionDescription', + align: 'center' + }, + { + title: '寮傚父鏄惁鎶ヤ慨', + key: 'reportFlag', + type: JVXETypes.slot, + slotName: 'reportFlag', + align: 'center' } ] } @@ -169,61 +200,48 @@ methods: { add() { this.model = {} - this.detail.dataSource = [] this.visible = true - this.disabled = false - this.standardType = false + this.editable = true + this.detail.dayInspectionList = [] + this.detail.weekInspectionList = [] }, edit(record) { this.model = Object.assign({}, record) - this.standardId = record.standardId - this.disabled = true - this.standardType = true + this.editable = false this.visible = true - this.detail.dataSource = [] - if (record && record.referenceFile) { - let obj = JSON.parse(record.referenceFile) - this.model.fileList = [obj] - } else { - this.model.fieldList = [] - } - this.loadDetailOrder(record.id) + this.spinning = true }, async handleOk() { const that = this - let errMap = await that.$refs.editableDetailTable.validateTable() - if (errMap) { - this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�') - return - } // 瑙﹀彂琛ㄥ崟楠岃瘉 this.$refs.form.validate(valid => { if (valid) { - let tableData = that.$refs.editableDetailTable.getTableData() - let removeData = that.$refs.editableDetailTable.getDeleteData() - that.model.tableDetailList = [...tableData] - that.model.removeDetailList = [...removeData] - that.confirmLoading = that.spinning = true - let httpurl = '' + let httpUrl = '' let method = '' if (!this.model.id) { - httpurl += this.url.add + httpUrl += this.url.add method = 'post' } else { - httpurl += this.url.edit + httpUrl += this.url.edit method = 'put' } this.model.standardId = this.standardId - httpAction(httpurl, this.model, method).then((res) => { + httpAction(httpUrl, this.model, method).then((res) => { if (res.success) { - that.$message.success(res.message) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) that.$emit('ok') that.close() } else { - that.$message.warning(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) } }).finally(() => { that.confirmLoading = that.spinning = false @@ -238,92 +256,60 @@ this.model.standardName = selectObj.standardName this.model.maintenancePeriod = selectObj.maintenancePeriod this.model.standardCode = selectObj.standardCode - // 鑻ュ彇娑堣澶囬�夋嫨鍚庝繚鍏诲懆鏈熶负绌哄垯闇�娓呯┖鐐规鏃ユ湡鍜岀偣妫�杩囨湡鏃堕棿 - if (!this.model.equipmentId) { - delete this.model.inspectionDate - delete this.model.expirationTime - } else { - // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂� - if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate) - } - if (!this.standardType) { - console.log('this.standardType', this.standardType) - this.standardId = selectObj.id - this.loadDetail(selectObj.id) - } - this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId)) + this.standardId = selectObj.id + this.detail.dayInspectionList = [] + this.detail.weekInspectionList = [] + this.loadDetail() }, expirationTimeFrom(date) { + // 閫夋嫨鐐规鏃ユ湡鍚庤幏鍙栫偣妫�宸ュ崟鏄庣粏鍒楄〃 + if (this.model.equipmentId) this.getWeekInspectionOrderListByApi() //杩囨湡鏃堕棿鏄垵濮嬫椂闂�+淇濆吇鍛ㄦ湡 if (date && this.model.maintenancePeriod) { // 杞崲涓烘椂闂存埑瀛楃涓诧紙鎴栨寚瀹氭牸寮忥級 - this.model.expirationTime = moment(date) - .add(this.model.maintenancePeriod, 'days') - .format('YYYY-MM-DD') + this.model.expirationTime = moment(date).add(this.model.maintenancePeriod, 'days').format('YYYY-MM-DD') } else { this.model.expirationTime = null // 娓呯┖鏃犳晥鍊� } }, //鍔犺浇璇︽儏鏁版嵁 - loadDetail(standardId) { - this.detail.dataSource = [] - if (standardId) { - console.log('standardId', standardId) - this.spinning = true - getAction(this.url.detail, { standardId: standardId }) - .then(res => { - if (res.success) { - this.detail.dataSource = [...res.result] - } - }) - .finally(() => { - this.spinning = false - }) - } - }, + loadDetail() { - loadDetailOrder(orderId) { - if (orderId) { - this.spinning = true - getAction(this.url.detailOrder, { orderId: orderId }) - .then(res => { - if (res.success) { - this.detail.dataSource = [...res.result] - } - }) - .finally(() => { - this.spinning = false - }) - } - }, - - loadMaintenanceOperatorList(equipmentId) { - this.maintenanceOperatorOptions = [] - let params = { positionCode: 'PCR0001' } - if (equipmentId) { - params.equipmentId = equipmentId - } else { - delete this.model.operator - return - } - const that = this - getAction(this.url.userSelect, params) + this.spinning = true + getAction(this.url.detail, { standardId: this.standardId }) .then(res => { if (res.success) { - that.maintenanceOperatorOptions = res.result.map(item => ({ - key: item.id, - value: item.username, - text: item.realname - })) - if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator - } else { - if (that.model.operator) delete that.model.operator + this.detail.dayInspectionList = res.result.filter(item => item.itemCategory == 'DAY_INSPECTION') + this.detail.weekInspectionList = res.result.filter(item => item.itemCategory == 'WEEK_INSPECTION') + this.detail.weekInspectionColumns = this.detail.standardInspectionColumns + // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂� + if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate) } }) - .catch(err => { - if (that.model.operator) delete that.model.operator + .finally(() => { + if (!this.model.inspectionDate) this.spinning = false + }) + }, + + // 鑾峰彇鐐规宸ュ崟涓殑鍛ㄧ偣妫�鏄庣粏 + getWeekInspectionOrderListByApi() { + this.spinning = true + getAction(this.url.weekInspectionOrderList, { + standardId: this.standardId, + inspectionDate: this.model.inspectionDate + }) + .then(res => { + if (res.success) { + if (res.result.length > 0) { + this.detail.weekInspectionList = res.result + this.detail.weekInspectionColumns = this.detail.weekInspectionOrderColumns + } + } + }) + .finally(() => { + this.spinning = false }) }, @@ -338,8 +324,4 @@ } } } -</script> - -<style lang="less" scoped> - -</style> \ No newline at end of file +</script> \ No newline at end of file -- Gitblit v1.9.3