From aa8e7c86a561d905b743a6ceacc8fb0fe7ac6810 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 18 二月 2025 17:43:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/components/Table/lims-table.vue |  309 ++++++++++++++++++++++++++-------------------------
 1 files changed, 158 insertions(+), 151 deletions(-)

diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index bf7a97b..d6a75c2 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -19,169 +19,166 @@
       @current-change="currentChange"
       @selection-change="handleSelectionChange"
     >
-      <template v-if="isSelection">
-        <el-table-column type="selection" width="55" />
-      </template>
-      <template>
-        <el-table-column
-          align="center"
-          label="搴忓彿"
-          type="index"
-          width="60"
-          :index="indexMethod"
-        />
-      </template>
+      <el-table-column type="selection" width="55" v-if="isSelection" />
+      <el-table-column
+        align="center"
+        label="搴忓彿"
+        type="index"
+        width="60"
+        :index="indexMethod"
+      />
 
-      <template v-for="(item, index) in column">
-        <el-table-column
-          :column-key="item.columnKey"
-          :filter-method="item.filterHandler"
-          :filter-multiple="item.filterMultiple"
-          :filtered-value="item.filteredValue"
-          :filters="item.filters"
-          :fixed="item.fixed"
-          :label="item.label"
-          :min-width="item.minWidth"
-          :prop="item.prop"
-          show-overflow-tooltip
-          :sortable="item.sortable ? true : false"
-          :type="item.type"
-          :width="item.width"
-          align="center"
+      <el-table-column
+        v-for="(item, index) in column"
+        :key="index"
+        :column-key="item.columnKey"
+        :filter-method="item.filterHandler"
+        :filter-multiple="item.filterMultiple"
+        :filtered-value="item.filteredValue"
+        :filters="item.filters"
+        :fixed="item.fixed"
+        :label="item.label"
+        :min-width="item.minWidth"
+        :prop="item.prop"
+        show-overflow-tooltip
+        :sortable="item.sortable ? true : false"
+        :type="item.type"
+        :width="item.width"
+        align="center"
+      >
+        <!-- <div class="123" v-if="item.type == ''"> -->
+        <template
+          v-if="item.hasOwnProperty('colunmTemplate')"
+          :slot="item.colunmTemplate"
+          slot-scope="scope"
         >
-          <!-- <div class="123" v-if="item.type == ''"> -->
-          <template
-            v-if="item.hasOwnProperty('colunmTemplate')"
-            :slot="item.colunmTemplate"
-            slot-scope="scope"
-          >
+          <slot
+            v-if="item.theadSlot"
+            :index="index"
+            :name="item.theadSlot"
+            :row="scope.row"
+          />
+        </template>
+
+        <template slot-scope="scope">
+          <!-- 鎻掓Ы -->
+          <div v-if="item.dataType == 'slot'">
             <slot
-              v-if="item.theadSlot"
-              :index="index"
-              :name="item.theadSlot"
+              v-if="item.slot"
+              :index="scope.$index"
+              :name="item.slot"
               :row="scope.row"
             />
-          </template>
+          </div>
+          <!-- 杩涘害鏉� -->
+          <div v-else-if="item.dataType == 'progress'">
+            <el-progress :percentage="Number(scope.row[item.prop])" />
+          </div>
+          <!-- 鍥剧墖 -->
+          <div v-else-if="item.dataType == 'image'">
+            <img
+              :src="javaApi + '/img/' + item.prop"
+              alt=""
+              style="width: 40px; height: 40px; margin-top: 10px"
+            />
+          </div>
 
-          <template slot-scope="scope">
-            <!-- 鎻掓Ы -->
-            <div v-if="item.dataType == 'slot'">
-              <slot
-                v-if="item.slot"
-                :index="scope.$index"
-                :name="item.slot"
-                :row="scope.row"
-              />
-            </div>
-            <!-- 杩涘害鏉� -->
-            <div v-else-if="item.dataType == 'progress'">
-              <el-progress :percentage="Number(scope.row[item.prop])" />
-            </div>
-            <!-- 鍥剧墖 -->
-            <div v-else-if="item.dataType == 'image'">
-              <img :src="javaApi+'/img/'+item.prop"
-                   alt="" style="width: 40px;height: 40px;margin-top: 10px;">
-            </div>
-
-            <!-- tag -->
-            <div v-else-if="item.dataType == 'tag'">
-              <el-tag
-                v-if="
-                  typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
-                  'string'
-                "
-                :title="scope.row[item.prop] | formatters(item.formatData)"
-                :type="formatType(scope.row[item.prop], item.formatType)"
-                >{{
-                  scope.row[item.prop] | formatters(item.formatData)
-                }}</el-tag
-              >
-              <el-tag
-                v-for="(tag, index) in dataTypeFn(
-                  scope.row[item.prop],
-                  item.formatData
-                )"
-                v-else-if="
-                  typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
-                  'object'
-                "
-                :key="index"
-                :title="scope.row[item.prop] | formatters(item.formatData)"
-                :type="formatType(tag, item.formatType)"
-                >{{
-                  item.tagGroup
+          <!-- tag -->
+          <div v-else-if="item.dataType == 'tag'">
+            <el-tag
+              v-if="
+                typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+                'string'
+              "
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(scope.row[item.prop], item.formatType)"
+              >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+            >
+            <el-tag
+              v-for="(tag, index) in dataTypeFn(
+                scope.row[item.prop],
+                item.formatData
+              )"
+              v-else-if="
+                typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+                'object'
+              "
+              :key="index"
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(tag, item.formatType)"
+              >{{
+                item.tagGroup
+                  ? tag[item.tagGroup.label]
                     ? tag[item.tagGroup.label]
-                      ? tag[item.tagGroup.label]
-                      : tag
                     : tag
-                }}</el-tag
-              >
-              <el-tag
-                v-else
-                :title="scope.row[item.prop] | formatters(item.formatData)"
-                :type="formatType(scope.row[item.prop], item.formatType)"
-                >{{
-                  scope.row[item.prop] | formatters(item.formatData)
-                }}</el-tag
-              >
-            </div>
+                  : tag
+              }}</el-tag
+            >
+            <el-tag
+              v-else
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(scope.row[item.prop], item.formatType)"
+              >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+            >
+          </div>
 
-            <!-- 鎸夐挳 -->
-            <div v-else-if="item.dataType == 'action'">
-              <template v-for="(o, key) in item.operation">
+          <!-- 鎸夐挳 -->
+          <div v-else-if="item.dataType == 'action'">
+            <template v-for="(o, key) in item.operation">
+              <el-button
+                v-if="o.type != 'upload'"
+                size="mini"
+                v-show="o.showHide ? o.showHide(scope.row) : true"
+                :disabled="o.disabled ? o.disabled(scope.row) : false"
+                :icon="iconFn(o)"
+                :plain="o.plain"
+                :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }"
+                :type="o.type | typeFn(scope.row)"
+                @click="o.clickFun(scope.row)"
+                :key="key"
+              >
+                {{ o.name }}
+              </el-button>
+              <el-upload
+                action="#"
+                size="mini"
+                :on-change="
+                  (file, fileList) => o.clickFun(scope.row, file, fileList)
+                "
+                :multiple="o.multiple ? o.multiple : false"
+                :limit="o.limit ? o.limit : 1"
+                :disabled="o.disabled ? o.disabled(scope.row) : false"
+                :accept="
+                  o.accept
+                    ? o.accept
+                    : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+                "
+                v-if="o.type == 'upload'"
+                style="display: inline-block; width: 50px"
+                v-show="o.showHide ? o.showHide(scope.row) : true"
+                :auto-upload="false"
+                :on-exceed="onExceed"
+                :show-file-list="false"
+                :key="key"
+              >
                 <el-button
-                  v-if="o.type != 'upload'"
-                  size="mini"
-                  v-show="o.showHide ? o.showHide(scope.row) : true"
+                  :size="o.size ? o.size : 'small'"
+                  type="text"
                   :disabled="o.disabled ? o.disabled(scope.row) : false"
-                  :icon="iconFn(o)"
-                  :plain="o.plain"
-                  :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }"
-                  :type="o.type | typeFn(scope.row)"
-                  @click="o.clickFun(scope.row)"
+                  >{{ o.name }}</el-button
                 >
-                  {{ o.name }}
-                </el-button>
-                <el-upload
-                  action="#"
-                  size="mini"
-                  :on-change="
-                    (file, fileList) => o.clickFun(scope.row, file, fileList)
-                  "
-                  :multiple="o.multiple ? o.multiple : false"
-                  :limit="o.limit ? o.limit : 1"
-                  :disabled="o.disabled ? o.disabled(scope.row) : false"
-                  :accept="
-                    o.accept
-                      ? o.accept
-                      : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
-                  "
-                  v-if="o.type == 'upload'"
-                  style="display: inline-block; width: 50px"
-                  v-show="o.showHide ? o.showHide(scope.row) : true"
-                  :auto-upload="false"
-                  :on-exceed="onExceed"
-                  :show-file-list="false"
-                >
-                  <el-button
-                    :size="o.size ? o.size : 'small'"
-                    type="text"
-                    :disabled="o.disabled ? o.disabled(scope.row) : false"
-                    >{{ o.name }}</el-button
-                  >
-                </el-upload>
-              </template>
-            </div>
-            <!-- 榛樿绾睍绀烘暟鎹� -->
-            <div v-else>
-              <span v-if="!item.formatData">{{ scope.row[item.prop] }}</span>
-              <span v-else>{{
-                scope.row[item.prop] | formatters(item.formatData)
-              }}</span>
-            </div>
-          </template>
-        </el-table-column>
-      </template>
+              </el-upload>
+            </template>
+          </div>
+          <!-- 榛樿绾睍绀烘暟鎹� -->
+          <div v-else class="cell" style="width: 100%">
+            <span v-if="!item.formatData">{{ scope.row[item.prop] }}</span>
+            <span v-else>{{
+              scope.row[item.prop] | formatters(item.formatData)
+            }}</span>
+          </div>
+        </template>
+      </el-table-column>
     </el-table>
     <pagination
       v-show="page.total > 0"
@@ -392,4 +389,14 @@
 .el-table >>> .el-table__empty-text {
   text-align: center;
 }
+.cell {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  padding-right: 4px;
+  padding-left: 4px;
+}
+>>> .cell {
+  padding: 0 !important;
+}
 </style>

--
Gitblit v1.9.3