@ajaxjs/ui 1.6.7 → 1.6.8

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.
@@ -60,4 +60,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
60
60
  "ZXY": "DD"
61
61
  }
62
62
  }
63
- }`}}},methods:{getData(){this.getDataBase(s=>{this.$refs.configTable.fields=this.cfg.fields,this.cfg.jsonBased&&this.cfg.jsonBased.isJsonBased&&(this.view="form")})},addRow(){let s={isShow:!0,name:"",label:"",uiType:1,uiLayout:1,jsonType:"string",isNull:!1};this.addRow_(s)},saveAddRow(){this.saveAddRow_("name","label")},emptyData(){this.name="",this.cfg={fields:[]},this.$refs.configTable.fields=[]},fieldsToCfg(s){console.log(s),s&&s.fields&&s.fields.length?(this.cfg.fields=[],this.tableName=s.tableName,this.datasourceId=s.datasourceId,this.datasourceName=s.datasourceName,s.fields.forEach(i=>toCfg(i,this.cfg.fields)),this.$refs.configTable.fields=this.cfg.fields,s.comment&&(this.name=s.comment)):this.$Message.warning("未选择任何字段")},parseJsonBased(){let s=JSON.parse(this.jsonBased.jsonStr),i=findNode(s,this.cfg.jsonBased.key.split("."));for(let u in i){let t=i[u],h,y;switch(typeof t){case"number":y="number",h=11;break;case"boolean":y="boolean",h=3;break;default:y="string",h=1}let d={isShow:!0,name:u,label:"",uiType:h,uiLayout:1,jsonType:y,ext_attribs:{}};this.cfg.fields.push(d)}this.cfg.jsonBased.isJsonBased=!0,this.view="form"},syncData(s){s&&(this.cfg.fields=s)}}};function toCfg(s,i){let u={isShow:!0,isKey:s.isKey,name:toCamelCase(s.name),label:s.comment,comment:s.comment,length:s.length,uiType:1,uiLayout:1,defaultValue:s.defaultValue,ext_attribs:s.ext_attribs||{}};s.null==="YES"?u.isNull=!0:s.null==="NO"&&(u.isNull=!1);let t=s.type.toLowerCase();switch(t.indexOf("text")!=-1&&(u.uiType=6),t.indexOf("datetime")!=-1&&(u.uiType=6),s.name.toLowerCase()){case"name":u.label="名称";break;case"content":case"desc":u.label="简介",u.uiType=6;break}i.push(u)}function toCamelCase(s){return s.toLowerCase().replace(/_+([a-z0-9])/g,(i,u)=>u.toUpperCase())}function findNode(s,i){if(!i.shift)return null;let u=i.shift();for(let t in s)if(t===u){let h=s[t];return i.length==0?h:findNode(s[t],i)}}const _hoisted_1={class:"input-width"},_hoisted_2={class:"input-width"},_hoisted_3={class:"input-width"},_hoisted_4={class:"number-width"},_hoisted_5={class:"checkbox-width"};function _sfc_render(s,i,u,t,h,y){const d=vue.resolveComponent("Input"),p=vue.resolveComponent("Option"),g=vue.resolveComponent("OptionGroup"),v=vue.resolveComponent("Select"),w=vue.resolveComponent("Checkbox"),k=vue.resolveComponent("FormLoader"),S=vue.resolveComponent("ConfigPanel"),N=vue.resolveComponent("MoreAttrib"),B=vue.resolveComponent("Modal"),I=vue.resolveComponent("ConfigTable");return vue.openBlock(),vue.createBlock(I,{ref:"configTable",class:"form-factory"},{topbar:vue.withCtx(()=>[vue.createElementVNode("a",{onClick:i[0]||(i[0]=D=>s.jsonBased.isShowJsonBased=!0)},"从JSON新建"),i[6]||(i[6]=vue.createTextVNode(" | 视图:",-1)),vue.createElementVNode("a",{onClick:i[1]||(i[1]=D=>s.view="model"),class:vue.normalizeClass({selected:s.view=="model"})},"模型",2),i[7]||(i[7]=vue.createTextVNode(" | ",-1)),vue.createElementVNode("a",{onClick:i[2]||(i[2]=D=>s.view="form"),class:vue.normalizeClass({selected:s.view=="form"})},"表单",2),i[8]||(i[8]=vue.createTextVNode(" | ",-1))]),"table-header":vue.withCtx(()=>[i[9]||(i[9]=vue.createElementVNode("div",{class:"input-width"},"说明",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"数据类型",2),i[10]||(i[10]=vue.createElementVNode("div",{class:"number-width"},"数据长度",-1)),i[11]||(i[11]=vue.createElementVNode("div",{class:"checkbox-width"},"必填",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"跨表字段?",2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"是否主键",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"默认值",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"渲染器",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"布局",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"JSON 类型",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"正则验证",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"验证提示",2)]),"table-fields":vue.withCtx(D=>[vue.createElementVNode("div",_hoisted_1,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.name,"onUpdate:modelValue":T=>D.item.name=T,placeholder:"名称为必填项"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_2,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.label,"onUpdate:modelValue":T=>D.item.label=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_3,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.comment,"onUpdate:modelValue":T=>D.item.comment=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"字符类型"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[12]||(i[12]=[vue.createTextVNode("VARCHAR",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[13]||(i[13]=[vue.createTextVNode("TEXT",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[14]||(i[14]=[vue.createTextVNode("LONG TEXT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"整形数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[15]||(i[15]=[vue.createTextVNode("TINYINT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[16]||(i[16]=[vue.createTextVNode("INT",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[17]||(i[17]=[vue.createTextVNode("BIGINT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"浮点数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[18]||(i[18]=[vue.createTextVNode("FLOAT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[19]||(i[19]=[vue.createTextVNode("DOUBLE",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[20]||(i[20]=[vue.createTextVNode("DECIMAL",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"其他"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[21]||(i[21]=[vue.createTextVNode("BOOLEAN",-1)])]),_:1}),vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[22]||(i[22]=[vue.createTextVNode("JSON",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",_hoisted_4,[vue.createVNode(d,{size:"small",type:"number",modelValue:D.item.length,"onUpdate:modelValue":T=>D.item.length=T,placeholder:"最大长度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(w,{size:"small",modelValue:D.item.isNull,"onUpdate:modelValue":T=>D.item.isNull=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isCrossTable,"onUpdate:modelValue":T=>D.item.isCrossTable=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isKey,"onUpdate:modelValue":T=>D.item.isKey=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.defaultValue,"onUpdate:modelValue":T=>D.item.defaultValue=T,placeholder:"选填"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"常用表单组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[23]||(i[23]=[vue.createTextVNode("文本输入框 Input",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[24]||(i[24]=[vue.createTextVNode("密码输入框 Password",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[25]||(i[25]=[vue.createTextVNode("数字输入框 Number",-1)])]),_:1}),vue.createVNode(p,{value:6},{default:vue.withCtx(()=>[...i[26]||(i[26]=[vue.createTextVNode("多行文本框 Textarea",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[27]||(i[27]=[vue.createTextVNode("下拉列表 Select",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[28]||(i[28]=[vue.createTextVNode("单选框 Radio",-1)])]),_:1}),vue.createVNode(p,{value:4},{default:vue.withCtx(()=>[...i[29]||(i[29]=[vue.createTextVNode("多选框 Checkbox",-1)])]),_:1}),vue.createVNode(p,{value:7},{default:vue.withCtx(()=>[...i[30]||(i[30]=[vue.createTextVNode("开关 Switch",-1)])]),_:1}),vue.createVNode(p,{value:10},{default:vue.withCtx(()=>[...i[31]||(i[31]=[vue.createTextVNode(" 滑块 Slider",-1)])]),_:1}),vue.createVNode(p,{value:5},{default:vue.withCtx(()=>[...i[32]||(i[32]=[vue.createTextVNode("日期选择器 DatePicker",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[33]||(i[33]=[vue.createTextVNode("时间上传器 TimePicker",-1)])]),_:1}),vue.createVNode(p,{value:8},{default:vue.withCtx(()=>[...i[34]||(i[34]=[vue.createTextVNode("富文本编辑器 HTML Editor",-1)])]),_:1}),vue.createVNode(p,{value:17},{default:vue.withCtx(()=>[...i[35]||(i[35]=[vue.createTextVNode("图片上传器 Img Uploader",-1)])]),_:1}),vue.createVNode(p,{value:9},{default:vue.withCtx(()=>[...i[36]||(i[36]=[vue.createTextVNode("文件上传器 File Uploader",-1)])]),_:1}),vue.createVNode(p,{value:20},{default:vue.withCtx(()=>[...i[37]||(i[37]=[vue.createTextVNode("只读的短日期",-1)])]),_:1}),vue.createVNode(p,{value:21},{default:vue.withCtx(()=>[...i[38]||(i[38]=[vue.createTextVNode("只读的长日期",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"业务组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[39]||(i[39]=[vue.createTextVNode("手机输入框",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[40]||(i[40]=[vue.createTextVNode("电邮输入框",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[41]||(i[41]=[vue.createTextVNode("性别选择",-1)])]),_:1}),vue.createVNode(p,{value:13},{default:vue.withCtx(()=>[...i[42]||(i[42]=[vue.createTextVNode("身份证输入框",-1)])]),_:1}),vue.createVNode(p,{value:14},{default:vue.withCtx(()=>[...i[43]||(i[43]=[vue.createTextVNode("省市区联动",-1)])]),_:1}),vue.createVNode(p,{value:19},{default:vue.withCtx(()=>[...i[44]||(i[44]=[vue.createTextVNode("实体状态",-1)])]),_:1}),vue.createVNode(p,{value:22},{default:vue.withCtx(()=>[...i[45]||(i[45]=[vue.createTextVNode("数据字典",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.uiLayout,"onUpdate:modelValue":T=>D.item.uiLayout=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[46]||(i[46]=[vue.createTextVNode("单列",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[47]||(i[47]=[vue.createTextVNode("双列",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[48]||(i[48]=[vue.createTextVNode("三列",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.jsonType,"onUpdate:modelValue":T=>D.item.jsonType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:"string"},{default:vue.withCtx(()=>[...i[49]||(i[49]=[vue.createTextVNode("文本",-1)])]),_:1}),vue.createVNode(p,{value:"long_string"},{default:vue.withCtx(()=>[...i[50]||(i[50]=[vue.createTextVNode("长文本",-1)])]),_:1}),vue.createVNode(p,{value:"number"},{default:vue.withCtx(()=>[...i[51]||(i[51]=[vue.createTextVNode("数字",-1)])]),_:1}),vue.createVNode(p,{value:"boolean"},{default:vue.withCtx(()=>[...i[52]||(i[52]=[vue.createTextVNode("布尔值",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.regexp,"onUpdate:modelValue":T=>D.item.regexp=T,placeholder:"校验的正则表达式"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.validMsg,"onUpdate:modelValue":T=>D.item.validMsg=T,placeholder:"验证错误时的信息"},null,8,["modelValue","onUpdate:modelValue"])],2)]),"live-perview":vue.withCtx(()=>[vue.createVNode(k,{ref:"LivePerview",is_show_btns:!1},null,512)]),"config-panel":vue.withCtx(()=>[vue.createVNode(S,{cfg:s.cfg,"api-root":s.API},null,8,["cfg","api-root"])]),"more-attrib":vue.withCtx(D=>[D.row?(vue.openBlock(),vue.createBlock(N,{key:0,row:D.row,"ext-attribs":D.row.ext_attribs},null,8,["row","ext-attribs"])):vue.createCommentVNode("",!0)]),default:vue.withCtx(()=>[vue.createVNode(B,{modelValue:s.jsonBased.isShowJsonBased,"onUpdate:modelValue":i[4]||(i[4]=D=>s.jsonBased.isShowJsonBased=D),title:"根据 JSON 定义创建表单",width:"650",onOnOk:s.parseJsonBased},{default:vue.withCtx(()=>[vue.createVNode(d,{type:"textarea",modelValue:s.jsonBased.jsonStr,"onUpdate:modelValue":i[3]||(i[3]=D=>s.jsonBased.jsonStr=D),rows:15,style:{width:"86%"}},null,8,["modelValue"]),i[53]||(i[53]=vue.createElementVNode("p",null,"JSON 为多层结构,须指定某个对象,这里指定一个字段",-1))]),_:1},8,["modelValue","onOnOk"]),vue.createVNode(B,{modelValue:s.isShowPerview,"onUpdate:modelValue":i[5]||(i[5]=D=>s.isShowPerview=D),title:"预览",width:"800","ok-text":"关闭","cancel-text":""},{default:vue.withCtx(()=>[vue.createVNode(k,{ref:"preview","is-Show-Info-Btn":""},null,512)]),_:1},8,["modelValue"])]),_:1},512)}const FormInfo=_export_sfc(_sfc_main,[["render",_sfc_render],["__scopeId","data-v-d2273c52"]]),admin={HomePage,Login},system={Article,DataDict,Schedule,ArticleEdit},shop={Transaction},IAM={App,LoginLog,Tenant,Token,User},ConfigWdiget={ListMgr,ListInfo,FormMgr,FormInfo,ListLoader};exports.ConfigWdiget=ConfigWdiget;exports.HtmlEditor=HtmlEditor;exports.IAM=IAM;exports.MyButton=MyButton;exports.admin=admin;exports.getQueryParam=getQueryParam;exports.shop=shop;exports.system=system;
63
+ }`}}},methods:{getData(){this.getDataBase(s=>{this.$refs.configTable.fields=this.cfg.fields,this.cfg.jsonBased&&this.cfg.jsonBased.isJsonBased&&(this.view="form")})},addRow(){let s={isShow:!0,name:"",label:"",uiType:1,uiLayout:1,jsonType:"string",isNull:!1};this.addRow_(s)},saveAddRow(){this.saveAddRow_("name","label")},emptyData(){this.name="",this.cfg={fields:[]},this.$refs.configTable.fields=[]},fieldsToCfg(s){console.log(s),s&&s.fields&&s.fields.length?(this.cfg.fields=[],this.tableName=s.tableName,this.datasourceId=s.datasourceId,this.datasourceName=s.datasourceName,s.fields.forEach(i=>toCfg(i,this.cfg.fields)),this.$refs.configTable.fields=this.cfg.fields,s.comment&&(this.name=s.comment)):this.$Message.warning("未选择任何字段")},parseJsonBased(){let s=JSON.parse(this.jsonBased.jsonStr),i=findNode(s,this.cfg.jsonBased.key.split("."));for(let u in i){let t=i[u],h,y;switch(typeof t){case"number":y="number",h=11;break;case"boolean":y="boolean",h=3;break;default:y="string",h=1}let d={isShow:!0,name:u,label:"",uiType:h,uiLayout:1,jsonType:y,ext_attribs:{}};this.cfg.fields.push(d)}this.cfg.jsonBased.isJsonBased=!0,this.view="form"},syncData(s){s&&(this.cfg.fields=s)}}};function toCfg(s,i){let u={isShow:!0,isKey:s.isKey,name:toCamelCase(s.name),label:s.comment,comment:s.comment,length:s.length,uiType:1,uiLayout:1,defaultValue:s.defaultValue,ext_attribs:s.ext_attribs||{}};s.null==="YES"?u.isNull=!0:s.null==="NO"&&(u.isNull=!1);let t=s.type.toLowerCase();switch(t.indexOf("text")!=-1&&(u.uiType=6),t.indexOf("datetime")!=-1&&(u.uiType=6),s.name.toLowerCase()){case"name":u.label="名称";break;case"content":case"desc":u.label="简介",u.uiType=6;break}i.push(u)}function toCamelCase(s){return s.toLowerCase().replace(/_+([a-z0-9])/g,(i,u)=>u.toUpperCase())}function findNode(s,i){if(!i.shift)return null;let u=i.shift();for(let t in s)if(t===u){let h=s[t];return i.length==0?h:findNode(s[t],i)}}const _hoisted_1={class:"input-width"},_hoisted_2={class:"input-width"},_hoisted_3={class:"input-width"},_hoisted_4={class:"number-width"},_hoisted_5={class:"checkbox-width"};function _sfc_render(s,i,u,t,h,y){const d=vue.resolveComponent("Input"),p=vue.resolveComponent("Option"),g=vue.resolveComponent("OptionGroup"),v=vue.resolveComponent("Select"),w=vue.resolveComponent("Checkbox"),k=vue.resolveComponent("FormLoader"),S=vue.resolveComponent("ConfigPanel"),N=vue.resolveComponent("MoreAttrib"),B=vue.resolveComponent("Modal"),I=vue.resolveComponent("ConfigTable");return vue.openBlock(),vue.createBlock(I,{ref:"configTable",class:"form-factory"},{topbar:vue.withCtx(()=>[vue.createElementVNode("a",{onClick:i[0]||(i[0]=D=>s.jsonBased.isShowJsonBased=!0)},"从JSON新建"),i[6]||(i[6]=vue.createTextVNode(" | 视图:",-1)),vue.createElementVNode("a",{onClick:i[1]||(i[1]=D=>s.view="model"),class:vue.normalizeClass({selected:s.view=="model"})},"模型",2),i[7]||(i[7]=vue.createTextVNode(" | ",-1)),vue.createElementVNode("a",{onClick:i[2]||(i[2]=D=>s.view="form"),class:vue.normalizeClass({selected:s.view=="form"})},"表单",2),i[8]||(i[8]=vue.createTextVNode(" | ",-1))]),"table-header":vue.withCtx(()=>[i[9]||(i[9]=vue.createElementVNode("div",{class:"input-width"},"说明",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"数据类型",2),i[10]||(i[10]=vue.createElementVNode("div",{class:"number-width"},"数据长度",-1)),i[11]||(i[11]=vue.createElementVNode("div",{class:"checkbox-width"},"必填",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"跨表字段?",2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"是否主键",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"默认值",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"渲染器",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"布局",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"JSON 类型",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"正则验证",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"验证提示",2)]),"table-fields":vue.withCtx(D=>[vue.createElementVNode("div",_hoisted_1,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.name,"onUpdate:modelValue":T=>D.item.name=T,placeholder:"名称为必填项"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_2,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.label,"onUpdate:modelValue":T=>D.item.label=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_3,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.comment,"onUpdate:modelValue":T=>D.item.comment=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"字符类型"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[12]||(i[12]=[vue.createTextVNode("VARCHAR",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[13]||(i[13]=[vue.createTextVNode("TEXT",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[14]||(i[14]=[vue.createTextVNode("LONG TEXT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"整形数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[15]||(i[15]=[vue.createTextVNode("TINYINT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[16]||(i[16]=[vue.createTextVNode("INT",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[17]||(i[17]=[vue.createTextVNode("BIGINT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"浮点数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[18]||(i[18]=[vue.createTextVNode("FLOAT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[19]||(i[19]=[vue.createTextVNode("DOUBLE",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[20]||(i[20]=[vue.createTextVNode("DECIMAL",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"其他"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[21]||(i[21]=[vue.createTextVNode("BOOLEAN",-1)])]),_:1}),vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[22]||(i[22]=[vue.createTextVNode("JSON",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",_hoisted_4,[vue.createVNode(d,{size:"small",type:"number",modelValue:D.item.length,"onUpdate:modelValue":T=>D.item.length=T,placeholder:"最大长度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(w,{size:"small",modelValue:D.item.isNull,"onUpdate:modelValue":T=>D.item.isNull=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isCrossTable,"onUpdate:modelValue":T=>D.item.isCrossTable=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isKey,"onUpdate:modelValue":T=>D.item.isKey=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.defaultValue,"onUpdate:modelValue":T=>D.item.defaultValue=T,placeholder:"选填"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"常用表单组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[23]||(i[23]=[vue.createTextVNode("文本输入框 Input",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[24]||(i[24]=[vue.createTextVNode("密码输入框 Password",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[25]||(i[25]=[vue.createTextVNode("数字输入框 Number",-1)])]),_:1}),vue.createVNode(p,{value:6},{default:vue.withCtx(()=>[...i[26]||(i[26]=[vue.createTextVNode("多行文本框 Textarea",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[27]||(i[27]=[vue.createTextVNode("下拉列表 Select",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[28]||(i[28]=[vue.createTextVNode("单选框 Radio",-1)])]),_:1}),vue.createVNode(p,{value:4},{default:vue.withCtx(()=>[...i[29]||(i[29]=[vue.createTextVNode("多选框 Checkbox",-1)])]),_:1}),vue.createVNode(p,{value:7},{default:vue.withCtx(()=>[...i[30]||(i[30]=[vue.createTextVNode("开关 Switch",-1)])]),_:1}),vue.createVNode(p,{value:10},{default:vue.withCtx(()=>[...i[31]||(i[31]=[vue.createTextVNode(" 滑块 Slider",-1)])]),_:1}),vue.createVNode(p,{value:5},{default:vue.withCtx(()=>[...i[32]||(i[32]=[vue.createTextVNode("日期选择器 DatePicker",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[33]||(i[33]=[vue.createTextVNode("时间上传器 TimePicker",-1)])]),_:1}),vue.createVNode(p,{value:8},{default:vue.withCtx(()=>[...i[34]||(i[34]=[vue.createTextVNode("富文本编辑器 HTML Editor",-1)])]),_:1}),vue.createVNode(p,{value:17},{default:vue.withCtx(()=>[...i[35]||(i[35]=[vue.createTextVNode("图片上传器 Img Uploader",-1)])]),_:1}),vue.createVNode(p,{value:9},{default:vue.withCtx(()=>[...i[36]||(i[36]=[vue.createTextVNode("文件上传器 File Uploader",-1)])]),_:1}),vue.createVNode(p,{value:20},{default:vue.withCtx(()=>[...i[37]||(i[37]=[vue.createTextVNode("只读的短日期",-1)])]),_:1}),vue.createVNode(p,{value:21},{default:vue.withCtx(()=>[...i[38]||(i[38]=[vue.createTextVNode("只读的长日期",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"业务组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[39]||(i[39]=[vue.createTextVNode("手机输入框",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[40]||(i[40]=[vue.createTextVNode("电邮输入框",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[41]||(i[41]=[vue.createTextVNode("性别选择",-1)])]),_:1}),vue.createVNode(p,{value:13},{default:vue.withCtx(()=>[...i[42]||(i[42]=[vue.createTextVNode("身份证输入框",-1)])]),_:1}),vue.createVNode(p,{value:14},{default:vue.withCtx(()=>[...i[43]||(i[43]=[vue.createTextVNode("省市区联动",-1)])]),_:1}),vue.createVNode(p,{value:19},{default:vue.withCtx(()=>[...i[44]||(i[44]=[vue.createTextVNode("实体状态",-1)])]),_:1}),vue.createVNode(p,{value:22},{default:vue.withCtx(()=>[...i[45]||(i[45]=[vue.createTextVNode("数据字典",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.uiLayout,"onUpdate:modelValue":T=>D.item.uiLayout=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[46]||(i[46]=[vue.createTextVNode("单列",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[47]||(i[47]=[vue.createTextVNode("双列",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[48]||(i[48]=[vue.createTextVNode("三列",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.jsonType,"onUpdate:modelValue":T=>D.item.jsonType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:"string"},{default:vue.withCtx(()=>[...i[49]||(i[49]=[vue.createTextVNode("文本",-1)])]),_:1}),vue.createVNode(p,{value:"long_string"},{default:vue.withCtx(()=>[...i[50]||(i[50]=[vue.createTextVNode("长文本",-1)])]),_:1}),vue.createVNode(p,{value:"number"},{default:vue.withCtx(()=>[...i[51]||(i[51]=[vue.createTextVNode("数字",-1)])]),_:1}),vue.createVNode(p,{value:"boolean"},{default:vue.withCtx(()=>[...i[52]||(i[52]=[vue.createTextVNode("布尔值",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.regexp,"onUpdate:modelValue":T=>D.item.regexp=T,placeholder:"校验的正则表达式"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.validMsg,"onUpdate:modelValue":T=>D.item.validMsg=T,placeholder:"验证错误时的信息"},null,8,["modelValue","onUpdate:modelValue"])],2)]),"live-perview":vue.withCtx(()=>[vue.createVNode(k,{ref:"LivePerview",is_show_btns:!1},null,512)]),"config-panel":vue.withCtx(()=>[vue.createVNode(S,{cfg:s.cfg,"api-root":s.API},null,8,["cfg","api-root"])]),"more-attrib":vue.withCtx(D=>[D.row?(vue.openBlock(),vue.createBlock(N,{key:0,row:D.row,"ext-attribs":D.row.ext_attribs},null,8,["row","ext-attribs"])):vue.createCommentVNode("",!0)]),default:vue.withCtx(()=>[vue.createVNode(B,{modelValue:s.jsonBased.isShowJsonBased,"onUpdate:modelValue":i[4]||(i[4]=D=>s.jsonBased.isShowJsonBased=D),title:"根据 JSON 定义创建表单",width:"650",onOnOk:s.parseJsonBased},{default:vue.withCtx(()=>[vue.createVNode(d,{type:"textarea",modelValue:s.jsonBased.jsonStr,"onUpdate:modelValue":i[3]||(i[3]=D=>s.jsonBased.jsonStr=D),rows:15,style:{width:"86%"}},null,8,["modelValue"]),i[53]||(i[53]=vue.createElementVNode("p",null,"JSON 为多层结构,须指定某个对象,这里指定一个字段",-1))]),_:1},8,["modelValue","onOnOk"]),vue.createVNode(B,{modelValue:s.isShowPerview,"onUpdate:modelValue":i[5]||(i[5]=D=>s.isShowPerview=D),title:"预览",width:"800","ok-text":"关闭","cancel-text":""},{default:vue.withCtx(()=>[vue.createVNode(k,{ref:"preview","is-Show-Info-Btn":""},null,512)]),_:1},8,["modelValue"])]),_:1},512)}const FormInfo=_export_sfc(_sfc_main,[["render",_sfc_render],["__scopeId","data-v-d2273c52"]]),admin={HomePage,Login},system={Article,DataDict,Schedule,ArticleEdit},shop={Transaction},IAM={App,LoginLog,Tenant,Token,User},ConfigWdiget={ListMgr,ListInfo,FormMgr,FormInfo,ListLoader,FormLoader};exports.ConfigWdiget=ConfigWdiget;exports.HtmlEditor=HtmlEditor;exports.IAM=IAM;exports.MyButton=MyButton;exports.admin=admin;exports.getQueryParam=getQueryParam;exports.shop=shop;exports.system=system;
@@ -21757,7 +21757,7 @@ function _sfc_render(s, i, c, t, p, C) {
21757
21757
  _: 1
21758
21758
  }, 512);
21759
21759
  }
21760
- const FormInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d2273c52"]]), admin = { HomePage, Login }, system = { Article, DataDict, Schedule, ArticleEdit }, shop = { Transaction }, IAM = { App, LoginLog, Tenant, Token, User }, ConfigWdiget = { ListMgr, ListInfo, FormMgr, FormInfo, ListLoader };
21760
+ const FormInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d2273c52"]]), admin = { HomePage, Login }, system = { Article, DataDict, Schedule, ArticleEdit }, shop = { Transaction }, IAM = { App, LoginLog, Tenant, Token, User }, ConfigWdiget = { ListMgr, ListInfo, FormMgr, FormInfo, ListLoader, FormLoader };
21761
21761
  export {
21762
21762
  ConfigWdiget,
21763
21763
  HtmlEditor,
@@ -60,4 +60,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
60
60
  "ZXY": "DD"
61
61
  }
62
62
  }
63
- }`}}},methods:{getData(){this.getDataBase(s=>{this.$refs.configTable.fields=this.cfg.fields,this.cfg.jsonBased&&this.cfg.jsonBased.isJsonBased&&(this.view="form")})},addRow(){let s={isShow:!0,name:"",label:"",uiType:1,uiLayout:1,jsonType:"string",isNull:!1};this.addRow_(s)},saveAddRow(){this.saveAddRow_("name","label")},emptyData(){this.name="",this.cfg={fields:[]},this.$refs.configTable.fields=[]},fieldsToCfg(s){console.log(s),s&&s.fields&&s.fields.length?(this.cfg.fields=[],this.tableName=s.tableName,this.datasourceId=s.datasourceId,this.datasourceName=s.datasourceName,s.fields.forEach(i=>toCfg(i,this.cfg.fields)),this.$refs.configTable.fields=this.cfg.fields,s.comment&&(this.name=s.comment)):this.$Message.warning("未选择任何字段")},parseJsonBased(){let s=JSON.parse(this.jsonBased.jsonStr),i=findNode(s,this.cfg.jsonBased.key.split("."));for(let u in i){let t=i[u],h,y;switch(typeof t){case"number":y="number",h=11;break;case"boolean":y="boolean",h=3;break;default:y="string",h=1}let d={isShow:!0,name:u,label:"",uiType:h,uiLayout:1,jsonType:y,ext_attribs:{}};this.cfg.fields.push(d)}this.cfg.jsonBased.isJsonBased=!0,this.view="form"},syncData(s){s&&(this.cfg.fields=s)}}};function toCfg(s,i){let u={isShow:!0,isKey:s.isKey,name:toCamelCase(s.name),label:s.comment,comment:s.comment,length:s.length,uiType:1,uiLayout:1,defaultValue:s.defaultValue,ext_attribs:s.ext_attribs||{}};s.null==="YES"?u.isNull=!0:s.null==="NO"&&(u.isNull=!1);let t=s.type.toLowerCase();switch(t.indexOf("text")!=-1&&(u.uiType=6),t.indexOf("datetime")!=-1&&(u.uiType=6),s.name.toLowerCase()){case"name":u.label="名称";break;case"content":case"desc":u.label="简介",u.uiType=6;break}i.push(u)}function toCamelCase(s){return s.toLowerCase().replace(/_+([a-z0-9])/g,(i,u)=>u.toUpperCase())}function findNode(s,i){if(!i.shift)return null;let u=i.shift();for(let t in s)if(t===u){let h=s[t];return i.length==0?h:findNode(s[t],i)}}const _hoisted_1={class:"input-width"},_hoisted_2={class:"input-width"},_hoisted_3={class:"input-width"},_hoisted_4={class:"number-width"},_hoisted_5={class:"checkbox-width"};function _sfc_render(s,i,u,t,h,y){const d=vue.resolveComponent("Input"),p=vue.resolveComponent("Option"),g=vue.resolveComponent("OptionGroup"),v=vue.resolveComponent("Select"),w=vue.resolveComponent("Checkbox"),k=vue.resolveComponent("FormLoader"),S=vue.resolveComponent("ConfigPanel"),N=vue.resolveComponent("MoreAttrib"),B=vue.resolveComponent("Modal"),I=vue.resolveComponent("ConfigTable");return vue.openBlock(),vue.createBlock(I,{ref:"configTable",class:"form-factory"},{topbar:vue.withCtx(()=>[vue.createElementVNode("a",{onClick:i[0]||(i[0]=D=>s.jsonBased.isShowJsonBased=!0)},"从JSON新建"),i[6]||(i[6]=vue.createTextVNode(" | 视图:",-1)),vue.createElementVNode("a",{onClick:i[1]||(i[1]=D=>s.view="model"),class:vue.normalizeClass({selected:s.view=="model"})},"模型",2),i[7]||(i[7]=vue.createTextVNode(" | ",-1)),vue.createElementVNode("a",{onClick:i[2]||(i[2]=D=>s.view="form"),class:vue.normalizeClass({selected:s.view=="form"})},"表单",2),i[8]||(i[8]=vue.createTextVNode(" | ",-1))]),"table-header":vue.withCtx(()=>[i[9]||(i[9]=vue.createElementVNode("div",{class:"input-width"},"说明",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"数据类型",2),i[10]||(i[10]=vue.createElementVNode("div",{class:"number-width"},"数据长度",-1)),i[11]||(i[11]=vue.createElementVNode("div",{class:"checkbox-width"},"必填",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"跨表字段?",2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"是否主键",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"默认值",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"渲染器",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"布局",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"JSON 类型",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"正则验证",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"验证提示",2)]),"table-fields":vue.withCtx(D=>[vue.createElementVNode("div",_hoisted_1,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.name,"onUpdate:modelValue":T=>D.item.name=T,placeholder:"名称为必填项"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_2,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.label,"onUpdate:modelValue":T=>D.item.label=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_3,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.comment,"onUpdate:modelValue":T=>D.item.comment=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"字符类型"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[12]||(i[12]=[vue.createTextVNode("VARCHAR",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[13]||(i[13]=[vue.createTextVNode("TEXT",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[14]||(i[14]=[vue.createTextVNode("LONG TEXT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"整形数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[15]||(i[15]=[vue.createTextVNode("TINYINT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[16]||(i[16]=[vue.createTextVNode("INT",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[17]||(i[17]=[vue.createTextVNode("BIGINT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"浮点数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[18]||(i[18]=[vue.createTextVNode("FLOAT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[19]||(i[19]=[vue.createTextVNode("DOUBLE",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[20]||(i[20]=[vue.createTextVNode("DECIMAL",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"其他"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[21]||(i[21]=[vue.createTextVNode("BOOLEAN",-1)])]),_:1}),vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[22]||(i[22]=[vue.createTextVNode("JSON",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",_hoisted_4,[vue.createVNode(d,{size:"small",type:"number",modelValue:D.item.length,"onUpdate:modelValue":T=>D.item.length=T,placeholder:"最大长度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(w,{size:"small",modelValue:D.item.isNull,"onUpdate:modelValue":T=>D.item.isNull=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isCrossTable,"onUpdate:modelValue":T=>D.item.isCrossTable=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isKey,"onUpdate:modelValue":T=>D.item.isKey=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.defaultValue,"onUpdate:modelValue":T=>D.item.defaultValue=T,placeholder:"选填"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"常用表单组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[23]||(i[23]=[vue.createTextVNode("文本输入框 Input",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[24]||(i[24]=[vue.createTextVNode("密码输入框 Password",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[25]||(i[25]=[vue.createTextVNode("数字输入框 Number",-1)])]),_:1}),vue.createVNode(p,{value:6},{default:vue.withCtx(()=>[...i[26]||(i[26]=[vue.createTextVNode("多行文本框 Textarea",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[27]||(i[27]=[vue.createTextVNode("下拉列表 Select",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[28]||(i[28]=[vue.createTextVNode("单选框 Radio",-1)])]),_:1}),vue.createVNode(p,{value:4},{default:vue.withCtx(()=>[...i[29]||(i[29]=[vue.createTextVNode("多选框 Checkbox",-1)])]),_:1}),vue.createVNode(p,{value:7},{default:vue.withCtx(()=>[...i[30]||(i[30]=[vue.createTextVNode("开关 Switch",-1)])]),_:1}),vue.createVNode(p,{value:10},{default:vue.withCtx(()=>[...i[31]||(i[31]=[vue.createTextVNode(" 滑块 Slider",-1)])]),_:1}),vue.createVNode(p,{value:5},{default:vue.withCtx(()=>[...i[32]||(i[32]=[vue.createTextVNode("日期选择器 DatePicker",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[33]||(i[33]=[vue.createTextVNode("时间上传器 TimePicker",-1)])]),_:1}),vue.createVNode(p,{value:8},{default:vue.withCtx(()=>[...i[34]||(i[34]=[vue.createTextVNode("富文本编辑器 HTML Editor",-1)])]),_:1}),vue.createVNode(p,{value:17},{default:vue.withCtx(()=>[...i[35]||(i[35]=[vue.createTextVNode("图片上传器 Img Uploader",-1)])]),_:1}),vue.createVNode(p,{value:9},{default:vue.withCtx(()=>[...i[36]||(i[36]=[vue.createTextVNode("文件上传器 File Uploader",-1)])]),_:1}),vue.createVNode(p,{value:20},{default:vue.withCtx(()=>[...i[37]||(i[37]=[vue.createTextVNode("只读的短日期",-1)])]),_:1}),vue.createVNode(p,{value:21},{default:vue.withCtx(()=>[...i[38]||(i[38]=[vue.createTextVNode("只读的长日期",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"业务组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[39]||(i[39]=[vue.createTextVNode("手机输入框",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[40]||(i[40]=[vue.createTextVNode("电邮输入框",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[41]||(i[41]=[vue.createTextVNode("性别选择",-1)])]),_:1}),vue.createVNode(p,{value:13},{default:vue.withCtx(()=>[...i[42]||(i[42]=[vue.createTextVNode("身份证输入框",-1)])]),_:1}),vue.createVNode(p,{value:14},{default:vue.withCtx(()=>[...i[43]||(i[43]=[vue.createTextVNode("省市区联动",-1)])]),_:1}),vue.createVNode(p,{value:19},{default:vue.withCtx(()=>[...i[44]||(i[44]=[vue.createTextVNode("实体状态",-1)])]),_:1}),vue.createVNode(p,{value:22},{default:vue.withCtx(()=>[...i[45]||(i[45]=[vue.createTextVNode("数据字典",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.uiLayout,"onUpdate:modelValue":T=>D.item.uiLayout=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[46]||(i[46]=[vue.createTextVNode("单列",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[47]||(i[47]=[vue.createTextVNode("双列",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[48]||(i[48]=[vue.createTextVNode("三列",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.jsonType,"onUpdate:modelValue":T=>D.item.jsonType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:"string"},{default:vue.withCtx(()=>[...i[49]||(i[49]=[vue.createTextVNode("文本",-1)])]),_:1}),vue.createVNode(p,{value:"long_string"},{default:vue.withCtx(()=>[...i[50]||(i[50]=[vue.createTextVNode("长文本",-1)])]),_:1}),vue.createVNode(p,{value:"number"},{default:vue.withCtx(()=>[...i[51]||(i[51]=[vue.createTextVNode("数字",-1)])]),_:1}),vue.createVNode(p,{value:"boolean"},{default:vue.withCtx(()=>[...i[52]||(i[52]=[vue.createTextVNode("布尔值",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.regexp,"onUpdate:modelValue":T=>D.item.regexp=T,placeholder:"校验的正则表达式"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.validMsg,"onUpdate:modelValue":T=>D.item.validMsg=T,placeholder:"验证错误时的信息"},null,8,["modelValue","onUpdate:modelValue"])],2)]),"live-perview":vue.withCtx(()=>[vue.createVNode(k,{ref:"LivePerview",is_show_btns:!1},null,512)]),"config-panel":vue.withCtx(()=>[vue.createVNode(S,{cfg:s.cfg,"api-root":s.API},null,8,["cfg","api-root"])]),"more-attrib":vue.withCtx(D=>[D.row?(vue.openBlock(),vue.createBlock(N,{key:0,row:D.row,"ext-attribs":D.row.ext_attribs},null,8,["row","ext-attribs"])):vue.createCommentVNode("",!0)]),default:vue.withCtx(()=>[vue.createVNode(B,{modelValue:s.jsonBased.isShowJsonBased,"onUpdate:modelValue":i[4]||(i[4]=D=>s.jsonBased.isShowJsonBased=D),title:"根据 JSON 定义创建表单",width:"650",onOnOk:s.parseJsonBased},{default:vue.withCtx(()=>[vue.createVNode(d,{type:"textarea",modelValue:s.jsonBased.jsonStr,"onUpdate:modelValue":i[3]||(i[3]=D=>s.jsonBased.jsonStr=D),rows:15,style:{width:"86%"}},null,8,["modelValue"]),i[53]||(i[53]=vue.createElementVNode("p",null,"JSON 为多层结构,须指定某个对象,这里指定一个字段",-1))]),_:1},8,["modelValue","onOnOk"]),vue.createVNode(B,{modelValue:s.isShowPerview,"onUpdate:modelValue":i[5]||(i[5]=D=>s.isShowPerview=D),title:"预览",width:"800","ok-text":"关闭","cancel-text":""},{default:vue.withCtx(()=>[vue.createVNode(k,{ref:"preview","is-Show-Info-Btn":""},null,512)]),_:1},8,["modelValue"])]),_:1},512)}const FormInfo=_export_sfc(_sfc_main,[["render",_sfc_render],["__scopeId","data-v-d2273c52"]]),admin={HomePage,Login},system={Article,DataDict,Schedule,ArticleEdit},shop={Transaction},IAM={App,LoginLog,Tenant,Token,User},ConfigWdiget={ListMgr,ListInfo,FormMgr,FormInfo,ListLoader};exports.ConfigWdiget=ConfigWdiget,exports.HtmlEditor=HtmlEditor,exports.IAM=IAM,exports.MyButton=MyButton,exports.admin=admin,exports.getQueryParam=getQueryParam,exports.shop=shop,exports.system=system,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}));
63
+ }`}}},methods:{getData(){this.getDataBase(s=>{this.$refs.configTable.fields=this.cfg.fields,this.cfg.jsonBased&&this.cfg.jsonBased.isJsonBased&&(this.view="form")})},addRow(){let s={isShow:!0,name:"",label:"",uiType:1,uiLayout:1,jsonType:"string",isNull:!1};this.addRow_(s)},saveAddRow(){this.saveAddRow_("name","label")},emptyData(){this.name="",this.cfg={fields:[]},this.$refs.configTable.fields=[]},fieldsToCfg(s){console.log(s),s&&s.fields&&s.fields.length?(this.cfg.fields=[],this.tableName=s.tableName,this.datasourceId=s.datasourceId,this.datasourceName=s.datasourceName,s.fields.forEach(i=>toCfg(i,this.cfg.fields)),this.$refs.configTable.fields=this.cfg.fields,s.comment&&(this.name=s.comment)):this.$Message.warning("未选择任何字段")},parseJsonBased(){let s=JSON.parse(this.jsonBased.jsonStr),i=findNode(s,this.cfg.jsonBased.key.split("."));for(let u in i){let t=i[u],h,y;switch(typeof t){case"number":y="number",h=11;break;case"boolean":y="boolean",h=3;break;default:y="string",h=1}let d={isShow:!0,name:u,label:"",uiType:h,uiLayout:1,jsonType:y,ext_attribs:{}};this.cfg.fields.push(d)}this.cfg.jsonBased.isJsonBased=!0,this.view="form"},syncData(s){s&&(this.cfg.fields=s)}}};function toCfg(s,i){let u={isShow:!0,isKey:s.isKey,name:toCamelCase(s.name),label:s.comment,comment:s.comment,length:s.length,uiType:1,uiLayout:1,defaultValue:s.defaultValue,ext_attribs:s.ext_attribs||{}};s.null==="YES"?u.isNull=!0:s.null==="NO"&&(u.isNull=!1);let t=s.type.toLowerCase();switch(t.indexOf("text")!=-1&&(u.uiType=6),t.indexOf("datetime")!=-1&&(u.uiType=6),s.name.toLowerCase()){case"name":u.label="名称";break;case"content":case"desc":u.label="简介",u.uiType=6;break}i.push(u)}function toCamelCase(s){return s.toLowerCase().replace(/_+([a-z0-9])/g,(i,u)=>u.toUpperCase())}function findNode(s,i){if(!i.shift)return null;let u=i.shift();for(let t in s)if(t===u){let h=s[t];return i.length==0?h:findNode(s[t],i)}}const _hoisted_1={class:"input-width"},_hoisted_2={class:"input-width"},_hoisted_3={class:"input-width"},_hoisted_4={class:"number-width"},_hoisted_5={class:"checkbox-width"};function _sfc_render(s,i,u,t,h,y){const d=vue.resolveComponent("Input"),p=vue.resolveComponent("Option"),g=vue.resolveComponent("OptionGroup"),v=vue.resolveComponent("Select"),w=vue.resolveComponent("Checkbox"),k=vue.resolveComponent("FormLoader"),S=vue.resolveComponent("ConfigPanel"),N=vue.resolveComponent("MoreAttrib"),B=vue.resolveComponent("Modal"),I=vue.resolveComponent("ConfigTable");return vue.openBlock(),vue.createBlock(I,{ref:"configTable",class:"form-factory"},{topbar:vue.withCtx(()=>[vue.createElementVNode("a",{onClick:i[0]||(i[0]=D=>s.jsonBased.isShowJsonBased=!0)},"从JSON新建"),i[6]||(i[6]=vue.createTextVNode(" | 视图:",-1)),vue.createElementVNode("a",{onClick:i[1]||(i[1]=D=>s.view="model"),class:vue.normalizeClass({selected:s.view=="model"})},"模型",2),i[7]||(i[7]=vue.createTextVNode(" | ",-1)),vue.createElementVNode("a",{onClick:i[2]||(i[2]=D=>s.view="form"),class:vue.normalizeClass({selected:s.view=="form"})},"表单",2),i[8]||(i[8]=vue.createTextVNode(" | ",-1))]),"table-header":vue.withCtx(()=>[i[9]||(i[9]=vue.createElementVNode("div",{class:"input-width"},"说明",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"数据类型",2),i[10]||(i[10]=vue.createElementVNode("div",{class:"number-width"},"数据长度",-1)),i[11]||(i[11]=vue.createElementVNode("div",{class:"checkbox-width"},"必填",-1)),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"跨表字段?",2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},"是否主键",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},"默认值",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"渲染器",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"布局",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},"JSON 类型",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"正则验证",2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},"验证提示",2)]),"table-fields":vue.withCtx(D=>[vue.createElementVNode("div",_hoisted_1,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.name,"onUpdate:modelValue":T=>D.item.name=T,placeholder:"名称为必填项"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_2,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.label,"onUpdate:modelValue":T=>D.item.label=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_3,[vue.createVNode(d,{type:"text",size:"small",modelValue:D.item.comment,"onUpdate:modelValue":T=>D.item.comment=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"字符类型"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[12]||(i[12]=[vue.createTextVNode("VARCHAR",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[13]||(i[13]=[vue.createTextVNode("TEXT",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[14]||(i[14]=[vue.createTextVNode("LONG TEXT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"整形数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[15]||(i[15]=[vue.createTextVNode("TINYINT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[16]||(i[16]=[vue.createTextVNode("INT",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[17]||(i[17]=[vue.createTextVNode("BIGINT",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"浮点数"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[18]||(i[18]=[vue.createTextVNode("FLOAT",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[19]||(i[19]=[vue.createTextVNode("DOUBLE",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[20]||(i[20]=[vue.createTextVNode("DECIMAL",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"其他"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[21]||(i[21]=[vue.createTextVNode("BOOLEAN",-1)])]),_:1}),vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[22]||(i[22]=[vue.createTextVNode("JSON",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",_hoisted_4,[vue.createVNode(d,{size:"small",type:"number",modelValue:D.item.length,"onUpdate:modelValue":T=>D.item.length=T,placeholder:"最大长度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(w,{size:"small",modelValue:D.item.isNull,"onUpdate:modelValue":T=>D.item.isNull=T},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isCrossTable,"onUpdate:modelValue":T=>D.item.isCrossTable=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["number-width",{hide:s.view!="model"}])},[vue.createVNode(w,{size:"small",modelValue:D.item.isKey,"onUpdate:modelValue":T=>D.item.isKey=T},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="model"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.defaultValue,"onUpdate:modelValue":T=>D.item.defaultValue=T,placeholder:"选填"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}]),style:{"text-align":"left"}},[vue.createVNode(v,{size:"small",title:"表单控件类型",modelValue:D.item.uiType,"onUpdate:modelValue":T=>D.item.uiType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(g,{label:"常用表单组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[23]||(i[23]=[vue.createTextVNode("文本输入框 Input",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[24]||(i[24]=[vue.createTextVNode("密码输入框 Password",-1)])]),_:1}),vue.createVNode(p,{value:11},{default:vue.withCtx(()=>[...i[25]||(i[25]=[vue.createTextVNode("数字输入框 Number",-1)])]),_:1}),vue.createVNode(p,{value:6},{default:vue.withCtx(()=>[...i[26]||(i[26]=[vue.createTextVNode("多行文本框 Textarea",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[27]||(i[27]=[vue.createTextVNode("下拉列表 Select",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[28]||(i[28]=[vue.createTextVNode("单选框 Radio",-1)])]),_:1}),vue.createVNode(p,{value:4},{default:vue.withCtx(()=>[...i[29]||(i[29]=[vue.createTextVNode("多选框 Checkbox",-1)])]),_:1}),vue.createVNode(p,{value:7},{default:vue.withCtx(()=>[...i[30]||(i[30]=[vue.createTextVNode("开关 Switch",-1)])]),_:1}),vue.createVNode(p,{value:10},{default:vue.withCtx(()=>[...i[31]||(i[31]=[vue.createTextVNode(" 滑块 Slider",-1)])]),_:1}),vue.createVNode(p,{value:5},{default:vue.withCtx(()=>[...i[32]||(i[32]=[vue.createTextVNode("日期选择器 DatePicker",-1)])]),_:1}),vue.createVNode(p,{value:18},{default:vue.withCtx(()=>[...i[33]||(i[33]=[vue.createTextVNode("时间上传器 TimePicker",-1)])]),_:1}),vue.createVNode(p,{value:8},{default:vue.withCtx(()=>[...i[34]||(i[34]=[vue.createTextVNode("富文本编辑器 HTML Editor",-1)])]),_:1}),vue.createVNode(p,{value:17},{default:vue.withCtx(()=>[...i[35]||(i[35]=[vue.createTextVNode("图片上传器 Img Uploader",-1)])]),_:1}),vue.createVNode(p,{value:9},{default:vue.withCtx(()=>[...i[36]||(i[36]=[vue.createTextVNode("文件上传器 File Uploader",-1)])]),_:1}),vue.createVNode(p,{value:20},{default:vue.withCtx(()=>[...i[37]||(i[37]=[vue.createTextVNode("只读的短日期",-1)])]),_:1}),vue.createVNode(p,{value:21},{default:vue.withCtx(()=>[...i[38]||(i[38]=[vue.createTextVNode("只读的长日期",-1)])]),_:1})]),_:1}),vue.createVNode(g,{label:"业务组件"},{default:vue.withCtx(()=>[vue.createVNode(p,{value:16},{default:vue.withCtx(()=>[...i[39]||(i[39]=[vue.createTextVNode("手机输入框",-1)])]),_:1}),vue.createVNode(p,{value:12},{default:vue.withCtx(()=>[...i[40]||(i[40]=[vue.createTextVNode("电邮输入框",-1)])]),_:1}),vue.createVNode(p,{value:15},{default:vue.withCtx(()=>[...i[41]||(i[41]=[vue.createTextVNode("性别选择",-1)])]),_:1}),vue.createVNode(p,{value:13},{default:vue.withCtx(()=>[...i[42]||(i[42]=[vue.createTextVNode("身份证输入框",-1)])]),_:1}),vue.createVNode(p,{value:14},{default:vue.withCtx(()=>[...i[43]||(i[43]=[vue.createTextVNode("省市区联动",-1)])]),_:1}),vue.createVNode(p,{value:19},{default:vue.withCtx(()=>[...i[44]||(i[44]=[vue.createTextVNode("实体状态",-1)])]),_:1}),vue.createVNode(p,{value:22},{default:vue.withCtx(()=>[...i[45]||(i[45]=[vue.createTextVNode("数据字典",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.uiLayout,"onUpdate:modelValue":T=>D.item.uiLayout=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:1},{default:vue.withCtx(()=>[...i[46]||(i[46]=[vue.createTextVNode("单列",-1)])]),_:1}),vue.createVNode(p,{value:2},{default:vue.withCtx(()=>[...i[47]||(i[47]=[vue.createTextVNode("双列",-1)])]),_:1}),vue.createVNode(p,{value:3},{default:vue.withCtx(()=>[...i[48]||(i[48]=[vue.createTextVNode("三列",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width-small",{hide:s.view!="form"}])},[vue.createVNode(v,{size:"small",modelValue:D.item.jsonType,"onUpdate:modelValue":T=>D.item.jsonType=T,transfer:""},{default:vue.withCtx(()=>[vue.createVNode(p,{value:"string"},{default:vue.withCtx(()=>[...i[49]||(i[49]=[vue.createTextVNode("文本",-1)])]),_:1}),vue.createVNode(p,{value:"long_string"},{default:vue.withCtx(()=>[...i[50]||(i[50]=[vue.createTextVNode("长文本",-1)])]),_:1}),vue.createVNode(p,{value:"number"},{default:vue.withCtx(()=>[...i[51]||(i[51]=[vue.createTextVNode("数字",-1)])]),_:1}),vue.createVNode(p,{value:"boolean"},{default:vue.withCtx(()=>[...i[52]||(i[52]=[vue.createTextVNode("布尔值",-1)])]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.regexp,"onUpdate:modelValue":T=>D.item.regexp=T,placeholder:"校验的正则表达式"},null,8,["modelValue","onUpdate:modelValue"])],2),vue.createElementVNode("div",{class:vue.normalizeClass(["input-width",{hide:s.view!="form"}])},[vue.createVNode(d,{size:"small",type:"text",modelValue:D.item.validMsg,"onUpdate:modelValue":T=>D.item.validMsg=T,placeholder:"验证错误时的信息"},null,8,["modelValue","onUpdate:modelValue"])],2)]),"live-perview":vue.withCtx(()=>[vue.createVNode(k,{ref:"LivePerview",is_show_btns:!1},null,512)]),"config-panel":vue.withCtx(()=>[vue.createVNode(S,{cfg:s.cfg,"api-root":s.API},null,8,["cfg","api-root"])]),"more-attrib":vue.withCtx(D=>[D.row?(vue.openBlock(),vue.createBlock(N,{key:0,row:D.row,"ext-attribs":D.row.ext_attribs},null,8,["row","ext-attribs"])):vue.createCommentVNode("",!0)]),default:vue.withCtx(()=>[vue.createVNode(B,{modelValue:s.jsonBased.isShowJsonBased,"onUpdate:modelValue":i[4]||(i[4]=D=>s.jsonBased.isShowJsonBased=D),title:"根据 JSON 定义创建表单",width:"650",onOnOk:s.parseJsonBased},{default:vue.withCtx(()=>[vue.createVNode(d,{type:"textarea",modelValue:s.jsonBased.jsonStr,"onUpdate:modelValue":i[3]||(i[3]=D=>s.jsonBased.jsonStr=D),rows:15,style:{width:"86%"}},null,8,["modelValue"]),i[53]||(i[53]=vue.createElementVNode("p",null,"JSON 为多层结构,须指定某个对象,这里指定一个字段",-1))]),_:1},8,["modelValue","onOnOk"]),vue.createVNode(B,{modelValue:s.isShowPerview,"onUpdate:modelValue":i[5]||(i[5]=D=>s.isShowPerview=D),title:"预览",width:"800","ok-text":"关闭","cancel-text":""},{default:vue.withCtx(()=>[vue.createVNode(k,{ref:"preview","is-Show-Info-Btn":""},null,512)]),_:1},8,["modelValue"])]),_:1},512)}const FormInfo=_export_sfc(_sfc_main,[["render",_sfc_render],["__scopeId","data-v-d2273c52"]]),admin={HomePage,Login},system={Article,DataDict,Schedule,ArticleEdit},shop={Transaction},IAM={App,LoginLog,Tenant,Token,User},ConfigWdiget={ListMgr,ListInfo,FormMgr,FormInfo,ListLoader,FormLoader};exports.ConfigWdiget=ConfigWdiget,exports.HtmlEditor=HtmlEditor,exports.IAM=IAM,exports.MyButton=MyButton,exports.admin=admin,exports.getQueryParam=getQueryParam,exports.shop=shop,exports.system=system,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}));
@@ -2262,5 +2262,119 @@ export declare const ConfigWdiget: {
2262
2262
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2263
2263
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2264
2264
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2265
+ FormLoader: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2266
+ id: {
2267
+ type: NumberConstructor;
2268
+ required: false;
2269
+ };
2270
+ isShowInfoBtn: {
2271
+ type: BooleanConstructor;
2272
+ required: false;
2273
+ default: boolean;
2274
+ };
2275
+ isShowBtns: {
2276
+ type: BooleanConstructor;
2277
+ required: false;
2278
+ default: boolean;
2279
+ };
2280
+ }>, {
2281
+ FromRenderer: import('vue').Ref<any, any>;
2282
+ }, {
2283
+ formId: number;
2284
+ entityId: number;
2285
+ cfg: {
2286
+ fields: never[];
2287
+ };
2288
+ status: number;
2289
+ oldJson: null;
2290
+ }, {}, {
2291
+ load(): void;
2292
+ resetFields(): void;
2293
+ create(): void;
2294
+ update(): void;
2295
+ _getSaveData(): any;
2296
+ loadInfo(): void;
2297
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2298
+ id: {
2299
+ type: NumberConstructor;
2300
+ required: false;
2301
+ };
2302
+ isShowInfoBtn: {
2303
+ type: BooleanConstructor;
2304
+ required: false;
2305
+ default: boolean;
2306
+ };
2307
+ isShowBtns: {
2308
+ type: BooleanConstructor;
2309
+ required: false;
2310
+ default: boolean;
2311
+ };
2312
+ }>> & Readonly<{}>, {
2313
+ isShowInfoBtn: boolean;
2314
+ isShowBtns: boolean;
2315
+ }, {}, {
2316
+ FromRenderer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2317
+ cfg: {
2318
+ type: ObjectConstructor;
2319
+ required: true;
2320
+ };
2321
+ }>, {}, {
2322
+ index: number;
2323
+ formDynamic: {
2324
+ fields: any;
2325
+ };
2326
+ data: {};
2327
+ status: number;
2328
+ }, {}, {
2329
+ handleAdd(): void;
2330
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2331
+ cfg: {
2332
+ type: ObjectConstructor;
2333
+ required: true;
2334
+ };
2335
+ }>> & Readonly<{}>, {}, {}, {
2336
+ ItemRender: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2337
+ item: {
2338
+ type: ObjectConstructor;
2339
+ };
2340
+ data: ObjectConstructor;
2341
+ status: NumberConstructor;
2342
+ }>, {}, {}, {}, {
2343
+ showDataDict(fieldName: string): void;
2344
+ handleModelUpdate(e: string, name: string): void;
2345
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2346
+ item: {
2347
+ type: ObjectConstructor;
2348
+ };
2349
+ data: ObjectConstructor;
2350
+ status: NumberConstructor;
2351
+ }>> & Readonly<{}>, {}, {}, {
2352
+ FileUpload: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2353
+ value: {
2354
+ required: true;
2355
+ };
2356
+ uploadUrl: {
2357
+ type: StringConstructor;
2358
+ required: true;
2359
+ };
2360
+ }>, {}, {
2361
+ _v: unknown;
2362
+ }, {}, {
2363
+ downloadFile(): void;
2364
+ showFile(file: any): void;
2365
+ onSuccess(response: any, file: any): void;
2366
+ fireData(): void;
2367
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2368
+ value: {
2369
+ required: true;
2370
+ };
2371
+ uploadUrl: {
2372
+ type: StringConstructor;
2373
+ required: true;
2374
+ };
2375
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2376
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2377
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2378
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2265
2379
  };
2266
2380
  export { getQueryParam } from './utils/utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajaxjs/ui",
3
- "version": "1.6.7",
3
+ "version": "1.6.8",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"