<template>
  <div id="main">
    <!-- 业务模板创建对话框 -->
    <el-dialog v-dialogDrag style="font-size: 10px;" width='1200px' :title="dialogTitle" :visible.sync="dialog_elineTemplateCreate" @close="close()" >
      <el-row>
        <el-form :model="form" inline="true" ref="form" style="width:1100px">
          <el-divider contentPosition="left">{{ $t("EveModelConfigurationManagement.BasicInformation") }}</el-divider>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.ElineTemplateName1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.elineTemplateName"
                        autocomplete="off" style="width:150px"></el-input>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.serviceType1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.serviceTypeID" :placeholder="$t('common.selectOption')"
                         autocomplete="off" style="width:150px" v-on:change="serviceTypeChange">
                <el-option
                  v-for="item in ServiceTypeList"
                  :key="item.serviceTypeID"
                  :label="item.serviceTypeName"
                  :value="item.serviceTypeID">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item  :label="placeHolder" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-checkbox v-model="form.defaultFlag" trueLabel=1; falseLabel=0>{{$t('EveModelConfigurationManagement.setDefaultTemplate')}}</el-checkbox>
            </el-form-item>
          </el-form-item>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.reversion1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.reversion" :placeholder="$t('common.selectOption')"
                         autocomplete="off" v-on:change="reversionCheck" style="width:150px">
                <el-option
                  v-for="item in reversionFlag"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.wtr1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.wtr" autocomplete="off"
                        :disabled="wtr_input_disable" style="width:95px" v-on:change="wtrCheck">
              <template slot="append" style="">{{$t('EthernetELineServiceConfigurationManagement.minute')}}</template>
              </el-input>
              <small style="font-size: 9px">
                {{$t('EthernetELineServiceConfigurationManagement.inputNumber')}}
              </small>
            </el-form-item>
          </el-form-item>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.protectionMode1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select v-model="form.protectionMode" size="mini" :placeholder="$t('common.placeholder1')" style="width: 150px"
                          v-on:change="protectionModeCheck">
                <el-option
                  v-for="item in protectionModeList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.oamInfo1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.oamInfo" :placeholder="$t('common.selectOption')" autocomplete="off"
                         v-on:change="oamInfoCheck" style="width:150px" :disabled="oaminfo_select_disable">
                <el-option
                  v-for="item in oamInfoFlag"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.ccmInterval1')" :label-width="formLabelWidth"
                          style="margin-bottom: -10px;margin-top: -10px; height:28px">
              <el-select v-model="form.ccmInterval" size="mini" :placeholder="$t('common.placeholder1')" style="width: 150px"
                         :disabled="ccmInterval_select_disable" :clearable="true">
                <el-option
                  v-for="item in ccmIntervalList"
                  :key="item.value"
                  :label="item.ccmIntervalTime"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
          </el-form-item>
        </el-form>
      </el-row>
      <el-row>
        <el-form :model="form" inline="true" ref="form" style="margin-bottom: -20px;margin-top:-10px;width:1100px">
          <el-divider contentPosition="left">{{ $t("EveModelConfigurationManagement.vlanInformation") }}</el-divider>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.encapsulationType1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.encapsulationType" :placeholder="$t('common.selectOption')"
                         autocomplete="off" v-on:change="encapsulationTypeCheck" style="width:150px" >
                <el-option
                  v-for="item in encapsulationTypeList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.l2AccessType1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.l2AccessType" :placeholder="$t('common.selectOption')"
                         :disabled="l2AccessType_select_disable" autocomplete="off" style="width:150px" v-on:change="l2AccessTypeCheck">
                <el-option
                  v-for="item in l2AccessTypeList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
          </el-form-item>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.vlanAccess1')" :label-width="formLabelWidth"
                          style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.vlanAccess" :placeholder="$t('common.selectOption')"
                         autocomplete="off" style="width:150px" v-on:change="vlanAccessCheck" :disabled="vlanAccess_select_disable">
                <el-option
                  v-for="item in vlanAccessList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EthernetELineServiceConfigurationManagement.vlanRange')" :label-width="formLabelWidth"
                          style="margin-bottom: -10px;margin-top: -10px;" >
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.vlanRangeStart"
                        autocomplete="off" style="width:150px" :disabled="vlanRangeStart_input_disable" v-on:change="vlanRangeStartCheck"></el-input>
              <span> - </span>
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.vlanRangeEnd"
                        autocomplete="off" style="width:150px" :disabled="vlanRangeEnd_input_disable" v-on:change="vlanRangeEndCheck"></el-input>
              <small style="font-size: 9px">
                {{$t('EthernetELineServiceConfigurationManagement.inputNumber')}}
              </small>
            </el-form-item>
          </el-form-item>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.vlanSet1')" :label-width="formLabelWidth"
                          style="margin-bottom: -10px;margin-top: -10px;">
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.vlanSet" autocomplete="off"
                        style="width:150px" :disabled="vlanRangeSet_input_disable" v-on:change="vlanSetCheck"></el-input>
              <small style="font-size: 9px">
                {{$t('EthernetELineServiceConfigurationManagement.inputNumber1')}}
              </small>
            </el-form-item>
          </el-form-item>
          <el-form-item style="margin-bottom: -10px; float:left">
            <el-form-item :label="$t('EveModelConfigurationManagement.qosProfile1')" :label-width="formLabelWidth"
                          style="margin-bottom: -10px;margin-top: -10px;">
              <el-select v-model="form.qosProfile" size="mini" :placeholder="$t('common.placeholder1')" style="width: 150px" :clearable="true">
                <el-option
                  v-for="item in CDPProfileCreationList"
                  :key="item.profileName"
                  :label="item.profileName"
                  :value="item.profileName">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.cosId1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-select size='mini' v-model="form.cosId" :placeholder="$t('common.selectOption')" autocomplete="off"
                         style="width:150px">
                <el-option
                  v-for="item in cosIdList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item :label="$t('EveModelConfigurationManagement.limitedBandwidth1')" :label-width="formLabelWidth" style="margin-bottom: -10px;margin-top: -10px;">
              <el-input size='mini' :placeholder="$t('common.placeholder1')" v-model="form.limitedBandwidth" v-on:change="limitedBandwidthCheck"
                        autocomplete="off" style="width:95px">
                <template slot="append" style="">{{$t('EthernetELineServiceConfigurationManagement.mbit')}}</template>
              </el-input>
              <small style="font-size: 9px">
                {{$t('EthernetELineServiceConfigurationManagement.inputNumber')}}
              </small>
            </el-form-item>
          </el-form-item>
        </el-form>
      </el-row>
      <div slot="footer" class="dialog-footer">
        <el-button size = 'mini' type="primary" @click="createElineTemplate" v-loading.fullscreen.lock="fullscreenLoading">{{createBtnName}}</el-button>
        <el-button size = 'mini' @click="close()" >{{$t("common.cancel")}}</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
  import ElineTemplateService from '@/domain/services/Business/ElineTemplateService.js'
  import ServiceTypeService from '@/domain/services/Business/ServiceTypeService.js'
  import CDPService from '@/domain/services/Business/CDPService.js'
  import HelperUtil from "../../../utils/HelperUtil";
  import legitimacyCheck from "../../../utils/legitimacyCheck";

  export default {
    name: 'CreateEveModelConfigurationManagementDialog',

    //1.声明从父组件接收value
    props: ['command'],

    data: function () {   //存放数据
      return {
        //对话框名称
        dialogTitle:"业务模板创建",

        dialog_elineTemplateCreate: true,
        title: this.command.title,
        form:this.command.target,
        createBtnName: "创建",

        //window.innerHeight:浏览器的可用高度
        tableHeight : window.innerHeight*0.7,
        fullscreenLoading: false,
        formLabelWidth: '140px',

        //业务类型过滤
        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('EveModelConfigurationManagement.is')
          },
          {
            value:1,
            label:this.$t('EveModelConfigurationManagement.no')
          }
        ],
        //oam选项过滤
        oamInfoFlag:[
          {
            value:0,
            label:this.$t('EveModelConfigurationManagement.is')
          },
          {
            value:1,
            label:this.$t('EveModelConfigurationManagement.no')
          }
        ],
        //vlan设置方式过滤
        vlanAccessList:[
          {
            value:0,
            label: this.$t('EthernetELineServiceConfigurationManagement.vlanRange1')
          },
          {
            value:1,
            label: this.$t('EthernetELineServiceConfigurationManagement.vlanSet')
          }
        ],
        //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"
          },
        ],
        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'
          },
        ],
        //是否默认
        defaultFlagList:[
          {
            value:1,
            label: this.$t('EveModelConfigurationManagement.default')
          },
          {
            value:0,
            label: this.$t('EveModelConfigurationManagement.nonDefault')
          }
        ],
        //qos策略名称下拉框列表绑定
        CDPProfileCreationList:[],
        //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
          }
        ],

        //弹框中的窗口是否可输入约束
        wtr_input_disable1:false,
        oaminfo_select_disable:false,
        vlanRangeStart_input_disable:false,
        vlanRangeEnd_input_disable:false,
        vlanRangeSet_input_disable:false,
        ccmInterval_select_disable:false,
        l2AccessType_select_disable:false,

        //占位符
        placeHolder: " ",
      }
    },
    //vue加载初始化函数,加载数据
    created:function(){
      //获取下拉框业务类型信息
      this.getAllServiceType();
      //获取下拉框qos信息
      this.getAllCDPProfileCreation();
      //初始化过滤
      this.initCheck();
    },
    computed: {
      openTab () {
        return this.$store.state.openTab;
      },
      activeIndex:{
        get () {
          return this.$store.state.activeIndex;
        },
        set (val) {
          this.$store.commit('set_active_index', val);
        }
      }
    },
    watch:{
    },
    methods: {
      //过滤
      initCheck:function () {
        this.wtr_input_disable = false
        this.vlanRangeStart_input_disable = false
        this.vlanRangeEnd_input_disable = false
        this.vlanRangeSet_input_disable = false
        this.oaminfo_select_disable = false
        this.ccmInterval_select_disable = false
        this.l2AccessType_select_disable = false;

        //vlan协议选择
        if(this.form.l2AccessType === 0){
          this.form.vlanAccess = 1;
          this.vlanAccess_select_disable = true;
        }

        //根据vlan设置方式设置range、set字段是否变灰
        if(this.form.vlanAccess === 0){
          this.vlanRangeSet_input_disable = true
          this.form.vlanSet = ""
        }else if(this.form.vlanAccess === 1){
          this.vlanRangeStart_input_disable = true
          this.vlanRangeEnd_input_disable = true
          this.form.vlanRangeStart = "";
          this.form.vlanRangeEnd = ""
        }

        //根据是否回滚设置回滚时间字段是否变灰
        if(this.form.reversion === 1){
          this.wtr_input_disable = true
          this.form.wtr = ""
        }
        //根据保护模式设置oam是否可选
        if(this.form.protectionMode === 0){
          this.oaminfo_select_disable = false;
        }else if(this.form.protectionMode === 1 || this.form.protectionMode === 2){
          this.oaminfo_select_disable = true;
          this.form.oaminfo = ""
        }
        //根据ocm选项设置ccm间隔时间
        if(this.form.oamInfo === 1){
          this.ccmInterval_select_disable = true;
          this.form.ccmInterval = ""
        }
        //encapsulationType为vlan-tye时,l2AccessType可选
        if (this.form.encapsulationType === 0){
          this.l2AccessType_select_disable = true;
          this.vlanAccess_select_disable = true;
          this.vlanRangeStart_input_disable = true;
          this.vlanRangeEnd_input_disable = true;
          this.vlanRangeSet_input_disable =true;
          this.form.l2AccessType = "";
          this.form.vlanAccess = "";
          this.form.vlanRangeStart = "";
          this.form.vlanRangeEnd = "";
          this.form.vlanSet = ""
        }else{
        }

        //判断按钮名称是创建还是复制
        if(this.title === "业务模板的复制"){
          this.createBtnName = this.$t('common.copyBtn');
          this.dialogTitle = this.$t('EveModelConfigurationManagement.CopyElineTemplate');
        }else{
          this.createBtnName = this.$t('common.createBtn');
          this.dialogTitle = this.$t('EveModelConfigurationManagement.CreateElineTemplate');
        }
      },

      //根据是否回滚限制回滚时间是否可填
      reversionCheck:function(){
        if(this.form.reversion === 1){
          this.wtr_input_disable = true;
          this.form.wtr = ""
        }else{
          this.wtr_input_disable = false
        }
        return
      },

      //判断回滚时间是否为负
      wtrCheck:function () {
        let legCheck = legitimacyCheck();
        let IslegCheck = legCheck.positiveIntegerCheck(this.form.wtr);
        if(IslegCheck === false){
          this.form.wtr = "";
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.inputInteger')})
        }
      },

      //判断vlan-rang起点是否为负
      vlanRangeStartCheck:function () {
        let legCheck = legitimacyCheck();
        let IslegCheck = true;
        //填写内容不为空
        if(this.form.vlanRangeStart !== ""){
          IslegCheck = legCheck.positiveIntegerCheck(this.form.vlanRangeStart);
        }
        if(IslegCheck === false){
          this.form.vlanRangeStart = "";
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.inputInteger')})
          return
        }
        //判断起点是否小于终点
        if(this.form.vlanRangeEnd !== null && this.form.vlanRangeEnd !== ""){
          if(parseInt(this.form.vlanRangeEnd) < parseInt(this.form.vlanRangeStart)){
            this.form.vlanRangeStart = "";
            this.InfoTip.warningTip(this, {message: this.$t('EthernetELineServiceConfigurationManagement.vlanRangeStartGreaterEnd')})
          }
        }
      },

      //判断vlan-rang终点是否为负
      vlanRangeEndCheck:function () {
        let legCheck = legitimacyCheck();
        let IslegCheck = true;
        //填写内容不为空
        if(this.form.vlanRangeEnd !== ""){
          IslegCheck = legCheck.positiveIntegerCheck(this.form.vlanRangeEnd);
        }
        if(IslegCheck === false){
          this.form.vlanRangeEnd = "";
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.inputInteger')})
          return
        }
        //判断起点是否小于终点
        if(this.form.vlanRangeStart !== null && this.form.vlanRangeStart !== ""){
          if(parseInt(this.form.vlanRangeEnd) < parseInt(this.form.vlanRangeStart)){
            this.form.vlanRangeEnd = "";
            this.InfoTip.warningTip(this, {message: this.$t('EthernetELineServiceConfigurationManagement.vlanRangeStartSmallerEnd')})
          }
        }
      },

      //判断最高带宽是否为负
      limitedBandwidthCheck:function () {
        let legCheck = legitimacyCheck();
        let IslegCheck = legCheck.positiveIntegerCheck(this.form.limitedBandwidth);
        if(IslegCheck === false){
          this.form.limitedBandwidth = "";
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.inputInteger')})
        }
      },

      //根据保护模式处理oaminfo字段
      protectionModeCheck:function(){
        if(this.form.protectionMode === 0){
          this.form.oamInfo = 1;
          this.form.ccmInterval = "";
          this.oaminfo_select_disable = false;
          this.ccmInterval_select_disable = true
        }else{
          this.form.oamInfo = 0;
          if(this.form.protectionMode === 1){this.form.ccmInterval = 2}
          if(this.form.protectionMode === 2){this.form.ccmInterval = 1}
          this.oaminfo_select_disable = true;
          this.ccmInterval_select_disable = false
        }
        return
      },

      //当选择utag时,vlan设置方式选择vlan-set
      l2AccessTypeCheck:function () {
        this.form.vlanRangeStart = "";
        this.form.vlanRangeEnd = "";
        this.form.vlanSet = "";
        if(this.form.l2AccessType === 0){
          this.form.vlanAccess = 1;
          this.vlanAccess_select_disable = true;
          this.vlanAccessCheck();
        }else{
          this.form.vlanAccess = "";
          this.vlanAccess_select_disable = false;
          this.vlanRangeStart_input_disable = false;
          this.vlanRangeEnd_input_disable = false;
        }
      },

      //根据vlan设置方式修改start-range、endrange、vlan-set是否可disable
      vlanAccessCheck:function(){
        if(this.form.vlanAccess === 0){
          this.form.vlanSet = '';
          this.vlanRangeStart_input_disable = false;
          this.vlanRangeEnd_input_disable = false;
          this.vlanRangeSet_input_disable = true
        }else{
          this.form.vlanRangeStart = "";
          this.form.vlanRangeEnd = "";
          this.vlanRangeStart_input_disable = true;
          this.vlanRangeEnd_input_disable = true;
          this.vlanRangeSet_input_disable = false
        }
        return
      },

      //vlanset检查
      vlanSetCheck:function () {
        let legCheck = legitimacyCheck();
        let IslegCheck = legCheck.portCheck(this.form.vlanSet)
        if(IslegCheck === false){
          this.form.vlanSet = "";
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.inputInteger')})
        }
      },

      //根据vlan类别,确定vlan协议是否可选,encapsulationType为vlan-tye时可选
      encapsulationTypeCheck:function () {
        if(this.form.encapsulationType === 1){    //encapsulationType为vlan-tye
          this.l2AccessType_select_disable = false;
          this.vlanAccess_select_disable = false;
          this.vlanRangeStart_input_disable = false;
          this.vlanRangeEnd_input_disable = false;
          this.vlanRangeSet_input_disable =false;
        }else{
          this.l2AccessType_select_disable = true;
          this.vlanAccess_select_disable = true;
          this.vlanRangeStart_input_disable = true;
          this.vlanRangeEnd_input_disable = true;
          this.vlanRangeSet_input_disable =true;
          this.form.l2AccessType = '';
          this.form.vlanAccess = '';
          this.form.vlanRangeStart = "";
          this.form.vlanRangeEnd = "";
          this.form.vlanSet = ''
        }
      },

      //根据oam选项设置ccm间隔时间
      oamInfoCheck:function(){
        if(this.form.oamInfo === 1){
          this.ccmInterval_select_disable = true
          this.form.ccmInterval = ""
        }else{
          this.ccmInterval_select_disable = false
          this.form.ccmInterval = ''
        }
      },

      //在点击创建或者删除之前检查数据是否都有填写
      finalCheck:function () {
        //业务模板名称是否为空
        if(this.form.elineTemplateName === "" || this.form.elineTemplateName === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.serviceNameEmpty')});
          return false;
        }

        //业务类型是否为空
        if(this.form.serviceTypeID === "" || this.form.serviceTypeID === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.serviceTypeIDEmpty')});
          return false;
        }

        //是否回滚是否为空
        if(this.form.reversion === "" || this.form.reversion === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.reversionEmpty')});
          return false;
        }

        //回滚等待时间是否为空
        if(this.form.reversion === 0){  //是否回滚选是,那么回滚时间不能为空
          if(this.form.wtr === "" || this.form.wtr === null){
            this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.wtrEmpty')});
            return false;
          }
        }

        //保护模式是否为空
        if(this.form.protectionMode === "" || this.form.protectionMode === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.protectionModeEmpty')});
          return false;
        }

        //oam选项是否为空
        if(this.form.protectionMode === 0){  //保护模式选unprotect,那么oam选项为空,剩余的选择都不能为空
          if(this.form.oamInfo === "" || this.form.oamInfo === null){
            this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.oamInfoEmpty')});
            return false;
          }
        }

        //ccm间隔时间是否为空
        if(this.form.protectionMode !== 0){  //保护模式选unprotect,那么oam选项为空,剩余的选择都不能为空
          if(this.form.oamInfo === "" || this.form.oamInfo === null){
            this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.ccmIntervalEmpty')});
            return false;
          }
        }

        //封装类别是否为空
        if(this.form.encapsulationType === "" || this.form.encapsulationType === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.encapsulationTypeEmpty')});
          return false;
        }

        //封装类别选vlan-type,当前模式下的vlan不应为空
        if(this.form.encapsulationType === 1){
          //vlan协议是否为空
          if(this.form.l2AccessType === "" || this.form.l2AccessType === null){
            this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.l2AccessTypeEmpty')});
            return false;
          }
          //vlan设置方式是否为空
          if(this.form.vlanAccess === "" || this.form.vlanAccess === null){
            this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.vlanAccessEmpty')});
            return false;
          }
          //vlan设置方式选择range,起点和终点不能为空
          if(this.form.vlanAccess === 0){
            //vlan-range起点是否为空
            if(this.form.vlanRangeStart === "" || this.form.vlanRangeStart === null){
              this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.vlanRangeStartEmpty')});
              return false;
            }
            //vlan-range终点是否为空
            if(this.form.vlanRangeEnd === "" || this.form.vlanRangeEnd === null){
              this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.vlanRangeEndEmpty')});
              return false;
            }
          }else{
            //vlan-set集合是否为空
            if(this.form.vlanSet === "" || this.form.vlanSet === null){
              this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.vlanSetEmpty')});
              return false;
            }
          }
        }

        //qos策略名称是否为空
        if(this.form.qosProfile === "" || this.form.qosProfile === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.qosProfileEmpty')});
          return false;
        }

        //cos-Id是否为空
        if(this.form.cosId === "" || this.form.cosId === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.cosIdEmpty')});
          return false;
        }

        //最高带宽是否为空
        if(this.form.limitedBandwidth === "" || this.form.limitedBandwidth === null){
          this.InfoTip.warningTip(this, {message: this.$t('EveModelConfigurationManagement.limitedBandwidthEmpty')});
          return false;
        }

        //以上问题均没有出现,可以进行创建
        return true;
      },

      /***
       *  ------------获取---------------------------------------------------------------
       */
      /**
       * @Description  :获取下拉框所有业务类型消息
       * @date         : 2019/03/19 15:20
       */
      getAllServiceType: function (){
        //调用domin函数
        let _this = this;
        ServiceTypeService.getAllServiceTypeCollection().then(result => {
          //成功
          _this.ServiceTypeList = result
        }).catch(err => {
          //失败
          _this.InfoTip.errorTip(_this, err);
        })
      },

      /**
       * @Description  :获取下拉框所有qosfile消息
       * @date         : 2019/03/19 16:56
       */
      getAllCDPProfileCreation: function (){
        console.log('获取全部qosfile信息:')
        //调用domin函数
        let _this = this;
        CDPService.getAllCDPCollection().then(result => {
          //成功
          _this.CDPProfileCreationList = result
        }).catch(err => {
          //失败
          _this.InfoTip.errorTip(_this, err);
        })
      },

      /***
       * -------------创建和复制---------------------------------------------------------
       */
      /**
       * @Description  :创建业务模板
       * @date         : 2019/03/19 15:59
       */
      createElineTemplate: function () {
        //检查输入情况
        if(this.finalCheck() === false){
          return;
        }
        this.handleCreateElineModelData();
        let _this = this;
        let loadingInstance = _this.Loading.openLoading();
        ElineTemplateService.addElineTemplate({
          elineTemplateKey:'',
          elineTemplateName:this.form.elineTemplateName,
          serviceTypeID:this.form.serviceTypeID,
          protectionMode:this.form.protectionMode,
          reversion:this.form.reversion,
          wtr:parseInt(this.form.wtr),

          oamInfo:this.form.oamInfo,
          ccmInterval:this.form.ccmInterval,
          encapsulationType:this.form.encapsulationType,
          l2AccessType:this.form.l2AccessType,
          vlanAccess:this.form.vlanAccess,
          vlanRangeStart:parseInt(this.form.vlanRangeStart),

          vlanRangeEnd:parseInt(this.form.vlanRangeEnd),
          vlanSet:this.form.vlanSet,
          cosId:this.form.cosId,
          limitedBandwidth:parseInt(this.form.limitedBandwidth),
          qosProfile:this.form.qosProfile,
          defaultFlag:parseInt(this.form.defaultFlag),

          delFlag: 0,
          modifyTime: ''
        }).then(result => {
          //成功
          this.command.done();
          _this.Loading.closeLoading(loadingInstance);
          _this.InfoTip.successTip(_this,HelperUtil.getStatusCodeObjectByCode(_this.successCode.ADD_CODE));

        }).catch(err => {
          //失败
          this.handleDataFrom999ToNull();
          _this.Loading.closeLoading(loadingInstance);
          _this.InfoTip.errorTip(_this, err);
        })
      },

      /**
       * 内容处理,把int类型的字段为""的,都赋值为-999
       */
      handleCreateElineModelData:function () {
        //vlan协议
        if(this.form.l2AccessType === ""){
          this.form.l2AccessType = -999;
        }
        //vlan-range起点
        if(this.form.vlanRangeStart === ""){
          this.form.vlanRangeStart = -999;
        }
        //vlan-range终点
        if(this.form.vlanRangeEnd === ""){
          this.form.vlanRangeEnd = -999;
        }
        //回滚等待时间
        if(this.form.wtr === ""){
          this.form.wtr = -999;
        }
        //oam选项
        if(this.form.oamInfo === ""){
          this.form.oamInfo = -999;
        }
        //ccm间隔时间
        if(this.form.ccmInterval === ""){
          this.form.ccmInterval = -999;
        }
        //vlan设置方式
        if(this.form.vlanAccess === ""){
          this.form.vlanAccess = -999;
        }
      },

      /**
       * 内容处理,把int类型的字段为-999的,都赋值为""
       */
      handleDataFrom999ToNull:function () {
        //vlan协议
        if(this.form.l2AccessType === -999){
          this.form.l2AccessType = "";
        }
        //vlan-range起点
        if(this.form.vlanRangeStart === -999){
          this.form.vlanRangeStart = "";
        }
        //vlan-range终点
        if(this.form.vlanRangeEnd === -999){
          this.form.vlanRangeEnd = "";
        }
        //回滚等待时间
        if(this.form.wtr === -999){
          this.form.wtr = "";
        }
        //oam选项
        if(this.form.oamInfo === -999){
          this.form.oamInfo = "";
        }
        //ccm间隔时间
        if(this.form.ccmInterval === -999){
          this.form.ccmInterval = "";
        }
        //vlan设置方式
        if(this.form.vlanAccess === -999){
          this.form.vlanAccess = "";
        }
      },

      /***
       * 关闭对话框
       */
      close:function () {
        this.command.done()
      }
    },
  }
</script>

<style scoped>
  /*!* 外层布局容器样式 *!*/
  .el-header {
    background-color: #f9fafc;
    color: #333;
    line-height: 40px;
  }
  /deep/ .el-input__inner{
    height: 28px !important;
  }
  /deep/ .el-input-group__append{
    padding-left: 0px !important;
    padding-right: 0px !important;
    font-size: 9px !important;
  }
</style>