6 lines
14 KiB
JavaScript
6 lines
14 KiB
JavaScript
import{n as e}from"./rolldown-runtime-hePW80VL.js";import{D as t,E as n,Ht as r,On as i,Ut as a,Yt as o,_ as s,b as c,bt as l,g as u,it as d,k as f,mt as p,o as m,ot as h,qt as g,tr as _,v,vn as y,xn as b,y as x}from"./runtime-core.esm-bundler-DkysjgTd.js";import{S,t as C}from"./runtime-dom.esm-bundler-CirRHyjC.js";import{t as w}from"./objectSpread2-BmonrgTA.js";import{n as T}from"./objectWithoutProperties-BjoYlK0I.js";import{r as E}from"./en_US-Cv9hrLhb.js";import{G as D,Tt as O,X as k,Y as A,ft as j,h as M,l as N,m as P,mt as F,q as I,rt as L,t as R,u as ee,vt as z,xt as te}from"./useConfigInject-z_xeO0pP.js";import{t as B}from"./initDefaultProps-D8Mki4gM.js";import{t as V}from"./vue-types-CFReUAWV.js";import{t as ne}from"./devWarning-DlchpATv.js";import{t as H}from"./vnode-CRVBf7wj.js";import{i as re,t as ie}from"./collapseMotion-BfalGvoQ.js";import{t as U}from"./alert-CkUknOsQ.js";import{a as ae}from"./tooltip-DP9wufYH.js";import{t as W}from"./button-B2y2NpJm.js";import{t as oe}from"./RightOutlined-DwLwVX1C.js";import{t as se}from"./checkbox-DbdxvqS7.js";import{t as G}from"./tag-BFecLZmQ.js";import{t as K}from"./spin-3P-IVef6.js";import{t as ce}from"./modal-Ju-U4s3Q.js";import{t as le}from"./space-B06wu9Uj.js";import{t as ue}from"./progress-Br8rQILc.js";import{f as de,i as fe}from"./knowledge-roQbw_jw.js";import{n as pe,r as me,t as he}from"./batch-xzXgOops.js";var ge=()=>({prefixCls:String,activeKey:A([Array,Number,String]),defaultActiveKey:A([Array,Number,String]),accordion:D(),destroyInactivePanel:D(),bordered:D(),expandIcon:I(),openAnimation:V.object,expandIconPosition:k(),collapsible:k(),ghost:D(),onChange:I(),"onUpdate:activeKey":I()}),q=()=>({openAnimation:V.object,prefixCls:String,header:V.any,headerClass:String,showArrow:D(),isActive:D(),destroyInactivePanel:D(),disabled:D(),accordion:D(),forceRender:D(),expandIcon:I(),extra:V.any,panelKey:A(),collapsible:k(),role:String,onItemClick:I()}),_e=e=>{let{componentCls:t,collapseContentBg:n,padding:r,collapseContentPaddingHorizontal:i,collapseHeaderBg:a,collapseHeaderPadding:o,collapsePanelBorderRadius:s,lineWidth:c,lineType:l,colorBorder:u,colorText:d,colorTextHeading:f,colorTextDisabled:p,fontSize:m,lineHeight:h,marginSM:g,paddingSM:_,motionDurationSlow:v,fontSizeIcon:y}=e,b=`${c}px ${l} ${u}`;return{[t]:E(E({},P(e)),{backgroundColor:a,border:b,borderBottom:0,borderRadius:`${s}px`,"&-rtl":{direction:`rtl`},[`& > ${t}-item`]:{borderBottom:b,"&:last-child":{[`
|
|
&,
|
|
& > ${t}-header`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`> ${t}-header`]:{position:`relative`,display:`flex`,flexWrap:`nowrap`,alignItems:`flex-start`,padding:o,color:f,lineHeight:h,cursor:`pointer`,transition:`all ${v}, visibility 0s`,[`> ${t}-header-text`]:{flex:`auto`},"&:focus":{outline:`none`},[`${t}-expand-icon`]:{height:m*h,display:`flex`,alignItems:`center`,paddingInlineEnd:g},[`${t}-arrow`]:E(E({},M()),{fontSize:y,svg:{transition:`transform ${v}`}}),[`${t}-header-text`]:{marginInlineEnd:`auto`}},[`${t}-header-collapsible-only`]:{cursor:`default`,[`${t}-header-text`]:{flex:`none`,cursor:`pointer`},[`${t}-expand-icon`]:{cursor:`pointer`}},[`${t}-icon-collapsible-only`]:{cursor:`default`,[`${t}-expand-icon`]:{cursor:`pointer`}},[`&${t}-no-arrow`]:{[`> ${t}-header`]:{paddingInlineStart:_}}},[`${t}-content`]:{color:d,backgroundColor:n,borderTop:b,[`& > ${t}-content-box`]:{padding:`${r}px ${i}px`},"&-hidden":{display:`none`}},[`${t}-item:last-child`]:{[`> ${t}-content`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`& ${t}-item-disabled > ${t}-header`]:{"\n &,\n & > .arrow\n ":{color:p,cursor:`not-allowed`}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:g}}}}})}},ve=e=>{let{componentCls:t}=e,n=`> ${t}-item > ${t}-header ${t}-arrow svg`;return{[`${t}-rtl`]:{[n]:{transform:`rotate(180deg)`}}}},ye=e=>{let{componentCls:t,collapseHeaderBg:n,paddingXXS:r,colorBorder:i}=e;return{[`${t}-borderless`]:{backgroundColor:n,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${i}`},[`
|
|
> ${t}-item:last-child,
|
|
> ${t}-item:last-child ${t}-header
|
|
`]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:`transparent`,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{paddingTop:r}}}},be=e=>{let{componentCls:t,paddingSM:n}=e;return{[`${t}-ghost`]:{backgroundColor:`transparent`,border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:`transparent`,border:0,[`> ${t}-content-box`]:{paddingBlock:n}}}}}},xe=ee(`Collapse`,e=>{let t=N(e,{collapseContentBg:e.colorBgContainer,collapseHeaderBg:e.colorFillAlter,collapseHeaderPadding:`${e.paddingSM}px ${e.padding}px`,collapsePanelBorderRadius:e.borderRadiusLG,collapseContentPaddingHorizontal:16});return[_e(t),ye(t),be(t),ve(t),re(t)]});function J(e){let t=e;if(!Array.isArray(t)){let e=typeof t;t=e===`number`||e===`string`?[t]:[]}return t.map(e=>String(e))}var Y=f({compatConfig:{MODE:3},name:`ACollapse`,inheritAttrs:!1,props:B(ge(),{accordion:!1,destroyInactivePanel:!1,bordered:!0,expandIconPosition:`start`}),slots:Object,setup(e,n){let{attrs:i,slots:a,emit:o}=n,s=y(J(ae([e.activeKey,e.defaultActiveKey])));r(()=>e.activeKey,()=>{s.value=J(e.activeKey)},{deep:!0});let{prefixCls:c,direction:l,rootPrefixCls:d}=R(`collapse`,e),[f,p]=xe(c),m=u(()=>{let{expandIconPosition:t}=e;return t===void 0?l.value===`rtl`?`end`:`start`:t}),h=n=>{let{expandIcon:r=a.expandIcon}=e,i=r?r(n):t(oe,{rotate:n.isActive?90:void 0},null);return t(`div`,{class:[`${c.value}-expand-icon`,p.value],onClick:()=>[`header`,`icon`].includes(e.collapsible)&&_(n.panelKey)},[F(Array.isArray(r)?i[0]:i)?H(i,{class:`${c.value}-arrow`},!1):i])},g=t=>{e.activeKey===void 0&&(s.value=t);let n=e.accordion?t[0]:t;o(`update:activeKey`,n),o(`change`,n)},_=t=>{let n=s.value;if(e.accordion)n=n[0]===t?[]:[t];else{n=[...n];let e=n.indexOf(t);e>-1?n.splice(e,1):n.push(t)}g(n)},v=(t,n)=>{var r,i,a;if(j(t))return;let o=s.value,{accordion:l,destroyInactivePanel:u,collapsible:f,openAnimation:p}=e,m=p||ie(`${d.value}-motion-collapse`),g=String((r=t.key)==null?n:r),{header:v=(a=(i=t.children)==null?void 0:i.header)==null?void 0:a.call(i),headerClass:y,collapsible:b,disabled:x}=t.props||{},S=!1;S=l?o[0]===g:o.indexOf(g)>-1;let C=b==null?f:b;(x||x===``)&&(C=`disabled`);let w={key:g,panelKey:g,header:v,headerClass:y,isActive:S,prefixCls:c.value,destroyInactivePanel:u,openAnimation:m,accordion:l,onItemClick:C===`disabled`?null:_,expandIcon:h,collapsible:C};return H(t,w)},b=()=>{var e;return L((e=a.default)==null?void 0:e.call(a)).map(v)};return()=>{let{accordion:n,bordered:r,ghost:a}=e,o=z(c.value,{[`${c.value}-borderless`]:!r,[`${c.value}-icon-position-${m.value}`]:!0,[`${c.value}-rtl`]:l.value===`rtl`,[`${c.value}-ghost`]:!!a,[i.class]:!!i.class},p.value);return f(t(`div`,O(O({class:o},te(i)),{},{style:i.style,role:n?`tablist`:null}),[b()]))}}}),Se=f({compatConfig:{MODE:3},name:`PanelContent`,props:q(),setup(e,n){let{slots:r}=n,i=b(!1);return a(()=>{(e.isActive||e.forceRender)&&(i.value=!0)}),()=>{var n;if(!i.value)return null;let{prefixCls:a,isActive:o,role:s}=e;return t(`div`,{class:z(`${a}-content`,{[`${a}-content-active`]:o,[`${a}-content-inactive`]:!o}),role:s},[t(`div`,{class:`${a}-content-box`},[(n=r.default)==null?void 0:n.call(r)])])}}}),X=f({compatConfig:{MODE:3},name:`ACollapsePanel`,inheritAttrs:!1,props:B(q(),{showArrow:!0,isActive:!1,onItemClick(){},headerClass:``,forceRender:!1}),slots:Object,setup(e,n){let{slots:r,emit:i,attrs:a}=n;ne(e.disabled===void 0,`Collapse.Panel`,'`disabled` is deprecated. Please use `collapsible="disabled"` instead.');let{prefixCls:s}=R(`collapse`,e),c=()=>{i(`itemClick`,e.panelKey)},l=e=>{(e.key===`Enter`||e.keyCode===13||e.which===13)&&c()};return()=>{var n,i;let{header:u=(n=r.header)==null?void 0:n.call(r),headerClass:d,isActive:f,showArrow:p,destroyInactivePanel:m,accordion:h,forceRender:g,openAnimation:_,expandIcon:v=r.expandIcon,extra:y=(i=r.extra)==null?void 0:i.call(r),collapsible:b}=e,x=b===`disabled`,w=s.value,T=z(`${w}-header`,{[d]:d,[`${w}-header-collapsible-only`]:b===`header`,[`${w}-icon-collapsible-only`]:b===`icon`}),D=z({[`${w}-item`]:!0,[`${w}-item-active`]:f,[`${w}-item-disabled`]:x,[`${w}-no-arrow`]:!p,[`${a.class}`]:!!a.class}),k=t(`i`,{class:`arrow`},null);p&&typeof v==`function`&&(k=v(e));let A=o(t(Se,{prefixCls:w,isActive:f,forceRender:g,role:h?`tabpanel`:null},{default:r.default}),[[S,f]]),j=E({appear:!1,css:!1},_);return t(`div`,O(O({},a),{},{class:D}),[t(`div`,{class:T,onClick:()=>![`header`,`icon`].includes(b)&&c(),role:h?`tab`:`button`,tabindex:x?-1:0,"aria-expanded":f,onKeypress:l},[p&&k,t(`span`,{onClick:()=>b===`header`&&c(),class:`${w}-header-text`},[u]),y&&t(`div`,{class:`${w}-extra`},[y])]),t(C,j,{default:()=>[!m||f?A:null]})])}}});Y.Panel=X,Y.install=function(e){return e.component(Y.name,Y),e.component(X.name,X),e};var Z=Y,Ce={key:1},we={key:2,class:`mb-4 rounded border p-3`},Te={key:0,class:`text-red-500`},Ee={class:`grid gap-4 md:grid-cols-2`},De={class:`text-xs text-gray-500`},Oe={class:`whitespace-pre-wrap break-words`},Q={class:`whitespace-pre-wrap`},ke={class:`whitespace-pre-wrap`},Ae={class:`whitespace-pre-wrap`},je={key:0},Me=f({__name:`batch-dialog`,props:{open:{type:Boolean},accountId:{},entries:{},action:{}},emits:[`update:open`,`finished`,`edit`],setup(e,{emit:a}){let o=e,f=a,b={delete:`删除`,approve:`审核通过`,publish:`发布`,reject:`驳回`,disable:`停用`},S=y([]),C=y({}),E=y({}),D=y(!1),O=y(!1),k=y(!1),A=y(null),j=0;function M(){k.value=!0,j++}d(M),h(M);let N=u(()=>S.value.filter(e=>!C.value[e.id])),P=u(()=>o.action!==`approve`||N.value.every(e=>E.value[e.id])),F=u(()=>{var e;return((e=A.value)==null?void 0:e.filter(e=>e.status!==`pending`).length)||0});r(()=>[o.open,o.accountId,o.action],T(function*(){let e=++j;if(o.open){S.value=[],C.value={},E.value={},A.value=null,D.value=!0;for(let t of o.entries)try{let n=yield fe(o.accountId,t.id);if(e!==j)return;S.value.push(n);let r=n.revision===t.revision?he(n,o.action):`版本已更新,请关闭后重新选择,避免审核旧内容`;r&&(C.value[n.id]=r)}catch(n){if(e!==j)return;S.value.push(t),C.value[t.id]=pe(n)}e===j&&(D.value=!1)}}));function I(){return L.apply(this,arguments)}function L(){return L=T(function*(){if(O.value||!P.value||!N.value.length)return;let e=o.accountId,t=o.action,n=N.value.map(e=>w({},e));O.value=!0,k.value=!1,A.value=n.map(e=>({id:e.id,title:e.title,status:`pending`,error:``}));try{A.value=yield me(n,n=>de(e,n,t,t===`delete`||t===`approve`&&!!E.value[n.id]),e=>{A.value=e},()=>k.value)}finally{O.value=!1,f(`finished`)}}),L.apply(this,arguments)}return(r,a)=>(p(),v(i(ce),{open:e.open,title:`批量${b[e.action]} · ${e.entries.length} 条`,width:`960px`,closable:!O.value,keyboard:!O.value,"mask-closable":!1,onCancel:a[2]||(a[2]=e=>f(`update:open`,!1))},{footer:g(()=>[t(i(le),null,{default:g(()=>[O.value?(p(),v(i(W),{key:0,disabled:k.value,onClick:a[0]||(a[0]=e=>k.value=!0)},{default:g(()=>[n(_(k.value?`当前操作完成后停止`:`停止后续操作`),1)]),_:1},8,[`disabled`])):(p(),v(i(W),{key:1,onClick:a[1]||(a[1]=e=>f(`update:open`,!1))},{default:g(()=>[n(_(A.value?`完成`:`取消`),1)]),_:1})),A.value?x(``,!0):(p(),v(i(W),{key:2,danger:e.action===`delete`,type:`primary`,disabled:D.value||!N.value.length||!P.value,onClick:I},{default:g(()=>[n(`确认`+_(b[e.action])+` `+_(N.value.length)+` 条`,1)]),_:1},8,[`danger`,`disabled`]))]),_:1})]),default:g(()=>[t(i(K),{spinning:D.value},{default:g(()=>[t(i(U),{class:`mb-4`,"show-icon":``,type:`info`,message:e.action===`approve`?`请逐条展开,核对来源、事实、脱敏和适用条件,再勾选确认。通过审核后仍需发布才可检索。`:`每条知识分别校验版本和当前状态。操作结果逐条显示,失败条目不会自动重试。`},null,8,[`message`]),e.action===`delete`?(p(),v(i(U),{key:0,class:`mb-4`,type:`warning`,"show-icon":``,message:`仅删除已驳回知识及其来源快照和版本记录;原始聊天归档保留。删除后无法恢复,请确认所选条目。`})):x(``,!0),D.value?x(``,!0):(p(),c(`p`,Ce,`可操作 `+_(N.value.length)+` 条 · 需先处理 `+_(Object.keys(C.value).length)+` 条`,1)),A.value?(p(),c(`div`,we,[t(i(ue),{percent:A.value.length?Math.round(F.value*100/A.value.length):0,status:O.value?`active`:void 0},null,8,[`percent`,`status`]),s(`p`,null,`成功 `+_(A.value.filter(e=>e.status===`success`).length)+` · 失败 `+_(A.value.filter(e=>e.status===`failed`).length)+` · 未执行 `+_(A.value.filter(e=>e.status===`pending`).length),1),(p(!0),c(m,null,l(A.value,e=>(p(),c(`div`,{key:e.id,class:`mb-2`},[t(i(G),{color:e.status===`success`?`green`:e.status===`failed`?`red`:`default`},{default:g(()=>[n(_(e.status===`success`?`成功`:e.status===`failed`?`失败`:`未执行`),1)]),_:2},1032,[`color`]),n(_(e.title),1),e.error?(p(),c(`p`,Te,_(e.error),1)):x(``,!0)]))),128))])):x(``,!0),A.value?x(``,!0):(p(),v(i(Z),{key:3},{default:g(()=>[(p(!0),c(m,null,l(S.value,r=>(p(),v(i(Z).Panel,{key:r.id,header:`${r.title} · v${r.revision}`},{default:g(()=>[C.value[r.id]?(p(),v(i(U),{key:0,message:C.value[r.id],type:`warning`,class:`mb-3`},null,8,[`message`])):x(``,!0),s(`div`,Ee,[s(`div`,null,[a[3]||(a[3]=s(`h4`,{class:`mb-2 font-semibold`},`来源对话(已自动脱敏)`,-1)),(p(!0),c(m,null,l(r.sources,e=>(p(),c(`div`,{key:e.message_id,class:`mb-2 rounded border p-2`},[s(`span`,De,_(e.role===`staff`?`客服`:`客户`)+` · `+_(e.sent_at),1),s(`p`,Oe,_(e.content),1)]))),128))]),s(`div`,null,[s(`p`,Q,`问题:`+_(r.question),1),s(`p`,ke,`答案:`+_(r.answer),1),s(`p`,Ae,`适用条件:`+_(r.conditions||`尚未填写`),1),(p(!0),c(m,null,l(r.flags,e=>(p(),v(i(U),{key:e,message:e,type:`warning`,class:`mb-2`},null,8,[`message`]))),128)),r.valid_until?(p(),c(`p`,je,`有效期:`+_(r.valid_until),1)):x(``,!0)])]),e.action===`approve`&&!C.value[r.id]?(p(),v(i(se),{key:1,checked:E.value[r.id],"onUpdate:checked":e=>E.value[r.id]=e},{default:g(()=>[...a[4]||(a[4]=[n(`已核对本条来源、事实、脱敏和适用条件;涉及医疗内容已完成专业审核。`,-1)])]),_:1},8,[`checked`,`onUpdate:checked`])):x(``,!0),t(i(W),{type:`link`,onClick:e=>f(`edit`,r.id)},{default:g(()=>[...a[5]||(a[5]=[n(`打开单条审核与编辑`,-1)])]),_:1},8,[`onClick`])]),_:2},1032,[`header`]))),128))]),_:1}))]),_:1},8,[`spinning`])]),_:1},8,[`open`,`title`,`closable`,`keyboard`]))}}),Ne=e({default:()=>$}),$=Me;export{Ne as n,$ as t}; |