From 062175c7c625ef7763b694dd5dfba8bc7e5e76cd Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 14 六月 2023 15:38:04 +0800
Subject: [PATCH] 1.角色清单、安灯设置引入分车间概念

---
 src/views/basicSettings/roleList.vue |  124 +++++++++++++++++++++++++++++++++++------
 1 files changed, 105 insertions(+), 19 deletions(-)

diff --git a/src/views/basicSettings/roleList.vue b/src/views/basicSettings/roleList.vue
index 2ec9f6e..c5c9850 100644
--- a/src/views/basicSettings/roleList.vue
+++ b/src/views/basicSettings/roleList.vue
@@ -163,7 +163,7 @@
         :page.sync="form.page"
         :limit.sync="form.rows"
         align="right"
-        layout="total ,prev, pager, next,sizes"
+        layout="total ,prev, pager, next,sizes,jumper"
         popper-class="select_bottom"
         @pagination="getRoleSearch"
       />
@@ -187,6 +187,21 @@
         <el-form-item label="瑙掕壊鍚嶇О" prop="RoleName">
           <el-input v-model="dialogForm.RoleName" style="width: 200px" />
         </el-form-item>
+
+        <el-form-item label="鎵�灞炵粍缁�" prop="stu_torgcode">
+          <el-cascader
+            ref="dialogCascader"
+            key="cascaderKey"
+            v-model="dialogForm.stu_torgcode"
+            filterable
+            popper-class="elCascader"
+            :options="StuOrgArr"
+            :props="defaultProps"
+            style="width: 200px;"
+            @change="dialogCascaderChange"
+          />
+        </el-form-item>
+
         <el-form-item prop="RoleTypeCode" label="瑙掕壊绫诲瀷">
           <el-select
             v-model="dialogForm.RoleTypeCode"
@@ -196,7 +211,7 @@
             placeholder="璇烽�夋嫨"
           >
             <el-option
-              v-for="item in RoleTypeCodeArr2"
+              v-for="item in RoleTypeCodeArr3"
               :key="item.roletype_code"
               :label="item.roletype_name"
               :value="item.roletype_code"
@@ -239,7 +254,7 @@
         ref="RoleTypeCodeArr"
         :data="RoleTypeCodeArr"
         border
-        height="300"
+        height="377"
         highlight-current-row
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
@@ -257,6 +272,32 @@
           label="搴忓彿"
           prop="RowNum"
         />
+
+        <el-table-column
+          v-if="$store.state.settings.orgType!=='W'"
+          prop="roletype_code"
+          label="鎵�灞炵粍缁�"
+          show-tooltip-when-overflow
+          sortable="custom"
+        >
+          <template slot-scope="{row}">
+            <el-cascader
+              v-if="row.isVisible===1"
+              ref="dialogCascader"
+              key="cascaderKey"
+              v-model="row.storg_code"
+              filterable
+              popper-class="elCascader"
+              :options="StuOrgArr"
+              :props="defaultProps"
+              style="width: 200px;"
+            />
+            <div v-else>
+              {{ row.org_name }}
+            </div>
+          </template>
+        </el-table-column>
+
         <el-table-column
           prop="roletype_code"
           label="绫诲瀷缂栫爜"
@@ -350,14 +391,13 @@
             <el-cascader
               ref="dialogCascaderUser"
               key="cascaderKey"
+              v-model="dialogFormUser.orgcode"
               filterable
               popper-class="elCascader"
               :append-to-body="false"
               :options="StuOrgArr"
               :props="defaultProps"
               :style="{width:isIpad? '180px':'200px'}"
-
-              @change="dialogCascaderChange"
             />
             <!--            @focus="getUserOrganization"-->
           </el-form-item>
@@ -613,6 +653,7 @@
 import elDragDialog from '@/directive/el-drag-dialog'
 import waves from '@/directive/waves'
 import TableColumnSettings from '@/components/TableColumnSettings'
+import { StorgRoleSelect } from '@/api/basicInfo'
 
 export default {
   name: 'JSQD',
@@ -638,6 +679,7 @@
       total: 10,
       RoleTypeCodeArr: [], // 瑙掕壊绫诲瀷缂栫爜鏁扮粍
       RoleTypeCodeArr2: [], // 瑙掕壊绫诲瀷缂栫爜鏁扮粍  鎼滅储
+      RoleTypeCodeArr3: [], // 鏂板鏃剁殑瑙掕壊绫诲瀷鏁扮粍
       RoleTypeCodeArrLength: 0,
       formSetting: {
         page: 1,
@@ -669,13 +711,31 @@
           show: true,
           fixed: false,
           sortable: true
+        }, {
+          minWidth: 110,
+          width: false,
+          prop: 'torg_code',
+          label: '缁勭粐缂栫爜',
+          id: 5,
+          show: false,
+          fixed: false,
+          sortable: true
+        }, {
+          minWidth: 110,
+          width: false,
+          prop: 'org_name',
+          label: '鎵�灞炵粍缁�',
+          id: 6,
+          show: true,
+          fixed: false,
+          sortable: true
         },
         {
           minWidth: 110,
           width: false,
           prop: 'roletype_code',
           label: '瑙掕壊绫诲瀷缂栫爜',
-          id: 5,
+          id: 7,
           show: false,
           fixed: false,
           sortable: true
@@ -685,7 +745,7 @@
           width: false,
           prop: 'roletype_name',
           label: '瑙掕壊绫诲瀷',
-          id: 6,
+          id: 8,
           show: true,
           fixed: false,
           sortable: true
@@ -695,7 +755,7 @@
           width: false,
           prop: 'description',
           label: '瑙掕壊鎻忚堪',
-          id: 7,
+          id: 9,
           show: true,
           fixed: false,
           sortable: true
@@ -705,7 +765,7 @@
           width: false,
           prop: 'is_user',
           label: '鍏宠仈鐢ㄦ埛',
-          id: 8,
+          id: 10,
           show: false,
           fixed: false,
           sortable: true
@@ -715,7 +775,7 @@
           width: false,
           prop: 'is_right',
           label: '鍒嗛厤鏉冮檺',
-          id: 9,
+          id: 11,
           show: true,
           fixed: false,
           sortable: true
@@ -725,7 +785,7 @@
           width: false,
           prop: 'lm_user',
           label: '鍒涘缓浜哄憳',
-          id: 10,
+          id: 12,
           show: true,
           fixed: false,
           sortable: true
@@ -735,7 +795,7 @@
           width: false,
           prop: 'lm_date',
           label: '鍒涘缓鏃堕棿',
-          id: 11,
+          id: 13,
           show: true,
           fixed: false,
           sortable: true
@@ -748,6 +808,7 @@
         RoleId: '',
         RoleCode: '', // 瑙掕壊缂栫爜
         RoleName: '', // 瑙掕壊鍚嶇О
+        stu_torgcode: getCookie('stu_torgcode'), // 鎵�灞炵粍缁�
         RoleTypeCode: '', // 瑙掕壊绫诲瀷
         description: ''//
       },
@@ -761,6 +822,9 @@
         ],
         RoleTypeCode: [
           { required: true, message: '璇烽�夋嫨瑙掕壊绫诲瀷', trigger: ['blur', 'change'] }
+        ],
+        stu_torgcode: [
+          { required: true, message: '璇烽�夋嫨鎵�灞炵粍缁�', trigger: ['blur', 'change'] }
         ]
       },
       settingDialogVisible: false,
@@ -787,7 +851,8 @@
         checkStrictly: true,
         value: 'code',
         label: 'name',
-        children: 'children'
+        children: 'children',
+        emitPath: false
       },
       roleArr: [
         { value: 'Y', label: '鏄�' },
@@ -932,6 +997,10 @@
     add(operation) {
       this.operation = operation
       this.dialogVisible = true
+
+      if (this.$store.state.settings.orgType !== '') {
+        this.getStorgRoleSelect(getCookie('stu_torgcode'), this.StuOrgArr.find(i => i.code === getCookie('stu_torgcode')) ? 'D' : 'W')
+      }
     },
     // 淇敼鎸夐挳
     edit(operation, row) {
@@ -949,6 +1018,8 @@
         this.dialogForm.RoleName = row.role_name
         this.dialogForm.RoleTypeCode = row.roletype_code
         this.dialogForm.description = row.description
+        this.dialogForm.stu_torgcode = row.torg_code
+        this.getStorgRoleSelect(row.torg_code, this.StuOrgArr.find(i => i.code === row.torg_code) ? 'D' : 'W')
       })
     },
     // 鍒犻櫎鎸夐挳
@@ -974,6 +1045,20 @@
         this.$message.info('宸插彇娑堝垹闄�')
       })
     },
+    // 绾ц仈閫夋嫨鍣�
+    dialogCascaderChange(val) {
+      this.dialogForm.RoleTypeCode = ''
+
+      this.getStorgRoleSelect(val, this.StuOrgArr.find(i => i.code === val) ? 'D' : 'W')
+    },
+    async   getStorgRoleSelect(stu_torgcode, description) {
+      const data = {
+        stu_torgcode,
+        description
+      }
+      const { data: res } = await StorgRoleSelect(data)
+      this.RoleTypeCodeArr3 = res
+    },
     // 瀵硅瘽妗嗗叧闂簨浠�
     handleClose() {
       this.dialogForm.RoleId = ''
@@ -981,6 +1066,8 @@
       this.dialogForm.RoleName = ''
       this.dialogForm.RoleTypeCode = ''
       this.dialogForm.description = ''
+      this.dialogForm.stu_torgcode = getCookie('stu_torgcode')
+      this.RoleTypeCodeArr3 = []
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -998,6 +1085,7 @@
             RoleName: this.dialogForm.RoleName,
             RoleTypeCode: this.dialogForm.RoleTypeCode,
             description: this.dialogForm.description,
+            stu_torgcode: this.dialogForm.stu_torgcode,
             OperType: this.operation === 'add' ? 'Add' : 'Update'
             // Operator: getCookie('admin')
           }
@@ -1056,7 +1144,7 @@
 
       let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
       number = number === 0 ? (10 + Math.random()) : number
-      const data = { roletype_code: '', roletype_name: '', isVisible: 1, number: number }
+      const data = { storg_code: getCookie('stu_torgcode'), roletype_code: '', roletype_name: '', isVisible: 1, number: number }
       this.RoleTypeCodeArr.unshift(data)
     },
     // 鍒犻櫎鎸夐挳
@@ -1089,7 +1177,8 @@
       }
       const data = {
         code: row.roletype_code,
-        name: row.roletype_name
+        name: row.roletype_name,
+        flag: row.storg_code
       }
       const res = await RoleTypeAdd([data])
       if (res.code === '200') {
@@ -1215,10 +1304,7 @@
         this.$store.state.app.buttonIsDisabled = false
       }
     },
-    // 绾ц仈閫夋嫨鍣�
-    dialogCascaderChange(val) {
-      this.dialogFormUser.orgcode = val[val.length - 1]
-    },
+
     // 缃┖鎸夐挳
     setRoleAssociationUser() {
       this.dialogFormUser.usercode = ''

--
Gitblit v1.9.3