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

2 lines
8.4 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,a as f,et 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}from"./client-Bk7n1O1W.js";import{a as x}from"./config-provider-CxhqvDI_.js";import{t as S}from"./auth-D6Tj4g1X.js";import{n as C,t as w}from"./DeleteOutlined-CRNedxr9.js";import{t as T}from"./PlusOutlined-CosM7zFe.js";import{t as te}from"./ArrowLeftOutlined-B1KoeknA.js";import{h as E,m as D}from"./useApi-CROJJdhE-C8LJOf_8.js";var O={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z`}}]},name:`branches`,theme:`outlined`};function k(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){A(e,t,n[t])})}return e}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j=function(e,t){var n=k({},e,t.attrs);return r(f,k({},n,{icon:O}),null)};j.displayName=`BranchesOutlined`,j.inheritAttrs=!1;var M={class:`page-shell`},N={key:0,class:`detail-heading`},P={class:`heading-tags`},F={class:`scenario-code`},I={class:`surface`},L={class:`toolbar`},R={key:0},z={class:`surface`},B={class:`toolbar`},V={key:0,class:`sop-list`},H=[`onClick`],U={class:`sop-icon`},W={class:`sop-copy`},G={class:`sop-date`},ne={key:1,class:`empty-state`},re={class:`field-grid`},K=_(i({__name:`ScenarioDetailView`,setup(i){let f=D(),_=E(),O=S(),k=Number(f.params.id),A=b(!0),K=b(null),q=b([]),J=b([]),Y=b(!1),X=b(!1),Z=d({field_key:``,field_name:``,field_type:`text`,required:!1,options_text:``,sort_order:0}),Q=d({name:``,description:``}),ie=n(()=>K.value?.status===`active`?`green`:`default`);async function $(){A.value=!0;try{let e=await v.get(`/scenarios/${k}`);K.value=e.scenario,q.value=e.fields,J.value=e.sops}catch(e){x.error(g(e))}finally{A.value=!1}}async function ae(){try{let e=Z.options_text.split(`
`).map(e=>e.trim()).filter(Boolean);await v.post(`/scenarios/${k}/fields`,{...Z,options:e,validation:{},sort_order:q.value.length}),x.success(`字段已添加`),Y.value=!1,Object.assign(Z,{field_key:``,field_name:``,field_type:`text`,required:!1,options_text:``,sort_order:0}),await $()}catch(e){x.error(g(e))}}async function oe(e){C.confirm({title:`删除字段“${e.field_name}”?`,content:`已经使用该字段的 SOP 节点可能需要重新配置。`,okType:`danger`,async onOk(){await v.delete(`/scenario-fields/${e.id}`),await $()}})}async function se(){try{let e=await v.post(`/scenarios/${k}/sops`,Q);x.success(`SOP 草稿已创建`),X.value=!1,_.push(`/sops/${e.sop.id}`)}catch(e){x.error(g(e))}}function ce(e){return{draft:`草稿`,published:`已发布`}[e]||e}return u($),(n,i)=>{let u=y(`a-button`),d=y(`a-tag`),f=y(`a-table`),g=y(`a-tab-pane`),v=y(`a-tabs`),b=y(`a-skeleton`),x=y(`a-input`),S=y(`a-form-item`),C=y(`a-select`),E=y(`a-textarea`),D=y(`a-checkbox`),k=y(`a-form`),$=y(`a-modal`);return s(),p(`div`,M,[r(u,{type:`link`,class:`back-link`,onClick:i[0]||=e=>l(_).push(`/scenarios`)},{default:h(()=>[r(l(te)),i[12]||=o(`返回场景列表`,-1)]),_:1}),r(b,{loading:A.value,active:``},{default:h(()=>[K.value?(s(),p(`div`,N,[a(`div`,null,[a(`div`,P,[r(d,{color:ie.value},{default:h(()=>[o(t(K.value.status===`active`?`使用中`:`草稿`),1)]),_:1},8,[`color`]),a(`span`,null,t(K.value.industry),1),a(`span`,null,t(K.value.role_name),1)]),a(`h1`,null,t(K.value.name),1),a(`p`,null,t(K.value.goal),1)]),a(`div`,F,`SCN-`+t(String(K.value.id).padStart(4,`0`)),1)])):e(``,!0),r(v,{"default-active-key":`fields`,class:`detail-tabs`},{default:h(()=>[r(g,{key:`fields`,tab:`场景字段`},{default:h(()=>[a(`section`,I,[a(`div`,L,[i[14]||=a(`div`,null,[a(`b`,null,`采集字段`),a(`span`,{class:`toolbar-note`},`执行过程中收集的信息`)],-1),l(O).can(`scenario.edit`)?(s(),m(u,{key:0,type:`primary`,onClick:i[1]||=e=>Y.value=!0},{default:h(()=>[r(l(T)),i[13]||=o(`添加字段`,-1)]),_:1})):e(``,!0)]),r(f,{"data-source":q.value,"row-key":`id`,pagination:!1,columns:[{title:`字段名称`,dataIndex:`field_name`},{title:`字段标识`,dataIndex:`field_key`},{title:`类型`,dataIndex:`field_type`,width:130},{title:`必填`,dataIndex:`required`,width:90},{title:``,key:`action`,width:70}]},{bodyCell:h(({column:n,record:i})=>[n.dataIndex===`field_key`?(s(),p(`code`,R,t(i.field_key),1)):n.dataIndex===`required`?(s(),m(d,{key:1,color:i.required?`orange`:`default`},{default:h(()=>[o(t(i.required?`必填`:`选填`),1)]),_:2},1032,[`color`])):n.key===`action`?(s(),p(c,{key:2},[l(O).can(`scenario.edit`)?(s(),m(u,{key:0,type:`text`,danger:``,"aria-label":`删除字段`,onClick:e=>oe(i)},{default:h(()=>[r(l(w))]),_:1},8,[`onClick`])):e(``,!0)],64)):e(``,!0)]),emptyText:h(()=>[...i[15]||=[a(`div`,{class:`empty-copy`},`还没有字段。先添加执行过程中需要收集的客户信息。`,-1)]]),_:1},8,[`data-source`])])]),_:1}),l(O).can(`sop.view`)?(s(),m(g,{key:`sops`,tab:`SOP 流程`},{default:h(()=>[a(`section`,z,[a(`div`,B,[i[17]||=a(`div`,null,[a(`b`,null,`话术流程`),a(`span`,{class:`toolbar-note`},`一个场景可以包含多套 SOP`)],-1),l(O).can(`sop.edit`)?(s(),m(u,{key:0,type:`primary`,onClick:i[2]||=e=>X.value=!0},{default:h(()=>[r(l(T)),i[16]||=o(`创建 SOP`,-1)]),_:1})):e(``,!0)]),J.value.length?(s(),p(`div`,V,[(s(!0),p(c,null,ee(J.value,e=>(s(),p(`button`,{key:e.id,onClick:t=>l(_).push(`/sops/${e.id}`)},[a(`span`,U,[r(l(j))]),a(`span`,W,[a(`b`,null,t(e.name),1),a(`small`,null,t(e.description||`暂无说明`),1)]),r(d,{color:e.status===`published`?`green`:`default`},{default:h(()=>[o(t(ce(e.status)),1)]),_:2},1032,[`color`]),a(`span`,G,t(new Date(e.updated_at).toLocaleDateString(`zh-CN`)),1)],8,H))),128))])):(s(),p(`div`,ne,[r(l(j)),i[18]||=a(`p`,null,`还没有 SOP。创建一套流程将经验变成连续动作。`,-1)]))])]),_:1})):e(``,!0)]),_:1})]),_:1},8,[`loading`]),l(O).can(`scenario.edit`)?(s(),m($,{key:0,open:Y.value,"onUpdate:open":i[8]||=e=>Y.value=e,title:`添加场景字段`,"ok-text":`添加字段`,onOk:ae},{default:h(()=>[r(k,{layout:`vertical`,model:Z},{default:h(()=>[a(`div`,re,[r(S,{label:`字段名称`},{default:h(()=>[r(x,{value:Z.field_name,"onUpdate:value":i[3]||=e=>Z.field_name=e,placeholder:`宠物体重`},null,8,[`value`])]),_:1}),r(S,{label:`字段标识`},{default:h(()=>[r(x,{value:Z.field_key,"onUpdate:value":i[4]||=e=>Z.field_key=e,placeholder:`pet_weight`},null,8,[`value`])]),_:1})]),r(S,{label:`字段类型`},{default:h(()=>[r(C,{value:Z.field_type,"onUpdate:value":i[5]||=e=>Z.field_type=e,options:[{value:`text`,label:`单行文本`},{value:`textarea`,label:`多行文本`},{value:`number`,label:`数字`},{value:`boolean`,label:`是/否`},{value:`select`,label:`单选`},{value:`multiselect`,label:`多选`},{value:`date`,label:`日期`}]},null,8,[`value`])]),_:1}),[`select`,`multiselect`].includes(Z.field_type)?(s(),m(S,{key:0,label:`选项(每行一个)`},{default:h(()=>[r(E,{value:Z.options_text,"onUpdate:value":i[6]||=e=>Z.options_text=e,rows:4},null,8,[`value`])]),_:1})):e(``,!0),r(D,{checked:Z.required,"onUpdate:checked":i[7]||=e=>Z.required=e},{default:h(()=>[...i[19]||=[o(`执行时必须填写`,-1)]]),_:1},8,[`checked`])]),_:1},8,[`model`])]),_:1},8,[`open`])):e(``,!0),l(O).can(`sop.edit`)?(s(),m($,{key:1,open:X.value,"onUpdate:open":i[11]||=e=>X.value=e,title:`创建 SOP 草稿`,"ok-text":`创建并编排`,onOk:se},{default:h(()=>[r(k,{layout:`vertical`,model:Q},{default:h(()=>[r(S,{label:`SOP 名称`},{default:h(()=>[r(x,{value:Q.name,"onUpdate:value":i[9]||=e=>Q.name=e,placeholder:`问诊问药标准流程`},null,8,[`value`])]),_:1}),r(S,{label:`说明`},{default:h(()=>[r(E,{value:Q.description,"onUpdate:value":i[10]||=e=>Q.description=e,rows:4,placeholder:`这套流程适用于什么情况`},null,8,[`value`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`open`])):e(``,!0)])}}}),[[`__scopeId`,`data-v-f755c473`]]);export{K as default};