From dd882d827e101e85cf1806284d1e3e76d3466ecb Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期五, 11 七月 2025 20:18:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue | 358 +++++---- src/views/eam/maintenance/EamInspectionOrderList.vue | 14 src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue | 36 src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue | 325 +++----- src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue | 9 src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue | 155 ++++ src/views/eam/base/modules/EamMaintenanceStandardModal.vue | 16 src/views/eam/base/EamMaintenanceStandardList.vue | 6 src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue | 63 - src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue | 740 ++++++-------------- src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue | 395 ++++------ 11 files changed, 914 insertions(+), 1,203 deletions(-) diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue index 7401522..b786d51 100644 --- a/src/views/eam/base/EamMaintenanceStandardList.vue +++ b/src/views/eam/base/EamMaintenanceStandardList.vue @@ -260,9 +260,9 @@ inspectionImportExcel: '/eam/maintenanceStandard/importPointInspection', secondMaintenanceImportExcel: '/eam/maintenanceStandard/importSecondMaintenanceStandard', thirdMaintenanceImportExcel: '/eam/maintenanceStandard/importThirdMaintenanceStandard', - inspectionXlsDownloadUrl: '瀵煎叆妯℃澘/鐐规鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', - secondMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/浜屼繚鏍囧噯瀵煎叆妯℃澘_v1.0.docx', - thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/涓変繚鏍囧噯瀵煎叆妯℃澘_v1.0.docx' + inspectionXlsDownloadUrl: '瀵煎叆妯℃澘/璁惧鐐规鏍囧噯瀵煎叆妯℃澘.xlsx', + secondMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/鐢熶骇璁惧浜岀骇淇濆吇瑙勮寖.docx', + thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/鐢熶骇璁惧涓夌骇淇濆吇瑙勮寖.docx' }, standardId: '-1' } diff --git a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue index d242efa..ddcaee3 100644 --- a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue +++ b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue @@ -1,18 +1,6 @@ <template> - <a-card :bordered="false"> - <a-table - ref="detailTable" - size="middle" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - @change="handleTableChange"> - </a-table> - </a-card> + <a-table ref="detailTable" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" + :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange"/> </template> <script> @@ -34,7 +22,8 @@ } }, filterKey: { - type: String + type: String, + default: '' } }, data() { @@ -125,8 +114,7 @@ immediate: true, handler(val) { if (val) { - console.log('val---------------------', val) - this.$nextTick(() => this.loadData(1)) + this.loadData(1) } else { this.clearList() } @@ -151,10 +139,6 @@ }, methods: { loadData(arg) { - if (this.standardId && this.standardId === '-1') { - this.clearList() - return - } //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 if (arg === 1) { this.ipagination.current = 1 @@ -165,31 +149,32 @@ } this.dataSource = [] params.standardId = this.standardId + params.itemCategory = this.filterKey this.loading = true console.log('----------------------', this.filterKey) - getAction(this.url.list, params).then((res) => { - if (res.success) { - // console.log(res) - //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - if (this.filterKey) this.dataSource = res.result.records.filter(item => item.itemCategory == this.filterKey) - else this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total + getAction(this.url.list, params) + .then((res) => { + if (res.success) { + this.dataSource = res.result.records + if (res.result.total) { + this.ipagination.total = res.result.total + } else { + this.ipagination.total = 0 + } } else { - this.ipagination.total = 0 + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) } - //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) + }) + .finally(() => { + this.loading = false + }) }, clearList() { this.dataSource = [] - this.selectedRowKeys = [] - this.ipagination.current = 1 + this.clearSelected() } } } diff --git a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue index fd149fc..622596d 100644 --- a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue +++ b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue @@ -194,6 +194,14 @@ type: JVXETypes.textarea, align: 'center', validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] + }, + { + title: '淇濆吇瑙勮寖鎴栬姹�', + key: 'itemDemand', + placeholder: '璇疯緭鍏ヤ繚鍏昏鑼冩垨瑕佹眰', + type: JVXETypes.textarea, + align: 'center', + validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] } ], secondMaintenanceColumns: [ @@ -220,14 +228,6 @@ title: '淇濆吇椤圭洰', key: 'itemName', placeholder: '璇疯緭鍏ヤ繚鍏婚」鐩�', - type: JVXETypes.textarea, - align: 'center', - validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] - }, - { - title: '淇濆吇瑙勮寖鎴栬姹�', - key: 'itemDemand', - placeholder: '璇疯緭鍏ヤ繚鍏昏鑼冩垨瑕佹眰', type: JVXETypes.textarea, align: 'center', validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] diff --git a/src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue b/src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue index 5b00280..bc37560 100644 --- a/src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue +++ b/src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue @@ -23,40 +23,8 @@ </a-col> </a-row> -<!-- <a-row>--> -<!-- <a-col :span="8">--> -<!-- <a-form-model-item label="閴村畾鍛ㄦ湡(骞�)">--> -<!-- <a-input-number v-model="model.evaluationPeriod" :min="1" placeholder="璇疯緭鍏ラ壌瀹氬懆鏈�(骞�)" style="width: 100%"/>--> -<!-- </a-form-model-item>--> -<!-- </a-col>--> -<!-- </a-row>--> - <a-row> - <!--<a-col :span="8">--> - <!--<a-form-model-item label="瀹夊叏瑁呯疆妫�鏌�">--> - <!--<j-dict-select-tag @change="handleCheckListChange($event,1)" dict-code="yn " type="radio"--> - <!--:disabled="model.hasPrecisionCheck=='0'&&model.hasOtherCheck=='0'"--> - <!--v-model="model.hasSafetyEquipmentCheck"/>--> - <!--</a-form-model-item>--> - <!--</a-col>--> - - <!--<a-col :span="8">--> - <!--<a-form-model-item label="璁惧绮惧害妫�鏌�">--> - <!--<j-dict-select-tag @change="handleCheckListChange($event,2)" dict-code="yn " type="radio"--> - <!--:disabled="model.hasSafetyEquipmentCheck=='0'&&model.hasOtherCheck=='0'"--> - <!--v-model="model.hasPrecisionCheck"/>--> - <!--</a-form-model-item>--> - <!--</a-col>--> - - <!--<a-col :span="8">--> - <!--<a-form-model-item label="鍏朵粬妫�鏌�">--> - <!--<j-dict-select-tag @change="handleCheckListChange($event,3)" dict-code="yn " type="radio"--> - <!--:disabled="model.hasPrecisionCheck=='0'&&model.hasSafetyEquipmentCheck=='0'"--> - <!--v-model="model.hasOtherCheck"/>--> - <!--</a-form-model-item>--> - <!--</a-col>--> - - <a-col :span="8" v-for="item in checkList"> + <a-col :span="8" v-for="item in checkList" :key="item.key"> <a-form-model-item :label="item.label"> <j-dict-select-tag @change="handleCheckListChange($event,item.key)" dict-code="yn" type="radio" :disabled="checkList.filter(i=>i.key!=item.key).every(i=>i.value=='0')" @@ -342,7 +310,7 @@ if (tableData.length == 0) { this.$notification.warning({ message: '娑堟伅', - description: hasCheckedCheckList[index].label + '蹇呭~椤逛笉鑳戒负绌�' + description: hasCheckedCheckList[index].label + '涓嶈兘涓虹┖' }) return } diff --git a/src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue b/src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue new file mode 100644 index 0000000..e15b15f --- /dev/null +++ b/src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue @@ -0,0 +1,155 @@ +<template> + <a-select showSearch labelInValue :disabled="disabled" :getPopupContainer="getParentContainer" @search="loadData" + :placeholder="placeholder" v-model="selectedAsyncValue" style="width: 100%" :filterOption="false" + @change="handleAsyncChange" :allowClear="allowClear" :notFoundContent="loading ? undefined : null" + mode="default"> + <template #suffixIcon> + <a-icon type="search"/> + </template> + <a-spin v-if="loading" slot="notFoundContent" size="small"/> + <a-select-option v-for="d in options" :key="d.equipmentId" :value="d.equipmentId">{{ + d.equipmentCode+`[${d.equipmentName}]` }} + </a-select-option> + </a-select> +</template> + +<script> + import debounce from 'lodash/debounce' + import { getAction } from '@/api/manage' + + export default { + name: 'TechnicalStatusEquipmentSelect', + props: { + disabled: Boolean, + value: [String, Number], + placeholder: { + type: String, + default: '璇烽�夋嫨', + required: false + }, + pageSize: { + type: Number, + default: 20, + required: false + }, + allowClear: { + type: Boolean, + default: () => true, + required: false + } + }, + data() { + this.loadData = debounce(this.loadData, 800)//娑堟姈 + this.lastLoad = 0 + return { + loading: false, + selectedValue: undefined, + selectedAsyncValue: undefined, + options: [], + url: { + list: '/eam/eamTechnicalStatusEvaluationStandard/selectEnableEquipment' + } + } + }, + watch: { + 'value': { + immediate: true, + handler(val) { + if (!val) { + this.selectedValue = undefined + this.selectedAsyncValue = undefined + this.initDictData() + } else { + this.initSelectValue() + } + } + } + }, + methods: { + initSelectValue() { + if (!this.selectedAsyncValue || !this.selectedAsyncValue.key || this.selectedAsyncValue.key != this.value) { + getAction(this.url.list, { equipmentId: this.value }) + .then(res => { + if (res.success) { + if (res.result && res.result.length > 0) { + let obj = { + key: this.value, + label: res.result[0].text + } + this.selectedAsyncValue = { ...obj } + this.$emit('autocompleteForm', res.result[0]) + } + this.options = res.result + } + }) + } + }, + loadData(value) { + this.lastLoad += 1 + const currentLoad = this.lastLoad + this.options = [] + this.loading = true + // 瀛楀吀code鏍煎紡锛歵able,text,code + getAction(this.url.list, { keyword: value, pageSize: this.pageSize }) + .then(res => { + this.loading = false + if (res.success) { + if (currentLoad != this.lastLoad) { + return + } + this.options = res.result + } else { + this.$message.warning(res.message) + } + }) + }, + initDictData() { + //寮傛涓�寮�濮嬩篃鍔犺浇涓�鐐规暟鎹� + this.loading = true + getAction(this.url.list, { pageSize: this.pageSize, keyword: '' }) + .then(res => { + this.loading = false + if (res.success) { + this.options = [...res.result] + } else { + this.$message.warning(res.message) + } + }) + }, + filterOption(input, option) { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + handleAsyncChange(selectedObj) { + if (selectedObj) { + this.selectedAsyncValue = selectedObj + this.selectedValue = selectedObj.key + this.$emit('autocompleteForm', this.options.find(item => item.equipmentId === selectedObj.key)) + } else { + this.selectedAsyncValue = undefined + this.selectedValue = null + this.options = [] + this.loadData('') + this.$emit('autocompleteForm', {}) + } + this.callback() + }, + callback() { + this.$emit('change', this.selectedValue) + }, + getParentContainer(node) { + if (typeof this.getPopupContainer === 'function') { + return this.getPopupContainer(node) + } else if (!this.popContainer) { + return node.parentNode + } else { + return document.querySelector(this.popContainer) + } + } + + }, + model: { + prop: 'value', + event: 'change' + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/maintenance/EamInspectionOrderList.vue b/src/views/eam/maintenance/EamInspectionOrderList.vue index fc1b94d..39c7c2b 100644 --- a/src/views/eam/maintenance/EamInspectionOrderList.vue +++ b/src/views/eam/maintenance/EamInspectionOrderList.vue @@ -98,7 +98,7 @@ </a-menu-item> <a-menu-item> - <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleOrReceive(record.id)"> + <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleAbolish(record.id)"> <a>浣滃簾</a> </a-popconfirm> </a-menu-item> @@ -219,7 +219,7 @@ dataIndex: 'operateTime' }, { - title: '绠$悊鍛樼‘璁�', + title: '缁翠慨宸�', align: 'center', dataIndex: 'confirmUser_dictText' }, @@ -269,8 +269,6 @@ } }, methods: { - initDictConfig() { - }, //璇︽儏 handleDetail: function(record) { this.selectInspectionOrderXqData = Object.assign({}, record) @@ -280,6 +278,7 @@ this.$refs.modalFormXq.getAllApproveData(record) this.$refs.modalFormXq.getBasicInformation({ ...record, dataId: record.id }) }, + handleInspection(id) { var that = this this.loading = true @@ -301,11 +300,8 @@ } }) }, - handleOrReceive(id) { - if (!this.url.cancelInspectionOrder) { - this.$message.error('璇疯缃畊rl.cancelInspectionOrder!') - return - } + + handleAbolish(id) { var that = this getAction(that.url.cancelInspectionOrder, { id: id }).then((res) => { if (res.success) { diff --git a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue index 34b4d37..b91805c 100644 --- a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue +++ b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue @@ -1,578 +1,278 @@ <template> <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <div - class="table-page-search-wrapper" - v-if="isDisplayOperation" - > - <a-form - layout="inline" - @keyup.enter.native="searchQuery" - > + <div class="table-page-search-wrapper" v-if="isDisplayOperation"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col - :xl="4" - :lg="7" - :md="8" - :sm="24" - > + <a-col :xl="5" :lg="7" :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="5" :lg="7" :md="8" :sm="24"> <a-form-item label="宸ュ崟鍙�"> - <a-input - placeholder="璇疯緭鍏ュ伐鍗曞彿" - v-model="queryParam.orderNum" - ></a-input> + <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"/> </a-form-item> </a-col> - <a-col - :xl="4" - :lg="7" - :md="8" - :sm="24" - > - <a-form-item label="璁惧缂栧彿"> - <lx-search-equipment-select - placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" - v-model="queryParam.equipmentId" - ></lx-search-equipment-select> - </a-form-item> - </a-col> - <a-col - :xl="6" - :lg="7" - :md="8" - :sm="24" - > + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="璁″垝淇濆吇鏃ユ湡"> - <a-range-picker - v-model="queryParam.maintenanceDateRange" - @change="onMaintenanceDateChange" - format="YYYY-MM-DD" - value-format="YYYY-MM-DD" - /> + <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange" + value-format="YYYY-MM-DD"/> </a-form-item> </a-col> - <a-col - :xl="4" - :lg="7" - :md="8" - :sm="24" - > + <a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-form-item label="淇濆吇鐘舵��"> - <j-dict-select-tag - placeholder="璇烽�夋嫨淇濆吇鐘舵��" - dict-code="second_maintenance_status" - v-model="queryParam.maintenanceStatus" - /> + <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="second_maintenance_status" + v-model="queryParam.maintenanceStatus"/> </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> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <span 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> <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div - class="table-operator" - v-if="isDisplayOperation" - > - <a-button - @click="handleAdd" - type="primary" - icon="plus" - v-if="isShowAuth('eam:secondMaintenance:add')" - >鏂板 - </a-button> - <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item - key="1" - @click="handlerBatchAbolish" - v-if="isShowAuth('eam:secondMaintenance:abolish')" - > - <a-icon type="delete" /> - 浣滃簾 - </a-menu-item> - <a-menu-item - key="2" - @click="handlerBatchCollect" - v-if="isShowAuth('eam:secondMaintenance:collect')" - > - <a-icon type="form" /> - 棰嗗彇 - </a-menu-item> - </a-menu> - <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 - <a-icon type="down" /> - </a-button> - </a-dropdown> + <div class="table-operator" v-if="isDisplayOperation"> + <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> </div> <!-- table鍖哄煙-begin --> <div> - <div - class="ant-alert ant-alert-info" - style="margin-bottom: 16px;" - v-if="isDisplayOperation" - > - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� - <a - style="margin-left: 24px" - @click="onClearSelected" - >娓呯┖</a> - </div> - - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - :scroll="{x:'max-content'}" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange" - > - - <span - slot="action" - slot-scope="text, record" - > + <a-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"> <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'"> - <a - @click="handleEdit(record)" - v-if="isShowAuth('eam:secondMaintenance:edit')" - >缂栬緫</a> + <a @click="handleEdit(record)">缂栬緫</a> - <a-divider - type="vertical" - v-if="isShowAuth('eam:secondMaintenance:edit')" - /> + <a-divider type="vertical"/> - <a-popconfirm - title="纭畾棰嗗彇鍚�?" - @confirm="() => handlerCollect(record.id)" - v-if="isShowAuth('eam:secondMaintenance:collect')" - > + <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)"> <a>棰嗗彇</a> </a-popconfirm> - <a-divider - type="vertical" - v-if="isShowAuth('eam:secondMaintenance:collect')" - /> + <a-divider type="vertical"/> - <a-dropdown> - <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> - <a-menu slot="overlay"> - <a-menu-item v-if="isShowAuth('eam:secondMaintenance:abolish')"> - <a-popconfirm - title="纭畾浣滃簾鍚�?" - @confirm="() => handlerAbolish(record.id)" - > - <a>浣滃簾</a> - </a-popconfirm> - </a-menu-item> - <a-menu-item> - <a @click="handleDetail(record)">璇︽儏</a> - </a-menu-item> - </a-menu> - </a-dropdown> + <a @click="handleDetail(record)">璇︽儏</a> </template> <template v-else> <a @click="handleDetail(record)">璇︽儏</a> - <a-divider - type="vertical" - v-if="record.maintenanceStatus === 'COMPLETE'" - /> - <a - v-if="record.maintenanceStatus === 'COMPLETE'" - @click="handlePrint(record)" - >鎵撳嵃</a> + <a-divider type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/> + <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">鎵撳嵃</a> </template> </span> - </a-table> </div> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamSecondMaintenanceOrder-modal - ref="modalForm" - @ok="modalFormOk" - ></eamSecondMaintenanceOrder-modal> + <eamSecondMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"/> - <second-maintenance-approval-modal - ref="secondMaintenanceApprovalModal" - :selectShenpiData="selectSecondMaintenanceData" - /> + <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" + :selectShenpiData="selectSecondMaintenanceData"/> </a-card> </template> <script> -import '@/assets/less/TableExpand.less' -import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' -import { deleteAction, getAction } from '@api/manage' -import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' + import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { deleteAction, getAction } from '@api/manage' + import SecondMaintenanceApprovalModal + from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' + import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect' -export default { - name: 'EamSecondMaintenanceOrderList', - mixins: [JeecgListMixin], - components: { - LxSearchEquipmentSelect, - EamSecondMaintenanceOrderModal, - SecondMaintenanceApprovalModal - }, - props: { - isDisplayOperation: { - type: Boolean, - default: true - } - }, - data() { - return { - description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰', - disableMixinCreated: true, - selectSecondMaintenanceData: {}, - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - fixed: 'left', - customRender: function (t, r, index) { - return parseInt(index) + 1 + export default { + name: 'EamSecondMaintenanceOrderList', + mixins: [JeecgListMixin], + components: { + LxSearchEquipmentSelect, + EamSecondMaintenanceOrderModal, + SecondMaintenanceApprovalModal + }, + props: { + isDisplayOperation: { + type: Boolean, + default: true + } + }, + data() { + return { + description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰', + disableMixinCreated: true, + selectSecondMaintenanceData: {}, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '缁熶竴缂栫爜', + align: 'center', + dataIndex: 'equipmentCode' + }, + { + title: '璁惧鍚嶇О', + align: 'center', + dataIndex: 'equipmentName' + }, + { + title: '璁惧鍨嬪彿', + align: 'center', + dataIndex: 'equipmentModel' + }, + { + title: '宸ュ崟鍙�', + align: 'center', + dataIndex: 'orderNum' + }, + { + title: '瑙勮寖鍚嶇О', + align: 'center', + dataIndex: 'standardId_dictText' + }, + { + title: '璁″垝淇濆吇鏃ユ湡', + align: 'center', + dataIndex: 'maintenanceDate' + }, + { + title: '瀹為檯寮�濮嬫椂闂�', + align: 'center', + dataIndex: 'actualStartTime' + }, + { + title: '瀹為檯缁撴潫鏃堕棿', + align: 'center', + dataIndex: 'actualEndTime' + }, + { + title: '鎿嶄綔宸�', + align: 'center', + dataIndex: 'operator_dictText' + }, + { + title: '缁翠慨宸�', + align: 'center', + dataIndex: 'operator_dictText' + }, + { + title: '淇濆吇鐘舵��', + align: 'center', + dataIndex: 'maintenanceStatus_dictText' + }, + { + title: '鍒涘缓鏂瑰紡', + align: 'center', + dataIndex: 'creationMethod_dictText' + }, + { + title: '绠$悊鍛樼‘璁�', + align: 'center', + dataIndex: 'confirmUser_dictText' + }, + { + title: '绠$悊鍛樼‘璁ゆ椂闂�', + align: 'center', + dataIndex: 'confirmTime' + }, + { + title: '妫�鏌ヤ汉纭', + align: 'center', + dataIndex: 'confirmLeader_dictText' + }, + { + title: '妫�鏌ヤ汉纭鏃堕棿', + align: 'center', + dataIndex: 'leaderConfirmTime' + }, + { + title: 'HF缂栫爜', + align: 'center', + dataIndex: 'hfCode' } - }, - { - title: '宸ュ崟鍙�', - align: 'center', - dataIndex: 'orderNum', - fixed: 'left', - width: 60 - }, - { - title: '璁惧缂栧彿', - align: 'center', - dataIndex: 'equipmentCode', - fixed: 'left', - width: 60 - }, - { - title: '璁惧鍚嶇О', - align: 'center', - dataIndex: 'equipmentName', - fixed: 'left', - width: 60 - }, - { - title: '鏍囧噯鍚嶇О', - align: 'center', - dataIndex: 'standardId_dictText' - }, - { - title: '璁″垝淇濆吇鏃ユ湡', - align: 'center', - dataIndex: 'maintenanceDate' - }, - { - title: '瀹為檯寮�濮嬫椂闂�', - align: 'center', - dataIndex: 'actualStartTime' - }, - { - title: '瀹為檯缁撴潫鏃堕棿', - align: 'center', - dataIndex: 'actualEndTime' - }, - { - title: '淇濆吇浜�', - align: 'center', - dataIndex: 'operator_dictText' - }, - { - title: '淇濆吇鐘舵��', - align: 'center', - dataIndex: 'maintenanceStatus_dictText' - }, - { - title: '鍒涘缓鏂瑰紡', - align: 'center', - dataIndex: 'creationMethod_dictText' - }, - { - title: '纭绠$悊鍛�', - align: 'center', - dataIndex: 'confirmUser_dictText', - width: 60 - }, - { - title: '绠$悊鍛樼‘璁ゆ椂闂�', - align: 'center', - dataIndex: 'confirmTime', - width: 60 - }, - { - title: '绠$悊鍛樻剰瑙�', - align: 'center', - dataIndex: 'confirmComment', - width: 60 - }, - { - title: '纭棰嗗', - align: 'center', - dataIndex: 'confirmLeader_dictText', - width: 60 - }, - { - title: '棰嗗纭鏃堕棿', - align: 'center', - dataIndex: 'leaderConfirmTime', - width: 60 - }, - { - title: '棰嗗鎰忚', - align: 'center', - dataIndex: 'leaderConfirmComment', - width: 60 - }, - { - title: '澶囨敞', - align: 'center', - dataIndex: 'remark' + ], + url: { + list: '/eam/secondMaintenanceOrder/list', + abolish: '/eam/secondMaintenanceOrder/abolish', + collect: '/eam/secondMaintenanceOrder/collect' } - ], - url: { - list: '/eam/secondMaintenanceOrder/list', - abolish: '/eam/secondMaintenanceOrder/abolish', - abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch', - collect: '/eam/secondMaintenanceOrder/collect', - collectBatch: '/eam/secondMaintenanceOrder/collectBatch' - } - } - }, - created() { - if (!this.isDisplayOperation) { - return - } - const operationColumn = { - title: '鎿嶄綔', - dataIndex: 'action', - align: 'center', - fixed: 'right', - width: 200, - scopedSlots: { customRender: 'action' } - } - this.columns = [...this.columns, operationColumn] - this.loadData(1) - }, - computed: {}, - methods: { - onMaintenanceDateChange: function (value, dateString) { - if (dateString && dateString.length === 2) { - this.queryParam.maintenanceDateBegin = dateString[0] - this.queryParam.maintenanceDateEnd = dateString[1] - } else { - this.queryParam.maintenanceDateBegin = undefined - this.queryParam.maintenanceDateEnd = undefined } }, - handlerAbolish(id) { - if (!this.url.abolish) { - this.$message.error('璇疯缃畊rl.abolish灞炴��!') + created() { + if (!this.isDisplayOperation) { return } - var that = this - deleteAction(that.url.abolish, { id: id }).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(1) - // that.$message.success(res.message); - that.$notification.success({ - message: '娑堟伅', - description: res.message + const operationColumn = { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 200, + scopedSlots: { customRender: 'action' } + } + this.columns = [...this.columns, operationColumn] + this.loadData(1) + }, + methods: { + onMaintenanceDateChange: function(dataArray) { + this.queryParam.maintenanceDateBegin = dataArray[0] + this.queryParam.maintenanceDateEnd = dataArray[1] + }, + /** + * 鐐瑰嚮棰嗗彇鏃惰Е鍙� + * @param id 琛岃褰昳d + */ + handlerCollect(id) { + let that = this + getAction(that.url.collect, { id }) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } }) - that.loadData() - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - }, - handlerBatchAbolish() { - if (!this.url.abolishBatch) { - this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!') - return - } - if (this.selectedRowKeys.length <= 0) { - // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); - this.$notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨涓�鏉¤褰�' - }) - return - } else { - var ids = '' - for (var a = 0; a < this.selectedRowKeys.length; a++) { - ids += this.selectedRowKeys[a] + ',' - } - var that = this - this.$confirm({ - title: '纭浣滃簾', - content: '鏄惁浣滃簾閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲浣滃簾鎴愬姛?', - onOk: function () { - that.loading = true - deleteAction(that.url.abolishBatch, { ids: ids }).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(that.selectedRowKeys.length) - // that.$message.success(res.message); - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.loadData() - that.onClearSelected() - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }).finally(() => { - that.loading = false - }) - } - }) - } - }, - //鍗曚釜棰嗗彇 - handlerCollect(id) { - if (!this.url.collect) { - this.$message.error('璇疯缃畊rl.collect灞炴��!') - return - } - let that = this - getAction(that.url.collect, { id: id }).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(1) - // that.$message.success(res.message); - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.loadData() - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - }, - //鎵归噺棰嗗彇 - handlerBatchCollect() { - if (!this.url.collectBatch) { - this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!') - return - } - if (this.selectedRowKeys.length <= 0) { - // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); - this.$notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨涓�鏉¤褰�' - }) - return - } else { - var ids = '' - for (var a = 0; a < this.selectedRowKeys.length; a++) { - ids += this.selectedRowKeys[a] + ',' - } - var that = this - this.$confirm({ - title: '纭棰嗗彇', - content: '鏄惁棰嗗彇閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲棰嗗彇鎴愬姛?', - onOk: function () { - that.loading = true - deleteAction(that.url.collectBatch, { ids: ids }).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(that.selectedRowKeys.length) - // that.$message.success(res.message); - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.loadData() - that.onClearSelected() - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }).finally(() => { - that.loading = false - }) - } - }) - } - }, - handleDetail(record) { - this.selectSecondMaintenanceData = Object.assign({}, record) - this.$refs.secondMaintenanceApprovalModal.recordDetail(record) - this.$refs.secondMaintenanceApprovalModal.title = '璇︽儏' - this.$refs.secondMaintenanceApprovalModal.disableSubmit = true - }, + }, - handlePrint(record) { - // let href = `${window._CONFIG['domianURL']}/jmreport/view/1094871242505912320`; //缃戠珯閾炬帴 - let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id; //缃戠珯閾炬帴 - window.open(href, "_blank"); - }, + /** + * 鐐瑰嚮璇︽儏鏃惰Е鍙� + * @param record 鍒楄〃琛岃褰� + */ + handleDetail(record) { + this.selectSecondMaintenanceData = Object.assign({}, record) + this.$refs.secondMaintenanceApprovalModal.recordDetail(record) + this.$refs.secondMaintenanceApprovalModal.title = '璇︽儏' + this.$refs.secondMaintenanceApprovalModal.disableSubmit = true + }, + + /** + * 鐐瑰嚮鎵撳嵃鏃惰Е鍙� + * @param record 鍒楄〃琛岃褰� + */ + handlePrint(record) { + let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id //缃戠珯閾炬帴 + window.open(href, '_blank') + } + } } -} -</script> -<style scoped> -@import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue index 2b65b8a..c7f954c 100644 --- a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue +++ b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue @@ -103,7 +103,6 @@ @click="handleAdd" type="primary" icon="plus" - v-if="isShowAuth('eam:secondMaintenance:add')" >鏂板 </a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> @@ -111,7 +110,6 @@ <a-menu-item key="1" @click="handlerBatchAbolish" - v-if="isShowAuth('eam:secondMaintenance:abolish')" > <a-icon type="delete" /> 浣滃簾 @@ -119,7 +117,6 @@ <a-menu-item key="2" @click="handlerBatchCollect" - v-if="isShowAuth('eam:secondMaintenance:collect')" > <a-icon type="form" /> 棰嗗彇 @@ -167,31 +164,27 @@ <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'"> <a @click="handleEdit(record)" - v-if="isShowAuth('eam:thirdMaintenance:edit')" >缂栬緫</a> <a-divider type="vertical" - v-if="isShowAuth('eam:thirdMaintenance:edit')" /> <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)" - v-if="isShowAuth('eam:thirdMaintenance:collect')" > <a>棰嗗彇</a> </a-popconfirm> <a-divider type="vertical" - v-if="isShowAuth('eam:thirdMaintenance:collect')" /> <a-dropdown> <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> <a-menu slot="overlay"> - <a-menu-item v-if="isShowAuth('eam:thirdMaintenance:abolish')"> + <a-menu-item> <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handlerAbolish(record.id)" diff --git a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue index 07af5c0..46cd6fd 100644 --- a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue +++ b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue @@ -1,105 +1,82 @@ <template> - <j-modal - :title="title" - :width="1200" - :visible="visible" - :confirmLoading="confirmLoading" - switchFullscreen - :mask-closable="false" - @ok="handleOk" - @cancel="handleCancel" - cancelText="鍏抽棴"> + <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen + :mask-closable="false" @ok="handleOk" @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-row> <a-col :span="8"> <a-form-model-item prop="orderNum" label="宸ュ崟鍙�"> <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/> </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="maintenanceCategory" - @autocompleteForm="autocompleteForm" - :disabled="editable"></maintenance-equipment-select> + <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> + <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" + maintenanceCategory="SECOND_MAINTENANCE" :allowClear="false" + @autocompleteForm="autocompleteForm" :disabled="!editable"/> </a-form-model-item> </a-col> <a-col :span="8"> - <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О"> + <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О"> <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/> </a-form-model-item> </a-col> </a-row> - <a-row :gutter="24"> + <a-row> <a-col :span="8"> <a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡"> - <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD" - style="width: 100%"/> + <a-date-picker v-model="model.maintenanceDate" value-format="YYYY-MM-DD" style="width: 100%"/> </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-form-model-item> - </a-col> - <a-col :span="8"> - <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡"> + <a-form-model-item label="淇濆吇鍛ㄦ湡"> <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/> </a-form-model-item> </a-col> </a-row> - <a-row :gutter="24"> + <a-row> <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞"> <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/> </a-form-model-item> </a-row> - <a-row :gutter="24"> - <a-spin :spinning="detail.loading"> - <j-vxe-table - ref="editableDetailTable" - :rowNumber="true" - :rowSelection="true" - :bordered="true" - :alwaysEdit="true" - :toolbar="true" - :toolbarConfig="detail.toolbarConfig" - keep-source - :height="300" - :dataSource="detail.dataSource" - :columns="detail.columns" - style="margin-top: 8px;"/> - </a-spin> - </a-row> + + <a-tabs default-active-key="1"> + <a-tab-pane tab="鎿嶄綔宸�" key="1"> + <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.operatorMaintenanceList" + :columns="detail.columns"/> + </a-tab-pane> + <a-tab-pane tab="缁翠慨宸�" key="2" forceRender> + <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.repairerMaintenanceList" + :columns="detail.columns"/> + </a-tab-pane> + </a-tabs> </a-form-model> </a-spin> </j-modal> </template> <script> -import { getAction, httpAction } from '@/api/manage' -import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' -import { JVXETypes } from '@comp/jeecg/JVxeTable' + import { getAction, httpAction } from '@/api/manage' + import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' + import { JVXETypes } from '@comp/jeecg/JVxeTable' -export default { - name: "EamSecondMaintenanceOrderModal", + export default { + name: 'EamSecondMaintenanceOrderModal', components: { MaintenanceEquipmentSelect }, - data () { + data() { return { - title:"鎿嶄綔", + title: '鎿嶄綔', visible: false, editable: false, model: {}, - maintenanceCategory: 'SECOND_MAINTENANCE', labelCol: { xs: { span: 24 }, sm: { span: 6 } }, wrapperCol: { xs: { span: 24 }, - sm: { span: 16 } + sm: { span: 15 } }, labelColLong: { xs: { span: 24 }, @@ -111,23 +88,23 @@ }, confirmLoading: false, spinning: false, - validatorRules:{ + validatorRules: { equipmentId: [ - { required: true, message: '璇烽�夋嫨璁惧!' } + { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储', trigger: 'change' } ], maintenanceDate: [ - { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' } + { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡', trigger: 'change' } ] }, url: { - add: "/eam/secondMaintenanceOrder/add", - edit: "/eam/secondMaintenanceOrder/edit", + add: '/eam/secondMaintenanceOrder/add', + edit: '/eam/secondMaintenanceOrder/edit', standardDetail: '/eam/eamMaintenanceStandardDetail/queryList', - detail: '/eam/secondMaintenanceOrderDetail/queryList', - userSelect: '/eam/user_select/list' + detail: '/eam/secondMaintenanceOrderDetail/queryList' }, detail: { - loading: false, + operatorMaintenanceList: [], + repairerMaintenanceList: [], dataSource: [], columns: [ { @@ -143,152 +120,56 @@ { title: '搴忓彿', key: 'itemCode', - type: JVXETypes.inputNumber, - width: '10%', - align: 'center', - validateRules: [ - { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' } - ] - }, - { - title: '閮ㄤ綅', - key: 'itemPart', - type: JVXETypes.textarea, - width: '25%', + type: JVXETypes.normal, + width: 60, align: 'center' }, { title: '淇濆吇椤�', key: 'itemName', - type: JVXETypes.textarea, - width: '20%', - align: 'center', - validateRules: [ - { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' } - ] - }, - { - title: '淇濆吇瑕佹眰', - key: 'itemDemand', - type: JVXETypes.textarea, - width: '30%', - align: 'center', - validateRules: [ - { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' } - ] + type: JVXETypes.normal, + align: 'center' } - ], - toolbarConfig: { - // prefix 鍓嶇紑锛泂uffix 鍚庣紑 - slot: ['prefix', 'suffix'], - // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 - btn: ['add', 'remove', 'clearSelection'] - } + ] } } - }, - created () { }, methods: { add() { //鍒濆鍖栭粯璁ゅ�� - this.model = {} + this.model = { maintenancePeriod: 6 } this.visible = true - this.editable = false - this.detail.dataSource = [] + this.editable = true + this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = [] }, + edit(record) { this.model = Object.assign({}, record) this.visible = true - this.editable = true - this.detail.dataSource = [] + this.editable = false + this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = [] this.loadDetail(record.id) }, - close() { - this.$emit('close') - this.visible = false - this.$refs.form.clearValidate() - }, - 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 = true - let httpurl = '' - let method = '' - if (!this.model.id) { - httpurl += this.url.add - method = 'post' - } else { - httpurl += this.url.edit - method = 'put' - } - httpAction(httpurl, this.model, method).then((res) => { - if (res.success) { - that.$message.success(res.message) - that.$emit('ok') - that.close() - } else { - that.$message.warning(res.message) - } - }).finally(() => { - that.confirmLoading = false - }) - } else { - return false - } - }) - }, - handleCancel() { - this.close() - }, autocompleteForm(selectObj) { - //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶 - //鍔炴硶涓� validatorRules equipmentId 杩樻槸鏈夐棶棰� - // const newObj = { - // standardName: selectObj.standardName, - // maintenancePeriod: selectObj.maintenancePeriod, - // standardId : selectObj.id, - // equipmentId: selectObj.equipmentId, - // }; - // this.model = Object.assign({}, newObj, this.model) - //鍔炴硶浜� this.$set(this.model, 'standardName', selectObj.standardName) - this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod) this.$set(this.model, 'standardId', selectObj.id) this.$set(this.model, 'equipmentId', selectObj.equipmentId) - // console.log('model', this.model) - if (!this.model.equipmentId) delete this.model.operator - if (!this.model.id) { - this.loadStandardDetail(selectObj.id) - } - this.loadMaintenanceOperatorList(this.model.equipmentId) + if (!this.model.id) this.loadStandardDetail(selectObj.id) }, - //鍔犺浇璇︽儏鏁版嵁 + + /** + * 鑾峰彇淇濆吇瑙勮寖鏁版嵁 + * @param standardId 瑙勮寖Id + */ loadStandardDetail(standardId) { - this.detail.dataSource = [] if (standardId) { this.spinning = true - getAction(this.url.standardDetail, { standardId: standardId }) + getAction(this.url.standardDetail, { standardId }) .then(res => { if (res.success) { - this.detail.dataSource = res.result.map(item => ({ - itemCode: item.itemCode, - itemName: item.itemName, - itemPart: item.itemPart, - itemDemand: item.itemDemand - })) + this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE') + this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE') } }) .finally(() => { @@ -296,46 +177,72 @@ }) } }, - //鏍囧噯閫夋嫨鍙樺寲 + + /** + * 鑾峰彇浜屼繚宸ュ崟鏄庣粏 + * @param orderId 宸ュ崟Id + */ loadDetail(orderId) { if (orderId) { - getAction(this.url.detail, { orderId: orderId }).then(res => { - if (res.success) { - this.detail.dataSource = [...res.result] - } - }) + getAction(this.url.detail, { orderId }) + .then(res => { + if (res.success) { + this.detail.dataSource = [...res.result] + } + }) } }, - loadMaintenanceOperatorList(equipmentId) { - this.maintenanceOperatorOptions = [] - let params = { positionCode: 'PCR0001' } - if (equipmentId) { - params.equipmentId = equipmentId - } - else return + + async handleOk() { const that = this - getAction(this.url.userSelect, params) - .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 + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = that.spinning = true + let httpUrl = '' + let method = '' + if (!this.model.id) { + httpUrl += this.url.add + method = 'post' } else { - if (that.model.operator) delete that.model.operator + httpUrl += this.url.edit + method = 'put' } - }) - .catch(err => { - if (that.model.operator) delete that.model.operator - }) + httpAction(httpUrl, this.model, method) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.$emit('ok') + that.close() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.confirmLoading = that.spinning = false + }) + } else { + return false + } + }) + }, + + handleCancel() { + this.close() + }, + + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() } } } </script> - -<style lang="less" scoped> - -</style> \ No newline at end of file diff --git a/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue b/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue index eb3b30f..26efcce 100644 --- a/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue +++ b/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue @@ -1,49 +1,30 @@ <template> <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鍒犻櫎鏍囪"> - <a-input placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" v-model="queryParam.delFlag"></a-input> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> + <a-form-item label="缁熶竴缂栫爜"> + <technical-status-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="queryParam.equipmentId"/> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> <a-form-item label="宸ュ崟鍙�"> - <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"></a-input> + <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"/> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="璁惧ID"> - <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="queryParam.equipmentId"></a-input> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> + <a-form-item label="璁″垝閴村畾鏃ユ湡"> + <a-date-picker v-model="queryParam.evaluationDate" style="width: 100%"/> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="瑙勮寖ID"> - <a-input placeholder="璇疯緭鍏ヨ鑼僆D" v-model="queryParam.standardId"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="璁″垝閴村畾鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�"> - <a-input placeholder="璇疯緭鍏ヨ鍒掗壌瀹氭棩鏈�;鎻愬墠70澶╃敓鎴愬伐鍗�" v-model="queryParam.evaluationDate"></a-input> - </a-form-item> - </a-col> - </template> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="4" :lg="6" :md="8" :sm="12"> <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> - <a @click="handleToggleSearch" style="margin-left: 8px"> - {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> - </a> </span> </a-col> - </a-row> </a-form> </div> @@ -51,75 +32,40 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <a-button type="primary" icon="download" @click="handleExportXls('鎶�鏈姸鎬侀壌瀹氬伐鍗�')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> - <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item> - </a-menu> - <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button> - </a-dropdown> </div> <!-- table鍖哄煙-begin --> - <div> - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� - <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> - </div> - - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + <a-table bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" + :scroll="{ x: 'max-content' }" :loading="loading" @change="handleTableChange"> <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> - - <a-divider type="vertical" /> - <a-dropdown> - <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> - <a-menu slot="overlay"> - <a-menu-item> - <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a>鍒犻櫎</a> - </a-popconfirm> - </a-menu-item> - </a-menu> - </a-dropdown> + <a-popconfirm v-if="record.evaluationStatus=='WAIT_EVALUATION'" title="纭畾棰嗗彇鍚楋紵" + @confirm="handleReceive(record.id)"> + <a>棰嗗彇</a> + </a-popconfirm> </span> - - </a-table> - </div> + </a-table> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationOrder-modal> + <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"/> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import TechnicalStatusEquipmentSelect from '../equipment/modules/TechnicalStatusEquipmentSelect' + import { getAction } from '@/api/manage' export default { - name: "EamTechnicalStatusEvaluationOrderList", - mixins:[JeecgListMixin], + name: 'EamTechnicalStatusEvaluationOrderList', + mixins: [JeecgListMixin], components: { + TechnicalStatusEquipmentSelect, EamTechnicalStatusEvaluationOrderModal }, - data () { + data() { return { description: '鎶�鏈姸鎬侀壌瀹氬伐鍗曠鐞嗛〉闈�', // 琛ㄥご @@ -127,189 +73,204 @@ { title: '#', dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title: '鍒犻櫎鏍囪', - align:"center", - dataIndex: 'delFlag' - }, - { + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + }, + fixed: 'left' + }, + { + 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' - }, - { - title: '璁惧ID', - align:"center", - dataIndex: 'equipmentId' - }, - { - title: '瑙勮寖ID', - align:"center", - dataIndex: 'standardId' - }, - { - title: '璁″垝閴村畾鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�', - align:"center", - dataIndex: 'evaluationDate' - }, - { - title: '閿佸畾宸ュ崟鏃ユ湡;鎻愬墠55澶╅攣瀹氬伐鍗�', - align:"center", + align: 'center', + dataIndex: 'orderNum', + fixed: 'left' + }, + { + title: '璁″垝閴村畾鏃ユ湡', + align: 'center', + dataIndex: 'evaluationDate', + fixed: 'left' + }, + { + title: '閿佸畾宸ュ崟鏃ユ湡', + align: 'center', dataIndex: 'freezeOrderDate' - }, - { - title: '宸ュ崟杩囨湡鏃ユ湡;鍒版湡鏈仛鐩存帴杩囨湡锛屽苟淇敼璁惧鎶�鏈姸鎬佷负绂佺敤', - align:"center", + }, + { + title: '宸ュ崟杩囨湡鏃ユ湡', + align: 'center', dataIndex: 'orderExpirationDate' - }, - { + }, + { title: '瀹為檯寮�濮嬫椂闂�', - align:"center", + align: 'center', dataIndex: 'actualStartTime' - }, - { + }, + { title: '瀹為檯缁撴潫鏃堕棿', - align:"center", + align: 'center', dataIndex: 'actualEndTime' - }, - { + }, + { title: '閴村畾浜�', - align:"center", + align: 'center', dataIndex: 'evaluator' - }, - { - title: '閴村畾鐘舵��;寰呴壌瀹氥�侀壌瀹氫腑銆佺淮淇涓讳换绛惧瓧銆佸伐鑹轰汉鍛樼瀛椼�佹妧鏈富绠$瀛椼�佽澶囨楠屽憳绛惧瓧銆佸凡瀹屾垚銆佸凡閿佸畾銆佸彉鏇翠腑銆佸凡杩囨湡', - align:"center", - dataIndex: 'evaluationStatus' - }, - { + }, + { + title: '閴村畾鐘舵��', + align: 'center', + dataIndex: 'evaluationStatus_dictText' + }, + { title: '鍒涘缓鏂瑰紡', - align:"center", - dataIndex: 'creationMethod' - }, - { - title: '瀹夊叏瑁呯疆妫�鏌ョ粨鏋�;鏄�佸惁', - align:"center", + align: 'center', + dataIndex: 'creationMethod_dictText' + }, + { + title: '瀹夊叏瑁呯疆妫�鏌ョ粨鏋�', + align: 'center', dataIndex: 'safetyEquipmentCheckResult' - }, - { - title: '绮惧害鍙傛暟妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤', - align:"center", + }, + { + title: '绮惧害鍙傛暟妫�鏌ョ粨鏋�', + align: 'center', dataIndex: 'precisionCheckResult' - }, - { - title: '鍔熻兘鐘舵�佹鏌ョ粨鏋�;鏄�佸惁', - align:"center", + }, + { + title: '鍔熻兘鐘舵�佹鏌ョ粨鏋�', + align: 'center', dataIndex: 'functionalCheckResult' - }, - { - title: '鍏朵粬妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤', - align:"center", + }, + { + title: '鍏朵粬妫�鏌ョ粨鏋�', + align: 'center', dataIndex: 'otherCheckResult' - }, - { + }, + { title: '缁翠慨瀹や富浠荤瀛�', - align:"center", + align: 'center', dataIndex: 'repairManagerSignature' - }, - { + }, + { title: '缁翠慨瀹や富浠荤瀛楁椂闂�', - align:"center", + align: 'center', dataIndex: 'repairManagerSignatureTime1' - }, - { - title: '璇曚欢妫�鏌ョ粨鏋�;鍚堟牸銆佷笉鍚堟牸', - align:"center", + }, + { + title: '璇曚欢妫�鏌ョ粨鏋�', + align: 'center', dataIndex: 'sampleCheckResult' - }, - { + }, + { title: '宸ヨ壓鍛樼瀛�', - align:"center", + align: 'center', dataIndex: 'processTechnicianSignature' - }, - { + }, + { title: '宸ヨ壓鍛樼瀛楁椂闂�', - align:"center", + align: 'center', dataIndex: 'processTechnicianSignatureTime' - }, - { - title: '閴村畾缁撴灉;鍚堟牸銆侀檺鐢ㄣ�佺鐢�', - align:"center", + }, + { + title: '閴村畾缁撴灉', + align: 'center', dataIndex: 'evaluationResult' - }, - { - title: '闄怽绂佺敤鍘熷洜(澶氶��);瀹夊叏瑁呯疆銆佽澶囧姛鑳姐�佺簿搴︺�佽瘯浠躲�佸叾浠�', - align:"center", + }, + { + title: '闄�/绂佺敤鍘熷洜', + align: 'center', dataIndex: 'evaluationReason' - }, - { + }, + { title: '璁惧妫�鏌ヤ汉绛惧瓧', - align:"center", + align: 'center', dataIndex: 'inspectorSignature' - }, - { + }, + { title: '璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿', - align:"center", + align: 'center', dataIndex: 'inspectorSignatureTime' - }, - { + }, + { title: '闄勫綍A HF缂栫爜', - align:"center", + align: 'center', dataIndex: 'hfCodeA' - }, - { + }, + { title: '闄勫綍B HF缂栫爜', - align:"center", + align: 'center', dataIndex: 'hfCodeB' - }, - { + }, + { title: '闄勫綍C HF缂栫爜', - align:"center", + align: 'center', dataIndex: 'hfCodeC' - }, - { + }, + { title: '闄勫綍D HF缂栫爜', - align:"center", + align: 'center', dataIndex: 'hfCodeD' - }, - { - title: '澶囨敞', - align:"center", - dataIndex: 'remark' - }, + }, { title: '鎿嶄綔', dataIndex: 'action', - align:"center", + align: 'center', scopedSlots: { customRender: 'action' }, + fixed: 'right' } ], - url: { - list: "/eam/eamTechnicalStatusEvaluationOrder/list", - delete: "/eam/eamTechnicalStatusEvaluationOrder/delete", - deleteBatch: "/eam/eamTechnicalStatusEvaluationOrder/deleteBatch", - exportXlsUrl: "eam/eamTechnicalStatusEvaluationOrder/exportXls", - importExcelUrl: "eam/eamTechnicalStatusEvaluationOrder/importExcel", - }, - } - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - } - }, + url: { + list: '/eam/eamTechnicalStatusEvaluationOrder/list', + receive: '/eam/eamTechnicalStatusEvaluationOrder/collect', + delete: '/eam/eamTechnicalStatusEvaluationOrder/delete', + deleteBatch: '/eam/eamTechnicalStatusEvaluationOrder/deleteBatch', + exportXlsUrl: 'eam/eamTechnicalStatusEvaluationOrder/exportXls', + importExcelUrl: 'eam/eamTechnicalStatusEvaluationOrder/importExcel' + } + } + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, methods: { - + handleReceive(id) { + getAction(this.url.receive, { id }) + .then(res => { + if (res.success) { + this.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + } } } -</script> -<style scoped> - @import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue index da01900..b1dea0d 100644 --- a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue +++ b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue @@ -1,194 +1,240 @@ <template> - <j-modal - :title="title" - :width="800" - :visible="visible" - :confirmLoading="confirmLoading" - switchFullscreen - @ok="handleOk" - @cancel="handleCancel" - cancelText="鍏抽棴"> - - <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :model="model" :rules="validatorRules"> - - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="鍒犻櫎鏍囪"> - <a-input-number v-model="model.delFlag"/> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderNum" label="宸ュ崟鍙�"> - <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="model.orderNum" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧ID"> - <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="model.equipmentId" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardId" label="瑙勮寖ID"> - <a-input placeholder="璇疯緭鍏ヨ鑼僆D" v-model="model.standardId" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationDate" label="璁″垝閴村畾鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�"> - <a-input placeholder="璇疯緭鍏ヨ鍒掗壌瀹氭棩鏈�;鎻愬墠70澶╃敓鎴愬伐鍗�" v-model="model.evaluationDate" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="freezeOrderDate" label="閿佸畾宸ュ崟鏃ユ湡;鎻愬墠55澶╅攣瀹氬伐鍗�"> - <a-input placeholder="璇疯緭鍏ラ攣瀹氬伐鍗曟棩鏈�;鎻愬墠55澶╅攣瀹氬伐鍗�" v-model="model.freezeOrderDate" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderExpirationDate" label="宸ュ崟杩囨湡鏃ユ湡;鍒版湡鏈仛鐩存帴杩囨湡锛屽苟淇敼璁惧鎶�鏈姸鎬佷负绂佺敤"> - <a-input placeholder="璇疯緭鍏ュ伐鍗曡繃鏈熸棩鏈�;鍒版湡鏈仛鐩存帴杩囨湡锛屽苟淇敼璁惧鎶�鏈姸鎬佷负绂佺敤" v-model="model.orderExpirationDate" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualStartTime" label="瀹為檯寮�濮嬫椂闂�"> - <a-input placeholder="璇疯緭鍏ュ疄闄呭紑濮嬫椂闂�" v-model="model.actualStartTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualEndTime" label="瀹為檯缁撴潫鏃堕棿"> - <a-input placeholder="璇疯緭鍏ュ疄闄呯粨鏉熸椂闂�" v-model="model.actualEndTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluator" label="閴村畾浜�"> - <a-input placeholder="璇疯緭鍏ラ壌瀹氫汉" v-model="model.evaluator" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationStatus" label="閴村畾鐘舵��;寰呴壌瀹氥�侀壌瀹氫腑銆佺淮淇涓讳换绛惧瓧銆佸伐鑹轰汉鍛樼瀛椼�佹妧鏈富绠$瀛椼�佽澶囨楠屽憳绛惧瓧銆佸凡瀹屾垚銆佸凡閿佸畾銆佸彉鏇翠腑銆佸凡杩囨湡"> - <a-input placeholder="璇疯緭鍏ラ壌瀹氱姸鎬�;寰呴壌瀹氥�侀壌瀹氫腑銆佺淮淇涓讳换绛惧瓧銆佸伐鑹轰汉鍛樼瀛椼�佹妧鏈富绠$瀛椼�佽澶囨楠屽憳绛惧瓧銆佸凡瀹屾垚銆佸凡閿佸畾銆佸彉鏇翠腑銆佸凡杩囨湡" v-model="model.evaluationStatus" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="creationMethod" label="鍒涘缓鏂瑰紡"> - <a-input placeholder="璇疯緭鍏ュ垱寤烘柟寮�" v-model="model.creationMethod" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="safetyEquipmentCheckResult" label="瀹夊叏瑁呯疆妫�鏌ョ粨鏋�;鏄�佸惁"> - <a-input placeholder="璇疯緭鍏ュ畨鍏ㄨ缃鏌ョ粨鏋�;鏄�佸惁" v-model="model.safetyEquipmentCheckResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="precisionCheckResult" label="绮惧害鍙傛暟妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤"> - <a-input placeholder="璇疯緭鍏ョ簿搴﹀弬鏁版鏌ョ粨鏋�;鏄�佸惁銆佹棤" v-model="model.precisionCheckResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionalCheckResult" label="鍔熻兘鐘舵�佹鏌ョ粨鏋�;鏄�佸惁"> - <a-input placeholder="璇疯緭鍏ュ姛鑳界姸鎬佹鏌ョ粨鏋�;鏄�佸惁" v-model="model.functionalCheckResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="otherCheckResult" label="鍏朵粬妫�鏌ョ粨鏋�;鏄�佸惁銆佹棤"> - <a-input placeholder="璇疯緭鍏ュ叾浠栨鏌ョ粨鏋�;鏄�佸惁銆佹棤" v-model="model.otherCheckResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignature" label="缁翠慨瀹や富浠荤瀛�"> - <a-input placeholder="璇疯緭鍏ョ淮淇涓讳换绛惧瓧" v-model="model.repairManagerSignature" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignatureTime1" label="缁翠慨瀹や富浠荤瀛楁椂闂�"> - <a-input placeholder="璇疯緭鍏ョ淮淇涓讳换绛惧瓧鏃堕棿" v-model="model.repairManagerSignatureTime1" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sampleCheckResult" label="璇曚欢妫�鏌ョ粨鏋�;鍚堟牸銆佷笉鍚堟牸"> - <a-input placeholder="璇疯緭鍏ヨ瘯浠舵鏌ョ粨鏋�;鍚堟牸銆佷笉鍚堟牸" v-model="model.sampleCheckResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignature" label="宸ヨ壓鍛樼瀛�"> - <a-input placeholder="璇疯緭鍏ュ伐鑹哄憳绛惧瓧" v-model="model.processTechnicianSignature" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignatureTime" label="宸ヨ壓鍛樼瀛楁椂闂�"> - <a-input placeholder="璇疯緭鍏ュ伐鑹哄憳绛惧瓧鏃堕棿" v-model="model.processTechnicianSignatureTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationResult" label="閴村畾缁撴灉;鍚堟牸銆侀檺鐢ㄣ�佺鐢�"> - <a-input placeholder="璇疯緭鍏ラ壌瀹氱粨鏋�;鍚堟牸銆侀檺鐢ㄣ�佺鐢�" v-model="model.evaluationResult" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationReason" label="闄怽绂佺敤鍘熷洜(澶氶��);瀹夊叏瑁呯疆銆佽澶囧姛鑳姐�佺簿搴︺�佽瘯浠躲�佸叾浠�"> - <a-input placeholder="璇疯緭鍏ラ檺\绂佺敤鍘熷洜(澶氶��);瀹夊叏瑁呯疆銆佽澶囧姛鑳姐�佺簿搴︺�佽瘯浠躲�佸叾浠�" v-model="model.evaluationReason" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignature" label="璁惧妫�鏌ヤ汉绛惧瓧"> - <a-input placeholder="璇疯緭鍏ヨ澶囨鏌ヤ汉绛惧瓧" v-model="model.inspectorSignature" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignatureTime" label="璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿"> - <a-input placeholder="璇疯緭鍏ヨ澶囨鏌ヤ汉绛惧瓧鏃堕棿" v-model="model.inspectorSignatureTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeA" label="闄勫綍A HF缂栫爜"> - <a-input placeholder="璇疯緭鍏ラ檮褰旳 HF缂栫爜" v-model="model.hfCodeA" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeB" label="闄勫綍B HF缂栫爜"> - <a-input placeholder="璇疯緭鍏ラ檮褰旴 HF缂栫爜" v-model="model.hfCodeB" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeC" label="闄勫綍C HF缂栫爜"> - <a-input placeholder="璇疯緭鍏ラ檮褰旵 HF缂栫爜" v-model="model.hfCodeC" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeD" label="闄勫綍D HF缂栫爜"> - <a-input placeholder="璇疯緭鍏ラ檮褰旸 HF缂栫爜" v-model="model.hfCodeD" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="澶囨敞"> - <a-input placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" /> - </a-form-model-item> - + <j-modal :title="title" :width="1300" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen + @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴"> + <a-spin :spinning="spinning"> + <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="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/> + </a-form-model-item> + </a-col> + + <a-col :span="8"> + <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> + <technical-status-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" + @autocompleteForm="getDetailDataByOrderId" :allowClear="false"/> + </a-form-model-item> + </a-col> + + <a-col :span="8"> + <a-form-model-item prop="evaluationDate" label="璁″垝閴村畾鏃ユ湡"> + <a-date-picker v-model="model.evaluationDate" value-format="YYYY-MM-DD" :allowClear="false" + style="width: 100%"/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="24"> + <a-form-model-item :labelCol="{span:2}" :wrapperCol="{span:21}" label="澶囨敞"> + <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/> + </a-form-model-item> + </a-col> + </a-row> </a-form-model> + + <a-tabs default-active-key="1" v-if="model.equipmentId"> + <a-tab-pane tab="瀹夊叏瑁呯疆妫�鏌�" key="1" v-if="detail.safetyEquipmentCheckList.length>0"> + <j-vxe-table ref="editableDetailTable1" rowNumber bordered keep-source :height="300" + :dataSource="detail.safetyEquipmentCheckList" :columns="detail.columns"/> + </a-tab-pane> + + <a-tab-pane tab="璁惧绮惧害妫�鏌�" key="2" v-if="detail.precisionCheckList.length>0"> + <j-vxe-table ref="editableDetailTable2" rowNumber bordered keep-source :height="300" + :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns"/> + </a-tab-pane> + + <a-tab-pane tab="鍏朵粬妫�鏌�" key="3" v-if="detail.otherCheckList.length>0"> + <j-vxe-table ref="editableDetailTable3" rowNumber bordered keep-source :height="300" + :dataSource="detail.otherCheckList" :columns="detail.columns"/> + </a-tab-pane> + </a-tabs> </a-spin> </j-modal> </template> <script> - import { httpAction } from '@/api/manage' - import moment from "moment" + import { httpAction, getAction } from '@/api/manage' + import TechnicalStatusEquipmentSelect from '../../equipment/modules/TechnicalStatusEquipmentSelect' + import { JVXETypes } from '@/components/jeecg/JVxeTable' + import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' export default { - name: "EamTechnicalStatusEvaluationOrderModal", - data () { + name: 'EamTechnicalStatusEvaluationOrderModal', + components: { + TechnicalStatusEquipmentSelect + }, + mixins: [JVxeTableModelMixin], + data() { return { - title:"鎿嶄綔", + title: '鎿嶄綔', visible: false, model: {}, labelCol: { xs: { span: 24 }, - sm: { span: 5 }, + sm: { span: 6 } }, wrapperCol: { xs: { span: 24 }, - sm: { span: 16 }, + sm: { span: 15 } }, - confirmLoading: false, - validatorRules:{ + spinning: false, + validatorRules: { + equipmentId: [{ required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }], + evaluationDate: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }] + }, + detail: { + safetyEquipmentCheckList: [], + precisionCheckList: [], + otherCheckList: [], + columns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: 'standardId', + key: 'standardId', + type: JVXETypes.hidden + }, + { + title: '椤圭洰搴忓彿', + key: 'itemCode', + type: JVXETypes.normal, + align: 'center', + width: 150 + }, + { + title: '妫�鏌ラ」鐩�', + key: 'itemName', + type: JVXETypes.normal, + align: 'center' + } + ], + precisionCheckColumns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: 'standardId', + key: 'standardId', + type: JVXETypes.hidden + }, + { + title: '椤圭洰搴忓彿', + key: 'itemCode', + type: JVXETypes.normal, + align: 'center', + width: 150 + }, + { + title: '妫�鏌ラ」鐩�', + key: 'itemName', + type: JVXETypes.normal, + align: 'center' + }, + { + title: '妫�鏌ュ瓙椤圭洰', + key: 'subItemName', + type: JVXETypes.normal, + align: 'center' + }, + { + title: '鍏佸樊鍊�', + key: 'toleranceValue', + type: JVXETypes.normal, + align: 'center' + } + ] }, url: { - add: "/eam/eamTechnicalStatusEvaluationOrder/add", - edit: "/eam/eamTechnicalStatusEvaluationOrder/edit", - }, + add: '/eam/eamTechnicalStatusEvaluationOrder/add', + edit: '/eam/eamTechnicalStatusEvaluationOrder/edit', + detail: '/eam/eamTechnicalStatusEvaluationStandardDetail/queryList' + } } }, - created () { - }, methods: { - add () { + add() { //鍒濆鍖栭粯璁ゅ�� - this.edit({}); + this.edit({}) }, - edit (record) { - this.model = Object.assign({}, record); - this.visible = true; + + edit(record) { + this.model = Object.assign({}, record) + this.visible = true }, - close () { - this.$emit('close'); - this.visible = false; - this.$refs.form.clearValidate(); - }, - handleOk () { - const that = this; - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - let httpurl = ''; - let method = ''; - if(!this.model.id){ - httpurl+=this.url.add; - method = 'post'; - }else{ - httpurl+=this.url.edit; - method = 'put'; + + getDetailDataByOrderId({ id }) { + this.model.standardId = id + this.spinning = true + getAction(this.url.detail, { standardId: id }) + .then(res => { + if (res.success) { + this.detail.safetyEquipmentCheckList = res.result.filter(item => item.checkCategory == 'SAFETY_EQUIPMENT_CHECK') + this.detail.precisionCheckList = res.result.filter(item => item.checkCategory == 'PRECISION_CHECK') + this.detail.otherCheckList = res.result.filter(item => item.checkCategory == 'OTHER_CHECK') } - httpAction(httpurl,this.model,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.$emit('ok'); - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - that.close(); + }) + .finally(() => { + this.spinning = false + }) + }, + + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = that.spinning = true + let httpUrl = '' + let method = '' + if (!this.model.id) { + httpUrl += this.url.add + method = 'post' + } else { + httpUrl += this.url.edit + method = 'put' + } + this.model.tableDetailList = [...this.detail.safetyEquipmentCheckList, ...this.detail.precisionCheckList, ...this.detail.otherCheckList] + httpAction(httpUrl, this.model, method) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.$emit('ok') + that.close() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }).finally(() => { + that.confirmLoading = that.spinning = false }) - }else{ - return false; + } else { + return false } }) }, - handleCancel () { + + handleCancel() { this.close() }, - + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + } } } </script> -- Gitblit v1.9.3