From 80a8050560fdd4cc18aee57c3ed176a9019dec2a Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期一, 21 七月 2025 21:33:25 +0800 Subject: [PATCH] 1、维修工单与故障报修开发 --- /dev/null | 155 ---- src/views/eam/maintenance/EamInspectionOrderList.vue | 31 src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue | 364 ++++++---- src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue | 609 +++++++----------- src/views/eam/repair/EamRepairOrderList.vue | 230 +++--- src/views/eam/repair/modules/EamRepairOrderList/EamRepairOrderModal.vue | 202 ++++++ src/views/eam/repair/EamReportRepairList.vue | 333 ++++----- src/views/eam/base/modules/EamMaintenanceStandardModal.vue | 2 src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue | 2 src/views/flowable/workflow/FlowTodo.vue | 17 src/views/eam/base/EamMaintenanceStandardList.vue | 21 src/views/eam/equipment/modules/LxSearchEquipmentSelect.vue | 7 12 files changed, 963 insertions(+), 1,010 deletions(-) diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue index be2b0cd..e1e7223 100644 --- a/src/views/eam/base/EamMaintenanceStandardList.vue +++ b/src/views/eam/base/EamMaintenanceStandardList.vue @@ -50,15 +50,16 @@ @change="handleImportExcel"> <a-button v-has="'standard:pointInspection'" type="primary" icon="import">鐐规鏍囧噯瀵煎叆</a-button> </a-upload> - <a-button v-has="'standard:pointInspectionDownload'" type="primary" icon="download" @click="handleTemplateXlsDownload(url.inspectionXlsDownloadUrl)"> + <a-button v-has="'standard:pointInspectionDownload'" type="primary" icon="download" + @click="handleTemplateXlsDownload(url.inspectionXlsDownloadUrl)"> 鐐规鏍囧噯妯℃澘涓嬭浇 </a-button> <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="secondMaintenanceImportExcel" @change="handleImportExcel"> - <a-button v-has="'standard:secondMaintenance'" type="primary" icon="import">浜屼繚鏍囧噯瀵煎叆</a-button> + <a-button v-has="'standard:secondMaintenance'" type="primary" icon="import">浜屼繚鏍囧噯瀵煎叆</a-button> </a-upload> - <a-button v-has="'standard:secondMaintenanceDownload'" type="primary" icon="download" + <a-button v-has="'standard:secondMaintenanceDownload'" type="primary" icon="download" @click="handleTemplateXlsDownload(url.secondMaintenanceXlsDownloadUrl)">浜屼繚鏍囧噯妯℃澘涓嬭浇 </a-button> <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" @@ -66,7 +67,8 @@ @change="handleImportExcel"> <a-button v-has="'standard:ThirdMaintenance'" type="primary" icon="import">涓変繚鏍囧噯瀵煎叆</a-button> </a-upload> - <a-button v-has="'standard:ThirdMaintenanceDownload'" type="primary" icon="download" @click="handleTemplateXlsDownload(url.thirdMaintenanceXlsDownloadUrl)"> + <a-button v-has="'standard:ThirdMaintenanceDownload'" type="primary" icon="download" + @click="handleTemplateXlsDownload(url.thirdMaintenanceXlsDownloadUrl)"> 涓変繚鏍囧噯妯℃澘涓嬭浇 </a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> @@ -91,11 +93,12 @@ </div> <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" - :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" + :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :customRow='clickThenSelect' @change="handleTableChange"> <span slot="action" slot-scope="text, record"> - <a v-has="'standard:upgrade'" v-if="record.standardStatus === 'START'" @click.stop="handleUpgrade(record)">鍗囩増</a> + <a v-has="'standard:upgrade'" v-if="record.standardStatus === 'START'" + @click.stop="handleUpgrade(record)">鍗囩増</a> <template v-if="record.standardStatus === 'WAIT_SUBMIT'"> <a v-has="'standard:edit'" @click.stop="handleEdit(record)">缂栬緫</a> @@ -110,7 +113,7 @@ <a-divider v-has="'standard:saveFlow'" type="vertical"/> <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a v-has="'standard:del'" @click.stop="event=>event.stopPropagation()">鍒犻櫎</a> + <a v-has="'standard:del'" @click.stop="event=>event.stopPropagation()">鍒犻櫎</a> </a-popconfirm> </template> @@ -286,7 +289,9 @@ title: '鎿嶄綔', dataIndex: 'action', align: 'center', - scopedSlots: { customRender: 'action' } + scopedSlots: { customRender: 'action' }, + width: 200, + fixed: 'right' } this.columns = [...this.columns, operationColumn] this.loadData(1) diff --git a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue index 2504bf7..622596d 100644 --- a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue +++ b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue @@ -1,5 +1,5 @@ <template> - <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen centered + <j-modal :title="title" :width="1200" :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"> diff --git a/src/views/eam/equipment/modules/LxSearchEquipmentSelect.vue b/src/views/eam/equipment/modules/LxSearchEquipmentSelect.vue index f8ccb7e..b5c223c 100644 --- a/src/views/eam/equipment/modules/LxSearchEquipmentSelect.vue +++ b/src/views/eam/equipment/modules/LxSearchEquipmentSelect.vue @@ -11,7 +11,7 @@ style="width: 100%" :filterOption="false" @change="handleAsyncChange" - allowClear + :allowClear="allowClear" :notFoundContent="loading ? undefined : null" mode="default" > @@ -43,6 +43,11 @@ default: 20, required: false }, + allowClear:{ + type:Boolean, + default:()=>true, + required:false + } }, data() { this.loadData = debounce(this.loadData, 800)//娑堟姈 diff --git a/src/views/eam/maintenance/EamInspectionOrderList.vue b/src/views/eam/maintenance/EamInspectionOrderList.vue index b92f092..c8d5ae1 100644 --- a/src/views/eam/maintenance/EamInspectionOrderList.vue +++ b/src/views/eam/maintenance/EamInspectionOrderList.vue @@ -304,20 +304,23 @@ handleAbolish(id) { var that = this - getAction(that.url.cancelInspectionOrder, { id: 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 = true + getAction(that.url.cancelInspectionOrder, { 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 + } + }) }, batchZf(type) { diff --git a/src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue b/src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue index 71ba4f5..225e683 100644 --- a/src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue +++ b/src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue @@ -14,7 +14,7 @@ <!-- 淇濆吇鏃ユ湡--> <template v-slot:maintenanceDate="props"> - <a-date-picker v-model="props.row.maintenanceDate" value-format="YYYY-MM-DD"/> + <a-date-picker v-model="props.row.maintenanceDate" value-format="YYYY-MM-DD" :allow-clear="false"/> </template> <!-- 鎿嶄綔--> diff --git a/src/views/eam/repair/EamRepairOrderList.vue b/src/views/eam/repair/EamRepairOrderList.vue index 8601164..d792dc7 100644 --- a/src/views/eam/repair/EamRepairOrderList.vue +++ b/src/views/eam/repair/EamRepairOrderList.vue @@ -6,35 +6,26 @@ <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.repairCode"></a-input> + <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"> - <a-form-item label="璁惧缂栧彿"> - <!--<a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentId"/>--> - <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="queryParam.equipmentId"/> + <a-form-item label="宸ュ崟鍙�"> + <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.repairCode"></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鍗曟嵁鐘舵��"> - <a-select placeholder="璇烽�夋嫨鍗曟嵁鐘舵��" v-model="queryParam.repairStatus" allow-clear> - <a-select-option v-for="item in report_repair_status_list" :key="item.value">{{ item.label }} - </a-select-option> - </a-select> + <a-form-item label="缁翠慨鐘舵��"> + <j-dict-select-tag placeholder="璇烽�夋嫨缁翠慨鐘舵��" v-model="queryParam.repairStatus" + dict-code="repair_status"/> </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> @@ -44,8 +35,6 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator" v-if="isDisplayOperation"> - <a-button @click="handleOpenReceiveFaultModal" type="primary" icon="plus">棰嗗彇</a-button> - <!--<a-button type="primary" icon="download" @click="handleExportXls('缁翠慨宸ュ崟')">瀵煎嚭</a-button>--> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -67,48 +56,45 @@ <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" - :scroll="{x:'max-content'}" - > + <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" + :pagination="ipagination" :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange" + :scroll="{x:'max-content'}"> <span slot="action" slot-scope="text, record"> + <a @click="handleFillIn(record)">濉姤</a> + <a-divider type="vertical"/> + <a-popconfirm title="纭畾鎻愪氦鍚�?" @confirm="() => handleSubmit(record.id)"> + <a>鎻愪氦</a> + </a-popconfirm> + <a-divider type="vertical"/> <a @click="handleDetail(record)">璇︽儏</a> </span> </a-table> </div> <!-- table鍖哄煙-end --> - <receive-fault-modal ref="receiveFaultModalRef" @ok="loadData"/> + <!--缁翠慨宸ュ崟濉姤绐楀彛--> + <eam-repair-order-modal ref="modalForm" @ok="modalFormOk"/> + <!--缁翠慨宸ュ崟瀹℃壒绐楀彛--> <repair-order-approval-modal ref="repairOrderApprovalModal" :selectShenpiData="selectRepairOrderData"/> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import ReceiveFaultModal from './modules/EamRepairOrderList/ReceiveFaultModal' - import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect' import RepairOrderApprovalModal from '../../flowable/workflow/repairOrder/RepairOrderApprovalModal' + import EamRepairOrderModal from './modules/EamRepairOrderList/EamRepairOrderModal' + import { getAction } from '@/api/manage' export default { name: 'EamRepairOrderList', mixins: [JeecgListMixin], components: { + EamRepairOrderModal, RepairOrderApprovalModal, - LxSearchEquipmentSelect, - ReceiveFaultModal + LxSearchEquipmentSelect }, props: { isDisplayOperation: { @@ -131,41 +117,36 @@ customRender: function(t, r, index) { return parseInt(index) + 1 }, - fixed: 'left', - }, - { - title: '宸ュ崟缂栧彿', - align: 'center', - dataIndex: 'repairCode', - width: 120, fixed: 'left' }, { - title: '璁惧缂栧彿', + title: '缁熶竴缂栫爜', align: 'center', dataIndex: 'equipmentCode', - width: 120, fixed: 'left' }, { title: '璁惧鍚嶇О', align: 'center', dataIndex: 'equipmentName', - width: 200, fixed: 'left' }, { - title: '鐘舵��', + title: '璁惧鍨嬪彿', align: 'center', - dataIndex: 'repairStatus_dictText', - fixed: 'left', - width: 100 + dataIndex: 'equipmentModel', + fixed: 'left' }, { - title: '缁翠慨璐熻矗浜�', + title: '缁翠慨鐘舵��', align: 'center', - dataIndex: 'repairer', - width: 100 + dataIndex: 'repairStatus_dictText', + fixed: 'left' + }, + { + title: '宸ュ崟鍙�', + align: 'center', + dataIndex: 'repairCode' }, { title: '缁翠慨寮�濮嬫椂闂�', @@ -180,106 +161,104 @@ width: 200 }, { + title: '缁翠慨纭', + align: 'center', + dataIndex: 'repairConfirm_dictText' + }, + { + title: '缁翠慨纭鏃堕棿', + align: 'center', + dataIndex: 'repairConfirmTime', + width: 200 + }, + { title: '鏁呴殰鍘熷洜', align: 'center', dataIndex: 'faultReason' }, { - title: '缁翠慨缁撴灉鎻忚堪', + title: '鏁呴殰鍒嗘瀽', align: 'center', - dataIndex: 'repairDescription' - // width: 300 + dataIndex: 'faultAnalysis' + }, + { + title: '鎺掓晠杩囩▼', + align: 'center', + dataIndex: 'faultProcess' + }, + { + title: '棰勯槻鎺柦', + align: 'center', + dataIndex: 'faultPrevent' + }, + { + title: '鎿嶄綔宸�', + align: 'center', + dataIndex: 'confirmer_dictText' + }, + { + title: '鎿嶄綔宸ョ‘璁ゆ椂闂�', + align: 'center', + dataIndex: 'confirmTime', + width: 200 } - // { - // title: '缁翠慨鍥剧墖', - // align: 'center', - // dataIndex: 'imageFiles', - // width: 100 - // }, - // { - // title: '鏄惁濮斿', - // align: 'center', - // dataIndex: 'outsourcedFlag', - // width: 100 - // }, - // { - // title: '濮斿缁翠慨鎻忚堪', - // align: 'center', - // dataIndex: 'outsourcedRepairDecription', - // width: 300 - // }, - // { - // title: '濮斿缁翠慨寮�濮嬫椂闂�', - // align: 'center', - // dataIndex: 'outsourcedStartTime', - // width: 200 - // }, - // { - // title: '濮斿缁翠慨缁撴潫鏃堕棿', - // align: 'center', - // dataIndex: 'outsourcedEndTime', - // width: 200 - // }, - // { - // title: '濮斿璐熻矗浜�', - // align: 'center', - // dataIndex: 'outsourcedPerson', - // width: 100 - // }, ], - report_repair_status_list: [], selectRepairOrderData: {}, url: { list: '/eam/eamRepairOrder/list', + submit: '/eam/eamRepairOrder/submit', delete: '/eam/eamRepairOrder/delete', - deleteBatch: '/eam/eamRepairOrder/deleteBatch', - exportXlsUrl: 'eam/eamRepairOrder/exportXls' + deleteBatch: '/eam/eamRepairOrder/deleteBatch' } - } - }, - computed: { - importExcelUrl: function() { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` } }, created() { if (!this.isDisplayOperation) { return } - this.initDictData('report_repair_status') const operationColumn = { title: '鎿嶄綔', dataIndex: 'action', align: 'center', - width: 100, - scopedSlots: { customRender: 'action' } + width: 200, + scopedSlots: { customRender: 'action' }, + fixed: 'right' } this.columns = [...this.columns, operationColumn] this.loadData(1) }, methods: { /** - * 鑾峰彇鏁版嵁瀛楀吀鍊� - * @param dictCode 鏁版嵁瀛楀吀瀵瑰簲璁板綍缂栫爜 + * 鐐瑰嚮濉姤鏃惰Е鍙� + * @param record */ - 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 - } - }) + handleFillIn(record) { + this.$refs.modalForm.title = '濉姤' + this.$refs.modalForm.handleFillIn(record) }, - // 寮�鍚鍙栨晠闅滀繚淇崟寮圭獥 - handleOpenReceiveFaultModal() { - this.$refs.receiveFaultModalRef.visible = true + /** + * 鐐瑰嚮鎻愪氦鏃惰Е鍙� + * @param id + */ + handleSubmit(id) { + this.loading = true + getAction(this.url.submit, { id }) + .then(res => { + if (res.success) { + this.$notification.success({ + message: '娑堟伅', + description: res.message + }) + this.loadData() + } else { + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + this.loading = false + } + }) }, /** @@ -296,7 +275,4 @@ } } } -</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/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 diff --git a/src/views/eam/repair/modules/EamRepairOrderList/EamRepairOrderModal.vue b/src/views/eam/repair/modules/EamRepairOrderList/EamRepairOrderModal.vue new file mode 100644 index 0000000..70eaaa5 --- /dev/null +++ b/src/views/eam/repair/modules/EamRepairOrderList/EamRepairOrderModal.vue @@ -0,0 +1,202 @@ +<template> + <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk" + @cancel="handleCancel" cancelText="鍏抽棴" centered> + <a-spin :spinning="spinning"> + <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-row> + <a-col :span="customSpan"> + <a-form-model-item label="缁翠慨寮�濮嬫椂闂�" prop="actualStartTime" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker show-time v-model="model.actualStartTime" :allowClear="false" + value-format="YYYY-MM-DD HH:mm:ss" + style="width:100%"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="缁翠慨缁撴潫鏃堕棿" prop="actualEndTime" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker show-time v-model="model.actualEndTime" :allowClear="false" + value-format="YYYY-MM-DD HH:mm:ss" + style="width:100%"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="鏁呴殰鍘熷洜"> + <a-textarea placeholder="璇疯緭鍏ユ晠闅滃師鍥�" v-model="model.faultReason"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="鏁呴殰鍒嗘瀽"> + <a-textarea placeholder="璇疯緭鍏ユ晠闅滃垎鏋�" v-model="model.faultAnalysis"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="鎺掓晠杩囩▼"> + <a-textarea placeholder="璇疯緭鍏ユ帓鏁呰繃绋�" v-model="model.faultProcess"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="棰勯槻鎺柦"> + <a-textarea placeholder="璇疯緭鍏ラ闃叉帾鏂�" v-model="model.faultPrevent"/> + </a-form-model-item> + </a-col> + </a-row> + + <j-vxe-table ref="editableDetailTable" rowNumber rowSelection bordered alwaysEdit toolbar + :toolbarConfig="detail.toolbarConfig" keep-source :height="300" + :dataSource="detail.dataSource" :columns="detail.columns"> + + </j-vxe-table> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> + import { postAction, getAction } from '@/api/manage' + import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + import { JVXETypes } from '@comp/jeecg/JVxeTable' + + export default { + name: 'EamRepairOrderModal', + components: { LxSearchEquipmentSelect }, + data() { + return { + title: '鎿嶄綔', + visible: false, + model: {}, + customSpan: 12, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + confirmLoading: false, + spinning: false, + validatorRules: { + actualStartTime: [{ required: true, message: '璇烽�夋嫨缁翠慨寮�濮嬫椂闂�', trigger: 'change' }], + actualEndTime: [{ required: true, message: '璇烽�夋嫨缁翠慨缁撴潫鏃堕棿', trigger: 'change' }] + }, + detail: { + dataSource: [], + columns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: '缁翠慨浜�', + key: 'repairUser', + align: 'center', + placeholder: '璇疯緭鍏�${title}', + type: JVXETypes.input, + validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] + }, + { + title: '鏄惁鏄富缁翠慨浜�', + key: 'repairPrimary', + align: 'center', + type: JVXETypes.select, + placeholder: '璇烽�夋嫨${title}', + dictCode: 'yn', + validateRules: [{ required: true, message: '璇烽�夋嫨${title}' }] + }, + { + title: '缁翠慨鏃堕暱', + key: 'repairDuration', + align: 'center', + placeholder: '璇疯緭鍏�${title}', + type: JVXETypes.inputNumber, + validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }] + }, + { + title: '澶囨敞', + key: 'remark', + align: 'center', + type: JVXETypes.textarea, + placeholder: '璇疯緭鍏�${title}' + } + ], + toolbarConfig: { + // prefix 鍓嶇紑锛泂uffix 鍚庣紑 + slot: ['prefix', 'suffix'], + // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 + btn: ['add', 'remove', 'clearSelection'] + } + }, + url: { + report: '/eam/eamRepairOrder/report', + detail: '/eam/eamRepairPerson/list' + } + } + }, + methods: { + handleFillIn(record) { + this.visible = true + this.model = Object.assign({}, record) + this.getRepairDetailByApi(record.id) + }, + + getRepairDetailByApi(repairId) { + this.spinning = true + this.detail.dataSource = [] + getAction(this.url.detail, { repairId }) + .then(res => { + if (res.success) this.detail.dataSource = res.result + }) + .finally(() => { + this.spinning = false + }) + }, + + async handleOk() { + const errMap = await this.$refs.editableDetailTable.validateTable() + if (errMap) return + + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = that.spinning = true + + that.model.eamRepairPersonList = that.$refs.editableDetailTable.getTableData() + + postAction(that.url.report, that.model) + .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 + } + }) + }, + + close() { + this.$emit('close') + this.visible = false + if (this.$refs.form) this.$refs.form.clearValidate() + }, + + handleCancel() { + this.close() + } + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/repair/modules/EamRepairOrderList/ReceiveFaultModal.vue b/src/views/eam/repair/modules/EamRepairOrderList/ReceiveFaultModal.vue deleted file mode 100644 index 9c015c4..0000000 --- a/src/views/eam/repair/modules/EamRepairOrderList/ReceiveFaultModal.vue +++ /dev/null @@ -1,92 +0,0 @@ -<template> - <j-modal - :title="title" - width="80%" - :visible="visible" - :confirmLoading="confirmLoading" - switchFullscreen - @ok="handleOk" - @cancel="handleCancel" - centered - cancelText="鍏抽棴"> - <eam-report-repair-list ref="reportRepairListRef" :isDisplayOperation="false" - :propsQueryParam="{reportStatus:'WAIT_REPAIR'}"/> - </j-modal> -</template> - -<script> - import { httpAction } from '@api/manage' - import EamReportRepairList from '../../EamReportRepairList' - - export default { - name: 'ReceiveFaultModal', - components: { EamReportRepairList }, - data() { - return { - title: '鏁呴殰鎶ヤ慨鍗�', - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 8 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 12 } - }, - labelColLong: { - xs: { span: 24 }, - sm: { span: 4 } - }, - wrapperColLong: { - xs: { span: 24 }, - sm: { span: 18 } - }, - confirmLoading: false, - validatorRules: {}, - url: { - receiveFault: '/eam/eamRepairOrder/add' - } - } - }, - created() { - }, - methods: { - handleOk() { - const reportId = this.$refs.reportRepairListRef.selectedRowKeys[0] - if (!reportId) { - this.$notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨闇�棰嗗彇鐨勬晠闅滄姤淇崟' - }) - return - } - this.confirmLoading = true - httpAction(this.url.receiveFault, { reportId }, 'post') - .then((res) => { - if (res.success) { - this.$message.success(res.message) - this.$emit('ok') - } else { - this.$message.warning(res.message) - } - }) - .finally(() => { - this.confirmLoading = false - this.close() - }) - }, - handleCancel() { - this.close() - }, - close() { - this.$emit('close') - this.visible = false - } - } - } -</script> - -<style lang="less" scoped> - -</style> \ No newline at end of file diff --git "a/src/views/eam/repair/modules/EamRepairPersonModal.Style\043Drawer.vue" "b/src/views/eam/repair/modules/EamRepairPersonModal.Style\043Drawer.vue" deleted file mode 100644 index 445a428..0000000 --- "a/src/views/eam/repair/modules/EamRepairPersonModal.Style\043Drawer.vue" +++ /dev/null @@ -1,146 +0,0 @@ -<template> - <a-drawer - :title="title" - :width="800" - placement="right" - :closable="false" - @close="close" - :visible="visible"> - - <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="repairId" label="缁翠慨宸ュ崟Id"> - <a-input placeholder="璇疯緭鍏ョ淮淇伐鍗旾d" v-model="model.repairId" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairUser" label="缁翠慨浜�"> - <a-input placeholder="璇疯緭鍏ョ淮淇汉" v-model="model.repairUser" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairPrimary" label="鏄惁鏄富缁翠慨浜�;鏄� 鍚�"> - <a-input placeholder="璇疯緭鍏ユ槸鍚︽槸涓荤淮淇汉;鏄� 鍚�" v-model="model.repairPrimary" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDuration" label="缁翠慨鏃堕暱"> - <a-input placeholder="璇疯緭鍏ョ淮淇椂闀�" v-model="model.repairDuration" /> - </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> - - </a-form-model> - </a-spin> - - <div class="drawer-bootom-button"> - <a-button type="primary" @click="handleOk">纭畾</a-button> - <a-button type="primary" @click="handleCancel">鍙栨秷</a-button> - </div> - </a-drawer> -</template> - -<script> - import { httpAction } from '@/api/manage' - import moment from "moment" - - export default { - name: "EamRepairPersonModal", - data () { - return { - title:"鎿嶄綔", - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - - confirmLoading: false, - validatorRules:{ - }, - url: { - add: "/eam/eamRepairPerson/add", - edit: "/eam/eamRepairPerson/edit", - }, - } - }, - created () { - }, - methods: { - add () { - //鍒濆鍖栭粯璁ゅ�� - this.edit({}); - }, - 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'; - } - 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(); - }) - }else{ - return false; - } - }) - }, - handleCancel () { - this.close() - }, - - - } - } -</script> - -<style lang="less" scoped> - /**Button鎸夐挳闂磋窛*/ - .ant-btn { - margin-left: 30px; - margin-bottom: 30px; - float: right; - } - /**鎶藉眽鎸夐挳鏍峰紡*/ - .drawer-bootom-button { - position: absolute; - bottom: -8px; - width: 100%; - border-top: 1px solid #e8e8e8; - padding: 10px 16px; - text-align: right; - left: 0; - background: #fff; - border-radius: 0 0 2px 2px; - } -</style> \ No newline at end of file diff --git "a/src/views/eam/repair/modules/EamReportAccidentsRegisterModal.Style\043Drawer.vue" "b/src/views/eam/repair/modules/EamReportAccidentsRegisterModal.Style\043Drawer.vue" deleted file mode 100644 index 3b614f8..0000000 --- "a/src/views/eam/repair/modules/EamReportAccidentsRegisterModal.Style\043Drawer.vue" +++ /dev/null @@ -1,260 +0,0 @@ -<template> - <a-drawer - :title="title" - :width="800" - placement="right" - :closable="false" - @close="close" - :visible="visible"> - - <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="reportId" label="鎶ヤ慨ID"> - <a-input placeholder="璇疯緭鍏ユ姤淇甀D" v-model="model.reportId" /> - </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="operationCertificate" label="鏄惁鏈夎澶囨搷浣滆瘉;鏄� 鍚�"> - <a-input placeholder="璇疯緭鍏ユ槸鍚︽湁璁惧鎿嶄綔璇�;鏄� 鍚�" v-model="model.operationCertificate" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="powerOffRestart" label="鏄惁鏂數閲嶅惎"> - <a-input placeholder="璇疯緭鍏ユ槸鍚︽柇鐢甸噸鍚�" v-model="model.powerOffRestart" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchFirstPiece" label="鏄惁涓烘壒娆¢浠�"> - <a-input placeholder="璇疯緭鍏ユ槸鍚︿负鎵规棣栦欢" v-model="model.batchFirstPiece" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="variableFactors" label="鍙樺姩鍥犵礌;濉啓鏄垨鍚�"> - <a-input placeholder="璇疯緭鍏ュ彉鍔ㄥ洜绱�;濉啓鏄垨鍚�" v-model="model.variableFactors" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="variableFactorsValue" label="鍙樺姩鍥犵礌鍐呭;鍒�鍏锋洿鎹€�佸伐鑹烘洿鏀广�佸姞宸ョ▼搴忔洿鏀广�佸垁鍏疯ˉ鍋垮�兼洿鏀广��"> - <a-input placeholder="璇疯緭鍏ュ彉鍔ㄥ洜绱犲唴瀹�;鍒�鍏锋洿鎹€�佸伐鑹烘洿鏀广�佸姞宸ョ▼搴忔洿鏀广�佸垁鍏疯ˉ鍋垮�兼洿鏀广��" v-model="model.variableFactorsValue" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="executeNc" label="鎵ц绋嬪簭"> - <a-input placeholder="璇疯緭鍏ユ墽琛岀▼搴�" v-model="model.executeNc" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="accidentPhenomenon" label="浜嬫晠鐜拌薄"> - <a-input placeholder="璇疯緭鍏ヤ簨鏁呯幇璞�" v-model="model.accidentPhenomenon" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="measure" label="閲囧彇鎺柦"> - <a-input placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�" v-model="model.measure" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causingResults" label="閫犳垚缁撴灉"> - <a-input placeholder="璇疯緭鍏ラ�犳垚缁撴灉" v-model="model.causingResults" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmer" label="鎿嶄綔宸�"> - <a-input placeholder="璇疯緭鍏ユ搷浣滃伐" v-model="model.confirmer" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmTime" label="鎿嶄綔宸ョ‘璁ゆ椂闂�"> - <a-input placeholder="璇疯緭鍏ユ搷浣滃伐纭鏃堕棿" v-model="model.confirmTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="district" label="鍖洪暱"> - <a-input placeholder="璇疯緭鍏ュ尯闀�" v-model="model.district" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="districtTime" label="鍖洪暱纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ュ尯闀跨‘璁ゆ椂闂�" v-model="model.districtTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="centerDirector" label="涓績涓讳换"> - <a-input placeholder="璇疯緭鍏ヤ腑蹇冧富浠�" v-model="model.centerDirector" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="centerDirectorTime" label="涓績涓讳换纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ヤ腑蹇冧富浠荤‘璁ゆ椂闂�" v-model="model.centerDirectorTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportStartTime" label="缁翠慨寮�濮嬫椂闂�"> - <a-input placeholder="璇疯緭鍏ョ淮淇紑濮嬫椂闂�" v-model="model.reportStartTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentStatus" label="璁惧鐘舵��"> - <a-input placeholder="璇疯緭鍏ヨ澶囩姸鎬�" v-model="model.equipmentStatus" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causeAnalysis" label="鍘熷洜鍒嗘瀽"> - <a-input placeholder="璇疯緭鍏ュ師鍥犲垎鏋�" v-model="model.causeAnalysis" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectionResults" label="妫�鏌ョ粨鏋�"> - <a-input placeholder="璇疯緭鍏ユ鏌ョ粨鏋�" v-model="model.inspectionResults" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="takeSteps" label="閲囧彇鎺柦"> - <a-input placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�" v-model="model.takeSteps" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestionTakeSteps" label="寤鸿閲囧彇鎺柦"> - <a-input placeholder="璇疯緭鍏ュ缓璁噰鍙栨帾鏂�" v-model="model.suggestionTakeSteps" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestionTakeStepsTime" label="寤鸿閲囧彇鎺柦鏃堕棿"> - <a-input placeholder="璇疯緭鍏ュ缓璁噰鍙栨帾鏂芥椂闂�" v-model="model.suggestionTakeStepsTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirm" label="缁翠慨纭"> - <a-input placeholder="璇疯緭鍏ョ淮淇‘璁�" v-model="model.repairConfirm" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmComment" label="缁翠慨纭鎰忚"> - <a-input placeholder="璇疯緭鍏ョ淮淇‘璁ゆ剰瑙�" v-model="model.repairConfirmComment" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmTime" label="缁翠慨纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ョ淮淇‘璁ゆ椂闂�" v-model="model.repairConfirmTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeader" label="缁翠慨缁勯暱纭"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀跨‘璁�" v-model="model.repairGroupLeader" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeaderComment" label="缁翠慨缁勯暱鎰忚"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀挎剰瑙�" v-model="model.repairGroupLeaderComment" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeaderTime" label="缁翠慨缁勯暱纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀跨‘璁ゆ椂闂�" v-model="model.repairGroupLeaderTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrict" label="缁翠慨缁勯暱纭"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀跨‘璁�" v-model="model.repairDistrict" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrictComment" label="缁翠慨缁勯暱鎰忚"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀挎剰瑙�" v-model="model.repairDistrictComment" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrictTime" label="缁翠慨缁勯暱纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ョ淮淇粍闀跨‘璁ゆ椂闂�" v-model="model.repairDistrictTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="checkAgree" label="鍘熷洜鍒嗘瀽鏍稿;鍚屾剰銆佷笉鍚屾剰"> - <a-input placeholder="璇疯緭鍏ュ師鍥犲垎鏋愭牳瀵�;鍚屾剰銆佷笉鍚屾剰" v-model="model.checkAgree" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="disagreeReason" label="涓嶅悓鎰忓師鍥犲垎鏋�"> - <a-input placeholder="璇疯緭鍏ヤ笉鍚屾剰鍘熷洜鍒嗘瀽" v-model="model.disagreeReason" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rectificationMeasures" label="鏁存敼鎺柦"> - <a-input placeholder="璇疯緭鍏ユ暣鏀规帾鏂�" v-model="model.rectificationMeasures" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="accidentConclusion" label="浜嬫晠缁撹"> - <a-input placeholder="璇疯緭鍏ヤ簨鏁呯粨璁�" v-model="model.accidentConclusion" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirector" label="鎶�鏈礋璐d汉"> - <a-input placeholder="璇疯緭鍏ユ妧鏈礋璐d汉" v-model="model.technicalDirector" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorTime" label="鎶�鏈礋璐d汉纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ユ妧鏈礋璐d汉纭鏃堕棿" v-model="model.technicalDirectorTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorLeader" label="鎶�鏈富绠″绾ч瀵�"> - <a-input placeholder="璇疯緭鍏ユ妧鏈富绠″绾ч瀵�" v-model="model.technicalDirectorLeader" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorLeaderTime" label="鎶�鏈富绠″绾ч瀵肩‘璁ゆ椂闂�"> - <a-input placeholder="璇疯緭鍏ユ妧鏈富绠″绾ч瀵肩‘璁ゆ椂闂�" v-model="model.technicalDirectorLeaderTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorPart" label="涓荤閮ㄧ骇棰嗗"> - <a-input placeholder="璇疯緭鍏ヤ富绠¢儴绾ч瀵�" v-model="model.technicalDirectorPart" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorPartTime" label="涓荤閮ㄧ骇棰嗗纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ヤ富绠¢儴绾ч瀵肩‘璁ゆ椂闂�" v-model="model.technicalDirectorPartTime" /> - </a-form-model-item> - - </a-form-model> - </a-spin> - - <div class="drawer-bootom-button"> - <a-button type="primary" @click="handleOk">纭畾</a-button> - <a-button type="primary" @click="handleCancel">鍙栨秷</a-button> - </div> - </a-drawer> -</template> - -<script> - import { httpAction } from '@/api/manage' - import moment from "moment" - - export default { - name: "EamReportAccidentsRegisterModal", - data () { - return { - title:"鎿嶄綔", - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - - confirmLoading: false, - validatorRules:{ - }, - url: { - add: "/eam/eamReportAccidentsRegister/add", - edit: "/eam/eamReportAccidentsRegister/edit", - }, - } - }, - created () { - }, - methods: { - add () { - //鍒濆鍖栭粯璁ゅ�� - this.edit({}); - }, - 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'; - } - 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(); - }) - }else{ - return false; - } - }) - }, - handleCancel () { - this.close() - }, - - - } - } -</script> - -<style lang="less" scoped> - /**Button鎸夐挳闂磋窛*/ - .ant-btn { - margin-left: 30px; - margin-bottom: 30px; - float: right; - } - /**鎶藉眽鎸夐挳鏍峰紡*/ - .drawer-bootom-button { - position: absolute; - bottom: -8px; - width: 100%; - border-top: 1px solid #e8e8e8; - padding: 10px 16px; - text-align: right; - left: 0; - background: #fff; - border-radius: 0 0 2px 2px; - } -</style> \ No newline at end of file diff --git "a/src/views/eam/repair/modules/EamReportProductHazardsModal.Style\043Drawer.vue" "b/src/views/eam/repair/modules/EamReportProductHazardsModal.Style\043Drawer.vue" deleted file mode 100644 index 71d1414..0000000 --- "a/src/views/eam/repair/modules/EamReportProductHazardsModal.Style\043Drawer.vue" +++ /dev/null @@ -1,164 +0,0 @@ -<template> - <a-drawer - :title="title" - :width="800" - placement="right" - :closable="false" - @close="close" - :visible="visible"> - - <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :model="model" :rules="validatorRules"> - - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId" label="鎶ヤ慨ID"> - <a-input placeholder="璇疯緭鍏ユ姤淇甀D" v-model="model.reportId" /> - </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="confirmer" label="鎿嶄綔宸�"> - <a-input placeholder="璇疯緭鍏ユ搷浣滃伐" v-model="model.confirmer" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmTime" label="鎿嶄綔宸ョ‘璁ゆ椂闂�"> - <a-input placeholder="璇疯緭鍏ユ搷浣滃伐纭鏃堕棿" v-model="model.confirmTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productLoss" label="浜у搧鎹熷け鎯呭喌;鏄� 鍚�"> - <a-input placeholder="璇疯緭鍏ヤ骇鍝佹崯澶辨儏鍐�;鏄� 鍚�" v-model="model.productLoss" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qualityAnalysis" label="浜у搧鎹熷け璐ㄩ噺褰卞搷鍒嗘瀽"> - <a-input placeholder="璇疯緭鍏ヤ骇鍝佹崯澶辫川閲忓奖鍝嶅垎鏋�" v-model="model.qualityAnalysis" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologist" label="涓荤宸ヨ壓"> - <a-input placeholder="璇疯緭鍏ヤ富绠″伐鑹�" v-model="model.technologist" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologistTime" label="涓荤宸ヨ壓纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ヤ富绠″伐鑹虹‘璁ゆ椂闂�" v-model="model.technologistTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologistComment" label="涓荤宸ヨ壓纭鎰忚"> - <a-input placeholder="璇疯緭鍏ヤ富绠″伐鑹虹‘璁ゆ剰瑙�" v-model="model.technologistComment" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartment" label="閮ㄧ骇棰嗗"> - <a-input placeholder="璇疯緭鍏ラ儴绾ч瀵�" v-model="model.deputyDepartment" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartmentTime" label="閮ㄧ骇棰嗗纭鏃堕棿"> - <a-input placeholder="璇疯緭鍏ラ儴绾ч瀵肩‘璁ゆ椂闂�" v-model="model.deputyDepartmentTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartmentComment" label="閮ㄧ骇棰嗗纭鎰忚"> - <a-input placeholder="璇疯緭鍏ラ儴绾ч瀵肩‘璁ゆ剰瑙�" v-model="model.deputyDepartmentComment" /> - </a-form-model-item> - - </a-form-model> - </a-spin> - - <div class="drawer-bootom-button"> - <a-button type="primary" @click="handleOk">纭畾</a-button> - <a-button type="primary" @click="handleCancel">鍙栨秷</a-button> - </div> - </a-drawer> -</template> - -<script> - import { httpAction } from '@/api/manage' - import moment from "moment" - - export default { - name: "EamReportProductHazardsModal", - data () { - return { - title:"鎿嶄綔", - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - - confirmLoading: false, - validatorRules:{ - }, - url: { - add: "/eam/eamReportProductHazards/add", - edit: "/eam/eamReportProductHazards/edit", - }, - } - }, - created () { - }, - methods: { - add () { - //鍒濆鍖栭粯璁ゅ�� - this.edit({}); - }, - 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'; - } - 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(); - }) - }else{ - return false; - } - }) - }, - handleCancel () { - this.close() - }, - - - } - } -</script> - -<style lang="less" scoped> - /**Button鎸夐挳闂磋窛*/ - .ant-btn { - margin-left: 30px; - margin-bottom: 30px; - float: right; - } - /**鎶藉眽鎸夐挳鏍峰紡*/ - .drawer-bootom-button { - position: absolute; - bottom: -8px; - width: 100%; - border-top: 1px solid #e8e8e8; - padding: 10px 16px; - text-align: right; - left: 0; - background: #fff; - border-radius: 0 0 2px 2px; - } -</style> \ No newline at end of file diff --git a/src/views/eam/repair/modules/EamReportRepairList/AssignRepairReportModal.vue b/src/views/eam/repair/modules/EamReportRepairList/AssignRepairReportModal.vue deleted file mode 100644 index 5951a14..0000000 --- a/src/views/eam/repair/modules/EamReportRepairList/AssignRepairReportModal.vue +++ /dev/null @@ -1,74 +0,0 @@ -<template> - <j-modal :visible="visible" title="鎸囨淳鎶ヤ慨" :width="500" @ok="handleSubmit" @cancel="handleCancel" - :confirmLoading="confirmLoading"> - <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :model="model" :rules="validateRules" :labelCol="{span:4}" :wrapperCol="{span:18}"> - <a-form-model-item label="缁翠慨宸�" prop="repairer"> - <j-search-select-tag v-model="model.repairer" placeholder="璇烽�夋嫨缁翠慨宸�" - dict="sys_user,realname, username, del_flag=0 and post='PCR0002' and status=1"/> - </a-form-model-item> - </a-form-model> - </a-spin> - </j-modal> -</template> - -<script> - import { postAction } from '@/api/manage' - - export default { - name: 'AssignRepairReportModal', - data() { - return { - visible: false, - confirmLoading: false, - model: {}, - validateRules: { - repairer: [ - { required: true, message: '璇烽�夋嫨缁翠慨宸�' } - ] - }, - url: { - assign: '/eam/eamRepairOrder/assign' - } - } - }, - methods: { - handleSubmit() { - const that = this - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true - postAction(that.url.assign, that.model) - .then(res => { - if (res.success) { - that.$message.success(res.message) - that.handleCancel() - that.$emit('ok') - } else { - that.$message.warning(res.message) - } - }) - .finally(() => { - that.confirmLoading = false - }) - } else { - return false - } - }) - }, - - handleCancel() { - this.visible = false - } - } - } -</script> - -<style scoped> - .container { - display: flex; - flex-direction: column; - justify-content: center; - align-content: center; - } -</style> \ No newline at end of file diff --git a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue index cd3bea5..183bbde 100644 --- a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue +++ b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue @@ -1,62 +1,62 @@ <template> - <j-modal - :title="title" - fullscreen - :visible="visible" - centered - :confirmLoading="confirmLoading" - :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" - @ok="handleOk" - @cancel="handleCancel" - cancelText="鍏抽棴"> + <j-modal :title="title" fullscreen :visible="visible" :confirmLoading="confirmLoading" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="handleOk" @cancel="handleCancel" + cancelText="鍏抽棴"> <a-spin :spinning="confirmLoading"> <j-form-container :disabled="disableSubmit"> <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol" slot="detail"> <a-row> <a-col :span="customSpan"> - <a-form-model-item prop="equipmentId" label="璁惧缂栧彿"> - <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"/> - </a-form-model-item> - </a-col> - <a-col :span="customSpan"> - <a-form-model-item label="鏄惁鍔犲伐"> - <j-dict-select-tag dict-code="is_processed" type="radio" v-model="model.isProcessed" - @change="handleRadioChange($event,'faultStartTime,breakdownFlag,' + - 'faultDescription,batchNumber,processingPart,quantity')"/> - </a-form-model-item> - </a-col> - <a-col :span="customSpan"> - <a-form-model-item label="鏁呴殰寮�濮嬫椂闂�"> - <a-date-picker :disabled="!Boolean(+model.isProcessed)" v-model="model.faultStartTime" value-format="YYYY-MM-DD" style="width:100%"/> - </a-form-model-item> - </a-col> - <a-col :span="customSpan"> - <a-form-model-item label="鏄惁鍋滄満"> - <j-dict-select-tag :disabled="!Boolean(+model.isProcessed)" dict-code="yn" placeholder="璇烽�夋嫨鏄惁鍋滄満" v-model="model.breakdownFlag"/> + <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> + <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" :allowClear="false"/> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="customSpan"> - <a-form-model-item label="鏁呴殰鐜拌薄"> - <a-input :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ユ晠闅滅幇璞�" v-model="model.faultDescription"/> + <a-form-model-item label="鏄惁鍋滄満"> + <j-dict-select-tag type="radio" dict-code="yn" placeholder="璇烽�夋嫨鏄惁鍋滄満" v-model="model.breakdownFlag"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="鎵规鍙�"> - <a-input :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ユ壒娆″彿" v-model="model.batchNumber"/> + <a-form-model-item label="鏁呴殰寮�濮嬫椂闂�" prop="faultStartTime"> + <a-date-picker v-model="model.faultStartTime" :allowClear="false" value-format="YYYY-MM-DD" + style="width:100%"/> + </a-form-model-item> + </a-col> + + <a-col :span="12"> + <a-form-model-item label="鏁呴殰鐜拌薄" prop="faultDescription" :labelCol="labelColLong" + :wrapperCol="wrapperColLong"> + <a-textarea placeholder="璇疯緭鍏ユ晠闅滅幇璞�" v-model="model.faultDescription"/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="customSpan"> + <a-form-model-item label="鏄惁鍔犲伐"> + <j-dict-select-tag dict-code="yn" type="radio" v-model="model.isProcessed" + @change="handleRadioChange($event,'batchNumber,processingPart,quantity')"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="鍔犲伐闆朵欢鍙�"> - <a-input :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ュ姞宸ラ浂浠跺彿" v-model="model.processingPart"/> + <a-form-model-item label="鎵规鍙�" prop="batchNumber"> + <a-input :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ユ壒娆″彿" v-model="model.batchNumber"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="浠舵暟"> - <a-input-number :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ヤ欢鏁�" v-model="model.quantity" :min="0" style="width: 100%"/> + <a-form-model-item label="鍔犲伐闆朵欢鍙�" prop="processingPart"> + <a-input :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ュ姞宸ラ浂浠跺彿" + v-model="model.processingPart"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> + <a-form-model-item label="浠舵暟" prop="quantity"> + <a-input-number :disabled="!Boolean(+model.isProcessed)" placeholder="璇疯緭鍏ヤ欢鏁�" v-model="model.quantity" + :min="0" style="width: 100%"/> </a-form-model-item> </a-col> </a-row> @@ -64,22 +64,28 @@ <a-row> <a-col :span="customSpan"> <a-form-model-item label="璁惧浜嬫晠"> - <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨璁惧浜嬫晠" v-model="model.isAccidentsRegister"/> + <j-dict-select-tag dict-code="yn" type="radio" placeholder="璇烽�夋嫨璁惧浜嬫晠" + v-model="model.isAccidentsRegister" @change="handleRadioChange($event,'scrapPartNumber,scrapPartQuantity,' + + 'scrapPartValue,operationCertificate,powerOffRestart,batchFirstPiece,variableFactors,variableFactorsValue,'+ + 'executeNc,accidentPhenomenon,measure,causingResults')"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="搴熷搧浠跺彿"> - <a-input placeholder="璇疯緭鍏ュ簾鍝佷欢鍙�" v-model="model.scrapPartNumber"/> + <a-form-model-item label="搴熷搧浠跺彿" prop="scrapPartNumber"> + <a-input placeholder="璇疯緭鍏ュ簾鍝佷欢鍙�" :disabled="!Boolean(+model.isAccidentsRegister)" + v-model="model.scrapPartNumber"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="搴熷搧浠舵暟"> - <a-input-number placeholder="璇疯緭鍏ュ簾鍝佷欢鏁�" v-model="model.scrapPartQuantity" :min="0" style="width: 100%"/> + <a-form-model-item label="搴熷搧浠舵暟" prop="scrapPartQuantity"> + <a-input-number placeholder="璇疯緭鍏ュ簾鍝佷欢鏁�" :disabled="!Boolean(+model.isAccidentsRegister)" + v-model="model.scrapPartQuantity" :min="0" style="width: 100%"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="搴熷搧浠峰��"> - <a-input placeholder="璇疯緭鍏ュ簾鍝佷环鍊�" v-model="model.scrapPartValue"/> + <a-form-model-item label="搴熷搧浠峰��" prop="scrapPartValue"> + <a-input-number placeholder="璇疯緭鍏ュ簾鍝佷环鍊�" :disabled="!Boolean(+model.isAccidentsRegister)" + v-model="model.scrapPartValue" style="width: 100%"/> </a-form-model-item> </a-col> </a-row> @@ -87,63 +93,79 @@ <a-row> <a-col :span="customSpan"> <a-form-model-item label="鏄惁鏈夎澶囨搷浣滆瘉"> - <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨鏄惁鏈夎澶囨搷浣滆瘉" v-model="model.operationCertificate"/> + <j-dict-select-tag dict-code="yn" type="radio" :disabled="!Boolean(+model.isAccidentsRegister)" + placeholder="璇烽�夋嫨鏄惁鏈夎澶囨搷浣滆瘉" + v-model="model.operationCertificate"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> <a-form-model-item label="鏄惁鏂數閲嶅惎"> - <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨鏄惁鏂數閲嶅惎" v-model="model.powerOffRestart"/> + <j-dict-select-tag dict-code="yn" type="radio" :disabled="!Boolean(+model.isAccidentsRegister)" + placeholder="璇烽�夋嫨鏄惁鏂數閲嶅惎" v-model="model.powerOffRestart"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> <a-form-model-item label="鏄惁涓烘壒娆¢浠�"> - <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨鏄惁涓烘壒娆¢浠�" v-model="model.batchFirstPiece"/> + <j-dict-select-tag dict-code="yn" type="radio" :disabled="!Boolean(+model.isAccidentsRegister)" + placeholder="璇烽�夋嫨鏄惁涓烘壒娆¢浠�" + v-model="model.batchFirstPiece"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> - <a-form-model-item label="鍙樺姩鍥犵礌"> - <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨鍙樺姩鍥犵礌" v-model="model.variableFactors"/> + <a-form-model-item label="鍙樺姩鍥犵礌" prop="variableFactors"> + <j-dict-select-tag type="radio" dict-code="yn" :disabled="!Boolean(+model.isAccidentsRegister)" + placeholder="璇烽�夋嫨鍙樺姩鍥犵礌" v-model="model.variableFactors" + @change="handleRadioChange($event,'variableFactorsValue')"/> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="customSpan"> - <a-form-model-item label="鍙樺姩鍥犵礌鍐呭"> - <j-dict-select-tag dict-code="variable_factors_value" placeholder="璇烽�夋嫨鍙樺姩鍥犵礌鍐呭" v-model="model.variableFactorsValue"/> + <a-form-model-item label="鍙樺姩鍥犵礌鍐呭" prop="variableFactorsValue"> + <j-dict-select-tag dict-code="variable_factors_value" :disabled="!Boolean(+model.variableFactors)" + placeholder="璇烽�夋嫨鍙樺姩鍥犵礌鍐呭" + v-model="model.variableFactorsValue"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> <a-form-model-item label="鎵ц绋嬪簭"> - <a-input placeholder="璇疯緭鍏ユ墽琛岀▼搴�" v-model="model.executeNc"/> + <a-input placeholder="璇疯緭鍏ユ墽琛岀▼搴�" v-model="model.executeNc" + :disabled="!Boolean(+model.isAccidentsRegister)"/> </a-form-model-item> </a-col> - <a-col :span="customSpan"> - <a-form-model-item label="浜嬫晠鐜拌薄"> - <a-input placeholder="璇疯緭鍏ヤ簨鏁呯幇璞�" v-model="model.accidentPhenomenon"/> - </a-form-model-item> - </a-col> - <a-col :span="customSpan"> - <a-form-model-item label="閲囧彇鎺柦"> - <a-input placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�" v-model="model.measure"/> + <a-col :span="12"> + <a-form-model-item label="浜嬫晠鐜拌薄" prop="accidentPhenomenon" :labelCol="labelColLong" + :wrapperCol="wrapperColLong"> + <a-textarea placeholder="璇疯緭鍏ヤ簨鏁呯幇璞�" v-model="model.accidentPhenomenon" + :disabled="!Boolean(+model.isAccidentsRegister)"/> </a-form-model-item> </a-col> </a-row> <a-row> - <a-col :span="customSpan"> - <a-form-model-item label="閫犳垚缁撴灉"> - <a-input placeholder="璇疯緭鍏ラ�犳垚缁撴灉" v-model="model.causingResults"/> + <a-col :span="12"> + <a-form-model-item label="閲囧彇鎺柦" prop="measure" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <a-textarea placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�" v-model="model.measure" + :disabled="!Boolean(+model.isAccidentsRegister)"/> </a-form-model-item> </a-col> - - <a-col :span="customSpan"> - <a-form-model-item label="澶囨敞"> - <a-input placeholder="璇疯緭鍏ュ娉�" v-model="model.measure"/> + <a-col :span="12"> + <a-form-model-item label="閫犳垚缁撴灉" prop="causingResults" :labelCol="labelColLong" + :wrapperCol="wrapperColLong"> + <a-textarea placeholder="璇疯緭鍏ラ�犳垚缁撴灉" v-model="model.causingResults" + :disabled="!Boolean(+model.isAccidentsRegister)"/> </a-form-model-item> </a-col> </a-row> + <a-row> + <a-col :span="12"> + <a-form-model-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/> + </a-form-model-item> + </a-col> + </a-row> </a-form-model> </j-form-container> </a-spin> @@ -153,19 +175,10 @@ <script> import { httpAction } from '@/api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' - import moment from 'moment' export default { name: 'EamReportRepairModal', components: { LxSearchEquipmentSelect }, - props: { - breakdownFlagList: { - type: Array - }, - faultReasonList: { - type: Array - } - }, data() { return { title: '鎿嶄綔', @@ -192,21 +205,60 @@ }, confirmLoading: false, validatorRules: { - faultStartTime: [ - { required: true, message: '璇烽�夋嫨鏁呴殰寮�濮嬫椂闂�' } - ], - breakdownFlag: [ - { required: true, message: '璇烽�夋嫨鏄惁鍋滄満' } - ], - equipmentId: [ - { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储' } - ], - faultName: [ - { required: true, message: '璇烽�夋嫨鏁呴殰绠�绉�' } - ], - faultDescription: [ - { required: true, message: '璇疯緭鍏ユ晠闅滄弿杩�' } - ] + equipmentId: [{ required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }], + faultStartTime: [{ required: true, message: '璇烽�夋嫨鏁呴殰寮�濮嬫椂闂�', trigger: 'change' }], + faultDescription: [{ required: true, message: '璇疯緭鍏ユ晠闅滅幇璞�', trigger: 'change' }], + batchNumber: [{ + validator: this.isProcessedRelatedValidator, + message: '璇疯緭鍏ユ壒娆″彿', + trigger: 'change' + }], + processingPart: [{ + validator: this.isProcessedRelatedValidator, + message: '璇疯緭鍏ュ姞宸ラ浂浠跺彿', + trigger: 'change' + }], + quantity: [{ + validator: this.isProcessedRelatedValidator, + message: '璇疯緭鍏ヤ欢鏁�', + trigger: 'change' + }], + scrapPartNumber: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇疯緭鍏ュ簾鍝佷欢鍙�', + trigger: 'change' + }], + scrapPartQuantity: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇疯緭鍏ュ簾鍝佷欢鏁�', + trigger: 'change' + }], + scrapPartValue: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇疯緭鍏ュ簾鍝佷环鍊�', + trigger: 'change' + }], + variableFactors: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇烽�夋嫨鍙樺姩鍥犵礌', + trigger: 'change' + }], + variableFactorsValue: [{ + validator: this.variableFactorsValueValidator, + message: '璇烽�夋嫨鍙樺姩鍥犵礌鍐呭', + trigger: 'change' + }], + accidentPhenomenon: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇疯緭鍏ヤ簨鏁呯幇璞�', + trigger: 'change' + }], + measure: [{ validator: this.isAccidentsRegisterRelatedValidator, message: '璇疯緭鍏ラ噰鍙栨帾鏂�', trigger: 'change' }], + causingResults: [{ + validator: this.isAccidentsRegisterRelatedValidator, + message: '璇疯緭鍏ラ�犳垚缁撴灉', + trigger: 'change' + }] }, url: { add: '/eam/eamReportRepair/add', @@ -219,21 +271,16 @@ this.editable = true //鍒濆鍖栭粯璁ゅ�� this.model = { - isProcessed: 0, + breakdownFlag: '1', + isProcessed: '0', + isAccidentsRegister: '0' } this.visible = true }, edit(record) { - this.model = Object.assign({}, record, { imageFilesResult: record.imageFiles && this.isJSON(record.imageFiles) ? JSON.parse(record.imageFiles) : null }) + this.model = Object.assign({}, record) this.visible = true - }, - - handleFaultNameChange(value) { - const faultReasonItem = this.faultReasonList.find(item => item.faultName === value) - this.model.faultType = faultReasonItem.faultCategory - this.model.faultType_dictText = faultReasonItem.faultCategory_dictText - this.model.faultDescription = faultReasonItem.faultDescription }, handleOk() { @@ -252,31 +299,29 @@ httpUrl += this.url.edit method = 'put' } - 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() - }) + 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 = false + }) } else { return false } }) - }, - - // 鍒ゆ柇鏄笉鏄疛SON瀛楃涓� - isJSON(str) { - try { - JSON.parse(str) - return true // 濡傛灉杩欓噷娌℃湁鎶涘嚭寮傚父锛岃鏄庢槸JSON鏍煎紡鐨勫瓧绗︿覆 - } catch (e) { - return false // 濡傛灉鎶涘嚭寮傚父锛岃鏄庝笉鏄疛SON鏍煎紡鐨勫瓧绗︿覆 - } }, /**\ @@ -289,39 +334,66 @@ if (key.includes(',')) { const keys = key.split(',') keys.forEach(key => { - if (value === '0') delete this.model[key] + if (value != '1') delete this.model[key] + this.$refs.form.clearValidate(key) }) - }else { - if (value === '0') delete this.model[key] + } else { + if (value != '1') delete this.model[key] + this.$refs.form.clearValidate(key) } }, /** - * 绂佺敤鏃ユ湡 - * @params current 琚鐢ㄧ殑鏃堕棿 + * 鏍规嵁鏄惁鍔犲伐瀛楁鏍¢獙鐩稿叧瀛楁 + * @param rule + * @param value 鐩稿叧瀛楁鍊� + * @param callback 缁撴灉鍥炶皟鍑芥暟 */ - disabledDate(current) { - // Can not select days after today - return current > moment().endOf('day') - }, - - /** - * 绂佺敤鏃ユ湡涓殑鏃堕棿 - * @returns {{disabledHours: (function(): Array), disabledMinutes: (function(): Array)}} - */ - disabledTime() { - function range(start, end) { - const result = [] - for (let i = start; i < end; i++) { - result.push(i) + isProcessedRelatedValidator(rule, value, callback) { + if (this.model.isProcessed == '1') { + if (!value) { + callback(new Error()) + } else { + callback() } - return result + } else { + callback() } + }, - return { - disabledHours: () => range(moment().hour() + 1, 24), - disabledMinutes: () => range(moment().minute() + 1, 60), - disabledSeconds: () => range(moment().second() + 1, 60) + /** + * 鏍规嵁璁惧浜嬫晠瀛楁鏍¢獙鐩稿叧瀛楁 + * @param rule + * @param value 鐩稿叧瀛楁鍊� + * @param callback 缁撴灉鍥炶皟鍑芥暟 + */ + isAccidentsRegisterRelatedValidator(rule, value, callback) { + if (this.model.isAccidentsRegister == '1') { + if (!value) { + callback(new Error()) + } else { + callback() + } + } else { + callback() + } + }, + + /** + * 鍙樺姩鍥犵礌鍐呭鏍¢獙 + * @param rule + * @param value 鍙樺姩鍥犵礌鍐呭瀛楁鍊� + * @param callback 缁撴灉鍥炶皟鍑芥暟 + */ + variableFactorsValueValidator(rule, value, callback) { + if (this.model.variableFactors == '1') { + if (!value) { + callback(new Error()) + } else { + callback() + } + } else { + callback() } }, @@ -332,7 +404,7 @@ }, handleCancel() { this.close() - }, + } } } </script> diff --git "a/src/views/eam/repair/modules/EamReportThreeNoSpareModal.Style\043Drawer.vue" "b/src/views/eam/repair/modules/EamReportThreeNoSpareModal.Style\043Drawer.vue" deleted file mode 100644 index 00c1a60..0000000 --- "a/src/views/eam/repair/modules/EamReportThreeNoSpareModal.Style\043Drawer.vue" +++ /dev/null @@ -1,155 +0,0 @@ -<template> - <a-drawer - :title="title" - :width="800" - placement="right" - :closable="false" - @close="close" - :visible="visible"> - - <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="causeAnalysis" label="鍘熷洜鍒嗘瀽"> - <a-input placeholder="璇疯緭鍏ュ師鍥犲垎鏋�" v-model="model.causeAnalysis" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isTrainingEducation" label="鍩硅鏁欒偛;鏄� 鍚�"> - <a-input placeholder="璇疯緭鍏ュ煿璁暀鑲�;鏄� 鍚�" v-model="model.isTrainingEducation" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingFormat" label="鍩硅褰㈠紡"> - <a-input placeholder="璇疯緭鍏ュ煿璁舰寮�" v-model="model.trainingFormat" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingContent" label="鍩硅鍐呭"> - <a-input placeholder="璇疯緭鍏ュ煿璁唴瀹�" v-model="model.trainingContent" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUser" label="鍩硅浜�"> - <a-input placeholder="璇疯緭鍏ュ煿璁汉" v-model="model.trainingUser" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUserTime" label="鍩硅鏃堕棿"> - <a-input placeholder="璇疯緭鍏ュ煿璁椂闂�" v-model="model.trainingUserTime" /> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId" label="鎶ヤ慨ID"> - <a-input placeholder="璇疯緭鍏ユ姤淇甀D" v-model="model.reportId" /> - </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> - </a-spin> - - <div class="drawer-bootom-button"> - <a-button type="primary" @click="handleOk">纭畾</a-button> - <a-button type="primary" @click="handleCancel">鍙栨秷</a-button> - </div> - </a-drawer> -</template> - -<script> - import { httpAction } from '@/api/manage' - import moment from "moment" - - export default { - name: "EamReportThreeNoSpareModal", - data () { - return { - title:"鎿嶄綔", - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - - confirmLoading: false, - validatorRules:{ - }, - url: { - add: "/eam/eamReportThreeNoSpare/add", - edit: "/eam/eamReportThreeNoSpare/edit", - }, - } - }, - created () { - }, - methods: { - add () { - //鍒濆鍖栭粯璁ゅ�� - this.edit({}); - }, - 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'; - } - 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(); - }) - }else{ - return false; - } - }) - }, - handleCancel () { - this.close() - }, - - - } - } -</script> - -<style lang="less" scoped> - /**Button鎸夐挳闂磋窛*/ - .ant-btn { - margin-left: 30px; - margin-bottom: 30px; - float: right; - } - /**鎶藉眽鎸夐挳鏍峰紡*/ - .drawer-bootom-button { - position: absolute; - bottom: -8px; - width: 100%; - border-top: 1px solid #e8e8e8; - padding: 10px 16px; - text-align: right; - left: 0; - background: #fff; - border-radius: 0 0 2px 2px; - } -</style> \ No newline at end of file diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue index 78481be..67c1d04 100644 --- a/src/views/flowable/workflow/FlowTodo.vue +++ b/src/views/flowable/workflow/FlowTodo.vue @@ -102,6 +102,10 @@ <technical-status-evaluation-order-change-approval-modal ref="evaluationOrderChangeApprovalModal" :selectShenpiData="selectedRowData" @modalFormOk="modalFormOk"/> + + <!--缁翠慨宸ュ崟--> + <repair-order-approval-modal ref="repairOrderApprovalModal" :selectShenpiData="selectedRowData" + @modalFormOk="modalFormOk"/> </a-card> </template> @@ -116,11 +120,13 @@ import ThirdMaintenanceApprovalModal from './thirdMaintenance/ThirdMaintenanceApprovalModal' import TechnicalStatusEvaluationOrderChangeApprovalModal from './TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal' + import RepairOrderApprovalModal from './repairOrder/RepairOrderApprovalModal' export default { name: 'FlowTodo', mixins: [JeecgListMixin], components: { + RepairOrderApprovalModal, TechnicalStatusEvaluationOrderChangeApprovalModal, ThirdMaintenanceApprovalModal, SecondMaintenanceApprovalModal, @@ -215,9 +221,6 @@ case 'sbdjApproval': this.handInspectionOrder(record) break - case 'eam_repair': - this.handleRepairOrder(record) - break case 'second_maintenance': this.handleSecondMaintenance(record) break @@ -229,6 +232,9 @@ break case 'EVALUATION_ORDER_CHANGE_PROCESS': this.handleEvaluationOrderChange(record) + break + case 'eam_repair_order': + this.handleRepairOrder(record) break default: alert('娌℃壘鍒拌娴佺▼') @@ -303,11 +309,10 @@ * @param record */ handleRepairOrder(record) { - this.selectRepairOrderData = Object.assign({}, record) + this.selectedRowData = Object.assign({}, record) this.$refs.repairOrderApprovalModal.visible = true this.$refs.repairOrderApprovalModal.title = record.name - this.$refs.repairOrderApprovalModal.getAllApproveData(record) - this.$refs.repairOrderApprovalModal.getBasicInformation(record) + this.$refs.repairOrderApprovalModal.handleDetail(record) }, batchHandle() { diff --git a/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue b/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue index 50aebc3..d54b171 100644 --- a/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue +++ b/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue @@ -1,268 +1,97 @@ <template> - <j-modal - :width="1200" - :visible="visible" - :title="title" - :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" - @cancel="handCancel" - @ok="submitForm" - :mask-closable="false" - :confirmLoading="confirmLoading" - centered - > + <j-modal :width="1200" :visible="visible" :title="title" :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handCancel" @ok="submitForm" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen> <a-spin :spinning="spinning"> - <a-form-model ref="form" :model='tableRowRecord' :rules='validatorRules' :labelCol='labelCol' - :wrapperCol='wrapperCol'> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">鎶ヤ慨鍩虹淇℃伅</a-divider> + <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" + :wrapperCol="wrapperColLong"> + <a-row :gutter="24" id="outer-row"> + <a-col :span="8" class="scroll-col"> + <a-tabs> + <a-tab-pane tab="鍩虹淇℃伅"> + <a-row> + <a-col :span="12"> + <a-form-model-item label="缁翠慨寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="model.actualStartTime" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item label="缁翠慨缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="model.actualEndTime" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鏁呴殰鍘熷洜"> + <a-textarea v-model="model.faultReason" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鏁呴殰鍒嗘瀽"> + <a-textarea v-model="model.faultAnalysis" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鎺掓晠杩囩▼"> + <a-textarea v-model="model.faultProcess" readOnly/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="棰勯槻鎺柦"> + <a-textarea v-model="model.faultPrevent" readOnly/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> + </a-col> - <a-row> - <a-col :span='threeColSpan'> - <a-form-model-item label='宸ュ崟缂栧彿'> - <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairCode'/> - </a-form-model-item> + <!--缁翠慨浜烘槑缁�--> + <a-col class="scroll-col" :span="10"> + <a-tabs v-model="activeTabKey"> + <a-tab-pane key="1" tab="缁翠慨浜烘槑缁�"> + <j-vxe-table ref="editableDetailTable" rowNumber bordered keep-source :dataSource="detail.dataSource" + :columns="detail.columns"/> + </a-tab-pane> + + <template v-if="selectShenpiData.procInstId"> + <a-tab-pane key='2' tab='娴佺▼鍥�'> + <img :src="imageSrc" alt="Fetched Image"/> + </a-tab-pane> + </template> + </a-tabs> </a-col> - <a-col :span='threeColSpan'> - <a-form-model-item label='璁惧缂栧彿'> - <lx-search-equipment-select disabled v-model='tableRowRecord.equipmentId'/> - </a-form-model-item> - </a-col> - <a-col :span='threeColSpan'> - <a-form-model-item label='缁翠慨璐熻矗浜�'> - <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairer'/> - </a-form-model-item> + + <!--鍙充晶瀹℃壒鍒�--> + <a-col :span="6" class="scroll-col"> + <a-tabs> + <a-tab-pane tab="鎿嶄綔宸ョ‘璁�"> + <a-row> + <a-col :span="24"> + <a-form-model-item prop="confirmResult" label="纭绫诲瀷"> + <j-dict-select-tag type='radio' v-model='model.confirmResult' dictCode='approve_reject' + placeholder="璇烽�夋嫨纭绫诲瀷" + :disabled="disableSubmit || model.repairStatus!='PENDING_CONFIRMATION'"/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="纭鎰忚"> + <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.confirmComment" + :disabled="disableSubmit || model.repairStatus!='PENDING_CONFIRMATION'"/> + </a-form-model-item> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> </a-col> </a-row> - - <a-row> - <a-col :span="threeColSpan"> - <a-form-model-item label="鏁呴殰寮�濮嬫椂闂�"> - <a-input :readOnly='inputReadOnly' v-model="tableRowRecord.faultStartTime"/> - </a-form-model-item> - </a-col> - - <a-col :span="threeColSpan"> - <a-form-model-item label="鏄惁鍋滄満"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.breakdownFlag' dictCode='breakdown_flag' - disabled/> - </a-form-model-item> - </a-col> - </a-row> - - <a-row> - <a-col :span='threeColSpan*3'> - <a-form-model-item label='鎶ヤ慨鍥剧墖' :labelCol='labelColLong' :wrapperCol='wrapperColLong'> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" disabled :number="3" - v-model="tableRowRecord.reportImageFiles"/> - </a-form-model-item> - </a-col> - </a-row> - - <a-tabs v-model="activeTabKey"> - <a-tab-pane key="1" tab="缁翠慨澶勭悊"> - - <div v-if="repairConfirm"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">缁翠慨纭</a-divider> - - <a-row :gutter="24"> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirm" label="鏄惁鍐呴儴鍙淮淇�"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.repairConfirm' dictCode='yn' - placeholder="璇烽�夋嫨" :disabled="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmComment" label="缁翠慨纭鎰忚"> - <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="tableRowRecord.repairConfirmComment" - :readOnly="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="underInternalRepair && tableRowRecord.repairConfirm === '1'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">缁翠慨缁撴灉</a-divider> - <a-row> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.faultReason" rows="4" - placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.repairDescription" - placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨鍥剧墖" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" - :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.imageFiles"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="leaderConfirm && tableRowRecord.repairConfirm === '0'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">棰嗗纭</a-divider> - - <a-row :gutter="24"> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirm" label="鏄惁鍚屾剰澶栭儴缁翠慨"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.leaderConfirm' dictCode='approved_rejected' - placeholder="璇烽�夋嫨" :disabled="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirmComment" label="纭鎰忚"> - <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="tableRowRecord.leaderConfirmComment" - :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="underInternalRepair && tableRowRecord.leaderConfirm === '2'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">缁翠慨缁撴灉</a-divider> - <a-row> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.faultReason" rows="4" - placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.repairDescription" - placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨鍥剧墖" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" - :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'" - v-model="tableRowRecord.imageFiles"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="externalConfirm && tableRowRecord.leaderConfirm === '1'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">鏈哄姩鍔炵‘璁�</a-divider> - - <a-row :gutter="24"> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirm" label="鏈哄姩鍔炴槸鍚﹀彲缁翠慨"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.externalConfirm' dictCode='yn' - placeholder="璇烽�夋嫨" :disabled="disableSubmit||tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirmComment" label="纭鎰忚"> - <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="tableRowRecord.externalConfirmComment" - :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="underExternalRepair && tableRowRecord.externalConfirm === '1'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">鏈哄姩鍔炵淮淇粨鏋�</a-divider> - <a-row> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'" - v-model="tableRowRecord.faultReason" rows="4" - placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'" - v-model="tableRowRecord.repairDescription" - placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨鍥剧墖" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" - :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'" - v-model="tableRowRecord.imageFiles"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="underOutsideRepair && tableRowRecord.externalConfirm === '0'"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">濮斿缁翠慨缁撴灉</a-divider> - <a-row> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'" - v-model="tableRowRecord.faultReason" rows="4" - placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'" - v-model="tableRowRecord.repairDescription" - placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨鍥剧墖" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" - :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'" - v-model="tableRowRecord.imageFiles"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - <div v-if="operatorConfirm"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">鎿嶄綔宸ョ‘璁�</a-divider> - - <a-row :gutter="24"> - <a-col :span="24"> - <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="confirmComment" label="纭鎰忚"> - <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="tableRowRecord.confirmComment" - :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_CONFIRM'"/> - </a-form-model-item> - </a-col> - </a-row> - </div> - </a-tab-pane> - - <template v-if="selectShenpiData.procInstId"> - <a-tab-pane key='2' tab='娴佺▼鑺傜偣'> - <a-card :bordered="false"> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> - <div> - <h3 style="font-weight: bold;">{{item.taskName}}</h3> - <div>澶勭悊浜猴細{{item.assignee_dictText}}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{item.duration}}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{item.description}}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-card> - </a-tab-pane> - - <a-tab-pane key='3' tab='娴佺▼鍥�'> - <img :src="imageSrc" alt="Fetched Image"/> - </a-tab-pane> - </template> - </a-tabs> </a-form-model> </a-spin> </j-modal> </template> <script> - import '@assets/less/TableExpand.less' import { getAction, downFile, httpAction } from '@api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect' + import { JVXETypes } from '@comp/jeecg/JVxeTable' export default { name: 'RepairOrderApprovalModal', @@ -276,151 +105,170 @@ data() { return { title: '', - threeColSpan: 8, - twoColSpan: 12, - inputReadOnly: true, disableSubmit: false, confirmLoading: false, spinning: false, - tableRowRecord: {}, - hitaskDataSource: [], + model: {}, imageSrc: null, activeTabKey: '1', labelCol: { xs: { span: 24 }, - sm: { span: 6 } + sm: { span: 10 } }, wrapperCol: { xs: { span: 24 }, - sm: { span: 16 } + sm: { span: 14 } }, labelColLong: { xs: { span: 24 }, - sm: { span: 2 } + sm: { span: 5 } }, wrapperColLong: { xs: { span: 24 }, - sm: { span: 20 } + sm: { span: 19 } }, - validatorRules: { - repairConfirm: [ - { required: true, message: '璇烽�夋嫨鏄惁鍐呴儴鍙淮淇紒' } + validatorRules: { confirmResult: [{ required: true, message: '璇烽�夋嫨纭绫诲瀷' }] }, + detail: { + dataSource: [], + columns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: '缁翠慨浜�', + key: 'repairUser', + align: 'center', + type: JVXETypes.normal + }, + { + title: '鏄惁鏄富缁翠慨浜�', + key: 'repairPrimary_dictText', + align: 'center', + type: JVXETypes.normal + }, + { + title: '缁翠慨鏃堕暱', + key: 'repairDuration', + align: 'center', + type: JVXETypes.normal + }, + { + title: '澶囨敞', + key: 'remark', + align: 'center', + type: JVXETypes.normal + } ], - repairConfirmComment: [ - { required: true, message: '璇疯緭鍏ョ淮淇‘璁ゆ剰瑙�' } - ], - leaderConfirm: [ - { required: true, message: '璇烽�夋嫨鏄惁鍚屾剰澶栭儴缁翠慨锛�' } - ], - leaderConfirmComment: [ - { required: true, message: '璇疯緭鍏ラ瀵肩‘璁ゆ剰瑙�' } - ], - externalConfirm: [ - { required: true, message: '璇烽�夋嫨鏈哄姩鍔炴槸鍚﹀彲缁翠慨锛�' } - ], - externalConfirmComment: [ - { required: true, message: '璇疯緭鍏ユ満鍔ㄥ姙纭鎰忚' } - ], - confirmComment: [ - { required: true, message: '璇疯緭鍏ユ搷浣滃伐纭鎰忚' } - ], - faultReason: [ - { required: true, message: '璇疯緭鍏ユ晠闅滃師鍥�' } - ], - repairDescription: [ - { required: true, message: '璇疯緭鍏ョ淮淇粨鏋滄弿杩�' } - ] + toolbarConfig: { + // prefix 鍓嶇紑锛泂uffix 鍚庣紑 + slot: ['prefix', 'suffix'], + // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 + btn: ['add', 'remove', 'clearSelection'] + } }, - approveData: {}, visible: false, // 琛ㄥご url: { - queryBomDataById: '/eam/eamRepairOrder/queryById', + queryById: '/eam/eamRepairOrder/queryByReportId', diagramView: '/assign/flow/diagramView', - queryHisTaskList: '/assign/flow/queryHisTaskList', - approve: '/eam/eamRepairOrder/perform' + approve: '/eam/eamRepairOrder/perform', + detail: '/eam/eamRepairPerson/list' } } }, computed: { - repairConfirm() { - return ['WAIT_INTERNAL_CONFIRM', 'UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, - underInternalRepair() { - return ['UNDER_INTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, - leaderConfirm() { - return ['UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, - externalConfirm() { - return ['WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, - underExternalRepair() { - return ['UNDER_EXTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, - underOutsideRepair() { - return ['UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) - }, operatorConfirm() { - return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) + return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.model.repairStatus) } }, methods: { /** - * 鑾峰彇娴佺▼鑺傜偣鍜屾祦绋嬪浘 - * @param record 寰呭姙璁板綍淇℃伅 + * 涓婚〉闈㈢偣鍑绘墽琛屽鎵规椂瑙﹀彂 + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 */ - getAllApproveData(record) { - if (!record.procInstId) return - console.log('record----->', record) - const { procInstId, processDefinitionId, processInstanceId, processDefinitionKey } = record - const param = { procInstId } - const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey } + async handleDetail(record) { + this.spinning = true + this.activeTabKey = '1' + this.model = {} + this.getBasicInformationByApi(record) + this.getFlowChartImageByApi(record) + this.loadDetail(record.dataId) + }, + + /** + * 涓婚〉闈㈢偣鍑昏鎯呮椂瑙﹀彂 + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 + */ + recordDetail(record) { + this.spinning = true + this.activeTabKey = 1 + this.model = Object.assign({}, record) + this.loadDetail(record.id) + }, + + /** + * 鑾峰彇鍩虹淇℃伅 + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 + */ + getBasicInformationByApi(record) { const that = this - - getAction(this.url.queryHisTaskList, param) + getAction(this.url.queryById, { id: record.dataId }) .then(res => { - that.hitaskDataSource = res.result + if (res.success) { + that.model = Object.assign({}, res.result[0]) + that.model.dataId = record.dataId + that.model.taskId = record.id + that.model.userId = record.assignee + that.model.instanceId = record.procInstId + } + else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } }) + }, - downFile(this.url.diagramView, imageParam, 'get') + /** + * 鑾峰彇娴佺▼鍥� + * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍 + */ + getFlowChartImageByApi(record) { + const { processDefinitionId, processInstanceId, processDefinitionKey } = record + + downFile(this.url.diagramView, { + processDefinitionId, + processInstanceId, + TaskDefinitionKey: processDefinitionKey + }, 'get') .then((res => { - const urlObject = window.URL.createObjectURL(new Blob([res])) - that.imageSrc = urlObject + this.imageSrc = window.URL.createObjectURL(new Blob([res])) })) .catch(err => { - that.$notification.error({ + this.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) }) }, /** - * 鑾峰彇寰呭姙璁板綍鐨勫熀鏈俊鎭� - * @param record 寰呭姙璁板綍淇℃伅 + * 鑾峰彇缁翠慨浜烘槑缁� + * @param repairId */ - getBasicInformation(record) { - this.spinning = true - const that = this - const param = { id: record.dataId } - this.tableRowRecord = {} - this.activeTabKey = '1' - getAction(this.url.queryBomDataById, param) - .then((res => { - if (res.success) { - that.tableRowRecord = Object.assign({}, res.result, { - isUseSpare: res.result.isUseSpare === null ? 0 : res.result.isUseSpare, - imageFiles: JSON.parse(res.result.imageFiles), - reportImageFiles: JSON.parse(res.result.reportImageFiles) - }) - console.log('this.tableRowRecord----->', that.tableRowRecord) - } - })) + loadDetail(repairId) { + getAction(this.url.detail, { repairId }) + .then(res => { + if (res.success) this.detail.dataSource = res.result + }) .finally(() => { - that.spinning = false + this.spinning = false }) }, + submitForm() { const that = this @@ -428,41 +276,25 @@ this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = that.spinning = true - const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, repairDescription, imageFiles, equipmentId } = that.tableRowRecord - const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData - - const flowTaskVo = {} - flowTaskVo.repairConfirm = repairConfirm - flowTaskVo.repairConfirmComment = repairConfirmComment - flowTaskVo.leaderConfirm = leaderConfirm - flowTaskVo.leaderConfirmComment = leaderConfirmComment - flowTaskVo.externalConfirm = externalConfirm - flowTaskVo.externalConfirmComment = externalConfirmComment - flowTaskVo.confirmComment = confirmComment - - flowTaskVo.faultReason = faultReason - flowTaskVo.repairDescription = repairDescription - flowTaskVo.imageFilesResult = imageFiles - flowTaskVo.equipmentId = equipmentId - flowTaskVo.id = dataId - flowTaskVo.dataId = dataId - flowTaskVo.taskId = id - flowTaskVo.instanceId = procInstId - flowTaskVo.targetKey = taskDefKey - flowTaskVo.values = variables - console.log('琛ㄥ崟鎻愪氦鏁版嵁', flowTaskVo) - httpAction(this.url.approve, flowTaskVo, 'post') + httpAction(this.url.approve, that.model, 'post') .then((res) => { if (res.success) { - that.$message.success(res.message) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) that.handCancel() - that.$emit('searchReset') + that.$emit('modalFormOk') } else { - that.$message.warning(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) } - }).finally(() => { - that.confirmLoading = that.spinning = false - }) + }) + .finally(() => { + that.confirmLoading = that.spinning = false + }) } else { return false } @@ -475,4 +307,27 @@ } } } -</script> \ No newline at end of file +</script> + +<style scoped lang="less"> + /deep/ .ant-spin-nested-loading { + height: 100%; + + .ant-spin-container { + height: 100%; + + .ant-form { + height: 100%; + + #outer-row { + height: 100%; + + .scroll-col { + height: 100%; + overflow: auto; + } + } + } + } + } +</style> -- Gitblit v1.9.3