src/views/eam/base/EamMaintenanceStandardList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/eam/equipment/EamEquipmentList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/eam/equipment/modules/ResumeDrawer.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/eam/base/EamMaintenanceStandardList.vue
@@ -1,71 +1,74 @@ <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.standardCode"></a-input> </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.standardName"></a-input> </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.equipmentCode"></a-input> </a-form-item> </a-col> <template v-if="toggleSearchStatus"> <template v-if="isDisplayOperation"> <!-- æ¥è¯¢åºå --> <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.maintenanceCategory"></a-input> <a-form-item label="æ åç¼ç "> <a-input placeholder="请è¾å ¥æ åç¼ç " v-model="queryParam.standardCode"></a-input> </a-form-item> </a-col> </template> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="æ ååç§°"> <a-input placeholder="请è¾å ¥æ ååç§°" v-model="queryParam.standardName"></a-input> </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"></a-input> </a-form-item> </a-col> <template v-if="toggleSearchStatus"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="ä¿å »åç±»"> <a-input placeholder="请è¾å ¥ä¿å »åç±»" v-model="queryParam.maintenanceCategory"></a-input> </a-form-item> </a-col> </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 type="info" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> <a @click="handleToggleSearch" style="margin-left: 8px"> {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> </a> </span> </a-col> </a-col> </a-row> </a-form> </div> </a-row> </a-form> </div> <!-- æä½æé®åºå --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> <a-button type="primary" icon="download" @click="handleExportXls('ä¿å »æ å')">导åº</a-button> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">å¯¼å ¥</a-button> </a-upload> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> <a-icon type="delete" /> å é¤ </a-menu-item> </a-menu> <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /> </a-button> </a-dropdown> </div> <!-- æä½æé®åºå --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> <a-button type="primary" icon="download" @click="handleExportXls('ä¿å »æ å')">导åº</a-button> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">å¯¼å ¥</a-button> </a-upload> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> <a-icon type="delete"/> å é¤ </a-menu-item> </a-menu> <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down"/> </a-button> </a-dropdown> </div> </template> <!-- tableåºå-begin --> <div> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;" v-if="isDisplayOperation"> <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 <a style="margin-left: 24px" @click="onClearSelected">æ¸ ç©º</a> @@ -85,14 +88,14 @@ :customRow='clickThenSelect' @change="handleTableChange"> <template slot="referenceFile" slot-scope="text, record, index"> <a v-if="text && text !== ''" @click="handlePreview(record)">é¢è§</a> <a v-if="text && text !== ''" @click.stop="handlePreview(record)">é¢è§</a> </template> <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">ç¼è¾</a> <a @click.stop="handleEdit(record)">ç¼è¾</a> <a-divider type="vertical" /> <a-divider type="vertical"/> <a-dropdown> <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> <a class="ant-dropdown-link">æ´å¤ <a-icon type="down"/></a> <a-menu slot="overlay"> <a-menu-item> <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(record.id)"> @@ -106,15 +109,9 @@ </a-table> <a-tabs defaultActiveKey="1"> <a-tab-pane tab='ä¿å »æ åæç»é¡¹' key="1" > <div class="table-operator" style="margin:-16px" > <eam-maintenance-standard-detail-list :standardId="standardId" /> <a-tab-pane tab='ä¿å »æ åæç»é¡¹' key="1"> <div class="table-operator" style="margin:-16px"> <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"/> </div> </a-tab-pane> @@ -138,6 +135,12 @@ export default { name: 'EamMaintenanceStandardList', mixins: [JeecgListMixin], props: { isDisplayOperation: { type: Boolean, default: true } }, components: { EamMaintenanceStandardModal, EamMaintenanceStandardDetailList @@ -145,18 +148,9 @@ data() { return { description: 'ä¿å »æ å管ç页é¢', disableMixinCreated: true, // 表头 columns: [ { title: '#', dataIndex: '', key: 'rowIndex', width: 60, align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 } }, { title: 'æ åç¼ç ', align: 'center', @@ -207,12 +201,6 @@ align: 'center', dataIndex: 'referenceFile', scopedSlots: { customRender: 'referenceFile' } }, { title: 'æä½', dataIndex: 'action', align: 'center', scopedSlots: { customRender: 'action' } } ], url: { @@ -223,7 +211,7 @@ importExcelUrl: 'eam/maintenanceStandard/importExcel' }, fileUrl: '', standardId: '-1', standardId: '-1' } }, computed: { @@ -231,22 +219,38 @@ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` } }, created() { if (!this.isDisplayOperation) { return } const operationColumn = { title: 'æä½', dataIndex: 'action', align: 'center', scopedSlots: { customRender: 'action' } } this.columns = [...this.columns, operationColumn] this.loadData(1) }, methods: { handlePreview: function (record) { if(record.referenceFile) { handlePreview: function(record) { if (record.referenceFile) { try { let file = JSON.parse(record.referenceFile); this.$refs.lxFilePreview.preview(file.filePath); }catch (e) { console.error(e); this.$message.error(e.message); let file = JSON.parse(record.referenceFile) this.$refs.lxFilePreview.preview(file.filePath) } catch (e) { console.error(e) this.$message.error(e.message) } }else { this.$message.warning("åèæä»¶ä¸ºç©ºï¼"); } else { this.$message.warning('åèæä»¶ä¸ºç©ºï¼') } }, clickThenSelect(record) { return { style: { cursor: 'pointer' }, on: { click: () => { this.onSelectChange(record.id.split(','), [record]) @@ -255,24 +259,24 @@ } }, onClearSelected() { this.selectedRowKeys = []; this.selectionRows = []; this.standardId = '-1'; this.selectedRowKeys = [] this.selectionRows = [] this.standardId = '-1' }, onSelectChange(selectedRowKeys, selectionRows) { this.selectedRowKeys = selectedRowKeys; this.selectionRows = selectionRows; this.selectedRowKeys = selectedRowKeys this.selectionRows = selectionRows if (selectedRowKeys.length === 1) { this.standardId = selectionRows[0]['id'] this.standardId = selectedRowKeys[0] } else { this.standardId = '-1' } }, searchReset() { this.standardId = '-1'; this.standardId = '-1' this.queryParam = {} this.loadData(1); }, this.loadData(1) } } } </script> src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
@@ -12,7 +12,6 @@ :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> </a-table> </div> src/views/eam/equipment/EamEquipmentList.vue
@@ -101,7 +101,7 @@ <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 <a style="margin-left: 24px" @click="onClearSelected">æ¸ ç©º</a> <a style="margin-left: 24px" @click="onSelectChange([])">æ¸ ç©º</a> </div> <a-table @@ -115,7 +115,9 @@ :loading="loading" :scroll="{ x: 'max-content' }" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> @change="handleTableChange" :customRow="customTableRow" > <span slot="equipmentImportance" slot-scope="text"> <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦"/> </span> @@ -132,7 +134,7 @@ <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦"/> </span> <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">ç¼è¾</a> <a @click.stop="handleEdit(record)">ç¼è¾</a> <a-divider type="vertical"/> <a-dropdown> @@ -140,6 +142,9 @@ <a-menu slot="overlay"> <a-menu-item> <a href="javascript:;" @click="handleOpenNameplateModal(record)">éç</a> </a-menu-item> <a-menu-item> <a href="javascript:;" @click="handleOpenResumeDrawer(record)">å±¥å</a> </a-menu-item> <a-menu-item> <a href="javascript:;" @click="handleDetail(record)">详æ </a> @@ -157,10 +162,18 @@ </div> <!-- tableåºå-end --> <a-tabs v-model="activeTabKey"> <a-tab-pane tab="ä¿å »æ å" :key="1"> <eam-maintenance-standard-list ref="tabPaneTableListRef" :isDisplayOperation="false"/> </a-tab-pane> </a-tabs> <!-- 表ååºå --> <eamEquipment-modal ref="modalForm" @ok="modalFormOk"></eamEquipment-modal> <!--éçå¼¹çª--> <nameplate-modal ref="nameplateModalRef"/> <!--å±¥åå¼¹çª--> <resume-drawer ref="resumeDrawerRef"/> </a-card> </template> @@ -171,11 +184,15 @@ import { getAction, templateXlsDownload } from '@api/manage' import NameplateModal from '@views/eam/equipment/modules/NameplateModal.vue' import { getSystemConfigValue } from '@api/api' import ResumeDrawer from '@views/eam/equipment/modules/ResumeDrawer.vue' import EamMaintenanceStandardList from '@views/eam/base/EamMaintenanceStandardList.vue' export default { name: 'EamEquipmentList', mixins: [JeecgListMixin], components: { EamMaintenanceStandardList, ResumeDrawer, NameplateModal, EamEquipmentModal }, @@ -270,7 +287,7 @@ { title: '设å¤åå·', align: 'center', width: 100, width: 200, dataIndex: 'equipmentModel' }, { @@ -393,23 +410,23 @@ }, { title: 'å建人', align: "center", align: 'center', dataIndex: 'createBy_dictText' }, { title: 'å建æ¶é´', align: "center", dataIndex: 'createTime', align: 'center', dataIndex: 'createTime' }, { title: 'æ´æ°äºº', align: "center", align: 'center', dataIndex: 'updateBy_dictText' }, { title: 'æ´æ°æ¶é´', align: "center", dataIndex: 'updateTime', align: 'center', dataIndex: 'updateTime' }, { title: '夿³¨', @@ -433,10 +450,11 @@ exportXlsUrl: 'eam/equipment/exportXls', importExcelUrl: 'eam/equipment/importExcel', loadProductionOptions: '/mdc/mdcProduction/loadProductionTreeOptions', templateXlsDownloadUrl: 'å¯¼å ¥æ¨¡æ¿/设å¤å°è´¦å¯¼å ¥æ¨¡æ¿_v1.0.xlsx', templateXlsDownloadUrl: 'å¯¼å ¥æ¨¡æ¿/设å¤å°è´¦å¯¼å ¥æ¨¡æ¿_v1.0.xlsx' }, treeData: [], appHomeUrl: '', activeTabKey: 1, appHomeUrl: '' } }, computed: { @@ -445,8 +463,8 @@ } }, created() { this.loadAllProductionTree(); this.loadAppHomeUrlConfigValue(); this.loadAllProductionTree() this.loadAppHomeUrlConfigValue() }, methods: { loadAllProductionTree() { @@ -462,25 +480,72 @@ /** * å¼å¯éçå¼¹çª * @param record * @param record è¡¨æ ¼è¡ä¿¡æ¯ */ handleOpenNameplateModal(record) { this.$refs.nameplateModalRef.model = Object.assign({}, record) this.$refs.nameplateModalRef.httpUrl = this.appHomeUrl + record.equipmentCode; this.$refs.nameplateModalRef.httpUrl = this.appHomeUrl + record.equipmentCode this.$refs.nameplateModalRef.visible = true }, /** * å¼å¯å±¥åæ½å± * @param record */ handleOpenResumeDrawer(record) { this.$refs.resumeDrawerRef.visible = true }, handleTemplateXlsDownload(){ templateXlsDownload(this.url.templateXlsDownloadUrl); /** * èªå®ä¹è®¾å¤å°è´¦è¡¨æ ¼è¡ * @param record è¡¨æ ¼è¡ä¿¡æ¯ * @returns {{style: {cursor: string}, on: {click: *}}} æ ·å¼å¯¹è±¡ä¸äºä»¶æ¹æ³ */ customTableRow(record) { return { style: { cursor: 'pointer' }, on: { click: () => { this.onSelectChange([record.id]) } } } }, /** * å 载页ç¾è¡¨æ ¼æ°æ® * @param id 设å¤å°è´¦è¡è®°å½Id */ loadTabPaneTableData(id) { this.$refs.tabPaneTableListRef.queryParam.equipmentId = id this.$refs.tabPaneTableListRef.loadData(1) }, /** * 设å¤å°è´¦è¡¨æ ¼å¤éæ¡ç¶ææ¹åæ¶è§¦å * @param selectedRowKeys 已鿩çrowKeyéå */ onSelectChange(selectedRowKeys) { this.selectedRowKeys = selectedRowKeys this.$refs.tabPaneTableListRef.dataSource = [] this.$refs.tabPaneTableListRef.onClearSelected() if (selectedRowKeys.length === 1) this.loadTabPaneTableData(selectedRowKeys[0]) }, handleTemplateXlsDownload() { templateXlsDownload(this.url.templateXlsDownloadUrl) }, loadAppHomeUrlConfigValue() { let params = {settingKey: 'app_home_url'}; let params = { settingKey: 'app_home_url' } getSystemConfigValue(params).then(res => { if (res.success) { this.appHomeUrl = res.result.settingValue; this.appHomeUrl = res.result.settingValue } }) }, } } } </script> src/views/eam/equipment/modules/ResumeDrawer.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ <template> <a-drawer title="设å¤å±¥å" placement="right" :width="500" :closable="false" :visible="visible" @close="onClose"> <a-timeline mode="alternate"> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item color="green"> Solve initial network problems 2015-09-01 </a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. </a-timeline-item> <a-timeline-item color="red"> Network problems being solved 2015-09-01 </a-timeline-item> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Technical testing 2015-09-01 </a-timeline-item> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item color="green"> Solve initial network problems 2015-09-01 </a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. </a-timeline-item> <a-timeline-item color="red"> Network problems being solved 2015-09-01 </a-timeline-item> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Technical testing 2015-09-01 </a-timeline-item> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item color="green"> Solve initial network problems 2015-09-01 </a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. </a-timeline-item> <a-timeline-item color="red"> Network problems being solved 2015-09-01 </a-timeline-item> <a-timeline-item>Create a services site 2015-09-01</a-timeline-item> <a-timeline-item> <a-icon slot="dot" type="clock-circle-o" style="font-size: 16px;"/> Technical testing 2015-09-01 </a-timeline-item> </a-timeline> </a-drawer> </template> <script> export default { name: 'ResumeDrawer', data() { return { visible: false } }, methods: { getEquipmentResumeByApi() { }, onClose() { this.visible = false } } } </script> <style scoped lang="less"> /deep/ .ant-drawer-wrapper-body { overflow: hidden; display: flex; flex-direction: column; ::-webkit-scrollbar { width: 8px; height: 8px; } .ant-drawer-body { flex: 1; overflow: auto; } } </style>