From d94af68ec3f6317124df81296b08c7c110641fca Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 24 八月 2023 09:10:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/laboratory/role/index.vue |  287 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 140 insertions(+), 147 deletions(-)

diff --git a/src/views/laboratory/role/index.vue b/src/views/laboratory/role/index.vue
index 1c01efc..494b9da 100644
--- a/src/views/laboratory/role/index.vue
+++ b/src/views/laboratory/role/index.vue
@@ -1,140 +1,105 @@
 <template>
   <div>
-      <div class="content-main">
-          <div class="top-bar">
-              <el-form ref="form" :inline="true" :model="searchData">
-              <el-form-item label="瑙掕壊鍚嶇О锛�" class="sermargin">
-                <el-input
-                  v-model="searchData.roleName"
-                  class="input-form"
-                  placeholder="璇疯緭鍏ヨ鑹插悕绉�"
-                  style="width:250px"
-                >
-                </el-input>
-              </el-form-item>
-              <el-form-item label="鏉冮檺锛�" class="sermargin">
-                <el-input
-                  v-model="searchData.permission"
-                  class="input-form"
-                  placeholder="璇疯緭鍏ユ潈闄�"
-                  style="width:250px"
-                >
-                </el-input>
-              </el-form-item>
-              <el-form-item class="rightBtn">
-                <el-button type="primary" @click="search">鏌ヨ</el-button>
-                <el-button type="primary" plain @click="reset">閲嶇疆</el-button>
-              </el-form-item>
-              </el-form>
-              <el-form>
-                <el-form-item class="rightBtn">
-                  <el-button type="primary" @click="addRole" icon="el-icon-plus">鏂板鏉冮檺</el-button>
-                </el-form-item>
-              </el-form>
-              </el-form>
-          </div>
-          <div class="library-table">
-            <div class="table-box">
-              <el-table
-                :max-height="800"
-                :cell-style="{textAlign: 'center'}"
-                :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-                :data="roleTable"
-                style="width: 100%"
-              >
-                <el-table-column
-                  type="selection"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="rolename"
-                  label="瑙掕壊鍚嶇О"
-                  min-width="20%"
-                />
-                <el-table-column
-                  prop="permission"
-                  label="鏉冮檺"
-                  min-width="20%"
-                />
-                <el-table-column
-                  prop="create_time"
-                  label="鍒涘缓鏃堕棿"
-                  min-width="20%"
-                />
-                <el-table-column
-                  prop="update_time"
-                  label="鏇存柊鏃堕棿"
-                  min-width="20%"
-                />
-                <el-table-column
-                  label="鎿嶄綔"
-                  min-width="12%"
-                >
-                  <template slot-scope="scope">
-                    <el-button type="text" size="small" >缂栬緫</el-button>
-                    <el-button type="text" size="small" >鍒犻櫎</el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <!-- 鍒嗛〉鍣� -->
-              <div class="pagination">
-                <el-pagination
-                  @size-change="handleSizeChange"
-                  @current-change="handleCurrentChange"
-                  :current-page="currentPage"
-                  :page-sizes="[5, 10, 20]"
-                  :page-size="pageSize"
-                  layout="total, sizes, prev, pager, next, jumper"
-                  :total="total">
-                </el-pagination>
-              </div>
-            </div>
-          </div>
-      </div>
-      <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogTableVisible" width="30%">
-        <el-form :model="updateData" ref="updateData" label-position="right" label-width="100px">
-          <el-form-item label="鍘熷瘑鐮侊細">
-            <el-input style="width: 300px" v-model="updateData.oldPassWord" placeholder="璇疯緭鍏ュ師瀵嗙爜" >
+    <div class="content-main">
+      <div class="top-bar">
+        <el-form ref="form" :inline="true" :model="searchData">
+          <el-form-item label="瑙掕壊鍚嶇О锛�" class="sermargin">
+            <el-input v-model="searchData.roleName" class="input-form" placeholder="璇疯緭鍏ヨ鑹插悕绉�" style="width:250px">
             </el-input>
           </el-form-item>
-          <el-form-item label="鏂板瘑鐮侊細">
-            <el-input style="width: 300px" v-model="updateData.newPassWord" placeholder="璇疯緭鍏ユ柊瀵嗙爜">
+          <el-form-item label="鏉冮檺锛�" class="sermargin">
+            <el-input v-model="searchData.permission" class="input-form" placeholder="璇疯緭鍏ユ潈闄�" style="width:250px">
             </el-input>
           </el-form-item>
-          <el-form-item label="纭瀵嗙爜锛�">
-            <el-input style="width: 300px" v-model="updateData.confirmPassWord" placeholder="鍐嶆杈撳叆瀵嗙爜">
-            </el-input>
+          <el-form-item class="rightBtn">
+            <el-button type="primary">鏌ヨ</el-button>
+            <el-button type="primary" plain>閲嶇疆</el-button>
           </el-form-item>
         </el-form>
-        <span slot="footer" class="dialog-footer">
-          <el-button @click="dialogTableVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="changePassword">纭� 瀹�</el-button>
-        </span>
-      </el-dialog>
+        <el-form>
+          <el-form-item class="rightBtn">
+            <el-button type="primary" @click="addClickRole" icon="el-icon-plus">鏂板瑙掕壊</el-button>
+          </el-form-item>
+        </el-form>
+        </el-form>
+      </div>
+      <div class="library-table">
+        <div class="table-box">
+          <el-table :max-height="800" :cell-style="{ textAlign: 'center' }"
+            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+            :data="roleTable" style="width: 100%">
+            <el-table-column type="selection" min-width="8%" />
+            <el-table-column prop="rolename" label="瑙掕壊鍚嶇О" min-width="20%" />
+            <el-table-column prop="permission" label="鏉冮檺" min-width="20%" />
+            <el-table-column prop="create_time" label="鍒涘缓鏃堕棿" min-width="20%" />
+            <el-table-column prop="update_time" label="鏇存柊鏃堕棿" min-width="20%" />
+            <el-table-column label="鎿嶄綔" min-width="12%">
+              <template slot-scope="scope">
+                <el-button type="text" size="small">缂栬緫</el-button>
+                <el-button type="text" size="small">鍒犻櫎</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <!-- 鍒嗛〉鍣� -->
+          <div class="pagination">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+              :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize"
+              layout="total, sizes, prev, pager, next, jumper" :total="total">
+            </el-pagination>
+          </div>
+        </div>
+      </div>
+    </div>
+    <el-dialog title="鏂板瑙掕壊" :visible.sync="dialogTableVisible" width="60%">
+      <el-form :model="roleAdd" ref="roleAdd" label-position="right" label-width="100px">
+        <el-form-item label="瑙掕壊鍚�:">
+          <el-input style="width: 300px" v-model="roleAdd.roleName" placeholder="璇疯緭鍏ヨ鑹插悕">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鍔熻兘閫夋嫨:">
+          <el-cascader size="medium " v-model="roleAdd.menuData" :options="menuInfo">
+            <template slot-scope="{ node, data }">
+              <span>{{ data.label }}</span>
+              <span v-if="!node.isLeaf"> ({{  }}) </span>
+            </template>
+          </el-cascader>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogTableVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addRole">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure'
+import { getMenusTree } from '@/api/laboratory/role'
 export default {
   data() {
     return {
-      searchData:{
+      props: { multiple: true },
+      roleAdd: {
+        roleName: null,
+        menuData: null
+      },
+      searchData: {
         roleName: '',
         permission: ''
       },
-      roleTable:[{
+      menuInfo: [],
+      roleTable: [{
         rolename: '閮ㄩ暱',
         permission: 'ROOT',
         create_time: '2023-07-04 12:12:12',
         update_time: '2023-07-04 12:12:12'
-      },{
+      }, {
         rolename: '缁勯暱',
         permission: '--',
         create_time: '2023-07-04 12:12:12',
         update_time: '2023-07-04 12:12:12'
       }],
-      updateData:{
+      updateData: {
         oldPassWord: '',
         newPassWord: '',
         confirmPassWord: ''
@@ -145,13 +110,37 @@
       total: 20
     }
   },
-  created(){
-    
+  created() {
+
   },
   methods: {
-    addRole(){
+    async addClickRole() {
+      let res = await getMenusTree();
+      this.menuInfo = res.data
+      this.menuInfo.forEach(item => {
+        item.select = false
+        item.add = false
+        item.update = false
+        item.delete = false
+        if (item.children.length == 0) {
+          delete item['children']
+        } else {
+          item.children.forEach(c => {
+            c.select = false
+            c.add = false
+            c.update = false
+            c.delete = false
+            if (c.children.length == 0) {
+              delete c['children']
+            }
+          })
+        }
+      })
       this.dialogTableVisible = true
       // console.log(this.dialogTableVisible)
+    },
+    addRole() {
+      console.log(this.roleAdd);
     },
     // search(){},
     // reset(){},
@@ -170,44 +159,48 @@
 </script>
 
 <style scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
 
-.top-bar{
-    margin: -25px -15px;
+  .sermargin {
+    margin-right: 60px;
+  }
+}
+
+.rightBtn {
+  margin-right: 50px
+}
+
+.library-table {
+  background-color: #fff;
+  flex: 1;
+  margin: 0px -15px;
+  margin-top: 40px;
+  display: flex;
+  flex-direction: column;
+
+  .table-box {
+    padding: 10px 20px;
+    margin-top: 0px;
+    flex: 1;
     background: #fff;
+    /* padding: 20px 20px 10px 20px; */
     display: flex;
-    justify-content: space-between;
-    padding: 5px 24px 0px 24px;
-    .sermargin{
-      margin-right: 60px;
+    flex-direction: column;
+
+    .el-table {
+      flex: 1;
     }
   }
-.rightBtn{
-    margin-right: 50px
-}
-.library-table{
-      background-color: #fff;
-      flex: 1;
-      margin: 0px -15px;
-      margin-top: 40px;
-      display: flex;
-      flex-direction: column;
-      .table-box{
-          padding: 10px 20px;
-          margin-top: 0px;
-          flex: 1;
-          background: #fff;
-          /* padding: 20px 20px 10px 20px; */
-          display: flex;
-          flex-direction: column;
-          .el-table {
-            flex: 1;
-          }
-      }
-      .pagination{
-        display:flex;
-        justify-content:end;
-        margin-top: 20px
-      }
-    }
 
+  .pagination {
+    display: flex;
+    justify-content: end;
+    margin-top: 20px
+  }
+}
 </style>

--
Gitblit v1.9.3