tangning %!s(int64=3) %!d(string=hai) anos
pai
achega
14f39df339
Modificáronse 4 ficheiros con 41 adicións e 6 borrados
  1. 35 1
      src/state/user.js
  2. 3 3
      src/view/dispatch/index.vue
  3. 2 1
      src/view/layout/top/index.vue
  4. 1 1
      src/view/role/index.vue

+ 35 - 1
src/state/user.js

@@ -50,6 +50,7 @@ export const setPermission = async (val,permissions) => {
   let power = []
   if (val !== void 0){
     power = permissions&&permissions.map(element => element.replace('dept','organization').replace('scene','vrmodel'));
+    console.log('power',power,'permissions',permissions);
     let pubPermission = ['home', 'vrmodel', 'camera', 'teaching', 'dispatch','role','organization'].map(key => ({
       children: [
         { resourceKey: key + ':select' },
@@ -85,7 +86,7 @@ export const setPermission = async (val,permissions) => {
   } else {
     val = []
   }
-
+  console.log('setInfoPermission',val);
   user.value.permission = val || []
   user.value.roleKeyList = power
 }
@@ -94,6 +95,39 @@ export const setToken = val => {
   user.value.token = val
 }
 
+export const setInfoPermission = val => {
+  const replacetest = {
+    'dept':'organization',
+    'scene':'vrmodel',
+  }
+  let permission = [{
+    children: [
+      { resourceKey: 'home:select' },
+      { resourceKey: 'home:update' },
+      { resourceKey: 'home:delete' },
+      { resourceKey: 'home:add' }
+    ],
+    viewName:'home',
+    resourceKey: 'home'
+  }].concat(val.map(ele => {
+    if(ele.type == "menu"){
+      let key = replacetest[ele.module]||ele.module
+      return {
+        resourceKey:key,
+        viewName: keyViewMap[key] || key,
+        children: [
+            { resourceKey: ele.module + ':select' },
+            { resourceKey: ele.module + ':update' },
+            { resourceKey: ele.module + ':delete' },
+            { resourceKey: ele.module + ':add' }
+          ],
+      }
+    }
+  }))
+  console.log('permission',permission)
+  user.value.permission = permission || []
+}
+
 export const setInfo = val => {
   user.value.info = val
 }

+ 3 - 3
src/view/dispatch/index.vue

@@ -60,7 +60,7 @@
         <template v-else>
           <el-button type="primary" @click="insertProject" v-if="user.roleKey!=='admin'" v-power="'add'">新增火调项目</el-button>
           <!-- :disabled="!dataList.selectRows.length" -->
-          <el-button type="primary" @click="setTeaching" v-if="user.roleKey=='admin-dept' && auth.setting" v-power="'teach'" >设为教学项目</el-button>
+          <el-button type="primary" @click="setTeaching"  v-power="'teach'" >设为教学项目</el-button>
         </template>
       </div>
     </div>
@@ -109,7 +109,7 @@
         -->
       <el-table-column label="操作" v-slot:default="{ row }" :width="isTeaching ? 280 : 320">
         <span class="oper-span" @click="queryDetail(row)" :class="{disable: (user.info.id == row.creatorId || user.roleKey == 'admin-dept')}" v-power="'view'">详情</span>
-        <span class="oper-span" @click="archivesHandle(row)" v-power="'readFile'" >档案</span>
+        <span class="oper-span" @click="archivesHandle(row)" v-power="'doc:look'" >档案</span>
         <!-- <span class="oper-span" @click="queryScene(row)" v-power="'readFile'" >场景</span> -->
         <span class="oper-span" v-power="'look'" :class="{disable: !row.sceneNum}" v-if="!isTeaching" @click="takeLook(row)">带看</span>
         <template v-if="isTeaching">
@@ -351,7 +351,7 @@
           </el-form-item>
         </el-col>
       </div>
-      <el-form-item label="火调场景">
+      <el-form-item label="火调场景" v-power="'vrmodel:look'">
         <a :href="detail.data.vrLink" target="_blank">{{detail.data.sceneName}}</a>
       </el-form-item>
     </el-form>

+ 2 - 1
src/view/layout/top/index.vue

@@ -69,7 +69,7 @@ import comDialog from "@/components/dialog";
 import axios from 'axios';
 import { updatePsw,getUserInfo,userLogout } from '@/request/config'
 import { sendUserMsg } from '@/request/config'
-import {  setInfo,setToken,setRoleKey, } from '@/state/user'
+import {  setInfo,setInfoPermission,setToken,setRoleKey, } from '@/state/user'
 // import { setToken, setPermission , setRoleKey } from '@/state/user'  setPermission
 import { computed, ref, reactive, watch } from 'vue'
 import user from '@/state/user'
@@ -94,6 +94,7 @@ export default {
     async getInfo(){
       let res =  await axios.get(getUserInfo)
       setInfo(res.data.user)
+      setInfoPermission(res.data.permissionsList || [])
       console.log('res',res)
     },
     async updatePsw() {

+ 1 - 1
src/view/role/index.vue

@@ -356,7 +356,7 @@ export default {
         "id": id || '',
         "perm": {
           ...perm,
-          ...this.radioData,
+          // ...this.radioData,
         },
         "roleName": this.newData.roleName
       });