Commit 074484ef authored by tyyin lan's avatar tyyin lan

feat: 个人空间知识库新增过滤

parent 2edde7ad
......@@ -8,8 +8,13 @@ import qs from 'qs'
* @query search 搜索值
* @returns 获取知识库列表
*/
export function fetchGetKnowledgeList<T>(trainStatus: string, search: string, payload: object) {
return request.post<T>(`/knowledgeRest/getKnowledgeList.json?trainStatus=${trainStatus}&search=${search}`, payload)
export function fetchGetKnowledgeList<T>(
params: { trainStatus: string; search: string; knowledgeOwner?: string },
payload: object,
) {
return request.post<T>('/knowledgeRest/getKnowledgeList.json', payload, {
params,
})
}
/**
......
......@@ -100,9 +100,15 @@ async function handleGetKnowledgeList() {
paginationData.pageSize = 999999
knowledgeListLoading.value = true
const res = await fetchGetKnowledgeList<KnowledgeItem[]>(TrainStatus.COMPLETE, searchKnowledgeInputValue.value, {
const res = await fetchGetKnowledgeList<KnowledgeItem[]>(
{
trainStatus: TrainStatus.COMPLETE,
search: searchKnowledgeInputValue.value,
},
{
pagingInfo: paginationData,
})
},
)
if (res.code === 0) {
knowledgeList.value = res.data
......
......@@ -8,6 +8,7 @@ const t = i18n.global.t
export function createKnowledgeColumn(
handleKnowledgeTableAction: (actionType: string, knowledgeId: number, KnowledgeItem?: KnowledgeItem) => void,
currentUserMemberId?: string | number | null,
) {
return [
{
......@@ -81,10 +82,12 @@ export function createKnowledgeColumn(
},
width: 150,
render(row: KnowledgeItem) {
const isOwner = String(currentUserMemberId || '') === String(row.memberId || '')
return (
<NSwitch
value={row.isOpen === 'Y'}
onUpdateValue={() => handleKnowledgeTableAction('updateOpen', row.id, row)}
disabled={!isOwner}
onUpdateValue={isOwner ? () => handleKnowledgeTableAction('updateOpen', row.id, row) : undefined}
/>
)
},
......@@ -99,6 +102,10 @@ export function createKnowledgeColumn(
width: 190,
fixed: 'right',
render(row: KnowledgeItem) {
const isOwner = String(currentUserMemberId || '') === String(row.memberId || '')
const deleteClassName = isOwner
? 'text-error-font-color mr-5 cursor-pointer hover:opacity-80'
: 'text-gray-font-color pointer-events-none mr-5 cursor-not-allowed'
return (
<div>
<span
......@@ -108,8 +115,8 @@ export function createKnowledgeColumn(
{t('common_module.data_table_module.view')}
</span>
<span
className='text-error-font-color mr-5 cursor-pointer hover:opacity-80'
onClick={() => handleKnowledgeTableAction('delete', row.id)}
className={deleteClassName}
onClick={isOwner ? () => handleKnowledgeTableAction('delete', row.id) : undefined}
>
{t('common_module.data_table_module.delete')}
</span>
......
......@@ -10,6 +10,7 @@ import CustomPagination from '@/components/custom-pagination/custom-pagination.v
import useTableScrollY from '@/composables/useTableScrollY.ts'
import { usePagination } from '@/composables/usePagination.ts'
import { fetchDelKnowledgeById, fetchEnableKnowledgeInfo, fetchGetKnowledgeList } from '@/apis/knowledge.ts'
import { useUserStore } from '@/store/modules/user'
const { t } = useI18n()
......@@ -20,13 +21,15 @@ const knowledgeListTableRef = useTemplateRef<DataTableInst>('knowledgeListTableR
const { pageContentWrapRef, tableContentY } = useTableScrollY(48 + 32 + 16 + 16 + 28)
const { paginationData, handlePageNoChange, handlePageSizeChange } = usePagination()
const knowledgeColumns = createKnowledgeColumn(handleClickKnowledgeTableAction)
const userStore = useUserStore()
const knowledgeColumns = createKnowledgeColumn(handleClickKnowledgeTableAction, userStore.userInfo.memberId)
const knowledgeListTableLoading = ref(false)
const knowledgeList = ref<KnowledgeItem[]>([])
const searchKnowledgeInputValue = ref('')
const isSearchEmptyList = ref(false)
const knowledgeOwnerValue = ref<'全部' | '集团' | '部门' | '个人'>('全部')
const isLoadingPagination = computed(() => {
return tableContentY.value > 0
......@@ -41,6 +44,12 @@ watch([() => paginationData.pageNo, () => paginationData.pageSize], () => {
knowledgeListTableRef.value?.scrollTo({ top: 0, behavior: 'smooth' })
})
watch(knowledgeOwnerValue, () => {
paginationData.pageNo = 1
handleGetKnowledgeList()
knowledgeListTableRef.value?.scrollTo({ top: 0, behavior: 'smooth' })
})
onMounted(async () => {
await handleGetKnowledgeList()
})
......@@ -48,9 +57,16 @@ onMounted(async () => {
async function handleGetKnowledgeList() {
knowledgeListTableLoading.value = true
const res = await fetchGetKnowledgeList<KnowledgeItem[]>('', searchKnowledgeInputValue.value, {
const res = await fetchGetKnowledgeList<KnowledgeItem[]>(
{
trainStatus: '',
search: searchKnowledgeInputValue.value,
knowledgeOwner: knowledgeOwnerValue.value === '全部' ? '' : knowledgeOwnerValue.value,
},
{
pagingInfo: paginationData,
})
},
)
if (res.code === 0) {
knowledgeList.value = res.data
......@@ -112,7 +128,13 @@ function handleSearchKnowledge() {
<template>
<div ref="pageContentWrapRef" class="h-full">
<div class="mb-4 flex justify-end">
<div class="mb-4 flex items-center justify-between">
<NRadioGroup v-model:value="knowledgeOwnerValue" size="small">
<NRadioButton value="全部">全部</NRadioButton>
<NRadioButton value="集团">集团</NRadioButton>
<NRadioButton value="部门">部门</NRadioButton>
<NRadioButton value="个人">个人</NRadioButton>
</NRadioGroup>
<NInput
v-model:value="searchKnowledgeInputValue"
:placeholder="t('personal_space_module.knowledge_module.search_knowledge_placeholder')"
......
......@@ -15,6 +15,7 @@ export interface KnowledgeItem {
isOpen: 'Y' | 'N'
createdTime: Date
documentInfos: KnowledgeDocumentItem[]
memberId: string
}
export interface SegmentationConfigInterface {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment