Files
iqudo-top1/web/dist/assets/RunDetailView-BFxue3EE.js
2026-08-18 16:27:02 +08:00

1 line
6.9 KiB
JavaScript

import{A as e,Bt as t,D as n,F as r,I as i,O as a,P as o,Q as s,S as c,Tt as l,Y as u,_t as d,et as f,i as ee,j as p,k as m,lt as h,n as g,r as _,t as v,tt as y,vt as b,zt as x}from"./client-Bk7n1O1W.js";import{a as S}from"./config-provider-B-t02-Z0.js";import{t as te}from"./auth-D6Tj4g1X.js";import{t as ne}from"./ArrowLeftOutlined-B1KoeknA.js";import{t as re}from"./SafetyCertificateOutlined-B1v8On0u.js";import{h as ie,m as ae}from"./useApi-CROJJdhE-C8LJOf_8.js";var C={class:`page-shell run-detail-page`},w={class:`detail-heading`},T={class:`run-code`},oe={class:`detail-layout`},se={class:`surface timeline-panel`},ce={class:`event-head`},le={key:0},ue={key:1,class:`event-knowledge`},E={key:0,class:`risk-note`},D={key:2,class:`event-answers`},O={class:`detail-aside`},k={class:`surface summary-panel`},A={class:`surface answer-panel`},j={class:`section-title`},M={key:0,class:`answer-list`},N={key:1,class:`aside-empty`},P={class:`surface answer-panel`},F={key:0,class:`final-result`},I={key:1,class:`aside-empty`},L={class:`surface feedback-band`},R={key:0,class:`feedback-list`},z={key:1,class:`feedback-form`},B={key:2,class:`aside-empty`},V=_(i({__name:`RunDetailView`,setup(i){let _=ae(),V=ie(),H=te(),U=b(!0),W=b(null),G=b(!1),K=d({score:5,comment:``}),q=n(()=>new Map((W.value?.fields||[]).map(e=>[e.field_key,e.field_name]))),J=n(()=>Object.entries(W.value?.run.answers||{})),Y=n(()=>W.value?.run.final_result||null),X=n(()=>H.can(`runs.feedback`)&&W.value?.run.status===`completed`&&!W.value.feedback.some(e=>e.user_id===H.user?.user_id));function de(e){return{finish:`正常结束`,escalate:`转人工 / 转诊`,manual:`人工结束`}[e]||e||`进行中`}function fe(e){return{start:`开始执行`,enter:`进入节点`,answer:`提交回答`,finish:`结束执行`,final_result:`保存最终结果`}[e]||e}function Z(e){return e===!0?``:e===!1?``:Array.isArray(e)?e.join(``):e==null||e===``?`-`:String(e)}function Q(e){let t=e.payload?.answers||{};return Object.entries(t)}async function $(){U.value=!0;try{W.value=await v.get(`/runs/${_.params.id}/detail`)}catch(e){S.error(g(e)),V.replace(`/runs`)}finally{U.value=!1}}async function pe(){G.value=!0;try{await v.post(`/runs/${_.params.id}/feedback`,K),S.success(`反馈已提交`),await $()}catch(e){S.error(g(e))}finally{G.value=!1}}return u($),(n,i)=>{let u=y(`a-button`),d=y(`a-tag`),g=y(`a-timeline-item`),_=y(`a-timeline`),v=y(`a-rate`),b=y(`a-textarea`),S=y(`a-spin`);return s(),p(`div`,C,[r(u,{type:`link`,class:`back-link`,onClick:i[0]||=e=>l(V).push(`/runs`)},{default:h(()=>[r(l(ne)),i[3]||=o(`返回执行记录`,-1)]),_:1}),r(S,{spinning:U.value},{default:h(()=>[W.value?(s(),p(c,{key:0},[a(`header`,w,[a(`div`,null,[a(`div`,T,`RUN-`+t(String(W.value.run.id).padStart(5,`0`)),1),a(`h1`,null,t(W.value.run.sop_name),1),a(`p`,null,t(W.value.run.scenario_name)+` · `+t(W.value.run.operator_name),1)]),a(`div`,{class:x([`result-block`,W.value.run.result===`escalate`?`warning`:`success`])},[W.value.run.result===`escalate`?(s(),m(l(re),{key:0})):(s(),m(l(ee),{key:1})),a(`span`,null,[a(`small`,null,t(W.value.run.status===`completed`?`执行结果`:`当前状态`),1),a(`b`,null,t(de(W.value.run.result)),1)])],2)]),a(`section`,oe,[a(`main`,se,[i[5]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行轨迹`),a(`small`,null,`按实际发生顺序记录`)],-1),r(_,{class:`run-timeline`},{default:h(()=>[(s(!0),p(c,null,f(W.value.events,n=>(s(),m(g,{key:n.id,color:n.action===`finish`||n.node_type===`escalate`?`red`:n.action===`answer`?`blue`:`green`},{default:h(()=>[a(`div`,ce,[a(`b`,null,t(n.node_title||n.node_key),1),r(d,null,{default:h(()=>[o(t(fe(n.action)),1)]),_:2},1024),a(`time`,null,t(new Date(n.created_at).toLocaleString(`zh-CN`)),1)]),n.action===`enter`&&n.node_content?(s(),p(`p`,le,t(n.node_content),1)):e(``,!0),n.action===`enter`&&n.knowledge?(s(),p(`div`,ue,[a(`div`,null,[a(`b`,null,t(n.knowledge.title),1),i[4]||=a(`small`,null,`历史知识`,-1)]),a(`p`,null,t(n.knowledge.standard_copy),1),n.knowledge.risk_note?(s(),p(`p`,E,t(n.knowledge.risk_note),1)):e(``,!0)])):e(``,!0),(s(!0),p(c,null,f(n.outputs||[],e=>(s(),p(`div`,{key:e.key,class:`event-knowledge`},[a(`div`,null,[a(`b`,null,t(e.name),1),a(`small`,null,t(e.type),1)]),(s(!0),p(c,null,f(e.relations,(e,n)=>(s(),p(`div`,{key:n},[a(`p`,null,[a(`b`,null,t(n),1)]),(s(!0),p(c,null,f(e,e=>(s(),p(`p`,{key:e.key},t(e.content.template||e.content.standard_copy||e.name),1))),128))]))),128))]))),128)),Q(n).length?(s(),p(`div`,D,[(s(!0),p(c,null,f(Q(n),([e,n])=>(s(),p(`span`,{key:e},[a(`small`,null,t(q.value.get(e)||e),1),a(`b`,null,t(Z(n)),1)]))),128))])):e(``,!0)]),_:2},1032,[`color`]))),128))]),_:1})]),a(`aside`,O,[a(`section`,k,[i[10]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行信息`)],-1),a(`dl`,null,[a(`div`,null,[i[6]||=a(`dt`,null,`状态`,-1),a(`dd`,null,[r(d,{color:W.value.run.status===`completed`?`green`:`orange`},{default:h(()=>[o(t(W.value.run.status===`completed`?`已完成`:`进行中`),1)]),_:1},8,[`color`])])]),a(`div`,null,[i[7]||=a(`dt`,null,`开始时间`,-1),a(`dd`,null,t(new Date(W.value.run.started_at).toLocaleString(`zh-CN`)),1)]),a(`div`,null,[i[8]||=a(`dt`,null,`完成时间`,-1),a(`dd`,null,t(W.value.run.completed_at?new Date(W.value.run.completed_at).toLocaleString(`zh-CN`):`-`),1)]),a(`div`,null,[i[9]||=a(`dt`,null,`当前节点`,-1),a(`dd`,null,t(W.value.run.current_node_key),1)])])]),a(`section`,A,[a(`div`,j,[i[11]||=a(`span`,null,`已采集信息`,-1),a(`small`,null,t(J.value.length)+``,1)]),J.value.length?(s(),p(`div`,M,[(s(!0),p(c,null,f(J.value,([e,n])=>(s(),p(`div`,{key:e},[a(`span`,null,t(q.value.get(e)||e),1),a(`b`,null,t(Z(n)),1)]))),128))])):(s(),p(`div`,N,`尚未采集字段`))]),a(`section`,P,[i[12]||=a(`div`,{class:`section-title`},[a(`span`,null,`最终结果`)],-1),Y.value?(s(),p(`pre`,F,t(JSON.stringify(Y.value,null,2)),1)):(s(),p(`div`,I,`本次执行未收集最终结果`))])])]),a(`section`,L,[i[15]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行反馈`),a(`small`,null,`用于判断 SOP 是否清晰、有效`)],-1),W.value.feedback.length?(s(),p(`div`,R,[(s(!0),p(c,null,f(W.value.feedback,e=>(s(),p(`article`,{key:e.id},[a(`div`,null,[a(`b`,null,t(e.user_name),1),r(v,{value:e.score,disabled:``},null,8,[`value`])]),a(`p`,null,t(e.comment||`未填写补充说明`),1),a(`time`,null,t(new Date(e.created_at).toLocaleString(`zh-CN`)),1)]))),128))])):e(``,!0),X.value?(s(),p(`div`,z,[a(`div`,null,[i[13]||=a(`span`,null,`本次 SOP 是否好用?`,-1),r(v,{value:K.score,"onUpdate:value":i[1]||=e=>K.score=e},null,8,[`value`])]),r(b,{value:K.comment,"onUpdate:value":i[2]||=e=>K.comment=e,rows:3,maxlength:2e3,"show-count":``,placeholder:`记录不顺畅的步骤、缺失信息或有效话术。`},null,8,[`value`]),r(u,{type:`primary`,loading:G.value,onClick:pe},{default:h(()=>[...i[14]||=[o(`提交反馈`,-1)]]),_:1},8,[`loading`])])):e(``,!0),!W.value.feedback.length&&!X.value?(s(),p(`div`,B,`暂无反馈`)):e(``,!0)])],64)):e(``,!0)]),_:1},8,[`spinning`])])}}}),[[`__scopeId`,`data-v-31b2289d`]]);export{V as default};