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

3 lines
22 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,zt as ee}from"./client-Bk7n1O1W.js";import{a as S,on as te}from"./config-provider-CxhqvDI_.js";import{t as C}from"./auth-D6Tj4g1X.js";import{t as w}from"./modal-C5Vo2Ug5.js";import{t as T}from"./PlusOutlined-CosM7zFe.js";import{t as ne}from"./ArrowLeftOutlined-B1KoeknA.js";import{t as E}from"./DeleteOutlined-Bt9-1HZZ.js";import{t as re}from"./HistoryOutlined-ABEqcIfz.js";import{h as ie,m as ae}from"./useApi-CROJJdhE-C8LJOf_8.js";var D={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0048.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z`}}]},name:`arrow-down`,theme:`outlined`};function O(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){k(e,t,n[t])})}return e}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var A=function(e,t){var n=O({},e,t.attrs);return r(f,O({},n,{icon:D}),null)};A.displayName=`ArrowDownOutlined`,A.inheritAttrs=!1;var j={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z`}}]},name:`arrow-up`,theme:`outlined`};function M(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){N(e,t,n[t])})}return e}function N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var P=function(e,t){var n=M({},e,t.attrs);return r(f,M({},n,{icon:j}),null)};P.displayName=`ArrowUpOutlined`,P.inheritAttrs=!1;var F={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 000 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z`}}]},name:`rollback`,theme:`outlined`};function I(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){L(e,t,n[t])})}return e}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=function(e,t){var n=I({},e,t.attrs);return r(f,I({},n,{icon:F}),null)};R.displayName=`RollbackOutlined`,R.inheritAttrs=!1;var z={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z`}}]},name:`save`,theme:`outlined`};function B(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){V(e,t,n[t])})}return e}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var H=function(e,t){var n=B({},e,t.attrs);return r(f,B({},n,{icon:z}),null)};H.displayName=`SaveOutlined`,H.inheritAttrs=!1;var U={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z`}}]},name:`send`,theme:`outlined`};function W(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){G(e,t,n[t])})}return e}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var K=function(e,t){var n=W({},e,t.attrs);return r(f,W({},n,{icon:U}),null)};K.displayName=`SendOutlined`,K.inheritAttrs=!1;var oe={class:`editor-page`},se={class:`editor-header`},ce={class:`editor-title`},le={class:`page-actions`},ue={class:`editor-workbench`},de={class:`node-rail surface`},fe={class:`rail-title`},pe={class:`node-list`},me=[`onClick`],he={class:`node-index`},ge={class:`node-meta`},_e={key:0,class:`node-move`},ve={key:0,class:`node-editor surface`},ye={class:`node-editor-head`},be={class:`node-type-mark`},xe={class:`property-grid`},Se={key:0,class:`property-grid`},Ce={key:0,class:`snapshot-note`},we={class:`transition-list`},Te={class:`route-target`},Ee={key:0,class:`route-empty`},De={key:0,class:`edge-builder`},Oe={class:`edge-main`},ke={class:`condition-toggle`},Ae={key:0,class:`condition-builder`},je={class:`condition-mode`},Me={class:`version-list`},Ne={class:`version-number`},Pe={class:`version-copy`},Fe={class:`version-actions`},q=v(i({__name:`SOPEditorView`,setup(i){let f=ae(),v=ie(),D=Number(f.params.id),O=C(),k=x(!0),j=x(!1),M=x(!1),N=x(!1),F=x(null),I=x(null),L=x([]),z=x([]),B=x([]),V=x(``),U=x([]),W=x([]),G=n(()=>z.value.find(e=>e.node_key===V.value)),q=n(()=>I.value?.status===`draft`),J=n(()=>q.value&&O.can(`sop.edit`)),Ie=n(()=>I.value?.status===`reviewing`),Le=n(()=>I.value?.version===Math.max(0,...L.value.map(e=>e.version))),Re=n(()=>L.value.some(e=>[`draft`,`reviewing`].includes(e.status))),ze=[{value:`message`,label:`标准话术`},{value:`question`,label:`单项提问`},{value:`form`,label:`信息表单`},{value:`choice`,label:`选择判断`},{value:`condition`,label:`条件节点`},{value:`knowledge`,label:`知识卡`},{value:`escalate`,label:`转人工/转诊`},{value:`finish`,label:`结束`}],Y=()=>({field:``,operator:`equals`,value:``}),X=d({target_node_key:``,conditional:!1,mode:`all`,rules:[Y()]});async function Z(){k.value=!0;try{let e=Number(f.query.version||0),t=await y.get(`/sops/${D}`,{params:e?{version:e}:{}});F.value=t.sop,I.value=t.version,z.value=t.nodes.map(e=>({...e,config:e.config||{}})),B.value=t.edges.map(e=>({...e,condition:e.condition||{}})),V.value=z.value[0]?.node_key||``;let[n,r,i]=await Promise.all([y.get(`/scenarios/${t.sop.scenario_id}`),y.get(`/knowledge-cards`),y.get(`/sops/${D}/versions`)]);U.value=n.fields,W.value=(r.items||[]).filter(e=>e.scenario_id===t.sop.scenario_id),L.value=i.items||[]}catch(e){S.error(_(e))}finally{k.value=!1}}function Be(){let e=`node_${Date.now()}`;z.value.push({id:0,created_at:``,updated_at:``,node_key:e,type:`message`,title:`新步骤`,content:``,config:{},position_x:0,position_y:z.value.length*120}),V.value=e}function Ve(e){if([`start`].includes(e.type))return S.warning(`开始节点不能删除`);w.confirm({title:`删除“${e.title}”?`,content:`与该节点关联的转移条件也会删除。`,okType:`danger`,onOk(){z.value=z.value.filter(t=>t.node_key!==e.node_key),B.value=B.value.filter(t=>t.source_node_key!==e.node_key&&t.target_node_key!==e.node_key),V.value=z.value[0]?.node_key||``}})}function He(e,t){let n=e+t;if(n<0||n>=z.value.length)return;let r=[...z.value];[r[e],r[n]]=[r[n],r[e]],r.forEach((e,t)=>e.position_y=t*120),z.value=r}function Q(e){return B.value.filter(t=>t.source_node_key===e).sort((e,t)=>e.priority-t.priority)}function Ue(e){return!e||Object.keys(e).length===0}function We(e){B.value.filter(t=>t.source_node_key===e).sort((e,t)=>Number(Ue(e.condition))-Number(Ue(t.condition))).forEach((e,t)=>e.priority=t)}function Ge(e){if(e.operator===`in`)return e.value.split(`,`).map(e=>Xe(e.trim())).filter(e=>e!==``);if(![`exists`,`not_exists`].includes(e.operator))return Xe(e.value)}function Ke(){if(!G.value||!X.target_node_key)return;let e={};if(X.conditional){let t=X.rules.filter(e=>e.field).map(e=>{let t={field:e.field,operator:e.operator},n=Ge(e);return n!==void 0&&(t.value=n),t});if(!t.length)return S.warning(`请至少配置一条有效条件`);e=t.length===1?t[0]:{[X.mode]:t}}B.value.push({id:0,created_at:``,updated_at:``,source_node_key:G.value.node_key,target_node_key:X.target_node_key,condition:e,priority:Q(G.value.node_key).length}),We(G.value.node_key),X.target_node_key=``,X.conditional=!1,X.mode=`all`,X.rules.splice(0,X.rules.length,Y())}function qe(e){B.value=B.value.filter(t=>t!==e),We(e.source_node_key)}function Je(){X.rules.push(Y())}function Ye(e){X.rules.length>1&&X.rules.splice(e,1)}function Xe(e){return e===`true`?!0:e===`false`?!1:e!==``&&!Number.isNaN(Number(e))?Number(e):e}function Ze(){G.value&&delete G.value.config.knowledge_card_version_id}function $(e){if(!e||Object.keys(e).length===0)return`默认路径`;if(Array.isArray(e.any))return`任一:${e.any.map($).join(``)}`;if(Array.isArray(e.all))return`全部:${e.all.map($).join(``)}`;if(!e.field)return`未识别条件`;let t={equals:`等于`,not_equals:`不等于`,contains:`包含`,greater_than:`大于`,less_than:`小于`,in:`属于列表`,exists:`已填写`,not_exists:`未填写`},n=U.value.find(t=>t.field_key===e.field)?.field_name||e.field,r=Array.isArray(e.value)?e.value.join(``):e.value??``;return`${n} ${t[e.operator]||e.operator} ${r}`}async function Qe(){j.value=!0;try{return await y.put(`/sops/${D}/draft`,{start_node_key:I.value?.start_node_key||`start`,nodes:z.value.map(({node_key:e,type:t,title:n,content:r,config:i,position_x:a,position_y:o})=>({node_key:e,type:t,title:n,content:r,config:i,position_x:a,position_y:o})),edges:B.value.map(({source_node_key:e,target_node_key:t,condition:n,priority:r})=>({source_node_key:e,target_node_key:t,condition:n,priority:r}))}),S.success(`草稿已保存`),await Z(),!0}catch(e){return S.error(_(e)),!1}finally{j.value=!1}}async function $e(){try{let e=f.query.version?`?version=${encodeURIComponent(String(f.query.version))}`:``,t=await y.post(`/sops/${D}/validate${e}`);t.valid?S.success(`流程校验通过`):w.warning({title:`流程还不能发布`,content:t.problems.join(``)})}catch(e){S.error(_(e))}}async function et(){try{if(!await Qe())return;await y.post(`/sops/${D}/submit-review`),S.success(`SOP 已提交审核`),await Z()}catch(e){S.error(_(e))}}async function tt(){try{if(J.value&&!await Qe())return;await y.post(`/sops/${D}/publish`),S.success(`SOP 已发布`),await Z()}catch(e){S.error(_(e))}}async function nt(){try{await y.post(`/sops/${D}/offline`),S.success(`SOP 已下线`),await Z()}catch(e){S.error(_(e))}}async function rt(){try{await y.post(`/sops/${D}/versions`),await v.replace({query:{}}),S.success(`已创建新草稿版本`),await Z()}catch(e){S.error(_(e))}}async function it(e){await v.replace({query:{version:String(e)}}),M.value=!1,await Z()}function at(e){w.confirm({title:`回滚到 V${e.version}`,content:`系统会复制该历史版本并生成一个新的已发布版本,当前已发布版本将保留为历史记录。`,okText:`确认回滚`,async onOk(){N.value=!0;try{let t=await y.post(`/sops/${D}/rollback`,{version:e.version});await v.replace({query:{}}),M.value=!1,S.success(`已回滚并发布为 V${t.version}`),await Z()}catch(e){S.error(_(e))}finally{N.value=!1}}})}function ot(e){return{draft:`草稿`,reviewing:`审核中`,published:`已发布`,superseded:`历史版本`,offline:`已下线`}[e]||e}return u(Z),(n,i)=>{let u=b(`a-button`),d=b(`a-input`),f=b(`a-form-item`),_=b(`a-select`),y=b(`a-textarea`),x=b(`a-switch`),S=b(`a-form`),C=b(`a-tag`),w=b(`a-segmented`),ie=b(`a-empty`),ae=b(`a-spin`),D=b(`a-tooltip`),B=b(`a-drawer`);return s(),m(`div`,oe,[a(`header`,se,[a(`div`,ce,[r(u,{type:`text`,"aria-label":`返回场景`,onClick:i[0]||=e=>l(v).push(`/scenarios/${F.value?.scenario_id}`)},{default:g(()=>[r(l(ne))]),_:1}),a(`div`,null,[a(`b`,null,t(F.value?.name||`SOP 编辑器`),1),a(`span`,null,`版本 `+t(I.value?.version)+` · `+t(ot(I.value?.status||``)),1)])]),a(`div`,le,[r(u,{onClick:i[1]||=e=>M.value=!0},{default:g(()=>[r(l(re)),i[15]||=o(`版本历史`,-1)]),_:1}),r(u,{onClick:$e},{default:g(()=>[...i[16]||=[o(`校验流程`,-1)]]),_:1}),J.value?(s(),h(u,{key:0,loading:j.value,onClick:Qe},{default:g(()=>[r(l(H)),i[17]||=o(`保存`,-1)]),_:1},8,[`loading`])):e(``,!0),J.value&&l(O).can(`sop.submit_review`)?(s(),h(u,{key:1,onClick:et},{default:g(()=>[r(l(K)),i[18]||=o(`提交审核`,-1)]),_:1})):e(``,!0),l(O).can(`sop.publish`)&&(Ie.value||q.value&&l(O).can(`*`))?(s(),h(u,{key:2,type:`primary`,onClick:tt},{default:g(()=>[r(l(K)),i[19]||=o(`发布`,-1)]),_:1})):e(``,!0),I.value?.status===`published`&&l(O).can(`sop.publish`)?(s(),h(u,{key:3,danger:``,onClick:nt},{default:g(()=>[...i[20]||=[o(`下线`,-1)]]),_:1})):e(``,!0),l(O).can(`sop.edit`)&&Le.value&&!Re.value&&!q.value&&I.value?.status!==`reviewing`?(s(),h(u,{key:4,type:`primary`,onClick:rt},{default:g(()=>[r(l(T)),i[21]||=o(`创建新版本`,-1)]),_:1})):e(``,!0)])]),r(ae,{spinning:k.value},{default:g(()=>[a(`main`,ue,[a(`aside`,de,[a(`div`,fe,[i[22]||=a(`span`,null,`流程节点`,-1),J.value?(s(),h(u,{key:0,type:`text`,"aria-label":`添加节点`,onClick:Be},{default:g(()=>[r(l(T))]),_:1})):e(``,!0)]),a(`div`,pe,[(s(!0),m(c,null,p(z.value,(n,i)=>(s(),m(`button`,{key:n.node_key,class:ee({active:V.value===n.node_key}),onClick:e=>V.value=n.node_key},[a(`span`,he,t(String(i+1).padStart(2,`0`)),1),a(`span`,ge,[a(`b`,null,t(n.title),1),a(`small`,null,t(ze.find(e=>e.value===n.type)?.label||n.type),1)]),J.value&&n.type!==`start`?(s(),m(`span`,_e,[r(l(P),{onClick:te(e=>He(i,-1),[`stop`])},null,8,[`onClick`]),r(l(A),{onClick:te(e=>He(i,1),[`stop`])},null,8,[`onClick`])])):e(``,!0)],10,me))),128))])]),G.value?(s(),m(`section`,ve,[a(`div`,ye,[a(`div`,null,[a(`span`,be,t(G.value.type.toUpperCase()),1),a(`h2`,null,t(G.value.title),1)]),J.value&&G.value.type!==`start`?(s(),h(u,{key:0,danger:``,type:`text`,onClick:i[2]||=e=>Ve(G.value)},{default:g(()=>[r(l(E)),i[23]||=o(`删除`,-1)]),_:1})):e(``,!0)]),r(S,{layout:`vertical`,class:`property-form`},{default:g(()=>[a(`div`,xe,[r(f,{label:`节点名称`},{default:g(()=>[r(d,{value:G.value.title,"onUpdate:value":i[3]||=e=>G.value.title=e,disabled:!J.value},null,8,[`value`,`disabled`])]),_:1}),r(f,{label:`节点类型`},{default:g(()=>[r(_,{value:G.value.type,"onUpdate:value":i[4]||=e=>G.value.type=e,disabled:!J.value||G.value.type===`start`,options:ze},null,8,[`value`,`disabled`])]),_:1})]),r(f,{label:`标准话术 / 操作提示`},{default:g(()=>[r(y,{value:G.value.content,"onUpdate:value":i[5]||=e=>G.value.content=e,disabled:!J.value,rows:5,placeholder:`执行到此节点时展示给一线人员的内容`},null,8,[`value`,`disabled`])]),_:1}),[`question`,`choice`].includes(G.value.type)?(s(),m(`div`,Se,[r(f,{label:`写入场景字段`},{default:g(()=>[r(_,{value:G.value.config.field_key,"onUpdate:value":i[6]||=e=>G.value.config.field_key=e,disabled:!J.value,"show-search":``,"option-filter-prop":`label`,placeholder:`选择需要采集的字段`,options:U.value.map(e=>({value:e.field_key,label:`${e.field_name} (${e.field_key})`}))},null,8,[`value`,`disabled`,`options`])]),_:1}),r(f,{label:`是否必填`},{default:g(()=>[r(x,{checked:G.value.config.required,"onUpdate:checked":i[7]||=e=>G.value.config.required=e,disabled:!J.value},null,8,[`checked`,`disabled`])]),_:1})])):e(``,!0),G.value.type===`form`?(s(),h(f,{key:1,label:`表单采集字段`},{default:g(()=>[r(_,{value:G.value.config.field_keys,"onUpdate:value":i[8]||=e=>G.value.config.field_keys=e,mode:`multiple`,disabled:!J.value,"show-search":``,"option-filter-prop":`label`,placeholder:`选择本步骤需要采集的字段`,options:U.value.map(e=>({value:e.field_key,label:`${e.field_name} (${e.field_key})`}))},null,8,[`value`,`disabled`,`options`])]),_:1})):e(``,!0),G.value.type===`choice`?(s(),h(f,{key:2,label:`可选项(每行一个)`},{default:g(()=>[r(y,{value:(G.value.config.options||[]).join(`
`),disabled:!J.value,rows:4,onChange:i[9]||=e=>G.value.config.options=e.target.value.split(`
`).filter(Boolean)},null,8,[`value`,`disabled`])]),_:1})):e(``,!0),G.value.type===`knowledge`?(s(),h(f,{key:3,label:`关联知识卡`},{default:g(()=>[r(_,{value:G.value.config.knowledge_card_id,"onUpdate:value":i[10]||=e=>G.value.config.knowledge_card_id=e,disabled:!J.value,placeholder:`选择已发布知识卡`,options:W.value.map(e=>({value:e.id,label:e.title})),onChange:Ze},null,8,[`value`,`disabled`,`options`]),G.value.config.knowledge_card_version_id?(s(),m(`div`,Ce,`已发布快照:知识卡版本 ID `+t(G.value.config.knowledge_card_version_id),1)):e(``,!0)]),_:1})):e(``,!0)]),_:1}),i[29]||=a(`div`,{class:`transition-head`},[a(`div`,null,[a(`b`,null,`下一步路径`),a(`span`,null,`条件路径优先匹配,默认路径始终排在最后`)])],-1),a(`div`,we,[(s(!0),m(c,null,p(Q(V.value),n=>(s(),m(`div`,{key:`${n.source_node_key}-${n.target_node_key}-${n.priority}`,class:`transition-row`},[i[24]||=a(`span`,{class:`route-line`},null,-1),a(`span`,Te,t(z.value.find(e=>e.node_key===n.target_node_key)?.title||n.target_node_key),1),r(C,null,{default:g(()=>[o(t($(n.condition)),1)]),_:2},1024),J.value?(s(),h(u,{key:0,type:`text`,danger:``,"aria-label":`删除路径`,onClick:e=>qe(n)},{default:g(()=>[r(l(E))]),_:1},8,[`onClick`])):e(``,!0)]))),128)),Q(V.value).length?e(``,!0):(s(),m(`div`,Ee,`还没有下一步路径`))]),J.value&&![`finish`,`escalate`].includes(G.value.type)?(s(),m(`div`,De,[a(`div`,Oe,[r(_,{value:X.target_node_key,"onUpdate:value":i[11]||=e=>X.target_node_key=e,placeholder:`选择目标节点`,options:z.value.filter(e=>e.node_key!==V.value).map(e=>({value:e.node_key,label:e.title}))},null,8,[`value`,`options`]),a(`span`,ke,[r(x,{checked:X.conditional,"onUpdate:checked":i[12]||=e=>X.conditional=e,size:`small`},null,8,[`checked`]),i[25]||=o(`使用条件`,-1)]),r(u,{type:`primary`,onClick:Ke},{default:g(()=>[r(l(T)),i[26]||=o(`添加路径`,-1)]),_:1})]),X.conditional?(s(),m(`div`,Ae,[a(`div`,je,[i[27]||=a(`span`,null,`匹配方式`,-1),r(w,{value:X.mode,"onUpdate:value":i[13]||=e=>X.mode=e,options:[{label:`全部满足`,value:`all`},{label:`任一满足`,value:`any`}]},null,8,[`value`])]),(s(!0),m(c,null,p(X.rules,(e,t)=>(s(),m(`div`,{key:t,class:`condition-rule`},[r(_,{value:e.field,"onUpdate:value":t=>e.field=t,"show-search":``,"option-filter-prop":`label`,placeholder:`场景字段`,options:U.value.map(e=>({value:e.field_key,label:e.field_name}))},null,8,[`value`,`onUpdate:value`,`options`]),r(_,{value:e.operator,"onUpdate:value":t=>e.operator=t,options:[{value:`equals`,label:`等于`},{value:`not_equals`,label:`不等于`},{value:`contains`,label:`包含`},{value:`greater_than`,label:`大于`},{value:`less_than`,label:`小于`},{value:`in`,label:`属于列表`},{value:`exists`,label:`已填写`},{value:`not_exists`,label:`未填写`}]},null,8,[`value`,`onUpdate:value`]),r(d,{value:e.value,"onUpdate:value":t=>e.value=t,disabled:[`exists`,`not_exists`].includes(e.operator),placeholder:e.operator===`in`?`多个值用逗号分隔`:`条件值`},null,8,[`value`,`onUpdate:value`,`disabled`,`placeholder`]),r(u,{type:`text`,danger:``,"aria-label":`删除条件`,disabled:X.rules.length===1,onClick:e=>Ye(t)},{default:g(()=>[r(l(E))]),_:1},8,[`disabled`,`onClick`])]))),128)),r(u,{type:`dashed`,size:`small`,onClick:Je},{default:g(()=>[r(l(T)),i[28]||=o(`增加条件`,-1)]),_:1})])):e(``,!0)])):e(``,!0)])):(s(),h(ie,{key:1,description:`请选择一个节点`,class:`surface editor-empty`}))])]),_:1},8,[`spinning`]),r(B,{open:M.value,"onUpdate:open":i[14]||=e=>M.value=e,title:`SOP 版本历史`,width:`580`},{default:g(()=>[a(`div`,Me,[(s(!0),m(c,null,p(L.value,n=>(s(),m(`section`,{key:n.id,class:ee([`version-row`,{current:n.version===I.value?.version}])},[a(`div`,Ne,`V`+t(n.version),1),a(`div`,Pe,[a(`div`,null,[r(C,{color:n.status===`published`?`green`:n.status===`reviewing`?`orange`:`default`},{default:g(()=>[o(t(ot(n.status)),1)]),_:2},1032,[`color`]),a(`span`,null,t(n.creator_name||`未知创建人`),1)]),a(`time`,null,t(new Date(n.published_at||n.created_at).toLocaleString(`zh-CN`)),1)]),a(`div`,Fe,[r(u,{size:`small`,onClick:e=>it(n.version)},{default:g(()=>[...i[30]||=[o(`查看`,-1)]]),_:1},8,[`onClick`]),l(O).can(`sop.publish`)&&[`superseded`,`offline`].includes(n.status)&&!Re.value?(s(),h(D,{key:0,title:`复制该版本并作为新版本发布`},{default:g(()=>[r(u,{size:`small`,loading:N.value,onClick:e=>at(n)},{default:g(()=>[r(l(R)),i[31]||=o(`回滚`,-1)]),_:1},8,[`loading`,`onClick`])]),_:2},1024)):e(``,!0)])],2))),128))])]),_:1},8,[`open`])])}}}),[[`__scopeId`,`data-v-22f5b081`]]);export{q as default};