epic-designer-gold
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 5.02 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),U=require("./axios-tuVKNgv9.cjs"),b=require("./index-BoL2PSBk.cjs"),j=require("element-plus"),Z=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),W=a.defineComponent({__name:"selectPage",props:{modelValue:[String,Number],placeholder:String,requestFn:{type:Function,default:()=>{}},valueKey:{type:String,default:"value"},labelKey:{type:String,default:"label"},pageSize:{type:Number,default:20},defaultData:{type:Object,default:()=>{}},componentSchema:{type:Object,default:()=>{}},sourceDateUrl:{type:String,default:""}},emits:["update:modelValue","update:modelValueLabel"],setup(D,{emit:A}){const _=`paginated-select-dropdown-${Math.random().toString(36).slice(2,8)}`,l=D,O=A,v=a.ref(l.modelValue);a.watch(()=>l.modelValue,e=>{v.value=e}),a.watch(v,e=>{O("update:modelValue",e);let t=u.value.find(o=>o.value===e);O("update:modelValueLabel",{label:t.label||l.defaultData.label,value:t.value||l.defaultData.value})});const u=a.ref(l.defaultData&&Object.keys(l.defaultData).length?[l.defaultData]:[]),p=a.ref(!1),f=a.ref(0),c=a.ref(1),x=a.ref(""),m=a.ref(!1),d=a.ref(null),h=a.ref(null);function B(){u.value=[],f.value=0,c.value=1,m.value=!1}function N(e=window.location.href){const t={},o=e.split("?")[1];return o&&o.split("&").forEach(r=>{const[i,g]=r.split("=");i&&(t[i]=decodeURIComponent(g||""))}),t}async function y(){var t,o,r,i,g,T,q,z,E,C;if(p.value||m.value)return;const e=N(n.value.url);console.log("%c [ urlParams ]-93","font-size:13px; background:pink; color:#bf2c9f;",e),p.value=!0;try{const s=await U.axios({url:n.value.url.split("?")[0],method:n.value.method,data:n.value.body?JSON.parse(n.value.body):{},params:n.value.params?{...e,...JSON.parse(n.value.params),[`${(o=(t=l==null?void 0:l.componentSchema)==null?void 0:t.componentProps)==null?void 0:o.pageKey}`]:c.value,[`${(i=(r=l==null?void 0:l.componentSchema)==null?void 0:r.componentProps)==null?void 0:i.searchKey}`]:x.value}:{...e},headers:{...JSON.parse(n.value.headers),Authorization:"Bearer "+b.api.get("Admin-Token"),lang:b.api.get("saas-locale")||"zh-CN",zone:Intl.DateTimeFormat().resolvedOptions().timeZone}});if(n.value&&n.value.dataPath){const J=((g=n.value)==null?void 0:g.dataPath.split(".")).reduce((P,k)=>P[k],s.data),K=(T=n.value)==null?void 0:T.dataPath.split(".");K.pop();const R=K.reduce((P,k)=>P[k],s.data);let L=S(J,n.value.dataKey,n.value.dataValue);c.value===1?u.value=L:u.value=u.value.concat(L),f.value=R[(z=(q=l==null?void 0:l.componentSchema)==null?void 0:q.componentProps)==null?void 0:z.pageTotalKey]}else{let V=S(s.data,n.value.dataKey,n.value.dataValue);c.value===1?u.value=V:u.value=u.value.concat(V),f.value=s.data[(C=(E=l==null?void 0:l.componentSchema)==null?void 0:E.componentProps)==null?void 0:C.pageTotalKey],console.log("%c [ ]-130","font-size:13px; background:pink; color:#bf2c9f;",u.value)}u.value.length>=f.value&&(m.value=!0)}catch(s){console.error("fetch error:",s)}finally{p.value=!1}}const n=a.ref();function S(e,t,o){return e&&Object.prototype.toString.call(e)==="[object Array]"?e.map(r=>r.children&&r.children.length?{label:r[t],value:r[o]+"",children:S(r.children,t,o)}:{label:r[t],value:r[o]+""}):[]}async function F(){var t,o;let e=await U.axios({url:l.sourceDateUrl,method:"get",params:{id:(o=(t=l==null?void 0:l.componentSchema)==null?void 0:t.componentProps)==null?void 0:o.dynamicId},headers:{Authorization:"Bearer "+b.api.get("Admin-Token"),lang:b.api.get("saas-locale")||"zh-CN",zone:Intl.DateTimeFormat().resolvedOptions().timeZone}});e.data.code===200&&(n.value=e.data.data)}a.watch(()=>l.sourceDateUrl,()=>{l.sourceDateUrl&&F()},{immediate:!0});function I(e){x.value=e,c.value=1,B(),y()}function M(e){e?(B(),y(),a.nextTick(()=>setTimeout($,0))):H()}function $(){const e=document.querySelector(`.${_} .el-select-dropdown__wrap`);e?(d.value=e,e.addEventListener("scroll",w)):(h.value=new MutationObserver(()=>{const t=document.querySelector(".paginated-select-dropdown .el-select-dropdown__wrap");t&&(d.value=t,t.addEventListener("scroll",w),h.value.disconnect())}),h.value.observe(document.body,{childList:!0,subtree:!0}))}function H(){var e;d.value&&d.value.removeEventListener("scroll",w),(e=h.value)==null||e.disconnect()}function w(){const e=d.value;if(!e||p.value||m.value)return;e.scrollTop+e.clientHeight>=e.scrollHeight-10&&(c.value++,y())}return(e,t)=>(a.openBlock(),a.createBlock(a.unref(j.ElSelect),{modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=o=>v.value=o),filterable:"",remote:"",clearable:"",placeholder:D.placeholder,"remote-method":I,loading:!1,teleported:!0,onVisibleChange:M,"popper-class":_,style:{width:"100%"}},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(u.value,o=>(a.openBlock(),a.createBlock(a.unref(j.ElOption),{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))}}),G=Z._export_sfc(W,[["__scopeId","data-v-177ce516"]]);exports.default=G;