src/components/Table/value-table.vue
@@ -49,14 +49,18 @@
.handleBtn.is-disabled {
  color: #c0c4cc;
}
.red {
  color: red !important;
}
>>> .el-loading-parent--relative {
>>>.el-loading-parent--relative {
  z-index: 1 !important;
}
>>> .el-table__body-wrapper::-webkit-scrollbar {
  height: 14px; /* 设置滚动条宽度 */
>>>.el-table__body-wrapper::-webkit-scrollbar {
  height: 14px;
  /* 设置滚动条宽度 */
}
</style>
<style>
@@ -104,6 +108,7 @@
  align-items: center;
  justify-content: center;
}
.el-table__empty-text {
  text-align: left;
  width: 100%;
@@ -114,153 +119,62 @@
<template>
  <div class="value-table">
    <div
      :style="
        data.isPage != undefined && data.isPage != true ? 'height:100%' : ''
      "
      class="table"
    >
      <el-table
        :key="specialKey"
        ref="eltable"
        v-loading="loading"
        :current-row-key="data.currentId"
        :data="tableData"
        :highlight-current-row="data.highlight === undefined || data.highlight"
        :row-class-name="tableRowClassName"
        :row-key="(record) => record[rowKey]"
        :show-summary="
          data.countFleid != undefined && data.countFleid.length > 0
        "
        :span-method="spanMethod"
        :summary-method="getSummaries"
        height="100%"
        style="width: 100%"
        tooltip-effect="dark"
        @select="select"
        @selection-change="selectChange"
        @sort-change="sortChange"
        @row-click="rowClick"
      >
        <el-table-column
          v-if="data.showSelect"
          :key="Math.random()"
          :width="selectionWidth"
          type="selection"
        >
    <div :style="data.isPage != undefined && data.isPage != true ? 'height:100%' : ''
      " class="table">
      <el-table :key="specialKey" ref="eltable" v-loading="loading" :current-row-key="data.currentId" :data="tableData"
        :highlight-current-row="data.highlight === undefined || data.highlight" :row-class-name="tableRowClassName"
        :row-key="(record) => record[rowKey]" :show-summary="data.countFleid != undefined && data.countFleid.length > 0
          " :span-method="spanMethod" :summary-method="getSummaries" height="100%" style="width: 100%"
        tooltip-effect="dark" @select="select" @selection-change="selectChange" @sort-change="sortChange"
        @row-click="rowClick">
        <el-table-column v-if="data.showSelect" :key="Math.random()" :width="selectionWidth" type="selection">
        </el-table-column>
        <el-table-column
          v-if="data.isIndex"
          :key="Math.random()"
          :width="selectionWidth"
          align="center"
          label="序号"
          type="index"
        >
        <el-table-column v-if="data.isIndex" :key="Math.random()" :width="selectionWidth" align="center" label="序号"
          type="index">
        </el-table-column>
        <el-table-column
          v-for="(a, ai) in tableHead"
          v-if="
            !data.headNoShow ||
            (data.headNoShow && data.headNoShow.length == 0) ||
            (data.headNoShow &&
              data.headNoShow.length > 0 &&
              !data.headNoShow.find((d) => d == a.label))
          "
          :key="ai + 'bbbbb'"
          :isColumnWidth="isColumnWidth"
          :isShowZero="isShowZero"
          :label="a.value"
          :min-width="columnMinWidth"
          :prop="a.label"
          :sortable="a.sort === 'custom' ? 'custom' : false"
          show-overflow-tooltip
        >
        <el-table-column v-for="(a, ai) in tableHead" v-if="
          !data.headNoShow ||
          (data.headNoShow && data.headNoShow.length == 0) ||
          (data.headNoShow &&
            data.headNoShow.length > 0 &&
            !data.headNoShow.find((d) => d == a.label))
        " :key="ai + 'bbbbb'" :isColumnWidth="isColumnWidth" :isShowZero="isShowZero" :label="a.value"
          :min-width="columnMinWidth" :prop="a.label" :sortable="a.sort === 'custom' ? 'custom' : false"
          show-overflow-tooltip>
          <template slot-scope="scope">
            <div v-if="showType(a.label, data.tagField) != null">
              <template v-if="typeof scope.row[a.label] == 'object'">
                <template v-for="(param, i) in scope.row[a.label]">
                  <el-tag
                    v-for="(b, bi) in data.tagField[a.label].select"
                    v-if="b.value == param"
                    :key="bi + 'cccc'"
                    :type="b.type"
                    size="medium"
                    style="margin-right: 5px"
                    >{{ b.label }}</el-tag
                  >
                  <el-tag v-for="(b, bi) in data.tagField[a.label].select" v-if="b.value == param" :key="bi + 'cccc'"
                    :type="b.type" size="medium" style="margin-right: 5px">{{ b.label }}</el-tag>
                </template>
              </template>
              <template v-else>
                <el-tag
                  v-for="(b, bi) in data.tagField[a.label].select"
                  v-show="b.value == scope.row[a.label]"
                  :key="bi + 'ddddd'"
                  :type="b.type"
                  size="medium"
                  >{{ b.label }}</el-tag
                >
                <el-tag v-for="(b, bi) in data.tagField[a.label].select" v-show="b.value == scope.row[a.label]"
                  :key="bi + 'ddddd'" :type="b.type" size="medium">{{ b.label }}</el-tag>
              </template>
            </div>
            <!-- 可操作行进行点击事件 -->
            <span
              v-else-if="data.linkEvent && showLink(a.label, data.linkEvent)"
              style="color: #409eff; cursor: pointer"
              @click="handleLinkEvent(scope.row, data.linkEvent[a.label])"
              >{{ scope.row[a.label] }}</span
            >
            <img
              v-else-if="showUpload(a.label) && scope.row[a.label]"
              :src="javaApi + '/img/' + scope.row[a.label]"
              alt=""
              style="width: 40px; height: 40px; margin-top: 10px"
            />
            <span v-else-if="data.linkEvent && showLink(a.label, data.linkEvent)"
              style="color: #409eff; cursor: pointer" @click="handleLinkEvent(scope.row, data.linkEvent[a.label])">{{
                scope.row[a.label] }}</span>
            <img v-else-if="showUpload(a.label) && scope.row[a.label]" :src="javaApi + '/img/' + scope.row[a.label]"
              alt="" style="width: 40px; height: 40px; margin-top: 10px" />
            <span v-else :class="{ red: getRedColor(a.label, scope.row) }">{{
              scope.row[a.label]
            }}</span>
          </template>
        </el-table-column>
        <el-table-column
          v-if="data.do.length > 0"
          :width="getWidth()"
          align="center"
          fixed="right"
          label="操作"
        >
        <el-table-column v-if="data.do.length > 0" :width="getWidth()" align="center" fixed="right" label="操作">
          <template slot-scope="scope">
            <el-button
              v-for="(a, ai) in data.do"
              :key="ai + 'qqqq'"
              :disabled="
                a.disabFun ? a.disabFun(scope.row, scope.$index) : false
              "
              :type="a.type"
              class="handleBtn"
              @click="main(scope.row, a)"
            >
            <el-button v-for="(a, ai) in data.do" :key="ai + 'qqqq'" :disabled="a.disabFun ? a.disabFun(scope.row, scope.$index) : false
              " :type="a.type" class="handleBtn" @click="main(scope.row, a)">
              <span v-if="a.type != 'upload'">{{ a.font }}</span>
              <el-upload
                v-else
                ref="upload"
                :accept="a.uploadConfig.accept"
                :action="
                  javaApi +
                  a.uploadConfig.url +
                  '?id=' +
                  (a.uploadConfig.uploadIdFun
                    ? a.uploadConfig.uploadIdFun(scope.row)
                    : scope.row.id)
                "
                :disabled="
                  a.disabFun ? a.disabFun(scope.row, scope.$index) : false
                "
                :headers="token"
                :on-error="onError"
                :on-success="handleSuccessUp"
                :show-file-list="false"
                name="file"
                style="background: transparent"
              >
              <el-upload v-else ref="upload" :accept="a.uploadConfig.accept"
                :action="javaApi + a.uploadConfig.url + '?id=' + (a.uploadConfig.uploadIdFun ? a.uploadConfig.uploadIdFun(scope.row) : scope.row.id)"
                :disabled="a.disabFun ? a.disabFun(scope.row, scope.$index) : false
                  " :headers="token" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false"
                name="file" style="background: transparent">
                <span>{{ a.font }}</span>
              </el-upload>
            </el-button>
@@ -269,394 +183,184 @@
      </el-table>
    </div>
    <div v-if="data.isPage == undefined || data.isPage" class="page">
      <el-pagination
        :current-page="page.current"
        :page-size="page.size"
        :page-sizes="[10, 20, 30, 50, 100]"
        :total="total"
        layout="total, sizes, prev, pager, next, jumper"
        @size-change="sizeChange"
        @current-change="currentChange"
      >
      <el-pagination :current-page="page.current" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]"
        :total="total" layout="total, sizes, prev, pager, next, jumper" @size-change="sizeChange"
        @current-change="currentChange">
      </el-pagination>
    </div>
    <el-dialog
      :close-on-click-modal="false"
      :visible.sync="upDia"
      :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'"
      append-to-body
      title="编辑"
    >
      <div
        class="body"
        style="max-height: 600px; overflow-y: auto; padding: 5px 10px 5px 0"
      >
    <el-dialog :close-on-click-modal="false" :visible.sync="upDia"
      :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'" append-to-body title="编辑">
      <div class="body" style="max-height: 600px; overflow-y: auto; padding: 5px 10px 5px 0">
        <div v-if="data.row > 1">
          <div
            v-for="(a, ai) in upHead"
            :key="ai + 'ffff'"
            style="line-height: 50px"
          >
          <div v-for="(a, ai) in upHead" :key="ai + 'ffff'" style="line-height: 50px">
            <el-col :offset="1" :span="6 / data.row" style="text-align: right">
              <span v-if="showUpReq(a.label)" class="required-span">* </span
              >{{ a.value }}:
              <span v-if="showUpReq(a.label)" class="required-span">* </span>{{ a.value }}:
            </el-col>
            <el-col :span="16 / data.row">
              <el-input
                v-if="
                  showType(a.label, data.selectField) == null &&
                  !showUpload(a.label) &&
                  !showCascader(a.label)
                "
                v-model="upData[a.label]"
                :disabled="isDisabled(a.label)"
                :placeholder="`请输入${a.value}`"
                clearable
                size="small"
              ></el-input>
              <el-select
                v-if="showType(a.label, data.selectField) != null"
                v-model="upData[a.label]"
                :allow-create="data.selectField[a.label].allowCreate"
                :default-first-option="
                  data.selectField[a.label].defaultFirstOption
                "
                :disabled="isDisabled(a.label)"
                :multiple="data.selectField[a.label].choose"
                clearable
                filterable
                size="small"
                style="width: 100%"
              >
                <el-option
                  v-for="(b, bi) in data.selectField[a.label].select"
                  :key="bi + 'eeeee'"
                  :label="b.label"
                  :value="b.value"
                >
              <el-input v-if="
                showType(a.label, data.selectField) == null &&
                !showUpload(a.label) &&
                !showCascader(a.label)
              " v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" clearable
                size="small"></el-input>
              <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]"
                :allow-create="data.selectField[a.label].allowCreate" :default-first-option="data.selectField[a.label].defaultFirstOption
                  " :disabled="isDisabled(a.label)" :multiple="data.selectField[a.label].choose" clearable filterable
                size="small" style="width: 100%">
                <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi + 'eeeee'" :label="b.label"
                  :value="b.value">
                </el-option>
              </el-select>
              <el-upload
                v-if="showUpload(a.label)"
                ref="upload"
                :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url"
                :headers="token"
                :multiple="false"
                :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)"
                :show-file-list="false"
                class="avatar-uploader"
                name="file"
                style="
              <el-upload v-if="showUpload(a.label)" ref="upload" :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader"
                name="file" style="
                  background: transparent;
                  width: 80px;
                  height: 80px;
                  border: 1px solid #dcdfe6;
                  border-radius: 6px;
                  margin: 10px 0;
                "
              >
                <img
                  v-if="upData[a.label]"
                  :src="javaApi + '/img/' + upData[a.label]"
                  class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px"
                />
                ">
                <img v-if="upData[a.label]" :src="javaApi + '/img/' + upData[a.label]" class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px" />
                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
              </el-upload>
              <el-cascader
                v-if="showCascader(a.label)"
                :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`"
                :props="data.cascaderField.props"
                :show-all-levels="false"
                :value="upData[a.label]"
                clearable
                filterable
                size="small"
                style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"
              ></el-cascader>
              <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false"
                :value="upData[a.label]" clearable filterable size="small" style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"></el-cascader>
            </el-col>
          </div>
        </div>
        <div v-else>
          <el-row
            v-for="(a, ai) in upHead"
            :key="ai + 'ggggg'"
            style="line-height: 50px"
          >
          <el-row v-for="(a, ai) in upHead" :key="ai + 'ggggg'" style="line-height: 50px">
            <el-col :span="6" style="text-align: right">
              <span v-if="showUpReq(a.label)" class="required-span">* </span
              >{{ a.value }}:
              <span v-if="showUpReq(a.label)" class="required-span">* </span>{{ a.value }}:
            </el-col>
            <el-col :offset="1" :span="16">
              <el-input
                v-if="
                  showType(a.label, data.selectField) == null &&
                  !showUpload(a.label) &&
                  !showCascader(a.label)
                "
                v-model="upData[a.label]"
                :disabled="isDisabled(a.label)"
                :placeholder="`请输入${a.value}`"
                clearable
                size="small"
              ></el-input>
              <el-select
                v-if="showType(a.label, data.selectField) != null"
                v-model="upData[a.label]"
                :disabled="isDisabled(a.label)"
                :multiple="data.selectField[a.label].choose"
                clearable
                filterable
                size="small"
                style="width: 100%"
              >
                <el-option
                  v-for="(b, bi) in data.selectField[a.label].select"
                  :key="bi + 'fffff'"
                  :label="b.label"
                  :value="b.value"
                ></el-option>
              <el-input v-if="
                showType(a.label, data.selectField) == null &&
                !showUpload(a.label) &&
                !showCascader(a.label)
              " v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" clearable
                size="small"></el-input>
              <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]"
                :disabled="isDisabled(a.label)" :multiple="data.selectField[a.label].choose" clearable filterable
                size="small" style="width: 100%">
                <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi + 'fffff'" :label="b.label"
                  :value="b.value"></el-option>
              </el-select>
              <el-upload
                v-if="showUpload(a.label)"
                ref="upload"
                :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url"
                :headers="token"
                :multiple="false"
                :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)"
                :show-file-list="false"
                class="avatar-uploader"
                name="file"
                style="
              <el-upload v-if="showUpload(a.label)" ref="upload" :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader"
                name="file" style="
                  background: transparent;
                  width: 80px;
                  height: 80px;
                  border: 1px solid #dcdfe6;
                  border-radius: 6px;
                  margin: 10px 0;
                "
              >
                <img
                  v-if="upData[a.label]"
                  :src="javaApi + '/img/' + upData[a.label]"
                  class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px"
                />
                ">
                <img v-if="upData[a.label]" :src="javaApi + '/img/' + upData[a.label]" class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px" />
                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
              </el-upload>
              <el-cascader
                v-if="showCascader(a.label)"
                :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`"
                :props="data.cascaderField.props"
                :show-all-levels="false"
                :value="upData[a.label]"
                clearable
                filterable
                size="small"
                style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"
              ></el-cascader>
              <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false"
                :value="upData[a.label]" clearable filterable size="small" style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"></el-cascader>
            </el-col>
          </el-row>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="upDia = false">取 消</el-button>
        <el-button :loading="upLoad" type="primary" @click="saveUpData"
          >确 定</el-button
        >
        <el-button :loading="upLoad" type="primary" @click="saveUpData">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :visible.sync="addDia"
      :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'"
      append-to-body
      title="新增"
    >
      <div
        v-if="addDia"
        class="body"
        style="max-height: 550px; overflow-y: auto; padding: 5px 10px 5px 0"
      >
    <el-dialog :close-on-click-modal="false" :visible.sync="addDia"
      :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'" append-to-body title="新增">
      <div v-if="addDia" class="body" style="max-height: 550px; overflow-y: auto; padding: 5px 10px 5px 0">
        <div v-if="data.row > 1">
          <div
            v-for="(a, ai) in upHead"
            :key="ai + 'yyyyy'"
            style="line-height: 50px"
          >
            <el-col :offset="1" :span="6 / data.row" style="text-align: right"
              ><span v-if="showAddReq(a.label)" class="required-span">* </span
              >{{ a.value }}:</el-col
            >
          <div v-for="(a, ai) in upHead" :key="ai + 'yyyyy'" style="line-height: 50px">
            <el-col :offset="1" :span="6 / data.row" style="text-align: right"><span v-if="showAddReq(a.label)"
                class="required-span">* </span>{{ a.value }}:</el-col>
            <el-col :span="16 / data.row">
              <el-input
                v-if="
                  showType(a.label, data.selectField) == null &&
                  !showUpload(a.label) &&
                  !showCascader(a.label)
                "
                v-model="upData[a.label]"
                :placeholder="`请输入${a.value}`"
                clearable
                size="small"
              ></el-input>
              <el-select
                v-if="showType(a.label, data.selectField) != null"
                v-model="upData[a.label]"
                :multiple="data.selectField[a.label].choose"
                :placeholder="`请选择${a.value}`"
                clearable
                filterable
                size="small"
                style="width: 100%"
              >
                <el-option
                  v-for="(b, bi) in data.selectField[a.label].select"
                  :key="bi + 'hhhh'"
                  :label="b.label"
                  :value="b.value"
                ></el-option>
              <el-input v-if="
                showType(a.label, data.selectField) == null &&
                !showUpload(a.label) &&
                !showCascader(a.label)
              " v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable size="small"></el-input>
              <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]"
                :multiple="data.selectField[a.label].choose" :placeholder="`请选择${a.value}`" clearable filterable
                size="small" style="width: 100%">
                <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi + 'hhhh'" :label="b.label"
                  :value="b.value"></el-option>
              </el-select>
              <el-upload
                v-if="showUpload(a.label)"
                ref="upload"
                :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url"
                :headers="token"
                :multiple="false"
                :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)"
                :show-file-list="false"
                class="avatar-uploader"
                name="file"
                style="
              <el-upload v-if="showUpload(a.label)" ref="upload" :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader"
                name="file" style="
                  background: transparent;
                  width: 80px;
                  height: 80px;
                  border: 1px solid #dcdfe6;
                  border-radius: 6px;
                  margin: 10px 0;
                "
              >
                <img
                  v-if="upData[a.label]"
                  :src="javaApi + '/img/' + upData[a.label]"
                  class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px"
                />
                ">
                <img v-if="upData[a.label]" :src="javaApi + '/img/' + upData[a.label]" class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px" />
                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
              </el-upload>
              <el-cascader
                v-if="showCascader(a.label)"
                :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`"
                :props="data.cascaderField.props"
                :show-all-levels="false"
                clearable
                filterable
                size="small"
                style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"
              ></el-cascader>
              <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" clearable
                filterable size="small" style="width: 100%" @change="(m) => handleCascader(m, a.label)"></el-cascader>
            </el-col>
          </div>
        </div>
        <div v-else>
          <el-row
            v-for="(a, ai) in upHead"
            :key="ai + 'jjjjj'"
            style="line-height: 50px"
          >
            <el-col :span="6" style="text-align: right"
              ><span v-if="showAddReq(a.label)" class="required-span">* </span
              >{{ a.value }}:</el-col
            >
          <el-row v-for="(a, ai) in upHead" :key="ai + 'jjjjj'" style="line-height: 50px">
            <el-col :span="6" style="text-align: right"><span v-if="showAddReq(a.label)" class="required-span">*
              </span>{{
              a.value }}:</el-col>
            <el-col :offset="1" :span="16">
              <el-input
                v-if="
                  showType(a.label, data.selectField) == null &&
                  !showUpload(a.label) &&
                  !showCascader(a.label)
                "
                v-model="upData[a.label]"
                :placeholder="`请输入${a.value}`"
                clearable
                size="small"
              ></el-input>
              <el-select
                v-if="showType(a.label, data.selectField) != null"
                v-model="upData[a.label]"
                :multiple="data.selectField[a.label].choose"
                :placeholder="`请选择${a.value}`"
                clearable
                size="small"
                style="width: 100%"
              >
                <el-option
                  v-for="(b, bi) in data.selectField[a.label].select"
                  :key="bi + 'mmmmmm'"
                  :label="b.label"
                  :value="b.value"
                ></el-option>
              <el-input v-if="
                showType(a.label, data.selectField) == null &&
                !showUpload(a.label) &&
                !showCascader(a.label)
              " v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable size="small"></el-input>
              <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]"
                :multiple="data.selectField[a.label].choose" :placeholder="`请选择${a.value}`" clearable size="small"
                style="width: 100%">
                <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi + 'mmmmmm'" :label="b.label"
                  :value="b.value"></el-option>
              </el-select>
              <el-upload
                v-if="showUpload(a.label)"
                ref="upload"
                :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url"
                :headers="token"
                :multiple="false"
                :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)"
                :show-file-list="false"
                class="avatar-uploader"
                name="file"
                style="
              <el-upload v-if="showUpload(a.label)" ref="upload" :accept="data.addUploadConfig.accept"
                :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError"
                :on-success="(m) => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader"
                name="file" style="
                  background: transparent;
                  width: 80px;
                  height: 80px;
                  border: 1px solid #dcdfe6;
                  border-radius: 6px;
                  margin: 10px 0;
                "
              >
                <img
                  v-if="upData[a.label]"
                  :src="javaApi + '/img/' + upData[a.label]"
                  class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px"
                />
                ">
                <img v-if="upData[a.label]" :src="javaApi + '/img/' + upData[a.label]" class="avatar"
                  style="width: 80px; height: 80px; border-radius: 6px" />
                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
              </el-upload>
              <el-cascader
                v-if="showCascader(a.label)"
                :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`"
                :props="data.cascaderField.props"
                :show-all-levels="false"
                clearable
                filterable
                size="small"
                style="width: 100%"
                @change="(m) => handleCascader(m, a.label)"
              ></el-cascader>
              <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree"
                :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" clearable
                filterable size="small" style="width: 100%" @change="(m) => handleCascader(m, a.label)"></el-cascader>
            </el-col>
          </el-row>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addDia = false">取 消</el-button>
        <el-button :loading="addLoad" type="primary" @click="saveAddData"
          >确 定</el-button
        >
        <el-button :loading="addLoad" type="primary" @click="saveAddData">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="downDia" title="导出" width="400px">
@@ -671,21 +375,9 @@
    </el-dialog>
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px">
      <div style="margin: 0 auto">
        <el-upload
          ref="upload"
          :accept="data.accept === undefined ? '.csv' : data.accept"
          :action="javaApi + inputUrl"
          :auto-upload="false"
          :data="{ param: data.uploadStr }"
          :file-list="fileList"
          :headers="token"
          :limit="1"
          :on-change="beforeUpload"
          :on-error="onError"
          :on-success="onSuccess"
          drag
          name="file"
        >
        <el-upload ref="upload" :accept="data.accept === undefined ? '.csv' : data.accept" :action="javaApi + inputUrl"
          :auto-upload="false" :data="{ param: data.uploadStr }" :file-list="fileList" :headers="token" :limit="1"
          :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" drag name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -1007,13 +699,9 @@
          }
        )
        .then((res) => {
          if (res.code === 201) {
            this.loading = false;
            return;
          }
          this.total = res.data.body.total;
          this.tableHead = res.data.head;
          this.tableData = res.data.body.records;
          this.tableData = res.data.records;
          if (this.data.needSort !== undefined) {
            // 根据父组件传回来的needSort数组,判断哪些字段需要排序功能
            for (var i = 0; i < this.data.needSort.length; i++) {
@@ -1068,7 +756,7 @@
              this.tableData.map((b) => {
                try {
                  b[a] = JSON.parse(b[a]);
                } catch (e) {}
                } catch (e) { }
              });
            }
          }
@@ -1255,9 +943,6 @@
                  id: row.id,
                })
                .then((res) => {
                  if (res.code === 201) {
                    return;
                  }
                  this.$message.success("删除成功");
                  this.selectList("page");
                  this.$emit("delete");
@@ -1266,7 +951,7 @@
                  this.$message.error("删除失败");
                });
            })
            .catch(() => {});
            .catch(() => { });
        }
      } else if (val.id === "parent") {
        delete row.orderBy;
@@ -1332,10 +1017,6 @@
          },
        })
        .then((res) => {
          if (res.code === 201) {
            this.upLoad = false;
            return;
          }
          this.$message.success("修改成功");
          this.upDia = false;
          this.selectList("page");
@@ -1644,7 +1325,7 @@
                this.$message.error("删除失败");
              });
          })
          .catch(() => {});
          .catch(() => { });
      } else {
        this.$message.error("请选择要删除的数据");
      }