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