<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-circle-plus-outline" type="primary" @click="createElineTemplateInit" v-if="createAndCopyCommand.visible"> {{$t('common.createBtn')}} </el-button> <el-button size='mini' icon="el-icon-document" type="primary" @click="copyElineTemplateInit" v-if="createAndCopyCommand.visible"> {{$t('common.copyBtn')}} </el-button> <el-button size='mini' icon="el-icon-edit" type="primary" @click="updateElineTemplateInit" v-if="updateElineCommand.visible"> {{$t('common.updateBtn')}} </el-button> <el-button size='mini' icon="el-icon-delete" type="primary" @click="deleteElineInit" > {{$t('common.deleteBtn')}} </el-button> </div> <!-- 条件查询工具栏 --> <div class="header-search"> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.vpnId") }}:</label> <el-input size='mini' :placeholder="$t('common.placeholder')" v-model="queryVpnId" clearable></el-input> </div> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.serviceName") }}:</label> <el-input size='mini' :placeholder="$t('common.placeholder')" v-model="queryServiceName" clearable></el-input> </div> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.serviceTypeID") }}:</label> <el-select v-model="queryServiceTypeID" size="mini" :placeholder="$t('common.placeholder')" :clearable="true"> <el-option v-for="item in ServiceTypeList" :key="item.serviceTypeID" :label="item.serviceTypeName" :value="item.serviceTypeID"> </el-option> </el-select> </div> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.startDeviceId") }}:</label> <el-select v-model="queryStartDevice" size="mini" :placeholder="$t('common.placeholder')" :clearable="true"> <el-option v-for="item in deviceList" :key="item.deviceKey" :label="item.deviceName" :value="item.deviceKey"> </el-option> </el-select> </div> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.end1DeviceId") }}:</label> <el-select v-model="queryEndDevice" size="mini" :placeholder="$t('common.placeholder')" :clearable="true"> <el-option v-for="item in deviceList" :key="item.deviceKey" :label="item.deviceName" :value="item.deviceKey"> </el-option> </el-select> </div> <div class="search-input-box"> <label style="width: 79px">{{ $t("EthernetELineServiceConfigurationManagement.protectionMode") }}:</label> <el-select v-model="queryProtectionMode" size="mini" :placeholder="$t('common.placeholder')" :clearable="true"> <el-option v-for="item in protectionModeList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> <div class="search-input-box"> <el-button icon="el-icon-search" type="primary" size = 'mini' @click="queryElineByCondition" 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="ElineList" highlight-current-row @current-change="handleCurrentChange" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="28"> </el-table-column> <!-- 新增一列 ,查看路由视图 --> <el-table-column fixed :label="$t('EthernetELineServiceConfigurationManagement.routeView')" width="100"> <template slot-scope="scope"> <el-button style="margin-top:-3.8px" @click.native.prevent="handleRouteView(scope.$index, scope.row)" type="text" size="small"> {{ $t("EthernetELineServiceConfigurationManagement.view") }} </el-button> </template> </el-table-column> <el-table-column text-align="left" prop="vpnId" :label="$t('EthernetELineServiceConfigurationManagement.vpnId')" width="100" :show-overflow-tooltip="true"> </el-table-column> <el-table-column text-align="left" prop="serviceName" :label="$t('EthernetELineServiceConfigurationManagement.serviceName')" width="100" :show-overflow-tooltip="true"> </el-table-column> <el-table-column text-align="left" prop="serviceTypeID" :label="$t('EthernetELineServiceConfigurationManagement.serviceTypeID')" :formatter="formatServerType" :show-overflow-tooltip="true"> </el-table-column> <el-table-column text-align="left" prop="serviceSubnetID" :label="$t('EthernetELineServiceConfigurationManagement.serviceSubnetID')" :formatter="formatServiceSubnetID" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="protectionMode" :label="$t('EthernetELineServiceConfigurationManagement.protectionMode')" :formatter="formatProtectionMode" width="120" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="reversion" :label="$t('EthernetELineServiceConfigurationManagement.reversion')" :formatter="formatReversionFlag" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="wtr" :label="$t('EthernetELineServiceConfigurationManagement.wtr')" width="100" :formatter="formatWtr" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="oamInfo" :label="$t('EthernetELineServiceConfigurationManagement.oamInfo')" :formatter="formatOamInfo" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="ccmInterval" :label="$t('EthernetELineServiceConfigurationManagement.ccmInterval')" :formatter="formatccmInterval" width="100" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="encapsulationType" :label="$t('EthernetELineServiceConfigurationManagement.encapsulationType')" width="100" :formatter="formatEncapsulationType" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="l2AccessType" :label="$t('EthernetELineServiceConfigurationManagement.l2AccessType')" width="100" :formatter="formatL2AccessType" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="vlanAccess" :label="$t('EthernetELineServiceConfigurationManagement.vlanAccess')" width="100" :formatter="formatVlanAccess" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="vlanRangeStart" :label="$t('EthernetELineServiceConfigurationManagement.vlanRangeStart')" width="120" :formatter="formatVlanRangeStart" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="vlanRangeEnd" :label="$t('EthernetELineServiceConfigurationManagement.vlanRangeEnd')" width="120" :formatter="formatVlanRangeEnd" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="vlanSet" :label="$t('EthernetELineServiceConfigurationManagement.vlanSet')" width="120" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="startDeviceId" :label="$t('EthernetELineServiceConfigurationManagement.startDeviceId')" width="100" :formatter="formatStartDeviceId" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="startDevicePort" :label="$t('EthernetELineServiceConfigurationManagement.startDevicePort')" width="120" :formatter="formatStartDevicePort" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="end1DeviceId" :label="$t('EthernetELineServiceConfigurationManagement.end1DeviceId')" width="100" :formatter="formatEnd1DeviceId" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="end1DevicePort" :label="$t('EthernetELineServiceConfigurationManagement.end1DevicePort')" width="120" :formatter="formatEnd1DevicePort" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="isDualHomed" :label="$t('EthernetELineServiceConfigurationManagement.isDualHomed')" width="100" :formatter="formatIsDualHomed" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="end2DeviceId" :label="$t('EthernetELineServiceConfigurationManagement.end2DeviceId')" width="140" :formatter="formatEnd2DeviceId" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="end2DevicePort" :label="$t('EthernetELineServiceConfigurationManagement.end2DevicePort')" width="160" :formatter="formatEnd2DevicePort" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="cosId" label="cos-Id" :formatter="formatCosId" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="limitedBandwidth" :label="$t('EthernetELineServiceConfigurationManagement.limitedBandwidth')" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="qosProfile" :label="$t('EthernetELineServiceConfigurationManagement.qosProfile')" width="100" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="startTime" :label="$t('EthernetELineServiceConfigurationManagement.startTime')" width="100" :show-overflow-tooltip="true"> </el-table-column> <el-table-column prop="elineStatus" :label="$t('EthernetELineServiceConfigurationManagement.elineStatus')" width="100" :show-overflow-tooltip="true"> </el-table-column> </el-table> </el-main> </el-container> <!-- E-line路由视图对话框--> <ElineRouteViewDialog :routeViewDialogVisible.sync = 'routeViewDialogShow' :routePathObject = 'routePathObject' :topologyCollection = 'topologyCollection' :drawGraphSizeConfig = 'drawGraphSizeConfig' :endPointObject = 'endPointObject'> </ElineRouteViewDialog> <CommandExecuteContext v-bind:commands="commandContext"></CommandExecuteContext> </div> </template> <script> import ElineRouteViewDialog from '../DialogComponents/ElineDialog/ElineRouteViewDialog.vue'; import ElRow from "element-ui/packages/row/src/row"; import ElDialog from "../../../node_modules/element-ui/packages/dialog/src/component.vue"; import CreateEthernetELineServiceConfigurationManagementDialog from '../DialogComponents/ElineDialog/CreateEthernetELineServiceConfigurationManagementDialog.vue'; import UpdateEthernetELineServiceConfigurationManagementDialog from '../DialogComponents/ElineDialog/UpdateEthernetELineServiceConfigurationManagementDialog.vue'; import DeleteEthernetELineServiceConfigurationManagementDialog from '../DialogComponents/ElineDialog/DeleteEthernetELineServiceConfigurationManagementDialog.vue'; import ElineService from '@/domain/services/Business/ElineService.js' import ServiceTypeService from '@/domain/services/Business/ServiceTypeService.js' import CDPService from '@/domain/services/Business/CDPService.js' import DeviceService from '@/domain/services/DeviceService.js' import CommandExecuteContext from '@/commands/CommandExecuteContext'; import ElineCommands from '@/commands/ElineCommands' import HelperUtil from "../../utils/HelperUtil"; import ServiceSubnetService from '@/domain/services/Business/ServiceSubnetService.js' export default { components: { ElDialog, ElRow, ElineRouteViewDialog, CommandExecuteContext }, name: 'EthernetELineServiceConfigurationManagementFather', props: { topologyCollection: null, }, data: function () { //存放数据 return { routeViewDialogShow: false, routePathObject: null, endPointObject: null, drawGraphSizeConfig: { svgWidth: 1200, svgHeight: 300, imageWidth: 32, imageHeight: 32, textSize: 14, }, //命令 commandContext: {}, fullscreenLoading: false, //创建修改复制窗口是否打开 dialog_elineCreate: false, dialog_elineUpdate: false, //删除标记 deleteFlag: false, //-----------------表格数据过滤--------------------------------------- //业务类型过滤 ServiceTypeList: [], //保护模式过滤 protectionModeList: [ { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.unprotected') }, { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.one2one') }, { value: 2, label: this.$t('EthernetELineServiceConfigurationManagement.lspone2one') }, ], //是否回滚过滤 reversionFlag: [ { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.is') }, { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.no') } ], //oam选项过滤 oamInfoFlag: [ { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.is') }, { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.no') } ], //ccm间隔时间过滤 ccmIntervalList: [ { ccmIntervalTime: '3.3min', value:1 }, { ccmIntervalTime: '10min', value:2 }, { ccmIntervalTime: '60min', value:3 }, { ccmIntervalTime: '100min', value:4 }, { ccmIntervalTime: '600min', value:5 }, { ccmIntervalTime: '6000min', value:6 } ], //vlan类别过滤 encapsulationTypeList: [ { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.ethernetType') }, { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.vlanType') } ], //l2AccessType类别过滤 l2AccessTypeList:[ { value: 0, label: "untag" }, { value: 1, label: "dot1q" }, { value: 2, label: "qinq" }, ], //是否双规模式过滤 isDualHomedList:[ { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.no') }, { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.is') } ], //vlan设置方式过滤 vlanAccessList: [ { value: 0, label: this.$t('EthernetELineServiceConfigurationManagement.vlanRange1') }, { value: 1, label: this.$t('EthernetELineServiceConfigurationManagement.vlanSet') } ], //cos-id过滤 cosIdList: [ { value: 0, label: '0' }, { value: 1, label: '1' }, { value: 2, label: '2' }, { value: 3, label: '3' }, { value: 4, label: '4' }, { value: 5, label: '5' }, { value: 6, label: '6' }, { value: 7, label: '7' }, ], //*****双向绑定展示数据********* //假数据 ElineList: [], //-------------剩余的变量列表------------------------------------ //qos策略名称下拉框列表绑定 CDPProfileCreationList: [], //业务起点设备下拉框列表 startDeviceIdList: [], //业务起点设备端口下拉框列表 startDevicePortList: [], //业务终点设备下拉框列表 end1DeviceIdList: [], //业务终点设备端口下拉框列表 end1DevicePortList: [], //第二个业务终点设备下拉框列表 end2DeviceIdList: [], //第二个业务终点设备端口下拉框列表 end2DevicePortList: [], //业务状态下拉框列表 elineStatusList: [ { value: "submitted", label: 'submitted' }, { value: "success", label: 'success' }, { value: "failure", label: 'failure' }, ], //获取的eline设备列表(第一个string是子网ID,第二个就是对应的设备) elineDeviceList: [], //*******条件查询*********************** queryVpnId:'', //业务ID queryServiceName: '',//业务名称 queryServiceTypeID: '', //业务类型 queryStartDevice: '', //起点设备 queryEndDevice: '', //终点设备 queryProtectionMode: '',//保护模式 //创建复制标题 createAndCopyTitle: '', //双向绑定弹出窗口input域 form: { vpnId:"", serviceName: "", serviceTypeID: "", protectionMode: "", reversion: "", wtr: "", oamInfo: "", ccmInterval: "", encapsulationType: "", l2AccessType: "", startDeviceId: "", startDevicePort: "", end1DeviceId: "", end1DevicePort: "", isDualHomed:"", end2DeviceId: "", end2DevicePort: "", vlanAccess: "", vlanRangeStart: "", vlanRangeEnd: "", vlanSet: "", cosId: "", limitedBandwidth: "", qosProfile: "", startTime: "", elineStatus: "submitted", serviceSubnetID: "", }, //创建初始化 initList: {}, //保存当前行数据 currentRow: null, //保存多选行数据 multipleSelection: [], //设备列表 deviceList: [], //删除列表 deleteList:[], //子网列表 subnetList: [], } }, //vue加载初始化函数,加载数据 created: function () { console.log('业务管理界面初始化:') this.getSubnetList(); this.getAllElineListInit() //获取下拉框业务类型信息 this.getAllServiceType() //获取下拉框qos信息 this.getAllCDPProfileCreation() this.getAllDevice(); //this.getElineDeviceList() }, 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 ElineCommands.createAndCopyELineCommand(this.createAndCopyTitle, this.form , this.commandContext) }, deleteELineCommand(){ return ElineCommands.deleteELineCommand(this.deleteList, this.commandContext) }, updateElineCommand(){ return ElineCommands.updateELineCommand(this.form, this.commandContext) }, queryNodeTypeChange(){ this.reversionFlag[0].label=this.$t('EthernetELineServiceConfigurationManagement.is'); this.reversionFlag[1].label=this.$t('EthernetELineServiceConfigurationManagement.no'); this.oamInfoFlag[0].label=this.$t('EthernetELineServiceConfigurationManagement.is'); this.oamInfoFlag[1].label=this.$t('EthernetELineServiceConfigurationManagement.no'); this.isDualHomedList[0].label=this.$t('EthernetELineServiceConfigurationManagement.is'); this.isDualHomedList[1].label=this.$t('EthernetELineServiceConfigurationManagement.no'); this.protectionModeList[0].label=this.$t('EthernetELineServiceConfigurationManagement.unprotected'); this.protectionModeList[1].label=this.$t('EthernetELineServiceConfigurationManagement.one2one'); this.protectionModeList[2].label=this.$t('EthernetELineServiceConfigurationManagement.lspone2one'); this.encapsulationTypeList[0].label=this.$t('EthernetELineServiceConfigurationManagement.ethernetType'); this.encapsulationTypeList[1].label=this.$t('EthernetELineServiceConfigurationManagement.vlanType'); this.vlanAccessList[0].label=this.$t('EthernetELineServiceConfigurationManagement.vlanRange1'); this.vlanAccessList[1].label=this.$t('EthernetELineServiceConfigurationManagement.vlanSet'); }, }, methods: { /** * @Description :对点击查看 路由视图的响应函数 * @author : yjz * @param : * @return : * @exception : * @date : */ async handleRouteView(index, row) { let _this = this; _this.endPointObject = { //1.获取到当前点击行的ID。 startDeviceId: row.startDeviceId, end1DeviceId: row.end1DeviceId, end2DeviceId: row.end2DeviceId }; /** 2.实例化一个service,调用getRouteViewObject(id),返回一个该ID的Object,里面带有id,带宽,pathList。*/ let getDataFlag = ElineService.getAllServiceTunnelCollection(row.vpnId).then(result => { //成功 _this.routePathObject = result; _this.routeViewDialogShow = true; }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }); await getDataFlag; }, /** * @Description :单选一行,将所选行进行保存 */ handleCurrentChange(val) { this.currentRow = val; }, /** * @Description :表格多选框改变时,将所选行进行保存 */ handleSelectionChange(val) { this.multipleSelection = val }, /** * --------表格过滤方法------------------------------------------------------ **/ /** * @Description :业务类型过滤 */ formatServerType: function (row, column) { for (var j = 0; j < this.ServiceTypeList.length; j++) { if (row.serviceTypeID == (this.ServiceTypeList[j]['serviceTypeID'])) { return this.ServiceTypeList[j]['serviceTypeName'] } } }, /** * @Description :业务子网过滤 */ formatServiceSubnetID:function (row, column) { for (let i = 0; i < this.subnetList.length; i++) { if (this.subnetList[i]['serviceSubnetID'] === row.serviceSubnetID) { return this.subnetList[i]['serviceSubnetName']; break; } } return row.serviceSubnetID }, /** * @Description :保护模式过滤 */ formatProtectionMode: function (row, column) { for (let i = 0; i < this.protectionModeList.length; i++) { if (this.protectionModeList[i]['value'] === row.protectionMode) { return this.protectionModeList[i]['label']; break; } } }, /** * @Description :是否回滚过滤 */ formatReversionFlag: function (row, column) { for (var i = 0; i < this.reversionFlag.length; i++) { if (this.reversionFlag[i]['value'] === row.reversion) { return this.reversionFlag[i]['label']; break; } } }, /** * @Description :回滚等待时间过滤 */ formatWtr:function (row, column) { if(row.wtr === -999){ return "" } return row.wtr; }, /** * @Description :oamInfo选项过滤 */ formatOamInfo: function (row, column) { if(row.oamInfo === -999){ return "" } for (var i = 0; i < this.oamInfoFlag.length; i++) { if (this.oamInfoFlag[i]['value'] === row.oamInfo) { return this.oamInfoFlag[i]['label']; break; } } }, /** * @Description :ccm间隔时间过滤 */ formatccmInterval: function (row, column) { if(row.ccmInterval === -999){ return "" } for (var i = 0; i < this.ccmIntervalList.length; i++) { if (this.ccmIntervalList[i]['value'] === row.ccmInterval) { return this.ccmIntervalList[i]['ccmIntervalTime']; break; } } }, /** * @Description :vlan类别过滤 */ formatEncapsulationType: function (row, column) { for (var i = 0; i < this.encapsulationTypeList.length; i++) { if (this.encapsulationTypeList[i]['value'] === row.encapsulationType) { return this.encapsulationTypeList[i]['label'] break; } } }, /** * @Description :vlan协议过滤 */ formatL2AccessType:function (row, column) { if(row.l2AccessType === -999){ return "" } for (let i = 0; i < this.l2AccessTypeList.length; i++) { if (this.l2AccessTypeList[i]['value'] === row.l2AccessType) { return this.l2AccessTypeList[i]['label']; break; } } }, /** * @Description :是否为双规模式选项过滤 */ formatIsDualHomed:function (row, column) { for (let i = 0; i < this.isDualHomedList.length; i++) { if (this.isDualHomedList[i]['value'] === row.isDualHomed) { return this.isDualHomedList[i]['label']; break; } } }, /** * @Description :vlan设置方式过滤 */ formatVlanAccess: function (row, column) { if(row.vlanAccess === -999){ return "" } for (var i = 0; i < this.vlanAccessList.length; i++) { if (this.vlanAccessList[i]['value'] === row.vlanAccess) { return this.vlanAccessList[i]['label'] break; } } }, /** * @Description :vlan-range起点过滤 */ formatVlanRangeStart:function (row, column) { if(row.vlanRangeStart === -999){ return "" } return row.vlanRangeStart; }, /** * @Description :vlan-range终点过滤 */ formatVlanRangeEnd:function (row, column) { if(row.vlanRangeEnd === -999){ return "" } return row.vlanRangeEnd; }, /** * @Description :业务起点设备过滤 */ formatStartDeviceId:function (row, column) { for (let i = 0; i < this.deviceList.length; i++) { if (this.deviceList[i]['deviceKey'] === row.startDeviceId) { return this.deviceList[i]['deviceName']; break; } } return row.startDeviceId; }, /** * @Description :业务起点设备端口过滤 */ formatStartDevicePort:function (row, column) { if(row.startDevicePort === -999){ return "" } return row.startDevicePort; }, /** * @Description :业务终点设备过滤 */ formatEnd1DeviceId:function (row, column) { for (let i = 0; i < this.deviceList.length; i++) { if (this.deviceList[i]['deviceKey'] === row.end1DeviceId) { return this.deviceList[i]['deviceName']; break; } } return row.end1DeviceId; }, /** * @Description :业务终点设备端口过滤 */ formatEnd1DevicePort:function (row, column) { if(row.end1DevicePort === -999){ return "" } return row.end1DevicePort; }, /** * @Description :第二个业务终点设备过滤 */ formatEnd2DeviceId:function (row, column) { for (let i = 0; i < this.deviceList.length; i++) { if (this.deviceList[i]['deviceKey'] === row.end2DeviceId) { return this.deviceList[i]['deviceName']; break; } } return row.end2DeviceId; }, /** * @Description :第二个业务终点设备端口过滤 */ formatEnd2DevicePort:function (row, column) { if(row.end2DevicePort === -999){ return "" } return row.end2DevicePort; }, /** * @Description :cosId设置方式过滤 */ formatCosId: function (row, column) { for (let i = 0; i < this.cosIdList.length; i++) { if (this.cosIdList[i]['value'] === row.cosId) { return this.cosIdList[i]['label']; break; } } }, /** * ----------获取处理数据方法------------------------------------------------------ * */ /** * @Description :获取业务子网列表 * @date : 2019/03/19 16:56 */ getSubnetList: function () { //调用domin函数 let _this = this; ServiceSubnetService.getAllEveSubnetCollection().then(result => { //成功 _this.subnetList = Object.values(result); }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /*** * @Description : 获取所有设备列表 * @author : lxy * @date : 2018/12/24 11:29 */ getAllDevice: function () { let _this = this DeviceService.getAllDeviceCollection().then(result => { //成功 _this.optionsDeviceName = Object.values(result) _this.deviceList = Object.values(result) }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /** * @Description :获取下拉框所有业务类型消息 * @date : 2019/03/19 15:20 */ getAllServiceType: function () { console.log('获取全部业务类型信息:') let _this = this ServiceTypeService.getAllServiceTypeCollection().then(result => { //成功 _this.ServiceTypeList = Object.values(result) }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /** * @Description :获取下拉框所有qosfile消息 * @date : 2019/03/19 16:56 */ getAllCDPProfileCreation: function () { console.log('获取全部qosfile信息:CDPProfileCreationList') let _this = this CDPService.getAllCDPCollection().then(result => { //成功 _this.CDPProfileCreationList = Object.values(result) }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /** * @Description :获取设备列表(第一个string是子网ID,第二个就是对应的设备拿的是deviceKey,port) * @date : 2019/03/19 16:56 */ getElineDeviceList: function () { this.elineDeviceList = []; let _this = this ElineService.getElineDeviceList(this.form.serviceTypeID).then(result => { //成功 _this.elineDeviceList = Object.values(result); _this.handleElineDeviceList(); }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }); }, /** * @Description :处理设备列表的信息 * @date : 2019/03/19 16:56 */ handleElineDeviceList: function () { this.startDeviceIdList = []; this.end1DeviceIdList = []; this.end2DeviceIdList = []; for (let i = 0; i < this.elineDeviceList.length; i++) { //遍历设备列表 let elineDevice1 = this.elineDeviceList[i].value; elineDevice1.deviceName = this.handleDeviceKeys(this.elineDeviceList[i].value.deviceKey); this.startDeviceIdList.push(elineDevice1); this.end1DeviceIdList.push(elineDevice1); this.end2DeviceIdList.push(elineDevice1); } }, /*** * @Description : 设备名称处理 * @author : zf * @date : 2018/12/24 16:07 */ handleDeviceKeys: function (deviceKey) { let _this = this //获取设备列表 DeviceService.getAllDeviceCollection().then(result => { //成功 _this.deviceList = Object.values(result) }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }); // let flag = 0;//标记是否查到,0未查到,1查到 for (let i = 0; i < this.deviceList.length; i++) { if (this.deviceList[i].deviceKey === deviceKey) { return this.deviceList[i].deviceName; } } return deviceKey; }, /** * @Description :获取业务信息 * @date : 2019/03/19 15:22 */ getAllElineListInit: function () { console.log('获取全部业务信息:'); let _this = this ElineService.getAllElineCollection().then(result => { //成功 _this.ElineList = Object.values(result); }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /** * @Description :增删改后调用,重新加载table * @date : 2019/03/19 15:24 */ getAllElineList: function (vue) { console.log('获取全部服务器信息:'); let _this = this; ElineService.getAllElineCollection().then(result => { //成功 _this.ElineList = Object.values(result); }).catch(err => { //失败 _this.InfoTip.errorTip(_this, err); }) }, /** * ----------业务处理初始化------------------------------------------------------ * */ /** * @Description :创建业务初始化 * @date : 2019/03/19 15:54 */ createElineTemplateInit: function () { this.createAndCopyTitle = '创建以太网E-Line业务'; this.wtr_input_disable = false this.oaminfo_select_disable = false this.vlanRangeStart_input_disable = false this.vlanRangeEnd_input_disable = false this.vlanRangeSet_input_disable = false this.ccmInterval_select_disable = false this.defaultFlag_select_disable = false this.l2AccessType_select_disable = false; this.form.vpnId = ''; this.form.serviceName = ''; this.form.serviceTypeID = ''; this.form.protectionMode = ''; this.form.reversion = ''; this.form.wtr = ''; this.form.oamInfo = ''; this.form.ccmInterval = ''; this.form.encapsulationType = ''; this.form.l2AccessType = ''; this.form.startDeviceId = ''; this.form.startDevicePort = ''; this.form.end1DeviceId = ''; this.form.end1DevicePort = ''; this.form.isDualHomed = 1; this.form.end2DeviceId = ''; this.form.end2DevicePort = ''; this.form.vlanAccess = ''; this.form.vlanRangeStart = ''; this.form.vlanRangeEnd = ''; this.form.vlanSet = ''; this.form.cosId = ''; this.form.limitedBandwidth = ''; this.form.qosProfile = ''; this.form.startTime = ''; this.form.elineStatus = 'submitted'; this.form.serviceSubnetID = ''; this.initList = this.form; this.createAndCopyCommand.execute(); }, /** * @Description :复制业务信息初始化 * @date : 2019/03/19 16:31 */ copyElineTemplateInit: 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 = '复制以太网E-Line业务'; this.currentRow = this.multipleSelection[0]; this.form.vpnId = this.currentRow.vpnId; this.form.serviceName = this.currentRow.serviceName; this.form.serviceTypeID = this.currentRow.serviceTypeID; this.form.protectionMode = this.currentRow.protectionMode; this.form.reversion = this.currentRow.reversion; this.form.wtr = this.currentRow.wtr; this.form.oamInfo = this.currentRow.oamInfo; this.form.ccmInterval = this.currentRow.ccmInterval; this.form.encapsulationType = this.currentRow.encapsulationType; this.form.l2AccessType = this.currentRow.l2AccessType; this.form.startDeviceId = this.currentRow.startDeviceId; this.form.startDevicePort = this.currentRow.startDevicePort; this.form.end1DeviceId = this.currentRow.end1DeviceId; this.form.end1DevicePort = this.currentRow.end1DevicePort; this.form.isDualHomed = this.currentRow.isDualHomed; this.form.end2DeviceId = this.currentRow.end2DeviceId; this.form.end2DevicePort = this.currentRow.end2DevicePort; this.form.vlanAccess = this.currentRow.vlanAccess; this.form.vlanRangeStart = this.currentRow.vlanRangeStart; this.form.vlanRangeEnd = this.currentRow.vlanRangeEnd; this.form.vlanSet = this.currentRow.vlanSet; this.form.cosId = this.currentRow.cosId; this.form.limitedBandwidth = this.currentRow.limitedBandwidth; this.form.qosProfile = this.currentRow.qosProfile; this.form.startTime = this.currentRow.startTime; this.form.elineStatus = this.currentRow.elineStatus; this.form.serviceSubnetID = this.currentRow.serviceSubnetID; this.createAndCopyCommand.execute(); } }, /** * @Description :修改业务信息初始化 * @date : 2019/03/19 16:03 */ updateElineTemplateInit: 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.currentRow = this.multipleSelection[0]; this.form.vpnId = this.currentRow.vpnId; this.form.serviceName = this.currentRow.serviceName; this.form.serviceTypeID = this.currentRow.serviceTypeID; this.form.serviceSubnetID = this.currentRow.serviceSubnetID; this.form.protectionMode = this.currentRow.protectionMode; this.form.reversion = this.currentRow.reversion; this.form.wtr = this.currentRow.wtr; this.form.oamInfo = this.currentRow.oamInfo; this.form.ccmInterval = this.currentRow.ccmInterval; this.form.encapsulationType = this.currentRow.encapsulationType; this.form.l2AccessType = this.currentRow.l2AccessType; this.form.startDeviceId = this.currentRow.startDeviceId; this.form.startDevicePort = this.currentRow.startDevicePort; this.form.end1DeviceId = this.currentRow.end1DeviceId; this.form.end1DevicePort = this.currentRow.end1DevicePort; this.form.isDualHomed = this.currentRow.isDualHomed; this.form.end2DeviceId = this.currentRow.end2DeviceId; this.form.end2DevicePort = this.currentRow.end2DevicePort; this.form.vlanAccess = this.currentRow.vlanAccess; this.form.vlanRangeStart = this.currentRow.vlanRangeStart; this.form.vlanRangeEnd = this.currentRow.vlanRangeEnd; this.form.vlanSet = this.currentRow.vlanSet; this.form.cosId = this.currentRow.cosId; this.form.limitedBandwidth = this.currentRow.limitedBandwidth; this.form.qosProfile = this.currentRow.qosProfile; this.form.startTime = this.currentRow.startTime; this.form.elineStatus = this.currentRow.elineStatus; this.updateElineCommand.execute(); } }, /** * @Description :删除业务信息初始化 * @date : 2019/03/19 16:36 */ deleteElineInit: function () { if (this.multipleSelection.length === 0) { this.InfoTip.warningTip(this, HelperUtil.getCheckStatusCodeObjectByCode(this.successCode.DELETE_SELECT_CODE)) return; } else if(this.multipleSelection.length > 1){ } else { this.deleteFlag = false; this.deleteList = ""; for (let i = 0; i < this.multipleSelection.length; i++) { this.deleteList = this.multipleSelection[i]['vpnId']; } this.deleteELineCommand.execute(); } }, /** * @Description :条件查询 * @date : 2019/03/19 17:06 */ queryElineByCondition: function () { console.log('业务信息按条件查询:'); if (this.queryVpnId === '' && this.queryServiceName === '' && this.queryServiceTypeID === '' && this.queryStartDevice === ''&& this.queryEndDevice === '' && parseInt(this.queryProtectionMode).toString() === "NaN" ) { //所有查询条件为空点击查询--》重新刷新表格 //this.$options.methods.getAllElineList(this); this.getAllElineListInit(); this.InfoTip.successTip(this,HelperUtil.getStatusCodeObjectByCode(this.successCode.QUERY_CODE)); return; } var selectList = new Array(); if (this.queryVpnId !== '') { selectList.push({ quaryAttribute: 'vpnId', compareSymbol: "like", compareValue: this.queryVpnId, }) } if (this.queryServiceName !== '') { selectList.push({ quaryAttribute: 'serviceName', compareSymbol: "like", compareValue: this.queryServiceName, }) } if (this.queryServiceTypeID !== ''&& this.queryServiceTypeID !== null) { selectList.push({ quaryAttribute: 'serviceTypeID', compareSymbol: "==", compareValue: this.queryServiceTypeID, }) } if (this.queryStartDevice !== '' && this.queryStartDevice !== null) { selectList.push({ quaryAttribute: 'startDeviceId', compareSymbol: "==", compareValue: this.queryStartDevice, }) } if (this.queryEndDevice !== '' && this.queryEndDevice !== null) { selectList.push({ quaryAttribute: 'end1DeviceId', compareSymbol: "==", compareValue: this.queryEndDevice, }) } if (parseInt(this.queryProtectionMode).toString() !== "NaN") { selectList.push({ quaryAttribute: 'protectionMode', compareSymbol: "==", compareValue: this.queryProtectionMode, }) } let _this = this; let loadingInstance = _this.Loading.openLoading(); //按条件查询 ElineService.conditionQueryEline(selectList).then(result => { //成功 _this.ElineList = Object.values(result); _this.Loading.closeLoading(loadingInstance); _this.InfoTip.successTip(_this,HelperUtil.getStatusCodeObjectByCode(_this.successCode.QUERY_CODE)); if (Object.values(result).length === 0) { _this.$message({ type: 'warning', message: '无符合条件查询数据! ', duration: 10000, showClose: true, }) } else { _this.$message({ type: 'success', message: '查询成功! ', duration: 10000, showClose: true, }) } }).catch(err => { //失败 _this.Loading.closeLoading(loadingInstance); _this.InfoTip.errorTip(_this, err); }) }, /** * @Description :清空查询条件 * @date : 2019/03/19 17:06 */ clearQueryCondition:function () { this.queryVpnId = ''; //业务ID this.queryServiceName = '';//业务名称 this.queryServiceTypeID = ''; //业务类型 this.queryStartDevice = ''; //起点设备 this.queryEndDevice = ''; //终点设备 this.queryProtectionMode = '';//保护模式 }, }, watch:{ commandContext(newVal, oldVal){ if(JSON.stringify(newVal) === '{}'){ // this.getAllElineListInit(); this.clearQueryCondition(); } deep: true }, '$i18n.locale' () { this.queryNodeTypeChange() }, }, } </script> <style scoped> </style>