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 p,j as m,k as h,lt as g,n as _,r as v,t as y,tt as b,vt as x,zt as S}from"./client-Bk7n1O1W.js";import{a as C}from"./config-provider-B-t02-Z0.js";import{t as w}from"./auth-D6Tj4g1X.js";import{t as ee}from"./ArrowLeftOutlined-B1KoeknA.js";import{t as te}from"./SafetyCertificateOutlined-B1v8On0u.js";import{h as ne,m as re}from"./useApi-CROJJdhE-C8LJOf_8.js";var T={class:`page-shell run-detail-page`},E={class:`detail-heading`},D={class:`run-code`},ie={class:`detail-layout`},ae={class:`surface timeline-panel`},oe={class:`event-head`},se={key:0},ce={key:1,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=v(i({__name:`RunDetailView`,setup(i){let v=re(),V=ne(),H=w(),U=x(!0),W=x(null),G=x(!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 le(e){return{finish:`正常结束`,escalate:`转人工 / 转诊`,manual:`人工结束`}[e]||e||`进行中`}function ue(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 y.get(`/runs/${v.params.id}/detail`)}catch(e){C.error(_(e)),V.replace(`/runs`)}finally{U.value=!1}}async function de(){G.value=!0;try{await y.post(`/runs/${v.params.id}/feedback`,K),C.success(`反馈已提交`),await $()}catch(e){C.error(_(e))}finally{G.value=!1}}return u($),(n,i)=>{let u=b(`a-button`),d=b(`a-tag`),_=b(`a-timeline-item`),v=b(`a-timeline`),y=b(`a-rate`),x=b(`a-textarea`),C=b(`a-spin`);return s(),m(`div`,T,[r(u,{type:`link`,class:`back-link`,onClick:i[0]||=e=>l(V).push(`/runs`)},{default:g(()=>[r(l(ee)),i[3]||=o(`返回执行记录`,-1)]),_:1}),r(C,{spinning:U.value},{default:g(()=>[W.value?(s(),m(c,{key:0},[a(`header`,E,[a(`div`,null,[a(`div`,D,`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:S([`result-block`,W.value.run.result===`escalate`?`warning`:`success`])},[W.value.run.result===`escalate`?(s(),h(l(te),{key:0})):(s(),h(l(p),{key:1})),a(`span`,null,[a(`small`,null,t(W.value.run.status===`completed`?`执行结果`:`当前状态`),1),a(`b`,null,t(le(W.value.run.result)),1)])],2)]),a(`section`,ie,[a(`main`,ae,[i[4]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行轨迹`),a(`small`,null,`按实际发生顺序记录`)],-1),r(v,{class:`run-timeline`},{default:g(()=>[(s(!0),m(c,null,f(W.value.events,n=>(s(),h(_,{key:n.id,color:n.action===`finish`||n.node_type===`escalate`?`red`:n.action===`answer`?`blue`:`green`},{default:g(()=>[a(`div`,oe,[a(`b`,null,t(n.node_title||n.node_key),1),r(d,null,{default:g(()=>[o(t(ue(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(),m(`p`,se,t(n.node_content),1)):e(``,!0),(s(!0),m(c,null,f(n.outputs||[],e=>(s(),m(`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),m(c,null,f(e.relations,(e,n)=>(s(),m(`div`,{key:n},[a(`p`,null,[a(`b`,null,t(n),1)]),(s(!0),m(c,null,f(e,e=>(s(),m(`p`,{key:e.key},t(e.content.template||e.content.standard_copy||e.name),1))),128))]))),128))]))),128)),Q(n).length?(s(),m(`div`,ce,[(s(!0),m(c,null,f(Q(n),([e,n])=>(s(),m(`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[9]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行信息`)],-1),a(`dl`,null,[a(`div`,null,[i[5]||=a(`dt`,null,`状态`,-1),a(`dd`,null,[r(d,{color:W.value.run.status===`completed`?`green`:`orange`},{default:g(()=>[o(t(W.value.run.status===`completed`?`已完成`:`进行中`),1)]),_:1},8,[`color`])])]),a(`div`,null,[i[6]||=a(`dt`,null,`开始时间`,-1),a(`dd`,null,t(new Date(W.value.run.started_at).toLocaleString(`zh-CN`)),1)]),a(`div`,null,[i[7]||=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[8]||=a(`dt`,null,`当前节点`,-1),a(`dd`,null,t(W.value.run.current_node_key),1)])])]),a(`section`,A,[a(`div`,j,[i[10]||=a(`span`,null,`已采集信息`,-1),a(`small`,null,t(J.value.length)+` 项`,1)]),J.value.length?(s(),m(`div`,M,[(s(!0),m(c,null,f(J.value,([e,n])=>(s(),m(`div`,{key:e},[a(`span`,null,t(q.value.get(e)||e),1),a(`b`,null,t(Z(n)),1)]))),128))])):(s(),m(`div`,N,`尚未采集字段`))]),a(`section`,P,[i[11]||=a(`div`,{class:`section-title`},[a(`span`,null,`最终结果`)],-1),Y.value?(s(),m(`pre`,F,t(JSON.stringify(Y.value,null,2)),1)):(s(),m(`div`,I,`本次执行未收集最终结果`))])])]),a(`section`,L,[i[14]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行反馈`),a(`small`,null,`用于判断 SOP 是否清晰、有效`)],-1),W.value.feedback.length?(s(),m(`div`,R,[(s(!0),m(c,null,f(W.value.feedback,e=>(s(),m(`article`,{key:e.id},[a(`div`,null,[a(`b`,null,t(e.user_name),1),r(y,{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(),m(`div`,z,[a(`div`,null,[i[12]||=a(`span`,null,`本次 SOP 是否好用?`,-1),r(y,{value:K.score,"onUpdate:value":i[1]||=e=>K.score=e},null,8,[`value`])]),r(x,{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:de},{default:g(()=>[...i[13]||=[o(`提交反馈`,-1)]]),_:1},8,[`loading`])])):e(``,!0),!W.value.feedback.length&&!X.value?(s(),m(`div`,B,`暂无反馈`)):e(``,!0)])],64)):e(``,!0)]),_:1},8,[`spinning`])])}}}),[[`__scopeId`,`data-v-7e705b21`]]);export{V as default};