<template>
  <div id="tableList">
    <div class="headerNavTool" v-if="navText.headShow !== false">
      <div class="leftIndexText">
        {{ navText.title }} <strong>{{ navText.index }}</strong>
        {{ navText.ch }}
      </div>
      <div class="rightBtnBox">
        <slot name="customize"></slot>
        <el-button
          size="medium"
          type="primary"
          @click="addClick"
          v-if="!navText.addHide"
          >添加</el-button
        >
        <el-button
          v-if="navText.backFatherBtn && navText.backFatherBtn.status"
          size="medium"
          type="warning"
          @click="backFather"
          >{{ navText.backFatherBtn.title }}</el-button
        >
        <el-popover
          popper-class="slotPopper"
          placement="bottom-end"
          trigger="click"
        >
          <div class="popoverDis">
            <div class="checkboxHeader">
              <el-checkbox
                :indeterminate="isIndeterminate"
                v-model="checkAll"
                @change="handleCheckAllChange"
                >列展示</el-checkbox
              >
              <div class="initbtns" @click="initVue">重置</div>
            </div>

            <div
              style="height: 1px; width: 100%; background-color: #eaeefb"
            ></div>
            <el-checkbox-group
              class="checkboxGroup"
              v-model="checkedCities"
              @change="handleCheckedCitiesChange"
            >
              <div
                class="checkboxchild"
                v-for="(item, index) in cities"
                :key="index"
              >
                <el-checkbox
                  :label="item"
                  @change="checkboxChange(item, $event)"
                  >{{ item }}</el-checkbox
                >
                <div class="icon-right">
                  <i class="el-icon-upload2" @click="upMove(item, index)"></i>
                  <i
                    class="el-icon-download"
                    @click="downMove(item, index)"
                  ></i>
                </div>
              </div>
            </el-checkbox-group>
          </div>
          <el-button
            v-if="navText.custom !== false"
            style="margin-left: 10px"
            size="medium"
            slot="reference"
            >自定义列</el-button
          >
        </el-popover>
      </div>
    </div>
    <el-table
      :data="tableData"
      :span-method="objectSpanMethod"
      stripe
      style="width: 100%"
      @select-all="selectAll"
      @select="select"
      @sort-change="sortChange"
      :row-key="rowKey"
      :load="load"
      :cell-style="timeStyle"
      lazy
      :border="true"
      ref="pagerset"
      v-loading="loading"
      :row-class-name="navText.tableColor ? navText.tableColorFunc : ''"
      :header-cell-style="{
        'background-color': '#eee',
        color: '#333',
        fontSize: '14px',
      }"
      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
    >
      <el-table-column
        v-if="navText.choiceRadio"
        align="center"
        type="selection"
        :fixed="navText.radioFixed"
        width="55"
      >
        <template slot-scope="scope">
          <el-radio
            style="margin-left: 10px"
            v-model="tableRadio"
            :label="scope.row[navText.radioKey]"
            @change="radioChange"
            >{{ "" }}</el-radio
          >
        </template>
      </el-table-column>
      <el-table-column
        v-if="navText.choice"
        :reserve-selection="navText.openCheckMore"
        align="center"
        type="selection"
        width="55"
        header-align="center"
        fixed="left"
        :selectable="navText.selectableStatus?navText.selectableFunc:selectFuncTrue"
      >
      </el-table-column>
      <el-table-column
        v-if="navText.dontNum ? false : true"
        type="index"
        :index="setIndex"
        label="序号"
        width="70"
        align="center"
        header-align="center"
      >
      </el-table-column>
      <af-table-column
        v-for="(item, index) in compTableSet(tableSet)"
        :width="item.width"
        :label="item.label"
        :align="item.dontCenter ? 'left' : 'center'"
        :sortable="item.prop === 'sort' || item.sort"
        :sort-method="sortMethods"
        :show-overflow-tooltip="item.showTooltip ? false : true"
        header-align="center"
        :prop="item.prop"
        sort-by="sort"
        :key="index"
      >
        <template slot-scope="scope">
          <div class="imgboxsq" v-if="item.scope === 'img'">
            <img
              style="height: 60px; width: 60px"
              v-if="!scope.row[item.prop]"
              src="@/assets/404_images/wuyuxaog.png"
              alt=""
            />
            <el-image
              v-else
              class="el_images"
              lazy
              :src="$methodsTools.splitImgHost(scope.row[item.prop])"
              style="height: 100%; width: 100%"
              :preview-src-list="[
                $methodsTools.splitImgHost(scope.row[item.prop]),
              ]"
              alt="加载失败"
            >
            </el-image>
          </div>
          <div v-else-if="item.scope === 'sortType'">
            <el-input-number
              v-model="scope.row[item.prop]"
              :min="0"
              style="width: 80px"
              :controls="false"
              @change="blurBackData(scope.row)"
            ></el-input-number>
          </div>
          <template
            v-else-if="
              item.scope === 'copyTime' && scope.row[item.prop] != null
            "
          >
            <div v-for="(item, index) in scope.row['copyTime']" :key="index">
              <span>{{ item }}</span>
            </div>
          </template>

          <span
            v-else-if="item.scope === 'status' && scope.row[item.prop] != null"
            >{{
              Number(scope.row[item.prop]) === 1
                ? "启用"
                : Number(scope.row[item.prop]) === 0
                ? "关闭"
                : Number(scope.row[item.prop]) === -1
                ? "已删除"
                : "未知"
            }}</span
          >
          <span v-else-if="item.scope === 'hasTime'">{{
            Number(scope.row[item.prop]) === 1
              ? "有效"
              : Number(scope.row[item.prop]) === 0
              ? "无效"
              : "未知"
          }}</span>
          <span v-else-if="item.scope === 'reStatus'">{{
            Number(scope.row[item.prop]) === 1
              ? "定时发布"
              : Number(scope.row[item.prop]) === 0
              ? "手动发布"
              : "未知"
          }}</span>
          <span v-else-if="item.scope === 'fabStatus'">{{
            Number(scope.row[item.prop]) === 1
              ? "发布"
              : Number(scope.row[item.prop]) === 0
              ? "未发布"
              : "未知"
          }}</span>
          <span v-else-if="item.scope === 'sectionTypes'">{{
            Number(scope.row[item.prop]) === 2
              ? "录播"
              : Number(scope.row[item.prop]) === 1
              ? "直播"
              : Number(scope.row[item.prop]) === 3
              ? "回放"
              : "未知"
          }}</span>
          <span
            v-else-if="
              item.scope === 'treeWatch' &&
              (scope.row['goodsType'] === 1 ||
                scope.row['goodsType'] === 2 ||
                scope.row['goodsType'] === 6)
            "
            style="color: blue"
            @click="
              scope.row['goodsType'] === 1 || scope.row['goodsType'] === 6
                ? diavios(scope.row['goodsId'])
                : diaviosTK(scope.row['goodsId'])
            "
            >结构树视图</span
          >
          <span v-else-if="item.scope === 'leftCh'">
            {{ item.ch }}{{ scope.row[item.prop] }}
          </span>
          <span
            v-else-if="item.scope === 'goodsIds'"
            class="editInfoSty"
            @click="editInfo(scope.row, 3)"
          >
            {{
              !scope.row[item.prop]
                ? 0
                : scope.row[item.prop].split(",").map(Number).length
            }}
          </span>
          <span
            v-else-if="item.scope === 'aboutSpec'"
            style="color: blue; cursor: pointer"
            @click="openSpec(scope.row['goodsId'])"
          >
            {{ scope.row[item.prop] ? "已关联" : "未关联" }}
          </span>
          <span v-else-if="item.scope === 'liveAndUrl'">{{
            scope.row[item.prop] == 2
              ? scope.row[item.prop2]
              : scope.row[item.prop1]
          }}</span>
          <ul v-else-if="item.scope === 'mapTypes'" class="ulAuto">
            <template v-for="(itm, inds) in scope.row[item.prop]">
              <li :key="inds" v-if="inds === 0">
                {{ itm.educationName + "-" + itm.projectName }}
              </li>
            </template>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul>
                <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                  {{ inds + 1 }}、
                  {{ itm.educationName + "-" + itm.projectName }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 1"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </ul>
          <ul v-else-if="item.scope === 'mapTypesBUS'" class="ulAuto">
            <template v-for="(itm, inds) in scope.row[item.prop]">
              <li :key="inds" v-if="inds === 0">
                {{
                  itm.educationName +
                  "-" +
                  itm.projectName +
                  "-" +
                  itm.businessName
                }}
              </li>
            </template>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul>
                <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                  {{ inds + 1 }}、
                  {{
                    itm.educationName +
                    "-" +
                    itm.projectName +
                    "-" +
                    itm.businessName
                  }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 1"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </ul>
          <div v-else-if="item.scope === 'splits'" class="dis_sdt">
            <ul>
              <template v-for="(itm, inds) in scope.row[item.prop]">
                <li :key="inds" v-if="inds < 2">
                  {{ itm }}
                </li>
              </template>
            </ul>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul>
                <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                  {{ inds + 1 }}、
                  {{ itm }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 2"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </div>
          <div v-else-if="item.scope === 'goodsList'" class="ulAuto">
            <ul>
              <template v-for="(itm, inds) in scope.row[item.prop]">
                <li :key="inds" v-if="inds === 0">
                  {{ itm.goodsName }}
                </li>
              </template>
            </ul>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul>
                <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                  {{ inds + 1 }}、
                  {{ itm.goodsName }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 1"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </div>
          <div v-else-if="item.scope === 'aboutChapter'" class="ulAuto">
            <ul>
              <template v-for="(itm, inds) in scope.row[item.prop]">
                <li
                  class="jumpStys"
                  :key="inds"
                  v-if="inds === 0"
                  @click="jumpPages(itm, item.int)"
                >
                  {{ itm[item.prop1] }}
                </li>
              </template>
            </ul>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul>
                <li
                  v-for="(itm, inds) in scope.row[item.prop]"
                  :key="inds"
                  class="jumpStys"
                  @click="jumpPages(itm, item.int)"
                >
                  {{ inds + 1 }}、
                  {{ itm[item.prop1] }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 1"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </div>
          <ul v-else-if="item.scope === 'mapTypesMores'" class="ulAuto">
            <template v-for="(itm, inds) in scope.row[item.prop]">
              <li :key="inds" v-if="inds === 0">
                {{
                  itm.educationName +
                  "-" +
                  itm.projectName +
                  "-" +
                  itm.businessName +
                  "-" +
                  itm.subjectName
                }}
              </li>
            </template>
            <el-popover :key="Math.random()" placement="right" trigger="click">
              <ul style="overflow: auto; max-height: 500px">
                <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                  {{ inds + 1 }}、
                  {{
                    itm.educationName +
                    "-" +
                    itm.projectName +
                    "-" +
                    itm.businessName +
                    "-" +
                    itm.subjectName
                  }}
                </li>
              </ul>
              <el-button
                slot="reference"
                style="margin-left: 6px"
                type="text"
                v-if="scope.row[item.prop].length > 1"
                size="mini"
                >更多</el-button
              >
            </el-popover>
          </ul>
          <div v-else-if="item.scope === 'htmlInfo'">
            <bankMsg ref="bankMsg" :bankMsg="scope.row" />
          </div>
          <div v-else-if="item.scope === 'video'">
            <i
              v-if="scope.row[item.prop][item.prop1] !== null"
              class="el-icon-video-play cvideo"
              @click="
                openVideo(
                  $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
                )
              "
            ></i>
          </div>
          <div
            v-else-if="item.scope === 'PDF'"
            style="display: flex; align-items: center"
          >
            <a
              v-if="scope.row[item.prop][item.prop1] !== null"
              :href="
                $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
              "
              target="_blank"
              style="
                display: block;
                width: 35px;
                height: 45px;
                margin-right: 10px;
              "
            >
              <img class="imgHover" src="@/assets/images/pdf@3x.png" alt="" />
            </a>
            <div>{{ scope.row[item.prop][item.prop2] }}</div>
          </div>
          <div
            v-else-if="item.scope === 'openDialog'"
            class="open_style"
            @click="openDialog(scope.row)"
          >
            {{ item.name ? item.name : scope.row[item.prop] }}
          </div>
          <span v-else-if="item.scope === 'Salary'">
            {{ scope.row[item.prop1] === 1 ? "月薪" : "年薪" }}
            {{
              scope.row[item.prop2] === scope.row[item.prop3]
                ? scope.row[item.prop2]
                : scope.row[item.prop2] + "~" + scope.row[item.prop3]
            }}
          </span>
          <template v-else-if="item.scope === 'courseAbout'">
            <div v-for="(item, index) in scope.row[item.prop]" :key="index">
              {{ item.courseName }} ({{ item.aliasName }})
            </div>
          </template>
          <span v-else-if="item.scope === 'cashRatio'">
            {{ scope.row[item.prop]
            }}{{ scope.row["cashType"] === 1 ? "%" : "" }}
          </span>
          <span v-else-if="item.scope === 'convert'">{{
            $methodsTools.secondToDate(scope.row[item.prop], false)
          }}</span>
          <div v-else-if="item.scope === 'studentServicePeriod'">
            <span v-if="scope.row[item.prop1] === 1"
              >{{ scope.row[item.prop2] }}年</span
            >
            <span v-if="scope.row[item.prop1] === 2"
              >{{ scope.row[item.prop2] }}月</span
            >
            <span v-if="scope.row[item.prop1] === 3"
              >{{ scope.row[item.prop2] }}日</span
            >
            <span v-if="scope.row[item.prop1] === 4">
              {{ $methodsTools.onlyForma(scope.row[item.prop3]) }}
              {{ scope.row[item.prop3] && scope.row[item.prop4] ? "至" : "" }}
              {{ $methodsTools.onlyForma(scope.row[item.prop4]) }}
            </span>
          </div>
          <span v-else-if="item.scope === 'address'"
            >{{
              scope.row[item.prop1] +
              scope.row[item.prop2] +
              scope.row[item.prop3]
            }}{{ scope.row[item.prop4] ? scope.row[item.prop4] : "" }}</span
          >
          <span v-else-if="item.scope === 'sex'">
            {{
              scope.row[item.prop] == 1
                ? "男"
                : scope.row[item.prop] == 2
                ? "女"
                : "未知"
            }}
          </span>
          <span v-else-if="item.scope === 'type'">
            {{ item.values[scope.row[item.prop]] }}
          </span>
          <span v-else-if="item.scope === 'typeStatus'">{{
            scope.row[item.prop] === 0
              ? "报名指引"
              : scope.row[item.prop] === 1
              ? "打印准考证"
              : scope.row[item.prop] === 2
              ? "成绩查询指引"
              : "未知"
          }}</span>
          <span v-else-if="item.scope === 'typeId'">{{
            scope.row[item.prop] === 1
              ? "普通练习"
              : scope.row[item.prop] === 2
              ? "押题试卷"
              : scope.row[item.prop] === 3
              ? "真题试卷"
              : "未知"
          }}</span>
          <div v-else-if="item.scope === 'knowledge'" class="overSty">
            <el-button
              type="success"
              size="small"
              v-for="(items, ks) in scope.row[item.prop]"
              :key="ks"
            >
              {{ items.knowledgeName }}
            </el-button>
          </div>
          <span v-else-if="item.scope === 'numberAll'">{{
            scope.row[item.prop1] + scope.row[item.prop2]
          }}</span>
          <span v-else-if="item.scope === 'moreLists'">{{
            scope.row[item.prop1] + " ~ " + scope.row[item.prop2]
          }}</span>
          <span v-else-if="item.scope === 'TimeLists'"
            >{{ $methodsTools.onlyForma(scope.row[item.prop1], item.Diszing) }}
            {{ scope.row[item.prop1] ? "至" : "" }}
            {{
              $methodsTools.onlyForma(scope.row[item.prop2], item.Diszing)
            }}</span
          >
          <span v-else-if="item.scope === 'aTimeList'">{{
            scope.row[item.prop] === null
              ? "--"
              : $methodsTools.onlyForma(scope.row[item.prop], !item.isDiszing)
          }}</span>
          <div v-else-if="item.scope === 'inputs'">
            <el-input-number
              style="width: 50px"
              size="small"
              :controls="false"
              v-model="scope.row[item.prop]"
              controls-position="right"
              :min="0"
            ></el-input-number>
          </div>
          <span v-else-if="item.scope === 'topic'">{{
            scope.row[item.prop] === 1
              ? "单选题"
              : scope.row[item.prop] === 2
              ? "多选题"
              : scope.row[item.prop] === 3
              ? "判断题"
              : scope.row[item.prop] === 4
              ? "案例题"
              : scope.row[item.prop] === 5
              ? "简答题"
              : "未知"
          }}</span>
          <span v-else-if="item.scope === 'typeStatusName'">{{
            scope.row[item.prop] === 1
              ? "扫码支付"
              : scope.row[item.prop] === 2
              ? "刷卡支付"
              : scope.row[item.prop] === 3
              ? "现金支付"
              : scope.row[item.prop] === 4
              ? "转账"
              : "未知"
          }}</span>
          <ul style="margin: 0" v-else-if="item.scope === 'studyCount'">
            <li>总共：{{ scope.row[item.prop1] + scope.row[item.prop2] }}</li>
            <li>消耗：{{ scope.row[item.prop1] }}</li>
            <li>剩余：{{ scope.row[item.prop2] }}</li>
          </ul>
          <span
            v-else-if="item.scope === 'statusPeriod'"
            :style="scope.row[item.prop] === 2 ? 'color:red' : ''"
          >
            {{
              scope.row[item.prop] === -1
                ? "不可审核"
                : scope.row[item.prop] === 2
                ? "待审核"
                : scope.row[item.prop] === 0
                ? "未通过"
                : scope.row[item.prop] === 1
                ? "已通过"
                : scope.row[item.prop] === 3
                ? "审核中"
                : ""
            }}
          </span>
          <div
            v-else-if="item.scope === 'openBox'"
            class="open_style"
            @click="openBoxData(scope.row)"
          >
            {{ scope.row[item.prop] }}
          </div>
          <div v-else-if="item.scope === 'changeCLS'">
            <div
              v-if="!scope.row['interfacePushId'] && !scope.row['periodPlush']"
            >
              <div v-if="scope.row[item.prop] === 1" style="color: red">
                有变更<span
                  style="margin-left: 6px; color: blue; cursor: pointer"
                  @click="isShowBoxsFun(scope.row)"
                  >查看</span
                >
              </div>
              <span v-else> 正常 </span>
            </div>
            <template v-else>
              <div
                v-if="
                  scope.row['interfacePushId'] === 1 &&
                  !scope.row['periodPlush']
                "
              >
                <div v-if="scope.row[item.prop] === 1">
                  <div
                    v-if="
                      scope.row['officialStatusTime'] &&
                      scope.row['userUpdates'][0].createTime <
                        scope.row['officialStatusTime']
                    "
                  >
                    正常
                  </div>
                  <div v-else style="color: red">
                    有变更<span
                      style="margin-left: 6px; color: blue; cursor: pointer"
                      @click="isShowBoxsFun(scope.row)"
                      >查看</span
                    >
                  </div>
                </div>
                <span v-else> 正常 </span>
              </div>
              <div
                v-if="
                  scope.row['interfacePushId'] === 1 &&
                  scope.row['periodPlush'] === 1
                "
              >
                <div v-if="scope.row[item.prop] === 1">
                  <div
                    v-if="
                      scope.row['officialStatusTime'] &&
                      scope.row['userUpdates'][0].createTime <
                        scope.row['officialStatusTime']
                    "
                  >
                    正常
                  </div>
                  <div v-else style="color: purple">
                    有变更<span
                      style="margin-left: 6px; color: blue; cursor: pointer"
                      @click="isShowBoxsFun(scope.row)"
                      >查看</span
                    >
                  </div>
                </div>
                <span v-else> 正常 </span>
              </div>
            </template>
          </div>
          <span
            v-else-if="item.scope === 'finishStatus'"
            :style="scope.row[item.prop] === 0 ? 'color:red' : ''"
          >
            {{
              scope.row[item.prop] === 0
                ? "未学完"
                : scope.row[item.prop] === 1
                ? "已学完"
                : ""
            }}
          </span>
          <span v-else-if="item.scope === 'computer'">
            {{ scope.row[item.prop1] + "/" + scope.row[item.prop2] }}
            {{
              scope.row[item.prop1] == 0 && scope.row[item.prop2] == 0
                ? "0%"
                : (
                    (scope.row[item.prop1] / scope.row[item.prop2]) *
                    100
                  ).toFixed(2) + "%"
            }}
          </span>
          <span v-else-if="item.scope === 'cType'">
            <el-tag
              type="success"
              v-if="
                compType(scope.row[item.prop], scope.row['requestMethod']) ===
                '新增'
              "
            >
              {{
                compType(scope.row[item.prop], scope.row["requestMethod"])
              }}</el-tag
            >
            <el-tag
              v-if="
                compType(scope.row[item.prop], scope.row['requestMethod']) ===
                '修改'
              "
            >
              {{
                compType(scope.row[item.prop], scope.row["requestMethod"])
              }}</el-tag
            >
            <el-tag
              type="warning"
              v-if="
                compType(scope.row[item.prop], scope.row['requestMethod']) ===
                '查询'
              "
            >
              {{
                compType(scope.row[item.prop], scope.row["requestMethod"])
              }}</el-tag
            >
          </span>
          <span v-else-if="item.scope === 'time'">{{
            numTime(scope.row[item.prop])
          }}</span>
          <span v-else-if="item.scope === 'isgzhOpenId'">{{
            scope.row[item.prop] ? "是" : "否"
          }}</span>
          <span v-else-if="item.scope === 'timeBtn'"
            >{{ numTime(scope.row[item.prop]) }}
            <el-button type="text" @click="getxq(scope.row)">详情</el-button>
          </span>
          <span
            class="editInfoSty"
            v-else-if="item.scope === 'editInfo'"
            @click="editInfo(scope.row)"
            >{{ scope.row[item.prop] }}
          </span>
          <div v-else-if="item.scope === 'editName'">
            <span>{{ scope.row[item.prop] }}</span>
            <el-button
              style="margin-left: 6px"
              type="text"
              @click="editInfo(scope.row, 2)"
              >修改</el-button
            >
          </div>
          <span v-else-if="item.scope === 'InfoMore'"
            >{{ scope.row[item.prop1] }} - {{ scope.row[item.prop2] }}
          </span>
          <div
            class="editInfoSty"
            v-else-if="item.scope === 'editInfoHTML'"
            @click="editInfo(scope.row)"
          >
            {{ getSimpleText(scope.row[item.prop]) }}
          </div>
          <div v-else-if="item.scope === 'editInfoHTMLs'">
            {{ getSimpleText(scope.row[item.prop]) }}
          </div>
          <span v-else-if="item.scope === 'minute'">{{
            numTimeminute(scope.row[item.prop])
          }}</span>
          <span
            v-else-if="item.scope === 'jumpPage'"
            @click="jumpPage(scope.row)"
            style="color: #409eff; cursor: pointer"
            >{{ scope.row[item.prop] }}</span
          >
          <span v-else-if="item.scope === 'objType'">
            {{
              scope.row[item.objProp].length
                ? scope.row[item.objProp][0][item.prop]
                : ""
            }}
          </span>
          <span v-else-if="item.scope === 'isOKs'" style="color: red"
            >审核通过</span
          >
          <span v-else-if="item.scope === 'eduTypes'">
            {{
              scope.row[item.prop1] +
              "-" +
              scope.row[item.prop2] +
              "-" +
              scope.row[item.prop3]
            }}{{ scope.row[item.prop4] ? "-" + scope.row[item.prop4] : "" }}
          </span>
          <span v-else-if="item.scope === 'peopleNums'">
            {{ scope.row[item.prop1] }} / {{ scope.row[item.prop2] }}
          </span>
          <span
            v-else-if="item.scope === 'jumpPageLabel'"
            @click="jumpPageLabel(scope.row)"
            style="color: #409eff; cursor: pointer"
            >{{ scope.row[item.prop] }}</span
          >
          <span v-else-if="item.scope === 'urlStatus'">
            {{
              scope.row[item.prop] === 1
                ? scope.row[item.prop1]
                : scope.row[item.prop] === 2
                ? scope.row[item.prop2]
                : scope.row[item.prop] === 3
                ? scope.row[item.prop3]
                : ""
            }}
          </span>
          <span
            v-else-if="item.scope === 'jumpPageLabelProfess'"
            @click="jumpPageLabelProfess(scope.row)"
            style="color: #409eff; cursor: pointer"
            >{{ scope.row[item.prop] }}</span
          >
          <span
            v-else-if="item.scope === 'infoJump'"
            @click="jumpinfoJump(scope.row)"
            style="color: #409eff; cursor: pointer"
            >详情</span
          >
          <div v-else-if="item.scope === 'learnStatus'">
            <div v-if="scope.row.learnStatus === 0" style="color: red">
              未开通
            </div>
            <div v-if="scope.row.learnStatus === 1">已开通</div>
            <div v-if="scope.row.learnStatus === 2">
              标记失败
              <el-popover placement="right" trigger="click" width="360">
                <div>
                  <p>账号开通状态为：标记失败</p>
                  <p>失败原因：<br />{{ scope.row.reason }}</p>
                </div>
                <el-button type="text" slot="reference">原因</el-button>
              </el-popover>
            </div>
          </div>
          <span v-else-if="item.scope === 'ptai'">{{
            scope.row[item.prop] == 1 ? "微信小程序" : "未知"
          }}</span>
          <div v-else-if="item.scope === 'isOptions'">
            <template v-for="(itemt, indext) in item.options">
              <span
                :key="indext"
                v-if="itemt.value === scope.row[item.prop]"
                :style="itemt.style ? itemt.style : ''"
                >{{ itemt.label }}
                <el-button
                  type="text"
                  v-if="itemt.click"
                  @click="backFunc(scope.row)"
                  >查看</el-button
                ></span
              >
            </template>
          </div>
          <div v-else-if="item.scope === 'isOptionsDY'">
            <template v-for="(itemt, indext) in item.options">
              <div
                :key="indext"
                v-if="itemt.value === scope.row[item.prop]"
                :style="
                  scope.row[item.prop] == 5 ? 'color:rgb(132, 0, 255);' : ''
                "
              >
                <el-popover
                  :key="indext"
                  trigger="hover"
                  v-if="itemt.popover === true"
                >
                  <span
                    >订单编号（业务系统）：{{ scope.row[item.oldOrder] }}</span
                  >
                  <el-button type="text" slot="reference">{{
                    itemt.label
                  }}</el-button>
                </el-popover>
                <span v-else
                  >{{ itemt.label }}
                  <el-button
                    type="text"
                    v-if="itemt.click"
                    @click="backFunc(scope.row)"
                    >查看</el-button
                  ></span
                >
              </div>
            </template>
          </div>
          <div v-else-if="item.scope === 'orderGoodsStatus'">
            {{
              scope.row[item.prop] === -1
                ? "关闭"
                : scope.row[item.prop] === 0
                ? "待支付"
                : scope.row[item.prop] === 1
                ? `已支付（￥${scope.row["goodsReceived"]}）`
                : scope.row[item.prop] === 2
                ? `已退款（￥${scope.row["goodsReceived"]}）`
                : ""
            }}
          </div>
          <div v-else-if="item.scope === 'solt'">
            <slot :name="item.soltName" :scope="scope"></slot>
          </div>
          <span v-else>
            {{ scope.row[item.prop] }}
            {{
              (scope.row[item.prop] || scope.row[item.prop] === 0) && item.ch
                ? item.ch
                : ""
            }}
          </span>
        </template>
      </af-table-column>
      <el-table-column
        label="操作"
        align="center"
        fixed="right"
        :width="navText.changeWidth ? navText.changeWidth : '180px'"
        v-if="!navText.tableHide"
      >
        <template slot-scope="scope">
          <slot name="btn" :scope="scope"></slot>
        </template>
      </el-table-column>
    </el-table>
    <el-dialog
      :visible.sync="diaBox"
      width="500px"
      :show-close="false"
      :destroy-on-close="true"
    >
      <div slot="title" class="hearders">
        <div class="leftTitle">详情</div>
        <div class="rightBoxs">
          <img
            src="@/assets/images/Close@2x.png"
            alt=""
            @click="closeBeforefs"
          />
        </div>
      </div>
      <el-row class="contentBox" :gutter="30">
        <div style="width: 100%; height: 100%">
          <video
            controls
            preload
            style="width: 100%; height: 100%"
            :src="$methodsTools.splitImgHost(videoUrls)"
          ></video>
        </div>
      </el-row>
      <div slot="footer" class="dialog-footer">
        <el-button @click="closeBeforefs">关闭</el-button>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="dialogVisible"
      width="560px"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div slot="title" class="hearders">
        <div class="leftTitle">课程树形图</div>
        <div class="rightBoxs">
          <img src="@/assets/images/Close@2x.png" alt="" @click="closes" />
        </div>
      </div>
      <div>
        <el-tree
          :key="Math.random()"
          :props="props"
          :load="loadNode"
          lazy
        ></el-tree>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closes">取 消</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="diaviosOpen"
      width="560px"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div slot="title" class="hearders">
        <div class="leftTitle">商品树形图</div>
        <div class="rightBoxs">
          <img
            src="@/assets/images/Close@2x.png"
            alt=""
            @click="diaviosOpen = false"
          />
        </div>
      </div>
      <div style="max-height: 600px; overflow: auto">
        <el-tree
          v-if="diaviosOpen"
          default-expand-all
          :key="Math.random()"
          :props="props1"
          :load="loadNode1"
          lazy
        ></el-tree>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="diaviosOpen = false">取 消</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="isShowBoxs"
      width="400px"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div slot="title" class="hearders">
        <div class="leftTitle">资料变更详情</div>
        <div class="rightBoxs">
          <img
            src="@/assets/images/Close@2x.png"
            alt=""
            @click="isShowBoxs = false"
          />
        </div>
      </div>
      <div style="max-height: 400px; overflow: auto">
        <ul>
          <li
            v-for="(items, indexs) in listBoxsGET"
            :key="indexs"
            style="margin-bottom: 30px"
          >
            <p>{{ $methodsTools.onlyForma(items.createTime) }}</p>
            <p style="padding-left: 14px; color: #999">
              姓名：{{ items.realname }}
            </p>
            <p style="padding-left: 14px; color: #999">
              身份证号码：{{ items.idCard }}
            </p>
            <p style="padding-left: 14px; color: #999">
              绑定手机号码：{{ items.telphone }}
            </p>
          </li>
        </ul>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="isShowBoxs = false">取 消</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="diaviosTKOpen"
      width="560px"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div slot="title" class="hearders">
        <div class="leftTitle">商品树形图</div>
        <div class="rightBoxs">
          <img
            src="@/assets/images/Close@2x.png"
            alt=""
            @click="diaviosTKOpen = false"
          />
        </div>
      </div>
      <div style="max-height: 600px; overflow: auto">
        <el-tree
          v-if="diaviosTKOpen"
          default-expand-all
          :key="Math.random()"
          :props="props2"
          :load="loadNode2"
          lazy
        ></el-tree>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="diaviosTKOpen = false">取 消</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import bankMsg from "./bankMsg";
export default {
  components: { bankMsg },
  props: [
    "tableSets",
    "tableData",
    "navText",
    "rowKey",
    "loading",
    "studentTable",
    "objectSpanMethod",
    "setIndex",
    "radio",
  ],
  data: function () {
    return {
      diaviosOpen: false,
      diaviosTKOpen: false,
      dialogVisible: false,
      tableSet: this.tableSets,
      allCheckData: [], //表格多选
      checkAll: true,
      checkedCities: [], //自定义列 选中数组
      cities: [], //自定义列 总数组
      isIndeterminate: false,
      videoUrls: "",
      diaBox: false,
      isShowBoxs: false,
      listBoxsGET: [],
      props: {
        label(data, node) {
          return data.menuName || data.name;
        },
        isLeaf(data, node) {
          return data.hasChildren ? false : true;
        },
      },
      props1: {
        label(data, node) {
          return data.courseName || data.menuName || data.name;
        },
        isLeaf(data, node) {
          return data.hasChildren ? false : true;
        },
      },
      props2: {
        label(data, node) {
          return data.examName || data.menuName || data.name;
        },
        isLeaf(data, node) {
          return data.hasChildren ? false : true;
        },
      },
      treeDatas: [],
      treeDatas1: [],
      treeDatas2: [],
    };
  },
  computed: {
    tableRadio: {
      get() {
        return this.radio;
      },
      set(val) {
        this.$emit("update:radio", val);
      },
    },
    compTableSet: function () {
      return function (options) {
        var arrays = options.filter((item) => {
          return item.hidden;
        });
        return arrays;
      };
    },
    numTime: function () {
      return function (res) {
        return Number(res / 3600).toFixed(2);
      };
    },
    numTimeminute: function () {
      return function (res) {
        return Number(res / 60).toFixed(2);
      };
    },
    compType: function () {
      return function (res, data) {
        if (data === "POST") {
          if (res.indexOf("edit") !== -1 || res.indexOf("update") !== -1) {
            return "修改";
          } else {
            return "新增";
          }
        } else if (data === "GET") {
          return "查询";
        }
      };
    },
  },
  created() {
    if (this.studentTable) {
      let data = sessionStorage.getItem("studentTableList");
      if (data && data !== "") {
        this.tableSet = JSON.parse(data);
      }
    }
    this.inittableSet = JSON.stringify(this.tableSet);
    this.initTR();
  },
  methods: {
    selectFuncTrue(){
      return true
    },
    radioChange(val) {},
    /**
     * 学习账号标记跳转班级
     */
    backClassView(row, type) {
      this.$emit("classView", row, type);
    },
    blurBackData(row) {
      this.$emit("sortFunc", row);
    },
    backFunc(row) {
      this.$emit("backFunc", row);
    },
    /**
     * 清除多选框
     */
    clearMoreActive() {
      this.allCheckData = [];
      this.$refs.pagerset.clearSelection();
    },
    isShowBoxsFun(item) {
      this.$api.inquireuserUpdateListsy({ userId: item.userId }).then((res) => {
        this.listBoxsGET = res.rows;
        this.isShowBoxs = true;
        // this.$api
        //   .editgradestudentuserUpdate({ userId: item.userId, status: 1 })
        //   .then((result) => {});
      });
    },
    openDialog(row) {
      this.$emit("openDialog", row);
    },
    sortMethods(a, b) {
      if (a.classGradeUserGoodsVoList && b.classGradeUserGoodsVoList) {
        return a.classGradeUserGoodsVoList.length >
          b.classGradeUserGoodsVoList.length
          ? -1
          : 1;
      } else {
        return a.sort > b.sort ? -1 : 1;
      }
    },
    sortChange(column) {
      this.$emit("sortChange", column);
    },
    openSpec(id) {
      this.$emit("openClassNum", id);
    },
    /**
     * int: 1 节列表-关联章 2 章列表-关联模块 3 模块列表-关联课程 4 课程列表-关联商品 5 题目列表-关联试卷 6 试卷列表-关联商品 7 章卷列表-关联商品 8 模块列表-关联商品
     */
    jumpPages(v, int) {
      if (int === 1) {
        const jump = () => {
          this.$router.push({
            path: "/resource/videoManagement/chapterEdit",
            query: {
              id: v.chapterId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "ChapterEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "ChapterEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 2) {
        const jump = () => {
          this.$router.push({
            path: "/resource/videoManagement/moduleManagementEdit",
            query: {
              id: v.moduleId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "ModuleManagementEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "ModuleManagementEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 3) {
        const jump = () => {
          this.$router.push({
            path: "/resource/videoManagement/editCourse",
            query: {
              id: v.courseId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "EditCourse";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "EditCourse",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 4) {
        const jump = () => {
          this.$router.push({
            name: "CommodityManageMentEdit",
            query: {
              id: v.goodsId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "CommodityManageMentEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "CommodityManageMentEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 5) {
        const jump = () => {
          this.$router.push({
            path: "/resource/bankManagement/editPaper",
            query: {
              id: v.examId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "EditPaper";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "EditPaper",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 6) {
        const jump = () => {
          this.$router.push({
            path: "/Marketing/goods/commodityManageMentEdit",
            query: {
              id: v.goodsId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "CommodityManageMentEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "CommodityManageMentEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 7) {
        const jump = () => {
          this.$router.push({
            path: "/Marketing/goods/commodityManageMentEdit",
            query: {
              id: v.goodsId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "CommodityManageMentEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "CommodityManageMentEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
      if (int === 8) {
        const jump = () => {
          this.$router.push({
            path: "/Marketing/goods/commodityManageMentEdit",
            query: {
              id: v.goodsId,
            },
          });
        };
        const statusPage = this.$store.state.tagsView.visitedViews.some(
          (item) => {
            return item.name == "CommodityManageMentEdit";
          }
        );
        if (statusPage) {
          this.$store
            .dispatch("tagsView/delCachedView", {
              name: "CommodityManageMentEdit",
            })
            .then((res) => {
              jump();
            });
        } else {
          jump();
        }
      }
    },
    getSimpleText(html) {
      var re1 = new RegExp("<.+?>", "g"); //匹配html标签的正则表达式，"g"是搜索匹配多个符合的内容
      var msg = html.replace(re1, ""); //执行替换成空字符
      return msg;
    },
    //树形图关闭
    closes() {
      this.dialogVisible = false;
    },
    loadNode(node, resolve) {
      if (node.level === 0) {
        this.treeDatas.forEach((item) => {
          if (item.type === 1) {
            item.hasChildren = true;
          }
          if (item.type === 2) {
            item.hasChildren = true;
          }
          if (item.type === 3) {
            item.hasChildren = false;
          }
        });
        return resolve(this.treeDatas);
      } else {
        if (node.data.type === 1) {
          this.$api
            .inquireCourseListmodulechapter(node.data.menuId)
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 2 + "-" + item.chapterId;
                item.hasChildren = true;
                item.menuId = item.chapterId;
                item.type = 2;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 2) {
          this.$api
            .inquireCoursechaptersectionlist(node.data.menuId)
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 3 + "-" + item.sectionId;
                item.type = 3;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 3) {
          return resolve([]);
        }
      }
    },
    diavios(ids) {
      console.log(ids, "触发");
      this.$api.obtainCourseSgoodsId(ids).then((res) => {
        res.rows.forEach((item) => {
          item.TypeId = "0-" + item.courseId;
          item.type = 0;
          item.hasChildren = true;
        });
        this.treeDatas1 = res.rows;
        this.diaviosOpen = true;
      });
    },
    loadNode1(node, resolve) {
      if (node.level === 0) {
        return resolve(this.treeDatas1);
      } else {
        if (node.data.type === 0) {
          this.$api
            .inquireCoursemenuListS({ courseId: node.data.courseId })
            .then((res) => {
              res.rows.forEach((item) => {
                item.TypeId = 1 + "-" + item.menuId;
                item.hasChildren = item.type === 3 ? false : true;
                item.menuId = item.menuId;
              });
              return resolve(res.rows);
            });
        }
        if (node.data.type === 1) {
          this.$api
            .inquireCourseListmodulechapter(node.data.menuId)
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 2 + "-" + item.chapterId;
                item.hasChildren = true;
                item.menuId = item.chapterId;
                item.type = 2;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 2) {
          this.$api
            .inquireCoursechaptersectionlist(node.data.menuId)
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 3 + "-" + item.sectionId;
                item.type = 3;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 3) {
          return resolve([]);
        }
      }
    },
    openBoxData(row) {
      this.$emit("openBoxFun", row);
    },
    diaviosTK(ids) {
      this.$api.inquireGoodsbanklist({ goodsId: ids }).then((res) => {
        res.data.forEach((item) => {
          item.TypeId = item.type + "-" + item.majorId;
          item.hasChildren = item.type === 3 ? false : true;
        });
        this.treeDatas2 = res.data;
        this.diaviosTKOpen = true;
      });
    },
    loadNode2(node, resolve) {
      if (node.level === 0) {
        return resolve(this.treeDatas2);
      } else {
        if (node.data.type === 1) {
          this.$api
            .inquireBankchapterModule({ moduleExamId: node.data.majorId })
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 2 + "-" + item.chapterExamId;
                item.menuId = item.chapterExamId;
                item.type = 2;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 2) {
          this.$api
            .inquirebankchapterexamList({
              chapterExamId: node.data.majorId,
            })
            .then((res) => {
              res.data.forEach((item) => {
                item.TypeId = 3 + "-" + item.examId;
                item.type = 3;
              });
              return resolve(res.data);
            });
        }
        if (node.data.type === 3) {
          return resolve([]);
        }
      }
    },
    timeStyle(column) {
      if (column.columnIndex === 0 && this.navText.firstColLeft) {
        return "text-align:left!important;  padding-left: 40px;";
      }
    },
    //初始化
    initTR() {
      this.cities = [];
      this.checkedCities = [];
      this.checkAll = true;
      this.isIndeterminate = false;
      this.tableSet.forEach((item, index) => {
        this.cities.push(item.label);
        if (item.hidden) {
          this.checkedCities.push(item.label);
        }
      });
      this.tableSet = [];
      this.$nextTick(() => {
        this.tableSet = JSON.parse(this.inittableSet);
      });
      if (this.checkedCities.length === 0) {
        this.isIndeterminate = false;
      } else if (this.checkedCities.length === this.cities.length) {
        this.isIndeterminate = false;
        this.checkAll = true;
      } else {
        this.isIndeterminate = true;
        this.checkAll = false;
      }
    },
    //自定义列全选按钮触发
    handleCheckAllChange(val) {
      this.checkedCities = val ? this.cities : [];
      this.isIndeterminate = false;
      if (val) {
        this.tableSet = [];
        this.$nextTick(() => {
          this.tableSet = JSON.parse(this.inittableSet);
        });
      } else {
        this.tableSet.forEach((item, index) => {
          item.hidden = false;
        });
      }
    },
    // 勾选自定义列子选项
    handleCheckedCitiesChange(value) {
      var copyTable = JSON.parse(JSON.stringify(this.tableSet));
      let checkedCount = value.length;
      this.checkAll = checkedCount === this.cities.length;
      this.isIndeterminate =
        checkedCount > 0 && checkedCount < this.cities.length;
      this.tableSet = [];
      this.$nextTick(() => {
        this.tableSet = copyTable;
      });
    },
    checkboxChange(v, e) {
      var copyTable = JSON.parse(JSON.stringify(this.tableSet));
      copyTable.forEach((item) => {
        if (item.label === v) {
          item.hidden = e;
        }
      });

      this.tableSet = [];
      this.$nextTick(() => {
        this.tableSet = copyTable;
        if (this.studentTable) {
          sessionStorage.setItem("studentTableList", JSON.stringify(copyTable));
        }
      });
    },
    //自定义列重置
    initVue() {
      // this.$emit("initTableset");
      this.tableSet = JSON.parse(this.inittableSet);
      this.initTR();
    },
    // 下移
    downMove(option, index) {
      if (index !== this.tableSet.length - 1) {
        this.tableSet[index] = this.tableSet.splice(
          index + 1,
          1,
          this.tableSet[index]
        )[0];
        this.cities[index] = this.cities.splice(
          index + 1,
          1,
          this.cities[index]
        )[0];
      } else {
        this.tableSet.unshift(this.tableSet.splice(index, 1)[0]);
        this.cities.unshift(this.cities.splice(index, 1)[0]);
      }
      var copyTable = JSON.parse(JSON.stringify(this.tableSet));
      this.tableSet = [];
      this.$nextTick(() => {
        this.tableSet = copyTable;
      });
    },
    // 上移
    upMove(option, index) {
      if (index != 0) {
        this.tableSet[index] = this.tableSet.splice(
          index - 1,
          1,
          this.tableSet[index]
        )[0];
        this.cities[index] = this.cities.splice(
          index - 1,
          1,
          this.cities[index]
        )[0];
      } else {
        this.tableSet.push(this.tableSet.shift());
        this.cities.push(this.cities.shift());
      }
      var copyTable = JSON.parse(JSON.stringify(this.tableSet));
      this.tableSet = [];
      this.$nextTick(() => {
        this.tableSet = copyTable;
      });
    },
    //跳转页面
    jumpPage(options) {
      const jump = () => {
        this.$router.push({
          path: "dictData",
          query: {
            dictId: options.dictId,
            dictType: options.dictType,
          },
        });
      };
      const statusPage = this.$store.state.tagsView.visitedViews.some(
        (item) => {
          return item.name == "DictData";
        }
      );
      if (statusPage) {
        this.$store
          .dispatch("tagsView/delCachedView", {
            name: "DictData",
          })
          .then((res) => {
            jump();
          });
      } else {
        jump();
      }
    },
    //跳转页面
    jumpPageLabel(options) {
      const jump = () => {
        this.$router.push({
          path: "labelInfos",
          query: {
            id: options.id,
          },
        });
      };
      const statusPage = this.$store.state.tagsView.visitedViews.some(
        (item) => {
          return item.name == "LabelInfos";
        }
      );
      if (statusPage) {
        this.$store
          .dispatch("tagsView/delCachedView", {
            name: "LabelInfos",
          })
          .then((res) => {
            jump();
          });
      } else {
        jump();
      }
    }, //跳转页面
    jumpPageLabelProfess(options) {
      const jump = () => {
        this.$router.push({
          path: "labelInfos",
          query: {
            id: options.labelId,
          },
        });
      };
      const statusPage = this.$store.state.tagsView.visitedViews.some(
        (item) => {
          return item.name == "LabelInfos";
        }
      );
      if (statusPage) {
        this.$store
          .dispatch("tagsView/delCachedView", {
            name: "LabelInfos",
          })
          .then((res) => {
            jump();
          });
      } else {
        jump();
      }
    },
    jumpinfoJump(options) {
      const jump = () => {
        this.$router.push({
          path: "beneficiaryInfos",
          query: {
            id: options.payeeId,
          },
        });
      };
      const statusPage = this.$store.state.tagsView.visitedViews.some(
        (item) => {
          return item.name == "BeneficiaryInfos";
        }
      );
      if (statusPage) {
        this.$store
          .dispatch("tagsView/delCachedView", {
            name: "BeneficiaryInfos",
          })
          .then((res) => {
            jump();
          });
      } else {
        jump();
      }
    },
    //新增按钮
    addClick() {
      this.$emit("addClick");
    },
    //将选中值传回调用组件
    backFather() {
      this.$emit("emitData", this.allCheckData);
    },
    edit() {},
    selectAll(value) {
      this.allCheckData = value;
    },
    select(value) {
      this.allCheckData = value;
    },
    load(tree, treeNode, resolve) {
      this.$emit("load", tree, treeNode, resolve);
    },
    editInfo(option, int) {
      if (int === 2) {
        this.$emit("editName", option);
      } else if (int === 3) {
        this.$emit("aboutGoods", option);
      } else {
        this.$emit("editInfo", option);
      }
    },
    getxq(option) {
      this.$emit("getxq", option.userId);
    },
    openVideo(url) {
      this.videoUrls = url;
      this.diaBox = true;
    },
    closeBeforefs() {
      this.diaBox = false;
    },
  },
};
</script>
<style lang="less">
.el-table .info-row {
  background: #c9c9c9;
}
.open_style {
  cursor: pointer;
  color: blue;
}
.el-table .cell.el-tooltip {
  transition: all 0.3s;
}
.max-heightStyles {
  max-height: 500px;
  overflow-y: auto;
}
.overSty {
  white-space: nowrap;
  overflow-x: auto;
  &::-webkit-scrollbar {
    width: 14px;
    height: 14px;
  }

  &::-webkit-scrollbar-track,
  &::-webkit-scrollbar-thumb {
    border-radius: 999px;
    border: 5px solid transparent;
  }

  &::-webkit-scrollbar-track {
    box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2) inset;
  }

  &::-webkit-scrollbar-thumb {
    min-height: 20px;
    background-clip: content-box;
    box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.2) inset;
  }

  &::-webkit-scrollbar-corner {
    background: transparent;
  }
}
.slotPopper {
  padding: 0px !important;
}
</style>
<style lang="less" scoped>
#tableList {
  padding: 16px 16px 16px;
  border-radius: 8px;
  box-shadow: 0px 0px 9px 1px rgba(28, 41, 90, 0.1);
  background: #ffffff;
  .headerNavTool {
    height: 72px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: -16px;
    .rightBtnBox {
      display: flex;
      align-items: center;
    }
  }
}
.goodsListStyle {
  cursor: pointer;
  color: blue;
}
.popoverDis {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: 14px;
  .checkboxHeader {
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: 13px;
    padding-right: 15px;
    width: 100%;
    .initbtns {
      color: #47a6ff;
      cursor: pointer;
    }
  }
  .checkboxGroup {
    display: flex;
    flex-direction: column;
    width: 100%;
    .checkboxchild {
      width: 100%;
      justify-content: space-between;
      height: 40px;
      display: flex;
      align-items: center;
      padding: 0px 15px 0px 13px;
      transition: all 0.4s;
      &:hover {
        background-color: #ecf5ff;
      }
      &:hover .icon-right {
        display: flex;
      }
      .icon-right {
        display: flex;
        align-items: center;
        width: 30px;
        height: 30px;
        color: #666;
        font-size: 14px;
        display: none;
        i {
          cursor: pointer;
          margin: 0px 3px;
          &:hover {
            color: #47a6ff;
          }
        }
      }
    }
  }
}
/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
  color: #666;
}
.imgboxsq {
  margin: 0 auto;
  height: 60px;
  max-height: 60px;
  .el_images {
    /deep/.el-image__inner {
      width: auto;
    }
  }
}
.imgHover {
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.cvideo {
  transition: all 0.2s;
  color: #333;
  cursor: pointer;
  font-size: 30px;
}
.cvideo:hover {
  color: #47a6ff;
}
.editInfoSty {
  cursor: pointer;
  color: blue;
}
.ulAuto {
  display: flex;
  justify-content: center;
  align-items: center;
  & > ul {
    margin: 0px;
  }
}
.ulAutos {
  display: flex;
  align-items: center;
  justify-content: center;
}
.el-popover > ul {
  margin: 0px;
}
.dis_sdt {
  display: flex;
  align-items: flex-end;
  ul {
    margin: 0px;
    li {
      text-align: left;
    }
  }
}
.jumpStys {
  color: blue;
  cursor: pointer;
}
.zdyBoxStyle {
  display: flex;
  align-items: center;
  justify-content: center;
  .zdyBtnstyle {
    padding: 4px 16px;
    border-radius: 4px;
    border: 1px solid #666;
    color: #666;
    cursor: pointer;
  }
  .goodsActiveStyle {
    color: #fff;
    background-color: #409eff;
    border-color: #409eff;
  }
}
.liSYTS {
  padding: 10px;
  margin-bottom: 16px;
  background: #eee;
  width: 96%;
}
.overBoxs {
  max-height: 500px;
  overflow-y: auto;
}
</style>
