adtec-hnyzfc-core-package 1.2.8 → 1.2.9
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/SelectInDicators/SelectInDicators.vue.js +1 -1
- package/dist/src/components/upload/CustomElUpload.vue.d.ts +10 -0
- package/dist/src/components/upload/CustomElUpload.vue.js +1 -1
- package/dist/src/utils/iconfontRuntime.d.ts +15 -0
- package/dist/src/utils/iconfontRuntime.js +1 -1
- package/dist/styles/element-ui.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as J,useModel as K,ref as _,reactive as X,resolveComponent as i,resolveDirective as Y,withDirectives as Z,openBlock as u,createBlock as w,withCtx as a,createVNode as s,unref as D,createTextVNode as p,toDisplayString as g,createElementBlock as x,createElementVNode as ee,Fragment as I,renderList as S,createCommentVNode as te,mergeProps as oe,mergeModels as R,nextTick as le}from"vue";import{ElMessage as ae}from"element-plus";import re from"../../hooks/useDictHooks.js";import ne from"./api/DataIndicatorsApi.js";import h from"../../utils/FrameworkUtils.js";import{checkboxColumn as ie}from"../../config/vxeSelectColumn.js";import{_ as se}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../api/SysDictCacheApi.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"../../utils/behaviorContext.js";import"../../utils/frontendBus.js";import"../../stores/dictStore.js";import"pinia";import"../../stores/userInfoStore.js";import"../../utils/userSessionStorage.js";import"xlsx-js-style";const ce={key:0,class:"selection-preview"},de={class:"selection-preview__content"},ue=J({__name:"SelectInDicators",props:R({confirmCallback:{type:Function}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:R(["success"],["update:loading"]),setup(C,{expose:E,emit:L}){const m=K(C,"loading"),P=C,T=L,{getDictTypeData:N,getDictName:O}=re(["ComIndexType"]),f=_(),d=_(),o=_([]),n=_({types:[],name:"",isValid:1,isDetails:1,size:h.getPageSize(),current:1}),U=X({border:!0,height:"100%",columnConfig:{resizable:!1},checkboxConfig:{highlight:!1,range:!1},columns:[ie,{field:"code",title:"指标编码",width:140,showOverflow:!0},{field:"name",title:"指标名称",minWidth:160,showOverflow:!0},{field:"attriList",title:"指标名称(特性)",minWidth:220,showOverflow:!0,slots:{default:"attriList"}},{field:"type",title:"类型标签",width:120,showOverflow:!0,slots:{default:"type"}}]}),y=async()=>{m.value=!0;try{d.value=await ne.getPageComIndex(n.value),await le(),o.value.forEach(r=>{const e=d.value?.records.find(l=>l.id===r.id);e&&f.value?.setCheckboxRow(e,!0)})}catch(r){h.messageError(r)}finally{m.value=!1}},B=async()=>{n.value.current=1,await y()},b=async()=>{n.value={types:[],name:"",isValid:1,isDetails:1,size:h.getPageSize(),current:1},await y()},k=()=>{const r=f.value?.getCheckboxRecords()??[],e=new Set(d.value?.records.map(l=>l.id)??[]);o.value=o.value.filter(l=>!e.has(l.id)||r.some(c=>c.id===l.id)),r.forEach(l=>{o.value.some(c=>c.id===l.id)||o.value.push(l)})},M=r=>{const e=c=>r.id?c.id===r.id:c.code===r.code;o.value=o.value.filter(c=>!e(c));const l=d.value?.records.find(e);l&&f.value?.setCheckboxRow(l,!1)};return E({confirm:async(r=!0)=>{if(!o.value.length)return ae.warning("请选择指标"),!1;m.value=!0;try{return await P.confirmCallback(o.value)?(T("success"),r||(o.value=[],f.value?.clearCheckboxRow()),!0):!1}catch(e){return h.messageError(e),!1}finally{m.value=!1}},resetQuery:async()=>{o.value=[],await b()}}),(r,e)=>{const l=i("el-tree-select"),c=i("el-form-item"),Q=i("el-input"),$=i("el-form"),A=i("el-search"),V=i("el-text"),F=i("el-title"),W=i("el-tooltip"),z=i("el-tag-display"),q=i("el-scrollbar"),H=i("el-grid"),j=i("el-content-panel"),G=Y("loading");return Z((u(),w(j,{padding:!1,class:"dialog-content-fill"},{default:a(()=>[s(A,{onSearch:B,onReset:b},{default:a(()=>[s($,{inline:!0,model:n.value,style:{width:"100%"},"label-position":"top",size:"default"},{default:a(()=>[s(c,{style:{width:"220px"},label:"指标类型"},{default:a(()=>[s(l,{modelValue:n.value.types,"onUpdate:modelValue":e[0]||(e[0]=t=>n.value.types=t),data:D(N)("ComIndexType"),"default-expand-all":!0,props:{label:"label",children:"children"},"render-after-expand":!1,"check-strictly":"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"",multiple:"","node-key":"value",placeholder:"请选择指标类型"},null,8,["modelValue","data"])]),_:1}),s(c,{style:{width:"220px"},label:"关键字"},{default:a(()=>[s(Q,{modelValue:n.value.name,"onUpdate:modelValue":e[1]||(e[1]=t=>n.value.name=t),clearable:"",placeholder:"请输入指标编码或名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),s(F,{title:"指标列表",level:"1",style:{"border-bottom":"var(--border)"}},{default:a(()=>[s(V,{class:"selection-count"},{default:a(()=>[e[4]||(e[4]=p(" 已选 ",-1)),s(V,{type:"primary"},{default:a(()=>[p(g(o.value.length),1)]),_:1}),e[5]||(e[5]=p(" 项 ",-1))]),_:1})]),_:1}),o.value.length?(u(),x("div",ce,[s(q,{"max-height":"60px"},{default:a(()=>[ee("div",de,[(u(!0),x(I,null,S(o.value,t=>(u(),w(z,{key:t.id||t.code,closable:"",onClose:v=>M(t)},{default:a(()=>[s(W,{content:`${t.code} ${t.name}`,placement:"top"},{default:a(()=>[p(g(t.name),1)]),_:2},1032,["content"])]),_:2},1032,["onClose"]))),128))])]),_:1})])):te("v-if",!0),s(H,oe({ref_key:"gridRef",ref:f},U,{data:d.value?.records??[],total:d.value?.total??0,pagination:"","current-page":n.value.current,"onUpdate:currentPage":e[2]||(e[2]=t=>n.value.current=t),"page-size":n.value.size,"onUpdate:pageSize":e[3]||(e[3]=t=>n.value.size=t),onCheckboxAll:k,onCheckboxChange:k,onCurrentChange:y}),{attriList:a(({row:t})=>[(u(!0),x(I,null,S(t.attriList,v=>(u(),w(z,{key:v.id||v.attriCd},{default:a(()=>[p(g(v.attriName),1)]),_:2},1024))),128))]),type:a(({row:t})=>[p(g(D(O)(t.type,"ComIndexType")||"—"),1)]),_:1},16,["data","total","current-page","page-size"])]),_:1})),[[G,m.value]])}}}),Be=se(ue,[["__scopeId","data-v-b3c18182"]]);export{Be as default};
|
|
@@ -84,6 +84,10 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
|
|
|
84
84
|
type: BooleanConstructor;
|
|
85
85
|
default: boolean;
|
|
86
86
|
};
|
|
87
|
+
showLoading: {
|
|
88
|
+
type: BooleanConstructor;
|
|
89
|
+
default: boolean;
|
|
90
|
+
};
|
|
87
91
|
watermarkCode: {
|
|
88
92
|
type: StringConstructor;
|
|
89
93
|
default: () => undefined;
|
|
@@ -110,6 +114,7 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
|
|
|
110
114
|
}>, {
|
|
111
115
|
remove: (file: UploadFile, isConfirm?: boolean) => Promise<void>;
|
|
112
116
|
confirm: (autoDelete?: boolean) => Promise<void>;
|
|
117
|
+
hasFiles: () => boolean;
|
|
113
118
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
114
119
|
success: (...args: any[]) => void;
|
|
115
120
|
"update:loading": (value: boolean | undefined) => void;
|
|
@@ -198,6 +203,10 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
|
|
|
198
203
|
type: BooleanConstructor;
|
|
199
204
|
default: boolean;
|
|
200
205
|
};
|
|
206
|
+
showLoading: {
|
|
207
|
+
type: BooleanConstructor;
|
|
208
|
+
default: boolean;
|
|
209
|
+
};
|
|
201
210
|
watermarkCode: {
|
|
202
211
|
type: StringConstructor;
|
|
203
212
|
default: () => undefined;
|
|
@@ -239,6 +248,7 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
|
|
|
239
248
|
overwrite: boolean;
|
|
240
249
|
autoUpload: boolean;
|
|
241
250
|
showOptMessage: boolean;
|
|
251
|
+
showLoading: boolean;
|
|
242
252
|
watermarkCode: string;
|
|
243
253
|
readonlyFileIds: string[];
|
|
244
254
|
fileOwnerAccounts: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as fe,ref as F,computed as E,useModel as H,resolveComponent as h,resolveDirective as ve,openBlock as m,createElementBlock as w,createBlock as S,withCtx as c,createElementVNode as x,Fragment as J,renderList as W,createVNode as y,unref as q,toDisplayString as B,withDirectives as ge,createTextVNode as N,createCommentVNode as K,normalizeStyle as ye,withModifiers as he,mergeModels as Q}from"vue";import{UploadFilled as we}from"@element-plus/icons-vue";import{ElMessage as d,ElMessageBox as xe}from"element-plus";import _e from"../../hooks/useFileView.js";import M from"../../api/DocumentApi.js";import k from"../../utils/FrameworkUtils.js";import{confirmDelete as Ce}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as Fe}from"../../stores/userInfoStore.js";import{getAcceptString as Be}from"../../utils/uploadAccept.js";import{buildUploadHeaders as ke}from"../../utils/buildUploadHeaders.js";import{_ as Ue}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"../../utils/behaviorContext.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";const Ee={key:0},Se={style:{display:"flex","flex-direction":"column"}},Me={style:{display:"flex","flex-direction":"column"}},be=["onClick"],Ie={key:1,style:{"text-align":"center",color:"var(--el-disabled-text-color)"}},De={class:"el-upload__tip"},Le=fe({__name:"CustomElUpload",props:Q({limit:{type:Number,default:1},vertical:{type:Boolean,default:!1},accept:{type:String,default:""},business:{type:String,default:"default"},businessId:{type:String,default:"default"},isEdit:{type:Boolean,default:!0},association:{type:Boolean,default:!1},size:{type:Number,default:50},itemWidth:{type:String,default:"100%"},isConfirmDelete:{type:Boolean,default:!1},overwrite:{type:Boolean,default:!0},autoUpload:{type:Boolean,default:!0},showOptMessage:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},watermarkCode:{type:String,default:()=>{}},readonlyFileIds:{type:Array,default:()=>[]},fileOwnerAccounts:{type:Array,default:()=>[]},uploadCreateBy:{type:String,default:""}},{uploadFilesList:{default:[]},uploadFilesListModifiers:{},loading:{type:Boolean},loadingModifiers:{}}),emits:Q(["success"],["update:uploadFilesList","update:loading"]),setup(f,{expose:X,emit:Y}){const{fileView:R}=_e(),$=Y,Z=Fe(),v=F(),p=F([]),_=F(""),b=F([]),o=f,O=E(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),ee=E(()=>ke(O.value)),n=H(f,"uploadFilesList"),te=e=>{_.value=e},le=()=>{_.value=""},I=E(()=>Be(o.accept)),V=e=>{const t=e.split(".").pop()+"";return".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP".includes(t)?"adtec-image":"txt".includes(t)?"adtec-text":"pdf".includes(t)?"adtec-pdf":"doc,docx".includes(t)?"adtec-word":"xls,xlsx".includes(t)?"adtec-excel":"ppt,pptx".includes(t)?"adtec-ppt":"adtec-text"},ae=async e=>{const t=o.uploadCreateBy?.trim(),a=e.id!=null?String(e.id):"";if(!t||!a)return e;try{await M.updateFilesCreateBy([a],t),e.createBy=t}catch(l){k.messageError(l)}return e},oe=async(e,t,a)=>{if(e.code==="0"){const l=await ae(e.data);n.value.push(l)}else d.error(e.msg),v.value?.handleRemove(t);for(let l=r.value.length-1;l>=0;l--)r.value[l]===t.name&&r.value.splice(l,1);e.code==="0"&&(o.showOptMessage&&d.success("上传成功"),$("success",{files:n.value,deleteFiles:p.value})),r.value.length===0&&(g.value=!1,G(e.code==="0"?void 0:new Error(e.msg||"上传失败")))},g=H(f,"loading"),r=F([]);let D,L;const j=E(()=>b.value.some(e=>e.status!=="success"&&e.status!=="fail")),se=()=>n.value.length>0||j.value,G=e=>{r.value.length>0||(e?L?.(e):D?.(),D=void 0,L=void 0)},P=async e=>{if(n.value.find(i=>i.name===e.name))return d.warning(e.name+",文件已存在"),!1;if(e.size>o.size*1024*1024)return d.warning("文件大小不能超过"+o.size+"MB"),!1;const a=I.value?.split(",").map(i=>i.slice(1).toLowerCase()),l=e.name.split(".").pop()?.toLowerCase();return a&&!a.includes(l??"")?(d.error(`文件 ${e.name} 格式不支持,仅允许 ${I.value}!`),setTimeout(()=>{v.value?.clearFiles(["ready"])},1),!1):(r.value.includes(e.name)||r.value.push(e.name),!0)},U=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},ne=e=>{if(U(e))return!1;if(!e?.createBy?.trim())return!0;const t=o.fileOwnerAccounts?.map(a=>a.trim()).filter(Boolean)??[];return t.length>0?t.includes(e.createBy.trim()):Z.getUserInfo.userCode===e.createBy},ie=async e=>{if(U(e)){d.warning("该附件非您上传,无法预览或删除");return}if(e.name===_.value){if(e.createBy&&!ne(e)){d.warning("您没有权限删除此文件!");return}if(o.isConfirmDelete)v.value?.handleRemove(e);else if(!await Ce({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>v.value?.handleRemove(e),successMessage:!1}))return}else A(e)},re=(e,t)=>{b.value=t},ue=async(e,t)=>{if(o.limit===1&&o.overwrite&&n.value.length>=1){const a=[...n.value],l=a[0];if(!o.isConfirmDelete){if(!await xe.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{g.value=!0,await M.delSysUploadFile(l.id).catch(u=>{k.messageError(u)})}catch(u){k.messageError(u);return}finally{g.value=!1}}n.value=[],v.value?.clearFiles(),e.length>0?await P(e[0])?(o.isConfirmDelete&&a.forEach(u=>{p.value.some(C=>C.id===u.id)||p.value.push(u)}),v.value?.handleStart(e[0]),o.autoUpload&&v.value?.submit()):n.value.push(...a):a.forEach(i=>{p.value.some(u=>u.id===i.id)||p.value.push(i)})}else d.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},ce=(e,t,a)=>{d.error("上传失败");for(let l=r.value.length-1;l>=0;l--)r.value[l]===t.name&&r.value.splice(l,1);r.value.length===0&&(g.value=!1,G(e))},A=async e=>{const t=n.value.find(a=>a.name===e.name);if(t){if(U(t)){d.warning("该附件非您上传,无法预览或删除");return}R(t.id)}},T=async(e,t=!0)=>{const a=n.value.find(l=>l.name===e.name);if(!(!a||U(a)))try{o.isConfirmDelete?p.value.push(a):await M.delSysUploadFile(a.id),n.value.splice(n.value.indexOf(a),1)}catch(l){k.messageError(l)}},de=(e,t)=>{g.value=!0};return X({remove:T,confirm:async(e=!0)=>{try{if(g.value=!0,o.isConfirmDelete&&p.value.length>0&&e&&(await M.delSysUploadFiles(p.value.map(t=>t.id)),p.value=[]),!o.autoUpload)if(j.value){const t=b.value.filter(l=>l.status!=="success"&&l.status!=="fail");for(const l of t)if(!l.raw||!await P(l.raw))throw new Error("待上传文件校验失败");const a=new Promise((l,i)=>{D=l,L=i});v.value?.submit(),await a}else o.showOptMessage&&d.success("操作成功"),$("success",{files:n.value,deleteFiles:p.value});g.value=!1}catch(t){throw k.messageError(t),g.value=!1,t}},hasFiles:se}),(e,t)=>{const a=h("el-icons"),l=h("el-tooltip"),i=h("el-icon"),u=h("el-text"),C=h("el-flex"),pe=h("el-upload"),me=ve("loading");return f.isEdit?ge((m(),S(pe,{key:1,ref_key:"ref_upload",ref:v,"file-list":n.value,onSuccess:oe,onRemove:T,onPreview:A,"auto-upload":f.autoUpload,onChange:re,onError:ce,onExceed:ue,onProgress:de,"before-upload":P,drag:"",accept:I.value,action:O.value,multiple:"",limit:f.limit,headers:ee.value},{file:c(({file:s})=>[y(C,{class:"file-class",onMousemove:z=>te(s.name),onMouseout:le,onClick:z=>A(s),height:"20px",width:f.itemWidth},{default:c(()=>[y(C,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:c(()=>[y(l,{class:"box-item",content:s.name,placement:"top"},{default:c(()=>[y(u,{truncated:"",style:{cursor:"pointer"}},{default:c(()=>[y(a,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),N(" "+B(s.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),y(C,{align:"center",justify:"flex-end",width:"50px"},{default:c(()=>[!s?.businessId&&s.percentage!==100?(m(),S(u,{key:0},{default:c(()=>[N(B(s.percentage)+"% ",1)]),_:2},1024)):K("v-if",!0),s?.businessId||s.percentage===100?(m(),S(a,{key:1,onClick:he(z=>ie(s),["prevent","stop"]),"model-value":s.name===_.value?"adtec-close":"adtec-success",style:ye([{color:"var(--el-color-success)","font-size":"14px"},{color:s.name===_.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):K("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:c(()=>[y(i,{class:"el-icon--upload"},{default:c(()=>[y(q(we))]),_:1}),t[0]||(t[0]=x("div",{class:"el-upload__text"},[N("拖动文件或"),x("em",null,"点击上传")],-1)),x("div",De,"最大上传文件大小"+B(f.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[me,f.showLoading&&g.value]]):(m(),w("div",Ee,[n.value?.length?(m(),S(l,{key:0,placement:"top"},{content:c(()=>[x("div",Se,[(m(!0),w(J,null,W(n.value,s=>(m(),w("span",{key:s.id,style:{margin:"0 2px"}},B(s.name),1))),128))])]),default:c(()=>[x("div",Me,[(m(!0),w(J,null,W(n.value,s=>(m(),w("div",{key:s.id,class:"file-item",style:{display:"flex","align-items":"center",overflow:"hidden"}},[y(a,{"model-value":V(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),x("span",{class:"link-name",onClick:z=>q(R)(s.id)},B(s.name),9,be)]))),128))])]),_:1})):(m(),w("div",Ie,"暂无附件"))]))}}}),nt=Ue(Le,[["__scopeId","data-v-3d4290f1"]]);export{nt as default};
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
type SharedIconfontScript = {
|
|
2
|
+
promise?: Promise<string | undefined>;
|
|
3
|
+
sprite?: string;
|
|
4
|
+
};
|
|
5
|
+
type SharedIconfontRuntime = {
|
|
6
|
+
scriptByBase: Record<string, SharedIconfontScript>;
|
|
7
|
+
jsonByBase: Record<string, any>;
|
|
8
|
+
jsonPromises: Record<string, Promise<any>>;
|
|
9
|
+
};
|
|
10
|
+
declare global {
|
|
11
|
+
interface Window {
|
|
12
|
+
__ADTEC_SHARED_ICONFONT_RUNTIME__?: SharedIconfontRuntime;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
1
15
|
/** 注入统一入口的 iconfont.js(SVG 雪碧图) */
|
|
2
16
|
export declare function loadIconfontJs(): Promise<void>;
|
|
3
17
|
/**
|
|
@@ -9,3 +23,4 @@ export declare function loadIconfontJs(): Promise<void>;
|
|
|
9
23
|
export declare function loadIconfontJson(skipDict?: boolean): Promise<any>;
|
|
10
24
|
/** 获取图标名列表('adtec-' + font_class),供图标选择器/菜单图标解析使用 */
|
|
11
25
|
export declare function loadIconfontList(skipDict?: boolean): Promise<string[]>;
|
|
26
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const E=t=>typeof t=="string"?t.trim().replace(/\/$/,""):"",
|
|
1
|
+
const E=t=>typeof t=="string"?t.trim().replace(/\/$/,""):"",l="/api/system/iconfont",h="adtec-iconfont-runtime-v1";const L="adtec-iconfont-cache-update",I={scriptByBase:{},jsonByBase:{},jsonPromises:{}},B=()=>{if(!(typeof window>"u"))return window.__POWERED_BY_WUJIE__?window.parent:window},y=()=>{const t=B();if(!t)return I;try{t.__ADTEC_SHARED_ICONFONT_RUNTIME__||(t.__ADTEC_SHARED_ICONFONT_RUNTIME__={scriptByBase:{},jsonByBase:{},jsonPromises:{}});const e=t.__ADTEC_SHARED_ICONFONT_RUNTIME__;return e.scriptByBase||(e.scriptByBase={}),e.jsonByBase||(e.jsonByBase={}),e.jsonPromises||(e.jsonPromises={}),e}catch{return I}},A=()=>{try{return B()?.document}catch{return typeof document>"u"?void 0:document}},H=()=>{const t=B();if(!t)return l;try{return E(new URL(l,t.location.href).href)}catch{try{return E(new URL(l,document.referrer).href)}catch{return l}}},M=t=>{const e=B();try{if(e?.fetch)return e.fetch(t)}catch{}return fetch(t)},_=()=>{if(typeof localStorage>"u")return{};try{const t=JSON.parse(localStorage.getItem(h)||"{}");return!t||typeof t!="object"||t.version&&t.version!==1?{}:{...t,version:1}}catch{return{}}},C=(t,e)=>{const o=t.updatedAt||0,s=e.updatedAt||0,n=s>=o?e:t;return{...t,...e,base:n.base||t.base||e.base,updatedAt:Math.max(o,s)||void 0,jsonByBase:{...t.jsonByBase||{},...e.jsonByBase||{}},spriteByBase:{...t.spriteByBase||{},...e.spriteByBase||{}}}};let c=_(),u=H();const v=()=>{if(!(typeof localStorage>"u")){c={...C(_(),c),version:1,updatedAt:Date.now()};try{localStorage.setItem(h,JSON.stringify(c))}catch{try{localStorage.setItem(h,JSON.stringify({version:1,updatedAt:c.updatedAt,base:c.base}))}catch{}}}},w=(t,e)=>{const o=Object.keys(t).filter(s=>s!==e);return Object.prototype.hasOwnProperty.call(t,e)&&o.push(e),o.slice(-3).reduce((s,n)=>(s[n]=t[n],s),{})},R=t=>{const e=c.jsonByBase?.[t];return e&&typeof e=="object"?e:void 0},U=(t,e)=>{const o={...c.jsonByBase||{},[t]:e};c={...c,base:t,updatedAt:Date.now(),jsonByBase:w(o,t)},v()},p=t=>{const e=c.spriteByBase?.[t];return typeof e=="string"&&e?e:void 0},P=t=>{try{const e=JSON.parse(t);if(!e||e.version&&e.version!==1||e.updatedAt&&c.updatedAt&&e.updatedAt<c.updatedAt)return;c=C(c,e),p(u)&&T(u),window.dispatchEvent(new CustomEvent(L,{detail:{base:u}}))}catch{}},j=(t,e)=>{if(!t)return;const o=Array.from(t.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]')).filter(n=>n.dataset.adtecIconfontSpriteSource!=="cache");if(e){const n=o.filter(r=>r.dataset.adtecIconfontBase===e);if(n.length)return n[n.length-1]}const s=Array.from(t.querySelectorAll('svg[aria-hidden="true"]')).filter(n=>n.dataset.adtecIconfontSpriteSource!=="cache"&&!!n.querySelector('symbol[id^="adtec-"]'));return s[s.length-1]},O=(t,e,o,s)=>{if(!t.body)return;const n=Array.from(t.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]')).filter(i=>i.dataset.adtecIconfontBase===e);if(s==="cache"&&n.length||n.some(i=>i.dataset.adtecIconfontSpriteSource===s))return;n.forEach(i=>i.remove());const r=t.createElement("div");r.innerHTML=o;const d=r.firstElementChild;if(d?.tagName.toLowerCase()!=="svg")return;const a=d;a.dataset.adtecIconfontSprite="1",a.dataset.adtecIconfontBase=e,a.dataset.adtecIconfontSpriteSource=s,t.body.insertBefore(a,t.body.firstChild)},T=t=>{if(typeof document>"u")return;const e=A();if(!((document!==e?y().scriptByBase[t]?.sprite:void 0)||p(t)))return;const n=()=>{if(!document.body)return;const r=document!==e?y().scriptByBase[t]?.sprite:void 0,d=r||p(t);d&&O(document,t,d,r?"shared":"cache")};document.body?n():document.addEventListener("DOMContentLoaded",n,{once:!0})},F=(t,e)=>new Promise(o=>{const s=()=>{const n=j(e,t);if(!n){o(void 0);return}n.dataset.adtecIconfontSprite="1",n.dataset.adtecIconfontBase=t,n.dataset.adtecIconfontSpriteSource="network";const r=n.outerHTML,d={...c.spriteByBase||{},[t]:r};c={...c,base:t,updatedAt:Date.now(),spriteByBase:w(d,t)},v(),e.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]').forEach(a=>{a!==n&&a.dataset.adtecIconfontBase===t&&a.dataset.adtecIconfontSpriteSource!=="network"&&a.remove()}),o(r)};e.body?setTimeout(s,0):e.addEventListener("DOMContentLoaded",()=>setTimeout(s,0),{once:!0})}),k=(t,e)=>e?new URL(`${t}/iconfont.js`,e.baseURI).href:`${t}/iconfont.js`;function D(t=u){const e=E(t)||l,o=y(),s=o.scriptByBase[e];if(s?.promise)return s.promise;if(s?.sprite)return Promise.resolve(s.sprite);const n=A();if(!n)return Promise.resolve(p(e));const r=s||{};o.scriptByBase[e]=r;const d=k(e,n),a=Array.from(n.querySelectorAll('script[data-adtec-iconfont="1"]')).find(i=>i.dataset.adtecIconfontBase===e||i.src===d);return r.promise=new Promise(i=>{const m=()=>{F(e,n).then(N=>{r.sprite=N||p(e),i(r.sprite)})},S=()=>{r.sprite=p(e),i(r.sprite)};if(a){a.dataset.adtecIconfontLoaded==="1"||j(n,e)?m():a.dataset.adtecIconfontLoaded==="0"?S():(a.addEventListener("load",m,{once:!0}),a.addEventListener("error",S,{once:!0}));return}const f=n.createElement("script");f.src=d,f.dataset.adtecIconfont="1",f.dataset.adtecIconfontBase=e,f.onload=()=>{f.dataset.adtecIconfontLoaded="1",m()},f.onerror=()=>{f.dataset.adtecIconfontLoaded="0",S()},n.head.appendChild(f)}),r.promise}function V(){const t=u;return T(t),g(t).catch(()=>{}),D(t).then(e=>{const o=A();e&&typeof document<"u"&&document!==o&&O(document,t,e,"shared")})}const g=t=>{const e=y();if(e.jsonByBase[t])return Promise.resolve(e.jsonByBase[t]);const o=e.jsonPromises[t];if(o)return o;const s=R(t),n=M(t+"/iconfont.json").then(r=>{if(!r.ok)throw new Error(`iconfont.json 请求失败:${r.status}`);return r.json()}).then(r=>(e.jsonByBase[t]=r,U(t,r),r)).catch(r=>{if(s)return s;throw r});return e.jsonPromises[t]=n,n};async function J(t=!1){const e=y().jsonByBase[u]||R(u),o=(async()=>g(u))();return e?(o.catch(()=>{}),e):o}async function q(t=!1){try{return((await J(t))?.glyphs||[]).map(o=>"adtec-"+o.font_class)}catch{return[]}}typeof window<"u"&&window.addEventListener("storage",t=>{t.key===h&&t.newValue&&P(t.newValue)});export{V as loadIconfontJs,J as loadIconfontJson,q as loadIconfontList};
|