Files
iqudo-top1/web/dist/assets/RunDetailView-W8qPXltZ.js
2026-08-09 00:29:26 +08:00

1 line
6.2 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 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-CxhqvDI_.js";import{t as w}from"./auth-D6Tj4g1X.js";import{t as T}from"./ArrowLeftOutlined-B1KoeknA.js";import{t as ee}from"./SafetyCertificateOutlined-B1v8On0u.js";import{h as te,m as ne}from"./useApi-CROJJdhE-C8LJOf_8.js";var E={class:`page-shell run-detail-page`},D={class:`detail-heading`},O={class:`run-code`},re={class:`detail-layout`},ie={class:`surface timeline-panel`},ae={class:`event-head`},oe={key:0},k={key:1,class:`event-knowledge`},A={key:0,class:`risk-note`},j={key:2,class:`event-answers`},M={class:`detail-aside`},N={class:`surface summary-panel`},P={class:`surface answer-panel`},F={class:`section-title`},I={key:0,class:`answer-list`},L={key:1,class:`aside-empty`},R={class:`surface feedback-band`},z={key:0,class:`feedback-list`},B={key:1,class:`feedback-form`},V={key:2,class:`aside-empty`},H=v(i({__name:`RunDetailView`,setup(i){let v=ne(),H=te(),U=w(),W=x(!0),G=x(null),K=x(!1),q=d({score:5,comment:``}),J=n(()=>new Map((G.value?.fields||[]).map(e=>[e.field_key,e.field_name]))),Y=n(()=>Object.entries(G.value?.run.answers||{})),X=n(()=>U.can(`runs.feedback`)&&G.value?.run.status===`completed`&&!G.value.feedback.some(e=>e.user_id===U.user?.user_id));function se(e){return{finish:`正常结束`,escalate:`转人工 / 转诊`,manual:`人工结束`}[e]||e||`进行中`}function ce(e){return{start:`开始执行`,enter:`进入节点`,answer:`提交回答`,finish:`人工结束`}[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 $(){W.value=!0;try{G.value=await y.get(`/runs/${v.params.id}/detail`)}catch(e){C.error(_(e)),H.replace(`/runs`)}finally{W.value=!1}}async function le(){K.value=!0;try{await y.post(`/runs/${v.params.id}/feedback`,q),C.success(`反馈已提交`),await $()}catch(e){C.error(_(e))}finally{K.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`,E,[r(u,{type:`link`,class:`back-link`,onClick:i[0]||=e=>l(H).push(`/runs`)},{default:g(()=>[r(l(T)),i[3]||=o(`返回执行记录`,-1)]),_:1}),r(C,{spinning:W.value},{default:g(()=>[G.value?(s(),m(c,{key:0},[a(`header`,D,[a(`div`,null,[a(`div`,O,`RUN-`+t(String(G.value.run.id).padStart(5,`0`)),1),a(`h1`,null,t(G.value.run.sop_name),1),a(`p`,null,t(G.value.run.scenario_name)+` · V`+t(G.value.run.version)+` · `+t(G.value.run.operator_name),1)]),a(`div`,{class:S([`result-block`,G.value.run.result===`escalate`?`warning`:`success`])},[G.value.run.result===`escalate`?(s(),h(l(ee),{key:0})):(s(),h(l(p),{key:1})),a(`span`,null,[a(`small`,null,t(G.value.run.status===`completed`?`执行结果`:`当前状态`),1),a(`b`,null,t(se(G.value.run.result)),1)])],2)]),a(`section`,re,[a(`main`,ie,[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(G.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`,ae,[a(`b`,null,t(n.node_title||n.node_key),1),r(d,null,{default:g(()=>[o(t(ce(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`,oe,t(n.node_content),1)):e(``,!0),n.action===`enter`&&n.knowledge?(s(),m(`div`,k,[a(`div`,null,[a(`b`,null,t(n.knowledge.title),1),a(`small`,null,`V`+t(n.knowledge.version),1)]),a(`p`,null,t(n.knowledge.standard_copy),1),n.knowledge.risk_note?(s(),m(`p`,A,t(n.knowledge.risk_note),1)):e(``,!0)])):e(``,!0),Q(n).length?(s(),m(`div`,j,[(s(!0),m(c,null,f(Q(n),([e,n])=>(s(),m(`span`,{key:e},[a(`small`,null,t(J.value.get(e)||e),1),a(`b`,null,t(Z(n)),1)]))),128))])):e(``,!0)]),_:2},1032,[`color`]))),128))]),_:1})]),a(`aside`,M,[a(`section`,N,[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:G.value.run.status===`completed`?`green`:`orange`},{default:g(()=>[o(t(G.value.run.status===`completed`?`已完成`:`进行中`),1)]),_:1},8,[`color`])])]),a(`div`,null,[i[6]||=a(`dt`,null,`开始时间`,-1),a(`dd`,null,t(new Date(G.value.run.started_at).toLocaleString(`zh-CN`)),1)]),a(`div`,null,[i[7]||=a(`dt`,null,`完成时间`,-1),a(`dd`,null,t(G.value.run.completed_at?new Date(G.value.run.completed_at).toLocaleString(`zh-CN`):`-`),1)]),a(`div`,null,[i[8]||=a(`dt`,null,`当前节点`,-1),a(`dd`,null,t(G.value.run.current_node_key),1)])])]),a(`section`,P,[a(`div`,F,[i[10]||=a(`span`,null,`已采集信息`,-1),a(`small`,null,t(Y.value.length)+``,1)]),Y.value.length?(s(),m(`div`,I,[(s(!0),m(c,null,f(Y.value,([e,n])=>(s(),m(`div`,{key:e},[a(`span`,null,t(J.value.get(e)||e),1),a(`b`,null,t(Z(n)),1)]))),128))])):(s(),m(`div`,L,`尚未采集字段`))])])]),a(`section`,R,[i[13]||=a(`div`,{class:`section-title`},[a(`span`,null,`执行反馈`),a(`small`,null,`用于判断 SOP 是否清晰、有效`)],-1),G.value.feedback.length?(s(),m(`div`,z,[(s(!0),m(c,null,f(G.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`,B,[a(`div`,null,[i[11]||=a(`span`,null,`本次 SOP 是否好用?`,-1),r(y,{value:q.score,"onUpdate:value":i[1]||=e=>q.score=e},null,8,[`value`])]),r(x,{value:q.comment,"onUpdate:value":i[2]||=e=>q.comment=e,rows:3,maxlength:2e3,"show-count":``,placeholder:`记录不顺畅的步骤、缺失信息或有效话术。`},null,8,[`value`]),r(u,{type:`primary`,loading:K.value,onClick:le},{default:g(()=>[...i[12]||=[o(`提交反馈`,-1)]]),_:1},8,[`loading`])])):e(``,!0),!G.value.feedback.length&&!X.value?(s(),m(`div`,V,`暂无反馈`)):e(``,!0)])],64)):e(``,!0)]),_:1},8,[`spinning`])])}}}),[[`__scopeId`,`data-v-debb43a3`]]);export{H as default};