From 19aff1ac87030b21d2b01cdca5d5604c840ba7c0 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期一, 21 七月 2025 21:36:31 +0800 Subject: [PATCH] 维修工单 --- src/views/eam/repair/EamReportRepairList.vue | 333 ++++++++++++++++++++++++++----------------------------- 1 files changed, 159 insertions(+), 174 deletions(-) diff --git a/src/views/eam/repair/EamReportRepairList.vue b/src/views/eam/repair/EamReportRepairList.vue index 96999bc..674f996 100644 --- a/src/views/eam/repair/EamReportRepairList.vue +++ b/src/views/eam/repair/EamReportRepairList.vue @@ -1,69 +1,44 @@ <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.equipmentId"/>--> - <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="queryParam.equipmentId"/> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> + <a-form-item label="缁熶竴缂栫爜"> + <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="queryParam.equipmentId"/> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24" v-if="isDisplayOperation"> + <a-col :xl="4" :lg="6" :md="8" :sm="12"> <a-form-item label="鎶ヤ慨鐘舵��"> - <a-select placeholder="璇烽�夋嫨鎶ヤ慨鐘舵��" v-model="queryParam.reportStatus" allow-clear> - <a-select-option v-for="item in report_repair_status_list" :key="item.value">{{ item.label }} - </a-select-option> - </a-select> + <j-dict-select-tag dict-code="report_repair_status" placeholder="璇烽�夋嫨鎶ヤ慨鐘舵��" + v-model="queryParam.reportStatus"/> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鏁呴殰鎻忚堪"> - <a-input placeholder="璇疯緭鍏ユ晠闅滄弿杩�" v-model="queryParam.faultDescription" allow-clear/> - </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-range-picker showTime v-model="faultTimeRange" value-format="YYYY-MM-DD HH:mm:ss" - @change="handleTimeRangeChange" + <a-range-picker v-model="queryParam.dates" value-format="YYYY-MM-DD" @change="handleTimeRangeChange" style="width: 100%"/> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="4" :lg="6" :md="8" :sm="12"> <a-form-item label="鏄惁鍋滄満"> - <a-radio-group v-model="queryParam.breakdownFlag"> - <a-radio v-for="item in breakdown_flag_list" :value="item.value">{{ item.label }}</a-radio> - </a-radio-group> + <j-dict-select-tag type="radio" v-model="queryParam.breakdownFlag" dict-code="yn"/> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - - </template> <a-col :xl="6" :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 @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> <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator" v-if="isDisplayOperation"> - <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-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -85,68 +60,63 @@ <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,type:isDisplayOperation?'checkbox':'radio',getCheckboxProps:getCheckboxProps}" - @change="handleTableChange"> - - <template slot="imageFiles" slot-scope="text, record" v-if="text"> - <a @click="handlePreviewImages(record)">棰勮</a> + <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" + :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:isDisplayOperation?'checkbox':'radio',getCheckboxProps:getCheckboxProps}" + @change="handleTableChange"> + <!--缁熶竴缂栫爜--> + <template slot="equipmentCode" slot-scope="text,record"> + <a href="#" @click="navigateTo('EamRepairOrderList')">{{text}}</a> </template> - <span slot="action" slot-scope="text, record" v-if="record.reportStatus=='WAIT_REPAIR'"> + <!--鏄惁鍔犲伐--> + <template slot="isProcessed" slot-scope="text,record"> + <a href="#" @click="navigateTo('EamReportProductHazardsList')" :disabled="!Boolean(+text)">{{record.isProcessed_dictText}}</a> + </template> + + <!--鏄惁鍋滄満--> + <template slot="breakdownFlag" slot-scope="text"> + <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/> + </template> + + <!--璁惧浜嬫晠--> + <template slot="isAccidentsRegister" slot-scope="text,record"> + <a href="#" @click="navigateTo('EamReportAccidentsRegisterList')" :disabled="!Boolean(+text)">{{record.isAccidentsRegister_dictText}}</a> + </template> + + <!--鍙樺姩鍥犵礌--> + <template slot="variableFactors" slot-scope="text"> + <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/> + </template> + + <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">缂栬緫</a> <a-divider type="vertical"/> - <a @click="handleAssign(record)" >鎸囨淳</a> - - <a-divider type="vertical" /> - - <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleDelete(record.id)" > + <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleAbolish(record.id)"> <a>浣滃簾</a> </a-popconfirm> </span> - </a-table> </div> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamReportRepair-modal ref="modalForm" :breakdownFlagList="breakdown_flag_list" :faultReasonList="faultReasonList" - @ok="modalFormOk"/> - <!-- 鍥剧墖棰勮寮圭獥 --> - <images-preview-modal ref="imagesPreviewModalRef" :imageListUrl="currentImageListUrl"/> - <!--鎸囨淳鎶ヤ慨寮圭獥--> - <assign-repair-report-modal ref="assignRepairReportModalRef" @ok="modalFormOk"/> + <eamReportRepair-modal ref="modalForm" @ok="modalFormOk"/> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' import EamReportRepairModal from './modules/EamReportRepairList/EamReportRepairModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' - import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' - import ImagesPreviewModal from '@views/eam/repair/modules/ImagesPreviewModal.vue' import { getAction } from '@/api/manage' - import AssignRepairReportModal from './modules/EamReportRepairList/AssignRepairReportModal' - export default { name: 'EamReportRepairList', mixins: [JeecgListMixin], components: { - AssignRepairReportModal, - ImagesPreviewModal, LxSearchEquipmentSelect, EamReportRepairModal }, @@ -173,92 +143,128 @@ align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 - } + }, + fixed: 'left' }, { - title: '璁惧缂栧彿', + title: '缁熶竴缂栫爜', align: 'center', dataIndex: 'equipmentCode', - width: 200 + fixed: 'left', + scopedSlots: { customRender: 'equipmentCode' } }, { title: '璁惧鍚嶇О', align: 'center', dataIndex: 'equipmentName', - width: 200 + fixed: 'left' + }, + { + title: '璁惧鍨嬪彿', + align: 'center', + dataIndex: 'equipmentModel', + fixed: 'left' }, { title: '鎶ヤ慨鐘舵��', align: 'center', dataIndex: 'reportStatus_dictText', - width: 100 - }, - { - title: '鏁呴殰绠�绉�', - align: 'center', - dataIndex: 'faultName', - width: 100 - }, - { - title: '鏁呴殰鍒嗙被', - align: 'center', - dataIndex: 'faultType_dictText', - width: 100 - }, - { - title: '鏁呴殰鎻忚堪', - align: 'center', - dataIndex: 'faultDescription', - width: 200 + fixed: 'left' }, { title: '鏁呴殰寮�濮嬫椂闂�', align: 'center', - dataIndex: 'faultStartTime', - width: 200 + dataIndex: 'faultStartTime' + }, + { + title: '鏁呴殰鐜拌薄', + align: 'center', + dataIndex: 'faultDescription' }, { title: '鏄惁鍋滄満', align: 'center', - dataIndex: 'breakdownFlag_dictText', - width: 100 + dataIndex: 'breakdownFlag', + scopedSlots: { customRender: 'breakdownFlag' } }, { - title: '鎶ヤ慨鍥剧墖', + title: '鏄惁鍔犲伐', align: 'center', - dataIndex: 'imageFiles', - scopedSlots: { customRender: 'imageFiles' }, - width: 100 + dataIndex: 'isProcessed', + scopedSlots: { customRender: 'isProcessed' } }, { - title: '澶囨敞', + title: '鎵规鍙�', align: 'center', - dataIndex: 'remark' + dataIndex: 'batchNumber' + }, + { + title: '鍔犲伐闆朵欢鍙�', + align: 'center', + dataIndex: 'processingPart' + }, + { + title: '浠舵暟', + align: 'center', + dataIndex: 'quantity' + }, + { + title: '璁惧浜嬫晠', + align: 'center', + dataIndex: 'isAccidentsRegister', + scopedSlots: { customRender: 'isAccidentsRegister' } + }, + { + title: '搴熷搧浠跺彿', + align: 'center', + dataIndex: 'scrapPartNumber' + }, + { + title: '搴熷搧浠舵暟', + align: 'center', + dataIndex: 'scrapPartQuantity' + }, + { + title: '搴熷搧浠峰��', + align: 'center', + dataIndex: 'scrapPartValue' + }, + { + title: '鍙樺姩鍥犵礌', + align: 'center', + dataIndex: 'variableFactors', + scopedSlots: { customRender: 'variableFactors' } + }, + { + title: '鍙樺姩鍥犵礌鍐呭', + align: 'center', + dataIndex: 'variableFactorsValue_dictText' + }, + { + title: '浜嬫晠鐜拌薄', + align: 'center', + dataIndex: 'accidentPhenomenon' + }, + { + title: '閲囧彇鎺柦', + align: 'center', + dataIndex: 'measure' + }, + { + title: '閫犳垚缁撴灉', + align: 'center', + dataIndex: 'causingResults' } ], - breakdown_flag_list: [], - report_repair_status_list: [], faultTimeRange: [], - faultReasonList: [], - currentImageListUrl: '', url: { list: '/eam/eamReportRepair/list', - delete: '/eam/eamReportRepair/abolish', - deleteBatch: '/eam/eamReportRepair/abolishBatch', - exportXlsUrl: 'eam/eamReportRepair/exportXls', - importExcelUrl: 'eam/eamReportRepair/importExcel', - faultReasonList: '/eam/equipmentFaultReason/list' + abolish: '/eam/eamReportRepair/abolish', + abolishBatch: '/eam/eamReportRepair/abolishBatch' } } }, - computed: { - importExcelUrl: function() { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` - } - }, created() { - this.initDictData('breakdown_flag') - this.initDictData('report_repair_status') if (!this.isDisplayOperation) this.queryParam = Object.assign({}, this.propsQueryParam) else { const operationColumn = { @@ -266,43 +272,14 @@ dataIndex: 'action', align: 'center', scopedSlots: { customRender: 'action' }, - width: 200 + width: 200, + fixed: 'right' } this.columns = [...this.columns, operationColumn] - this.getFaultReasonListByApi() } this.loadData(1) }, methods: { - /** - * 鑾峰彇鏁版嵁瀛楀吀鍊� - * @param dictCode 鏁版嵁瀛楀吀瀵瑰簲璁板綍缂栫爜 - */ - initDictData(dictCode) { - // //浼樺厛浠庣紦瀛樹腑璇诲彇瀛楀吀閰嶇疆 - if (getDictItemsFromCache(dictCode)) { - this[dictCode + '_list'] = getDictItemsFromCache(dictCode) - return - } - //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁� - ajaxGetDictItems(dictCode, null).then((res) => { - if (res.success) { - this[dictCode + '_list'] = res.result - return - } - }) - }, - - // 璋冪敤鎺ュ彛鑾峰彇鏁呴殰鍘熷洜鍒楄〃 - getFaultReasonListByApi() { - const that = this - getAction(this.url.faultReasonList) - .then(res => { - console.log('res', res) - that.faultReasonList = res.result.records - }) - }, - /** * 鏁呴殰鏃堕棿閫夋嫨鍣ㄥ彉鍖栨椂瑙﹀彂 * @param valueArray @@ -310,24 +287,6 @@ handleTimeRangeChange(valueArray) { this.queryParam.startTime = valueArray[0] this.queryParam.endTime = valueArray[1] - }, - - /** - * 棰勮鍥剧墖 - * @param imageFiles 琛ㄦ牸琛屽浘鐗囧湴鍧� - */ - handlePreviewImages({ imageFiles }) { - this.currentImageListUrl = imageFiles - this.$refs.imagesPreviewModalRef.visible = true - }, - - /** - * 鎸囨淳鎶ヤ慨鍗� - * @param record 琛ㄦ牸琛屼俊鎭� - */ - handleAssign(record) { - this.$refs.assignRepairReportModalRef.visible = true - this.$refs.assignRepairReportModalRef.model = Object.assign({}, { id: record.id }) }, getCheckboxProps(record) { @@ -338,15 +297,41 @@ } }, + /** + * 鐐瑰嚮浣滃簾鏃惰Е鍙� + * @param id + */ + handleAbolish(id) { + var that = this + this.loading = true + getAction(that.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 + }) + this.loading = false + } + }) + }, + + // 璺宠浆椤甸潰 + navigateTo(href) { + this.$router.push('/eam/repair/' + href) + }, + searchReset() { if (this.isDisplayOperation) this.queryParam = {} else this.queryParam = Object.assign({}, this.propsQueryParam) - this.faultTimeRange = [] this.loadData(1) } } } -</script> -<style scoped> - @import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file -- Gitblit v1.9.3