import{i as xe}from"./index-Bb6yjXMn.js";import{d as Oe,o as Pe,a as Ae,b as g,c as V,e as k,f as l,w as o,V as H,W as Le,X as ie,h,t as b,r as d,U as $e,i as m,a4 as De,g as p,a2 as Ne,n as j,v as se,al as ue}from"./index-CXRNRwY6.js";import{_ as Ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";const qe={class:"knowledge-iteration-page"},Me={class:"knowledge-iteration-page__header"},Ie={class:"knowledge-iteration-page__header-actions"},Re={class:"knowledge-iteration-page__stats-bar"},Je={class:"knowledge-iteration-page__stat-value"},Fe={class:"knowledge-iteration-page__stat-label"},Be={class:"knowledge-iteration-page__filters"},Ge={class:"knowledge-iteration-page__table"},Ke={key:0,class:"knowledge-iteration-page__pagination"},Qe={class:"knowledge-iteration-page__graph-filters"},We={class:"knowledge-iteration-page__graph-info"},Xe={key:0,style:{color:"#67c23a","text-align":"center",padding:"20px"}},He={key:1},Ye=Oe({__name:"KnowledgeIteration",setup(Ze){const Y=d([]),M=d(0),I=d(!1),R=d(!1),J=d(!1),F=d(1),B=d(20),O=d(""),P=d(""),T=d(),U=d(),z=d(!1),x=d(!1),y=d(null),S=d("list"),A=d(!1),L=d(""),$=d(null);let w=null;const Z=d(0),ee=d(0),G=d(!1),D=d(!1),N=d([]),s=se({title:"",content:"",category:"",audience:"",issue:"",action:"",relation_type:"",parent_issue:""}),r=se({title:"",content:"",category:"其他",audience:"engineer_workguide",issue:"",action:"",relation_type:"LEADS_TO"}),re=$e(()=>Math.ceil(M.value/B.value)),le=d([{key:"pending",label:"待审核",value:0},{key:"queued",label:"队列中",value:0},{key:"approved",label:"已通过",value:0},{key:"applied",label:"已应用",value:0},{key:"graph_synced",label:"已同步",value:0}]);async function v(){I.value=!0;try{const a=new URLSearchParams;O.value&&a.set("status",O.value),P.value&&a.set("audience",P.value),T.value!==void 0&&T.value!==null&&a.set("confidence_min",String(T.value/100)),U.value!==void 0&&U.value!==null&&a.set("confidence_max",String(U.value/100)),a.set("page",String(F.value)),a.set("page_size",String(B.value));const i=await(await fetch(`/api/admin/knowledge-iteration/suggestions?${a}`)).json();i.code===0&&i.data&&(Y.value=i.data.items||[],M.value=i.data.total||0)}catch(a){console.error("获取建议列表失败:",a)}finally{I.value=!1}}async function C(){try{const e=await(await fetch("/api/admin/knowledge-iteration/stats")).json();if(e.code===0&&e.data)for(const i of le.value)i.value=e.data[i.key]||0}catch(a){console.error("获取统计失败:",a)}}async function de(){R.value=!0;try{(await(await fetch("/api/admin/knowledge-iteration/analyze",{method:"POST"})).json()).code===0&&await Promise.all([v(),C()])}catch(a){console.error("触发分析失败:",a)}finally{R.value=!1}}function E(a){return a.status==="pending"||a.status==="queued"}async function pe(a){try{(await(await fetch(`/api/admin/knowledge-iteration/suggestions/${a.id}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})).json()).code===0&&await Promise.all([v(),C()])}catch(e){console.error("审批失败:",e)}}async function ce(a){try{(await(await fetch(`/api/admin/knowledge-iteration/suggestions/${a.id}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reject_reason:"审核不通过"})})).json()).code===0&&await Promise.all([v(),C()])}catch(e){console.error("驳回失败:",e)}}function fe(a){y.value=a,s.title=a.title,s.content=a.content,s.category=a.category,s.audience=a.audience||"",s.issue=a.issue||"",s.action=a.action||"",s.relation_type=a.relation_type||"",s.parent_issue=a.parent_issue||"",z.value=!0}async function ge(){if(y.value)try{(await(await fetch(`/api/admin/knowledge-iteration/suggestions/${y.value.id}/rewrite`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:s.title||void 0,content:s.content||void 0,category:s.category||void 0,audience:s.audience||void 0,issue:s.issue||void 0,action:s.action||void 0,relation_type:s.relation_type||void 0,parent_issue:s.parent_issue||void 0})})).json()).code===0&&(z.value=!1,await Promise.all([v(),C()]))}catch(a){console.error("改写失败:",a)}}async function me(){J.value=!0;try{(await(await fetch("/api/admin/knowledge-iteration/suggestions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({suggestion_type:"new_faq",title:r.title,content:r.content,category:r.category,source_type:"manual",audience:r.audience,confidence:1,issue:r.issue||void 0,action:r.action||void 0,relation_type:r.relation_type||void 0})})).json()).code===0&&(x.value=!1,r.title="",r.content="",await Promise.all([v(),C()]))}catch(a){console.error("创建建议失败:",a)}finally{J.value=!1}}function ve(a){return{pending:"warning",queued:"info",approved:"success",rejected:"danger",applied:"success",graph_synced:"",expired:"info"}[a]||"info"}function ye(a){return{pending:"待审核",queued:"队列中",approved:"已通过",rejected:"已驳回",applied:"已应用",graph_synced:"已同步",expired:"已过期"}[a]||a}function _e(a){return Math.round((a??0)*100)}function be(a){const e=a??0;return e>=.7?"#67c23a":e>=.5?"#e6a23c":"#f56c6c"}function we(a){return{employee_quick_reply:"员工快捷回复",engineer_workguide:"工程师指导"}[a||""]||a||"—"}function ke(a){return{annotation:"标注分析",conversation:"会话分析",ai_uncertain:"AI不确定",manual:"手动录入",document_ragflow:"RAGFlow"}[a]||a}function Ve(a){return a?new Date(a).toLocaleString("zh-CN"):"—"}async function he(){S.value="graph",await ue(),await K()}async function K(){var a,e;A.value=!0;try{const i=new URLSearchParams;i.set("limit","200"),L.value&&i.set("issue_name",L.value);const n=await(await fetch(`/api/admin/knowledge-iteration/graph?${i}`)).json();n.code===0&&n.data&&(Z.value=((a=n.data.nodes)==null?void 0:a.length)||0,ee.value=((e=n.data.links)==null?void 0:e.length)||0,await ue(),Ce(n.data))}catch(i){console.error("获取图谱数据失败:",i)}finally{A.value=!1}}function Ce(a){if(!$.value)return;w&&(w.dispose(),w=null),w=xe($.value);const e=[{name:"issue",itemStyle:{color:"#67c23a"}},{name:"action",itemStyle:{color:"#e6a23c"}}],i=(a.nodes||[]).map(u=>({id:u.id,name:u.name||u.label||u.id,category:u.type||"issue",symbolSize:u.type==="issue"?28:22,label:{show:!0,fontSize:11},draggable:!0})),q=(a.links||[]).map(u=>({source:u.source,target:u.target,label:{show:!0,formatter:u.type||"",fontSize:9},lineStyle:{color:"#c0c4cc",width:Math.max(.5,(u.weight||1)*1.5)}}));w.setOption({tooltip:{formatter:u=>{var c;return u.dataType==="node"?`${u.name}
类型: ${u.data.category}`:`${((c=u.data.label)==null?void 0:c.formatter)||""}`}},legend:[{data:e.map(u=>u.name),orient:"vertical",right:10,top:10}],series:[{type:"graph",layout:"force",data:i,links:q,categories:e,roam:!0,force:{repulsion:300,gravity:.1,edgeLength:[100,250],layoutAnimation:!0},emphasis:{focus:"adjacency",lineStyle:{width:4}},lineStyle:{color:"#c0c4cc",curveness:.3}}]}),new ResizeObserver(()=>w==null?void 0:w.resize()).observe($.value)}async function Se(a){G.value=!0,D.value=!0;try{const i=await(await fetch(`/api/admin/knowledge-iteration/suggestions/${a.id}/duplicates`)).json();i.code===0&&i.data&&(N.value=i.data.duplicates||[])}catch(e){console.error("重复检查失败:",e),N.value=[]}finally{G.value=!1}}async function je(a){if(y.value)try{(await(await fetch(`/api/admin/knowledge-iteration/suggestions/${y.value.id}/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({duplicate_id:a})})).json()).code===0&&(D.value=!1,await Promise.all([v(),C()]))}catch(e){console.error("合并失败:",e)}}function Te(a){return{same_issue:"同名Issue",similar_issue:"相似Issue",title_similar:"标题相似"}[a]||a}return Pe(()=>{v(),C()}),Ae(()=>{w&&(w.dispose(),w=null)}),(a,e)=>{const i=m("el-button"),q=m("el-button-group"),n=m("el-option"),u=m("el-select"),c=m("el-input"),_=m("el-table-column"),Q=m("el-tag"),te=m("el-table"),Ue=m("el-pagination"),f=m("el-form-item"),ae=m("el-divider"),oe=m("el-form"),W=m("el-dialog"),ze=m("el-alert"),ne=De("loading");return g(),V("div",qe,[k("div",Me,[e[33]||(e[33]=k("h2",null,"📚 知识迭代管理",-1)),k("div",Ie,[l(q,null,{default:o(()=>[l(i,{type:S.value==="list"?"primary":"",onClick:e[0]||(e[0]=t=>S.value="list")},{default:o(()=>[...e[29]||(e[29]=[p(" 列表 ",-1)])]),_:1},8,["type"]),l(i,{type:S.value==="graph"?"primary":"",onClick:he},{default:o(()=>[...e[30]||(e[30]=[p(" 图谱 ",-1)])]),_:1},8,["type"])]),_:1}),l(i,{type:"primary",onClick:e[1]||(e[1]=t=>x.value=!0)},{default:o(()=>[...e[31]||(e[31]=[p(" + 手动录入(通道 B) ",-1)])]),_:1}),l(i,{loading:R.value,onClick:de},{default:o(()=>[...e[32]||(e[32]=[p(" 触发分析 ",-1)])]),_:1},8,["loading"])])]),k("div",Re,[(g(!0),V(H,null,Le(le.value,t=>(g(),V("div",{key:t.key,class:"knowledge-iteration-page__stat-item"},[k("span",Je,b(t.value),1),k("span",Fe,b(t.label),1)]))),128))]),S.value==="list"?(g(),V(H,{key:0},[k("div",Be,[l(u,{modelValue:O.value,"onUpdate:modelValue":e[2]||(e[2]=t=>O.value=t),placeholder:"状态",clearable:"",size:"default",style:{width:"140px"},onChange:v},{default:o(()=>[l(n,{label:"全部",value:""}),l(n,{label:"待审核",value:"pending"}),l(n,{label:"队列中",value:"queued"}),l(n,{label:"已通过",value:"approved"}),l(n,{label:"已驳回",value:"rejected"}),l(n,{label:"已应用",value:"applied"}),l(n,{label:"已同步",value:"graph_synced"})]),_:1},8,["modelValue"]),l(u,{modelValue:P.value,"onUpdate:modelValue":e[3]||(e[3]=t=>P.value=t),placeholder:"受众",clearable:"",size:"default",style:{width:"160px"},onChange:v},{default:o(()=>[l(n,{label:"全部",value:""}),l(n,{label:"员工快捷回复",value:"employee_quick_reply"}),l(n,{label:"工程师作业指导",value:"engineer_workguide"})]),_:1},8,["modelValue"]),l(c,{modelValue:T.value,"onUpdate:modelValue":e[4]||(e[4]=t=>T.value=t),placeholder:"置信度下限",size:"default",type:"number",style:{width:"120px"},onChange:v},null,8,["modelValue"]),l(c,{modelValue:U.value,"onUpdate:modelValue":e[5]||(e[5]=t=>U.value=t),placeholder:"置信度上限",size:"default",type:"number",style:{width:"120px"},onChange:v},null,8,["modelValue"]),l(i,{icon:"Refresh",onClick:v},{default:o(()=>[...e[34]||(e[34]=[p("刷新",-1)])]),_:1})]),ie((g(),V("div",Ge,[l(te,{data:Y.value,stripe:"",size:"default"},{default:o(()=>[l(_,{prop:"title",label:"标题","min-width":"200","show-overflow-tooltip":""}),l(_,{prop:"suggestion_type",label:"类型",width:"100"},{default:o(({row:t})=>[l(Q,{type:t.suggestion_type==="new_faq"?"success":"warning",size:"small"},{default:o(()=>[p(b(t.suggestion_type==="new_faq"?"新FAQ":"更新"),1)]),_:2},1032,["type"])]),_:1}),l(_,{prop:"status",label:"状态",width:"100"},{default:o(({row:t})=>[l(Q,{type:ve(t.status),size:"small"},{default:o(()=>[p(b(ye(t.status)),1)]),_:2},1032,["type"])]),_:1}),l(_,{prop:"confidence",label:"置信度",width:"90",align:"center"},{default:o(({row:t})=>[k("span",{style:Ne({color:be(t.confidence)})},b(_e(t.confidence))+"% ",5)]),_:1}),l(_,{prop:"audience",label:"受众",width:"120"},{default:o(({row:t})=>[p(b(we(t.audience)),1)]),_:1}),l(_,{prop:"source_type",label:"来源",width:"100"},{default:o(({row:t})=>[p(b(ke(t.source_type)),1)]),_:1}),l(_,{prop:"created_at",label:"创建时间",width:"150"},{default:o(({row:t})=>[p(b(Ve(t.created_at)),1)]),_:1}),l(_,{label:"操作",width:"220",fixed:"right"},{default:o(({row:t})=>[E(t)?(g(),j(i,{key:0,size:"small",type:"success",onClick:X=>pe(t)},{default:o(()=>[...e[35]||(e[35]=[p(" 采纳 ",-1)])]),_:1},8,["onClick"])):h("",!0),E(t)?(g(),j(i,{key:1,size:"small",type:"danger",onClick:X=>ce(t)},{default:o(()=>[...e[36]||(e[36]=[p(" 驳回 ",-1)])]),_:1},8,["onClick"])):h("",!0),l(i,{size:"small",onClick:X=>fe(t)},{default:o(()=>[...e[37]||(e[37]=[p("详情",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])),[[ne,I.value]]),re.value>1?(g(),V("div",Ke,[l(Ue,{"current-page":F.value,"onUpdate:currentPage":e[6]||(e[6]=t=>F.value=t),total:M.value,"page-size":B.value,layout:"prev, pager, next",onCurrentChange:v},null,8,["current-page","total","page-size"])])):h("",!0)],64)):h("",!0),S.value==="graph"?(g(),V(H,{key:1},[k("div",Qe,[l(c,{modelValue:L.value,"onUpdate:modelValue":e[7]||(e[7]=t=>L.value=t),placeholder:"按 Issue 名称筛选子图(留空查全图)",size:"default",style:{width:"280px"},clearable:"",onChange:K},null,8,["modelValue"]),l(i,{loading:A.value,onClick:K},{default:o(()=>[...e[38]||(e[38]=[p(" 刷新图谱 ",-1)])]),_:1},8,["loading"]),k("span",We," 节点: "+b(Z.value)+" | 关系: "+b(ee.value),1)]),ie(k("div",{ref_key:"graphContainer",ref:$,class:"knowledge-iteration-page__graph-container"},null,512),[[ne,A.value]])],64)):h("",!0),l(W,{modelValue:z.value,"onUpdate:modelValue":e[18]||(e[18]=t=>z.value=t),title:y.value?"提案详情与编辑":"提案详情",width:"650px"},{footer:o(()=>[l(i,{onClick:e[16]||(e[16]=t=>z.value=!1)},{default:o(()=>[...e[40]||(e[40]=[p("关闭",-1)])]),_:1}),y.value&&E(y.value)?(g(),j(i,{key:0,type:"warning",loading:G.value,onClick:e[17]||(e[17]=t=>Se(y.value))},{default:o(()=>[...e[41]||(e[41]=[p(" 检查重复 ",-1)])]),_:1},8,["loading"])):h("",!0),y.value&&E(y.value)?(g(),j(i,{key:1,type:"primary",onClick:ge},{default:o(()=>[...e[42]||(e[42]=[p(" 提交改写 ",-1)])]),_:1})):h("",!0)]),default:o(()=>[y.value?(g(),j(oe,{key:0,"label-width":"80px",size:"default"},{default:o(()=>[l(f,{label:"标题"},{default:o(()=>[l(c,{modelValue:s.title,"onUpdate:modelValue":e[8]||(e[8]=t=>s.title=t)},null,8,["modelValue"])]),_:1}),l(f,{label:"内容"},{default:o(()=>[l(c,{modelValue:s.content,"onUpdate:modelValue":e[9]||(e[9]=t=>s.content=t),type:"textarea",rows:4},null,8,["modelValue"])]),_:1}),l(f,{label:"分类"},{default:o(()=>[l(u,{modelValue:s.category,"onUpdate:modelValue":e[10]||(e[10]=t=>s.category=t)},{default:o(()=>[l(n,{label:"硬件",value:"硬件"}),l(n,{label:"软件",value:"软件"}),l(n,{label:"网络",value:"网络"}),l(n,{label:"安全",value:"安全"}),l(n,{label:"账号",value:"账号"}),l(n,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),l(f,{label:"受众"},{default:o(()=>[l(u,{modelValue:s.audience,"onUpdate:modelValue":e[11]||(e[11]=t=>s.audience=t)},{default:o(()=>[l(n,{label:"员工快捷回复",value:"employee_quick_reply"}),l(n,{label:"工程师作业指导",value:"engineer_workguide"})]),_:1},8,["modelValue"])]),_:1}),l(ae,null,{default:o(()=>[...e[39]||(e[39]=[p("知识图谱字段",-1)])]),_:1}),l(f,{label:"Issue 节点"},{default:o(()=>[l(c,{modelValue:s.issue,"onUpdate:modelValue":e[12]||(e[12]=t=>s.issue=t),placeholder:"问题名称,如'VPN问题'"},null,8,["modelValue"])]),_:1}),l(f,{label:"Action 节点"},{default:o(()=>[l(c,{modelValue:s.action,"onUpdate:modelValue":e[13]||(e[13]=t=>s.action=t),placeholder:"动作名称,如'个人VPN开通'"},null,8,["modelValue"])]),_:1}),l(f,{label:"关系类型"},{default:o(()=>[l(u,{modelValue:s.relation_type,"onUpdate:modelValue":e[14]||(e[14]=t=>s.relation_type=t)},{default:o(()=>[l(n,{label:"LEADS_TO",value:"LEADS_TO"}),l(n,{label:"RELATES_TO",value:"RELATES_TO"}),l(n,{label:"CAN_JUMP_TO",value:"CAN_JUMP_TO"})]),_:1},8,["modelValue"])]),_:1}),l(f,{label:"父 Issue"},{default:o(()=>[l(c,{modelValue:s.parent_issue,"onUpdate:modelValue":e[15]||(e[15]=t=>s.parent_issue=t),placeholder:"(可选)父级问题名称"},null,8,["modelValue"])]),_:1})]),_:1})):h("",!0)]),_:1},8,["modelValue","title"]),l(W,{modelValue:D.value,"onUpdate:modelValue":e[19]||(e[19]=t=>D.value=t),title:"⚠ 重复检测结果",width:"550px"},{default:o(()=>[N.value.length===0?(g(),V("div",Xe," ✅ 未发现重复,可安全采纳 ")):(g(),V("div",He,[l(ze,{title:"发现可能重复的知识条目,建议合并而非新建",type:"warning",closable:!1,"show-icon":"",style:{"margin-bottom":"12px"}}),l(te,{data:N.value,size:"small","max-height":"300"},{default:o(()=>[l(_,{prop:"name",label:"名称","show-overflow-tooltip":""}),l(_,{prop:"type",label:"匹配类型",width:"120"},{default:o(({row:t})=>[l(Q,{type:t.type==="same_issue"?"danger":"warning",size:"small"},{default:o(()=>[p(b(Te(t.type)),1)]),_:2},1032,["type"])]),_:1}),l(_,{prop:"similarity",label:"相似度",width:"80",align:"center"},{default:o(({row:t})=>[p(b(Math.round((t.similarity??0)*100))+"% ",1)]),_:1}),l(_,{label:"操作",width:"80"},{default:o(({row:t})=>[t.suggestion_id?(g(),j(i,{key:0,size:"small",type:"primary",onClick:X=>je(t.suggestion_id)},{default:o(()=>[...e[43]||(e[43]=[p(" 合并 ",-1)])]),_:1},8,["onClick"])):h("",!0)]),_:1})]),_:1},8,["data"])]))]),_:1},8,["modelValue"]),l(W,{modelValue:x.value,"onUpdate:modelValue":e[28]||(e[28]=t=>x.value=t),title:"手动录入知识建议(通道 B)",width:"650px"},{footer:o(()=>[l(i,{onClick:e[27]||(e[27]=t=>x.value=!1)},{default:o(()=>[...e[45]||(e[45]=[p("取消",-1)])]),_:1}),l(i,{type:"primary",loading:J.value,onClick:me},{default:o(()=>[...e[46]||(e[46]=[p(" 提交(待审) ",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(oe,{ref:"createFormRef",model:r,"label-width":"80px",size:"default"},{default:o(()=>[l(f,{label:"标题",required:""},{default:o(()=>[l(c,{modelValue:r.title,"onUpdate:modelValue":e[20]||(e[20]=t=>r.title=t),placeholder:"知识条目标题"},null,8,["modelValue"])]),_:1}),l(f,{label:"内容",required:""},{default:o(()=>[l(c,{modelValue:r.content,"onUpdate:modelValue":e[21]||(e[21]=t=>r.content=t),type:"textarea",rows:4,placeholder:"答案内容"},null,8,["modelValue"])]),_:1}),l(f,{label:"分类"},{default:o(()=>[l(u,{modelValue:r.category,"onUpdate:modelValue":e[22]||(e[22]=t=>r.category=t)},{default:o(()=>[l(n,{label:"硬件",value:"硬件"}),l(n,{label:"软件",value:"软件"}),l(n,{label:"网络",value:"网络"}),l(n,{label:"安全",value:"安全"}),l(n,{label:"账号",value:"账号"}),l(n,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),l(f,{label:"受众"},{default:o(()=>[l(u,{modelValue:r.audience,"onUpdate:modelValue":e[23]||(e[23]=t=>r.audience=t)},{default:o(()=>[l(n,{label:"员工快捷回复",value:"employee_quick_reply"}),l(n,{label:"工程师作业指导",value:"engineer_workguide"})]),_:1},8,["modelValue"])]),_:1}),l(ae,null,{default:o(()=>[...e[44]||(e[44]=[p("知识图谱字段(可选)",-1)])]),_:1}),l(f,{label:"Issue"},{default:o(()=>[l(c,{modelValue:r.issue,"onUpdate:modelValue":e[24]||(e[24]=t=>r.issue=t),placeholder:"问题名称"},null,8,["modelValue"])]),_:1}),l(f,{label:"Action"},{default:o(()=>[l(c,{modelValue:r.action,"onUpdate:modelValue":e[25]||(e[25]=t=>r.action=t),placeholder:"动作名称"},null,8,["modelValue"])]),_:1}),l(f,{label:"关系类型"},{default:o(()=>[l(u,{modelValue:r.relation_type,"onUpdate:modelValue":e[26]||(e[26]=t=>r.relation_type=t)},{default:o(()=>[l(n,{label:"LEADS_TO",value:"LEADS_TO"}),l(n,{label:"RELATES_TO",value:"RELATES_TO"}),l(n,{label:"CAN_JUMP_TO",value:"CAN_JUMP_TO"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),al=Ee(Ye,[["__scopeId","data-v-e4dda180"]]);export{al as default};