|
|
@@ -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
|