adtec-hnyzfc-core-package 1.2.1 → 1.2.2
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.
- package/dist/src/components/RichTextEditor/RichTextEditor.vue.js +1 -1
- package/dist/src/components/icon/ElIconBtn.vue.js +1 -1
- package/dist/src/components/upload/FileViewComponents.vue.js +1 -1
- package/dist/src/components/upload/OfficePreview.vue.js +2 -2
- package/dist/src/hooks/createDialogHooks.js +8 -3
- package/dist/styles/element-ui.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as V}from"../../../chunks/preload-helper-BlTxHScW.js";import{defineComponent as Se,useModel as
|
|
1
|
+
import{_ as V}from"../../../chunks/preload-helper-BlTxHScW.js";import{defineComponent as Se,useModel as le,ref as m,getCurrentInstance as Me,shallowRef as se,computed as ue,watch as k,onMounted as Ue,onBeforeUnmount as He,onUnmounted as Pe,resolveDirective as Fe,openBlock as N,createElementBlock as de,normalizeClass as Be,createBlock as Le,resolveDynamicComponent as De,mergeProps as ze,createCommentVNode as q,withDirectives as Ae,mergeModels as ce,nextTick as v}from"vue";import{ElMessage as Ve}from"element-plus";import{v4 as Ne}from"uuid";import{purgeUmoDocumentLocalStorage as qe,initHtml as $,finalizeHtml as $e}from"./richTextHtmlUtils.js";import"./installUmoEditorApp.js";import{refreshRichTextImageUrls as fe,extractFileIdFromImageUrl as We,uploadRichTextImage as Ke}from"./richTextImageUpload.js";import je from"../../api/DocumentApi.js";import{_ as Ge}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"tdesign-vue-next";import"../../utils/buildUploadHeaders.js";import"ts-md5";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/frontendBus.js";const Je={key:1,class:"umo-rich-text-editor-loading","element-loading-text":"编辑器加载中..."},Xe=Se({__name:"RichTextEditor",props:ce({showToolbar:{type:Boolean,default:!0},borderWidth:{default:"1px"},editorConfig:{default:()=>({})},isEdit:{type:Boolean,default:!0}},{modelValue:{required:!1,default:null},modelModifiers:{},text:{required:!1},textModifiers:{}}),emits:ce(["onBlur","onChange"],["update:modelValue","update:text"]),setup(S,{expose:me,emit:ve}){const pe=["locale","theme","mermaid","diagrams","qrcode","barcode","signature","math","echarts","print","link","video","audio","file","text-box","details","code-block","symbol","chinese-date","emoji","tag","columns","callout","mention","option-box","hard-break","hr","bookmark","footnote","toc","template","web-page"],he=["base","insert","table","page","view"],W=ve,r=S,l=le(S,"modelValue"),K=le(S,"text"),M=m(null),a=m(null),ye=Me()?.appContext?.app,d=se(null);let E=null;const j=`umo-${Ne()}`,p=m(j),U=m(null),o=m(!1),be=ue(()=>!d.value||!n.value||!o.value),H=m(!1),n=se(null);let P=!1,x=0,h=null,G=null,y=null,b=null,g=0,F=!1,c=!1,w="",_=!1;qe();const s=ue(()=>r.isEdit&&r.editorConfig?.editable!==!1);function J(){const e=a.value;if(!e||typeof document>"u")return!1;let t=e;for(;t&&t!==document.documentElement;){if(getComputedStyle(t).display==="none")return!1;t=t.parentElement}return!0}function ge(){if(!J()){_=!0;return}const e=_;if(_=!1,!d.value){te();return}if(!n.value){B();return}if(e&&!o.value){_e();return}e&&(C(),s.value&&O())}function we(){const e=a.value;e&&typeof ResizeObserver<"u"&&!h&&(h=new ResizeObserver(()=>{ge()}),h.observe(e))}function X(){h?.disconnect(),h=null,G?.disconnect(),G=null}function Z(){const e=a.value;if(!e)return;const t=e.querySelector(":scope > .umo-rich-text-editor");t?(F=!0,c&&(e.style.flex=w,e.style.height="",c=!1,w=""),g=Math.max(Number(t.offsetHeight)||0,0)):F&&g>0&&!c&&(w=e.style.flex||getComputedStyle(e).flex||"",e.style.flex=`0 0 ${g}px`,e.style.height=`${g}px`,c=!0)}function Ee(){const e=a.value;e&&(typeof MutationObserver<"u"&&!y&&(y=new MutationObserver(()=>Z()),y.observe(e,{childList:!0})),typeof ResizeObserver<"u"&&!b&&(b=new ResizeObserver(()=>Z()),b.observe(e)))}function Q(){y?.disconnect(),y=null,b?.disconnect(),b=null;const e=a.value;e&&c&&(e.style.flex=w,e.style.height=""),c=!1,w="",g=0,F=!1}function Y(){if(typeof localStorage>"u")return;const e=r.showToolbar&&s.value;try{localStorage.setItem(`umo-editor:${p.value}:layout`,"web"),localStorage.setItem(`umo-editor:${p.value}:toolbar`,JSON.stringify({mode:"classic",show:e}))}catch{}}function ee(){return d.value?Promise.resolve(!0):(E||(E=Promise.all([V(()=>import("../../../prebuilt/umo-editor/umo-editor.js"),[]),V(()=>import("../../../prebuilt/umo-editor/umo-editor.css"),[]),V(()=>import("./installUmoEditorApp.js"),[])]).then(([e,t,i])=>(i.installUmoEditorApp(ye),d.value=e.UmoEditor,!0)).catch(()=>(E=null,Ve.error("编辑器加载失败,请重试"),!1))),E)}async function te(){if(!J()){_=!0;return}await ee()&&(n.value||await B())}function xe(e){const t=typeof r.editorConfig?.placeholder=="string"&&r.editorConfig.placeholder.trim()?r.editorConfig.placeholder.trim():"请输入内容...",i=s.value,A=r.editorConfig?.autofocus??!1,ke=r.editorConfig?.businessId;return{editorKey:p.value,locale:"zh-CN",theme:"light",height:"100%",fullscreenZIndex:2500,toolbar:{showSaveLabel:!1,defaultMode:"classic",menus:r.showToolbar&&i?[...he]:["base"]},page:{layouts:["page","web"]},document:{title:"",content:e,placeholder:{zh_CN:t},readOnly:!i,autofocus:A,enableMarkdown:!1,enableSpellcheck:!1,autoSave:{enabled:!1}},shareUrl:typeof location<"u"?location.href:"",disableExtensions:[...pe],extensions:[],async onFileUpload(ne){const I=await Ke(ne,ke);return{id:I.id,url:I.url}},onFileDelete(ne,I,Ze){const ae=We(I);ae&&je.delSysUploadFiles([ae]).catch(()=>{})}}}async function B(e){Y();const t=e??l.value??"",i=await fe(t);n.value=xe($(i)),U.value=s.value}async function L(){if(!(P||!n.value)){P=!0;try{const e=o.value?f():l.value??"";if(o.value=!1,M.value=null,n.value=null,p.value=`${j}-${Date.now()}`,await v(),!await ee())return;await B(e)}finally{P=!1}}}async function _e(){!o.value||!n.value||(await C(),s.value&&await O())}function u(){return M.value}function oe(e){const t=u()?.getEditor?.()?.value;return t?.commands?.setContent?t.commands.setContent($(e),{emitUpdate:!1,parseOptions:{preserveWhitespace:"full"}}):!1}function Ce(e){const t=u()?.getEditor?.()?.value;t&&typeof t.setEditable=="function"&&t.setEditable(e)}async function D(){const e=u();if(!e)return!1;const t=s.value;e.setDocument?.({readOnly:!t}),e.setReadOnly?.(!t),Ce(t),e.setToolbar?.({mode:"classic",show:r.showToolbar&&t});const i=e.getEditor?.()?.value;return i?(t&&!i.isEditable&&i.setEditable(!0),t?i.isEditable:!i.isEditable):!1}async function C(e=6){for(let t=0;t<e;t+=1){if(await D())return!0;await v(),await T()}return!1}function T(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))})}function ie(e){const t=e?.querySelector(".ProseMirror");return t?t.querySelector(':scope > img, :scope > figure[data-type="image"]:not(.umo-node-view)')!==null:!1}async function O(){if(n.value){if(await v(),await T(),await v(),await T(),!ie(a.value)){x=0;return}if(!(x>=3)){if(x+=1,o.value){const e=f()||(l.value??"");if(!oe(e))return;if(await v(),await T(),!ie(a.value)){x=0;return}}o.value&&R(),await L(),await v(),await C()}}}function Te(){const e=u();e&&(e.setLayout?.("web"),D())}function f(){return u()?.getHTML?.()??""}function z(){return u()?.getText?.()??""}async function re(e,t=!1){if(!o.value)return;const i=await fe(e);if(!o.value||(l.value??"")!==e)return;const A=u();oe(i)&&(t&&A?.focus?.("end",{scrollIntoView:!0}),O())}function R(){if(!o.value)return;const e=f(),t=z();e!==l.value&&(l.value=e),K.value=t,W("onChange",{html:e,text:t})}function Oe(){o.value=!0,U.value=s.value,C(),O(),Te()}function Re(){R()}function Ie(){o.value&&W("onBlur",{html:f(),text:z()})}return k(()=>l.value,e=>{if(!o.value||H.value)return;const t=$(e??""),i=f();t===i||(e??"")===i||re(e??"",!1)}),k(s,async(e,t)=>{t!==void 0&&U.value!==e&&n.value&&(o.value&&R(),await L())}),k(()=>r.isEdit,async(e,t)=>{t!==void 0&&e!==t&&n.value&&(o.value&&R(),await L())}),k(()=>r.showToolbar,()=>{Y(),D()}),Ue(()=>{we(),Ee(),te()}),He(()=>{X(),Q()}),Pe(()=>{o.value=!1,a.value=null,X(),Q()}),me({getHtml:e=>{if(!o.value)return l.value??"";const t=f();return e?.finalize?$e(t,a.value):t},getText:()=>o.value?z():K.value??"",setContent:(e,t=!1)=>{H.value=!0,l.value=e,H.value=!1,o.value&&re(e,t)},isReady:()=>o.value}),(e,t)=>{const i=Fe("loading");return N(),de("div",{ref_key:"rootRef",ref:a,class:Be(["umo-rich-text-editor-root",{"umo-rich-text-editor-root--readonly":!s.value}])},[d.value&&n.value?(N(),Le(De(d.value),ze({key:p.value,ref_key:"editorRef",ref:M,class:"umo-rich-text-editor"},n.value,{onCreated:Oe,onChanged:Re,onBlur:Ie}),null,16)):q("v-if",!0),q(" 受控 loading 覆盖全程:运行时 import → UmoEditor 挂载 → TipTap created,杜绝 UMO 内置 loading 闪现/泄漏 "),be.value?Ae((N(),de("div",Je,null,512)),[[i,!0]]):q("v-if",!0)],2)}}}),gt=Ge(Xe,[["__scopeId","data-v-667b1653"]]);export{gt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as _,ref as y,onMounted as h,computed as k,resolveComponent as C,openBlock as n,createBlock as u,normalizeStyle as I,normalizeClass as f,withModifiers as w,withCtx as v,createVNode as L,createElementBlock as M,createElementVNode as S,unref as d,resolveDynamicComponent as x,createCommentVNode as V}from"vue";import{useVModel as U}from"@vueuse/core";import{_ as T}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const D={key:0,class:"icon","aria-hidden":"true"},F=["href"],j={key:0,class:"icon","aria-hidden":"true"},q=["href"],A={key:0,class:"icon","aria-hidden":"true"},G=["href"],H=_({__name:"ElIconBtn",props:{tip:{type:String,default:""},modelValue:{type:String,default:""},size:{type:String,default:"default",validator:l=>["large","default","medium","small"].includes(l)},type:{type:String,default:"default",validator:l=>["default","success","warning","info","primary","danger"].includes(l)},elementType:{type:String,default:"icon"},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","click"],setup(l,{emit:z}){const i=y(!1),c=y(!1),r=y();h(()=>{const t=r.value?.$el??r.value,e=t?.previousElementSibling;c.value=!!t&&(!e||!e.classList?.contains("icon-btn")&&!e.classList?.contains("el-button"))});const E=k(()=>({padding:"8px 10px",marginLeft:c.value?"0":"
|
|
1
|
+
import{defineComponent as _,ref as y,onMounted as h,computed as k,resolveComponent as C,openBlock as n,createBlock as u,normalizeStyle as I,normalizeClass as f,withModifiers as w,withCtx as v,createVNode as L,createElementBlock as M,createElementVNode as S,unref as d,resolveDynamicComponent as x,createCommentVNode as V}from"vue";import{useVModel as U}from"@vueuse/core";import{_ as T}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";const D={key:0,class:"icon","aria-hidden":"true"},F=["href"],j={key:0,class:"icon","aria-hidden":"true"},q=["href"],A={key:0,class:"icon","aria-hidden":"true"},G=["href"],H=_({__name:"ElIconBtn",props:{tip:{type:String,default:""},modelValue:{type:String,default:""},size:{type:String,default:"default",validator:l=>["large","default","medium","small"].includes(l)},type:{type:String,default:"default",validator:l=>["default","success","warning","info","primary","danger"].includes(l)},elementType:{type:String,default:"icon"},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","click"],setup(l,{emit:z}){const i=y(!1),c=y(!1),r=y();h(()=>{const t=r.value?.$el??r.value,e=t?.previousElementSibling;c.value=!!t&&(!e||!e.classList?.contains("icon-btn")&&!e.classList?.contains("el-button"))});const E=k(()=>({padding:"8px 10px",marginLeft:c.value?"0":"8px"})),b=k(()=>!!s.value?.includes("adtec")),$=t=>{B("click",t)},m=k(()=>{let t="icon-btn--";return o.type!=="default"?(t+=o.type,o.disabled&&(t+=" icon-btn--"+o.type+"--disabled")):s.value==="adtec-plus"?(t+="primary",o.disabled&&(t+=" icon-btn--primary--disabled")):s.value==="adtec-refresh"?(t+="default",o.disabled&&(t+=" icon-btn--default--disabled")):s.value==="adtec-delete"?(t+="danger",o.disabled&&(t+=" icon-btn--danger--disabled")):s.value==="adtec-edit"&&(t+="warning",o.disabled&&(t+=" icon-btn--warning--disabled")),t+=" icon-btn--size-"+o.size,t}),o=l,B=z,s=U(o,"modelValue",B);return(t,e)=>{const p=C("el-tooltip"),g=C("el-icon"),N=C("el-button");return l.elementType==="button"?(n(),u(N,{key:0,disabled:l.disabled,ref_key:"ref_icons",ref:r,onClick:w($,["stop"]),class:f({"icon-btn--first":c.value}),style:I(E.value)},{default:v(()=>[L(g,{onMouseenter:e[1]||(e[1]=a=>i.value=!0),onMouseleave:e[2]||(e[2]=a=>i.value=!1),class:f(["icon-btn",m.value]),style:{margin:"0"}},{default:v(()=>[b.value?(n(),M("svg",D,[S("use",{href:"#"+d(s)},null,8,F)])):(n(),u(x(d(s)),{key:1})),l.tip?(n(),u(p,{key:2,visible:i.value,"onUpdate:visible":e[0]||(e[0]=a=>i.value=a),content:l.tip,placement:"top",effect:"light",trigger:"click","virtual-triggering":"","virtual-ref":r.value},null,8,["visible","content","virtual-ref"])):V("v-if",!0)]),_:1},8,["class"])]),_:1},8,["disabled","class","style"])):l.disabled?(n(),u(g,{key:1,ref_key:"ref_icons",ref:r,disabled:l.disabled,onMouseenter:e[4]||(e[4]=a=>i.value=!0),onMouseleave:e[5]||(e[5]=a=>i.value=!1),class:f(["icon-btn",[m.value,{"icon-btn--first":c.value}]])},{default:v(()=>[b.value?(n(),M("svg",j,[S("use",{href:"#"+d(s)},null,8,q)])):(n(),u(x(d(s)),{key:1})),l.tip?(n(),u(p,{key:2,visible:i.value,"onUpdate:visible":e[3]||(e[3]=a=>i.value=a),content:l.tip,placement:"top",effect:"light",trigger:"click","virtual-triggering":"","virtual-ref":r.value},null,8,["visible","content","virtual-ref"])):V("v-if",!0)]),_:1},8,["disabled","class"])):(n(),u(g,{key:2,ref_key:"ref_icons",ref:r,onClick:w($,["stop"]),onMouseenter:e[7]||(e[7]=a=>i.value=!0),onMouseleave:e[8]||(e[8]=a=>i.value=!1),class:f(["icon-btn",[m.value,{"icon-btn--first":c.value}]])},{default:v(()=>[b.value?(n(),M("svg",A,[S("use",{href:"#"+d(s)},null,8,G)])):(n(),u(x(d(s)),{key:1})),l.tip?(n(),u(p,{key:2,visible:i.value,"onUpdate:visible":e[6]||(e[6]=a=>i.value=a),content:l.tip,placement:"top",effect:"light",trigger:"click","virtual-triggering":"","virtual-ref":r.value},null,8,["visible","content","virtual-ref"])):V("v-if",!0)]),_:1},8,["class"]))}}}),P=T(H,[["__scopeId","data-v-13005b89"]]);export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as c,ref as a,openBlock as d,createBlock as v,createCommentVNode as w}from"vue";import p from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import V from"./FileView.vue.js";import{getFileSuffix as k,isPreviewableSuffix as U}from"../../utils/uploadAccept.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"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 Q=c({__name:"FileViewComponents",setup(b,{expose:u}){const t=a(!1),m=a(""),l=a(""),s=a("view");let n=0;const f=async(o,i)=>{const e=await p.downloadFile(o),r=document.createElement("a");r.href=URL.createObjectURL(e),r.download=i,r.click(),URL.revokeObjectURL(r.href)};return u({viewFile:async o=>{const i=++n;m.value="文件预览",l.value=o,t.value=!0;try{const e=await p.getUpLoadFilesVoById(o);if(i!==n||!t.value||l.value!==o)return;const r=k(e);if(!U(r)){t.value=!1,await f(e.id,e.name);return}m.value=e.name}catch(e){if(i!==n||!t.value||l.value!==o)return;t.value=!1,F.messageError(e)}}}),(o,i)=>t.value?(d(),v(V,{key:0,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=e=>t.value=e),title:m.value,"file-id":l.value,edit:s.value},null,8,["modelValue","title","file-id","edit"])):w("v-if",!0)}});export{Q as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as
|
|
2
|
-
切换时淡出过渡,避免 spinner 相位/进度条状态差异造成的跳动 `),h("div",
|
|
1
|
+
import{defineComponent as U,useModel as G,ref as d,computed as g,watch as J,onMounted as K,onBeforeUnmount as Y,openBlock as f,createElementBlock as S,normalizeClass as _,createBlock as z,unref as x,createCommentVNode as w,createElementVNode as h,createVNode as ee,Transition as oe,withCtx as I,createTextVNode as ae,mergeModels as Z}from"vue";import{ElEmpty as le,ElButton as re,ElMessage as te}from"element-plus";import se from"../../api/DocumentApi.js";import{resolveOfficeFileExt as ne,MAX_RICH_PREVIEW_ZOOM as ie,MIN_OFFICE_ZOOM as de,clampRichPreviewZoom as k,OFFICE_ZOOM_STEP as T}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 fe={class:"fileview-frame-wrap"},me={key:0,class:"preview-loading-overlay"},ve=["src","title"],we=U({__name:"OfficePreview",props:Z({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:Z(["loaded","error","download","refresh","toggle-fullscreen","close"],["update:scale"]),setup(a,{expose:D,emit:q}){const l=a,r=G(a,"scale"),t=q,u=d(""),E=d(null),c=d(!1),i=d(!1),p=d(""),s=d(""),m=d(-1),v=d(0);let y=0;const H=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","html","htm","xml","json","md"]),V=g(()=>p.value||l.lostDescription),A=g(()=>ne(l.fileType,l.fileName,l.url)),M=g(()=>l.showSearch&&!i.value&&H.has(A.value)),W=g(()=>l.showZoom&&!i.value),n=o=>{E.value?.contentWindow?.postMessage({source:"adtec-office-preview",type:"command",...o},"*")},N=()=>{r.value=k(r.value+T),n({command:"zoom",scale:r.value})},C=()=>{r.value=k(r.value-T),n({command:"zoom",scale:r.value})},O=()=>{r.value=1,n({command:"zoom",scale:r.value})},$=o=>{const e=o.trim();if(s.value=e,m.value=-1,v.value=0,!e){P();return}n({command:"search",query:e,direction:"first"})},P=()=>{s.value="",m.value=-1,v.value=0,n({command:"clear-search"})},b=()=>{s.value&&n({command:"search",query:s.value,direction:"prev"})},Q=()=>{s.value&&n({command:"search",query:s.value,direction:"next"})},F=o=>{if(!(o.source!==E.value?.contentWindow||o.data?.source!=="adtec-fileview")){if(o.data.type==="ready"){n({command:"zoom",scale:r.value});return}if(o.data.type==="search-result"){const e=Number(o.data.total||0);v.value=e,m.value=e>0?Number(o.data.index||0):-1,e===0&&s.value&&te.warning("未找到匹配内容")}}},L=async()=>{const o=++y;if(u.value="",c.value=!1,i.value=!1,p.value="",r.value=1,s.value="",m.value=-1,v.value=0,l.attachmentLost){i.value=!0,t("error");return}c.value=!0;try{if(l.fileId){const e=await se.createPreviewSession(l.fileId);if(o!==y)return;u.value=e.url;return}if(l.url.startsWith("/api/doc/preview/fileView/")){u.value=l.url;return}throw new Error("为保护附件地址,旧版文件直链已停止预览,请使用附件 ID 打开")}catch(e){if(o!==y)return;c.value=!1,i.value=!0,p.value=e?.msg||e?.message||"文件预览失败,请下载后查看",t("error",e)}},R=()=>{t("refresh"),L()},X=()=>{c.value=!1,window.setTimeout(()=>{n({command:"zoom",scale:r.value})},0),t("loaded")},j=o=>{c.value=!1,i.value=!0,p.value="文件预览服务暂不可用,请稍后重试或下载后查看",t("error",o)};return J(()=>[l.fileId,l.url,l.attachmentLost],()=>void L(),{immediate:!0}),K(()=>window.addEventListener("message",F)),Y(()=>{y++,window.removeEventListener("message",F)}),D({reloadPreview:R,zoomIn:N,zoomOut:C,resetZoom:O}),(o,e)=>(f(),S("div",{class:_(["office-preview-root",{"is-fullscreen":a.fullscreen}])},[a.showHeader?(f(),z(ue,{key:0,title:a.fileName,"title-only":!M.value,zoom:r.value,"search-query":s.value,"search-index":m.value,"search-total":v.value,"show-search":M.value,"show-page-nav":!1,"show-zoom":W.value,"show-download":a.showDownload,"show-refresh":a.showRefresh,"show-fullscreen":a.showFullscreen,"show-close":a.showClose,fullscreen:a.fullscreen,"download-loading":a.downloadLoading,"refresh-loading":a.refreshLoading,"min-zoom":x(de),"max-zoom":x(ie),onZoomIn:N,onZoomOut:C,onZoomReset:O,onSearch:$,onSearchClear:P,onSearchPrev:b,onSearchNext:Q,onDownload:e[0]||(e[0]=B=>t("download")),onRefresh:R,onToggleFullscreen:e[1]||(e[1]=B=>t("toggle-fullscreen")),onClose:e[2]||(e[2]=B=>t("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"])):w("v-if",!0),w(` 外层加载层与预览页内层样式完全一致(spinner + 正在加载文件... + 进度条),
|
|
2
|
+
切换时淡出过渡,避免 spinner 相位/进度条状态差异造成的跳动 `),h("div",fe,[ee(oe,{name:"preview-loading-fade"},{default:I(()=>[c.value?(f(),S("div",me,[...e[4]||(e[4]=[h("div",{class:"preview-loading-spinner"},null,-1),h("div",{class:"preview-loading-text"},"正在加载文件...",-1),h("div",{class:"preview-loading-progress"},[h("div",{class:"preview-loading-bar is-indeterminate"})],-1)])])):w("v-if",!0)]),_:1}),u.value&&!i.value?(f(),S("iframe",{key:u.value,ref_key:"previewFrameRef",ref:E,class:"fileview-frame",src:u.value,title:a.fileName||"文件预览",referrerpolicy:"same-origin",onLoad:X,onError:j},null,40,ve)):i.value?(f(),z(x(le),{key:1,description:V.value},{default:I(()=>[a.showDownload?(f(),z(x(re),{key:0,type:"primary",onClick:e[3]||(e[3]=B=>t("download"))},{default:I(()=>[...e[5]||(e[5]=[ae(" 下载文件 ",-1)])]),_:1})):w("v-if",!0)]),_:1},8,["description"])):w("v-if",!0)])],2))}}),ke=ce(we,[["__scopeId","data-v-c543d9c4"]]);export{ke as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{computed as j,ref as k,unref as D,createApp as P,nextTick as $,h as
|
|
2
|
-
/* dialog-hooks
|
|
1
|
+
import{computed as j,ref as k,unref as D,createApp as P,nextTick as $,h as r}from"vue";import R,{ElDrawer as Y,ElDialog as B,ElButton as y}from"element-plus";import E from"../stores/storeConfig.js";/* empty css */import*as w from"@element-plus/icons-vue";import"../config/ElementPlusConfig.js";import{installVxeGrid as K}from"../config/VxeTableConfig.js";import U from"element-plus/es/locale/lang/zh-cn";import q from"./useListenerHooks.js";import{permissionStore as F}from"../stores/permissionStore.js";import G from"../components/icon/ElIcons.vue.js";import J from"crypto-js/enc-base64";import Q from"crypto-js/enc-utf8";import"pinia";import"pinia-plugin-store";import"../utils/patchWujiePopperCoordinates.js";import"vxe-table";import"@vxe-ui/core";import"@vxe-ui/plugin-export-xlsx";import"exceljs";import"vxe-table/es/style.css";import"vxe-table/es/locale/lang/zh-CN";import"../components/vxeReplace/index.js";import"../components/tooltip/index.js";import"../components/tooltip/src/tooltip.js";import"../../chunks/VxeButton.vue_vue_type_script_setup_true_lang-s_mYx9TA.js";import"../../chunks/VxeInput.vue_vue_type_script_setup_true_lang-v9AqGSoL.js";import"../../chunks/VxeSelect.vue_vue_type_script_setup_true_lang-BfVzFeBc.js";import"../../chunks/VxeCheckbox.vue_vue_type_script_setup_true_lang-Ccr5YD1x.js";import"../../chunks/VxeModal.vue_vue_type_script_setup_true_lang-B4gh7jFR.js";import"../../chunks/VxeLoading.vue_vue_type_script_setup_true_lang-B253kD5t.js";import"../../chunks/VxePager.vue_vue_type_script_setup_true_lang-DpOa3T96.js";import"../../chunks/VxeForm.vue_vue_type_script_setup_true_lang-DXNZ8Qzg.js";import"../utils/frontendBus.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";function W(){const h="dialog-hooks-styles",l=document.getElementById(h);if(l&&(l.textContent||"").includes("/* dialog-hooks v12 */"))return;l?.remove();const e=document.createElement("style");e.id=h,e.type="text/css",e.innerHTML=`
|
|
2
|
+
/* dialog-hooks v12 */
|
|
3
3
|
/* 抽屉组件 - 无滚动条样式 */
|
|
4
4
|
.dialog-hooks-no-scroll.el-drawer .el-drawer__body {
|
|
5
5
|
overflow: hidden !important;
|
|
@@ -59,6 +59,11 @@ import{computed as j,ref as k,unref as D,createApp as P,nextTick as $,h as i}fro
|
|
|
59
59
|
.dialog-hooks-host .el-drawer__footer {
|
|
60
60
|
padding: 8px;
|
|
61
61
|
}
|
|
62
|
+
/* 弹窗/抽屉内容区已由 body 统一提供右侧间距,内部标题栏不再重复添加右 padding */
|
|
63
|
+
.dialog-hooks-host.el-dialog .el-dialog__body .el-title,
|
|
64
|
+
.dialog-hooks-host.el-drawer .el-drawer__body .el-title {
|
|
65
|
+
padding-right: 0;
|
|
66
|
+
}
|
|
62
67
|
/* 弹窗/抽屉内容滚动条自动隐藏:平时透明,滚动或悬停时显示 */
|
|
63
68
|
.dialog-hooks-host .el-drawer__body,
|
|
64
69
|
.dialog-hooks-host .el-dialog__body {
|
|
@@ -177,4 +182,4 @@ import{computed as j,ref as k,unref as D,createApp as P,nextTick as $,h as i}fro
|
|
|
177
182
|
.dialog-hooks-host.el-dialog .el-dialog__footer {
|
|
178
183
|
flex-shrink: 0;
|
|
179
184
|
}
|
|
180
|
-
`,document.head.appendChild(e)}function X(
|
|
185
|
+
`,document.head.appendChild(e)}function X(d){d.querySelectorAll(".el-drawer__body, .el-dialog__body").forEach(l=>{let e;const c=()=>{l.classList.add("is-scrolling"),e&&window.clearTimeout(e),e=window.setTimeout(()=>l.classList.remove("is-scrolling"),600)};l.addEventListener("scroll",c,{passive:!0}),l.addEventListener("mouseenter",c),l.addEventListener("mouseleave",()=>{e&&window.clearTimeout(e),l.classList.remove("is-scrolling")})})}function Z(d,h){if(h)return h;try{const l=d.router.currentRoute.value.meta?.sysMenuData?.icon;if(l)return l}catch{}try{const l=sessionStorage.getItem("permissionStore");if(l){const e=JSON.parse(J.parse(l).toString(Q));if(e?.activeMenuInfo?.icon)return e.activeMenuInfo.icon}}catch{}try{return F(E).getActiveMenuInfo?.icon||""}catch{return""}}function jo(d){return function(l){const e=[],c=()=>e[e.length-1],I=(a,i,O,v="drawer",m,z=!0)=>{W();const{icon:H,hideConfirm:u,...s}=O||{},x=`${v}|${typeof a=="string"?a:a?.__name||a?.name||""}|${s.title||""}`;if(e.some(t=>t.renderKey===x&&(t.open.value||t.closing)))return;const o={open:k(!0),loading:k(!1),childInstance:k(),app:null,div:null,closing:!1,renderKey:x},M=Object.fromEntries(Object.entries(i||{}).map(([t,g])=>[t,D(g)])),N={...s,class:["dialog-hooks-host",...z?[]:["dialog-hooks-no-scroll"],"dialog-hooks-scroll-auto",...Array.isArray(s.class)?s.class:s.class?[s.class]:[]]},A=s.onClosed,f=typeof s.title=="string"&&s.title,_=f?Z(d,H):"",V=()=>r("div",{class:"dialog-hooks-header"},[_?r("div",{class:"dialog-hooks-header-icon"},[r(G,{modelValue:_})]):null,r("div",{class:"dialog-hooks-header-title"},[s.title]),o.loading.value&&!u?null:r("button",{type:"button",class:"dialog-hooks-header-close",onClick:()=>p(o)},[r(w.Close)])]),n=P(()=>r(v==="drawer"?Y:B,{...N,modelValue:o.open.value,showClose:f?!1:s.showClose??!0,onClosed(){A?.();const t=e.indexOf(o);t>-1&&e.splice(t,1),o.app?.unmount(),o.div?.parentNode&&o.div.parentNode.removeChild(o.div),o.app=null,o.div=null},onClose(){p(o)}},{...f?{header:V}:{},default:()=>r(a,{...M,...u?{}:{loading:o.loading.value,"onUpdate:loading":t=>{o.loading.value=t}},ref:o.childInstance}),footer:()=>{if(m&&m.length){const t=m.map(g=>typeof g=="function"?g():g);return r("div",{className:"dialog-footer"},t)}return r("div",{className:"dialog-footer"},[r(y,{onClick:()=>p(o),loading:!u&&o.loading.value},"取 消"),u?null:r(y,{type:"primary",onClick:()=>C(o),loading:o.loading.value},"确 认")])}}));d.plugins?.forEach(t=>n.use(t)),n.use(R,{locale:U}),n.use(E),n.use(d.router);for(const[t,g]of Object.entries(w))n.component(t,g);K(n),d.setupApp?.(n);const b=document.createElement("div");document.body.appendChild(b),o.app=n,o.div=b,e.push(o),n.mount(b),$(()=>{X(o.div),o.childInstance.value?.resetQuery?.(),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},350)}),q()},C=async a=>{const i=a||c();if(i)try{i.loading.value=!0,await i.childInstance.value?.confirm?.(),l&&p(i)}finally{i.loading.value=!1}},p=a=>{const i=a||c();!i||!i.open.value||(i.closing=!0,i.open.value=!1)},S=a=>{const i=c();i&&(i.loading.value=a)},L=()=>c()?.loading.value??!1,T=j(()=>c()?.childInstance.value);return{render:I,cancel:p,setLoading:S,getLoading:L,instance:T}}}export{jo as createDialogHooks,jo as default};
|