Files
iqudo-top1/codes/web/dist/assets/ScenarioDetailView-B-4AAfC9.js
2026-08-06 21:48:42 +08:00

2 lines
8.1 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 p,j as m,k as h,lt as g,n as _,r as v,t as y,tt as b,vt as x}from"./client-CO11mUW5.js";import{a as S}from"./config-provider-kwhtQ-D4.js";import{n as C,t as ee}from"./DeleteOutlined-Dsl9pMnk.js";import{t as w}from"./PlusOutlined-5Urx-Evx.js";import{t as T}from"./ArrowLeftOutlined-m6YdiMlD.js";import{h as E,m as D}from"./useApi-CROJJdhE-BlzMTLF9.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`},te={class:`scenario-code`},ne={class:`surface`},F={class:`toolbar`},I={key:0},L={class:`surface`},R={class:`toolbar`},z={key:0,class:`sop-list`},B=[`onClick`],V={class:`sop-icon`},H={class:`sop-copy`},U={class:`sop-date`},W={key:1,class:`empty-state`},G={class:`field-grid`},K=v(i({__name:`ScenarioDetailView`,setup(i){let f=D(),v=E(),O=Number(f.params.id),k=x(!0),A=x(null),K=x([]),q=x([]),J=x(!1),Y=x(!1),X=d({field_key:``,field_name:``,field_type:`text`,required:!1,options_text:``,sort_order:0}),Z=d({name:``,description:``}),re=n(()=>A.value?.status===`active`?`green`:`default`);async function Q(){k.value=!0;try{let e=await y.get(`/scenarios/${O}`);A.value=e.scenario,K.value=e.fields,q.value=e.sops}catch(e){S.error(_(e))}finally{k.value=!1}}async function ie(){try{let e=X.options_text.split(`
`).map(e=>e.trim()).filter(Boolean);await y.post(`/scenarios/${O}/fields`,{...X,options:e,validation:{},sort_order:K.value.length}),S.success(`字段已添加`),J.value=!1,Object.assign(X,{field_key:``,field_name:``,field_type:`text`,required:!1,options_text:``,sort_order:0}),await Q()}catch(e){S.error(_(e))}}async function ae(e){C.confirm({title:`删除字段“${e.field_name}”?`,content:`已经使用该字段的 SOP 节点可能需要重新配置。`,okType:`danger`,async onOk(){await y.delete(`/scenario-fields/${e.id}`),await Q()}})}async function oe(){try{let e=await y.post(`/scenarios/${O}/sops`,Z);S.success(`SOP 草稿已创建`),Y.value=!1,v.push(`/sops/${e.sop.id}`)}catch(e){S.error(_(e))}}function se(e){return{draft:`草稿`,published:`已发布`}[e]||e}return u(Q),(n,i)=>{let u=b(`a-button`),d=b(`a-tag`),f=b(`a-table`),_=b(`a-tab-pane`),y=b(`a-tabs`),x=b(`a-skeleton`),S=b(`a-input`),C=b(`a-form-item`),E=b(`a-select`),D=b(`a-textarea`),O=b(`a-checkbox`),Q=b(`a-form`),$=b(`a-modal`);return s(),m(`div`,M,[r(u,{type:`link`,class:`back-link`,onClick:i[0]||=e=>l(v).push(`/scenarios`)},{default:g(()=>[r(l(T)),i[12]||=o(`返回场景列表`,-1)]),_:1}),r(x,{loading:k.value,active:``},{default:g(()=>[A.value?(s(),m(`div`,N,[a(`div`,null,[a(`div`,P,[r(d,{color:re.value},{default:g(()=>[o(t(A.value.status===`active`?`使用中`:`草稿`),1)]),_:1},8,[`color`]),a(`span`,null,t(A.value.industry),1),a(`span`,null,t(A.value.role_name),1)]),a(`h1`,null,t(A.value.name),1),a(`p`,null,t(A.value.goal),1)]),a(`div`,te,`SCN-`+t(String(A.value.id).padStart(4,`0`)),1)])):e(``,!0),r(y,{"default-active-key":`fields`,class:`detail-tabs`},{default:g(()=>[r(_,{key:`fields`,tab:`场景字段`},{default:g(()=>[a(`section`,ne,[a(`div`,F,[i[14]||=a(`div`,null,[a(`b`,null,`采集字段`),a(`span`,{class:`toolbar-note`},`执行过程中收集的信息`)],-1),r(u,{type:`primary`,onClick:i[1]||=e=>J.value=!0},{default:g(()=>[r(l(w)),i[13]||=o(`添加字段`,-1)]),_:1})]),r(f,{"data-source":K.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:g(({column:n,record:i})=>[n.dataIndex===`field_key`?(s(),m(`code`,I,t(i.field_key),1)):n.dataIndex===`required`?(s(),h(d,{key:1,color:i.required?`orange`:`default`},{default:g(()=>[o(t(i.required?`必填`:`选填`),1)]),_:2},1032,[`color`])):n.key===`action`?(s(),h(u,{key:2,type:`text`,danger:``,"aria-label":`删除字段`,onClick:e=>ae(i)},{default:g(()=>[r(l(ee))]),_:1},8,[`onClick`])):e(``,!0)]),emptyText:g(()=>[...i[15]||=[a(`div`,{class:`empty-copy`},`还没有字段。先添加执行过程中需要收集的客户信息。`,-1)]]),_:1},8,[`data-source`])])]),_:1}),r(_,{key:`sops`,tab:`SOP 流程`},{default:g(()=>[a(`section`,L,[a(`div`,R,[i[17]||=a(`div`,null,[a(`b`,null,`话术流程`),a(`span`,{class:`toolbar-note`},`一个场景可以包含多套 SOP`)],-1),r(u,{type:`primary`,onClick:i[2]||=e=>Y.value=!0},{default:g(()=>[r(l(w)),i[16]||=o(`创建 SOP`,-1)]),_:1})]),q.value.length?(s(),m(`div`,z,[(s(!0),m(c,null,p(q.value,e=>(s(),m(`button`,{key:e.id,onClick:t=>l(v).push(`/sops/${e.id}`)},[a(`span`,V,[r(l(j))]),a(`span`,H,[a(`b`,null,t(e.name),1),a(`small`,null,t(e.description||`暂无说明`),1)]),r(d,{color:e.status===`published`?`green`:`default`},{default:g(()=>[o(t(se(e.status)),1)]),_:2},1032,[`color`]),a(`span`,U,t(new Date(e.updated_at).toLocaleDateString(`zh-CN`)),1)],8,B))),128))])):(s(),m(`div`,W,[r(l(j)),i[18]||=a(`p`,null,`还没有 SOP。创建一套流程将经验变成连续动作。`,-1)]))])]),_:1})]),_:1})]),_:1},8,[`loading`]),r($,{open:J.value,"onUpdate:open":i[8]||=e=>J.value=e,title:`添加场景字段`,"ok-text":`添加字段`,onOk:ie},{default:g(()=>[r(Q,{layout:`vertical`,model:X},{default:g(()=>[a(`div`,G,[r(C,{label:`字段名称`},{default:g(()=>[r(S,{value:X.field_name,"onUpdate:value":i[3]||=e=>X.field_name=e,placeholder:`宠物体重`},null,8,[`value`])]),_:1}),r(C,{label:`字段标识`},{default:g(()=>[r(S,{value:X.field_key,"onUpdate:value":i[4]||=e=>X.field_key=e,placeholder:`pet_weight`},null,8,[`value`])]),_:1})]),r(C,{label:`字段类型`},{default:g(()=>[r(E,{value:X.field_type,"onUpdate:value":i[5]||=e=>X.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(X.field_type)?(s(),h(C,{key:0,label:`选项(每行一个)`},{default:g(()=>[r(D,{value:X.options_text,"onUpdate:value":i[6]||=e=>X.options_text=e,rows:4},null,8,[`value`])]),_:1})):e(``,!0),r(O,{checked:X.required,"onUpdate:checked":i[7]||=e=>X.required=e},{default:g(()=>[...i[19]||=[o(`执行时必须填写`,-1)]]),_:1},8,[`checked`])]),_:1},8,[`model`])]),_:1},8,[`open`]),r($,{open:Y.value,"onUpdate:open":i[11]||=e=>Y.value=e,title:`创建 SOP 草稿`,"ok-text":`创建并编排`,onOk:oe},{default:g(()=>[r(Q,{layout:`vertical`,model:Z},{default:g(()=>[r(C,{label:`SOP 名称`},{default:g(()=>[r(S,{value:Z.name,"onUpdate:value":i[9]||=e=>Z.name=e,placeholder:`问诊问药标准流程`},null,8,[`value`])]),_:1}),r(C,{label:`说明`},{default:g(()=>[r(D,{value:Z.description,"onUpdate:value":i[10]||=e=>Z.description=e,rows:4,placeholder:`这套流程适用于什么情况`},null,8,[`value`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`open`])])}}}),[[`__scopeId`,`data-v-a1877f4c`]]);export{K as default};