adtec-hnyzfc-core-package 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js +1 -0
  2. package/dist/src/components/AsideCardList/AsideCardList.vue.js +1 -1
  3. package/dist/src/components/ElGrid/ElGridColumnSetting.vue.js +1 -1
  4. package/dist/src/components/OperationAuth/operationAuth.vue.js +1 -1
  5. package/dist/src/components/upload/CustomElUpload.vue.d.ts +2 -2
  6. package/dist/src/components/upload/CustomElUpload.vue.js +1 -1
  7. package/dist/src/components/upload/FileView.vue.js +1 -1
  8. package/dist/src/components/upload/FileViewComponents.vue.js +1 -1
  9. package/dist/src/components/workflow/TaskOperation.vue.js +1 -1
  10. package/dist/src/components/workflow/WorkflowTodoShell.vue.js +2 -2
  11. package/dist/src/hooks/createDialogHooks.js +18 -3
  12. package/dist/src/hooks/useOpenNewMenu.js +1 -1
  13. package/dist/src/hooks/useOperationAuth.d.ts +15 -0
  14. package/dist/src/hooks/useOperationAuth.js +1 -0
  15. package/dist/src/hooks/usePermissionHooks.js +1 -1
  16. package/dist/src/hooks/usePermissionToolHooks.d.ts +1 -1
  17. package/dist/src/hooks/usePermissionToolHooks.js +1 -1
  18. package/dist/src/hooks/usePreviewFullscreen.d.ts +25 -0
  19. package/dist/src/hooks/usePreviewFullscreen.js +1 -0
  20. package/dist/src/hooks/workflowTodo.js +1 -1
  21. package/dist/src/mixin/globalMixin.js +1 -1
  22. package/dist/src/packages/index.d.ts +3 -0
  23. package/dist/src/packages/index.js +1 -1
  24. package/dist/src/plugins/plugins.js +1 -1
  25. package/dist/src/plugins/renderDialog.js +1 -1
  26. package/dist/src/stores/permissionStore.d.ts +9 -2
  27. package/dist/src/stores/permissionStore.js +1 -1
  28. package/dist/src/utils/modules.js +2 -2
  29. package/dist/src/utils/operationAuth.d.ts +43 -0
  30. package/dist/src/utils/operationAuth.js +1 -0
  31. package/dist/src/utils/uploadAccept.js +1 -1
  32. package/dist/styles/element-ui.css +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunks/operationAuth.vue_vue_type_script_lang-B0muG8DV.js +0 -1
@@ -0,0 +1 @@
1
+ import{defineComponent as H,computed as n,isVNode as c,h as a,resolveComponent as s,resolveDynamicComponent as L,cloneVNode as J}from"vue";import K from"../src/hooks/useBehaviorAction.js";import Y from"../src/hooks/useOperationAuth.js";const O={primary:"var(--el-color-primary)",success:"var(--el-color-success)",info:"var(--el-color-info)",warning:"var(--el-color-warning)",danger:"var(--el-color-danger)",error:"var(--el-color-danger)"},G=H({name:"OperationAuth",props:{operCode:{type:[String,Array],required:!0},menuCode:String,noConfig:Boolean,loadType:String,icon:String,remark:String,alias:String,color:String},setup(r,{slots:i}){const{getOperation:V}=Y(),{runBehaviorAction:B}=K(),N=n(()=>Array.isArray(r.operCode)?r.operCode:[r.operCode]),v=n(()=>V(N.value,r.menuCode)),x=n(()=>!!v.value),T=n(()=>{const e=r.remark??v.value?.remark;if(!e)return{alias:"",color:""};try{const o=JSON.parse(e);return{alias:o?.aliases?.alias1||o?.aliases?.alias||"",color:o?.color||o?.icon?.color||o?.text?.color||""}}catch{return{alias:"",color:""}}}),d=n(()=>(r.icon??v.value?.icon??"").trim()),h=n(()=>r.alias||T.value.alias||v.value?.name||""),b=n(()=>v.value?.code||N.value[0]||""),p=n(()=>h.value||b.value||"未命名操作"),f=n(()=>({"data-behavior-operation-code":b.value,"data-behavior-operation-name":p.value,"data-behavior-scope":"manual","data-track-code":b.value,"data-track-name":p.value})),k=n(()=>r.color||T.value.color||""),y=n(()=>k.value.trim().toLowerCase()),u=n(()=>y.value!==""&&y.value in O),C=n(()=>{if(u.value)return y.value==="error"?"danger":y.value}),g=n(()=>{if(u.value)return;const e=k.value.trim();if(e)return{color:O[y.value]||e}}),I=n(()=>r.loadType??v.value?.loadType??""),S=n(()=>String(I.value??"")),z=n(()=>{const e=i.default?.()[0];if(!e||!c(e))return!1;const o=e.type||{},l=String(o?.name||o?.__name||"").replace(/[^a-zA-Z]/g,"");return/^elicon/i.test(l)?!0:/^elbutton$/i.test(l)&&!!e.props?.icon}),P=n(()=>{const e=i.default?.()[0];if(!e||!c(e))return!1;const o=e.type||{};return String(o?.name||o?.__name||"").replace(/[^a-zA-Z]/g,"").toLowerCase()==="elbutton"&&S.value==="20"}),A=n(()=>r.noConfig?"slot":P.value||z.value?"icon":S.value==="10"?"text":S.value==="20"?"icon":S.value==="30"?"iconText":"slot"),Z=n(()=>i.default?.()[0]?.props?.onClick),_=n(()=>{const e=i.default?.()[0];return c(e)&&e.props?.["data-behavior-scope"]==="manual"}),w=e=>{const o=Z.value;return Array.isArray(o)?o.reduce((t,l)=>typeof l=="function"?l(...e):t,void 0):typeof o=="function"?o(...e):void 0},m=(...e)=>_.value?w(e):B({code:b.value,name:p.value,actionType:"CLICK"},()=>w(e)),E=e=>{if(e.type==="button")return!0;const o=e.type,t=String(o?.name||o?.__name||"").replace(/[^a-zA-Z]/g,"").toLowerCase();return t==="elbutton"||t==="eliconbtn"||t==="eliconsearch"},M=e=>{const o=e.type;return String(o?.name||o?.__name||"").replace(/[^a-zA-Z]/g,"").toLowerCase()==="eliconbtn"},R=e=>u.value||!M(e)?{}:{neutral:!0},W=()=>(i.default?.()||[]).map(o=>{if(!c(o)||!E(o))return o;const t=J(o,{...f.value,..._.value?{}:{onClick:m},type:u.value?C.value:void 0,...R(o),style:k.value.trim()?g.value:void 0});return!_.value&&t.props&&(t.props.onClick=m),t});return()=>{if(!x.value)return null;if(A.value==="icon"){const e=i.default?.()[0],o=c(e)?e.props||{}:{};if(P.value){const t={...o};delete t.modelValue,delete t.tip,delete t.elementType,delete t.neutral,delete t.icon;const l=d.value||"adtec-tips",q=a(s("el-icon"),{},()=>l.startsWith("adtec-")?a("svg",{class:"icon","aria-hidden":"true"},[a("use",{href:"#"+l})]):a(L(l))),D=a(s("el-button"),{...t,...f.value,type:u.value?C.value:void 0,title:p.value,"aria-label":p.value,style:[t.style,g.value],onClick:m},{icon:()=>q});return a(s("el-tooltip"),{content:p.value,placement:"top"},{default:()=>D})}return a(s("el-icon-btn"),{...o,...f.value,modelValue:d.value||o.modelValue||"adtec-tips",tip:h.value||o.tip,type:u.value?C.value:void 0,neutral:!u.value,style:g.value,onClick:m})}if(A.value==="text"){const e=i.default?.()[0],t={...c(e)?e.props||{}:{}};return delete t.modelValue,delete t.tip,delete t.icon,a(s("el-button"),{...t,...f.value,type:u.value?C.value:void 0,size:z.value?"small":t.size,style:[t.style,g.value],onClick:m},()=>h.value)}if(A.value==="iconText"){const e=i.default?.()[0],o=c(e)?e.props||{}:{},t=d.value?a(s("el-icon"),{},()=>d.value.startsWith("adtec-")?a("svg",{class:"icon","aria-hidden":"true"},[a("use",{href:"#"+d.value})]):a(L(d.value))):void 0;return a(s("el-button"),{...o,...f.value,type:C.value,style:[o.style,g.value],onClick:m},[t,a("span",{},h.value)])}return W()}}});export{G as _};
@@ -1 +1 @@
1
- import{defineComponent as $,useModel as p,resolveComponent as o,openBlock as a,createBlock as s,withCtx as c,createVNode as b,renderSlot as d,createElementBlock as v,Fragment as M,renderList as w,normalizeClass as A,createCommentVNode as B,mergeModels as f}from"vue";import L from"../../utils/FrameworkUtils.js";import{_ as U}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"element-plus";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";const D={key:1,class:"aside-card-list__items"},I=$({__name:"AsideCardList",props:f({items:{},total:{},title:{},emptyDescription:{},itemKey:{default:"id"},activeKey:{default:void 0}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:L.getPageSize()},pageSizeModifiers:{}}),emits:f(["select","current-change","size-change"],["update:currentPage","update:pageSize"]),setup(i,{emit:y}){const r=i,m=p(i,"currentPage"),u=p(i,"pageSize"),l=y,z=(e,n)=>e?.[r.itemKey]??n,C=e=>r.activeKey!==void 0&&e?.[r.itemKey]===r.activeKey,_=e=>{l("size-change",e),l("current-change",1)};return(e,n)=>{const h=o("el-title"),k=o("el-empty"),S=o("el-card"),K=o("el-page-pagination"),P=o("el-content-panel");return a(),s(P,{class:"aside-card-list"},{default:c(()=>[b(h,{title:i.title,style:{"border-bottom":"var(--border)"}},{titleRight:c(()=>[d(e.$slots,"titleRight",{},void 0,!0)]),default:c(()=>[d(e.$slots,"actions",{},void 0,!0)]),_:3},8,["title"]),d(e.$slots,"filters",{},void 0,!0),i.items.length===0?(a(),s(k,{key:0,class:"aside-card-list__empty",description:i.emptyDescription},null,8,["description"])):(a(),v("div",D,[(a(!0),v(M,null,w(i.items,(t,g)=>(a(),s(S,{key:z(t,g),class:A(["aside-card-list__item",{active:C(t)}]),shadow:"never",onClick:N=>l("select",t)},{default:c(()=>[d(e.$slots,"default",{item:t,index:g},void 0,!0)]),_:2},1032,["class","onClick"]))),128))])),i.items.length>0?(a(),s(K,{key:2,"current-page":m.value,"onUpdate:currentPage":n[0]||(n[0]=t=>m.value=t),"page-size":u.value,"onUpdate:pageSize":n[1]||(n[1]=t=>u.value=t),total:i.total,onCurrentChange:n[2]||(n[2]=t=>l("current-change",t)),onSizeChange:_},null,8,["current-page","page-size","total"])):B("v-if",!0)]),_:3})}}}),H=U(I,[["__scopeId","data-v-fdd138b6"]]);export{H as default};
1
+ import{defineComponent as $,useModel as p,resolveComponent as o,openBlock as a,createBlock as s,withCtx as c,createVNode as b,renderSlot as d,createElementBlock as v,Fragment as M,renderList as w,normalizeClass as A,createCommentVNode as B,mergeModels as f}from"vue";import L from"../../utils/FrameworkUtils.js";import{_ as U}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"element-plus";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";const D={key:1,class:"aside-card-list__items"},I=$({__name:"AsideCardList",props:f({items:{},total:{},title:{},emptyDescription:{},itemKey:{default:"id"},activeKey:{default:void 0}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:L.getPageSize()},pageSizeModifiers:{}}),emits:f(["select","current-change","size-change"],["update:currentPage","update:pageSize"]),setup(i,{emit:y}){const r=i,m=p(i,"currentPage"),u=p(i,"pageSize"),l=y,z=(e,n)=>e?.[r.itemKey]??n,C=e=>r.activeKey!==void 0&&e?.[r.itemKey]===r.activeKey,_=e=>{l("size-change",e),l("current-change",1)};return(e,n)=>{const h=o("el-title"),k=o("el-empty"),S=o("el-card"),K=o("el-page-pagination"),P=o("el-content-panel");return a(),s(P,{class:"aside-card-list"},{default:c(()=>[b(h,{title:i.title,style:{"border-bottom":"var(--border)"}},{titleRight:c(()=>[d(e.$slots,"titleRight",{},void 0,!0)]),default:c(()=>[d(e.$slots,"actions",{},void 0,!0)]),_:3},8,["title"]),d(e.$slots,"filters",{},void 0,!0),i.items.length===0?(a(),s(k,{key:0,class:"aside-card-list__empty",description:i.emptyDescription},null,8,["description"])):(a(),v("div",D,[(a(!0),v(M,null,w(i.items,(t,g)=>(a(),s(S,{key:z(t,g),class:A(["aside-card-list__item",{active:C(t)}]),shadow:"never",onClick:N=>l("select",t)},{default:c(()=>[d(e.$slots,"default",{item:t,index:g},void 0,!0)]),_:2},1032,["class","onClick"]))),128))])),i.items.length>0?(a(),s(K,{key:2,"current-page":m.value,"onUpdate:currentPage":n[0]||(n[0]=t=>m.value=t),"page-size":u.value,"onUpdate:pageSize":n[1]||(n[1]=t=>u.value=t),total:i.total,onCurrentChange:n[2]||(n[2]=t=>l("current-change",t)),onSizeChange:_},null,8,["current-page","page-size","total"])):B("v-if",!0)]),_:3})}}}),H=U(I,[["__scopeId","data-v-b1961096"]]);export{H as default};
@@ -1 +1 @@
1
- import{defineComponent as X,ref as f,watch as L,computed as N,resolveComponent as K,openBlock as p,createBlock as Y,withCtx as x,createElementBlock as _,Fragment as Z,renderList as ee,normalizeStyle as le,normalizeClass as z,createElementVNode as G,createVNode as S,toDisplayString as ne}from"vue";import{_ as te}from"../../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import{loadColumnSetting as se,saveColumnSetting as re}from"../../utils/columnSettingStorage.js";import{_ as ie}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";const ae={key:0,class:"el-grid-column-setting__list"},ce=["onDragover","onDrop","onDragleave"],oe=["onDragstart"],de={class:"el-grid-column-setting__title"},ue={key:1,class:"el-grid-column-setting__empty"},ve=X({__name:"ElGridColumnSetting",props:{columns:{},storageKey:{}},emits:["change"],setup(M,{emit:A}){const g=M,F=A,c=f([]),b=f([]),u=f(),h=f(),v=f(),P=(l,e,n,t)=>{const i=l.field||l.type||l.title||`column-${n}`,s=e?`${e}__${i}`:i;let r=s,o=2;for(;t.has(r);)r=`${s}_${o}`,o++;return t.add(r),r},E=(l,e=null,n=0)=>{const t=new Set;return l.map((i,s)=>{const r=P(i,e,s,t);return{key:r,parentKey:e,level:n,column:i,title:i.title||i.type||"列",visible:i.visible!==!1,children:i.children?.length?E(i.children,r,n+1):[]}})},w=(l,e)=>{for(const n of l){if(n.key===e)return n;const t=n.children?.length?w(n.children,e):null;if(t)return t}return null},y=l=>l.map(e=>({key:e.key,visible:e.visible,children:e.children?.length?y(e.children):void 0})),$=l=>{if(l.children?.length){const e=l.children.map($);return{...l.column,children:e,visible:l.visible===!1?!1:e.some(n=>n.visible!==!1)}}return{...l.column,visible:l.visible}},k=()=>{F("change",c.value.map($))},B=l=>l.flatMap(e=>e.children?.length?B(e.children):e.visible),C=l=>{l.forEach(e=>{e.children?.length&&(C(e.children),e.visible!==!1&&(e.visible=e.children.some(n=>n.visible)))})},D=(l,e)=>{l.forEach(n=>{n.visible=e,n.children?.length&&D(n.children,e)})},j=(l,e)=>{if(!e?.columns?.length)return;const n=(t,i)=>{const s=new Map(i.map(a=>[a.key,a])),r=i.map(a=>t.find(d=>d.key===a.key)).filter(Boolean),o=t.filter(a=>!r.includes(a));t.splice(0,t.length,...r,...o),t.forEach(a=>{const d=s.get(a.key);d?.visible!==void 0&&(a.visible=d.visible,a.visible===!1&&a.children?.length&&D(a.children,!1)),a.children?.length&&n(a.children,d?.children||[])})};n(l,e.columns)},I=()=>{re(g.storageKey,{version:1,columns:y(c.value)})},O=(l=[])=>{const e=E(l);c.value=e,b.value=y(e),j(c.value,se(g.storageKey)),C(c.value),k()};L(()=>g.columns,l=>O(l),{immediate:!0,deep:!0}),L(()=>g.storageKey,()=>O(g.columns));const T=N(()=>{const l=[],e=n=>{n.forEach(t=>{l.push({key:t.key,parentKey:t.parentKey,level:t.level,option:t}),t.children?.length&&e(t.children)})};return e(c.value),l}),V=(l,e)=>{if(l.key!==e.key||l.visible!==e.visible)return!1;const n=l.children||[],t=e.children||[];return n.length===t.length&&n.every((i,s)=>V(i,t[s]))},q=N(()=>{const l=y(c.value);return l.length!==b.value.length||l.some((e,n)=>!V(e,b.value[n]))}),H=l=>{if(!l.children?.length)return!1;const e=B(l.children);return e.some(Boolean)&&!e.every(Boolean)},J=(l,e)=>{const n=!!e;l.visible=n,l.children?.length&&D(l.children,n),C(c.value),k(),I()},Q=(l,e)=>{if(!e.target.closest(".el-grid-column-setting__drag")){e.preventDefault();return}u.value=l.key,h.value=l.parentKey,v.value=void 0,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",l.key))},R=(l,e)=>{u.value===void 0||l.parentKey!==h.value||u.value!==l.key&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),v.value=l.key)},U=l=>{const e=u.value;if(e===void 0||l.parentKey!==h.value||e===l.key){m();return}const n=h.value,t=n?w(c.value,n):null,i=t?.children||c.value,s=i.findIndex(d=>d.key===e),r=i.findIndex(d=>d.key===l.key);if(s<0||r<0||s===r){m();return}const o=i.slice(),[a]=o.splice(s,1);o.splice(r,0,a),t?t.children=o:c.value=o,m(),k(),I()},W=l=>{v.value===l.key&&(v.value=void 0)},m=()=>{u.value=void 0,h.value=void 0,v.value=void 0};return(l,e)=>{const n=K("el-button"),t=K("el-checkbox"),i=K("el-popover");return p(),Y(i,{trigger:"click",width:280,placement:"top-start","popper-class":"el-grid-column-setting-popper"},{reference:x(()=>[S(n,{circle:"",icon:"Setting",class:z(["el-grid-column-setting__trigger",{"is-modified":q.value}]),"aria-label":"列设置"},null,8,["class"])]),default:x(()=>[T.value.length?(p(),_("ul",ae,[(p(!0),_(Z,null,ee(T.value,s=>(p(),_("li",{key:s.key,class:z(["el-grid-column-setting__item",{"is--group":s.option.children.length>0,"is--dragging":s.key===u.value,"is--drag-over":s.key===v.value}]),style:le({paddingLeft:`${8+s.level*16}px`}),onDragover:r=>R(s,r),onDrop:r=>U(s),onDragleave:r=>W(s)},[G("span",{class:"el-grid-column-setting__drag",draggable:"true",onDragstart:r=>Q(s,r),onDragend:m},[S(te)],40,oe),S(t,{"model-value":s.option.visible,indeterminate:H(s.option),onChange:r=>J(s.option,r)},{default:x(()=>[G("span",de,ne(s.option.title),1)]),_:2},1032,["model-value","indeterminate","onChange"])],46,ce))),128))])):(p(),_("div",ue,"暂无列"))]),_:1})}}}),be=ie(ve,[["__scopeId","data-v-08be49fd"]]);export{be as default};
1
+ import{defineComponent as X,ref as f,watch as L,computed as N,resolveComponent as K,openBlock as p,createBlock as Y,withCtx as x,createElementBlock as _,Fragment as Z,renderList as ee,normalizeStyle as le,normalizeClass as z,createElementVNode as G,createVNode as S,toDisplayString as ne}from"vue";import{_ as te}from"../../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import{loadColumnSetting as se,saveColumnSetting as re}from"../../utils/columnSettingStorage.js";import{_ as ie}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";const ae={key:0,class:"el-grid-column-setting__list"},ce=["onDragover","onDrop","onDragleave"],oe=["onDragstart"],de={class:"el-grid-column-setting__title"},ue={key:1,class:"el-grid-column-setting__empty"},ve=X({__name:"ElGridColumnSetting",props:{columns:{},storageKey:{}},emits:["change"],setup(M,{emit:A}){const g=M,F=A,c=f([]),b=f([]),u=f(),h=f(),v=f(),P=(l,e,n,t)=>{const i=l.field||l.type||l.title||`column-${n}`,s=e?`${e}__${i}`:i;let r=s,o=2;for(;t.has(r);)r=`${s}_${o}`,o++;return t.add(r),r},E=(l,e=null,n=0)=>{const t=new Set;return l.map((i,s)=>{const r=P(i,e,s,t);return{key:r,parentKey:e,level:n,column:i,title:i.title||i.type||"列",visible:i.visible!==!1,children:i.children?.length?E(i.children,r,n+1):[]}})},w=(l,e)=>{for(const n of l){if(n.key===e)return n;const t=n.children?.length?w(n.children,e):null;if(t)return t}return null},y=l=>l.map(e=>({key:e.key,visible:e.visible,children:e.children?.length?y(e.children):void 0})),$=l=>{if(l.children?.length){const e=l.children.map($);return{...l.column,children:e,visible:l.visible===!1?!1:e.some(n=>n.visible!==!1)}}return{...l.column,visible:l.visible}},k=()=>{F("change",c.value.map($))},B=l=>l.flatMap(e=>e.children?.length?B(e.children):e.visible),C=l=>{l.forEach(e=>{e.children?.length&&(C(e.children),e.visible!==!1&&(e.visible=e.children.some(n=>n.visible)))})},D=(l,e)=>{l.forEach(n=>{n.visible=e,n.children?.length&&D(n.children,e)})},j=(l,e)=>{if(!e?.columns?.length)return;const n=(t,i)=>{const s=new Map(i.map(a=>[a.key,a])),r=i.map(a=>t.find(d=>d.key===a.key)).filter(Boolean),o=t.filter(a=>!r.includes(a));t.splice(0,t.length,...r,...o),t.forEach(a=>{const d=s.get(a.key);d?.visible!==void 0&&(a.visible=d.visible,a.visible===!1&&a.children?.length&&D(a.children,!1)),a.children?.length&&n(a.children,d?.children||[])})};n(l,e.columns)},I=()=>{re(g.storageKey,{version:1,columns:y(c.value)})},O=(l=[])=>{const e=E(l);c.value=e,b.value=y(e),j(c.value,se(g.storageKey)),C(c.value),k()};L(()=>g.columns,l=>O(l),{immediate:!0,deep:!0}),L(()=>g.storageKey,()=>O(g.columns));const T=N(()=>{const l=[],e=n=>{n.forEach(t=>{l.push({key:t.key,parentKey:t.parentKey,level:t.level,option:t}),t.children?.length&&e(t.children)})};return e(c.value),l}),V=(l,e)=>{if(l.key!==e.key||l.visible!==e.visible)return!1;const n=l.children||[],t=e.children||[];return n.length===t.length&&n.every((i,s)=>V(i,t[s]))},q=N(()=>{const l=y(c.value);return l.length!==b.value.length||l.some((e,n)=>!V(e,b.value[n]))}),H=l=>{if(!l.children?.length)return!1;const e=B(l.children);return e.some(Boolean)&&!e.every(Boolean)},J=(l,e)=>{const n=!!e;l.visible=n,l.children?.length&&D(l.children,n),C(c.value),k(),I()},Q=(l,e)=>{if(!e.target.closest(".el-grid-column-setting__drag")){e.preventDefault();return}u.value=l.key,h.value=l.parentKey,v.value=void 0,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",l.key))},R=(l,e)=>{u.value===void 0||l.parentKey!==h.value||u.value!==l.key&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),v.value=l.key)},U=l=>{const e=u.value;if(e===void 0||l.parentKey!==h.value||e===l.key){m();return}const n=h.value,t=n?w(c.value,n):null,i=t?.children||c.value,s=i.findIndex(d=>d.key===e),r=i.findIndex(d=>d.key===l.key);if(s<0||r<0||s===r){m();return}const o=i.slice(),[a]=o.splice(s,1);o.splice(r,0,a),t?t.children=o:c.value=o,m(),k(),I()},W=l=>{v.value===l.key&&(v.value=void 0)},m=()=>{u.value=void 0,h.value=void 0,v.value=void 0};return(l,e)=>{const n=K("el-button"),t=K("el-checkbox"),i=K("el-popover");return p(),Y(i,{trigger:"click",width:280,placement:"top-start","popper-class":"el-grid-column-setting-popper"},{reference:x(()=>[S(n,{circle:"",icon:"Setting",class:z(["el-grid-column-setting__trigger",{"is-modified":q.value}]),"aria-label":"列设置"},null,8,["class"])]),default:x(()=>[T.value.length?(p(),_("ul",ae,[(p(!0),_(Z,null,ee(T.value,s=>(p(),_("li",{key:s.key,class:z(["el-grid-column-setting__item",{"is--group":s.option.children.length>0,"is--dragging":s.key===u.value,"is--drag-over":s.key===v.value}]),style:le({paddingLeft:`${8+s.level*16}px`}),onDragover:r=>R(s,r),onDrop:r=>U(s),onDragleave:r=>W(s)},[G("span",{class:"el-grid-column-setting__drag",draggable:"true",onDragstart:r=>Q(s,r),onDragend:m},[S(te)],40,oe),S(t,{"model-value":s.option.visible,indeterminate:H(s.option),onChange:r=>J(s.option,r)},{default:x(()=>[G("span",de,ne(s.option.title),1)]),_:2},1032,["model-value","indeterminate","onChange"])],46,ce))),128))])):(p(),_("div",ue,"暂无列"))]),_:1})}}}),be=ie(ve,[["__scopeId","data-v-b38db213"]]);export{be as default};
@@ -1 +1 @@
1
- import{_ as o}from"../../../chunks/operationAuth.vue_vue_type_script_lang-B0muG8DV.js";import"vue";import"vue-router";import"../../stores/userInfoStore.js";import"pinia";import"../../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../stores/permissionStore.js";import"../../utils/frontendBus.js";import"../../hooks/useBehaviorAction.js";import"../../utils/behaviorTrack.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/behaviorContext.js";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/dateTime.js";export{o as default};
1
+ import{_ as o}from"../../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import"vue";import"../../hooks/useBehaviorAction.js";import"../../utils/behaviorTrack.js";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/uuid.js";import"uuid";import"../../utils/behaviorContext.js";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/dateTime.js";import"../../hooks/useOperationAuth.js";import"vue-router";import"../../stores/permissionStore.js";import"pinia";import"../../utils/frontendBus.js";import"../../utils/operationAuth.js";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";export{o as default};
@@ -20,7 +20,7 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
20
20
  /**
21
21
  * @description 上传文件类型
22
22
  * @default ''
23
- * @type {'images'|'document'|'txt'|'pdf'|'word'|'excel'|'ppt'}
23
+ * @type {'images'|'document'|'txt'|'pdf'|'word'|'excel'|'ppt'|'xml'}
24
24
  */
25
25
  accept: {
26
26
  type: StringConstructor;
@@ -139,7 +139,7 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
139
139
  /**
140
140
  * @description 上传文件类型
141
141
  * @default ''
142
- * @type {'images'|'document'|'txt'|'pdf'|'word'|'excel'|'ppt'}
142
+ * @type {'images'|'document'|'txt'|'pdf'|'word'|'excel'|'ppt'|'xml'}
143
143
  */
144
144
  accept: {
145
145
  type: StringConstructor;
@@ -1 +1 @@
1
- import{defineComponent as me,ref as _,computed as k,useModel as H,resolveComponent as h,resolveDirective as pe,openBlock as y,createElementBlock as C,normalizeClass as fe,Fragment as ve,renderList as ge,createVNode as p,withCtx as f,createElementVNode as U,unref as J,toDisplayString as E,withDirectives as ye,createBlock as A,createTextVNode as N,createCommentVNode as W,normalizeStyle as he,withModifiers as we,mergeModels as q}from"vue";import{UploadFilled as xe}from"@element-plus/icons-vue";import{ElMessage as c,ElMessageBox as _e}from"element-plus";import Ce from"../../hooks/useFileView.js";import S from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import{confirmDelete as Fe}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as Be}from"../../stores/userInfoStore.js";import{getAcceptString as ke}from"../../utils/uploadAccept.js";import{buildUploadHeaders as Ue}from"../../utils/buildUploadHeaders.js";import{_ as Ee}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/frontendBus.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"../../hooks/useBehaviorAction.js";import"pinia";import"../../utils/userSessionStorage.js";const Se={key:0},Me=["onClick"],be={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},Ie={class:"el-upload__tip"},De=me({__name:"CustomElUpload",props:q({limit:{type:Number,default:1},vertical:{type:Boolean,default:!1},accept:{type:String,default:""},business:{type:String,default:"default"},businessId:{type:String,default:"default"},isEdit:{type:Boolean,default:!0},association:{type:Boolean,default:!1},size:{type:Number,default:50},itemWidth:{type:String,default:"100%"},isConfirmDelete:{type:Boolean,default:!1},overwrite:{type:Boolean,default:!0},autoUpload:{type:Boolean,default:!0},showOptMessage:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},watermarkCode:{type:String,default:()=>{}},readonlyFileIds:{type:Array,default:()=>[]},fileOwnerAccounts:{type:Array,default:()=>[]},uploadCreateBy:{type:String,default:""}},{uploadFilesList:{default:[]},uploadFilesListModifiers:{},loading:{type:Boolean},loadingModifiers:{}}),emits:q(["success"],["update:uploadFilesList","update:loading"]),setup(d,{expose:K,emit:Q}){const{fileView:R}=Ce(),$=Q,X=Be(),v=_(),m=_([]),w=_(""),M=_([]),o=d,O=k(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),Y=k(()=>Ue(O.value)),n=H(d,"uploadFilesList"),Z=e=>{w.value=e},ee=()=>{w.value=""},b=k(()=>ke(o.accept)),V=e=>{const t=e.split(".").pop()+"";return".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP".includes(t)?"adtec-image":"txt".includes(t)?"adtec-text":"pdf".includes(t)?"adtec-pdf":"doc,docx".includes(t)?"adtec-word":"xls,xlsx".includes(t)?"adtec-excel":"ppt,pptx".includes(t)?"adtec-ppt":"adtec-text"},te=async e=>{const t=o.uploadCreateBy?.trim(),l=e.id!=null?String(e.id):"";if(!t||!l)return e;try{await S.updateFilesCreateBy([l],t),e.createBy=t}catch(a){F.messageError(a)}return e},ae=async(e,t,l)=>{if(e.code==="0"){const a=await te(e.data);n.value.push(a)}else c.error(e.msg),v.value?.handleRemove(t);for(let a=r.value.length-1;a>=0;a--)r.value[a]===t.name&&r.value.splice(a,1);e.code==="0"&&(o.showOptMessage&&c.success("上传成功"),$("success",{files:n.value,deleteFiles:m.value})),r.value.length===0&&(g.value=!1,G(e.code==="0"?void 0:new Error(e.msg||"上传失败")))},g=H(d,"loading"),r=_([]);let I,D;const j=k(()=>M.value.some(e=>e.status!=="success"&&e.status!=="fail")),le=()=>n.value.length>0||j.value,G=e=>{r.value.length>0||(e?D?.(e):I?.(),I=void 0,D=void 0)},L=async e=>{if(n.value.find(i=>i.name===e.name))return c.warning(e.name+",文件已存在"),!1;if(e.size>o.size*1024*1024)return c.warning("文件大小不能超过"+o.size+"MB"),!1;const l=b.value?.split(",").map(i=>i.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(c.error(`文件 ${e.name} 格式不支持,仅允许 ${b.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"])},1),!1):(r.value.includes(e.name)||r.value.push(e.name),!0)},B=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},oe=e=>{if(B(e))return!1;if(!e?.createBy?.trim())return!0;const t=o.fileOwnerAccounts?.map(l=>l.trim()).filter(Boolean)??[];return t.length>0?t.includes(e.createBy.trim()):X.getUserInfo.userCode===e.createBy},se=async e=>{if(B(e)){c.warning("该附件非您上传,无法预览或删除");return}if(e.name===w.value){if(e.createBy&&!oe(e)){c.warning("您没有权限删除此文件!");return}if(o.isConfirmDelete)v.value?.handleRemove(e);else if(!await Fe({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>v.value?.handleRemove(e),successMessage:!1}))return}else P(e)},ne=(e,t)=>{M.value=t},ie=async(e,t)=>{if(o.limit===1&&o.overwrite&&n.value.length>=1){const l=[...n.value],a=l[0];if(!o.isConfirmDelete){if(!await _e.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{g.value=!0,await S.delSysUploadFile(a.id).catch(u=>{F.messageError(u)})}catch(u){F.messageError(u);return}finally{g.value=!1}}n.value=[],v.value?.clearFiles(),e.length>0?await L(e[0])?(o.isConfirmDelete&&l.forEach(u=>{m.value.some(x=>x.id===u.id)||m.value.push(u)}),v.value?.handleStart(e[0]),o.autoUpload&&v.value?.submit()):n.value.push(...l):l.forEach(i=>{m.value.some(u=>u.id===i.id)||m.value.push(i)})}else c.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},re=(e,t,l)=>{c.error("上传失败");for(let a=r.value.length-1;a>=0;a--)r.value[a]===t.name&&r.value.splice(a,1);r.value.length===0&&(g.value=!1,G(e))},P=async e=>{const t=n.value.find(l=>l.name===e.name);if(t){if(B(t)){c.warning("该附件非您上传,无法预览或删除");return}R(t.id)}},T=async(e,t=!0)=>{const l=n.value.find(a=>a.name===e.name);if(!(!l||B(l)))try{o.isConfirmDelete?m.value.push(l):await S.delSysUploadFile(l.id),n.value.splice(n.value.indexOf(l),1)}catch(a){F.messageError(a)}},ue=(e,t)=>{g.value=!0};return K({remove:T,confirm:async(e=!0)=>{try{if(g.value=!0,o.isConfirmDelete&&m.value.length>0&&e&&(await S.delSysUploadFiles(m.value.map(t=>t.id)),m.value=[]),!o.autoUpload)if(j.value){const t=M.value.filter(a=>a.status!=="success"&&a.status!=="fail");for(const a of t)if(!a.raw||!await L(a.raw))throw new Error("待上传文件校验失败");const l=new Promise((a,i)=>{I=a,D=i});v.value?.submit(),await l}else o.showOptMessage&&c.success("操作成功"),$("success",{files:n.value,deleteFiles:m.value});g.value=!1}catch(t){throw F.messageError(t),g.value=!1,t}},hasFiles:le}),(e,t)=>{const l=h("el-icons"),a=h("el-tooltip"),i=h("el-icon"),u=h("el-text"),x=h("el-flex"),ce=h("el-upload"),de=pe("loading");return d.isEdit?ye((y(),A(ce,{key:1,ref_key:"ref_upload",ref:v,"file-list":n.value,onSuccess:ae,onRemove:T,onPreview:P,"auto-upload":d.autoUpload,onChange:ne,onError:re,onExceed:ie,onProgress:ue,"before-upload":L,drag:"",accept:b.value,action:O.value,multiple:"",limit:d.limit,headers:Y.value},{file:f(({file:s})=>[p(x,{class:"file-class",onMousemove:z=>Z(s.name),onMouseout:ee,onClick:z=>P(s),height:"20px",width:d.itemWidth},{default:f(()=>[p(x,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:f(()=>[p(a,{class:"box-item",content:s.name,placement:"top"},{default:f(()=>[p(u,{truncated:"",style:{cursor:"pointer"}},{default:f(()=>[p(l,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),N(" "+E(s.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),p(x,{align:"center",justify:"flex-end",width:"50px"},{default:f(()=>[!s?.businessId&&s.percentage!==100?(y(),A(u,{key:0},{default:f(()=>[N(E(s.percentage)+"% ",1)]),_:2},1024)):W("v-if",!0),s?.businessId||s.percentage===100?(y(),A(l,{key:1,onClick:we(z=>se(s),["prevent","stop"]),"model-value":s.name===w.value?"adtec-close":"adtec-success",style:he([{color:"var(--el-color-success)","font-size":"14px"},{color:s.name===w.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):W("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:f(()=>[p(i,{class:"el-icon--upload"},{default:f(()=>[p(J(xe))]),_:1}),t[0]||(t[0]=U("div",{class:"el-upload__text"},[N("拖动文件或"),U("em",null,"点击上传")],-1)),U("div",Ie,"最大上传文件大小"+E(d.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[de,d.showLoading&&g.value]]):(y(),C("div",Se,[n.value?.length?(y(),C("div",{key:0,class:fe(["readonly-file-list",{"is-vertical":d.vertical}])},[(y(!0),C(ve,null,ge(n.value,s=>(y(),C("div",{key:s.id,class:"file-item"},[p(l,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),p(a,{content:s.name,placement:"top"},{default:f(()=>[U("span",{class:"link-name",onClick:z=>J(R)(s.id)},E(s.name),9,Me)]),_:2},1032,["content"])]))),128))],2)):(y(),C("div",be,"暂无附件"))]))}}}),dt=Ee(De,[["__scopeId","data-v-39c23d51"]]);export{dt as default};
1
+ import{defineComponent as me,ref as _,computed as k,useModel as H,resolveComponent as h,resolveDirective as pe,openBlock as y,createElementBlock as C,normalizeClass as fe,Fragment as ve,renderList as ge,createVNode as p,withCtx as f,createElementVNode as U,unref as J,toDisplayString as E,withDirectives as ye,createBlock as A,createTextVNode as N,createCommentVNode as W,normalizeStyle as he,withModifiers as we,mergeModels as q}from"vue";import{UploadFilled as xe}from"@element-plus/icons-vue";import{ElMessage as c,ElMessageBox as _e}from"element-plus";import Ce from"../../hooks/useFileView.js";import S from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import{confirmDelete as Fe}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as Be}from"../../stores/userInfoStore.js";import{getAcceptString as ke}from"../../utils/uploadAccept.js";import{buildUploadHeaders as Ue}from"../../utils/buildUploadHeaders.js";import{_ as Ee}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/frontendBus.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"../../hooks/useBehaviorAction.js";import"pinia";import"../../utils/userSessionStorage.js";const Se={key:0},be=["onClick"],Me={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},Ie={class:"el-upload__tip"},De=me({__name:"CustomElUpload",props:q({limit:{type:Number,default:1},vertical:{type:Boolean,default:!1},accept:{type:String,default:""},business:{type:String,default:"default"},businessId:{type:String,default:"default"},isEdit:{type:Boolean,default:!0},association:{type:Boolean,default:!1},size:{type:Number,default:50},itemWidth:{type:String,default:"100%"},isConfirmDelete:{type:Boolean,default:!1},overwrite:{type:Boolean,default:!0},autoUpload:{type:Boolean,default:!0},showOptMessage:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},watermarkCode:{type:String,default:()=>{}},readonlyFileIds:{type:Array,default:()=>[]},fileOwnerAccounts:{type:Array,default:()=>[]},uploadCreateBy:{type:String,default:""}},{uploadFilesList:{default:[]},uploadFilesListModifiers:{},loading:{type:Boolean},loadingModifiers:{}}),emits:q(["success"],["update:uploadFilesList","update:loading"]),setup(d,{expose:K,emit:Q}){const{fileView:R}=Ce(),$=Q,X=Be(),v=_(),m=_([]),w=_(""),b=_([]),o=d,O=k(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),Y=k(()=>Ue(O.value)),n=H(d,"uploadFilesList"),Z=e=>{w.value=e},ee=()=>{w.value=""},M=k(()=>ke(o.accept)),V=e=>{const t=e.split(".").pop()+"";return".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP".includes(t)?"adtec-image":"txt".includes(t)?"adtec-text":"pdf".includes(t)?"adtec-pdf":"doc,docx".includes(t)?"adtec-word":"xls,xlsx".includes(t)?"adtec-excel":"ppt,pptx".includes(t)?"adtec-ppt":"adtec-text"},te=async e=>{const t=o.uploadCreateBy?.trim(),l=e.id!=null?String(e.id):"";if(!t||!l)return e;try{await S.updateFilesCreateBy([l],t),e.createBy=t}catch(a){F.messageError(a)}return e},ae=async(e,t,l)=>{if(e.code==="0"){const a=await te(e.data);n.value.push(a)}else c.error(e.msg),v.value?.handleRemove(t);for(let a=r.value.length-1;a>=0;a--)r.value[a]===t.name&&r.value.splice(a,1);e.code==="0"&&(o.showOptMessage&&c.success("上传成功"),$("success",{files:n.value,deleteFiles:m.value})),r.value.length===0&&(g.value=!1,G(e.code==="0"?void 0:new Error(e.msg||"上传失败")))},g=H(d,"loading"),r=_([]);let I,D;const j=k(()=>b.value.some(e=>e.status!=="success"&&e.status!=="fail")),le=()=>n.value.length>0||j.value,G=e=>{r.value.length>0||(e?D?.(e):I?.(),I=void 0,D=void 0)},L=async e=>{if(n.value.find(i=>i.name===e.name))return c.warning(e.name+",文件已存在"),!1;if(e.size>o.size*1024*1024)return c.warning("文件大小不能超过"+o.size+"MB"),!1;const l=M.value?.split(",").map(i=>i.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(c.error(`文件 ${e.name} 格式不支持,仅允许 ${M.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"])},1),!1):(r.value.includes(e.name)||r.value.push(e.name),!0)},B=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},oe=e=>{if(B(e))return!1;if(!e?.createBy?.trim())return!0;const t=o.fileOwnerAccounts?.map(l=>l.trim()).filter(Boolean)??[];return t.length>0?t.includes(e.createBy.trim()):X.getUserInfo.userCode===e.createBy},se=async e=>{if(B(e)){c.warning("该附件非您上传,无法预览或删除");return}if(e.name===w.value){if(e.createBy&&!oe(e)){c.warning("您没有权限删除此文件!");return}if(o.isConfirmDelete)v.value?.handleRemove(e);else if(!await Fe({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>v.value?.handleRemove(e),successMessage:!1}))return}else P(e)},ne=(e,t)=>{b.value=t},ie=async(e,t)=>{if(o.limit===1&&o.overwrite&&n.value.length>=1){const l=[...n.value],a=l[0];if(!o.isConfirmDelete){if(!await _e.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{g.value=!0,await S.delSysUploadFile(a.id).catch(u=>{F.messageError(u)})}catch(u){F.messageError(u);return}finally{g.value=!1}}n.value=[],v.value?.clearFiles(),e.length>0?await L(e[0])?(o.isConfirmDelete&&l.forEach(u=>{m.value.some(x=>x.id===u.id)||m.value.push(u)}),v.value?.handleStart(e[0]),o.autoUpload&&v.value?.submit()):n.value.push(...l):l.forEach(i=>{m.value.some(u=>u.id===i.id)||m.value.push(i)})}else c.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},re=(e,t,l)=>{c.error("上传失败");for(let a=r.value.length-1;a>=0;a--)r.value[a]===t.name&&r.value.splice(a,1);r.value.length===0&&(g.value=!1,G(e))},P=async e=>{const t=n.value.find(l=>l.name===e.name);if(t){if(B(t)){c.warning("该附件非您上传,无法预览或删除");return}R(t.id)}},T=async(e,t=!0)=>{const l=n.value.find(a=>a.name===e.name);if(!(!l||B(l)))try{o.isConfirmDelete?m.value.push(l):await S.delSysUploadFile(l.id),n.value.splice(n.value.indexOf(l),1)}catch(a){F.messageError(a)}},ue=(e,t)=>{g.value=!0};return K({remove:T,confirm:async(e=!0)=>{try{if(g.value=!0,o.isConfirmDelete&&m.value.length>0&&e&&(await S.delSysUploadFiles(m.value.map(t=>t.id)),m.value=[]),!o.autoUpload)if(j.value){const t=b.value.filter(a=>a.status!=="success"&&a.status!=="fail");for(const a of t)if(!a.raw||!await L(a.raw))throw new Error("待上传文件校验失败");const l=new Promise((a,i)=>{I=a,D=i});v.value?.submit(),await l}else o.showOptMessage&&c.success("操作成功"),$("success",{files:n.value,deleteFiles:m.value});g.value=!1}catch(t){throw F.messageError(t),g.value=!1,t}},hasFiles:le}),(e,t)=>{const l=h("el-icons"),a=h("el-tooltip"),i=h("el-icon"),u=h("el-text"),x=h("el-flex"),ce=h("el-upload"),de=pe("loading");return d.isEdit?ye((y(),A(ce,{key:1,ref_key:"ref_upload",ref:v,"file-list":n.value,onSuccess:ae,onRemove:T,onPreview:P,"auto-upload":d.autoUpload,onChange:ne,onError:re,onExceed:ie,onProgress:ue,"before-upload":L,drag:"",accept:M.value,action:O.value,multiple:"",limit:d.limit,headers:Y.value},{file:f(({file:s})=>[p(x,{class:"file-class",onMousemove:z=>Z(s.name),onMouseout:ee,onClick:z=>P(s),height:"20px",width:d.itemWidth},{default:f(()=>[p(x,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:f(()=>[p(a,{class:"box-item",content:s.name,placement:"top"},{default:f(()=>[p(u,{truncated:"",style:{cursor:"pointer"}},{default:f(()=>[p(l,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),N(" "+E(s.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),p(x,{align:"center",justify:"flex-end",width:"50px"},{default:f(()=>[!s?.businessId&&s.percentage!==100?(y(),A(u,{key:0},{default:f(()=>[N(E(s.percentage)+"% ",1)]),_:2},1024)):W("v-if",!0),s?.businessId||s.percentage===100?(y(),A(l,{key:1,onClick:we(z=>se(s),["prevent","stop"]),"model-value":s.name===w.value?"adtec-close":"adtec-success",style:he([{color:"var(--el-color-success)","font-size":"14px"},{color:s.name===w.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):W("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:f(()=>[p(i,{class:"el-icon--upload"},{default:f(()=>[p(J(xe))]),_:1}),t[0]||(t[0]=U("div",{class:"el-upload__text"},[N("拖动文件或"),U("em",null,"点击上传")],-1)),U("div",Ie,"最大上传文件大小"+E(d.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[de,d.showLoading&&g.value]]):(y(),C("div",Se,[n.value?.length?(y(),C("div",{key:0,class:fe(["readonly-file-list",{"is-vertical":d.vertical}])},[(y(!0),C(ve,null,ge(n.value,s=>(y(),C("div",{key:s.id,class:"file-item"},[p(l,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),p(a,{content:s.name,placement:"top"},{default:f(()=>[U("span",{class:"link-name",onClick:z=>J(R)(s.id)},E(s.name),9,be)]),_:2},1032,["content"])]))),128))],2)):(y(),C("div",Me,"暂无附件"))]))}}}),dt=Ee(De,[["__scopeId","data-v-c9dafb01"]]);export{dt as default};
@@ -1 +1 @@
1
- import{defineComponent as k,useModel as E,ref as c,onMounted as L,onBeforeUnmount as x,openBlock as C,createBlock as R,Teleport as U,createElementVNode as w,normalizeClass as y,createVNode as I,unref as s,createCommentVNode as M,mergeModels as g}from"vue";import{useVModel as u}from"@vueuse/core";import S from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import N from"./OfficePreview.vue.js";import{_ as O}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";const j=k({__name:"FileView",props:g({title:{type:String,default:""},url:{type:String,default:""},fileId:{type:String,default:""},edit:{type:String,default:"view"}},{modelValue:{},modelModifiers:{}}),emits:g(["update:title","update:url","update:fileId","update:edit"],["update:modelValue"]),setup(d,{emit:h}){const m=E(d,"modelValue"),r=d,n=h,f=u(r,"title",n),i=u(r,"fileId",n),F=u(r,"url",n),l=c(null),t=c(!1),a=c(!1),p=()=>{const e=l.value;t.value=!!e&&document.fullscreenElement===e,document.body.style.overflow=t.value?"hidden":""},v=async()=>{try{document.fullscreenElement===l.value&&await document.exitFullscreen()}catch{}t.value=!1,document.body.style.overflow=""},_=async()=>{const e=l.value;if(e)try{document.fullscreenElement===e?await document.exitFullscreen():await e.requestFullscreen()}catch{t.value=!t.value,document.body.style.overflow=t.value?"hidden":""}},V=async()=>{await v(),m.value=!1},b=async()=>{if(i.value)try{a.value=!0;const e=await S.downloadFile(i.value),o=document.createElement("a");o.href=URL.createObjectURL(e),o.download=f.value,o.click(),URL.revokeObjectURL(o.href)}catch(e){B.messageError(e)}finally{a.value=!1}};return L(()=>document.addEventListener("fullscreenchange",p)),x(()=>{document.removeEventListener("fullscreenchange",p),v()}),(e,o)=>m.value?(C(),R(U,{key:0,to:"body"},[w("div",{class:y(["file-view-overlay",{"is-preview-fullscreen":t.value}])},[w("div",{ref_key:"previewContainerRef",ref:l,class:y(["office-preview",{"fullscreen-mode":t.value}])},[I(N,{url:s(F),"file-id":s(i),"file-name":s(f),"show-header":"","show-download":"","show-fullscreen":"","show-close":"",fullscreen:t.value,"download-loading":a.value,onDownload:b,onToggleFullscreen:_,onClose:V},null,8,["url","file-id","file-name","fullscreen","download-loading"])],2)],2)])):M("v-if",!0)}}),de=O(j,[["__scopeId","data-v-52672773"]]);export{de as default};
1
+ import{defineComponent as V,useModel as k,ref as C,openBlock as P,createBlock as R,Teleport as b,createElementVNode as u,normalizeClass as p,unref as e,createVNode as x,createCommentVNode as I,mergeModels as f}from"vue";import{useVModel as s}from"@vueuse/core";import L from"../../api/DocumentApi.js";import U from"../../utils/FrameworkUtils.js";import M from"../../hooks/usePreviewFullscreen.js";import S from"./OfficePreview.vue.js";import{_ as E}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";const N=V({__name:"FileView",props:f({title:{type:String,default:""},url:{type:String,default:""},fileId:{type:String,default:""},edit:{type:String,default:"view"}},{modelValue:{},modelModifiers:{}}),emits:f(["update:title","update:url","update:fileId","update:edit"],["update:modelValue"]),setup(c,{emit:w}){const d=k(c,"modelValue"),t=c,r=w,m=s(t,"title",r),i=s(t,"fileId",r),v=s(t,"url",r),n=C(!1),{previewContainerRef:g,isPreviewFullscreen:a,togglePreviewFullscreen:y,exitPreviewFullscreen:F}=M(),_=async()=>{await F(),d.value=!1},h=async()=>{if(i.value)try{n.value=!0;const l=await L.downloadFile(i.value),o=document.createElement("a");o.href=URL.createObjectURL(l),o.download=m.value,o.click(),URL.revokeObjectURL(o.href)}catch(l){U.messageError(l)}finally{n.value=!1}};return(l,o)=>d.value?(P(),R(b,{key:0,to:"body"},[u("div",{class:p(["file-view-overlay",{"is-preview-fullscreen":e(a)}])},[u("div",{ref_key:"previewContainerRef",ref:g,class:p(["office-preview",{"fullscreen-mode":e(a)}])},[x(S,{url:e(v),"file-id":e(i),"file-name":e(m),"show-header":"","show-download":"","show-fullscreen":"","show-close":"",fullscreen:e(a),"download-loading":n.value,onDownload:h,onToggleFullscreen:e(y),onClose:_},null,8,["url","file-id","file-name","fullscreen","download-loading","onToggleFullscreen"])],2)],2)])):I("v-if",!0)}}),de=E(N,[["__scopeId","data-v-a94c44dc"]]);export{de as default};
@@ -1 +1 @@
1
- import{defineComponent as c,ref as a,openBlock as d,createBlock as v,createCommentVNode as w}from"vue";import n from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import V from"./FileView.vue.js";import{getFileSuffix as k,isPreviewableSuffix as U}from"../../utils/uploadAccept.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"@vueuse/core";import"./OfficePreview.vue.js";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const Z=c({__name:"FileViewComponents",setup(b,{expose:u}){const t=a(!1),m=a(""),l=a(""),s=a("view");let p=0;const f=async(o,i)=>{const e=await n.downloadFile(o),r=document.createElement("a");r.href=URL.createObjectURL(e),r.download=i,r.click(),URL.revokeObjectURL(r.href)};return u({viewFile:async o=>{const i=++p;m.value="文件预览",l.value=o,t.value=!0;try{const e=await n.getUpLoadFilesVoById(o);if(i!==p||!t.value||l.value!==o)return;const r=k(e);if(!U(r)){t.value=!1,await f(e.id,e.name);return}m.value=e.name}catch(e){if(i!==p||!t.value||l.value!==o)return;t.value=!1,F.messageError(e)}}}),(o,i)=>t.value?(d(),v(V,{key:0,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=e=>t.value=e),title:m.value,"file-id":l.value,edit:s.value},null,8,["modelValue","title","file-id","edit"])):w("v-if",!0)}});export{Z as default};
1
+ import{defineComponent as c,ref as a,openBlock as d,createBlock as v,createCommentVNode as w}from"vue";import n from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import V from"./FileView.vue.js";import{getFileSuffix as k,isPreviewableSuffix as U}from"../../utils/uploadAccept.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"@vueuse/core";import"../../hooks/usePreviewFullscreen.js";import"./OfficePreview.vue.js";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const $=c({__name:"FileViewComponents",setup(b,{expose:u}){const t=a(!1),m=a(""),l=a(""),s=a("view");let p=0;const f=async(o,i)=>{const e=await n.downloadFile(o),r=document.createElement("a");r.href=URL.createObjectURL(e),r.download=i,r.click(),URL.revokeObjectURL(r.href)};return u({viewFile:async o=>{const i=++p;m.value="文件预览",l.value=o,t.value=!0;try{const e=await n.getUpLoadFilesVoById(o);if(i!==p||!t.value||l.value!==o)return;const r=k(e);if(!U(r)){t.value=!1,await f(e.id,e.name);return}m.value=e.name}catch(e){if(i!==p||!t.value||l.value!==o)return;t.value=!1,F.messageError(e)}}}),(o,i)=>t.value?(d(),v(V,{key:0,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=e=>t.value=e),title:m.value,"file-id":l.value,edit:s.value},null,8,["modelValue","title","file-id","edit"])):w("v-if",!0)}});export{$ as default};
@@ -1 +1 @@
1
- import{defineComponent as Q,ref as g,useModel as X,computed as Y,onMounted as Z,watch as _,resolveComponent as M,openBlock as l,createElementBlock as F,createVNode as ee,withCtx as u,renderSlot as S,createBlock as f,createTextVNode as m,toDisplayString as v,createCommentVNode as d,unref as te,Fragment as ae,mergeModels as $}from"vue";import w from"../../api/workflow/workflowInstApi.js";import oe from"./components/SelectAssigneeDialog.vue.js";import{_ as re}from"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-Buyy5IIG.js";import ne from"./components/CheckDialog.vue.js";import P from"../../utils/FrameworkUtils.js";import{userInfoStore as k}from"../../stores/userInfoStore.js";import{frontendBus as q}from"../../utils/frontendBus.js";import{showTodoDialog as ie}from"../../hooks/workflowTodo.js";import{_ as se}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"@element-plus/icons-vue";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"@vueuse/core";import"../business/userSelectContent.vue.js";import"../../api/BasicApi.js";import"../../api/SysUserApi.js";import"xlsx-js-style";import"../upload/CustomElUpload.vue.js";import"../../hooks/useFileView.js";import"../../api/DocumentApi.js";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"pinia";import"../../utils/userSessionStorage.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const le=Q({__name:"TaskOperation",props:$({taskId:{type:String,required:!1},showProcessBtn:{type:Boolean,required:!1,default:!1},params:{type:Object,required:!1},taskInfo:{type:Object,required:!1},showOperationsBtn:{type:Boolean,required:!1,default:!0},showCurWorkBth:{type:Boolean,required:!1,default:!0},onProcessDetail:{type:Function,required:!1},renderDialog:{type:Function,required:!1}},{butLoading:{type:Boolean,default:!1},butLoadingModifiers:{}}),emits:$(["success"],["update:butLoading"]),setup(o,{expose:L,emit:h}){const A=k(),B=g(null),n=o,i=X(o,"butLoading"),T=h,e=g({taskId:"",comment:""}),b=n.renderDialog,y=(t,a,r,x,p,J)=>{if(!b){console.warn("[TaskOperation] 未注入 renderDialog,无法打开操作弹窗(请通过 props 传入 useDialogHooks 的 render)");return}b(t,a,r,x,p,J)},E=()=>{typeof n.onProcessDetail=="function"&&n.onProcessDetail(e.value)},I=Y(()=>e.value?.operations==="assignee"),N=g(""),R=g([{source:"edit"}]),U=async()=>{await ie(g(e.value),R)},c=async t=>{if(t&&(N.value=t),!e.value)return;let a=!1;if(t==="complete"&&n.params?.beforeCompleteFunction)try{const r=await n.params?.beforeCompleteFunction({taskId:e.value.taskId,userId:k().getUserInfo.userCode,comment:"同意。",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey});if(r===!1)return;r?.readonly&&(a=!0),e.value={...e.value,...r}}catch{return}if(t==="addMulti"||t==="minusMulti")y(re,{taskId:e.value.taskId,dialogType:t},{title:t==="addMulti"?"加签":"减签",size:"400px"},"dialog");else if(t==="assignee")D(e.value.taskId);else{if(e.value.variables,t==="complete"&&e.value.firstSubmitNode&&n.params?.ignoreConfirm){await V();return}y(ne,{taskVo:e.value,dialogType:t,taskOperate:n?.params,commentReadonly:a,onOpenAssignee:D,onSuccess:z},{title:K(t),size:"480px",closeOnClickModal:!1},"dialog")}},K=t=>{switch(t){case"complete":return"流程审批";case"refuse":return"终止审批";case"back":return"退回审批";case"transfer":return"转办审批";default:return"流程审批"}},V=async()=>{if(!(!e.value||!k().getUserInfo.userCode))try{i.value=!0;const t={taskId:e.value.taskId,userId:k().getUserInfo.userCode,comment:e.value.comment??"",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey,variables:e.value.variables};if(n.params?.completeFunction){const a=await n.params?.completeFunction(t);a&&a?.taskId?e.value=a:e.value=await w.getTaskInst(e.value.taskId)}else e.value=await w.taskComplete(t)}catch(t){P.messageError(t)}finally{i.value=!1}},j=()=>{n.params?.workflowComplete(),T("success")},D=t=>{y(oe,{taskId:t,onSuccess:j},{title:"指定执行人",size:"450px"},"dialog")},z=t=>{e.value=t,n.params?.workflowComplete(t),q.emit("todoRefresh"),q.emit("homePageRefresh"),T("success")},O=(t,a)=>t?t.classList?.contains(a)?t:O(t.parentElement,a):null,W=()=>{const t=O(B.value,"todo-dialog-class");return t?console.log("找到满足条件的元素:",t):console.log("未找到满足条件的元素"),t};Z(()=>{W(),C()});const s=g(!1),H=async()=>{s.value=!0},G=()=>{s.value=!1},C=async()=>{if(n.taskInfo)e.value=n.taskInfo,e.value.finishTime&&console.log("该待办已完成!");else if(n.taskId)try{H(),e.value=await w.getTaskInst(n.taskId),e.value.finishTime&&console.log("该待办已完成!")}catch(t){P.messageError(t)}finally{G()}};return L({reload:()=>{C()}}),_(()=>n.taskId,C),(t,a)=>{const r=M("el-button"),x=M("el-flex");return l(),F("div",{ref_key:"taskFlexRef",ref:B,class:"task-operation"},[ee(x,{align:"center",justify:"flex-end"},{default:u(()=>[S(t.$slots,"left",{},void 0,!0),o.params?.cancelBtnText!==""?(l(),f(r,{key:0,loading:i.value||s.value,onClick:o.params?.cancelFunction},{default:u(()=>[m(v(o.params?.cancelBtnText??"取消"),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),o.showProcessBtn&&e.value?.procInsId?(l(),f(r,{key:1,type:"info",loading:i.value||s.value,onClick:E},{default:u(()=>[...a[7]||(a[7]=[m(" 流程信息 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&o.showCurWorkBth&&!o.showOperationsBtn?(l(),f(r,{key:2,loading:i.value||s.value,type:"warning",disabled:e.value?.taskId&&(!e.value?.operations||te(A).getUserInfo.userCode!==e.value?.assigneeId),onClick:U},{default:u(()=>[m(v(e.value.taskName),1)]),_:1},8,["loading","disabled"])):d("v-if",!0),I.value?(l(),f(r,{key:3,type:"primary",loading:i.value||s.value,onClick:a[0]||(a[0]=p=>c("assignee"))},{default:u(()=>[...a[8]||(a[8]=[m("指定执行人 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&e.value?.operations&&o.showOperationsBtn?(l(),F(ae,{key:4},[o.params?.saveBtnText?(l(),f(r,{key:0,loading:i.value||s.value,type:"primary",onClick:o.params?.saveFunction},{default:u(()=>[m(v(o.params?.saveBtnText),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),e.value?.operations.indexOf("addMulti")>-1?(l(),f(r,{key:1,type:"warning",loading:i.value||s.value,onClick:a[1]||(a[1]=p=>c("addMulti"))},{default:u(()=>[...a[9]||(a[9]=[m("加签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("minusMulti")>-1?(l(),f(r,{key:2,type:"danger",loading:i.value||s.value,onClick:a[2]||(a[2]=p=>c("minusMulti"))},{default:u(()=>[...a[10]||(a[10]=[m("减签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("refuse")>-1&&o.params?.refuseBtnText!==""?(l(),f(r,{key:3,loading:i.value||s.value,type:"danger",onClick:a[3]||(a[3]=p=>c("refuse"))},{default:u(()=>[m(v(o.params?.refuseBtnText??"终止"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("transfer")>-1&&o.params?.transferBtnText!==""?(l(),f(r,{key:4,loading:i.value||s.value,type:"warning",onClick:a[4]||(a[4]=p=>c("transfer"))},{default:u(()=>[m(v(o.params?.transferBtnText??"转办"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("back")>-1&&o.params?.backBtnText!==""?(l(),f(r,{key:5,loading:i.value||s.value,type:"danger",onClick:a[5]||(a[5]=p=>c("back"))},{default:u(()=>[m(v(o.params?.backBtnText??"驳回"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("complete")>-1&&o.params?.completeBtnText!==""?(l(),f(r,{key:6,loading:i.value||s.value,type:"primary",onClick:a[6]||(a[6]=p=>c("complete"))},{default:u(()=>[m(v(o.params?.completeBtnText??"同意"),1)]),_:1},8,["loading"])):d("v-if",!0)],64)):d("v-if",!0),S(t.$slots,"right",{},void 0,!0)]),_:3})],512)}}}),it=se(le,[["__scopeId","data-v-08c0f430"]]);export{it as default};
1
+ import{defineComponent as Q,ref as g,useModel as X,computed as Y,onMounted as Z,watch as _,resolveComponent as M,openBlock as l,createElementBlock as F,createVNode as ee,withCtx as u,renderSlot as S,createBlock as f,createTextVNode as m,toDisplayString as v,createCommentVNode as d,unref as te,Fragment as ae,mergeModels as $}from"vue";import w from"../../api/workflow/workflowInstApi.js";import oe from"./components/SelectAssigneeDialog.vue.js";import{_ as re}from"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-Buyy5IIG.js";import ne from"./components/CheckDialog.vue.js";import P from"../../utils/FrameworkUtils.js";import{userInfoStore as k}from"../../stores/userInfoStore.js";import{frontendBus as q}from"../../utils/frontendBus.js";import{showTodoDialog as ie}from"../../hooks/workflowTodo.js";import{_ as se}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"@element-plus/icons-vue";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"@vueuse/core";import"../business/userSelectContent.vue.js";import"../../api/BasicApi.js";import"../../api/SysUserApi.js";import"xlsx-js-style";import"../upload/CustomElUpload.vue.js";import"../../hooks/useFileView.js";import"../../api/DocumentApi.js";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"pinia";import"../../utils/userSessionStorage.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/operationAuth.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const le=Q({__name:"TaskOperation",props:$({taskId:{type:String,required:!1},showProcessBtn:{type:Boolean,required:!1,default:!1},params:{type:Object,required:!1},taskInfo:{type:Object,required:!1},showOperationsBtn:{type:Boolean,required:!1,default:!0},showCurWorkBth:{type:Boolean,required:!1,default:!0},onProcessDetail:{type:Function,required:!1},renderDialog:{type:Function,required:!1}},{butLoading:{type:Boolean,default:!1},butLoadingModifiers:{}}),emits:$(["success"],["update:butLoading"]),setup(o,{expose:L,emit:h}){const A=k(),B=g(null),n=o,i=X(o,"butLoading"),T=h,e=g({taskId:"",comment:""}),b=n.renderDialog,y=(t,a,r,x,p,J)=>{if(!b){console.warn("[TaskOperation] 未注入 renderDialog,无法打开操作弹窗(请通过 props 传入 useDialogHooks 的 render)");return}b(t,a,r,x,p,J)},E=()=>{typeof n.onProcessDetail=="function"&&n.onProcessDetail(e.value)},I=Y(()=>e.value?.operations==="assignee"),N=g(""),R=g([{source:"edit"}]),U=async()=>{await ie(g(e.value),R)},c=async t=>{if(t&&(N.value=t),!e.value)return;let a=!1;if(t==="complete"&&n.params?.beforeCompleteFunction)try{const r=await n.params?.beforeCompleteFunction({taskId:e.value.taskId,userId:k().getUserInfo.userCode,comment:"同意。",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey});if(r===!1)return;r?.readonly&&(a=!0),e.value={...e.value,...r}}catch{return}if(t==="addMulti"||t==="minusMulti")y(re,{taskId:e.value.taskId,dialogType:t},{title:t==="addMulti"?"加签":"减签",size:"400px"},"dialog");else if(t==="assignee")D(e.value.taskId);else{if(e.value.variables,t==="complete"&&e.value.firstSubmitNode&&n.params?.ignoreConfirm){await V();return}y(ne,{taskVo:e.value,dialogType:t,taskOperate:n?.params,commentReadonly:a,onOpenAssignee:D,onSuccess:z},{title:K(t),size:"480px",closeOnClickModal:!1},"dialog")}},K=t=>{switch(t){case"complete":return"流程审批";case"refuse":return"终止审批";case"back":return"退回审批";case"transfer":return"转办审批";default:return"流程审批"}},V=async()=>{if(!(!e.value||!k().getUserInfo.userCode))try{i.value=!0;const t={taskId:e.value.taskId,userId:k().getUserInfo.userCode,comment:e.value.comment??"",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey,variables:e.value.variables};if(n.params?.completeFunction){const a=await n.params?.completeFunction(t);a&&a?.taskId?e.value=a:e.value=await w.getTaskInst(e.value.taskId)}else e.value=await w.taskComplete(t)}catch(t){P.messageError(t)}finally{i.value=!1}},j=()=>{n.params?.workflowComplete(),T("success")},D=t=>{y(oe,{taskId:t,onSuccess:j},{title:"指定执行人",size:"450px"},"dialog")},z=t=>{e.value=t,n.params?.workflowComplete(t),q.emit("todoRefresh"),q.emit("homePageRefresh"),T("success")},O=(t,a)=>t?t.classList?.contains(a)?t:O(t.parentElement,a):null,W=()=>{const t=O(B.value,"todo-dialog-class");return t?console.log("找到满足条件的元素:",t):console.log("未找到满足条件的元素"),t};Z(()=>{W(),C()});const s=g(!1),H=async()=>{s.value=!0},G=()=>{s.value=!1},C=async()=>{if(n.taskInfo)e.value=n.taskInfo,e.value.finishTime&&console.log("该待办已完成!");else if(n.taskId)try{H(),e.value=await w.getTaskInst(n.taskId),e.value.finishTime&&console.log("该待办已完成!")}catch(t){P.messageError(t)}finally{G()}};return L({reload:()=>{C()}}),_(()=>n.taskId,C),(t,a)=>{const r=M("el-button"),x=M("el-flex");return l(),F("div",{ref_key:"taskFlexRef",ref:B,class:"task-operation"},[ee(x,{align:"center",justify:"flex-end"},{default:u(()=>[S(t.$slots,"left",{},void 0,!0),o.params?.cancelBtnText!==""?(l(),f(r,{key:0,loading:i.value||s.value,onClick:o.params?.cancelFunction},{default:u(()=>[m(v(o.params?.cancelBtnText??"取消"),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),o.showProcessBtn&&e.value?.procInsId?(l(),f(r,{key:1,type:"info",loading:i.value||s.value,onClick:E},{default:u(()=>[...a[7]||(a[7]=[m(" 流程信息 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&o.showCurWorkBth&&!o.showOperationsBtn?(l(),f(r,{key:2,loading:i.value||s.value,type:"warning",disabled:e.value?.taskId&&(!e.value?.operations||te(A).getUserInfo.userCode!==e.value?.assigneeId),onClick:U},{default:u(()=>[m(v(e.value.taskName),1)]),_:1},8,["loading","disabled"])):d("v-if",!0),I.value?(l(),f(r,{key:3,type:"primary",loading:i.value||s.value,onClick:a[0]||(a[0]=p=>c("assignee"))},{default:u(()=>[...a[8]||(a[8]=[m("指定执行人 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&e.value?.operations&&o.showOperationsBtn?(l(),F(ae,{key:4},[o.params?.saveBtnText?(l(),f(r,{key:0,loading:i.value||s.value,type:"primary",onClick:o.params?.saveFunction},{default:u(()=>[m(v(o.params?.saveBtnText),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),e.value?.operations.indexOf("addMulti")>-1?(l(),f(r,{key:1,type:"warning",loading:i.value||s.value,onClick:a[1]||(a[1]=p=>c("addMulti"))},{default:u(()=>[...a[9]||(a[9]=[m("加签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("minusMulti")>-1?(l(),f(r,{key:2,type:"danger",loading:i.value||s.value,onClick:a[2]||(a[2]=p=>c("minusMulti"))},{default:u(()=>[...a[10]||(a[10]=[m("减签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("refuse")>-1&&o.params?.refuseBtnText!==""?(l(),f(r,{key:3,loading:i.value||s.value,type:"danger",onClick:a[3]||(a[3]=p=>c("refuse"))},{default:u(()=>[m(v(o.params?.refuseBtnText??"终止"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("transfer")>-1&&o.params?.transferBtnText!==""?(l(),f(r,{key:4,loading:i.value||s.value,type:"warning",onClick:a[4]||(a[4]=p=>c("transfer"))},{default:u(()=>[m(v(o.params?.transferBtnText??"转办"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("back")>-1&&o.params?.backBtnText!==""?(l(),f(r,{key:5,loading:i.value||s.value,type:"danger",onClick:a[5]||(a[5]=p=>c("back"))},{default:u(()=>[m(v(o.params?.backBtnText??"驳回"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("complete")>-1&&o.params?.completeBtnText!==""?(l(),f(r,{key:6,loading:i.value||s.value,type:"primary",onClick:a[6]||(a[6]=p=>c("complete"))},{default:u(()=>[m(v(o.params?.completeBtnText??"同意"),1)]),_:1},8,["loading"])):d("v-if",!0)],64)):d("v-if",!0),S(t.$slots,"right",{},void 0,!0)]),_:3})],512)}}}),st=se(le,[["__scopeId","data-v-08c0f430"]]);export{st as default};
@@ -1,7 +1,7 @@
1
- import{defineComponent as ge,useModel as Ie,ref as A,computed as y,resolveComponent as h,resolveDirective as Te,openBlock as a,createElementBlock as r,createCommentVNode as d,withDirectives as xe,createVNode as D,createElementVNode as i,createBlock as x,Fragment as u,renderList as C,normalizeClass as H,toDisplayString as p,renderSlot as Ce,resolveDynamicComponent as be,mergeProps as Ne,withCtx as K,normalizeStyle as De,createTextVNode as b,unref as J,mergeModels as X,nextTick as Ae}from"vue";import V from"../../api/workflow/workflowInstApi.js";import Ke from"../../api/DocumentApi.js";import Be from"../../hooks/useFileView.js";import Ee from"../../utils/FrameworkUtils.js";import{formatDateTime as Le}from"../../utils/dateTime.js";import{userInfoStore as Me}from"../../stores/userInfoStore.js";import Se from"./TaskOperation.vue.js";import{_ as Pe}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";import"./components/SelectAssigneeDialog.vue.js";import"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-Buyy5IIG.js";import"./components/CheckDialog.vue.js";import"@element-plus/icons-vue";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"@vueuse/core";import"../business/userSelectContent.vue.js";import"../../api/BasicApi.js";import"../../api/SysUserApi.js";import"../upload/CustomElUpload.vue.js";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"../../hooks/workflowTodo.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const $e={class:"workflow-todo-shell"},Ve={class:"workflow-todo-shell__body dialog-content-fill"},je={key:1,class:"wf-progress-scroll"},Fe={class:"wf-progress-steps"},Oe={class:"wf-progress-step__icon-wrap"},Ue={class:"wf-progress-step__icon"},ze={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},Re={key:4},Qe={class:"wf-progress-step__name"},Ge={class:"wf-progress-step__name-text"},We={class:"wf-progress-step__name-label"},Ye={key:0,class:"wf-progress-step__occurrence"},qe={key:0,class:"workflow-todo-shell__record-occurrence"},He={key:1,class:"workflow-todo-shell__record-type"},Je={key:0,class:"workflow-todo-shell__record-user"},Xe={class:"workflow-todo-shell__record-person__name"},Ze={key:0,class:"workflow-todo-shell__comment"},et={key:0,class:"workflow-todo-shell__record-files"},tt=["onClick"],st={class:"workflow-todo-shell__record-person__name"},ot={key:0,class:"workflow-todo-shell__comment"},nt={key:1,class:"workflow-todo-shell__record-files"},at=["onClick"],rt={class:"workflow-todo-shell__record-person__name"},lt={key:0,class:"workflow-todo-shell__footer"},it=ge({__name:"WorkflowTodoShell",props:X({taskId:{},taskInfo:{default:void 0},readonly:{type:Boolean,default:!1},contentComponent:{default:void 0},contentProps:{default:()=>({})},renderDialog:{type:Function,default:void 0},showFooter:{type:Boolean,default:!0}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:X(["cancel","success"],["update:loading"]),setup(w,{expose:Z,emit:ee}){const f=w,B=ee,g=Ie(w,"loading"),v=A(),m=A(),E=A(),L=A(!1),te=e=>[...e].sort((t,o)=>(t.createTime||"").localeCompare(o.createTime||"")),j=y(()=>te([...m.value?.hisTasks||[],...m.value?.activeTasks||[]])),M=A({}),F=Be().fileView,O=e=>{const t=(e.split(".").pop()||"").toLowerCase();return".jpg,.jpeg,.png,.gif,.bmp".includes(t)?"adtec-image":t==="pdf"?"adtec-pdf":t==="doc"||t==="docx"?"adtec-word":t==="xls"||t==="xlsx"?"adtec-excel":t==="ppt"||t==="pptx"?"adtec-ppt":"adtec-text"},N=e=>e?M.value[e]||[]:[],se=async()=>{var t;const e=Array.from(new Set(j.value.map(o=>o.taskId).filter(o=>!!o)));if(e.length)try{const o=await Ke.getUpLoadFilesByBussinessIds(e),n={};for(const l of o)l.businessId&&(n[t=l.businessId]||(n[t]=[])).push(l);M.value=n}catch{M.value={}}},S=y(()=>{const e=new Map;for(const t of j.value){const o=Y(t),n=e.get(o);n?n.tasks.push(t):e.set(o,{taskName:t.taskName,taskDefKey:t.taskDefKey,parentExecutionId:t.parentExecutionId,tasks:[t],approvalType:t.approvalType})}return Array.from(e.values())}),oe=y(()=>v.value?.procEndTime?!0:!!(m.value&&!(m.value.activeTasks||[]).length&&(m.value.hisTasks||[]).length)),ne=y(()=>{const e=[...S.value],t=new Set(e.map(n=>U(n)));for(const n of m.value?.futureTasks||[]){const l=`${n.taskDefKey||n.taskName}-`;t.has(l)||e.push({taskName:n.taskName,taskDefKey:n.taskDefKey,tasks:[],assigneeNames:n.assigneeNames,approvalType:n.approvalType})}const o=new Map;for(const n of e){const l=n.taskDefKey||n.taskName||"";l&&(n.occurrence=(o.get(l)||0)+1,o.set(l,n.occurrence))}return e}),U=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,ae={single:"或签",joint:"会签",all:"会签"},z=e=>ae[e.approvalType||e.tasks[0]?.approvalType||""]||"",re=e=>(e.approvalType||e.tasks[0]?.approvalType||"")==="single",R=e=>{const t=(e.assigneeNames||"").split(",").map(o=>o.trim()).filter(Boolean);return t.length?t:["待处理"]},le={1:{label:"同意",type:"success"},2:{label:"驳回",type:"warning"},3:{label:"终止",type:"danger"},4:{label:"委派",type:"warning"},5:{label:"转办",type:"warning"},6:{label:"终止",type:"danger"},7:{label:"撤回",type:"info"}},ie=e=>Le(e.finishTime||e.createTime),ce={success:"var(--el-color-success)",warning:"var(--el-color-warning)",danger:"var(--el-color-danger)",primary:"var(--el-color-primary)"},de=e=>ce[e]||"",I=e=>{if(!e.tasks.length)return{label:"等待",type:"info",hollow:!1};const t=e.tasks;if(t.some(l=>!l.finishTime))return{label:"进行中",type:"primary",hollow:!1};let o="已办",n="success";if(t.some(l=>l.taskLocalVars?.firstTask))o="提交";else{const l=[...t].sort((k,$)=>($.finishTime||"").localeCompare(k.finishTime||""))[0]?.commentList?.[0],T=le[l?.type||""];o=T?.label||"已办",n=T?.type||"success"}return{label:o,type:n,hollow:!1}},Q=e=>{const t=e.assigneeName||e.startUserName||"待处理";return e.finishTime?`${t} · ${ie(e)}`:t},pe=e=>e.tasks.length?e.tasks.map(Q).join(" / "):R(e).join(" / "),P=e=>e.tasks.map(t=>t.comment).filter(Boolean).join(" / "),G=y(()=>{const e=new Map,t=[];for(const o of S.value){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=o.tasks.some(k=>!k.finishTime)?"process":I(o).type,T=e.get(n);if(T!==void 0){const k=t[T];k.occurrence=(k.occurrence||1)+1,k.parentExecutionId=o.parentExecutionId,k.status=l;continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,parentExecutionId:o.parentExecutionId,status:l,occurrence:1})}for(const o of m.value?.futureTasks||[]){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=e.get(n);if(l!==void 0){t[l].status="wait";continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,status:"wait"})}return t.push({taskName:"结束",taskDefKey:"__end__",status:oe.value?"success":"wait"}),t}),W=e=>{const t=Me().getUserInfo.userCode;return!t||!e?!1:!!(e.assigneeId===t||e.candidate&&e.candidate.split(",").map(n=>n.trim()).filter(Boolean).includes(t))},ue=y(()=>W(v.value)?!0:(m.value?.activeTasks||[]).some(e=>W(e))),fe=y(()=>f.readonly||!!v.value?.finishTime||!!v.value?.procEndTime||L.value&&!(m.value?.activeTasks||[]).length||!ue.value),me=y(()=>E.value?.taskOption),ke=y(()=>{const e=me.value;return{...e||{},cancelFunction:(...t)=>{e?.cancelFunction?.(...t),B("cancel")},workflowComplete:(...t)=>{e?.workflowComplete?.(...t)}}}),Y=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,q=async(e,t=!1)=>{const o=f.taskInfo&&f.taskInfo.procInsId==null&&f.taskInfo.processInstanceId!=null?{...f.taskInfo,procInsId:f.taskInfo.processInstanceId}:f.taskInfo;if(!(!f.taskId&&!o?.procInsId))try{g.value=!0,L.value=!1,v.value=e?{...v.value,...e}:t&&f.taskId?await V.getTaskInst(f.taskId):o||await V.getTaskInst(f.taskId),v.value?.procInsId&&(m.value=await V.getProcessTaskList(v.value.procInsId)),L.value=!0,await se(),await Ae(),await E.value?.resetQuery?.()}catch(n){Ee.messageError(n)}finally{g.value=!1}},ve=async e=>{B("success",e),await q(e,!0)};return Z({resetQuery:async()=>{await q()}}),(e,t)=>{const o=h("el-title"),n=h("el-empty"),l=h("el-tag-display"),T=h("el-flex"),k=h("el-icons"),$=h("el-timeline-item"),_e=h("el-timeline"),ye=h("el-button"),we=Te("loading");return a(),r("div",$e,[d(`
1
+ import{defineComponent as ge,useModel as Ie,ref as A,computed as y,resolveComponent as h,resolveDirective as Te,openBlock as a,createElementBlock as r,createCommentVNode as d,withDirectives as xe,createVNode as D,createElementVNode as i,createBlock as x,Fragment as u,renderList as C,normalizeClass as H,toDisplayString as p,renderSlot as Ce,resolveDynamicComponent as be,mergeProps as Ne,withCtx as K,normalizeStyle as De,createTextVNode as b,unref as J,mergeModels as X,nextTick as Ae}from"vue";import V from"../../api/workflow/workflowInstApi.js";import Ke from"../../api/DocumentApi.js";import Be from"../../hooks/useFileView.js";import Ee from"../../utils/FrameworkUtils.js";import{formatDateTime as Le}from"../../utils/dateTime.js";import{userInfoStore as Me}from"../../stores/userInfoStore.js";import Se from"./TaskOperation.vue.js";import{_ as Pe}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";import"./components/SelectAssigneeDialog.vue.js";import"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-Buyy5IIG.js";import"./components/CheckDialog.vue.js";import"@element-plus/icons-vue";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"@vueuse/core";import"../business/userSelectContent.vue.js";import"../../api/BasicApi.js";import"../../api/SysUserApi.js";import"../upload/CustomElUpload.vue.js";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"../../hooks/workflowTodo.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/operationAuth.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const $e={class:"workflow-todo-shell"},Ve={class:"workflow-todo-shell__body dialog-content-fill"},je={key:1,class:"wf-progress-scroll"},Fe={class:"wf-progress-steps"},Oe={class:"wf-progress-step__icon-wrap"},Ue={class:"wf-progress-step__icon"},ze={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},Re={key:4},Qe={class:"wf-progress-step__name"},Ge={class:"wf-progress-step__name-text"},We={class:"wf-progress-step__name-label"},Ye={key:0,class:"wf-progress-step__occurrence"},qe={key:0,class:"workflow-todo-shell__record-occurrence"},He={key:1,class:"workflow-todo-shell__record-type"},Je={key:0,class:"workflow-todo-shell__record-user"},Xe={class:"workflow-todo-shell__record-person__name"},Ze={key:0,class:"workflow-todo-shell__comment"},et={key:0,class:"workflow-todo-shell__record-files"},tt=["onClick"],st={class:"workflow-todo-shell__record-person__name"},ot={key:0,class:"workflow-todo-shell__comment"},nt={key:1,class:"workflow-todo-shell__record-files"},at=["onClick"],rt={class:"workflow-todo-shell__record-person__name"},lt={key:0,class:"workflow-todo-shell__footer"},it=ge({__name:"WorkflowTodoShell",props:X({taskId:{},taskInfo:{default:void 0},readonly:{type:Boolean,default:!1},contentComponent:{default:void 0},contentProps:{default:()=>({})},renderDialog:{type:Function,default:void 0},showFooter:{type:Boolean,default:!0}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:X(["cancel","success"],["update:loading"]),setup(w,{expose:Z,emit:ee}){const f=w,B=ee,g=Ie(w,"loading"),v=A(),m=A(),E=A(),L=A(!1),te=e=>[...e].sort((t,o)=>(t.createTime||"").localeCompare(o.createTime||"")),j=y(()=>te([...m.value?.hisTasks||[],...m.value?.activeTasks||[]])),M=A({}),F=Be().fileView,O=e=>{const t=(e.split(".").pop()||"").toLowerCase();return".jpg,.jpeg,.png,.gif,.bmp".includes(t)?"adtec-image":t==="pdf"?"adtec-pdf":t==="doc"||t==="docx"?"adtec-word":t==="xls"||t==="xlsx"?"adtec-excel":t==="ppt"||t==="pptx"?"adtec-ppt":"adtec-text"},N=e=>e?M.value[e]||[]:[],se=async()=>{var t;const e=Array.from(new Set(j.value.map(o=>o.taskId).filter(o=>!!o)));if(e.length)try{const o=await Ke.getUpLoadFilesByBussinessIds(e),n={};for(const l of o)l.businessId&&(n[t=l.businessId]||(n[t]=[])).push(l);M.value=n}catch{M.value={}}},S=y(()=>{const e=new Map;for(const t of j.value){const o=Y(t),n=e.get(o);n?n.tasks.push(t):e.set(o,{taskName:t.taskName,taskDefKey:t.taskDefKey,parentExecutionId:t.parentExecutionId,tasks:[t],approvalType:t.approvalType})}return Array.from(e.values())}),oe=y(()=>v.value?.procEndTime?!0:!!(m.value&&!(m.value.activeTasks||[]).length&&(m.value.hisTasks||[]).length)),ne=y(()=>{const e=[...S.value],t=new Set(e.map(n=>U(n)));for(const n of m.value?.futureTasks||[]){const l=`${n.taskDefKey||n.taskName}-`;t.has(l)||e.push({taskName:n.taskName,taskDefKey:n.taskDefKey,tasks:[],assigneeNames:n.assigneeNames,approvalType:n.approvalType})}const o=new Map;for(const n of e){const l=n.taskDefKey||n.taskName||"";l&&(n.occurrence=(o.get(l)||0)+1,o.set(l,n.occurrence))}return e}),U=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,ae={single:"或签",joint:"会签",all:"会签"},z=e=>ae[e.approvalType||e.tasks[0]?.approvalType||""]||"",re=e=>(e.approvalType||e.tasks[0]?.approvalType||"")==="single",R=e=>{const t=(e.assigneeNames||"").split(",").map(o=>o.trim()).filter(Boolean);return t.length?t:["待处理"]},le={1:{label:"同意",type:"success"},2:{label:"驳回",type:"warning"},3:{label:"终止",type:"danger"},4:{label:"委派",type:"warning"},5:{label:"转办",type:"warning"},6:{label:"终止",type:"danger"},7:{label:"撤回",type:"info"}},ie=e=>Le(e.finishTime||e.createTime),ce={success:"var(--el-color-success)",warning:"var(--el-color-warning)",danger:"var(--el-color-danger)",primary:"var(--el-color-primary)"},de=e=>ce[e]||"",I=e=>{if(!e.tasks.length)return{label:"等待",type:"info",hollow:!1};const t=e.tasks;if(t.some(l=>!l.finishTime))return{label:"进行中",type:"primary",hollow:!1};let o="已办",n="success";if(t.some(l=>l.taskLocalVars?.firstTask))o="提交";else{const l=[...t].sort((k,$)=>($.finishTime||"").localeCompare(k.finishTime||""))[0]?.commentList?.[0],T=le[l?.type||""];o=T?.label||"已办",n=T?.type||"success"}return{label:o,type:n,hollow:!1}},Q=e=>{const t=e.assigneeName||e.startUserName||"待处理";return e.finishTime?`${t} · ${ie(e)}`:t},pe=e=>e.tasks.length?e.tasks.map(Q).join(" / "):R(e).join(" / "),P=e=>e.tasks.map(t=>t.comment).filter(Boolean).join(" / "),G=y(()=>{const e=new Map,t=[];for(const o of S.value){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=o.tasks.some(k=>!k.finishTime)?"process":I(o).type,T=e.get(n);if(T!==void 0){const k=t[T];k.occurrence=(k.occurrence||1)+1,k.parentExecutionId=o.parentExecutionId,k.status=l;continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,parentExecutionId:o.parentExecutionId,status:l,occurrence:1})}for(const o of m.value?.futureTasks||[]){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=e.get(n);if(l!==void 0){t[l].status="wait";continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,status:"wait"})}return t.push({taskName:"结束",taskDefKey:"__end__",status:oe.value?"success":"wait"}),t}),W=e=>{const t=Me().getUserInfo.userCode;return!t||!e?!1:!!(e.assigneeId===t||e.candidate&&e.candidate.split(",").map(n=>n.trim()).filter(Boolean).includes(t))},ue=y(()=>W(v.value)?!0:(m.value?.activeTasks||[]).some(e=>W(e))),fe=y(()=>f.readonly||!!v.value?.finishTime||!!v.value?.procEndTime||L.value&&!(m.value?.activeTasks||[]).length||!ue.value),me=y(()=>E.value?.taskOption),ke=y(()=>{const e=me.value;return{...e||{},cancelFunction:(...t)=>{e?.cancelFunction?.(...t),B("cancel")},workflowComplete:(...t)=>{e?.workflowComplete?.(...t)}}}),Y=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,q=async(e,t=!1)=>{const o=f.taskInfo&&f.taskInfo.procInsId==null&&f.taskInfo.processInstanceId!=null?{...f.taskInfo,procInsId:f.taskInfo.processInstanceId}:f.taskInfo;if(!(!f.taskId&&!o?.procInsId))try{g.value=!0,L.value=!1,v.value=e?{...v.value,...e}:t&&f.taskId?await V.getTaskInst(f.taskId):o||await V.getTaskInst(f.taskId),v.value?.procInsId&&(m.value=await V.getProcessTaskList(v.value.procInsId)),L.value=!0,await se(),await Ae(),await E.value?.resetQuery?.()}catch(n){Ee.messageError(n)}finally{g.value=!1}},ve=async e=>{B("success",e),await q(e,!0)};return Z({resetQuery:async()=>{await q()}}),(e,t)=>{const o=h("el-title"),n=h("el-empty"),l=h("el-tag-display"),T=h("el-flex"),k=h("el-icons"),$=h("el-timeline-item"),_e=h("el-timeline"),ye=h("el-button"),we=Te("loading");return a(),r("div",$e,[d(`
2
2
  内容区撑满剩余空间统一使用 dialog-content-fill(flex/height 由核心工具类提供),
3
3
  滚动仅保留在本内容区,底部操作栏固定不随内容滚动。
4
4
  `),xe((a(),r("div",Ve,[D(o,{level:"1",title:"流程进度",style:{"border-bottom":"var(--border)"}}),i("div",null,[G.value.length?(a(),r("div",je,[i("div",Fe,[(a(!0),r(u,null,C(G.value,(s,c)=>(a(),r("div",{key:Y(s),class:H(["wf-progress-step",{done:s.status==="success",current:s.status==="process",rejected:s.status==="warning",stopped:s.status==="error"||s.status==="danger"}])},[i("div",Oe,[i("div",Ue,[d(" 同意/提交:对勾 "),s.status==="success"?(a(),r("svg",ze,[...t[3]||(t[3]=[i("path",{d:"M20 6L9 17l-5-5"},null,-1)])])):s.status==="warning"?(a(),r(u,{key:1},[d(" 驳回:回退箭头 "),t[4]||(t[4]=i("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[i("path",{d:"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"})],-1))],2112)):s.status==="danger"||s.status==="error"?(a(),r(u,{key:2},[d(" 终止:叉 "),t[5]||(t[5]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},[i("path",{d:"M18 6L6 18"}),i("path",{d:"M6 6l12 12"})],-1))],2112)):s.status==="info"?(a(),r(u,{key:3},[d(" 撤回:撤销箭头 "),t[6]||(t[6]=i("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[i("path",{d:"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"})],-1))],2112)):(a(),r("span",Re,p(c+1),1))])]),i("div",Qe,[i("span",Ge,[i("span",We,p(s.taskName||"未命名节点"),1),s.occurrence&&s.occurrence>1?(a(),r("sup",Ye,p(s.occurrence),1)):d("v-if",!0)])])],2))),128))])])):(a(),x(n,{key:0,description:"暂无流程进度","image-size":48}))]),d(`
5
5
  业务审核内容:完全由业务内容组件/插槽决定(含它自己的标题、分区、网格),
6
6
  通用抽屉不再注入任何标题,业务页面给什么就展示什么。
7
- `),Ce(e.$slots,"content",{task:v.value,process:m.value},()=>[w.contentComponent?(a(),x(be(w.contentComponent),Ne({key:0,ref_key:"contentRef",ref:E},w.contentProps,{loading:g.value,"onUpdate:loading":t[0]||(t[0]=s=>g.value=s)}),null,16,["loading"])):d("v-if",!0)],!0),D(o,{level:"1",title:"审批记录",style:{"border-bottom":"var(--border)"}}),i("div",null,[S.value.length?(a(),x(_e,{key:1,class:"workflow-todo-shell__timeline"},{default:K(()=>[(a(!0),r(u,null,C(ne.value,s=>(a(),x($,{key:U(s),type:I(s).type,hollow:I(s).hollow,style:De({"--el-timeline-node-color":de(I(s).type)})},{default:K(()=>[D(T,{align:"center",justify:"space-between",class:H(["workflow-todo-shell__record-title",`is-${I(s).type}`])},{default:K(()=>[i("span",null,[b(p(s.taskName||"未命名节点")+" ",1),(s.occurrence||0)>1?(a(),r("span",qe,p(s.occurrence),1)):d("v-if",!0),z(s)?(a(),r("span",He,p(z(s)),1)):d("v-if",!0)]),D(l,{type:I(s).type,size:"small"},{default:K(()=>[b(p(I(s).label),1)]),_:2},1032,["type"])]),_:2},1032,["class"]),re(s)?(a(),r("div",Je,[i("span",Xe,p(pe(s)),1),P(s)||s.tasks.some(c=>N(c.taskId).length)?(a(),r("div",Ze,[P(s)?(a(),r(u,{key:0},[b(p(P(s)),1)],64)):d("v-if",!0),(a(!0),r(u,null,C(s.tasks,c=>(a(),r(u,{key:c.taskId},[N(c.taskId).length?(a(),r("div",et,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,tt))),128))])):d("v-if",!0)],64))),128))])):d("v-if",!0)])):s.tasks.length?(a(!0),r(u,{key:1},C(s.tasks,c=>(a(),r("div",{key:c.taskId,class:"workflow-todo-shell__record-user"},[i("span",st,p(Q(c)),1),c.comment||N(c.taskId).length?(a(),r("div",ot,[c.comment?(a(),r(u,{key:0},[b(p(c.comment),1)],64)):d("v-if",!0),N(c.taskId).length?(a(),r("div",nt,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,at))),128))])):d("v-if",!0)])):d("v-if",!0)]))),128)):(a(!0),r(u,{key:2},C(R(s),c=>(a(),r("div",{key:c,class:"workflow-todo-shell__record-user"},[i("span",rt,p(c),1)]))),128))]),_:2},1032,["type","hollow","style"]))),128))]),_:1})):(a(),x(n,{key:0,description:"暂无审批记录","image-size":48}))])])),[[we,g.value]]),w.showFooter?(a(),r("div",lt,[fe.value?(a(),x(ye,{key:0,onClick:t[1]||(t[1]=s=>B("cancel"))},{default:K(()=>[...t[7]||(t[7]=[b("取消",-1)])]),_:1})):(a(),x(Se,{key:1,"task-id":w.taskId,params:ke.value,"render-dialog":w.renderDialog,"show-process-btn":!1,"but-loading":g.value,"onUpdate:butLoading":t[2]||(t[2]=s=>g.value=s),onSuccess:ve},null,8,["task-id","params","render-dialog","but-loading"]))])):d("v-if",!0)])}}}),ls=Pe(it,[["__scopeId","data-v-d5df3d4d"]]);export{ls as default};
7
+ `),Ce(e.$slots,"content",{task:v.value,process:m.value},()=>[w.contentComponent?(a(),x(be(w.contentComponent),Ne({key:0,ref_key:"contentRef",ref:E},w.contentProps,{loading:g.value,"onUpdate:loading":t[0]||(t[0]=s=>g.value=s)}),null,16,["loading"])):d("v-if",!0)],!0),D(o,{level:"1",title:"审批记录",style:{"border-bottom":"var(--border)"}}),i("div",null,[S.value.length?(a(),x(_e,{key:1,class:"workflow-todo-shell__timeline"},{default:K(()=>[(a(!0),r(u,null,C(ne.value,s=>(a(),x($,{key:U(s),type:I(s).type,hollow:I(s).hollow,style:De({"--el-timeline-node-color":de(I(s).type)})},{default:K(()=>[D(T,{align:"center",justify:"space-between",class:H(["workflow-todo-shell__record-title",`is-${I(s).type}`])},{default:K(()=>[i("span",null,[b(p(s.taskName||"未命名节点")+" ",1),(s.occurrence||0)>1?(a(),r("span",qe,p(s.occurrence),1)):d("v-if",!0),z(s)?(a(),r("span",He,p(z(s)),1)):d("v-if",!0)]),D(l,{type:I(s).type,size:"small"},{default:K(()=>[b(p(I(s).label),1)]),_:2},1032,["type"])]),_:2},1032,["class"]),re(s)?(a(),r("div",Je,[i("span",Xe,p(pe(s)),1),P(s)||s.tasks.some(c=>N(c.taskId).length)?(a(),r("div",Ze,[P(s)?(a(),r(u,{key:0},[b(p(P(s)),1)],64)):d("v-if",!0),(a(!0),r(u,null,C(s.tasks,c=>(a(),r(u,{key:c.taskId},[N(c.taskId).length?(a(),r("div",et,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,tt))),128))])):d("v-if",!0)],64))),128))])):d("v-if",!0)])):s.tasks.length?(a(!0),r(u,{key:1},C(s.tasks,c=>(a(),r("div",{key:c.taskId,class:"workflow-todo-shell__record-user"},[i("span",st,p(Q(c)),1),c.comment||N(c.taskId).length?(a(),r("div",ot,[c.comment?(a(),r(u,{key:0},[b(p(c.comment),1)],64)):d("v-if",!0),N(c.taskId).length?(a(),r("div",nt,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,at))),128))])):d("v-if",!0)])):d("v-if",!0)]))),128)):(a(!0),r(u,{key:2},C(R(s),c=>(a(),r("div",{key:c,class:"workflow-todo-shell__record-user"},[i("span",rt,p(c),1)]))),128))]),_:2},1032,["type","hollow","style"]))),128))]),_:1})):(a(),x(n,{key:0,description:"暂无审批记录","image-size":48}))])])),[[we,g.value]]),w.showFooter?(a(),r("div",lt,[fe.value?(a(),x(ye,{key:0,onClick:t[1]||(t[1]=s=>B("cancel"))},{default:K(()=>[...t[7]||(t[7]=[b("取消",-1)])]),_:1})):(a(),x(Se,{key:1,"task-id":w.taskId,params:ke.value,"render-dialog":w.renderDialog,"show-process-btn":!1,"but-loading":g.value,"onUpdate:butLoading":t[2]||(t[2]=s=>g.value=s),onSuccess:ve},null,8,["task-id","params","render-dialog","but-loading"]))])):d("v-if",!0)])}}}),is=Pe(it,[["__scopeId","data-v-dc88a89a"]]);export{is as default};
@@ -1,5 +1,5 @@
1
- import{computed as M,ref as v,unref as w,createApp as eo,nextTick as to,h as s}from"vue";import io,{ElDrawer as lo,ElDialog as ao,ElButton as T}from"element-plus";import P from"../stores/storeConfig.js";/* empty css */import*as B from"@element-plus/icons-vue";import"../config/ElementPlusConfig.js";import{installVxeGrid as ro}from"../config/VxeTableConfig.js";import no from"element-plus/es/locale/lang/zh-cn";import so from"./useListenerHooks.js";import{permissionStore as co}from"../stores/permissionStore.js";import go from"../components/icon/ElIcons.vue.js";import ho from"../components/ElDialogBody/ElDialogBody.vue.js";import uo from"crypto-js/enc-base64";import po from"crypto-js/enc-utf8";import{frontendBus as C}from"../utils/frontendBus.js";import{GLOBAL_LOADING_EVENT as q,notifyDialogLoadingScope as mo}from"../utils/globalLoading.js";import fo from"./useBehaviorAction.js";import"pinia";import"pinia-plugin-store";import"../utils/patchWujiePopperCoordinates.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../components/vxeReplace/index.js";import"../components/tooltip/index.js";import"../components/tooltip/src/tooltip.js";import"../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";const bo={},_o="subAppModalOverlay",x="adtec-subapp-modal-open";let V=0;const p=[],_=new Map;let I=!1;const yo=()=>{for(let o=p.length-1;o>=0;o--)if(p[o].open.value)return p[o]},z=o=>{if(!o?.id)return;if(o.phase==="start"){const i=yo();if(!i)return;_.set(o.id,i),i.requestLoadingIds.add(o.id),i.requestLoading.value=!0;return}const e=_.get(o.id);e&&(_.delete(o.id),e.requestLoadingIds.delete(o.id),e.requestLoading.value=e.requestLoadingIds.size>0)},ko=o=>{p.push(o),!I&&(C.on(q,z),I=!0)},vo=o=>{const e=p.indexOf(o);e>-1&&p.splice(e,1),o.requestLoadingIds.forEach(i=>_.delete(i)),o.requestLoadingIds.clear(),o.requestLoading.value=!1,!(p.length>0||!I)&&(C.off(q,z),I=!1,_.clear())},wo=o=>{const e=bo||{};return o.applicationModule||e.VITE_APPLICATION_MODULE||e.VITE_APP_MODULE||String(o.router.currentRoute.value.meta.applicationModule||"")},$=(o,e,i)=>{if(typeof window>"u"||!window.__POWERED_BY_WUJIE__)return;const l=wo(o);if(!l||(i&&!e.overlayId&&(e.overlayId=`${l}-${Date.now()}-${++V}`),!e.overlayId))return;const n={applicationModule:l,overlayId:e.overlayId,open:i};C.emit(_o,n),i||(e.overlayId=void 0)},N=(o,e)=>{e&&!o.overlayId&&(o.overlayId=`dialog-${Date.now()}-${++V}`),o.overlayId&&mo({id:o.overlayId,open:e})};function xo(){const e="dialog-hooks-styles",i=document.getElementById(e);if(i&&(i.textContent||"").includes("/* dialog-hooks v15 */"))return;i?.remove();const l=document.createElement("style");l.id=e,l.type="text/css",l.innerHTML=`
2
- /* dialog-hooks v15 */
1
+ import{computed as M,ref as v,unref as w,createApp as eo,nextTick as to,h as s}from"vue";import lo,{ElDrawer as io,ElDialog as ao,ElButton as B}from"element-plus";import P from"../stores/storeConfig.js";/* empty css */import*as T from"@element-plus/icons-vue";import"../config/ElementPlusConfig.js";import{installVxeGrid as ro}from"../config/VxeTableConfig.js";import no from"element-plus/es/locale/lang/zh-cn";import so from"./useListenerHooks.js";import{permissionStore as co}from"../stores/permissionStore.js";import go from"../components/icon/ElIcons.vue.js";import ho from"../components/ElDialogBody/ElDialogBody.vue.js";import po from"crypto-js/enc-base64";import uo from"crypto-js/enc-utf8";import{frontendBus as C}from"../utils/frontendBus.js";import{GLOBAL_LOADING_EVENT as q,notifyDialogLoadingScope as mo}from"../utils/globalLoading.js";import fo from"./useBehaviorAction.js";import"pinia";import"pinia-plugin-store";import"../utils/patchWujiePopperCoordinates.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../components/vxeReplace/index.js";import"../components/tooltip/index.js";import"../components/tooltip/src/tooltip.js";import"../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const bo={},_o="subAppModalOverlay",x="adtec-subapp-modal-open";let V=0;const u=[],_=new Map;let I=!1;const yo=()=>{for(let o=u.length-1;o>=0;o--)if(u[o].open.value)return u[o]},z=o=>{if(!o?.id)return;if(o.phase==="start"){const l=yo();if(!l)return;_.set(o.id,l),l.requestLoadingIds.add(o.id),l.requestLoading.value=!0;return}const e=_.get(o.id);e&&(_.delete(o.id),e.requestLoadingIds.delete(o.id),e.requestLoading.value=e.requestLoadingIds.size>0)},ko=o=>{u.push(o),!I&&(C.on(q,z),I=!0)},vo=o=>{const e=u.indexOf(o);e>-1&&u.splice(e,1),o.requestLoadingIds.forEach(l=>_.delete(l)),o.requestLoadingIds.clear(),o.requestLoading.value=!1,!(u.length>0||!I)&&(C.off(q,z),I=!1,_.clear())},wo=o=>{const e=bo||{};return o.applicationModule||e.VITE_APPLICATION_MODULE||e.VITE_APP_MODULE||String(o.router.currentRoute.value.meta.applicationModule||"")},$=(o,e,l)=>{if(typeof window>"u"||!window.__POWERED_BY_WUJIE__)return;const i=wo(o);if(!i||(l&&!e.overlayId&&(e.overlayId=`${i}-${Date.now()}-${++V}`),!e.overlayId))return;const d={applicationModule:i,overlayId:e.overlayId,open:l};C.emit(_o,d),l||(e.overlayId=void 0)},N=(o,e)=>{e&&!o.overlayId&&(o.overlayId=`dialog-${Date.now()}-${++V}`),o.overlayId&&mo({id:o.overlayId,open:e})};function xo(){const e="dialog-hooks-styles",l=document.getElementById(e);if(l&&(l.textContent||"").includes("/* dialog-hooks v16 */"))return;l?.remove();const i=document.createElement("style");i.id=e,i.type="text/css",i.innerHTML=`
2
+ /* dialog-hooks v16 */
3
3
  /* 抽屉组件 - 无滚动条样式 */
4
4
  .dialog-hooks-no-scroll.el-drawer .el-drawer__body {
5
5
  overflow: hidden !important;
@@ -111,6 +111,21 @@ import{computed as M,ref as v,unref as w,createApp as eo,nextTick as to,h as s}f
111
111
  .dialog-hooks-host .el-dialog-body__content.is-scrolling {
112
112
  scrollbar-color: rgba(144, 147, 153, 0.4) transparent;
113
113
  }
114
+ /* 滚动条当右侧内边距用:内容区的滚动条落在弹窗/抽屉右侧 8px 内边距里,左右边距一致。
115
+ - 内容层(ElDialogBody)自己滚:向 body 右内边距溢出一个滚动条宽(这里的滚动条是 6px);
116
+ - 弹窗/抽屉 body 自己滚(dialogBody=false 的特殊内容):右侧内边距只留 8px-6px=2px,
117
+ 其余交给滚动条槽。scrollbar-gutter: stable 保证内容短、没有滚动条时槽位仍在,宽度不跳动。 */
118
+ @supports (scrollbar-gutter: stable) {
119
+ .dialog-hooks-host .el-dialog-body__content {
120
+ margin-right: -6px;
121
+ scrollbar-gutter: stable;
122
+ }
123
+ .dialog-hooks-host:not(.dialog-hooks-body-contained) .el-dialog__body,
124
+ .dialog-hooks-host:not(.dialog-hooks-body-contained) .el-drawer__body {
125
+ padding-right: 2px;
126
+ scrollbar-gutter: stable;
127
+ }
128
+ }
114
129
  /* vxe 网格滚动条保持原生样式,不被上面的自动隐藏规则影响 */
115
130
  .dialog-hooks-host .vxe-grid,
116
131
  .dialog-hooks-host .vxe-table,
@@ -223,4 +238,4 @@ import{computed as M,ref as v,unref as w,createApp as eo,nextTick as to,h as s}f
223
238
  background: transparent !important;
224
239
  background-color: transparent !important;
225
240
  }
226
- `,document.head.appendChild(l)}function Io(o){const e=!!o.querySelector(".dialog-hooks-body-contained");o.querySelectorAll(e?".el-dialog-body__content":".el-drawer__body, .el-dialog__body").forEach(l=>{let n;const y=()=>{l.classList.add("is-scrolling"),n&&window.clearTimeout(n),n=window.setTimeout(()=>l.classList.remove("is-scrolling"),600)};l.addEventListener("scroll",y,{passive:!0}),l.addEventListener("mouseenter",y),l.addEventListener("mouseleave",()=>{n&&window.clearTimeout(n),l.classList.remove("is-scrolling")})})}function Lo(o,e,i){return o===!1?{enabled:!1,scroll:i,class:void 0,contentClass:void 0}:o===!0||o===void 0?{enabled:o===!0?!0:e,scroll:i,class:void 0,contentClass:void 0}:{enabled:o.enabled??e,scroll:o.scroll??i,class:o.class,contentClass:o.contentClass}}function Eo(o,e){if(e)return e;try{const i=o.router.currentRoute.value.meta?.sysMenuData?.icon;if(i)return i}catch{}try{const i=sessionStorage.getItem("permissionStore");if(i){const l=JSON.parse(uo.parse(i).toString(po));if(l?.activeMenuInfo?.icon)return l.activeMenuInfo.icon}}catch{}try{return co(P).getActiveMenuInfo?.icon||""}catch{return""}}function ke(o){return function(i){const l=[],n=()=>l[l.length-1],y=r=>{const a=w(r?.data),b=w(r?.row),k=w(r?.formData),u=r?.id??r?.taskId??r?.selectedId??a?.id??b?.id??k?.id;return u==null||u===""?"":String(u)},H=(r,a,b,k="drawer",u,G=!0)=>{xo();const{icon:K,hideConfirm:L,hideFooter:W,dialogBody:F,...c}=b||{},f=Lo(F,o.defaultDialogBody??!0,G),J=`${k}|${typeof r=="string"?r:r?.__name||r?.name||""}|${c.title||""}|${y(a)}`,D=v(!1),O=v(!1),t={open:v(!0),loading:M(()=>D.value||O.value),manualLoading:D,requestLoading:O,requestLoadingIds:new Set,childInstance:v(),app:null,div:null,closing:!1,renderKey:J,actionName:c.title||"确认"},Q=Object.fromEntries(Object.entries(a||{}).map(([d,h])=>[d,w(h)])),X={...c,class:["dialog-hooks-host",...f.enabled?["dialog-hooks-body-contained"]:[],...f.scroll?[]:["dialog-hooks-no-scroll"],"dialog-hooks-scroll-auto",...Array.isArray(c.class)?c.class:c.class?[c.class]:[]]},Z=c.onClosed,E=typeof c.title=="string"&&c.title,A=E?Eo(o,K):"",oo=()=>s("div",{class:"dialog-hooks-header"},[A?s("div",{class:"dialog-hooks-header-icon"},[s(go,{modelValue:A})]):null,s("div",{class:"dialog-hooks-header-title"},[c.title]),t.loading.value&&!L?null:s("button",{type:"button",class:"dialog-hooks-header-close",onClick:()=>m(t)},[s(B.Close)])]),g=eo(()=>s(k==="drawer"?lo:ao,{...X,modelValue:t.open.value,showClose:E?!1:c.showClose??!0,onClosed(){N(t,!1),$(o,t,!1),vo(t),Z?.();const d=l.indexOf(t);d>-1&&l.splice(d,1),t.app?.unmount(),t.div?.parentNode&&t.div.parentNode.removeChild(t.div),t.app=null,t.div=null},onClose(){m(t)}},{...E?{header:oo}:{},default:()=>{const d=s(r,{...Q,loading:t.loading.value,"onUpdate:loading":h=>{t.manualLoading.value=h},ref:t.childInstance});return f.enabled?s(ho,{scroll:f.scroll,class:f.class,contentClass:f.contentClass},{default:()=>d}):d},...W?{}:{footer:()=>{if(u&&u.length){const d=u.map(h=>typeof h=="function"?h():h);return s("div",{className:"dialog-footer"},d)}return s("div",{className:"dialog-footer"},[s(T,{onClick:()=>m(t),loading:!L&&t.loading.value},"取 消"),L?null:s(T,{type:"primary",onClick:()=>R(t),loading:t.loading.value},"确 认")])}}}));o.plugins?.forEach(d=>g.use(d)),g.use(io,{locale:no}),g.use(P),g.use(o.router);for(const[d,h]of Object.entries(B))g.component(d,h);ro(g),o.setupApp?.(g);const S=document.createElement("div");return document.body.appendChild(S),t.app=g,t.div=S,l.push(t),ko(t),N(t,!0),$(o,t,!0),g.mount(S),to(()=>{Io(t.div),t.childInstance.value?.resetQuery?.(),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},350)}),so(),{cancel:()=>m(t)}},R=async r=>{const a=r||n();if(!a)return;const{runBehaviorAction:b}=fo();await b({code:`dialog:${a.renderKey}:confirm`,name:a.actionName||"确认",actionType:"SUBMIT"},async()=>{try{a.manualLoading.value=!0,await a.childInstance.value?.confirm?.(),i&&m(a)}finally{a.manualLoading.value=!1}})},m=r=>{const a=r||n();!a||!a.open.value||(a.closing=!0,a.open.value=!1)},U=r=>{const a=n();a&&(a.manualLoading.value=r)},j=()=>n()?.loading.value??!1,Y=M(()=>n()?.childInstance.value);return{render:H,cancel:m,setLoading:U,getLoading:j,instance:Y}}}export{ke as createDialogHooks,ke as default};
241
+ `,document.head.appendChild(i)}function Io(o){const e=!!o.querySelector(".dialog-hooks-body-contained");o.querySelectorAll(e?".el-dialog-body__content":".el-drawer__body, .el-dialog__body").forEach(i=>{let d;const y=()=>{i.classList.add("is-scrolling"),d&&window.clearTimeout(d),d=window.setTimeout(()=>i.classList.remove("is-scrolling"),600)};i.addEventListener("scroll",y,{passive:!0}),i.addEventListener("mouseenter",y),i.addEventListener("mouseleave",()=>{d&&window.clearTimeout(d),i.classList.remove("is-scrolling")})})}function Lo(o,e,l){return o===!1?{enabled:!1,scroll:l,class:void 0,contentClass:void 0}:o===!0||o===void 0?{enabled:o===!0?!0:e,scroll:l,class:void 0,contentClass:void 0}:{enabled:o.enabled??e,scroll:o.scroll??l,class:o.class,contentClass:o.contentClass}}function Eo(o,e){if(e)return e;try{const l=o.router.currentRoute.value.meta?.sysMenuData?.icon;if(l)return l}catch{}try{const l=sessionStorage.getItem("permissionStore");if(l){const i=JSON.parse(po.parse(l).toString(uo));if(i?.activeMenuInfo?.icon)return i.activeMenuInfo.icon}}catch{}try{return co(P).getActiveMenuInfo?.icon||""}catch{return""}}function xe(o){return function(l){const i=[],d=()=>i[i.length-1],y=r=>{const a=w(r?.data),b=w(r?.row),k=w(r?.formData),p=r?.id??r?.taskId??r?.selectedId??a?.id??b?.id??k?.id;return p==null||p===""?"":String(p)},H=(r,a,b,k="drawer",p,G=!0)=>{xo();const{icon:K,hideConfirm:L,hideFooter:W,dialogBody:F,...c}=b||{},f=Lo(F,o.defaultDialogBody??!0,G),J=`${k}|${typeof r=="string"?r:r?.__name||r?.name||""}|${c.title||""}|${y(a)}`,D=v(!1),O=v(!1),t={open:v(!0),loading:M(()=>D.value||O.value),manualLoading:D,requestLoading:O,requestLoadingIds:new Set,childInstance:v(),app:null,div:null,closing:!1,renderKey:J,actionName:c.title||"确认"},Q=Object.fromEntries(Object.entries(a||{}).map(([n,h])=>[n,w(h)])),X={...c,class:["dialog-hooks-host",...f.enabled?["dialog-hooks-body-contained"]:[],...f.scroll?[]:["dialog-hooks-no-scroll"],"dialog-hooks-scroll-auto",...Array.isArray(c.class)?c.class:c.class?[c.class]:[]]},Z=c.onClosed,E=typeof c.title=="string"&&c.title,A=E?Eo(o,K):"",oo=()=>s("div",{class:"dialog-hooks-header"},[A?s("div",{class:"dialog-hooks-header-icon"},[s(go,{modelValue:A})]):null,s("div",{class:"dialog-hooks-header-title"},[c.title]),t.loading.value&&!L?null:s("button",{type:"button",class:"dialog-hooks-header-close",onClick:()=>m(t)},[s(T.Close)])]),g=eo(()=>s(k==="drawer"?io:ao,{...X,modelValue:t.open.value,showClose:E?!1:c.showClose??!0,onClosed(){N(t,!1),$(o,t,!1),vo(t),Z?.();const n=i.indexOf(t);n>-1&&i.splice(n,1),t.app?.unmount(),t.div?.parentNode&&t.div.parentNode.removeChild(t.div),t.app=null,t.div=null},onClose(){m(t)}},{...E?{header:oo}:{},default:()=>{const n=s(r,{...Q,loading:t.loading.value,"onUpdate:loading":h=>{t.manualLoading.value=h},ref:t.childInstance});return f.enabled?s(ho,{scroll:f.scroll,class:f.class,contentClass:f.contentClass},{default:()=>n}):n},...W?{}:{footer:()=>{if(p&&p.length){const n=p.map(h=>typeof h=="function"?h():h);return s("div",{className:"dialog-footer"},n)}return s("div",{className:"dialog-footer"},[s(B,{onClick:()=>m(t),loading:!L&&t.loading.value},"取 消"),L?null:s(B,{type:"primary",onClick:()=>R(t),loading:t.loading.value},"确 认")])}}}));o.plugins?.forEach(n=>g.use(n)),g.use(lo,{locale:no}),g.use(P),g.use(o.router);for(const[n,h]of Object.entries(T))g.component(n,h);ro(g),o.setupApp?.(g);const S=document.createElement("div");return document.body.appendChild(S),t.app=g,t.div=S,i.push(t),ko(t),N(t,!0),$(o,t,!0),g.mount(S),to(()=>{Io(t.div),t.childInstance.value?.resetQuery?.(),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},350)}),so(),{cancel:()=>m(t)}},R=async r=>{const a=r||d();if(!a)return;const{runBehaviorAction:b}=fo();await b({code:`dialog:${a.renderKey}:confirm`,name:a.actionName||"确认",actionType:"SUBMIT"},async()=>{try{a.manualLoading.value=!0,await a.childInstance.value?.confirm?.(),l&&m(a)}finally{a.manualLoading.value=!1}})},m=r=>{const a=r||d();!a||!a.open.value||(a.closing=!0,a.open.value=!1)},U=r=>{const a=d();a&&(a.manualLoading.value=r)},j=()=>d()?.loading.value??!1,Y=M(()=>d()?.childInstance.value);return{render:H,cancel:m,setLoading:U,getLoading:j,instance:Y}}}export{xe as createDialogHooks,xe as default};
@@ -1 +1 @@
1
- import u from"../utils/FrameworkUtils.js";import a from"./usePermissionHooks.js";import{userInfoStore as c}from"../stores/userInfoStore.js";import d from"../utils/commonUtils.js";import"element-plus";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"vue-router";import"vue";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/routeMetaParams.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/workflowTaskContext.js";import"../utils/userSessionStorage.js";import"./useDeleteConfirmHooks.js";import"./useBehaviorAction.js";function B(i,n){const t=a(n),p=c();return{handleView:async(s,f,e="")=>{const m=i+s;let o=u.getOpenMenuInfoWujie().find(r=>r.id===m);o?await t.openMenu(o):(o=JSON.parse(JSON.stringify(p.getUserInfo.menuList.find(r=>r.code===i))),o&&(o.code=i+d.jsonToUrlQuery(e),o.id=m,o.name=f??o.name,await t.openMenu(o,e)))}}}export{B as default};
1
+ import u from"../utils/FrameworkUtils.js";import a from"./usePermissionHooks.js";import{userInfoStore as c}from"../stores/userInfoStore.js";import d from"../utils/commonUtils.js";import"element-plus";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"vue-router";import"vue";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/operationAuth.js";import"../utils/userSessionStorage.js";import"../utils/routeMetaParams.js";import"../utils/workflowTaskContext.js";import"./useDeleteConfirmHooks.js";import"./useBehaviorAction.js";function D(i,n){const t=a(n),p=c();return{handleView:async(s,f,e="")=>{const m=i+s;let o=u.getOpenMenuInfoWujie().find(r=>r.id===m);o?await t.openMenu(o):(o=JSON.parse(JSON.stringify(p.getUserInfo.menuList.find(r=>r.code===i))),o&&(o.code=i+d.jsonToUrlQuery(e),o.id=m,o.name=f??o.name,await t.openMenu(o,e)))}}}export{D as default};
@@ -0,0 +1,15 @@
1
+ import type { ISysMenuOperationVo } from '../interface/ISysMenuOperationVo';
2
+ export { matchOperation, resolveOperationList, resolveOperationMenu, } from '../utils/operationAuth';
3
+ export type { IOperationAuthContext } from '../utils/operationAuth';
4
+ /**
5
+ * 组件内按钮权限(与 `operation-auth` 共用同一份解析实现)。
6
+ *
7
+ * 组件里要"按权限决定要不要渲染/要不要执行"时用它,不要再用
8
+ * `permissionStore().IsOperationAuth`:后者拿不到当前路由,子应用里可能判成 false。
9
+ * 独立 Vue 应用渲染的弹窗内容没有路由,需要显式传 menuCode。
10
+ */
11
+ export default function useOperationAuth(): {
12
+ getOperation: (operCode: string | string[], menuCode?: string) => ISysMenuOperationVo | undefined;
13
+ hasOperationAuth: (operCode: string | string[], menuCode?: string) => boolean;
14
+ resolveMenuOperations: (menuCode?: string) => ISysMenuOperationVo[];
15
+ };
@@ -0,0 +1 @@
1
+ import{getCurrentInstance as a,computed as n}from"vue";import{useRoute as c}from"vue-router";import{permissionStore as f}from"../stores/permissionStore.js";import{userInfoStore as v}from"../stores/userInfoStore.js";import{getCurrentMenu as M}from"../utils/behaviorTrack.js";import{resolveOperationList as O,matchOperation as d}from"../utils/operationAuth.js";import{resolveOperationMenu as G}from"../utils/operationAuth.js";import"pinia";import"../utils/frontendBus.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/userSessionStorage.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";function B(){const i=a()?c():void 0,m=v(),p=f(),u=n(()=>i?.meta?.sysMenuData||void 0),s=n(()=>p.getActiveMenuInfo||void 0),e=t=>O({menuCode:t,routeMenu:u.value,activeMenu:s.value,currentMenuCode:M()?.code},m.getUserInfo?.menuList),r=(t,o)=>d(e(o),t);return{getOperation:r,hasOperationAuth:(t,o)=>!!r(t,o),resolveMenuOperations:e}}export{B as default,d as matchOperation,O as resolveOperationList,G as resolveOperationMenu};
@@ -1 +1 @@
1
- import{useRouter as s}from"vue-router";import{h as R}from"vue";import{permissionStore as k}from"../stores/permissionStore.js";import{frontendBus as u}from"../utils/frontendBus.js";import{paramsToRouteQuery as g}from"../utils/routeMetaParams.js";import{setCurrentMenu as h}from"../utils/behaviorTrack.js";import{setWorkflowTaskContext as C,activateWorkflowTaskContext as w}from"../utils/workflowTaskContext.js";import"pinia";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";function E(c){const r=s(),l=k(),a=()=>r.currentRoute.value.meta.sysMenuData,d=async(o,e)=>{if(r.getRoutes().find(t=>t.name==="/")?.children.find(t=>t.name===o.code))return o.code;{let t=null;if(o.isLink!==1&&o.applicationModule!=="system"&&c&&(t=c.getModules(o.path)),t){const i={name:o.code,path:"/"+o.code,meta:{sysMenuData:o,params:e,link:o.isLink===1,applicationModule:o.applicationModule},component:async()=>{const p=await t();return p.default.__name=o.code,R(p.default)}};return r.addRoute("/",i),o.code}return null}},f=async(o,e)=>{o?.id&&h(o);const n=[o?.id,o?.code].filter(Boolean).map(String);Array.isArray(e)?C(e,n):w(n),o.applicationModule;{let t=null;try{t=await d(o,e)}catch{t=null}if(t){const i=g(e);r.push({name:t,...i?{query:i}:{}});return}}u.emit("openMenu",o,e)},m=o=>{o.id===l.getActiveMenuInfo?.id&&u.emit("close-sonPage")};return{openMenu:f,getRouteMenuInfo:a,closeMenu:m,closeCurrentMenu:()=>{m(a())}}}export{E as default};
1
+ import{useRouter as s}from"vue-router";import{h as R}from"vue";import{permissionStore as k}from"../stores/permissionStore.js";import{frontendBus as u}from"../utils/frontendBus.js";import{paramsToRouteQuery as g}from"../utils/routeMetaParams.js";import{setCurrentMenu as h}from"../utils/behaviorTrack.js";import{setWorkflowTaskContext as C,activateWorkflowTaskContext as w}from"../utils/workflowTaskContext.js";import"pinia";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";function J(c){const r=s(),l=k(),a=()=>r.currentRoute.value.meta.sysMenuData,d=async(o,e)=>{if(r.getRoutes().find(t=>t.name==="/")?.children.find(t=>t.name===o.code))return o.code;{let t=null;if(o.isLink!==1&&o.applicationModule!=="system"&&c&&(t=c.getModules(o.path)),t){const i={name:o.code,path:"/"+o.code,meta:{sysMenuData:o,params:e,link:o.isLink===1,applicationModule:o.applicationModule},component:async()=>{const p=await t();return p.default.__name=o.code,R(p.default)}};return r.addRoute("/",i),o.code}return null}},f=async(o,e)=>{o?.id&&h(o);const n=[o?.id,o?.code].filter(Boolean).map(String);Array.isArray(e)?C(e,n):w(n),o.applicationModule;{let t=null;try{t=await d(o,e)}catch{t=null}if(t){const i=g(e);r.push({name:t,...i?{query:i}:{}});return}}u.emit("openMenu",o,e)},m=o=>{o.id===l.getActiveMenuInfo?.id&&u.emit("close-sonPage")};return{openMenu:f,getRouteMenuInfo:a,closeMenu:m,closeCurrentMenu:()=>{m(a())}}}export{J as default};
@@ -5,5 +5,5 @@
5
5
  * 修改时间: 2025/2/14 11:36
6
6
  */
7
7
  export default function usePermissionToolHooks(): {
8
- IsOperationAuth: (operCode: string) => boolean;
8
+ IsOperationAuth: (operCode: string, menuCode?: string) => boolean;
9
9
  };
@@ -1 +1 @@
1
- import{permissionStore as r}from"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";function u(){const o=r();return{IsOperationAuth:t=>o.IsOperationAuth(t)}}export{u as default};
1
+ import{permissionStore as i}from"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/behaviorTrack.js";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";function H(){const o=i();return{IsOperationAuth:(t,r)=>o.IsOperationAuth(t,r)}}export{H as default};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 预览容器全屏切换(文件预览 / 任务书预览统一使用)。
3
+ *
4
+ * 优先使用浏览器原生全屏:不受弹窗、抽屉、无界微前端浮层层级影响;
5
+ * 浏览器不支持或拒绝时退化为全局样式类 `preview-fullscreen-fallback`
6
+ * (固定定位铺满视口 + 锁定页面滚动),样式见 css/elementUI/index.scss。
7
+ *
8
+ * 用法:
9
+ * ```html
10
+ * <div ref="previewContainerRef" :class="{ 'preview-fullscreen-fallback': isPreviewFullscreen }">
11
+ * <office-preview
12
+ * show-fullscreen
13
+ * :fullscreen="isPreviewFullscreen"
14
+ * @toggle-fullscreen="togglePreviewFullscreen"
15
+ * />
16
+ * </div>
17
+ * ```
18
+ */
19
+ export declare const usePreviewFullscreen: () => {
20
+ previewContainerRef: globalThis.Ref<HTMLElement | null, HTMLElement | null>;
21
+ isPreviewFullscreen: globalThis.Ref<boolean, boolean>;
22
+ togglePreviewFullscreen: () => Promise<void>;
23
+ exitPreviewFullscreen: () => Promise<void>;
24
+ };
25
+ export default usePreviewFullscreen;
@@ -0,0 +1 @@
1
+ import{ref as u,onMounted as r,onBeforeUnmount as s}from"vue";const d=()=>{const l=u(null),e=u(!1),t=()=>{const n=l.value;e.value=!!n&&document.fullscreenElement===n,document.body.style.overflow=e.value?"hidden":""},c=async()=>{try{document.fullscreenElement===l.value&&await document.exitFullscreen()}catch{}e.value=!1,document.body.style.overflow=""},o=async()=>{const n=l.value;if(n)try{document.fullscreenElement===n?await document.exitFullscreen():await n.requestFullscreen(),t()}catch{e.value=!e.value,document.body.style.overflow=e.value?"hidden":""}};return r(()=>document.addEventListener("fullscreenchange",t)),s(()=>{document.removeEventListener("fullscreenchange",t),c()}),{previewContainerRef:l,isPreviewFullscreen:e,togglePreviewFullscreen:o,exitPreviewFullscreen:c}};export{d as default,d as usePreviewFullscreen};
@@ -1 +1 @@
1
- import{nextTick as y}from"vue";import{frontendBus as d}from"../utils/frontendBus.js";import{ElMessage as f}from"element-plus";import{userInfoStore as g}from"../stores/userInfoStore.js";import I from"./usePermissionHooks.js";import T from"./useOpenNewMenu.js";import{handleTree as x}from"../utils/tree.js";import U from"../utils/request.js";import O from"../utils/commonUtils.js";import{setWorkflowTaskContext as c}from"../utils/workflowTaskContext.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"vue-router";import"../stores/permissionStore.js";import"../utils/routeMetaParams.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../config/GlobalLoadingConfig.js";import"./useDeleteConfirmHooks.js";import"./useBehaviorAction.js";async function te(o,t,s){const{openMenu:v}=I();if(!o.value||!o.value.nodeTag){f.error("未设置待办处理界面!");return}const n=o.value.nodeTag,m=n.indexOf(":")>-1?n.split(":")[1]||"":n,l=n.indexOf(":")>-1?n.split(":")[0]:"",w=l==="system"||n.indexOf(":")===-1,r=Object.entries(o.value).map(([e,p])=>({code:e,value:p}));if(t?.value&&Array.isArray(t.value)&&t.value.length>0){for(const e of t.value)if(e&&typeof e=="object")for(const p in e)r.push({code:p,value:e[p]||""})}if(c(r),n.indexOf("/")>-1){w?t&&s?(s.value=!1,t.value.params=null,await y(async()=>{s.value=!0,t.value.params=t})):f.error("未设置待办处理界面!"):(sessionStorage.setItem("workflow_todo_pending",JSON.stringify({time:Date.now(),params:r})),d.emit(l.toUpperCase()+"WorkflowTodoHandleBus",r));return}let i=g().getUserInfo.menuList.find(e=>e.code===m);if(i||(await S(),i=g().getUserInfo.menuList.find(e=>e.code===m)),!i){f.error("未找到该菜单");return}if(w){sessionStorage.setItem("workflow_todo_"+m,JSON.stringify(r)),c(r,[i.id,i.code].filter(Boolean).map(String)),await v(i,r),d.emit(m+"_message",r);return}const a=String(o.value.businessId||o.value.applyId||o.value.procInsId||o.value.taskId||""),u=m+O.jsonToUrlQuery({businessId:a});sessionStorage.setItem("workflow_todo_"+u,JSON.stringify(r)),r.push({code:"menuCode",value:u}),c(r,[i.id,i.code,u,i.code+a].filter(Boolean).map(String));try{const{handleView:e}=T(m,void 0);await e(a,o.value.taskName,{businessId:a})}catch(e){console.error("[workflowTodo] 打开待办处理页面失败",e),f.error("打开待办处理页面失败:"+(e?.message||e));return}setTimeout(()=>{d.emit(l.toUpperCase()+"WorkflowTodoHandleBus",r)},1e3)}async function S(){try{const o=g(),t=await U.get("/api/system/login/getUserPermission/web"),s=o.getUserInfo;o.setUserInfo({...t,menuTreeList:x(t.menuList,"id","parentId"),userBaseInfo:s.userBaseInfo,passwordExpired:s.passwordExpired,isComplete:s.isComplete})}catch(o){console.warn("刷新用户权限失败",o)}}export{te as showTodoDialog};
1
+ import{nextTick as y}from"vue";import{frontendBus as d}from"../utils/frontendBus.js";import{ElMessage as f}from"element-plus";import{userInfoStore as g}from"../stores/userInfoStore.js";import I from"./usePermissionHooks.js";import T from"./useOpenNewMenu.js";import{handleTree as x}from"../utils/tree.js";import U from"../utils/request.js";import O from"../utils/commonUtils.js";import{setWorkflowTaskContext as c}from"../utils/workflowTaskContext.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"vue-router";import"../stores/permissionStore.js";import"../utils/behaviorTrack.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../utils/operationAuth.js";import"../utils/routeMetaParams.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../config/GlobalLoadingConfig.js";import"./useDeleteConfirmHooks.js";import"./useBehaviorAction.js";async function ie(o,t,s){const{openMenu:v}=I();if(!o.value||!o.value.nodeTag){f.error("未设置待办处理界面!");return}const n=o.value.nodeTag,m=n.indexOf(":")>-1?n.split(":")[1]||"":n,l=n.indexOf(":")>-1?n.split(":")[0]:"",w=l==="system"||n.indexOf(":")===-1,r=Object.entries(o.value).map(([e,p])=>({code:e,value:p}));if(t?.value&&Array.isArray(t.value)&&t.value.length>0){for(const e of t.value)if(e&&typeof e=="object")for(const p in e)r.push({code:p,value:e[p]||""})}if(c(r),n.indexOf("/")>-1){w?t&&s?(s.value=!1,t.value.params=null,await y(async()=>{s.value=!0,t.value.params=t})):f.error("未设置待办处理界面!"):(sessionStorage.setItem("workflow_todo_pending",JSON.stringify({time:Date.now(),params:r})),d.emit(l.toUpperCase()+"WorkflowTodoHandleBus",r));return}let i=g().getUserInfo.menuList.find(e=>e.code===m);if(i||(await S(),i=g().getUserInfo.menuList.find(e=>e.code===m)),!i){f.error("未找到该菜单");return}if(w){sessionStorage.setItem("workflow_todo_"+m,JSON.stringify(r)),c(r,[i.id,i.code].filter(Boolean).map(String)),await v(i,r),d.emit(m+"_message",r);return}const a=String(o.value.businessId||o.value.applyId||o.value.procInsId||o.value.taskId||""),u=m+O.jsonToUrlQuery({businessId:a});sessionStorage.setItem("workflow_todo_"+u,JSON.stringify(r)),r.push({code:"menuCode",value:u}),c(r,[i.id,i.code,u,i.code+a].filter(Boolean).map(String));try{const{handleView:e}=T(m,void 0);await e(a,o.value.taskName,{businessId:a})}catch(e){console.error("[workflowTodo] 打开待办处理页面失败",e),f.error("打开待办处理页面失败:"+(e?.message||e));return}setTimeout(()=>{d.emit(l.toUpperCase()+"WorkflowTodoHandleBus",r)},1e3)}async function S(){try{const o=g(),t=await U.get("/api/system/login/getUserPermission/web"),s=o.getUserInfo;o.setUserInfo({...t,menuTreeList:x(t.menuList,"id","parentId"),userBaseInfo:s.userBaseInfo,passwordExpired:s.passwordExpired,isComplete:s.isComplete})}catch(o){console.warn("刷新用户权限失败",o)}}export{ie as showTodoDialog};
@@ -1 +1 @@
1
- import{_ as p}from"../../chunks/operationAuth.vue_vue_type_script_lang-B0muG8DV.js";import{_ as e}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import{_ as a}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BU3FMUMx.js";import s from"../components/ElContentPanel/ElContentPanel.vue.js";import n from"../components/ElSplitPanel/ElSplitPanel.vue.js";import _ from"../components/ElCardSection/ElCardSection.vue.js";import f from"../components/ElDialogBody/ElDialogBody.vue.js";import l from"../components/ElGrid/ElGrid.vue.js";import c from"../components/Search/ElSearch.vue.js";import u from"../components/Title/ElTitle.vue.js";import h from"../components/icon/ElIcons.vue.js";import d from"../components/icon/ElIconBtn.vue.js";import E from"../components/Search/ElIconSearch.vue.js";import $ from"../components/Search/ElSearchInput.vue.js";import{_ as v}from"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-Qg1P3If6.js";/* empty css */import{reportPageLeave as i,setCurrentMenu as m,reportPageActivate as I,reportFeatureOpen as b}from"../utils/behaviorTrack.js";import{_ as g}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as P}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import{_ as M}from"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-DiFlFWi1.js";import{_ as A}from"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import{_ as D}from"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-BqRnIFkw.js";import L from"../components/ElCardList.vue.js";import T from"../components/kFrame/KFrame.vue.js";import{_ as C}from"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-CGjSyYgn.js";import{_ as S}from"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import{_ as y}from"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import{_ as O}from"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import F from"../components/ElCircleBadge/ElCircleBadge.vue.js";import N from"../components/AsideCardList/AsideCardList.vue.js";import{_ as U}from"../../chunks/ElNumericInput.vue_vue_type_script_setup_true_lang-C6KlCE6f.js";import x from"../components/ElIndicatorInput/ElIndicatorInput.vue.js";import B from"../components/ElTabsPanel/ElTabsPanel.vue.js";import"vue";import"vue-router";import"../stores/userInfoStore.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../stores/permissionStore.js";import"../utils/frontendBus.js";import"../hooks/useBehaviorAction.js";import"../utils/behaviorContext.js";import"../utils/uuid.js";import"uuid";import"axios";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../components/ElGrid/ElGridColumnSetting.vue.js";import"../utils/columnSettingStorage.js";import"@element-plus/icons-vue";import"element-plus";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";import"../api/SysUserApi.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"@vueuse/components";import"../components/kFrame/IframeOptions.js";import"../components/RichTextEditor/RichTextEditor.vue.js";import"../../chunks/preload-helper-BlTxHScW.js";import"../components/RichTextEditor/richTextHtmlUtils.js";import"../components/RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../components/RichTextEditor/richTextImageUpload.js";import"../api/DocumentApi.js";import"../utils/buildUploadHeaders.js";import"../components/ElIndicatorInput/interface.js";const Er={mounted(){const o=this.$route,r=o?.meta?.sysMenuData;r?.id&&m(r);const t=this.$options?.__name||this.$options?.name;this.$options?.__isPageWrapper||this.$parent?.$options?.__isPageWrapper&&r?.id&&t&&t===o?.name&&(b(r,o.fullPath),this.__behaviorMenuId=r.id,this.__behaviorActivatedOnce=!1,this.__behaviorLeft=!1)},activated(){const o=this.$route?.meta?.sysMenuData;o?.id&&m(o);const r=this.__behaviorMenuId;if(r){if(!this.__behaviorActivatedOnce){this.__behaviorActivatedOnce=!0;return}I(r),this.__behaviorLeft=!1}},deactivated(){const o=this.__behaviorMenuId;o&&(i(o,"KEEP_ALIVE_DEACTIVATE"),this.__behaviorLeft=!0)},beforeUnmount(){const o=this.__behaviorMenuId;o&&i(o,"UNMOUNT",!0,!this.__behaviorLeft)},components:{operationAuth:p,ElFlex:e,ElDescForm:a,ElContentPanel:s,ElSplitPanel:n,ElCardSection:_,ElDialogBody:f,ElGrid:l,ElSearch:c,ElTitle:u,ElIcons:h,ElIconBtn:d,ElIconSearch:E,ElSearchInput:$,ElTooltip:v,userSelect:g,mdmUserSelect:P,ElScrollbars:A,ElTotalTools:D,ElCardList:L,KFrame:T,ElPagePagination:C,ElCellLink:S,ElTagDisplay:y,DictDisplay:M,DragHandleIcon:O,ElCircleBadge:F,AsideCardList:N,ElNumericInput:U,ElIndicatorInput:x,ElTabsPanel:B}};export{Er as globalMixin};
1
+ import{_ as p}from"../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import{_ as e}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import{_ as a}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BU3FMUMx.js";import s from"../components/ElContentPanel/ElContentPanel.vue.js";import n from"../components/ElSplitPanel/ElSplitPanel.vue.js";import _ from"../components/ElCardSection/ElCardSection.vue.js";import f from"../components/ElDialogBody/ElDialogBody.vue.js";import l from"../components/ElGrid/ElGrid.vue.js";import c from"../components/Search/ElSearch.vue.js";import u from"../components/Title/ElTitle.vue.js";import h from"../components/icon/ElIcons.vue.js";import d from"../components/icon/ElIconBtn.vue.js";import E from"../components/Search/ElIconSearch.vue.js";import $ from"../components/Search/ElSearchInput.vue.js";import{_ as v}from"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-Qg1P3If6.js";/* empty css */import{reportPageLeave as i,setCurrentMenu as m,reportPageActivate as I,reportFeatureOpen as b}from"../utils/behaviorTrack.js";import{_ as g}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as P}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import{_ as M}from"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-DiFlFWi1.js";import{_ as A}from"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import{_ as D}from"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-BqRnIFkw.js";import L from"../components/ElCardList.vue.js";import T from"../components/kFrame/KFrame.vue.js";import{_ as C}from"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-CGjSyYgn.js";import{_ as S}from"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import{_ as y}from"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import{_ as O}from"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import F from"../components/ElCircleBadge/ElCircleBadge.vue.js";import N from"../components/AsideCardList/AsideCardList.vue.js";import{_ as U}from"../../chunks/ElNumericInput.vue_vue_type_script_setup_true_lang-C6KlCE6f.js";import x from"../components/ElIndicatorInput/ElIndicatorInput.vue.js";import B from"../components/ElTabsPanel/ElTabsPanel.vue.js";import"vue";import"../hooks/useBehaviorAction.js";import"../utils/behaviorContext.js";import"../utils/uuid.js";import"uuid";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../hooks/useOperationAuth.js";import"vue-router";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../components/ElGrid/ElGridColumnSetting.vue.js";import"../utils/columnSettingStorage.js";import"@element-plus/icons-vue";import"element-plus";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";import"../api/SysUserApi.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"@vueuse/components";import"../components/kFrame/IframeOptions.js";import"../components/RichTextEditor/RichTextEditor.vue.js";import"../../chunks/preload-helper-BlTxHScW.js";import"../components/RichTextEditor/richTextHtmlUtils.js";import"../components/RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../components/RichTextEditor/richTextImageUpload.js";import"../api/DocumentApi.js";import"../utils/buildUploadHeaders.js";import"../components/ElIndicatorInput/interface.js";const vr={mounted(){const o=this.$route,r=o?.meta?.sysMenuData;r?.id&&m(r);const t=this.$options?.__name||this.$options?.name;this.$options?.__isPageWrapper||this.$parent?.$options?.__isPageWrapper&&r?.id&&t&&t===o?.name&&(b(r,o.fullPath),this.__behaviorMenuId=r.id,this.__behaviorActivatedOnce=!1,this.__behaviorLeft=!1)},activated(){const o=this.$route?.meta?.sysMenuData;o?.id&&m(o);const r=this.__behaviorMenuId;if(r){if(!this.__behaviorActivatedOnce){this.__behaviorActivatedOnce=!0;return}I(r),this.__behaviorLeft=!1}},deactivated(){const o=this.__behaviorMenuId;o&&(i(o,"KEEP_ALIVE_DEACTIVATE"),this.__behaviorLeft=!0)},beforeUnmount(){const o=this.__behaviorMenuId;o&&i(o,"UNMOUNT",!0,!this.__behaviorLeft)},components:{operationAuth:p,ElFlex:e,ElDescForm:a,ElContentPanel:s,ElSplitPanel:n,ElCardSection:_,ElDialogBody:f,ElGrid:l,ElSearch:c,ElTitle:u,ElIcons:h,ElIconBtn:d,ElIconSearch:E,ElSearchInput:$,ElTooltip:v,userSelect:g,mdmUserSelect:P,ElScrollbars:A,ElTotalTools:D,ElCardList:L,KFrame:T,ElPagePagination:C,ElCellLink:S,ElTagDisplay:y,DictDisplay:M,DragHandleIcon:O,ElCircleBadge:F,AsideCardList:N,ElNumericInput:U,ElIndicatorInput:x,ElTabsPanel:B}};export{vr as globalMixin};
@@ -780,6 +780,9 @@ export type { IndicatorControlType, IndicatorInputConfig, IndicatorInputOption,
780
780
  export { INDICATOR_RANGE_TYPE } from '../components/ElIndicatorInput/interface';
781
781
  export { evaluateComputedIndicators, evaluateIndicatorFormula, formatIndicatorFormulaResult, formatIndicatorRangeValue, isComputedIndicator, isIndicatorReadonly, parseIndicatorTags, parseIndicatorRangeValue, validateIndicatorValue, } from '../components/ElIndicatorInput/interface';
782
782
  export { useDescForm } from '../hooks/useDescForm';
783
+ export { default as useOperationAuth } from '../hooks/useOperationAuth';
784
+ export { matchOperation, resolveOperationList, resolveOperationMenu, } from '../utils/operationAuth';
785
+ export type { IOperationAuthContext } from '../utils/operationAuth';
783
786
  export { DATE_FORMAT, DATE_TIME_FORMAT, DATE_TIME_MILLISECONDS_FORMAT, formatDateTime, } from '../utils/dateTime';
784
787
  export type { DateTimeInput, FormatDateTimeOptions } from '../utils/dateTime';
785
788
  export type { IDescFormField, IDescFormOption, IDescFormFieldType, } from '../components/ElDescForm/IDescFormField';