Browse Source

xiugaitapd问题点

tangning 3 years ago
parent
commit
544ceba249

+ 22 - 0
src/util/index.js

@@ -1,4 +1,6 @@
 import Base64 from 'Base64'
+import user from '@/state/user'
+import router from '@/router/index'
 
 export const dateFormat = (date, fmt) => {
   var o = {
@@ -101,4 +103,24 @@ export const downloadFile = (url, fileName) => {
       a.click();
   }
   x.send();
+}
+
+/**
+ *获取权限
+ */
+ export const getRoke = (val) => {
+  if(!val){
+    return false
+  }
+  let replacelist = {
+    'organizationlist':'organization',
+  }
+  let roleKeyList = user._value.roleKeyList
+  let routeName = router.currentRoute._value.name
+  let rokeName =  `${replacelist[routeName] || routeName}:${val}`
+  if(!roleKeyList.includes(rokeName)){
+    return true
+  }else{
+    return false
+  }
 }

+ 3 - 2
src/view/camera/index.vue

@@ -26,6 +26,7 @@
           type="primary"
           @click="oper.readyInsert"
           v-if="auth.add"
+          :disabled="getRoke('bind')"
           v-power="'bind'"
           >绑定相机</el-button
         >
@@ -98,7 +99,7 @@ import comDialog from "@/components/dialog";
 import comPagination from "@/components/pagination";
 import comSelect from "@/components/company-select";
 import comHead from "@/components/head";
-import { dateFormat } from '@/util'
+import { dateFormat,getRoke } from '@/util'
 import {
   getCameraList,
   insertCamera,
@@ -153,7 +154,7 @@ export default {
     onMounted(async ()=>{
         getuserlist()
     })
-    return { ...state,...toRefs(userList), headList, time, auth,getuserlist, };
+    return { ...state,...toRefs(userList), headList, time, auth,getuserlist,getRoke };
   },
   methods: {
     async unbindCamrea(data) {

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

@@ -55,12 +55,12 @@
       <h3 style="visibility: hidden;">项目列表</h3>
       <div class="table-ctrl-right">
         <template v-if="isTeaching">
-          <el-button type="primary" @click="revokeTeaching()" v-power="'cancel'" v-if="auth.setting" :disabled="!dataList.selectRows.length">撤销教学</el-button>
+          <el-button type="primary" @click="revokeTeaching()" :disabled="getRoke('cancel') && !dataList.selectRows.length" v-power="'cancel'">撤销教学</el-button>
         </template>
         <template v-else>
-          <el-button type="primary" @click="insertProject" v-if="user.roleKey!=='admin'" v-power="'add'">新增火调项目</el-button>
+          <el-button type="primary" @click="insertProject" :disabled="getRoke('add')" v-if="user.roleKey!=='admin'" v-power="'add'">新增火调项目</el-button>
           <!-- :disabled="!dataList.selectRows.length" -->
-          <el-button type="primary" @click="setTeaching"  v-power="'teach'" >设为教学项目</el-button>
+          <el-button type="primary" @click="setTeaching" :disabled="getRoke('teach')"  v-power="'teach'" >设为教学项目</el-button>
         </template>
       </div>
     </div>
@@ -372,7 +372,7 @@ import comLeaveMsg from "./leaveMsg";
 import comCompany from "@/components/company-select";
 import comHead from "@/components/head";
 import comArchives from "./archives";
-import { copyText, dateFormat } from '@/util'
+import { copyText, dateFormat,getRoke } from '@/util'
 import {
   getFireList,
   insertFire,
@@ -502,7 +502,7 @@ export default {
     
 
     return { 
-      ...state, time, auth, types,  user,
+      ...state, time, auth, types,  user,getRoke,
       showArchives, showLeaveMsg, sfireReason, 
       sprojectSite, share, fireReason, ADMIN_USER_ID,
       projectSite, place: PLACE, reason: REASON, queryAccidentDate,

+ 6 - 3
src/view/organization/list.vue

@@ -2,7 +2,7 @@
   <div class="organiza">
     <div class="organiza-body">
       <div class="but">
-      <el-button type="primary" v-power="'add'" @click="insertProject"
+      <el-button type="primary" v-power="'add'" :disabled="getRoke('add')" @click="insertProject"
         >新增组织架构</el-button
       >
     </div>
@@ -143,6 +143,7 @@ import { useRoute } from "vue-router";
 import seeInfo from "./seeInfo.vue";
 import {PHONE} from '@/constant/REG'
 import { getApp } from "@/app";
+import { getRoke } from '@/util'
 import {
   getTreeselect,
   delTreeitem,
@@ -181,7 +182,8 @@ export default {
     const seeDetail = (val) => {
       // console.log('seeDetail',getApp().$refs)
       // getApp().$refs.treeBox.setCurrentKey(user.info.id)
-      console.log("getApp().$ref", getApp().$refs);
+      data.treedata
+      console.log("val,data", val,data);
       data.seeData = {
         superior: val.order,
         ...val,
@@ -244,6 +246,7 @@ export default {
         };
       } else {
         data.detailType = "新增";
+        data.superiorValue = [];
         data.detail = {};
       }
       console.log("insertProject", val,data.superiorValue);
@@ -299,7 +302,7 @@ export default {
       // treedata,
       ...toRefs(data),
       // ...toRefs(state),
-      user,
+      user,getRoke,
       handleNodeClick,
       loadNode,
       insertProject,

+ 12 - 3
src/view/role/index.vue

@@ -20,8 +20,7 @@
 
     <div class="body-layer" style="padding-top: 8px">
       <div class="body-but">
-        <el-button type="primary" @click="()=>{newAddclick(null,'新增')}">新增角色</el-button>
-        <!-- <h3 style="visibility: hidden;">用户列表</h3> -->
+        <el-button type="primary" :disabled="getRoke('add')" @click="()=>{newAddclick(null,'新增')}">新增角色</el-button>
       </div>
 
       <el-table
@@ -53,7 +52,7 @@
             <span class="oper-span" @click="()=>{newAddclick(row.id,'查看')}" v-power="'view'"
               >查看</span
             >
-            <span class="oper-span" @click="()=>{newAddclick(row.id,'编辑')}" v-power="'edit'"
+            <span class="oper-span" :class="{disable:editDisable(row)}" @click="()=>{newAddclick(row.id,'编辑')}" v-power="'edit'"
               >编辑</span
             >
             <!-- v-if="auth.delete" -->
@@ -166,6 +165,7 @@ import comCompany from "@/components/company-select";
 import comPagination from "@/components/pagination";
 import auth from "@/state/viewAuth";
 import user from "@/state/user";
+import { getRoke } from '@/util'
 import axios from "axios";
 import { ADMIN_USER_ID } from "@/constant";
 import {
@@ -255,6 +255,7 @@ export default {
       operateType:'新增',
       deptIdList: [],
       radio: 1,
+      roleLevel:sessionStorage.getItem('roleLevel'),
       radioData: {},
       nodekey: "",
       selectShow: false,
@@ -291,9 +292,17 @@ export default {
       ADMIN_USER_ID,
       roleKey,
       newAddclick,
+      getRoke,
     };
   },
   methods: {
+    editDisable(row){
+      let disable = false
+      if(row.type == 0 && this.roleLevel != 1){
+        disable = true
+      }
+      return disable
+    },
     //@check事件
     handleClick(data, checked) {
       console.log(checked);

+ 4 - 3
src/view/user/index.vue

@@ -27,7 +27,7 @@
 
     <div class="body-layer" style="padding-top: 8px">
       <div class="body-but">
-          <el-button type="primary" @click="newAddclick">新增用户</el-button>
+          <el-button type="primary" :disabled="getRoke('add')" @click="newAddclick">新增用户</el-button>
         <!-- <h3 style="visibility: hidden;">用户列表</h3> -->
       </div>
 
@@ -185,9 +185,9 @@ import roleCompany from "@/components/role-select";
 import auth from "@/state/viewAuth";
 import user from "@/state/user";
 import axios from "axios";
-// import { encryption } from "@/util";
 import {PHONE,EPSW} from '@/constant/REG'
 import { ADMIN_USER_ID } from "@/constant";
+import { getRoke } from '@/util'
 
 import { getTreeselect,getUserList, updateUser, deleUser, changeUserStatus,userAdd,userEdit } from "@/request/config";
 import { getApp } from "../../app";
@@ -280,7 +280,8 @@ export default {
       operRoleId,
       ADMIN_USER_ID,
       roleKey,
-      newAddclick
+      newAddclick,
+      getRoke
     };
   },
   methods: {

+ 5 - 5
src/view/vrmodel/index.vue

@@ -24,7 +24,7 @@
     <div class="body-head">
       <h3 style="visibility: hidden;">场景管理</h3>
       <div class="table-ctrl-right">
-        <el-button type="primary" v-power="'sync'" v-if="auth.delete" @click="asynccj">同步场景</el-button>
+        <el-button type="primary" v-power="'sync'" :disabled="getRoke('sync')"  @click="asynccj">同步场景</el-button>
       </div>
     </div>
 
@@ -52,9 +52,9 @@
       >
       <el-table-column label="操作" v-slot:default="{ row }">
         <span class="oper-span" v-power="'view'" @click="shareHandle(row)">查看</span>
-        <span class="oper-span" :class="{disable:butisShow}" v-power="'edit'" @click="editModel(row)">编辑</span>
+        <span class="oper-span" :class="{disable:!butisShow}" v-power="'edit'" @click="editModel(row)">编辑</span>
         <span class="oper-span" @click="download(row)" v-if="row.num" >下载</span>
-        <span :class="butisShow?'disable oper-span':'oper-span'" v-power="'del'" @click="dataList.delete(row)" style="color: var(--primaryColor)"  >删除</span
+        <span :class="!butisShow?'disable oper-span':'oper-span'" v-power="'del'" @click="dataList.delete(row)" style="color: var(--primaryColor)"  >删除</span
         >
       </el-table-column>
     </el-table>
@@ -167,7 +167,7 @@ import comDialog from "@/components/dialog";
 import comPagination from "@/components/pagination";
 import comCompany from "@/components/company-select";
 import { getApp } from '@/app'
-import { dateFormat } from '@/util'
+import { dateFormat,getRoke } from '@/util'
 import { ADMIN_USER_ID } from '@/constant'
 import {
   getSceneList,
@@ -227,7 +227,7 @@ export default {
       asyncSceneCompany.value || state.dataList.value.refer()
     })
 
-    return { ...state,butisShow, headList, currModel, time, auth, editCompany, cameras, cameraCompany, asyncSceneCompany, user,cameraDownload,ADMIN_USER_ID };
+    return { ...state,butisShow, headList, currModel, time, auth, editCompany, cameras, cameraCompany, asyncSceneCompany, user,cameraDownload,ADMIN_USER_ID,getRoke };
   },
   created(){
       let list = {