7 lines
9.6 KiB
JavaScript
7 lines
9.6 KiB
JavaScript
var b=(e,l,i)=>new Promise((t,a)=>{var p=n=>{try{d(i.next(n))}catch(m){a(m)}},u=n=>{try{d(i.throw(n))}catch(m){a(m)}},d=n=>n.done?t(n.value):Promise.resolve(n.value).then(p,u);d((i=i.apply(e,l)).next())});import{cv as g}from"./bootstrap-CvQmCMXe.js";import{g as M}from"./index-CuWtfjAw.js";import{bZ as x,b9 as j,v as T,db as s,aJ as q,n as D}from"../jse/index-index-CAIAj58w.js";const R=[{type:"select",field:"selectType",title:"选择器类型",value:"select",options:[{label:"下拉框",value:"select"},{label:"单选框",value:"radio"},{label:"多选框",value:"checkbox"}],control:[{value:"select",condition:"==",method:"hidden",rule:["multiple","clearable","collapseTags","multipleLimit","allowCreate","filterable","noMatchText","remote","remoteMethod","reserveKeyword","defaultFirstOption","automaticDropdown"]}]},{type:"switch",field:"filterable",title:"是否可搜索"},{type:"switch",field:"multiple",title:"是否多选"},{type:"switch",field:"disabled",title:"是否禁用"},{type:"switch",field:"clearable",title:"是否可以清空选项"},{type:"switch",field:"collapseTags",title:"多选时是否将选中值按文字的形式展示"},{type:"inputNumber",field:"multipleLimit",title:"多选时用户最多可以选择的项目数,为 0 则不限制",props:{min:0}},{type:"input",field:"autocomplete",title:"autocomplete 属性"},{type:"input",field:"placeholder",title:"占位符"},{type:"switch",field:"allowCreate",title:"是否允许用户创建新条目"},{type:"input",field:"noMatchText",title:"搜索条件无匹配时显示的文字"},{type:"input",field:"noDataText",title:"选项为空时显示的文字"},{type:"switch",field:"reserveKeyword",title:"多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词"},{type:"switch",field:"defaultFirstOption",title:"在输入框按下回车,选择第一个匹配项"},{type:"switch",field:"popperAppendToBody",title:"是否将弹出框插入至 body 元素",value:!0},{type:"switch",field:"automaticDropdown",title:"对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单"}],I=[{type:"input",field:"url",title:"url 地址",props:{placeholder:"/system/user/simple-list"}},{type:"select",field:"method",title:"请求类型",value:"GET",options:[{label:"GET",value:"GET"},{label:"POST",value:"POST"}],control:[{value:"GET",condition:"!=",method:"hidden",rule:[{type:"input",field:"data",title:"请求参数 JSON 格式",props:{autoSize:!0,type:"textarea",placeholder:'{"type": 1}'}}]}]},{type:"input",field:"labelField",title:"label 属性",info:"可以使用 el 表达式:${属性},来实现复杂数据组合。如:${nickname}-${id}",props:{placeholder:"nickname"}},{type:"input",field:"valueField",title:"value 属性",info:"可以使用 el 表达式:${属性},来实现复杂数据组合。如:${nickname}-${id}",props:{placeholder:"id"}},{type:"input",field:"parseFunc",title:"选项解析函数",info:`data 为接口返回值,需要写一个匿名函数解析返回值为选择器 options 列表
|
||
(data: any)=>{ label: string; value: any }[]`,props:{autoSize:!0,rows:{minRows:2,maxRows:6},type:"textarea",placeholder:`
|
||
function (data) {
|
||
console.log(data)
|
||
return data.list.map(item=> ({label: item.nickname,value: item.id}))
|
||
}`}},{type:"switch",field:"remote",info:"是否可搜索",title:"其中的选项是否从服务器远程加载"},{type:"input",field:"remoteField",title:"请求参数",info:"远程请求时请求携带的参数名称,如:name"}];function U(){const e="字典选择器",l="DictSelect",i=x(R),t=j([]);return T(()=>b(null,null,function*(){var p;const a=yield M();!a||a.length===0||(t.value=(p=a==null?void 0:a.map(u=>({label:u.name,value:u.type})))!=null?p:[])})),{icon:"icon-descriptions",label:e,name:l,rule(){return{type:l,field:s(),title:e,info:"",$required:!1,modelField:"value"}},props(a,{t:p}){return c(p,`${l}.props`,[r(),{type:"select",field:"dictType",title:"字典类型",value:"",options:t.value},{type:"select",field:"valueType",title:"字典值类型",value:"str",options:[{label:"数字",value:"int"},{label:"字符串",value:"str"},{label:"布尔值",value:"bool"}]},...i])}}}function k(){const e="富文本",l="Tinymce";return{icon:"icon-editor",label:e,name:l,rule(){return{type:l,field:s(),title:e,info:"",$required:!1}},props(i,{t}){return c(t,`${l}.props`,[r(),{type:"input",field:"height",title:"高度"},{type:"switch",field:"readonly",title:"是否只读"}])}}}function h(e){const l=e.label,i=e.name,t=x(R);return{icon:e.icon,label:l,name:i,event:e.event,rule(){return{type:i,field:s(),title:l,info:"",$required:!1}},props(a,{t:p}){return e.props||(e.props=[]),c(p,`${i}.props`,[r(),...e.props,...t])}}}function E(){const e="文件上传",l="FileUpload";return{icon:"icon-upload",label:e,name:l,rule(){return{type:l,field:s(),title:e,info:"",$required:!1}},props(i,{t}){return c(t,`${l}.props`,[r(),{type:"select",field:"fileType",title:"文件类型",value:["doc","xls","ppt","txt","pdf"],options:[{label:"doc",value:"doc"},{label:"xls",value:"xls"},{label:"ppt",value:"ppt"},{label:"txt",value:"txt"},{label:"pdf",value:"pdf"}],props:{mode:"multiple"}},{type:"switch",field:"autoUpload",title:"是否在选取文件后立即进行上传",value:!0},{type:"switch",field:"drag",title:"拖拽上传",value:!1},{type:"switch",field:"isShowTip",title:"是否显示提示",value:!0},{type:"inputNumber",field:"fileSize",title:"大小限制(MB)",value:5,props:{min:0}},{type:"inputNumber",field:"limit",title:"数量限制",value:5,props:{min:0}},{type:"switch",field:"disabled",title:"是否禁用",value:!1}])}}}function N(){const e="单图上传",l="ImageUpload";return{icon:"icon-image",label:e,name:l,rule(){return{type:l,field:s(),title:e,info:"",$required:!1}},props(i,{t}){return c(t,`${l}.props`,[r(),{type:"switch",field:"drag",title:"拖拽上传",value:!1},{type:"select",field:"fileType",title:"图片类型限制",value:["image/jpeg","image/png","image/gif"],options:[{label:"image/apng",value:"image/apng"},{label:"image/bmp",value:"image/bmp"},{label:"image/gif",value:"image/gif"},{label:"image/jpeg",value:"image/jpeg"},{label:"image/pjpeg",value:"image/pjpeg"},{label:"image/svg+xml",value:"image/svg+xml"},{label:"image/tiff",value:"image/tiff"},{label:"image/webp",value:"image/webp"},{label:"image/x-icon",value:"image/x-icon"}],props:{mode:"multiple"}},{type:"inputNumber",field:"fileSize",title:"大小限制(MB)",value:5,props:{min:0}},{type:"input",field:"height",title:"组件高度",value:"150px"},{type:"input",field:"width",title:"组件宽度",value:"150px"},{type:"input",field:"borderradius",title:"组件边框圆角",value:"8px"},{type:"switch",field:"disabled",title:"是否显示删除按钮",value:!0},{type:"switch",field:"showBtnText",title:"是否显示按钮文字",value:!0}])}}}function O(){const e="多图上传",l="ImagesUpload";return{icon:"icon-image",label:e,name:l,rule(){return{type:l,field:s(),title:e,info:"",$required:!1}},props(i,{t}){return c(t,`${l}.props`,[r(),{type:"switch",field:"drag",title:"拖拽上传",value:!1},{type:"select",field:"fileType",title:"图片类型限制",value:["image/jpeg","image/png","image/gif"],options:[{label:"image/apng",value:"image/apng"},{label:"image/bmp",value:"image/bmp"},{label:"image/gif",value:"image/gif"},{label:"image/jpeg",value:"image/jpeg"},{label:"image/pjpeg",value:"image/pjpeg"},{label:"image/svg+xml",value:"image/svg+xml"},{label:"image/tiff",value:"image/tiff"},{label:"image/webp",value:"image/webp"},{label:"image/x-icon",value:"image/x-icon"}],props:{mode:"multiple",maxNumber:5}},{type:"inputNumber",field:"fileSize",title:"大小限制(MB)",value:5,props:{min:0}},{type:"inputNumber",field:"limit",title:"数量限制",value:5,props:{min:0}},{type:"input",field:"height",title:"组件高度",value:"150px"},{type:"input",field:"width",title:"组件宽度",value:"150px"},{type:"input",field:"borderradius",title:"组件边框圆角",value:"8px"}])}}}function B(e){return g.toJson(e.value.getOption())}function S(e){return g.parseJson(e)}function G(e){const l=e.value.getRule(),i=[];return l.forEach(t=>{i.push(g.toJson(t))}),i}function $(e){const l=[];return e.forEach(i=>{l.push(g.parseJson(i))}),l}function L(e,l,i){e.value.setOption(S(l));const t=Array.isArray(i)?i:[i];e.value.setRule($(t))}function K(e,l,i,t){q(e)&&(e=e.value),e.option=S(l),e.rule=$(i),t&&(e.value=t)}function r(){return{type:"Required",field:"formCreate$required",title:"是否必填"}}function c(e,l,i){return i.map(t=>(t.field==="formCreate$required"?t.title=e("props.required")||t.title:t.field&&t.field!=="_optionType"&&(t.title=e(`components.${l}.${t.field}`)||t.title),t))}function Z(e){return b(this,null,function*(){const l=k(),i=E(),t=N(),a=O();function p(){var y,f;(y=e.value)==null||y.removeMenuItem("upload"),(f=e.value)==null||f.removeMenuItem("fc-editor"),[l,i,t,a].forEach(o=>{var v,w;(v=e.value)==null||v.addComponent(o),(w=e.value)==null||w.appendMenuItem("main",{icon:o.icon,name:o.name,label:o.label})})}const u=h({name:"UserSelect",label:"用户选择器",icon:"icon-eye"}),d=h({name:"DeptSelect",label:"部门选择器",icon:"icon-tree",props:[{type:"select",field:"returnType",title:"返回值类型",value:"id",options:[{label:"部门编号",value:"id"},{label:"部门名称",value:"name"}]}]}),n=U(),m=h({name:"ApiSelect",label:"接口选择器",icon:"icon-json",props:[...I],event:["click","change","visibleChange","clear","blur","focus"]});function F(){var f;const y={name:"system",title:"系统字段",list:[u,d,n,m].map(o=>{var v;return(v=e.value)==null||v.addComponent(o),{icon:o.icon,name:o.name,label:o.label}})};(f=e.value)==null||f.addMenu(y)}T(()=>b(null,null,function*(){yield D(),p(),F()}))})}export{G as a,K as b,$ as d,B as e,L as s,Z as u};
|