vxe-design 4.0.8 → 4.1.0

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,7 +1,7 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { checkDependVersion } from '../ui/src/depend';
3
3
  import VxeFormDesignComponent from './src/form-design';
4
- import { useWidgetView, useWidgetName, useSubtableView, useWidgetPropDataSource } from './src/use';
4
+ import { useFormView, useWidgetView, useWidgetName, useSubtableView, useWidgetPropDataSource } from './src/use';
5
5
  import './render';
6
6
  export const VxeFormDesign = Object.assign({}, VxeFormDesignComponent, {
7
7
  install(app) {
@@ -10,6 +10,7 @@ export const VxeFormDesign = Object.assign({}, VxeFormDesignComponent, {
10
10
  }
11
11
  });
12
12
  const formDesignHandle = {
13
+ useFormView,
13
14
  useWidgetName,
14
15
  useWidgetView,
15
16
  useSubtableView,
@@ -40,6 +40,10 @@ export default defineVxeComponent({
40
40
  type: Boolean,
41
41
  default: () => getConfig().formDesign.showMobile
42
42
  },
43
+ showStyleSetting: {
44
+ type: Boolean,
45
+ default: () => getConfig().formDesign.showStyleSetting
46
+ },
43
47
  formRender: Object,
44
48
  menuConfig: Object
45
49
  },
@@ -406,17 +410,18 @@ export default defineVxeComponent({
406
410
  };
407
411
  const createSettingForm = () => {
408
412
  const { formRender, showPc, showMobile } = props;
409
- let conf = getDefaultSettingFormData({
413
+ const defConf = getDefaultSettingFormData({
410
414
  pcVisible: showPc,
411
415
  mobileVisible: showMobile
412
416
  });
417
+ let customConf = {};
413
418
  // 如果为自定义渲染
414
419
  if (formRender) {
415
420
  const compConf = renderer.get(formRender.name);
416
421
  const createFormConfig = compConf ? compConf.createFormDesignSettingFormConfig : null;
417
- conf = (createFormConfig ? createFormConfig({}) : {}) || {};
422
+ customConf = (createFormConfig ? createFormConfig({}) : {}) || {};
418
423
  }
419
- return conf;
424
+ return Object.assign({}, defConf, customConf);
420
425
  };
421
426
  const initSettingForm = () => {
422
427
  reactData.formData = createSettingForm();
@@ -426,6 +431,7 @@ export default defineVxeComponent({
426
431
  };
427
432
  Object.assign($xeFormDesign, formDesignMethods, formDesignPrivateMethods);
428
433
  const renderLayoutHeader = () => {
434
+ const { showStyleSetting } = props;
429
435
  const titleSlot = slots.title;
430
436
  const titlePrefixSlot = slots.titlePrefix || slots['title-prefix'];
431
437
  const titleSuffixSlot = slots.titleSuffix || slots['title-suffix'] || slots.extra;
@@ -446,17 +452,19 @@ export default defineVxeComponent({
446
452
  class: 'vxe-form-design--header-extra'
447
453
  }, titleSuffixSlot({}))
448
454
  : renderEmptyElement($xeFormDesign),
449
- h('div', {
450
- class: 'vxe-form-design--header-setting'
451
- }, [
452
- h(VxeUIButtonComponent, {
453
- mode: 'text',
454
- status: 'primary',
455
- icon: getIcon().FORM_DESIGN_STYLE_SETTING,
456
- content: getI18n('vxe.formDesign.styleSetting.btn'),
457
- onClick: openStylePreviewEvent
458
- })
459
- ])
455
+ showStyleSetting
456
+ ? h('div', {
457
+ class: 'vxe-form-design--header-setting'
458
+ }, [
459
+ h(VxeUIButtonComponent, {
460
+ mode: 'text',
461
+ status: 'primary',
462
+ icon: getIcon().FORM_DESIGN_STYLE_SETTING,
463
+ content: getI18n('vxe.formDesign.styleSetting.btn'),
464
+ onClick: openStylePreviewEvent
465
+ })
466
+ ])
467
+ : renderEmptyElement($xeFormDesign)
460
468
  ])
461
469
  ]);
462
470
  };
@@ -39,7 +39,7 @@ export default defineVxeComponent({
39
39
  if (renderSettingView) {
40
40
  return h('div', {
41
41
  class: 'vxe-form-design--custom-setting-form-view'
42
- }, getSlotVNs(renderSettingView({}, { $formDesign: $xeFormDesign })));
42
+ }, getSlotVNs(renderSettingView(formRender, { formConfig: formData, $formDesign: $xeFormDesign })));
43
43
  }
44
44
  }
45
45
  return h(DefaultSettingFormComponent, {
@@ -0,0 +1,3 @@
1
+ export function useFormView(props) {
2
+ return props.renderParams;
3
+ }
@@ -1,3 +1,4 @@
1
+ export * from './form-view';
1
2
  export * from './widget-name';
2
3
  export * from './widget-view';
3
4
  export * from './widget-subtable-view';
package/es/ui/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { setConfig, setIcon } = VxeUI;
3
- VxeUI.designVersion = "4.0.8";
3
+ VxeUI.designVersion = "4.1.0";
4
4
  setConfig({
5
5
  formDesign: {
6
6
  height: 400,
7
7
  showHeader: true,
8
- showPc: true
8
+ showPc: true,
9
+ showStyleSetting: false
9
10
  },
10
11
  formView: {},
11
12
  listDesign: {
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `design v${"4.0.8"}`;
3
+ const version = `design v${"4.1.0"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -17,6 +17,7 @@ const VxeFormDesign = exports.VxeFormDesign = Object.assign({}, _formDesign.defa
17
17
  }
18
18
  });
19
19
  const formDesignHandle = {
20
+ useFormView: _use.useFormView,
20
21
  useWidgetName: _use.useWidgetName,
21
22
  useWidgetView: _use.useWidgetView,
22
23
  useSubtableView: _use.useSubtableView,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.VxeFormDesign=exports.FormDesign=void 0;var _core=require("@vxe-ui/core"),_depend=require("../ui/src/depend"),_formDesign=_interopRequireDefault(require("./src/form-design")),_use=require("./src/use");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}require("./render");let VxeFormDesign=exports.VxeFormDesign=Object.assign({},_formDesign.default,{install(e){(0,_depend.checkDependVersion)(),e.component(_formDesign.default.name,_formDesign.default)}}),formDesignHandle={useWidgetName:_use.useWidgetName,useWidgetView:_use.useWidgetView,useSubtableView:_use.useSubtableView,useWidgetPropDataSource:_use.useWidgetPropDataSource},FormDesign=(_core.VxeUI.dynamicApp&&_core.VxeUI.dynamicApp.use(VxeFormDesign),_core.VxeUI.component(_formDesign.default),_core.VxeUI.formDesignHandle=formDesignHandle,_core.VxeUI.formDesign=formDesignHandle,exports.FormDesign=VxeFormDesign);var _default=exports.default=VxeFormDesign;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.VxeFormDesign=exports.FormDesign=void 0;var _core=require("@vxe-ui/core"),_depend=require("../ui/src/depend"),_formDesign=_interopRequireDefault(require("./src/form-design")),_use=require("./src/use");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}require("./render");let VxeFormDesign=exports.VxeFormDesign=Object.assign({},_formDesign.default,{install(e){(0,_depend.checkDependVersion)(),e.component(_formDesign.default.name,_formDesign.default)}}),formDesignHandle={useFormView:_use.useFormView,useWidgetName:_use.useWidgetName,useWidgetView:_use.useWidgetView,useSubtableView:_use.useSubtableView,useWidgetPropDataSource:_use.useWidgetPropDataSource},FormDesign=(_core.VxeUI.dynamicApp&&_core.VxeUI.dynamicApp.use(VxeFormDesign),_core.VxeUI.component(_formDesign.default),_core.VxeUI.formDesignHandle=formDesignHandle,_core.VxeUI.formDesign=formDesignHandle,exports.FormDesign=VxeFormDesign);var _default=exports.default=VxeFormDesign;
@@ -58,6 +58,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
58
58
  type: Boolean,
59
59
  default: () => getConfig().formDesign.showMobile
60
60
  },
61
+ showStyleSetting: {
62
+ type: Boolean,
63
+ default: () => getConfig().formDesign.showStyleSetting
64
+ },
61
65
  formRender: Object,
62
66
  menuConfig: Object
63
67
  },
@@ -484,17 +488,18 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
484
488
  showPc,
485
489
  showMobile
486
490
  } = props;
487
- let conf = (0, _defaultSettingData.getDefaultSettingFormData)({
491
+ const defConf = (0, _defaultSettingData.getDefaultSettingFormData)({
488
492
  pcVisible: showPc,
489
493
  mobileVisible: showMobile
490
494
  });
495
+ let customConf = {};
491
496
  // 如果为自定义渲染
492
497
  if (formRender) {
493
498
  const compConf = renderer.get(formRender.name);
494
499
  const createFormConfig = compConf ? compConf.createFormDesignSettingFormConfig : null;
495
- conf = (createFormConfig ? createFormConfig({}) : {}) || {};
500
+ customConf = (createFormConfig ? createFormConfig({}) : {}) || {};
496
501
  }
497
- return conf;
502
+ return Object.assign({}, defConf, customConf);
498
503
  };
499
504
  const initSettingForm = () => {
500
505
  reactData.formData = createSettingForm();
@@ -504,6 +509,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
504
509
  };
505
510
  Object.assign($xeFormDesign, formDesignMethods, formDesignPrivateMethods);
506
511
  const renderLayoutHeader = () => {
512
+ const {
513
+ showStyleSetting
514
+ } = props;
507
515
  const titleSlot = slots.title;
508
516
  const titlePrefixSlot = slots.titlePrefix || slots['title-prefix'];
509
517
  const titleSuffixSlot = slots.titleSuffix || slots['title-suffix'] || slots.extra;
@@ -517,7 +525,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
517
525
  class: 'vxe-form-design--header-right'
518
526
  }, [titleSuffixSlot ? (0, _vue.h)('div', {
519
527
  class: 'vxe-form-design--header-extra'
520
- }, titleSuffixSlot({})) : renderEmptyElement($xeFormDesign), (0, _vue.h)('div', {
528
+ }, titleSuffixSlot({})) : renderEmptyElement($xeFormDesign), showStyleSetting ? (0, _vue.h)('div', {
521
529
  class: 'vxe-form-design--header-setting'
522
530
  }, [(0, _vue.h)(VxeUIButtonComponent, {
523
531
  mode: 'text',
@@ -525,7 +533,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
525
533
  icon: getIcon().FORM_DESIGN_STYLE_SETTING,
526
534
  content: getI18n('vxe.formDesign.styleSetting.btn'),
527
535
  onClick: openStylePreviewEvent
528
- })])])]);
536
+ })]) : renderEmptyElement($xeFormDesign)])]);
529
537
  };
530
538
  const renderVN = () => {
531
539
  const {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_widgetInfo=require("./widget-info"),_xeUtils=_interopRequireDefault(require("xe-utils")),_layoutWidget=_interopRequireDefault(require("./layout-widget")),_layoutPreview=_interopRequireDefault(require("./layout-preview")),_layoutSetting=_interopRequireDefault(require("./layout-setting")),_layoutStyle=_interopRequireDefault(require("./layout-style")),_defaultSettingData=require("./default-setting-data");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,getConfig,getIcon,getI18n,renderer,createEvent,renderEmptyElement,useFns}=_core.VxeUI,useSize=useFns.useSize;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeFormDesign",props:{size:{type:String,default:()=>getConfig().formDesign.size||getConfig().size},config:Object,height:{type:[String,Number],default:()=>getConfig().formDesign.height},widgets:{type:Array,default:()=>_xeUtils.default.clone(getConfig().formDesign.widgets)||[]},showHeader:{type:Boolean,default:()=>getConfig().formDesign.showHeader},showPc:{type:Boolean,default:()=>getConfig().formDesign.showPc},showMobile:{type:Boolean,default:()=>getConfig().formDesign.showMobile},formRender:Object,menuConfig:Object},emits:["widget-click","widget-add","widget-copy","widget-remove","widget-drag","widget-menu","menu-click","click-widget","add-widget","copy-widget","remove-widget","drag-widget"],setup(l,e){let d=_core.VxeUI.getComponent("vxe-button"),{emit:r,slots:o}=e;var t=_xeUtils.default.uniqueId();let g=(0,_vue.ref)(),a=(0,_vue.ref)(),u=useSize(l).computeSize,s=(0,_vue.reactive)({formData:{},widgetConfigs:[],widgetObjList:[],dragWidget:null,sortWidget:null,activeWidget:null});var i=(0,_vue.reactive)({});let n={refElem:g},f=(0,_vue.computed)(()=>Object.assign({},getConfig().calendar.menuConfig,l.menuConfig)),c={computeSize:u},v={xID:t,props:l,context:e,reactData:s,internalData:i,getRefMaps:()=>n,getComputeMaps:()=>c},m=e=>new _widgetInfo.FormDesignWidgetInfo(v,e,s.widgetObjList),h=()=>new _widgetInfo.FormDesignWidgetInfo(v,"",s.widgetObjList),p=e=>{var t;e&&({formConfig:e,widgetData:t}=e,e&&_(e),t)&&y(t);let{activeWidget:i,widgetObjList:r}=s;return i?(e=_xeUtils.default.findTree(r,e=>e.id===i.id,{children:"children"}),s.activeWidget=e?e.item:r[0]||null):s.activeWidget=r[0]||null,(0,_vue.nextTick)()};let w=()=>_xeUtils.default.clone(s.formData,!0),_=e=>(s.formData=Object.assign({},S(),e),(0,_vue.nextTick)());let x=()=>{var e=_xeUtils.default.clone(s.widgetObjList,!0);return _xeUtils.default.eachTree(e,e=>{e.model.value=null},{children:"children"}),e},y=e=>(s.widgetObjList=(e||[]).map(e=>(0,_widgetInfo.configToWidget)(e)),(0,_vue.nextTick)()),D=()=>{var e=a.value;return e&&e.openStylePreview(),(0,_vue.nextTick)()},C=()=>(s.widgetObjList=[],U(),(0,_vue.nextTick)()),b=(e,t,i)=>{r(e,createEvent(i,{$formDesign:v},t))};t={dispatchEvent:b,createWidget:m,createEmptyWidget:h,getConfig(){return{formConfig:w(),widgetData:x()}},clearConfig:C,loadConfig:p,reloadConfig:e=>(C(),p(e)),getFormConfig:w,loadFormConfig:_,getWidgetById:e=>{var i=s.widgetObjList;if(e){let t=_xeUtils.default.toNumber(e);e=_xeUtils.default.findTree(i,e=>e&&e.id===t,{children:"children"});if(e)return e.item}return null},getFormData(){var e=s.widgetObjList;let t={};return _xeUtils.default.eachTree(e,e=>{t[e.field]=null},{children:"children"}),t},getWidgetData:x,loadWidgetData:y,refreshPreviewView(){var e=a.value;return e&&e.updatePreviewView(),(0,_vue.nextTick)()},openStyleSetting:D};let W=()=>{var e=l.widgets,t=[];let n=[],d=[],o=[],g=[];renderer.forEach((e,i)=>{e=e.createFormDesignWidgetConfig;if(e){var r=m(i),e=(0,_widgetInfo.getWidgetConfig)(i);let t=(0,_widgetInfo.getWidgetConfigCustomGroup)(i,v);if(t){i=g.find(e=>e.title===t);i?i.children.push(r):g.push({title:t,children:[r]})}else switch(e.group){case"layout":d.push(r);break;case"advanced":o.push(r);break;default:["title"].includes(r.name)||n.push(r)}}}),n.length&&t.push({group:"base",children:n}),d.length&&t.push({group:"layout",children:d}),o.length&&t.push({group:"advanced",children:o}),g.length&&t.push(...g),e&&e.length?s.widgetConfigs=l.widgets.map(e=>({title:e.customGroup,group:e.group,children:e.children?e.children.map(e=>m(e)):[]})):s.widgetConfigs=t},I=i=>{var e=s.widgetObjList;if((0,_widgetInfo.getWidgetConfig)(i).unique){let t=[];_xeUtils.default.eachTree(e,e=>{e.name===i&&t.push(e)},{children:"children"});e=t.length<1;return e||_core.VxeUI.modal&&_core.VxeUI.modal.message({content:getI18n("vxe.formDesign.error.wdFormUni"),status:"error",id:"wdFormUni"}),e}return!0};e={validWidgetUnique:I,handleContextmenuWidget(r,n){var e=l.menuConfig,t=f.value;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$formDesign:v,widget:n,options:e})||_core.VxeUI.contextMenu&&_core.VxeUI.contextMenu.openByEvent(r,{options:e,events:{optionClick(e){var t=e.option,i=menus.get(t.code),i=i?i.formDesignMenuMethod:null,t={menu:t,widget:n,$event:r,$formDesign:v};i&&i(t,r),b("menu-click",t,e.$event)}}})),b("widget-menu",{widget:n},r)},handleClickWidget(e,t){t&&t.name&&(e.stopPropagation(),s.activeWidget=t,b("widget-click",{widget:t},e),b("click-widget",{widget:t},e))},handleCopyWidget(e,t){var i,r=s.widgetObjList,n=_xeUtils.default.findTree(r,e=>e.id===t.id,{children:"children"});n&&(e.stopPropagation(),I(t.name))&&(n=n.path,n=Number(n[0]),(i=m(t.name)).title&&(i.title=getI18n("vxe.formDesign.widget.copyTitle",[(""+t.title).replace(getI18n("vxe.formDesign.widget.copyTitle",[""]),"")])),n>=r.length-1?r.push(i):r.splice(n+1,0,i),s.activeWidget=i,s.widgetObjList=[...r],b("widget-copy",{widget:t,newWidget:i},e),b("copy-widget",{widget:i},e))},handleRemoveWidget(e,t){var i,r,n=s.widgetObjList,d=_xeUtils.default.findTree(n,e=>e.id===t.id,{children:"children"});d&&({index:d,parent:i,items:r}=d,e.stopPropagation(),d>=r.length-1?s.activeWidget=r[d-1]:s.activeWidget=r[d+1]||null,i&&"row"===i.name?r[d]=h():r.splice(d,1),s.widgetObjList=[...n],b("widget-remove",{widget:t},e),b("remove-widget",{widget:t},e))}};let S=()=>{var{formRender:e,showPc:t,showMobile:i}=l;let r=(0,_defaultSettingData.getDefaultSettingFormData)({pcVisible:t,mobileVisible:i});return e&&(i=(t=renderer.get(e.name))?t.createFormDesignSettingFormConfig:null,r=(i?i({}):{})||{}),r},U=()=>{s.formData=S()},O=()=>{D()};Object.assign(v,t,e);return v.renderVN=()=>{var{height:e,showHeader:t}=l,i=u.value,r=o.header,n=o.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-form-design",{["size--"+i]:i}],style:e?{height:(0,_dom.toCssUnit)(e)}:null},[t||r?(0,_vue.h)("div",{class:"vxe-form-design--header"},r?r({}):(i=o.title,e=o.titlePrefix||o["title-prefix"],t=o.titleSuffix||o["title-suffix"]||o.extra,(0,_vue.h)("div",{class:"vxe-form-design--header-wrapper"},[(0,_vue.h)("div",{class:"vxe-form-design--header-left"},e?e({}):[]),(0,_vue.h)("div",{class:"vxe-form-design--header-middle"},i?i({}):[]),(0,_vue.h)("div",{class:"vxe-form-design--header-right"},[t?(0,_vue.h)("div",{class:"vxe-form-design--header-extra"},t({})):renderEmptyElement(v),(0,_vue.h)("div",{class:"vxe-form-design--header-setting"},[(0,_vue.h)(d,{mode:"text",status:"primary",icon:getIcon().FORM_DESIGN_STYLE_SETTING,content:getI18n("vxe.formDesign.styleSetting.btn"),onClick:O})])])]))):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-form-design--body"},[(0,_vue.h)(_layoutWidget.default),(0,_vue.h)(_layoutPreview.default),(0,_vue.h)(_layoutSetting.default),(0,_vue.h)(_layoutStyle.default,{ref:a})]),n?(0,_vue.h)("div",{class:"vxe-form-design--footer"},n?n({}):[]):(0,_vue.createCommentVNode)()])},(0,_vue.watch)(()=>l.widgets,()=>{W()}),(0,_vue.watch)(()=>l.widgets,()=>{W()}),(0,_vue.watch)(()=>l.config,e=>{p(e||{})}),U(),W(),l.config&&p(l.config),(0,_vue.provide)("$xeFormDesign",v),v},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_widgetInfo=require("./widget-info"),_xeUtils=_interopRequireDefault(require("xe-utils")),_layoutWidget=_interopRequireDefault(require("./layout-widget")),_layoutPreview=_interopRequireDefault(require("./layout-preview")),_layoutSetting=_interopRequireDefault(require("./layout-setting")),_layoutStyle=_interopRequireDefault(require("./layout-style")),_defaultSettingData=require("./default-setting-data");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,getConfig,getIcon,getI18n,renderer,createEvent,renderEmptyElement,useFns}=_core.VxeUI,useSize=useFns.useSize;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeFormDesign",props:{size:{type:String,default:()=>getConfig().formDesign.size||getConfig().size},config:Object,height:{type:[String,Number],default:()=>getConfig().formDesign.height},widgets:{type:Array,default:()=>_xeUtils.default.clone(getConfig().formDesign.widgets)||[]},showHeader:{type:Boolean,default:()=>getConfig().formDesign.showHeader},showPc:{type:Boolean,default:()=>getConfig().formDesign.showPc},showMobile:{type:Boolean,default:()=>getConfig().formDesign.showMobile},showStyleSetting:{type:Boolean,default:()=>getConfig().formDesign.showStyleSetting},formRender:Object,menuConfig:Object},emits:["widget-click","widget-add","widget-copy","widget-remove","widget-drag","widget-menu","menu-click","click-widget","add-widget","copy-widget","remove-widget","drag-widget"],setup(l,e){let o=_core.VxeUI.getComponent("vxe-button"),{emit:r,slots:d}=e;var t=_xeUtils.default.uniqueId();let g=(0,_vue.ref)(),a=(0,_vue.ref)(),u=useSize(l).computeSize,s=(0,_vue.reactive)({formData:{},widgetConfigs:[],widgetObjList:[],dragWidget:null,sortWidget:null,activeWidget:null});var i=(0,_vue.reactive)({});let n={refElem:g},f=(0,_vue.computed)(()=>Object.assign({},getConfig().calendar.menuConfig,l.menuConfig)),c={computeSize:u},v={xID:t,props:l,context:e,reactData:s,internalData:i,getRefMaps:()=>n,getComputeMaps:()=>c},m=e=>new _widgetInfo.FormDesignWidgetInfo(v,e,s.widgetObjList),h=()=>new _widgetInfo.FormDesignWidgetInfo(v,"",s.widgetObjList),p=e=>{var t;e&&({formConfig:e,widgetData:t}=e,e&&_(e),t)&&y(t);let{activeWidget:i,widgetObjList:r}=s;return i?(e=_xeUtils.default.findTree(r,e=>e.id===i.id,{children:"children"}),s.activeWidget=e?e.item:r[0]||null):s.activeWidget=r[0]||null,(0,_vue.nextTick)()};let w=()=>_xeUtils.default.clone(s.formData,!0),_=e=>(s.formData=Object.assign({},I(),e),(0,_vue.nextTick)());let x=()=>{var e=_xeUtils.default.clone(s.widgetObjList,!0);return _xeUtils.default.eachTree(e,e=>{e.model.value=null},{children:"children"}),e},y=e=>(s.widgetObjList=(e||[]).map(e=>(0,_widgetInfo.configToWidget)(e)),(0,_vue.nextTick)()),D=()=>{var e=a.value;return e&&e.openStylePreview(),(0,_vue.nextTick)()},C=()=>(s.widgetObjList=[],O(),(0,_vue.nextTick)()),b=(e,t,i)=>{r(e,createEvent(i,{$formDesign:v},t))};t={dispatchEvent:b,createWidget:m,createEmptyWidget:h,getConfig(){return{formConfig:w(),widgetData:x()}},clearConfig:C,loadConfig:p,reloadConfig:e=>(C(),p(e)),getFormConfig:w,loadFormConfig:_,getWidgetById:e=>{var i=s.widgetObjList;if(e){let t=_xeUtils.default.toNumber(e);e=_xeUtils.default.findTree(i,e=>e&&e.id===t,{children:"children"});if(e)return e.item}return null},getFormData(){var e=s.widgetObjList;let t={};return _xeUtils.default.eachTree(e,e=>{t[e.field]=null},{children:"children"}),t},getWidgetData:x,loadWidgetData:y,refreshPreviewView(){var e=a.value;return e&&e.updatePreviewView(),(0,_vue.nextTick)()},openStyleSetting:D};let W=()=>{var e=l.widgets,t=[];let n=[],o=[],d=[],g=[];renderer.forEach((e,i)=>{e=e.createFormDesignWidgetConfig;if(e){var r=m(i),e=(0,_widgetInfo.getWidgetConfig)(i);let t=(0,_widgetInfo.getWidgetConfigCustomGroup)(i,v);if(t){i=g.find(e=>e.title===t);i?i.children.push(r):g.push({title:t,children:[r]})}else switch(e.group){case"layout":o.push(r);break;case"advanced":d.push(r);break;default:["title"].includes(r.name)||n.push(r)}}}),n.length&&t.push({group:"base",children:n}),o.length&&t.push({group:"layout",children:o}),d.length&&t.push({group:"advanced",children:d}),g.length&&t.push(...g),e&&e.length?s.widgetConfigs=l.widgets.map(e=>({title:e.customGroup,group:e.group,children:e.children?e.children.map(e=>m(e)):[]})):s.widgetConfigs=t},S=i=>{var e=s.widgetObjList;if((0,_widgetInfo.getWidgetConfig)(i).unique){let t=[];_xeUtils.default.eachTree(e,e=>{e.name===i&&t.push(e)},{children:"children"});e=t.length<1;return e||_core.VxeUI.modal&&_core.VxeUI.modal.message({content:getI18n("vxe.formDesign.error.wdFormUni"),status:"error",id:"wdFormUni"}),e}return!0};e={validWidgetUnique:S,handleContextmenuWidget(r,n){var e=l.menuConfig,t=f.value;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$formDesign:v,widget:n,options:e})||_core.VxeUI.contextMenu&&_core.VxeUI.contextMenu.openByEvent(r,{options:e,events:{optionClick(e){var t=e.option,i=menus.get(t.code),i=i?i.formDesignMenuMethod:null,t={menu:t,widget:n,$event:r,$formDesign:v};i&&i(t,r),b("menu-click",t,e.$event)}}})),b("widget-menu",{widget:n},r)},handleClickWidget(e,t){t&&t.name&&(e.stopPropagation(),s.activeWidget=t,b("widget-click",{widget:t},e),b("click-widget",{widget:t},e))},handleCopyWidget(e,t){var i,r=s.widgetObjList,n=_xeUtils.default.findTree(r,e=>e.id===t.id,{children:"children"});n&&(e.stopPropagation(),S(t.name))&&(n=n.path,n=Number(n[0]),(i=m(t.name)).title&&(i.title=getI18n("vxe.formDesign.widget.copyTitle",[(""+t.title).replace(getI18n("vxe.formDesign.widget.copyTitle",[""]),"")])),n>=r.length-1?r.push(i):r.splice(n+1,0,i),s.activeWidget=i,s.widgetObjList=[...r],b("widget-copy",{widget:t,newWidget:i},e),b("copy-widget",{widget:i},e))},handleRemoveWidget(e,t){var i,r,n=s.widgetObjList,o=_xeUtils.default.findTree(n,e=>e.id===t.id,{children:"children"});o&&({index:o,parent:i,items:r}=o,e.stopPropagation(),o>=r.length-1?s.activeWidget=r[o-1]:s.activeWidget=r[o+1]||null,i&&"row"===i.name?r[o]=h():r.splice(o,1),s.widgetObjList=[...n],b("widget-remove",{widget:t},e),b("remove-widget",{widget:t},e))}};let I=()=>{var{formRender:e,showPc:t,showMobile:i}=l,t=(0,_defaultSettingData.getDefaultSettingFormData)({pcVisible:t,mobileVisible:i});let r={};return e&&(e=(i=renderer.get(e.name))?i.createFormDesignSettingFormConfig:null,r=(e?e({}):{})||{}),Object.assign({},t,r)},O=()=>{s.formData=I()},U=()=>{D()};Object.assign(v,t,e);return v.renderVN=()=>{var{height:e,showHeader:t}=l,i=u.value,r=d.header,n=d.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-form-design",{["size--"+i]:i}],style:e?{height:(0,_dom.toCssUnit)(e)}:null},[t||r?(0,_vue.h)("div",{class:"vxe-form-design--header"},r?r({}):(i=l.showStyleSetting,e=d.title,t=d.titlePrefix||d["title-prefix"],r=d.titleSuffix||d["title-suffix"]||d.extra,(0,_vue.h)("div",{class:"vxe-form-design--header-wrapper"},[(0,_vue.h)("div",{class:"vxe-form-design--header-left"},t?t({}):[]),(0,_vue.h)("div",{class:"vxe-form-design--header-middle"},e?e({}):[]),(0,_vue.h)("div",{class:"vxe-form-design--header-right"},[r?(0,_vue.h)("div",{class:"vxe-form-design--header-extra"},r({})):renderEmptyElement(v),i?(0,_vue.h)("div",{class:"vxe-form-design--header-setting"},[(0,_vue.h)(o,{mode:"text",status:"primary",icon:getIcon().FORM_DESIGN_STYLE_SETTING,content:getI18n("vxe.formDesign.styleSetting.btn"),onClick:U})]):renderEmptyElement(v)])]))):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-form-design--body"},[(0,_vue.h)(_layoutWidget.default),(0,_vue.h)(_layoutPreview.default),(0,_vue.h)(_layoutSetting.default),(0,_vue.h)(_layoutStyle.default,{ref:a})]),n?(0,_vue.h)("div",{class:"vxe-form-design--footer"},n?n({}):[]):(0,_vue.createCommentVNode)()])},(0,_vue.watch)(()=>l.widgets,()=>{W()}),(0,_vue.watch)(()=>l.widgets,()=>{W()}),(0,_vue.watch)(()=>l.config,e=>{p(e||{})}),O(),W(),l.config&&p(l.config),(0,_vue.provide)("$xeFormDesign",v),v},render(){return this.renderVN()}});
@@ -60,7 +60,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
60
60
  if (renderSettingView) {
61
61
  return (0, _vue.h)('div', {
62
62
  class: 'vxe-form-design--custom-setting-form-view'
63
- }, (0, _vn.getSlotVNs)(renderSettingView({}, {
63
+ }, (0, _vn.getSlotVNs)(renderSettingView(formRender, {
64
+ formConfig: formData,
64
65
  $formDesign: $xeFormDesign
65
66
  })));
66
67
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_vn=require("../../ui/src/vn"),_defaultSettingForm=require("./default-setting-form"),_default=exports.default=(0,_comp.defineVxeComponent)({name:"FormDesignLayoutSetting",props:{},emits:[],setup(){let e=_core.VxeUI.getComponent("vxe-tabs"),t=_core.VxeUI.getComponent("vxe-tab-pane"),r=(0,_vue.inject)("$xeFormDesign",null);if(!r)return()=>[];let{props:i,reactData:n}=r,o=(0,_vue.ref)(1);return(0,_vue.watch)(()=>n.activeWidget,()=>{o.value=1}),()=>(0,_vue.h)("div",{class:"vxe-form-design--setting"},[(0,_vue.h)("div",{class:"vxe-form-design--setting-form"},[(0,_vue.h)(e,{modelValue:o.value,titleWidth:"50%",titleAlign:"center",padding:!0,class:"vxe-form-design--setting-form-tabs","onUpdate:modelValue"(e){o.value=e}},{default(){return[(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.formDesign.widgetPropTab"),name:1},{default(){return(()=>{var e=n.activeWidget;if(e){var t=_core.renderer.get(e.name),t=t?t.renderFormDesignWidgetFormView:null;if(t)return(0,_vue.h)("div",{class:"vxe-form-design--custom-widget-form-view"},(0,_vn.getSlotVNs)(t(e,{isEditMode:!0,isViewMode:!1,widget:e,$formDesign:r,$formView:null})))}return(0,_vue.createCommentVNode)()})()}}),(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.formDesign.widgetFormTab"),name:2},{default(){return(()=>{var e=i.formRender,t=n.formData;if(e){e=_core.renderer.get(e.name),e=e?e.renderFormDesignSettingFormView:null;if(e)return(0,_vue.h)("div",{class:"vxe-form-design--custom-setting-form-view"},(0,_vn.getSlotVNs)(e({},{$formDesign:r})))}return(0,_vue.h)(_defaultSettingForm.DefaultSettingFormComponent,{formData:t})})()}})]}})])])}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_vn=require("../../ui/src/vn"),_defaultSettingForm=require("./default-setting-form"),_default=exports.default=(0,_comp.defineVxeComponent)({name:"FormDesignLayoutSetting",props:{},emits:[],setup(){let e=_core.VxeUI.getComponent("vxe-tabs"),t=_core.VxeUI.getComponent("vxe-tab-pane"),i=(0,_vue.inject)("$xeFormDesign",null);if(!i)return()=>[];let{props:n,reactData:o}=i,r=(0,_vue.ref)(1);return(0,_vue.watch)(()=>o.activeWidget,()=>{r.value=1}),()=>(0,_vue.h)("div",{class:"vxe-form-design--setting"},[(0,_vue.h)("div",{class:"vxe-form-design--setting-form"},[(0,_vue.h)(e,{modelValue:r.value,titleWidth:"50%",titleAlign:"center",padding:!0,class:"vxe-form-design--setting-form-tabs","onUpdate:modelValue"(e){r.value=e}},{default(){return[(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.formDesign.widgetPropTab"),name:1},{default(){return(()=>{var e=o.activeWidget;if(e){var t=_core.renderer.get(e.name),t=t?t.renderFormDesignWidgetFormView:null;if(t)return(0,_vue.h)("div",{class:"vxe-form-design--custom-widget-form-view"},(0,_vn.getSlotVNs)(t(e,{isEditMode:!0,isViewMode:!1,widget:e,$formDesign:i,$formView:null})))}return(0,_vue.createCommentVNode)()})()}}),(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.formDesign.widgetFormTab"),name:2},{default(){return(()=>{var e=n.formRender,t=o.formData;if(e){var r=_core.renderer.get(e.name),r=r?r.renderFormDesignSettingFormView:null;if(r)return(0,_vue.h)("div",{class:"vxe-form-design--custom-setting-form-view"},(0,_vn.getSlotVNs)(r(e,{formConfig:t,$formDesign:i})))}return(0,_vue.h)(_defaultSettingForm.DefaultSettingFormComponent,{formData:t})})()}})]}})])])}});
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useFormView = useFormView;
7
+ function useFormView(props) {
8
+ return props.renderParams;
9
+ }
@@ -0,0 +1 @@
1
+ function useFormView(e){return e.renderParams}Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFormView=useFormView;
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _formView = require("./form-view");
7
+ Object.keys(_formView).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _formView[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _formView[key];
14
+ }
15
+ });
16
+ });
6
17
  var _widgetName = require("./widget-name");
7
18
  Object.keys(_widgetName).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var _widgetName=require("./widget-name"),_widgetView=(Object.keys(_widgetName).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetName[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetName[e]}})}),require("./widget-view")),_widgetSubtableView=(Object.keys(_widgetView).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetView[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetView[e]}})}),require("./widget-subtable-view")),_widgetPropDataSource=(Object.keys(_widgetSubtableView).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetSubtableView[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetSubtableView[e]}})}),require("./widget-prop-data-source")),_widgetPropDefaultValue=(Object.keys(_widgetPropDataSource).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetPropDataSource[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetPropDataSource[e]}})}),require("./widget-prop-default-value"));Object.keys(_widgetPropDefaultValue).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetPropDefaultValue[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetPropDefaultValue[e]}})});
1
+ Object.defineProperty(exports,"__esModule",{value:!0});var _formView=require("./form-view"),_widgetName=(Object.keys(_formView).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_formView[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formView[e]}})}),require("./widget-name")),_widgetView=(Object.keys(_widgetName).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetName[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetName[e]}})}),require("./widget-view")),_widgetSubtableView=(Object.keys(_widgetView).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetView[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetView[e]}})}),require("./widget-subtable-view")),_widgetPropDataSource=(Object.keys(_widgetSubtableView).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetSubtableView[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetSubtableView[e]}})}),require("./widget-prop-data-source")),_widgetPropDefaultValue=(Object.keys(_widgetPropDataSource).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetPropDataSource[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetPropDataSource[e]}})}),require("./widget-prop-default-value"));Object.keys(_widgetPropDefaultValue).forEach(function(e){"default"===e||"__esModule"===e||e in exports&&exports[e]===_widgetPropDefaultValue[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _widgetPropDefaultValue[e]}})});
package/lib/index.umd.js CHANGED
@@ -2872,12 +2872,13 @@ const {
2872
2872
  setConfig,
2873
2873
  setIcon
2874
2874
  } = core_.VxeUI;
2875
- core_.VxeUI.designVersion = "4.0.8";
2875
+ core_.VxeUI.designVersion = "4.1.0";
2876
2876
  setConfig({
2877
2877
  formDesign: {
2878
2878
  height: 400,
2879
2879
  showHeader: true,
2880
- showPc: true
2880
+ showPc: true,
2881
+ showStyleSetting: false
2881
2882
  },
2882
2883
  formView: {},
2883
2884
  listDesign: {
@@ -2914,7 +2915,7 @@ setIcon({
2914
2915
  const {
2915
2916
  log
2916
2917
  } = core_.VxeUI;
2917
- const version = `design v${"4.0.8"}`;
2918
+ const version = `design v${"4.1.0"}`;
2918
2919
  const warnLog = log.create('warn', version);
2919
2920
  const errLog = log.create('error', version);
2920
2921
  ;// ./packages/ui/src/depend.ts
@@ -4393,7 +4394,8 @@ const DefaultSettingFormComponent = defineVxeComponent({
4393
4394
  if (renderSettingView) {
4394
4395
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
4395
4396
  class: 'vxe-form-design--custom-setting-form-view'
4396
- }, getSlotVNs(renderSettingView({}, {
4397
+ }, getSlotVNs(renderSettingView(formRender, {
4398
+ formConfig: formData,
4397
4399
  $formDesign: $xeFormDesign
4398
4400
  })));
4399
4401
  }
@@ -5512,6 +5514,10 @@ const {
5512
5514
  type: Boolean,
5513
5515
  default: () => form_design_getConfig().formDesign.showMobile
5514
5516
  },
5517
+ showStyleSetting: {
5518
+ type: Boolean,
5519
+ default: () => form_design_getConfig().formDesign.showStyleSetting
5520
+ },
5515
5521
  formRender: Object,
5516
5522
  menuConfig: Object
5517
5523
  },
@@ -5938,17 +5944,18 @@ const {
5938
5944
  showPc,
5939
5945
  showMobile
5940
5946
  } = props;
5941
- let conf = getDefaultSettingFormData({
5947
+ const defConf = getDefaultSettingFormData({
5942
5948
  pcVisible: showPc,
5943
5949
  mobileVisible: showMobile
5944
5950
  });
5951
+ let customConf = {};
5945
5952
  // 如果为自定义渲染
5946
5953
  if (formRender) {
5947
5954
  const compConf = renderer.get(formRender.name);
5948
5955
  const createFormConfig = compConf ? compConf.createFormDesignSettingFormConfig : null;
5949
- conf = (createFormConfig ? createFormConfig({}) : {}) || {};
5956
+ customConf = (createFormConfig ? createFormConfig({}) : {}) || {};
5950
5957
  }
5951
- return conf;
5958
+ return Object.assign({}, defConf, customConf);
5952
5959
  };
5953
5960
  const initSettingForm = () => {
5954
5961
  reactData.formData = createSettingForm();
@@ -5958,6 +5965,9 @@ const {
5958
5965
  };
5959
5966
  Object.assign($xeFormDesign, formDesignMethods, formDesignPrivateMethods);
5960
5967
  const renderLayoutHeader = () => {
5968
+ const {
5969
+ showStyleSetting
5970
+ } = props;
5961
5971
  const titleSlot = slots.title;
5962
5972
  const titlePrefixSlot = slots.titlePrefix || slots['title-prefix'];
5963
5973
  const titleSuffixSlot = slots.titleSuffix || slots['title-suffix'] || slots.extra;
@@ -5971,7 +5981,7 @@ const {
5971
5981
  class: 'vxe-form-design--header-right'
5972
5982
  }, [titleSuffixSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
5973
5983
  class: 'vxe-form-design--header-extra'
5974
- }, titleSuffixSlot({})) : renderEmptyElement($xeFormDesign), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
5984
+ }, titleSuffixSlot({})) : renderEmptyElement($xeFormDesign), showStyleSetting ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
5975
5985
  class: 'vxe-form-design--header-setting'
5976
5986
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(VxeUIButtonComponent, {
5977
5987
  mode: 'text',
@@ -5979,7 +5989,7 @@ const {
5979
5989
  icon: form_design_getIcon().FORM_DESIGN_STYLE_SETTING,
5980
5990
  content: form_design_getI18n('vxe.formDesign.styleSetting.btn'),
5981
5991
  onClick: openStylePreviewEvent
5982
- })])])]);
5992
+ })]) : renderEmptyElement($xeFormDesign)])]);
5983
5993
  };
5984
5994
  const renderVN = () => {
5985
5995
  const {
@@ -6029,6 +6039,10 @@ const {
6029
6039
  return this.renderVN();
6030
6040
  }
6031
6041
  }));
6042
+ ;// ./packages/form-design/src/use/form-view.ts
6043
+ function useFormView(props) {
6044
+ return props.renderParams;
6045
+ }
6032
6046
  ;// ./packages/form-design/src/use/widget-name.ts
6033
6047
 
6034
6048
 
@@ -6485,6 +6499,7 @@ function useWidgetPropDefaultValue(props) {
6485
6499
 
6486
6500
 
6487
6501
 
6502
+
6488
6503
  ;// ./packages/form-design/render/util.ts
6489
6504
 
6490
6505
  const {
@@ -11028,6 +11043,7 @@ const VxeFormDesign = Object.assign({}, form_design, {
11028
11043
  }
11029
11044
  });
11030
11045
  const formDesignHandle = {
11046
+ useFormView: useFormView,
11031
11047
  useWidgetName: useWidgetName,
11032
11048
  useWidgetView: useWidgetView,
11033
11049
  useSubtableView: useSubtableView,