@vxe-ui/plugin-render-element 4.3.1 → 4.4.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,101 +1,101 @@
1
- import { h } from 'vue'
2
- import { createWidgetElInput } from './input-widget'
3
- import { createWidgetElTextarea } from './textarea-widget'
4
- import { createWidgetElInputNumber } from './number-input-widget'
5
- import { createWidgetElDatePicker } from './date-picker-widget'
6
- import { createWidgetElSelect } from './select-widget'
7
- import { createWidgetElRadio } from './radio-widget'
8
- import { createWidgetElCheckbox } from './checkbox-widget'
9
- import { createWidgetElSwitch } from './switch-widget'
10
-
11
- import type { VxeUIExport } from 'vxe-pc-ui'
12
-
13
- /**
14
- * 表单设计器 - 渲染器
15
- */
16
- export function defineFormDesignRender (VxeUI: VxeUIExport) {
17
- const { getWidgetElInputConfig, WidgetElInputViewComponent, WidgetElInputFormComponent } = createWidgetElInput(VxeUI)
18
- const { getWidgetElTextareaConfig, WidgetElTextareaViewComponent, WidgetElTextareaFormComponent } = createWidgetElTextarea(VxeUI)
19
- const { getWidgetElInputNumberConfig, WidgetElInputNumberViewComponent, WidgetElInputNumberFormComponent } = createWidgetElInputNumber(VxeUI)
20
- const { getWidgetElDatePickerConfig, WidgetElDatePickerViewComponent, WidgetElDatePickerFormComponent } = createWidgetElDatePicker(VxeUI)
21
- const { getWidgetElSelectConfig, WidgetElSelectViewComponent, WidgetElSelectFormComponent } = createWidgetElSelect(VxeUI)
22
- const { getWidgetElRadioConfig, WidgetElRadioViewComponent, WidgetElRadioFormComponent } = createWidgetElRadio(VxeUI)
23
- const { getWidgetElCheckboxConfig, WidgetElCheckboxViewComponent, WidgetElCheckboxFormComponent } = createWidgetElCheckbox(VxeUI)
24
- const { getWidgetElSwitchConfig, WidgetElSwitchViewComponent, WidgetElSwitchFormComponent } = createWidgetElSwitch(VxeUI)
25
-
26
- VxeUI.renderer.mixin({
27
- ElInputWidget: {
28
- createFormDesignWidgetConfig: getWidgetElInputConfig,
29
- renderFormDesignWidgetView (renderOpts, renderParams) {
30
- return h(WidgetElInputViewComponent, { renderOpts, renderParams })
31
- },
32
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
33
- return h(WidgetElInputFormComponent, { renderOpts, renderParams })
34
- }
35
- },
36
- ElTextareaWidget: {
37
- createFormDesignWidgetConfig: getWidgetElTextareaConfig,
38
- renderFormDesignWidgetView (renderOpts, renderParams) {
39
- return h(WidgetElTextareaViewComponent, { renderOpts, renderParams })
40
- },
41
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
42
- return h(WidgetElTextareaFormComponent, { renderOpts, renderParams })
43
- }
44
- },
45
- ElNumberInputWidget: {
46
- createFormDesignWidgetConfig: getWidgetElInputNumberConfig,
47
- renderFormDesignWidgetView (renderOpts, renderParams) {
48
- return h(WidgetElInputNumberViewComponent, { renderOpts, renderParams })
49
- },
50
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
51
- return h(WidgetElInputNumberFormComponent, { renderOpts, renderParams })
52
- }
53
- },
54
- ElDatePickerWidget: {
55
- createFormDesignWidgetConfig: getWidgetElDatePickerConfig,
56
- renderFormDesignWidgetView (renderOpts, renderParams) {
57
- return h(WidgetElDatePickerViewComponent, { renderOpts, renderParams })
58
- },
59
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
60
- return h(WidgetElDatePickerFormComponent, { renderOpts, renderParams })
61
- }
62
- },
63
- ElSelectWidget: {
64
- createFormDesignWidgetConfig: getWidgetElSelectConfig,
65
- renderFormDesignWidgetView (renderOpts, renderParams) {
66
- return h(WidgetElSelectViewComponent, { renderOpts, renderParams })
67
- },
68
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
69
- return h(WidgetElSelectFormComponent, { renderOpts, renderParams })
70
- }
71
- },
72
- ElRadioWidget: {
73
- createFormDesignWidgetConfig: getWidgetElRadioConfig,
74
- renderFormDesignWidgetView (renderOpts, renderParams) {
75
- return h(WidgetElRadioViewComponent, { renderOpts, renderParams })
76
- },
77
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
78
- return h(WidgetElRadioFormComponent, { renderOpts, renderParams })
79
- }
80
- },
81
- ElCheckboxWidget: {
82
- createFormDesignWidgetConfig: getWidgetElCheckboxConfig,
83
- createFormDesignWidgetFieldValue: () => [],
84
- renderFormDesignWidgetView (renderOpts: any, renderParams: any) {
85
- return h(WidgetElCheckboxViewComponent, { renderOpts, renderParams })
86
- },
87
- renderFormDesignWidgetFormView (renderOpts: any, renderParams: any) {
88
- return h(WidgetElCheckboxFormComponent, { renderOpts, renderParams })
89
- }
90
- },
91
- ElSwitchWidget: {
92
- createFormDesignWidgetConfig: getWidgetElSwitchConfig,
93
- renderFormDesignWidgetView (renderOpts, renderParams) {
94
- return h(WidgetElSwitchViewComponent, { renderOpts, renderParams })
95
- },
96
- renderFormDesignWidgetFormView (renderOpts, renderParams) {
97
- return h(WidgetElSwitchFormComponent, { renderOpts, renderParams })
98
- }
99
- }
100
- })
101
- }
1
+ import { h } from 'vue'
2
+ import { createWidgetElInput } from './input-widget'
3
+ import { createWidgetElTextarea } from './textarea-widget'
4
+ import { createWidgetElInputNumber } from './number-input-widget'
5
+ import { createWidgetElDatePicker } from './date-picker-widget'
6
+ import { createWidgetElSelect } from './select-widget'
7
+ import { createWidgetElRadio } from './radio-widget'
8
+ import { createWidgetElCheckbox } from './checkbox-widget'
9
+ import { createWidgetElSwitch } from './switch-widget'
10
+
11
+ import type { VxeUIExport } from 'vxe-pc-ui'
12
+
13
+ /**
14
+ * 表单设计器 - 渲染器
15
+ */
16
+ export function defineFormDesignRender (VxeUI: VxeUIExport) {
17
+ const { getWidgetElInputConfig, WidgetElInputViewComponent, WidgetElInputFormComponent } = createWidgetElInput(VxeUI)
18
+ const { getWidgetElTextareaConfig, WidgetElTextareaViewComponent, WidgetElTextareaFormComponent } = createWidgetElTextarea(VxeUI)
19
+ const { getWidgetElInputNumberConfig, WidgetElInputNumberViewComponent, WidgetElInputNumberFormComponent } = createWidgetElInputNumber(VxeUI)
20
+ const { getWidgetElDatePickerConfig, WidgetElDatePickerViewComponent, WidgetElDatePickerFormComponent } = createWidgetElDatePicker(VxeUI)
21
+ const { getWidgetElSelectConfig, WidgetElSelectViewComponent, WidgetElSelectFormComponent } = createWidgetElSelect(VxeUI)
22
+ const { getWidgetElRadioConfig, WidgetElRadioViewComponent, WidgetElRadioFormComponent } = createWidgetElRadio(VxeUI)
23
+ const { getWidgetElCheckboxConfig, WidgetElCheckboxViewComponent, WidgetElCheckboxFormComponent } = createWidgetElCheckbox(VxeUI)
24
+ const { getWidgetElSwitchConfig, WidgetElSwitchViewComponent, WidgetElSwitchFormComponent } = createWidgetElSwitch(VxeUI)
25
+
26
+ VxeUI.renderer.mixin({
27
+ ElInputWidget: {
28
+ createFormDesignWidgetConfig: getWidgetElInputConfig,
29
+ renderFormDesignWidgetView (renderOpts, renderParams) {
30
+ return h(WidgetElInputViewComponent, { renderOpts, renderParams })
31
+ },
32
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
33
+ return h(WidgetElInputFormComponent, { renderOpts, renderParams })
34
+ }
35
+ },
36
+ ElTextareaWidget: {
37
+ createFormDesignWidgetConfig: getWidgetElTextareaConfig,
38
+ renderFormDesignWidgetView (renderOpts, renderParams) {
39
+ return h(WidgetElTextareaViewComponent, { renderOpts, renderParams })
40
+ },
41
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
42
+ return h(WidgetElTextareaFormComponent, { renderOpts, renderParams })
43
+ }
44
+ },
45
+ ElNumberInputWidget: {
46
+ createFormDesignWidgetConfig: getWidgetElInputNumberConfig,
47
+ renderFormDesignWidgetView (renderOpts, renderParams) {
48
+ return h(WidgetElInputNumberViewComponent, { renderOpts, renderParams })
49
+ },
50
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
51
+ return h(WidgetElInputNumberFormComponent, { renderOpts, renderParams })
52
+ }
53
+ },
54
+ ElDatePickerWidget: {
55
+ createFormDesignWidgetConfig: getWidgetElDatePickerConfig,
56
+ renderFormDesignWidgetView (renderOpts, renderParams) {
57
+ return h(WidgetElDatePickerViewComponent, { renderOpts, renderParams })
58
+ },
59
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
60
+ return h(WidgetElDatePickerFormComponent, { renderOpts, renderParams })
61
+ }
62
+ },
63
+ ElSelectWidget: {
64
+ createFormDesignWidgetConfig: getWidgetElSelectConfig,
65
+ renderFormDesignWidgetView (renderOpts, renderParams) {
66
+ return h(WidgetElSelectViewComponent, { renderOpts, renderParams })
67
+ },
68
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
69
+ return h(WidgetElSelectFormComponent, { renderOpts, renderParams })
70
+ }
71
+ },
72
+ ElRadioWidget: {
73
+ createFormDesignWidgetConfig: getWidgetElRadioConfig,
74
+ renderFormDesignWidgetView (renderOpts, renderParams) {
75
+ return h(WidgetElRadioViewComponent, { renderOpts, renderParams })
76
+ },
77
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
78
+ return h(WidgetElRadioFormComponent, { renderOpts, renderParams })
79
+ }
80
+ },
81
+ ElCheckboxWidget: {
82
+ createFormDesignWidgetConfig: getWidgetElCheckboxConfig,
83
+ createFormDesignWidgetFieldValue: () => [],
84
+ renderFormDesignWidgetView (renderOpts: any, renderParams: any) {
85
+ return h(WidgetElCheckboxViewComponent, { renderOpts, renderParams })
86
+ },
87
+ renderFormDesignWidgetFormView (renderOpts: any, renderParams: any) {
88
+ return h(WidgetElCheckboxFormComponent, { renderOpts, renderParams })
89
+ }
90
+ },
91
+ ElSwitchWidget: {
92
+ createFormDesignWidgetConfig: getWidgetElSwitchConfig,
93
+ renderFormDesignWidgetView (renderOpts, renderParams) {
94
+ return h(WidgetElSwitchViewComponent, { renderOpts, renderParams })
95
+ },
96
+ renderFormDesignWidgetFormView (renderOpts, renderParams) {
97
+ return h(WidgetElSwitchFormComponent, { renderOpts, renderParams })
98
+ }
99
+ }
100
+ })
101
+ }
@@ -1,145 +1,145 @@
1
- import { defineComponent, h, PropType, ComponentOptions } from 'vue'
2
- import { getCurrComponent } from '../util/comp'
3
-
4
- import type { VxeUIExport, VxeGlobalRendererHandles } from 'vxe-pc-ui'
5
-
6
- interface WidgetElInputFormObjVO {
7
- placeholder: string
8
- }
9
-
10
- export function createWidgetElInput (VxeUI: VxeUIExport) {
11
- const getWidgetElInputConfig = (params: VxeGlobalRendererHandles.CreateFormDesignWidgetConfigParams): VxeGlobalRendererHandles.CreateFormDesignWidgetConfigObj<WidgetElInputFormObjVO> => {
12
- return {
13
- title: '输入框',
14
- icon: 'vxe-icon-input',
15
- options: {
16
- placeholder: '请输入'
17
- }
18
- }
19
- }
20
-
21
- const WidgetElInputFormComponent = defineComponent({
22
- props: {
23
- renderOpts: {
24
- type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetFormViewOptions>,
25
- default: () => ({})
26
- },
27
- renderParams: {
28
- type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetFormViewParams<WidgetElInputFormObjVO>>,
29
- default: () => ({})
30
- }
31
- },
32
- emits: [],
33
- setup (props) {
34
- const VxeUIFormComponent = VxeUI.getComponent('VxeForm')
35
- const VxeUIFormItemComponent = VxeUI.getComponent('VxeFormItem')
36
- const VxeUISwitchComponent = VxeUI.getComponent('VxeSwitch')
37
-
38
- return () => {
39
- const { renderParams } = props
40
- const { widget } = renderParams
41
- const { options } = widget
42
-
43
- return h(VxeUIFormComponent, {
44
- class: 'vxe-form-design--widget-render-form-wrapper',
45
- vertical: true,
46
- span: 24,
47
- titleBold: true,
48
- titleOverflow: true,
49
- data: options
50
- }, {
51
- default () {
52
- return [
53
- h(VxeUIFormItemComponent, {
54
- title: VxeUI.getI18n('vxe.formDesign.widgetProp.name')
55
- }, {
56
- default () {
57
- return h(getCurrComponent('el-input') as ComponentOptions, {
58
- modelValue: widget.title,
59
- 'onUpdate:modelValue' (val: any) {
60
- widget.title = val
61
- }
62
- })
63
- }
64
- }),
65
- h(VxeUIFormItemComponent, {
66
- title: VxeUI.getI18n('vxe.formDesign.widgetProp.placeholder'),
67
- field: 'placeholder',
68
- itemRender: { name: 'ElInput' }
69
- }),
70
- h(VxeUIFormItemComponent, {
71
- title: VxeUI.getI18n('vxe.formDesign.widgetProp.required')
72
- }, {
73
- default () {
74
- return h(VxeUISwitchComponent, {
75
- modelValue: widget.required,
76
- 'onUpdate:modelValue' (val: any) {
77
- widget.required = val
78
- }
79
- })
80
- }
81
- })
82
- ]
83
- }
84
- })
85
- }
86
- }
87
- })
88
-
89
- const WidgetElInputViewComponent = defineComponent({
90
- props: {
91
- renderOpts: {
92
- type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetViewOptions>,
93
- default: () => ({})
94
- },
95
- renderParams: {
96
- type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetViewParams<WidgetElInputFormObjVO>>,
97
- default: () => ({})
98
- }
99
- },
100
- emits: [],
101
- setup (props) {
102
- const VxeUIFormItemComponent = VxeUI.getComponent('VxeFormItem')
103
-
104
- const changeEvent = () => {
105
- const { renderParams } = props
106
- const { widget, $formView } = renderParams
107
- if ($formView) {
108
- const itemValue = $formView ? $formView.getItemValue(widget) : null
109
- $formView.updateWidgetStatus(widget, itemValue)
110
- }
111
- }
112
-
113
- return () => {
114
- const { renderParams } = props
115
- const { widget, $formView } = renderParams
116
- const { options } = widget
117
-
118
- return h(VxeUIFormItemComponent, {
119
- class: ['vxe-form-design--widget-render-form-item'],
120
- field: widget.field,
121
- title: widget.title
122
- }, {
123
- default () {
124
- return h(getCurrComponent('el-input') as ComponentOptions, {
125
- modelValue: $formView ? $formView.getItemValue(widget) : null,
126
- placeholder: options.placeholder,
127
- onChange: changeEvent,
128
- 'onUpdate:modelValue' (val: any) {
129
- if ($formView) {
130
- $formView.setItemValue(widget, val)
131
- }
132
- }
133
- })
134
- }
135
- })
136
- }
137
- }
138
- })
139
-
140
- return {
141
- getWidgetElInputConfig,
142
- WidgetElInputFormComponent,
143
- WidgetElInputViewComponent
144
- }
145
- }
1
+ import { defineComponent, h, PropType, ComponentOptions } from 'vue'
2
+ import { getCurrComponent } from '../util/comp'
3
+
4
+ import type { VxeUIExport, VxeGlobalRendererHandles } from 'vxe-pc-ui'
5
+
6
+ interface WidgetElInputFormObjVO {
7
+ placeholder: string
8
+ }
9
+
10
+ export function createWidgetElInput (VxeUI: VxeUIExport) {
11
+ const getWidgetElInputConfig = (params: VxeGlobalRendererHandles.CreateFormDesignWidgetConfigParams): VxeGlobalRendererHandles.CreateFormDesignWidgetConfigObj<WidgetElInputFormObjVO> => {
12
+ return {
13
+ title: '输入框',
14
+ icon: 'vxe-icon-input',
15
+ options: {
16
+ placeholder: '请输入'
17
+ }
18
+ }
19
+ }
20
+
21
+ const WidgetElInputFormComponent = defineComponent({
22
+ props: {
23
+ renderOpts: {
24
+ type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetFormViewOptions>,
25
+ default: () => ({})
26
+ },
27
+ renderParams: {
28
+ type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetFormViewParams<WidgetElInputFormObjVO>>,
29
+ default: () => ({})
30
+ }
31
+ },
32
+ emits: [],
33
+ setup (props) {
34
+ const VxeUIFormComponent = VxeUI.getComponent('VxeForm')
35
+ const VxeUIFormItemComponent = VxeUI.getComponent('VxeFormItem')
36
+ const VxeUISwitchComponent = VxeUI.getComponent('VxeSwitch')
37
+
38
+ return () => {
39
+ const { renderParams } = props
40
+ const { widget } = renderParams
41
+ const { options } = widget
42
+
43
+ return h(VxeUIFormComponent, {
44
+ class: 'vxe-form-design--widget-render-form-wrapper',
45
+ vertical: true,
46
+ span: 24,
47
+ titleBold: true,
48
+ titleOverflow: true,
49
+ data: options
50
+ }, {
51
+ default () {
52
+ return [
53
+ h(VxeUIFormItemComponent, {
54
+ title: VxeUI.getI18n('vxe.formDesign.widgetProp.name')
55
+ }, {
56
+ default () {
57
+ return h(getCurrComponent('el-input') as ComponentOptions, {
58
+ modelValue: widget.title,
59
+ 'onUpdate:modelValue' (val: any) {
60
+ widget.title = val
61
+ }
62
+ })
63
+ }
64
+ }),
65
+ h(VxeUIFormItemComponent, {
66
+ title: VxeUI.getI18n('vxe.formDesign.widgetProp.placeholder'),
67
+ field: 'placeholder',
68
+ itemRender: { name: 'ElInput' }
69
+ }),
70
+ h(VxeUIFormItemComponent, {
71
+ title: VxeUI.getI18n('vxe.formDesign.widgetProp.required')
72
+ }, {
73
+ default () {
74
+ return h(VxeUISwitchComponent, {
75
+ modelValue: widget.required,
76
+ 'onUpdate:modelValue' (val: any) {
77
+ widget.required = val
78
+ }
79
+ })
80
+ }
81
+ })
82
+ ]
83
+ }
84
+ })
85
+ }
86
+ }
87
+ })
88
+
89
+ const WidgetElInputViewComponent = defineComponent({
90
+ props: {
91
+ renderOpts: {
92
+ type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetViewOptions>,
93
+ default: () => ({})
94
+ },
95
+ renderParams: {
96
+ type: Object as PropType<VxeGlobalRendererHandles.RenderFormDesignWidgetViewParams<WidgetElInputFormObjVO>>,
97
+ default: () => ({})
98
+ }
99
+ },
100
+ emits: [],
101
+ setup (props) {
102
+ const VxeUIFormItemComponent = VxeUI.getComponent('VxeFormItem')
103
+
104
+ const changeEvent = () => {
105
+ const { renderParams } = props
106
+ const { widget, $formView } = renderParams
107
+ if ($formView) {
108
+ const itemValue = $formView ? $formView.getItemValue(widget) : null
109
+ $formView.updateWidgetStatus(widget, itemValue)
110
+ }
111
+ }
112
+
113
+ return () => {
114
+ const { renderParams } = props
115
+ const { widget, $formView } = renderParams
116
+ const { options } = widget
117
+
118
+ return h(VxeUIFormItemComponent, {
119
+ class: ['vxe-form-design--widget-render-form-item'],
120
+ field: widget.field,
121
+ title: widget.title
122
+ }, {
123
+ default () {
124
+ return h(getCurrComponent('el-input') as ComponentOptions, {
125
+ modelValue: $formView ? $formView.getItemValue(widget) : null,
126
+ placeholder: options.placeholder,
127
+ onChange: changeEvent,
128
+ 'onUpdate:modelValue' (val: any) {
129
+ if ($formView) {
130
+ $formView.setItemValue(widget, val)
131
+ }
132
+ }
133
+ })
134
+ }
135
+ })
136
+ }
137
+ }
138
+ })
139
+
140
+ return {
141
+ getWidgetElInputConfig,
142
+ WidgetElInputFormComponent,
143
+ WidgetElInputViewComponent
144
+ }
145
+ }