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.
@@ -1 +1 @@
1
- import{defineComponent as W,useModel as q,ref as p,reactive as H,resolveComponent as r,resolveDirective as j,withDirectives as G,openBlock as _,createBlock as b,withCtx as n,createVNode as s,unref as k,createTextVNode as h,toDisplayString as y,mergeProps as J,createElementBlock as K,Fragment as X,renderList as Y,mergeModels as z,nextTick as Z}from"vue";import{ElMessage as $}from"element-plus";import ee from"../../hooks/useDictHooks.js";import te from"./api/DataIndicatorsApi.js";import f from"../../utils/FrameworkUtils.js";import{checkboxColumn as oe}from"../../config/vxeSelectColumn.js";import{_ as le}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 ae=W({__name:"SelectInDicators",props:z({confirmCallback:{type:Function}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:z(["success"],["update:loading"]),setup(x,{expose:D,emit:I}){const u=q(x,"loading"),S=x,V=I,{getDictTypeData:L,getDictName:P}=ee(["ComIndexType"]),m=p(),d=p(),a=p([]),t=p({types:[],name:"",isValid:1,isDetails:1,size:f.getPageSize(),current:1}),E=H({border:!0,height:"100%",columnConfig:{resizable:!1},checkboxConfig:{highlight:!0,range:!1},columns:[oe,{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"}}]}),g=async()=>{u.value=!0;try{d.value=await te.getPageComIndex(t.value),await Z(),a.value.forEach(i=>{const e=d.value?.records.find(o=>o.id===i.id);e&&m.value?.setCheckboxRow(e,!0)})}catch(i){f.messageError(i)}finally{u.value=!1}},R=async()=>{t.value.current=1,await g()},w=async()=>{t.value={types:[],name:"",isValid:1,isDetails:1,size:f.getPageSize(),current:1},await g()},C=()=>{const i=m.value?.getCheckboxRecords()??[],e=new Set(d.value?.records.map(o=>o.id)??[]);a.value=a.value.filter(o=>!e.has(o.id)||i.some(c=>c.id===o.id)),i.forEach(o=>{a.value.some(c=>c.id===o.id)||a.value.push(o)})};return D({confirm:async(i=!0)=>{if(!a.value.length)return $.warning("请选择指标"),!1;u.value=!0;try{return await S.confirmCallback(a.value)?(V("success"),i||(a.value=[],m.value?.clearCheckboxRow()),!0):!1}catch(e){return f.messageError(e),!1}finally{u.value=!1}},resetQuery:async()=>{a.value=[],await w()}}),(i,e)=>{const o=r("el-tree-select"),c=r("el-form-item"),T=r("el-input"),O=r("el-form"),U=r("el-search"),B=r("el-text"),M=r("el-title"),N=r("el-tag-display"),Q=r("el-grid"),A=r("el-flex"),F=j("loading");return G((_(),b(A,{vertical:!0,class:"dialog-content-fill indicator-selector"},{default:n(()=>[s(U,{onSearch:R,onReset:w},{default:n(()=>[s(O,{inline:!0,model:t.value,"label-position":"top",size:"default"},{default:n(()=>[s(c,{label:"指标类型"},{default:n(()=>[s(o,{modelValue:t.value.types,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.types=l),data:k(L)("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,{label:"关键字"},{default:n(()=>[s(T,{modelValue:t.value.name,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.name=l),clearable:"",placeholder:"请输入指标编码或名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),s(M,{title:"指标列表",level:"1",style:{"border-bottom":"var(--border)"}},{default:n(()=>[s(B,null,{default:n(()=>[h("已选 "+y(a.value.length)+" 项",1)]),_:1})]),_:1}),s(Q,J({ref_key:"gridRef",ref:m},E,{data:d.value?.records??[],total:d.value?.total??0,pagination:"","current-page":t.value.current,"onUpdate:currentPage":e[2]||(e[2]=l=>t.value.current=l),"page-size":t.value.size,"onUpdate:pageSize":e[3]||(e[3]=l=>t.value.size=l),onCheckboxAll:C,onCheckboxChange:C,onCurrentChange:g}),{attriList:n(({row:l})=>[(_(!0),K(X,null,Y(l.attriList,v=>(_(),b(N,{key:v.id||v.attriCd},{default:n(()=>[h(y(v.attriName),1)]),_:2},1024))),128))]),type:n(({row:l})=>[h(y(k(P)(l.type,"ComIndexType")||"—"),1)]),_:1},16,["data","total","current-page","page-size"])]),_:1})),[[F,u.value]])}}}),Pe=le(ae,[["__scopeId","data-v-5a06f351"]]);export{Pe as default};
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 ce,ref as _,computed as k,useModel as R,resolveComponent as y,resolveDirective as de,openBlock as u,createElementBlock as h,createBlock as S,withCtx as i,createElementVNode as x,Fragment as j,renderList as G,createVNode as f,unref as T,toDisplayString as C,withDirectives as pe,createTextVNode as D,createCommentVNode as H,normalizeStyle as me,withModifiers as fe,mergeModels as J}from"vue";import{UploadFilled as ve}from"@element-plus/icons-vue";import{ElMessage as r,ElMessageBox as ge}from"element-plus";import ye from"../../hooks/useFileView.js";import U from"../../api/DocumentApi.js";import F from"../../utils/FrameworkUtils.js";import{confirmDelete as he}from"../../hooks/useDeleteConfirmHooks.js";import{userInfoStore as xe}from"../../stores/userInfoStore.js";import{getAcceptString as we}from"../../utils/uploadAccept.js";import{buildUploadHeaders as _e}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"../../utils/behaviorContext.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";const Fe={key:0},Be={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"},Me=ce({__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(v,{expose:W,emit:q}){const{fileView:L}=ye(),A=q,K=xe(),c=_(),g=_([]),w=_(""),z=_([]),o=v,N=k(()=>"/api/doc/uploadFile/"+o.business+"/"+o.businessId+"/"+o.association+(o.watermarkCode?"?watermarkCode="+o.watermarkCode:"")),Q=k(()=>_e(N.value)),n=R(v,"uploadFilesList"),X=e=>{w.value=e},Y=()=>{w.value=""},b=k(()=>we(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"},Z=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){F.messageError(a)}return e},ee=async(e,t,l)=>{if(e.code==="0"){const a=await Z(e.data);n.value.push(a)}else r.error(e.msg),c.value?.handleRemove(t);for(let a=p.value.length-1;a>=0;a--)p.value[a]===t.name&&p.value.splice(a,1);e.code==="0"&&(o.showOptMessage&&r.success("上传成功"),A("success",{files:n.value,deleteFiles:g.value})),p.value.length===0&&(d.value=!1)},d=R(v,"loading"),p=_([]),te=k(()=>z.value.some(e=>e.status!=="success"&&e.status!=="fail")),$=async e=>{if(n.value.find(m=>m.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(m=>m.slice(1).toLowerCase()),a=e.name.split(".").pop()?.toLowerCase();return l&&!l.includes(a??"")?(r.error(`文件 ${e.name} 格式不支持,仅允许 ${b.value}!`),setTimeout(()=>{c.value?.clearFiles(["ready"])},1),!1):(p.value.push(e.name),!0)},B=e=>{const t=e?.id!=null?String(e.id):"";return!!t&&o.readonlyFileIds.includes(t)},le=e=>{if(B(e))return!1;if(!e?.createBy?.trim())return!0;const t=o.fileOwnerAccounts?.map(l=>l.trim()).filter(Boolean)??[];return t.length>0?t.includes(e.createBy.trim()):K.getUserInfo.userCode===e.createBy},ae=async e=>{if(B(e)){r.warning("该附件非您上传,无法预览或删除");return}if(e.name===w.value){if(e.createBy&&!le(e)){r.warning("您没有权限删除此文件!");return}if(o.isConfirmDelete)c.value?.handleRemove(e);else if(!await he({message:"删除不可恢复!您确定删除此附件?",title:"提示",request:()=>c.value?.handleRemove(e),successMessage:!1}))return}else M(e)},oe=(e,t)=>{z.value=t},se=async(e,t)=>{if(o.limit===1&&o.overwrite&&n.value.length>=1){const l=n.value[0];if(!o.isConfirmDelete){if(!await ge.confirm("只允许上传一个附件,是否点击确定覆盖原有附件?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}))return;try{d.value=!0,await U.delSysUploadFile(l.id).catch(m=>{F.messageError(m)})}catch(m){F.messageError(m);return}finally{d.value=!1}}n.value=[],c.value?.clearFiles(),e.length>0?await $(e[0])?(c.value?.handleStart(e[0]),o.autoUpload&&c.value?.submit()):n.value.push(l):g.value.push(l)}else r.warning(`最多上传${o.limit}个文件,上传文件数量已达到限制`)},ne=(e,t,l)=>{r.error("上传失败");for(let a=p.value.length-1;a>=0;a--)p.value[a]===t.name&&p.value.splice(a,1);p.value.length===0&&(d.value=!1)},M=async e=>{const t=n.value.find(l=>l.name===e.name);if(t){if(B(t)){r.warning("该附件非您上传,无法预览或删除");return}L(t.id)}},O=async(e,t=!0)=>{const l=n.value.find(a=>a.name===e.name);if(!(!l||B(l)))try{o.isConfirmDelete?g.value.push(l):await U.delSysUploadFile(l.id),n.value.splice(n.value.indexOf(l),1)}catch(a){F.messageError(a)}},ie=(e,t)=>{d.value=!0};return W({remove:O,confirm:async(e=!0)=>{try{if(d.value=!0,o.isConfirmDelete&&g.value.length>0&&e&&(await U.delSysUploadFiles(g.value.map(t=>t.id)),g.value=[]),!o.autoUpload)if(te.value){c.value?.submit();return}else o.showOptMessage&&r.success("操作成功"),A("success",{files:n.value,deleteFiles:g.value});d.value=!1}catch(t){F.messageError(t),d.value=!1}}}),(e,t)=>{const l=y("el-icons"),a=y("el-tooltip"),m=y("el-icon"),V=y("el-text"),E=y("el-flex"),re=y("el-upload"),ue=de("loading");return v.isEdit?pe((u(),S(re,{key:1,ref_key:"ref_upload",ref:c,"file-list":n.value,onSuccess:ee,onRemove:O,onPreview:M,"auto-upload":v.autoUpload,onChange:oe,onError:ne,onExceed:se,onProgress:ie,"before-upload":$,drag:"",accept:b.value,action:N.value,multiple:"",limit:v.limit,headers:Q.value},{file:i(({file:s})=>[f(E,{class:"file-class",onMousemove:I=>X(s.name),onMouseout:Y,onClick:I=>M(s),height:"20px",width:v.itemWidth},{default:i(()=>[f(E,{align:"center",justify:"flex-start",style:{overflow:"hidden"}},{default:i(()=>[f(a,{class:"box-item",content:s.name,placement:"top"},{default:i(()=>[f(V,{truncated:"",style:{cursor:"pointer"}},{default:i(()=>[f(l,{"model-value":P(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),D(" "+C(s.name),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),f(E,{align:"center",justify:"flex-end",width:"50px"},{default:i(()=>[!s?.businessId&&s.percentage!==100?(u(),S(V,{key:0},{default:i(()=>[D(C(s.percentage)+"% ",1)]),_:2},1024)):H("v-if",!0),s?.businessId||s.percentage===100?(u(),S(l,{key:1,onClick:fe(I=>ae(s),["prevent","stop"]),"model-value":s.name===w.value?"adtec-close":"adtec-success",style:me([{color:"var(--el-color-success)","font-size":"14px"},{color:s.name===w.value?"var(--el-color-danger)":"var(--el-color-success)"}])},null,8,["onClick","model-value","style"])):H("v-if",!0)]),_:2},1024)]),_:2},1032,["onMousemove","onClick","width"])]),default:i(()=>[f(m,{class:"el-icon--upload"},{default:i(()=>[f(T(ve))]),_:1}),t[0]||(t[0]=x("div",{class:"el-upload__text"},[D("拖动文件或"),x("em",null,"点击上传")],-1)),x("div",be,"最大上传文件大小"+C(v.size)+"MB",1)]),_:1},8,["file-list","auto-upload","accept","action","limit","headers"])),[[ue,d.value]]):(u(),h("div",Fe,[n.value?.length?(u(),S(a,{key:0,placement:"top"},{content:i(()=>[x("div",Be,[(u(!0),h(j,null,G(n.value,s=>(u(),h("span",{key:s.id,style:{margin:"0 2px"}},C(s.name),1))),128))])]),default:i(()=>[x("div",ke,[(u(!0),h(j,null,G(n.value,s=>(u(),h("div",{key:s.id,class:"file-item",style:{display:"flex","align-items":"center",overflow:"hidden"}},[f(l,{"model-value":P(s.name),style:{"margin-right":"5px"}},null,8,["model-value"]),x("span",{class:"link-name",onClick:I=>T(L)(s.id)},C(s.name),9,Se)]))),128))])]),_:1})):(u(),h("div",Ue,"暂无附件"))]))}}}),lt=Ce(Me,[["__scopeId","data-v-accacf70"]]);export{lt as default};
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(/\/$/,""):"",y="/api/system/iconfont",i="adtec-iconfont-runtime-v1";const I="adtec-iconfont-cache-update",m=()=>{if(typeof localStorage>"u")return{};try{const t=JSON.parse(localStorage.getItem(i)||"{}");return!t||typeof t!="object"||t.version&&t.version!==1?{}:{...t,version:1}}catch{return{}}},h=(t,e)=>{const n=t.updatedAt||0,o=e.updatedAt||0,r=o>=n?e:t;return{...t,...e,base:r.base||t.base||e.base,updatedAt:Math.max(n,o)||void 0,jsonByBase:{...t.jsonByBase||{},...e.jsonByBase||{}},spriteByBase:{...t.spriteByBase||{},...e.spriteByBase||{}}}};let c=m(),d=y;const f=new Map,l=new Map,S=()=>{if(!(typeof localStorage>"u")){c={...h(m(),c),version:1,updatedAt:Date.now()};try{localStorage.setItem(i,JSON.stringify(c))}catch{try{localStorage.setItem(i,JSON.stringify({version:1,updatedAt:c.updatedAt,base:c.base}))}catch{}}}},B=(t,e)=>{const n=Object.keys(t).filter(o=>o!==e);return Object.prototype.hasOwnProperty.call(t,e)&&n.push(e),n.slice(-3).reduce((o,r)=>(o[r]=t[r],o),{})},A=t=>{const e=c.jsonByBase?.[t];return e&&typeof e=="object"?e:void 0},g=(t,e)=>{const n={...c.jsonByBase||{},[t]:e};c={...c,base:t,updatedAt:Date.now(),jsonByBase:B(n,t)},S()},u=t=>{const e=c.spriteByBase?.[t];return typeof e=="string"&&e?e:void 0},v=t=>{try{const e=JSON.parse(t);if(!e||e.version&&e.version!==1||e.updatedAt&&c.updatedAt&&e.updatedAt<c.updatedAt)return;c=h(c,e),u(d)&&C(d),window.dispatchEvent(new CustomEvent(I,{detail:{base:d}}))}catch{}},w=t=>{if(typeof document>"u")return;const e=Array.from(document.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]')).filter(o=>o.dataset.adtecIconfontSpriteSource!=="cache");{const o=e.filter(r=>r.dataset.adtecIconfontBase===t);if(o.length)return o[o.length-1]}const n=Array.from(document.querySelectorAll('svg[aria-hidden="true"]')).filter(o=>o.dataset.adtecIconfontSpriteSource!=="cache"&&!!o.querySelector('symbol[id^="adtec-"]'));return n[n.length-1]},C=t=>{if(typeof document>"u"||Array.from(document.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]')).some(r=>r.dataset.adtecIconfontBase===t))return;const n=u(t);if(!n)return;const o=()=>{if(!document.body||u(t)!==n)return;const r=document.createElement("div");r.innerHTML=n;const s=r.firstElementChild;s instanceof SVGElement&&(s.dataset.adtecIconfontSprite="1",s.dataset.adtecIconfontBase=t,s.dataset.adtecIconfontSpriteSource="cache",document.body.insertBefore(s,document.body.firstChild))};document.body?o():document.addEventListener("DOMContentLoaded",o,{once:!0})},O=t=>{if(typeof document>"u")return;const e=()=>{const n=w(t);if(!n)return;n.dataset.adtecIconfontSprite="1",n.dataset.adtecIconfontBase=t,n.dataset.adtecIconfontSpriteSource="network";const o={...c.spriteByBase||{},[t]:n.outerHTML};c={...c,base:t,updatedAt:Date.now(),spriteByBase:B(o,t)},S(),document.querySelectorAll('svg[data-adtec-iconfont-sprite="1"]').forEach(r=>{r!==n&&r.dataset.adtecIconfontBase===t&&r.dataset.adtecIconfontSpriteSource==="cache"&&r.remove()})};document.body?setTimeout(e,0):document.addEventListener("DOMContentLoaded",()=>setTimeout(e,0),{once:!0})},R=t=>typeof document>"u"?`${t}/iconfont.js`:new URL(`${t}/iconfont.js`,document.baseURI).href;function j(t=d){const e=E(t)||y;if(typeof document>"u")return Promise.resolve();const n=f.get(e);if(n)return n;const o=R(e);if(Array.from(document.querySelectorAll('script[data-adtec-iconfont="1"]')).find(a=>a.dataset.adtecIconfontBase===e||a.src===o)){const a=Promise.resolve();return f.set(e,a),a}const s=document.createElement("script");s.src=o,s.dataset.adtecIconfont="1",s.dataset.adtecIconfontBase=e;const p=new Promise(a=>{s.onload=()=>{s.dataset.adtecIconfontLoaded="1",O(e),a()},s.onerror=()=>{s.dataset.adtecIconfontLoaded="0",a()},document.head.appendChild(s)});return f.set(e,p),p}function T(){const t=d;return C(t),j(t)}const _=t=>{const e=l.get(t);if(e)return e;const n=A(t),o=fetch(t+"/iconfont.json").then(r=>{if(!r.ok)throw new Error(`iconfont.json 请求失败:${r.status}`);return r.json()}).then(r=>(g(t,r),r)).catch(r=>{if(n)return n;throw r});return l.set(t,o),o};async function M(t=!1){const e=A(d),n=(async()=>_(d))();return e?(n.catch(()=>{}),e):n}async function L(t=!1){try{return((await M(t))?.glyphs||[]).map(n=>"adtec-"+n.font_class)}catch{return[]}}typeof window<"u"&&window.addEventListener("storage",t=>{t.key===i&&t.newValue&&v(t.newValue)});export{T as loadIconfontJs,M as loadIconfontJson,L as loadIconfontList};
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};