Files
iqudo-top1/web/dist/assets/ExecuteView-CJavC20H.js
2026-08-08 22:58:35 +08:00

1 line
6.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"./PlayCircleOutlined-DjeS67m_.js";import{t as T}from"./SafetyCertificateOutlined-B1v8On0u.js";var E={class:`page-shell execution-shell`},D={key:0,class:`sop-catalog`},O=[`onClick`],ee={class:`entry-seq`},te={class:`play`},k={key:1,class:`run-workspace`},A={class:`run-context`},j={class:`run-label`},M={class:`context-meta`},ne={class:`context-meta`},re={class:`privacy-note`},N={class:`conversation surface`},P={class:`conversation-progress`},F={class:`node-content`},I={key:0},L={key:0,class:`completed-state`},R={key:0,class:`quick-feedback`},z={key:1,class:`feedback-thanks`},B={class:`run-actions`},V=v(i({__name:`ExecuteView`,setup(i){let v=x(!0),V=x([]),H=x(null),U=d({}),W=x(!1),G=d({score:5,comment:``}),K=x(!1),q=n(()=>H.value?.node.config||{}),J=n(()=>{if(!H.value)return[];let e=H.value.node;return e.type===`question`||e.type===`choice`?H.value.fields.filter(e=>e.field_key===q.value.field_key):e.type===`form`?H.value.fields.filter(e=>(q.value.field_keys||[]).includes(e.field_key)):[]});async function Y(){v.value=!0;try{V.value=(await y.get(`/published-sops`)).items}catch(e){C.error(_(e))}finally{v.value=!1}}async function ie(e){try{H.value=await y.post(`/runs`,{sop_id:e}),Object.keys(U).forEach(e=>delete U[e]),Object.assign(G,{score:5,comment:``}),K.value=!1}catch(e){C.error(_(e))}}async function ae(){if(H.value){W.value=!0;try{H.value=await y.post(`/runs/${H.value.run.id}/answer`,{node_key:H.value.node.node_key,answers:{...U}}),Object.keys(U).forEach(e=>delete U[e])}catch(e){C.error(_(e))}finally{W.value=!1}}}function X(e){return e.field_type}async function oe(){if(H.value){W.value=!0;try{await y.post(`/runs/${H.value.run.id}/feedback`,G),K.value=!0,C.success(`反馈已提交`)}catch(e){C.error(_(e))}finally{W.value=!1}}}function se(){H.value=null,Y()}return u(Y),(n,i)=>{let u=b(`a-empty`),d=b(`a-rate`),_=b(`a-textarea`),y=b(`a-button`),x=b(`a-input`),C=b(`a-input-number`),Y=b(`a-radio`),Z=b(`a-radio-group`),Q=b(`a-select`),ce=b(`a-date-picker`),$=b(`a-form-item`),le=b(`a-radio-button`),ue=b(`a-form`),de=b(`a-spin`);return s(),m(`div`,E,[i[14]||=a(`div`,{class:`page-heading`},[a(`div`,null,[a(`h1`,null,`执行话术`),a(`p`,null,`选择已发布 SOP系统会根据客户回答给出下一步。`)])],-1),r(de,{spinning:v.value},{default:g(()=>[H.value?(s(),m(`div`,k,[a(`aside`,A,[a(`span`,j,`RUN-`+t(String(H.value.run.id).padStart(5,`0`)),1),i[6]||=a(`h2`,null,`执行进行中`,-1),i[7]||=a(`p`,null,`客户回答会自动保存在当前执行记录中。`,-1),a(`div`,M,[i[3]||=a(`span`,null,`当前节点`,-1),a(`b`,null,t(H.value.node.title),1)]),a(`div`,ne,[i[4]||=a(`span`,null,`已采集字段`,-1),a(`b`,null,t(Object.keys(H.value.run.answers||{}).length),1)]),a(`div`,re,[r(l(T)),i[5]||=a(`span`,null,`敏感信息请遵循企业数据规范`,-1)])]),a(`main`,N,[a(`div`,P,[a(`span`,{class:S({done:H.value.run.status===`completed`})},null,2),a(`b`,null,t(H.value.run.status===`completed`?`流程已完成`:`正在执行`),1)]),a(`div`,F,[a(`small`,null,t(H.value.node.type.toUpperCase()),1),a(`h1`,null,t(H.value.node.title),1),H.value.node.content?(s(),m(`blockquote`,I,t(H.value.node.content),1)):e(``,!0)]),H.value.run.status===`completed`?(s(),m(`div`,L,[r(l(p)),a(`h3`,null,t(H.value.node.type===`escalate`?`已转交处理`:`本次执行已完成`),1),a(`p`,null,t(H.value.node.content),1),K.value?(s(),m(`div`,z,`反馈已记录,将用于后续优化。`)):(s(),m(`div`,R,[i[9]||=a(`span`,null,`这套 SOP 是否清晰好用?`,-1),r(d,{value:G.score,"onUpdate:value":i[0]||=e=>G.score=e},null,8,[`value`]),r(_,{value:G.comment,"onUpdate:value":i[1]||=e=>G.comment=e,rows:2,maxlength:2e3,placeholder:`可填写需要改进的步骤`},null,8,[`value`]),r(y,{type:`primary`,loading:W.value,onClick:oe},{default:g(()=>[...i[8]||=[o(`提交反馈`,-1)]]),_:1},8,[`loading`])])),r(y,{onClick:se},{default:g(()=>[...i[10]||=[o(`执行另一套 SOP`,-1)]]),_:1})])):(s(),m(c,{key:1},[r(ue,{layout:`vertical`,class:`answer-form`},{default:g(()=>[(s(!0),m(c,null,f(J.value,e=>(s(),h($,{key:e.id,label:e.field_name,required:e.required},{default:g(()=>[X(e)===`text`?(s(),h(x,{key:0,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t},null,8,[`value`,`onUpdate:value`])):X(e)===`textarea`?(s(),h(_,{key:1,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t,rows:3},null,8,[`value`,`onUpdate:value`])):X(e)===`number`?(s(),h(C,{key:2,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t,style:{width:`100%`}},null,8,[`value`,`onUpdate:value`])):X(e)===`boolean`?(s(),h(Z,{key:3,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t},{default:g(()=>[r(Y,{value:!0},{default:g(()=>[...i[11]||=[o(``,-1)]]),_:1}),r(Y,{value:!1},{default:g(()=>[...i[12]||=[o(``,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])):X(e)===`select`?(s(),h(Q,{key:4,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t,options:(e.options||[]).map(e=>({value:e,label:e}))},null,8,[`value`,`onUpdate:value`,`options`])):X(e)===`multiselect`?(s(),h(Q,{key:5,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t,mode:`multiple`,options:(e.options||[]).map(e=>({value:e,label:e}))},null,8,[`value`,`onUpdate:value`,`options`])):X(e)===`date`?(s(),h(ce,{key:6,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t,style:{width:`100%`}},null,8,[`value`,`onUpdate:value`])):(s(),h(x,{key:7,value:U[e.field_key],"onUpdate:value":t=>U[e.field_key]=t},null,8,[`value`,`onUpdate:value`]))]),_:2},1032,[`label`,`required`]))),128)),H.value.node.type===`choice`&&J.value.length===0?(s(),h($,{key:0},{default:g(()=>[r(Z,{value:U[q.value.field_key],"onUpdate:value":i[2]||=e=>U[q.value.field_key]=e,class:`choice-group`},{default:g(()=>[(s(!0),m(c,null,f(q.value.options||[],e=>(s(),h(le,{key:e,value:e},{default:g(()=>[o(t(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`value`])]),_:1})):e(``,!0)]),_:1}),a(`div`,B,[a(`span`,null,t(J.value.length?`填写后继续下一步`:`确认当前话术已完成`),1),r(y,{type:`primary`,size:`large`,loading:W.value,onClick:ae},{default:g(()=>[...i[13]||=[o(`继续下一步`,-1)]]),_:1},8,[`loading`])])],64))])])):(s(),m(`div`,D,[(s(!0),m(c,null,f(V.value,e=>(s(),m(`button`,{key:e.id,class:`sop-entry surface`,onClick:t=>ie(e.id)},[a(`span`,ee,t(String(e.id).padStart(2,`0`)),1),a(`div`,null,[a(`small`,null,t(e.scenario_name)+` · V`+t(e.version),1),a(`h2`,null,t(e.name),1),a(`p`,null,t(e.description||`按标准步骤执行这套话术流程。`),1)]),a(`span`,te,[r(l(w))])],8,O))),128)),V.value.length?e(``,!0):(s(),h(u,{key:0,description:`还没有已发布的 SOP`}))]))]),_:1},8,[`spinning`])])}}}),[[`__scopeId`,`data-v-e2671b1e`]]);export{V as default};