in dolphinscheduler-ui/src/views/security/user-manage/use-table.ts [24:112]
export function useTable() {
const state = reactive({
page: 1,
pageSize: 10,
itemCount: 0,
searchVal: '',
list: [],
loading: false,
currentRecord: {} as IRecord | null,
authorizeType: 'authorize_project' as TAuthType,
detailModalShow: false,
authorizeModalShow: false,
passwordModalShow: false
})
const getList = async () => {
if (state.loading) return
state.loading = true
const { totalList, total } = await queryUserList({
pageNo: state.page,
pageSize: state.pageSize,
searchVal: state.searchVal
})
state.loading = false
if (!totalList) throw Error()
state.list = totalList.map((record: IRecord) => {
record.createTime = record.createTime
? format(parseTime(record.createTime), 'yyyy-MM-dd HH:mm:ss')
: ''
record.updateTime = record.updateTime
? format(parseTime(record.updateTime), 'yyyy-MM-dd HH:mm:ss')
: ''
record.tenantId = record.tenantId === 0 ? null : record.tenantId
return record
})
state.itemCount = total
}
const updateList = () => {
if (state.list.length === 1 && state.page > 1) {
--state.page
}
getList()
}
const deleteUser = async (userId: number) => {
await delUserById({ id: userId })
updateList()
}
const onOperationClick = (
data: { rowData: IRecord; key?: TAuthType },
type: 'authorize' | 'edit' | 'delete' | 'resetPassword'
) => {
state.currentRecord = data.rowData
if (type === 'edit') {
state.detailModalShow = true
}
if (type === 'authorize' && data.key) {
state.authorizeModalShow = true
state.authorizeType = data.key
}
if (type === 'delete') {
deleteUser(data.rowData.id)
}
if (type === 'resetPassword') {
state.passwordModalShow = true
}
}
const changePage = (page: number) => {
state.page = page
getList()
}
const changePageSize = (pageSize: number) => {
state.page = 1
state.pageSize = pageSize
getList()
}
onMounted(() => {
getList()
})
return { state, changePage, changePageSize, updateList, onOperationClick }
}