@ajaxjs/ui 1.6.6 → 1.6.7

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};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};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 };
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 };
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};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};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"})}));
@@ -2029,5 +2029,238 @@ export declare const ConfigWdiget: {
2029
2029
  syncData(newValue: any): void;
2030
2030
  };
2031
2031
  };
2032
+ ListLoader: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2033
+ apiPrefix: {
2034
+ type: StringConstructor;
2035
+ required: false;
2036
+ };
2037
+ createRoute: {
2038
+ type: StringConstructor;
2039
+ required: false;
2040
+ };
2041
+ editRoute: {
2042
+ type: StringConstructor;
2043
+ required: false;
2044
+ };
2045
+ defaultAction: {
2046
+ type: BooleanConstructor;
2047
+ required: false;
2048
+ default: boolean;
2049
+ };
2050
+ id: {
2051
+ type: NumberConstructor;
2052
+ required: false;
2053
+ default: number;
2054
+ };
2055
+ showSearch: {
2056
+ type: BooleanConstructor;
2057
+ required: false;
2058
+ default: boolean;
2059
+ };
2060
+ modalInfo: {
2061
+ type: BooleanConstructor;
2062
+ required: false;
2063
+ default: boolean;
2064
+ };
2065
+ showCreateBtn: {
2066
+ type: BooleanConstructor;
2067
+ default: boolean;
2068
+ };
2069
+ showEditBtn: {
2070
+ type: BooleanConstructor;
2071
+ default: boolean;
2072
+ };
2073
+ editBtnAsView: {
2074
+ type: BooleanConstructor;
2075
+ default: boolean;
2076
+ };
2077
+ }>, {}, {
2078
+ widgetName_: string;
2079
+ cfg: {
2080
+ fields: never[];
2081
+ };
2082
+ listApiUrl_: string;
2083
+ colDefId: number;
2084
+ list: TableListConfig;
2085
+ isShowForm: boolean;
2086
+ bindingFormId: number;
2087
+ }, {}, {
2088
+ getRemoteColDef(): void;
2089
+ renderConfig(cfg: ListFactory_ListConfig_New): void;
2090
+ getData(): void;
2091
+ onPageNoChange(pageNo: number): void;
2092
+ handleChangePageSize(pageSize: number): void;
2093
+ reset(): void;
2094
+ onCreate(id: number): void;
2095
+ onEdit(id: number): void;
2096
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2097
+ apiPrefix: {
2098
+ type: StringConstructor;
2099
+ required: false;
2100
+ };
2101
+ createRoute: {
2102
+ type: StringConstructor;
2103
+ required: false;
2104
+ };
2105
+ editRoute: {
2106
+ type: StringConstructor;
2107
+ required: false;
2108
+ };
2109
+ defaultAction: {
2110
+ type: BooleanConstructor;
2111
+ required: false;
2112
+ default: boolean;
2113
+ };
2114
+ id: {
2115
+ type: NumberConstructor;
2116
+ required: false;
2117
+ default: number;
2118
+ };
2119
+ showSearch: {
2120
+ type: BooleanConstructor;
2121
+ required: false;
2122
+ default: boolean;
2123
+ };
2124
+ modalInfo: {
2125
+ type: BooleanConstructor;
2126
+ required: false;
2127
+ default: boolean;
2128
+ };
2129
+ showCreateBtn: {
2130
+ type: BooleanConstructor;
2131
+ default: boolean;
2132
+ };
2133
+ showEditBtn: {
2134
+ type: BooleanConstructor;
2135
+ default: boolean;
2136
+ };
2137
+ editBtnAsView: {
2138
+ type: BooleanConstructor;
2139
+ default: boolean;
2140
+ };
2141
+ }>> & Readonly<{}>, {
2142
+ id: number;
2143
+ defaultAction: boolean;
2144
+ showSearch: boolean;
2145
+ modalInfo: boolean;
2146
+ showCreateBtn: boolean;
2147
+ showEditBtn: boolean;
2148
+ editBtnAsView: boolean;
2149
+ }, {}, {
2150
+ FormLoader: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2151
+ id: {
2152
+ type: NumberConstructor;
2153
+ required: false;
2154
+ };
2155
+ isShowInfoBtn: {
2156
+ type: BooleanConstructor;
2157
+ required: false;
2158
+ default: boolean;
2159
+ };
2160
+ isShowBtns: {
2161
+ type: BooleanConstructor;
2162
+ required: false;
2163
+ default: boolean;
2164
+ };
2165
+ }>, {
2166
+ FromRenderer: import('vue').Ref<any, any>;
2167
+ }, {
2168
+ formId: number;
2169
+ entityId: number;
2170
+ cfg: {
2171
+ fields: never[];
2172
+ };
2173
+ status: number;
2174
+ oldJson: null;
2175
+ }, {}, {
2176
+ load(): void;
2177
+ resetFields(): void;
2178
+ create(): void;
2179
+ update(): void;
2180
+ _getSaveData(): any;
2181
+ loadInfo(): void;
2182
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2183
+ id: {
2184
+ type: NumberConstructor;
2185
+ required: false;
2186
+ };
2187
+ isShowInfoBtn: {
2188
+ type: BooleanConstructor;
2189
+ required: false;
2190
+ default: boolean;
2191
+ };
2192
+ isShowBtns: {
2193
+ type: BooleanConstructor;
2194
+ required: false;
2195
+ default: boolean;
2196
+ };
2197
+ }>> & Readonly<{}>, {
2198
+ isShowInfoBtn: boolean;
2199
+ isShowBtns: boolean;
2200
+ }, {}, {
2201
+ FromRenderer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2202
+ cfg: {
2203
+ type: ObjectConstructor;
2204
+ required: true;
2205
+ };
2206
+ }>, {}, {
2207
+ index: number;
2208
+ formDynamic: {
2209
+ fields: any;
2210
+ };
2211
+ data: {};
2212
+ status: number;
2213
+ }, {}, {
2214
+ handleAdd(): void;
2215
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2216
+ cfg: {
2217
+ type: ObjectConstructor;
2218
+ required: true;
2219
+ };
2220
+ }>> & Readonly<{}>, {}, {}, {
2221
+ ItemRender: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2222
+ item: {
2223
+ type: ObjectConstructor;
2224
+ };
2225
+ data: ObjectConstructor;
2226
+ status: NumberConstructor;
2227
+ }>, {}, {}, {}, {
2228
+ showDataDict(fieldName: string): void;
2229
+ handleModelUpdate(e: string, name: string): void;
2230
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2231
+ item: {
2232
+ type: ObjectConstructor;
2233
+ };
2234
+ data: ObjectConstructor;
2235
+ status: NumberConstructor;
2236
+ }>> & Readonly<{}>, {}, {}, {
2237
+ FileUpload: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2238
+ value: {
2239
+ required: true;
2240
+ };
2241
+ uploadUrl: {
2242
+ type: StringConstructor;
2243
+ required: true;
2244
+ };
2245
+ }>, {}, {
2246
+ _v: unknown;
2247
+ }, {}, {
2248
+ downloadFile(): void;
2249
+ showFile(file: any): void;
2250
+ onSuccess(response: any, file: any): void;
2251
+ fireData(): void;
2252
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
2253
+ value: {
2254
+ required: true;
2255
+ };
2256
+ uploadUrl: {
2257
+ type: StringConstructor;
2258
+ required: true;
2259
+ };
2260
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2261
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2262
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2263
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2264
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2032
2265
  };
2033
2266
  export { getQueryParam } from './utils/utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajaxjs/ui",
3
- "version": "1.6.6",
3
+ "version": "1.6.7",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"