<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="关键设备标识">
|
<j-dict-select-tag dict-code="equipment_importance" placeholder="请选择关键设备标识"
|
v-model="queryParam.equipmentImportance"/>
|
</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>
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-form-item label="设备名称">
|
<a-input placeholder="请输入设备名称" v-model="queryParam.equipmentName"></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="所属分类">
|
<j-dict-select-tag dict-code="equipment_category" placeholder="请选择设备所属分类"
|
v-model="queryParam.equipmentCategory"/>
|
</a-form-item>
|
</a-col>
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-form-item label="使用部门">
|
<a-tree-select v-model="queryParam.factoryOrgCode" style="width: 100%" :tree-data="productionTreeData"
|
show-search :replaceFields="{key:'orgCode',value:'orgCode'}"
|
treeNodeFilterProp="title" searchPlaceholder="请输入关键字搜索"
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择使用部门"
|
allow-clear tree-default-expand-all>
|
</a-tree-select>
|
</a-form-item>
|
</a-col>
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-form-item label="维修班组">
|
<a-tree-select v-model="queryParam.repairDepartOrgCode" style="width: 100%"
|
:tree-data="repairDepartTreeData"
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择维修班组"
|
allow-clear tree-default-expand-all>
|
</a-tree-select>
|
</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>
|
</span>
|
</a-col>
|
|
</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-button type="primary" icon="download" @click="handleTemplateXlsDownload">导入模板下载</a-button>
|
<a-dropdown v-if="selectedRowKeys.length > 0">
|
<a-menu slot="overlay">
|
<a-menu-item key="2" @click="batchDel">
|
<a-icon type="delete"/>
|
删除
|
</a-menu-item>
|
</a-menu>
|
<a-button style="margin-left: 8px"> 批量操作
|
<a-icon type="down"/>
|
</a-button>
|
</a-dropdown>
|
</div>
|
|
<!-- table区域-begin -->
|
<div>
|
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
|
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
|
style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
|
<a style="margin-left: 24px" @click="onSelectChange([])">清空</a>
|
</div>
|
<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}"
|
@change="handleTableChange"
|
>
|
<!--统一编码-->
|
<template slot="equipmentCode" slot-scope="text">
|
<a href="#" @click="handleDetail(record)" style="display: inline-block;height: 100%">{{text}}</a>
|
</template>
|
|
<!--使用部门-->
|
<template slot="factoryOrgCode" slot-scope="text,record">
|
{{[record.gsfactoryOrgCode_dictText,record.zxfactoryOrgCode_dictText,record.gqfactoryOrgCode_dictText,record.factoryOrgCode_dictText].filter(item=>item).join('/')}}
|
</template>
|
|
<!--安装位置-->
|
<template slot="installationPosition" slot-scope="text">
|
<j-ellipsis :value="text" :length="5"/>
|
</template>
|
|
<!--操作系统-->
|
<template slot="operationSystem" slot-scope="text">
|
<a-switch checked-children="是" un-checked-children="否" :checked="+text" disabled/>
|
</template>
|
|
<!--资产制造商-->
|
<template slot="manufacturingEnterprise" slot-scope="text">
|
<j-ellipsis :value="text" :length="8"/>
|
</template>
|
|
<span slot="action" slot-scope="text, record">
|
<a @click.stop="handleEdit(record)">编辑</a>
|
|
<a-divider type="vertical"/>
|
<a-dropdown>
|
<a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
|
<a-menu slot="overlay">
|
<a-menu-item>
|
<a href="javascript:;" @click="handleOpenResumeDrawer(record)">履历</a>
|
</a-menu-item>
|
<a-menu-item>
|
<a href="javascript:;" @click="handleDetail(record)">详情</a>
|
</a-menu-item>
|
<a-menu-item>
|
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
|
<a>删除</a>
|
</a-popconfirm>
|
</a-menu-item>
|
</a-menu>
|
</a-dropdown>
|
</span>
|
|
</a-table>
|
</div>
|
<!-- table区域-end -->
|
|
<!--<a-tabs v-model="activeTabKey" @change="handleTabChange">-->
|
<!--<a-tab-pane tab="设备文档" :key="1">-->
|
<!--<eam-equipment-attachment-list ref="tabPaneTableListRef1"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="点检工单" :key="2">-->
|
<!--<eam-inspection-order-list ref="tabPaneTableListRef2" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="二保工单" :key="3">-->
|
<!--<eam-second-maintenance-order-list ref="tabPaneTableListRef3" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="三保工单" :key="4">-->
|
<!--<eam-third-maintenance-order-list ref="tabPaneTableListRef4" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="维修工单" :key="5">-->
|
<!--<eam-repair-order-list ref="tabPaneTableListRef5" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="保养标准" :key="6">-->
|
<!--<eam-maintenance-standard-list ref="tabPaneTableListRef6" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="工艺参数" :key="7" v-if="isOpenProcess">-->
|
<!--<eam-equipment-process-list ref="tabPaneTableListRef7" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--<a-tab-pane tab="设备精度" :key="8" v-if="isOpenPrecision">-->
|
<!--<eam-equipment-precision-list ref="tabPaneTableListRef8" :isDisplayOperation="false"/>-->
|
<!--</a-tab-pane>-->
|
<!--</a-tabs>-->
|
|
<!-- 表单区域 -->
|
<eamEquipment-modal ref="modalForm" @ok="modalFormOk" :productionTreeData="productionTreeData"/>
|
<!--履历弹窗-->
|
<resume-drawer ref="resumeDrawerRef" :currentTableRowRecord="currentTableRowRecord"/>
|
</a-card>
|
</template>
|
|
<script>
|
import EamEquipmentModal from './modules/EamEquipmentModal.vue'
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
import { getAction, templateXlsDownload } from '@api/manage'
|
import { getSystemConfigValue } from '@api/api'
|
import ResumeDrawer from '@views/eam/equipment/modules/ResumeDrawer.vue'
|
import EamMaintenanceStandardList from '@views/eam/base/EamMaintenanceStandardList.vue'
|
import EamRepairOrderList from '../repair/EamRepairOrderList'
|
import EamInspectionOrderList from '../maintenance/EamInspectionOrderList'
|
import EamEquipmentAttachmentList from '@views/eam/equipment/EamEquipmentAttachmentList.vue'
|
import EamEquipmentProcessList from '@views/eam/equipment/modules/EamEquipmentProcessList.vue'
|
import EamEquipmentPrecisionList from '@views/eam/equipment/modules/EamEquipmentPrecisionList.vue'
|
import EamSecondMaintenanceOrderList from '@views/eam/maintenance/EamSecondMaintenanceOrderList.vue'
|
import EamThirdMaintenanceOrderList from '@views/eam/maintenance/EamThirdMaintenanceOrderList.vue'
|
|
export default {
|
name: 'EquipmentLedger',
|
mixins: [JeecgListMixin],
|
components: {
|
EamInspectionOrderList,
|
EamRepairOrderList,
|
EamMaintenanceStandardList,
|
ResumeDrawer,
|
EamEquipmentModal,
|
EamEquipmentAttachmentList,
|
EamEquipmentProcessList,
|
EamEquipmentPrecisionList,
|
EamSecondMaintenanceOrderList,
|
EamThirdMaintenanceOrderList
|
},
|
data() {
|
return {
|
description: '设备台账管理页面',
|
// 表头
|
columns: [
|
{
|
title: '#',
|
dataIndex: '',
|
key: 'rowIndex',
|
width: 60,
|
align: 'center',
|
customRender: function(t, r, index) {
|
return parseInt(index) + 1
|
},
|
fixed: 'left'
|
},
|
{
|
title: '关键设备标识',
|
align: 'center',
|
dataIndex: 'equipmentImportance',
|
fixed: 'left'
|
},
|
{
|
title: '统一编码',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentCode',
|
scopedSlots: { customRender: 'equipmentCode' },
|
ellipsis: true,
|
fixed: 'left',
|
sorter: true
|
},
|
{
|
title: '设备名称',
|
align: 'center',
|
dataIndex: 'equipmentName',
|
ellipsis: true,
|
fixed: 'left'
|
},
|
{
|
title: '使用部门',
|
align: 'center',
|
dataIndex: 'factoryOrgCode',
|
scopedSlots: { customRender: 'factoryOrgCode' }
|
},
|
{
|
title: '所属分类',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentCategory_dictText'
|
},
|
{
|
title: '保养状态',
|
align: 'center',
|
width: 100,
|
dataIndex: 'maintenanceStatus_dictText'
|
},
|
{
|
title: '维修状态',
|
align: 'center',
|
width: 100,
|
dataIndex: 'repairStatus_dictText'
|
},
|
{
|
title: '技术状态',
|
align: 'center',
|
width: 100,
|
dataIndex: 'technologyStatus_dictText'
|
},
|
{
|
title: 'ABC标识',
|
align: 'center',
|
width: 100,
|
dataIndex: 'abcFlag'
|
},
|
{
|
title: '维修班组',
|
align: 'center',
|
width: 100,
|
dataIndex: 'repairDepartOrgCode'
|
},
|
{
|
title: '安全配置',
|
align: 'center',
|
width: 100,
|
dataIndex: 'securityConfiguration'
|
},
|
{
|
title: '冷却系统',
|
align: 'center',
|
width: 100,
|
dataIndex: 'coolSystem'
|
},
|
{
|
title: '灭火器',
|
align: 'center',
|
width: 100,
|
dataIndex: 'fireExtinguisher'
|
},
|
{
|
title: '灭火器有效期',
|
align: 'center',
|
dataIndex: 'fireExtinguisherExpirationDate'
|
},
|
{
|
title: '操作系统',
|
align: 'center',
|
dataIndex: 'operationSystem',
|
scopedSlots: { customRender: 'operationSystem' }
|
},
|
{
|
title: '系统',
|
align: 'center',
|
width: 100,
|
dataIndex: 'system'
|
},
|
{
|
title: '设备端口',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentPort'
|
},
|
{
|
title: '坐标数量',
|
align: 'center',
|
width: 100,
|
dataIndex: 'coordinateNum'
|
},
|
{
|
title: '重量',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentWeight'
|
},
|
{
|
title: '重量计量单位',
|
align: 'center',
|
width: 150,
|
dataIndex: 'weightUnit'
|
},
|
{
|
title: '功能位置',
|
align: 'center',
|
width: 100,
|
dataIndex: 'functionalLocation'
|
},
|
{
|
title: '安装位置',
|
align: 'center',
|
dataIndex: 'installationPosition',
|
scopedSlots: { customRender: 'installationPosition' }
|
},
|
{
|
title: '出厂日期',
|
align: 'center',
|
width: 100,
|
dataIndex: 'leaveFactoryDate'
|
},
|
{
|
title: '立项卡号',
|
align: 'center',
|
width: 100,
|
dataIndex: 'cardNumber'
|
},
|
{
|
title: '资金来源',
|
align: 'center',
|
dataIndex: 'fundingSource'
|
},
|
{
|
title: '验收日期',
|
align: 'center',
|
width: 100,
|
dataIndex: 'acceptanceCheckDate'
|
},
|
{
|
title: '出厂编号',
|
align: 'center',
|
dataIndex: 'factoryNumber'
|
},
|
{
|
title: '资产制造商',
|
align: 'center',
|
dataIndex: 'manufacturingEnterprise',
|
scopedSlots: { customRender: 'manufacturingEnterprise' },
|
ellipsis: true
|
},
|
{
|
title: '资产来源国家',
|
align: 'center',
|
dataIndex: 'originCountry'
|
},
|
{
|
title: '型号',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentModel'
|
},
|
{
|
title: '设备规格',
|
align: 'center',
|
width: 100,
|
dataIndex: 'equipmentSpecification'
|
},
|
{
|
title: '总功率',
|
align: 'center',
|
dataIndex: 'equipmentPower'
|
},
|
{
|
title: '质保开始日期',
|
align: 'center',
|
dataIndex: 'warrantyStartDate'
|
},
|
{
|
title: '质保结束日期',
|
align: 'center',
|
dataIndex: 'warrantyEndDate'
|
},
|
{
|
title: '资产状态',
|
align: 'center',
|
dataIndex: 'assetStatus_dictText'
|
},
|
{
|
title: '本次三保日期',
|
align: 'center',
|
dataIndex: 'latestThirdMaintenance'
|
},
|
{
|
title: '下次三保日期',
|
align: 'center',
|
dataIndex: 'nextThirdMaintenance'
|
},
|
{
|
title: '三保周期',
|
align: 'center',
|
dataIndex: 'thirdMaintenancePeriod'
|
},
|
{
|
title: '本次技术鉴定日期',
|
align: 'center',
|
dataIndex: 'latestTechnologyCheck'
|
},
|
{
|
title: '下次技术鉴定日期',
|
align: 'center',
|
dataIndex: 'nextTechnologyCheck'
|
},
|
{
|
title: '技术鉴定周期',
|
align: 'center',
|
dataIndex: 'technologyCheckPeriod'
|
},
|
{
|
title: '操作',
|
dataIndex: 'action',
|
align: 'center',
|
width: 150,
|
scopedSlots: { customRender: 'action' },
|
fixed: 'right'
|
}
|
],
|
url: {
|
list: '/eam/equipment/list',
|
delete: '/eam/equipment/delete',
|
deleteBatch: '/eam/equipment/deleteBatch',
|
exportXlsUrl: 'eam/equipment/exportXls',
|
importExcelUrl: 'eam/equipment/importExcel',
|
getProductionTreeList: '/eam/BaseFactory/queryTreeList',
|
templateXlsDownloadUrl: '导入模板/设备台账导入模板_v1.1.xlsx'
|
},
|
currentTableRowRecord: {},
|
productionTreeData: [],
|
repairDepartTreeData: []
|
}
|
},
|
computed: {
|
importExcelUrl: function() {
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
|
}
|
},
|
created() {
|
this.getProductionTreeDataByApi()
|
},
|
methods: {
|
// 获取使用部门树
|
getProductionTreeDataByApi() {
|
getAction(this.url.getProductionTreeList)
|
.then(res => {
|
if (res.success) {
|
this.productionTreeData = res.result
|
} else {
|
this.$notification.warning({
|
message: '消息',
|
description: res.message
|
})
|
}
|
})
|
},
|
|
// 获取使用部门树
|
getProductionTreeDataByApi() {
|
getAction(this.url.getProductionTreeList)
|
.then(res => {
|
if (res.success) {
|
this.productionTreeData = res.result
|
} else {
|
this.$notification.warning({
|
message: '消息',
|
description: res.message
|
})
|
}
|
})
|
},
|
|
/**
|
* 开启履历抽屉
|
* @param record 表格行信息
|
*/
|
handleOpenResumeDrawer(record) {
|
this.currentTableRowRecord = Object.assign({}, record)
|
this.$refs.resumeDrawerRef.title = '设备履历' + `(${record.equipmentCode})`
|
this.$refs.resumeDrawerRef.dataSource = []
|
this.$refs.resumeDrawerRef.visible = true
|
this.$nextTick(() => this.$refs.resumeDrawerRef.getEquipmentResumeByApi())
|
},
|
|
handleTemplateXlsDownload() {
|
templateXlsDownload(this.url.templateXlsDownloadUrl)
|
}
|
}
|
}
|
</script>
|
<style scoped>
|
@import '~@assets/less/common.less';
|
</style>
|