Files
vue-element-plus-admin/src/views/Authorization/User.vue
SVDBG fe6dbbdb3e 我发现在使用权限管理面板时,面板一直停留在加载界面,查看源代码后发现:组件在接收res结果后改变响应式变量loading的值。
纠正上面的错误后,发现getUserListApi获取的用户列表信息res内部格式与实际得到的假数据不符合,导致无法正常赋值,也就是说res此时为空,所以我在getUserListApi更改预期获取的结果格式。
通过以上的修正操作,这样就可以正常显示获取到的假数据了。
2023-03-04 16:02:05 +08:00

91 lines
1.9 KiB
Vue

<script setup lang="ts">
import { ContentWrap } from '@/components/ContentWrap'
import { useI18n } from '@/hooks/web/useI18n'
import { Table } from '@/components/Table'
import { getUserListApi } from '@/api/login'
import { UserType } from '@/api/login/types'
import { ref, h } from 'vue'
import { ElButton } from 'element-plus'
import { TableColumn, TableSlotDefault } from '@/types/table'
interface Params {
pageIndex?: number
pageSize?: number
}
const { t } = useI18n()
const columns: TableColumn[] = [
{
field: 'index',
label: t('userDemo.index'),
type: 'index'
},
{
field: 'username',
label: t('userDemo.username')
},
{
field: 'password',
label: t('userDemo.password')
},
{
field: 'role',
label: t('userDemo.role')
},
{
field: 'remark',
label: t('userDemo.remark'),
formatter: (row: UserType) => {
return h(
'span',
row.username === 'admin' ? t('userDemo.remarkMessage1') : t('userDemo.remarkMessage2')
)
}
},
{
field: 'action',
label: t('userDemo.action')
}
]
const loading = ref(true)
let tableDataList = ref<UserType[]>([])
const getTableList = async (params?: Params) => {
const res = await getUserListApi({
params: params || {
pageIndex: 1,
pageSize: 10
}
})
// .catch(() => {})
// .finally(() => {
// loading.value = false
// })
if (res) {
tableDataList.value = res.data.list
loading.value = false
}
}
getTableList()
const actionFn = (data: TableSlotDefault) => {
console.log(data)
}
</script>
<template>
<ContentWrap :title="t('userDemo.title')" :message="t('userDemo.message')">
<Table :columns="columns" :data="tableDataList" :loading="loading" :selection="false">
<template #action="data">
<ElButton type="primary" @click="actionFn(data as TableSlotDefault)">
{{ t('tableDemo.action') }}
</ElButton>
</template>
</Table>
</ContentWrap>
</template>