<template> <div id="main" class="h-all"> <el-container class="h-all"> <el-header height="auto"> <div class="header-button-box"> <el-button size='mini' icon="el-icon-upload2" type="primary" @click="importToExcelInit" v-if="importNetworkPhysicsCommand.visible">{{$t('common.importBtn')}} </el-button> <el-button size='mini' icon="el-icon-download" type="primary" @click="exportToExcelInit">{{$t('common.exportBtn')}} </el-button> <el-button size='mini' icon="el-icon-circle-plus-outline" type="primary" @click="createNetworkPhysicsLinkInit" v-if="createAndCopyCommand.visible">{{$t('common.createBtn')}} </el-button> <el-button size = 'mini' icon="el-icon-document" type="primary" @click="copyNetworkPhysicsLinkInit" v-if="createAndCopyCommand.visible">{{$t('common.copyBtn')}}</el-button> <el-button size='mini' icon="el-icon-edit" type="primary" @click="updateNetworkPhysicsLinkInit" v-if="updateNetworkPhysicsCommand.visible">{{$t('common.updateBtn')}} </el-button> <el-button size='mini' icon="el-icon-delete" type="primary" @click="deleteNetworkPhysicsLinkInit" v-if="deleteNetworkPhysicsCommand.visible"> {{$t('common.deleteBtn')}} </el-button> </div> <!-- 条件查询工具栏 --> <div class="header-search"> <div class="search-input-box"> <label>{{$t('NetworkPhysicsLinkConfigurationManagement.NodeNameQuery')}}</label> <el-input size = 'mini' :placeholder="$t('common.placeholder')" v-model="querySelectNode" clearable></el-input> </div> <div class="search-input-box"> <label>{{$t('NetworkPhysicsLinkConfigurationManagement.AccessBusinessQuery')}}</label> <el-input size = 'mini' :placeholder="$t('common.placeholder')" v-model="querySelectBusiness" clearable></el-input> </div> <div class="search-input-box"> <label>{{$t('NetworkPhysicsLinkConfigurationManagement.DeviceNameQuery')}}</label> <el-select v-model="querySelectDevice" size="mini" :placeholder="$t('NetworkPhysicsLinkConfigurationManagement.SelectDevice')" :clearable="true"> <el-option v-for="item in QueryDeviceList" :key="item.deviceKey" :label="item.deviceName" :value="item.deviceKey"> </el-option> </el-select> </div> <div class="search-input-box"> <el-button icon="el-icon-search" type="primary" size = 'mini' @click="queryNetworkPhysicsLinkByCondition" v-loading.fullscreen.lock="fullscreenLoading">{{$t('common.queryBtn')}}</el-button> </div> </div> </el-header> <!-- table数据表格 --> <el-main class="adapt-height-box"> <el-table :empty-text="$t('common.noData')" tooltip-effect="dark" stripe header-row-class-name="table-header" cell-class-name="table-cell" class="adapt-height" height="auto" border ref="singleTable" :data="NetworkPhysicsLinkList" highlight-current-row @current-change="handleCurrentChange" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="28"> </el-table-column> <el-table-column prop="nodeName" :label="$t('NetworkPhysicsLinkConfigurationManagement.NodeName')" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="description" :label="$t('NetworkPhysicsLinkConfigurationManagement.Description')" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="deviceKey" :label="$t('NetworkPhysicsLinkConfigurationManagement.DeviceKey')" :show-overflow-tooltip="true" :formatter="formatDeviceKey"> </el-table-column> <el-table-column prop="port" :label="$t('NetworkPhysicsLinkConfigurationManagement.Port')" :show-overflow-tooltip="true"> </el-table-column> </el-table> </el-main> </el-container> <CommandExecuteContext v-bind:commands="commandContext"></CommandExecuteContext> </div> </template> <script> import CommandExecuteContext from '@/commands/CommandExecuteContext' import NetworkPhysicsCommands from "@/commands/NetworkPhysicsCommands" import DeviceService from '@/domain/services/DeviceService' import NetworkPhysicsService from '@/domain/services/NetworkPhysicsService' import HelperUtil from '@/utils/HelperUtil' import loading from "../../utils/Loading"; export default { name: "NetworkPhysicsLinkConfigurationManagement", data: function () { return{ //命令 commandContext: {}, //为了创建复制初始化传参 createAndCopyInitList: [], createAndCopyTitle: '', //删除相关 deleteList: [], //为修改传参数 updateInitList: [], fullscreenLoading: false, //条件查询 querySelectNode:"",//条件查询节点名称 querySelectBusiness:"",//条件查询接入业务 querySelectDevice:"",//条件查询设备名称 formLabelWidth: '120px', form:{ nodeName:"", description:"", deviceKey:"", port:"", }, //双向绑定展示数据 NetworkPhysicsLinkList: [], //双向绑定展示数据 QueryDeviceList:[], // value: '', //保存当前行数据 currentRow: null, //保存多选行数据 multipleSelection: [], //查询条件 selectList: [], deviceList: [], } }, mounted: function () { this.getAllNetworkPhysicsLinkInit() }, components: { CommandExecuteContext, }, watch: { commandContext(newVal, oldVal) { if (JSON.stringify(newVal) === '{}') { this.querySelectNode = '' this.querySelectBusiness = '' this.querySelectDevice = '' this.getAllNetworkPhysicsLink(this); this.$refs.singleTable.clearSelection(); } deep: true }, }, created: function () { this.getAllNetworkPhysicsLinkInit() this.getAllDeviceInit() }, computed: { openTab() { return this.$store.state.openTab; }, activeIndex: { get() { return this.$store.state.activeIndex; }, set(val) { this.$store.commit('set_active_index', val); } }, //命令 createAndCopyCommand() { return NetworkPhysicsCommands.createNetworkPhysicsCommand(this.createAndCopyTitle, this.createAndCopyInitList, this.commandContext) }, deleteNetworkPhysicsCommand() { return NetworkPhysicsCommands.deleteNetworkPhysicsCommand(this.deleteList, this.commandContext) }, updateNetworkPhysicsCommand() { return NetworkPhysicsCommands.updateNetworkPhysicsCommand(this.updateInitList, this.commandContext) }, importNetworkPhysicsCommand() { return NetworkPhysicsCommands.importNetworkPhysicsCommand(this.commandContext) } }, methods: { /** * @Description :单选一行,将所选行进行保存 * @author ::zyh */ handleCurrentChange(val) { this.currentRow = val; }, /** * @Description :表格多选框改变时,将所选行进行保存 * @author ::zyh */ handleSelectionChange(val) { this.multipleSelection = val }, /** * @Description :获取全部网元信息 * @author ::zyh */ getAllDeviceInit: function () { let loadingInstance=loading.openLoading(); let _this = this; DeviceService.getAllDeviceCollection().then(result => { //成功 this.QueryDeviceList = Object.values(result) loadingInstance.close(); }).catch(err => { //失败 loadingInstance.close(); this.InfoTip.errorTip(_this,err); }) }, /** * @Description :获取所有网络物理连接初始化 * @author :zyh */ getAllNetworkPhysicsLinkInit: function () { let _this = this; NetworkPhysicsService.getAllNetPhyLinkCollection().then(result => { _this.NetworkPhysicsLinkList = Object.values(result); console.log(NetworkPhysicsLinkList) }).catch(err => { //失败 _this.$message.error('Error ' + result.body.faultCode + ':' + result.body.faultCause); }); }, /** * @Description :获取所有网络物理连接信息 * @author :zyh */ getAllNetworkPhysicsLink: function(vue){ let _this = vue; NetworkPhysicsService.getAllNetPhyLinkCollection().then(result => { _this.NetworkPhysicsLinkList = Object.values(result); }).catch(err => { //失败 _this.$message.error('Error ' + result.body.faultCode + ':' + result.body.faultCause); }); }, /** * @Description :创建网络物理连接初始化 * @author :zyh */ createNetworkPhysicsLinkInit: function () { this.createAndCopyTitle = this.$t('NetworkPhysicsLinkConfigurationManagement.dialogNetworkPhysicsCreate'); this.createAndCopyInitList = { "nodeName": "", "description": "", "deviceKey": "", "port": "", }; this.createAndCopyCommand.execute(); }, /** * @Description :复制网络物理连接初始化 * @author :zyh */ copyNetworkPhysicsLinkInit: function (){ if(this.multipleSelection.length == 0){ //请选择一条信息进行复制 this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.COPY_SELECT_CODE)) return; }else if(this.multipleSelection.length > 1){ //请只选择一条信息进行复制 this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.COPY_ONLY_ONE_CODE)) return; }else{ this.createAndCopyTitle = this.$t('NetworkPhysicsLinkConfigurationManagement.dialogNetworkPhysicsCopy'); this.createAndCopyInitList = this.multipleSelection[0] this.createAndCopyCommand.execute(); } }, /** * @Description :修改网络物理连接初始化 * @author :zyh */ updateNetworkPhysicsLinkInit: function () { if (this.multipleSelection.length == 0) { this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.UPDATE_SELECT_CODE)) return; } else if (this.multipleSelection.length > 1) { this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.UPDATE_SELECT_CODE)) return; } else { this.updateInitList = { "nodeName": this.multipleSelection[0].nodeName, "description": this.multipleSelection[0].description, "deviceKey": this.multipleSelection[0].deviceKey, "port": this.multipleSelection[0].port, }; this.updateNetworkPhysicsCommand.execute(); } }, /** * @Description :删除网络物理连接初始化(支持批量) * @author :zyh */ deleteNetworkPhysicsLinkInit: function () { if (this.multipleSelection.length == 0) { this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.DELETE_SELECT_CODE)) return; } else { this.deleteList = [] for (var i = 0; i < this.multipleSelection.length; i++) { this.deleteList.push(this.multipleSelection[i]['nodeName']); } this.deleteNetworkPhysicsCommand.execute(); } }, /** * @Description :条件查询网络物理连接 * @author :zyh */ queryNetworkPhysicsLinkByCondition: function () { let _this = this; _this.selectList = this.handleQueryCondition(); let loadingInstance = _this.Loading.openLoading(); NetworkPhysicsService.conditionQueryNetPhyLink(_this.selectList).then(result => { _this.NetworkPhysicsLinkList = Object.values(result); _this.Loading.closeLoading(loadingInstance); _this.InfoTip.successTip(_this, HelperUtil.getStatusCodeObjectByCode(_this.successCode.QUERY_CODE)); }).catch(err => { _this.Loading.closeLoading(loadingInstance); _this.InfoTip.errorTip(_this, err); }) }, importToExcelInit: function () { console.log('导入文件:'); this.importNetworkPhysicsCommand.execute() }, /** * @Description :导出网络物理连接文件 * @author :zyh */ exportToExcelInit: function () { let _this = this; _this.selectList = this.handleQueryCondition(); let loadingInstance = loading.openLoading(); NetworkPhysicsService.downloadNetPhyLink(_this.selectList).then(result => { loadingInstance.close(); }).catch(err => { loadingInstance.close(); this.InfoTip.errorTip(this, err); }); }, handleQueryCondition: function () { let selectList = new Array(); if (this.querySelectNode != '' && this.querySelectNode != null) { selectList.push({ quaryAttribute: '_key', compareSymbol: "like", compareValue: this.querySelectNode, }) } if (this.querySelectBusiness != '' && this.querySelectBusiness != null) { selectList.push({ quaryAttribute: 'description', compareSymbol: "like", compareValue: this.querySelectBusiness, }) } if (this.querySelectDevice != '' && this.querySelectDevice!= null) { selectList.push({ quaryAttribute: 'deviceKey', compareSymbol: "like", compareValue: this.querySelectDevice, }) } return selectList; }, /** * @Description :过滤deviceKey,转为显示deviceName * @author :zyh */ formatDeviceKey: function (row, column) { for (var i = 0; i < this.QueryDeviceList.length; i++) { if (this.QueryDeviceList[i]['deviceKey'] == row.deviceKey) { return this.QueryDeviceList[i]['deviceName'] break } } }, }, } </script> <style scoped> </style>