adtec-hnyzfc-core-package 1.4.9 → 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 (42) hide show
  1. package/dist/chunks/ElDescForm.vue_vue_type_style_index_0_lang-BU3FMUMx.js +1 -0
  2. package/dist/chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js +1 -0
  3. package/dist/src/components/AsideCardList/AsideCardList.vue.js +1 -1
  4. package/dist/src/components/ElDescForm/ElDescForm.vue.d.ts +15 -0
  5. package/dist/src/components/ElDescForm/ElDescForm.vue.js +1 -1
  6. package/dist/src/components/ElGrid/ElGridColumnSetting.vue.js +1 -1
  7. package/dist/src/components/ElIndicatorInput/ElIndicatorInput.vue.js +1 -1
  8. package/dist/src/components/ElIndicatorInput/interface.d.ts +37 -2
  9. package/dist/src/components/ElIndicatorInput/interface.js +1 -1
  10. package/dist/src/components/OperationAuth/operationAuth.vue.js +1 -1
  11. package/dist/src/components/upload/CustomElUpload.vue.d.ts +2 -2
  12. package/dist/src/components/upload/CustomElUpload.vue.js +1 -1
  13. package/dist/src/components/upload/FileView.vue.js +1 -1
  14. package/dist/src/components/upload/FileViewComponents.vue.js +1 -1
  15. package/dist/src/components/workflow/TaskOperation.vue.js +1 -1
  16. package/dist/src/components/workflow/WorkflowTodoShell.vue.d.ts +2 -4
  17. package/dist/src/components/workflow/WorkflowTodoShell.vue.js +5 -2
  18. package/dist/src/hooks/createDialogHooks.js +18 -3
  19. package/dist/src/hooks/useOpenNewMenu.js +1 -1
  20. package/dist/src/hooks/useOperationAuth.d.ts +15 -0
  21. package/dist/src/hooks/useOperationAuth.js +1 -0
  22. package/dist/src/hooks/usePermissionHooks.js +1 -1
  23. package/dist/src/hooks/usePermissionToolHooks.d.ts +1 -1
  24. package/dist/src/hooks/usePermissionToolHooks.js +1 -1
  25. package/dist/src/hooks/usePreviewFullscreen.d.ts +25 -0
  26. package/dist/src/hooks/usePreviewFullscreen.js +1 -0
  27. package/dist/src/hooks/workflowTodo.js +1 -1
  28. package/dist/src/mixin/globalMixin.js +1 -1
  29. package/dist/src/packages/index.d.ts +22 -1
  30. package/dist/src/packages/index.js +1 -1
  31. package/dist/src/plugins/plugins.js +1 -1
  32. package/dist/src/plugins/renderDialog.js +1 -1
  33. package/dist/src/stores/permissionStore.d.ts +9 -2
  34. package/dist/src/stores/permissionStore.js +1 -1
  35. package/dist/src/utils/modules.js +2 -2
  36. package/dist/src/utils/operationAuth.d.ts +43 -0
  37. package/dist/src/utils/operationAuth.js +1 -0
  38. package/dist/src/utils/uploadAccept.js +1 -1
  39. package/dist/styles/element-ui.css +1 -1
  40. package/package.json +1 -1
  41. package/dist/chunks/ElDescForm.vue_vue_type_style_index_0_lang-pc2XfCVw.js +0 -1
  42. package/dist/chunks/operationAuth.vue_vue_type_script_lang-B0muG8DV.js +0 -1
@@ -0,0 +1 @@
1
+ import{defineComponent as pe,ref as de,reactive as ie,onMounted as me,onUpdated as ye,onBeforeUnmount as ve,computed as E,resolveComponent as p,openBlock as c,createBlock as d,withKeys as he,withCtx as m,createCommentVNode as S,createVNode as C,createElementBlock as x,Fragment as M,renderList as T,normalizeClass as Y,createElementVNode as z,toDisplayString as A,mergeProps as v,createTextVNode as D,renderSlot as L,nextTick as I}from"vue";import{DATE_FORMAT as be,formatDateTime as fe}from"../src/utils/dateTime.js";const _e=["onMouseenter"],ge={key:11,class:"el-desc-form__readonly-slot"},K="—",ke=pe({__name:"ElDescForm",props:{model:{},fields:{},rules:{default:()=>({})},column:{default:4},border:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},title:{},scrollToError:{type:Boolean,default:!0},scrollIntoViewOptions:{type:Boolean,default:()=>({behavior:"smooth",block:"center"})}},setup(n,{expose:P}){const f=n,g=de(),V=new Map,k=new Map,U=ie({}),w=e=>{const t=V.get(e),l=!!t&&t.scrollWidth>t.clientWidth;U[e]!==l&&(U[e]=l)},N=()=>{I(()=>{V.forEach((e,t)=>w(t))})},$=(e,t)=>{const l=t;if(V.get(e)===l){l&&w(e);return}if(k.get(e)?.disconnect(),k.delete(e),delete U[e],!l){V.delete(e);return}if(V.set(e,l),typeof ResizeObserver<"u"){const s=new ResizeObserver(()=>w(e));s.observe(l),k.set(e,s)}I(()=>w(e))};me(N),ye(N),ve(()=>{k.forEach(e=>e.disconnect()),k.clear(),V.clear()});const y=E(()=>Math.min(4,Math.max(1,f.column||4))),H=e=>{const t=g.value?.$el;if(!t)return;const l=Array.from(t.querySelectorAll("input, textarea")).filter(i=>!i.disabled&&i.type!=="checkbox"&&i.type!=="radio"&&i.type!=="hidden"&&(i.offsetParent!==null||i.getClientRects().length>0));if(!l.length)return;const a=document.activeElement;if(!a||!l.includes(a))return;const s=l.indexOf(a),u=e.shiftKey?-1:1,b=(s+u+l.length)%l.length;e.preventDefault();const _=l[b];_.focus();try{const i=_.value.length;_.setSelectionRange(i,i)}catch{}},j=E(()=>{const e={...f.rules};for(const t of f.fields)t.rules?.length&&(e[t.prop]=[...e[t.prop]||[],...t.rules]);return e}),W=E(()=>{const e=[];let t=y.value,l=-1;for(const a of f.fields){if(!(typeof a.show=="function"?a.show(f.model):a.show!==!1))continue;const u=Q(a),b=Math.min(Math.max(1,u.span??1),y.value);if(b===y.value&&t<y.value&&l>=0){const _=e[l],i=Math.min(Math.max(1,_.span??1),y.value);_.span=Math.min(i+t,y.value),t=y.value}e.push(u),l=e.length-1,t=b<t?t-b:y.value}return e}),F=e=>{const t=e.props||{};return f.readonly===!0||e.readonly===!0||t.readonly===!0},B=(e,t)=>e===t||String(e)===String(t),R=(e,t)=>{if(!e?.length)return;const l=e.find(a=>B(a.value,t));return l===void 0?void 0:String(l.label)},O=(e,t)=>{if(e?.length)for(const l of e){if(B(l.value,t))return String(l.label??l.name??"");if(l.children?.length){const a=O(l.children,t);if(a)return a}}},G=(e,t)=>{let l=e||[];const a=[];for(const s of t){const u=l.find(b=>B(b.value,s));if(!u)break;a.push(String(u.label??u.name??"")),l=u.children||[]}return a.join(" / ")},h=e=>e.trim()||K,q=e=>{const t=f.model?.[e.prop];if(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0)return K;const l=e.props||{},a=e.options;if(e.type==="select")return Array.isArray(t)?h(t.map(s=>R(a,s)??String(s)).filter(Boolean).join("、")):h(R(a,t)??String(t));if(e.type==="radio")return h(R(a,t)??String(t));if(e.type==="checkbox"){const s=Array.isArray(t)?t:[t];return h(s.map(u=>R(a,u)??String(u)).filter(Boolean).join("、"))}if(e.type==="tree-select"){const s=a||l.data;return Array.isArray(t)?h(t.map(u=>O(s,u)??String(u)).filter(Boolean).join("、")):h(O(s,t)??String(t))}if(e.type==="cascader"){const s=G(a,Array.isArray(t)?t:[t]);return h(s||(Array.isArray(t)?t.join(" / "):String(t)))}if(e.type==="switch")return t===!0||t===1||t==="1"?l["active-text"]||"是":l["inactive-text"]||"否";if(e.type==="date"){const s=String(l.type||"date"),u=String(l.valueFormat||l.format||"")||(s==="year"?"YYYY":s==="month"?"YYYY-MM":s==="time"?"HH:mm:ss":be);return h(fe(String(t),{format:u})||String(t))}return h(String(t))},J=e=>!!j.value[e.prop]?.some(l=>l.required),Q=e=>{const t=l=>typeof l=="function"?l(f.model):l;return{...e,span:e.type==="textarea"?y.value:Math.min(Math.max(1,e.span??1),y.value),label:t(e.label),tip:e.tip?t(e.tip):void 0,options:e.options?t(e.options):void 0,placeholder:e.placeholder?t(e.placeholder):void 0,props:e.props?t(e.props):void 0}};return P({validate:e=>g.value?.validate(e),validateField:(e,t)=>g.value?.validateField(e,t),scrollToField:e=>g.value?.scrollToField(e),resetFields:()=>g.value?.resetFields(),clearValidate:()=>g.value?.clearValidate()}),(e,t)=>{const l=p("el-title"),a=p("el-icons"),s=p("el-tooltip"),u=p("el-input"),b=p("el-numeric-input"),_=p("el-option"),i=p("el-select"),X=p("el-date-picker"),Z=p("el-switch"),ee=p("el-radio"),oe=p("el-radio-group"),te=p("el-checkbox"),le=p("el-checkbox-group"),re=p("el-tree-select"),ne=p("el-cascader"),ae=p("el-form-item"),se=p("el-descriptions-item"),ce=p("el-descriptions"),ue=p("el-form");return c(),d(ue,{ref_key:"formRef",ref:g,class:"el-desc-form",model:n.model,rules:j.value,"validate-on-rule-change":!1,"scroll-to-error":n.scrollToError,"scroll-into-view-options":n.scrollIntoViewOptions,onKeydown:he(H,["tab"])},{default:m(()=>[S(" 内容块二级标题:弹窗/抽屉内表单区块统一用 el-desc-form title 声明式渲染,避免各页面手写 "),n.title?(c(),d(l,{key:0,level:"1",title:n.title,style:{"border-bottom":"var(--border)","margin-bottom":"8px"}},null,8,["title"])):S("v-if",!0),C(ce,{direction:"vertical",column:y.value,border:n.border},{default:m(()=>[(c(!0),x(M,null,T(W.value,o=>(c(),d(se,{key:o.prop,label:o.label||void 0,span:o.span},{label:m(()=>[o.label?(c(),x("span",{key:0,class:Y(["el-desc-form__label",{"el-desc-form__label--required":J(o)}])},[D(A(o.label)+" ",1),o.tip?(c(),d(s,{key:0,content:o.tip,placement:"top","popper-class":"el-desc-form-tip-popper"},{default:m(()=>[C(a,{"model-value":"adtec-info",class:"el-desc-form__label-tip"})]),_:1},8,["content"])):S("v-if",!0)],2)):S("v-if",!0)]),default:m(()=>[C(ae,{prop:F(o)?void 0:o.prop,class:Y({"el-desc-form__form-item--multiline":o.type==="textarea"}),style:{"margin-bottom":"0"},"hide-required-asterisk":""},{default:m(()=>[S(" 只读模式:统一处理文本溢出,只有内容超出单元格宽度时才打开 tooltip "),F(o)&&o.type&&o.type!=="slot"?(c(),d(s,{key:0,content:q(o),disabled:!U[o.prop],effect:"light",placement:"top","popper-class":"el-desc-form-readonly-tip-popper"},{default:m(()=>[z("span",{class:Y(["el-desc-form__readonly-text",{"el-desc-form__readonly-text--multiline":o.type==="textarea"}]),onMouseenter:r=>w(o.prop)},[z("span",{ref_for:!0,ref:r=>$(o.prop,r),class:"el-desc-form__readonly-text-content"},A(q(o)),513)],42,_e)]),_:2},1032,["content","disabled"])):o.type==="input"?(c(),d(u,v({key:1,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props,{placeholder:o.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="textarea"?(c(),d(u,v({key:2,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r,type:"textarea",autosize:{minRows:2,maxRows:4}},{ref_for:!0},o.props,{placeholder:o.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="number"?(c(),d(b,v({key:3,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props),null,16,["modelValue","onUpdate:modelValue"])):o.type==="select"?(c(),d(i,v({key:4,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props,{placeholder:o.placeholder,clearable:""}),{default:m(()=>[(c(!0),x(M,null,T(o.options,r=>(c(),d(_,{key:r.value,label:r.label,value:r.value,disabled:r.disabled},null,8,["label","value","disabled"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="date"?(c(),d(X,v({key:5,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props,{type:o.props?.type||"date",placeholder:o.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","type","placeholder"])):o.type==="switch"?(c(),d(Z,v({key:6,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props),null,16,["modelValue","onUpdate:modelValue"])):o.type==="radio"?(c(),d(oe,v({key:7,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props),{default:m(()=>[(c(!0),x(M,null,T(o.options,r=>(c(),d(ee,{key:r.value,value:r.value},{default:m(()=>[D(A(r.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):o.type==="checkbox"?(c(),d(le,v({key:8,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props),{default:m(()=>[(c(!0),x(M,null,T(o.options,r=>(c(),d(te,{key:r.value,value:r.value},{default:m(()=>[D(A(r.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):o.type==="tree-select"?(c(),d(re,v({key:9,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r},{ref_for:!0},o.props,{placeholder:o.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="cascader"?(c(),d(ne,v({key:10,modelValue:n.model[o.prop],"onUpdate:modelValue":r=>n.model[o.prop]=r,options:o.options},{ref_for:!0},o.props,{style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","options"])):F(o)?(c(),x("div",ge,[L(e.$slots,o.slot||o.prop,{field:o,model:n.model})])):L(e.$slots,o.slot||o.prop,{field:o,model:n.model},void 0,void 0,12)]),_:2},1032,["prop","class"])]),_:2},1032,["label","span"]))),128))]),_:3},8,["column","border"])]),_:3},8,["model","rules","scroll-to-error","scroll-into-view-options"])}}});export{ke as _};
@@ -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};
@@ -19,6 +19,16 @@ type __VLS_Props = {
19
19
  readonly?: boolean;
20
20
  /** 内容块二级标题(弹窗/抽屉内表单区块统一使用) */
21
21
  title?: string;
22
+ /**
23
+ * 校验失败时自动滚动到第一个报错字段(默认开启)。
24
+ * 与安徽中烟申报一致的交互:提交校验不通过时把用户带到出错位置。
25
+ */
26
+ scrollToError?: boolean;
27
+ /**
28
+ * 滚动到出错/指定字段时的滚动参数,默认平滑滚动并垂直居中。
29
+ * 传 false 可关闭滚动,或传自定义 ScrollIntoViewOptions。
30
+ */
31
+ scrollIntoViewOptions?: boolean | ScrollIntoViewOptions;
22
32
  };
23
33
  declare var __VLS_92: string, __VLS_93: {
24
34
  field: ResolvedDescFormField;
@@ -34,6 +44,9 @@ type __VLS_Slots = {} & {
34
44
  };
35
45
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
36
46
  validate: (callback?: (isValid: boolean, invalidFields?: unknown) => void) => any;
47
+ validateField: (props?: unknown, callback?: unknown) => any;
48
+ /** 滚动到指定字段:业务在非表单规则校验失败时也能定位到具体字段 */
49
+ scrollToField: (prop: string) => any;
37
50
  resetFields: () => any;
38
51
  clearValidate: () => any;
39
52
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
@@ -41,6 +54,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
41
54
  rules: Record<string, FormItemRule[]>;
42
55
  readonly: boolean;
43
56
  column: number;
57
+ scrollToError: boolean;
58
+ scrollIntoViewOptions: boolean | ScrollIntoViewOptions;
44
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
45
60
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
46
61
  export default _default;
@@ -1 +1 @@
1
- import{_ as m}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-pc2XfCVw.js";import"vue";export{m as default};
1
+ import{_ as o}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BU3FMUMx.js";import"vue";import"../../utils/dateTime.js";export{o 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{defineComponent as fe,useModel as ee,computed as u,ref as be,watch as pe,resolveComponent as p,openBlock as n,createElementBlock as g,toDisplayString as E,createBlock as m,mergeProps as h,unref as ge,withCtx as U,Fragment as O,renderList as H,createElementVNode as B,normalizeClass as he,createVNode as T,createCommentVNode as Ve,createTextVNode as le,mergeModels as xe}from"vue";import ye from"../RichTextEditor/RichTextEditor.vue.js";import{INDICATOR_RANGE_TYPE as d,parseIndicatorRangeValue as Pe,validateIndicatorValue as Ne,formatIndicatorRangeValue as ke}from"./interface.js";import{_ as Ee}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../../chunks/preload-helper-BlTxHScW.js";import"element-plus";import"../../utils/uuid.js";import"uuid";import"../RichTextEditor/richTextHtmlUtils.js";import"../RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../RichTextEditor/richTextImageUpload.js";import"../../api/DocumentApi.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";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/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"../../utils/buildUploadHeaders.js";const Oe={class:"el-indicator-input"},Se={key:0,class:"el-indicator-input__readonly-value"},Me={key:8,class:"indicator-range-field"},Ie={class:"indicator-range-operator"},Ue={class:"indicator-range-operator"},Be={class:"indicator-range-prefix"},we={key:0,class:"indicator-range-error"},Te=fe({__name:"ElIndicatorInput",props:xe({config:{default:()=>({})},options:{default:()=>[]},label:{default:""},placeholder:{default:""},businessId:{default:void 0},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},maxlength:{default:1e3},showWordLimit:{type:Boolean,default:!0},controlProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{},text:{default:""},textModifiers:{}}),emits:["update:modelValue","update:text"],setup(a,{expose:ae}){const r=a,s=ee(a,"modelValue"),b=ee(a,"text"),j=u(()=>r.options.some(e=>Array.isArray(e.children)&&e.children.length>0)),te=u(()=>String(r.config.indexTag??"").split(",").map(e=>e.trim().toLowerCase().replace(/[-_\s]/g,"")).filter(Boolean)),z=u(()=>te.value.includes("compute")),D=u(()=>r.readonly||z.value),c=u(()=>D.value),re=u(()=>b.value||s.value||"—"),o=u(()=>{const e=r.config.rangeYpe;return e===d.MULTI_LINE_TEXT?"textarea":e===d.RICH_TEXT?"rich-text":e===d.YEAR?"year":e===d.MONTH?"month":e===d.DATE?"date":e===d.TIME?"time":e===d.NUMBER||e===d.SCALE_NUMBER||e===d.RANGE_NUMBER?e===d.SCALE_NUMBER&&Z.value.length>0?"scale-select":e===d.RANGE_NUMBER?"range-number":"number":e===d.RADIO?"radio":e===d.CHECKBOX?"checkbox":e===d.SINGLE_SELECT||e===d.MULTIPLE_SELECT?j.value?"tree-select":"select":r.config.indexAttriValue==="02"?"date":r.config.indexAttriValue==="03"?"number":r.config.indexAttriValue==="04"?j.value?"tree-select":"select":"input"}),S=u(()=>r.config.rangeYpe===d.MULTIPLE_SELECT||r.config.rangeYpe===d.CHECKBOX),C=u(()=>{const e=[],l=i=>{i.forEach(x=>{e.push(x),x.children?.length&&l(x.children)})};return l(r.options),e}),L=e=>e.disabled===!0||e.isValid==="0",oe=e=>C.value.find(l=>String(l.value)===e)?.label,v=u(()=>{const e=r.config.rangeOfValue||"";return e==="x>a"?{double:!1,operator:">",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最小值",secondPlaceholder:""}:e==="x≥a"?{double:!1,operator:"≥",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最小值",secondPlaceholder:""}:e==="x<a"?{double:!1,operator:"<",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最大值",secondPlaceholder:""}:e==="x≤a"?{double:!1,operator:"≤",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最大值",secondPlaceholder:""}:e==="x=a"?{double:!1,operator:"=",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入固定值",secondPlaceholder:""}:e==="x±a"?{double:!0,operator:"±",leftOperator:"±",rightOperator:"",firstPlaceholder:"请输入固定值",secondPlaceholder:"请输入允差值"}:{double:!0,operator:"",leftOperator:e.startsWith("a≤")?"≤":"<",rightOperator:e.endsWith("≤b")?"≤":"<",firstPlaceholder:"请输入最小值",secondPlaceholder:"请输入最大值"}}),R=u(()=>Pe(r.config,s.value)),W=u(()=>R.value.first),K=u(()=>R.value.second),y=be(!1),A=u(()=>Ne(r.config,s.value)),q=(e,l)=>{const i={...R.value};e===0?i.first=l:i.second=l,s.value=ke(r.config,i),k()},G=e=>q(0,e),J=e=>q(1,e),ne=()=>(y.value=!0,!A.value),k=()=>{if(o.value!=="rich-text"){if(o.value==="range-number"){const e=R.value,l=r.config.rangeOfValue||"";if(e.first==null&&e.second==null){b.value="";return}l==="x±a"?b.value=`${e.first??"x"} ± ${e.second??"a"}`:v.value.double?b.value=`${e.first??"a"} ${v.value.leftOperator} x ${v.value.rightOperator} ${e.second??"b"}`:b.value=`x ${v.value.operator} ${e.first}`;return}if(o.value==="select"||o.value==="scale-select"||o.value==="tree-select"||o.value==="radio"||o.value==="checkbox"){const e=s.value.split(",").filter(Boolean);if(!e.length){b.value="";return}if(!r.options.length&&b.value)return;b.value=e.map(l=>String(oe(l)??l)).join("、");return}b.value=s.value}},f=u({get:()=>s.value,set:e=>{s.value=e==null?"":String(e),k()}}),X=u({get:()=>s.value.split(",").filter(Boolean),set:e=>{s.value=e.join(","),k()}}),M=u({get:()=>S.value?X.value:s.value,set:e=>{s.value=Array.isArray(e)?e.join(","):String(e??""),k()}}),ue=u(()=>{if(!s.value.trim())return;const e=Number(s.value);return Number.isFinite(e)?e:void 0}),P=u(()=>{const e=Number(r.config.dataScale);if(Number.isFinite(e)&&e>0)return e;const l=Number(r.config.decimalPlaces);return Number.isInteger(l)&&l>=0?10**-Math.min(l,100):void 0}),Q=e=>{const l=Number(r.config.decimalPlaces);return Number.isInteger(l)&&l>=0?Number(e.toFixed(Math.min(l,100))):e},Y=u(()=>{let e=r.config.minValue,l=r.config.maxValue;r.config.rangeOfValue==="x=a"&&r.config.fixedValue!=null?(e=r.config.fixedValue,l=r.config.fixedValue):r.config.rangeOfValue==="x±a"&&r.config.fixedValue!=null&&r.config.tolerance!=null&&(e??(e=Number(r.config.fixedValue)-Number(r.config.tolerance)),l??(l=Number(r.config.fixedValue)+Number(r.config.tolerance)));const i=P.value;return e!=null&&r.config.isContainMin==="0"&&i&&(e=Q(Number(e)+i)),l!=null&&r.config.isContainMax==="0"&&i&&(l=Q(Number(l)-i)),{min:e,max:l}}),Z=u(()=>{if(r.config.rangeYpe!==d.SCALE_NUMBER)return[];const e=Y.value.min,l=Y.value.max,i=P.value;if(e==null||l==null||i==null||!Number.isFinite(e)||!Number.isFinite(l)||!Number.isFinite(i)||i<=0||l<e)return[];const x=Math.floor((l-e)/i+1e-9)+1;if(x<=0||x>1e3)return[];const w=Number(r.config.decimalPlaces),N=I=>Number.isInteger(w)&&w>=0?Number(I.toFixed(Math.min(w,100))):I;return Array.from({length:x},(I,$)=>{const F=N(e+$*i);return{label:F,value:F}})}),_=u(()=>o.value==="year"?"YYYY":o.value==="month"?"YYYY-MM":"YYYY-MM-DD"),V=u(()=>r.placeholder||r.config.tip?r.placeholder||r.config.tip:`${["input","textarea","rich-text","number"].includes(o.value)?"请输入":"请选择"}${r.label||"指标值"}`),ie={label:"label",children:"children",disabled:e=>L(e)},de=e=>{s.value=e==null?"":String(e),k()};return pe([s,()=>r.options,o],k,{immediate:!0,deep:!0}),ae({controlType:o,syncText:k,validate:ne,isReadonlyIndicator:D,isComputedIndicator:z}),(e,l)=>{const i=p("el-input"),x=p("el-date-picker"),w=p("el-time-picker"),N=p("el-numeric-input"),I=p("el-option"),$=p("el-select"),F=p("el-tree-select"),se=p("el-radio"),ce=p("el-radio-group"),me=p("el-checkbox"),ve=p("el-checkbox-group");return n(),g("div",Oe,[D.value?(n(),g("span",Se,E(re.value),1)):o.value==="rich-text"?(n(),m(ye,{key:1,modelValue:f.value,"onUpdate:modelValue":l[0]||(l[0]=t=>f.value=t),text:b.value,"onUpdate:text":l[1]||(l[1]=t=>b.value=t),"is-edit":!a.disabled&&!c.value,"editor-config":{businessId:a.businessId,placeholder:V.value}},null,8,["modelValue","text","is-edit","editor-config"])):o.value==="textarea"?(n(),m(i,h({key:2,modelValue:f.value,"onUpdate:modelValue":l[2]||(l[2]=t=>f.value=t)},a.controlProps,{type:"textarea",rows:3,maxlength:a.maxlength,"show-word-limit":a.showWordLimit,disabled:a.disabled,readonly:c.value,placeholder:V.value}),null,16,["modelValue","maxlength","show-word-limit","disabled","readonly","placeholder"])):o.value==="input"?(n(),m(i,h({key:3,modelValue:f.value,"onUpdate:modelValue":l[3]||(l[3]=t=>f.value=t)},a.controlProps,{maxlength:a.maxlength,"show-word-limit":a.showWordLimit,disabled:a.disabled,readonly:c.value,placeholder:V.value}),null,16,["modelValue","maxlength","show-word-limit","disabled","readonly","placeholder"])):o.value==="year"||o.value==="month"||o.value==="date"?(n(),m(x,h({key:4,modelValue:f.value,"onUpdate:modelValue":l[4]||(l[4]=t=>f.value=t)},a.controlProps,{type:o.value,format:_.value,"value-format":_.value,disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","type","format","value-format","disabled","clearable","placeholder"])):o.value==="time"?(n(),m(w,h({key:5,modelValue:f.value,"onUpdate:modelValue":l[5]||(l[5]=t=>f.value=t)},a.controlProps,{format:"HH:mm:ss","value-format":"HH:mm:ss",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","disabled","clearable","placeholder"])):o.value==="number"?(n(),m(N,h({key:6,"model-value":ue.value},a.controlProps,{min:Y.value.min,max:Y.value.max,precision:a.config.decimalPlaces,step:P.value,"step-strictly":a.config.rangeYpe===ge(d).SCALE_NUMBER,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:V.value,"onUpdate:modelValue":de}),null,16,["model-value","min","max","precision","step","step-strictly","disabled","readonly","clearable","placeholder"])):o.value==="scale-select"?(n(),m($,h({key:7,modelValue:M.value,"onUpdate:modelValue":l[6]||(l[6]=t=>M.value=t)},a.controlProps,{filterable:"",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),{default:U(()=>[(n(!0),g(O,null,H(Z.value,t=>(n(),m(I,{key:String(t.value),label:String(t.label),value:String(t.value)},null,8,["label","value"]))),128))]),_:1},16,["modelValue","disabled","clearable","placeholder"])):o.value==="range-number"?(n(),g("div",Me,[B("div",{class:he(["indicator-range-input",{"is-error":y.value&&A.value}])},[v.value.operator==="±"?(n(),g(O,{key:0},[T(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[7]||(l[7]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"]),l[16]||(l[16]=B("span",{class:"indicator-range-operator"},"±",-1)),T(N,{"model-value":K.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.secondPlaceholder,"onUpdate:modelValue":J,onBlur:l[8]||(l[8]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):v.value.double?(n(),g(O,{key:1},[T(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[9]||(l[9]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"]),B("span",Ie,E(v.value.leftOperator),1),l[17]||(l[17]=B("span",{class:"indicator-range-variable"},"x",-1)),B("span",Ue,E(v.value.rightOperator),1),T(N,{"model-value":K.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.secondPlaceholder,"onUpdate:modelValue":J,onBlur:l[10]||(l[10]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):(n(),g(O,{key:2},[B("span",Be,E(v.value.operator),1),T(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[11]||(l[11]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64))],2),y.value&&A.value?(n(),g("div",we,E(A.value),1)):Ve("v-if",!0)])):o.value==="tree-select"?(n(),m(F,h({key:9,modelValue:M.value,"onUpdate:modelValue":l[12]||(l[12]=t=>M.value=t)},a.controlProps,{data:a.options,props:ie,"value-key":"value","node-key":"value","check-strictly":"",filterable:"","show-checkbox":S.value,multiple:S.value,"collapse-tags":S.value,"collapse-tags-tooltip":"",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","data","show-checkbox","multiple","collapse-tags","disabled","clearable","placeholder"])):o.value==="select"?(n(),m($,h({key:10,modelValue:M.value,"onUpdate:modelValue":l[13]||(l[13]=t=>M.value=t)},a.controlProps,{filterable:"","collapse-tags":S.value,"collapse-tags-tooltip":"",multiple:S.value,disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),{default:U(()=>[(n(!0),g(O,null,H(C.value,t=>(n(),m(I,{key:String(t.value),label:String(t.label),value:String(t.value),disabled:L(t)},null,8,["label","value","disabled"]))),128))]),_:1},16,["modelValue","collapse-tags","multiple","disabled","clearable","placeholder"])):o.value==="radio"?(n(),m(ce,h({key:11,modelValue:f.value,"onUpdate:modelValue":l[14]||(l[14]=t=>f.value=t)},a.controlProps,{disabled:a.disabled||c.value}),{default:U(()=>[(n(!0),g(O,null,H(C.value,t=>(n(),m(se,{key:String(t.value),value:String(t.value),disabled:L(t)},{default:U(()=>[le(E(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"])):(n(),m(ve,h({key:12,modelValue:X.value,"onUpdate:modelValue":l[15]||(l[15]=t=>X.value=t)},a.controlProps,{disabled:a.disabled||c.value}),{default:U(()=>[(n(!0),g(O,null,H(C.value,t=>(n(),m(me,{key:String(t.value),value:String(t.value),disabled:L(t)},{default:U(()=>[le(E(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"]))])}}}),il=Ee(Te,[["__scopeId","data-v-d12f2924"]]);export{il as default};
1
+ import{defineComponent as ve,useModel as _,computed as u,ref as fe,watch as be,resolveComponent as p,openBlock as n,createElementBlock as g,toDisplayString as E,createBlock as m,mergeProps as h,unref as pe,withCtx as U,Fragment as O,renderList as H,createElementVNode as B,normalizeClass as ge,createVNode as C,createCommentVNode as he,createTextVNode as ee,mergeModels as Ve}from"vue";import ye from"../RichTextEditor/RichTextEditor.vue.js";import{isIndicatorReadonly as xe,isComputedIndicator as Pe,INDICATOR_RANGE_TYPE as d,parseIndicatorRangeValue as Ne,validateIndicatorValue as ke,formatIndicatorRangeValue as Ee}from"./interface.js";import{_ as Oe}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../../chunks/preload-helper-BlTxHScW.js";import"element-plus";import"../../utils/uuid.js";import"uuid";import"../RichTextEditor/richTextHtmlUtils.js";import"../RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../RichTextEditor/richTextImageUpload.js";import"../../api/DocumentApi.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";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/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"../../utils/buildUploadHeaders.js";const Ie={class:"el-indicator-input"},Se={key:0,class:"el-indicator-input__readonly-value"},Me={key:8,class:"indicator-range-field"},Ue={class:"indicator-range-operator"},Be={class:"indicator-range-operator"},we={class:"indicator-range-prefix"},Ce={key:0,class:"indicator-range-error"},Re=ve({__name:"ElIndicatorInput",props:Ve({config:{default:()=>({})},options:{default:()=>[]},label:{default:""},placeholder:{default:""},businessId:{default:void 0},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},maxlength:{default:1e3},showWordLimit:{type:Boolean,default:!0},controlProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{},text:{default:""},textModifiers:{}}),emits:["update:modelValue","update:text"],setup(a,{expose:le}){const r=a,s=_(a,"modelValue"),b=_(a,"text"),j=u(()=>r.options.some(e=>Array.isArray(e.children)&&e.children.length>0)),D=u(()=>r.readonly||xe(r.config)),ae=u(()=>Pe(r.config)),c=u(()=>D.value),te=u(()=>b.value||s.value||"—"),o=u(()=>{const e=r.config.rangeYpe;return e===d.MULTI_LINE_TEXT?"textarea":e===d.RICH_TEXT?"rich-text":e===d.YEAR?"year":e===d.MONTH?"month":e===d.DATE?"date":e===d.TIME?"time":e===d.NUMBER||e===d.SCALE_NUMBER||e===d.RANGE_NUMBER?e===d.SCALE_NUMBER&&Q.value.length>0?"scale-select":e===d.RANGE_NUMBER?"range-number":"number":e===d.RADIO?"radio":e===d.CHECKBOX?"checkbox":e===d.SINGLE_SELECT||e===d.MULTIPLE_SELECT?j.value?"tree-select":"select":r.config.indexAttriValue==="02"?"date":r.config.indexAttriValue==="03"?"number":r.config.indexAttriValue==="04"?j.value?"tree-select":"select":"input"}),I=u(()=>r.config.rangeYpe===d.MULTIPLE_SELECT||r.config.rangeYpe===d.CHECKBOX),R=u(()=>{const e=[],l=i=>{i.forEach(y=>{e.push(y),y.children?.length&&l(y.children)})};return l(r.options),e}),T=e=>e.disabled===!0||e.isValid==="0",re=e=>R.value.find(l=>String(l.value)===e)?.label,v=u(()=>{const e=r.config.rangeOfValue||"";return e==="x>a"?{double:!1,operator:">",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最小值",secondPlaceholder:""}:e==="x≥a"?{double:!1,operator:"≥",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最小值",secondPlaceholder:""}:e==="x<a"?{double:!1,operator:"<",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最大值",secondPlaceholder:""}:e==="x≤a"?{double:!1,operator:"≤",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入最大值",secondPlaceholder:""}:e==="x=a"?{double:!1,operator:"=",leftOperator:"",rightOperator:"",firstPlaceholder:"请输入固定值",secondPlaceholder:""}:e==="x±a"?{double:!0,operator:"±",leftOperator:"±",rightOperator:"",firstPlaceholder:"请输入固定值",secondPlaceholder:"请输入允差值"}:{double:!0,operator:"",leftOperator:e.startsWith("a≤")?"≤":"<",rightOperator:e.endsWith("≤b")?"≤":"<",firstPlaceholder:"请输入最小值",secondPlaceholder:"请输入最大值"}}),L=u(()=>Ne(r.config,s.value)),W=u(()=>L.value.first),z=u(()=>L.value.second),x=fe(!1),A=u(()=>ke(r.config,s.value)),K=(e,l)=>{const i={...L.value};e===0?i.first=l:i.second=l,s.value=Ee(r.config,i),k()},G=e=>K(0,e),q=e=>K(1,e),oe=()=>(x.value=!0,!A.value),k=()=>{if(o.value!=="rich-text"){if(o.value==="range-number"){const e=L.value,l=r.config.rangeOfValue||"";if(e.first==null&&e.second==null){b.value="";return}l==="x±a"?b.value=`${e.first??"x"} ± ${e.second??"a"}`:v.value.double?b.value=`${e.first??"a"} ${v.value.leftOperator} x ${v.value.rightOperator} ${e.second??"b"}`:b.value=`x ${v.value.operator} ${e.first}`;return}if(o.value==="select"||o.value==="scale-select"||o.value==="tree-select"||o.value==="radio"||o.value==="checkbox"){const e=s.value.split(",").filter(Boolean);if(!e.length){b.value="";return}if(!r.options.length&&b.value)return;b.value=e.map(l=>String(re(l)??l)).join("、");return}b.value=s.value}},f=u({get:()=>s.value,set:e=>{s.value=e==null?"":String(e),k()}}),X=u({get:()=>s.value.split(",").filter(Boolean),set:e=>{s.value=e.join(","),k()}}),S=u({get:()=>I.value?X.value:s.value,set:e=>{s.value=Array.isArray(e)?e.join(","):String(e??""),k()}}),ne=u(()=>{if(!s.value.trim())return;const e=Number(s.value);return Number.isFinite(e)?e:void 0}),P=u(()=>{const e=Number(r.config.dataScale);if(Number.isFinite(e)&&e>0)return e;const l=Number(r.config.decimalPlaces);return Number.isInteger(l)&&l>=0?10**-Math.min(l,100):void 0}),J=e=>{const l=Number(r.config.decimalPlaces);return Number.isInteger(l)&&l>=0?Number(e.toFixed(Math.min(l,100))):e},Y=u(()=>{let e=r.config.minValue,l=r.config.maxValue;r.config.rangeOfValue==="x=a"&&r.config.fixedValue!=null?(e=r.config.fixedValue,l=r.config.fixedValue):r.config.rangeOfValue==="x±a"&&r.config.fixedValue!=null&&r.config.tolerance!=null&&(e??(e=Number(r.config.fixedValue)-Number(r.config.tolerance)),l??(l=Number(r.config.fixedValue)+Number(r.config.tolerance)));const i=P.value;return e!=null&&r.config.isContainMin==="0"&&i&&(e=J(Number(e)+i)),l!=null&&r.config.isContainMax==="0"&&i&&(l=J(Number(l)-i)),{min:e,max:l}}),Q=u(()=>{if(r.config.rangeYpe!==d.SCALE_NUMBER)return[];const e=Y.value.min,l=Y.value.max,i=P.value;if(e==null||l==null||i==null||!Number.isFinite(e)||!Number.isFinite(l)||!Number.isFinite(i)||i<=0||l<e)return[];const y=Math.floor((l-e)/i+1e-9)+1;if(y<=0||y>1e3)return[];const w=Number(r.config.decimalPlaces),N=M=>Number.isInteger(w)&&w>=0?Number(M.toFixed(Math.min(w,100))):M;return Array.from({length:y},(M,$)=>{const F=N(e+$*i);return{label:F,value:F}})}),Z=u(()=>o.value==="year"?"YYYY":o.value==="month"?"YYYY-MM":"YYYY-MM-DD"),V=u(()=>r.placeholder||r.config.tip?r.placeholder||r.config.tip:`${["input","textarea","rich-text","number"].includes(o.value)?"请输入":"请选择"}${r.label||"指标值"}`),ue={label:"label",children:"children",disabled:e=>T(e)},ie=e=>{s.value=e==null?"":String(e),k()};return be([s,()=>r.options,o],k,{immediate:!0,deep:!0}),le({controlType:o,syncText:k,validate:oe,isReadonlyIndicator:D,isComputedIndicator:ae}),(e,l)=>{const i=p("el-input"),y=p("el-date-picker"),w=p("el-time-picker"),N=p("el-numeric-input"),M=p("el-option"),$=p("el-select"),F=p("el-tree-select"),de=p("el-radio"),se=p("el-radio-group"),ce=p("el-checkbox"),me=p("el-checkbox-group");return n(),g("div",Ie,[D.value?(n(),g("span",Se,E(te.value),1)):o.value==="rich-text"?(n(),m(ye,{key:1,modelValue:f.value,"onUpdate:modelValue":l[0]||(l[0]=t=>f.value=t),text:b.value,"onUpdate:text":l[1]||(l[1]=t=>b.value=t),"is-edit":!a.disabled&&!c.value,"editor-config":{businessId:a.businessId,placeholder:V.value}},null,8,["modelValue","text","is-edit","editor-config"])):o.value==="textarea"?(n(),m(i,h({key:2,modelValue:f.value,"onUpdate:modelValue":l[2]||(l[2]=t=>f.value=t)},a.controlProps,{type:"textarea",rows:3,maxlength:a.maxlength,"show-word-limit":a.showWordLimit,disabled:a.disabled,readonly:c.value,placeholder:V.value}),null,16,["modelValue","maxlength","show-word-limit","disabled","readonly","placeholder"])):o.value==="input"?(n(),m(i,h({key:3,modelValue:f.value,"onUpdate:modelValue":l[3]||(l[3]=t=>f.value=t)},a.controlProps,{maxlength:a.maxlength,"show-word-limit":a.showWordLimit,disabled:a.disabled,readonly:c.value,placeholder:V.value}),null,16,["modelValue","maxlength","show-word-limit","disabled","readonly","placeholder"])):o.value==="year"||o.value==="month"||o.value==="date"?(n(),m(y,h({key:4,modelValue:f.value,"onUpdate:modelValue":l[4]||(l[4]=t=>f.value=t)},a.controlProps,{type:o.value,format:Z.value,"value-format":Z.value,disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","type","format","value-format","disabled","clearable","placeholder"])):o.value==="time"?(n(),m(w,h({key:5,modelValue:f.value,"onUpdate:modelValue":l[5]||(l[5]=t=>f.value=t)},a.controlProps,{format:"HH:mm:ss","value-format":"HH:mm:ss",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","disabled","clearable","placeholder"])):o.value==="number"?(n(),m(N,h({key:6,"model-value":ne.value},a.controlProps,{min:Y.value.min,max:Y.value.max,precision:a.config.decimalPlaces,step:P.value,"step-strictly":a.config.rangeYpe===pe(d).SCALE_NUMBER,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:V.value,"onUpdate:modelValue":ie}),null,16,["model-value","min","max","precision","step","step-strictly","disabled","readonly","clearable","placeholder"])):o.value==="scale-select"?(n(),m($,h({key:7,modelValue:S.value,"onUpdate:modelValue":l[6]||(l[6]=t=>S.value=t)},a.controlProps,{filterable:"",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),{default:U(()=>[(n(!0),g(O,null,H(Q.value,t=>(n(),m(M,{key:String(t.value),label:String(t.label),value:String(t.value)},null,8,["label","value"]))),128))]),_:1},16,["modelValue","disabled","clearable","placeholder"])):o.value==="range-number"?(n(),g("div",Me,[B("div",{class:ge(["indicator-range-input",{"is-error":x.value&&A.value}])},[v.value.operator==="±"?(n(),g(O,{key:0},[C(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[7]||(l[7]=t=>x.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"]),l[16]||(l[16]=B("span",{class:"indicator-range-operator"},"±",-1)),C(N,{"model-value":z.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.secondPlaceholder,"onUpdate:modelValue":q,onBlur:l[8]||(l[8]=t=>x.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):v.value.double?(n(),g(O,{key:1},[C(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[9]||(l[9]=t=>x.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"]),B("span",Ue,E(v.value.leftOperator),1),l[17]||(l[17]=B("span",{class:"indicator-range-variable"},"x",-1)),B("span",Be,E(v.value.rightOperator),1),C(N,{"model-value":z.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.secondPlaceholder,"onUpdate:modelValue":q,onBlur:l[10]||(l[10]=t=>x.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):(n(),g(O,{key:2},[B("span",we,E(v.value.operator),1),C(N,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:v.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[11]||(l[11]=t=>x.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64))],2),x.value&&A.value?(n(),g("div",Ce,E(A.value),1)):he("v-if",!0)])):o.value==="tree-select"?(n(),m(F,h({key:9,modelValue:S.value,"onUpdate:modelValue":l[12]||(l[12]=t=>S.value=t)},a.controlProps,{data:a.options,props:ue,"value-key":"value","node-key":"value","check-strictly":"",filterable:"","show-checkbox":I.value,multiple:I.value,"collapse-tags":I.value,"collapse-tags-tooltip":"",disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),null,16,["modelValue","data","show-checkbox","multiple","collapse-tags","disabled","clearable","placeholder"])):o.value==="select"?(n(),m($,h({key:10,modelValue:S.value,"onUpdate:modelValue":l[13]||(l[13]=t=>S.value=t)},a.controlProps,{filterable:"","collapse-tags":I.value,"collapse-tags-tooltip":"",multiple:I.value,disabled:a.disabled||c.value,clearable:a.clearable,placeholder:V.value,style:{width:"100%"}}),{default:U(()=>[(n(!0),g(O,null,H(R.value,t=>(n(),m(M,{key:String(t.value),label:String(t.label),value:String(t.value),disabled:T(t)},null,8,["label","value","disabled"]))),128))]),_:1},16,["modelValue","collapse-tags","multiple","disabled","clearable","placeholder"])):o.value==="radio"?(n(),m(se,h({key:11,modelValue:f.value,"onUpdate:modelValue":l[14]||(l[14]=t=>f.value=t)},a.controlProps,{disabled:a.disabled||c.value}),{default:U(()=>[(n(!0),g(O,null,H(R.value,t=>(n(),m(de,{key:String(t.value),value:String(t.value),disabled:T(t)},{default:U(()=>[ee(E(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"])):(n(),m(me,h({key:12,modelValue:X.value,"onUpdate:modelValue":l[15]||(l[15]=t=>X.value=t)},a.controlProps,{disabled:a.disabled||c.value}),{default:U(()=>[(n(!0),g(O,null,H(R.value,t=>(n(),m(ce,{key:String(t.value),value:String(t.value),disabled:T(t)},{default:U(()=>[ee(E(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"]))])}}}),dl=Oe(Re,[["__scopeId","data-v-ff9cff09"]]);export{dl as default};
@@ -25,8 +25,42 @@ export interface IndicatorInputConfig {
25
25
  isContainMin?: string;
26
26
  isContainMax?: string;
27
27
  }
28
- /** Evaluate the arithmetic formula configured for an indicator without executing arbitrary code. */
29
- export declare const evaluateIndicatorFormula: (formula?: string, values?: Record<string, string | number | undefined>) => number | undefined;
28
+ type FormulaValue = number | string;
29
+ /**
30
+ * Evaluate the formula configured for an indicator without executing arbitrary code.
31
+ *
32
+ * 支持两类规则:
33
+ * - 数值运算:[CW0007]*1.13、([CW0009]-[CW0008])/[CW0009]*100
34
+ * - 文本拼接:[WL0001]+"mm * "+[WL0002]+"mm"
35
+ * 任一侧是文本(字符串字面量或非数字的指标值)时,“+”按字符串拼接,返回字符串。
36
+ */
37
+ export declare const evaluateIndicatorFormula: (formula?: string, values?: Record<string, string | number | undefined>) => FormulaValue | undefined;
38
+ /** 指标标签解析:逗号分隔、去空格、转小写、去掉 -/_/空格。 */
39
+ export declare const parseIndicatorTags: (indexTag?: string) => string[];
40
+ /** 是否为计算指标:配置了计算规则,或打上了计算标签。 */
41
+ export declare const isComputedIndicator: (config?: {
42
+ formula?: string;
43
+ indexTag?: string;
44
+ } | null) => boolean;
45
+ /** 是否只读指标:计算指标,或打上了只读标签。 */
46
+ export declare const isIndicatorReadonly: (config?: {
47
+ formula?: string;
48
+ indexTag?: string;
49
+ } | null) => boolean;
50
+ /** 计算指标结果格式化:数字按配置精度,文本(字符串拼接结果)原样返回。 */
51
+ export declare const formatIndicatorFormulaResult: (result: number | string | undefined, decimalPlaces?: number) => string | undefined;
52
+ /** 计算指标配置的最小结构。 */
53
+ export interface ComputedIndicatorConfig {
54
+ code?: string;
55
+ formula?: string;
56
+ indexTag?: string;
57
+ decimalPlaces?: number;
58
+ }
59
+ /**
60
+ * 计算指标统一求值:按配置顺序依次计算,算出的结果回填到工作副本,
61
+ * 后面的规则可以直接引用前面的计算结果。返回 code 到计算值的映射(仅含算得出结果的项)。
62
+ */
63
+ export declare const evaluateComputedIndicators: (configs?: ComputedIndicatorConfig[] | null, values?: Record<string, string | number | undefined> | null) => Record<string, string>;
30
64
  export type IndicatorControlType = 'input' | 'textarea' | 'rich-text' | 'year' | 'month' | 'date' | 'time' | 'number' | 'scale-select' | 'range-number' | 'select' | 'tree-select' | 'radio' | 'checkbox';
31
65
  export declare const INDICATOR_RANGE_TYPE: {
32
66
  readonly SINGLE_LINE_TEXT: "0101";
@@ -53,3 +87,4 @@ export declare const parseIndicatorRangeValue: (config: IndicatorInputConfig, va
53
87
  /** Serialize the two editing values as one rule-bearing field. */
54
88
  export declare const formatIndicatorRangeValue: (config: IndicatorInputConfig, parts: IndicatorRangeParts) => string;
55
89
  export declare const validateIndicatorValue: (config: IndicatorInputConfig, value?: string) => string | undefined;
90
+ export {};
@@ -1 +1 @@
1
- const v=/\s*(?:(\d+(?:\.\d*)?|\.\d+)|([A-Za-z_][A-Za-z0-9_]*)|([()+\-*/%]))/y,b=(o,a={})=>{const n=String(o??"").replace(/\[([A-Za-z_][A-Za-z0-9_]*)\]/g,"$1").replace(/[×✕]/g,"*").replace(/÷/g,"/").trim();if(!n)return;const e=[];let u=0;for(;u<n.length;){v.lastIndex=u;const t=v.exec(n);if(!t)return;u=v.lastIndex,t[1]?e.push({type:"number",value:t[1]}):t[2]?e.push({type:"identifier",value:t[2]}):e.push({type:"operator",value:t[3]})}let r=0;const i=()=>{const t=e[r];if(t){if(t.value==="("){r+=1;const s=E();return e[r]?.value!==")"?void 0:(r+=1,s)}if(t.type==="number"){r+=1;const s=Number(t.value);return Number.isFinite(s)?s:void 0}if(t.type==="identifier"){r+=1;const s=Number(a[t.value]);return Number.isFinite(s)?s:void 0}}},c=()=>{const t=e[r]?.value;if(t==="+"||t==="-"){r+=1;const s=c();return s==null?void 0:t==="-"?-s:s}return i()},m=()=>{let t=c();for(;t!=null&&["*","/","%"].includes(e[r]?.value||"");){const s=e[r++].value,l=c();if(l==null||s!=="*"&&!Number.isFinite(l))return;if(s==="*")t*=l;else if(s==="/"){if(l===0)return;t/=l}else t%=l;if(!Number.isFinite(t))return}return t};function E(){let t=m();for(;t!=null&&["+","-"].includes(e[r]?.value||"");){const s=e[r++].value,l=m();if(l==null||(t=s==="+"?t+l:t-l,!Number.isFinite(t)))return}return t}const f=E();return r===e.length&&f!=null&&Number.isFinite(f)?f:void 0},N={SINGLE_LINE_TEXT:"0101",MULTI_LINE_TEXT:"0102",RICH_TEXT:"0103",YEAR:"0201",MONTH:"0202",DATE:"0203",TIME:"0204",NUMBER:"0301",SCALE_NUMBER:"0302",RANGE_NUMBER:"0303",SINGLE_SELECT:"0401",MULTIPLE_SELECT:"0402",RADIO:"0403",CHECKBOX:"0404"},p="[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)",d=o=>{if(o==null||!o.trim())return;const a=Number(o);return Number.isFinite(a)?a:void 0},x=(o,a)=>{const n=String(a??"").trim();if(!n)return{};const e=o.rangeOfValue||"",u=p;if(e==="x±a"){const i=n.match(new RegExp(`^(${u})?±(${u})?$`));if(i)return{first:d(i[1]),second:d(i[2])}}else if(e.includes("a")&&e.includes("b")){const i=n.match(new RegExp(`^(${u})?[<≤]x[<≤](${u})?$`));if(i)return{first:d(i[1]),second:d(i[2])}}else{const i=n.match(new RegExp(`^x(?:>|≥|<|≤|=)(${u})$`));if(i)return{first:d(i[1])}}const r=n.split(",").map(i=>i.trim());return{first:d(r[0]),second:d(r[1])}},h=(o,a)=>{const n=o.rangeOfValue||"",e=a.first==null?"":String(a.first),u=a.second==null?"":String(a.second);if(!e&&!u)return"";if(n==="x±a")return`${e}±${u}`;if(n.includes("a")&&n.includes("b")){const i=n.startsWith("a≤")?"≤":"<",c=n.endsWith("≤b")?"≤":"<";return`${e}${i}x${c}${u}`}const r=n.match(/^x(>|≥|<|≤|=)a$/)?.[1]||"";return e?`x${r}${e}`:""},R=(o,a)=>{if(o.rangeYpe!==N.RANGE_NUMBER)return;const n=String(a??"");if(!n.trim())return;const e=o.rangeOfValue||"",u=e==="x±a"||e.includes("a")&&e.includes("b"),r=x(o,n);if(r.first==null)return e==="x=a"||e==="x±a"?"请输入固定值":e==="x<a"||e==="x≤a"?"请输入最大值":"请输入最小值";if(u&&r.second==null)return e==="x±a"?"请输入允差值":"请输入最大值";const i=r.first,c=r.second;if(!Number.isFinite(i)||u&&!Number.isFinite(c))return"必须填写数字";if(e==="x±a"&&c<0)return"允差值不能小于0";if(u&&e!=="x±a"&&i>=c)return"最小值必须小于最大值"};export{N as INDICATOR_RANGE_TYPE,b as evaluateIndicatorFormula,h as formatIndicatorRangeValue,x as parseIndicatorRangeValue,R as validateIndicatorValue};
1
+ const p=/\s*(?:"([^"]*)"|'([^']*)'|(\d+(?:\.\d*)?|\.\d+)|([A-Za-z_][A-Za-z0-9_]*)|([()+\-*/%]))/y,I=(r,s={})=>{const i=String(r??"").replace(/\[([A-Za-z_][A-Za-z0-9_]*)\]/g,"$1").replace(/[×✕]/g,"*").replace(/÷/g,"/").trim();if(!i)return;const t=[];let o=0;for(;o<i.length;){p.lastIndex=o;const e=p.exec(i);if(!e)return;o=p.lastIndex,e[1]!==void 0||e[2]!==void 0?t.push({type:"string",value:e[1]??e[2]}):e[3]?t.push({type:"number",value:e[3]}):e[4]?t.push({type:"identifier",value:e[4]}):t.push({type:"operator",value:e[5]})}let n=0;const u=e=>{if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?e:void 0;const a=Number(e);return Number.isFinite(a)?a:void 0},d=()=>{const e=t[n];if(e){if(e.type==="operator"&&e.value==="("){n+=1;const a=E();return t[n]?.value!==")"?void 0:(n+=1,a)}if(e.type==="string")return n+=1,e.value;if(e.type==="number"){n+=1;const a=Number(e.value);return Number.isFinite(a)?a:void 0}if(e.type==="identifier"){n+=1;const a=s[e.value];if(a==null)return;const c=Number(a);return Number.isFinite(c)?c:String(a)}}},v=()=>{const e=t[n]?.value;if(e==="+"||e==="-"){n+=1;const a=u(v());return a===void 0?void 0:e==="-"?-a:a}return d()},N=()=>{let e=v();for(;e!=null&&["*","/","%"].includes(t[n]?.value||"");){const a=t[n++].value,c=u(e),l=u(v());if(c===void 0||l===void 0)return;if(a==="*")e=c*l;else if(a==="/"){if(l===0)return;e=c/l}else e=c%l;if(typeof e=="number"&&!Number.isFinite(e))return}return e};function E(){let e=N();for(;e!=null&&["+","-"].includes(t[n]?.value||"");){const a=t[n++].value,c=N();if(c==null)return;if(a==="+")e=typeof e=="string"||typeof c=="string"?`${e}${c}`:e+c;else{const l=u(e),g=u(c);if(l===void 0||g===void 0)return;e=l-g}if(typeof e=="number"&&!Number.isFinite(e))return}return e}const m=E();if(!(n!==t.length||m==null))return typeof m=="number"?Number.isFinite(m)?m:void 0:m},x=["compute","computed","calculate","calculated","formula"],R=["readonly","view","display"],b=r=>String(r??"").split(",").map(s=>s.trim().toLowerCase().replace(/[-_\s]/g,"")).filter(Boolean),T=r=>!!r?.formula?.trim()||b(r?.indexTag).some(s=>x.includes(s)),$=r=>T(r)||b(r?.indexTag).some(s=>R.includes(s)),_=(r,s)=>{if(r==null)return;if(typeof r=="string")return r;const i=Number(s);return Number.isInteger(i)&&i>=0?r.toFixed(Math.min(i,100)):String(r)},F=(r,s)=>{const i={...s||{}},t={};for(const o of r||[]){if(!o?.code||!T(o)||!o.formula?.trim())continue;const n=_(I(o.formula,i),o.decimalPlaces);n===void 0||n===""||(t[o.code]=n,i[o.code]=n)}return t},h={SINGLE_LINE_TEXT:"0101",MULTI_LINE_TEXT:"0102",RICH_TEXT:"0103",YEAR:"0201",MONTH:"0202",DATE:"0203",TIME:"0204",NUMBER:"0301",SCALE_NUMBER:"0302",RANGE_NUMBER:"0303",SINGLE_SELECT:"0401",MULTIPLE_SELECT:"0402",RADIO:"0403",CHECKBOX:"0404"},y="[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)",f=r=>{if(r==null||!r.trim())return;const s=Number(r);return Number.isFinite(s)?s:void 0},A=(r,s)=>{const i=String(s??"").trim();if(!i)return{};const t=r.rangeOfValue||"",o=y;if(t==="x±a"){const u=i.match(new RegExp(`^(${o})?±(${o})?$`));if(u)return{first:f(u[1]),second:f(u[2])}}else if(t.includes("a")&&t.includes("b")){const u=i.match(new RegExp(`^(${o})?[<≤]x[<≤](${o})?$`));if(u)return{first:f(u[1]),second:f(u[2])}}else{const u=i.match(new RegExp(`^x(?:>|≥|<|≤|=)(${o})$`));if(u)return{first:f(u[1])}}const n=i.split(",").map(u=>u.trim());return{first:f(n[0]),second:f(n[1])}},S=(r,s)=>{const i=r.rangeOfValue||"",t=s.first==null?"":String(s.first),o=s.second==null?"":String(s.second);if(!t&&!o)return"";if(i==="x±a")return`${t}±${o}`;if(i.includes("a")&&i.includes("b")){const u=i.startsWith("a≤")?"≤":"<",d=i.endsWith("≤b")?"≤":"<";return`${t}${u}x${d}${o}`}const n=i.match(/^x(>|≥|<|≤|=)a$/)?.[1]||"";return t?`x${n}${t}`:""},C=(r,s)=>{if(r.rangeYpe!==h.RANGE_NUMBER)return;const i=String(s??"");if(!i.trim())return;const t=r.rangeOfValue||"",o=t==="x±a"||t.includes("a")&&t.includes("b"),n=A(r,i);if(n.first==null)return t==="x=a"||t==="x±a"?"请输入固定值":t==="x<a"||t==="x≤a"?"请输入最大值":"请输入最小值";if(o&&n.second==null)return t==="x±a"?"请输入允差值":"请输入最大值";const u=n.first,d=n.second;if(!Number.isFinite(u)||o&&!Number.isFinite(d))return"必须填写数字";if(t==="x±a"&&d<0)return"允差值不能小于0";if(o&&t!=="x±a"&&u>=d)return"最小值必须小于最大值"};export{h as INDICATOR_RANGE_TYPE,F as evaluateComputedIndicators,I as evaluateIndicatorFormula,_ as formatIndicatorFormulaResult,S as formatIndicatorRangeValue,T as isComputedIndicator,$ as isIndicatorReadonly,A as parseIndicatorRangeValue,b as parseIndicatorTags,C as validateIndicatorValue};
@@ -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};
@@ -6,19 +6,18 @@ type __VLS_Props = {
6
6
  readonly?: boolean;
7
7
  contentComponent?: Component;
8
8
  contentProps?: Record<string, unknown>;
9
- contentTitle?: string;
10
9
  renderDialog?: (...args: any[]) => any;
11
10
  showFooter?: boolean;
12
11
  };
13
12
  type __VLS_PublicProps = __VLS_Props & {
14
13
  'loading'?: boolean;
15
14
  };
16
- declare var __VLS_13: {
15
+ declare var __VLS_9: {
17
16
  task: IWfTaskVo | undefined;
18
17
  process: IWfProcessInstVo | undefined;
19
18
  };
20
19
  type __VLS_Slots = {} & {
21
- content?: (props: typeof __VLS_13) => any;
20
+ content?: (props: typeof __VLS_9) => any;
22
21
  };
23
22
  declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
24
23
  resetQuery: () => Promise<void>;
@@ -37,7 +36,6 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
37
36
  renderDialog: (...args: any[]) => any;
38
37
  contentComponent: Component;
39
38
  contentProps: Record<string, unknown>;
40
- contentTitle: string;
41
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
40
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
43
41
  export default _default;