Explorar el Código

feat: 对接 role management

sheldon hace 1 mes
padre
commit
d565f74262
Se han modificado 3 ficheros con 33 adiciones y 16 borrados
  1. 1 1
      src/api/index.ts
  2. 31 14
      src/views/role-management/index.vue
  3. 1 1
      themes/index.ts

+ 1 - 1
src/api/index.ts

@@ -91,7 +91,7 @@ api.interceptors.response.use(
         }
       }
       else {
-        useUserStore().requestLogout()
+        // useUserStore().requestLogout()
       }
       return Promise.resolve(response.data)
     }

+ 31 - 14
src/views/role-management/index.vue

@@ -52,16 +52,11 @@ const updateUrlParams = (page: number, size: number) => {
 }
 
 
-const  handleCreate = ()=> {
-  router.push({
-    name: 'CharacterEdit',  // 使用路由名称跳转,更推荐
-    params: {
-      id: ''  // 传递角色ID
-    }
-  })
+const  handleRecommend = (id: string) => {
+
 }
 
-async function fetchList() {
+async function fetchData() {
   loading.value = true
   const res = await anycallPage({
     name: searchParams.value.name,
@@ -77,20 +72,20 @@ async function fetchList() {
 function handlePageChange(page: number) {
   pagination.value.page = page
   updateUrlParams(page, pagination.value.size)
-  fetchList()
+  fetchData()
 }
 
 function handleSizeChange(size: number) {
   pagination.value.size = size
   pagination.value.page = 1
   updateUrlParams(1, size)
-  fetchList()
+  fetchData()
 }
 
 function handleSearch () {
   pagination.value.page = 1 // 搜索时重置到第一页
   updateUrlParams(1, pagination.value.size)
-  fetchList()
+  fetchData()
 }
 
 function handleReset () {
@@ -99,7 +94,7 @@ function handleReset () {
   }
   pagination.value.page = 1 // 重置时重置到第一页
   updateUrlParams(1, pagination.value.size)
-  fetchList()
+  fetchData()
 }
 
 
@@ -114,14 +109,14 @@ watch(
     if (newPage !== pagination.value.page || newSize !== pagination.value.size) {
       pagination.value.page = newPage > 0 ? newPage : 1
       pagination.value.size = [10, 20, 50, 100].includes(newSize) ? newSize : 20
-      fetchList()
+      fetchData()
     }
   },
   { deep: true }
 )
 
 onMounted(async () => {
-  await fetchList()
+  await fetchData()
 })
 
 
@@ -135,6 +130,28 @@ onMounted(async () => {
         ref="tableRef" :data="dataList" stripe highlight-current-row border height="100%"
       >
         <ElTableColumn label="Role Name" prop="name" />
+        <ElTableColumn label="Avatar" prop="photo">
+          <template #default="{row}">
+            <ElImage :src="row.photo" fit="cover" class="w-12 h-12 rounded" />
+          </template>
+        </ElTableColumn>
+        <ElTableColumn label="callings" prop="callings" />
+        <ElTableColumn label="prompt" prop="prompt" min-width="340">
+          <template #default="{row}">
+            <ElTag type="info" v-for="(tag, index) in row.prompt.split(/\,|\,/)" :key="index" class="mb-1 mr-1">
+              <div :title="tag">{{ tag }}</div>
+            </ElTag>
+          </template>
+        </ElTableColumn>
+        <ElTableColumn label="Language" prop="language" />
+        <ElTableColumn label="voiceName" prop="voiceName" />
+        <ElTableColumn fixed="right" label="操作" min-width="200">
+          <template #default="{row}">
+            <ElButton link type="primary" size="small" @click="()=> handleRecommend(row.id)">
+              推荐
+            </ElButton>
+          </template>
+        </ElTableColumn>
       </ElTable>
       <div class="p-4">
         <ElPagination

+ 1 - 1
themes/index.ts

@@ -7,7 +7,7 @@ export const lightTheme = {
   '--card-foreground': '240 10% 3.9%',
   '--popover': '0 0% 100%',
   '--popover-foreground': '240 10% 3.9%',
-  '--primary': '240 5.9% 10%',
+  '--primary': '25, 100%, 50%',
   '--primary-foreground': '0 0% 98%',
   '--secondary': '240 4.8% 95.9%',
   '--secondary-foreground': '240 5.9% 10%',