| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- import { makeAutoObservable } from 'mobx';
- import { message } from 'antd';
- import { apis, CreateOrModifyKnowledgeLibApiParams } from '@/apis';
- import { State, ReadonlyState, StateAction, KnowledgeLibListStore } from './types';
- // 定义状态
- const stateGenerator = (): ReadonlyState => ({
- listLoading: false,
- list: [],
- infoModalId: '',
- infoModalOpen: false,
- page: {
- pageNumber: 1,
- pageSize: 10,
- total: 0,
- },
- });
- // 修改状态
- const stateActionsGenerator = (state: State): StateAction => {
- return {
- setListLoading: (loading) => {
- state.listLoading = loading;
- },
- setList: (list) => {
- state.list = list;
- },
- setInfoModalId: (id) => {
- state.infoModalId = id;
- },
- setInfoModalOpen: (open) => {
- state.infoModalOpen = open;
- },
- setPage: (page) => {
- state.page = page;
- },
- };
- };
- // 使用仓库
- const useKnowledgeLibListStore = (): KnowledgeLibListStore => {
- const state = makeAutoObservable(stateGenerator());
- const actions = stateActionsGenerator(state);
- const api = {
- // 获取知识库列表
- fetchKnowledgeLibList: async () => {
- actions.setListLoading(true);
- try {
- const data = {
- pageNumber: state.page.pageNumber,
- pageSize: state.page.pageSize,
- };
- const res = await apis.fetchTakaiKnowledgeLibList(data);
- console.log(res, 'res');
- actions.setList(res.rows);
- actions.setPage({
- ...state.page,
- total: res.total,
- });
- } catch (error: any) {
- console.error(error);
- } finally {
- actions.setListLoading(false);
- }
- },
- // 创建知识库
- createKnowledgeLib: async (data: CreateOrModifyKnowledgeLibApiParams) => {
- actions.setListLoading(true);
- try {
- const res =await apis.createTakaiKnowledgeLib(data);
- // 获取知识库列表
- api.fetchKnowledgeLibList();
- if(res.data === 1 && res.code === 200){
- message.success('创建成功');
- }else{
- message.error('创建失败');
- }
- } catch (error: any) {
- message.error(error.msg);
- }finally{
- actions.setListLoading(false);
- }
- },
- // 修改知识库
- modifyKnowledgeLib: async (knowledgeId: string, data: CreateOrModifyKnowledgeLibApiParams) => {
- try {
- const res = await apis.modifyTakaiKnowledgeLib(knowledgeId, data);
- // 获取知识库列表
- api.fetchKnowledgeLibList();
- if(res.data === 1 && res.code === 200){
- message.success('修改成功');
- }else{
- message.error('修改失败');
- }
- } catch (error: any) {
- message.error(error.msg);
- }
- },
- // 删除知识库
- deleteKnowledgeLib: async (knowledgeId: string) => {
- try {
- const res = await apis.deleteTakaiKnowledgeLib(knowledgeId);
- // 获取知识库列表
- api.fetchKnowledgeLibList();
- if(res.data === 1 && res.code === 200){
- message.success('删除成功');
- }else{
- message.error('删除失败');
- }
- } catch (error: any) {
- message.error(error.msg);
- }
- },
- }
- // 更改分页
- const onChangePagination: KnowledgeLibListStore['onChangePagination'] = async (pageNumber, pageSize) => {
- actions.setPage({
- ...state.page,
- pageNumber: pageNumber,
- pageSize: pageSize,
- });
- // 获取知识库列表
- await api.fetchKnowledgeLibList();
- }
- // 点击创建
- const onClickCreate: KnowledgeLibListStore['onClickCreate'] = () => {
- const initialInfoModalId = stateGenerator().infoModalId;
- actions.setInfoModalId(initialInfoModalId);
- actions.setInfoModalOpen(true);
- }
- // 点击修改
- const onClickModify: KnowledgeLibListStore['onClickModify'] = (knowledgeId) => {
- actions.setInfoModalId(knowledgeId);
- actions.setInfoModalOpen(true);
- }
- // 信息弹出层-点击确定
- const infoModalOnClickConfirm: KnowledgeLibListStore['infoModalOnClickConfirm'] = async (knowledgeId, data) => {
- const initialInfoModalOpen = stateGenerator().infoModalOpen;
- actions.setInfoModalOpen(initialInfoModalOpen);
- if (knowledgeId) {
- // 修改知识库
- await api.modifyKnowledgeLib(knowledgeId, data);
- } else {
- // 创建知识库
- await api.createKnowledgeLib(data);
- }
- }
- // 信息弹出层-点击取消
- const infoModalOnClickCancel: KnowledgeLibListStore['infoModalOnClickCancel'] = () => {
- const initialInfoModalOpen = stateGenerator().infoModalOpen;
- actions.setInfoModalOpen(initialInfoModalOpen);
- }
- // 点击删除
- const onClickDelete: KnowledgeLibListStore['onClickDelete'] = async (knowledgeId) => {
- // 删除知识库
- await api.deleteKnowledgeLib(knowledgeId);
- }
- // 初始渲染
- const init: KnowledgeLibListStore['init'] = async () => {
- // 获取知识库列表
- await api.fetchKnowledgeLibList();
- }
- // 状态重置
- const reset: KnowledgeLibListStore['reset'] = () => {
- const initialListLoading = stateGenerator().listLoading;
- const initialList = stateGenerator().list;
- const initialInfoModalId = stateGenerator().infoModalId;
- const initialInfoModalOpen = stateGenerator().infoModalOpen;
- const initialPage = stateGenerator().page;
- actions.setListLoading(initialListLoading);
- actions.setList(initialList);
- actions.setInfoModalId(initialInfoModalId);
- actions.setInfoModalOpen(initialInfoModalOpen);
- actions.setPage(initialPage);
- }
- return {
- state,
- onChangePagination,
- onClickCreate,
- onClickModify,
- infoModalOnClickConfirm,
- infoModalOnClickCancel,
- onClickDelete,
- init,
- reset
- };
- };
- export default useKnowledgeLibListStore();
|