adtec-hnyzfc-core-package 1.1.4 → 1.1.5

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 (52) hide show
  1. package/dist/chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-BaGdbtdl.js +1 -0
  2. package/dist/chunks/{ElDescForm.vue_vue_type_style_index_0_lang-BFA5653m.js → ElDescForm.vue_vue_type_style_index_0_lang-5bhGVNVy.js} +1 -1
  3. package/dist/src/api/DocumentApi.d.ts +6 -2
  4. package/dist/src/api/DocumentApi.js +1 -1
  5. package/dist/src/components/ElCardList.vue.js +1 -1
  6. package/dist/src/components/ElDescForm/ElDescForm.vue.js +1 -1
  7. package/dist/src/components/Search/ElSearchInput.vue.d.ts +34 -0
  8. package/dist/src/components/Search/ElSearchInput.vue.js +1 -0
  9. package/dist/src/components/business/comp.selectUser.vue.js +1 -1
  10. package/dist/src/components/business/comp.userForm.vue.js +1 -1
  11. package/dist/src/components/business/userSelectContent.vue.js +1 -1
  12. package/dist/src/components/tooltip/ElCopyTooltip.vue.d.ts +14 -0
  13. package/dist/src/components/tooltip/ElCopyTooltip.vue.js +1 -0
  14. package/dist/src/components/tooltip/src/tooltip.js +1 -1
  15. package/dist/src/components/upload/CustomElUpload.vue.js +1 -1
  16. package/dist/src/components/upload/FileView.vue.js +1 -1
  17. package/dist/src/components/upload/FileViewComponents.vue.d.ts +0 -1
  18. package/dist/src/components/upload/FileViewComponents.vue.js +1 -1
  19. package/dist/src/components/upload/OfficePreview.vue.d.ts +6 -5
  20. package/dist/src/components/upload/OfficePreview.vue.js +1 -1
  21. package/dist/src/components/upload/OfficePreviewHeaderBar.vue.d.ts +1 -1
  22. package/dist/src/mixin/globalMixin.js +1 -1
  23. package/dist/src/packages/index.d.ts +75 -1
  24. package/dist/src/packages/index.js +1 -1
  25. package/dist/src/plugins/plugins.js +1 -1
  26. package/dist/src/plugins/renderDialog.js +1 -1
  27. package/dist/src/utils/AxiosConfig.js +1 -1
  28. package/dist/src/utils/iconfontRuntime.d.ts +2 -0
  29. package/dist/src/utils/iconfontRuntime.js +1 -1
  30. package/dist/src/utils/modules.js +2 -2
  31. package/dist/src/utils/request.js +1 -1
  32. package/dist/styles/core.css +1 -1
  33. package/dist/styles/element-ui.css +1 -1
  34. package/dist/vite/umoIntegration.d.ts +1 -1
  35. package/dist/vite/umoIntegration.js +1 -1
  36. package/package.json +3 -6
  37. package/dist/src/components/autoToolTip/ElAutoToolTip.vue.d.ts +0 -25
  38. package/dist/src/components/autoToolTip/ElAutoToolTip.vue.js +0 -1
  39. package/dist/src/components/upload/DocxJsViewer.vue.d.ts +0 -32
  40. package/dist/src/components/upload/DocxJsViewer.vue.js +0 -1
  41. package/dist/src/components/upload/ExcelJsViewer.vue.d.ts +0 -33
  42. package/dist/src/components/upload/ExcelJsViewer.vue.js +0 -1
  43. package/dist/src/components/upload/OfficePreviewToolbar.vue.d.ts +0 -41
  44. package/dist/src/components/upload/OfficePreviewToolbar.vue.js +0 -1
  45. package/dist/src/components/upload/PdfJsViewer.vue.d.ts +0 -49
  46. package/dist/src/components/upload/PdfJsViewer.vue.js +0 -1
  47. package/dist/src/utils/docxPreviewUtil.d.ts +0 -10
  48. package/dist/src/utils/docxPreviewUtil.js +0 -1
  49. package/dist/src/utils/excelPreviewUtil.d.ts +0 -41
  50. package/dist/src/utils/excelPreviewUtil.js +0 -1
  51. package/dist/src/utils/pdfSearchUtil.d.ts +0 -30
  52. package/dist/src/utils/pdfSearchUtil.js +0 -1
@@ -0,0 +1 @@
1
+ import{defineComponent as D,useAttrs as F,useSlots as G,ref as u,computed as n,onMounted as J,onUpdated as K,onBeforeUnmount as Q,openBlock as m,createBlock as X,unref as S,normalizeProps as Y,guardReactiveProps as Z,withCtx as k,createElementVNode as f,normalizeClass as z,renderSlot as E,createTextVNode as B,toDisplayString as _,createCommentVNode as ee,createElementBlock as H,Fragment as te,withModifiers as oe,nextTick as h}from"vue";import{ElTooltip as re}from"element-plus";const ne={class:"adtec-copy-tooltip__body"},le=["innerHTML"],se={class:"adtec-copy-tooltip__copy-bar"},ue=D({name:"ElCopyTooltip",inheritAttrs:!1,__name:"ElCopyTooltip",setup(ie){const o=F(),x=G(),T=u(),p=u(),d=u(!1),v=u(!1),g=u(!1);let i,c;const l=n(()=>{const e=o.content;return e==null?"":String(e)}),j=n(()=>o.rawContent===!0||o["raw-content"]===!0),L=n(()=>!!x.content||l.value.trim().length>0),a=n(()=>{const e=o["overflow-only"]??o.overflowOnly;if(e!==void 0)return e!==!1&&e!=="false"}),b=n(()=>a.value===void 0?v.value:a.value),C=n(()=>a.value===void 0?v.value:a.value),M=()=>{const e=o["virtual-triggering"]??o.virtualTriggering;return e===!0||e===""},O=e=>String(e??"").replace(/\s+/g," ").trim(),V=e=>e.matches('button, a, input, textarea, select, [role="button"], svg, .el-icon')?!0:!!e.querySelector('button, a, input, textarea, select, [role="button"], svg, .el-icon'),W=e=>e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1?!0:Array.from(e.querySelectorAll("*")).some(t=>t.scrollWidth>t.clientWidth+1||t.scrollHeight>t.clientHeight+1),q=e=>{if(M()||V(e))return!1;const t=O(e.innerText||e.textContent);if(!t)return!1;const r=O(l.value);return r&&r!==t?!1:Array.from(e.querySelectorAll("*")).every(y=>y.children.length===0)},s=()=>{const e=p.value;if(!e)return;const t=a.value,r=q(e),y=t===void 0?r:t,w=t===void 0?r:t;if(v.value!==r){v.value=r,h(s);return}if(b.value!==y){h(s);return}const A=w&&W(e);g.value!==A&&(g.value=A)},R=()=>{h(()=>{s(),!c&&p.value&&typeof ResizeObserver<"u"&&(c=new ResizeObserver(s),c.observe(p.value))})},N=e=>Array.isArray(e)?e.filter(Boolean).map(t=>String(t)).join(" "):e&&typeof e=="object"?Object.entries(e).filter(([,t])=>t).map(([t])=>t).join(" "):e?String(e):"",P=n(()=>{const e=o["popper-class"]??o.popperClass;return["adtec-copy-tooltip-popper",N(e)].filter(Boolean).join(" ")}),U=n(()=>{const{"popper-class":e,popperClass:t,"overflow-only":r,overflowOnly:y,...w}=o;return{...w,effect:o.effect??"light","popper-class":P.value,disabled:o.disabled===!0||o.disabled===""||!L.value||C.value&&!g.value}});J(()=>{R(),window.addEventListener("resize",s)}),K(R),Q(()=>{c?.disconnect(),c=void 0,window.removeEventListener("resize",s),i&&window.clearTimeout(i)});const I=async e=>{if(!e)return!1;try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.select();let r=!1;try{r=document.execCommand("copy")}catch{r=!1}return document.body.removeChild(t),r},$=async()=>{const e=(T.value?.innerText||l.value).trim();await I(e)&&(d.value=!0,i&&window.clearTimeout(i),i=window.setTimeout(()=>{d.value=!1},1500))};return(e,t)=>(m(),X(S(re),Y(Z(U.value)),{content:k(()=>[f("div",ne,[f("div",{ref_key:"contentRef",ref:T,class:"adtec-copy-tooltip__content"},[E(e.$slots,"content",{},()=>[j.value?(m(),H("span",{key:0,innerHTML:l.value},null,8,le)):(m(),H(te,{key:1},[B(_(l.value),1)],64))])],512),f("div",se,[f("button",{type:"button",class:z(["adtec-copy-tooltip__copy-btn",{"is-copied":d.value}]),title:"复制内容",onClick:oe($,["stop"])},_(d.value?"已复制":"复制"),3)])])]),default:k(()=>[f("span",{ref_key:"referenceRef",ref:p,class:z(["adtec-copy-tooltip__trigger",{"adtec-copy-tooltip__trigger--text":b.value,"adtec-copy-tooltip__trigger--overflow":C.value}])},[S(x).default?E(e.$slots,"default",{},()=>[B(_(l.value),1)],void 0,0):ee("v-if",!0)],2)]),_:3},16))}});export{ue as _};
@@ -1 +1 @@
1
- import{defineComponent as ue,ref as pe,reactive as de,onMounted as me,onUpdated as ie,onBeforeUnmount as ye,computed as N,resolveComponent as u,openBlock as s,createElementBlock as V,Fragment as U,createCommentVNode as A,createVNode as M,withKeys as he,withCtx as i,renderList as B,createBlock as d,normalizeClass as j,createElementVNode as P,toDisplayString as F,mergeProps as h,createTextVNode as q,renderSlot as $,nextTick as I}from"vue";const ve=["onMouseenter"],_e={key:11,class:"el-desc-form__readonly-slot"},W="/",fe=ue({__name:"ElDescForm",props:{model:{},fields:{},rules:{default:()=>({})},column:{default:3},border:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1}},setup(a,{expose:G}){const v=a,x=pe(),g=new Map,k=new Map,S=de({}),w=o=>{const t=g.get(o),l=!!t&&t.scrollWidth>t.clientWidth;S[o]!==l&&(S[o]=l)},z=()=>{I(()=>{g.forEach((o,t)=>w(t))})},H=(o,t)=>{const l=t;if(g.get(o)===l){l&&w(o);return}if(k.get(o)?.disconnect(),k.delete(o),delete S[o],!l){g.delete(o);return}if(g.set(o,l),typeof ResizeObserver<"u"){const c=new ResizeObserver(()=>w(o));c.observe(l),k.set(o,c)}I(()=>w(o))};me(z),ie(z),ye(()=>{k.forEach(o=>o.disconnect()),k.clear(),g.clear()});const y=N(()=>Math.min(3,Math.max(1,v.column||3))),J=o=>{const t=x.value?.$el;if(!t)return;const l=Array.from(t.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 r=document.activeElement;if(!r||!l.includes(r))return;const c=l.indexOf(r),p=o.shiftKey?-1:1,b=(c+p+l.length)%l.length;o.preventDefault();const f=l[b];f.focus();try{const m=f.value.length;f.setSelectionRange(m,m)}catch{}},D=N(()=>{const o={...v.rules};for(const t of v.fields)t.rules?.length&&(o[t.prop]=[...o[t.prop]||[],...t.rules]);return o}),Q=N(()=>{const o=[];let t=y.value,l=-1;for(const r of v.fields){if(!(typeof r.show=="function"?r.show(v.model):r.show!==!1))continue;if(r.type==="textarea"){if(t<y.value&&l>=0){const m=o[l],E=Math.min(Math.max(1,m.span??1),y.value);m.span=Math.min(E+t,y.value)}const f=K(r);o.push(f),l=o.length-1,t=y.value;continue}const p=K(r);o.push(p),l=o.length-1;const b=Math.min(Math.max(1,p.span??1),y.value);t=b<t?t-b:y.value}return o}),T=o=>{const t=o.props||{};return v.readonly===!0||o.readonly===!0||t.readonly===!0},C=(o,t)=>o===t||String(o)===String(t),R=(o,t)=>{if(!o?.length)return;const l=o.find(r=>C(r.value,t));return l===void 0?void 0:String(l.label)},O=(o,t)=>{if(o?.length)for(const l of o){if(C(l.value,t))return String(l.label??l.name??"");if(l.children?.length){const r=O(l.children,t);if(r)return r}}},X=(o,t)=>{let l=o||[];const r=[];for(const c of t){const p=l.find(b=>C(b.value,c));if(!p)break;r.push(String(p.label??p.name??"")),l=p.children||[]}return r.join(" / ")},_=o=>o.trim()||W,L=o=>{const t=v.model?.[o.prop];if(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0)return W;const l=o.props||{},r=o.options;if(o.type==="select")return Array.isArray(t)?_(t.map(c=>R(r,c)??String(c)).filter(Boolean).join("、")):_(R(r,t)??String(t));if(o.type==="radio")return _(R(r,t)??String(t));if(o.type==="checkbox"){const c=Array.isArray(t)?t:[t];return _(c.map(p=>R(r,p)??String(p)).filter(Boolean).join("、"))}if(o.type==="tree-select"){const c=r||l.data;return Array.isArray(t)?_(t.map(p=>O(c,p)??String(p)).filter(Boolean).join("、")):_(O(c,t)??String(t))}if(o.type==="cascader"){const c=X(r,Array.isArray(t)?t:[t]);return _(c||(Array.isArray(t)?t.join(" / "):String(t)))}return o.type==="switch"?t===!0||t===1||t==="1"?l["active-text"]||"是":l["inactive-text"]||"否":_(String(t))},Y=o=>!!D.value[o.prop]?.some(l=>l.required),K=o=>{const t=l=>typeof l=="function"?l(v.model):l;return{...o,span:o.type==="textarea"?y.value:Math.min(Math.max(1,o.span??1),y.value),label:t(o.label),tip:o.tip?t(o.tip):void 0,options:o.options?t(o.options):void 0,placeholder:o.placeholder?t(o.placeholder):void 0,props:o.props?t(o.props):void 0}};return G({validate:()=>x.value?.validate(),resetFields:()=>x.value?.resetFields(),clearValidate:()=>x.value?.clearValidate()}),(o,t)=>{const l=u("el-icons"),r=u("el-tooltip"),c=u("el-input"),p=u("el-input-number"),b=u("el-option"),f=u("el-select"),m=u("el-date-picker"),E=u("el-switch"),Z=u("el-radio"),ee=u("el-radio-group"),oe=u("el-checkbox"),te=u("el-checkbox-group"),le=u("el-tree-select"),ne=u("el-cascader"),re=u("el-form-item"),ae=u("el-descriptions-item"),se=u("el-descriptions"),ce=u("el-form");return s(),V(U,null,[A(" 关闭 validate-on-rule-change:避免规则/字段异步变化时自动整表校验,导致打开弹窗瞬间闪现必填提示 "),M(ce,{ref_key:"formRef",ref:x,class:"el-desc-form",model:a.model,rules:D.value,"validate-on-rule-change":!1,onKeydown:he(J,["tab"])},{default:i(()=>[M(se,{direction:"vertical",column:y.value,border:a.border},{default:i(()=>[(s(!0),V(U,null,B(Q.value,e=>(s(),d(ae,{key:e.prop,label:e.label||void 0,span:e.span},{label:i(()=>[e.label?(s(),V("span",{key:0,class:j(["el-desc-form__label",{"el-desc-form__label--required":Y(e)}])},[q(F(e.label)+" ",1),e.tip?(s(),d(r,{key:0,content:e.tip,placement:"top","popper-class":"el-desc-form-tip-popper"},{default:i(()=>[M(l,{"model-value":"adtec-info",class:"el-desc-form__label-tip"})]),_:1},8,["content"])):A("v-if",!0)],2)):A("v-if",!0)]),default:i(()=>[M(re,{prop:T(e)?void 0:e.prop,class:j({"el-desc-form__form-item--multiline":e.type==="textarea"}),style:{"margin-bottom":"0"},"hide-required-asterisk":""},{default:i(()=>[A(" 只读模式:统一处理文本溢出,只有内容超出单元格宽度时才打开 tooltip "),T(e)&&e.type&&e.type!=="slot"?(s(),d(r,{key:0,content:L(e),disabled:!S[e.prop],effect:"light",placement:"top","popper-class":"el-desc-form-readonly-tip-popper"},{default:i(()=>[P("span",{class:j(["el-desc-form__readonly-text",{"el-desc-form__readonly-text--multiline":e.type==="textarea"}]),onMouseenter:n=>w(e.prop)},[P("span",{ref_for:!0,ref:n=>H(e.prop,n),class:"el-desc-form__readonly-text-content"},F(L(e)),513)],42,ve)]),_:2},1032,["content","disabled"])):e.type==="input"?(s(),d(c,h({key:1,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="textarea"?(s(),d(c,h({key:2,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n,type:"textarea",autosize:{minRows:2,maxRows:4}},{ref_for:!0},e.props,{placeholder:e.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="number"?(s(),d(p,h({key:3,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),null,16,["modelValue","onUpdate:modelValue"])):e.type==="select"?(s(),d(f,h({key:4,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder,clearable:""}),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(b,{key:n.value,label:n.label,value:n.value,disabled:n.disabled},null,8,["label","value","disabled"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="date"?(s(),d(m,h({key:5,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{type:e.props?.type||"date",placeholder:e.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","type","placeholder"])):e.type==="switch"?(s(),d(E,h({key:6,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),null,16,["modelValue","onUpdate:modelValue"])):e.type==="radio"?(s(),d(ee,h({key:7,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(Z,{key:n.value,value:n.value},{default:i(()=>[q(F(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):e.type==="checkbox"?(s(),d(te,h({key:8,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(oe,{key:n.value,value:n.value},{default:i(()=>[q(F(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):e.type==="tree-select"?(s(),d(le,h({key:9,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="cascader"?(s(),d(ne,h({key:10,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n,options:e.options},{ref_for:!0},e.props,{style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","options"])):T(e)?(s(),V("div",_e,[$(o.$slots,e.slot||e.prop,{field:e,model:a.model})])):$(o.$slots,e.slot||e.prop,{field:e,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"])],2112)}}});export{fe as _};
1
+ import{defineComponent as ue,ref as pe,reactive as de,onMounted as me,onUpdated as ie,onBeforeUnmount as ye,computed as N,resolveComponent as u,openBlock as s,createElementBlock as V,Fragment as U,createCommentVNode as A,createVNode as M,withKeys as he,withCtx as i,renderList as B,createBlock as d,normalizeClass as j,createElementVNode as P,toDisplayString as F,mergeProps as h,createTextVNode as q,renderSlot as $,nextTick as I}from"vue";const ve=["onMouseenter"],_e={key:11,class:"el-desc-form__readonly-slot"},W="/",fe=ue({__name:"ElDescForm",props:{model:{},fields:{},rules:{default:()=>({})},column:{default:4},border:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1}},setup(a,{expose:G}){const v=a,x=pe(),g=new Map,k=new Map,S=de({}),w=o=>{const t=g.get(o),l=!!t&&t.scrollWidth>t.clientWidth;S[o]!==l&&(S[o]=l)},z=()=>{I(()=>{g.forEach((o,t)=>w(t))})},H=(o,t)=>{const l=t;if(g.get(o)===l){l&&w(o);return}if(k.get(o)?.disconnect(),k.delete(o),delete S[o],!l){g.delete(o);return}if(g.set(o,l),typeof ResizeObserver<"u"){const c=new ResizeObserver(()=>w(o));c.observe(l),k.set(o,c)}I(()=>w(o))};me(z),ie(z),ye(()=>{k.forEach(o=>o.disconnect()),k.clear(),g.clear()});const y=N(()=>Math.min(4,Math.max(1,v.column||4))),J=o=>{const t=x.value?.$el;if(!t)return;const l=Array.from(t.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 r=document.activeElement;if(!r||!l.includes(r))return;const c=l.indexOf(r),p=o.shiftKey?-1:1,b=(c+p+l.length)%l.length;o.preventDefault();const f=l[b];f.focus();try{const m=f.value.length;f.setSelectionRange(m,m)}catch{}},D=N(()=>{const o={...v.rules};for(const t of v.fields)t.rules?.length&&(o[t.prop]=[...o[t.prop]||[],...t.rules]);return o}),Q=N(()=>{const o=[];let t=y.value,l=-1;for(const r of v.fields){if(!(typeof r.show=="function"?r.show(v.model):r.show!==!1))continue;if(r.type==="textarea"){if(t<y.value&&l>=0){const m=o[l],E=Math.min(Math.max(1,m.span??1),y.value);m.span=Math.min(E+t,y.value)}const f=K(r);o.push(f),l=o.length-1,t=y.value;continue}const p=K(r);o.push(p),l=o.length-1;const b=Math.min(Math.max(1,p.span??1),y.value);t=b<t?t-b:y.value}return o}),T=o=>{const t=o.props||{};return v.readonly===!0||o.readonly===!0||t.readonly===!0},C=(o,t)=>o===t||String(o)===String(t),R=(o,t)=>{if(!o?.length)return;const l=o.find(r=>C(r.value,t));return l===void 0?void 0:String(l.label)},O=(o,t)=>{if(o?.length)for(const l of o){if(C(l.value,t))return String(l.label??l.name??"");if(l.children?.length){const r=O(l.children,t);if(r)return r}}},X=(o,t)=>{let l=o||[];const r=[];for(const c of t){const p=l.find(b=>C(b.value,c));if(!p)break;r.push(String(p.label??p.name??"")),l=p.children||[]}return r.join(" / ")},_=o=>o.trim()||W,L=o=>{const t=v.model?.[o.prop];if(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0)return W;const l=o.props||{},r=o.options;if(o.type==="select")return Array.isArray(t)?_(t.map(c=>R(r,c)??String(c)).filter(Boolean).join("、")):_(R(r,t)??String(t));if(o.type==="radio")return _(R(r,t)??String(t));if(o.type==="checkbox"){const c=Array.isArray(t)?t:[t];return _(c.map(p=>R(r,p)??String(p)).filter(Boolean).join("、"))}if(o.type==="tree-select"){const c=r||l.data;return Array.isArray(t)?_(t.map(p=>O(c,p)??String(p)).filter(Boolean).join("、")):_(O(c,t)??String(t))}if(o.type==="cascader"){const c=X(r,Array.isArray(t)?t:[t]);return _(c||(Array.isArray(t)?t.join(" / "):String(t)))}return o.type==="switch"?t===!0||t===1||t==="1"?l["active-text"]||"是":l["inactive-text"]||"否":_(String(t))},Y=o=>!!D.value[o.prop]?.some(l=>l.required),K=o=>{const t=l=>typeof l=="function"?l(v.model):l;return{...o,span:o.type==="textarea"?y.value:Math.min(Math.max(1,o.span??1),y.value),label:t(o.label),tip:o.tip?t(o.tip):void 0,options:o.options?t(o.options):void 0,placeholder:o.placeholder?t(o.placeholder):void 0,props:o.props?t(o.props):void 0}};return G({validate:()=>x.value?.validate(),resetFields:()=>x.value?.resetFields(),clearValidate:()=>x.value?.clearValidate()}),(o,t)=>{const l=u("el-icons"),r=u("el-tooltip"),c=u("el-input"),p=u("el-input-number"),b=u("el-option"),f=u("el-select"),m=u("el-date-picker"),E=u("el-switch"),Z=u("el-radio"),ee=u("el-radio-group"),oe=u("el-checkbox"),te=u("el-checkbox-group"),le=u("el-tree-select"),ne=u("el-cascader"),re=u("el-form-item"),ae=u("el-descriptions-item"),se=u("el-descriptions"),ce=u("el-form");return s(),V(U,null,[A(" 关闭 validate-on-rule-change:避免规则/字段异步变化时自动整表校验,导致打开弹窗瞬间闪现必填提示 "),M(ce,{ref_key:"formRef",ref:x,class:"el-desc-form",model:a.model,rules:D.value,"validate-on-rule-change":!1,onKeydown:he(J,["tab"])},{default:i(()=>[M(se,{direction:"vertical",column:y.value,border:a.border},{default:i(()=>[(s(!0),V(U,null,B(Q.value,e=>(s(),d(ae,{key:e.prop,label:e.label||void 0,span:e.span},{label:i(()=>[e.label?(s(),V("span",{key:0,class:j(["el-desc-form__label",{"el-desc-form__label--required":Y(e)}])},[q(F(e.label)+" ",1),e.tip?(s(),d(r,{key:0,content:e.tip,placement:"top","popper-class":"el-desc-form-tip-popper"},{default:i(()=>[M(l,{"model-value":"adtec-info",class:"el-desc-form__label-tip"})]),_:1},8,["content"])):A("v-if",!0)],2)):A("v-if",!0)]),default:i(()=>[M(re,{prop:T(e)?void 0:e.prop,class:j({"el-desc-form__form-item--multiline":e.type==="textarea"}),style:{"margin-bottom":"0"},"hide-required-asterisk":""},{default:i(()=>[A(" 只读模式:统一处理文本溢出,只有内容超出单元格宽度时才打开 tooltip "),T(e)&&e.type&&e.type!=="slot"?(s(),d(r,{key:0,content:L(e),disabled:!S[e.prop],effect:"light",placement:"top","popper-class":"el-desc-form-readonly-tip-popper"},{default:i(()=>[P("span",{class:j(["el-desc-form__readonly-text",{"el-desc-form__readonly-text--multiline":e.type==="textarea"}]),onMouseenter:n=>w(e.prop)},[P("span",{ref_for:!0,ref:n=>H(e.prop,n),class:"el-desc-form__readonly-text-content"},F(L(e)),513)],42,ve)]),_:2},1032,["content","disabled"])):e.type==="input"?(s(),d(c,h({key:1,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="textarea"?(s(),d(c,h({key:2,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n,type:"textarea",autosize:{minRows:2,maxRows:4}},{ref_for:!0},e.props,{placeholder:e.placeholder}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="number"?(s(),d(p,h({key:3,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),null,16,["modelValue","onUpdate:modelValue"])):e.type==="select"?(s(),d(f,h({key:4,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder,clearable:""}),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(b,{key:n.value,label:n.label,value:n.value,disabled:n.disabled},null,8,["label","value","disabled"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="date"?(s(),d(m,h({key:5,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{type:e.props?.type||"date",placeholder:e.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","type","placeholder"])):e.type==="switch"?(s(),d(E,h({key:6,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),null,16,["modelValue","onUpdate:modelValue"])):e.type==="radio"?(s(),d(ee,h({key:7,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(Z,{key:n.value,value:n.value},{default:i(()=>[q(F(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):e.type==="checkbox"?(s(),d(te,h({key:8,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props),{default:i(()=>[(s(!0),V(U,null,B(e.options,n=>(s(),d(oe,{key:n.value,value:n.value},{default:i(()=>[q(F(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):e.type==="tree-select"?(s(),d(le,h({key:9,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n},{ref_for:!0},e.props,{placeholder:e.placeholder,style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","placeholder"])):e.type==="cascader"?(s(),d(ne,h({key:10,modelValue:a.model[e.prop],"onUpdate:modelValue":n=>a.model[e.prop]=n,options:e.options},{ref_for:!0},e.props,{style:{width:"100%"}}),null,16,["modelValue","onUpdate:modelValue","options"])):T(e)?(s(),V("div",_e,[$(o.$slots,e.slot||e.prop,{field:e,model:a.model})])):$(o.$slots,e.slot||e.prop,{field:e,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"])],2112)}}});export{fe as _};
@@ -8,7 +8,11 @@ declare const _default: {
8
8
  delSysUploadFiles(ids: string[]): Promise<Record<string, string>>;
9
9
  /** 公开注册:将附件 createBy 绑定为注册手机号 */
10
10
  updateFilesCreateBy(ids: string[], createBy: string): Promise<Record<string, string>>;
11
- /** Word(.doc / .docx)转 PDF 流,仅供预览,下载仍用原文件 */
12
- previewWordAsPdf(id: string): Promise<Blob>;
11
+ /** 创建仅供当前浏览器内嵌使用的短期预览会话。 */
12
+ createPreviewSession(id: string): Promise<{
13
+ url: string;
14
+ }>;
15
+ /** 通过鉴权接口下载原始附件,不向前端暴露存储地址。 */
16
+ downloadFile(id: string): Promise<Blob>;
13
17
  };
14
18
  export default _default;
@@ -1 +1 @@
1
- import o from"../utils/request.js";import i from"../utils/AxiosConfig.js";import"axios";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../utils/buildUploadHeaders.js";import"ts-md5";import"../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../utils/frontendBus.js";const t="/api/doc/",c={getUpLoadFilesVoById(e){return o.get(t+"getUpLoadFilesVoById/"+e)},getUpLoadFilesByBussinessIds(e,s){const r=s===void 0?t+"getUpLoadFilesByBussinessIds":t+"getUpLoadFilesByBussinessIds/"+s;return o.post(r,e)},delSysUploadFile(e){return o.get(t+"delSysUploadFile/"+e)},getBusinessDocuments(e,s){return o.get(t+"getBusinessDocuments/"+e+"/"+s)},fileStatusConfirmation(e){return o.post(t+"fileStatusConfirmation",e)},delSysUploadFiles(e){return o.post(t+"delSysUploadFiles",e)},updateFilesCreateBy(e,s){return o.post(t+"updateFilesCreateBy",{ids:e,createBy:s})},previewWordAsPdf(e){return i({url:t+"preview/wordToPdf",method:"get",params:{id:e},responseType:"blob"}).then(s=>s.data)}};export{c as default};
1
+ import o from"../utils/request.js";import r from"../utils/AxiosConfig.js";import"axios";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../utils/buildUploadHeaders.js";import"ts-md5";import"../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../utils/frontendBus.js";const t="/api/doc/",f={getUpLoadFilesVoById(e){return o.get(t+"getUpLoadFilesVoById/"+e)},getUpLoadFilesByBussinessIds(e,s){const i=s===void 0?t+"getUpLoadFilesByBussinessIds":t+"getUpLoadFilesByBussinessIds/"+s;return o.post(i,e)},delSysUploadFile(e){return o.get(t+"delSysUploadFile/"+e)},getBusinessDocuments(e,s){return o.get(t+"getBusinessDocuments/"+e+"/"+s)},fileStatusConfirmation(e){return o.post(t+"fileStatusConfirmation",e)},delSysUploadFiles(e){return o.post(t+"delSysUploadFiles",e)},updateFilesCreateBy(e,s){return o.post(t+"updateFilesCreateBy",{ids:e,createBy:s})},createPreviewSession(e){return o.post(t+"preview/session/"+e)},downloadFile(e){return r({url:t+"preview/download/"+e,method:"get",responseType:"blob"}).then(s=>s.data)}};export{f as default};
@@ -1 +1 @@
1
- import{defineComponent as C,useModel as V,useSlots as w,ref as E,resolveComponent as r,openBlock as l,createBlock as d,withCtx as t,createElementBlock as _,createElementVNode as M,createCommentVNode as N,Fragment as S,renderList as B,normalizeClass as L,unref as $,createVNode as c,createTextVNode as z,toDisplayString as D,renderSlot as m,mergeModels as f}from"vue";import{_ as F}from"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const I={key:0,class:"el-table__empty-block"},R=C({__name:"ElCardList",props:f({label:{}},{modelValue:{},modelModifiers:{}}),emits:f(["click"],["update:modelValue"]),setup(n,{expose:b,emit:v}){const x=v,a=V(n,"modelValue"),g=w(),i=E(),u=o=>{i.value=o,x("click",o)};return b({handleClick:u}),(o,p)=>{const h=r("el-text"),k=r("el-auto-tool-tip"),s=r("el-flex"),y=r("el-scrollbars");return l(),d(y,{noresize:!0,style:{width:"100%"}},{default:t(()=>[!a.value||(a.value?.length??0)==0?(l(),_("div",I,[...p[0]||(p[0]=[M("span",{class:"el-table__empty-text"},"暂无数据",-1)])])):N("v-if",!0),(l(!0),_(S,null,B(a.value,e=>(l(),d(s,{onClick:T=>u(e),vertical:!0,class:L(e===i.value?"seMeetingSel":""),style:{border:"1px solid #ddd","border-radius":"var(--el-border-radius-base)","margin-bottom":"8px",padding:"8px","padding-top":"4px",cursor:"pointer",overflow:"hidden"}},{default:t(()=>[$(g).header?m(o.$slots,"header",{data:e},void 0,!0,1):(l(),d(s,{key:0,height:"40px",align:"center",style:{"border-bottom":"var(--border)"}},{default:t(()=>[c(s,{align:"center"},{default:t(()=>[c(k,{content:e[n.label],width:"100%"},{content:t(()=>[c(h,{type:"primary",style:{"font-weight":"bold",cursor:"pointer !important"}},{default:t(()=>[z(D(e[n.label]),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)),m(o.$slots,"content",{data:e},void 0,!0)]),_:2},1032,["onClick","class"]))),256))]),_:3})}}}),A=F(R,[["__scopeId","data-v-194b91fe"]]);export{A as default};
1
+ import{defineComponent as C,useModel as V,useSlots as w,ref as E,resolveComponent as r,openBlock as l,createBlock as d,withCtx as t,createElementBlock as m,createElementVNode as M,createCommentVNode as N,Fragment as S,renderList as B,normalizeClass as L,unref as $,createVNode as c,createTextVNode as z,toDisplayString as D,renderSlot as _,mergeModels as f}from"vue";import{_ as F}from"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const I={key:0,class:"el-table__empty-block"},R=C({__name:"ElCardList",props:f({label:{}},{modelValue:{},modelModifiers:{}}),emits:f(["click"],["update:modelValue"]),setup(n,{expose:b,emit:v}){const x=v,a=V(n,"modelValue"),g=w(),i=E(),u=o=>{i.value=o,x("click",o)};return b({handleClick:u}),(o,p)=>{const k=r("el-text"),y=r("el-tooltip"),s=r("el-flex"),h=r("el-scrollbars");return l(),d(h,{noresize:!0,style:{width:"100%"}},{default:t(()=>[!a.value||(a.value?.length??0)==0?(l(),m("div",I,[...p[0]||(p[0]=[M("span",{class:"el-table__empty-text"},"暂无数据",-1)])])):N("v-if",!0),(l(!0),m(S,null,B(a.value,e=>(l(),d(s,{onClick:T=>u(e),vertical:!0,class:L(e===i.value?"seMeetingSel":""),style:{border:"1px solid #ddd","border-radius":"var(--el-border-radius-base)","margin-bottom":"8px",padding:"8px","padding-top":"4px",cursor:"pointer",overflow:"hidden"}},{default:t(()=>[$(g).header?_(o.$slots,"header",{data:e},void 0,!0,1):(l(),d(s,{key:0,height:"40px",align:"center",style:{"border-bottom":"var(--border)"}},{default:t(()=>[c(s,{align:"center"},{default:t(()=>[c(y,{content:e[n.label],placement:"top"},{default:t(()=>[c(k,{type:"primary",style:{"font-weight":"bold",cursor:"pointer !important"}},{default:t(()=>[z(D(e[n.label]),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)),_(o.$slots,"content",{data:e},void 0,!0)]),_:2},1032,["onClick","class"]))),256))]),_:3})}}}),A=F(R,[["__scopeId","data-v-b2c47e6c"]]);export{A as default};
@@ -1 +1 @@
1
- import{_ as m}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BFA5653m.js";import"vue";export{m as default};
1
+ import{_ as m}from"../../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-5bhGVNVy.js";import"vue";export{m as default};
@@ -0,0 +1,34 @@
1
+ type __VLS_Props = {
2
+ actionIcon?: string;
3
+ actionTip?: string;
4
+ showAction?: boolean;
5
+ };
6
+ type __VLS_PublicProps = __VLS_Props & {
7
+ modelValue?: string | number | undefined;
8
+ };
9
+ declare var __VLS_11: {};
10
+ type __VLS_Slots = {} & {
11
+ append?: (props: typeof __VLS_11) => any;
12
+ };
13
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
14
+ focus: () => any;
15
+ blur: () => any;
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ "update:modelValue": (value: string | number | undefined) => any;
18
+ } & {
19
+ search: () => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
+ "onUpdate:modelValue"?: ((value: string | number | undefined) => any) | undefined;
22
+ onSearch?: (() => any) | undefined;
23
+ }>, {
24
+ actionIcon: string;
25
+ actionTip: string;
26
+ showAction: boolean;
27
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
29
+ export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1 @@
1
+ import{defineComponent as I,useAttrs as S,ref as k,useModel as A,computed as a,resolveComponent as i,openBlock as d,createElementBlock as m,normalizeStyle as E,normalizeClass as x,createVNode as s,mergeProps as M,withKeys as B,withModifiers as p,renderSlot as K,withCtx as T,createCommentVNode as g,mergeModels as f}from"vue";import z from"../icon/ElIcons.vue.js";import{_ as N}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"@vueuse/core";const R={key:0,class:"el-search-input__append"},q=I({name:"ElSearchInput",inheritAttrs:!1,__name:"ElSearchInput",props:f({actionIcon:{default:"adtec-query"},actionTip:{default:"查询"},showAction:{type:Boolean,default:!0}},{modelValue:{default:""},modelModifiers:{}}),emits:f(["search"],["update:modelValue"]),setup(e,{expose:h,emit:_}){const v=_,t=S(),o=k(),r=A(e,"modelValue"),y=a(()=>t.class),b=a(()=>t.style),V=a(()=>{const{class:c,style:l,...n}=t;return n}),u=()=>{v("search")};return h({focus:()=>o.value?.focus?.(),blur:()=>o.value?.blur?.()}),(c,l)=>{const n=i("el-input"),w=i("el-button");return d(),m("div",{class:x(["el-search-input",y.value]),style:E(b.value)},[s(n,M({ref_key:"inputRef",ref:o,modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=C=>r.value=C)},V.value,{onKeydown:B(p(u,["stop"]),["enter"])}),null,16,["modelValue","onKeydown"]),e.showAction?(d(),m("div",R,[K(c.$slots,"append",{},()=>[s(w,{class:"el-search-input__default-action","native-type":"button","aria-label":e.actionTip,title:e.actionTip,onClick:p(u,["stop"])},{default:T(()=>[s(z,{"model-value":e.actionIcon},null,8,["model-value"])]),_:1},8,["aria-label","title"])],!0)])):g("v-if",!0)],6)}}}),D=N(q,[["__scopeId","data-v-28a29d6b"]]);export{D as default};
@@ -1 +1 @@
1
- import{_ as o}from"../../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import"vue";import"@vueuse/core";import"../../api/EmployeeInfoApi.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"./comp.userForm.vue.js";import"../../api/DeptInfoApi.js";import"../../hooks/useResetRefHooks.js";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"../../config/vxeSelectColumn.js";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";export{o as default};
1
+ import{_ as o}from"../../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import"vue";import"@vueuse/core";import"../../api/EmployeeInfoApi.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"./comp.userForm.vue.js";import"../../api/DeptInfoApi.js";import"../../hooks/useResetRefHooks.js";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"../../config/vxeSelectColumn.js";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";/* empty css */import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";export{o as default};
@@ -1 +1 @@
1
- import{defineComponent as Y,ref as f,reactive as Z,resolveComponent as u,resolveDirective as ee,withDirectives as te,openBlock as C,createBlock as E,withCtx as v,createVNode as c,unref as a,createElementVNode as le,createElementBlock as oe,Fragment as ae,renderList as re,createTextVNode as se,toDisplayString as ie,mergeProps as ne,nextTick as N}from"vue";import"@vueuse/core";import{ElTooltip as de,ElMessage as ce}from"element-plus";import ue from"../../api/DeptInfoApi.js";import pe from"../../api/EmployeeInfoApi.js";import{useResetRefHooks as k}from"../../hooks/useResetRefHooks.js";import I from"../../utils/FrameworkUtils.js";import{checkboxColumn as me,radioColumn as fe}from"../../config/vxeSelectColumn.js";import{_ as ve}from"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";import{_ as ge}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";import"xlsx-js-style";const he={style:{"padding-top":"4px"}},_e=Y({__name:"comp.userForm",props:{fetchData:{type:Function,default:pe.getMdmEmployeeListByIds},defalutQueryParam:{default:{disabled:!1,deptIds:[]}},multiple:{type:Boolean,default:!0},showOrgInfo:{type:Boolean,default:!0}},emits:["success"],setup(O,{expose:P,emit:D}){const d=O,[l,z]=k({current:1,size:I.getPageSize(),...d.defalutQueryParam}),T=D,h=f([]),y=f(!1),R=f(),m=f(),g=f(""),_=f(),b=f(),[r,U]=k([]),[p,B]=k({records:[],total:0,pages:0,current:1}),L=[d.multiple?{...me,checkboxConfig:{checkMethod:({row:e})=>e.isValid==="1"}}:fe,{align:"left",field:"name",title:"用户姓名",width:120,showOverflow:!0},{align:"left",field:"postName",title:"岗位名称",width:120,showOverflow:!0},{align:"left",field:"deptName",title:"所属部门",showOverflow:!0},...d.showOrgInfo?[{align:"left",field:"orgName",title:"所属组织",width:220,showOverflow:!0}]:[]],Q=Z({border:!0,height:"100%",columnConfig:{resizable:!1},radioConfig:{highlight:!0,trigger:"row"},checkboxConfig:{highlight:!0,range:!1},columns:L}),S=({row:e,rowIndex:t})=>{if(e.isValid!=="1")return"table-row-disabled"},F=async()=>{try{h.value=await ue.getMdmOrgDeptTree({})}catch(e){I.messageError(e)}},M=e=>{e.id===g.value?(_.value=void 0,g.value="",m.value?.clearRadioRow()):(g.value=e.id,_.value=e,m.value?.setRadioRow(e))},q=({row:e,checked:t})=>{e&&(t?r.value.some(o=>o.code===e.code)||r.value.push(e):r.value=r.value.filter(o=>o.code!==e.code))},A=({checked:e})=>{const t=p.value?.records??[];if(e){const o=r.value.map(s=>s.code);t.forEach(s=>{o.includes(s.code)||r.value.push(s)})}else{const o=t.map(s=>s.code);r.value=r.value.filter(s=>!o.includes(s.code))}},J=({row:e})=>{d.multiple||M(e)},V=async()=>{y.value=!0,h.value&&h.value.length||await F(),U(),B(),R.value?.resetFields(),b.value?.setCheckedKeys([]),z(),l.value={...l.value,...d.defalutQueryParam},N(()=>{b.value?.setCheckedKeys(l.value.deptIds??[]),w()})},w=async()=>{try{y.value=!0;let e=[],t;l.value.deptIds&&l.value.deptIds.length&&l.value.deptIds.forEach(i=>{h.value.findIndex(x=>x.id===i)>=0?t=i:e.push(i)});let o=JSON.parse(JSON.stringify(l.value));o.deptIds=e,o.orgId=t,p.value=await d.fetchData(o);const s=r.value.map(i=>i.code);N(()=>{p.value.records.forEach(i=>{s.includes(i.code)&&(d.multiple?m.value?.setCheckboxRow(i,!0):i.id===g.value&&m.value?.setRadioRow(i))})}),l.value.current=p.value.current}catch(e){I.messageError(e)}finally{y.value=!1}},K=e=>{r.value=r.value.filter(o=>o.code!==e.code);const t=p.value.records.find(o=>o.code===e.code);t&&(d.multiple?m.value?.setCheckboxRow(t,!1):t.id===g.value&&(_.value=void 0,g.value="",m.value?.clearRadioRow()))};return P({confirm:async()=>{!r.value.length&&d.multiple||!_.value&&!d.multiple?ce.warning("未选择需要新增的人员!"):T("success",d.multiple?r.value:_.value)},resetQuery:V}),(e,t)=>{const o=u("el-tree-select"),s=u("el-form-item"),i=u("el-input"),x=u("el-form"),$=u("el-search"),H=u("el-title"),j=u("vxe-grid"),G=u("el-pagination"),W=u("el-flex"),X=ee("loading");return te((C(),E(W,{vertical:!0},{default:v(()=>[c($,{class:"border",style:{"border-bottom":"var(--border)"},onReset:V,onSearch:w},{default:v(()=>[c(x,{ref_key:"queryRef",ref:R,inline:!0,model:a(l),style:{width:"100%",height:"100%"},labelPosition:"top",size:"default"},{default:v(()=>[c(s,{style:{width:"220px"},label:"所属部门",prop:"deptIds"},{default:v(()=>[c(o,{ref_key:"ref_tree",ref:b,"check-strictly":"",disabled:a(l).disabled,modelValue:a(l).deptIds,"onUpdate:modelValue":t[0]||(t[0]=n=>a(l).deptIds=n),data:h.value,filterable:"",multiple:"","default-expand-all":!0,props:{label:"name",children:"children",disabled:n=>n.isValid!=="1"||a(l).disabled},"render-after-expand":!1,clearable:"","collapse-tags":"","collapse-tags-tooltip":"","node-key":"id",placeholder:"请选择所属部门"},null,8,["disabled","modelValue","data","props"])]),_:1}),c(s,{style:{width:"220px"},label:"人员编码或名称",prop:"codeorname"},{default:v(()=>[c(i,{modelValue:a(l).codeorname,"onUpdate:modelValue":t[1]||(t[1]=n=>a(l).codeorname=n),clearable:"",placeholder:"请输入人员编码或名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),c(H,{class:"border",style:{"border-bottom":"var(--border)"},title:"人员列表"}),le("div",he,[(C(!0),oe(ae,null,re(a(r),n=>(C(),E(ve,{key:n.code,closable:"",style:{margin:"2px"},onClose:be=>K(n)},{default:v(()=>[c(a(de),{placement:"top",content:n.deptName},{default:v(()=>[se(ie(n.name),1)]),_:2},1032,["content"])]),_:2},1032,["onClose"]))),128))]),c(j,ne({ref_key:"gridRef",ref:m},Q,{data:a(p)?.records,"row-class-name":S,style:{width:"100%","margin-top":"8px"},onCheckboxChange:q,onCheckboxAll:A,onCellClick:J}),null,16,["data"]),c(G,{"current-page":a(l).current,"onUpdate:currentPage":t[2]||(t[2]=n=>a(l).current=n),background:!0,"page-size":a(l).size,total:a(p)?.total?a(p)?.total:0,style:{"margin-top":"5px","margin-bottom":"5px"},onCurrentChange:w},null,8,["current-page","page-size","total"])]),_:1})),[[X,y.value]])}}}),Je=ge(_e,[["__scopeId","data-v-289d3154"]]);export{Je as default};
1
+ import{defineComponent as Z,ref as f,reactive as ee,resolveComponent as c,resolveDirective as te,withDirectives as oe,openBlock as C,createBlock as E,withCtx as v,createVNode as u,unref as r,createElementVNode as le,createElementBlock as ae,Fragment as re,renderList as se,createTextVNode as ie,toDisplayString as ne,mergeProps as de,nextTick as N}from"vue";import"@vueuse/core";import{ElMessage as ce}from"element-plus";import ue from"../../api/DeptInfoApi.js";import pe from"../../api/EmployeeInfoApi.js";import{useResetRefHooks as k}from"../../hooks/useResetRefHooks.js";import I from"../../utils/FrameworkUtils.js";import{checkboxColumn as me,radioColumn as fe}from"../../config/vxeSelectColumn.js";import{_ as ve}from"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";/* empty css */import{_ as ge}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";import"xlsx-js-style";const he={style:{"padding-top":"4px"}},_e=Z({__name:"comp.userForm",props:{fetchData:{type:Function,default:pe.getMdmEmployeeListByIds},defalutQueryParam:{default:{disabled:!1,deptIds:[]}},multiple:{type:Boolean,default:!0},showOrgInfo:{type:Boolean,default:!0}},emits:["success"],setup(O,{expose:P,emit:D}){const d=O,[o,z]=k({current:1,size:I.getPageSize(),...d.defalutQueryParam}),U=D,h=f([]),y=f(!1),R=f(),m=f(),g=f(""),_=f(),b=f(),[a,B]=k([]),[p,L]=k({records:[],total:0,pages:0,current:1}),Q=[d.multiple?{...me,checkboxConfig:{checkMethod:({row:e})=>e.isValid==="1"}}:fe,{align:"left",field:"name",title:"用户姓名",width:120,showOverflow:!0},{align:"left",field:"postName",title:"岗位名称",width:120,showOverflow:!0},{align:"left",field:"deptName",title:"所属部门",showOverflow:!0},...d.showOrgInfo?[{align:"left",field:"orgName",title:"所属组织",width:220,showOverflow:!0}]:[]],S=ee({border:!0,height:"100%",columnConfig:{resizable:!1},radioConfig:{highlight:!0,trigger:"row"},checkboxConfig:{highlight:!0,range:!1},columns:Q}),T=({row:e,rowIndex:t})=>{if(e.isValid!=="1")return"table-row-disabled"},F=async()=>{try{h.value=await ue.getMdmOrgDeptTree({})}catch(e){I.messageError(e)}},M=e=>{e.id===g.value?(_.value=void 0,g.value="",m.value?.clearRadioRow()):(g.value=e.id,_.value=e,m.value?.setRadioRow(e))},q=({row:e,checked:t})=>{e&&(t?a.value.some(l=>l.code===e.code)||a.value.push(e):a.value=a.value.filter(l=>l.code!==e.code))},A=({checked:e})=>{const t=p.value?.records??[];if(e){const l=a.value.map(s=>s.code);t.forEach(s=>{l.includes(s.code)||a.value.push(s)})}else{const l=t.map(s=>s.code);a.value=a.value.filter(s=>!l.includes(s.code))}},J=({row:e})=>{d.multiple||M(e)},V=async()=>{y.value=!0,h.value&&h.value.length||await F(),B(),L(),R.value?.resetFields(),b.value?.setCheckedKeys([]),z(),o.value={...o.value,...d.defalutQueryParam},N(()=>{b.value?.setCheckedKeys(o.value.deptIds??[]),w()})},w=async()=>{try{y.value=!0;let e=[],t;o.value.deptIds&&o.value.deptIds.length&&o.value.deptIds.forEach(i=>{h.value.findIndex(x=>x.id===i)>=0?t=i:e.push(i)});let l=JSON.parse(JSON.stringify(o.value));l.deptIds=e,l.orgId=t,p.value=await d.fetchData(l);const s=a.value.map(i=>i.code);N(()=>{p.value.records.forEach(i=>{s.includes(i.code)&&(d.multiple?m.value?.setCheckboxRow(i,!0):i.id===g.value&&m.value?.setRadioRow(i))})}),o.value.current=p.value.current}catch(e){I.messageError(e)}finally{y.value=!1}},K=e=>{a.value=a.value.filter(l=>l.code!==e.code);const t=p.value.records.find(l=>l.code===e.code);t&&(d.multiple?m.value?.setCheckboxRow(t,!1):t.id===g.value&&(_.value=void 0,g.value="",m.value?.clearRadioRow()))};return P({confirm:async()=>{!a.value.length&&d.multiple||!_.value&&!d.multiple?ce.warning("未选择需要新增的人员!"):U("success",d.multiple?a.value:_.value)},resetQuery:V}),(e,t)=>{const l=c("el-tree-select"),s=c("el-form-item"),i=c("el-input"),x=c("el-form"),$=c("el-search"),H=c("el-title"),j=c("el-tooltip"),G=c("vxe-grid"),W=c("el-pagination"),X=c("el-flex"),Y=te("loading");return oe((C(),E(X,{vertical:!0},{default:v(()=>[u($,{class:"border",style:{"border-bottom":"var(--border)"},onReset:V,onSearch:w},{default:v(()=>[u(x,{ref_key:"queryRef",ref:R,inline:!0,model:r(o),style:{width:"100%",height:"100%"},labelPosition:"top",size:"default"},{default:v(()=>[u(s,{style:{width:"220px"},label:"所属部门",prop:"deptIds"},{default:v(()=>[u(l,{ref_key:"ref_tree",ref:b,"check-strictly":"",disabled:r(o).disabled,modelValue:r(o).deptIds,"onUpdate:modelValue":t[0]||(t[0]=n=>r(o).deptIds=n),data:h.value,filterable:"",multiple:"","default-expand-all":!0,props:{label:"name",children:"children",disabled:n=>n.isValid!=="1"||r(o).disabled},"render-after-expand":!1,clearable:"","collapse-tags":"","collapse-tags-tooltip":"","node-key":"id",placeholder:"请选择所属部门"},null,8,["disabled","modelValue","data","props"])]),_:1}),u(s,{style:{width:"220px"},label:"人员编码或名称",prop:"codeorname"},{default:v(()=>[u(i,{modelValue:r(o).codeorname,"onUpdate:modelValue":t[1]||(t[1]=n=>r(o).codeorname=n),clearable:"",placeholder:"请输入人员编码或名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),u(H,{class:"border",style:{"border-bottom":"var(--border)"},title:"人员列表"}),le("div",he,[(C(!0),ae(re,null,se(r(a),n=>(C(),E(ve,{key:n.code,closable:"",style:{margin:"2px"},onClose:be=>K(n)},{default:v(()=>[u(j,{placement:"top",content:n.deptName},{default:v(()=>[ie(ne(n.name),1)]),_:2},1032,["content"])]),_:2},1032,["onClose"]))),128))]),u(G,de({ref_key:"gridRef",ref:m},S,{data:r(p)?.records,"row-class-name":T,style:{width:"100%","margin-top":"8px"},onCheckboxChange:q,onCheckboxAll:A,onCellClick:J}),null,16,["data"]),u(W,{"current-page":r(o).current,"onUpdate:currentPage":t[2]||(t[2]=n=>r(o).current=n),background:!0,"page-size":r(o).size,total:r(p)?.total?r(p)?.total:0,style:{"margin-top":"5px","margin-bottom":"5px"},onCurrentChange:w},null,8,["current-page","page-size","total"])]),_:1})),[[Y,y.value]])}}}),Ke=ge(_e,[["__scopeId","data-v-2e6ec8c3"]]);export{Ke as default};
@@ -1 +1 @@
1
- import{defineComponent as G,ref as m,shallowRef as O,onMounted as P,resolveComponent as p,resolveDirective as Q,withDirectives as W,openBlock as f,createBlock as h,withCtx as a,createVNode as n,createCommentVNode as L,normalizeStyle as M,createTextVNode as k,toDisplayString as I,createElementBlock as T,Fragment as J,renderList as X}from"vue";import{watchDebounced as Z}from"@vueuse/core";import ee from"../../api/BasicApi.js";import w from"../../api/SysUserApi.js";import"element-plus";import te from"../../utils/FrameworkUtils.js";import{_ as re}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";import"xlsx-js-style";const le=G({__name:"userSelectContent",props:{selectedUserIds:{type:Array,default:()=>[]},roleId:{type:String,default:""},multiple:{type:Boolean,default:!1},includeExternal:{type:Boolean,default:!1},onConfirm:{type:Function,default:void 0}},emits:["success"],setup(V,{expose:H,emit:R}){const U=m(!1),C=O([]),c=m([]),B=m([]),b=m([]),v=m(),_=m("");let E=new Map,D=!1;const y=V,Y=R;Z(_,l=>{v.value?.filter(l.trim())},{debounce:200,maxWait:500});const $=(l,e)=>{if(!l)return!0;const t=l.toLocaleLowerCase();return String(e.name??"").toLocaleLowerCase().includes(t)||String(e.code??"").toLocaleLowerCase().includes(t)};function z(l){const e=c.value.findIndex(t=>t.id===l.id);if(e!==-1){c.value.splice(e,1);const t=c.value.map(r=>r.id);v.value?.setCheckedKeys(t)}}const A=async()=>{b.value=[];let l=y.selectedUserIds;y.roleId&&(l=(await w.getSysRoleUserByRoleId(y.roleId)||[]).map(t=>t.sysUserInfoId).filter(Boolean)),l.length&&(c.value=await w.getInitUserListComp(l),c.value.forEach(e=>{e.id&&b.value.push(e.id)}))},N=(l,e,t)=>{e.id&&l.push({id:e.id,code:e.loginName,name:e.userName,parentId:t,type:"YH",sex:e.sex})},F=l=>{const e=new Map;return E=new Map,l.forEach(t=>{if(t.id&&E.set(t.id,t),!t.mdmDeptId)return;const r=e.get(t.mdmDeptId);r?r.push(t):e.set(t.mdmDeptId,[t])}),e},S=async()=>{if(!D){D=!0,U.value=!0,c.value=[],C.value=[],_.value="";try{const l=y.includeExternal?w.getSysUserInfoUserSelectForTransfer():w.getSysUserInfoUserSelectComp(),[e,t]=await Promise.all([ee.getMdmOrgDeptTree(),l,A()]),r=[];e.forEach(i=>{i.children?.forEach(o=>{o.parentId=i.id}),r.push(...j(i))});const d=[],s=F(t),u=new Set;r.forEach(i=>{i.type="BM",s.get(i.id)?.forEach(o=>{N(d,o,i.id),o.id&&u.add(o.id)})});const g=t.filter(i=>i.isIup==="0"&&!!i.id&&!u.has(i.id));if(g.length){const i="__external_users__";r.push({id:i,code:i,name:"外部人员",parentId:null,type:"BM"}),g.forEach(o=>N(d,o,i))}const x=K([...r,...d]);B.value=x.map(i=>i.id),C.value=x}catch(l){te.messageError(l)}finally{U.value=!1}}};P(()=>{S()});function K(l){const e=new Map,t=[];return l.forEach(r=>{e.set(r.id,{...r,children:[]})}),l.forEach(r=>{const d=e.get(r.id);if(r.parentId===null)t.push(d);else{const s=e.get(r.parentId);s&&s.children.push(d)}}),t}function j(l){const e=[];function t(r){r&&(e.push({id:r.id,code:r.code,name:r.name,parentId:r.parentId}),r.children&&r.children.length>0&&r.children.forEach(d=>t(d)))}return t(l),e}const q=()=>{const l=v.value?.getCheckedNodes().filter(e=>e.type==="YH")??[];c.value=l.map(e=>E.get(e.id)).filter(e=>e!==void 0)};return H({resetQuery:S,confirm:async()=>{await y.onConfirm?.(c.value),Y("success",c.value)},reset:()=>{c.value=[]}}),(l,e)=>{const t=p("el-title"),r=p("el-input"),d=p("el-icons"),s=p("el-flex"),u=p("el-text"),g=p("el-tree"),x=p("el-icon-btn"),i=Q("loading");return W((f(),h(s,{vertical:!0,style:{height:"100%"}},{default:a(()=>[n(s,{vertical:!1},{default:a(()=>[n(s,{vertical:!0,style:{"padding-right":"15px"}},{default:a(()=>[n(t,{title:"人员列表",style:{"border-bottom":"var(--border)"}}),n(r,{modelValue:_.value,"onUpdate:modelValue":e[0]||(e[0]=o=>_.value=o),placeholder:"请输入用户名称或者编码进行搜索"},null,8,["modelValue"]),n(s,{vertical:!0},{default:a(()=>[n(g,{style:{width:"100%"},"filter-node-method":$,"show-checkbox":"",ref_key:"ref_tree",ref:v,data:C.value,onCheck:q,"node-key":"id","default-expanded-keys":B.value,"default-checked-keys":b.value,props:{label:"name",children:"children"}},{default:a(({data:o})=>[n(s,{align:"center"},{default:a(()=>[n(s,{align:"center",justify:"center",width:"20px"},{default:a(()=>[o.type==="BM"?(f(),h(d,{key:0,"model-value":"adtec-dept",style:{color:"var(--el-color-primary)"}})):L("v-if",!0),o.type==="YH"?(f(),h(d,{key:1,"model-value":"adtec-user",style:M({color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"})},null,8,["style"])):L("v-if",!0)]),_:2},1024),n(s,{align:"center"},{default:a(()=>[o.type==="YH"?(f(),h(u,{key:0},{default:a(()=>[k(I(o.name+`(${o.code})`),1)]),_:2},1024)):(f(),h(u,{key:1},{default:a(()=>[k(I(o.name),1)]),_:2},1024))]),_:2},1024)]),_:2},1024)]),_:1},8,["data","default-expanded-keys","default-checked-keys"])]),_:1})]),_:1}),n(s,{vertical:!0,style:{"border-left":"var(--border)","padding-left":"15px"}},{default:a(()=>[n(t,{title:`已选人员(${c.value.length})`,style:{"border-bottom":"var(--border)","margin-top":"5px"}},null,8,["title"]),n(s,{vertical:!0},{default:a(()=>[(f(!0),T(J,null,X(c.value,o=>(f(),T("div",{key:o.id,class:"user-select"},[n(s,{height:"50px",style:{"border-bottom":"var(--border)",cursor:"pointer"}},{default:a(()=>[n(s,{align:"center",width:"30px"},{default:a(()=>[n(d,{"model-value":"adtec-user",style:M([{"font-size":"20px"},{color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"}])},null,8,["style"])]),_:2},1024),n(s,{align:"center",vertical:!0,justify:"flex-start"},{default:a(()=>[n(s,null,{default:a(()=>[n(u,null,{default:a(()=>[k(I(o.userName+`(${o.loginName})`),1)]),_:2},1024)]),_:2},1024),n(s,{align:"flex-start",height:"18px",style:{overflow:"hidden"}},{default:a(()=>[n(u,{style:{"font-size":"12px",opacity:"0.8","margin-bottom":"8px"}},{default:a(()=>[k(I(o.deptName),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),n(s,{width:"50px",align:"center"},{default:a(()=>[n(x,{onClick:se=>z(o),"model-value":"adtec-close",style:{opacity:"0.8",cursor:"pointer"}},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))]),_:1})]),_:1})]),_:1})]),_:1})),[[i,U.value]])}}}),Ee=re(le,[["__scopeId","data-v-03220e00"]]);export{Ee as default};
1
+ import{defineComponent as G,ref as m,shallowRef as O,onMounted as P,resolveComponent as p,resolveDirective as Q,withDirectives as W,openBlock as f,createBlock as h,withCtx as a,createVNode as n,createCommentVNode as L,normalizeStyle as M,createTextVNode as k,toDisplayString as I,createElementBlock as T,Fragment as J,renderList as X}from"vue";import{watchDebounced as Z}from"@vueuse/core";import ee from"../../api/BasicApi.js";import w from"../../api/SysUserApi.js";import"element-plus";import te from"../../utils/FrameworkUtils.js";import{_ as re}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";import"xlsx-js-style";const le=G({__name:"userSelectContent",props:{selectedUserIds:{type:Array,default:()=>[]},roleId:{type:String,default:""},multiple:{type:Boolean,default:!1},includeExternal:{type:Boolean,default:!1},onConfirm:{type:Function,default:void 0}},emits:["success"],setup(V,{expose:H,emit:R}){const U=m(!1),b=O([]),c=m([]),B=m([]),C=m([]),_=m(),v=m("");let E=new Map,D=!1;const y=V,Y=R;Z(v,l=>{_.value?.filter(l.trim())},{debounce:200,maxWait:500});const $=(l,e)=>{if(!l)return!0;const t=l.toLocaleLowerCase();return String(e.name??"").toLocaleLowerCase().includes(t)||String(e.code??"").toLocaleLowerCase().includes(t)};function z(l){const e=c.value.findIndex(t=>t.id===l.id);if(e!==-1){c.value.splice(e,1);const t=c.value.map(r=>r.id);_.value?.setCheckedKeys(t)}}const A=async()=>{C.value=[];let l=y.selectedUserIds;y.roleId&&(l=(await w.getSysRoleUserByRoleId(y.roleId)||[]).map(t=>t.sysUserInfoId).filter(Boolean)),l.length&&(c.value=await w.getInitUserListComp(l),c.value.forEach(e=>{e.id&&C.value.push(e.id)}))},N=(l,e,t)=>{e.id&&l.push({id:e.id,code:e.loginName,name:e.userName,parentId:t,type:"YH",sex:e.sex})},F=l=>{const e=new Map;return E=new Map,l.forEach(t=>{if(t.id&&E.set(t.id,t),!t.mdmDeptId)return;const r=e.get(t.mdmDeptId);r?r.push(t):e.set(t.mdmDeptId,[t])}),e},S=async()=>{if(!D){D=!0,U.value=!0,c.value=[],b.value=[],v.value="";try{const l=y.includeExternal?w.getSysUserInfoUserSelectForTransfer():w.getSysUserInfoUserSelectComp(),[e,t]=await Promise.all([ee.getMdmOrgDeptTree(),l,A()]),r=[];e.forEach(i=>{i.children?.forEach(o=>{o.parentId=i.id}),r.push(...j(i))});const d=[],s=F(t),u=new Set;r.forEach(i=>{i.type="BM",s.get(i.id)?.forEach(o=>{N(d,o,i.id),o.id&&u.add(o.id)})});const g=t.filter(i=>i.isIup==="0"&&!!i.id&&!u.has(i.id));if(g.length){const i="__external_users__";r.push({id:i,code:i,name:"外部人员",parentId:null,type:"BM"}),g.forEach(o=>N(d,o,i))}const x=K([...r,...d]);B.value=x.map(i=>i.id),b.value=x}catch(l){te.messageError(l)}finally{U.value=!1}}};P(()=>{S()});function K(l){const e=new Map,t=[];return l.forEach(r=>{e.set(r.id,{...r,children:[]})}),l.forEach(r=>{const d=e.get(r.id);if(r.parentId===null)t.push(d);else{const s=e.get(r.parentId);s&&s.children.push(d)}}),t}function j(l){const e=[];function t(r){r&&(e.push({id:r.id,code:r.code,name:r.name,parentId:r.parentId}),r.children&&r.children.length>0&&r.children.forEach(d=>t(d)))}return t(l),e}const q=()=>{const l=_.value?.getCheckedNodes().filter(e=>e.type==="YH")??[];c.value=l.map(e=>E.get(e.id)).filter(e=>e!==void 0)};return H({resetQuery:S,confirm:async()=>{await y.onConfirm?.(c.value),Y("success",c.value)},reset:()=>{c.value=[]}}),(l,e)=>{const t=p("el-title"),r=p("el-search-input"),d=p("el-icons"),s=p("el-flex"),u=p("el-text"),g=p("el-tree"),x=p("el-icon-btn"),i=Q("loading");return W((f(),h(s,{vertical:!0,style:{height:"100%"}},{default:a(()=>[n(s,{vertical:!1},{default:a(()=>[n(s,{vertical:!0,style:{"padding-right":"15px"}},{default:a(()=>[n(t,{title:"人员列表",style:{"border-bottom":"var(--border)"}}),n(r,{modelValue:v.value,"onUpdate:modelValue":e[0]||(e[0]=o=>v.value=o),"show-action":!1,placeholder:"请输入用户名称或者编码进行搜索"},null,8,["modelValue"]),n(s,{vertical:!0},{default:a(()=>[n(g,{style:{width:"100%"},"filter-node-method":$,"show-checkbox":"",ref_key:"ref_tree",ref:_,data:b.value,onCheck:q,"node-key":"id","default-expanded-keys":B.value,"default-checked-keys":C.value,props:{label:"name",children:"children"}},{default:a(({data:o})=>[n(s,{align:"center"},{default:a(()=>[n(s,{align:"center",justify:"center",width:"20px"},{default:a(()=>[o.type==="BM"?(f(),h(d,{key:0,"model-value":"adtec-dept",style:{color:"var(--el-color-primary)"}})):L("v-if",!0),o.type==="YH"?(f(),h(d,{key:1,"model-value":"adtec-user",style:M({color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"})},null,8,["style"])):L("v-if",!0)]),_:2},1024),n(s,{align:"center"},{default:a(()=>[o.type==="YH"?(f(),h(u,{key:0},{default:a(()=>[k(I(o.name+`(${o.code})`),1)]),_:2},1024)):(f(),h(u,{key:1},{default:a(()=>[k(I(o.name),1)]),_:2},1024))]),_:2},1024)]),_:2},1024)]),_:1},8,["data","default-expanded-keys","default-checked-keys"])]),_:1})]),_:1}),n(s,{vertical:!0,style:{"border-left":"var(--border)","padding-left":"15px"}},{default:a(()=>[n(t,{title:`已选人员(${c.value.length})`,style:{"border-bottom":"var(--border)","margin-top":"5px"}},null,8,["title"]),n(s,{vertical:!0},{default:a(()=>[(f(!0),T(J,null,X(c.value,o=>(f(),T("div",{key:o.id,class:"user-select"},[n(s,{height:"50px",style:{"border-bottom":"var(--border)",cursor:"pointer"}},{default:a(()=>[n(s,{align:"center",width:"30px"},{default:a(()=>[n(d,{"model-value":"adtec-user",style:M([{"font-size":"20px"},{color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"}])},null,8,["style"])]),_:2},1024),n(s,{align:"center",vertical:!0,justify:"flex-start"},{default:a(()=>[n(s,null,{default:a(()=>[n(u,null,{default:a(()=>[k(I(o.userName+`(${o.loginName})`),1)]),_:2},1024)]),_:2},1024),n(s,{align:"flex-start",height:"18px",style:{overflow:"hidden"}},{default:a(()=>[n(u,{style:{"font-size":"12px",opacity:"0.8","margin-bottom":"8px"}},{default:a(()=>[k(I(o.deptName),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),n(s,{width:"50px",align:"center"},{default:a(()=>[n(x,{onClick:se=>z(o),"model-value":"adtec-close",style:{opacity:"0.8",cursor:"pointer"}},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))]),_:1})]),_:1})]),_:1})]),_:1})),[[i,U.value]])}}}),Ee=re(le,[["__scopeId","data-v-c86b978c"]]);export{Ee as default};
@@ -0,0 +1,14 @@
1
+ declare var __VLS_6: {}, __VLS_8: {};
2
+ type __VLS_Slots = {} & {
3
+ content?: (props: typeof __VLS_6) => any;
4
+ } & {
5
+ default?: (props: typeof __VLS_8) => any;
6
+ };
7
+ declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
9
+ export default _default;
10
+ type __VLS_WithSlots<T, S> = T & {
11
+ new (): {
12
+ $slots: S;
13
+ };
14
+ };
@@ -0,0 +1 @@
1
+ import{_ as o}from"../../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-BaGdbtdl.js";/* empty css */import"vue";import"element-plus";export{o as default};
@@ -1 +1 @@
1
- import{reactive as oe,ref as D,watch as V,onMounted as ne,nextTick as h,onBeforeUnmount as ie,h as v}from"vue";function le(i,u){let b=null;return function(...o){b&&clearTimeout(b),b=window.setTimeout(()=>{i.apply(this,o)},u)}}function W(i){return i==null}function se(i){return i==null||i===""}function ae(i){if(!i.classList||!i.classList.contains("vxe-cell--label"))return i;const u=i.closest(".vxe-cell--wrapper, .vxe-tree-cell");return u&&(u.scrollHeight>u.clientHeight+1||u.scrollWidth>u.clientWidth+1)?u:i}const ce={name:"VxeTooltip",props:{modelValue:Boolean,content:[String,Number],trigger:{type:String,default:"hover"},theme:{type:String,default:"dark"},isArrow:{type:Boolean,default:!0},enterable:{type:Boolean,default:!0},enterDelay:{type:Number,default:300},leaveDelay:{type:Number,default:150}},emits:["update:modelValue"],setup(i,{slots:u,emit:b}){const o=oe({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),B={},g=D(),d=D(),H=D(!1),C=()=>({scrollTop:window.scrollY||document.documentElement.scrollTop,scrollLeft:window.scrollX||document.documentElement.scrollLeft,visibleWidth:document.documentElement.clientWidth,visibleHeight:window.innerHeight||document.documentElement.clientHeight}),O=e=>{const t=e.getBoundingClientRect();return{top:t.top+C().scrollTop,left:t.left+C().scrollLeft}},S=()=>{const{tipTarget:e,tipStore:t}=o;if(!e)return;const n=g.value;if(!n)return;const{scrollTop:l,scrollLeft:f,visibleWidth:r,visibleHeight:p}=C(),{top:a,left:U}=O(e),s=6,w=n.offsetHeight,Z=n.offsetWidth;let A=U+Math.floor((e.offsetWidth-Z)/2);A=Math.max(f+s,Math.min(A,f+r-Z-s));const T=a-w-s,E=a+e.offsetHeight+s,_=T>=l+s&&T+w+s<=l+p,ee=E>=l+s&&E+w+s<=l+p;let m="top",c=T;if(_)m="top",c=T;else if(ee)m="bottom",c=E;else{const M=a-l-s;l+p-(a+e.offsetHeight)-s>=M?(m="bottom",c=Math.max(l+s,l+p-w-s)):(m="top",c=Math.max(l+s,T))}const N=m==="top"?a-l-s:l+p-(a+e.offsetHeight)-s;if(w>N&&N>50){const M=d.value?d.value.previousElementSibling:null,P=M?M.offsetHeight:0,te=Math.max(40,N-P-24);d.value&&(d.value.style.maxHeight=`${te}px`);const z=n.offsetHeight;c=m==="top"?a-z-s:a+e.offsetHeight+s,c=Math.max(l+s,Math.min(c,l+p-z-s))}const F=n.offsetHeight;m==="top"?c=Math.min(c,a-F-s):c=Math.max(c,a+e.offsetHeight+s),c=Math.max(l+s,Math.min(c,l+p-F-s)),t.style.top=`${c}px`,t.style.left=`${A}px`,t.arrowStyle={left:`${U-A+e.offsetWidth/2}px`}},$=e=>{e!==o.visible&&(o.visible=e,o.isUpdate=!0,b("update:modelValue",e))},k=()=>{const e=g.value;return e&&(e.parentNode||document.body.appendChild(e),d.value&&(d.value.style.maxHeight="")),$(!0),o.tipZindex=9999,o.tipStore.placement="top",o.tipStore.style={width:"auto",left:0,top:0,zIndex:o.tipZindex},o.tipStore.arrowStyle={left:"50%"},h().then(()=>(S(),h().then(()=>{S()})))},L=()=>{B.showDelayTip=le(()=>{o.tipActive&&k()},i.enterDelay)},x=(e,t)=>{if(!u.content&&(t===""||se(t)))return h();if(e){const{showDelayTip:l}=B,{trigger:f,enterDelay:r}=i;if(o.tipActive=!0,o.tipTarget=ae(e),o.tipContent=W(t)?"":t,r&&f==="hover")l&&l();else return k()}return h()},Y=()=>{x(o.target,i.content)},j=()=>{const{trigger:e,enterable:t,leaveDelay:n}=i;o.tipActive=!1,t&&e==="hover"?setTimeout(()=>{o.tipActive||y()},n):y()},q=()=>{o.tipActive=!0},I=()=>{const{trigger:e,enterable:t,leaveDelay:n}=i;o.tipActive=!1,t&&e==="hover"&&setTimeout(()=>{o.tipActive||y()},n)},R=e=>{e.stopPropagation();const t=d.value;if(t){const n=e.deltaY,l=t.scrollTop<=0&&n<0,f=t.scrollTop+t.clientHeight>=t.scrollHeight-1&&n>0;(l||f)&&e.preventDefault()}},X=()=>{o.visible?y():x(o.target,i.content)},y=()=>(o.tipTarget=null,o.tipActive=!1,Object.assign(o.tipStore,{style:{},placement:"",arrowStyle:null}),$(!1),h()),G={open(e,t){return x(e||o.target,t)},close:y,updatePlacement(){return h().then(()=>{const{tipTarget:e}=o,t=g.value;if(e&&t)return S(),h().then(()=>{S()})})},isActived(){return o.tipActive},setActived(e){o.tipActive=!!e}},J=()=>{const{tipContent:e}=o,t=u.content,n=[];return t?n.push(v("div",{},t({}))):n.push(v("div",{},`${e}`)),v("div",{class:"vxe-tooltip--body"},[v("div",{class:"vxe-tooltip--copy-bar"},[v("button",{type:"button",class:["vxe-tooltip--copy-btn",{"is--copied":H.value}],title:"复制内容",onClick:K},H.value?"已复制":"复制")]),v("div",{ref:d,class:"vxe-tooltip--content"},n)])},K=async()=>{const e=`${o.tipContent||""}`||(d.value?d.value.innerText:"");if(e){try{await navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();try{document.execCommand("copy")}catch{}document.body.removeChild(t)}H.value=!0,window.setTimeout(()=>{H.value=!1},1500)}},Q=()=>{const{theme:e,isArrow:t,enterable:n}=i,{tipActive:l,visible:f,tipStore:r}=o,p=u.default;let a;return n&&(a={onMouseenter:q,onMouseleave:I,onWheel:R}),v("div",{ref:g,class:["vxe-tooltip--wrapper",`theme--${e}`,{[`placement--${r.placement}`]:r.placement,"is--enterable":n,"is--visible":f,"is--arrow":t,"is--active":l}],style:{...r.style,transition:"opacity 0.2s ease, transform 0.2s ease",opacity:f?1:0,transform:f?"scale(1)":"scale(0.95)"},...a},[J(),t?v("div",{class:"vxe-tooltip--arrow",style:r.arrowStyle}):null,...p?p({}):[]])};return V(()=>i.enterDelay,()=>{L()}),V(()=>i.content,e=>{o.tipContent=W(e)?"":e}),V(()=>i.modelValue,e=>{o.isUpdate||(e?x(o.target,i.content):y()),o.isUpdate=!1}),ne(()=>{h(()=>{const{trigger:e,content:t}=i,n=g.value;if(n){const l=n.parentNode;if(l){o.tipContent=W(t)?"":t,o.tipZindex=1e3,Array.from(n.children).forEach((p,a)=>{a>1&&(l.insertBefore(p,n),o.target||(o.target=p))}),l.removeChild(n);const{target:r}=o;r&&(e==="hover"?(r.onmouseenter=Y,r.onmouseleave=j):e==="click"&&(r.onclick=X)),i.modelValue&&x(r,t)}}})}),ie(()=>{const{target:e}=o,t=g.value;if(e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),t){const n=t.parentNode;n&&n.removeChild(t)}}),L(),{...G,renderVN:Q,reactData:o}},render(){return this.renderVN()}};export{ce as default};
1
+ import{reactive as oe,ref as D,watch as V,onMounted as ne,nextTick as h,onBeforeUnmount as ie,h as v}from"vue";function le(i,u){let b=null;return function(...o){b&&clearTimeout(b),b=window.setTimeout(()=>{i.apply(this,o)},u)}}function W(i){return i==null}function se(i){return i==null||i===""}function ae(i){if(!i.classList||!i.classList.contains("vxe-cell--label"))return i;const u=i.closest(".vxe-cell--wrapper, .vxe-tree-cell");return u&&(u.scrollHeight>u.clientHeight+1||u.scrollWidth>u.clientWidth+1)?u:i}const ce={name:"VxeTooltip",props:{modelValue:Boolean,content:[String,Number],trigger:{type:String,default:"hover"},theme:{type:String,default:"dark"},isArrow:{type:Boolean,default:!0},enterable:{type:Boolean,default:!0},enterDelay:{type:Number,default:300},leaveDelay:{type:Number,default:150}},emits:["update:modelValue"],setup(i,{slots:u,emit:b}){const o=oe({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),B={},g=D(),d=D(),H=D(!1),C=()=>({scrollTop:window.scrollY||document.documentElement.scrollTop,scrollLeft:window.scrollX||document.documentElement.scrollLeft,visibleWidth:document.documentElement.clientWidth,visibleHeight:window.innerHeight||document.documentElement.clientHeight}),O=e=>{const t=e.getBoundingClientRect();return{top:t.top+C().scrollTop,left:t.left+C().scrollLeft}},S=()=>{const{tipTarget:e,tipStore:t}=o;if(!e)return;const n=g.value;if(!n)return;const{scrollTop:l,scrollLeft:f,visibleWidth:r,visibleHeight:p}=C(),{top:a,left:U}=O(e),s=6,w=n.offsetHeight,Z=n.offsetWidth;let A=U+Math.floor((e.offsetWidth-Z)/2);A=Math.max(f+s,Math.min(A,f+r-Z-s));const T=a-w-s,E=a+e.offsetHeight+s,_=T>=l+s&&T+w+s<=l+p,ee=E>=l+s&&E+w+s<=l+p;let m="top",c=T;if(_)m="top",c=T;else if(ee)m="bottom",c=E;else{const M=a-l-s;l+p-(a+e.offsetHeight)-s>=M?(m="bottom",c=Math.max(l+s,l+p-w-s)):(m="top",c=Math.max(l+s,T))}const N=m==="top"?a-l-s:l+p-(a+e.offsetHeight)-s;if(w>N&&N>50){const M=d.value?d.value.previousElementSibling:null,P=M?M.offsetHeight:0,te=Math.max(40,N-P-24);d.value&&(d.value.style.maxHeight=`${te}px`);const z=n.offsetHeight;c=m==="top"?a-z-s:a+e.offsetHeight+s,c=Math.max(l+s,Math.min(c,l+p-z-s))}const F=n.offsetHeight;m==="top"?c=Math.min(c,a-F-s):c=Math.max(c,a+e.offsetHeight+s),c=Math.max(l+s,Math.min(c,l+p-F-s)),t.style.top=`${c}px`,t.style.left=`${A}px`,t.arrowStyle={left:`${U-A+e.offsetWidth/2}px`}},$=e=>{e!==o.visible&&(o.visible=e,o.isUpdate=!0,b("update:modelValue",e))},k=()=>{const e=g.value;return e&&(e.parentNode||document.body.appendChild(e),d.value&&(d.value.style.maxHeight="")),$(!0),o.tipZindex=9999,o.tipStore.placement="top",o.tipStore.style={width:"auto",left:0,top:0,zIndex:o.tipZindex},o.tipStore.arrowStyle={left:"50%"},h().then(()=>(S(),h().then(()=>{S()})))},L=()=>{B.showDelayTip=le(()=>{o.tipActive&&k()},i.enterDelay)},x=(e,t)=>{if(!u.content&&(t===""||se(t)))return h();if(e){const{showDelayTip:l}=B,{trigger:f,enterDelay:r}=i;if(o.tipActive=!0,o.tipTarget=ae(e),o.tipContent=W(t)?"":t,r&&f==="hover")l&&l();else return k()}return h()},Y=()=>{x(o.target,i.content)},j=()=>{const{trigger:e,enterable:t,leaveDelay:n}=i;o.tipActive=!1,t&&e==="hover"?setTimeout(()=>{o.tipActive||y()},n):y()},q=()=>{o.tipActive=!0},I=()=>{const{trigger:e,enterable:t,leaveDelay:n}=i;o.tipActive=!1,t&&e==="hover"&&setTimeout(()=>{o.tipActive||y()},n)},R=e=>{e.stopPropagation();const t=d.value;if(t){const n=e.deltaY,l=t.scrollTop<=0&&n<0,f=t.scrollTop+t.clientHeight>=t.scrollHeight-1&&n>0;(l||f)&&e.preventDefault()}},X=()=>{o.visible?y():x(o.target,i.content)},y=()=>(o.tipTarget=null,o.tipActive=!1,Object.assign(o.tipStore,{style:{},placement:"",arrowStyle:null}),$(!1),h()),G={open(e,t){return x(e||o.target,t)},close:y,updatePlacement(){return h().then(()=>{const{tipTarget:e}=o,t=g.value;if(e&&t)return S(),h().then(()=>{S()})})},isActived(){return o.tipActive},setActived(e){o.tipActive=!!e}},J=()=>{const{tipContent:e}=o,t=u.content,n=[];return t?n.push(v("div",{},t({}))):n.push(v("div",{},`${e}`)),v("div",{class:"vxe-tooltip--body"},[v("div",{ref:d,class:"vxe-tooltip--content"},n),v("div",{class:"vxe-tooltip--copy-bar"},[v("button",{type:"button",class:["vxe-tooltip--copy-btn",{"is--copied":H.value}],title:"复制内容",onClick:K},H.value?"已复制":"复制")])])},K=async()=>{const e=`${o.tipContent||""}`||(d.value?d.value.innerText:"");if(e){try{await navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();try{document.execCommand("copy")}catch{}document.body.removeChild(t)}H.value=!0,window.setTimeout(()=>{H.value=!1},1500)}},Q=()=>{const{theme:e,isArrow:t,enterable:n}=i,{tipActive:l,visible:f,tipStore:r}=o,p=u.default;let a;return n&&(a={onMouseenter:q,onMouseleave:I,onWheel:R}),v("div",{ref:g,class:["vxe-tooltip--wrapper",`theme--${e}`,{[`placement--${r.placement}`]:r.placement,"is--enterable":n,"is--visible":f,"is--arrow":t,"is--active":l}],style:{...r.style,transition:"opacity 0.2s ease, transform 0.2s ease",opacity:f?1:0,transform:f?"scale(1)":"scale(0.95)"},...a},[J(),t?v("div",{class:"vxe-tooltip--arrow",style:r.arrowStyle}):null,...p?p({}):[]])};return V(()=>i.enterDelay,()=>{L()}),V(()=>i.content,e=>{o.tipContent=W(e)?"":e}),V(()=>i.modelValue,e=>{o.isUpdate||(e?x(o.target,i.content):y()),o.isUpdate=!1}),ne(()=>{h(()=>{const{trigger:e,content:t}=i,n=g.value;if(n){const l=n.parentNode;if(l){o.tipContent=W(t)?"":t,o.tipZindex=1e3,Array.from(n.children).forEach((p,a)=>{a>1&&(l.insertBefore(p,n),o.target||(o.target=p))}),l.removeChild(n);const{target:r}=o;r&&(e==="hover"?(r.onmouseenter=Y,r.onmouseleave=j):e==="click"&&(r.onclick=X)),i.modelValue&&x(r,t)}}})}),ie(()=>{const{target:e}=o,t=g.value;if(e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),t){const n=t.parentNode;n&&n.removeChild(t)}}),L(),{...G,renderVN:Q,reactData:o}},render(){return this.renderVN()}};export{ce as default};
@@ -1 +1 @@
1
- import{defineComponent as pe,ref as w,computed as k,useModel as V,resolveComponent as y,resolveDirective as me,openBlock as u,createElementBlock as h,createBlock as S,withCtx as i,createElementVNode as _,Fragment as j,renderList as G,createVNode as m,unref as R,toDisplayString as C,withDirectives as fe,createTextVNode as D,createCommentVNode as H,normalizeStyle as ve,withModifiers as ge,mergeModels as J}from"vue";import{UploadFilled as ye}from"@element-plus/icons-vue";import{ElMessage as r,ElMessageBox as W}from"element-plus";import he from"../../hooks/useFileView.js";import U from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import{userInfoStore as _e}from"../../stores/userInfoStore.js";import{getAcceptString as xe}from"../../utils/uploadAccept.js";import{buildUploadHeaders as we}from"../../utils/buildUploadHeaders.js";import{_ as Ce}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/frontendBus.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"ts-md5";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";const Be={key:0},Fe={style:{display:"flex","flex-direction":"column"}},ke={style:{display:"flex","flex-direction":"column"}},Se=["onClick"],Ue={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},be={class:"el-upload__tip"},Ee=pe({__name:"CustomElUpload",props:J({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},watermarkCode:{type:String,default:()=>{}},readonlyFileIds:{type:Array,default:()=>[]},fileOwnerAccounts:{type:Array,default:()=>[]},uploadCreateBy:{type:String,default:""}},{uploadFilesList:{default:[]},uploadFilesListModifiers:{},loading:{type:Boolean},loadingModifiers:{}}),emits:J(["success"],["update:uploadFilesList","update:loading"]),setup(f,{expose:q,emit:K}){const{fileView:L}=he(),A=K,Q=_e(),v=w(),g=w([]),x=w(""),z=w([]),o=f,N=k(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),X=k(()=>we(N.value)),s=V(f,"uploadFilesList"),Y=e=>{x.value=e},Z=()=>{x.value=""},b=k(()=>xe(o.accept)),P=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"},ee=async e=>{const t=o.uploadCreateBy?.trim(),l=e.id!=null?String(e.id):"";if(!t||!l)return e;try{await U.updateFilesCreateBy([l],t),e.createBy=t}catch(a){B.messageError(a)}return e},te=async(e,t,l)=>{if(e.code==="0"){const a=await ee(e.data);s.value.push(a)}else r.error(e.msg),v.value?.handleRemove(t);for(let a=d.value.length-1;a>=0;a--)d.value[a]===t.name&&d.value.splice(a,1);e.code==="0"&&(o.showOptMessage&&r.success("上传成功"),A("success",{files:s.value,deleteFiles:g.value})),d.value.length===0&&(c.value=!1)},c=V(f,"loading"),d=w([]),le=k(()=>z.value.some(e=>e.status!=="success"&&e.status!=="fail")),$=async e=>{if(s.value.find(p=>p.name===e.name))return r.warning(e.name+",文件已存在"),!1;if(e.size>o.size*1024*1024)return r.warning("文件大小不能超过"+o.size+"MB"),!1;const l=b.value?.split(",").map(p=>p.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(r.error(`文件 ${e.name} 格式不支持,仅允许 ${b.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"])},1),!1):(d.value.push(e.name),!0)},F=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},ae=e=>{if(F(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()):Q.getUserInfo.userCode===e.createBy},oe=async e=>{if(F(e)){r.warning("该附件非您上传,无法预览或删除");return}if(e.name===x.value){if(e.createBy&&!ae(e)){r.warning("您没有权限删除此文件!");return}if(!o.isConfirmDelete&&!await W.confirm("删除不可恢复!您确定删除此附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;v.value?.handleRemove(e)}else E(e)},ne=(e,t)=>{z.value=t},se=async(e,t)=>{if(o.limit===1&&o.overwrite&&s.value.length>=1){const l=s.value[0];if(!o.isConfirmDelete){if(!await W.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{c.value=!0,await U.delSysUploadFile(l.id).catch(p=>{B.messageError(p)})}catch(p){B.messageError(p);return}finally{c.value=!1}}s.value=[],v.value?.clearFiles(),e.length>0?await $(e[0])?(v.value?.handleStart(e[0]),o.autoUpload&&v.value?.submit()):s.value.push(l):g.value.push(l)}else r.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},ie=(e,t,l)=>{r.error("上传失败");for(let a=d.value.length-1;a>=0;a--)d.value[a]===t.name&&d.value.splice(a,1);d.value.length===0&&(c.value=!1)},E=async e=>{const t=s.value.find(l=>l.name===e.name);if(t){if(F(t)){r.warning("该附件非您上传,无法预览或删除");return}L(t.id)}},O=async(e,t=!0)=>{const l=s.value.find(a=>a.name===e.name);if(!(!l||F(l)))try{o.isConfirmDelete?g.value.push(l):await U.delSysUploadFile(l.id),s.value.splice(s.value.indexOf(l),1)}catch(a){B.messageError(a)}},re=(e,t)=>{c.value=!0};return q({remove:O,confirm:async(e=!0)=>{try{if(c.value=!0,o.isConfirmDelete&&g.value.length>0&&e&&(await U.delSysUploadFiles(g.value.map(t=>t.id)),g.value=[]),!o.autoUpload)if(le.value){v.value?.submit();return}else o.showOptMessage&&r.success("操作成功"),A("success",{files:s.value,deleteFiles:g.value});c.value=!1}catch(t){B.messageError(t),c.value=!1}}}),(e,t)=>{const l=y("el-icons"),a=y("el-auto-tool-tip"),p=y("el-icon"),T=y("el-text"),ue=y("el-tooltip"),M=y("el-flex"),ce=y("el-upload"),de=me("loading");return f.isEdit?fe((u(),S(ce,{key:1,ref_key:"ref_upload",ref:v,"file-list":s.value,onSuccess:te,onRemove:O,onPreview:E,"auto-upload":f.autoUpload,onChange:ne,onError:ie,onExceed:se,onProgress:re,"before-upload":$,drag:"",accept:b.value,action:N.value,multiple:"",limit:f.limit,headers:X.value},{file:i(({file:n})=>[m(M,{class:"file-class",onMousemove:I=>Y(n.name),onMouseout:Z,onClick:I=>E(n),height:"20px",width:f.itemWidth},{default:i(()=>[m(M,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:i(()=>[m(ue,{class:"box-item",content:n.name,placement:"top"},{default:i(()=>[m(T,{truncated:"",style:{cursor:"pointer"}},{default:i(()=>[m(l,{"model-value":P(n.name),style:{"margin-right":"5px"}},null,8,["model-value"]),D(" "+C(n.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),m(M,{align:"center",justify:"flex-end",width:"50px"},{default:i(()=>[!n?.businessId&&n.percentage!==100?(u(),S(T,{key:0},{default:i(()=>[D(C(n.percentage)+"% ",1)]),_:2},1024)):H("v-if",!0),n?.businessId||n.percentage===100?(u(),S(l,{key:1,onClick:ge(I=>oe(n),["prevent","stop"]),"model-value":n.name===x.value?"adtec-close":"adtec-success",style:ve([{color:"var(--el-color-success)","font-size":"14px"},{color:n.name===x.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):H("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:i(()=>[m(p,{class:"el-icon--upload"},{default:i(()=>[m(R(ye))]),_:1}),t[0]||(t[0]=_("div",{class:"el-upload__text"},[D("拖动文件或"),_("em",null,"点击上传")],-1)),_("div",be,"最大上传文件大小"+C(f.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[de,c.value]]):(u(),h("div",Be,[s.value?.length?(u(),S(a,{key:0},{tooltipContent:i(()=>[_("div",Fe,[(u(!0),h(j,null,G(s.value,n=>(u(),h("span",{key:n.id,style:{margin:"0 2px"}},C(n.name),1))),128))])]),content:i(()=>[_("div",ke,[(u(!0),h(j,null,G(s.value,n=>(u(),h("div",{key:n.id,class:"file-item",style:{display:"flex","align-items":"center",overflow:"hidden"}},[m(l,{"model-value":P(n.name),style:{"margin-right":"5px"}},null,8,["model-value"]),_("span",{class:"link-name",onClick:I=>R(L)(n.id)},C(n.name),9,Se)]))),128))])]),_:1})):(u(),h("div",Ue,"暂无附件"))]))}}}),tt=Ce(Ee,[["__scopeId","data-v-ef02e046"]]);export{tt as default};
1
+ import{defineComponent as de,ref as _,computed as k,useModel as V,resolveComponent as y,resolveDirective as pe,openBlock as u,createElementBlock as h,createBlock as S,withCtx as i,createElementVNode as x,Fragment as j,renderList as G,createVNode as m,unref as R,toDisplayString as C,withDirectives as me,createTextVNode as D,createCommentVNode as H,normalizeStyle as fe,withModifiers as ve,mergeModels as J}from"vue";import{UploadFilled as ge}from"@element-plus/icons-vue";import{ElMessage as r,ElMessageBox as W}from"element-plus";import ye from"../../hooks/useFileView.js";import U from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import{userInfoStore as he}from"../../stores/userInfoStore.js";import{getAcceptString as xe}from"../../utils/uploadAccept.js";import{buildUploadHeaders as we}from"../../utils/buildUploadHeaders.js";import{_ as _e}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/frontendBus.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"ts-md5";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";const Ce={key:0},Be={style:{display:"flex","flex-direction":"column"}},Fe={style:{display:"flex","flex-direction":"column"}},ke=["onClick"],Se={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},Ue={class:"el-upload__tip"},be=de({__name:"CustomElUpload",props:J({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},watermarkCode:{type:String,default:()=>{}},readonlyFileIds:{type:Array,default:()=>[]},fileOwnerAccounts:{type:Array,default:()=>[]},uploadCreateBy:{type:String,default:""}},{uploadFilesList:{default:[]},uploadFilesListModifiers:{},loading:{type:Boolean},loadingModifiers:{}}),emits:J(["success"],["update:uploadFilesList","update:loading"]),setup(f,{expose:q,emit:K}){const{fileView:L}=ye(),A=K,Q=he(),v=_(),g=_([]),w=_(""),z=_([]),o=f,N=k(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),X=k(()=>we(N.value)),s=V(f,"uploadFilesList"),Y=e=>{w.value=e},Z=()=>{w.value=""},b=k(()=>xe(o.accept)),P=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"},ee=async e=>{const t=o.uploadCreateBy?.trim(),l=e.id!=null?String(e.id):"";if(!t||!l)return e;try{await U.updateFilesCreateBy([l],t),e.createBy=t}catch(a){B.messageError(a)}return e},te=async(e,t,l)=>{if(e.code==="0"){const a=await ee(e.data);s.value.push(a)}else r.error(e.msg),v.value?.handleRemove(t);for(let a=d.value.length-1;a>=0;a--)d.value[a]===t.name&&d.value.splice(a,1);e.code==="0"&&(o.showOptMessage&&r.success("上传成功"),A("success",{files:s.value,deleteFiles:g.value})),d.value.length===0&&(c.value=!1)},c=V(f,"loading"),d=_([]),le=k(()=>z.value.some(e=>e.status!=="success"&&e.status!=="fail")),$=async e=>{if(s.value.find(p=>p.name===e.name))return r.warning(e.name+",文件已存在"),!1;if(e.size>o.size*1024*1024)return r.warning("文件大小不能超过"+o.size+"MB"),!1;const l=b.value?.split(",").map(p=>p.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(r.error(`文件 ${e.name} 格式不支持,仅允许 ${b.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"])},1),!1):(d.value.push(e.name),!0)},F=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},ae=e=>{if(F(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()):Q.getUserInfo.userCode===e.createBy},oe=async e=>{if(F(e)){r.warning("该附件非您上传,无法预览或删除");return}if(e.name===w.value){if(e.createBy&&!ae(e)){r.warning("您没有权限删除此文件!");return}if(!o.isConfirmDelete&&!await W.confirm("删除不可恢复!您确定删除此附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;v.value?.handleRemove(e)}else E(e)},ne=(e,t)=>{z.value=t},se=async(e,t)=>{if(o.limit===1&&o.overwrite&&s.value.length>=1){const l=s.value[0];if(!o.isConfirmDelete){if(!await W.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{c.value=!0,await U.delSysUploadFile(l.id).catch(p=>{B.messageError(p)})}catch(p){B.messageError(p);return}finally{c.value=!1}}s.value=[],v.value?.clearFiles(),e.length>0?await $(e[0])?(v.value?.handleStart(e[0]),o.autoUpload&&v.value?.submit()):s.value.push(l):g.value.push(l)}else r.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},ie=(e,t,l)=>{r.error("上传失败");for(let a=d.value.length-1;a>=0;a--)d.value[a]===t.name&&d.value.splice(a,1);d.value.length===0&&(c.value=!1)},E=async e=>{const t=s.value.find(l=>l.name===e.name);if(t){if(F(t)){r.warning("该附件非您上传,无法预览或删除");return}L(t.id)}},O=async(e,t=!0)=>{const l=s.value.find(a=>a.name===e.name);if(!(!l||F(l)))try{o.isConfirmDelete?g.value.push(l):await U.delSysUploadFile(l.id),s.value.splice(s.value.indexOf(l),1)}catch(a){B.messageError(a)}},re=(e,t)=>{c.value=!0};return q({remove:O,confirm:async(e=!0)=>{try{if(c.value=!0,o.isConfirmDelete&&g.value.length>0&&e&&(await U.delSysUploadFiles(g.value.map(t=>t.id)),g.value=[]),!o.autoUpload)if(le.value){v.value?.submit();return}else o.showOptMessage&&r.success("操作成功"),A("success",{files:s.value,deleteFiles:g.value});c.value=!1}catch(t){B.messageError(t),c.value=!1}}}),(e,t)=>{const l=y("el-icons"),a=y("el-tooltip"),p=y("el-icon"),T=y("el-text"),M=y("el-flex"),ue=y("el-upload"),ce=pe("loading");return f.isEdit?me((u(),S(ue,{key:1,ref_key:"ref_upload",ref:v,"file-list":s.value,onSuccess:te,onRemove:O,onPreview:E,"auto-upload":f.autoUpload,onChange:ne,onError:ie,onExceed:se,onProgress:re,"before-upload":$,drag:"",accept:b.value,action:N.value,multiple:"",limit:f.limit,headers:X.value},{file:i(({file:n})=>[m(M,{class:"file-class",onMousemove:I=>Y(n.name),onMouseout:Z,onClick:I=>E(n),height:"20px",width:f.itemWidth},{default:i(()=>[m(M,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:i(()=>[m(a,{class:"box-item",content:n.name,placement:"top"},{default:i(()=>[m(T,{truncated:"",style:{cursor:"pointer"}},{default:i(()=>[m(l,{"model-value":P(n.name),style:{"margin-right":"5px"}},null,8,["model-value"]),D(" "+C(n.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),m(M,{align:"center",justify:"flex-end",width:"50px"},{default:i(()=>[!n?.businessId&&n.percentage!==100?(u(),S(T,{key:0},{default:i(()=>[D(C(n.percentage)+"% ",1)]),_:2},1024)):H("v-if",!0),n?.businessId||n.percentage===100?(u(),S(l,{key:1,onClick:ve(I=>oe(n),["prevent","stop"]),"model-value":n.name===w.value?"adtec-close":"adtec-success",style:fe([{color:"var(--el-color-success)","font-size":"14px"},{color:n.name===w.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):H("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:i(()=>[m(p,{class:"el-icon--upload"},{default:i(()=>[m(R(ge))]),_:1}),t[0]||(t[0]=x("div",{class:"el-upload__text"},[D("拖动文件或"),x("em",null,"点击上传")],-1)),x("div",Ue,"最大上传文件大小"+C(f.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[ce,c.value]]):(u(),h("div",Ce,[s.value?.length?(u(),S(a,{key:0,placement:"top"},{content:i(()=>[x("div",Be,[(u(!0),h(j,null,G(s.value,n=>(u(),h("span",{key:n.id,style:{margin:"0 2px"}},C(n.name),1))),128))])]),default:i(()=>[x("div",Fe,[(u(!0),h(j,null,G(s.value,n=>(u(),h("div",{key:n.id,class:"file-item",style:{display:"flex","align-items":"center",overflow:"hidden"}},[m(l,{"model-value":P(n.name),style:{"margin-right":"5px"}},null,8,["model-value"]),x("span",{class:"link-name",onClick:I=>R(L)(n.id)},C(n.name),9,ke)]))),128))])]),_:1})):(u(),h("div",Se,"暂无附件"))]))}}}),et=_e(be,[["__scopeId","data-v-b552e9aa"]]);export{et as default};
@@ -1 +1 @@
1
- import{defineComponent as B,useModel as I,ref as d,computed as U,watch as M,onMounted as P,onBeforeUnmount as z,resolveDirective as D,openBlock as c,createBlock as g,Teleport as j,withDirectives as q,createElementBlock as A,normalizeClass as V,unref as n,createCommentVNode as h,createElementVNode as H,mergeModels as O}from"vue";import{useVModel as F}from"@vueuse/core";import N from"../../api/framework.js";import $ from"../../utils/FrameworkUtils.js";import{toSameOriginFileUrl as G}from"../../utils/toSameOriginFileUrl.js";import J from"../../utils/AxiosConfig.js";import K from"./OfficePreview.vue.js";import Q from"./OfficePreviewToolbar.vue.js";import{isHeaderPreviewFile as W,resolveOfficeFileExt as X}from"../../utils/officePreviewUtil.js";import{_ as Y}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"xlsx-js-style";import"../../api/DocumentApi.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"./PdfJsViewer.vue.js";import"pdfjs-dist/legacy/build/pdf.mjs";import"pdfjs-dist/legacy/build/pdf.worker.mjs?url";import"../../utils/pdfSearchUtil.js";import"./ExcelJsViewer.vue.js";import"../../utils/excelPreviewUtil.js";import"fflate";import"./DocxJsViewer.vue.js";import"docx-preview";import"../../utils/docxPreviewUtil.js";const Z=B({__name:"FileView",props:O({title:{type:String,default:""},url:{type:String,default:""},fileId:{type:String,default:""},edit:{type:String,default:"view"}},{modelValue:{},modelModifiers:{}}),emits:O(["update:title","update:url","update:fileId","update:edit"],["update:modelValue"]),setup(k,{emit:R}){const m=I(k,"modelValue"),t=d(!1),s=d(1),E=d(null),o=d(!1),f=k,v=R,u=F(f,"title",v),b=F(f,"fileId",v),a=F(f,"url",v),i=U(()=>W(void 0,u.value,a.value)),T=U(()=>t.value&&!i.value),p=()=>E.value,x=()=>{const e=p();o.value=!!e&&document.fullscreenElement===e,document.body.style.overflow=o.value?"hidden":""},w=async()=>{try{document.fullscreenElement===p()&&await document.exitFullscreen()}catch{}o.value=!1,document.body.style.overflow=""},C=async()=>{const e=p();if(e)try{document.fullscreenElement===e?await document.exitFullscreen():await e.requestFullscreen()}catch{o.value=!o.value,document.body.style.overflow=o.value?"hidden":""}},L=async()=>{await w(),m.value=!1};M([m,a],([e,l])=>{e&&l?(i.value||(t.value=!0),s.value=1):e||(t.value=!1,s.value=1,w())},{immediate:!0}),P(()=>{document.addEventListener("fullscreenchange",x)}),z(()=>{document.removeEventListener("fullscreenchange",x),w()});const _=()=>X(void 0,u.value,a.value),S=async()=>{try{t.value=!0;const e=await N.getFileAccessAddress(b.value),l=await J({url:G(e.url),method:"get",responseType:"blob"}),y=new Blob([l.data],{type:"application/"+_()}),r=document.createElement("a");r.href=window.URL.createObjectURL(y),r.download=u.value,r.click(),window.URL.revokeObjectURL(r.href)}catch(e){$.messageError(e)}finally{t.value=!1}};return(e,l)=>{const y=D("loading");return m.value?(c(),g(j,{key:0,to:"body"},[q((c(),A("div",{"element-loading-text":"加载中,请稍后。。。",class:V(["file-view-overlay",{"is-preview-fullscreen":o.value}])},[i.value?h("v-if",!0):(c(),g(Q,{key:0,class:"file-view-toolbar",zoom:s.value,"show-zoom":!1,"show-download":!!n(a),"show-fullscreen":!0,"show-close":!0,fullscreen:o.value,"download-loading":t.value,onDownload:S,onToggleFullscreen:C,onClose:L},null,8,["zoom","show-download","fullscreen","download-loading"])),H("div",{ref_key:"previewContainerRef",ref:E,class:V(["office-preview",{"has-rich-header":i.value,"fullscreen-mode":o.value}])},[n(a)?(c(),g(K,{key:0,scale:s.value,"onUpdate:scale":l[0]||(l[0]=r=>s.value=r),url:n(a),"file-id":n(b),"file-name":n(u),"show-header":i.value,"show-download":!!n(a),"show-fullscreen":i.value,"show-close":i.value,fullscreen:o.value,"download-loading":t.value,onLoaded:l[1]||(l[1]=r=>t.value=!1),onError:l[2]||(l[2]=r=>t.value=!1),onDownload:S,onToggleFullscreen:C,onClose:L},null,8,["scale","url","file-id","file-name","show-header","show-download","show-fullscreen","show-close","fullscreen","download-loading"])):h("v-if",!0)],2)],2)),[[y,T.value]])])):h("v-if",!0)}}}),Me=Y(Z,[["__scopeId","data-v-13a17ad8"]]);export{Me as default};
1
+ import{defineComponent as k,useModel as E,ref as c,onMounted as L,onBeforeUnmount as x,openBlock as C,createBlock as R,Teleport as U,createElementVNode as w,normalizeClass as y,createVNode as I,unref as s,createCommentVNode as M,mergeModels as g}from"vue";import{useVModel as u}from"@vueuse/core";import S from"../../api/DocumentApi.js";import B from"../../utils/FrameworkUtils.js";import N from"./OfficePreview.vue.js";import{_ as O}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"xlsx-js-style";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";const j=k({__name:"FileView",props:g({title:{type:String,default:""},url:{type:String,default:""},fileId:{type:String,default:""},edit:{type:String,default:"view"}},{modelValue:{},modelModifiers:{}}),emits:g(["update:title","update:url","update:fileId","update:edit"],["update:modelValue"]),setup(d,{emit:h}){const m=E(d,"modelValue"),n=d,r=h,f=u(n,"title",r),i=u(n,"fileId",r),F=u(n,"url",r),o=c(null),l=c(!1),a=c(!1),p=()=>{const e=o.value;l.value=!!e&&document.fullscreenElement===e,document.body.style.overflow=l.value?"hidden":""},v=async()=>{try{document.fullscreenElement===o.value&&await document.exitFullscreen()}catch{}l.value=!1,document.body.style.overflow=""},_=async()=>{const e=o.value;if(e)try{document.fullscreenElement===e?await document.exitFullscreen():await e.requestFullscreen()}catch{l.value=!l.value,document.body.style.overflow=l.value?"hidden":""}},V=async()=>{await v(),m.value=!1},b=async()=>{if(i.value)try{a.value=!0;const e=await S.downloadFile(i.value),t=document.createElement("a");t.href=URL.createObjectURL(e),t.download=f.value,t.click(),URL.revokeObjectURL(t.href)}catch(e){B.messageError(e)}finally{a.value=!1}};return L(()=>document.addEventListener("fullscreenchange",p)),x(()=>{document.removeEventListener("fullscreenchange",p),v()}),(e,t)=>m.value?(C(),R(U,{key:0,to:"body"},[w("div",{class:y(["file-view-overlay",{"is-preview-fullscreen":l.value}])},[w("div",{ref_key:"previewContainerRef",ref:o,class:y(["office-preview",{"fullscreen-mode":l.value}])},[I(N,{url:s(F),"file-id":s(i),"file-name":s(f),"show-header":"","show-download":"","show-fullscreen":"","show-close":"",fullscreen:l.value,"download-loading":a.value,onDownload:b,onToggleFullscreen:_,onClose:V},null,8,["url","file-id","file-name","fullscreen","download-loading"])],2)],2)])):M("v-if",!0)}}),ae=O(j,[["__scopeId","data-v-52672773"]]);export{ae as default};
@@ -1,4 +1,3 @@
1
- import 'vue-img-viewr/styles/index.css';
2
1
  declare const _default: import("vue").DefineComponent<{}, {
3
2
  viewFile: (id: string) => void;
4
3
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1 +1 @@
1
- import{defineComponent as f,ref as o,openBlock as w,createBlock as v,createCommentVNode as g}from"vue";import"vue-img-viewr/styles/index.css";import{showImages as F}from"vue-img-viewr";import b from"../../api/DocumentApi.js";import U from"../../utils/FrameworkUtils.js";import k from"../../api/framework.js";import{toSameOriginFileUrl as V}from"../../utils/toSameOriginFileUrl.js";import x from"./FileView.vue.js";import I from"../../utils/AxiosConfig.js";import{getFileSuffix as _,isPreviewableSuffix as y}from"../../utils/uploadAccept.js";import"../../utils/request.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"xlsx-js-style";import"@vueuse/core";import"./OfficePreview.vue.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../../utils/officePreviewUtil.js";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"./PdfJsViewer.vue.js";import"pdfjs-dist/legacy/build/pdf.mjs";import"pdfjs-dist/legacy/build/pdf.worker.mjs?url";import"../../utils/pdfSearchUtil.js";import"./ExcelJsViewer.vue.js";import"../../utils/excelPreviewUtil.js";import"fflate";import"./DocxJsViewer.vue.js";import"docx-preview";import"../../utils/docxPreviewUtil.js";import"./OfficePreviewToolbar.vue.js";const we=f({__name:"FileViewComponents",setup(L,{expose:s}){const i=o(!1),p=o(""),a=o(""),n=o(""),u=o("view"),c=["jpg","jpeg","png","gif","bmp"],d=async(r,e)=>{const t=await I({url:V(e),method:"get",responseType:"blob"}),m=new Blob([t.data]),l=document.createElement("a");l.href=window.URL.createObjectURL(m),l.download=r.name,l.click(),window.URL.revokeObjectURL(l.href)};return s({viewFile:async r=>{try{const e=await b.getUpLoadFilesVoById(r),t=await k.getFileAccessAddress(e.id),m=_(e);if(!y(m)){await d(e,t.url);return}c.includes(m)?F({urls:[t.url],index:0}):(p.value=e.name,a.value=t.url,n.value=e.id,i.value=!0)}catch(e){U.messageError(e)}}}),(r,e)=>i.value?(w(),v(x,{key:0,modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=t=>i.value=t),title:p.value,url:a.value,fileId:n.value,edit:u.value},null,8,["modelValue","title","url","fileId","edit"])):g("v-if",!0)}});export{we as default};
1
+ import{defineComponent as d,ref as l,openBlock as f,createBlock as u,createCommentVNode as v}from"vue";import n from"../../api/DocumentApi.js";import w from"../../utils/FrameworkUtils.js";import F from"./FileView.vue.js";import{getFileSuffix as V,isPreviewableSuffix as k}from"../../utils/uploadAccept.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"element-plus";import"../../utils/frontendBus.js";import"xlsx-js-style";import"@vueuse/core";import"./OfficePreview.vue.js";import"../../utils/officePreviewUtil.js";import"./OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const M=d({__name:"FileViewComponents",setup(U,{expose:p}){const i=l(!1),m=l(""),a=l(""),s=l("view"),c=async(o,e)=>{const t=await n.downloadFile(o),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=e,r.click(),URL.revokeObjectURL(r.href)};return p({viewFile:async o=>{try{const e=await n.getUpLoadFilesVoById(o),t=V(e);if(!k(t)){await c(e.id,e.name);return}m.value=e.name,a.value=e.id,i.value=!0}catch(e){w.messageError(e)}}}),(o,e)=>i.value?(f(),u(F,{key:0,modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=t=>i.value=t),title:m.value,"file-id":a.value,edit:s.value},null,8,["modelValue","title","file-id","edit"])):v("v-if",!0)}});export{M as default};
@@ -1,6 +1,5 @@
1
- import { type OfficePreviewType } from '../../utils/officePreviewUtil.ts';
2
1
  type __VLS_Props = {
3
- url: string;
2
+ url?: string;
4
3
  fileId?: string;
5
4
  fileName?: string;
6
5
  fileType?: string;
@@ -15,19 +14,17 @@ type __VLS_Props = {
15
14
  fullscreen?: boolean;
16
15
  downloadLoading?: boolean;
17
16
  refreshLoading?: boolean;
18
- /** 库里有附件记录但物理文件无法加载时的提示 */
19
17
  lostDescription?: string;
20
- /** 父组件已判定附件丢失(如无下载地址)时直接展示丢失态 */
21
18
  attachmentLost?: boolean;
22
19
  };
23
20
  type __VLS_PublicProps = __VLS_Props & {
24
21
  'scale'?: number;
25
22
  };
26
23
  declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
24
+ reloadPreview: () => void;
27
25
  zoomIn: () => void;
28
26
  zoomOut: () => void;
29
27
  resetZoom: () => void;
30
- officeType: globalThis.ComputedRef<OfficePreviewType>;
31
28
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
32
29
  close: () => any;
33
30
  error: (err?: unknown) => any;
@@ -45,6 +42,7 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
45
42
  "onToggle-fullscreen"?: (() => any) | undefined;
46
43
  "onUpdate:scale"?: ((value: number) => any) | undefined;
47
44
  }>, {
45
+ url: string;
48
46
  showClose: boolean;
49
47
  fullscreen: boolean;
50
48
  showSearch: boolean;
@@ -55,6 +53,9 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
55
53
  showFullscreen: boolean;
56
54
  downloadLoading: boolean;
57
55
  refreshLoading: boolean;
56
+ fileId: string;
57
+ fileName: string;
58
+ fileType: string;
58
59
  showHeader: boolean;
59
60
  lostDescription: string;
60
61
  attachmentLost: boolean;
@@ -1 +1 @@
1
- import{defineComponent as Ce,useModel as Ne,ref as r,computed as t,watch as q,nextTick as Q,resolveComponent as X,openBlock as s,createElementBlock as p,normalizeClass as Be,Fragment as Ie,createBlock as C,unref as j,createCommentVNode as P,createElementVNode as x,toDisplayString as O,createVNode as G,withCtx as K,createTextVNode as Oe,mergeModels as Y}from"vue";import{ElMessage as ee}from"element-plus";import Me from"../../utils/AxiosConfig.js";import Re from"../../api/DocumentApi.js";import"xlsx-js-style";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import{toSameOriginFileUrl as Ee}from"../../utils/toSameOriginFileUrl.js";import Fe from"./OfficePreviewHeaderBar.vue.js";import Ve from"./PdfJsViewer.vue.js";import De from"./ExcelJsViewer.vue.js";import He from"./DocxJsViewer.vue.js";import{toOfficePreviewType as ze,isLegacyDocFile as Ze,isSupportedPreviewType as Ae,MAX_RICH_PREVIEW_ZOOM as _e,MIN_OFFICE_ZOOM as We,isLikelyHtmlOrJsonBlob as ae,clampRichPreviewZoom as oe,OFFICE_ZOOM_STEP as le,looksLikePdfBlob as $e}from"../../utils/officePreviewUtil.js";import{_ as Je}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"../../utils/frontendBus.js";import"../../utils/request.js";import"@element-plus/icons-vue";import"pdfjs-dist/legacy/build/pdf.mjs";import"pdfjs-dist/legacy/build/pdf.worker.mjs?url";import"../../utils/pdfSearchUtil.js";import"../../utils/excelPreviewUtil.js";import"fflate";import"docx-preview";import"../../utils/docxPreviewUtil.js";const be={class:"office-rich-wrap"},Ue={key:3,class:"txt-preview"},qe={key:4,class:"office-rich-loading"},Qe={class:"loading-card"},Xe={key:0,class:"loading-sub"},je={key:5,class:"office-rich-lost"},Ge={key:6,class:"office-rich-loading"},Ke={class:"loading-card"},Ye={class:"loading-title"},ea={key:0,class:"loading-sub"},aa={key:1,class:"unsupported-preview"},oa="文档预览失败,请下载后查看",M="文件获取失败或格式异常,请下载后查看",la=Ce({__name:"OfficePreview",props:Y({url:{},fileId:{},fileName:{},fileType:{},showHeader:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showPageNav:{type:Boolean,default:!0},showZoom:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!1},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},lostDescription:{default:"附件已丢失"},attachmentLost:{type:Boolean,default:!1}},{scale:{default:1},scaleModifiers:{}}),emits:Y(["loaded","error","download","refresh","toggle-fullscreen","close"],["update:scale"]),setup(n,{expose:te,emit:re}){const o=n,u=Ne(n,"scale"),c=re,f=r(),N=r(""),L=r(!1),R=r(null),E=r(null),F=r(null),w=r(1),V=r(0),B=r(""),g=r(-1),y=r(0),m=r(!1),i=r(!1),D=r(""),S=r("fetch"),se=t(()=>S.value==="fetch"?"正在获取文档,请稍候…":"正在打开文档,请稍候…"),l=t(()=>ze(o.fileType,o.fileName,o.url)),ne=t(()=>Ze(o.fileType,o.fileName,o.url)),ie=t(()=>ne.value||l.value==="docx"),k=t(()=>l.value==="txt"),I=t(()=>o.attachmentLost||l.value==="pdf"||l.value==="excel"||l.value==="docx"),_=t(()=>I.value||k.value),ue=t(()=>o.showSearch&&!i.value&&!k.value),ce=t(()=>o.showPageNav&&!i.value&&l.value!=="excel"&&!k.value),ve=t(()=>o.showZoom&&!i.value&&!k.value),de=t(()=>o.showDownload&&!i.value),fe=t(()=>o.showRefresh&&!i.value),me=t(()=>o.showFullscreen&&!i.value),W=t(()=>!!l.value&&!Ae(l.value)),pe=t(()=>`暂不支持在线预览 ${l.value||"未知"} 格式,请下载后查看`),T=t(()=>o.fileName||""),he=t(()=>D.value||o.lostDescription),h=t(()=>l.value==="pdf"||L.value?R.value:l.value==="excel"?E.value:l.value==="docx"?F.value:null),we=()=>{f.value=void 0,N.value="",L.value=!1,u.value=1,w.value=1,V.value=0,B.value="",g.value=-1,y.value=0,m.value=!1,i.value=!1,D.value="",S.value="fetch",R.value?.clearSearch(),E.value?.clearSearch(),F.value?.clearSearch()},v=(a,e)=>{m.value=!1,i.value=!0,f.value=void 0,D.value=e||o.lostDescription,c("error",a)},$=async a=>!a||a.size===0?(v(void 0,o.lostDescription),null):await $e(a)?a:(await ae(a),v(void 0,M),null),ge=async()=>{if(!o.fileId){m.value=!1,ee.warning("无法预览该 Word 文件,请下载后查看"),c("loaded");return}S.value="open";const a=await Re.previewWordAsPdf(o.fileId),e=await $(a);e&&(L.value=!0,f.value=e)},ye=async()=>{if(o.attachmentLost){v();return}if(!(!o.url||!l.value)){if(W.value){m.value=!1,c("loaded");return}m.value=!0,S.value="fetch";try{if(ie.value){await ge();return}const a=await Me({url:Ee(o.url),method:"get",responseType:"blob"});if(l.value==="txt"){if(N.value=await a.data.text(),!N.value.trim()){v();return}m.value=!1,c("loaded")}else{if(S.value="open",!a.data||a.data.size===0){v();return}if(l.value==="pdf"){const e=await $(a.data);if(!e)return;f.value=e;return}if(await ae(a.data)){v(void 0,M);return}f.value=a.data}}catch(a){v(a,M)}}},H=async()=>{await Q(),V.value=Number(h.value?.totalPages??0),m.value=!1,c("loaded")},z=a=>{v(a,oa)},Z=()=>{u.value=oe(u.value+le)},A=()=>{u.value=oe(u.value-le)},J=()=>{u.value=1},Pe=()=>{h.value?.scrollToPage?.(w.value-1)},xe=()=>{h.value?.scrollToPage?.(w.value+1)},ke=async a=>{if(B.value=a,!a){b();return}const e=await h.value?.runSearch?.(a);if(!e||e.total===0){g.value=-1,y.value=0,ee.warning("未找到匹配内容");return}g.value=e.index,y.value=e.total},b=()=>{B.value="",g.value=-1,y.value=0,h.value?.clearSearch?.()},Le=async()=>{const a=await h.value?.gotoSearchMatch?.(-1);a&&(g.value=a.index,y.value=a.total)},Se=async()=>{const a=await h.value?.gotoSearchMatch?.(1);a&&(g.value=a.index,y.value=a.total)};return q(()=>[o.url,o.fileName,o.fileType,o.attachmentLost],([a,,,e])=>{if(we(),e){v();return}a&&ye()},{immediate:!0}),q(()=>o.fullscreen,()=>{Q(()=>{h.value?.refitLayout?.()})}),te({zoomIn:Z,zoomOut:A,resetZoom:J,officeType:l}),(a,e)=>{const U=X("el-empty"),Te=X("el-button");return s(),p("div",{class:Be(["office-preview-root",{"is-rich-preview":_.value,"is-fullscreen":n.fullscreen}])},[_.value?(s(),p(Ie,{key:0},[n.showHeader?(s(),C(Fe,{key:0,title:T.value,"title-only":i.value,zoom:u.value,"current-page":w.value,"total-pages":V.value,"search-query":B.value,"search-index":g.value,"search-total":y.value,"show-search":ue.value,"show-page-nav":ce.value,"show-zoom":ve.value,"show-download":de.value,"show-refresh":fe.value,"show-fullscreen":me.value,"show-close":n.showClose,fullscreen:n.fullscreen,"download-loading":n.downloadLoading,"refresh-loading":n.refreshLoading,"min-zoom":j(We),"max-zoom":j(_e),onZoomIn:Z,onZoomOut:A,onZoomReset:J,onDownload:e[0]||(e[0]=d=>c("download")),onRefresh:e[1]||(e[1]=d=>c("refresh")),onToggleFullscreen:e[2]||(e[2]=d=>c("toggle-fullscreen")),onClose:e[3]||(e[3]=d=>c("close")),onPagePrev:Pe,onPageNext:xe,onSearch:ke,onSearchClear:b,onSearchPrev:Le,onSearchNext:Se},null,8,["title","title-only","zoom","current-page","total-pages","search-query","search-index","search-total","show-search","show-page-nav","show-zoom","show-download","show-refresh","show-fullscreen","show-close","fullscreen","download-loading","refresh-loading","min-zoom","max-zoom"])):P("v-if",!0),x("div",be,[I.value&&(l.value==="pdf"||L.value)?(s(),C(Ve,{key:0,ref_key:"pdfViewerRef",ref:R,src:f.value,scale:u.value,class:"office-rich-viewer",onLoaded:H,onError:z,onPageChange:e[4]||(e[4]=d=>w.value=d)},null,8,["src","scale"])):I.value&&l.value==="excel"?(s(),C(De,{key:1,ref_key:"excelViewerRef",ref:E,src:f.value,scale:u.value,class:"office-rich-viewer",onLoaded:H,onError:z,onPageChange:e[5]||(e[5]=d=>w.value=d),onZoomIn:Z,onZoomOut:A},null,8,["src","scale"])):I.value&&l.value==="docx"&&!L.value?(s(),C(He,{key:2,ref_key:"docxViewerRef",ref:F,src:f.value,scale:u.value,"file-name":n.fileName,"file-type":n.fileType,"file-url":n.url,class:"office-rich-viewer",onLoaded:H,onError:z,onPageChange:e[6]||(e[6]=d=>w.value=d)},null,8,["src","scale","file-name","file-type","file-url"])):k.value&&!i.value&&!m.value?(s(),p("pre",Ue,O(N.value),1)):P("v-if",!0),n.refreshLoading?(s(),p("div",qe,[x("div",Qe,[e[8]||(e[8]=x("span",{class:"loading-spinner"},null,-1)),e[9]||(e[9]=x("p",{class:"loading-title"},"正在重新生成附件,请稍候…",-1)),T.value?(s(),p("p",Xe,O(T.value),1)):P("v-if",!0)])])):i.value?(s(),p("div",je,[G(U,{description:he.value},null,8,["description"])])):m.value&&(k.value||!f.value)?(s(),p("div",Ge,[x("div",Ke,[e[10]||(e[10]=x("span",{class:"loading-spinner"},null,-1)),x("p",Ye,O(se.value),1),T.value?(s(),p("p",ea,O(T.value),1)):P("v-if",!0)])])):P("v-if",!0)])],64)):W.value?(s(),p("div",aa,[G(U,{description:pe.value},{default:K(()=>[n.showDownload?(s(),C(Te,{key:0,type:"primary",onClick:e[7]||(e[7]=d=>c("download"))},{default:K(()=>[...e[11]||(e[11]=[Oe(" 下载文件 ",-1)])]),_:1})):P("v-if",!0)]),_:1},8,["description"])])):P("v-if",!0)],2)}}}),Va=Je(la,[["__scopeId","data-v-e58afdd1"]]);export{Va as default};
1
+ import{defineComponent as j,useModel as U,ref as u,computed as w,watch as G,onMounted as J,onBeforeUnmount as K,resolveDirective as Y,openBlock as d,createElementBlock as x,normalizeClass as _,createBlock as E,unref as p,createCommentVNode as B,withDirectives as ee,withCtx as F,createTextVNode as oe,mergeModels as L}from"vue";import{ElEmpty as ae,ElButton as le,ElMessage as te}from"element-plus";import re from"../../api/DocumentApi.js";import{resolveOfficeFileExt as se,MAX_RICH_PREVIEW_ZOOM as ne,MIN_OFFICE_ZOOM as ie,clampRichPreviewZoom as Z,OFFICE_ZOOM_STEP as D}from"../../utils/officePreviewUtil.js";import ue from"./OfficePreviewHeaderBar.vue.js";import{_ as ce}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";import"@element-plus/icons-vue";const de={class:"fileview-frame-wrap","element-loading-text":"正在打开文件预览…"},fe=["src","title"],me=j({__name:"OfficePreview",props:L({url:{default:""},fileId:{default:""},fileName:{default:""},fileType:{default:""},showHeader:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showPageNav:{type:Boolean,default:!1},showZoom:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!1},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},lostDescription:{default:"附件已丢失或无权访问"},attachmentLost:{type:Boolean,default:!1}},{scale:{default:1},scaleModifiers:{}}),emits:L(["loaded","error","download","refresh","toggle-fullscreen","close"],["update:scale"]),setup(l,{expose:R,emit:k}){const a=l,t=U(l,"scale"),r=k,c=u(""),y=u(null),f=u(!1),i=u(!1),h=u(""),s=u(""),m=u(-1),v=u(0),T=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","html","htm","xml","json","md"]),H=w(()=>h.value||a.lostDescription),q=w(()=>se(a.fileType,a.fileName,a.url)),S=w(()=>a.showSearch&&!i.value&&T.has(q.value)),A=w(()=>a.showZoom&&!i.value),n=e=>{y.value?.contentWindow?.postMessage({source:"adtec-office-preview",type:"command",...e},window.location.origin)},z=()=>{t.value=Z(t.value+D),n({command:"zoom",scale:t.value})},M=()=>{t.value=Z(t.value-D),n({command:"zoom",scale:t.value})},C=()=>{t.value=1,n({command:"zoom",scale:t.value})},V=e=>{const o=e.trim();if(s.value=o,m.value=-1,v.value=0,!o){I();return}n({command:"search",query:o,direction:"first"})},I=()=>{s.value="",m.value=-1,v.value=0,n({command:"clear-search"})},W=()=>{s.value&&n({command:"search",query:s.value,direction:"prev"})},$=()=>{s.value&&n({command:"search",query:s.value,direction:"next"})},N=e=>{if(!(e.origin!==window.location.origin||e.source!==y.value?.contentWindow||e.data?.source!=="adtec-fileview")){if(e.data.type==="ready"){n({command:"zoom",scale:t.value});return}if(e.data.type==="search-result"){const o=Number(e.data.total||0);v.value=o,m.value=o>0?Number(e.data.index||0):-1,o===0&&s.value&&te.warning("未找到匹配内容")}}},O=async()=>{if(c.value="",i.value=!1,h.value="",t.value=1,s.value="",m.value=-1,v.value=0,a.attachmentLost){i.value=!0,r("error");return}f.value=!0;try{if(a.fileId){const e=await re.createPreviewSession(a.fileId);c.value=e.url;return}if(a.url.startsWith("/api/doc/preview/fileView/")){c.value=a.url;return}throw new Error("为保护附件地址,旧版文件直链已停止预览,请使用附件 ID 打开")}catch(e){f.value=!1,i.value=!0,h.value=e?.msg||e?.message||"文件预览失败,请下载后查看",r("error",e)}},P=()=>{r("refresh"),O()},b=()=>{f.value=!1,window.setTimeout(()=>{n({command:"zoom",scale:t.value})},0),r("loaded")},Q=e=>{f.value=!1,i.value=!0,h.value="文件预览服务暂不可用,请稍后重试或下载后查看",r("error",e)};return G(()=>[a.fileId,a.url,a.fileName,a.attachmentLost],()=>void O(),{immediate:!0}),J(()=>window.addEventListener("message",N)),K(()=>window.removeEventListener("message",N)),R({reloadPreview:P,zoomIn:z,zoomOut:M,resetZoom:C}),(e,o)=>{const X=Y("loading");return d(),x("div",{class:_(["office-preview-root",{"is-fullscreen":l.fullscreen}])},[l.showHeader?(d(),E(ue,{key:0,title:l.fileName,"title-only":!S.value,zoom:t.value,"search-query":s.value,"search-index":m.value,"search-total":v.value,"show-search":S.value,"show-page-nav":!1,"show-zoom":A.value,"show-download":l.showDownload,"show-refresh":l.showRefresh,"show-fullscreen":l.showFullscreen,"show-close":l.showClose,fullscreen:l.fullscreen,"download-loading":l.downloadLoading,"refresh-loading":l.refreshLoading,"min-zoom":p(ie),"max-zoom":p(ne),onZoomIn:z,onZoomOut:M,onZoomReset:C,onSearch:V,onSearchClear:I,onSearchPrev:W,onSearchNext:$,onDownload:o[0]||(o[0]=g=>r("download")),onRefresh:P,onToggleFullscreen:o[1]||(o[1]=g=>r("toggle-fullscreen")),onClose:o[2]||(o[2]=g=>r("close"))},null,8,["title","title-only","zoom","search-query","search-index","search-total","show-search","show-zoom","show-download","show-refresh","show-fullscreen","show-close","fullscreen","download-loading","refresh-loading","min-zoom","max-zoom"])):B("v-if",!0),ee((d(),x("div",de,[c.value&&!i.value?(d(),x("iframe",{key:c.value,ref_key:"previewFrameRef",ref:y,class:"fileview-frame",src:c.value,title:l.fileName||"文件预览",referrerpolicy:"same-origin",onLoad:b,onError:Q},null,40,fe)):i.value?(d(),E(p(ae),{key:1,description:H.value},{default:F(()=>[l.showDownload?(d(),E(p(le),{key:0,type:"primary",onClick:o[3]||(o[3]=g=>r("download"))},{default:F(()=>[...o[4]||(o[4]=[oe(" 下载文件 ",-1)])]),_:1})):B("v-if",!0)]),_:1},8,["description"])):B("v-if",!0)])),[[X,f.value]])],2)}}}),Ze=ce(me,[["__scopeId","data-v-f37812c3"]]);export{Ze as default};
@@ -53,9 +53,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
53
53
  title: string;
54
54
  currentPage: number;
55
55
  fullscreen: boolean;
56
- totalPages: number;
57
56
  titleOnly: boolean;
58
57
  zoom: number;
58
+ totalPages: number;
59
59
  searchQuery: string;
60
60
  searchIndex: number;
61
61
  searchTotal: number;
@@ -1 +1 @@
1
- import{_ as i}from"../../chunks/operationAuth.vue_vue_type_script_setup_true_lang-C4oxU5Qi.js";import{_ as t}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-D3H7QH-5.js";import{_ as p}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-BFA5653m.js";import a from"../components/Search/ElSearch.vue.js";import{_ as s}from"../../chunks/ElTitle.vue_vue_type_script_setup_true_lang-B0oGtxWu.js";import _ from"../components/icon/ElIcons.vue.js";import n from"../components/icon/ElIconBtn.vue.js";import e from"../components/Search/ElIconSearch.vue.js";import f from"../directives/vTrack.js";import c from"../components/autoToolTip/ElAutoToolTip.vue.js";import{reportFeatureOpen as l}from"../utils/behaviorTrack.js";import{_ as $}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as E}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import{_ as u}from"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-BpBbsl20.js";import{_ as h}from"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import{_ as g}from"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-iG8EeOHx.js";import T from"../components/ElCardList.vue.js";import d from"../components/kFrame/KFrame.vue.js";import{_ as D}from"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-BMCgXt_P.js";import{_ as P}from"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import{_ as S}from"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";import{_ as F}from"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-Cu9FA2nn.js";import"vue";import"vue-router";import"../stores/userInfoStore.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"@element-plus/icons-vue";import"../utils/frontendBus.js";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"axios";import"../utils/buildUploadHeaders.js";import"ts-md5";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"element-plus";import"../api/SysUserApi.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"@vueuse/components";import"../components/kFrame/IframeOptions.js";const vo={mounted(){const o=this.$route,r=o?.meta?.sysMenuData,m=this.$options?.__name||this.$options?.name;this.$options?.__isPageWrapper||this.$parent?.$options?.__isPageWrapper&&r?.id&&m&&m===o?.name&&l(r,o.fullPath)},components:{operationAuth:i,ElFlex:t,ElDescForm:p,ElSearch:a,ElTitle:s,ElIcons:_,ElIconBtn:n,ElIconSearch:e,ElAutoToolTip:c,userSelect:$,mdmUserSelect:E,ElScrollbars:h,ElTotalTools:g,ElCardList:T,KFrame:d,ElPagePagination:D,ElCellLink:P,ElTagDisplay:S,DictDisplay:u,DragHandleIcon:F},directives:{track:f}};export{vo as globalMixin};
1
+ import{_ as i}from"../../chunks/operationAuth.vue_vue_type_script_setup_true_lang-C4oxU5Qi.js";import{_ as t}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-D3H7QH-5.js";import{_ as p}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-5bhGVNVy.js";import a from"../components/Search/ElSearch.vue.js";import{_ as s}from"../../chunks/ElTitle.vue_vue_type_script_setup_true_lang-B0oGtxWu.js";import _ from"../components/icon/ElIcons.vue.js";import n from"../components/icon/ElIconBtn.vue.js";import e from"../components/Search/ElIconSearch.vue.js";import f from"../components/Search/ElSearchInput.vue.js";import c from"../directives/vTrack.js";import{_ as l}from"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-BaGdbtdl.js";/* empty css */import{reportFeatureOpen as $}from"../utils/behaviorTrack.js";import{_ as E}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as u}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js";import{_ as h}from"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-BpBbsl20.js";import{_ as g}from"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import{_ as d}from"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-iG8EeOHx.js";import D from"../components/ElCardList.vue.js";import S from"../components/kFrame/KFrame.vue.js";import{_ as T}from"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-BMCgXt_P.js";import{_ as I}from"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import{_ as P}from"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-Cbb3x-dA.js";import{_ as F}from"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-Cu9FA2nn.js";import"vue";import"vue-router";import"../stores/userInfoStore.js";import"pinia";import"../utils/userSessionStorage.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"@element-plus/icons-vue";import"../utils/frontendBus.js";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"axios";import"../utils/buildUploadHeaders.js";import"ts-md5";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"element-plus";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../api/SysUserApi.js";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"@vueuse/components";import"../components/kFrame/IframeOptions.js";const Mo={mounted(){const o=this.$route,r=o?.meta?.sysMenuData,m=this.$options?.__name||this.$options?.name;this.$options?.__isPageWrapper||this.$parent?.$options?.__isPageWrapper&&r?.id&&m&&m===o?.name&&$(r,o.fullPath)},components:{operationAuth:i,ElFlex:t,ElDescForm:p,ElSearch:a,ElTitle:s,ElIcons:_,ElIconBtn:n,ElIconSearch:e,ElSearchInput:f,ElTooltip:l,userSelect:E,mdmUserSelect:u,ElScrollbars:g,ElTotalTools:d,ElCardList:D,KFrame:S,ElPagePagination:T,ElCellLink:I,ElTagDisplay:P,DictDisplay:h,DragHandleIcon:F},directives:{track:c}};export{Mo as globalMixin};