Преглед на файлове

usePermission 增加权限取反操作

cc12458 преди 8 месеца
родител
ревизия
ac2fd669b0
променени са 3 файла, в които са добавени 10 реда и са изтрити 6 реда
  1. 3 2
      src/core/usePermission.ts
  2. 4 2
      src/pages/index/care/serviceItems.vue
  3. 3 2
      src/pages/index/patient/history.vue

+ 3 - 2
src/core/usePermission.ts

@@ -2,13 +2,14 @@ import type { ComputedRef } from 'vue';
 import { useAccountStore } from '@/stores';
 import { storeToRefs } from 'pinia';
 
-export function usePermission(code: string | string[]): ComputedRef<boolean> {
+export function usePermission(code: string | string[], not = false): ComputedRef<boolean> {
   const store = useAccountStore();
   const { permission } = storeToRefs(store);
 
   const codes = Array.isArray(code) ? code : code.split('|');
   return computed(() => {
     if (!permission.value.length || !codes.length) return true;
-    return codes.some((value) => permission.value.includes(value));
+    const value = codes.some((value) => permission.value.includes(value));
+    return not ? !value : value;
   });
 }

+ 4 - 2
src/pages/index/care/serviceItems.vue

@@ -1,5 +1,6 @@
 <script setup lang="ts">
-import { ref, shallowReactive, defineAsyncComponent } from 'vue';
+import { ref, unref, shallowReactive, defineAsyncComponent } from 'vue';
+import { usePermission } from '@/core/usePermission';
 
 const panels = shallowReactive([
   {
@@ -16,8 +17,9 @@ const panels = shallowReactive([
     id: 'service-items-system',
     title: '系统项目',
     component: defineAsyncComponent(() => import('@/service/ServiceItemsSystem.vue')),
+    hide: usePermission('fdhb:service_items_system:list', true),
   },
-]);
+].filter(item => !unref(item.hide)));
 
 const activePanel = ref(panels[0].id);
 const panelRef = ref<any[]>([]);

+ 3 - 2
src/pages/index/patient/history.vue

@@ -9,6 +9,7 @@ import { list2Groups } from '@/tools/data';
 import { VxeButton, type VxeFormListeners, type VxeFormProps, VxeUI } from 'vxe-pc-ui';
 import type { VxeGridInstance, VxeGridListeners, VxeGridProps } from 'vxe-table';
 
+import { usePermission } from '@/core/usePermission';
 import ReportAnalysisCountEdit from '@/components/ReportAnalysisCountEdit.vue';
 import PatientEdit from '@/components/PatientEdit.vue';
 import PatientTagEdit from '@/components/PatientTagEdit.vue';
@@ -131,8 +132,8 @@ const gridOptions = reactive<VxeGridProps<PatientReportModel>>({
           { content: '查看', status: 'primary', name: 'previewPatientHistoryRecord' },
           { content: '充值', status: 'primary', name: 'resetPatientAnalysisCount' },
           { content: '标签', status: 'primary', name: 'editPatientTags' },
-          { content: '调养', status: 'primary', name: 'carePatient' },
-        ],
+          { content: '调养', status: 'primary', name: 'carePatient', hide: usePermission('fdhb:patient:conditioning:create', true) },
+        ].filter(item => !unref(item.hide)),
         events: {
           click({ row, rowIndex }, { name }) {
             let method;