adtec-hnyzfc-core-package 1.7.0 → 1.7.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 (41) hide show
  1. package/dist/chunks/ElDescForm.vue_vue_type_style_index_0_lang-CK98jL2N.js +3 -0
  2. package/dist/chunks/ElTextarea-CRk-I9iq.js +1 -0
  3. package/dist/src/api/DocumentApi.d.ts +1 -0
  4. package/dist/src/api/DocumentApi.js +1 -1
  5. package/dist/src/components/ElDescForm/ElDescForm.vue.d.ts +6 -6
  6. package/dist/src/components/ElDescForm/ElDescForm.vue.js +1 -1
  7. package/dist/src/components/ElIndicatorInput/ElIndicatorInput.vue.d.ts +1 -1
  8. package/dist/src/components/ElIndicatorInput/ElIndicatorInput.vue.js +1 -1
  9. package/dist/src/components/ElNumericInput/ElNumericInput.vue.d.ts +2 -2
  10. package/dist/src/components/ElTextarea/ElTextarea.vue.d.ts +51 -0
  11. package/dist/src/components/ElTextarea/ElTextarea.vue.js +1 -0
  12. package/dist/src/components/ElTextarea/ElTextareaExpandDialog.vue.d.ts +30 -0
  13. package/dist/src/components/ElTextarea/ElTextareaExpandDialog.vue.js +1 -0
  14. package/dist/src/components/VxeExportDialog/index.js +1 -1
  15. package/dist/src/components/business/userSelectContent.vue.d.ts +1 -1
  16. package/dist/src/components/upload/AttachmentPreview.vue.d.ts +1 -1
  17. package/dist/src/components/upload/CustomElUpload.vue.d.ts +6 -0
  18. package/dist/src/components/upload/CustomElUpload.vue.js +1 -1
  19. package/dist/src/components/upload/FileViewComponents.vue.js +1 -1
  20. package/dist/src/components/upload/OfficePreview.vue.d.ts +1 -1
  21. package/dist/src/components/upload/OfficePreviewHeaderBar.vue.js +2 -2
  22. package/dist/src/components/workflow/TaskOperation.vue.js +1 -1
  23. package/dist/src/components/workflow/WorkflowTodoShell.vue.d.ts +1 -1
  24. package/dist/src/components/workflow/WorkflowTodoShell.vue.js +4 -4
  25. package/dist/src/components/workflow/components/CheckDialog.vue.js +1 -1
  26. package/dist/src/hooks/createDialogHooks.d.ts +18 -0
  27. package/dist/src/hooks/createDialogHooks.js +2 -2
  28. package/dist/src/hooks/useFileOpen.d.ts +1 -1
  29. package/dist/src/hooks/useFileOpen.js +1 -1
  30. package/dist/src/hooks/useOperationAuth.js +1 -1
  31. package/dist/src/mixin/globalMixin.js +1 -1
  32. package/dist/src/packages/index.d.ts +75 -12
  33. package/dist/src/packages/index.js +1 -1
  34. package/dist/src/plugins/plugins.js +1 -1
  35. package/dist/src/plugins/renderDialog.js +1 -1
  36. package/dist/src/utils/fileDownload.d.ts +2 -0
  37. package/dist/src/utils/fileDownload.js +1 -1
  38. package/dist/src/utils/modules.js +2 -2
  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-BkJW9BQw.js +0 -3
@@ -0,0 +1,3 @@
1
+ import{defineComponent as pe,ref as de,reactive as ie,onMounted as me,onUpdated as ye,onBeforeUnmount as ve,computed as C,resolveComponent as p,openBlock as c,createBlock as d,withKeys as he,withCtx as i,createCommentVNode as k,createVNode as F,createElementBlock as g,Fragment as U,renderList as A,normalizeClass as Y,createElementVNode as q,toDisplayString as M,mergeProps as y,createTextVNode as D,renderSlot as z,nextTick as I}from"vue";import{DATE_FORMAT as fe,formatDateTime as be}from"../src/utils/dateTime.js";import{E as _e}from"./ElTextarea-CRk-I9iq.js";const Ve=["onMouseenter"],ge={key:11,class:"el-desc-form__readonly-slot"},$="—",Se=pe({__name:"ElDescForm",props:{model:{},fields:{},rules:{default:()=>({})},column:{default:4},border:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},title:{},titleLevel:{default:"1"},scrollToError:{type:Boolean,default:!0},scrollIntoViewOptions:{type:Boolean,default:()=>({behavior:"smooth",block:"center"})}},setup(a,{expose:K}){const h=a,V=de(),x=new Map,w=new Map,R=ie({}),S=e=>{const o=x.get(e),l=!!o&&o.scrollWidth>o.clientWidth;R[e]!==l&&(R[e]=l)},L=()=>{I(()=>{x.forEach((e,o)=>S(o))})},P=(e,o)=>{const l=o;if(x.get(e)===l){l&&S(e);return}if(w.get(e)?.disconnect(),w.delete(e),delete R[e],!l){x.delete(e);return}if(x.set(e,l),typeof ResizeObserver<"u"){const n=new ResizeObserver(()=>S(e));n.observe(l),w.set(e,n)}I(()=>S(e))};me(L),ye(L),ve(()=>{w.forEach(e=>e.disconnect()),w.clear(),x.clear()});const f=C(()=>Math.min(4,Math.max(1,h.column||4))),H=e=>{const o=V.value?.$el;if(!o)return;const l=Array.from(o.querySelectorAll("input, textarea")).filter(m=>!m.disabled&&m.type!=="checkbox"&&m.type!=="radio"&&m.type!=="hidden"&&(m.offsetParent!==null||m.getClientRects().length>0));if(!l.length)return;const s=document.activeElement;if(!s||!l.includes(s))return;const n=l.indexOf(s),u=e.shiftKey?-1:1,b=(n+u+l.length)%l.length;e.preventDefault();const _=l[b];_.focus();try{const m=_.value.length;_.setSelectionRange(m,m)}catch{}},N=C(()=>{const e={...h.rules};for(const o of h.fields)o.rules?.length&&(e[o.prop]=[...e[o.prop]||[],...o.rules]);return e}),W=C(()=>{const e=[];let o=0,l=0;const s=n=>{for(let u=0;u<n;u+=1)e.push({prop:`__descFormFiller${l++}`,label:"",type:"slot",span:1})};for(const n of h.fields){if(!(typeof n.show=="function"?n.show(h.model):n.show!==!1))continue;const b=Q(n),_=Math.min(Math.max(1,b.span??1),f.value);_>f.value-o&&(s(f.value-o),o=0),e.push(b),o+=_,o>=f.value&&(o=0)}return o>0&&s(f.value-o),e}),E=e=>{const o=e.props||{};return h.readonly===!0||e.readonly===!0||o.readonly===!0},B=(e,o)=>e===o||String(e)===String(o),T=(e,o)=>{if(!e?.length)return;const l=e.find(s=>B(s.value,o));return l===void 0?void 0:String(l.label)},O=(e,o)=>{if(e?.length)for(const l of e){if(B(l.value,o))return String(l.label??l.name??"");if(l.children?.length){const s=O(l.children,o);if(s)return s}}},G=(e,o)=>{let l=e||[];const s=[];for(const n of o){const u=l.find(b=>B(b.value,n));if(!u)break;s.push(String(u.label??u.name??"")),l=u.children||[]}return s.join(" / ")},v=e=>e.trim()||$,j=e=>{const o=h.model?.[e.prop];if(o==null||typeof o=="string"&&o.trim()===""||Array.isArray(o)&&o.length===0)return $;const l=e.props||{},s=e.options;if(e.type==="select")return Array.isArray(o)?v(o.map(n=>T(s,n)??String(n)).filter(Boolean).join("、")):v(T(s,o)??String(o));if(e.type==="radio")return v(T(s,o)??String(o));if(e.type==="checkbox"){const n=Array.isArray(o)?o:[o];return v(n.map(u=>T(s,u)??String(u)).filter(Boolean).join("、"))}if(e.type==="tree-select"){const n=s||l.data;return Array.isArray(o)?v(o.map(u=>O(n,u)??String(u)).filter(Boolean).join("、")):v(O(n,o)??String(o))}if(e.type==="cascader"){const n=G(s,Array.isArray(o)?o:[o]);return v(n||(Array.isArray(o)?o.join(" / "):String(o)))}if(e.type==="switch")return o===!0||o===1||o==="1"?l["active-text"]||"是":l["inactive-text"]||"否";if(e.type==="date"){const n=String(l.type||"date"),u=String(l.valueFormat||l.format||"")||(n==="year"?"YYYY":n==="month"?"YYYY-MM":n==="time"?"HH:mm:ss":fe);return v(be(String(o),{format:u})||String(o))}return v(String(o))},J=e=>!!N.value[e.prop]?.some(l=>l.required),Q=e=>{const o=l=>typeof l=="function"?l(h.model):l;return{...e,span:e.type==="textarea"?f.value:Math.min(Math.max(1,e.span??1),f.value),label:o(e.label),tip:e.tip?o(e.tip):void 0,options:e.options?o(e.options):void 0,placeholder:e.placeholder?o(e.placeholder):void 0,props:e.props?o(e.props):void 0}};return K({validate:e=>V.value?.validate(e),validateField:(e,o)=>V.value?.validateField(e,o),scrollToField:e=>V.value?.scrollToField(e),resetFields:()=>V.value?.resetFields(),clearValidate:()=>V.value?.clearValidate()}),(e,o)=>{const l=p("el-title"),s=p("el-icons"),n=p("el-tooltip"),u=p("el-input"),b=p("el-numeric-input"),_=p("el-option"),m=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:V,class:"el-desc-form",model:a.model,rules:N.value,"validate-on-rule-change":!1,"scroll-to-error":a.scrollToError,"scroll-into-view-options":a.scrollIntoViewOptions,onKeydown:he(H,["tab"])},{default:i(()=>[k(` 内容块标题:弹窗/抽屉内表单区块用默认的二级标题(level 1);
2
+ 页面内的区块标题传 title-level="0" 用一级标题(16px)。
3
+ 两种场景都统一用 el-desc-form title 声明式渲染,避免各页面手写标题 `),a.title?(c(),d(l,{key:0,level:a.titleLevel,title:a.title,style:{"border-bottom":"var(--border)","margin-bottom":"8px"}},null,8,["level","title"])):k("v-if",!0),F(ce,{direction:"vertical",column:f.value,border:a.border},{default:i(()=>[(c(!0),g(U,null,A(W.value,t=>(c(),d(se,{key:t.prop,label:t.label||void 0,span:t.span},{label:i(()=>[t.label?(c(),g("span",{key:0,class:Y(["el-desc-form__label",{"el-desc-form__label--required":J(t)}])},[D(M(t.label)+" ",1),t.tip?(c(),d(n,{key:0,content:t.tip,placement:"top","popper-class":"el-desc-form-tip-popper"},{default:i(()=>[F(s,{"model-value":"adtec-info",class:"el-desc-form__label-tip"})]),_:1},8,["content"])):k("v-if",!0)],2)):k("v-if",!0)]),default:i(()=>[F(ae,{prop:E(t)?void 0:t.prop,class:Y({"el-desc-form__form-item--multiline":t.type==="textarea"}),style:{"margin-bottom":"0"},"hide-required-asterisk":""},{default:i(()=>[k(" 只读模式:统一处理文本溢出,只有内容超出单元格宽度时才打开 tooltip "),E(t)&&t.type&&t.type!=="slot"?(c(),d(n,{key:0,content:j(t),disabled:!R[t.prop],effect:"light",placement:"top","popper-class":"el-desc-form-readonly-tip-popper"},{default:i(()=>[q("span",{class:Y(["el-desc-form__readonly-text",{"el-desc-form__readonly-text--multiline":t.type==="textarea"}]),onMouseenter:r=>S(t.prop)},[q("span",{ref_for:!0,ref:r=>P(t.prop,r),class:"el-desc-form__readonly-text-content"},M(j(t)),513)],42,Ve)]),_:2},1032,["content","disabled"])):t.type==="input"?(c(),d(u,y({key:1,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props,{placeholder:t.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):t.type==="textarea"?(c(),g(U,{key:2},[k(" 文本域统一走 ElTextarea:保留多行文本能力,右下角字数统计后提供放大编辑入口 "),F(_e,y({modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r,autosize:{minRows:2,maxRows:4}},{ref_for:!0},t.props,{placeholder:t.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])],2112)):t.type==="number"?(c(),d(b,y({key:3,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props),null,16,["modelValue","onUpdate:modelValue"])):t.type==="select"?(c(),d(m,y({key:4,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props,{placeholder:t.placeholder,clearable:""}),{default:i(()=>[(c(!0),g(U,null,A(t.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"])):t.type==="date"?(c(),d(X,y({key:5,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props,{type:t.props?.type||"date",placeholder:t.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","type","placeholder"])):t.type==="switch"?(c(),d(Z,y({key:6,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props),null,16,["modelValue","onUpdate:modelValue"])):t.type==="radio"?(c(),d(oe,y({key:7,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props),{default:i(()=>[(c(!0),g(U,null,A(t.options,r=>(c(),d(ee,{key:r.value,value:r.value},{default:i(()=>[D(M(r.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):t.type==="checkbox"?(c(),d(le,y({key:8,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props),{default:i(()=>[(c(!0),g(U,null,A(t.options,r=>(c(),d(te,{key:r.value,value:r.value},{default:i(()=>[D(M(r.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):t.type==="tree-select"?(c(),d(re,y({key:9,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r},{ref_for:!0},t.props,{placeholder:t.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):t.type==="cascader"?(c(),d(ne,y({key:10,modelValue:a.model[t.prop],"onUpdate:modelValue":r=>a.model[t.prop]=r,options:t.options},{ref_for:!0},t.props,{style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","options"])):E(t)?(c(),g("div",ge,[z(e.$slots,t.slot||t.prop,{field:t,model:a.model})])):z(e.$slots,t.slot||t.prop,{field:t,model:a.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{Se as _};
@@ -0,0 +1 @@
1
+ import{defineComponent as z,useModel as C,ref as B,resolveDirective as N,withDirectives as R,openBlock as r,createElementBlock as p,createCommentVNode as s,createVNode as h,mergeModels as g,nextTick as S,useAttrs as A,computed as o,resolveComponent as E,normalizeStyle as I,unref as V,normalizeClass as Q,mergeProps as U,toDisplayString as T,createBlock as $,withCtx as k,createElementVNode as j,withModifiers as F}from"vue";import{FullScreen as O}from"@element-plus/icons-vue";import{hasDialogHooksHost as P,openCoreDialog as q}from"../src/hooks/createDialogHooks.js";import{_}from"./_plugin-vue_export-helper-DlAUqK2U.js";const G={class:"el-textarea-expand dialog-content-fill"},J=z({name:"ElTextareaExpandDialog",__name:"ElTextareaExpandDialog",props:g({text:{default:""},maxlength:{},showWordLimit:{type:Boolean,default:!1},placeholder:{default:""},readonly:{type:Boolean,default:!1}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:g(["confirm"],["update:loading"]),setup(e,{expose:v,emit:y}){const n=e,w=y,t=C(e,"loading"),d=B(n.text??""),l=B();return v({confirm:async()=>{w("confirm",d.value)},resetQuery:async()=>{await S(),l.value?.focus?.()}}),(c,m)=>{const i=N("loading");return R((r(),p("div",G,[s(" 复用 ElTextarea:字数统计位置与内嵌文本域一致,弹窗内不再需要放大入口 "),h(te,{ref_key:"inputRef",ref:l,modelValue:d.value,"onUpdate:modelValue":m[0]||(m[0]=f=>d.value=f),expandable:!1,resize:"none",maxlength:e.maxlength,"show-word-limit":e.showWordLimit,placeholder:e.placeholder,readonly:e.readonly},null,8,["modelValue","maxlength","show-word-limit","placeholder","readonly"])])),[[i,t.value]])}}}),K=_(J,[["__scopeId","data-v-52dcd7e1"]]),X={key:0,class:"el-textarea-control__footer"},Y={key:0,class:"el-textarea-control__count"},Z=["aria-label"],ee=z({name:"ElTextarea",inheritAttrs:!1,__name:"ElTextarea",props:g({rows:{default:3},autosize:{type:[Boolean,Object],default:void 0},maxlength:{default:void 0},showWordLimit:{type:Boolean,default:!1},placeholder:{default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resize:{default:"vertical"},expandable:{type:Boolean,default:!0},expandTitle:{default:"放大编辑"},expandWidth:{default:"720px"},expandHeight:{default:"520px"}},{modelValue:{default:""},modelModifiers:{}}),emits:g(["change"],["update:modelValue"]),setup(e,{expose:v,emit:y}){const n=A(),w=o(()=>{const a={...n};return delete a.class,delete a.style,a}),t=e,d=y,l=C(e,"modelValue"),u=B(),b=o(()=>String(l.value??"").length),c=o(()=>t.showWordLimit&&!!t.maxlength&&!t.disabled&&!t.readonly),m=o(()=>c.value&&b.value>Number(t.maxlength)),i=o(()=>t.expandable&&!t.disabled&&P()),f=o(()=>c.value||i.value),D=()=>{i.value&&q(K,{text:l.value,maxlength:t.maxlength,showWordLimit:t.showWordLimit,placeholder:t.placeholder,readonly:t.readonly,onConfirm:a=>{l.value=a,d("change",a)}},{title:t.expandTitle,width:t.expandWidth,style:{height:t.expandHeight},alignCenter:!0},{type:"dialog",scroll:!1})};return v({focus:()=>u.value?.focus?.(),blur:()=>u.value?.blur?.()}),(a,x)=>{const W=E("el-input"),L=E("el-icon"),M=E("el-tooltip");return r(),p("div",{class:Q(["el-textarea-control",[V(n).class,{"el-textarea-control--footer":f.value,"is-exceed":m.value}]]),style:I(V(n).style)},[h(W,U({ref_key:"inputRef",ref:u,modelValue:l.value,"onUpdate:modelValue":x[0]||(x[0]=H=>l.value=H),type:"textarea"},w.value,{rows:e.rows,autosize:e.autosize,maxlength:e.maxlength,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,resize:e.resize}),null,16,["modelValue","rows","autosize","maxlength","placeholder","disabled","readonly","resize"]),s(" 右下角:字数统计 + 放大编辑入口(统计沿用 el-input 的判定口径,按钮紧跟统计之后) "),f.value?(r(),p("div",X,[c.value?(r(),p("span",Y,T(b.value)+"/"+T(e.maxlength),1)):s("v-if",!0),i.value?(r(),$(M,{key:1,content:e.expandTitle,placement:"top",effect:"light"},{default:k(()=>[j("button",{type:"button",class:"el-textarea-control__expand","aria-label":e.expandTitle,onMousedown:x[1]||(x[1]=F(()=>{},["prevent"])),onClick:D},[h(L,null,{default:k(()=>[h(V(O))]),_:1})],40,Z)]),_:1},8,["content"])):s("v-if",!0)])):s("v-if",!0)],6)}}}),te=_(ee,[["__scopeId","data-v-ac56c29e"]]);export{te as E,K as a};
@@ -37,6 +37,7 @@ declare const _default: {
37
37
  downloadFile(id: string, action?: string): Promise<{
38
38
  blob: Blob;
39
39
  fileName?: string;
40
+ contentType?: string;
40
41
  }>;
41
42
  /**
42
43
  * 当前用户对该附件可用的下载动作:raw(原件,无水印)/ watermark(下载,带水印)/ pdf(导出 PDF)。
@@ -1 +1 @@
1
- import s from"../utils/request.js";import r from"../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"vue";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";const o="/api/doc/",n=e=>{if(!e)return;const t=/filename\*=(?:UTF-8|utf-8)''([^;]+)/i.exec(e);if(t?.[1])try{return decodeURIComponent(t[1].trim())}catch{}return/filename="?([^";]+)"?/i.exec(e)?.[1]?.trim()},A={getUpLoadFilesVoById(e){return s.get(o+"getUpLoadFilesVoById/"+e)},getFileAccessAddress(e){return s.get(o+"getFileAccessAddress",{id:e})},async createRichTextImageUrl(e){const{url:t}=await this.createPreviewSession(e),i=/\/preview\/fileView\/([^/]+)\//.exec(t||"");if(!i?.[1])throw new Error("预览会话创建失败");return`${o}preview/fileView/${encodeURIComponent(i[1])}/image`},getUpLoadFilesByBussinessIds(e,t){const i=t===void 0?o+"getUpLoadFilesByBussinessIds":o+"getUpLoadFilesByBussinessIds/"+t;return s.post(i,e)},delSysUploadFile(e){return s.get(o+"delSysUploadFile/"+e)},getBusinessDocuments(e,t){return s.get(o+"getBusinessDocuments/"+e+"/"+t)},fileStatusConfirmation(e){return s.post(o+"fileStatusConfirmation",e)},delSysUploadFiles(e){return s.post(o+"delSysUploadFiles",e)},updateFilesCreateBy(e,t){return s.post(o+"updateFilesCreateBy",{ids:e,createBy:t})},createPreviewSession(e){return s.postWithOptions(o+"preview/session/"+e,void 0,{skipGlobalLoading:!0})},async downloadFile(e,t){const i=await r({url:o+"preview/download/"+e+(t?"?mode="+t:""),method:"get",responseType:"blob"});return{blob:i.data,fileName:n(i.headers?.["content-disposition"])}},async getDownloadActions(e){return(await s.get(o+"preview/downloadActions/"+e))?.actions??[]}};export{A as default};
1
+ import s from"../utils/request.js";import i from"../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"vue";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";const o="/api/doc/",n=e=>{if(!e)return;const t=/filename\*=(?:UTF-8|utf-8)''([^;]+)/i.exec(e);if(t?.[1])try{return decodeURIComponent(t[1].trim())}catch{}return/filename="?([^";]+)"?/i.exec(e)?.[1]?.trim()},A={getUpLoadFilesVoById(e){return s.get(o+"getUpLoadFilesVoById/"+e)},getFileAccessAddress(e){return s.get(o+"getFileAccessAddress",{id:e})},async createRichTextImageUrl(e){const{url:t}=await this.createPreviewSession(e),r=/\/preview\/fileView\/([^/]+)\//.exec(t||"");if(!r?.[1])throw new Error("预览会话创建失败");return`${o}preview/fileView/${encodeURIComponent(r[1])}/image`},getUpLoadFilesByBussinessIds(e,t){const r=t===void 0?o+"getUpLoadFilesByBussinessIds":o+"getUpLoadFilesByBussinessIds/"+t;return s.post(r,e)},delSysUploadFile(e){return s.get(o+"delSysUploadFile/"+e)},getBusinessDocuments(e,t){return s.get(o+"getBusinessDocuments/"+e+"/"+t)},fileStatusConfirmation(e){return s.post(o+"fileStatusConfirmation",e)},delSysUploadFiles(e){return s.post(o+"delSysUploadFiles",e)},updateFilesCreateBy(e,t){return s.post(o+"updateFilesCreateBy",{ids:e,createBy:t})},createPreviewSession(e){return s.postWithOptions(o+"preview/session/"+e,void 0,{skipGlobalLoading:!0})},async downloadFile(e,t){const r=await i({url:o+"preview/download/"+e+(t?"?mode="+t:""),method:"get",responseType:"blob"});return{blob:r.data,fileName:n(r.headers?.["content-disposition"]),contentType:r.headers?.["content-type"]}},async getDownloadActions(e){return(await s.get(o+"preview/downloadActions/"+e))?.actions??[]}};export{A as default};
@@ -37,17 +37,17 @@ type __VLS_Props = {
37
37
  */
38
38
  scrollIntoViewOptions?: boolean | ScrollIntoViewOptions;
39
39
  };
40
- declare var __VLS_92: string, __VLS_93: {
40
+ declare var __VLS_91: string, __VLS_92: {
41
41
  field: ResolvedDescFormField;
42
42
  model: Record<string, any>;
43
- }, __VLS_96: string, __VLS_97: {
43
+ }, __VLS_95: string, __VLS_96: {
44
44
  field: ResolvedDescFormField;
45
45
  model: Record<string, any>;
46
46
  };
47
47
  type __VLS_Slots = {} & {
48
- [K in NonNullable<typeof __VLS_92>]?: (props: typeof __VLS_93) => any;
48
+ [K in NonNullable<typeof __VLS_91>]?: (props: typeof __VLS_92) => any;
49
49
  } & {
50
- [K in NonNullable<typeof __VLS_96>]?: (props: typeof __VLS_97) => any;
50
+ [K in NonNullable<typeof __VLS_95>]?: (props: typeof __VLS_96) => any;
51
51
  };
52
52
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
53
53
  validate: (callback?: (isValid: boolean, invalidFields?: unknown) => void) => any;
@@ -59,11 +59,11 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
59
59
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
60
60
  border: boolean;
61
61
  rules: Record<string, FormItemRule[]>;
62
+ scrollToError: boolean;
63
+ scrollIntoViewOptions: boolean | ScrollIntoViewOptions;
62
64
  readonly: boolean;
63
65
  column: number;
64
66
  titleLevel: string;
65
- scrollToError: boolean;
66
- scrollIntoViewOptions: boolean | ScrollIntoViewOptions;
67
67
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
68
68
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
69
69
  export default _default;
@@ -1 +1 @@
1
- import{_ as o}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BkJW9BQw.js";import"vue";import"../../utils/dateTime.js";export{o as default};
1
+ import{_ as o}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-CK98jL2N.js";import"vue";import"../../utils/dateTime.js";import"../../../chunks/ElTextarea-CRk-I9iq.js";import"@element-plus/icons-vue";import"../../hooks/createDialogHooks.js";import"element-plus";import"../../stores/storeConfig.js";import"pinia";import"pinia-plugin-store";import"crypto-js/enc-utf8";import"crypto-js/enc-base64";import"../../config/ElementPlusConfig.js";import"../../utils/patchWujiePopperCoordinates.js";import"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../vxeReplace/index.js";import"../tooltip/index.js";import"../tooltip/src/tooltip.js";import"../../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"element-plus/es/locale/lang/zh-cn";import"../../hooks/useListenerHooks.js";import"../../stores/permissionStore.js";import"../../utils/frontendBus.js";import"../../utils/behaviorTrack.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/behaviorContext.js";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/operationAuth.js";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";import"../icon/ElIcons.vue.js";import"@vueuse/core";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../ElDialogBody/ElDialogBody.vue.js";import"../../utils/globalLoading.js";import"../../hooks/useBehaviorAction.js";export{o as default};
@@ -34,9 +34,9 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
34
34
  businessId: string;
35
35
  config: IndicatorInputConfig;
36
36
  disabled: boolean;
37
+ clearable: boolean;
37
38
  placeholder: string;
38
39
  readonly: boolean;
39
- clearable: boolean;
40
40
  maxlength: number;
41
41
  showWordLimit: boolean;
42
42
  controlProps: Record<string, unknown>;
@@ -1 +1 @@
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 D,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,formatIndicatorDisplayValue as Ne,INDICATOR_RANGE_TYPE as d,parseIndicatorRangeValue as ke,validateIndicatorValue as Ee,formatIndicatorRangeValue as Oe}from"./interface.js";import{_ as Ie}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 Se={class:"el-indicator-input"},Me={key:0,class:"el-indicator-input__readonly-value"},Ue={key:8,class:"indicator-range-field"},Be={class:"indicator-range-operator"},we={class:"indicator-range-operator"},Ce={class:"indicator-range-prefix"},Re={key:0,class:"indicator-range-error"},Te=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)),H=u(()=>r.readonly||xe(r.config)),ae=u(()=>Pe(r.config)),c=u(()=>H.value),te=u(()=>Ne(r.config,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(()=>ke(r.config,s.value)),W=u(()=>L.value.first),z=u(()=>L.value.second),x=fe(!1),A=u(()=>Ee(r.config,s.value)),K=(e,l)=>{const i={...L.value};e===0?i.first=l:i.second=l,s.value=Oe(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:H,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",Se,[H.value?(n(),g("span",Me,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,D(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",Ue,[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",Be,E(v.value.leftOperator),1),l[17]||(l[17]=B("span",{class:"indicator-range-variable"},"x",-1)),B("span",we,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",Ce,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",Re,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,D(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,D(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,D(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"]))])}}}),sl=Ie(Te,[["__scopeId","data-v-aec6f3ab"]]);export{sl as default};
1
+ import{defineComponent as fe,useModel as _,computed as n,ref as pe,watch as be,resolveComponent as g,openBlock as i,createElementBlock as p,toDisplayString as O,createBlock as v,Fragment as N,createCommentVNode as ee,createVNode as U,mergeProps as h,unref as ge,withCtx as B,renderList as D,createElementVNode as T,normalizeClass as he,createTextVNode as le,mergeModels as Ve}from"vue";import xe from"../RichTextEditor/RichTextEditor.vue.js";import{E as ye}from"../../../chunks/ElTextarea-CRk-I9iq.js";import{isIndicatorReadonly as Pe,isComputedIndicator as Ee,formatIndicatorDisplayValue as Ne,INDICATOR_RANGE_TYPE as u,parseIndicatorRangeValue as ke,validateIndicatorValue as Oe,formatIndicatorRangeValue as Ie}from"./interface.js";import{_ as Se}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";import"@element-plus/icons-vue";import"../../hooks/createDialogHooks.js";import"../../stores/storeConfig.js";import"pinia";import"pinia-plugin-store";import"../../config/ElementPlusConfig.js";import"../../utils/patchWujiePopperCoordinates.js";import"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../vxeReplace/index.js";import"../tooltip/index.js";import"../tooltip/src/tooltip.js";import"../../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"element-plus/es/locale/lang/zh-cn";import"../../hooks/useListenerHooks.js";import"../../stores/permissionStore.js";import"../../utils/operationAuth.js";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";import"../icon/ElIcons.vue.js";import"@vueuse/core";import"../ElDialogBody/ElDialogBody.vue.js";import"../../hooks/useBehaviorAction.js";const Me={class:"el-indicator-input"},Ue={key:0,class:"el-indicator-input__readonly-value"},Be={key:8,class:"indicator-range-field"},Te={class:"indicator-range-operator"},we={class:"indicator-range-operator"},Ce={class:"indicator-range-prefix"},Re={key:0,class:"indicator-range-error"},Le=fe({__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:ae}){const r=a,s=_(a,"modelValue"),b=_(a,"text"),j=n(()=>r.options.some(e=>Array.isArray(e.children)&&e.children.length>0)),H=n(()=>r.readonly||Pe(r.config)),te=n(()=>Ee(r.config)),c=n(()=>H.value),re=n(()=>Ne(r.config,b.value||s.value)||"—"),o=n(()=>{const e=r.config.rangeYpe;return e===u.MULTI_LINE_TEXT?"textarea":e===u.RICH_TEXT?"rich-text":e===u.YEAR?"year":e===u.MONTH?"month":e===u.DATE?"date":e===u.TIME?"time":e===u.NUMBER||e===u.SCALE_NUMBER||e===u.RANGE_NUMBER?e===u.SCALE_NUMBER&&Q.value.length>0?"scale-select":e===u.RANGE_NUMBER?"range-number":"number":e===u.RADIO?"radio":e===u.CHECKBOX?"checkbox":e===u.SINGLE_SELECT||e===u.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=n(()=>r.config.rangeYpe===u.MULTIPLE_SELECT||r.config.rangeYpe===u.CHECKBOX),C=n(()=>{const e=[],l=d=>{d.forEach(x=>{e.push(x),x.children?.length&&l(x.children)})};return l(r.options),e}),R=e=>e.disabled===!0||e.isValid==="0",oe=e=>C.value.find(l=>String(l.value)===e)?.label,m=n(()=>{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=n(()=>ke(r.config,s.value)),W=n(()=>L.value.first),z=n(()=>L.value.second),y=pe(!1),A=n(()=>Oe(r.config,s.value)),K=(e,l)=>{const d={...L.value};e===0?d.first=l:d.second=l,s.value=Ie(r.config,d),k()},G=e=>K(0,e),q=e=>K(1,e),ie=()=>(y.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"}`:m.value.double?b.value=`${e.first??"a"} ${m.value.leftOperator} x ${m.value.rightOperator} ${e.second??"b"}`:b.value=`x ${m.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=n({get:()=>s.value,set:e=>{s.value=e==null?"":String(e),k()}}),X=n({get:()=>s.value.split(",").filter(Boolean),set:e=>{s.value=e.join(","),k()}}),S=n({get:()=>I.value?X.value:s.value,set:e=>{s.value=Array.isArray(e)?e.join(","):String(e??""),k()}}),ne=n(()=>{if(!s.value.trim())return;const e=Number(s.value);return Number.isFinite(e)?e:void 0}),P=n(()=>{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=n(()=>{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 d=P.value;return e!=null&&r.config.isContainMin==="0"&&d&&(e=J(Number(e)+d)),l!=null&&r.config.isContainMax==="0"&&d&&(l=J(Number(l)-d)),{min:e,max:l}}),Q=n(()=>{if(r.config.rangeYpe!==u.SCALE_NUMBER)return[];const e=Y.value.min,l=Y.value.max,d=P.value;if(e==null||l==null||d==null||!Number.isFinite(e)||!Number.isFinite(l)||!Number.isFinite(d)||d<=0||l<e)return[];const x=Math.floor((l-e)/d+1e-9)+1;if(x<=0||x>1e3)return[];const w=Number(r.config.decimalPlaces),E=M=>Number.isInteger(w)&&w>=0?Number(M.toFixed(Math.min(w,100))):M;return Array.from({length:x},(M,$)=>{const F=E(e+$*d);return{label:F,value:F}})}),Z=n(()=>o.value==="year"?"YYYY":o.value==="month"?"YYYY-MM":"YYYY-MM-DD"),V=n(()=>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=>R(e)},de=e=>{s.value=e==null?"":String(e),k()};return be([s,()=>r.options,o],k,{immediate:!0,deep:!0}),ae({controlType:o,syncText:k,validate:ie,isReadonlyIndicator:H,isComputedIndicator:te}),(e,l)=>{const d=g("el-input"),x=g("el-date-picker"),w=g("el-time-picker"),E=g("el-numeric-input"),M=g("el-option"),$=g("el-select"),F=g("el-tree-select"),se=g("el-radio"),ce=g("el-radio-group"),me=g("el-checkbox"),ve=g("el-checkbox-group");return i(),p("div",Me,[H.value?(i(),p("span",Ue,O(re.value),1)):o.value==="rich-text"?(i(),v(xe,{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"?(i(),p(N,{key:2},[ee(" 0102 多行文本:统一走 ElTextarea,右下角字数统计后提供放大编辑入口 "),U(ye,h({modelValue:f.value,"onUpdate:modelValue":l[2]||(l[2]=t=>f.value=t)},a.controlProps,{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"])],2112)):o.value==="input"?(i(),v(d,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"?(i(),v(x,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"?(i(),v(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"?(i(),v(E,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===ge(u).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"?(i(),v($,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:B(()=>[(i(!0),p(N,null,D(Q.value,t=>(i(),v(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"?(i(),p("div",Be,[T("div",{class:he(["indicator-range-input",{"is-error":y.value&&A.value}])},[m.value.operator==="±"?(i(),p(N,{key:0},[U(E,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:m.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]=T("span",{class:"indicator-range-operator"},"±",-1)),U(E,{"model-value":z.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:m.value.secondPlaceholder,"onUpdate:modelValue":q,onBlur:l[8]||(l[8]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):m.value.double?(i(),p(N,{key:1},[U(E,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:m.value.firstPlaceholder,"onUpdate:modelValue":G,onBlur:l[9]||(l[9]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"]),T("span",Te,O(m.value.leftOperator),1),l[17]||(l[17]=T("span",{class:"indicator-range-variable"},"x",-1)),T("span",we,O(m.value.rightOperator),1),U(E,{"model-value":z.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:m.value.secondPlaceholder,"onUpdate:modelValue":q,onBlur:l[10]||(l[10]=t=>y.value=!0)},null,8,["model-value","precision","step","disabled","readonly","clearable","placeholder"])],64)):(i(),p(N,{key:2},[T("span",Ce,O(m.value.operator),1),U(E,{"model-value":W.value,precision:a.config.decimalPlaces,step:P.value,disabled:a.disabled,readonly:c.value,clearable:a.clearable,placeholder:m.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?(i(),p("div",Re,O(A.value),1)):ee("v-if",!0)])):o.value==="tree-select"?(i(),v(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"?(i(),v($,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:B(()=>[(i(!0),p(N,null,D(C.value,t=>(i(),v(M,{key:String(t.value),label:String(t.label),value:String(t.value),disabled:R(t)},null,8,["label","value","disabled"]))),128))]),_:1},16,["modelValue","collapse-tags","multiple","disabled","clearable","placeholder"])):o.value==="radio"?(i(),v(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:B(()=>[(i(!0),p(N,null,D(C.value,t=>(i(),v(se,{key:String(t.value),value:String(t.value),disabled:R(t)},{default:B(()=>[le(O(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"])):(i(),v(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:B(()=>[(i(!0),p(N,null,D(C.value,t=>(i(),v(me,{key:String(t.value),value:String(t.value),disabled:R(t)},{default:B(()=>[le(O(t.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},16,["modelValue","disabled"]))])}}}),zl=Se(Le,[["__scopeId","data-v-bdedcdac"]]);export{zl as default};
@@ -26,9 +26,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
26
26
  }>, {
27
27
  disabled: boolean;
28
28
  modelValue: string | number | null;
29
- readonly: boolean;
30
- clearable: boolean;
31
29
  valueOnClear: "min" | "max" | number | null;
30
+ clearable: boolean;
31
+ readonly: boolean;
32
32
  min: number;
33
33
  max: number;
34
34
  precision: number;
@@ -0,0 +1,51 @@
1
+ type __VLS_Props = {
2
+ rows?: number;
3
+ autosize?: boolean | {
4
+ minRows?: number;
5
+ maxRows?: number;
6
+ };
7
+ maxlength?: number;
8
+ showWordLimit?: boolean;
9
+ placeholder?: string;
10
+ disabled?: boolean;
11
+ readonly?: boolean;
12
+ resize?: 'none' | 'both' | 'horizontal' | 'vertical';
13
+ /** 是否提供放大编辑入口,默认提供 */
14
+ expandable?: boolean;
15
+ /** 放大编辑弹窗标题与按钮提示 */
16
+ expandTitle?: string;
17
+ /** 放大编辑弹窗宽度 */
18
+ expandWidth?: string;
19
+ /** 放大编辑弹窗高度 */
20
+ expandHeight?: string;
21
+ };
22
+ type __VLS_PublicProps = __VLS_Props & {
23
+ modelValue?: string;
24
+ };
25
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
26
+ focus: () => any;
27
+ blur: () => any;
28
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
+ change: (value: string) => any;
30
+ "update:modelValue": (value: string) => any;
31
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
32
+ onChange?: ((value: string) => any) | undefined;
33
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
34
+ }>, {
35
+ resize: "none" | "both" | "horizontal" | "vertical";
36
+ disabled: boolean;
37
+ placeholder: string;
38
+ readonly: boolean;
39
+ maxlength: number;
40
+ showWordLimit: boolean;
41
+ rows: number;
42
+ autosize: boolean | {
43
+ minRows?: number;
44
+ maxRows?: number;
45
+ };
46
+ expandable: boolean;
47
+ expandTitle: string;
48
+ expandWidth: string;
49
+ expandHeight: string;
50
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
51
+ export default _default;
@@ -0,0 +1 @@
1
+ import{E as _}from"../../../chunks/ElTextarea-CRk-I9iq.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"vue";import"@element-plus/icons-vue";import"../../hooks/createDialogHooks.js";import"element-plus";import"../../stores/storeConfig.js";import"pinia";import"pinia-plugin-store";import"crypto-js/enc-utf8";import"crypto-js/enc-base64";import"../../config/ElementPlusConfig.js";import"../../utils/patchWujiePopperCoordinates.js";import"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../vxeReplace/index.js";import"../tooltip/index.js";import"../tooltip/src/tooltip.js";import"../../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"element-plus/es/locale/lang/zh-cn";import"../../hooks/useListenerHooks.js";import"../../stores/permissionStore.js";import"../../utils/frontendBus.js";import"../../utils/behaviorTrack.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/behaviorContext.js";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/dateTime.js";import"../../utils/operationAuth.js";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";import"../icon/ElIcons.vue.js";import"@vueuse/core";import"../ElDialogBody/ElDialogBody.vue.js";import"../../utils/globalLoading.js";import"../../hooks/useBehaviorAction.js";export{_ as default};
@@ -0,0 +1,30 @@
1
+ type __VLS_Props = {
2
+ /** 放大编辑的初始文本 */
3
+ text?: string;
4
+ /** 与内嵌文本域一致的字数上限 */
5
+ maxlength?: number;
6
+ /** 是否展示字数统计 */
7
+ showWordLimit?: boolean;
8
+ placeholder?: string;
9
+ /** 只读文本域放大后仍按只读展示 */
10
+ readonly?: boolean;
11
+ };
12
+ type __VLS_PublicProps = __VLS_Props & {
13
+ 'loading'?: boolean;
14
+ };
15
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
16
+ confirm: () => Promise<void>;
17
+ resetQuery: () => Promise<void>;
18
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ confirm: (value: string) => any;
20
+ "update:loading": (value: boolean) => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
22
+ onConfirm?: ((value: string) => any) | undefined;
23
+ "onUpdate:loading"?: ((value: boolean) => any) | undefined;
24
+ }>, {
25
+ text: string;
26
+ placeholder: string;
27
+ readonly: boolean;
28
+ showWordLimit: boolean;
29
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ export default _default;
@@ -0,0 +1 @@
1
+ import{a as _}from"../../../chunks/ElTextarea-CRk-I9iq.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"vue";import"@element-plus/icons-vue";import"../../hooks/createDialogHooks.js";import"element-plus";import"../../stores/storeConfig.js";import"pinia";import"pinia-plugin-store";import"crypto-js/enc-utf8";import"crypto-js/enc-base64";import"../../config/ElementPlusConfig.js";import"../../utils/patchWujiePopperCoordinates.js";import"../../config/VxeTableConfig.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../vxeReplace/index.js";import"../tooltip/index.js";import"../tooltip/src/tooltip.js";import"../../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-DcVggycZ.js";import"../../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"element-plus/es/locale/lang/zh-cn";import"../../hooks/useListenerHooks.js";import"../../stores/permissionStore.js";import"../../utils/frontendBus.js";import"../../utils/behaviorTrack.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/behaviorContext.js";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/dateTime.js";import"../../utils/operationAuth.js";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";import"../icon/ElIcons.vue.js";import"@vueuse/core";import"../ElDialogBody/ElDialogBody.vue.js";import"../../utils/globalLoading.js";import"../../hooks/useBehaviorAction.js";export{_ as default};
@@ -1 +1 @@
1
- import{createApp as o,h as i}from"vue";import h from"element-plus";import c from"./VxeExportDialog.vue.js";import"@vueuse/core";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";let t=null,l=null;function d(){t&&(t.unmount(),t=null),l&&(l.remove(),l=null)}async function N(e){const{grid:m,exportTypes:u=[]}=e;if(!m)return;const a=e.filename||e.sheetName||e.title||"导出数据",r={filename:a,sheetName:a,type:"xlsx",useStyle:!0};if(e.sheetMethod&&(r.sheetMethod=e.sheetMethod),e.excludeColumns?.length&&(r.excludeFields=e.excludeColumns),!u.length){await m.exportData(r);return}d(),l=document.createElement("div"),document.body.appendChild(l),t=o({render:()=>i(c,{modelValue:!0,gridRef:m,title:e.title,filename:e.filename,sheetName:e.sheetName,exportTypes:u,loadAllData:e.loadAllData,columns:e.columns,excludeColumns:e.excludeColumns,sheetMethod:e.sheetMethod,"onUpdate:modelValue":n=>{n||d()}})}),t.use(h),t.mount(l)}export{N as exportGridData};
1
+ import{createApp as o,h as i}from"vue";import h from"element-plus";import c from"./VxeExportDialog.vue.js";import"@vueuse/core";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";let t=null,l=null;function d(){t&&(t.unmount(),t=null),l&&(l.remove(),l=null)}async function E(e){const{grid:m,exportTypes:u=[]}=e;if(!m)return;const a=e.filename||e.sheetName||e.title||"导出数据",r={filename:a,sheetName:a,type:"xlsx",useStyle:!0};if(e.sheetMethod&&(r.sheetMethod=e.sheetMethod),e.excludeColumns?.length&&(r.excludeFields=e.excludeColumns),!u.length){await m.exportData(r);return}d(),l=document.createElement("div"),document.body.appendChild(l),t=o({render:()=>i(c,{modelValue:!0,gridRef:m,title:e.title,filename:e.filename,sheetName:e.sheetName,exportTypes:u,loadAllData:e.loadAllData,columns:e.columns,excludeColumns:e.excludeColumns,sheetMethod:e.sheetMethod,"onUpdate:modelValue":n=>{n||d()}})}),t.use(h),t.mount(l)}export{E as exportGridData};
@@ -58,9 +58,9 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
58
58
  onSuccess?: ((...args: any[]) => any) | undefined;
59
59
  }>, {
60
60
  multiple: boolean;
61
+ onConfirm: (users: ISysUserInfo[]) => void | Promise<void>;
61
62
  selectedUserIds: string[];
62
63
  roleId: string;
63
64
  includeExternal: boolean;
64
- onConfirm: (users: ISysUserInfo[]) => void | Promise<void>;
65
65
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
66
66
  export default _default;
@@ -57,6 +57,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
57
57
  title: string;
58
58
  fileName: string;
59
59
  emptyDescription: string;
60
+ showHeader: boolean;
60
61
  showSearch: boolean;
61
62
  showZoom: boolean;
62
63
  showDownload: boolean;
@@ -64,7 +65,6 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
64
65
  showFullscreen: boolean;
65
66
  fileId: string;
66
67
  fileType: string;
67
- showHeader: boolean;
68
68
  lostDescription: string;
69
69
  attachmentLost: boolean;
70
70
  refreshAttachment: () => Promise<PreviewAttachment | void>;
@@ -64,6 +64,9 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
64
64
  type: NumberConstructor;
65
65
  default: number;
66
66
  };
67
+ /**
68
+ * @deprecated 附件列表已统一为卡片(宽度随内容自增、自动换行),该属性不再生效,仅为兼容旧调用保留
69
+ */
67
70
  itemWidth: {
68
71
  type: StringConstructor;
69
72
  default: string;
@@ -184,6 +187,9 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
184
187
  type: NumberConstructor;
185
188
  default: number;
186
189
  };
190
+ /**
191
+ * @deprecated 附件列表已统一为卡片(宽度随内容自增、自动换行),该属性不再生效,仅为兼容旧调用保留
192
+ */
187
193
  itemWidth: {
188
194
  type: StringConstructor;
189
195
  default: string;
@@ -1 +1 @@
1
- import{defineComponent as pe,ref as C,computed as E,useModel as J,resolveComponent as h,resolveDirective as fe,openBlock as y,createElementBlock as F,normalizeClass as ve,Fragment as ge,renderList as ye,createVNode as p,withCtx as f,createElementVNode as S,unref as W,toDisplayString as b,withDirectives as he,createBlock as R,createTextVNode as $,createCommentVNode as q,normalizeStyle as we,withModifiers as xe,mergeModels as K}from"vue";import{UploadFilled as _e}from"@element-plus/icons-vue";import{ElMessage as c,ElMessageBox as Ce}from"element-plus";import Fe from"../../hooks/useFileView.js";import M from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import{confirmDelete as Be}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as ke}from"../../stores/userInfoStore.js";import{getAcceptString as Ue}from"../../utils/uploadAccept.js";import{buildUploadHeaders as Ee}from"../../utils/buildUploadHeaders.js";import{_ as Se}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 be={key:0},Me=["onClick"],Ie={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},Le={class:"el-upload__tip"},De=pe({__name:"CustomElUpload",props:K({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:K(["success","change"],["update:uploadFilesList","update:loading"]),setup(d,{expose:Q,emit:X}){const{fileView:O}=Fe(),I=X,Y=ke(),v=C(),m=C([]),w=C(""),x=C([]),k=e=>{x.value=e,I("change",e)},o=d,V=E(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),Z=E(()=>Ee(V.value)),n=J(d,"uploadFilesList"),ee=e=>{w.value=e},te=()=>{w.value=""},L=E(()=>Ue(o.accept)),j=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"},ae=async e=>{const t=o.uploadCreateBy?.trim(),l=e.id!=null?String(e.id):"";if(!t||!l)return e;try{await M.updateFilesCreateBy([l],t),e.createBy=t}catch(a){B.messageError(a)}return e},le=async(e,t,l)=>{if(e.code==="0"){const a=await ae(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("上传成功"),I("success",{files:n.value,deleteFiles:m.value})),r.value.length===0&&(g.value=!1,T(e.code==="0"?void 0:new Error(e.msg||"上传失败")))},g=J(d,"loading"),r=C([]);let D,P;const G=E(()=>x.value.some(e=>e.status!=="success"&&e.status!=="fail")),oe=()=>n.value.length>0||G.value,T=e=>{r.value.length>0||(e?P?.(e):D?.(),D=void 0,P=void 0)},z=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=L.value?.split(",").map(i=>i.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(c.error(`文件 ${e.name} 格式不支持,仅允许 ${L.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"]),k(x.value.filter(i=>i.status!=="ready"))},1),!1):(r.value.includes(e.name)||r.value.push(e.name),!0)},U=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},se=e=>{if(U(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()):Y.getUserInfo.userCode===e.createBy},ne=async e=>{if(U(e)){c.warning("该附件非您上传,无法预览或删除");return}if(e.name===w.value){if(e.createBy&&!se(e)){c.warning("您没有权限删除此文件!");return}if(o.isConfirmDelete)v.value?.handleRemove(e);else if(!await Be({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>v.value?.handleRemove(e),successMessage:!1}))return}else A(e)},ie=(e,t)=>{k(t)},re=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 Ce.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{g.value=!0,await M.delSysUploadFile(a.id).catch(u=>{B.messageError(u)})}catch(u){B.messageError(u);return}finally{g.value=!1}}n.value=[],v.value?.clearFiles(),k([]),e.length>0?await z(e[0])?(o.isConfirmDelete&&l.forEach(u=>{m.value.some(_=>_.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}个文件,上传文件数量已达到限制`)},ue=(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,T(e))},A=async e=>{const t=n.value.find(l=>l.name===e.name);if(t){if(U(t)){c.warning("该附件非您上传,无法预览或删除");return}O(t.id)}},H=async(e,t=!0)=>{k(x.value.filter(a=>a.uid!==e.uid));const l=n.value.find(a=>a.name===e.name);if(!(!l||U(l)))try{o.isConfirmDelete?m.value.push(l):await M.delSysUploadFile(l.id),n.value.splice(n.value.indexOf(l),1)}catch(a){B.messageError(a)}},ce=(e,t)=>{g.value=!0};return Q({remove:H,confirm:async(e=!0)=>{try{if(g.value=!0,o.isConfirmDelete&&m.value.length>0&&e&&(await M.delSysUploadFiles(m.value.map(t=>t.id)),m.value=[]),!o.autoUpload)if(G.value){const t=x.value.filter(a=>a.status!=="success"&&a.status!=="fail");for(const a of t)if(!a.raw||!await z(a.raw))throw new Error("待上传文件校验失败");const l=new Promise((a,i)=>{D=a,P=i});v.value?.submit(),await l}else o.showOptMessage&&c.success("操作成功"),I("success",{files:n.value,deleteFiles:m.value});g.value=!1}catch(t){throw B.messageError(t),g.value=!1,t}},hasFiles:oe}),(e,t)=>{const l=h("el-icons"),a=h("el-tooltip"),i=h("el-icon"),u=h("el-text"),_=h("el-flex"),de=h("el-upload"),me=fe("loading");return d.isEdit?he((y(),R(de,{key:1,ref_key:"ref_upload",ref:v,"file-list":n.value,onSuccess:le,onRemove:H,onPreview:A,"auto-upload":d.autoUpload,onChange:ie,onError:ue,onExceed:re,onProgress:ce,"before-upload":z,drag:"",accept:L.value,action:V.value,multiple:"",limit:d.limit,headers:Z.value},{file:f(({file:s})=>[p(_,{class:"file-class",onMousemove:N=>ee(s.name),onMouseout:te,onClick:N=>A(s),height:"20px",width:d.itemWidth},{default:f(()=>[p(_,{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":j(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),$(" "+b(s.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),p(_,{align:"center",justify:"flex-end",width:"50px"},{default:f(()=>[!s?.businessId&&s.percentage!==100?(y(),R(u,{key:0},{default:f(()=>[$(b(s.percentage)+"% ",1)]),_:2},1024)):q("v-if",!0),s?.businessId||s.percentage===100?(y(),R(l,{key:1,onClick:xe(N=>ne(s),["prevent","stop"]),"model-value":s.name===w.value?"adtec-close":"adtec-success",style:we([{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"])):q("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:f(()=>[p(i,{class:"el-icon--upload"},{default:f(()=>[p(W(_e))]),_:1}),t[0]||(t[0]=S("div",{class:"el-upload__text"},[$("拖动文件或"),S("em",null,"点击上传")],-1)),S("div",Le,"最大上传文件大小"+b(d.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[me,d.showLoading&&g.value]]):(y(),F("div",be,[n.value?.length?(y(),F("div",{key:0,class:ve(["readonly-file-list",{"is-vertical":d.vertical}])},[(y(!0),F(ge,null,ye(n.value,s=>(y(),F("div",{key:s.id,class:"file-item"},[p(l,{"model-value":j(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),p(a,{content:s.name,placement:"top"},{default:f(()=>[S("span",{class:"link-name",onClick:N=>W(O)(s.id)},b(s.name),9,Me)]),_:2},1032,["content"])]))),128))],2)):(y(),F("div",Ie,"暂无附件"))]))}}}),mt=Se(De,[["__scopeId","data-v-dbd35e1f"]]);export{mt as default};
1
+ import{defineComponent as Ue,ref as E,computed as S,useModel as ee,resolveComponent as h,resolveDirective as Ee,openBlock as c,createElementBlock as w,normalizeClass as T,Fragment as te,renderList as ae,createVNode as p,createElementVNode as F,withCtx as m,unref as oe,createTextVNode as O,toDisplayString as C,createCommentVNode as P,createBlock as k,normalizeStyle as le,withDirectives as Se,mergeModels as ne}from"vue";import{UploadFilled as Me}from"@element-plus/icons-vue";import{ElMessage as f,ElMessageBox as De}from"element-plus";import Ie from"../../hooks/useFileView.js";import Le from"../../hooks/useFileOpen.js";import M from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import{formatDateTime as Ne}from"../../utils/dateTime.js";import{confirmDelete as ze}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as $e}from"../../stores/userInfoStore.js";import{getAcceptString as Ae,getFileSuffix as Te}from"../../utils/uploadAccept.js";import{canExportPdf as Oe}from"../../utils/officePreviewUtil.js";import{buildUploadHeaders as Pe}from"../../utils/buildUploadHeaders.js";import{_ as Re}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/frontendBus.js";import"../../utils/fileDownload.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/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 Ve={key:0},je={class:"attach-card__main"},Ye={key:0,class:"attach-card__meta"},He={class:"attach-card__menu-item"},Ke={key:1,class:"attach-card-empty"},qe={class:"el-upload__tip"},We={class:"attach-card"},Ge={class:"attach-card__main"},Je={key:0,class:"attach-card__meta"},Qe={key:0,class:"attach-card__progress"},Xe=Ue({__name:"CustomElUpload",props:ne({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:ne(["success","change"],["update:uploadFilesList","update:loading"]),setup(g,{expose:se,emit:re}){const{fileView:R}=Ie(),{downloadFile:ie}=Le(),D=re,ce=$e(),_=E(),v=E([]),x=E([]),b=e=>{x.value=e,D("change",e)},l=g,V=S(()=>"/api/doc/uploadFile/"+l.business+"/"+l.businessId+"/"+l.association+(l.watermarkCode?"?watermarkCode="+l.watermarkCode:"")),de=S(()=>Pe(V.value)),s=ee(g,"uploadFilesList"),I=S(()=>Ae(l.accept)),j=e=>{const t=(e.split(".").pop()||"").toLowerCase();return["jpg","jpeg","png","gif","bmp"].includes(t)?"image":t==="pdf"?"pdf":["doc","docx"].includes(t)?"word":["xls","xlsx"].includes(t)?"excel":["ppt","pptx"].includes(t)?"ppt":"text"},ue={image:"adtec-image",pdf:"adtec-pdf",word:"adtec-word",excel:"adtec-excel",ppt:"adtec-ppt",text:"adtec-text"},Y=e=>ue[j(e)]||"adtec-text",H=e=>`is-${j(e)}`,K=e=>{const t=Number(e);return!Number.isFinite(t)||t<=0?"":t<1024?`${Math.round(t)}KB`:`${(t/1024).toFixed(1)}MB`},L=e=>{const t=K(e.size),o=e.createTime?Ne(e.createTime,{format:"YYYY-MM-DD HH:mm"}):"";return[t,o].filter(Boolean).join(" ")},q=e=>{const t=[{action:"watermark",label:"下载",icon:"adtec-download",color:"var(--el-color-primary)"}];return Oe(Te({name:e.name,type:e.type}))&&t.push({action:"pdf",label:"下载 PDF",icon:"adtec-pdf",color:"var(--el-color-danger)"}),t},W=(e,t)=>ie(e,t),pe=e=>e?.status==="uploading",G=e=>{if(e?.businessId||e?.id)return L(e);const t=Number(e?.size),o=Number.isFinite(t)&&t>0?K(t/1024):"",a=e?.status==="fail"?"上传失败":e?.status==="uploading"?`${Number(e?.percentage)||0}%`:e?.status==="success"?"已上传":"待上传";return[o,a].filter(Boolean).join(" ")},me=async e=>{const t=l.uploadCreateBy?.trim(),o=e.id!=null?String(e.id):"";if(!t||!o)return e;try{await M.updateFilesCreateBy([o],t),e.createBy=t}catch(a){B.messageError(a)}return e},fe=async(e,t,o)=>{if(e.code==="0"){const a=await me(e.data),r=s.value.findIndex(i=>i.name===t.name&&!i.id);r>=0?s.value.splice(r,1,a):s.value.push(a)}else f.error(e.msg),_.value?.handleRemove(t);for(let a=u.value.length-1;a>=0;a--)u.value[a]===t.name&&u.value.splice(a,1);e.code==="0"&&(l.showOptMessage&&f.success("上传成功"),D("success",{files:s.value,deleteFiles:v.value})),u.value.length===0&&(y.value=!1,Q(e.code==="0"?void 0:new Error(e.msg||"上传失败")))},y=ee(g,"loading"),u=E([]);let N,z;const J=S(()=>x.value.some(e=>e.status!=="success"&&e.status!=="fail")),ve=()=>s.value.length>0||J.value,Q=e=>{u.value.length>0||(e?z?.(e):N?.(),N=void 0,z=void 0)},$=async e=>{if(s.value.find(r=>r.name===e.name))return f.warning(e.name+",文件已存在"),!1;if(e.size>l.size*1024*1024)return f.warning("文件大小不能超过"+l.size+"MB"),!1;const o=I.value?.split(",").map(r=>r.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return o&&!o.includes(a??"")?(f.error(`文件 ${e.name} 格式不支持,仅允许 ${I.value}!`),setTimeout(()=>{_.value?.clearFiles(["ready"]),b(x.value.filter(r=>r.status!=="ready"))},1),!1):(u.value.includes(e.name)||u.value.push(e.name),!0)},U=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&l.readonlyFileIds.includes(t)},ge=e=>{if(U(e))return!1;if(!e?.createBy?.trim())return!0;const t=l.fileOwnerAccounts?.map(o=>o.trim()).filter(Boolean)??[];return t.length>0?t.includes(e.createBy.trim()):ce.getUserInfo.userCode===e.createBy},_e=async e=>{if(U(e)){f.warning("该附件非您上传,无法预览或删除");return}if(e.createBy&&!ge(e)){f.warning("您没有权限删除此文件!");return}if(l.isConfirmDelete){_.value?.handleRemove(e);return}await ze({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>_.value?.handleRemove(e),successMessage:!1})},ye=(e,t)=>{b(t)},he=async(e,t)=>{if(l.limit===1&&l.overwrite&&s.value.length>=1){const o=[...s.value],a=o[0];if(!l.isConfirmDelete){if(!await De.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{y.value=!0,await M.delSysUploadFile(a.id).catch(i=>{B.messageError(i)})}catch(i){B.messageError(i);return}finally{y.value=!1}}s.value=[],_.value?.clearFiles(),b([]),e.length>0?await $(e[0])?(l.isConfirmDelete&&o.forEach(i=>{v.value.some(A=>A.id===i.id)||v.value.push(i)}),_.value?.handleStart(e[0]),l.autoUpload&&_.value?.submit()):s.value.push(...o):o.forEach(r=>{v.value.some(i=>i.id===r.id)||v.value.push(r)})}else f.warning(`最多上传${l.limit}个文件,上传文件数量已达到限制`)},we=(e,t,o)=>{f.error("上传失败");for(let a=u.value.length-1;a>=0;a--)u.value[a]===t.name&&u.value.splice(a,1);u.value.length===0&&(y.value=!1,Q(e))},X=async e=>{const t=s.value.find(o=>o.name===e.name);if(t){if(U(t)){f.warning("该附件非您上传,无法预览或删除");return}R(t.id)}},Z=async(e,t=!0)=>{b(x.value.filter(a=>a.uid!==e.uid));const o=s.value.find(a=>a.name===e.name);if(!(!o||U(o)))try{l.isConfirmDelete?v.value.push(o):await M.delSysUploadFile(o.id),s.value.splice(s.value.indexOf(o),1)}catch(a){B.messageError(a)}},Fe=(e,t)=>{y.value=!0};return se({remove:Z,confirm:async(e=!0)=>{try{if(y.value=!0,l.isConfirmDelete&&v.value.length>0&&e&&(await M.delSysUploadFiles(v.value.map(t=>t.id)),v.value=[]),!l.autoUpload)if(J.value){const t=x.value.filter(a=>a.status!=="success"&&a.status!=="fail");for(const a of t)if(!a.raw||!await $(a.raw))throw new Error("待上传文件校验失败");const o=new Promise((a,r)=>{N=a,z=r});_.value?.submit(),await o}else l.showOptMessage&&f.success("操作成功"),D("success",{files:s.value,deleteFiles:v.value});y.value=!1}catch(t){throw B.messageError(t),y.value=!1,t}},hasFiles:ve}),(e,t)=>{const o=h("el-icons"),a=h("el-cell-link"),r=h("el-tooltip"),i=h("el-icon-btn"),A=h("el-dropdown-item"),Ce=h("el-dropdown-menu"),xe=h("el-dropdown"),ke=h("el-icon"),Be=h("el-upload"),be=Ee("loading");return g.isEdit?Se((c(),k(Be,{key:1,ref_key:"ref_upload",ref:_,"file-list":s.value,onSuccess:fe,onRemove:Z,onPreview:X,"auto-upload":g.autoUpload,onChange:ye,onError:we,onExceed:he,onProgress:Fe,"before-upload":$,drag:"",accept:I.value,action:V.value,multiple:"",limit:g.limit,headers:de.value},{file:m(({file:n})=>[F("div",We,[p(o,{class:T(["attach-card__icon",H(n.name)]),"model-value":Y(n.name)},null,8,["class","model-value"]),F("div",Ge,[p(r,{content:n.name,placement:"top"},{default:m(()=>[p(a,{class:"attach-card__name",onClick:d=>X(n)},{default:m(()=>[O(C(n.name),1)]),_:2},1032,["onClick"])]),_:2},1032,["content"]),G(n)?(c(),w("span",Je,C(G(n)),1)):P("v-if",!0)]),pe(n)?(c(),w("span",Qe,C(n.percentage)+"%",1)):(c(),k(i,{key:1,class:"attach-card__action","model-value":"adtec-delete",type:"danger",tip:"删除",onClick:d=>_e(n)},null,8,["onClick"]))])]),default:m(()=>[p(ke,{class:"el-icon--upload"},{default:m(()=>[p(oe(Me))]),_:1}),t[0]||(t[0]=F("div",{class:"el-upload__text"},[O("拖动文件或"),F("em",null,"点击上传")],-1)),F("div",qe,"最大上传文件大小"+C(g.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[be,g.showLoading&&y.value]]):(c(),w("div",Ve,[s.value?.length?(c(),w("div",{key:0,class:T(["attach-card-list",{"is-vertical":g.vertical}])},[(c(!0),w(te,null,ae(s.value,n=>(c(),w("div",{key:n.id,class:"attach-card"},[p(o,{class:T(["attach-card__icon",H(n.name)]),"model-value":Y(n.name)},null,8,["class","model-value"]),F("div",je,[p(r,{content:n.name,placement:"top"},{default:m(()=>[p(a,{class:"attach-card__name",onClick:d=>oe(R)(n.id)},{default:m(()=>[O(C(n.name),1)]),_:2},1032,["onClick"])]),_:2},1032,["content"]),L(n)?(c(),w("span",Ye,C(L(n)),1)):P("v-if",!0)]),P(" 多个下载动作时给菜单(与预览工具栏同一套动作与卷帘门动画),只有一个动作时直接下载 "),q(n).length>1?(c(),k(xe,{key:0,trigger:"click",placement:"bottom-end",persistent:!1,"popper-class":"adtec-roll-down",onCommand:d=>W(n,d)},{dropdown:m(()=>[p(Ce,null,{default:m(()=>[(c(!0),w(te,null,ae(q(n),d=>(c(),k(A,{key:d.action,command:d.action},{default:m(()=>[F("span",He,[p(o,{"model-value":d.icon,style:le({color:d.color})},null,8,["model-value","style"]),F("span",{style:le({color:d.color})},C(d.label),5)])]),_:2},1032,["command"]))),128))]),_:2},1024)]),default:m(()=>[p(i,{class:"attach-card__action","model-value":"adtec-download",type:"primary",title:"下载"})]),_:2},1032,["onCommand"])):(c(),k(i,{key:1,class:"attach-card__action","model-value":"adtec-download",type:"primary",tip:"下载",onClick:d=>W(n)},null,8,["onClick"]))]))),128))],2)):(c(),w("div",Ke,"暂无附件"))]))}}}),Nt=Re(Xe,[["__scopeId","data-v-8dd66a88"]]);export{Nt as default};
@@ -1 +1 @@
1
- import{defineComponent as s,ref as m,openBlock as f,createBlock as v,createCommentVNode as d}from"vue";import c from"../../api/DocumentApi.js";import w from"../../utils/FrameworkUtils.js";import V from"../../utils/fileDownload.js";import F from"./FileView.vue.js";import{getFileSuffix as x,isPreviewableSuffix as _}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 ee=s({__name:"FileViewComponents",setup(y,{expose:p}){const e=m(!1),l=m(""),r=m(""),u=m("view");let a=0;return p({viewFile:async i=>{const o=++a;l.value="文件预览",r.value=i,e.value=!0;try{const t=await c.getUpLoadFilesVoById(i);if(o!==a||!e.value||r.value!==i)return;const n=x(t);if(!_(n)){e.value=!1,await V(t.id,t.name);return}l.value=t.name}catch(t){if(o!==a||!e.value||r.value!==i)return;e.value=!1,w.messageError(t)}}}),(i,o)=>e.value?(f(),v(F,{key:0,modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=t=>e.value=t),title:l.value,"file-id":r.value,edit:u.value},null,8,["modelValue","title","file-id","edit"])):d("v-if",!0)}});export{ee as default};
1
+ import{defineComponent as s,ref as m,openBlock as f,createBlock as v,createCommentVNode as d}from"vue";import c from"../../api/DocumentApi.js";import w from"../../utils/FrameworkUtils.js";import V from"../../utils/fileDownload.js";import F from"./FileView.vue.js";import{getFileSuffix as x,isPreviewableSuffix as _}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"../../utils/officePreviewUtil.js";import"@vueuse/core";import"../../hooks/usePreviewFullscreen.js";import"./OfficePreview.vue.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const ee=s({__name:"FileViewComponents",setup(y,{expose:p}){const e=m(!1),l=m(""),r=m(""),u=m("view");let a=0;return p({viewFile:async i=>{const o=++a;l.value="文件预览",r.value=i,e.value=!0;try{const t=await c.getUpLoadFilesVoById(i);if(o!==a||!e.value||r.value!==i)return;const n=x(t);if(!_(n)){e.value=!1,await V(t.id,t.name);return}l.value=t.name}catch(t){if(o!==a||!e.value||r.value!==i)return;e.value=!1,w.messageError(t)}}}),(i,o)=>e.value?(f(),v(F,{key:0,modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=t=>e.value=t),title:l.value,"file-id":r.value,edit:u.value},null,8,["modelValue","title","file-id","edit"])):d("v-if",!0)}});export{ee as default};
@@ -58,6 +58,7 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
58
58
  showClose: boolean;
59
59
  fileName: string;
60
60
  fullscreen: boolean;
61
+ showHeader: boolean;
61
62
  showSearch: boolean;
62
63
  showPageNav: boolean;
63
64
  showZoom: boolean;
@@ -68,7 +69,6 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
68
69
  refreshLoading: boolean;
69
70
  fileId: string;
70
71
  fileType: string;
71
- showHeader: boolean;
72
72
  deferRefresh: boolean;
73
73
  lostDescription: string;
74
74
  attachmentLost: boolean;
@@ -1,3 +1,3 @@
1
- import{defineComponent as A,computed as B,ref as F,watch as I,resolveComponent as h,openBlock as a,createElementBlock as r,normalizeClass as N,toDisplayString as b,createCommentVNode as u,createVNode as o,unref as l,withCtx as d,createElementVNode as f,Fragment as g,createBlock as c,renderList as V,createTextVNode as p}from"vue";import{ArrowUp as S,ArrowDown as M,ArrowLeft as R,ArrowRight as E,ZoomOut as Q,ZoomIn as H,RefreshRight as U,Loading as k,Download as P,Refresh as W,Close as x,FullScreen as X}from"@element-plus/icons-vue";import{ElIcon as s}from"element-plus";import{MAX_PDF_ZOOM as j,MIN_OFFICE_ZOOM as q}from"../../utils/officePreviewUtil.js";import{_ as G}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const J=["title"],K={key:1,class:"header-search"},Y={key:0,class:"search-count"},_={class:"header-actions"},ee=["disabled"],te={class:"page-label"},le=["disabled"],oe=["disabled"],ae={class:"zoom-label"},ne=["disabled"],de=["disabled"],se=["title","disabled"],ie=["disabled"],re=["title"],ue=A({__name:"OfficePreviewHeaderBar",props:{title:{default:""},titleOnly:{type:Boolean,default:!1},zoom:{default:1},currentPage:{default:1},totalPages:{default:0},searchQuery:{default:""},searchIndex:{default:-1},searchTotal:{default:0},showSearch:{type:Boolean,default:!0},showPageNav:{type:Boolean,default:!0},showZoom:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!1},downloadActions:{default:()=>[]},showRefresh:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},showClose:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},downloadLoading:{type:Boolean,default:!1},refreshLoading:{type:Boolean,default:!1},minZoom:{default:q},maxZoom:{default:j}},emits:["zoom-in","zoom-out","zoom-reset","download","refresh","toggle-fullscreen","close","page-prev","page-next","search","search-clear","search-prev","search-next"],setup(e,{emit:z}){const y=e,L=[{action:"raw",label:"下载原件(无水印)"},{action:"watermark",label:"下载"},{action:"pdf",label:"下载 PDF"}],m=B(()=>L.filter(v=>y.downloadActions.includes(v.action))),i=z,w=F(y.searchQuery),O=B(()=>Math.round(y.zoom*100));I(()=>y.searchQuery,v=>{w.value=v});const C=()=>{i("search",w.value.trim())};return(v,t)=>{const $=h("el-search-input"),D=h("el-dropdown-item"),T=h("el-dropdown-menu"),Z=h("el-dropdown");return a(),r("div",{class:N(["office-preview-header",{"is-title-only":e.titleOnly}])},[e.title?(a(),r("div",{key:0,class:"header-title",title:e.title},b(e.title),9,J)):u("v-if",!0),e.showSearch?(a(),r("div",K,[o($,{modelValue:w.value,"onUpdate:modelValue":t[0]||(t[0]=n=>w.value=n),class:"search-input",clearable:"",placeholder:"搜索文档内容",panel:!1,"action-tip":"查找",onSearch:C,onChange:C,onClear:t[1]||(t[1]=n=>i("search-clear"))},null,8,["modelValue"]),e.searchTotal>0?(a(),r("span",Y,b(e.searchIndex+1)+"/"+b(e.searchTotal),1)):u("v-if",!0),e.searchTotal>0?(a(),r("button",{key:1,class:"toolbar-btn",type:"button",title:"上一处",onClick:t[2]||(t[2]=n=>i("search-prev"))},[o(l(s),null,{default:d(()=>[o(l(S))]),_:1})])):u("v-if",!0),e.searchTotal>0?(a(),r("button",{key:2,class:"toolbar-btn",type:"button",title:"下一处",onClick:t[3]||(t[3]=n=>i("search-next"))},[o(l(s),null,{default:d(()=>[o(l(M))]),_:1})])):u("v-if",!0)])):u("v-if",!0),f("div",_,[e.showPageNav&&e.totalPages>0?(a(),r(g,{key:0},[f("button",{class:"toolbar-btn",type:"button",title:"上一页",disabled:e.currentPage<=1,onClick:t[4]||(t[4]=n=>i("page-prev"))},[o(l(s),null,{default:d(()=>[o(l(R))]),_:1})],8,ee),f("span",te,b(e.currentPage)+" / "+b(e.totalPages),1),f("button",{class:"toolbar-btn",type:"button",title:"下一页",disabled:e.currentPage>=e.totalPages,onClick:t[5]||(t[5]=n=>i("page-next"))},[o(l(s),null,{default:d(()=>[o(l(E))]),_:1})],8,le),t[14]||(t[14]=f("span",{class:"toolbar-divider"},null,-1))],64)):u("v-if",!0),e.showZoom?(a(),r(g,{key:1},[f("button",{class:"toolbar-btn",type:"button",title:"缩小",disabled:e.zoom<=e.minZoom,onClick:t[6]||(t[6]=n=>i("zoom-out"))},[o(l(s),null,{default:d(()=>[o(l(Q))]),_:1})],8,oe),f("span",ae,b(O.value)+"%",1),f("button",{class:"toolbar-btn",type:"button",title:"放大",disabled:e.zoom>=e.maxZoom,onClick:t[7]||(t[7]=n=>i("zoom-in"))},[o(l(s),null,{default:d(()=>[o(l(H))]),_:1})],8,ne),f("button",{class:"toolbar-btn",type:"button",title:"重置缩放",onClick:t[8]||(t[8]=n=>i("zoom-reset"))},[o(l(s),null,{default:d(()=>[o(l(U))]),_:1})]),t[15]||(t[15]=f("span",{class:"toolbar-divider"},null,-1))],64)):u("v-if",!0),u(` 下载菜单不 Teleport:预览浮层(FileView 90% 遮罩)与全屏/全屏兜底都会把
1
+ import{defineComponent as I,computed as p,ref as T,watch as N,resolveComponent as y,openBlock as n,createElementBlock as r,normalizeClass as S,toDisplayString as b,createCommentVNode as c,createVNode as l,unref as o,withCtx as d,createElementVNode as u,Fragment as g,createBlock as f,renderList as V,normalizeStyle as B}from"vue";import{ArrowUp as M,ArrowDown as R,ArrowLeft as E,ArrowRight as Q,ZoomOut as H,ZoomIn as U,RefreshRight as W,Loading as k,Download as P,Refresh as X,Close as z,FullScreen as j}from"@element-plus/icons-vue";import{ElIcon as s}from"element-plus";import{MAX_PDF_ZOOM as q,MIN_OFFICE_ZOOM as G}from"../../utils/officePreviewUtil.js";import{_ as J}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const K=["title"],Y={key:1,class:"header-search"},_={key:0,class:"search-count"},ee={class:"header-actions"},te=["disabled"],oe={class:"page-label"},le=["disabled"],ne=["disabled"],ae={class:"zoom-label"},de=["disabled"],se=["disabled"],ie={class:"download-menu-item"},re=["title","disabled"],ue=["disabled"],ce=["title"],fe=I({__name:"OfficePreviewHeaderBar",props:{title:{default:""},titleOnly:{type:Boolean,default:!1},zoom:{default:1},currentPage:{default:1},totalPages:{default:0},searchQuery:{default:""},searchIndex:{default:-1},searchTotal:{default:0},showSearch:{type:Boolean,default:!0},showPageNav:{type:Boolean,default:!0},showZoom:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!1},downloadActions:{default:()=>[]},showRefresh:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},showClose:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},downloadLoading:{type:Boolean,default:!1},refreshLoading:{type:Boolean,default:!1},minZoom:{default:G},maxZoom:{default:q}},emits:["zoom-in","zoom-out","zoom-reset","download","refresh","toggle-fullscreen","close","page-prev","page-next","search","search-clear","search-prev","search-next"],setup(e,{emit:x}){const v=e,L=[{action:"raw",label:"下载原件(无水印)",icon:"adtec-download",color:"var(--el-color-info)"},{action:"watermark",label:"下载",icon:"adtec-download",color:"var(--el-color-primary)"},{action:"pdf",label:"下载 PDF",icon:"adtec-pdf",color:"var(--el-color-danger)"}],m=p(()=>L.filter(h=>v.downloadActions.includes(h.action))),i=x,w=T(v.searchQuery),O=p(()=>Math.round(v.zoom*100));N(()=>v.searchQuery,h=>{w.value=h});const C=()=>{i("search",w.value.trim())};return(h,t)=>{const $=y("el-search-input"),D=y("el-icons"),Z=y("el-dropdown-item"),A=y("el-dropdown-menu"),F=y("el-dropdown");return n(),r("div",{class:S(["office-preview-header",{"is-title-only":e.titleOnly}])},[e.title?(n(),r("div",{key:0,class:"header-title",title:e.title},b(e.title),9,K)):c("v-if",!0),e.showSearch?(n(),r("div",Y,[l($,{modelValue:w.value,"onUpdate:modelValue":t[0]||(t[0]=a=>w.value=a),class:"search-input",clearable:"",placeholder:"搜索文档内容",panel:!1,"action-tip":"查找",onSearch:C,onChange:C,onClear:t[1]||(t[1]=a=>i("search-clear"))},null,8,["modelValue"]),e.searchTotal>0?(n(),r("span",_,b(e.searchIndex+1)+"/"+b(e.searchTotal),1)):c("v-if",!0),e.searchTotal>0?(n(),r("button",{key:1,class:"toolbar-btn",type:"button",title:"上一处",onClick:t[2]||(t[2]=a=>i("search-prev"))},[l(o(s),null,{default:d(()=>[l(o(M))]),_:1})])):c("v-if",!0),e.searchTotal>0?(n(),r("button",{key:2,class:"toolbar-btn",type:"button",title:"下一处",onClick:t[3]||(t[3]=a=>i("search-next"))},[l(o(s),null,{default:d(()=>[l(o(R))]),_:1})])):c("v-if",!0)])):c("v-if",!0),u("div",ee,[e.showPageNav&&e.totalPages>0?(n(),r(g,{key:0},[u("button",{class:"toolbar-btn",type:"button",title:"上一页",disabled:e.currentPage<=1,onClick:t[4]||(t[4]=a=>i("page-prev"))},[l(o(s),null,{default:d(()=>[l(o(E))]),_:1})],8,te),u("span",oe,b(e.currentPage)+" / "+b(e.totalPages),1),u("button",{class:"toolbar-btn",type:"button",title:"下一页",disabled:e.currentPage>=e.totalPages,onClick:t[5]||(t[5]=a=>i("page-next"))},[l(o(s),null,{default:d(()=>[l(o(Q))]),_:1})],8,le),t[14]||(t[14]=u("span",{class:"toolbar-divider"},null,-1))],64)):c("v-if",!0),e.showZoom?(n(),r(g,{key:1},[u("button",{class:"toolbar-btn",type:"button",title:"缩小",disabled:e.zoom<=e.minZoom,onClick:t[6]||(t[6]=a=>i("zoom-out"))},[l(o(s),null,{default:d(()=>[l(o(H))]),_:1})],8,ne),u("span",ae,b(O.value)+"%",1),u("button",{class:"toolbar-btn",type:"button",title:"放大",disabled:e.zoom>=e.maxZoom,onClick:t[7]||(t[7]=a=>i("zoom-in"))},[l(o(s),null,{default:d(()=>[l(o(U))]),_:1})],8,de),u("button",{class:"toolbar-btn",type:"button",title:"重置缩放",onClick:t[8]||(t[8]=a=>i("zoom-reset"))},[l(o(s),null,{default:d(()=>[l(o(W))]),_:1})]),t[15]||(t[15]=u("span",{class:"toolbar-divider"},null,-1))],64)):c("v-if",!0),c(` 下载菜单不 Teleport:预览浮层(FileView 90% 遮罩)与全屏/全屏兜底都会把
2
2
  Element Plus 浮层(默认 z-index 2000 起)压在下面,Teleport 到 body 后菜单会被遮住,
3
- 表现为“点下载没反应”。留在预览容器内即可跟随容器层级,全屏时也仍在视口内。 `),e.showDownload&&m.value.length>1?(a(),c(Z,{key:2,trigger:"click",teleported:!1,disabled:e.downloadLoading,onCommand:t[9]||(t[9]=n=>i("download",n))},{dropdown:d(()=>[o(T,null,{default:d(()=>[(a(!0),r(g,null,V(m.value,n=>(a(),c(D,{key:n.action,command:n.action},{default:d(()=>[p(b(n.label),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:d(()=>[f("button",{class:"toolbar-btn",type:"button",title:"下载",disabled:e.downloadLoading},[e.downloadLoading?(a(),c(l(s),{key:0,class:"is-loading"},{default:d(()=>[o(l(k))]),_:1})):(a(),c(l(s),{key:1},{default:d(()=>[o(l(P))]),_:1}))],8,de)]),_:1},8,["disabled"])):e.showDownload&&m.value.length===1?(a(),r("button",{key:3,class:"toolbar-btn",type:"button",title:m.value[0].label,disabled:e.downloadLoading,onClick:t[10]||(t[10]=n=>i("download",m.value[0].action))},[e.downloadLoading?(a(),c(l(s),{key:0,class:"is-loading"},{default:d(()=>[o(l(k))]),_:1})):(a(),c(l(s),{key:1},{default:d(()=>[o(l(P))]),_:1}))],8,se)):u("v-if",!0),e.showRefresh?(a(),r("button",{key:4,class:"toolbar-btn",type:"button",title:"刷新附件",disabled:e.refreshLoading,onClick:t[11]||(t[11]=n=>i("refresh"))},[e.refreshLoading?(a(),c(l(s),{key:0,class:"is-loading"},{default:d(()=>[o(l(k))]),_:1})):(a(),c(l(s),{key:1},{default:d(()=>[o(l(W))]),_:1}))],8,ie)):u("v-if",!0),e.showFullscreen?(a(),r("button",{key:5,class:"toolbar-btn",type:"button",title:e.fullscreen?"退出全屏":"全屏",onClick:t[12]||(t[12]=n=>i("toggle-fullscreen"))},[o(l(s),null,{default:d(()=>[e.fullscreen?(a(),c(l(x),{key:0})):(a(),c(l(X),{key:1}))]),_:1})],8,re)):u("v-if",!0),e.showClose?(a(),r("button",{key:6,class:"toolbar-btn toolbar-btn--close",type:"button",title:"关闭",onClick:t[13]||(t[13]=n=>i("close"))},[o(l(s),null,{default:d(()=>[o(l(x))]),_:1})])):u("v-if",!0)])],2)}}}),we=G(ue,[["__scopeId","data-v-0bd340ec"]]);export{we as default};
3
+ 表现为“点下载没反应”。留在预览容器内即可跟随容器层级,全屏时也仍在视口内。 `),e.showDownload&&m.value.length>1?(n(),f(F,{key:2,trigger:"click",placement:"bottom-end",teleported:!1,persistent:!1,"popper-class":"adtec-roll-down",disabled:e.downloadLoading,onCommand:t[9]||(t[9]=a=>i("download",a))},{dropdown:d(()=>[l(A,null,{default:d(()=>[(n(!0),r(g,null,V(m.value,a=>(n(),f(Z,{key:a.action,command:a.action},{default:d(()=>[u("span",ie,[l(D,{"model-value":a.icon,style:B({color:a.color})},null,8,["model-value","style"]),u("span",{style:B({color:a.color})},b(a.label),5)])]),_:2},1032,["command"]))),128))]),_:1})]),default:d(()=>[u("button",{class:"toolbar-btn",type:"button",title:"下载",disabled:e.downloadLoading},[e.downloadLoading?(n(),f(o(s),{key:0,class:"is-loading"},{default:d(()=>[l(o(k))]),_:1})):(n(),f(o(s),{key:1},{default:d(()=>[l(o(P))]),_:1}))],8,se)]),_:1},8,["disabled"])):e.showDownload&&m.value.length===1?(n(),r("button",{key:3,class:"toolbar-btn",type:"button",title:m.value[0].label,disabled:e.downloadLoading,onClick:t[10]||(t[10]=a=>i("download",m.value[0].action))},[e.downloadLoading?(n(),f(o(s),{key:0,class:"is-loading"},{default:d(()=>[l(o(k))]),_:1})):(n(),f(o(s),{key:1},{default:d(()=>[l(o(P))]),_:1}))],8,re)):c("v-if",!0),e.showRefresh?(n(),r("button",{key:4,class:"toolbar-btn",type:"button",title:"刷新附件",disabled:e.refreshLoading,onClick:t[11]||(t[11]=a=>i("refresh"))},[e.refreshLoading?(n(),f(o(s),{key:0,class:"is-loading"},{default:d(()=>[l(o(k))]),_:1})):(n(),f(o(s),{key:1},{default:d(()=>[l(o(X))]),_:1}))],8,ue)):c("v-if",!0),e.showFullscreen?(n(),r("button",{key:5,class:"toolbar-btn",type:"button",title:e.fullscreen?"退出全屏":"全屏",onClick:t[12]||(t[12]=a=>i("toggle-fullscreen"))},[l(o(s),null,{default:d(()=>[e.fullscreen?(n(),f(o(z),{key:0})):(n(),f(o(j),{key:1}))]),_:1})],8,ce)):c("v-if",!0),e.showClose?(n(),r("button",{key:6,class:"toolbar-btn toolbar-btn--close",type:"button",title:"关闭",onClick:t[13]||(t[13]=a=>i("close"))},[l(o(s),null,{default:d(()=>[l(o(z))]),_:1})])):c("v-if",!0)])],2)}}}),he=J(fe,[["__scopeId","data-v-9fed6acf"]]);export{he as default};