<template>
  <div v-if="pageStatus == 0">配置加载中...</div>
  <div v-else-if="pageStatus == 1">此页面不对此账号开放</div>
  <div v-else-if="pageStatus == 2">
    没有此页内容的配置权限，请检查集团上的配置
  </div>
  <div v-else-if="pageStatus == 3">加载发生错误</div>
  <div v-else-if="pageStatus == 4" class="app-container">
    <div class="card mx-auto shadow" style="width: 310px">
      <div class="card-body">
        <el-form
          ref="ruleForm"
          :model="ruleForm"
          :rules="rules"
          label-width="80px"
        >
          <el-form-item label="当前方案">
            {{ currentDiscountName }}
          </el-form-item>

          <el-form-item label="变改方案">
            <el-select
              v-model="ruleForm.discountSetting"
              placeholder="请选择优惠方案"
              clearable
              size="small"
              style="width: 100px"
              @change="discountSettingChang"
            >
              <el-option label="无" value="0"></el-option>
              <el-option label="满减" value="1"></el-option>
              <el-option label="立减" value="2"></el-option>
              <el-option label="直降" value="3"></el-option>
              <el-option label="阶梯直降" value="4"></el-option>
            </el-select>
            <button
              href="#"
              type="button"
              @click="save"
              class="btn btn-primary btn-sm ml-3 mb-1"
            >
              执行
            </button>
          </el-form-item>
        </el-form>
      </div>
    </div>

    <hr />
    <el-dialog
      :visible.sync="openDialog"
      width="520px"
      append-to-body
      :title="
        ['', '满减方案', '立减方案', '直降方案', '阶梯直降'][discountSetting]
      "
    >
      <el-form
        ref="updateForm"
        :model="updateForm"
        :rules="rules"
        label-width="170px"
      >
        <el-form-item label="方案名称" prop="grade" class="input-group-sm">
          <input
            v-model="updateForm.grade"
            placeholder=""
            class="form-control form-control-sm w-50"
          />
        </el-form-item>
        <el-form-item label="油品名称" prop="oilName">
          <select
            v-model="updateForm.oilName"
            class="form-control form-control-sm w-50"
            :disabled="ladderUp"
          >
            <option
              v-for="dict in filterOilNameOptions"
              :key="dict.oilName"
              :value="dict.oilName"
            >
              {{ dict.oilName }}
            </option>
          </select>
        </el-form-item>

        <!-- 阶梯直降没有此规则 -->
        <el-form-item
          label="优惠条件"
          prop="gasoilDiscountAmt"
          :rules="{
            required: discountSetting != 4,
            message: '请填写优惠条件',
            trigger: 'change',
          }"
          v-if="discountSetting != 4"
        >
          <el-radio-group
            v-model="updateForm.discountTerm"
            v-if="discountSetting == 3"
          >
            <el-radio label="2">按加油金额</el-radio>
            <el-radio label="1">按加油升数</el-radio>
          </el-radio-group>
          <div
            v-show="
              updateForm.discountTerm == 2 ||
              updateForm.discountTerm == 1 ||
              discountSetting == 1 ||
              discountSetting == 2
            "
          >
            {{ ["", "每满", "满", "满"][discountSetting] }}
            <!-- <el-input-number
              v-model="updateForm.discountAmt"
              size="mini"
              :min="0"
            /> -->
            <input
              v-model="updateForm.discountAmt"
              class="form-control form-control-sm"
              style="width: 50px; display: inline-block"
            />

            <span>{{
              updateForm.discountTerm == 1 && discountSetting == 3 ? "L" : "元"
            }}</span>
            ，{{ ["", "减", "减", "每升优惠"][discountSetting] }}
            <!-- <el-input-number
              v-model="updateForm.gasoilDiscountAmt"
              size="mini"
              :min="0"
            /> -->
            <input
              v-model="updateForm.gasoilDiscountAmt"
              class="form-control form-control-sm"
              style="width: 50px; display: inline-block"
            />
            元
          </div>
        </el-form-item>

        <!-- 阶梯直降没有此规则 -->
        <el-form-item
          label="会员日"
          prop="discountSettingFlag"
          :rules="{
            required: discountSetting != 4,
            message: '请选择是否开启会员日',
            trigger: 'change',
          }"
          v-if="discountSetting != 4"
        >
          <el-radio-group v-model="updateForm.discountSettingFlag">
            <el-radio label="0">关闭</el-radio>
            <el-radio label="1">开启</el-radio>
          </el-radio-group>
        </el-form-item>

        <el-form-item
          label="会员日周期类型"
          prop="discountType"
          v-show="updateForm.discountSettingFlag == 1"
          :rules="{
            required: updateForm.discountSettingFlag == 1,
            message: '请选择会员日的周期类型',
            trigger: 'change',
          }"
        >
    
          <select
            v-model="updateForm.discountType"
            class="form-control form-control-sm w-50"
            @change="timeClear"
          >
            <option value="1">每周指定日</option>
            <option value="2">每月指定日</option>
            <option value="3">固定活动日</option>
          </select>

          <div
            v-show="updateForm.discountType != 3"
            style="
              display: flex;
              flex-wrap: wrap;
              border-style: solid;
              border-color: #f5f7fa;
            "
          >
            <div
              v-for="(item, index) in timeSelect[updateForm.discountType]"
              :key="index"
              style="margin: 3px"
            >
              <div
                class="hover-style"
                style="
                  border-radius: 5px;
                  font-weight: bold;
                  font-size: 12px;
                  cursor: pointer;
                "
                @click="clickCalendar(index)"
              >
                <div>{{ item }}</div>
                <div
                  v-if="updateForm.collectClickCalendar.indexOf(index) > -1"
                  style="
                    width: 4px;
                    height: 4px;
                    border-radius: 50%;
                    background-color: red;
                    position: relative;
                    left: calc(50% - 2px);
                  "
                ></div>
                <div v-else style="width: 4px; height: 4px"></div>
              </div>
            </div>
          </div>
          <div v-show="updateForm.discountType == 3" >
            <el-date-picker
              clearable
              size="small"
              style="width: 200px"
              v-model="updateForm.collectClickDay"
              type="dates"
              value-format="yyyy-MM-dd"
              placeholder="选择提醒时间设置"
            >
            </el-date-picker>
          </div>
        </el-form-item>

        <el-form-item
          label="会员日优惠条件"
          prop="discountActivityAmt"
          v-show="updateForm.discountSettingFlag == 1"
          :rules="{
            required: updateForm.discountSettingFlag == 1,
            message: '请填写会员日的优惠金额',
            trigger: 'change',
          }"
        >
          <div>
            {{ ["", "每满", "满", "满"][discountSetting] }}
            <!--
            <el-input-number
              v-model="updateForm.discountAmt"
              size="mini"
              :min="0"
              disabled
            />
            -->
            <input
              v-model="updateForm.discountAmt"
              class="form-control form-control-sm"
              style="width: 50px; display: inline-block"
              disabled
            />

            <span>{{
              updateForm.discountTerm == 1 && discountSetting == 3 ? "L" : "元"
            }}</span>
            ，{{ ["", "减", "减", "每升优惠"][discountSetting] }}
            <input
              v-model="updateForm.discountActivityAmt"
              class="form-control form-control-sm"
              style="width: 50px; display: inline-block"
            />元
          </div>
        </el-form-item>

        <el-form-item label="叠加等级优惠" prop="vipDiscountyPlus">
          <el-radio-group v-model="updateForm.vipDiscountyPlus">
            <el-radio label="1">叠加</el-radio>
            <el-radio label="0">不叠加</el-radio>
          </el-radio-group>
          <!--
          <div style="margin-left: 20px; color: red; font-size: 12px">
            注："否" 客户只享受 {{ discountName }} 优惠
          </div>
          -->
        </el-form-item>

        <!--
        <el-form-item label="可否叠加劵" prop="couponPlus">
          <el-radio-group v-model="updateForm.couponPlus">
            <el-radio label="1">是</el-radio>
            <el-radio label="0">否</el-radio>
          </el-radio-group>
          <div style="margin-left: 20px; color: red; font-size: 12px">
            注："否" 客户只享受 {{ discountName }} 优惠
          </div>
        </el-form-item>
        -->

        <!-- 只有阶梯直降有此规则 -->
        <el-form-item
          label="优惠条件"
          prop="discountTerm"
          :rules="{
            required: discountSetting == 4,
            message: '请填写优惠条件',
            trigger: 'change',
          }"
          v-if="discountSetting == 4"
        >
          <el-radio-group v-model="updateForm.discountTerm">
            <el-radio label="2">按加油金额</el-radio>
            <el-radio label="1">按加油升数</el-radio>
          </el-radio-group>
        </el-form-item>

        <!-- 只有阶梯直降有此规则 -->
        <el-form-item
          label="阶梯设置"
          prop="list"

          v-if="discountSetting == 4"
        >
          <el-button
            icon="el-icon-plus"
            size="mini"
            class="mb-3 mr-4"
            @click="addLadder"
            type="secondary"
          >
            添加规则
          </el-button>
        </el-form-item>

        <div
          class="mx-auto mb-4 bg-light pt-4 pb-2 px-1 rounded"
          style="width: 450px"
          v-if="discountSetting == 4"
        >
          <div
            class="input-group input-group-sm mb-4 mt-1"
            v-for="(item, index) in updateForm.list"
            :key="index"
          >
            <input
              type="text"
              class="form-control"
              v-model="item.discountAmt"
            />
            <div class="input-group-append">
              <span class="input-group-text">
                {{
                  updateForm.discountTerm == 1
                    ? "升&lt;= 加油升数 &lt;"
                    : "元&lt;= 加油金额 &lt;"
                }}
              </span>
            </div>
            <input
              type="text"
              class="form-control"
              v-model="item.discountAmtEnd"
            />
            <div class="input-group-append">
              <span class="input-group-text"
                >{{
                  updateForm.discountTerm == 1 ? "升" : "元"
                }}，每升优惠</span
              >
            </div>
            <input
              type="text"
              class="form-control"
              v-model="item.gasoilDiscountAmt"
            />
            <div class="input-group-append">
              <span class="input-group-text">元</span>
            </div>
            <div class="input-group-append" id="button-addon4">
              <button
                class="btn btn-danger"
                type="button"
                @click="delLadder(index)"
              >
                删除
              </button>
            </div>
          </div>
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="handleSubmit">确 定</el-button>
        <el-button @click="cancelSubmit">取 消</el-button>
      </div>
    </el-dialog>

    <el-form
      :model="queryParams"
      ref="queryForm"
      :inline="true"
      label-width="68px"
      v-show="discountSetting != 0"
      class="mx-auto"
    >
      <div>
        <el-button
          icon="el-icon-plus"
          size="mini"
          class="mb-3 mr-4"
          @click="handleUpdateClick"
          style="float: right"
          type="warning"
        >
          {{
            this.discountSetting == 1
              ? "添加满减方案规则"
              : this.discountSetting == 2
              ? "添加立减方案规则"
              : this.discountSetting == 3
              ? "添加直降方案规则"
              : this.discountSetting == 4
              ? "添加阶梯直降规则"
              : "无"
          }}
        </el-button>
      </div>
    </el-form>
    <el-table
      :data="discountList"
      v-show="discountSetting != 0 && discountSetting != 4"
      class="shadow"
    >
      <af-table-column label="id" align="center" prop="id" v-if="false" />
      <af-table-column label="方案名称" align="center" prop="grade" />
      <af-table-column label="油品名称" align="center" prop="oilName" />
      <af-table-column
        label="优惠条件"
        align="center"
        v-if="discountSetting == 3"
      >
        <template slot-scope="scope">
          满 {{ scope.row.discountAmt }}
          {{ scope.row.discountTerm == 2 ? "元" : "L" }}，每升优惠
          {{ scope.row.gasoilDiscountAmt }} 元
        </template>
      </af-table-column>
      <af-table-column
        label="优惠条件"
        align="center"
        v-if="discountSetting == 1"
      >
        <template slot-scope="scope">
          每满 {{ scope.row.discountAmt }} 元，减
          {{ scope.row.gasoilDiscountAmt }} 元
        </template>
      </af-table-column>
      <af-table-column
        label="优惠条件"
        align="center"
        v-if="discountSetting == 2"
      >
        <template slot-scope="scope">
          满 {{ scope.row.discountAmt }} 元，减
          {{ scope.row.gasoilDiscountAmt }} 元
        </template>
      </af-table-column>
      <af-table-column
        label="会员日"
        align="center"
        v-if="discountSetting != 4"
      >
        <template slot-scope="scope">
          <span v-if="scope.row.discountSettingFlag == 0"> 无活动 </span>
          <span v-else-if="scope.row.discountSettingFlag == 1">
            {{ discountSettingTranslate(scope.row) }}
          </span>
        </template>
      </af-table-column>
      <af-table-column
        label="叠加等级优惠"
        align="center"
        prop="vipDiscountyPlus"
        :formatter="vipDiscountyPlusFotmat"
      />
      <!--
      <af-table-column
        label="叠加劵"
        align="center"
        prop="couponPlus"
        :formatter="couponPlusFotmat"
      />
      -->
      <af-table-column
        label="优惠方案类型"
        v-if="false"
        align="center"
        prop="discountPlanType"
      />
      <af-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            >删除</el-button
          >
        </template>
      </af-table-column>
    </el-table>
    <el-table
      :data="discountListTep"
      v-show="discountSetting == 4"
      type="expand"
      class="shadow"
    >
      <af-table-column type="expand">
        <template slot-scope="props">
          <div class="container">
            <div class="row">
              <div
              class="input-group input-group-sm mb-4 mt-1 col-lg-6"
              v-for="(item, index) in props.row.list"
              :key="index"
              style="width:600px;"
            >
              <div class="input-group-append">
                <span class="input-group-text"> 规则 {{index + 1}}： </span>
              </div>
              <input
                type="text"
                class="form-control"
                v-model="item.discountAmt"
                disabled
                
              />
              <div class="input-group-append">
                <span class="input-group-text"> {{updateForm.discountTerm==1 ? '升&lt;= 加油升数 &lt;': "元&lt;= 加油金额 &lt;"}}  </span>
              </div>
              <input
                type="text"
                class="form-control"
                v-model="item.discountAmtEnd"
                disabled
              />
              <div class="input-group-append">
                <span class="input-group-text">{{updateForm.discountTerm==1 ? '升，':'元，'}}</span>
              </div>
              <div class="input-group-append">
                <span class="input-group-text">每升优惠</span>
              </div>
              <input
                type="text"
                class="form-control"
                v-model="item.gasoilDiscountAmt"
                disabled
              />
              <div class="input-group-append">
                <span class="input-group-text">元</span>
              </div>
              <div class="input-group-append" id="button-addon4">
              </div>
            </div>
            </div>
          </div>
        </template>
      </af-table-column>
      <af-table-column label="方案名称" align="center" prop="grade" />
      <af-table-column label="油品名称" align="center" prop="oilName" />
      <af-table-column
        label="叠加等级优惠"
        align="center"
        prop="vipDiscountyPlus"
        :formatter="vipDiscountyPlusFotmat"
      />
      <!--
      <af-table-column
        label="叠加劵"
        align="center"
        prop="couponPlus"
        :formatter="couponPlusFotmat"
      />
      -->
      <af-table-column
        label="优惠方案类型"
        v-if="false"
        align="center"
        prop="discountPlanType"
      />
      <af-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
        width="200px"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleLadderUpdata(scope.row)"
            >修改规则</el-button
          >
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDeleteLadder(scope.row)"
            >删除</el-button
          >
        </template>
      </af-table-column>
    </el-table>
  </div>
</template>

<script>
import {
  listPlan,
  getPlan,
  delPlan,
  addPlan,
  updatePlan,
  exportPlan,
  addMarketPlanInfo,
  deleteMarketPlan
} from "@/api/market/plan";
import { getStationPay, updatePay } from "@/api/station/pay";
import { getDept } from "@/api/system/dept";
import { listPrice } from "@/api/station/price";
export default {
  name: "Market_Discount",
  data() {
    const validatorGasoilDiscountAmt = (rule, value, callback) => {
      if (this.discountSetting == 3) {
        if (
          this.updateForm.discountTerm === undefined ||
          this.updateForm.discountTerm === ""
        ) {
          callback(new Error("请选择优惠方式"));
          return;
        }
      }
      const start = +this.updateForm.discountAmt;
      const end = +this.updateForm.gasoilDiscountAmt;
      if (isNaN(start) || isNaN(end)) {
        callback(new Error("检查优惠方式完整性"));
        return;
      }
      callback();
    };
    const validatorLadderList = (rule, value, callback) => {
      if (this.discountSetting != 4) {
        return 
      }

      if(this.updateForm.list.length < 1 || !this.updateForm.list){
        callback(new Error("请设置优惠的阶梯"));
        return;
      }
      this.updateForm.list.map((ele)=>{
        if(ele.discountAmt == '' || ele.discountAmt == null || ele.discountAmtEnd == '' || ele.discountAmtEnd == null || ele.gasoilDiscountAmt == '' || ele.gasoilDiscountAmt == null){
          callback(new Error("请检查阶梯填入信息的完整性"));
          return;
        }
        if(isNaN(+ele.discountAmtEnd) || isNaN(+ele.discountAmt) || isNaN(+ele.gasoilDiscountAmt)){
          callback(new Error("请检查拼写，规则填入的必须是有效数字"));
          return;
        }
        if((+ele.discountAmtEnd) <= (+ele.discountAmt)){
          callback(new Error("您填写的一条规则里，起始值比结束值大"));
          return;
        }
      })
      const sortList = JSON.parse(JSON.stringify(this.updateForm.list))
      const sortedList = sortList.sort((q,w)=>{
        return q.discountAmt - w.discountAmt
      })
      
      sortedList.reduce((prev, curr, ind, arr)=>{
        if(prev.discountAmtEnd > curr.discountAmt){
          callback(new Error("您填写的规则起始值存在冲突，请检查"));
          return;
        }
        return curr
      })
      callback();
    };

    return {
      testd: 1,
      pageStatus: 0,
      discountList: [],
      total: 0,
      oilNameOptions: [],
      title: "",
      openDialog: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        grade: null,
        discountWay: null,
        gasoilDiscountLitre: null,
        dieseloilDiscountLitre: null,
        gradeType: null,
        gasoilConsume: null,
        gasoilGrowthValue: null,
        dieseloilConsume: null,
        dieseloilGrowthValue: null,
        growthValue: null,
        date: null,
        deductionGrowthValue: null,
      },
      updateFormDynamic1: ["", "满", "每满", "满"],
      updateFormDynamic2: ["", "减", "减", "每升优惠"],
      ruleForm: {},
      // 表单校验
      rules: {
        grade: [{ required: true, message: "请输入方案名称", trigger: "blur" }],
        oilName: [
          { required: true, message: "请选择油品名称", trigger: "change" },
        ],
        discountTerm: [
          { required: true, message: "选择油品名称", trigger: "change" },
        ],
        gasoilDiscountAmt: [
          { validator: validatorGasoilDiscountAmt, trigger: "change" },
        ],
        discountAmt: [
          { required: true, message: "请填写优惠金额", trigger: "blur" },
        ],
        vipDiscountyPlus: [
          {
            required: true,
            message: "选择等级优惠是否叠加",
            trigger: "change",
          },
        ],
        // couponPlus: [
        //   { required: true, message: "选择可否叠加券", trigger: "change" },
        // ],
        list:[
          { validator: validatorLadderList, trigger: "change" },
        ]
      },
      dtrules: {},
      discountSetting: 0,
      updateForm: {
        collectClickCalendar: [],
        collectClickDay: [],
      },
      currentDiscountName: "",
      timeSelect: [
        ,
        ["周天", "周一", "周二", "周三", "周四", "周五", "周六"],
        [
          "01",
          "02",
          "03",
          "04",
          "05",
          "06",
          "07",
          "08",
          "09",
          "10",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "18",
          "19",
          "20",
          "21",
          "22",
          "23",
          "24",
          "25",
          "26",
          "27",
          "28",
          "29",
          "30",
          "31",
        ],
      ],
      discountListTep: [
      ],
      ladderUp:false,
    };
  },
  computed: {
    discountName() {
      return this.discountSetting == 1
        ? "满减"
        : this.discountSetting == 2
        ? "立减"
        : this.discountSetting == 3
        ? "直降"
        : this.discountSetting == 4
        ? "阶梯直降"
        : "无";
    },
    filterOilNameOptions() {
      return this.oilNameOptions.filter((ele) => {
        let flag = true;
        this.discountList.forEach((item) => {
          if (ele.oilName == item.oilName) {
            flag = false;
          }
        });
        return flag;
      });
    },
  },
  created() {
    this.setPageStatus();
    this.init();
  },
  methods: {
    handleLadderUpdata(row){
      this.updateForm = row
      this.ladderUp = true;
      this.openDialog = true;
    },
    delLadder(index) {
      this.updateForm.list.splice(index, 1);
      if (this.updateForm.list < 1) {
        this.updateForm.list.push({
          discountAmtEnd: null,
          discountAmt: null,
          gasoilDiscountAmt: null,
        });
        this.updateForm = { ...this.updateForm };
      }
    },
    addLadder(e) {
      this.updateForm.list.push({
        discountAmtEnd: null,
        discountAmt: null,
        gasoilDiscountAmt: null,
      });
      this.updateForm = { ...this.updateForm };
    },
    test(e) {
      console.log("---");
      console.log(e);
      console.log(123);
      console.log(this.testd);
    },
    init() {
      listPrice().then((response) => {
        this.oilNameOptions = response.rows;
      });
      this.getPay().then(() => {
        this.getList();
      });
    },
    setPageStatus() {
      this.queryPageStatus([2]).then((res) => {
        this.pageStatus = res;
      });
    },
    timeClear() {
      this.updateForm.collectClickCalendar = [];
      this.updateForm.collectClickDay = [];
    },
    getPay() {
      return getStationPay().then((response) => {
        this.ruleForm = response.data;
        this.discountSetting = response.data.discountSetting;
        this.currentDiscountName = this.discountName;
      });
    },
    save() {
      this.$refs["ruleForm"].validate((valid) => {
        if (valid) {
          if (this.ruleForm.deptId != null) {
            let upPromise = null;
            let e = this.ruleForm.discountSetting;
            if (e == "0") {
              upPromise = updatePay(this.ruleForm).then((response) => {
                this.msgSuccess("优惠方案设置成功");
              });
            } else if (e == "1") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("满减规则下无方案");
                return;
              }
            } else if (e == "2") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("立减规则下无方案");
                return;
              }
            } else if (e == "3") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("直降规则下无方案");
                return;
              }
            } else if (e == "4") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("直降规则下无方案");
                return;
              }
            }
            upPromise
              .catch((err) => {
                this.msgError("设置时出错，请刷新后重试~");
              })
              .then((res) => {
                this.getPay();
              });
          } else {
            this.getPay();
          }
        }
      });
    },
    discountSettingChang(e) {
      this.discountSetting = e;
      this.getList();
    },
    getList() {
      const query = {
        pageNum: 1,
        pageSize: 100,
        discountPlanType: this.discountSetting,
      };
      listPlan(query).then((response) => {
        if (this.discountSetting == 4) {
          this.discountListTep = response.rows;
          return;
        }
        this.discountList = response.rows;
        this.total = response.total;
      });
    },
    vipDiscountyPlusFotmat(row, column) {
      if (row.vipDiscountyPlus === "1") {
        return "是";
      } else if (row.vipDiscountyPlus === "0") {
        return "否";
      }
    },
    couponPlusFotmat(row, column) {
      if (row.couponPlus === "1") {
        return "是";
      } else if (row.couponPlus === "0") {
        return "否";
      }
    },
    handleUpdateClick() {
      this.openDialog = true;
      this.ladderUp = false;
      this.updateForm = {
        discountPlanType: this.discountSetting,
        collectClickDay:[],
        collectClickCalendar:[]
      };
      if (this.discountSetting == 4) {
        this.updateForm.list = [
          {
            discountAmtEnd: null,
            discountAmt: null,
            gasoilDiscountAmt: null,
          },
        ];
      }
    },
    handleSubmit() {
      this.$refs["updateForm"].validate((valid) => {
        if (valid) {
          // 会员日特殊处理
          if (
            this.updateForm.discountSettingFlag == "1" &&
            this.discountSetting != "4"
          ) {
            if (
              this.updateForm.discountType == "1" ||
              this.updateForm.discountType == "2"
            ) {
              this.updateForm.discountDate =
                this.updateForm.collectClickCalendar.toString();
            } else {
              this.updateForm.discountDate =
                this.updateForm.collectClickDay.toString();
            }
          }
          console.log("发送了1");
          // 阶梯直降
          if (this.discountSetting == "4") {
            console.log("发送了2");
            addMarketPlanInfo(this.updateForm)
              .then((res) => {
                this.msgSuccess("新增成功");
                this.openDialog = false;
                this.getList();
                return ;
              });
              return ;
          }
          if (this.updateForm.id != null) {
            updatePlan(this.updateForm).then((response) => {
              this.msgSuccess("修改成功");
              this.openDialog = false;
              this.getList();
            });
          } else {
            addPlan(this.updateForm).then((response) => {
              if(this.ladderUp){
                this.msgSuccess("修改成功");
              }else{
                this.msgSuccess("新增成功");
              }
              this.openDialog = false;
              this.getList();
            });
          }
        }
      });
    },
    clickCalendar(index) {
      if (this.updateForm.collectClickCalendar.indexOf(index) === -1) {
        this.updateForm.collectClickCalendar.push(index);
      } else if (this.updateForm.collectClickCalendar.indexOf(index) > -1) {
        const temp = this.updateForm.collectClickCalendar.findIndex((ele) => {
          return ele == index;
        });
        this.updateForm.collectClickCalendar.splice(temp, 1);
      }
      this.$refs.updateForm.validateField("discountType");
      this.updateForm = { ...this.updateForm };
    },
    cancelSubmit() {
      this.openDialog = false;
    },

    /** 修改按钮操作 */
    handleUpdate(row) {
      const id = row.id;
      this.title = "修改满减优惠";
      this.openDialog = true;
      this.updateForm = row;
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id;
      this.$confirm("是否确认删除满减优惠方案?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(function () {
          return delPlan(ids);
        })
        .then(() => {
          this.getList();
          this.msgSuccess("删除成功");
        });
    },
    handleDeleteLadder(row){
      const oilName = row.oilName;
      this.$confirm("是否确认该油品的阶梯直降?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(function () {
          return deleteMarketPlan({
            oilName: oilName,
            discountPlanType:"4"
          });
        })
        .then(() => {
          this.getList();
          this.msgSuccess("删除成功");
        });
    },
    // /** 导出按钮操作 */
    // handleExport() {
    //   const queryParams = this.queryParams;
    //   this.$confirm("是否确认导出所有优惠设置数据项?", "警告", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(function () {
    //       return exportPlan(queryParams);
    //     })
    //     .then((response) => {
    //       this.download(response.msg);
    //     });
    // },
    discountSettingTranslate(row) {
      if (row.discountSettingFlag == 0) {
        return "未设置";
      }
      // if (this.discountList.integralActivity == 0) {
      //   return "";
      // }

      let timeString = "";
      const discountType = row.discountType;

      if (discountType == 1) {
        timeString += "每周的";
      }
      if (discountType == 2) {
        timeString += "每月的";
      }
      if (discountType == 3) {
        timeString += "指定的日期 ";
      }
      if (discountType == 1 || discountType == 2) {
        (row.discountDate || "")
          .split(",")
          .filter((ele) => {
            return ele !== "";
          })
          .forEach((ele) => {
            timeString += this.timeSelect[discountType][ele] + "、";
          });
      } else if (discountType == 3) {
        timeString += row.discountDate.toString();
      }

      timeString = timeString.replace(/(、)$/g, "") + " 优惠：";
      if (this.discountSetting == 3) {
        timeString +=
          "满" +
          row.discountAmt +
          (row.discountTerm == 2 ? "元" : "L") +
          "，每升优惠" +
          row.discountActivityAmt +
          "元";
      } else if (this.discountSetting == 1) {
        timeString +=
          "每满" + row.discountAmt + "元，减" + row.discountActivityAmt + "元";
      } else if (this.discountSetting == 2) {
        timeString +=
          "满" + row.discountAmt + "元，减" + row.discountActivityAmt + "元";
      }
      return timeString;
    },
  },
};
</script>
<style>
</style>
