/** * 知识库 */ import { Text, View, Image, ScrollView } from "@tarojs/components"; import PageCustom from "@/components/page-custom/index"; import NavBarNormal from "@/components/nav-bar-normal/index"; import BottomBar from "@/components/BottomBar"; import FigureListItem from "@/components/list/figure-list-item"; import IconEye from "@/components/icon/IconEye"; import IconA from "@/components/icon/IconA"; import IconQ from "@/components/icon/IconQ"; import WemetaSwitch from "@/components/wemeta-switch"; import { useEffect, useState } from "react"; import CardEditable from "@/components/card/card-editable/index"; import Taro, { useRouter, useDidShow } from "@tarojs/taro"; import { getMyKnowledgeDetail, getEntKnowledgeDetail, deleteKnowledgeQa, updateExactAnswer, deleteKnowledge, shareToEnt, } from "@/service/knowledge"; import { TKnowledgeDetail,TQAListItem } from "@/types/knowledge"; import { isSuccess } from "@/utils"; import { useModalStore } from "@/store/modalStore"; import style from "./index.module.less"; export default function Index() { const router = useRouter(); const { knowledgeId, entId } = router.params; const [checked, setChecked] = useState(false); const [detail, setDetail] = useState(null); const isEnt = (entId !== undefined) const { showModal } = useModalStore(); const handleEdit = (qaId: number | string) => { Taro.navigateTo({ url: `/pages/knowledge-item-editor/index?knowledgeId=${knowledgeId}&qaId=${qaId}&knowledgeTitle=${detail?.title}`, }); }; const shareKnowledgeToEnt = async (entId: string|number) => { await shareToEnt({ knowledgeIds: [knowledgeId], toEntId: entId, }) } const handleShare = async () => { }; // 删除问答项 const handleDeleteItem = async (qaId: number | string) => { if (!detail) { return; } showModal({ content: "确定删除该问答项吗?", onConfirm: async () => { const { status } = await deleteKnowledgeQa(detail.knowledgeId, qaId); if (isSuccess(status)) { Taro.showToast({ title: "删除成功", icon: "success" }); getDetail(detail.knowledgeId); } }, }); }; // 获取详情 const getDetail = async (knowledgeId: number) => { const response = !isEnt ? await getMyKnowledgeDetail(knowledgeId) : await getEntKnowledgeDetail(knowledgeId, entId); if (isSuccess(response.status) && response.data) { setDetail(response.data); setChecked(response.data.enableExactAnswer); } }; // 开启/关闭 精准问答模式 const handleEnableExactAnswer = async () => { if (!detail?.knowledgeId) { return; } const { status } = await updateExactAnswer(detail.knowledgeId, !checked); if (isSuccess(status)) { setChecked(!checked); } }; const handleDeleteKnowledge = async () => { if (!detail) { return; } showModal({ content: "确定删除该问答项吗?", onConfirm: async () => { const { status } = await deleteKnowledge(detail.knowledgeId); if (isSuccess(status)) { await Taro.showToast({ title: "删除成功", icon: "success" }); setTimeout(() => { Taro.navigateBack(); }, 2000); } }, }); }; useDidShow(() => { knowledgeId && getDetail(parseInt(knowledgeId)); }); const createCardOptions = (item: TQAListItem) => { if(isEnt){ return [] } return [ handleDeleteItem(item.qaId)}> 删除 , handleEdit(item.qaId)}>编辑, ] } return ( { return ( <> {detail?.icon && ( )} ); }} rightRenderer={() => ( !isEnt ? : <> )} > {detail?.title} {detail?.createTime} | {detail?.fileSizeStr} {!isEnt && 精准QA模式 知识转问答,助力AI更高效作答 } 问答列表共 {detail?.qaList.length} {detail?.qaList.map((item) => { return ( {item.questions[0]} {item.answer} {!!item.links.length && ( {item.links.map((link) => { return ( 查看链接 {link} ); })} )} {!!item.pics.length && ( {item.pics.map((pic) => { return ( ); })} )} ); })} {/* 删除, 编辑]}> 你们医院可以做哪些近视手术? 我们医院目前开展的近视手术包括:全飞秒SMILE、半飞秒LASIK、ICL人工晶体植入术等。医生会根据您的角膜厚度、度数、眼部条件推荐最适合您的手术方式。 */} {!isEnt && 删除 共享到企业知识 } ); }