Prechádzať zdrojové kódy

feat: 代理商订单权限调整

laiqi 11 mesiacov pred
rodič
commit
f46f18f87f

+ 1 - 1
apps/web-ele/src/components/permission-tree/index.vue

@@ -279,7 +279,7 @@ onMounted(() => {
             <template #node="{ value }">
               <div class="flex items-center gap-2">
                 <span class="text-sm">{{
-                  value.remark || value.menu_name
+                  `${value.menu_id}_${value.remark || value.menu_name}`
                 }}</span>
                 <ElTag
                   v-if="value.menu_type"

+ 9 - 0
apps/web-ele/src/views/order-manage/index.vue

@@ -8,6 +8,7 @@ import { h, onMounted, ref } from 'vue';
 
 import { Page, useVbenModal } from '@vben/common-ui';
 import { MdiCheckboxMultipleMarked, MdiDetail } from '@vben/icons';
+import { useUserStore } from '@vben/stores';
 
 // import { ElMessage, ElMessageBox, ElTag } from 'element-plus';
 import { ElTag } from 'element-plus';
@@ -22,6 +23,7 @@ import OrdersAuditForm from './audit-form.vue';
 import OrdersForm from './form.vue';
 
 const dealerOptions = ref<Array<{ label: string; value: string }>>([]);
+const userStore = useUserStore();
 
 const fetchDealerOptions = async () => {
   try {
@@ -76,11 +78,17 @@ const formOptions: VbenFormProps = {
       component: 'Select',
       fieldName: 'ordersuserid1',
       label: '经销商',
+      // 如果是代理商,设置默认值为当前用户的workeruserid
+      defaultValue: userStore.isDLS
+        ? userStore.userInfo?.workeruserid
+        : undefined,
       componentProps: {
         options: dealerOptions,
         placeholder: $t('ui.placeholder.select'),
         allowClear: true,
         filterable: true,
+        // 如果是代理商,禁用该字段
+        disabled: userStore.isDLS,
       },
     },
     {
@@ -305,6 +313,7 @@ function handleAudit(row: any) {
           effect="dark"
           content="审核"
           placement="top"
+          v-if="!userStore.isDLS"
         >
           <el-button
             round

+ 15 - 5
packages/stores/src/modules/user.ts

@@ -59,22 +59,32 @@ interface AccessState {
  * @zh_CN 用户信息相关
  */
 export const useUserStore = defineStore('core-user', {
+  state: (): AccessState => ({
+    userInfo: null,
+    userRoles: [],
+  }),
+  getters: {
+    // 是否代理商
+    isDLS(): boolean {
+      return this.userRoles.includes('49');
+    },
+    // 是否管理员
+    isSuperAdmin(): boolean {
+      return this.userRoles.includes('1');
+    },
+  },
   actions: {
     setUserInfo(userInfo: BasicUserInfo | null) {
       // 设置用户信息
       this.userInfo = userInfo;
       // 设置角色信息
-      const roles = userInfo?.roles ?? [];
+      const roles = userInfo?.grouplist.split(',') ?? [];
       this.setUserRoles(roles);
     },
     setUserRoles(roles: string[]) {
       this.userRoles = roles;
     },
   },
-  state: (): AccessState => ({
-    userInfo: null,
-    userRoles: [],
-  }),
 });
 
 // 解决热更新问题