epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 1.95 kB
JavaScript
;const e=require("vue");;/* empty css */;/* empty css */;/* empty css */;/* empty css */require("vue-draggable-plus");require("../../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const o=require("../../../../../manager/src/pluginManager.cjs"),x=e.defineComponent({__name:"index",props:{modelValue:{}},emits:["update:modelValue"],setup(i,{emit:v}){const p=i,s=v,m=o.pluginManager.component.get("input"),d=o.pluginManager.component.get("select"),l=e.ref(null),t=e.ref("px"),c=[{label:"px",value:"px"},{label:"%",value:"%"},{label:"vw",value:"vw"},{label:"vh",value:"vh"},{label:"rem",value:"rem"},{label:"em",value:"em"},{label:"pt",value:"pt"}];e.watch(()=>p.modelValue,n=>{if(!n)return;if(typeof n=="number"){l.value=String(n),t.value="px";return}const u=Number.parseFloat(n);if(Number.isNaN(u))return l.value=null,!1;const a=/^(\d+(\.\d+)?)(px|%|vw|vh|rem|em|pt)$/,r=n.trim().match(a);l.value=(r==null?void 0:r[1])??null,t.value=(r==null?void 0:r[3])??""},{immediate:!0}),e.watch(()=>t.value+l.value,()=>{f()});function f(){e.nextTick(()=>s("update:modelValue",l.value?l.value+t.value:void 0))}return(n,u)=>(e.openBlock(),e.createBlock(e.unref(m),{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=a=>l.value=a),value:l.value,"onUpdate:value":u[3]||(u[3]=a=>l.value=a),class:"ep-input-size",type:"number",min:"0",placeholder:"请输入"},{suffix:e.withCtx(()=>[e.createVNode(e.unref(d),{value:t.value,"onUpdate:value":u[0]||(u[0]=a=>t.value=a),modelValue:t.value,"onUpdate:modelValue":u[1]||(u[1]=a=>t.value=a),style:{width:"60px"},options:c},null,8,["value","modelValue"])]),_:1},8,["modelValue","value"]))}});module.exports=x;