From 28f1259ec675a191d2a852f74566400e6cc40b50 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 11 九月 2024 17:03:11 +0800
Subject: [PATCH] 前端问题改动,与代码优化

---
 Code Management/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue |  851 ++++++++++++++++++++-----------------------------------
 1 files changed, 314 insertions(+), 537 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue b/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue
index 8c89b91..72dc314 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue
@@ -1,333 +1,171 @@
 <template>
   <!-- 2021.11.18绉婚櫎voltable鏂规硶@cell-mouse-leave="rowEndEdit" -->
-  <div
-    class="vol-table"
-    :class="[
-      textInline ? 'text-inline' : '',
-      fxRight ? 'fx-right' : '',
-      isChrome ? 'chrome' : '',
-      smallCell?'small-table':''
-    ]"
-  >
+  <div class="vol-table" :class="[
+    textInline ? 'text-inline' : '',
+    fxRight ? 'fx-right' : '',
+    isChrome ? 'chrome' : '',
+    smallCell ? 'small-table' : ''
+  ]">
     <div class="mask" v-show="loading"></div>
     <div class="message" v-show="loading">鍔犺浇涓�.....</div>
-    <el-table
-      :show-summary="summary"
-      :summary-method="getSummaryData"
-      :row-key="rowKey"
-      :key="randomTableKey"
-      :lazy="lazy"
-      :defaultExpandAll="defaultExpandAll"
-      :expand-row-keys="rowKey ? expandRowKeys : undefined"
-      stripe
-      :load="loadTreeChildren"
-      @select="userSelect"
-      @select-all="userSelect"
-      @selection-change="selectionChange"
-      @row-dblclick="rowDbClick"
-      @row-click="rowClick"
-      @header-click="headerClick"
-      :highlight-current-row="highlightCurrentRow"
-      ref="table"
-      class="v-table"
-      @sort-change="sortChange"
-      tooltip-effect="dark"
-      :height="realHeight"
-      :max-height="realMaxHeight"
-      :data="url ? rowData : tableData"
-      border
-      :row-class-name="initIndex"
-      :cell-style="getCellStyle"
-      style="width: 100%"
-      :scrollbar-always-on="true"
-      :span-method="cellSpanMethod"
-      @expand-change="expandChange"
-    >
-      <el-table-column
-        v-if="columnIndex"
-        type="index"
-        :fixed="fixed"
-        width="55"
-      ></el-table-column>
-      <el-table-column
-        v-if="ck"
-        type="selection"
-        :fixed="fixed"
-        :selectable="selectable"
-        width="55"
-      ></el-table-column>
+    <el-table :show-summary="summary" :summary-method="getSummaryData" :row-key="rowKey" :key="randomTableKey"
+      :lazy="lazy" :defaultExpandAll="defaultExpandAll" :expand-row-keys="rowKey ? expandRowKeys : undefined" stripe
+      :load="loadTreeChildren" @select="userSelect" @select-all="userSelect" @selection-change="selectionChange"
+      @row-dblclick="rowDbClick" @row-click="rowClick" @header-click="headerClick"
+      :highlight-current-row="highlightCurrentRow" ref="table" class="v-table" @sort-change="sortChange"
+      tooltip-effect="dark" :height="realHeight" :max-height="realMaxHeight" :data="url ? rowData : tableData" border
+      :row-class-name="initIndex" :cell-style="getCellStyle" style="width: 100%" :scrollbar-always-on="true"
+      :span-method="cellSpanMethod" @expand-change="expandChange">
+      <el-table-column v-if="columnIndex" type="index" :fixed="fixed" width="55"></el-table-column>
+      <el-table-column v-if="ck" type="selection" :fixed="fixed" :selectable="selectable" width="55"></el-table-column>
 
       <!-- 2020.10.10绉婚櫎table绗竴琛屽己鍒舵帓搴� -->
-      <el-table-column
-        v-for="(column, cindex) in filterColumns"
-        :prop="column.field"
-        :label="column.title"
-        :min-width="column.width"
-        :formatter="formatter"
-        :fixed="column.fixed"
-        :key="column.field + cindex"
-        :align="column.align"
-        :sortable="column.sort ? 'custom' : false"
-        :show-overflow-tooltip="column.showOverflowTooltip"
-      >
+      <el-table-column v-for="(column, cindex) in filterColumns" :prop="column.field" :label="column.title"
+        :min-width="column.width" :formatter="formatter" :fixed="column.fixed" :key="column.field + cindex"
+        :align="column.align" :sortable="column.sort ? 'custom' : false"
+        :show-overflow-tooltip="column.showOverflowTooltip">
         <template #header>
-          <span
-            v-if="(column.require || column.required) && column.edit"
-            class="column-required"
-            >*</span
-          >{{ column.title }}
+          <span v-if="(column.require || column.required) && column.edit" class="column-required">*</span>{{
+            column.title }}
         </template>
 
         <template #default="scope">
           <!-- 2022.01.08澧炲姞澶氳〃澶达紝鐜板湪鍙敮鎸佸父鐢ㄥ姛鑳芥覆鏌擄紝涓嶆敮鎸佺紪杈戝姛鑳�(娑夊強鍒扮粍浠堕噸鍐�) -->
-          <el-table-column
-            style="border: none"
-            v-for="columnChildren in filterChildrenColumn(column.children)"
-            :key="columnChildren.field"
-            :min-width="columnChildren.width"
-            :class-name="columnChildren.class"
-            :prop="columnChildren.field"
-            :align="columnChildren.align"
-            :label="columnChildren.title"
-          >
+          <el-table-column style="border: none" v-for="columnChildren in filterChildrenColumn(column.children)"
+            :key="columnChildren.field" :min-width="columnChildren.width" :class-name="columnChildren.class"
+            :prop="columnChildren.field" :align="columnChildren.align" :label="columnChildren.title">
             <template #default="scopeChildren">
-              <a
-                href="javascript:void(0);"
-                style="text-decoration: none"
-                @click="link(scopeChildren.row, columnChildren, $event)"
-                v-if="columnChildren.link"
-                v-text="scopeChildren.row[columnChildren.field]"
-              ></a>
-              <table-render
-                  v-else-if="columnChildren.render && typeof columnChildren.render == 'function'"
-                  :row="scopeChildren.row"
-                  key="rd-01"
-                  :index="scope.$index"
-                  :column="columnChildren"
-                  :render="columnChildren.render"
-                ></table-render>
-              <div
-                v-else-if="columnChildren.formatter"
-                @click="
-                  columnChildren.click &&
-                    columnChildren.click(
-                      scopeChildren.row,
-                      columnChildren,
-                      scopeChildren.$index
-                    )
-                "
-                v-html="
-                  columnChildren.formatter(
-                    scopeChildren.row,
-                    columnChildren,
-                    scopeChildren.$index
-                  )
-                "
-              ></div>
+              <a href="javascript:void(0);" style="text-decoration: none"
+                @click="link(scopeChildren.row, columnChildren, $event)" v-if="columnChildren.link"
+                v-text="scopeChildren.row[columnChildren.field]"></a>
+              <table-render v-else-if="columnChildren.render && typeof columnChildren.render == 'function'"
+                :row="scopeChildren.row" key="rd-01" :index="scope.$index" :column="columnChildren"
+                :render="columnChildren.render"></table-render>
+              <div v-else-if="columnChildren.formatter" @click="
+                columnChildren.click &&
+                columnChildren.click(
+                  scopeChildren.row,
+                  columnChildren,
+                  scopeChildren.$index
+                )
+                " v-html="columnChildren.formatter(
+                  scopeChildren.row,
+                  columnChildren,
+                  scopeChildren.$index
+                )
+                  "></div>
               <div v-else-if="columnChildren.bind">
                 {{ formatter(scopeChildren.row, columnChildren, true) }}
               </div>
               <span v-else-if="columnChildren.type == 'date'">{{
                 formatterDate(scopeChildren.row, columnChildren)
-              }}</span>
+                }}</span>
               <template v-else>
                 {{ scopeChildren.row[columnChildren.field] }}
               </template>
             </template>
           </el-table-column>
           <!-- 2020.06.18澧炲姞render娓叉煋鑷畾涔夊唴瀹� -->
-          <table-render
-            v-if="column.render && typeof column.render == 'function'"
-            :row="scope.row"
-            key="rd-01"
-            :index="scope.$index"
-            :column="column"
-            :render="column.render"
-          ></table-render>
+          <table-render v-if="column.render && typeof column.render == 'function'" :row="scope.row" key="rd-01"
+            :index="scope.$index" :column="column" :render="column.render"></table-render>
           <!-- 鍚敤鍙屽嚮缂栬緫鍔熻兘锛屽甫缂栬緫鍔熻兘鐨勪笉浼氭覆鏌撲笅鎷夋鏂囨湰鑳屾櫙棰滆壊 -->
           <!-- @click="rowBeginEdit(scope.$index,cindex)" -->
           <!-- 2021.09.21澧炲姞缂栬緫鏃跺readonly灞炴�у垽鏂� -->
-           <template v-else-if="column.edit&&!column.readonly&&['file', 'img','excel'].indexOf(column.edit.type) != -1" >
-                <div style="display:flex;align-items: center;" @click.stop>
-                  <i v-if="!column.showUpload||column.showUpload(scope.row, column)" 
-                  style="padding: 3px;margin-right: 10px;color:#8f9293;cursor: pointer;" 
-                  @click="showUpload(scope.row, column)" class="el-icon-upload"></i>    
-                   <template v-if="column.edit.type == 'img'">
-                    <img
-                    v-for="(file, imgIndex) in getFilePath(
-                      scope.row[column.field],
-                      column
-                    )"
-                    :key="imgIndex"
-                    @error="handleImageError"
-                    @click="viewImg(scope.row, column, file.path, $event,imgIndex)"
-                    class="table-img"
-                    :src="file.path"
-                  />
-                   </template>
-                  <a
-                    style="margin-right: 8px"
-                    v-else
-                    class="t-file"
-                    v-for="(file, fIndex) in getFilePath(
-                      scope.row[column.field],
-                      column
-                    )"
-                    :key="fIndex"
-                    @click="dowloadFile(file)"
-                    >{{ file.name }}</a
-                  >
-                </div>
+          <template v-else-if="column.edit && !column.readonly && ['file', 'img', 'excel'].indexOf(column.edit.type) != -1">
+            <div style="display:flex;align-items: center;" @click.stop>
+              <i v-if="!column.showUpload || column.showUpload(scope.row, column)"
+                style="padding: 3px;margin-right: 10px;color:#8f9293;cursor: pointer;"
+                @click="showUpload(scope.row, column)" class="el-icon-upload"></i>
+              <template v-if="column.edit.type == 'img'">
+                <img v-for="(file, imgIndex) in getFilePath(
+                  scope.row[column.field],
+                  column
+                )" :key="imgIndex" @error="handleImageError"
+                  @click="viewImg(scope.row, column, file.path, $event, imgIndex)" class="table-img" :src="file.path" />
+              </template>
+              <a style="margin-right: 8px" v-else class="t-file" v-for="(file, fIndex) in getFilePath(
+                scope.row[column.field],
+                column
+              )" :key="fIndex" @click="dowloadFile(file)">{{ file.name }}</a>
+            </div>
           </template>
-          <div
-            v-else-if="
-              column.edit &&
-                !column.readonly &&
-                (column.edit.keep || edit.rowIndex == scope.$index)
-            "
-            class="edit-el"
-          >
+          <div v-else-if="
+            column.edit &&
+            !column.readonly &&
+            (column.edit.keep || edit.rowIndex == scope.$index)
+          " class="edit-el">
             <div @click.stop class="e-item">
               <div>
                 <!-- 2020.07.24澧炲姞鏃ユ湡onChange浜嬩欢 -->
-                <el-date-picker
-                  clearable
-                  size="default"
-                  style="width: 100%"
-                  v-if="['date', 'datetime'].indexOf(column.edit.type) != -1"
-                  v-model="scope.row[column.field]"
-                  @change="
-                    (val) => {
+                <el-date-picker clearable size="default" style="width: 100%"
+                  v-if="['date', 'datetime'].indexOf(column.edit.type) != -1" v-model="scope.row[column.field]" @change="(val) => {
                       column.onChange &&
                         column.onChange(scope.row, column, val);
                     }
-                  "
-                  :type="column.edit.type"
-                  :placeholder="column.placeholder || column.title"
-                  :disabledDate="(val) => getDateOptions(val, column)"
-                  :value-format="getDateFormat(column)"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                    " :type="column.edit.type" :placeholder="column.placeholder || column.title"
+                  :disabledDate="(val) => getDateOptions(val, column)" :value-format="getDateFormat(column)"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-date-picker>
-                <el-time-picker
-                  clearable
-                  size="default"
-                  style="width: 100%"
-                  v-else-if="column.edit.type == 'time'"
-                  v-model="scope.row[column.field]"
-                  @change="
-                    (val) => {
+                <el-time-picker clearable size="default" style="width: 100%" v-else-if="column.edit.type == 'time'"
+                  v-model="scope.row[column.field]" @change="(val) => {
                       column.onChange &&
                         column.onChange(scope.row, column, val);
                     }
-                  "
-                  :placeholder="column.placeholder || column.title"
-                  :value-format="column.format || 'HH:mm:ss'"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                    " :placeholder="column.placeholder || column.title" :value-format="column.format || 'HH:mm:ss'"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-time-picker>
-                <el-switch
-                  v-else-if="column.edit.type == 'switch'"
-                  v-model="scope.row[column.field]"
-                  active-color="#0f84ff"
-                  inactive-color="rgb(194 194 194)"
-                  active-text="鏄�"
-                  inactive-text="鍚�"
-                  inline-prompt
-
-                  @change="
-                    (val) => {
+                <el-switch v-else-if="column.edit.type == 'switch'" v-model="scope.row[column.field]"
+                  active-color="#0f84ff" inactive-color="rgb(194 194 194)" active-text="鏄�" inactive-text="鍚�"
+                  inline-prompt @change="(val) => {
                       switchChange(val, scope.row, column);
                     }
-                  "
-                  :active-value="
-                    typeof scope.row[column.field] == 'boolean'
+                    " :active-value="typeof scope.row[column.field] == 'boolean'
                       ? true
                       : typeof scope.row[column.field] == 'string'
-                      ? '1'
-                      : 1
-                  "
-                  :inactive-value="
-                    typeof scope.row[column.field] == 'boolean'
+                        ? '1'
+                        : 1
+                    " :inactive-value="typeof scope.row[column.field] == 'boolean'
                       ? false
                       : typeof scope.row[column.field] == 'string'
-                      ? '0'
-                      : 0
-                  "
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                        ? '0'
+                        : 0
+                    " :disabled="initColumnDisabled(scope.row, column)">
                 </el-switch>
-                <template
-                  v-else-if="
-                    ['select', 'selectList'].indexOf(column.edit.type) != -1
-                  "
-                >
-                  <el-select-v2
-                    style="width: 100%"
-                    :size="size"
-                    v-if="column.bind.data.length >= select2Count"
-                    v-model="scope.row[column.field]"
-                    filterable
-                    :multiple="column.edit.type == 'select' ? false : true"
-                    :placeholder="column.placeholder || column.title"
-                    :autocomplete="column.autocomplete"
-                    :options="column.bind.data"
-                    @change="
+                <template v-else-if="
+                  ['select', 'selectList'].indexOf(column.edit.type) != -1
+                ">
+                  <el-select-v2 style="width: 100%" :size="size" v-if="column.bind.data.length >= select2Count"
+                    v-model="scope.row[column.field]" filterable :multiple="column.edit.type == 'select' ? false : true"
+                    :placeholder="column.placeholder || column.title" :autocomplete="column.autocomplete"
+                    :options="column.bind.data" @change="
                       column.onChange && column.onChange(scope.row, column)
-                    "
-                    clearable
-                    :disabled="initColumnDisabled(scope.row, column)"
-                  >
+                      " clearable :disabled="initColumnDisabled(scope.row, column)">
                     <template #default="{ item }">
                       {{ item.label }}
                     </template>
                   </el-select-v2>
 
-                  <el-select
-                    size="default"
-                    style="width: 100%"
-                    v-else
-                    v-model="scope.row[column.field]"
-                    :filterable="
-                      column.filter || column.bind.data.length > 10
-                        ? true
-                        : false
-                    "
-                    :multiple="column.edit.type == 'select' ? false : true"
-                    :placeholder="column.placeholder || column.title"
-                    :allow-create="column.autocomplete"
-                    @change="
+                  <el-select size="default" style="width: 100%" v-else v-model="scope.row[column.field]" :filterable="column.filter || column.bind.data.length > 10
+                      ? true
+                      : false
+                    " :multiple="column.edit.type == 'select' ? false : true"
+                    :placeholder="column.placeholder || column.title" :allow-create="column.autocomplete" @change="
                       column.onChange && column.onChange(scope.row, column)
-                    "
-                    clearable
-                    :disabled="initColumnDisabled(scope.row, column)"
-                  >
-                    <el-option
-                      v-for="item in column.bind.data"
-                      :key="item.key"
-                      v-show="!item.hidden"
-                      :disabled="item.disabled"
-                      :label="item.value"
-                      :value="item.key"
-                      >{{ item.value }}
+                      " clearable :disabled="initColumnDisabled(scope.row, column)">
+                    <el-option v-for="item in column.bind.data" :key="item.key" v-show="!item.hidden"
+                      :disabled="item.disabled" :label="item.value" :value="item.key">{{ item.value }}
                     </el-option>
                   </el-select>
                 </template>
-                <el-tree-select
-                  style="width: 100%"
-                  v-else-if="column.edit.type == 'treeSelect'||column.edit.type == 'cascader'"
-                  v-model="scope.row[column.field]"
-                  :data="column.bind.data"
-                  :multiple="column.multiple===undefined?true:column.multiple"
-                  :render-after-expand="false"
-                  :show-checkbox="true"
-                  :check-strictly="column.checkStrictly===undefined?true:column.checkStrictly"
-                  check-on-click-node
-                  node-key="key"
-                  @change="column.onChange && column.onChange(scope.row, column)"
+                <el-tree-select style="width: 100%"
+                  v-else-if="column.edit.type == 'treeSelect' || column.edit.type == 'cascader'"
+                  v-model="scope.row[column.field]" :data="column.bind.data"
+                  :multiple="column.multiple === undefined ? true : column.multiple" :render-after-expand="false"
+                  :show-checkbox="true" :check-strictly="column.checkStrictly === undefined ? true : column.checkStrictly"
+                  check-on-click-node node-key="key" @change="column.onChange && column.onChange(scope.row, column)"
                   :props="{ label: 'label' }">
-                   <template #default="{ data, node }">
-                  {{data.label}}</template>
+                  <template #default="{ data, node }">
+                    {{ data.label }}</template>
                 </el-tree-select>
                 <!-- <div     v-else-if="column.edit.type == 'cascader'">4444444</div> -->
                 <!-- <el-cascader
@@ -342,41 +180,21 @@
                   @change="column.onChange && column.onChange(scope.row, column)"
                 >
                 </el-cascader> -->
-                <el-input
-                  v-else-if="column.edit.type == 'textarea'"
-                  type="textarea"
-                  :placeholder="column.placeholder || column.title"
-                  v-model="scope.row[column.field]"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                <el-input v-else-if="column.edit.type == 'textarea'" type="textarea"
+                  :placeholder="column.placeholder || column.title" v-model="scope.row[column.field]"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-input>
-                <input
-                  class="table-input"
-                  v-else-if="!column.summary && !column.onKeyPress"
-                  v-model.lazy="scope.row[column.field]"
-                  :placeholder="column.placeholder || column.title"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                />
-                <el-input
-                  v-else
-                  @change="inputKeyPress(scope.row, column, $event)"
+                <input class="table-input" v-else-if="!column.summary && !column.onKeyPress"
+                  v-model.lazy="scope.row[column.field]" :placeholder="column.placeholder || column.title"
+                  :disabled="initColumnDisabled(scope.row, column)" />
+                <el-input v-else @change="inputKeyPress(scope.row, column, $event)"
                   @input="inputKeyPress(scope.row, column, $event)"
-                  @keyup.enter="inputKeyPress(scope.row, column, $event)"
-                  size="default"
-                  v-model="scope.row[column.field]"
-                  :placeholder="column.placeholder || column.title"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                ></el-input>
+                  @keyup.enter="inputKeyPress(scope.row, column, $event)" size="default"
+                  v-model="scope.row[column.field]" :placeholder="column.placeholder || column.title"
+                  :disabled="initColumnDisabled(scope.row, column)"></el-input>
               </div>
-              <div
-                class="extra"
-                v-if="column.extra && edit.rowIndex == scope.$index"
-              >
-                <a
-                  :style="column.extra.style"
-                  style="text-decoration: none"
-                  @click="extraClick(scope.row, column)"
-                >
+              <div class="extra" v-if="column.extra && edit.rowIndex == scope.$index">
+                <a :style="column.extra.style" style="text-decoration: none" @click="extraClick(scope.row, column)">
                   <i v-if="column.extra.icon" :class="[column.extra.icon]" />
                   {{ column.extra.text }}
                 </a>
@@ -385,78 +203,42 @@
           </div>
           <!--娌℃湁缂栬緫鍔熻兘鐨勭洿鎺ユ覆鏌撴爣绛�-->
           <template v-else>
-            <a
-              href="javascript:void(0)"
-              style="text-decoration: none;line-height: 1.3;"
-              @click="link(scope.row, column, $event)"
-              v-if="column.link"
-              v-text="scope.row[column.field]"
-            ></a>
-            <img
-              v-else-if="column.type == 'img'"
-              v-for="(file, imgIndex) in getFilePath(
-                scope.row[column.field],
-                column
-              )"
-              :key="imgIndex"
-              @error="handleImageError"
-              @click="viewImg(scope.row, column, file.path, $event, imgIndex)"
-              class="table-img"
-              :src="file.path"
-            />
-            <a
-              style="margin-right: 8px"
-              v-else-if="column.type == 'file' || column.type == 'excel'"
-              class="t-file"
+            <a href="javascript:void(0)" style="text-decoration: none;line-height: 1.3;"
+              @click="link(scope.row, column, $event)" v-if="column.link" v-text="scope.row[column.field]"></a>
+            <img v-else-if="column.type == 'img'" v-for="(file, imgIndex) in getFilePath(
+              scope.row[column.field],
+              column
+            )" :key="imgIndex" @error="handleImageError"
+              @click="viewImg(scope.row, column, file.path, $event, imgIndex)" class="table-img" :src="file.path" />
+            <a style="margin-right: 8px" v-else-if="column.type == 'file' || column.type == 'excel'" class="t-file"
               v-for="(file, fIndex) in getFilePath(
                 scope.row[column.field],
                 column
-              )"
-              :key="fIndex"
-              @click="dowloadFile(file)"
-              >{{ file.name }}</a
-            >
+              )" :key="fIndex" @click="dowloadFile(file)">{{ file.name }}</a>
             <span v-else-if="column.type == 'date'">{{
               formatterDate(scope.row, column)
-            }}</span>
-            <div
-              v-else-if="column.formatter"
-              @click="formatterClick(scope.row, column, $event)"
-              v-html="column.formatter(scope.row, column)"
-            ></div>
+              }}</span>
+            <div v-else-if="column.formatter" @click="formatterClick(scope.row, column, $event)"
+              v-html="column.formatter(scope.row, column)"></div>
             <!-- 2021.11.18淇table鏁版嵁婧愯缃负normal鍚庣偣鍑昏$event缂哄け鐨勯棶棰� -->
-            <div
-              v-else-if="column.bind && (column.normal || column.edit)"
+            <div v-else-if="column.bind && (column.normal || column.edit)"
               @click="formatterClick(scope.row, column, $event)"
-              :style="column.getStyle && column.getStyle(scope.row, column)"
-            >
+              :style="column.getStyle && column.getStyle(scope.row, column)">
               {{ formatter(scope.row, column, true) }}
             </div>
-            <div
-              v-else-if="column.click && !column.bind"
-              @click="formatterClick(scope.row, column)"
-            >
+            <div v-else-if="column.click && !column.bind" @click="formatterClick(scope.row, column)">
               {{ scope.row[column.field] }}
             </div>
-            <div
-              @click="
-                () => {
-                  column.click && formatterClick(scope.row, column);
-                }
-              "
-              v-else-if="column.bind"
-            >
-              <el-tag
-                v-if="useTag"
-                 class="cell-tag"
-                :class="[isEmptyTag(scope.row, column)]"
-                :type="getColor(scope.row, column)"
-                :effect="column.effect"
-                >{{ formatter(scope.row, column, true) }}</el-tag
-              >
+            <div @click="() => {
+                column.click && formatterClick(scope.row, column);
+              }
+              " v-else-if="column.bind">
+              <el-tag v-if="useTag" class="cell-tag" :class="[isEmptyTag(scope.row, column)]"
+                :type="getColor(scope.row, column)" :effect="column.effect">{{ formatter(scope.row, column, true)
+                }}</el-tag>
               <template v-else>{{
                 formatter(scope.row, column, true)
-              }}</template>
+                }}</template>
             </div>
 
             <span v-else>{{ formatter(scope.row, column, true) }}</span>
@@ -467,53 +249,29 @@
     <template v-if="!paginationHide">
       <div class="block pagination" key="pagination-01" style="display: flex">
         <div style="flex: 1"></div>
-        <el-pagination
-          key="pagination-02"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-          :current-page="paginations.page"
-          :page-sizes="paginations.sizes"
-          :page-size="paginations.size"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="paginations.total"
-        ></el-pagination>
+        <el-pagination key="pagination-02" @size-change="handleSizeChange" @current-change="handleCurrentChange"
+          :current-page="paginations.page" :page-sizes="paginations.sizes" :page-size="paginations.size"
+          layout="total, sizes, prev, pager, next, jumper" :total="paginations.total"></el-pagination>
       </div>
     </template>
   </div>
 
-  <VolBox
-    v-model="uploadModel"
-    title="涓婁紶"
-    :height="228"
-    :width="500"
-    :padding="15"
-    lazy
-  >
+  <VolBox v-model="uploadModel" title="涓婁紶" :height="228" :width="500" :padding="15" lazy>
     <!-- 涓婁紶鍥剧墖銆乪xcel鎴栧叾浠栨枃浠躲�佹枃浠舵暟閲忋�佸ぇ灏忛檺鍒堕兘鍙互锛屽弬鐓olupload缁勪欢api -->
     <div style="height: 200px;display: flex;align-items: center;">
-      <VolUpload
-      style="text-align: center; "
-      :autoUpload="currentColumn.edit.autoUpload"
-     
-      :multiple="currentColumn.edit.multiple"
-      :url="uploadUrl"
-      :max-file="currentColumn.edit.maxFile"
-      :img="currentColumn.edit.type == 'img'"
-      :excel="currentColumn.edit.type == 'excel'"
-      :fileTypes="currentColumn.edit.fileTypes ? currentColumn.edit.fileTypes : []"
-      :fileInfo="fileInfo"
-      :upload-after="uploadAfter"
-      :upload-before="uploadBefore"
-      :append="currentColumn.edit.accept"
-    >
-      <div>{{ currentColumn.message}}</div>
-    </VolUpload>
+      <VolUpload style="text-align: center; " :autoUpload="currentColumn.edit.autoUpload"
+        :multiple="currentColumn.edit.multiple" :url="uploadUrl" :max-file="currentColumn.edit.maxFile"
+        :img="currentColumn.edit.type == 'img'" :excel="currentColumn.edit.type == 'excel'"
+        :fileTypes="currentColumn.edit.fileTypes ? currentColumn.edit.fileTypes : []" :fileInfo="fileInfo"
+        :upload-after="uploadAfter" :upload-before="uploadBefore" :append="currentColumn.edit.accept">
+        <div>{{ currentColumn.message }}</div>
+      </VolUpload>
     </div>
     <template #footer>
-        <div style="text-align: center; ">
-          <el-button type="default" size="small" @click="uploadModel=false">鍏抽棴</el-button >
-          <el-button type="primary" size="small" @click="saveUpload" >淇濆瓨</el-button >
-        </div>
+      <div style="text-align: center; ">
+        <el-button type="default" size="small" @click="uploadModel = false">鍏抽棴</el-button>
+        <el-button type="primary" size="small" @click="saveUpload">淇濆瓨</el-button>
+      </div>
     </template>
   </VolBox>
   <vol-image-viewer ref="viewer"></vol-image-viewer>
@@ -521,9 +279,9 @@
 <script>
 import VolTableRender from './VolTable/VolTableRender';
 let _errMsg;
-import { defineComponent,defineAsyncComponent } from 'vue';
+import { defineComponent, defineAsyncComponent } from 'vue';
 export default defineComponent({
-  emits:['loadBefore','loadAfter','rowChange', 'rowClick', 'rowDbClick', 'selectionChange'],
+  emits: ['loadBefore', 'loadAfter', 'rowChange', 'rowClick', 'rowDbClick', 'selectionChange'],
   //https://github.com/element-plus/element-plus/issues/1483
   //娌℃湁鍘熷厛鐨剆election灞炴�т簡锛岀湅issue涓婁娇鐢╯elect/selectall鑾峰彇
   //鐩戝惉鏁扮粍闀垮害锛屽鏋滃垹闄や簡鏁版嵁锛岀幇鍦ㄥ彧鑳借杩竻闄ゆ墍鏈夐�変腑鐨勮
@@ -540,9 +298,9 @@
     }
   },
   components: {
-    'vol-image-viewer':defineAsyncComponent(() => import("./VolImageViewer.vue")),
+    'vol-image-viewer': defineAsyncComponent(() => import("./VolImageViewer.vue")),
     'table-render': VolTableRender,
-    VolUpload: defineAsyncComponent(() =>import("./VolUpload.vue") ),
+    VolUpload: defineAsyncComponent(() => import("./VolUpload.vue")),
     VolBox: defineAsyncComponent(() => import("./VolBox.vue")),
   },
   props: {
@@ -555,9 +313,9 @@
       // 鏍戝舰缁撴瀯鍔犺浇瀛愯妭鐐�
       type: Function,
       default: (tree, treeNode, resolve) => {
-          if(resolve){
+        if (resolve) {
           return resolve([]);
-         }
+        }
       }
     },
     textInline: {
@@ -586,13 +344,13 @@
     },
     linkView: {
       type: Function,
-      default: function() {
+      default: function () {
         return 1;
       }
     },
     pagination: {
       type: Object,
-      default: function() {
+      default: function () {
         return { total: 0, size: 30, sortName: '' };
       }
     },
@@ -639,21 +397,21 @@
     beginEdit: {
       // 缂栬緫寮�濮�
       type: Function,
-      default: function(row, column, index) {
+      default: function (row, column, index) {
         return true;
       }
     },
     endEditBefore: {
       // 缁撴潫缂栬緫鍓�
       type: Function,
-      default: function(row, column, index) {
+      default: function (row, column, index) {
         return true;
       }
     },
     endEditAfter: {
       // 缁撴潫缂栬緫鍓�
       type: Function,
-      default: function(row, column, index) {
+      default: function (row, column, index) {
         return true;
       }
     },
@@ -683,9 +441,9 @@
         return true;
       }
     },
-    spanMethod:{
+    spanMethod: {
       type: Function,
-      default: ({row,column,rowIndex, columnIndex}) => {
+      default: ({ row, column, rowIndex, columnIndex }) => {
       }
     },
     lazy: { //鏍戝舰琛ㄦ牸鏄惁榛樿寤惰繜鍔犺浇
@@ -696,15 +454,15 @@
       type: Boolean,
       default: false
     },
-    expandRowKeys:{ //榛樿灞曞紑琛�
-      type:Array,
-      default:()=>{
+    expandRowKeys: { //榛樿灞曞紑琛�
+      type: Array,
+      default: () => {
         return []
       }
     },
-    rowParentField:{ //鏍戝舰琛ㄦ牸鐖剁骇id
-          type:String,
-          default:""
+    rowParentField: { //鏍戝舰琛ㄦ牸鐖剁骇id
+      type: String,
+      default: ""
     }
   },
   data() {
@@ -718,14 +476,14 @@
       realMaxHeight: 0,
       enableEdit: false, // 鏄惁鍚〃鏍肩敤缂栬緫鍔熻兘
       empty: this.allowEmpty ? '' : '--',
-      defaultImg:new URL('@/assets/imgs/error-img.png', import.meta.url).href,
+      defaultImg: new URL('@/assets/imgs/error-img.png', import.meta.url).href,
       loading: false,
       footer: {},
       total: 0,
       formatConfig: {},
       // defaultColor: "",
       // 2020.09.06璋冩暣table鍒楁暟鎹簮鐨勮儗鏅鑹�
-      colors:["primary", "success", "info", "warning", "danger"],// ["warning", "success", "danger", "info"],
+      colors: ["primary", "success", "info", "warning", "danger"],// ["warning", "success", "danger", "info"],
       rule: {
         phone: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
         decimal: /(^[\-0-9][0-9]*(.[0-9]+)?)$/,
@@ -760,18 +518,18 @@
       //vol-table甯︽暟鎹簮鐨勫崟鍏冩牸鏄惁鍚敤tag鏍囩(涓嬫媺妗嗙瓑鍗曞厓鏍间互tag鏍囩鏄剧ず)
       //2023.04.02鏇存柊voltable涓巑ain.js
       useTag: true,
-      currentRow:{},
-      currentColumn:[],
-      fileInfo:[],
-      uploadUrl:"",
-      uploadModel:false,
-      smallCell:true
+      currentRow: {},
+      currentColumn: [],
+      fileInfo: [],
+      uploadUrl: "",
+      uploadModel: false,
+      smallCell: true
     };
   },
   created() {
     try {
-      this.useTag = this.$global.table&&this.$global.table.useTag;
-      this.smallCell=this.$global.table&&this.$global.table.smallCell;
+      this.useTag = this.$global.table && this.$global.table.useTag;
+      this.smallCell = this.$global.table && this.$global.table.smallCell;
     } catch (error) {
       console.log(error.message);
     }
@@ -812,7 +570,7 @@
     }
     this.initCellStyleColumns();
     this.columns.forEach((x, _index) => {
-    
+
       if (!x.hidden) {
         // this.summaryIndex[x.field] = _index;
         // 2020.10.11淇姹傚拰鍒楅敊浣嶇殑闂
@@ -823,15 +581,15 @@
       if (x.summary && !this.summary) {
         this.summary = true;
       }
-      if (x.children&&Array.isArray(x.children)) {
-          x.children.forEach(cl=>{
-               if (cl.bind && cl.bind.key && (!cl.bind.data || cl.bind.data.length == 0)) {
-                keys.push(cl.bind.key);
-                cl.bind.valueType = cl.type;
-                columnBind.push(cl.bind);
-               }
-          })
-      }else if (x.bind && x.bind.key && (!x.bind.data || x.bind.data.length == 0)) {
+      if (x.children && Array.isArray(x.children)) {
+        x.children.forEach(cl => {
+          if (cl.bind && cl.bind.key && (!cl.bind.data || cl.bind.data.length == 0)) {
+            keys.push(cl.bind.key);
+            cl.bind.valueType = cl.type;
+            columnBind.push(cl.bind);
+          }
+        })
+      } else if (x.bind && x.bind.key && (!x.bind.data || x.bind.data.length == 0)) {
         // 鍐欏叆杩滅▼
         if (!x.bind.data) x.bind.data = [];
         if (x.bind.remote) {
@@ -839,8 +597,8 @@
         } else if (this.loadKey) {
           keys.push(x.bind.key);
           x.bind.valueType = x.type;
-          if (x.edit&&x.edit.type) {
-            x.bind.editType=x.edit.type
+          if (x.edit && x.edit.type) {
+            x.bind.editType = x.edit.type
           }
           columnBind.push(x.bind);
         }
@@ -857,24 +615,24 @@
                 item.value = item.key;
               });
             }
-            const arrType=['cascader','treeSelect'];
+            const arrType = ['cascader', 'treeSelect'];
             columnBind.forEach((c) => {
-            if ((arrType.indexOf(c.valueType)!=-1||arrType.indexOf(c.editType)!=-1)) {
-                this.columns.forEach(col=>{
-                    if (col.bind&&col.bind.key==c.key) {
-                        col.bind.orginData=JSON.parse(JSON.stringify(x.data));
-                    }
+              if ((arrType.indexOf(c.valueType) != -1 || arrType.indexOf(c.editType) != -1)) {
+                this.columns.forEach(col => {
+                  if (col.bind && col.bind.key == c.key) {
+                    col.bind.orginData = JSON.parse(JSON.stringify(x.data));
+                  }
                 })
                 x.data = this.base.convertTree(x.data, (node, data, isRoot) => {
-                    if (!node.inited) {
-                      node.inited = true;
-                      node.label = node.value;
-                      node.value = node.key+'';
-                    }
+                  if (!node.inited) {
+                    node.inited = true;
+                    node.label = node.value;
+                    node.value = node.key + '';
+                  }
                 });
               }
               // 杞崲鏁版嵁婧愮殑绫诲瀷涓庡垪鐨勭被鍨嬩竴鑷�(2020.04.04)
-            else  if (c.key == x.dicNo && (c.valueType == "int" || c.valueType == "sbyte")) {
+              else if (c.key == x.dicNo && (c.valueType == "int" || c.valueType == "sbyte")) {
                 x.data.forEach((d) => {
                   // 2020.09.01澧炲姞瀵规暟瀛楃被鍨嬬殑浜屾鍒ゆ柇
                   if (!isNaN(d.key)) {
@@ -916,11 +674,11 @@
     }
   },
   methods: {
-    initCellStyleColumns(){
-      this.columns.forEach(x=>{
+    initCellStyleColumns() {
+      this.columns.forEach(x => {
         if (x.cellStyle) {
           this.cellStyleColumns[x.field] = x.cellStyle;
-         }
+        }
       })
     },
     watchRowSelectChange(newLen, oldLen) {
@@ -1130,7 +888,7 @@
       // }
       return;
     },
-    toggleEdit(event) {},
+    toggleEdit(event) { },
     setEditStatus(status) {
       // this.columns.forEach((x) => {
       //   if (x.hasOwnProperty("edit")) {
@@ -1175,13 +933,13 @@
             }
           } else {
             //澶氶�夋垨鑰呯骇鑱旂紪杈戝洖鍐�,2023.01.06
-             if (Array.isArray(val)) {
-              val = val.map(v=>{
-                   return v*1
+            if (Array.isArray(val)) {
+              val = val.map(v => {
+                return v * 1
               });
               row[column.field] = val;
             }
-            else  if (typeof val == 'string' && val) {
+            else if (typeof val == 'string' && val) {
               let _val = val * 1;
               if (_val + '' === val) {
                 row[column.field] = _val;
@@ -1376,10 +1134,10 @@
       }
       this.rowData.push(row);
     },
-    viewImg(row, column, url, $event,index) {
-        $event.stopPropagation();
-        const imgs=  this.getFilePath(row[column.field], column).map(x=>{return x.path});
-        this.$refs.viewer.show(imgs,index);
+    viewImg(row, column, url, $event, index) {
+      $event.stopPropagation();
+      const imgs = this.getFilePath(row[column.field], column).map(x => { return x.path });
+      this.$refs.viewer.show(imgs, index);
       //this.base.previewImg(url);
       // window.open(row[column.field]);
     },
@@ -1444,7 +1202,7 @@
       }
       let param = {
         page: this.paginations.page,
-        rows:this.paginationHide ? 1000: this.paginations.rows,
+        rows: this.paginationHide ? 1000 : this.paginations.rows,
         sort: this.paginations.sort,
         order: this.paginations.order,
         wheres: [] // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
@@ -1469,8 +1227,8 @@
         param.wheres = JSON.stringify(param.wheres);
       }
       this.loading = true;
-      let url=param.url||this.url;
-      param.url=undefined;
+      let url = param.url || this.url;
+      param.url = undefined;
       this.http.post(url, param).then(
         (data) => {
           //2021.06.04淇tree涓嶅埛鏂扮殑闂
@@ -1479,7 +1237,7 @@
             this.rowData.splice(0);
           }
           this.loading = false;
-          let rows=data.rows||[];
+          let rows = data.rows || [];
           // 鏌ヨ杩斿洖缁撴灉鍚庡鐞�
           // 2020.10.30澧炲姞鏌ヨ鍚庤繑鍥炴墍鏈夌殑鏌ヨ淇℃伅
           this.$emit(
@@ -1492,9 +1250,9 @@
           );
           if (!status) return;
           this.GetTableDictionary(data.rows);
-       
+
           if (this.rowParentField) {
-            rows= this.base.convertTree(rows,null,this.rowKey,this.rowParentField);
+            rows = this.base.convertTree(rows, null, this.rowKey, this.rowParentField);
           }
           this.rowData = rows;
           this.paginations.total = data.total;
@@ -1541,8 +1299,8 @@
           let sum = data.summary[col.field];
           //2024.01.07澧炲姞鑷畾涔夊悎璁℃牸寮忓寲
           if (col.summaryFormatter) {
-            sum = col.summaryFormatter(sum,col,data,this.summaryData)
-          }else if (sum) {
+            sum = col.summaryFormatter(sum, col, data, this.summaryData)
+          } else if (sum) {
             sum =
               (sum * 1.0).toFixed(col.numberLength || 2).replace('.00', '') *
               1.0;
@@ -1553,7 +1311,7 @@
         }
       }
     },
-    getInputChangeSummaries() {},
+    getInputChangeSummaries() { },
     handleSizeChange(val) {
       this.paginations.size = val;
       this.paginations.rows = val;
@@ -1617,7 +1375,7 @@
         this.formatConfig[column.field].push(val);
         index = this.formatConfig[column.field].length - 1;
       }
-      return this.colors[index]||'info';
+      return this.colors[index] || 'info';
     },
     formatterDate(row, column) {
       return (row[column.field] || '').substr(0, 10);
@@ -1635,26 +1393,26 @@
       }
 
       if (column.edit && (column.edit.type == 'selectList'
-         ||column.edit.type=='treeSelect'
-         ||column.bind.type == "cascader" 
-         ||column.bind.type == "treeSelect")) {
+        || column.edit.type == 'treeSelect'
+        || column.bind.type == "cascader"
+        || column.bind.type == "treeSelect")) {
         if (!Array.isArray(val)) {
-          row[column.field] = (val+'').split(',');
+          row[column.field] = (val + '').split(',');
         } else {
           val = val.join(',');
         }
         return this.getSelectFormatter(column, val);
       }
-       // 缂栬緫澶氶�塼able鏄剧ず
+      // 缂栬緫澶氶�塼able鏄剧ず
       //  if (
       //   column.bind.type == "selectList" ||
       //   column.bind.type == "checkbox" ||
       //   column.bind.type == "cascader" ||
       //   column.bind.type == "treeSelect"
       // ) {
-       if (typeof val === 'string' && val.indexOf(',') != -1) {
-          return this.getSelectFormatter(column, val);
-       }
+      if (typeof val === 'string' && val.indexOf(',') != -1) {
+        return this.getSelectFormatter(column, val);
+      }
       //}
       let source = column.bind.data.filter((x) => {
         // return x.key != "" && x.key == val;
@@ -1666,17 +1424,17 @@
     },
     getSelectFormatter(column, val) {
       // 缂栬緫澶氶�塼able鏄剧ず
-      let valArr = (val+"").split(",");
+      let valArr = (val + "").split(",");
       for (let index = 0; index < valArr.length; index++) {
-        ( column.bind.orginData&&column.bind.orginData.length
-          ?column.bind.orginData
-          :column.bind.data)
-        .forEach((x) => {
-          // 2020.06.06淇鏁版嵁婧愪负selectList鏃�,key涓烘暟瀛�0鏃朵笉鑳借浆鎹㈡枃鏈殑闂
-          if (x.key !== "" && x.key !== undefined && x.key + "" == valArr[index] + "") {
-            valArr[index] = x.label || x.value;
-          }
-        });
+        (column.bind.orginData && column.bind.orginData.length
+          ? column.bind.orginData
+          : column.bind.data)
+          .forEach((x) => {
+            // 2020.06.06淇鏁版嵁婧愪负selectList鏃�,key涓烘暟瀛�0鏃朵笉鑳借浆鎹㈡枃鏈殑闂
+            if (x.key !== "" && x.key !== undefined && x.key + "" == valArr[index] + "") {
+              valArr[index] = x.label || x.value;
+            }
+          });
       }
       return valArr.join(",");
     },
@@ -1750,7 +1508,7 @@
       );
     },
     getDateFormat(column) {
-      if(column.format){
+      if (column.format) {
         return column.format;
       }
       if (column.edit.type == "month") {
@@ -1782,37 +1540,37 @@
     initColumnDisabled(row, column) {
       return column.getDisabled && column.getDisabled(row, column);
     },
-    showUpload(row,column){
-       this.fileInfo = (row[column.field] || '').split(",")
-                    .filter(x => { return x })
-                    .map(item => {
-                       return { path: item, name: "" };
-                    })
-      this.currentRow=row;
-      this.currentColumn=column;
-      if (this.currentColumn.edit.autoUpload===undefined) {
-        this.currentColumn.edit.autoUpload=true;
+    showUpload(row, column) {
+      this.fileInfo = (row[column.field] || '').split(",")
+        .filter(x => { return x })
+        .map(item => {
+          return { path: item, name: "" };
+        })
+      this.currentRow = row;
+      this.currentColumn = column;
+      if (this.currentColumn.edit.autoUpload === undefined) {
+        this.currentColumn.edit.autoUpload = true;
       }
-      if (this.currentColumn.edit.multiple===undefined) {
-        this.currentColumn.edit.multiple=false;
+      if (this.currentColumn.edit.multiple === undefined) {
+        this.currentColumn.edit.multiple = false;
       }
 
-      if (this.currentColumn.edit.url===undefined) {
-          this.uploadUrl='api/'+(this.url||'').replace('/api','api').split('/')[1]+'/upload'
-      }else{
-        this.uploadUrl=this.currentColumn.edit.url;
+      if (this.currentColumn.edit.url === undefined) {
+        this.uploadUrl = 'api/' + (this.url || '').replace('/api', 'api').split('/')[1] + '/upload'
+      } else {
+        this.uploadUrl = this.currentColumn.edit.url;
       }
-      this.uploadModel=true;
+      this.uploadModel = true;
     },
     uploadAfter(result, files) {
-      this.currentColumn.uploadAfter&&this.currentColumn.uploadAfter(result,files);
+      this.currentColumn.uploadAfter && this.currentColumn.uploadAfter(result, files);
       return true;
     },
-    uploadBefore(files,params){
-      this.currentColumn.uploadBefore&&this.currentColumn.uploadBefore(files,this.currentRow,params);
+    uploadBefore(files, params) {
+      this.currentColumn.uploadBefore && this.currentColumn.uploadBefore(files, this.currentRow, params);
       return true;
     },
-    saveUpload(){
+    saveUpload() {
       //鐢熸垚淇濆瓨鍚庤繑鍥炵殑璺緞
       let arr = this.fileInfo.map((x) => {
         if (x.path) {
@@ -1825,25 +1583,25 @@
       this.uploadModel = false;
       return true;
     },
-    expandChange(row,expandedRows){ //	褰撶敤鎴峰鏌愪竴琛屽睍寮�鎴栬�呭叧闂殑鏃�
-      if (!this.defaultExpandAll&&!this.lazy) {
-          if (expandedRows) {
-             if(this.expandRowKeys.indexOf(row[this.rowKey])==-1){
-              this.expandRowKeys.push(row[this.rowKey])
-             }
-          }else{
-            let _index= this.expandRowKeys.findIndex(x=>{return x==row[this.rowKey]});
-            if (_index!=-1) {
-              this.expandRowKeys.splice(_index,1);
-            }
+    expandChange(row, expandedRows) { //	褰撶敤鎴峰鏌愪竴琛屽睍寮�鎴栬�呭叧闂殑鏃�
+      if (!this.defaultExpandAll && !this.lazy) {
+        if (expandedRows) {
+          if (this.expandRowKeys.indexOf(row[this.rowKey]) == -1) {
+            this.expandRowKeys.push(row[this.rowKey])
           }
-      }    
+        } else {
+          let _index = this.expandRowKeys.findIndex(x => { return x == row[this.rowKey] });
+          if (_index != -1) {
+            this.expandRowKeys.splice(_index, 1);
+          }
+        }
+      }
     },
-    handleImageError($e){
-      $e.target.src= this.defaultImg;
+    handleImageError($e) {
+      $e.target.src = this.defaultImg;
     },
-    cellSpanMethod({row,column,rowIndex, columnIndex}){
-      return this.spanMethod({row,column,rowIndex, columnIndex},this.url?this.rowData:this.tableData)
+    cellSpanMethod({ row, column, rowIndex, columnIndex }) {
+      return this.spanMethod({ row, column, rowIndex, columnIndex }, this.url ? this.rowData : this.tableData)
     }
   }
 });
@@ -1851,6 +1609,7 @@
 <style lang="less" scoped>
 .vol-table {
   position: relative;
+
   .mask {
     opacity: 0.2;
     position: absolute;
@@ -1859,6 +1618,7 @@
     background: #d0d0d0;
     z-index: 100;
   }
+
   .message {
     text-align: center;
     color: #635c5c;
@@ -1878,12 +1638,15 @@
     border: 1px solid #a09e9e;
   }
 }
+
 .e-item {
   display: flex;
-  > div:first-child {
+
+  >div:first-child {
     flex: 1;
   }
 }
+
 .vol-table ::v-deep(.el-pager .number) {
   padding: 0 7px;
   border-radius: 5px;
@@ -1893,10 +1656,12 @@
   min-width: 28px;
   height: 27px;
 }
+
 .vol-table ::v-deep(.el-pager .number.active) {
   background: #ed4014;
   color: #fff;
 }
+
 .vol-table ::v-deep(.el-pagination .el-input__wrapper) {
   height: 27px;
 }
@@ -1907,10 +1672,12 @@
   border-bottom: 1px solid;
   padding-bottom: 2px;
 }
+
 .vol-table .empty-tag {
   border: none;
   background: none;
 }
+
 .v-table ::v-deep(.el-date-editor .el-icon-date),
 .v-table ::v-deep(.el-date-editor .el-icon-time) {
   width: 10px;
@@ -1935,6 +1702,7 @@
   border: 1px solid #eee;
   border-top: 0px;
 }
+
 /* .v-table ::v-deep(.el-input .el-input__inner) {
   padding: 0 7px;
 } */
@@ -1949,11 +1717,13 @@
 .v-table ::v-deep(.el-table__header th.is-sortable) {
   padding: 3px !important;
 }
+
 .vol-table.text-inline ::v-deep(.el-table__body .cell),
 .vol-table.text-inline ::v-deep(.el-table__header-wrapper .cell) {
   word-break: inherit !important;
   white-space: nowrap !important;
 }
+
 /* .v-table  ::v-deep(.el-table__body td) {
   padding: 9px 0 !important;
 } */
@@ -1965,6 +1735,7 @@
 .vol-table ::v-deep(.el-table-column--selection .cell) {
   display: inline;
 }
+
 .vol-table.text-inline ::v-deep(.el-table th > .cell) {
   white-space: nowrap !important;
 }
@@ -1976,6 +1747,7 @@
   width: 40px;
   object-fit: cover;
 }
+
 .vol-table .table-img:hover {
   cursor: pointer;
 }
@@ -1983,9 +1755,11 @@
 .vol-table ::v-deep(.cell) {
   padding: 2px 10px;
 }
+
 .vol-table ::v-deep(.cell .el-tag) {
   padding: 5px 9px;
 }
+
 .table-input {
   color: rgb(104, 103, 103);
   padding: 3px 10px;
@@ -1995,6 +1769,7 @@
   border-radius: 4px;
   border: 1px solid #dcdcdc;
 }
+
 .table-input:focus {
   outline: 1px solid #49a3fd;
 }
@@ -2002,13 +1777,15 @@
 .small-table ::v-deep(.el-pagination .el-input__wrapper) {
   height: 27px;
 }
+
 .small-table ::v-deep(.el-table__cell) {
   padding: 6px 0;
   font-size: 13px;
 
 }
+
 .small-table ::v-deep(.cell-tag) {
-  padding: 0 5px !important; 
+  padding: 0 5px !important;
   height: 19px;
 }
 </style>

--
Gitblit v1.9.3