From e87846bfc7e467836d958632b15a22a901eb51d2 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 09 一月 2025 15:33:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/flow/Role/MyRole.vue |  107 +++++++++++++++--------------------------------------
 1 files changed, 31 insertions(+), 76 deletions(-)

diff --git a/src/components/flow/Role/MyRole.vue b/src/components/flow/Role/MyRole.vue
index f2027a0..e5e9cd7 100644
--- a/src/components/flow/Role/MyRole.vue
+++ b/src/components/flow/Role/MyRole.vue
@@ -1,11 +1,12 @@
 <template>
   <div>
     <el-dialog
-      :title="`閫夋嫨鍊欓�夎鑹瞏"
+      :title="title"
       :visible.sync="show"
       width="65%"
       :destroy-on-close="true"
       :close-on-click-modal="false"
+      :modal-append-to-body="false"
       :modal="false"
       :before-close="close">
       <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
@@ -14,6 +15,7 @@
             v-model="queryParams.roleName"
             placeholder="璇疯緭鍏ヨ鑹插悕绉�"
             clearable
+            @clear="handleQuery"
             style="width: 240px"
             @keyup.enter.native="handleQuery"
           />
@@ -24,13 +26,13 @@
         </el-form-item>
       </el-form>
 
-      <el-table ref="dataTable"  v-loading="loading" :data="roleList" @selection-change="handleMultipleRoleSelect">
-        <el-table-column type="selection" width="50" align="center" />
-        <el-table-column label="瑙掕壊缂栧彿" prop="roleId" width="120" />
-        <el-table-column label="瑙掕壊鍚嶇О" prop="roleName" :show-overflow-tooltip="true" width="150" />
-        <el-table-column label="鏉冮檺瀛楃" prop="roleKey" :show-overflow-tooltip="true" width="150" />
-        <el-table-column label="鏄剧ず椤哄簭" prop="roleSort" width="100" />
-        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
+      <el-table ref="dataTable" :row-key="getRowKey" v-loading="loading"  :data="roleList" @selection-change="handleMultipleRoleSelect">
+        <el-table-column type="selection" width="50" align="center"  :reserve-selection="true"/>
+        <el-table-column label="瑙掕壊缂栧彿" prop="roleId"/>
+        <el-table-column label="瑙掕壊鍚嶇О" prop="roleName" :show-overflow-tooltip="true"/>
+        <el-table-column label="鏉冮檺瀛楃" prop="roleKey" :show-overflow-tooltip="true"/>
+        <el-table-column label="鏄剧ず椤哄簭" prop="roleSort"/>
+        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
@@ -68,6 +70,11 @@
       required: true,
       default: true
     },
+    title: {
+      type: String,
+      required: false,
+      default: '鍊欓�夎鑹�'
+    },
     // 鍥炴樉鏁版嵁浼犲��
     selectValues: {
       type: Array,
@@ -79,22 +86,12 @@
     return {
       // 閬僵灞�
       loading: true,
-      // 閫変腑鏁扮粍
-      ids: [],
-      // 闈炲崟涓鐢�
-      single: true,
-      // 闈炲涓鐢�
-      multiple: true,
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
       // 鎬绘潯鏁�
       total: 0,
       // 瑙掕壊琛ㄦ牸鏁版嵁
       roleList: [],
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -103,72 +100,30 @@
         roleKey: undefined,
         status: undefined
       },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      radioSelected: 0, // 鍗曢�夋浼犲��
       selectRoleList: [] // 鍥炴樉鏁版嵁浼犲��
     };
   },
   watch: {
-    selectValues: {
-      deep: true,
-      handler(newVal) {
-        if (newVal && newVal.length > 0) {
-          this.$nextTick(() => {
-            this.$refs.dataTable.clearSelection();
-            this.selectRoleList = []
-            newVal.forEach(item => {
-              this.roleList.forEach(role => {
-                if (item.roleId === role.roleId) {
-                  this.selectRoleList.push(role)
-                  this.$refs.dataTable.toggleRowSelection(role)
-                }
-              })
-            });
-          })
-        } else {
-          this.selectRoleList = []
-        }
-      }
-    },
-    roleList: {
-      deep: true,
-      handler(newVal) {
-        if (newVal && newVal.length > 0) {
-          this.$nextTick(() => {
-            this.$refs.dataTable.clearSelection();
-            this.selectValues.forEach(item => {
-              newVal.forEach(role => {
-                if (item.roleId === role.roleId) {
-                  this.$refs.dataTable.toggleRowSelection(role)
-                }
-              })
-            });
-          })
-        }
-      }
-    }
   },
   mounted() {
+    console.log("鎴戝鍦ㄤ簡")
     this.getList();
   },
   methods: {
+    // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁
+    getRowKey (row) {
+      console.log(row.roleId)
+      return row.roleId
+    },
     setChecked(val) {
-      if (val && val.length > 0) {
-        this.$nextTick(() => {
-          this.$refs.dataTable.clearSelection();
-          this.selectRoleList = val
-          val.forEach(check => {
-            this.roleList.forEach(item => {
-              if (check.roleId === item.roleId) {
-                this.$refs.dataTable.toggleRowSelection(item)
-              }
-            })
-          })
-        });
-      } else {
-        this.selectRoleList = []
-      }
+
+      this.selectRoleList = val
+      console.log("鎺ユ敹鍒扮殑鏁版嵁", this.selectRoleList)
+      this.$nextTick(() => {
+        this.selectRoleList.forEach(check => {
+          this.$refs.dataTable.toggleRowSelection(check, true)
+        })
+      });
     },
     close() {
       this.$emit("close")
@@ -187,8 +142,8 @@
       );
     },
     // 澶氶�夋閫変腑鏁版嵁
-    handleMultipleRoleSelect(selection) {
-      this.selectRoleList = selection
+    handleMultipleRoleSelect(rows) {
+      this.selectRoleList = [...new Set(rows)]
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {

--
Gitblit v1.8.0