<template>
	<el-dialog title="我行收费明细" v-dialogDrag :visible.sync="visiable" center destroy-on-close :append-to-body="true" :before-close="beforeClose" width="70%" v-if="visiable">
		<el-form ref="dialogForm" :model="formData" :rules="rules" label-width="120px" class="dialog-wrap">
			<c-collapse v-model="activeNames">
        <el-collapse-item title="收费明细" name="feeDetail">
          <el-row class="card">
            <div class="card-content">
              <c-col :span="12">
                <c-col :span="24">
                  <el-form-item label="费用描述" prop="feetxtinf">
                    <c-input v-model="formData.feetxtinf"
                    customModifykey="feetxtinf" 
                    :markSetData="formData"
                    @change.native="changeData('feetxtinf')"
                    :disabled="formData.dscmodflg !== 'X'"
                    maxlength="45"/>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="费用承担方" prop="rol">
                    <c-select v-model="formData.rol" 
                    customModifykey="rol"
                    :markSetData="formData"
                    @change="changeData('rol')" placeholder="请选择费用承担方">
                      <el-option v-for="item in roleSet" :key="item.value" :label="item.value + ' - ' + item.label" :value="item.value">
                      </el-option>
                    </c-select>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="费用来源">
                    <c-select v-model="formData.src" disabled :code="srcList"/>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="计费开始日期" prop="dat1">
                    <c-date-picker 
                    customModifykey="dat1"
                    :markSetData="formData"
                    v-model="formData.dat1" type="date" disabled @change="changeData('dat1')" :picker-options="begPickOpt" placeholder="选择日期">
                    </c-date-picker>
                  </el-form-item>
                </c-col>
                <c-col :span="24" v-if="formData.commFeeFlag === 'Y'">
                  <el-form-item label="宽限期(天)" prop="graceDays">
                    <c-input-number
                    :min=0
                    :max=20
                    customModifykey="graceDays"
                    :markSetData="formData"
                    :disabled="isGraceDaysDisabled"
                    v-model="formData.graceDays" @change="changeData('graceDays')" />
                  </el-form-item>
                </c-col>
              </c-col>

              <!-- ==================右边================ -->
              <c-col :span="12" style="padding-left: 20px">
                <c-col :span="24">
                  <el-form-item label="费用代码">
                    <!-- <c-select v-model="formData.feecod" disabled placeholder="请选择费用代码">
                      <el-option v-for="item in this.feeCodeSet" :key="item.value" :label="item.value + ' ' + item.label" :value="item.value">
                      </el-option>
                    </c-select> -->
                    <c-input v-model="formData.feecod" disabled placeholder="请选择费用代码"/>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="费用处理方式" prop="dsp">
                    <c-select 
                    customModifykey="dsp"
                    :markSetData="formData"
                    v-model="formData.dsp" dbCode="dspcod" uil="CN" @change="changeData('dsp')" placeholder="请选择费用处理方式">
                    </c-select>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="数量" prop="unt">
                    <c-input-number 
                    :min=0
                    customModifykey="unt"
                    :markSetData="formData"
                    :disabled="isUntDisabled"
                    v-model="formData.unt" @change="changeData('unt')" />
                  </el-form-item>
                </c-col>
                <c-col :span="24" v-if="dat2Visiable">
                  <el-form-item label="计费结束日期" prop="dat2">
                    <c-date-picker 
                    customModifykey="dat2"
                    :markSetData="formData"
                    v-model="formData.dat2" type="date" :disabled="formData.wrkfec.pertyp !== 'n'" @change="changeData('dat2')" placeholder="选择日期">
                    </c-date-picker>
                  </el-form-item>
                </c-col>
                <c-col :span="24" v-if="!dat2Visiable">
                  <el-form-item label="业务效期" prop="dat2dft">
                    <c-date-picker 
                    v-model="formData.dat2dft" type="date" disabled :picker-options="begPickOpt">
                    </c-date-picker>
                  </el-form-item>
                </c-col>
              </c-col>
            </div>
          </el-row>
          <el-row class="card">
            <div class="card-content">
              <c-col :span="12">
                <c-col :span="24">
                  <el-form-item label="收费币种">
                    <c-input v-model="formData.cur" disabled />
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="应收金额">
                    <c-input-currency v-model="formData.ogiamt" disabled :currency="formData.cur" />
                  </el-form-item>
                </c-col>
              </c-col>

              <!-- ==================右边================ -->
              <c-col :span="12" style="padding-left: 20px">
                <c-col :span="24">
                  <c-col :span="12">
                    <el-form-item label="优惠比例" prop="dctrat">
                      <c-col :span="22">
                        <c-input-currency 
                        customModifykey="dctrat"
                        :markSetData="formData.dctrat"
                        :precision="2" v-model="formData.dctrat" @change.native="changeData('dctrat')"></c-input-currency>
                      </c-col>
                      <c-col :span="1" style="float: right; text-align: right">
                        <span>%</span>
                      </c-col>
                    </el-form-item>
                  </c-col>
                  <c-col :span="12">
                    <el-form-item label="最终优惠金额">
                      <c-input-currency v-model="finalAmt" disabled/>
                    </el-form-item>
                  </c-col>
                </c-col>
                <c-col :span="24">
                  <c-col :span="20">
                    <el-form-item label="实收金额">
                      <c-input-currency 
                      customModifykey="amt"
                      :markSetData="formData"
                      :disabled="isAmtDisabled"
                      v-model="formData.amt" :currency="formData.cur" @change="changeData('amt')" />
                    </el-form-item>
                  </c-col>
                  <c-col :span="4">
                    <el-form-item label-width="0px">
                      <c-checkbox
                        style="float: left; margin-left: 15px"
                        customModifykey="roundFlag"
                        :markSetData="formData"
                        v-model="formData.roundFlag"
                        true-label="Y"
                        false-label="N"
                        @change="changeData('roundFlag')"
                        >取整</c-checkbox>
                    </el-form-item>
                  </c-col>
                </c-col>
              </c-col>
            </div>
          </el-row>
          <el-row class="card" v-if="formData.wrkfec">
            <div class="card-content">
              <c-col :span="12">
                <c-col :span="24">
                  <el-form-item label="费率类型">
                    <c-select v-model="formData.wrkfec.calrul" dbCode="CALRUL" uil="CN" disabled placeholder="请选择费率类型">
                    </c-select>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="百分费率" v-if="formData.wrkfec.calrul==='%'" prop="wrkfec.ratcal">
                    <c-col :span="22">
                      <c-input-currency 
                      customModifykey="ratcal"
                      :markSetData="formData.wrkfec"
                      :precision=6 v-model="formData.wrkfec.ratcal" @change="editWrkFec( 'ratcal')"></c-input-currency>
                    </c-col>
                    <c-col :span="1" style="float: right; text-align: right">
                      <span v-if="formData.wrkfec.calrul==='%'">%</span>
                    </c-col>
                  </el-form-item>
                  <el-form-item label="千分费率" v-if="formData.wrkfec.calrul==='1' || formData.wrkfec.calrul==='M'" prop="wrkfec.ratcal">
                    <c-col :span="22">
                      <c-input-currency 
                      customModifykey="ratcal"
                      :markSetData="formData.wrkfec"
                      :precision="6" v-model="formData.wrkfec.ratcal" @change="editWrkFec( 'ratcal')"></c-input-currency>
                    </c-col>
                    <c-col :span="2" style="float: right; text-align: right">
                      <span v-if="formData.wrkfec.calrul==='1'">‰</span>
                    </c-col>
                  </el-form-item>
                  <el-form-item label="万分费率" v-if="formData.wrkfec.calrul==='B'" prop="wrkfec.ratcal">
                    <c-col :span="22">
                      <c-input-currency 
                      customModifykey="ratcal"
                      :markSetData="formData.wrkfec"
                      :precision=6 v-model="formData.wrkfec.ratcal" @change="editWrkFec( 'ratcal')"></c-input-currency>
                    </c-col>
                    <c-col :span="2" style="float: right; text-align: right">
                      <span v-if="formData.wrkfec.calrul==='B'">‱</span>
                    </c-col>
                  </el-form-item>
                  <el-form-item label="固定金额" v-if="formData.wrkfec.calrul==='0'" prop="wrkfec.untamt">
                    <c-col :span="10">
                      <c-input v-model="formData.wrkfec.ratcur" disabled />
                    </c-col>
                    <c-col :span="14">
                      <c-input-currency 
                      customModifykey="untamt"
                      :markSetData="formData.wrkfec"
                      v-model="formData.wrkfec.untamt" :currency="formData.wrkfec.ratcur" @change="editWrkFec( 'untamt')" />
                    </c-col>
                  </el-form-item>
                </c-col>
              </c-col>
              <c-col :span="12" v-if="formData.wrkfec.calrul !== '0'" style="padding-left: 20px">
                <c-col :span="24">
                  <el-form-item label="计费周期">
                    <c-select 
                    customModifykey="pertyp"
                    :markSetData="formData.wrkfec"
                    :filterKey="['d','q','CALMON','y']"
                    :disabled="isUserLevel0"
                    v-model="formData.wrkfec.pertyp" dbCode="PERTYP" uil="CN" placeholder="请选择周期类型" @change="editWrkFec( 'pertyp')">
                    </c-select>
                  </el-form-item>
                </c-col>
                <c-col :span="24">
                  <el-form-item label="计算基准">
                    <c-select v-model="formData.wrkfec.calcbs" dbCode="calcbs" disabled placeholder="请选择计算基准">
                    </c-select>
                  </el-form-item>
                </c-col>
              </c-col>
            </div>
            <div class="card-content" v-if="['%','1','M'].includes(formData.wrkfec.calrul) && formData.commFeeFlag === 'N'">
              <c-col :span="24">
                <c-col :span="12">
                  <el-form-item label="最小周期">
                    <c-input-number 
                    :min=0
                    customModifykey="permin"
                    :markSetData="formData"
                    v-model="formData.wrkfec.permin" @change="editWrkFec('permin')" />
                  </el-form-item>
                </c-col>
                <c-col :span="12" style="padding-left: 20px;">
                  <c-col :span="24">
                    <el-form-item label="From Period">
                      <c-fullbox>
                          <c-input-number
                          style="padding-right: 10px;" 
                          :min=0
                          customModifykey="perbegtr2"
                          :markSetData="formData"
                          v-model="formData.wrkfec.perbegtr2" @change="editWrkFec('perbegtr2')"/>
                          <template slot="footer">
                            <c-input-currency 
                            :precision="2"
                            customModifykey="perrattr2"
                            :markSetData="formData"
                            :disabled="formData.wrkfec.perbegtr2 === 0"
                            v-model="formData.wrkfec.perrattr2" @change="editWrkFec('perrattr2')" />
                          </template>
                      </c-fullbox>
                    </el-form-item>
                  </c-col>
                  <c-col :span="24">
                      <el-form-item label="From Period">
                        <c-fullbox>
                            <c-input-number
                            style="padding-right: 10px;" 
                            :min=0
                            customModifykey="perbegtr3"
                            :markSetData="formData"
                            :disabled="formData.wrkfec.perbegtr2 === 0"
                            v-model="formData.wrkfec.perbegtr3" @change="editWrkFec('perbegtr3')" />
                            <template slot="footer">
                              <c-input-currency 
                              :precision="2"
                              customModifykey="perrattr3"
                              :markSetData="formData"
                              :disabled="formData.wrkfec.perbegtr3 === 0"
                              v-model="formData.wrkfec.perrattr3" @change="editWrkFec('perrattr3')" />
                            </template>
                        </c-fullbox>
                      </el-form-item>
                  </c-col>
                  <c-col :span="24">
                      <el-form-item label="From Period">
                        <c-fullbox>
                            <c-input-number
                            style="padding-right: 10px;" 
                            :min=0
                            customModifykey="perbegtr4"
                            :markSetData="formData"
                            :disabled="formData.wrkfec.perbegtr3===0"
                            v-model="formData.wrkfec.perbegtr4" @change="editWrkFec('perbegtr4')" />
                            <template slot="footer">
                              <c-input-currency 
                              :precision="2"
                              customModifykey="perrattr4"
                              :markSetData="formData"
                              :disabled="formData.wrkfec.perbegtr4===0"
                              v-model="formData.wrkfec.perrattr4" @change="editWrkFec('perrattr4')" />
                            </template>
                        </c-fullbox>
                      </el-form-item>
                  </c-col>
                  <c-col :span="24">
                      <el-form-item label="From Period">
                        <c-fullbox>
                            <c-input-number
                            style="padding-right: 10px;" 
                            :min=0
                            customModifykey="perbegtr5"
                            :markSetData="formData"
                            :disabled="formData.wrkfec.perbegtr4===0"
                            v-model="formData.wrkfec.perbegtr5" @change="editWrkFec('perbegtr5')" />
                            <template slot="footer">
                              <c-input-currency 
                              :precision="2"
                              customModifykey="perrattr5"
                              :markSetData="formData"
                              :disabled="formData.wrkfec.perbegtr5===0"
                              v-model="formData.wrkfec.perrattr5" @change="editWrkFec('perrattr5')" />
                            </template>
                        </c-fullbox>
                      </el-form-item>
                  </c-col>  
                </c-col>
              </c-col>
            </div>
            <div class="card-content" v-if="formData.wrkfec.calrul !== '0'">
              <c-col :span="24">
                <c-col :span="12">
                  <el-form-item label="最小收费币种">
                    <c-select-cur 
                    customModifykey="mincur"
                    :markSetData="formData.wrkfec"
                    v-model="formData.wrkfec.mincur" @change="editWrkFec('mincur')" dbCode="CURTXT"/>
                  </el-form-item>
                </c-col>
                <c-col :span="12" style="padding-left: 20px">
                  <el-form-item label="最小收费金额">
                    <c-input-currency 
                    customModifykey="minamt"
                    :markSetData="formData.wrkfec"
                    v-model="formData.wrkfec.minamt" :currency="formData.wrkfec.mincur" @change="editWrkFec( 'minamt')" />
                  </el-form-item>
                </c-col>
              </c-col>
              <c-col :span="24">
                <c-col :span="12">
                  <el-form-item label="最大收费币种">
                    <c-select-cur 
                    customModifykey="maxcur"
                    :markSetData="formData.wrkfec"
                    v-model="formData.wrkfec.maxcur" @change="editWrkFec('maxcur')" dbCode="CURTXT"/>
                  </el-form-item>
                </c-col>
                <c-col :span="12" style="padding-left: 20px">
                  <el-form-item label="最大收费金额">
                    <c-input-currency 
                    customModifykey="maxamt"
                    :markSetData="formData.wrkfec"
                    v-model="formData.wrkfec.maxamt" :currency="formData.wrkfec.maxcur" @change="editWrkFec('maxamt')" />
                  </el-form-item>
                </c-col>
              </c-col>
            </div>
          </el-row>
        </el-collapse-item>
        <el-collapse-item title="发生额费用明细" name="cbsGrids2" v-if="formData.commCbsLineGrids">
          <el-row class="card">
              <c-col :span="24">
                <el-table
                  :data="formData.commCbsLineGrids"
                  :columns="columns"
                >
                  <el-table-column
                    v-for="(item, key) in columns"
                    :key="key"
                    :label="item.label"
                  >
                    <template slot-scope="scope">
                      <span>{{ ['amt', 'ogiamt', 'feeamt'].includes(item.prop) ? moneyFormat(scope.row[item.prop], scope.row.cur) : scope.row[item.prop] }}</span>
                    </template>
                  </el-table-column>
                </el-table>
              </c-col>
          </el-row>
        </el-collapse-item>
        <el-collapse-item title="费用计算明细" name="feeCalcDetail">
          <el-row class="card" style="margin-top: 20px;">
            <c-col :span="20">
              <el-form-item label-width="0">
                <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="formData.inftxt" disabled>
                </el-input>
              </el-form-item>
            </c-col>
          </el-row>
        </el-collapse-item>
      </c-collapse>
			<!-- ==================左边================ -->
		</el-form>
		<div slot="footer" class="dialog-footer">
			<c-button v-if="!isDispaly" type="primary" @click="saveDialog" style="margin-right: 20px;">确 定</c-button>
			<el-button @click="visiable = false" style="margin-right: 20px;">取 消</el-button>
			<el-button v-if="!isDispaly" @click="resetDialog">重 置</el-button>
		</div>
	</el-dialog>
</template>

<script>
import commonDepend from "~/mixin/commonDepend.js";
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import moment from "moment";

export default {
  inject: ["root"],
  mixins: [commonDepend, commonFunctions],
  props: {
    dialog2: {
      type: Object,
      default: () => {}
    }
  },
  data() {
    return {
      activeNames: ["feeDetail"],
      formData: {
        wrkfec: {}
      },
      begPickOpt: {
        disabledDate(time) {
          return time.Format("yyyyMMdd") < new Date().Format("yyyyMMdd");
        }
      },
      roleSet: [],
      feeCodeSet: [],
      visiable: false,
      rules: {
        "wrkfec.ratcal": [{ required: true, message: "必填" }],
        "wrkfec.untamt": [{ required: true, message: "必填" }],
        rol: [{ required: true, message: "必填" }],
        dsp: [{ required: true, message: "必填" }],
        dat1: [{ validator: this.validateDate, trigger: ["blur", "change"] }],
        dat2: [{ validator: this.validateDate, trigger: ["blur", "change"] }],
        dctrat:  [{ validator: this.validateDctrat, trigger: ["blur", "change"] }],
      },
      columns: [
        {
          label: '说明',
          prop: 'note'
        },
        {
          label: '币种',
          prop: 'cur'
        },
        {
          label: '发生额',
          prop: 'amt'
        },
        {
          label: '生效日期',
          prop: 'valueDate'
        },
        {
          label: '计费开始日期',
          prop: 'dat1'
        },
        {
          label: '计费结束日期',
          prop: 'dat2'
        },
        {
          label: '费用币种',
          prop: 'feecur'
        },
        {
          label: '标准计费金额',
          prop: 'ogiamt'
        },
        {
          label: '计费金额',
          prop: 'feeamt'
        },
      ],
      srcList:[
        {label: "当前交易", value: "T"},
        {label: "当前交易", value: "E"},
        {label: "前手交易", value: "P"},
        {label: "手工添加", value: "U"},
      ],
    };
  },
  computed: {
    isDispaly() {
      return this.$store.state.Status.mode === "display";
		},
		finalAmt() {
      let finalAmt = this.formData.ogiamt - this.formData.amt;
      if (finalAmt < 0) {
        finalAmt = 0;
      }
			return this.moneyFormat(finalAmt, this.formData.cur)
    },
    isUntDisabled(){
      return this.formData.commFeeFlag === 'Y' && this.formData.dsp === 'P';
    },
    isGraceDaysDisabled(){
      return this.formData.dsp === 'P' || this.formData.wrkfec.pertyp === 'd';
    },
    isAmtDisabled(){
      return this.formData.dsp === 'N' || (this.formData.commFeeFlag === 'Y' && this.formData.dsp === 'P')
    },
    isAmeFee(){
      return this.formData.feecod === 'GIAME1' || this.formData.feecod === 'GIAME2' || this.formData.feecod === 'GIAME3'
             || this.formData.feecod === 'GIAME4' || this.formData.feecod === 'GIAME5' || this.formData.feecod === 'GIAME6'
             || this.formData.feecod === 'GIAME7' || this.formData.feecod === 'GIAME8' || this.formData.feecod === 'GIAME9'
    },
    isUserLevel0(){
      return this.$store.state.UserContext.currentOrg.departmentNumber == 1000;
    },
    dat2Visiable() {
      if (!this.formData.dat2dft) {
        return true;
      }
      if (!this.formData.dat2) {
        return true;
      }
      if (moment(this.formData.dat2).diff(moment(this.formData.dat2dft)) <= 0) {
        return true;
      }
      return false;
    }
  },

  methods: {
    //初始化
    init() {
      this.formData = this.dialog2;
      this.roleSet = this.dialog2.roleSet;
      this.feeCodeSet = this.dialog2.feeCodeSet;
    },
    changeData(prop) {
       this.$refs.dialogForm.validate(valid => {
          this.customAddModify(this.formData, prop);
          if (prop === 'rol' || prop === 'feetxtinf') {
            return;
          }
          if (prop === 'dctrat') {
            this.calcFeeamtByDctrat();
            return;
          }
          if (prop === 'roundFlag') {
            if (this.formData.modflg === 'a') {
              return;
            }
          }
          this.formData.modflg = '';
          if (prop === 'dsp') {
            if (this.formData.dsp === 'N') {
              //免收
              this.formData.amt = 0;
              this.changeData('amt');
            } else {
              if (this.formData.dsp === 'X') {
                //现收
                if (this.formData.amt === 0) {
                  this.resetDialogExcludeFec();
                }
              } else if (this.formData.dsp === 'P') {
                if (this.isAmeFee) {
                  return;
                }
                //后收
                if (this.formData.commFeeFlag === 'Y') {
                  this.formData.graceDays = 0;
                  this.formData.unt = 0;
                  this.changeData('unt');
                }
              }
            }
          }
          if (prop === 'amt') {
            this.calcDctratByFeeamt();
            this.formData.modflg = 'a';
            return;
          }
          if (prop === 'dat1' || prop === 'dat2' || prop === 'unt' || prop === 'graceDays' || prop === 'roundFlag') {
              if (prop === 'unt') {
                this.formData.modflg = 'u';
              }
              this.calcFeeamt();
          }
       });
    },
    async calcDctratByFeeamt(){
      let loading = this.loading('正在请求费用计算接口');
      let params = {
        ogiamt: this.formData.ogiamt,
        feeamt: this.formData.amt,
      }
      let rtnmsg = await Api.post(`/${this.moduleRouter()}/calc/dctratByFeeamt`, params);
      if (rtnmsg.respCode === SUCCESS) {
        this.formData.dctrat = rtnmsg.data.dctrat;
      }
      loading.close();
    },
    async calcFeeamtByDctrat(){
      let loading = this.loading('正在请求费用计算接口');
      let params = {
        feecur: this.formData.cur,
        ogiamt: this.formData.ogiamt,
        dctrat: this.formData.dctrat,
      }
      let rtnmsg = await Api.post(`/${this.moduleRouter()}/calc/feeamtByDctrat`, params);
      if (rtnmsg.respCode === SUCCESS) {
        this.formData.amt = rtnmsg.data.feeamt;
        this.formData.modflg = 'a';
      }
      loading.close();
    },
    async calcFeeamt() {
       //计算费用金额
       let loading = this.loading('正在请求费用计算接口');
       let rtnmsg = await Api.post(`/${this.moduleRouter()}/calc/feeamt`, this.formData);
       if (rtnmsg.respCode === SUCCESS) {
          this.formData.infdetstm = rtnmsg.data.infdetstm;
          this.formData.inftxt = rtnmsg.data.inftxt;
          this.formData.unt = rtnmsg.data.unt;
          this.formData.cur = rtnmsg.data.cur;
          this.formData.ogiamt = rtnmsg.data.ogiamt;
          if (this.formData.dsp === 'N') {
            this.formData.amt = 0;
          } else {
            this.formData.amt = rtnmsg.data.amt;
          }
          this.formData.minmaxflg = rtnmsg.data.minmaxflg;
          this.formData.dat1 = rtnmsg.data.dat1;
          this.formData.dat2 = rtnmsg.data.dat2;
          this.formData.commCbsLineGrids = rtnmsg.data.commCbsLineGrids;
          this.formData.dctrat = rtnmsg.data.dctrat;
       }
       loading.close();
    },
    //确定
    saveDialog() {
      this.$refs.dialogForm.validate(valid => {
        if (!valid) {
          console.log("详细填写不合法");
          return;
        }
        this.visiable = false;
        this.$emit("setpanQueryFunc", "submit", this.formData);
      });
    },
    //取消
    beforeClose(done) {
      this.visiable = false;
      done();
    },
    //重置不包含fec
    resetDialogExcludeFec() {
      this.$emit("setpanQueryFunc", "resetExcludeFec", this.formData);
    },
    //重置
    resetDialog() {
      this.$emit("setpanQueryFunc", "reset");
    },
    editWrkFec(key) {
      this.$refs.dialogForm.validate(valid => {
          //要标记wrkfec在setfel中的修改状态
          this.customAddModify(this.formData, "wrkfec");
          this.customAddModify(this.formData.wrkfec, key);
          this.formData.modflg = '';
          if (key === 'pertyp') {
              if (this.formData.wrkfec.pertyp === 'd') {
                this.formData.graceDays = 0;
              }
          }
          if (key === 'perbegtr2') {
             if (this.formData.wrkfec.perbegtr2 === 0) {
               this.formData.wrkfec.perrattr2 = 0
               this.formData.wrkfec.perbegtr3 = 0
               this.formData.wrkfec.perrattr3 = 0
               this.formData.wrkfec.perbegtr4 = 0
               this.formData.wrkfec.perrattr4 = 0
               this.formData.wrkfec.perbegtr5 = 0
               this.formData.wrkfec.perrattr5 = 0
             }
          }
          if (key === 'perbegtr3') {
             if (this.formData.wrkfec.perbegtr3 === 0) {
               this.formData.wrkfec.perrattr3 = 0
               this.formData.wrkfec.perbegtr4 = 0
               this.formData.wrkfec.perrattr4 = 0
               this.formData.wrkfec.perbegtr5 = 0
               this.formData.wrkfec.perrattr5 = 0
             }
          }
          if (key === 'perbegtr4') {
             if (this.formData.wrkfec.perbegtr4 === 0) {
               this.formData.wrkfec.perrattr4 = 0
               this.formData.wrkfec.perbegtr5 = 0
               this.formData.wrkfec.perrattr5 = 0
             }
          }
          if (key === 'perbegtr5') {
             if (this.formData.wrkfec.perbegtr5 === 0) {
               this.formData.wrkfec.perrattr5 = 0
             }
          }
          this.calcFeeamt();
      });
    },
    validateDate(rule, value, cb) {
      if (this.formData.dat1 && this.formData.dat2) {
        if (this.formData.dat1 > this.formData.dat2) {
          cb(new Error("收费开始日期不得大于收费结束日期"));
        }
      }
      cb();
    },
    validateDctrat(rule, value, cb) {
      if (Number(value) > 100) {
        cb(new Error("优惠比例不能大于100%"));
      }
      cb()
    }
  }
};
</script>
<style scoped lang="less">
.dialog-wrap {
  height: 400px;
  overflow: auto;
}
::v-deep .el-dialog__header {
  height: 52px;
  .el-dialog__headerbtn {
    top: 10px;
  }
}
::v-deep .el-dialog__body {
  padding: 10px 15px 10px;
  height: calc(100% - 100px);
  .el-form {
    height: 100%;
  }
}
::v-deep .el-dialog__footer {
  padding: 10px 10px 0;
}

::v-deep .el-form {
  height: 100%!important;
}
.dialog-footer {
  padding: 0 !important;
}
.card {
  width: 100%;
}
.card-title {
  width: 100%;
  padding: 8px 0;
  font-size: 16px;
  color: #000;
}
.card-content {
  width: 100%;
}
::v-deep .el-range-separator {
  width: 8%;
  height: 32px;
  line-height: 32px !important;
}
::v-deep .el-date-editorr {
  height: 32px;
  line-height: 32px;
}
</style>