Files
wecom_it_smart_desk/frontend-admin/dist-old/assets/KnowledgeSuggestions-BdcbLhyb.js
T
Simon bea288e414 feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) ==
- 代办事项真实数据源集成 (企微审批API 8bug修复链)
- H5/坐席端 Logo样式统一+绿色背景
- 视频引导页修复 (localStorage key v2)
- 坐席端 v9 Vue版本修复 (ElMessage._context)
- 截图按钮 v10 修复 (getDisplayMedia user gesture)
- 扫码样式恢复+H5扫码登录跳转修复
- H5截图快捷键提示

== 代码完成待部署 (3项) ==
- 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查)
- 会议室预定-小鱼易联终端 (40文件, 40/40测试通过)
- IT资产升级审批推送 (asset_service.py)

== 需求文档 (2项) ==
- 坐席端AI辅助消息框-PRD (4项新功能确认)
- 坐席端布局优化建议 v2.0 (7天计划)

== 新增文档 ==
- 日报-2026-07-11.md
- 知识迭代Bug修复报告-20260711.md
- 会议室预定-部署指南.md
- CHANGELOG.md 更新

== 测试 ==
- test_todo_integration.py: 40/40
- test_meetingroom.py: 40/40
- test_bugfix_ki_suggestions.py: 21/21
2026-07-11 23:13:10 +08:00

2 lines
9.4 KiB
JavaScript

import{o as oe,b as g,c as U,e as n,f as a,w as t,t as i,n as l,k as le,a7 as ne,W as re,i as C,U as $,g as V,V as ie,h as de,E as u,y as A,j as d,a2 as ue,r as x,Y as R}from"./index-BYp6OBwf.js";import{U as z}from"./admin-QG1MRyaa.js";import{_ as pe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CMW9Tl_L.js";const ce={class:"knowledge-suggestions-page"},ge={class:"stats-cards"},fe={class:"stat-card-content"},_e={class:"stat-value"},ve={class:"stat-card-content"},me={class:"stat-value"},ye={class:"stat-card-content"},be={class:"stat-value"},we={class:"stat-card-content"},ke={class:"stat-value"},Se={class:"toolbar"},je={class:"pagination-wrapper"},Ce={class:"content-box"},Ve={style:{color:"var(--el-color-danger)"}},xe={__name:"KnowledgeSuggestions",setup(ze){const T=A({status:""}),K=x(!1),I=x([]),f=A({page:1,pageSize:20,total:0}),k=A({total:0,pending:0,approved:0,rejected:0,applied:0}),b=x(!1),r=x(null),S=x(!1),_=A({suggestion_id:"",reject_reason:""});async function y(){K.value=!0;try{const s={page:f.page,page_size:f.pageSize};T.status&&(s.status=T.status);const e=await z.getKnowledgeSuggestions(s);e.code===0&&(I.value=e.data.items,f.total=e.data.total)}catch(s){console.error("加载建议列表失败:",s),u.error("加载建议列表失败")}finally{K.value=!1}}async function B(){try{const s=await z.getKnowledgeSuggestionStats();s.code===0&&Object.assign(k,s.data)}catch(s){console.error("加载统计失败:",s)}}async function W(){try{await R.confirm("将分析过去7天的标注数据和会话数据,生成优化建议。是否继续?","触发分析",{confirmButtonText:"确认",cancelButtonText:"取消",type:"info"});const s=await z.triggerKnowledgeIterationAnalysis({days:7});s.code===0?(u.success("分析完成"),y(),B()):u.error(s.message||"分析失败")}catch(s){s!=="cancel"&&(console.error("触发分析失败:",s),u.error("触发分析失败"))}}function Y(s){r.value=s,b.value=!0}async function L(s){try{await R.confirm("审核通过后,该建议将应用到知识库。是否继续?","审核通过",{confirmButtonText:"确认",cancelButtonText:"取消",type:"success"});const e=await z.approveKnowledgeSuggestion(s.id);e.code===0?(u.success("审核通过"),y(),B(),b.value=!1):u.error(e.message||"操作失败")}catch(e){e!=="cancel"&&(console.error("审核通过失败:",e),u.error("操作失败"))}}function N(s){_.suggestion_id=s.id,_.reject_reason="",S.value=!0}async function E(){if(!_.reject_reason){u.warning("请输入拒绝理由");return}try{const s=await z.rejectKnowledgeSuggestion(_.suggestion_id,{reject_reason:_.reject_reason});s.code===0?(u.success("已拒绝"),y(),B(),S.value=!1,b.value=!1):u.error(s.message||"操作失败")}catch(s){console.error("拒绝建议失败:",s),u.error("操作失败")}}function M(s){return{new_faq:"新增FAQ",update:"更新",outdated:"标记过时"}[s]||s}function q(s){return{new_faq:"success",update:"warning",outdated:"info"}[s]||""}function F(s){return{pending:"待审核",approved:"已通过",rejected:"已拒绝",applied:"已应用"}[s]||s}function O(s){return{pending:"warning",approved:"success",rejected:"danger",applied:"info"}[s]||""}function P(s){return{annotation:"标注数据",conversation:"会话数据",ai_uncertain:"AI不确定"}[s]||s}function G(s){return s?new Date(s).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-"}return oe(()=>{y(),B()}),(s,e)=>{const D=d("el-card"),j=d("el-radio-button"),H=d("el-radio-group"),J=d("el-icon"),p=d("el-button"),w=d("el-tag"),v=d("el-table-column"),X=d("el-table"),Z=d("el-pagination"),c=d("el-descriptions-item"),h=d("el-descriptions"),Q=d("el-dialog"),ee=d("el-input"),te=d("el-form-item"),ae=d("el-form"),se=ue("loading");return g(),U("div",ce,[e[28]||(e[28]=n("div",{class:"page-title"},"知识库优化建议",-1)),e[29]||(e[29]=n("div",{class:"page-desc"},"AI分析标注数据和会话数据生成的优化建议,审核通过后自动更新知识库。",-1)),n("div",ge,[a(D,{class:"stat-card"},{default:t(()=>[n("div",fe,[n("div",_e,i(k.total),1),e[10]||(e[10]=n("div",{class:"stat-label"},"总建议数",-1))])]),_:1}),a(D,{class:"stat-card stat-card-warning"},{default:t(()=>[n("div",ve,[n("div",me,i(k.pending),1),e[11]||(e[11]=n("div",{class:"stat-label"},"待审核",-1))])]),_:1}),a(D,{class:"stat-card stat-card-success"},{default:t(()=>[n("div",ye,[n("div",be,i(k.approved),1),e[12]||(e[12]=n("div",{class:"stat-label"},"已通过",-1))])]),_:1}),a(D,{class:"stat-card stat-card-danger"},{default:t(()=>[n("div",we,[n("div",ke,i(k.rejected),1),e[13]||(e[13]=n("div",{class:"stat-label"},"已拒绝",-1))])]),_:1})]),n("div",Se,[a(H,{modelValue:T.status,"onUpdate:modelValue":e[0]||(e[0]=o=>T.status=o),onChange:y},{default:t(()=>[a(j,{value:""},{default:t(()=>[...e[14]||(e[14]=[l("全部",-1)])]),_:1}),a(j,{value:"pending"},{default:t(()=>[...e[15]||(e[15]=[l("待审核",-1)])]),_:1}),a(j,{value:"approved"},{default:t(()=>[...e[16]||(e[16]=[l("已通过",-1)])]),_:1}),a(j,{value:"rejected"},{default:t(()=>[...e[17]||(e[17]=[l("已拒绝",-1)])]),_:1}),a(j,{value:"applied"},{default:t(()=>[...e[18]||(e[18]=[l("已应用",-1)])]),_:1})]),_:1},8,["modelValue"]),a(p,{type:"primary",onClick:W},{default:t(()=>[a(J,null,{default:t(()=>[a(le(ne))]),_:1}),e[19]||(e[19]=l(" 触发AI分析 ",-1))]),_:1})]),re((g(),C(X,{data:I.value,style:{width:"100%"}},{default:t(()=>[a(v,{prop:"suggestion_type",label:"类型",width:"100"},{default:t(({row:o})=>[a(w,{type:q(o.suggestion_type)},{default:t(()=>[l(i(M(o.suggestion_type)),1)]),_:2},1032,["type"])]),_:1}),a(v,{prop:"title",label:"标题","min-width":"200"}),a(v,{prop:"category",label:"分类",width:"100"},{default:t(({row:o})=>[a(w,{size:"small",type:"info"},{default:t(()=>[l(i(o.category),1)]),_:2},1024)]),_:1}),a(v,{prop:"status",label:"状态",width:"100"},{default:t(({row:o})=>[a(w,{type:O(o.status)},{default:t(()=>[l(i(F(o.status)),1)]),_:2},1032,["type"])]),_:1}),a(v,{prop:"source_type",label:"来源",width:"120"},{default:t(({row:o})=>[n("span",null,i(P(o.source_type)),1)]),_:1}),a(v,{prop:"reason",label:"生成理由","min-width":"200","show-overflow-tooltip":""}),a(v,{prop:"created_at",label:"创建时间",width:"160"},{default:t(({row:o})=>[l(i(G(o.created_at)),1)]),_:1}),a(v,{label:"操作",width:"180",fixed:"right"},{default:t(({row:o})=>[a(p,{size:"small",onClick:m=>Y(o)},{default:t(()=>[...e[20]||(e[20]=[l("查看",-1)])]),_:1},8,["onClick"]),o.status==="pending"?(g(),U($,{key:0},[a(p,{size:"small",type:"success",onClick:m=>L(o)},{default:t(()=>[...e[21]||(e[21]=[l(" 通过 ",-1)])]),_:1},8,["onClick"]),a(p,{size:"small",type:"danger",onClick:m=>N(o)},{default:t(()=>[...e[22]||(e[22]=[l(" 拒绝 ",-1)])]),_:1},8,["onClick"])],64)):V("",!0)]),_:1})]),_:1},8,["data"])),[[se,K.value]]),n("div",je,[a(Z,{"current-page":f.page,"onUpdate:currentPage":e[1]||(e[1]=o=>f.page=o),"page-size":f.pageSize,"onUpdate:pageSize":e[2]||(e[2]=o=>f.pageSize=o),total:f.total,"page-sizes":[10,20,50],layout:"total, sizes, prev, pager, next",onSizeChange:y,onCurrentChange:y},null,8,["current-page","page-size","total"])]),a(Q,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=o=>b.value=o),title:"建议详情",width:"600px"},{footer:t(()=>{var o;return[a(p,{onClick:e[3]||(e[3]=m=>b.value=!1)},{default:t(()=>[...e[23]||(e[23]=[l("关闭",-1)])]),_:1}),((o=r.value)==null?void 0:o.status)==="pending"?(g(),U($,{key:0},[a(p,{type:"success",onClick:e[4]||(e[4]=m=>L(r.value))},{default:t(()=>[...e[24]||(e[24]=[l("通过",-1)])]),_:1}),a(p,{type:"danger",onClick:e[5]||(e[5]=m=>N(r.value))},{default:t(()=>[...e[25]||(e[25]=[l("拒绝",-1)])]),_:1})],64)):V("",!0)]}),default:t(()=>[r.value?(g(),C(h,{key:0,column:1,border:""},{default:t(()=>{var o;return[a(c,{label:"类型"},{default:t(()=>[a(w,{type:q(r.value.suggestion_type)},{default:t(()=>[l(i(M(r.value.suggestion_type)),1)]),_:1},8,["type"])]),_:1}),a(c,{label:"标题"},{default:t(()=>[l(i(r.value.title),1)]),_:1}),a(c,{label:"分类"},{default:t(()=>[l(i(r.value.category),1)]),_:1}),a(c,{label:"状态"},{default:t(()=>[a(w,{type:O(r.value.status)},{default:t(()=>[l(i(F(r.value.status)),1)]),_:1},8,["type"])]),_:1}),a(c,{label:"来源"},{default:t(()=>[l(i(P(r.value.source_type)),1)]),_:1}),a(c,{label:"生成理由"},{default:t(()=>[l(i(r.value.reason),1)]),_:1}),a(c,{label:"答案内容"},{default:t(()=>[n("div",Ce,i(r.value.content),1)]),_:1}),(o=r.value.tags)!=null&&o.length?(g(),C(c,{key:0,label:"标签"},{default:t(()=>[(g(!0),U($,null,ie(r.value.tags,m=>(g(),C(w,{key:m,size:"small",class:"mr-2"},{default:t(()=>[l(i(m),1)]),_:2},1024))),128))]),_:1})):V("",!0),r.value.reject_reason?(g(),C(c,{key:1,label:"拒绝理由"},{default:t(()=>[n("span",Ve,i(r.value.reject_reason),1)]),_:1})):V("",!0)]}),_:1})):V("",!0)]),_:1},8,["modelValue"]),a(Q,{modelValue:S.value,"onUpdate:modelValue":e[9]||(e[9]=o=>S.value=o),title:"拒绝建议",width:"400px"},{footer:t(()=>[a(p,{onClick:e[8]||(e[8]=o=>S.value=!1)},{default:t(()=>[...e[26]||(e[26]=[l("取消",-1)])]),_:1}),a(p,{type:"danger",onClick:E,disabled:!_.reject_reason},{default:t(()=>[...e[27]||(e[27]=[l(" 确认拒绝 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[a(ae,{onSubmit:de(E,["prevent"])},{default:t(()=>[a(te,{label:"拒绝理由",required:""},{default:t(()=>[a(ee,{modelValue:_.reject_reason,"onUpdate:modelValue":e[7]||(e[7]=o=>_.reject_reason=o),type:"textarea",rows:3,placeholder:"请输入拒绝理由",maxlength:"500"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}},Ae=pe(xe,[["__scopeId","data-v-b4848931"]]);export{Ae as default};