From 6d7cd13eecd3a6f176d310986b4750b0c407e3a1 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 21 五月 2025 14:40:43 +0800
Subject: [PATCH] 测试完成

---
 src/components/SFtable/index.vue |  346 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 263 insertions(+), 83 deletions(-)

diff --git a/src/components/SFtable/index.vue b/src/components/SFtable/index.vue
index 4740111..2687a76 100644
--- a/src/components/SFtable/index.vue
+++ b/src/components/SFtable/index.vue
@@ -1,20 +1,66 @@
+<!-- 琛ㄦ牸缁勪欢灏佽 -->
 <template>
-    <el-table
-      :data="currentList"
-      style="width: 1158px"
-      :header-cell-style="{
-        background: '#f3f6fb',
-        color: '#666',
-        height: '42px',
-        'font-weight': 400,
-      }"
-      :highlight-current-row="true"
-      empty-text="鏆傛棤鏁版嵁"
-    >
-      <el-table-column type="index" :index="indexMethod" label="搴忓彿" width="80">
+  <el-table
+    ref="multipleTableson"
+    :height="heights"
+    :data="
+      currentList.filter(
+        (data) =>
+          !search || data.name.toLowerCase().includes(search.toLowerCase())
+      )
+    "
+    @selection-change="handleSelectionChange"
+    :header-cell-style="{
+      background: '#f3f6fb',
+      color: '#666',
+      height: '42px',
+      'font-weight': 400,
+    }"
+    :highlight-current-row="true"
+    empty-text="鏆傛棤鏁版嵁"
+  >
+    <el-table-column
+      v-if="multiplechoice"
+      fixed="left"
+      type="selection"
+      width="50"
+      align="center"
+    />
+    <el-table-column
+      v-if="serialnumber"
+      label="搴忓彿"
+      align="center"
+      key="id"
+      prop="id"
+    />
+    <div v-for="(item, index) in tableLabel">
+      <el-table-column
+        v-if="item.label == '鍑洪櫌鏃ユ湡'"
+        :key="index"
+        :prop="item.prop"
+        :width="item.width"
+        :label="item.label"
+        :formatter="formatData"
+      >
+        <template slot-scope="scope">
+          <span>{{ formatTime(scope.row.endtime) }}</span>
+        </template>
       </el-table-column>
       <el-table-column
-        v-for="(item, index) in tableLabel"
+        v-if="item.label == '鎬у埆'"
+        :key="index"
+        :prop="item.prop"
+        :width="item.width"
+        :label="item.label"
+        :formatter="formatData"
+      >
+        <template slot-scope="scope">
+          <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        v-if="item.label != '鎬у埆' && item.label != '鍑洪櫌鏃ユ湡'"
         :key="index"
         :prop="item.prop"
         :width="item.width"
@@ -22,78 +68,212 @@
         :formatter="formatData"
       >
       </el-table-column>
-      <el-table-column label="鎿嶄綔" width="100">
-        <template slot-scope="scope">
-          <el-button type="text" @click.native="$emit('details', scope.row)"
-            >鏌ョ湅璇︽儏</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-  </template>
-  
-  <script>
-  import dayjs from "dayjs";
-  export default {
-    data() {
-      return {};
+    </div>
+    <!-- <el-table-column
+      v-for="(item, index) in tableLabel"
+      :key="index"
+      :prop="item.prop"
+      :width="item.width"
+      :label="item.label"
+      :formatter="formatData"
+    >
+    </el-table-column> -->
+    <!-- <el-table-column
+      label="鏄惁鍙敤"
+      align="center"
+      key="isavailable"
+      prop="isavailable"
+      width="120"
+    >
+      <template slot-scope="scope">
+        <dict-tag :options="qyoptions" :value="scope.row.usestate" />
+      </template>
+    </el-table-column> -->
+    <el-table-column
+      v-if="center && !searchTrue"
+      label="鎿嶄綔"
+      fixed="right"
+      align="center"
+      width="120"
+      class-name="small-padding fixed-width"
+    >
+      <template slot-scope="scope">
+        <el-button
+          v-if="controlxz"
+          size="medium"
+          type="text"
+          @click.native="$emit('selectfn', scope.row, typeinfo)"
+          ><span class="button-zx"
+            ><i class="el-icon-s-promotion"></i>閫夋嫨</span
+          ></el-button
+        >
+        <el-button
+          v-if="controlsc"
+          size="medium"
+          type="text"
+          @click.native="$emit('details', scope.row, typeinfo)"
+          ><span style="color: red"
+            ><i class="el-icon-delete"></i>鍒犻櫎</span
+          ></el-button
+        >
+      </template>
+    </el-table-column>
+    <el-table-column
+      v-if="center && searchTrue"
+      label="鎿嶄綔"
+      fixed="right"
+      align="right"
+      width="200"
+      class-name="small-padding fixed-width"
+    >
+      <template slot="header" slot-scope="scope">
+        <el-input v-model="search" size="mini" placeholder="杈撳叆鎮h�呭悕绉版悳绱�" />
+      </template>
+      <template slot-scope="scope">
+        <el-button
+          v-if="controlxz"
+          size="medium"
+          type="text"
+          @click.native="$emit('selectfn', scope.row, typeinfo)"
+          ><span class="button-zx"
+            ><i class="el-icon-s-promotion"></i>閫夋嫨</span
+          ></el-button
+        >
+        <el-button
+          v-if="controlsc"
+          size="medium"
+          type="text"
+          @click.native="$emit('details', scope.row, typeinfo)"
+          ><span style="color: red"
+            ><i class="el-icon-delete"></i>鍒犻櫎</span
+          ></el-button
+        >
+      </template>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import store from "@/store";
+export default {
+  data() {
+    return {
+      ids: [],
+      mode: [],
+      languagelist: [],
+      editabshape: [],
+      qyoptions: [],
+      precedencetype: [],
+      search: "",
+    };
+  },
+  props: {
+    currentList: {
+      type: Array,
+      required: true,
     },
-    props: {
-      currentList: {
-        type: Array,
-        required: true,
-      },
-      tableLabel: {
-        type: Array,
-        default: () => [],
-      },
-      currentIndex: {
-        type: Number,
-        required: true,
-      },
+    tableLabel: {
+      type: Array,
+      default: () => [],
     },
-    created() {},
-  
-    methods: {
-      indexMethod(index) {
-        return parseInt(this.currentIndex) - 9 + index;
-      },
+    controlsc: {
+      type: Boolean,
+      default: true,
+    },
+    center: {
+      type: Boolean,
+      default: true,
+    },
+    controlxz: {
+      type: Boolean,
+      default: true,
+    },
+    multiplechoice: {
+      type: Boolean,
+      default: true,
+    },
+    serialnumber: {
+      type: Boolean,
+      default: true,
+    },
+    // 1妯℃澘鍒楄〃 2閫変腑鎮h�� 3鎮h�呭垪琛�
+    typeinfo: {
+      type: Number,
+      default: 1,
+    },
+    heights: {
+      type: Number,
+      default: 600,
+    },
+    searchTrue: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  created() {
+    this.mode = store.getters.mode;
+    this.languagelist = store.getters.languagelist;
+    this.qyoptions = store.getters.usable;
+    this.precedencetype = store.getters.precedencetype;
+    this.editabshape = store.getters.editabshape;
+  },
+
+  methods: {
     //   鏁版嵁杩囨护
-      formatData(row, column, cellValue) {
-        if (column.property === "createType") {
-          if (cellValue === 1) {
-            return "鑷姩";
-          }
-          return "鎵嬪姩";
+    formatData(row, column, cellValue) {
+      if (column.property === "createType") {
+        if (cellValue === 1) {
+          return "鑷姩";
         }
-        if (column.property === "createTime") {
-          return dayjs(cellValue).format("YYYY.MM.DD HH:mm:ss");
+        return "鎵嬪姩";
+      }
+      if (
+        column.property === "createTime" ||
+        column.property === "inhosptime"
+      ) {
+        if (cellValue === null) {
+          return "";
         }
-        return cellValue;
-      },
+        return dayjs(cellValue).format("YYYY-MM-DD ");
+      }
+      return cellValue;
     },
-  };
-  </script>
-  
-  <style lang="scss">
-  .el-table td,
-  .el-table th.is-leaf {
-    border-bottom: unset;
-  }
-  .el-table td,
-  .el-table th {
-    padding: 5px 0;
-  }
-  .el-table thead {
-    font-weight: 400;
-    color: #666;
-  }
-  .dialog-footer {
-    width: 100%;
-    padding: 10px 20px 20px;
-    text-align: center !important;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-  </style>
-  
\ No newline at end of file
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      console.log(selection);
+
+      this.$emit("handleSelectionChange", selection);
+    },
+    toggleRowSelection(row, selected) {
+      this.$refs.multipleTableson.toggleRowSelection(row, selected);
+    },
+    clearSelection() {
+      // 鍦ㄨ繖閲岀紪鍐欐竻闄ら�夋嫨鐨勯�昏緫
+      this.$refs.multipleTableson.clearSelection();
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+.el-table td,
+.el-table th.is-leaf {
+  border-bottom: unset;
+}
+.el-table td,
+.el-table th {
+  padding: 5px 0;
+}
+.el-table thead {
+  font-weight: 400;
+  color: #666;
+}
+.dialog-footer {
+  width: 100%;
+  padding: 10px 20px 20px;
+  text-align: center !important;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+</style>

--
Gitblit v1.9.3