wuyi 1 anno fa
parent
commit
0f6fd63fd2
3 ha cambiato i file con 25 aggiunte e 4 eliminazioni
  1. 8 0
      src/main.js
  2. 14 2
      src/views/MainView.vue
  3. 3 2
      src/views/TaskView.vue

+ 8 - 0
src/main.js

@@ -25,4 +25,12 @@ app.provide(
     })
 )
 
+app.provide(
+    'isAdminOrApi',
+    computed(() => {
+        if (!(user.value && user.value.roles)) return false
+        return user.value.roles.includes('admin') || user.value.roles.includes('api')
+    })
+)
+
 app.mount('#app')

+ 14 - 2
src/views/MainView.vue

@@ -15,11 +15,12 @@
                 <el-breadcrumb separator="/">
                     <el-breadcrumb-item :to="{ path: '/' }">主页</el-breadcrumb-item>
                     <el-breadcrumb-item v-if="route.name !== 'home'"
-                        >{{ route.meta?.title || route.path }}
+                    >{{ route.meta?.title || route.path }}
                     </el-breadcrumb-item>
                 </el-breadcrumb>
                 <div class="grow"></div>
-                <div class="mr-8 text-sm text-neutral-600 dark:text-neutral-400 invisible md:visible" v-if="user.roles.includes('user')">
+                <div class="mr-8 text-sm text-neutral-600 dark:text-neutral-400 invisible md:visible"
+                     v-if="user.roles.includes('user')">
                     已发送: {{ user.send }}, 余额: {{ user.balance }}
                 </div>
                 <DarkSwitch class="mr-4" />
@@ -142,6 +143,17 @@ if (roles.includes('admin')) {
             title: '主页',
             icon: Home
         },
+        {
+            name: 'rcs-parent',
+            title: 'RCS管理',
+            icon: DeviceMobileMessage,
+            children: [
+                {
+                    name: '/task',
+                    title: '任务列表'
+                }
+            ]
+        },
         {
             name: 'user-parent',
             title: '用户管理',

+ 3 - 2
src/views/TaskView.vue

@@ -63,7 +63,7 @@
                                     排队状态
                                 </ElButton>
                                 <ElButton type="primary" size="small" @click="detail(row)">详情</ElButton>
-                                <ElButton type="primary" size="small" @click="onEdit(row)" v-if="isAdmin">
+                                <ElButton type="primary" size="small" @click="onEdit(row)" v-if="isAdminOrApi">
                                     编辑
                                 </ElButton>
                                 <ElButton
@@ -78,7 +78,7 @@
                                     type="primary"
                                     size="small"
                                     @click="pause(row)"
-                                    v-if="isAdmin && row.status === 'pending'"
+                                    v-if="isAdminOrApi && row.status === 'pending'"
                                 >
                                     暂停
                                 </ElButton>
@@ -268,6 +268,7 @@ import ExpandItem from '@/components/ExpandItem.vue'
 const { user } = storeToRefs(useUserStore())
 const where = ref({})
 const isAdmin = inject('isAdmin')
+const isAdminOrApi = inject('isAdminOrApi')
 const timeFormatter = useTimeFormatter()
 const table = ref(null)
 const model = ref({