| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | |
| | | <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="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="标准编码"> |
| | | <a-input placeholder="请输入标准编码" v-model="queryParam.standardCode"></a-input> |
| | | <a-form-item label="规范编码"> |
| | | <a-input placeholder="请输入规范编码" v-model="queryParam.standardCode"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="标准名称"> |
| | | <a-input placeholder="请输入标准名称" v-model="queryParam.standardName"></a-input> |
| | | <a-form-item label="规范名称"> |
| | | <a-input placeholder="请输入规范名称" v-model="queryParam.standardName"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="设备编号"> |
| | | <lx-search-equipment-select placeholder="请输入设备编号或名称搜索" v-model="queryParam.equipmentId"></lx-search-equipment-select> |
| | | <a-col :xl="5" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="统一编码"> |
| | | <lx-search-equipment-select placeholder="请输入统一编码或名称搜索" v-model="queryParam.equipmentId"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="保养分类"> |
| | | <j-dict-select-tag dict-code="maintenance_category" placeholder="请选择保养分类" v-model="queryParam.maintenanceCategory" /> |
| | | <j-dict-select-tag dict-code="maintenance_category" placeholder="请选择保养分类" |
| | | v-model="queryParam.maintenanceCategory"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="标准状态"> |
| | | <j-dict-select-tag dict-code="maintenance_standard_status" placeholder="请选择标准状态" v-model="queryParam.standardStatus" /> |
| | | <a-form-item label="规范状态"> |
| | | <j-dict-select-tag dict-code="maintenance_standard_status" placeholder="请选择规范状态" |
| | | v-model="queryParam.standardStatus"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-col :xl="3" :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> |
| | |
| | | <!-- 操作按钮区域 --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="inspectionImportExcel" |
| | | <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" |
| | | :action="inspectionImportExcel" |
| | | @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import">点检标准导入</a-button> |
| | | </a-upload> |
| | | <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.inspectionXlsDownloadUrl)">点检标准模板下载</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="secondMaintenanceImportExcel" |
| | | <a-button 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 type="primary" icon="import">二保标准导入</a-button> |
| | | </a-upload> |
| | | <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.secondMaintenanceXlsDownloadUrl)">二保标准模板下载</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="thirdMaintenanceImportExcel" |
| | | <a-button type="primary" icon="download" |
| | | @click="handleTemplateXlsDownload(url.secondMaintenanceXlsDownloadUrl)">二保标准模板下载 |
| | | </a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" |
| | | :action="thirdMaintenanceImportExcel" |
| | | @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import">三保标准导入</a-button> |
| | | </a-upload> |
| | | <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.thirdMaintenanceXlsDownloadUrl)">三保标准模板下载</a-button> |
| | | <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.thirdMaintenanceXlsDownloadUrl)"> |
| | | 三保标准模板下载 |
| | | </a-button> |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"> |
| | |
| | | </a-dropdown> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <!-- table区域-begin --> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;" v-if="isDisplayOperation"> |
| | |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | :customRow='clickThenSelect' |
| | | @change="handleTableChange"> |
| | | <template slot="referenceFile" slot-scope="text, record, index"> |
| | | <a v-if="text && text !== ''" @click.stop="handlePreview(record)">预览</a> |
| | | </template> |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a v-if="record.standardStatus === 'NORMAL'" @click.stop="handleEdit(record)">编辑</a> |
| | | <a v-if="record.standardStatus === 'START'" @click.stop="handleUpgrade(record)">升版</a> |
| | | |
| | | <a-divider type="vertical"/> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item v-if="record.standardStatus === 'NORMAL'"> |
| | | <a @click.stop="handleUpgrade(record)">升版</a> |
| | | </a-menu-item> |
| | | <a-menu-item v-if="record.standardStatus === 'NORMAL'"> |
| | | <a-popconfirm title="确定作废吗?" @confirm="() => handleAbolish(record.id)"> |
| | | <a>作废</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | <a-menu-item> |
| | | <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> |
| | | <a>删除</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | <template v-if="record.standardStatus === 'WAIT_SUBMIT'"> |
| | | <a @click.stop="handleEdit(record)">编辑</a> |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | | <a-popconfirm title="确定发起流程吗?" @confirm="() => startProcess(record.id)"> |
| | | <a @click.stop="event=>event.stopPropagation()">发起流程</a> |
| | | </a-popconfirm> |
| | | |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | | <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> |
| | | <a @click.stop="event=>event.stopPropagation()">删除</a> |
| | | </a-popconfirm> |
| | | </template> |
| | | </span> |
| | | |
| | | </a-table> |
| | | |
| | | <a-tabs defaultActiveKey="1"> |
| | | <a-tab-pane tab='保养标准明细项' key="1"> |
| | | <div class="table-operator" style="margin:-16px"> |
| | | <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"/> |
| | | <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId" |
| | | :pageSelectionRow="selectionRows[0]"/> |
| | | </div> |
| | | </a-tab-pane> |
| | | |
| | |
| | | <!-- table区域-end --> |
| | | |
| | | <!-- 表单区域 --> |
| | | <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"></eamMaintenanceStandard-modal> |
| | | <lx-file-preview ref="lxFilePreview" :fileUrl="fileUrl"></lx-file-preview> |
| | | <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamMaintenanceStandardModal from './modules/EamMaintenanceStandardModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import EamMaintenanceStandardDetailList from '@views/eam/base/modules/EamMaintenanceStandardDetailList' |
| | | import { deleteAction, templateXlsDownload } from '@api/manage' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamMaintenanceStandardModal from './modules/EamMaintenanceStandardModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import EamMaintenanceStandardDetailList from '@views/eam/base/modules/EamMaintenanceStandardDetailList' |
| | | import { deleteAction, getAction, templateXlsDownload } from '@api/manage' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | |
| | | |
| | | export default { |
| | | name: 'EamMaintenanceStandardList', |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | EamMaintenanceStandardModal, |
| | | EamMaintenanceStandardDetailList |
| | | }, |
| | | data() { |
| | | return { |
| | | description: '保养标准管理页面', |
| | | disableMixinCreated: true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '标准编码', |
| | | align: 'center', |
| | | dataIndex: 'standardCode' |
| | | }, |
| | | { |
| | | title: '标准名称', |
| | | align: 'center', |
| | | dataIndex: 'standardName' |
| | | }, |
| | | { |
| | | title: '文件编号', |
| | | align: 'center', |
| | | dataIndex: 'fileCode' |
| | | }, |
| | | { |
| | | title: '保养周期(天)', |
| | | align: 'center', |
| | | dataIndex: 'maintenancePeriod' |
| | | }, |
| | | { |
| | | title: '初始日期', |
| | | align: 'center', |
| | | dataIndex: 'initialDate' |
| | | }, |
| | | { |
| | | title: '保养分类', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceCategory_dictText' |
| | | }, |
| | | { |
| | | title: '设备编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentId_dictText' |
| | | }, |
| | | { |
| | | title: '标准状态', |
| | | align: 'center', |
| | | dataIndex: 'standardStatus_dictText' |
| | | }, |
| | | { |
| | | title: '版本', |
| | | align: 'center', |
| | | dataIndex: 'standardVersion' |
| | | }, |
| | | { |
| | | title: '参考文件', |
| | | align: 'center', |
| | | dataIndex: 'referenceFile', |
| | | scopedSlots: { customRender: 'referenceFile' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/eam/maintenanceStandard/list', |
| | | delete: '/eam/maintenanceStandard/delete', |
| | | deleteBatch: '/eam/maintenanceStandard/deleteBatch', |
| | | exportXlsUrl: 'eam/maintenanceStandard/exportXls', |
| | | inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel', |
| | | weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel', |
| | | secondMaintenanceImportExcel: 'eam/maintenanceStandard/secondMaintenanceImportExcel', |
| | | thirdMaintenanceImportExcel: 'eam/maintenanceStandard/thirdMaintenanceImportExcel', |
| | | inspectionXlsDownloadUrl: '导入模板/点检标准导入模板_v1.0.xlsx', |
| | | weekMaintenanceXlsDownloadUrl: '导入模板/周保标准导入模板_v1.0.xlsx', |
| | | secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.xlsx', |
| | | thirdMaintenanceXlsDownloadUrl: '导入模板/三保标准导入模板_v1.0.xlsx', |
| | | abolish: '/eam/maintenanceStandard/abolish', |
| | | }, |
| | | fileUrl: '', |
| | | standardId: '-1' |
| | | } |
| | | }, |
| | | computed: { |
| | | inspectionImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}` |
| | | }, |
| | | weekMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}` |
| | | }, |
| | | secondMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.secondMaintenanceImportExcel}` |
| | | }, |
| | | thirdMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.thirdMaintenanceImportExcel}` |
| | | } |
| | | }, |
| | | 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) { |
| | | try { |
| | | 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('参考文件为空!') |
| | | export default { |
| | | name: 'EamMaintenanceStandardList', |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | clickThenSelect(record) { |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | EamMaintenanceStandardModal, |
| | | EamMaintenanceStandardDetailList |
| | | }, |
| | | data() { |
| | | return { |
| | | style: { |
| | | cursor: 'pointer' |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.onSelectChange(record.id.split(','), [record]) |
| | | description: '保养规范页面', |
| | | disableMixinCreated: true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '统一编码', |
| | | align: 'center', |
| | | dataIndex: 'equipmentCode' |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName' |
| | | }, |
| | | { |
| | | title: '设备型号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentModel' |
| | | }, |
| | | { |
| | | title: '保养分类', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceCategory_dictText', |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: '规范编码', |
| | | align: 'center', |
| | | dataIndex: 'standardCode', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '规范名称', |
| | | align: 'center', |
| | | dataIndex: 'standardName' |
| | | }, |
| | | { |
| | | title: '保养周期', |
| | | align: 'center', |
| | | dataIndex: 'maintenancePeriod', |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: '保养周期单位', |
| | | align: 'center', |
| | | dataIndex: 'periodUnit', |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: '初始日期', |
| | | align: 'center', |
| | | dataIndex: 'initialDate', |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: '规范状态', |
| | | align: 'center', |
| | | dataIndex: 'standardStatus_dictText' |
| | | }, |
| | | { |
| | | title: '规范版本', |
| | | align: 'center', |
| | | dataIndex: 'standardVersion', |
| | | width: 100 |
| | | } |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/eam/maintenanceStandard/list', |
| | | delete: '/eam/maintenanceStandard/delete', |
| | | deleteBatch: '/eam/maintenanceStandard/deleteBatch', |
| | | startProcess: '/eam/maintenanceStandard/saveEamMaintenanceStandardProcess', |
| | | exportXlsUrl: 'eam/maintenanceStandard/exportXls', |
| | | inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel', |
| | | weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel', |
| | | secondMaintenanceImportExcel: 'eam/maintenanceStandard/secondMaintenanceImportExcel', |
| | | thirdMaintenanceImportExcel: 'eam/maintenanceStandard/thirdMaintenanceImportExcel', |
| | | inspectionXlsDownloadUrl: '导入模板/点检标准导入模板_v1.0.xlsx', |
| | | weekMaintenanceXlsDownloadUrl: '导入模板/周保标准导入模板_v1.0.xlsx', |
| | | secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.xlsx', |
| | | thirdMaintenanceXlsDownloadUrl: '导入模板/三保标准导入模板_v1.0.xlsx' |
| | | }, |
| | | standardId: '-1' |
| | | } |
| | | }, |
| | | onClearSelected() { |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.standardId = '-1' |
| | | }, |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectionRows = selectionRows |
| | | if (selectedRowKeys.length === 1) { |
| | | this.standardId = selectedRowKeys[0] |
| | | } else { |
| | | this.standardId = '-1' |
| | | computed: { |
| | | inspectionImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}` |
| | | }, |
| | | weekMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}` |
| | | }, |
| | | secondMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.secondMaintenanceImportExcel}` |
| | | }, |
| | | thirdMaintenanceImportExcel: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.thirdMaintenanceImportExcel}` |
| | | } |
| | | }, |
| | | searchReset() { |
| | | this.standardId = '-1' |
| | | this.queryParam = {} |
| | | this.loadData(1) |
| | | }, |
| | | handleTemplateXlsDownload(url) { |
| | | templateXlsDownload(url) |
| | | }, |
| | | handleAbolish: function (id) { |
| | | if(!this.url.abolish){ |
| | | this.$message.error("请设置url.abolish属性!") |
| | | created() { |
| | | if (!this.isDisplayOperation) { |
| | | return |
| | | } |
| | | var that = this; |
| | | deleteAction(that.url.abolish, {id: id}).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(1) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | const operationColumn = { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | this.loadData(1) |
| | | }, |
| | | methods: { |
| | | clickThenSelect(record) { |
| | | return { |
| | | style: { |
| | | cursor: 'pointer' |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.onSelectChange(record.id.split(','), [record]) |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | handleUpgrade(record) { |
| | | //升版 |
| | | this.$refs.modalForm.upgrade(record); |
| | | this.$refs.modalForm.title = "升版"; |
| | | this.$refs.modalForm.disableSubmit = false; |
| | | }, |
| | | }, |
| | | |
| | | onClearSelected() { |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.standardId = '-1' |
| | | }, |
| | | |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectionRows = selectionRows |
| | | if (selectedRowKeys.length === 1) { |
| | | this.standardId = selectedRowKeys[0] |
| | | } else { |
| | | this.standardId = '-1' |
| | | } |
| | | }, |
| | | |
| | | handleTemplateXlsDownload(url) { |
| | | templateXlsDownload(url) |
| | | }, |
| | | |
| | | /** |
| | | * 点击发起流程触发 |
| | | * @param id 列表行记录ID |
| | | */ |
| | | startProcess(id) { |
| | | this.loading = true |
| | | const that = this |
| | | getAction(this.url.startProcess, { id }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.loadData() |
| | | } else { |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.loading = false |
| | | }) |
| | | }, |
| | | |
| | | handleUpgrade(record) { |
| | | //升版 |
| | | this.$refs.modalForm.upgrade(record) |
| | | this.$refs.modalForm.title = '升版' |
| | | this.$refs.modalForm.disableSubmit = false |
| | | }, |
| | | |
| | | searchReset() { |
| | | this.standardId = '-1' |
| | | this.queryParam = {} |
| | | this.loadData(1) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
| | | </script> |