@longhongguo/form-create-ant-design-vue 3.2.39 → 3.2.41

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.
@@ -1,23 +1,23 @@
1
- .form-create .form-create .ant-form-item {
2
- margin-bottom: 22px;
3
- }
4
-
5
- .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
- margin-bottom: 3px;
7
- }
8
-
9
- .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
- margin-bottom: -22px;
11
- }
12
-
13
- .form-create{
14
- width: 100%;
15
- }
16
-
17
- .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
- display: none !important;
19
- }
20
-
21
- .fc-form-footer {
22
- margin-top: 12px;
1
+ .form-create .form-create .ant-form-item {
2
+ margin-bottom: 22px;
3
+ }
4
+
5
+ .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
+ margin-bottom: 3px;
7
+ }
8
+
9
+ .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
+ margin-bottom: -22px;
11
+ }
12
+
13
+ .form-create{
14
+ width: 100%;
15
+ }
16
+
17
+ .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
+ display: none !important;
19
+ }
20
+
21
+ .fc-form-footer {
22
+ margin-top: 12px;
23
23
  }
@@ -1,23 +1,23 @@
1
- .form-create .form-create .ant-form-item {
2
- margin-bottom: 22px;
3
- }
4
-
5
- .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
- margin-bottom: 3px;
7
- }
8
-
9
- .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
- margin-bottom: -22px;
11
- }
12
-
13
- .form-create{
14
- width: 100%;
15
- }
16
-
17
- .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
- display: none !important;
19
- }
20
-
21
- .fc-form-footer {
22
- margin-top: 12px;
1
+ .form-create .form-create .ant-form-item {
2
+ margin-bottom: 22px;
3
+ }
4
+
5
+ .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
+ margin-bottom: 3px;
7
+ }
8
+
9
+ .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
+ margin-bottom: -22px;
11
+ }
12
+
13
+ .form-create{
14
+ width: 100%;
15
+ }
16
+
17
+ .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
+ display: none !important;
19
+ }
20
+
21
+ .fc-form-footer {
22
+ margin-top: 12px;
23
23
  }
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * @longhongguo/form-create-ant-design-vue v3.2.39
2
+ * @longhongguo/form-create-ant-design-vue v3.2.40
3
3
  * (c) 2018-2025 xaboy
4
4
  * Github https://github.com/xaboy/form-create
5
5
  * Released under the MIT License.
6
6
  */
7
- import e from"@form-create/component-antdv-upload/src/index";import t from"@form-create/component-antdv-frame/src/index";import r from"@form-create/component-antdv-group/src/index";import o from"@form-create/component-subform/src/index";import{openBlock as a,createElementBlock as i,createElementVNode as n}from"vue";import s,{hasProperty as l}from"@form-create/utils/lib/type";import p,{creatorFactory as c}from"@longhongguo/form-create-core/src/index";import d from"@form-create/utils/lib/mergeprops";import m from"@form-create/utils/lib/extend";import{invoke as u}from"@longhongguo/form-create-core/src/frame/util";import f from"@form-create/utils/lib/toarray";var h={name:"QuestionCircleOutlined"};const v={class:"anticon"};h.render=function(e,t,r,o,s,l){return a(),i("span",v,[...t[0]||(t[0]=[n("svg",{height:"1em",width:"1em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[n("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z",fill:"currentColor"}),n("path",{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z",fill:"currentColor"})],-1)])])};var g=[e,t,r,o,h],w={name:"checkbox",modelField:"value",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[])}},k={...w,name:"radio"},b={...w,name:"select",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}},y={name:"cascader",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}};const P={date:"YYYY-MM-DD",month:"YYYY-MM",week:"YYYY-wo",quarter:"YYYY-qQ",year:"YYYY"},F="datePicker";var $={name:F,maker:["date","month","week"].reduce((e,t)=>(e[t]=c(F,{type:t}),e),{dateRange:c(F,{type:"range"}),datetimeRange:c(F,e=>e.props({type:"range",showTime:!0}))}),modelField:"value",mergeProp(e){const t=e.prop.props,r=t.type||t.picker;t.valueFormat||(t.valueFormat=(P[r]||P.date)+(!t.showTime||r&&"date"!==r?"":" HH:mm:ss"))},render:(e,t)=>t.$render.vNode[(!0===t.prop.props.range?"range":"date")+"Picker"](t.prop,e)};var C={name:"hidden",maker:{hidden:(e,t)=>c("hidden")("",e,t)},render:()=>[]};var x={name:"input",maker:["password","url","email","text","textarea","search"].reduce((e,t)=>(e[t]=c("input",{type:t}),e),{idate:c("input",{type:"date"})}),modelField:"value",render(e,t){let r=t.prop.props.type;return-1===["textarea","search","password"].indexOf(r)&&(r="input"),r={textarea:"aTextarea",search:"aInputSearch",password:"aInputPassword"}[r]||"aInput",t.$render.vNode.make(r,t.prop,e)}},B={name:"timePicker",modelField:"value",mergeProp(e){const t=e.prop.props;t.valueFormat||(t.valueFormat="HH:mm:ss")},render:(e,t)=>t.$render.vNode["time"+(!0===t.prop.props.range?"Range":"")+"Picker"](t.prop,e)},S={name:"tree",modelField:"checkedKeys",mergeProp(e){const t=e.prop.props;t.fieldNames?t.fieldNames.key||(t.fieldNames.key="id"):t.fieldNames={key:"id"},t.checkedKeys=e.rule.value,t.checkable=!0}},R={name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})};var I=[w,$,{...$,name:"rangePicker",maker:{},render:(e,t)=>t.$render.vNode.rangePicker(t.prop,e)},C,x,B,{...B,name:"timeRangePicker",render:(e,t)=>t.$render.vNode.timeRangePicker(t.prop,e)},S,k,b,y,R];var O={tooltip:"aTooltip",popover:"aPopover",button:"aButton",icon:"aIcon",slider:"aSlider",rate:"aRate",upload:"fcUpload",cascader:"aCascader",timePicker:"aTimePicker",timeRangePicker:"aTimeRangePicker",datePicker:"aDatePicker",rangePicker:"aRangePicker",switch:"aSwitch",select:"aSelect",checkbox:"aCheckboxGroup",radio:"aRadioGroup",input:"aInput",inputNumber:"aInputNumber",treeSelect:"aTreeSelect",search:"aInputSearch",inputPassword:"aInputPassword",textarea:"aTextarea",formItem:"aFormItem",form:"aForm",frame:"fcFrame",col:"aCol",row:"aRow",tree:"aTree",autoComplete:"aAutoComplete",transfer:"aTransfer",group:"fcGroup",array:"fcGroup",subForm:"fcSubForm",object:"fcSubForm"};function T(e,t){l(e,t)&&s.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function Y(e){return!1===e}function N(e){const t={...e};return delete t.children,t}var E={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){const t=this.form();return t?t.validateFields(e):new Promise(e=>e())},clearValidateState(e){const t=this.vm.refs[e.wrapRef];t&&t.clearValidate()},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){l(e,t)&&!s.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(T(e,"title"),T(e,"info"),e),mergeProp(e){const t={info:{type:"popover",placement:"topLeft",icon:"QuestionCircleOutlined"},title:{},col:{span:24},wrap:{}};["info","wrap","col","title"].forEach(r=>{e.prop[r]=d([this.options[r]||{},e.prop[r]||{}],t[r])})},getDefaultOptions:()=>({form:{hideRequiredMark:!1,layout:"horizontal",labelAlign:"right",labelCol:{span:3},wrapperCol:{span:21},validateOnRuleChange:!0},row:{gutter:0},submitBtn:{disabled:!1,loading:!1,type:"primary",innerText:"",show:!1,col:void 0,click:void 0},resetBtn:{disabled:!1,loading:!1,type:"default",innerText:"",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>(e.validator=(e,r)=>new Promise((e,o)=>t(r,t=>{t?o(t):e()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t,$handle:r}=this,o=this.options.form;m(this.rule,{key:e,ref:t,class:[o.className,o.class,"form-create",this.$handle.preview?"is-preview":""]}),m(this.rule.props,{model:r.formData})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,Y(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,o=`${this.key}${e.key}`,a=r.col,i=this.isTitle(r)&&!1!==r.wrap.title,{layout:n,col:s}=this.rule.props,l=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const p=Y(r.wrap.show)?t:this.$r(d([r.wrap,{props:{...N(r.wrap||{}),hasFeedback:r.hasFeedback||!1,name:e.id,rules:e.injectValidate(),..."horizontal"!==n?{labelCol:{},wrapperCol:{}}:{}},class:this.$render.mergeClass(l||r.className,"fc-form-item"),key:o+"fi",ref:e.wrapRef,type:"formItem"}]),{default:()=>t,...i?{label:()=>this.makeInfo(r,o,e)}:{}});return"inline"===n||Y(s)||Y(a.show)?p:this.makeCol(r,o,[p])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||Y(t.show))},makeInfo(e,t,r){var o,a;const i={...e.title},n={...e.info};if(!1===this.options.form.title)return!1;if(!i.title&&!i.native||Y(i.show))return;const s="tooltip"===n.type;const p=this.getSlot("title"),c=[p?p({title:null===(o=r.refRule)||void 0===o||null===(o=o.__$title)||void 0===o?void 0:o.value,rule:r.rule,options:this.options}):null===(a=r.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value];if(!Y(n.show)&&(n.info||n.native)&&!Y(n.icon)){const e={type:n.type||"popover",props:N(n),key:t+"pop"};delete e.props.icon,delete e.props.show,delete e.props.info,delete e.props.align,delete e.props.native;const o=s?"title":"content";var m;if(n.info&&!l(e.props,o))e.props[o]=null===(m=r.refRule)||void 0===m||null===(m=m.__$info)||void 0===m?void 0:m.value;c["left"!==n.align?"unshift":"push"](this.$r(d([n,e]),{[i.slot||"default"]:()=>this.$r({type:!0===n.icon?"QuestionCircleOutlined":n.icon||"",props:{type:!0===n.icon?"QuestionCircleOutlined":n.icon},key:t+"i"})}))}const u=d([i,{props:N(i),key:t+"tit",class:"fc-form-title",type:i.type||"span"}]);return delete u.props.show,delete u.props.title,delete u.props.native,this.$r(u,c)},makeCol(e,t,r){const o=e.col;return this.$r({class:this.$render.mergeClass(o.class,"fc-form-col"),type:"col",props:o||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(Y(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),Y(this.options.resetBtn.show)||e.push(this.makeResetBtn()),!e.length)return;let{labelCol:t,wrapperCol:r,layout:o}=this.rule.props;"horizontal"!==o&&(t=r={});const a=this.$r({type:"formItem",class:"fc-form-item fc-form-footer",key:this.key+"fb",props:{labelCol:t,wrapperCol:r,label:" ",colon:!1}},e);return"inline"===o?a:this.$r({type:"col",class:"fc-form-col",props:{span:24},key:this.key+"fc"},[a])},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width,marginLeft:"10px"},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};const V={};var _;function q(e,t){return s.Boolean(e)?e={show:e}:s.Undef(e)||s.Object(e)||(e={show:t}),e}function D(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((o,a)=>{const i=e.children,n=[t.$manager.validate()];i.filter(e=>!e.isScope).forEach(e=>{n.push(e.validate())}),Promise.all(n).then(()=>{o(!0),r&&r(!0)}).catch(o=>{a(o),r&&r(o),t.vm.emit("validate-fail",o,{api:e}),t.emitEvent("validate-fail",o,{api:e})})}),validateField:(r,o)=>new Promise((a,i)=>{const n=t.getFieldCtx(r);if(!n)return;const s=t.subForm[n.id],l=[t.$manager.validateField(n.id)];f(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{a(null),o&&o(null)}).catch(a=>{i(a),o&&o(a),t.vm.emit("validate-field-fail",a,{field:r,api:e})})}),clearValidateState(r,o=!0){e.helper.tidyFields(r).forEach(e=>{o&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let o=q(t.options.submitBtn,!0);m(o,r),t.options.submitBtn=o,e.refreshOptions()},resetBtnProps:(r={})=>{let o=q(t.options.resetBtn,!1);m(o,r),t.options.resetBtn=o,e.refreshOptions()},submit:(r,o)=>new Promise((a,i)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let o=e.formData();t.beforeSubmit(o).then(()=>{s.Function(r)&&u(()=>r(o,e)),s.Function(t.options.onSubmit)&&u(()=>t.options.onSubmit(o,e)),t.vm.emit("submit",o,e),a(o)}).catch(e=>{})}).catch((...t)=>{s.Function(o)&&u(()=>o(e,...t)),i(...t)})}),request:t=>("string"==typeof t&&(t={action:t}),e.fetch(t))}}!function(e){["treeSelect","upload","frame","autoComplete","cascader","datePicker","frame","inputNumber","inputPassword","radio","rate","switch","rate","slider","timePicker"].reduce((e,t)=>(e[t]=c(t),e),e),e.auto=e.autoComplete,e.number=e.inputNumber,e.time=e.timePicker,e.password=e.inputPassword}(V),function(e){e.sliderRange=c("slider",{range:!0})}(V),function(e){const t={frameInputs:["input",0],frameFiles:["file",0],frameImages:["image",0],frameInputOne:["input",1],frameFileOne:["file",1],frameImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=c("frame",e=>e.props({type:t[r][0],maxLength:t[r][1]})),e),e),e.frameInput=e.frameInputs,e.frameFile=e.frameFiles,e.frameImage=e.frameImages}(V),function(e){const t={image:["image",0],file:["file",0],uploadFileOne:["file",1],uploadImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=c("upload",e=>e.props({uploadType:t[r][0],maxLength:t[r][1]})),e),e),e.uploadImage=e.image,e.uploadFile=e.file}(V),(_=V).selectMultiple=c("select",{mode:"multiple"}),_.selectTags=c("select",{mode:"tags"}),_.selectCombobox=c("select",{mode:"combobox"});var M={autoComplete:"value",cascader:"value",inputNumber:"value",inputPassword:"value",textarea:"value",rate:"value",slider:"value",treeSelect:"value",switch:"checked"};const j={name:"required",load(e,t,r){const o=function(e){return s.Boolean(e)?{required:e}:s.String(e)?{message:e}:s.Undef(e)?{required:!1}:s.Function(e)?{validator:e}:s.Object(e)?e:{}}(e.getValue());if(!1===o.required)e.clearProp(),r.clearValidateState([t.field]);else{var a;const i={required:!0,validator:(e,t)=>new Promise((e,r)=>{s.empty(t)?r(i.message):e()}),...o},n=null===(a=t.__fc__.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value;if(i.message){const e=i.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(i.message=r.t(e[1],{title:n}))}else i.message=r.t("required",{title:n})||n+("en"===r.getLocale()?" is required":"不能为空");e.getProp().validate=[i]}r.sync(t)},watch(...e){j.load(...e)}};function z(e){e.componentAlias(O),Object.keys(M).forEach(t=>{e.setModelField(t,M[t])}),g.forEach(t=>{e.component(t.name,t)}),e.register(j),I.forEach(t=>{e.parser(t)}),Object.keys(V).forEach(t=>{e.maker[t]=V[t]}),"undefined"!=typeof window&&window.antd&&e.useApp((e,t)=>{t.use(window.antd)})}const A=p({ui:'"ant-design-vue"',version:'"3.2.39"',manager:E,install:z,extendApi:D,attrs:{normal:["col","wrap"],array:["className"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreate=A);const L=A.maker;export{A as default,L as maker};
7
+ import e from"@form-create/component-antdv-upload/src/index";import t from"@form-create/component-antdv-frame/src/index";import r from"@form-create/component-antdv-group/src/index";import o from"@form-create/component-subform/src/index";import{openBlock as i,createElementBlock as a,createElementVNode as n}from"vue";import s,{hasProperty as l}from"@form-create/utils/lib/type";import p,{creatorFactory as c}from"@longhongguo/form-create-core/src/index";import d from"@form-create/utils/lib/mergeprops";import m from"@form-create/utils/lib/extend";import{invoke as u}from"@longhongguo/form-create-core/src/frame/util";import f from"@form-create/utils/lib/toarray";var h={name:"QuestionCircleOutlined"};const w={class:"anticon"};h.render=function(e,t,r,o,s,l){return i(),a("span",w,[...t[0]||(t[0]=[n("svg",{height:"1em",width:"1em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[n("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z",fill:"currentColor"}),n("path",{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z",fill:"currentColor"})],-1)])])};var v=[e,t,r,o,h],g={name:"checkbox",modelField:"value",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[])}},y={...g,name:"radio"},k={...g,name:"select",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}},b={name:"cascader",mergeProp(e){const t=e.prop.props;l(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}};const P={date:"YYYY-MM-DD",month:"YYYY-MM",week:"YYYY-wo",quarter:"YYYY-qQ",year:"YYYY"},F="datePicker";var $={name:F,maker:["date","month","week"].reduce((e,t)=>(e[t]=c(F,{type:t}),e),{dateRange:c(F,{type:"range"}),datetimeRange:c(F,e=>e.props({type:"range",showTime:!0}))}),modelField:"value",mergeProp(e){const t=e.prop.props,r=t.type||t.picker;t.valueFormat||(t.valueFormat=(P[r]||P.date)+(!t.showTime||r&&"date"!==r?"":" HH:mm:ss"))},render:(e,t)=>t.$render.vNode[(!0===t.prop.props.range?"range":"date")+"Picker"](t.prop,e)};var C={name:"hidden",maker:{hidden:(e,t)=>c("hidden")("",e,t)},render:()=>[]};var x={name:"input",maker:["password","url","email","text","textarea","search"].reduce((e,t)=>(e[t]=c("input",{type:t}),e),{idate:c("input",{type:"date"})}),modelField:"value",render(e,t){let r=t.prop.props.type;return-1===["textarea","search","password"].indexOf(r)&&(r="input"),r={textarea:"aTextarea",search:"aInputSearch",password:"aInputPassword"}[r]||"aInput",t.$render.vNode.make(r,t.prop,e)}},B={name:"timePicker",modelField:"value",mergeProp(e){const t=e.prop.props;t.valueFormat||(t.valueFormat="HH:mm:ss")},render:(e,t)=>t.$render.vNode["time"+(!0===t.prop.props.range?"Range":"")+"Picker"](t.prop,e)},S={name:"tree",modelField:"checkedKeys",mergeProp(e){const t=e.prop.props;t.fieldNames?t.fieldNames.key||(t.fieldNames.key="id"):t.fieldNames={key:"id"},t.checkedKeys=e.rule.value,t.checkable=!0}},R={name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})};var I=[g,$,{...$,name:"rangePicker",maker:{},render:(e,t)=>t.$render.vNode.rangePicker(t.prop,e)},C,x,B,{...B,name:"timeRangePicker",render:(e,t)=>t.$render.vNode.timeRangePicker(t.prop,e)},S,y,k,b,R];var T={tooltip:"aTooltip",popover:"aPopover",button:"aButton",icon:"aIcon",slider:"aSlider",rate:"aRate",upload:"fcUpload",cascader:"aCascader",timePicker:"aTimePicker",timeRangePicker:"aTimeRangePicker",datePicker:"aDatePicker",rangePicker:"aRangePicker",switch:"aSwitch",select:"aSelect",checkbox:"aCheckboxGroup",radio:"aRadioGroup",input:"aInput",inputNumber:"aInputNumber",treeSelect:"aTreeSelect",search:"aInputSearch",inputPassword:"aInputPassword",textarea:"aTextarea",formItem:"aFormItem",form:"aForm",frame:"fcFrame",col:"aCol",row:"aRow",tree:"aTree",autoComplete:"aAutoComplete",transfer:"aTransfer",group:"fcGroup",array:"fcGroup",subForm:"fcSubForm",object:"fcSubForm"};function O(e,t){l(e,t)&&s.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function Y(e){return!1===e}function N(e){const t={...e};return delete t.children,t}var E={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){const t=this.form();return t?t.validateFields(e):new Promise(e=>e())},clearValidateState(e){const t=this.vm.refs[e.wrapRef];t&&t.clearValidate()},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){l(e,t)&&!s.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(O(e,"title"),O(e,"info"),e),mergeProp(e){const t={info:{type:"popover",placement:"topLeft",icon:"QuestionCircleOutlined"},title:{},col:{span:24},wrap:{}};if(["info","wrap","col","title"].forEach(r=>{e.prop[r]=d([this.options[r]||{},e.prop[r]||{}],t[r])}),"upload"!==e.rule.type||e.prop.props.onPreview){if("upload"===e.rule.type&&e.prop.props.onPreview){const t=e.prop.props.onPreview,r=function(e){window.parent&&window.parent!==window&&window.parent.postMessage({type:"upload-preview",file:{url:e.url,name:e.name,uid:e.uid,size:e.size,type:e.type},timestamp:Date.now()},"*")};e.prop.props.onPreview=function(e){r(e),t&&"function"==typeof t&&t.apply(this,arguments)}}}else{const t=function(e){window.parent&&window.parent!==window&&window.parent.postMessage({type:"upload-preview",file:{url:e.url,name:e.name,uid:e.uid,size:e.size,type:e.type},timestamp:Date.now()},"*")};e.prop.props.onPreview=function(e){t(e)}}},getDefaultOptions:()=>({form:{hideRequiredMark:!1,layout:"horizontal",labelAlign:"right",labelCol:{span:3},wrapperCol:{span:21},validateOnRuleChange:!0},row:{gutter:0},submitBtn:{disabled:!1,loading:!1,type:"primary",innerText:"",show:!1,col:void 0,click:void 0},resetBtn:{disabled:!1,loading:!1,type:"default",innerText:"",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>(e.validator=(e,r)=>new Promise((e,o)=>t(r,t=>{t?o(t):e()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t,$handle:r}=this,o=this.options.form;m(this.rule,{key:e,ref:t,class:[o.className,o.class,"form-create",this.$handle.preview?"is-preview":""]}),m(this.rule.props,{model:r.formData})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,Y(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,o=`${this.key}${e.key}`,i=r.col,a=this.isTitle(r)&&!1!==r.wrap.title,{layout:n,col:s}=this.rule.props,l=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const p=Y(r.wrap.show)?t:this.$r(d([r.wrap,{props:{...N(r.wrap||{}),hasFeedback:r.hasFeedback||!1,name:e.id,rules:e.injectValidate(),..."horizontal"!==n?{labelCol:{},wrapperCol:{}}:{}},class:this.$render.mergeClass(l||r.className,"fc-form-item"),key:o+"fi",ref:e.wrapRef,type:"formItem"}]),{default:()=>t,...a?{label:()=>this.makeInfo(r,o,e)}:{}});return"inline"===n||Y(s)||Y(i.show)?p:this.makeCol(r,o,[p])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||Y(t.show))},makeInfo(e,t,r){var o,i;const a={...e.title},n={...e.info};if(!1===this.options.form.title)return!1;if(!a.title&&!a.native||Y(a.show))return;const s="tooltip"===n.type;const p=this.getSlot("title"),c=[p?p({title:null===(o=r.refRule)||void 0===o||null===(o=o.__$title)||void 0===o?void 0:o.value,rule:r.rule,options:this.options}):null===(i=r.refRule)||void 0===i||null===(i=i.__$title)||void 0===i?void 0:i.value];if(!Y(n.show)&&(n.info||n.native)&&!Y(n.icon)){const e={type:n.type||"popover",props:N(n),key:t+"pop"};delete e.props.icon,delete e.props.show,delete e.props.info,delete e.props.align,delete e.props.native;const o=s?"title":"content";var m;if(n.info&&!l(e.props,o))e.props[o]=null===(m=r.refRule)||void 0===m||null===(m=m.__$info)||void 0===m?void 0:m.value;c["left"!==n.align?"unshift":"push"](this.$r(d([n,e]),{[a.slot||"default"]:()=>this.$r({type:!0===n.icon?"QuestionCircleOutlined":n.icon||"",props:{type:!0===n.icon?"QuestionCircleOutlined":n.icon},key:t+"i"})}))}const u=d([a,{props:N(a),key:t+"tit",class:"fc-form-title",type:a.type||"span"}]);return delete u.props.show,delete u.props.title,delete u.props.native,this.$r(u,c)},makeCol(e,t,r){const o=e.col;return this.$r({class:this.$render.mergeClass(o.class,"fc-form-col"),type:"col",props:o||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(Y(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),Y(this.options.resetBtn.show)||e.push(this.makeResetBtn()),!e.length)return;let{labelCol:t,wrapperCol:r,layout:o}=this.rule.props;"horizontal"!==o&&(t=r={});const i=this.$r({type:"formItem",class:"fc-form-item fc-form-footer",key:this.key+"fb",props:{labelCol:t,wrapperCol:r,label:" ",colon:!1}},e);return"inline"===o?i:this.$r({type:"col",class:"fc-form-col",props:{span:24},key:this.key+"fc"},[i])},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width,marginLeft:"10px"},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};const V={};var D;function M(e,t){return s.Boolean(e)?e={show:e}:s.Undef(e)||s.Object(e)||(e={show:t}),e}function _(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((o,i)=>{const a=e.children,n=[t.$manager.validate()];a.filter(e=>!e.isScope).forEach(e=>{n.push(e.validate())}),Promise.all(n).then(()=>{o(!0),r&&r(!0)}).catch(o=>{i(o),r&&r(o),t.vm.emit("validate-fail",o,{api:e}),t.emitEvent("validate-fail",o,{api:e})})}),validateField:(r,o)=>new Promise((i,a)=>{const n=t.getFieldCtx(r);if(!n)return;const s=t.subForm[n.id],l=[t.$manager.validateField(n.id)];f(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{i(null),o&&o(null)}).catch(i=>{a(i),o&&o(i),t.vm.emit("validate-field-fail",i,{field:r,api:e})})}),clearValidateState(r,o=!0){e.helper.tidyFields(r).forEach(e=>{o&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let o=M(t.options.submitBtn,!0);m(o,r),t.options.submitBtn=o,e.refreshOptions()},resetBtnProps:(r={})=>{let o=M(t.options.resetBtn,!1);m(o,r),t.options.resetBtn=o,e.refreshOptions()},submit:(r,o)=>new Promise((i,a)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let o=e.formData();t.beforeSubmit(o).then(()=>{s.Function(r)&&u(()=>r(o,e)),s.Function(t.options.onSubmit)&&u(()=>t.options.onSubmit(o,e)),t.vm.emit("submit",o,e),i(o)}).catch(e=>{})}).catch((...t)=>{s.Function(o)&&u(()=>o(e,...t)),a(...t)})}),request:t=>("string"==typeof t&&(t={action:t}),e.fetch(t)),throttle(e,t){let r=null;return function(...o){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,o)},t)}},debounce(e,t){let r=null;return function(...o){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,o)},t)}}}}!function(e){["treeSelect","upload","frame","autoComplete","cascader","datePicker","frame","inputNumber","inputPassword","radio","rate","switch","rate","slider","timePicker"].reduce((e,t)=>(e[t]=c(t),e),e),e.auto=e.autoComplete,e.number=e.inputNumber,e.time=e.timePicker,e.password=e.inputPassword}(V),function(e){e.sliderRange=c("slider",{range:!0})}(V),function(e){const t={frameInputs:["input",0],frameFiles:["file",0],frameImages:["image",0],frameInputOne:["input",1],frameFileOne:["file",1],frameImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=c("frame",e=>e.props({type:t[r][0],maxLength:t[r][1]})),e),e),e.frameInput=e.frameInputs,e.frameFile=e.frameFiles,e.frameImage=e.frameImages}(V),function(e){const t={image:["image",0],file:["file",0],uploadFileOne:["file",1],uploadImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=c("upload",e=>e.props({uploadType:t[r][0],maxLength:t[r][1]})),e),e),e.uploadImage=e.image,e.uploadFile=e.file}(V),(D=V).selectMultiple=c("select",{mode:"multiple"}),D.selectTags=c("select",{mode:"tags"}),D.selectCombobox=c("select",{mode:"combobox"});var q={autoComplete:"value",cascader:"value",inputNumber:"value",inputPassword:"value",textarea:"value",rate:"value",slider:"value",treeSelect:"value",switch:"checked"};const z={name:"required",load(e,t,r){const o=function(e){return s.Boolean(e)?{required:e}:s.String(e)?{message:e}:s.Undef(e)?{required:!1}:s.Function(e)?{validator:e}:s.Object(e)?e:{}}(e.getValue());if(!1===o.required)e.clearProp(),r.clearValidateState([t.field]);else{var i;const a={required:!0,validator:(e,t)=>new Promise((e,r)=>{s.empty(t)?r(a.message):e()}),...o},n=null===(i=t.__fc__.refRule)||void 0===i||null===(i=i.__$title)||void 0===i?void 0:i.value;if(a.message){const e=a.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(a.message=r.t(e[1],{title:n}))}else a.message=r.t("required",{title:n})||n+("en"===r.getLocale()?" is required":"不能为空");e.getProp().validate=[a]}r.sync(t)},watch(...e){z.load(...e)}};function j(e){e.componentAlias(T),Object.keys(q).forEach(t=>{e.setModelField(t,q[t])}),v.forEach(t=>{e.component(t.name,t)}),e.register(z),I.forEach(t=>{e.parser(t)}),Object.keys(V).forEach(t=>{e.maker[t]=V[t]}),"undefined"!=typeof window&&window.antd&&e.useApp((e,t)=>{t.use(window.antd)})}const A=p({ui:'"ant-design-vue"',version:'"3.2.40"',manager:E,install:j,extendApi:_,attrs:{normal:["col","wrap"],array:["className"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreate=A);const L=A.maker;export{A as default,L as maker};
8
8
  //# sourceMappingURL=form-create.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-create.esm.js","sources":["../src/components/icon/QuestionCircleOutlined.vue","../src/components/icon/QuestionCircleOutlined.vue?vue&type=template&id=72badc20&lang.js","../src/components/index.js","../src/parsers/checkbox.js","../src/parsers/radio.js","../src/parsers/select.js","../src/parsers/cascader.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/timePicker.js","../src/parsers/tree.js","../src/parsers/row.js","../src/parsers/timeRangePicker.js","../src/parsers/index.js","../src/parsers/rangePicker.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.js","../src/core/maker.js","../src/core/api.js","../src/core/modelFields.js","../src/core/provider.js","../src/core/index.js","../src/index.js"],"sourcesContent":["<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","import upload from '@form-create/component-antdv-upload/src/index'\nimport frame from '@form-create/component-antdv-frame/src/index'\nimport group from '@form-create/component-antdv-group/src/index'\nimport subForm from '@form-create/component-subform/src/index'\nimport QuestionCircleOutlined from './icon/QuestionCircleOutlined.vue'\n\nexport default [upload, frame, group, subForm, QuestionCircleOutlined]\n","import {hasProperty} from '@form-create/utils/lib/type';\n\nexport default {\n name: 'checkbox',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n\n}\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'radio'\n};\n","import checkbox from './checkbox'\nimport { hasProperty } from '@form-create/utils/lib/type'\n\nexport default {\n ...checkbox,\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\n\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果正在加载,设置 disabled 和 loading\n if (isLoading) {\n props.disabled = true\n props.loading = true\n }\n },\n render(children, ctx) {\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\n if (isLoading && children.loading) {\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\n const newChildren = { ...children }\n newChildren.notFoundContent = children.loading\n return ctx.$render.defaultRender(ctx, newChildren)\n }\n\n // 调用默认渲染\n return ctx.$render.defaultRender(ctx, children)\n }\n}\n","import { hasProperty } from '@form-create/utils/lib/type'\r\n\r\nexport default {\r\n name: 'cascader',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props\r\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\r\n\r\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果正在加载,设置 disabled 和 loading\r\n if (isLoading) {\r\n props.disabled = true\r\n props.loading = true\r\n }\r\n },\r\n render(children, ctx) {\r\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\r\n if (isLoading && children.loading) {\r\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\r\n const newChildren = { ...children }\r\n newChildren.notFoundContent = children.loading\r\n return ctx.$render.defaultRender(ctx, newChildren)\r\n }\r\n\r\n // 调用默认渲染\r\n return ctx.$render.defaultRender(ctx, children)\r\n }\r\n}\r\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst FORMAT_TYPE = {\n date: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n week: 'YYYY-wo',\n quarter: 'YYYY-qQ',\n year: 'YYYY'\n}\n\nconst name = 'datePicker'\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'month', 'week'].reduce(\n (initial, type) => {\n initial[type] = creatorFactory(name, { type })\n return initial\n },\n {\n dateRange: creatorFactory(name, { type: 'range' }),\n datetimeRange: creatorFactory(name, (m) =>\n m.props({ type: 'range', showTime: true })\n )\n }\n )\n })(),\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props\n const type = props.type || props.picker\n if (!props.valueFormat) {\n props.valueFormat =\n (FORMAT_TYPE[type] || FORMAT_TYPE['date']) +\n (props.showTime && (!type || type === 'date') ? ' HH:mm:ss' : '')\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode[\n (ctx.prop.props.range === true ? 'range' : 'date') + 'Picker'\n ](ctx.prop, children)\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'hidden'\n\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return []\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'input'\nexport default {\n name,\n maker: (function () {\n return ['password', 'url', 'email', 'text', 'textarea', 'search'].reduce(\n (maker, type) => {\n maker[type] = creatorFactory(name, { type })\n return maker\n },\n {\n idate: creatorFactory(name, { type: 'date' })\n }\n )\n })(),\n modelField: 'value',\n render(children, ctx) {\n let type = ctx.prop.props.type\n if (['textarea', 'search', 'password'].indexOf(type) === -1) type = 'input'\n\n type =\n {\n textarea: 'aTextarea',\n search: 'aInputSearch',\n password: 'aInputPassword'\n }[type] || 'aInput'\n return ctx.$render.vNode.make(type, ctx.prop, children)\n }\n}\n","export default {\n name: 'timePicker',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode['time' +( ctx.prop.props.range === true ? 'Range' : '') + 'Picker'](ctx.prop, children);\n }\n\n}\n\n","export default {\n name: 'tree',\n modelField: 'checkedKeys',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.fieldNames)\n props.fieldNames = {\n key: 'id'\n };\n else if (!props.fieldNames.key) props.fieldNames.key = 'id';\n props.checkedKeys = ctx.rule.value;\n props.checkable = true;\n },\n\n}\n\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default: () => [\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","import timePicker from './timePicker';\n\nconst name = 'timeRangePicker';\n\nexport default {\n ...timePicker,\n name,\n render(children, ctx) {\n return ctx.$render.vNode['timeRangePicker'](ctx.prop, children);\n }\n}\n","import checkbox from './checkbox'\nimport radio from './radio'\nimport select from './select'\nimport cascader from './cascader'\nimport datePicker from './datePicker'\nimport hidden from './hidden'\nimport input from './input'\nimport timePicker from './timePicker'\nimport tree from './tree'\nimport row from './row'\nimport rangePicker from './rangePicker'\nimport timeRangePicker from './timeRangePicker'\n\nexport default [\n checkbox,\n datePicker,\n rangePicker,\n hidden,\n input,\n timePicker,\n timeRangePicker,\n tree,\n radio,\n select,\n cascader,\n row\n]\n","import datePicker from './datePicker';\n\nconst name = 'rangePicker';\n\nexport default {\n ...datePicker,\n name,\n maker: {},\n render(children, ctx) {\n return ctx.$render.vNode['rangePicker'](ctx.prop, children);\n }\n}\n","const PRE = 'a'\nexport default {\n tooltip: PRE + 'Tooltip',\n popover: PRE + 'Popover',\n button: PRE + 'Button',\n icon: PRE + 'Icon',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n timePicker: PRE + 'TimePicker',\n timeRangePicker: PRE + 'TimeRangePicker',\n datePicker: PRE + 'DatePicker',\n rangePicker: PRE + 'RangePicker',\n switch: PRE + 'Switch',\n select: PRE + 'Select',\n checkbox: PRE + 'CheckboxGroup',\n radio: PRE + 'RadioGroup',\n input: PRE + 'Input',\n inputNumber: PRE + 'InputNumber',\n treeSelect: PRE + 'TreeSelect',\n search: PRE + 'InputSearch',\n inputPassword: PRE + 'InputPassword',\n textarea: PRE + 'Textarea',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: PRE + 'Tree',\n autoComplete: PRE + 'AutoComplete',\n transfer: PRE + 'Transfer',\n group: 'fcGroup',\n array: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm'\n}\n","import getConfig from './config'\nimport mergeProps from '@form-create/utils/lib/mergeprops'\nimport is, { hasProperty } from '@form-create/utils/lib/type'\nimport extend from '@form-create/utils/lib/extend'\n\nfunction isTooltip(info) {\n return info.type === 'tooltip'\n}\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return\n if (is.String(props[name])) {\n props[name] = { [name]: props[name], show: true }\n }\n}\n\nfunction isFalse(val) {\n return val === false\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = { show: !!opt[name] }\n }\n}\n\nfunction tidyRule(rule) {\n const _rule = { ...rule }\n delete _rule.children\n return _rule\n}\n\nexport default {\n validate() {\n const form = this.form()\n if (form) {\n return form.validate()\n } else {\n return new Promise((v) => v())\n }\n },\n validateField(field) {\n const form = this.form()\n if (form) {\n return form.validateFields(field)\n } else {\n return new Promise((v) => v())\n }\n },\n clearValidateState(ctx) {\n const fItem = this.vm.refs[ctx.wrapRef]\n if (fItem) {\n fItem.clearValidate()\n }\n },\n tidyOptions(options) {\n ;['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(\n (name) => {\n tidyBool(options, name)\n }\n )\n return options\n },\n tidyRule({ prop }) {\n tidy(prop, 'title')\n tidy(prop, 'info')\n return prop\n },\n mergeProp(ctx) {\n const def = {\n info: {\n type: 'popover',\n placement: 'topLeft',\n icon: 'QuestionCircleOutlined'\n },\n title: {},\n col: { span: 24 },\n wrap: {}\n }\n ;['info', 'wrap', 'col', 'title'].forEach((name) => {\n ctx.prop[name] = mergeProps(\n [this.options[name] || {}, ctx.prop[name] || {}],\n def[name]\n )\n })\n },\n getDefaultOptions() {\n return getConfig()\n },\n adapterValidate(validate, validator) {\n validate.validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n const callback = (err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n }\n return validator(value, callback)\n })\n }\n return validate\n },\n update() {\n const form = this.options.form\n this.rule = {\n props: { ...form },\n on: {\n submit: (e) => {\n e.preventDefault()\n }\n },\n style: form.style,\n type: 'form'\n }\n },\n beforeRender() {\n const { key, ref, $handle } = this\n const form = this.options.form\n extend(this.rule, {\n key,\n ref,\n class: [\n form.className,\n form.class,\n 'form-create',\n this.$handle.preview ? 'is-preview' : ''\n ]\n })\n extend(this.rule.props, {\n model: $handle.formData\n })\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn())\n }\n return this.$r(\n this.rule,\n isFalse(this.options.row.show)\n ? children.getSlots()\n : [this.makeRow(children)]\n )\n },\n makeWrap(ctx, children) {\n const rule = ctx.prop\n const uni = `${this.key}${ctx.key}`\n const col = rule.col\n const isTitle = this.isTitle(rule) && rule.wrap.title !== false\n const { layout, col: _col } = this.rule.props\n const cls = rule.wrap.class\n delete rule.wrap.class\n delete rule.wrap.title\n const item = isFalse(rule.wrap.show)\n ? children\n : this.$r(\n mergeProps([\n rule.wrap,\n {\n props: {\n ...tidyRule(rule.wrap || {}),\n hasFeedback: rule.hasFeedback || false,\n name: ctx.id,\n rules: ctx.injectValidate(),\n ...(layout !== 'horizontal'\n ? { labelCol: {}, wrapperCol: {} }\n : {})\n },\n class: this.$render.mergeClass(\n cls || rule.className,\n 'fc-form-item'\n ),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem'\n }\n ]),\n {\n default: () => children,\n ...(isTitle ? { label: () => this.makeInfo(rule, uni, ctx) } : {})\n }\n )\n return layout === 'inline' || isFalse(_col) || isFalse(col.show)\n ? item\n : this.makeCol(rule, uni, [item])\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false\n const title = rule.title\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = { ...rule.title }\n const infoProp = { ...rule.info }\n if (this.options.form.title === false) return false\n if ((!titleProp.title && !titleProp.native) || isFalse(titleProp.show))\n return\n const isTip = isTooltip(infoProp)\n const titleSlot = this.getSlot('title')\n const children = [\n titleSlot\n ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n })\n : ctx.refRule?.__$title?.value\n ]\n\n if (\n !isFalse(infoProp.show) &&\n (infoProp.info || infoProp.native) &&\n !isFalse(infoProp.icon)\n ) {\n const prop = {\n type: infoProp.type || 'popover',\n props: tidyRule(infoProp),\n key: `${uni}pop`\n }\n\n delete prop.props.icon\n delete prop.props.show\n delete prop.props.info\n delete prop.props.align\n delete prop.props.native\n\n const field = isTip ? 'title' : 'content'\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = ctx.refRule?.__$info?.value\n }\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](\n this.$r(mergeProps([infoProp, prop]), {\n [titleProp.slot || 'default']: () =>\n this.$r({\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon || '',\n props: {\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon\n },\n key: `${uni}i`\n })\n })\n )\n }\n\n const _prop = mergeProps([\n titleProp,\n {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span'\n }\n ])\n\n delete _prop.props.show\n delete _prop.props.title\n delete _prop.props.native\n\n return this.$r(_prop, children)\n },\n makeCol(rule, uni, children) {\n const col = rule.col\n return this.$r(\n {\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\n type: 'col',\n props: col || { span: 24 },\n key: `${uni}col`\n },\n children\n )\n },\n makeRow(children) {\n const row = this.options.row || {}\n return this.$r(\n {\n type: 'row',\n props: row,\n class: this.$render.mergeClass(row.class, 'fc-form-row'),\n key: `${this.key}row`\n },\n children\n )\n },\n makeFormBtn() {\n let vn = []\n if (!isFalse(this.options.submitBtn.show)) {\n vn.push(this.makeSubmitBtn())\n }\n if (!isFalse(this.options.resetBtn.show)) {\n vn.push(this.makeResetBtn())\n }\n if (!vn.length) {\n return\n }\n let { labelCol, wrapperCol, layout } = this.rule.props\n if (layout !== 'horizontal') {\n labelCol = wrapperCol = {}\n }\n const item = this.$r(\n {\n type: 'formItem',\n class: 'fc-form-item fc-form-footer',\n key: `${this.key}fb`,\n props: {\n labelCol,\n wrapperCol,\n label: ' ',\n colon: false\n }\n },\n vn\n )\n\n return layout === 'inline'\n ? item\n : this.$r(\n {\n type: 'col',\n class: 'fc-form-col',\n props: { span: 24 },\n key: `${this.key}fc`\n },\n [item]\n )\n },\n\n makeResetBtn() {\n const resetBtn = { ...this.options.resetBtn }\n const innerText =\n resetBtn.innerText || this.$handle.api.t('reset') || '重置'\n delete resetBtn.innerText\n delete resetBtn.click\n delete resetBtn.col\n delete resetBtn.show\n return this.$r(\n {\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: { width: resetBtn.width, marginLeft: '10px' },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields()\n }\n },\n key: `${this.key}b2`\n },\n [innerText]\n )\n },\n makeSubmitBtn() {\n const submitBtn = { ...this.options.submitBtn }\n const innerText =\n submitBtn.innerText || this.$handle.api.t('submit') || '提交'\n delete submitBtn.innerText\n delete submitBtn.click\n delete submitBtn.col\n delete submitBtn.show\n return this.$r(\n {\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: { width: submitBtn.width },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {})\n }\n },\n key: `${this.key}b1`\n },\n [innerText]\n )\n }\n}\n","const UNDEF = undefined\n\nexport default function getConfig() {\n return {\n form: {\n hideRequiredMark: false,\n layout: 'horizontal',\n labelAlign: 'right',\n labelCol: {\n span: 3\n },\n wrapperCol: {\n span: 21\n },\n validateOnRuleChange: true\n },\n row: {\n gutter: 0\n },\n submitBtn: {\n disabled: false,\n loading: false,\n type: 'primary',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n },\n resetBtn: {\n disabled: false,\n loading: false,\n type: 'default',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n }\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst maker = {}\n\nfunction useAlias(maker) {\n ;[\n 'treeSelect',\n 'upload',\n 'frame',\n 'autoComplete',\n 'cascader',\n 'datePicker',\n 'frame',\n 'inputNumber',\n 'inputPassword',\n 'radio',\n 'rate',\n 'switch',\n 'rate',\n 'slider',\n 'timePicker'\n ].reduce((maker, name) => {\n maker[name] = creatorFactory(name)\n return maker\n }, maker)\n maker.auto = maker.autoComplete\n maker.number = maker.inputNumber\n maker.time = maker.timePicker\n maker.password = maker.inputPassword\n}\n\nfunction useFrame(maker) {\n const types = {\n frameInputs: ['input', 0],\n frameFiles: ['file', 0],\n frameImages: ['image', 0],\n frameInputOne: ['input', 1],\n frameFileOne: ['file', 1],\n frameImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('frame', (m) =>\n m.props({ type: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.frameInput = maker.frameInputs\n maker.frameFile = maker.frameFiles\n maker.frameImage = maker.frameImages\n}\n\nfunction useSlider(maker) {\n maker['sliderRange'] = creatorFactory('slider', { range: true })\n}\n\nfunction useSelect(m) {\n const name = 'select'\n m.selectMultiple = creatorFactory(name, { mode: 'multiple' })\n m.selectTags = creatorFactory(name, { mode: 'tags' })\n m.selectCombobox = creatorFactory(name, { mode: 'combobox' })\n}\n\nfunction useUpload(maker) {\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('upload', (m) =>\n m.props({ uploadType: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.uploadImage = maker.image\n maker.uploadFile = maker.file\n}\n\nuseAlias(maker)\nuseSlider(maker)\nuseFrame(maker)\nuseUpload(maker)\nuseSelect(maker)\n\nexport default maker\n","import extend from '@form-create/utils/lib/extend'\nimport is from '@form-create/utils/lib/type'\nimport { invoke } from '@longhongguo/form-create-core/src/frame/util'\nimport toArray from '@form-create/utils/lib/toarray'\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn)) btn = { show: btn }\n else if (!is.Undef(btn) && !is.Object(btn)) btn = { show: def }\n return btn\n}\n\nexport default function extendApi(api, h) {\n return {\n formEl() {\n return h.$manager.form()\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id)\n if (!ctx) return\n return h.vm.refs[ctx.wrapRef]\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children\n const all = [h.$manager.validate()]\n forms\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(true)\n callback && callback(true)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-fail', e, { api })\n h.emitEvent('validate-fail', e, { api })\n })\n })\n },\n validateField(field, callback) {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field)\n if (!ctx) return\n const sub = h.subForm[ctx.id]\n const all = [h.$manager.validateField(ctx.id)]\n toArray(sub)\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(null)\n callback && callback(null)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-field-fail', e, { field, api })\n })\n })\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach((field) => {\n if (clearSub) this.clearSubValidateState(field)\n h.getCtxs(field).forEach((ctx) => {\n h.$manager.clearValidateState(ctx)\n })\n })\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach((ctx) => {\n const subForm = h.subForm[ctx.id]\n if (!subForm) return\n if (Array.isArray(subForm)) {\n subForm.forEach((form) => {\n form.clearValidateState()\n })\n } else if (subForm) {\n subForm.clearValidateState()\n }\n })\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.submitBtnProps({ show: !!isShow })\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.resetBtnProps({ show: !!isShow })\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true)\n extend(btn, props)\n h.options.submitBtn = btn\n api.refreshOptions()\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false)\n extend(btn, props)\n h.options.resetBtn = btn\n api.refreshOptions()\n },\n submit(successFn, failFn) {\n return new Promise((resolve, reject) => {\n const promise =\n h.options.validateOnSubmit === false\n ? Promise.resolve()\n : api.validate()\n promise\n .then(() => {\n let formData = api.formData()\n h.beforeSubmit(formData)\n .then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api))\n is.Function(h.options.onSubmit) &&\n invoke(() => h.options.onSubmit(formData, api))\n h.vm.emit('submit', formData, api)\n resolve(formData)\n })\n .catch((e) => {})\n })\n .catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args))\n reject(...args)\n })\n })\n },\n /**\n * 封装请求工具,用于自定义校验规则等场景\n * 基于 frame/fetch.js 封装的 fetch 方法\n *\n * @param {string|object} config - 请求配置,可以是 URL 字符串或配置对象\n * @param {string} config.action - 请求地址(必需)\n * @param {string} config.method - 请求方法,默认 'get'\n * @param {object} config.data - 请求数据(POST/PUT等),用于表单或JSON格式\n * @param {object} config.query - 查询参数(GET请求)\n * @param {string} config.dataType - 数据类型:'json' 表示 JSON 格式(默认),其他值表示表单格式(FormData)\n * @param {object} config.headers - 请求头\n * @param {function|string} config.parse - 数据解析函数或路径字符串\n * @returns {Promise} 返回 Promise,resolve 时返回解析后的数据\n *\n * @example\n * // JSON 格式 POST 请求(默认)\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'json' // 或不设置,默认 JSON\n * });\n *\n * @example\n * // 表单格式 POST 请求\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'form' // 或任意非 'json' 的值,会使用 FormData\n * });\n *\n * @example\n * // 在自定义校验规则中使用\n * validator: async function(value, callback) {\n * try {\n * const result = await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: value }, // 使用 data,不是 params\n * dataType: 'form' // 表单形式\n * });\n * if (result.exists) {\n * callback('用户名已存在');\n * } else {\n * callback();\n * }\n * } catch (error) {\n * callback('校验失败,请稍后重试');\n * }\n * }\n */\n request(config) {\n // 如果传入的是字符串,转换为配置对象\n if (typeof config === 'string') {\n config = { action: config }\n }\n // 使用 api.fetch 方法,它内部使用 frame/fetch.js 封装的 asyncFetch\n return api.fetch(config)\n }\n }\n}\n","export default {\n autoComplete: 'value',\n cascader: 'value',\n inputNumber: 'value',\n inputPassword: 'value',\n textarea: 'value',\n rate: 'value',\n slider: 'value',\n treeSelect: 'value',\n switch: 'checked',\n}\n","import is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v) {\n return new Promise((resolve, reject) => {\n is.empty(v) ? reject(validate.message) : resolve();\n })\n },\n ...val,\n };\n const title = rule.__fc__.refRule?.__$title?.value;\n if (!validate.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = validate.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\n\nexport default required\n","import components from '../components'\nimport parsers from '../parsers'\nimport alias from './alias'\nimport manager from './manager'\nimport FormCreateFactory from '@longhongguo/form-create-core/src/index'\nimport makers from './maker'\nimport '../style/index.css'\nimport extendApi from './api'\nimport modelFields from './modelFields'\nimport required from './provider'\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias)\n\n Object.keys(modelFields).forEach((k) => {\n FormCreate.setModelField(k, modelFields[k])\n })\n\n components.forEach((component) => {\n FormCreate.component(component.name, component)\n })\n\n FormCreate.register(required)\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser)\n })\n\n Object.keys(makers).forEach((name) => {\n FormCreate.maker[name] = makers[name]\n })\n\n if (typeof window !== 'undefined' && window.antd) {\n FormCreate.useApp((_, app) => {\n app.use(window.antd)\n })\n }\n}\n\nexport default function antdvFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info']\n }\n })\n}\n","import antdvFormCreate from './core/index';\n\nconst FormCreate = antdvFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["script","name","_hoisted_1","class","_openBlock","_createElementBlock","_cache","_createElementVNode","height","width","xmlns","viewBox","d","fill","components","upload","frame","group","subForm","QuestionCircleOutlined","checkbox","modelField","mergeProp","ctx","props","prop","hasProperty","options","radio","select","fetchData","effectData","loading","disabled","render","children","newChildren","notFoundContent","$render","defaultRender","cascader","FORMAT_TYPE","date","month","week","quarter","year","datePicker","maker","reduce","initial","type","creatorFactory","dateRange","datetimeRange","m","showTime","picker","valueFormat","vNode","range","hidden","field","value","input","idate","indexOf","textarea","search","password","make","timePicker","tree","fieldNames","key","checkedKeys","rule","checkable","row","_","col","span","default","parsers","alias","tooltip","PRE","popover","button","icon","slider","rate","timeRangePicker","rangePicker","switch","inputNumber","treeSelect","inputPassword","formItem","form","autoComplete","transfer","array","object","tidy","is","String","[object Object]","show","isFalse","val","tidyRule","_rule","manager","validate","this","Promise","v","validateField","validateFields","clearValidateState","fItem","vm","refs","wrapRef","clearValidate","tidyOptions","forEach","opt","Object","tidyBool","def","info","placement","title","wrap","mergeProps","getDefaultOptions","hideRequiredMark","layout","labelAlign","labelCol","wrapperCol","validateOnRuleChange","gutter","submitBtn","innerText","undefined","click","resetBtn","adapterValidate","validator","resolve","reject","err","update","on","submit","e","preventDefault","style","beforeRender","ref","$handle","extend","className","preview","model","formData","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","item","hasFeedback","id","rules","injectValidate","mergeClass","label","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","isTip","titleSlot","getSlot","refRule","__$title","align","_ctx$refRule3","__$info","slot","_prop","vn","push","makeSubmitBtn","makeResetBtn","length","colon","api","t","marginLeft","fApi","resetFields","catch","tidyBtnProp","btn","Boolean","Undef","extendApi","h","formEl","$manager","wrapEl","getFieldCtx","callback","forms","all","filter","isScope","then","emit","emitEvent","sub","toArray","fields","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","Array","isArray","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","Function","invoke","onSubmit","args","request","config","action","fetch","auto","number","time","useAlias","useSlider","types","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","keys","maxLength","frameInput","frameFile","frameImage","useFrame","image","file","uploadFileOne","uploadImageOne","uploadType","uploadImage","uploadFile","useUpload","selectMultiple","mode","selectTags","selectCombobox","modelFields","required","load","inject","message","parseVal","getValue","clearProp","_rule$__fc__$refRule","empty","__fc__","match","getLocale","getProp","sync","watch","install","FormCreate","componentAlias","k","setModelField","component","register","parser","makers","window","antd","useApp","app","use","FormCreateFactory","ui","version","attrs","normal","formCreate"],"mappings":"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"}
1
+ {"version":3,"file":"form-create.esm.js","sources":["../src/components/icon/QuestionCircleOutlined.vue","../src/components/icon/QuestionCircleOutlined.vue?vue&type=template&id=72badc20&lang.js","../src/components/index.js","../src/parsers/checkbox.js","../src/parsers/radio.js","../src/parsers/select.js","../src/parsers/cascader.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/timePicker.js","../src/parsers/tree.js","../src/parsers/row.js","../src/parsers/timeRangePicker.js","../src/parsers/index.js","../src/parsers/rangePicker.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.js","../src/core/maker.js","../src/core/api.js","../src/core/modelFields.js","../src/core/provider.js","../src/core/index.js","../src/index.js"],"sourcesContent":["<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","import upload from '@form-create/component-antdv-upload/src/index'\nimport frame from '@form-create/component-antdv-frame/src/index'\nimport group from '@form-create/component-antdv-group/src/index'\nimport subForm from '@form-create/component-subform/src/index'\nimport QuestionCircleOutlined from './icon/QuestionCircleOutlined.vue'\n\nexport default [upload, frame, group, subForm, QuestionCircleOutlined]\n","import {hasProperty} from '@form-create/utils/lib/type';\r\n\r\nexport default {\r\n name: 'checkbox',\r\n modelField: 'value',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props;\r\n if (!hasProperty(props, 'options'))\r\n props.options = ctx.prop.options || [];\r\n }\r\n\r\n}\r\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'radio'\n};\n","import checkbox from './checkbox'\nimport { hasProperty } from '@form-create/utils/lib/type'\n\nexport default {\n ...checkbox,\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\n\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果正在加载,设置 disabled 和 loading\n if (isLoading) {\n props.disabled = true\n props.loading = true\n }\n },\n render(children, ctx) {\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\n if (isLoading && children.loading) {\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\n const newChildren = { ...children }\n newChildren.notFoundContent = children.loading\n return ctx.$render.defaultRender(ctx, newChildren)\n }\n\n // 调用默认渲染\n return ctx.$render.defaultRender(ctx, children)\n }\n}\n","import { hasProperty } from '@form-create/utils/lib/type'\r\n\r\nexport default {\r\n name: 'cascader',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props\r\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\r\n\r\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果正在加载,设置 disabled 和 loading\r\n if (isLoading) {\r\n props.disabled = true\r\n props.loading = true\r\n }\r\n },\r\n render(children, ctx) {\r\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\r\n if (isLoading && children.loading) {\r\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\r\n const newChildren = { ...children }\r\n newChildren.notFoundContent = children.loading\r\n return ctx.$render.defaultRender(ctx, newChildren)\r\n }\r\n\r\n // 调用默认渲染\r\n return ctx.$render.defaultRender(ctx, children)\r\n }\r\n}\r\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst FORMAT_TYPE = {\n date: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n week: 'YYYY-wo',\n quarter: 'YYYY-qQ',\n year: 'YYYY'\n}\n\nconst name = 'datePicker'\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'month', 'week'].reduce(\n (initial, type) => {\n initial[type] = creatorFactory(name, { type })\n return initial\n },\n {\n dateRange: creatorFactory(name, { type: 'range' }),\n datetimeRange: creatorFactory(name, (m) =>\n m.props({ type: 'range', showTime: true })\n )\n }\n )\n })(),\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props\n const type = props.type || props.picker\n if (!props.valueFormat) {\n props.valueFormat =\n (FORMAT_TYPE[type] || FORMAT_TYPE['date']) +\n (props.showTime && (!type || type === 'date') ? ' HH:mm:ss' : '')\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode[\n (ctx.prop.props.range === true ? 'range' : 'date') + 'Picker'\n ](ctx.prop, children)\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'hidden'\n\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return []\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'input'\nexport default {\n name,\n maker: (function () {\n return ['password', 'url', 'email', 'text', 'textarea', 'search'].reduce(\n (maker, type) => {\n maker[type] = creatorFactory(name, { type })\n return maker\n },\n {\n idate: creatorFactory(name, { type: 'date' })\n }\n )\n })(),\n modelField: 'value',\n render(children, ctx) {\n let type = ctx.prop.props.type\n if (['textarea', 'search', 'password'].indexOf(type) === -1) type = 'input'\n\n type =\n {\n textarea: 'aTextarea',\n search: 'aInputSearch',\n password: 'aInputPassword'\n }[type] || 'aInput'\n return ctx.$render.vNode.make(type, ctx.prop, children)\n }\n}\n","export default {\n name: 'timePicker',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode['time' +( ctx.prop.props.range === true ? 'Range' : '') + 'Picker'](ctx.prop, children);\n }\n\n}\n\n","export default {\n name: 'tree',\n modelField: 'checkedKeys',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.fieldNames)\n props.fieldNames = {\n key: 'id'\n };\n else if (!props.fieldNames.key) props.fieldNames.key = 'id';\n props.checkedKeys = ctx.rule.value;\n props.checkable = true;\n },\n\n}\n\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default: () => [\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","import timePicker from './timePicker';\n\nconst name = 'timeRangePicker';\n\nexport default {\n ...timePicker,\n name,\n render(children, ctx) {\n return ctx.$render.vNode['timeRangePicker'](ctx.prop, children);\n }\n}\n","import checkbox from './checkbox'\nimport radio from './radio'\nimport select from './select'\nimport cascader from './cascader'\nimport datePicker from './datePicker'\nimport hidden from './hidden'\nimport input from './input'\nimport timePicker from './timePicker'\nimport tree from './tree'\nimport row from './row'\nimport rangePicker from './rangePicker'\nimport timeRangePicker from './timeRangePicker'\n\nexport default [\n checkbox,\n datePicker,\n rangePicker,\n hidden,\n input,\n timePicker,\n timeRangePicker,\n tree,\n radio,\n select,\n cascader,\n row\n]\n","import datePicker from './datePicker';\n\nconst name = 'rangePicker';\n\nexport default {\n ...datePicker,\n name,\n maker: {},\n render(children, ctx) {\n return ctx.$render.vNode['rangePicker'](ctx.prop, children);\n }\n}\n","const PRE = 'a'\nexport default {\n tooltip: PRE + 'Tooltip',\n popover: PRE + 'Popover',\n button: PRE + 'Button',\n icon: PRE + 'Icon',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n timePicker: PRE + 'TimePicker',\n timeRangePicker: PRE + 'TimeRangePicker',\n datePicker: PRE + 'DatePicker',\n rangePicker: PRE + 'RangePicker',\n switch: PRE + 'Switch',\n select: PRE + 'Select',\n checkbox: PRE + 'CheckboxGroup',\n radio: PRE + 'RadioGroup',\n input: PRE + 'Input',\n inputNumber: PRE + 'InputNumber',\n treeSelect: PRE + 'TreeSelect',\n search: PRE + 'InputSearch',\n inputPassword: PRE + 'InputPassword',\n textarea: PRE + 'Textarea',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: PRE + 'Tree',\n autoComplete: PRE + 'AutoComplete',\n transfer: PRE + 'Transfer',\n group: 'fcGroup',\n array: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm'\n}\n","import getConfig from './config'\nimport mergeProps from '@form-create/utils/lib/mergeprops'\nimport is, { hasProperty } from '@form-create/utils/lib/type'\nimport extend from '@form-create/utils/lib/extend'\n\nfunction isTooltip(info) {\n return info.type === 'tooltip'\n}\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return\n if (is.String(props[name])) {\n props[name] = { [name]: props[name], show: true }\n }\n}\n\nfunction isFalse(val) {\n return val === false\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = { show: !!opt[name] }\n }\n}\n\nfunction tidyRule(rule) {\n const _rule = { ...rule }\n delete _rule.children\n return _rule\n}\n\nexport default {\n validate() {\n const form = this.form()\n if (form) {\n return form.validate()\n } else {\n return new Promise((v) => v())\n }\n },\n validateField(field) {\n const form = this.form()\n if (form) {\n return form.validateFields(field)\n } else {\n return new Promise((v) => v())\n }\n },\n clearValidateState(ctx) {\n const fItem = this.vm.refs[ctx.wrapRef]\n if (fItem) {\n fItem.clearValidate()\n }\n },\n tidyOptions(options) {\n ;['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(\n (name) => {\n tidyBool(options, name)\n }\n )\n return options\n },\n tidyRule({ prop }) {\n tidy(prop, 'title')\n tidy(prop, 'info')\n return prop\n },\n mergeProp(ctx) {\n const def = {\n info: {\n type: 'popover',\n placement: 'topLeft',\n icon: 'QuestionCircleOutlined'\n },\n title: {},\n col: { span: 24 },\n wrap: {}\n }\n ;['info', 'wrap', 'col', 'title'].forEach((name) => {\n ctx.prop[name] = mergeProps(\n [this.options[name] || {}, ctx.prop[name] || {}],\n def[name]\n )\n })\n\n // 为 upload 组件自动添加 onPreview,确保始终向父窗口发送预览通知\n if (ctx.rule.type === 'upload' && !ctx.prop.props.onPreview) {\n const sendPreviewMessage = function (file) {\n if (window.parent && window.parent !== window) {\n window.parent.postMessage(\n {\n type: 'upload-preview',\n file: {\n url: file.url,\n name: file.name,\n uid: file.uid,\n size: file.size,\n type: file.type\n },\n timestamp: Date.now()\n },\n '*'\n )\n }\n }\n ctx.prop.props.onPreview = function (file) {\n sendPreviewMessage(file)\n // 不执行默认预览,只发送消息\n }\n } else if (ctx.rule.type === 'upload' && ctx.prop.props.onPreview) {\n // 如果用户已经设置了 onPreview,包装它以确保先发送消息\n const originalOnPreview = ctx.prop.props.onPreview\n const sendPreviewMessage = function (file) {\n if (window.parent && window.parent !== window) {\n window.parent.postMessage(\n {\n type: 'upload-preview',\n file: {\n url: file.url,\n name: file.name,\n uid: file.uid,\n size: file.size,\n type: file.type\n },\n timestamp: Date.now()\n },\n '*'\n )\n }\n }\n ctx.prop.props.onPreview = function (file) {\n sendPreviewMessage(file)\n if (originalOnPreview && typeof originalOnPreview === 'function') {\n originalOnPreview.apply(this, arguments)\n }\n }\n }\n },\n getDefaultOptions() {\n return getConfig()\n },\n adapterValidate(validate, validator) {\n validate.validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n const callback = (err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n }\n return validator(value, callback)\n })\n }\n return validate\n },\n update() {\n const form = this.options.form\n this.rule = {\n props: { ...form },\n on: {\n submit: (e) => {\n e.preventDefault()\n }\n },\n style: form.style,\n type: 'form'\n }\n },\n beforeRender() {\n const { key, ref, $handle } = this\n const form = this.options.form\n extend(this.rule, {\n key,\n ref,\n class: [\n form.className,\n form.class,\n 'form-create',\n this.$handle.preview ? 'is-preview' : ''\n ]\n })\n extend(this.rule.props, {\n model: $handle.formData\n })\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn())\n }\n return this.$r(\n this.rule,\n isFalse(this.options.row.show)\n ? children.getSlots()\n : [this.makeRow(children)]\n )\n },\n makeWrap(ctx, children) {\n const rule = ctx.prop\n const uni = `${this.key}${ctx.key}`\n const col = rule.col\n const isTitle = this.isTitle(rule) && rule.wrap.title !== false\n const { layout, col: _col } = this.rule.props\n const cls = rule.wrap.class\n delete rule.wrap.class\n delete rule.wrap.title\n const item = isFalse(rule.wrap.show)\n ? children\n : this.$r(\n mergeProps([\n rule.wrap,\n {\n props: {\n ...tidyRule(rule.wrap || {}),\n hasFeedback: rule.hasFeedback || false,\n name: ctx.id,\n rules: ctx.injectValidate(),\n ...(layout !== 'horizontal'\n ? { labelCol: {}, wrapperCol: {} }\n : {})\n },\n class: this.$render.mergeClass(\n cls || rule.className,\n 'fc-form-item'\n ),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem'\n }\n ]),\n {\n default: () => children,\n ...(isTitle ? { label: () => this.makeInfo(rule, uni, ctx) } : {})\n }\n )\n return layout === 'inline' || isFalse(_col) || isFalse(col.show)\n ? item\n : this.makeCol(rule, uni, [item])\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false\n const title = rule.title\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = { ...rule.title }\n const infoProp = { ...rule.info }\n if (this.options.form.title === false) return false\n if ((!titleProp.title && !titleProp.native) || isFalse(titleProp.show))\n return\n const isTip = isTooltip(infoProp)\n const titleSlot = this.getSlot('title')\n const children = [\n titleSlot\n ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n })\n : ctx.refRule?.__$title?.value\n ]\n\n if (\n !isFalse(infoProp.show) &&\n (infoProp.info || infoProp.native) &&\n !isFalse(infoProp.icon)\n ) {\n const prop = {\n type: infoProp.type || 'popover',\n props: tidyRule(infoProp),\n key: `${uni}pop`\n }\n\n delete prop.props.icon\n delete prop.props.show\n delete prop.props.info\n delete prop.props.align\n delete prop.props.native\n\n const field = isTip ? 'title' : 'content'\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = ctx.refRule?.__$info?.value\n }\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](\n this.$r(mergeProps([infoProp, prop]), {\n [titleProp.slot || 'default']: () =>\n this.$r({\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon || '',\n props: {\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon\n },\n key: `${uni}i`\n })\n })\n )\n }\n\n const _prop = mergeProps([\n titleProp,\n {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span'\n }\n ])\n\n delete _prop.props.show\n delete _prop.props.title\n delete _prop.props.native\n\n return this.$r(_prop, children)\n },\n makeCol(rule, uni, children) {\n const col = rule.col\n return this.$r(\n {\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\n type: 'col',\n props: col || { span: 24 },\n key: `${uni}col`\n },\n children\n )\n },\n makeRow(children) {\n const row = this.options.row || {}\n return this.$r(\n {\n type: 'row',\n props: row,\n class: this.$render.mergeClass(row.class, 'fc-form-row'),\n key: `${this.key}row`\n },\n children\n )\n },\n makeFormBtn() {\n let vn = []\n if (!isFalse(this.options.submitBtn.show)) {\n vn.push(this.makeSubmitBtn())\n }\n if (!isFalse(this.options.resetBtn.show)) {\n vn.push(this.makeResetBtn())\n }\n if (!vn.length) {\n return\n }\n let { labelCol, wrapperCol, layout } = this.rule.props\n if (layout !== 'horizontal') {\n labelCol = wrapperCol = {}\n }\n const item = this.$r(\n {\n type: 'formItem',\n class: 'fc-form-item fc-form-footer',\n key: `${this.key}fb`,\n props: {\n labelCol,\n wrapperCol,\n label: ' ',\n colon: false\n }\n },\n vn\n )\n\n return layout === 'inline'\n ? item\n : this.$r(\n {\n type: 'col',\n class: 'fc-form-col',\n props: { span: 24 },\n key: `${this.key}fc`\n },\n [item]\n )\n },\n\n makeResetBtn() {\n const resetBtn = { ...this.options.resetBtn }\n const innerText =\n resetBtn.innerText || this.$handle.api.t('reset') || '重置'\n delete resetBtn.innerText\n delete resetBtn.click\n delete resetBtn.col\n delete resetBtn.show\n return this.$r(\n {\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: { width: resetBtn.width, marginLeft: '10px' },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields()\n }\n },\n key: `${this.key}b2`\n },\n [innerText]\n )\n },\n makeSubmitBtn() {\n const submitBtn = { ...this.options.submitBtn }\n const innerText =\n submitBtn.innerText || this.$handle.api.t('submit') || '提交'\n delete submitBtn.innerText\n delete submitBtn.click\n delete submitBtn.col\n delete submitBtn.show\n return this.$r(\n {\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: { width: submitBtn.width },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {})\n }\n },\n key: `${this.key}b1`\n },\n [innerText]\n )\n }\n}\n","const UNDEF = undefined\n\nexport default function getConfig() {\n return {\n form: {\n hideRequiredMark: false,\n layout: 'horizontal',\n labelAlign: 'right',\n labelCol: {\n span: 3\n },\n wrapperCol: {\n span: 21\n },\n validateOnRuleChange: true\n },\n row: {\n gutter: 0\n },\n submitBtn: {\n disabled: false,\n loading: false,\n type: 'primary',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n },\n resetBtn: {\n disabled: false,\n loading: false,\n type: 'default',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n }\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst maker = {}\n\nfunction useAlias(maker) {\n ;[\n 'treeSelect',\n 'upload',\n 'frame',\n 'autoComplete',\n 'cascader',\n 'datePicker',\n 'frame',\n 'inputNumber',\n 'inputPassword',\n 'radio',\n 'rate',\n 'switch',\n 'rate',\n 'slider',\n 'timePicker'\n ].reduce((maker, name) => {\n maker[name] = creatorFactory(name)\n return maker\n }, maker)\n maker.auto = maker.autoComplete\n maker.number = maker.inputNumber\n maker.time = maker.timePicker\n maker.password = maker.inputPassword\n}\n\nfunction useFrame(maker) {\n const types = {\n frameInputs: ['input', 0],\n frameFiles: ['file', 0],\n frameImages: ['image', 0],\n frameInputOne: ['input', 1],\n frameFileOne: ['file', 1],\n frameImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('frame', (m) =>\n m.props({ type: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.frameInput = maker.frameInputs\n maker.frameFile = maker.frameFiles\n maker.frameImage = maker.frameImages\n}\n\nfunction useSlider(maker) {\n maker['sliderRange'] = creatorFactory('slider', { range: true })\n}\n\nfunction useSelect(m) {\n const name = 'select'\n m.selectMultiple = creatorFactory(name, { mode: 'multiple' })\n m.selectTags = creatorFactory(name, { mode: 'tags' })\n m.selectCombobox = creatorFactory(name, { mode: 'combobox' })\n}\n\nfunction useUpload(maker) {\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('upload', (m) =>\n m.props({\n uploadType: types[key][0],\n maxLength: types[key][1]\n })\n )\n return maker\n }, maker)\n\n maker.uploadImage = maker.image\n maker.uploadFile = maker.file\n}\n\nuseAlias(maker)\nuseSlider(maker)\nuseFrame(maker)\nuseUpload(maker)\nuseSelect(maker)\n\nexport default maker\n","import extend from '@form-create/utils/lib/extend'\nimport is from '@form-create/utils/lib/type'\nimport { invoke } from '@longhongguo/form-create-core/src/frame/util'\nimport toArray from '@form-create/utils/lib/toarray'\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn)) btn = { show: btn }\n else if (!is.Undef(btn) && !is.Object(btn)) btn = { show: def }\n return btn\n}\n\nexport default function extendApi(api, h) {\n return {\n formEl() {\n return h.$manager.form()\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id)\n if (!ctx) return\n return h.vm.refs[ctx.wrapRef]\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children\n const all = [h.$manager.validate()]\n forms\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(true)\n callback && callback(true)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-fail', e, { api })\n h.emitEvent('validate-fail', e, { api })\n })\n })\n },\n validateField(field, callback) {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field)\n if (!ctx) return\n const sub = h.subForm[ctx.id]\n const all = [h.$manager.validateField(ctx.id)]\n toArray(sub)\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(null)\n callback && callback(null)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-field-fail', e, { field, api })\n })\n })\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach((field) => {\n if (clearSub) this.clearSubValidateState(field)\n h.getCtxs(field).forEach((ctx) => {\n h.$manager.clearValidateState(ctx)\n })\n })\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach((ctx) => {\n const subForm = h.subForm[ctx.id]\n if (!subForm) return\n if (Array.isArray(subForm)) {\n subForm.forEach((form) => {\n form.clearValidateState()\n })\n } else if (subForm) {\n subForm.clearValidateState()\n }\n })\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.submitBtnProps({ show: !!isShow })\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.resetBtnProps({ show: !!isShow })\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true)\n extend(btn, props)\n h.options.submitBtn = btn\n api.refreshOptions()\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false)\n extend(btn, props)\n h.options.resetBtn = btn\n api.refreshOptions()\n },\n submit(successFn, failFn) {\n return new Promise((resolve, reject) => {\n const promise =\n h.options.validateOnSubmit === false\n ? Promise.resolve()\n : api.validate()\n promise\n .then(() => {\n let formData = api.formData()\n h.beforeSubmit(formData)\n .then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api))\n is.Function(h.options.onSubmit) &&\n invoke(() => h.options.onSubmit(formData, api))\n h.vm.emit('submit', formData, api)\n resolve(formData)\n })\n .catch((e) => {})\n })\n .catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args))\n reject(...args)\n })\n })\n },\n /**\n * 封装请求工具,用于自定义校验规则等场景\n * 基于 frame/fetch.js 封装的 fetch 方法\n *\n * @param {string|object} config - 请求配置,可以是 URL 字符串或配置对象\n * @param {string} config.action - 请求地址(必需)\n * @param {string} config.method - 请求方法,默认 'get'\n * @param {object} config.data - 请求数据(POST/PUT等),用于表单或JSON格式\n * @param {object} config.query - 查询参数(GET请求)\n * @param {string} config.dataType - 数据类型:'json' 表示 JSON 格式(默认),其他值表示表单格式(FormData)\n * @param {object} config.headers - 请求头\n * @param {function|string} config.parse - 数据解析函数或路径字符串\n * @returns {Promise} 返回 Promise,resolve 时返回解析后的数据\n *\n * @example\n * // JSON 格式 POST 请求(默认)\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'json' // 或不设置,默认 JSON\n * });\n *\n * @example\n * // 表单格式 POST 请求\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'form' // 或任意非 'json' 的值,会使用 FormData\n * });\n *\n * @example\n * // 在自定义校验规则中使用\n * validator: async function(value, callback) {\n * try {\n * const result = await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: value }, // 使用 data,不是 params\n * dataType: 'form' // 表单形式\n * });\n * if (result.exists) {\n * callback('用户名已存在');\n * } else {\n * callback();\n * }\n * } catch (error) {\n * callback('校验失败,请稍后重试');\n * }\n * }\n */\n request(config) {\n // 如果传入的是字符串,转换为配置对象\n if (typeof config === 'string') {\n config = { action: config }\n }\n // 使用 api.fetch 方法,它内部使用 frame/fetch.js 封装的 asyncFetch\n return api.fetch(config)\n },\n // 节流,在指定时间间隔内,如果多次触发,只执行一次\n throttle(fn, delay) {\n let timer = null\n return function (...args) {\n if (timer) clearTimeout(timer)\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay)\n }\n },\n // 防抖,在指定时间间隔内,如果多次触发,只执行最后一次\n debounce(fn, delay) {\n let timer = null\n return function (...args) {\n if (timer) clearTimeout(timer)\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay)\n }\n }\n }\n}\n","export default {\n autoComplete: 'value',\n cascader: 'value',\n inputNumber: 'value',\n inputPassword: 'value',\n textarea: 'value',\n rate: 'value',\n slider: 'value',\n treeSelect: 'value',\n switch: 'checked',\n}\n","import is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v) {\n return new Promise((resolve, reject) => {\n is.empty(v) ? reject(validate.message) : resolve();\n })\n },\n ...val,\n };\n const title = rule.__fc__.refRule?.__$title?.value;\n if (!validate.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = validate.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\n\nexport default required\n","import components from '../components'\nimport parsers from '../parsers'\nimport alias from './alias'\nimport manager from './manager'\nimport FormCreateFactory from '@longhongguo/form-create-core/src/index'\nimport makers from './maker'\nimport '../style/index.css'\nimport extendApi from './api'\nimport modelFields from './modelFields'\nimport required from './provider'\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias)\n\n Object.keys(modelFields).forEach((k) => {\n FormCreate.setModelField(k, modelFields[k])\n })\n\n components.forEach((component) => {\n FormCreate.component(component.name, component)\n })\n\n FormCreate.register(required)\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser)\n })\n\n Object.keys(makers).forEach((name) => {\n FormCreate.maker[name] = makers[name]\n })\n\n if (typeof window !== 'undefined' && window.antd) {\n FormCreate.useApp((_, app) => {\n app.use(window.antd)\n })\n }\n}\n\nexport default function antdvFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info']\n }\n })\n}\n","import antdvFormCreate from './core/index';\n\nconst FormCreate = antdvFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["script","name","_hoisted_1","class","_openBlock","_createElementBlock","_cache","_createElementVNode","height","width","xmlns","viewBox","d","fill","components","upload","frame","group","subForm","QuestionCircleOutlined","checkbox","modelField","mergeProp","ctx","props","prop","hasProperty","options","radio","select","fetchData","effectData","loading","disabled","render","children","newChildren","notFoundContent","$render","defaultRender","cascader","FORMAT_TYPE","date","month","week","quarter","year","datePicker","maker","reduce","initial","type","creatorFactory","dateRange","datetimeRange","m","showTime","picker","valueFormat","vNode","range","hidden","field","value","input","idate","indexOf","textarea","search","password","make","timePicker","tree","fieldNames","key","checkedKeys","rule","checkable","row","_","col","span","default","parsers","alias","tooltip","PRE","popover","button","icon","slider","rate","timeRangePicker","rangePicker","switch","inputNumber","treeSelect","inputPassword","formItem","form","autoComplete","transfer","array","object","tidy","is","String","[object Object]","show","isFalse","val","tidyRule","_rule","manager","validate","this","Promise","v","validateField","validateFields","clearValidateState","fItem","vm","refs","wrapRef","clearValidate","tidyOptions","forEach","opt","Object","tidyBool","def","info","placement","title","wrap","mergeProps","onPreview","originalOnPreview","sendPreviewMessage","file","window","parent","postMessage","url","uid","size","timestamp","Date","now","apply","arguments","getDefaultOptions","hideRequiredMark","layout","labelAlign","labelCol","wrapperCol","validateOnRuleChange","gutter","submitBtn","innerText","undefined","click","resetBtn","adapterValidate","validator","resolve","reject","err","update","on","submit","e","preventDefault","style","beforeRender","ref","$handle","extend","className","preview","model","formData","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","item","hasFeedback","id","rules","injectValidate","mergeClass","label","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","isTip","titleSlot","getSlot","refRule","__$title","align","_ctx$refRule3","__$info","slot","_prop","vn","push","makeSubmitBtn","makeResetBtn","length","colon","api","t","marginLeft","fApi","resetFields","catch","tidyBtnProp","btn","Boolean","Undef","extendApi","h","formEl","$manager","wrapEl","getFieldCtx","callback","forms","all","filter","isScope","then","emit","emitEvent","sub","toArray","fields","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","Array","isArray","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","Function","invoke","onSubmit","args","request","config","action","fetch","throttle","fn","delay","timer","clearTimeout","setTimeout","debounce","auto","number","time","useAlias","useSlider","types","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","keys","maxLength","frameInput","frameFile","frameImage","useFrame","image","uploadFileOne","uploadImageOne","uploadType","uploadImage","uploadFile","useUpload","selectMultiple","mode","selectTags","selectCombobox","modelFields","required","load","inject","message","parseVal","getValue","clearProp","_rule$__fc__$refRule","empty","__fc__","match","getLocale","getProp","sync","watch","install","FormCreate","componentAlias","k","setModelField","component","register","parser","makers","antd","useApp","app","use","FormCreateFactory","ui","version","attrs","normal","formCreate"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * @longhongguo/form-create-ant-design-vue v3.2.39
2
+ * @longhongguo/form-create-ant-design-vue v3.2.40
3
3
  * (c) 2018-2025 xaboy
4
4
  * Github https://github.com/xaboy/form-create
5
5
  * Released under the MIT License.
6
6
  */
7
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@form-create/component-antdv-upload/src/index"),require("@form-create/component-antdv-frame/src/index"),require("@form-create/component-antdv-group/src/index"),require("@form-create/component-subform/src/index"),require("vue"),require("@form-create/utils/lib/type"),require("@longhongguo/form-create-core/src/index"),require("@form-create/utils/lib/mergeprops"),require("@form-create/utils/lib/extend"),require("@longhongguo/form-create-core/src/frame/util"),require("@form-create/utils/lib/toarray")):"function"==typeof define&&define.amd?define(["exports","@form-create/component-antdv-upload/src/index","@form-create/component-antdv-frame/src/index","@form-create/component-antdv-group/src/index","@form-create/component-subform/src/index","vue","@form-create/utils/lib/type","@longhongguo/form-create-core/src/index","@form-create/utils/lib/mergeprops","@form-create/utils/lib/extend","@longhongguo/form-create-core/src/frame/util","@form-create/utils/lib/toarray"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).formCreate={},e.upload,e.frame,e.group,e.subForm,e.Vue,e.is,e.FormCreateFactory,e.mergeProps,e.extend,e.util,e.toArray)}(this,(function(e,t,r,o,a,i,n,s,l,c,p,d){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(t),f=u(r),h=u(o),g=u(a),v=u(n),y=u(s),w=u(l),b=u(c),k=u(d),P={name:"QuestionCircleOutlined"};const F={class:"anticon"};P.render=function(e,t,r,o,a,n){return i.openBlock(),i.createElementBlock("span",F,[...t[0]||(t[0]=[i.createElementVNode("svg",{height:"1em",width:"1em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[i.createElementVNode("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z",fill:"currentColor"}),i.createElementVNode("path",{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z",fill:"currentColor"})],-1)])])};var x=[m.default,f.default,h.default,g.default,P],$={name:"checkbox",modelField:"value",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},C={...$,name:"radio"},B={...$,name:"select",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}},S={name:"cascader",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}};const R={date:"YYYY-MM-DD",month:"YYYY-MM",week:"YYYY-wo",quarter:"YYYY-qQ",year:"YYYY"},I="datePicker";var O={name:I,maker:["date","month","week"].reduce((e,t)=>(e[t]=s.creatorFactory(I,{type:t}),e),{dateRange:s.creatorFactory(I,{type:"range"}),datetimeRange:s.creatorFactory(I,e=>e.props({type:"range",showTime:!0}))}),modelField:"value",mergeProp(e){const t=e.prop.props,r=t.type||t.picker;t.valueFormat||(t.valueFormat=(R[r]||R.date)+(!t.showTime||r&&"date"!==r?"":" HH:mm:ss"))},render:(e,t)=>t.$render.vNode[(!0===t.prop.props.range?"range":"date")+"Picker"](t.prop,e)};var q={name:"hidden",maker:{hidden:(e,t)=>s.creatorFactory("hidden")("",e,t)},render:()=>[]};var N={name:"input",maker:["password","url","email","text","textarea","search"].reduce((e,t)=>(e[t]=s.creatorFactory("input",{type:t}),e),{idate:s.creatorFactory("input",{type:"date"})}),modelField:"value",render(e,t){let r=t.prop.props.type;return-1===["textarea","search","password"].indexOf(r)&&(r="input"),r={textarea:"aTextarea",search:"aInputSearch",password:"aInputPassword"}[r]||"aInput",t.$render.vNode.make(r,t.prop,e)}},T={name:"timePicker",modelField:"value",mergeProp(e){const t=e.prop.props;t.valueFormat||(t.valueFormat="HH:mm:ss")},render:(e,t)=>t.$render.vNode["time"+(!0===t.prop.props.range?"Range":"")+"Picker"](t.prop,e)},E={name:"tree",modelField:"checkedKeys",mergeProp(e){const t=e.prop.props;t.fieldNames?t.fieldNames.key||(t.fieldNames.key="id"):t.fieldNames={key:"id"},t.checkedKeys=e.rule.value,t.checkable=!0}},Y={name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})};var V=[$,O,{...O,name:"rangePicker",maker:{},render:(e,t)=>t.$render.vNode.rangePicker(t.prop,e)},q,N,T,{...T,name:"timeRangePicker",render:(e,t)=>t.$render.vNode.timeRangePicker(t.prop,e)},E,C,B,S,Y];var _={tooltip:"aTooltip",popover:"aPopover",button:"aButton",icon:"aIcon",slider:"aSlider",rate:"aRate",upload:"fcUpload",cascader:"aCascader",timePicker:"aTimePicker",timeRangePicker:"aTimeRangePicker",datePicker:"aDatePicker",rangePicker:"aRangePicker",switch:"aSwitch",select:"aSelect",checkbox:"aCheckboxGroup",radio:"aRadioGroup",input:"aInput",inputNumber:"aInputNumber",treeSelect:"aTreeSelect",search:"aInputSearch",inputPassword:"aInputPassword",textarea:"aTextarea",formItem:"aFormItem",form:"aForm",frame:"fcFrame",col:"aCol",row:"aRow",tree:"aTree",autoComplete:"aAutoComplete",transfer:"aTransfer",group:"fcGroup",array:"fcGroup",subForm:"fcSubForm",object:"fcSubForm"};function j(e,t){n.hasProperty(e,t)&&v.default.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function D(e){return!1===e}function M(e){const t={...e};return delete t.children,t}var A={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){const t=this.form();return t?t.validateFields(e):new Promise(e=>e())},clearValidateState(e){const t=this.vm.refs[e.wrapRef];t&&t.clearValidate()},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){n.hasProperty(e,t)&&!v.default.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(j(e,"title"),j(e,"info"),e),mergeProp(e){const t={info:{type:"popover",placement:"topLeft",icon:"QuestionCircleOutlined"},title:{},col:{span:24},wrap:{}};["info","wrap","col","title"].forEach(r=>{e.prop[r]=w.default([this.options[r]||{},e.prop[r]||{}],t[r])})},getDefaultOptions:()=>({form:{hideRequiredMark:!1,layout:"horizontal",labelAlign:"right",labelCol:{span:3},wrapperCol:{span:21},validateOnRuleChange:!0},row:{gutter:0},submitBtn:{disabled:!1,loading:!1,type:"primary",innerText:"",show:!1,col:void 0,click:void 0},resetBtn:{disabled:!1,loading:!1,type:"default",innerText:"",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>(e.validator=(e,r)=>new Promise((e,o)=>t(r,t=>{t?o(t):e()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t,$handle:r}=this,o=this.options.form;b.default(this.rule,{key:e,ref:t,class:[o.className,o.class,"form-create",this.$handle.preview?"is-preview":""]}),b.default(this.rule.props,{model:r.formData})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,D(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,o=`${this.key}${e.key}`,a=r.col,i=this.isTitle(r)&&!1!==r.wrap.title,{layout:n,col:s}=this.rule.props,l=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const c=D(r.wrap.show)?t:this.$r(w.default([r.wrap,{props:{...M(r.wrap||{}),hasFeedback:r.hasFeedback||!1,name:e.id,rules:e.injectValidate(),..."horizontal"!==n?{labelCol:{},wrapperCol:{}}:{}},class:this.$render.mergeClass(l||r.className,"fc-form-item"),key:o+"fi",ref:e.wrapRef,type:"formItem"}]),{default:()=>t,...i?{label:()=>this.makeInfo(r,o,e)}:{}});return"inline"===n||D(s)||D(a.show)?c:this.makeCol(r,o,[c])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||D(t.show))},makeInfo(e,t,r){var o,a;const i={...e.title},s={...e.info};if(!1===this.options.form.title)return!1;if(!i.title&&!i.native||D(i.show))return;const l="tooltip"===s.type;const c=this.getSlot("title"),p=[c?c({title:null===(o=r.refRule)||void 0===o||null===(o=o.__$title)||void 0===o?void 0:o.value,rule:r.rule,options:this.options}):null===(a=r.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value];if(!D(s.show)&&(s.info||s.native)&&!D(s.icon)){const e={type:s.type||"popover",props:M(s),key:t+"pop"};delete e.props.icon,delete e.props.show,delete e.props.info,delete e.props.align,delete e.props.native;const o=l?"title":"content";var d;if(s.info&&!n.hasProperty(e.props,o))e.props[o]=null===(d=r.refRule)||void 0===d||null===(d=d.__$info)||void 0===d?void 0:d.value;p["left"!==s.align?"unshift":"push"](this.$r(w.default([s,e]),{[i.slot||"default"]:()=>this.$r({type:!0===s.icon?"QuestionCircleOutlined":s.icon||"",props:{type:!0===s.icon?"QuestionCircleOutlined":s.icon},key:t+"i"})}))}const u=w.default([i,{props:M(i),key:t+"tit",class:"fc-form-title",type:i.type||"span"}]);return delete u.props.show,delete u.props.title,delete u.props.native,this.$r(u,p)},makeCol(e,t,r){const o=e.col;return this.$r({class:this.$render.mergeClass(o.class,"fc-form-col"),type:"col",props:o||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(D(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),D(this.options.resetBtn.show)||e.push(this.makeResetBtn()),!e.length)return;let{labelCol:t,wrapperCol:r,layout:o}=this.rule.props;"horizontal"!==o&&(t=r={});const a=this.$r({type:"formItem",class:"fc-form-item fc-form-footer",key:this.key+"fb",props:{labelCol:t,wrapperCol:r,label:" ",colon:!1}},e);return"inline"===o?a:this.$r({type:"col",class:"fc-form-col",props:{span:24},key:this.key+"fc"},[a])},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width,marginLeft:"10px"},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};const z={};var L;function Q(e,t){return v.default.Boolean(e)?e={show:e}:v.default.Undef(e)||v.default.Object(e)||(e={show:t}),e}function G(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((o,a)=>{const i=e.children,n=[t.$manager.validate()];i.filter(e=>!e.isScope).forEach(e=>{n.push(e.validate())}),Promise.all(n).then(()=>{o(!0),r&&r(!0)}).catch(o=>{a(o),r&&r(o),t.vm.emit("validate-fail",o,{api:e}),t.emitEvent("validate-fail",o,{api:e})})}),validateField:(r,o)=>new Promise((a,i)=>{const n=t.getFieldCtx(r);if(!n)return;const s=t.subForm[n.id],l=[t.$manager.validateField(n.id)];k.default(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{a(null),o&&o(null)}).catch(a=>{i(a),o&&o(a),t.vm.emit("validate-field-fail",a,{field:r,api:e})})}),clearValidateState(r,o=!0){e.helper.tidyFields(r).forEach(e=>{o&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let o=Q(t.options.submitBtn,!0);b.default(o,r),t.options.submitBtn=o,e.refreshOptions()},resetBtnProps:(r={})=>{let o=Q(t.options.resetBtn,!1);b.default(o,r),t.options.resetBtn=o,e.refreshOptions()},submit:(r,o)=>new Promise((a,i)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let o=e.formData();t.beforeSubmit(o).then(()=>{v.default.Function(r)&&p.invoke(()=>r(o,e)),v.default.Function(t.options.onSubmit)&&p.invoke(()=>t.options.onSubmit(o,e)),t.vm.emit("submit",o,e),a(o)}).catch(e=>{})}).catch((...t)=>{v.default.Function(o)&&p.invoke(()=>o(e,...t)),i(...t)})}),request:t=>("string"==typeof t&&(t={action:t}),e.fetch(t))}}!function(e){["treeSelect","upload","frame","autoComplete","cascader","datePicker","frame","inputNumber","inputPassword","radio","rate","switch","rate","slider","timePicker"].reduce((e,t)=>(e[t]=s.creatorFactory(t),e),e),e.auto=e.autoComplete,e.number=e.inputNumber,e.time=e.timePicker,e.password=e.inputPassword}(z),function(e){e.sliderRange=s.creatorFactory("slider",{range:!0})}(z),function(e){const t={frameInputs:["input",0],frameFiles:["file",0],frameImages:["image",0],frameInputOne:["input",1],frameFileOne:["file",1],frameImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=s.creatorFactory("frame",e=>e.props({type:t[r][0],maxLength:t[r][1]})),e),e),e.frameInput=e.frameInputs,e.frameFile=e.frameFiles,e.frameImage=e.frameImages}(z),function(e){const t={image:["image",0],file:["file",0],uploadFileOne:["file",1],uploadImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=s.creatorFactory("upload",e=>e.props({uploadType:t[r][0],maxLength:t[r][1]})),e),e),e.uploadImage=e.image,e.uploadFile=e.file}(z),(L=z).selectMultiple=s.creatorFactory("select",{mode:"multiple"}),L.selectTags=s.creatorFactory("select",{mode:"tags"}),L.selectCombobox=s.creatorFactory("select",{mode:"combobox"});var H={autoComplete:"value",cascader:"value",inputNumber:"value",inputPassword:"value",textarea:"value",rate:"value",slider:"value",treeSelect:"value",switch:"checked"};const U={name:"required",load(e,t,r){const o=function(e){return v.default.Boolean(e)?{required:e}:v.default.String(e)?{message:e}:v.default.Undef(e)?{required:!1}:v.default.Function(e)?{validator:e}:v.default.Object(e)?e:{}}(e.getValue());if(!1===o.required)e.clearProp(),r.clearValidateState([t.field]);else{var a;const i={required:!0,validator:(e,t)=>new Promise((e,r)=>{v.default.empty(t)?r(i.message):e()}),...o},n=null===(a=t.__fc__.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value;if(i.message){const e=i.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(i.message=r.t(e[1],{title:n}))}else i.message=r.t("required",{title:n})||n+("en"===r.getLocale()?" is required":"不能为空");e.getProp().validate=[i]}r.sync(t)},watch(...e){U.load(...e)}};function K(e){e.componentAlias(_),Object.keys(H).forEach(t=>{e.setModelField(t,H[t])}),x.forEach(t=>{e.component(t.name,t)}),e.register(U),V.forEach(t=>{e.parser(t)}),Object.keys(z).forEach(t=>{e.maker[t]=z[t]}),"undefined"!=typeof window&&window.antd&&e.useApp((e,t)=>{t.use(window.antd)})}const W=y.default({ui:'"ant-design-vue"',version:'"3.2.39"',manager:A,install:K,extendApi:G,attrs:{normal:["col","wrap"],array:["className"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreate=W);const J=W.maker;e.default=W,e.maker=J,Object.defineProperty(e,"__esModule",{value:!0})}));
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@form-create/component-antdv-upload/src/index"),require("@form-create/component-antdv-frame/src/index"),require("@form-create/component-antdv-group/src/index"),require("@form-create/component-subform/src/index"),require("vue"),require("@form-create/utils/lib/type"),require("@longhongguo/form-create-core/src/index"),require("@form-create/utils/lib/mergeprops"),require("@form-create/utils/lib/extend"),require("@longhongguo/form-create-core/src/frame/util"),require("@form-create/utils/lib/toarray")):"function"==typeof define&&define.amd?define(["exports","@form-create/component-antdv-upload/src/index","@form-create/component-antdv-frame/src/index","@form-create/component-antdv-group/src/index","@form-create/component-subform/src/index","vue","@form-create/utils/lib/type","@longhongguo/form-create-core/src/index","@form-create/utils/lib/mergeprops","@form-create/utils/lib/extend","@longhongguo/form-create-core/src/frame/util","@form-create/utils/lib/toarray"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).formCreate={},e.upload,e.frame,e.group,e.subForm,e.Vue,e.is,e.FormCreateFactory,e.mergeProps,e.extend,e.util,e.toArray)}(this,(function(e,t,r,o,a,i,n,s,l,p,c,d){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(t),f=u(r),h=u(o),w=u(a),v=u(n),g=u(s),y=u(l),b=u(p),k=u(d),P={name:"QuestionCircleOutlined"};const F={class:"anticon"};P.render=function(e,t,r,o,a,n){return i.openBlock(),i.createElementBlock("span",F,[...t[0]||(t[0]=[i.createElementVNode("svg",{height:"1em",width:"1em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[i.createElementVNode("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z",fill:"currentColor"}),i.createElementVNode("path",{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z",fill:"currentColor"})],-1)])])};var x=[m.default,f.default,h.default,w.default,P],$={name:"checkbox",modelField:"value",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},C={...$,name:"radio"},B={...$,name:"select",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}},S={name:"cascader",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[]);const r=e.effectData("fetch");r&&!0===r.loading&&(t.disabled=!0,t.loading=!0)},render(e,t){const r=t.effectData("fetch");if(r&&!0===r.loading&&e.loading){const r={...e};return r.notFoundContent=e.loading,t.$render.defaultRender(t,r)}return t.$render.defaultRender(t,e)}};const R={date:"YYYY-MM-DD",month:"YYYY-MM",week:"YYYY-wo",quarter:"YYYY-qQ",year:"YYYY"},T="datePicker";var I={name:T,maker:["date","month","week"].reduce((e,t)=>(e[t]=s.creatorFactory(T,{type:t}),e),{dateRange:s.creatorFactory(T,{type:"range"}),datetimeRange:s.creatorFactory(T,e=>e.props({type:"range",showTime:!0}))}),modelField:"value",mergeProp(e){const t=e.prop.props,r=t.type||t.picker;t.valueFormat||(t.valueFormat=(R[r]||R.date)+(!t.showTime||r&&"date"!==r?"":" HH:mm:ss"))},render:(e,t)=>t.$render.vNode[(!0===t.prop.props.range?"range":"date")+"Picker"](t.prop,e)};var O={name:"hidden",maker:{hidden:(e,t)=>s.creatorFactory("hidden")("",e,t)},render:()=>[]};var q={name:"input",maker:["password","url","email","text","textarea","search"].reduce((e,t)=>(e[t]=s.creatorFactory("input",{type:t}),e),{idate:s.creatorFactory("input",{type:"date"})}),modelField:"value",render(e,t){let r=t.prop.props.type;return-1===["textarea","search","password"].indexOf(r)&&(r="input"),r={textarea:"aTextarea",search:"aInputSearch",password:"aInputPassword"}[r]||"aInput",t.$render.vNode.make(r,t.prop,e)}},N={name:"timePicker",modelField:"value",mergeProp(e){const t=e.prop.props;t.valueFormat||(t.valueFormat="HH:mm:ss")},render:(e,t)=>t.$render.vNode["time"+(!0===t.prop.props.range?"Range":"")+"Picker"](t.prop,e)},E={name:"tree",modelField:"checkedKeys",mergeProp(e){const t=e.prop.props;t.fieldNames?t.fieldNames.key||(t.fieldNames.key="id"):t.fieldNames={key:"id"},t.checkedKeys=e.rule.value,t.checkable=!0}},Y={name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})};var V=[$,I,{...I,name:"rangePicker",maker:{},render:(e,t)=>t.$render.vNode.rangePicker(t.prop,e)},O,q,N,{...N,name:"timeRangePicker",render:(e,t)=>t.$render.vNode.timeRangePicker(t.prop,e)},E,C,B,S,Y];var _={tooltip:"aTooltip",popover:"aPopover",button:"aButton",icon:"aIcon",slider:"aSlider",rate:"aRate",upload:"fcUpload",cascader:"aCascader",timePicker:"aTimePicker",timeRangePicker:"aTimeRangePicker",datePicker:"aDatePicker",rangePicker:"aRangePicker",switch:"aSwitch",select:"aSelect",checkbox:"aCheckboxGroup",radio:"aRadioGroup",input:"aInput",inputNumber:"aInputNumber",treeSelect:"aTreeSelect",search:"aInputSearch",inputPassword:"aInputPassword",textarea:"aTextarea",formItem:"aFormItem",form:"aForm",frame:"fcFrame",col:"aCol",row:"aRow",tree:"aTree",autoComplete:"aAutoComplete",transfer:"aTransfer",group:"fcGroup",array:"fcGroup",subForm:"fcSubForm",object:"fcSubForm"};function D(e,t){n.hasProperty(e,t)&&v.default.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function M(e){return!1===e}function j(e){const t={...e};return delete t.children,t}var z={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){const t=this.form();return t?t.validateFields(e):new Promise(e=>e())},clearValidateState(e){const t=this.vm.refs[e.wrapRef];t&&t.clearValidate()},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){n.hasProperty(e,t)&&!v.default.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(D(e,"title"),D(e,"info"),e),mergeProp(e){const t={info:{type:"popover",placement:"topLeft",icon:"QuestionCircleOutlined"},title:{},col:{span:24},wrap:{}};if(["info","wrap","col","title"].forEach(r=>{e.prop[r]=y.default([this.options[r]||{},e.prop[r]||{}],t[r])}),"upload"!==e.rule.type||e.prop.props.onPreview){if("upload"===e.rule.type&&e.prop.props.onPreview){const t=e.prop.props.onPreview,r=function(e){window.parent&&window.parent!==window&&window.parent.postMessage({type:"upload-preview",file:{url:e.url,name:e.name,uid:e.uid,size:e.size,type:e.type},timestamp:Date.now()},"*")};e.prop.props.onPreview=function(e){r(e),t&&"function"==typeof t&&t.apply(this,arguments)}}}else{const t=function(e){window.parent&&window.parent!==window&&window.parent.postMessage({type:"upload-preview",file:{url:e.url,name:e.name,uid:e.uid,size:e.size,type:e.type},timestamp:Date.now()},"*")};e.prop.props.onPreview=function(e){t(e)}}},getDefaultOptions:()=>({form:{hideRequiredMark:!1,layout:"horizontal",labelAlign:"right",labelCol:{span:3},wrapperCol:{span:21},validateOnRuleChange:!0},row:{gutter:0},submitBtn:{disabled:!1,loading:!1,type:"primary",innerText:"",show:!1,col:void 0,click:void 0},resetBtn:{disabled:!1,loading:!1,type:"default",innerText:"",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>(e.validator=(e,r)=>new Promise((e,o)=>t(r,t=>{t?o(t):e()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t,$handle:r}=this,o=this.options.form;b.default(this.rule,{key:e,ref:t,class:[o.className,o.class,"form-create",this.$handle.preview?"is-preview":""]}),b.default(this.rule.props,{model:r.formData})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,M(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,o=`${this.key}${e.key}`,a=r.col,i=this.isTitle(r)&&!1!==r.wrap.title,{layout:n,col:s}=this.rule.props,l=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const p=M(r.wrap.show)?t:this.$r(y.default([r.wrap,{props:{...j(r.wrap||{}),hasFeedback:r.hasFeedback||!1,name:e.id,rules:e.injectValidate(),..."horizontal"!==n?{labelCol:{},wrapperCol:{}}:{}},class:this.$render.mergeClass(l||r.className,"fc-form-item"),key:o+"fi",ref:e.wrapRef,type:"formItem"}]),{default:()=>t,...i?{label:()=>this.makeInfo(r,o,e)}:{}});return"inline"===n||M(s)||M(a.show)?p:this.makeCol(r,o,[p])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||M(t.show))},makeInfo(e,t,r){var o,a;const i={...e.title},s={...e.info};if(!1===this.options.form.title)return!1;if(!i.title&&!i.native||M(i.show))return;const l="tooltip"===s.type;const p=this.getSlot("title"),c=[p?p({title:null===(o=r.refRule)||void 0===o||null===(o=o.__$title)||void 0===o?void 0:o.value,rule:r.rule,options:this.options}):null===(a=r.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value];if(!M(s.show)&&(s.info||s.native)&&!M(s.icon)){const e={type:s.type||"popover",props:j(s),key:t+"pop"};delete e.props.icon,delete e.props.show,delete e.props.info,delete e.props.align,delete e.props.native;const o=l?"title":"content";var d;if(s.info&&!n.hasProperty(e.props,o))e.props[o]=null===(d=r.refRule)||void 0===d||null===(d=d.__$info)||void 0===d?void 0:d.value;c["left"!==s.align?"unshift":"push"](this.$r(y.default([s,e]),{[i.slot||"default"]:()=>this.$r({type:!0===s.icon?"QuestionCircleOutlined":s.icon||"",props:{type:!0===s.icon?"QuestionCircleOutlined":s.icon},key:t+"i"})}))}const u=y.default([i,{props:j(i),key:t+"tit",class:"fc-form-title",type:i.type||"span"}]);return delete u.props.show,delete u.props.title,delete u.props.native,this.$r(u,c)},makeCol(e,t,r){const o=e.col;return this.$r({class:this.$render.mergeClass(o.class,"fc-form-col"),type:"col",props:o||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(M(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),M(this.options.resetBtn.show)||e.push(this.makeResetBtn()),!e.length)return;let{labelCol:t,wrapperCol:r,layout:o}=this.rule.props;"horizontal"!==o&&(t=r={});const a=this.$r({type:"formItem",class:"fc-form-item fc-form-footer",key:this.key+"fb",props:{labelCol:t,wrapperCol:r,label:" ",colon:!1}},e);return"inline"===o?a:this.$r({type:"col",class:"fc-form-col",props:{span:24},key:this.key+"fc"},[a])},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width,marginLeft:"10px"},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};const A={};var L;function Q(e,t){return v.default.Boolean(e)?e={show:e}:v.default.Undef(e)||v.default.Object(e)||(e={show:t}),e}function G(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((o,a)=>{const i=e.children,n=[t.$manager.validate()];i.filter(e=>!e.isScope).forEach(e=>{n.push(e.validate())}),Promise.all(n).then(()=>{o(!0),r&&r(!0)}).catch(o=>{a(o),r&&r(o),t.vm.emit("validate-fail",o,{api:e}),t.emitEvent("validate-fail",o,{api:e})})}),validateField:(r,o)=>new Promise((a,i)=>{const n=t.getFieldCtx(r);if(!n)return;const s=t.subForm[n.id],l=[t.$manager.validateField(n.id)];k.default(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{a(null),o&&o(null)}).catch(a=>{i(a),o&&o(a),t.vm.emit("validate-field-fail",a,{field:r,api:e})})}),clearValidateState(r,o=!0){e.helper.tidyFields(r).forEach(e=>{o&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let o=Q(t.options.submitBtn,!0);b.default(o,r),t.options.submitBtn=o,e.refreshOptions()},resetBtnProps:(r={})=>{let o=Q(t.options.resetBtn,!1);b.default(o,r),t.options.resetBtn=o,e.refreshOptions()},submit:(r,o)=>new Promise((a,i)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let o=e.formData();t.beforeSubmit(o).then(()=>{v.default.Function(r)&&c.invoke(()=>r(o,e)),v.default.Function(t.options.onSubmit)&&c.invoke(()=>t.options.onSubmit(o,e)),t.vm.emit("submit",o,e),a(o)}).catch(e=>{})}).catch((...t)=>{v.default.Function(o)&&c.invoke(()=>o(e,...t)),i(...t)})}),request:t=>("string"==typeof t&&(t={action:t}),e.fetch(t)),throttle(e,t){let r=null;return function(...o){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,o)},t)}},debounce(e,t){let r=null;return function(...o){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,o)},t)}}}}!function(e){["treeSelect","upload","frame","autoComplete","cascader","datePicker","frame","inputNumber","inputPassword","radio","rate","switch","rate","slider","timePicker"].reduce((e,t)=>(e[t]=s.creatorFactory(t),e),e),e.auto=e.autoComplete,e.number=e.inputNumber,e.time=e.timePicker,e.password=e.inputPassword}(A),function(e){e.sliderRange=s.creatorFactory("slider",{range:!0})}(A),function(e){const t={frameInputs:["input",0],frameFiles:["file",0],frameImages:["image",0],frameInputOne:["input",1],frameFileOne:["file",1],frameImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=s.creatorFactory("frame",e=>e.props({type:t[r][0],maxLength:t[r][1]})),e),e),e.frameInput=e.frameInputs,e.frameFile=e.frameFiles,e.frameImage=e.frameImages}(A),function(e){const t={image:["image",0],file:["file",0],uploadFileOne:["file",1],uploadImageOne:["image",1]};Object.keys(t).reduce((e,r)=>(e[r]=s.creatorFactory("upload",e=>e.props({uploadType:t[r][0],maxLength:t[r][1]})),e),e),e.uploadImage=e.image,e.uploadFile=e.file}(A),(L=A).selectMultiple=s.creatorFactory("select",{mode:"multiple"}),L.selectTags=s.creatorFactory("select",{mode:"tags"}),L.selectCombobox=s.creatorFactory("select",{mode:"combobox"});var H={autoComplete:"value",cascader:"value",inputNumber:"value",inputPassword:"value",textarea:"value",rate:"value",slider:"value",treeSelect:"value",switch:"checked"};const U={name:"required",load(e,t,r){const o=function(e){return v.default.Boolean(e)?{required:e}:v.default.String(e)?{message:e}:v.default.Undef(e)?{required:!1}:v.default.Function(e)?{validator:e}:v.default.Object(e)?e:{}}(e.getValue());if(!1===o.required)e.clearProp(),r.clearValidateState([t.field]);else{var a;const i={required:!0,validator:(e,t)=>new Promise((e,r)=>{v.default.empty(t)?r(i.message):e()}),...o},n=null===(a=t.__fc__.refRule)||void 0===a||null===(a=a.__$title)||void 0===a?void 0:a.value;if(i.message){const e=i.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(i.message=r.t(e[1],{title:n}))}else i.message=r.t("required",{title:n})||n+("en"===r.getLocale()?" is required":"不能为空");e.getProp().validate=[i]}r.sync(t)},watch(...e){U.load(...e)}};function K(e){e.componentAlias(_),Object.keys(H).forEach(t=>{e.setModelField(t,H[t])}),x.forEach(t=>{e.component(t.name,t)}),e.register(U),V.forEach(t=>{e.parser(t)}),Object.keys(A).forEach(t=>{e.maker[t]=A[t]}),"undefined"!=typeof window&&window.antd&&e.useApp((e,t)=>{t.use(window.antd)})}const W=g.default({ui:'"ant-design-vue"',version:'"3.2.40"',manager:z,install:K,extendApi:G,attrs:{normal:["col","wrap"],array:["className"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreate=W);const J=W.maker;e.default=W,e.maker=J,Object.defineProperty(e,"__esModule",{value:!0})}));
8
8
  //# sourceMappingURL=form-create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-create.js","sources":["../src/components/icon/QuestionCircleOutlined.vue","../src/components/icon/QuestionCircleOutlined.vue?vue&type=template&id=72badc20&lang.js","../src/components/index.js","../src/parsers/checkbox.js","../src/parsers/radio.js","../src/parsers/select.js","../src/parsers/cascader.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/timePicker.js","../src/parsers/tree.js","../src/parsers/row.js","../src/parsers/timeRangePicker.js","../src/parsers/index.js","../src/parsers/rangePicker.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.js","../src/core/maker.js","../src/core/api.js","../src/core/modelFields.js","../src/core/provider.js","../src/core/index.js","../src/index.js"],"sourcesContent":["<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","import upload from '@form-create/component-antdv-upload/src/index'\nimport frame from '@form-create/component-antdv-frame/src/index'\nimport group from '@form-create/component-antdv-group/src/index'\nimport subForm from '@form-create/component-subform/src/index'\nimport QuestionCircleOutlined from './icon/QuestionCircleOutlined.vue'\n\nexport default [upload, frame, group, subForm, QuestionCircleOutlined]\n","import {hasProperty} from '@form-create/utils/lib/type';\n\nexport default {\n name: 'checkbox',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n\n}\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'radio'\n};\n","import checkbox from './checkbox'\nimport { hasProperty } from '@form-create/utils/lib/type'\n\nexport default {\n ...checkbox,\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\n\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果正在加载,设置 disabled 和 loading\n if (isLoading) {\n props.disabled = true\n props.loading = true\n }\n },\n render(children, ctx) {\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\n if (isLoading && children.loading) {\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\n const newChildren = { ...children }\n newChildren.notFoundContent = children.loading\n return ctx.$render.defaultRender(ctx, newChildren)\n }\n\n // 调用默认渲染\n return ctx.$render.defaultRender(ctx, children)\n }\n}\n","import { hasProperty } from '@form-create/utils/lib/type'\r\n\r\nexport default {\r\n name: 'cascader',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props\r\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\r\n\r\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果正在加载,设置 disabled 和 loading\r\n if (isLoading) {\r\n props.disabled = true\r\n props.loading = true\r\n }\r\n },\r\n render(children, ctx) {\r\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\r\n if (isLoading && children.loading) {\r\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\r\n const newChildren = { ...children }\r\n newChildren.notFoundContent = children.loading\r\n return ctx.$render.defaultRender(ctx, newChildren)\r\n }\r\n\r\n // 调用默认渲染\r\n return ctx.$render.defaultRender(ctx, children)\r\n }\r\n}\r\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst FORMAT_TYPE = {\n date: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n week: 'YYYY-wo',\n quarter: 'YYYY-qQ',\n year: 'YYYY'\n}\n\nconst name = 'datePicker'\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'month', 'week'].reduce(\n (initial, type) => {\n initial[type] = creatorFactory(name, { type })\n return initial\n },\n {\n dateRange: creatorFactory(name, { type: 'range' }),\n datetimeRange: creatorFactory(name, (m) =>\n m.props({ type: 'range', showTime: true })\n )\n }\n )\n })(),\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props\n const type = props.type || props.picker\n if (!props.valueFormat) {\n props.valueFormat =\n (FORMAT_TYPE[type] || FORMAT_TYPE['date']) +\n (props.showTime && (!type || type === 'date') ? ' HH:mm:ss' : '')\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode[\n (ctx.prop.props.range === true ? 'range' : 'date') + 'Picker'\n ](ctx.prop, children)\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'hidden'\n\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return []\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'input'\nexport default {\n name,\n maker: (function () {\n return ['password', 'url', 'email', 'text', 'textarea', 'search'].reduce(\n (maker, type) => {\n maker[type] = creatorFactory(name, { type })\n return maker\n },\n {\n idate: creatorFactory(name, { type: 'date' })\n }\n )\n })(),\n modelField: 'value',\n render(children, ctx) {\n let type = ctx.prop.props.type\n if (['textarea', 'search', 'password'].indexOf(type) === -1) type = 'input'\n\n type =\n {\n textarea: 'aTextarea',\n search: 'aInputSearch',\n password: 'aInputPassword'\n }[type] || 'aInput'\n return ctx.$render.vNode.make(type, ctx.prop, children)\n }\n}\n","export default {\n name: 'timePicker',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode['time' +( ctx.prop.props.range === true ? 'Range' : '') + 'Picker'](ctx.prop, children);\n }\n\n}\n\n","export default {\n name: 'tree',\n modelField: 'checkedKeys',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.fieldNames)\n props.fieldNames = {\n key: 'id'\n };\n else if (!props.fieldNames.key) props.fieldNames.key = 'id';\n props.checkedKeys = ctx.rule.value;\n props.checkable = true;\n },\n\n}\n\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default: () => [\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","import timePicker from './timePicker';\n\nconst name = 'timeRangePicker';\n\nexport default {\n ...timePicker,\n name,\n render(children, ctx) {\n return ctx.$render.vNode['timeRangePicker'](ctx.prop, children);\n }\n}\n","import checkbox from './checkbox'\nimport radio from './radio'\nimport select from './select'\nimport cascader from './cascader'\nimport datePicker from './datePicker'\nimport hidden from './hidden'\nimport input from './input'\nimport timePicker from './timePicker'\nimport tree from './tree'\nimport row from './row'\nimport rangePicker from './rangePicker'\nimport timeRangePicker from './timeRangePicker'\n\nexport default [\n checkbox,\n datePicker,\n rangePicker,\n hidden,\n input,\n timePicker,\n timeRangePicker,\n tree,\n radio,\n select,\n cascader,\n row\n]\n","import datePicker from './datePicker';\n\nconst name = 'rangePicker';\n\nexport default {\n ...datePicker,\n name,\n maker: {},\n render(children, ctx) {\n return ctx.$render.vNode['rangePicker'](ctx.prop, children);\n }\n}\n","const PRE = 'a'\nexport default {\n tooltip: PRE + 'Tooltip',\n popover: PRE + 'Popover',\n button: PRE + 'Button',\n icon: PRE + 'Icon',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n timePicker: PRE + 'TimePicker',\n timeRangePicker: PRE + 'TimeRangePicker',\n datePicker: PRE + 'DatePicker',\n rangePicker: PRE + 'RangePicker',\n switch: PRE + 'Switch',\n select: PRE + 'Select',\n checkbox: PRE + 'CheckboxGroup',\n radio: PRE + 'RadioGroup',\n input: PRE + 'Input',\n inputNumber: PRE + 'InputNumber',\n treeSelect: PRE + 'TreeSelect',\n search: PRE + 'InputSearch',\n inputPassword: PRE + 'InputPassword',\n textarea: PRE + 'Textarea',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: PRE + 'Tree',\n autoComplete: PRE + 'AutoComplete',\n transfer: PRE + 'Transfer',\n group: 'fcGroup',\n array: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm'\n}\n","import getConfig from './config'\nimport mergeProps from '@form-create/utils/lib/mergeprops'\nimport is, { hasProperty } from '@form-create/utils/lib/type'\nimport extend from '@form-create/utils/lib/extend'\n\nfunction isTooltip(info) {\n return info.type === 'tooltip'\n}\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return\n if (is.String(props[name])) {\n props[name] = { [name]: props[name], show: true }\n }\n}\n\nfunction isFalse(val) {\n return val === false\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = { show: !!opt[name] }\n }\n}\n\nfunction tidyRule(rule) {\n const _rule = { ...rule }\n delete _rule.children\n return _rule\n}\n\nexport default {\n validate() {\n const form = this.form()\n if (form) {\n return form.validate()\n } else {\n return new Promise((v) => v())\n }\n },\n validateField(field) {\n const form = this.form()\n if (form) {\n return form.validateFields(field)\n } else {\n return new Promise((v) => v())\n }\n },\n clearValidateState(ctx) {\n const fItem = this.vm.refs[ctx.wrapRef]\n if (fItem) {\n fItem.clearValidate()\n }\n },\n tidyOptions(options) {\n ;['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(\n (name) => {\n tidyBool(options, name)\n }\n )\n return options\n },\n tidyRule({ prop }) {\n tidy(prop, 'title')\n tidy(prop, 'info')\n return prop\n },\n mergeProp(ctx) {\n const def = {\n info: {\n type: 'popover',\n placement: 'topLeft',\n icon: 'QuestionCircleOutlined'\n },\n title: {},\n col: { span: 24 },\n wrap: {}\n }\n ;['info', 'wrap', 'col', 'title'].forEach((name) => {\n ctx.prop[name] = mergeProps(\n [this.options[name] || {}, ctx.prop[name] || {}],\n def[name]\n )\n })\n },\n getDefaultOptions() {\n return getConfig()\n },\n adapterValidate(validate, validator) {\n validate.validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n const callback = (err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n }\n return validator(value, callback)\n })\n }\n return validate\n },\n update() {\n const form = this.options.form\n this.rule = {\n props: { ...form },\n on: {\n submit: (e) => {\n e.preventDefault()\n }\n },\n style: form.style,\n type: 'form'\n }\n },\n beforeRender() {\n const { key, ref, $handle } = this\n const form = this.options.form\n extend(this.rule, {\n key,\n ref,\n class: [\n form.className,\n form.class,\n 'form-create',\n this.$handle.preview ? 'is-preview' : ''\n ]\n })\n extend(this.rule.props, {\n model: $handle.formData\n })\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn())\n }\n return this.$r(\n this.rule,\n isFalse(this.options.row.show)\n ? children.getSlots()\n : [this.makeRow(children)]\n )\n },\n makeWrap(ctx, children) {\n const rule = ctx.prop\n const uni = `${this.key}${ctx.key}`\n const col = rule.col\n const isTitle = this.isTitle(rule) && rule.wrap.title !== false\n const { layout, col: _col } = this.rule.props\n const cls = rule.wrap.class\n delete rule.wrap.class\n delete rule.wrap.title\n const item = isFalse(rule.wrap.show)\n ? children\n : this.$r(\n mergeProps([\n rule.wrap,\n {\n props: {\n ...tidyRule(rule.wrap || {}),\n hasFeedback: rule.hasFeedback || false,\n name: ctx.id,\n rules: ctx.injectValidate(),\n ...(layout !== 'horizontal'\n ? { labelCol: {}, wrapperCol: {} }\n : {})\n },\n class: this.$render.mergeClass(\n cls || rule.className,\n 'fc-form-item'\n ),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem'\n }\n ]),\n {\n default: () => children,\n ...(isTitle ? { label: () => this.makeInfo(rule, uni, ctx) } : {})\n }\n )\n return layout === 'inline' || isFalse(_col) || isFalse(col.show)\n ? item\n : this.makeCol(rule, uni, [item])\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false\n const title = rule.title\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = { ...rule.title }\n const infoProp = { ...rule.info }\n if (this.options.form.title === false) return false\n if ((!titleProp.title && !titleProp.native) || isFalse(titleProp.show))\n return\n const isTip = isTooltip(infoProp)\n const titleSlot = this.getSlot('title')\n const children = [\n titleSlot\n ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n })\n : ctx.refRule?.__$title?.value\n ]\n\n if (\n !isFalse(infoProp.show) &&\n (infoProp.info || infoProp.native) &&\n !isFalse(infoProp.icon)\n ) {\n const prop = {\n type: infoProp.type || 'popover',\n props: tidyRule(infoProp),\n key: `${uni}pop`\n }\n\n delete prop.props.icon\n delete prop.props.show\n delete prop.props.info\n delete prop.props.align\n delete prop.props.native\n\n const field = isTip ? 'title' : 'content'\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = ctx.refRule?.__$info?.value\n }\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](\n this.$r(mergeProps([infoProp, prop]), {\n [titleProp.slot || 'default']: () =>\n this.$r({\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon || '',\n props: {\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon\n },\n key: `${uni}i`\n })\n })\n )\n }\n\n const _prop = mergeProps([\n titleProp,\n {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span'\n }\n ])\n\n delete _prop.props.show\n delete _prop.props.title\n delete _prop.props.native\n\n return this.$r(_prop, children)\n },\n makeCol(rule, uni, children) {\n const col = rule.col\n return this.$r(\n {\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\n type: 'col',\n props: col || { span: 24 },\n key: `${uni}col`\n },\n children\n )\n },\n makeRow(children) {\n const row = this.options.row || {}\n return this.$r(\n {\n type: 'row',\n props: row,\n class: this.$render.mergeClass(row.class, 'fc-form-row'),\n key: `${this.key}row`\n },\n children\n )\n },\n makeFormBtn() {\n let vn = []\n if (!isFalse(this.options.submitBtn.show)) {\n vn.push(this.makeSubmitBtn())\n }\n if (!isFalse(this.options.resetBtn.show)) {\n vn.push(this.makeResetBtn())\n }\n if (!vn.length) {\n return\n }\n let { labelCol, wrapperCol, layout } = this.rule.props\n if (layout !== 'horizontal') {\n labelCol = wrapperCol = {}\n }\n const item = this.$r(\n {\n type: 'formItem',\n class: 'fc-form-item fc-form-footer',\n key: `${this.key}fb`,\n props: {\n labelCol,\n wrapperCol,\n label: ' ',\n colon: false\n }\n },\n vn\n )\n\n return layout === 'inline'\n ? item\n : this.$r(\n {\n type: 'col',\n class: 'fc-form-col',\n props: { span: 24 },\n key: `${this.key}fc`\n },\n [item]\n )\n },\n\n makeResetBtn() {\n const resetBtn = { ...this.options.resetBtn }\n const innerText =\n resetBtn.innerText || this.$handle.api.t('reset') || '重置'\n delete resetBtn.innerText\n delete resetBtn.click\n delete resetBtn.col\n delete resetBtn.show\n return this.$r(\n {\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: { width: resetBtn.width, marginLeft: '10px' },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields()\n }\n },\n key: `${this.key}b2`\n },\n [innerText]\n )\n },\n makeSubmitBtn() {\n const submitBtn = { ...this.options.submitBtn }\n const innerText =\n submitBtn.innerText || this.$handle.api.t('submit') || '提交'\n delete submitBtn.innerText\n delete submitBtn.click\n delete submitBtn.col\n delete submitBtn.show\n return this.$r(\n {\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: { width: submitBtn.width },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {})\n }\n },\n key: `${this.key}b1`\n },\n [innerText]\n )\n }\n}\n","const UNDEF = undefined\n\nexport default function getConfig() {\n return {\n form: {\n hideRequiredMark: false,\n layout: 'horizontal',\n labelAlign: 'right',\n labelCol: {\n span: 3\n },\n wrapperCol: {\n span: 21\n },\n validateOnRuleChange: true\n },\n row: {\n gutter: 0\n },\n submitBtn: {\n disabled: false,\n loading: false,\n type: 'primary',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n },\n resetBtn: {\n disabled: false,\n loading: false,\n type: 'default',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n }\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst maker = {}\n\nfunction useAlias(maker) {\n ;[\n 'treeSelect',\n 'upload',\n 'frame',\n 'autoComplete',\n 'cascader',\n 'datePicker',\n 'frame',\n 'inputNumber',\n 'inputPassword',\n 'radio',\n 'rate',\n 'switch',\n 'rate',\n 'slider',\n 'timePicker'\n ].reduce((maker, name) => {\n maker[name] = creatorFactory(name)\n return maker\n }, maker)\n maker.auto = maker.autoComplete\n maker.number = maker.inputNumber\n maker.time = maker.timePicker\n maker.password = maker.inputPassword\n}\n\nfunction useFrame(maker) {\n const types = {\n frameInputs: ['input', 0],\n frameFiles: ['file', 0],\n frameImages: ['image', 0],\n frameInputOne: ['input', 1],\n frameFileOne: ['file', 1],\n frameImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('frame', (m) =>\n m.props({ type: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.frameInput = maker.frameInputs\n maker.frameFile = maker.frameFiles\n maker.frameImage = maker.frameImages\n}\n\nfunction useSlider(maker) {\n maker['sliderRange'] = creatorFactory('slider', { range: true })\n}\n\nfunction useSelect(m) {\n const name = 'select'\n m.selectMultiple = creatorFactory(name, { mode: 'multiple' })\n m.selectTags = creatorFactory(name, { mode: 'tags' })\n m.selectCombobox = creatorFactory(name, { mode: 'combobox' })\n}\n\nfunction useUpload(maker) {\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('upload', (m) =>\n m.props({ uploadType: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.uploadImage = maker.image\n maker.uploadFile = maker.file\n}\n\nuseAlias(maker)\nuseSlider(maker)\nuseFrame(maker)\nuseUpload(maker)\nuseSelect(maker)\n\nexport default maker\n","import extend from '@form-create/utils/lib/extend'\nimport is from '@form-create/utils/lib/type'\nimport { invoke } from '@longhongguo/form-create-core/src/frame/util'\nimport toArray from '@form-create/utils/lib/toarray'\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn)) btn = { show: btn }\n else if (!is.Undef(btn) && !is.Object(btn)) btn = { show: def }\n return btn\n}\n\nexport default function extendApi(api, h) {\n return {\n formEl() {\n return h.$manager.form()\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id)\n if (!ctx) return\n return h.vm.refs[ctx.wrapRef]\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children\n const all = [h.$manager.validate()]\n forms\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(true)\n callback && callback(true)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-fail', e, { api })\n h.emitEvent('validate-fail', e, { api })\n })\n })\n },\n validateField(field, callback) {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field)\n if (!ctx) return\n const sub = h.subForm[ctx.id]\n const all = [h.$manager.validateField(ctx.id)]\n toArray(sub)\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(null)\n callback && callback(null)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-field-fail', e, { field, api })\n })\n })\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach((field) => {\n if (clearSub) this.clearSubValidateState(field)\n h.getCtxs(field).forEach((ctx) => {\n h.$manager.clearValidateState(ctx)\n })\n })\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach((ctx) => {\n const subForm = h.subForm[ctx.id]\n if (!subForm) return\n if (Array.isArray(subForm)) {\n subForm.forEach((form) => {\n form.clearValidateState()\n })\n } else if (subForm) {\n subForm.clearValidateState()\n }\n })\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.submitBtnProps({ show: !!isShow })\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.resetBtnProps({ show: !!isShow })\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true)\n extend(btn, props)\n h.options.submitBtn = btn\n api.refreshOptions()\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false)\n extend(btn, props)\n h.options.resetBtn = btn\n api.refreshOptions()\n },\n submit(successFn, failFn) {\n return new Promise((resolve, reject) => {\n const promise =\n h.options.validateOnSubmit === false\n ? Promise.resolve()\n : api.validate()\n promise\n .then(() => {\n let formData = api.formData()\n h.beforeSubmit(formData)\n .then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api))\n is.Function(h.options.onSubmit) &&\n invoke(() => h.options.onSubmit(formData, api))\n h.vm.emit('submit', formData, api)\n resolve(formData)\n })\n .catch((e) => {})\n })\n .catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args))\n reject(...args)\n })\n })\n },\n /**\n * 封装请求工具,用于自定义校验规则等场景\n * 基于 frame/fetch.js 封装的 fetch 方法\n *\n * @param {string|object} config - 请求配置,可以是 URL 字符串或配置对象\n * @param {string} config.action - 请求地址(必需)\n * @param {string} config.method - 请求方法,默认 'get'\n * @param {object} config.data - 请求数据(POST/PUT等),用于表单或JSON格式\n * @param {object} config.query - 查询参数(GET请求)\n * @param {string} config.dataType - 数据类型:'json' 表示 JSON 格式(默认),其他值表示表单格式(FormData)\n * @param {object} config.headers - 请求头\n * @param {function|string} config.parse - 数据解析函数或路径字符串\n * @returns {Promise} 返回 Promise,resolve 时返回解析后的数据\n *\n * @example\n * // JSON 格式 POST 请求(默认)\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'json' // 或不设置,默认 JSON\n * });\n *\n * @example\n * // 表单格式 POST 请求\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'form' // 或任意非 'json' 的值,会使用 FormData\n * });\n *\n * @example\n * // 在自定义校验规则中使用\n * validator: async function(value, callback) {\n * try {\n * const result = await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: value }, // 使用 data,不是 params\n * dataType: 'form' // 表单形式\n * });\n * if (result.exists) {\n * callback('用户名已存在');\n * } else {\n * callback();\n * }\n * } catch (error) {\n * callback('校验失败,请稍后重试');\n * }\n * }\n */\n request(config) {\n // 如果传入的是字符串,转换为配置对象\n if (typeof config === 'string') {\n config = { action: config }\n }\n // 使用 api.fetch 方法,它内部使用 frame/fetch.js 封装的 asyncFetch\n return api.fetch(config)\n }\n }\n}\n","export default {\n autoComplete: 'value',\n cascader: 'value',\n inputNumber: 'value',\n inputPassword: 'value',\n textarea: 'value',\n rate: 'value',\n slider: 'value',\n treeSelect: 'value',\n switch: 'checked',\n}\n","import is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v) {\n return new Promise((resolve, reject) => {\n is.empty(v) ? reject(validate.message) : resolve();\n })\n },\n ...val,\n };\n const title = rule.__fc__.refRule?.__$title?.value;\n if (!validate.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = validate.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\n\nexport default required\n","import components from '../components'\nimport parsers from '../parsers'\nimport alias from './alias'\nimport manager from './manager'\nimport FormCreateFactory from '@longhongguo/form-create-core/src/index'\nimport makers from './maker'\nimport '../style/index.css'\nimport extendApi from './api'\nimport modelFields from './modelFields'\nimport required from './provider'\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias)\n\n Object.keys(modelFields).forEach((k) => {\n FormCreate.setModelField(k, modelFields[k])\n })\n\n components.forEach((component) => {\n FormCreate.component(component.name, component)\n })\n\n FormCreate.register(required)\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser)\n })\n\n Object.keys(makers).forEach((name) => {\n FormCreate.maker[name] = makers[name]\n })\n\n if (typeof window !== 'undefined' && window.antd) {\n FormCreate.useApp((_, app) => {\n app.use(window.antd)\n })\n }\n}\n\nexport default function antdvFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info']\n }\n })\n}\n","import antdvFormCreate from './core/index';\n\nconst FormCreate = antdvFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["script","name","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_cache","_createElementVNode","height","width","xmlns","viewBox","createElementVNode","d","fill","components","upload","frame","group","subForm","QuestionCircleOutlined","checkbox","modelField","mergeProp","ctx","props","prop","hasProperty","options","radio","select","fetchData","effectData","loading","disabled","render","children","newChildren","notFoundContent","$render","defaultRender","cascader","FORMAT_TYPE","date","month","week","quarter","year","datePicker","maker","reduce","initial","type","creatorFactory","dateRange","datetimeRange","m","showTime","picker","valueFormat","vNode","range","hidden","field","value","input","idate","indexOf","textarea","search","password","make","timePicker","tree","fieldNames","key","checkedKeys","rule","checkable","row","_","col","span","default","parsers","alias","tooltip","PRE","popover","button","icon","slider","rate","timeRangePicker","rangePicker","switch","inputNumber","treeSelect","inputPassword","formItem","form","autoComplete","transfer","array","object","tidy","is","String","[object Object]","show","isFalse","val","tidyRule","_rule","manager","validate","this","Promise","v","validateField","validateFields","clearValidateState","fItem","vm","refs","wrapRef","clearValidate","tidyOptions","forEach","opt","Object","tidyBool","def","info","placement","title","wrap","mergeProps","getDefaultOptions","hideRequiredMark","layout","labelAlign","labelCol","wrapperCol","validateOnRuleChange","gutter","submitBtn","innerText","undefined","click","resetBtn","adapterValidate","validator","resolve","reject","err","update","on","submit","e","preventDefault","style","beforeRender","ref","$handle","extend","className","preview","model","formData","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","item","hasFeedback","id","rules","injectValidate","mergeClass","label","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","isTip","titleSlot","getSlot","refRule","__$title","align","_ctx$refRule3","__$info","slot","_prop","vn","push","makeSubmitBtn","makeResetBtn","length","colon","api","t","marginLeft","fApi","resetFields","catch","tidyBtnProp","btn","Boolean","Undef","extendApi","h","formEl","$manager","wrapEl","getFieldCtx","callback","forms","all","filter","isScope","then","emit","emitEvent","sub","toArray","fields","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","Array","isArray","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","Function","invoke","onSubmit","args","request","config","action","fetch","auto","number","time","useAlias","useSlider","types","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","keys","maxLength","frameInput","frameFile","frameImage","useFrame","image","file","uploadFileOne","uploadImageOne","uploadType","uploadImage","uploadFile","useUpload","selectMultiple","mode","selectTags","selectCombobox","modelFields","required","load","inject","message","parseVal","getValue","clearProp","_rule$__fc__$refRule","empty","__fc__","match","getLocale","getProp","sync","watch","install","FormCreate","componentAlias","k","setModelField","component","register","parser","makers","window","antd","useApp","app","use","FormCreateFactory","ui","version","attrs","normal","formCreate"],"mappings":"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"}
1
+ {"version":3,"file":"form-create.js","sources":["../src/components/icon/QuestionCircleOutlined.vue","../src/components/icon/QuestionCircleOutlined.vue?vue&type=template&id=72badc20&lang.js","../src/components/index.js","../src/parsers/checkbox.js","../src/parsers/radio.js","../src/parsers/select.js","../src/parsers/cascader.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/timePicker.js","../src/parsers/tree.js","../src/parsers/row.js","../src/parsers/timeRangePicker.js","../src/parsers/index.js","../src/parsers/rangePicker.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.js","../src/core/maker.js","../src/core/api.js","../src/core/modelFields.js","../src/core/provider.js","../src/core/index.js","../src/index.js"],"sourcesContent":["<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","<template>\n <span class=\"anticon\">\n <svg height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n <path\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z\"\n fill=\"currentColor\"></path>\n <path\n d=\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7c-21.2 8.1-39.2 22.3-52.1 40.9c-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5c.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0a40 40 0 1 0-80 0z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'QuestionCircleOutlined'\n}\n</script>\n","import upload from '@form-create/component-antdv-upload/src/index'\nimport frame from '@form-create/component-antdv-frame/src/index'\nimport group from '@form-create/component-antdv-group/src/index'\nimport subForm from '@form-create/component-subform/src/index'\nimport QuestionCircleOutlined from './icon/QuestionCircleOutlined.vue'\n\nexport default [upload, frame, group, subForm, QuestionCircleOutlined]\n","import {hasProperty} from '@form-create/utils/lib/type';\r\n\r\nexport default {\r\n name: 'checkbox',\r\n modelField: 'value',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props;\r\n if (!hasProperty(props, 'options'))\r\n props.options = ctx.prop.options || [];\r\n }\r\n\r\n}\r\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'radio'\n};\n","import checkbox from './checkbox'\nimport { hasProperty } from '@form-create/utils/lib/type'\n\nexport default {\n ...checkbox,\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\n\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果正在加载,设置 disabled 和 loading\n if (isLoading) {\n props.disabled = true\n props.loading = true\n }\n },\n render(children, ctx) {\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\n const fetchData = ctx.effectData('fetch')\n const isLoading = fetchData && fetchData.loading === true\n\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\n if (isLoading && children.loading) {\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\n const newChildren = { ...children }\n newChildren.notFoundContent = children.loading\n return ctx.$render.defaultRender(ctx, newChildren)\n }\n\n // 调用默认渲染\n return ctx.$render.defaultRender(ctx, children)\n }\n}\n","import { hasProperty } from '@form-create/utils/lib/type'\r\n\r\nexport default {\r\n name: 'cascader',\r\n mergeProp(ctx) {\r\n const props = ctx.prop.props\r\n if (!hasProperty(props, 'options')) props.options = ctx.prop.options || []\r\n\r\n // 检测 loading 状态:从 effectData('fetch') 中获取 loading 状态\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果正在加载,设置 disabled 和 loading\r\n if (isLoading) {\r\n props.disabled = true\r\n props.loading = true\r\n }\r\n },\r\n render(children, ctx) {\r\n // 检测 loading 状态(与 mergeProp 中的逻辑保持一致)\r\n const fetchData = ctx.effectData('fetch')\r\n const isLoading = fetchData && fetchData.loading === true\r\n\r\n // 如果有 loading 插槽且正在加载,将 loading 插槽传递给组件的 notFoundContent 插槽\r\n if (isLoading && children.loading) {\r\n // 将 loading 插槽合并到 children 中,作为 notFoundContent\r\n const newChildren = { ...children }\r\n newChildren.notFoundContent = children.loading\r\n return ctx.$render.defaultRender(ctx, newChildren)\r\n }\r\n\r\n // 调用默认渲染\r\n return ctx.$render.defaultRender(ctx, children)\r\n }\r\n}\r\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst FORMAT_TYPE = {\n date: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n week: 'YYYY-wo',\n quarter: 'YYYY-qQ',\n year: 'YYYY'\n}\n\nconst name = 'datePicker'\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'month', 'week'].reduce(\n (initial, type) => {\n initial[type] = creatorFactory(name, { type })\n return initial\n },\n {\n dateRange: creatorFactory(name, { type: 'range' }),\n datetimeRange: creatorFactory(name, (m) =>\n m.props({ type: 'range', showTime: true })\n )\n }\n )\n })(),\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props\n const type = props.type || props.picker\n if (!props.valueFormat) {\n props.valueFormat =\n (FORMAT_TYPE[type] || FORMAT_TYPE['date']) +\n (props.showTime && (!type || type === 'date') ? ' HH:mm:ss' : '')\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode[\n (ctx.prop.props.range === true ? 'range' : 'date') + 'Picker'\n ](ctx.prop, children)\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'hidden'\n\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return []\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst name = 'input'\nexport default {\n name,\n maker: (function () {\n return ['password', 'url', 'email', 'text', 'textarea', 'search'].reduce(\n (maker, type) => {\n maker[type] = creatorFactory(name, { type })\n return maker\n },\n {\n idate: creatorFactory(name, { type: 'date' })\n }\n )\n })(),\n modelField: 'value',\n render(children, ctx) {\n let type = ctx.prop.props.type\n if (['textarea', 'search', 'password'].indexOf(type) === -1) type = 'input'\n\n type =\n {\n textarea: 'aTextarea',\n search: 'aInputSearch',\n password: 'aInputPassword'\n }[type] || 'aInput'\n return ctx.$render.vNode.make(type, ctx.prop, children)\n }\n}\n","export default {\n name: 'timePicker',\n modelField: 'value',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\n }\n },\n render(children, ctx) {\n return ctx.$render.vNode['time' +( ctx.prop.props.range === true ? 'Range' : '') + 'Picker'](ctx.prop, children);\n }\n\n}\n\n","export default {\n name: 'tree',\n modelField: 'checkedKeys',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.fieldNames)\n props.fieldNames = {\n key: 'id'\n };\n else if (!props.fieldNames.key) props.fieldNames.key = 'id';\n props.checkedKeys = ctx.rule.value;\n props.checkable = true;\n },\n\n}\n\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default: () => [\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","import timePicker from './timePicker';\n\nconst name = 'timeRangePicker';\n\nexport default {\n ...timePicker,\n name,\n render(children, ctx) {\n return ctx.$render.vNode['timeRangePicker'](ctx.prop, children);\n }\n}\n","import checkbox from './checkbox'\nimport radio from './radio'\nimport select from './select'\nimport cascader from './cascader'\nimport datePicker from './datePicker'\nimport hidden from './hidden'\nimport input from './input'\nimport timePicker from './timePicker'\nimport tree from './tree'\nimport row from './row'\nimport rangePicker from './rangePicker'\nimport timeRangePicker from './timeRangePicker'\n\nexport default [\n checkbox,\n datePicker,\n rangePicker,\n hidden,\n input,\n timePicker,\n timeRangePicker,\n tree,\n radio,\n select,\n cascader,\n row\n]\n","import datePicker from './datePicker';\n\nconst name = 'rangePicker';\n\nexport default {\n ...datePicker,\n name,\n maker: {},\n render(children, ctx) {\n return ctx.$render.vNode['rangePicker'](ctx.prop, children);\n }\n}\n","const PRE = 'a'\nexport default {\n tooltip: PRE + 'Tooltip',\n popover: PRE + 'Popover',\n button: PRE + 'Button',\n icon: PRE + 'Icon',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n timePicker: PRE + 'TimePicker',\n timeRangePicker: PRE + 'TimeRangePicker',\n datePicker: PRE + 'DatePicker',\n rangePicker: PRE + 'RangePicker',\n switch: PRE + 'Switch',\n select: PRE + 'Select',\n checkbox: PRE + 'CheckboxGroup',\n radio: PRE + 'RadioGroup',\n input: PRE + 'Input',\n inputNumber: PRE + 'InputNumber',\n treeSelect: PRE + 'TreeSelect',\n search: PRE + 'InputSearch',\n inputPassword: PRE + 'InputPassword',\n textarea: PRE + 'Textarea',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: PRE + 'Tree',\n autoComplete: PRE + 'AutoComplete',\n transfer: PRE + 'Transfer',\n group: 'fcGroup',\n array: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm'\n}\n","import getConfig from './config'\nimport mergeProps from '@form-create/utils/lib/mergeprops'\nimport is, { hasProperty } from '@form-create/utils/lib/type'\nimport extend from '@form-create/utils/lib/extend'\n\nfunction isTooltip(info) {\n return info.type === 'tooltip'\n}\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return\n if (is.String(props[name])) {\n props[name] = { [name]: props[name], show: true }\n }\n}\n\nfunction isFalse(val) {\n return val === false\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = { show: !!opt[name] }\n }\n}\n\nfunction tidyRule(rule) {\n const _rule = { ...rule }\n delete _rule.children\n return _rule\n}\n\nexport default {\n validate() {\n const form = this.form()\n if (form) {\n return form.validate()\n } else {\n return new Promise((v) => v())\n }\n },\n validateField(field) {\n const form = this.form()\n if (form) {\n return form.validateFields(field)\n } else {\n return new Promise((v) => v())\n }\n },\n clearValidateState(ctx) {\n const fItem = this.vm.refs[ctx.wrapRef]\n if (fItem) {\n fItem.clearValidate()\n }\n },\n tidyOptions(options) {\n ;['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(\n (name) => {\n tidyBool(options, name)\n }\n )\n return options\n },\n tidyRule({ prop }) {\n tidy(prop, 'title')\n tidy(prop, 'info')\n return prop\n },\n mergeProp(ctx) {\n const def = {\n info: {\n type: 'popover',\n placement: 'topLeft',\n icon: 'QuestionCircleOutlined'\n },\n title: {},\n col: { span: 24 },\n wrap: {}\n }\n ;['info', 'wrap', 'col', 'title'].forEach((name) => {\n ctx.prop[name] = mergeProps(\n [this.options[name] || {}, ctx.prop[name] || {}],\n def[name]\n )\n })\n\n // 为 upload 组件自动添加 onPreview,确保始终向父窗口发送预览通知\n if (ctx.rule.type === 'upload' && !ctx.prop.props.onPreview) {\n const sendPreviewMessage = function (file) {\n if (window.parent && window.parent !== window) {\n window.parent.postMessage(\n {\n type: 'upload-preview',\n file: {\n url: file.url,\n name: file.name,\n uid: file.uid,\n size: file.size,\n type: file.type\n },\n timestamp: Date.now()\n },\n '*'\n )\n }\n }\n ctx.prop.props.onPreview = function (file) {\n sendPreviewMessage(file)\n // 不执行默认预览,只发送消息\n }\n } else if (ctx.rule.type === 'upload' && ctx.prop.props.onPreview) {\n // 如果用户已经设置了 onPreview,包装它以确保先发送消息\n const originalOnPreview = ctx.prop.props.onPreview\n const sendPreviewMessage = function (file) {\n if (window.parent && window.parent !== window) {\n window.parent.postMessage(\n {\n type: 'upload-preview',\n file: {\n url: file.url,\n name: file.name,\n uid: file.uid,\n size: file.size,\n type: file.type\n },\n timestamp: Date.now()\n },\n '*'\n )\n }\n }\n ctx.prop.props.onPreview = function (file) {\n sendPreviewMessage(file)\n if (originalOnPreview && typeof originalOnPreview === 'function') {\n originalOnPreview.apply(this, arguments)\n }\n }\n }\n },\n getDefaultOptions() {\n return getConfig()\n },\n adapterValidate(validate, validator) {\n validate.validator = (rule, value) => {\n return new Promise((resolve, reject) => {\n const callback = (err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n }\n return validator(value, callback)\n })\n }\n return validate\n },\n update() {\n const form = this.options.form\n this.rule = {\n props: { ...form },\n on: {\n submit: (e) => {\n e.preventDefault()\n }\n },\n style: form.style,\n type: 'form'\n }\n },\n beforeRender() {\n const { key, ref, $handle } = this\n const form = this.options.form\n extend(this.rule, {\n key,\n ref,\n class: [\n form.className,\n form.class,\n 'form-create',\n this.$handle.preview ? 'is-preview' : ''\n ]\n })\n extend(this.rule.props, {\n model: $handle.formData\n })\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn())\n }\n return this.$r(\n this.rule,\n isFalse(this.options.row.show)\n ? children.getSlots()\n : [this.makeRow(children)]\n )\n },\n makeWrap(ctx, children) {\n const rule = ctx.prop\n const uni = `${this.key}${ctx.key}`\n const col = rule.col\n const isTitle = this.isTitle(rule) && rule.wrap.title !== false\n const { layout, col: _col } = this.rule.props\n const cls = rule.wrap.class\n delete rule.wrap.class\n delete rule.wrap.title\n const item = isFalse(rule.wrap.show)\n ? children\n : this.$r(\n mergeProps([\n rule.wrap,\n {\n props: {\n ...tidyRule(rule.wrap || {}),\n hasFeedback: rule.hasFeedback || false,\n name: ctx.id,\n rules: ctx.injectValidate(),\n ...(layout !== 'horizontal'\n ? { labelCol: {}, wrapperCol: {} }\n : {})\n },\n class: this.$render.mergeClass(\n cls || rule.className,\n 'fc-form-item'\n ),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem'\n }\n ]),\n {\n default: () => children,\n ...(isTitle ? { label: () => this.makeInfo(rule, uni, ctx) } : {})\n }\n )\n return layout === 'inline' || isFalse(_col) || isFalse(col.show)\n ? item\n : this.makeCol(rule, uni, [item])\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false\n const title = rule.title\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = { ...rule.title }\n const infoProp = { ...rule.info }\n if (this.options.form.title === false) return false\n if ((!titleProp.title && !titleProp.native) || isFalse(titleProp.show))\n return\n const isTip = isTooltip(infoProp)\n const titleSlot = this.getSlot('title')\n const children = [\n titleSlot\n ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n })\n : ctx.refRule?.__$title?.value\n ]\n\n if (\n !isFalse(infoProp.show) &&\n (infoProp.info || infoProp.native) &&\n !isFalse(infoProp.icon)\n ) {\n const prop = {\n type: infoProp.type || 'popover',\n props: tidyRule(infoProp),\n key: `${uni}pop`\n }\n\n delete prop.props.icon\n delete prop.props.show\n delete prop.props.info\n delete prop.props.align\n delete prop.props.native\n\n const field = isTip ? 'title' : 'content'\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = ctx.refRule?.__$info?.value\n }\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](\n this.$r(mergeProps([infoProp, prop]), {\n [titleProp.slot || 'default']: () =>\n this.$r({\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon || '',\n props: {\n type:\n infoProp.icon === true\n ? 'QuestionCircleOutlined'\n : infoProp.icon\n },\n key: `${uni}i`\n })\n })\n )\n }\n\n const _prop = mergeProps([\n titleProp,\n {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span'\n }\n ])\n\n delete _prop.props.show\n delete _prop.props.title\n delete _prop.props.native\n\n return this.$r(_prop, children)\n },\n makeCol(rule, uni, children) {\n const col = rule.col\n return this.$r(\n {\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\n type: 'col',\n props: col || { span: 24 },\n key: `${uni}col`\n },\n children\n )\n },\n makeRow(children) {\n const row = this.options.row || {}\n return this.$r(\n {\n type: 'row',\n props: row,\n class: this.$render.mergeClass(row.class, 'fc-form-row'),\n key: `${this.key}row`\n },\n children\n )\n },\n makeFormBtn() {\n let vn = []\n if (!isFalse(this.options.submitBtn.show)) {\n vn.push(this.makeSubmitBtn())\n }\n if (!isFalse(this.options.resetBtn.show)) {\n vn.push(this.makeResetBtn())\n }\n if (!vn.length) {\n return\n }\n let { labelCol, wrapperCol, layout } = this.rule.props\n if (layout !== 'horizontal') {\n labelCol = wrapperCol = {}\n }\n const item = this.$r(\n {\n type: 'formItem',\n class: 'fc-form-item fc-form-footer',\n key: `${this.key}fb`,\n props: {\n labelCol,\n wrapperCol,\n label: ' ',\n colon: false\n }\n },\n vn\n )\n\n return layout === 'inline'\n ? item\n : this.$r(\n {\n type: 'col',\n class: 'fc-form-col',\n props: { span: 24 },\n key: `${this.key}fc`\n },\n [item]\n )\n },\n\n makeResetBtn() {\n const resetBtn = { ...this.options.resetBtn }\n const innerText =\n resetBtn.innerText || this.$handle.api.t('reset') || '重置'\n delete resetBtn.innerText\n delete resetBtn.click\n delete resetBtn.col\n delete resetBtn.show\n return this.$r(\n {\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: { width: resetBtn.width, marginLeft: '10px' },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields()\n }\n },\n key: `${this.key}b2`\n },\n [innerText]\n )\n },\n makeSubmitBtn() {\n const submitBtn = { ...this.options.submitBtn }\n const innerText =\n submitBtn.innerText || this.$handle.api.t('submit') || '提交'\n delete submitBtn.innerText\n delete submitBtn.click\n delete submitBtn.col\n delete submitBtn.show\n return this.$r(\n {\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: { width: submitBtn.width },\n on: {\n click: () => {\n const fApi = this.$handle.api\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {})\n }\n },\n key: `${this.key}b1`\n },\n [innerText]\n )\n }\n}\n","const UNDEF = undefined\n\nexport default function getConfig() {\n return {\n form: {\n hideRequiredMark: false,\n layout: 'horizontal',\n labelAlign: 'right',\n labelCol: {\n span: 3\n },\n wrapperCol: {\n span: 21\n },\n validateOnRuleChange: true\n },\n row: {\n gutter: 0\n },\n submitBtn: {\n disabled: false,\n loading: false,\n type: 'primary',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n },\n resetBtn: {\n disabled: false,\n loading: false,\n type: 'default',\n innerText: '',\n show: false,\n col: UNDEF,\n click: UNDEF\n }\n }\n}\n","import { creatorFactory } from '@longhongguo/form-create-core/src/index'\n\nconst maker = {}\n\nfunction useAlias(maker) {\n ;[\n 'treeSelect',\n 'upload',\n 'frame',\n 'autoComplete',\n 'cascader',\n 'datePicker',\n 'frame',\n 'inputNumber',\n 'inputPassword',\n 'radio',\n 'rate',\n 'switch',\n 'rate',\n 'slider',\n 'timePicker'\n ].reduce((maker, name) => {\n maker[name] = creatorFactory(name)\n return maker\n }, maker)\n maker.auto = maker.autoComplete\n maker.number = maker.inputNumber\n maker.time = maker.timePicker\n maker.password = maker.inputPassword\n}\n\nfunction useFrame(maker) {\n const types = {\n frameInputs: ['input', 0],\n frameFiles: ['file', 0],\n frameImages: ['image', 0],\n frameInputOne: ['input', 1],\n frameFileOne: ['file', 1],\n frameImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('frame', (m) =>\n m.props({ type: types[key][0], maxLength: types[key][1] })\n )\n return maker\n }, maker)\n\n maker.frameInput = maker.frameInputs\n maker.frameFile = maker.frameFiles\n maker.frameImage = maker.frameImages\n}\n\nfunction useSlider(maker) {\n maker['sliderRange'] = creatorFactory('slider', { range: true })\n}\n\nfunction useSelect(m) {\n const name = 'select'\n m.selectMultiple = creatorFactory(name, { mode: 'multiple' })\n m.selectTags = creatorFactory(name, { mode: 'tags' })\n m.selectCombobox = creatorFactory(name, { mode: 'combobox' })\n}\n\nfunction useUpload(maker) {\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1]\n }\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('upload', (m) =>\n m.props({\n uploadType: types[key][0],\n maxLength: types[key][1]\n })\n )\n return maker\n }, maker)\n\n maker.uploadImage = maker.image\n maker.uploadFile = maker.file\n}\n\nuseAlias(maker)\nuseSlider(maker)\nuseFrame(maker)\nuseUpload(maker)\nuseSelect(maker)\n\nexport default maker\n","import extend from '@form-create/utils/lib/extend'\nimport is from '@form-create/utils/lib/type'\nimport { invoke } from '@longhongguo/form-create-core/src/frame/util'\nimport toArray from '@form-create/utils/lib/toarray'\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn)) btn = { show: btn }\n else if (!is.Undef(btn) && !is.Object(btn)) btn = { show: def }\n return btn\n}\n\nexport default function extendApi(api, h) {\n return {\n formEl() {\n return h.$manager.form()\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id)\n if (!ctx) return\n return h.vm.refs[ctx.wrapRef]\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children\n const all = [h.$manager.validate()]\n forms\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(true)\n callback && callback(true)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-fail', e, { api })\n h.emitEvent('validate-fail', e, { api })\n })\n })\n },\n validateField(field, callback) {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field)\n if (!ctx) return\n const sub = h.subForm[ctx.id]\n const all = [h.$manager.validateField(ctx.id)]\n toArray(sub)\n .filter((v) => !v.isScope)\n .forEach((v) => {\n all.push(v.validate())\n })\n Promise.all(all)\n .then(() => {\n resolve(null)\n callback && callback(null)\n })\n .catch((e) => {\n reject(e)\n callback && callback(e)\n h.vm.emit('validate-field-fail', e, { field, api })\n })\n })\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach((field) => {\n if (clearSub) this.clearSubValidateState(field)\n h.getCtxs(field).forEach((ctx) => {\n h.$manager.clearValidateState(ctx)\n })\n })\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach((ctx) => {\n const subForm = h.subForm[ctx.id]\n if (!subForm) return\n if (Array.isArray(subForm)) {\n subForm.forEach((form) => {\n form.clearValidateState()\n })\n } else if (subForm) {\n subForm.clearValidateState()\n }\n })\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.submitBtnProps({ show: !!isShow })\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({ loading: !!loading })\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({ disabled: !!disabled })\n },\n show: (isShow = true) => {\n api.resetBtnProps({ show: !!isShow })\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true)\n extend(btn, props)\n h.options.submitBtn = btn\n api.refreshOptions()\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false)\n extend(btn, props)\n h.options.resetBtn = btn\n api.refreshOptions()\n },\n submit(successFn, failFn) {\n return new Promise((resolve, reject) => {\n const promise =\n h.options.validateOnSubmit === false\n ? Promise.resolve()\n : api.validate()\n promise\n .then(() => {\n let formData = api.formData()\n h.beforeSubmit(formData)\n .then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api))\n is.Function(h.options.onSubmit) &&\n invoke(() => h.options.onSubmit(formData, api))\n h.vm.emit('submit', formData, api)\n resolve(formData)\n })\n .catch((e) => {})\n })\n .catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args))\n reject(...args)\n })\n })\n },\n /**\n * 封装请求工具,用于自定义校验规则等场景\n * 基于 frame/fetch.js 封装的 fetch 方法\n *\n * @param {string|object} config - 请求配置,可以是 URL 字符串或配置对象\n * @param {string} config.action - 请求地址(必需)\n * @param {string} config.method - 请求方法,默认 'get'\n * @param {object} config.data - 请求数据(POST/PUT等),用于表单或JSON格式\n * @param {object} config.query - 查询参数(GET请求)\n * @param {string} config.dataType - 数据类型:'json' 表示 JSON 格式(默认),其他值表示表单格式(FormData)\n * @param {object} config.headers - 请求头\n * @param {function|string} config.parse - 数据解析函数或路径字符串\n * @returns {Promise} 返回 Promise,resolve 时返回解析后的数据\n *\n * @example\n * // JSON 格式 POST 请求(默认)\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'json' // 或不设置,默认 JSON\n * });\n *\n * @example\n * // 表单格式 POST 请求\n * await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: 'test' },\n * dataType: 'form' // 或任意非 'json' 的值,会使用 FormData\n * });\n *\n * @example\n * // 在自定义校验规则中使用\n * validator: async function(value, callback) {\n * try {\n * const result = await this.api.request({\n * action: '/api/check-username',\n * method: 'post',\n * data: { username: value }, // 使用 data,不是 params\n * dataType: 'form' // 表单形式\n * });\n * if (result.exists) {\n * callback('用户名已存在');\n * } else {\n * callback();\n * }\n * } catch (error) {\n * callback('校验失败,请稍后重试');\n * }\n * }\n */\n request(config) {\n // 如果传入的是字符串,转换为配置对象\n if (typeof config === 'string') {\n config = { action: config }\n }\n // 使用 api.fetch 方法,它内部使用 frame/fetch.js 封装的 asyncFetch\n return api.fetch(config)\n },\n // 节流,在指定时间间隔内,如果多次触发,只执行一次\n throttle(fn, delay) {\n let timer = null\n return function (...args) {\n if (timer) clearTimeout(timer)\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay)\n }\n },\n // 防抖,在指定时间间隔内,如果多次触发,只执行最后一次\n debounce(fn, delay) {\n let timer = null\n return function (...args) {\n if (timer) clearTimeout(timer)\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay)\n }\n }\n }\n}\n","export default {\n autoComplete: 'value',\n cascader: 'value',\n inputNumber: 'value',\n inputPassword: 'value',\n textarea: 'value',\n rate: 'value',\n slider: 'value',\n treeSelect: 'value',\n switch: 'checked',\n}\n","import is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v) {\n return new Promise((resolve, reject) => {\n is.empty(v) ? reject(validate.message) : resolve();\n })\n },\n ...val,\n };\n const title = rule.__fc__.refRule?.__$title?.value;\n if (!validate.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = validate.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\n\nexport default required\n","import components from '../components'\nimport parsers from '../parsers'\nimport alias from './alias'\nimport manager from './manager'\nimport FormCreateFactory from '@longhongguo/form-create-core/src/index'\nimport makers from './maker'\nimport '../style/index.css'\nimport extendApi from './api'\nimport modelFields from './modelFields'\nimport required from './provider'\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias)\n\n Object.keys(modelFields).forEach((k) => {\n FormCreate.setModelField(k, modelFields[k])\n })\n\n components.forEach((component) => {\n FormCreate.component(component.name, component)\n })\n\n FormCreate.register(required)\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser)\n })\n\n Object.keys(makers).forEach((name) => {\n FormCreate.maker[name] = makers[name]\n })\n\n if (typeof window !== 'undefined' && window.antd) {\n FormCreate.useApp((_, app) => {\n app.use(window.antd)\n })\n }\n}\n\nexport default function antdvFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info']\n }\n })\n}\n","import antdvFormCreate from './core/index';\n\nconst FormCreate = antdvFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["script","name","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_cache","_createElementVNode","height","width","xmlns","viewBox","createElementVNode","d","fill","components","upload","frame","group","subForm","QuestionCircleOutlined","checkbox","modelField","mergeProp","ctx","props","prop","hasProperty","options","radio","select","fetchData","effectData","loading","disabled","render","children","newChildren","notFoundContent","$render","defaultRender","cascader","FORMAT_TYPE","date","month","week","quarter","year","datePicker","maker","reduce","initial","type","creatorFactory","dateRange","datetimeRange","m","showTime","picker","valueFormat","vNode","range","hidden","field","value","input","idate","indexOf","textarea","search","password","make","timePicker","tree","fieldNames","key","checkedKeys","rule","checkable","row","_","col","span","default","parsers","alias","tooltip","PRE","popover","button","icon","slider","rate","timeRangePicker","rangePicker","switch","inputNumber","treeSelect","inputPassword","formItem","form","autoComplete","transfer","array","object","tidy","is","String","[object Object]","show","isFalse","val","tidyRule","_rule","manager","validate","this","Promise","v","validateField","validateFields","clearValidateState","fItem","vm","refs","wrapRef","clearValidate","tidyOptions","forEach","opt","Object","tidyBool","def","info","placement","title","wrap","mergeProps","onPreview","originalOnPreview","sendPreviewMessage","file","window","parent","postMessage","url","uid","size","timestamp","Date","now","apply","arguments","getDefaultOptions","hideRequiredMark","layout","labelAlign","labelCol","wrapperCol","validateOnRuleChange","gutter","submitBtn","innerText","undefined","click","resetBtn","adapterValidate","validator","resolve","reject","err","update","on","submit","e","preventDefault","style","beforeRender","ref","$handle","extend","className","preview","model","formData","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","item","hasFeedback","id","rules","injectValidate","mergeClass","label","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","isTip","titleSlot","getSlot","refRule","__$title","align","_ctx$refRule3","__$info","slot","_prop","vn","push","makeSubmitBtn","makeResetBtn","length","colon","api","t","marginLeft","fApi","resetFields","catch","tidyBtnProp","btn","Boolean","Undef","extendApi","h","formEl","$manager","wrapEl","getFieldCtx","callback","forms","all","filter","isScope","then","emit","emitEvent","sub","toArray","fields","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","Array","isArray","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","Function","invoke","onSubmit","args","request","config","action","fetch","throttle","fn","delay","timer","clearTimeout","setTimeout","debounce","auto","number","time","useAlias","useSlider","types","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","keys","maxLength","frameInput","frameFile","frameImage","useFrame","image","uploadFileOne","uploadImageOne","uploadType","uploadImage","uploadFile","useUpload","selectMultiple","mode","selectTags","selectCombobox","modelFields","required","load","inject","message","parseVal","getValue","clearProp","_rule$__fc__$refRule","empty","__fc__","match","getLocale","getProp","sync","watch","install","FormCreate","componentAlias","k","setModelField","component","register","parser","makers","antd","useApp","app","use","FormCreateFactory","ui","version","attrs","normal","formCreate"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longhongguo/form-create-ant-design-vue",
3
- "version": "3.2.39",
3
+ "version": "3.2.41",
4
4
  "description": "AntDesignVue版本低代码表单|FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的低代码表单生成组件。支持6个UI框架,适配移动端,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。",
5
5
  "main": "./dist/form-create.min.js",
6
6
  "module": "./dist/form-create.esm.js",
package/src/core/api.js CHANGED
@@ -205,6 +205,26 @@ export default function extendApi(api, h) {
205
205
  }
206
206
  // 使用 api.fetch 方法,它内部使用 frame/fetch.js 封装的 asyncFetch
207
207
  return api.fetch(config)
208
+ },
209
+ // 节流,在指定时间间隔内,如果多次触发,只执行一次
210
+ throttle(fn, delay) {
211
+ let timer = null
212
+ return function (...args) {
213
+ if (timer) clearTimeout(timer)
214
+ timer = setTimeout(() => {
215
+ fn.apply(this, args)
216
+ }, delay)
217
+ }
218
+ },
219
+ // 防抖,在指定时间间隔内,如果多次触发,只执行最后一次
220
+ debounce(fn, delay) {
221
+ let timer = null
222
+ return function (...args) {
223
+ if (timer) clearTimeout(timer)
224
+ timer = setTimeout(() => {
225
+ fn.apply(this, args)
226
+ }, delay)
227
+ }
208
228
  }
209
229
  }
210
230
  }
package/src/core/maker.js CHANGED
@@ -72,7 +72,10 @@ function useUpload(maker) {
72
72
 
73
73
  Object.keys(types).reduce((maker, key) => {
74
74
  maker[key] = creatorFactory('upload', (m) =>
75
- m.props({ uploadType: types[key][0], maxLength: types[key][1] })
75
+ m.props({
76
+ uploadType: types[key][0],
77
+ maxLength: types[key][1]
78
+ })
76
79
  )
77
80
  return maker
78
81
  }, maker)
@@ -83,6 +83,59 @@ export default {
83
83
  def[name]
84
84
  )
85
85
  })
86
+
87
+ // 为 upload 组件自动添加 onPreview,确保始终向父窗口发送预览通知
88
+ if (ctx.rule.type === 'upload' && !ctx.prop.props.onPreview) {
89
+ const sendPreviewMessage = function (file) {
90
+ if (window.parent && window.parent !== window) {
91
+ window.parent.postMessage(
92
+ {
93
+ type: 'upload-preview',
94
+ file: {
95
+ url: file.url,
96
+ name: file.name,
97
+ uid: file.uid,
98
+ size: file.size,
99
+ type: file.type
100
+ },
101
+ timestamp: Date.now()
102
+ },
103
+ '*'
104
+ )
105
+ }
106
+ }
107
+ ctx.prop.props.onPreview = function (file) {
108
+ sendPreviewMessage(file)
109
+ // 不执行默认预览,只发送消息
110
+ }
111
+ } else if (ctx.rule.type === 'upload' && ctx.prop.props.onPreview) {
112
+ // 如果用户已经设置了 onPreview,包装它以确保先发送消息
113
+ const originalOnPreview = ctx.prop.props.onPreview
114
+ const sendPreviewMessage = function (file) {
115
+ if (window.parent && window.parent !== window) {
116
+ window.parent.postMessage(
117
+ {
118
+ type: 'upload-preview',
119
+ file: {
120
+ url: file.url,
121
+ name: file.name,
122
+ uid: file.uid,
123
+ size: file.size,
124
+ type: file.type
125
+ },
126
+ timestamp: Date.now()
127
+ },
128
+ '*'
129
+ )
130
+ }
131
+ }
132
+ ctx.prop.props.onPreview = function (file) {
133
+ sendPreviewMessage(file)
134
+ if (originalOnPreview && typeof originalOnPreview === 'function') {
135
+ originalOnPreview.apply(this, arguments)
136
+ }
137
+ }
138
+ }
86
139
  },
87
140
  getDefaultOptions() {
88
141
  return getConfig()
@@ -1,12 +1,12 @@
1
- import {hasProperty} from '@form-create/utils/lib/type';
2
-
3
- export default {
4
- name: 'checkbox',
5
- modelField: 'value',
6
- mergeProp(ctx) {
7
- const props = ctx.prop.props;
8
- if (!hasProperty(props, 'options'))
9
- props.options = ctx.prop.options || [];
10
- }
11
-
12
- }
1
+ import {hasProperty} from '@form-create/utils/lib/type';
2
+
3
+ export default {
4
+ name: 'checkbox',
5
+ modelField: 'value',
6
+ mergeProp(ctx) {
7
+ const props = ctx.prop.props;
8
+ if (!hasProperty(props, 'options'))
9
+ props.options = ctx.prop.options || [];
10
+ }
11
+
12
+ }
@@ -1,23 +1,23 @@
1
- .form-create .form-create .ant-form-item {
2
- margin-bottom: 22px;
3
- }
4
-
5
- .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
- margin-bottom: 3px;
7
- }
8
-
9
- .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
- margin-bottom: -22px;
11
- }
12
-
13
- .form-create{
14
- width: 100%;
15
- }
16
-
17
- .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
- display: none !important;
19
- }
20
-
21
- .fc-form-footer {
22
- margin-top: 12px;
1
+ .form-create .form-create .ant-form-item {
2
+ margin-bottom: 22px;
3
+ }
4
+
5
+ .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
+ margin-bottom: 3px;
7
+ }
8
+
9
+ .form-create .form-create .ant-form-item .ant-form-item.ant-form-item-with-help {
10
+ margin-bottom: -22px;
11
+ }
12
+
13
+ .form-create{
14
+ width: 100%;
15
+ }
16
+
17
+ .form-create.is-preview .fc-clock, .form-create .fc-none, .form-create.is-preview .ant-form-item .ant-form-item-label >label.ant-form-item-required::before {
18
+ display: none !important;
19
+ }
20
+
21
+ .fc-form-footer {
22
+ margin-top: 12px;
23
23
  }