Prechádzať zdrojové kódy

fix(bugs): 相机的企业搜索隐藏

tangning 3 rokov pred
rodič
commit
4422502d75

+ 3 - 0
src/enums/cacheEnum.ts

@@ -9,6 +9,9 @@ export const USER_INFO_KEY = 'USER__INFO__';
 // role info key
 export const ROLES_KEY = 'ROLES__KEY__';
 
+// perm info key
+export const PERM_KEY = 'PERM__KEY__';
+
 // project config key
 export const PROJ_CFG_KEY = 'PROJ__CFG__KEY__';
 

+ 1 - 0
src/locales/lang/zh-CN/common.ts

@@ -40,4 +40,5 @@ export default {
   mobile: '手机',
   phone: '请填写您的手机号码!',
   phoneError: '请正确填写您的手机号码!',
+  staffPhoneError: '请正确填写您的企业账户!',
 };

+ 13 - 2
src/store/modules/user.ts

@@ -4,7 +4,7 @@ import { defineStore } from 'pinia';
 import { store } from '/@/store';
 import { RoleEnum } from '/@/enums/roleEnum';
 import { PageEnum } from '/@/enums/pageEnum';
-import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
+import { ROLES_KEY, PERM_KEY, TOKEN_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
 import { getAuthCache, setAuthCache } from '/@/utils/auth';
 import { GetUserInfoModel, LoginParams } from '/@/api/sys/model/userModel';
 // doLogout
@@ -23,6 +23,7 @@ interface UserState {
   userInfo: Nullable<UserInfo>;
   token?: string;
   roleList: RoleEnum[];
+  permList: number[];
   sessionTimeout?: boolean;
   lastUpdateTime: number;
 }
@@ -36,6 +37,7 @@ export const useUserStore = defineStore({
     token: undefined,
     // roleList
     roleList: [],
+    permList: [],
     // Whether the login expired
     sessionTimeout: false,
     // Last fetch time
@@ -54,6 +56,9 @@ export const useUserStore = defineStore({
     getRoleList(): RoleEnum[] {
       return this.roleList.length > 0 ? this.roleList : getAuthCache<RoleEnum[]>(ROLES_KEY);
     },
+    getPermList(): number[] {
+      return this.permList.length > 0 ? this.permList : getAuthCache<number[]>(PERM_KEY);
+    },
     getSessionTimeout(): boolean {
       return !!this.sessionTimeout;
     },
@@ -72,6 +77,11 @@ export const useUserStore = defineStore({
       console.log('setRoleList', roleList);
       setAuthCache(ROLES_KEY, roleList);
     },
+    setPermList(permList: number[]) {
+      this.permList = permList;
+      console.log('setPermList', permList);
+      setAuthCache(PERM_KEY, permList);
+    },
     setUserInfo(info: UserInfo | null) {
       this.userInfo = info;
       this.lastUpdateTime = new Date().getTime();
@@ -137,7 +147,8 @@ export const useUserStore = defineStore({
       const userId: number = id || Number(this.getUserInfoCache.id);
       // debugger;
       const userInfo = await getUserInfo(userId);
-      const { roleIdList = [] } = userInfo;
+      const { roleIdList = [], permList = [] } = userInfo;
+      isArray(roleIdList) && this.setPermList(permList);
       if (isArray(roleIdList)) {
         const roleList = roleIdList.map((item) => {
           switch (item) {

+ 2 - 0
src/utils/cache/persistent.ts

@@ -8,6 +8,7 @@ import {
   TOKEN_KEY,
   USER_INFO_KEY,
   ROLES_KEY,
+  PERM_KEY,
   LOCK_INFO_KEY,
   PROJ_CFG_KEY,
   APP_LOCAL_CACHE_KEY,
@@ -22,6 +23,7 @@ interface BasicStore {
   [TOKEN_KEY]: string | number | null | undefined;
   [USER_INFO_KEY]: UserInfo;
   [ROLES_KEY]: string[];
+  [PERM_KEY]: string[];
   [LOCK_INFO_KEY]: LockInfo;
   [PROJ_CFG_KEY]: ProjectConfig;
   [MULTIPLE_TABS_KEY]: RouteLocationNormalized[];

+ 22 - 44
src/views/rightsEnterprises/camera.vue

@@ -159,50 +159,28 @@
       const searchForm: Partial<FormProps> = {
         labelWidth: 100,
         schemas: [
-          {
-            field: 'staffName',
-            label: t('routes.rightsEnterprises.companyName'),
-            component: 'Input',
-            componentProps: {
-              maxLength: 15,
-            },
-            colProps: {
-              span: 6,
-            },
-          },
-          {
-            field: 'staffPhone',
-            label: t('routes.corporation.enterpriseId'),
-            component: 'Input',
-            componentProps: {
-              maxLength: 15,
-            },
-            colProps: {
-              span: 6,
-            },
-            rules: [
-              {
-                required: false,
-                // @ts-ignore
-                validator: async (rule, value) => {
-                  var reg_tel =
-                    /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
-                  // var reg = /\S+@\S+\.\S+/;
-                  if (!value) {
-                    /* eslint-disable-next-line */
-
-                    return Promise.reject(t('common.phone'));
-                  }
-                  if (!reg_tel.test(value)) {
-                    /* eslint-disable-next-line */
-                    return Promise.reject(t('common.phoneError'));
-                  }
-                  return Promise.resolve();
-                },
-                trigger: 'change',
-              },
-            ],
-          },
+          // {
+          //   field: 'staffName',
+          //   label: t('routes.rightsEnterprises.companyName'),
+          //   component: 'Input',
+          //   componentProps: {
+          //     maxLength: 15,
+          //   },
+          //   colProps: {
+          //     span: 6,
+          //   },
+          // },
+          // {
+          //   field: 'staffPhone',
+          //   label: t('routes.corporation.enterpriseId'),
+          //   component: 'Input',
+          //   componentProps: {
+          //     maxLength: 15,
+          //   },
+          //   colProps: {
+          //     span: 6,
+          //   },
+          // },
           {
             field: 'snCode',
             label: t('routes.rightsEnterprises.snCodeText'),

+ 4 - 4
src/views/scenes/live.vue

@@ -4,7 +4,7 @@
       <template #toolbar>
         <a-button
           type="primary"
-          v-show="!getCheckRole(['host', 'tourist', 'company_viewer'])"
+          v-show="!getCheckRole(['host', 'tourist', 'company_viewer']) && permList.includes(1)"
           @click="handleAddLiveScene"
         >
           新增</a-button
@@ -54,7 +54,7 @@
   </div>
 </template>
 <script lang="ts">
-  import { defineComponent } from 'vue';
+  import { defineComponent, computed } from 'vue';
   import {
     BasicTable,
     useTable,
@@ -86,7 +86,7 @@
       const [registerBindModal, { openModal: openBindModal }] = useModal();
 
       const [registerLiveDrawer, { openDrawer: openLiveDrawer }] = useDrawer();
-
+      const permList = computed(() => userStore.getPermList);
       const columns: BasicColumn[] = [
         {
           title: 'ID',
@@ -298,7 +298,7 @@
         t,
         registerBindModal,
         handleBindAnchor,
-
+        permList,
         reload,
         registerLiveDrawer,
         handleAddLiveScene,

+ 1 - 0
types/store.d.ts

@@ -53,6 +53,7 @@ export interface UserInfo {
   nickName: string;
   phone: string;
   roleIdList: number[];
+  permList: number[];
   roleList: string;
   roleName: string;
   state: string;