@vyr/element-plus 0.0.1
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.
- package/package.json +24 -0
- package/src/actor/ElButtonActor.ts +42 -0
- package/src/actor/ElCascaderActor.ts +43 -0
- package/src/actor/ElCheckboxActor.ts +46 -0
- package/src/actor/ElColActor.ts +36 -0
- package/src/actor/ElDatePickerActor.ts +42 -0
- package/src/actor/ElDialogActor.ts +38 -0
- package/src/actor/ElFormActor.ts +46 -0
- package/src/actor/ElFormItemActor.ts +81 -0
- package/src/actor/ElInputActor.ts +47 -0
- package/src/actor/ElInputNumberActor.ts +38 -0
- package/src/actor/ElMenuActor.ts +35 -0
- package/src/actor/ElMenuItemActor.ts +46 -0
- package/src/actor/ElPaginationActor.ts +83 -0
- package/src/actor/ElRadioActor.ts +46 -0
- package/src/actor/ElRowActor.ts +37 -0
- package/src/actor/ElSelectActor.ts +49 -0
- package/src/actor/ElSubMenuActor.ts +46 -0
- package/src/actor/ElSwitchActor.ts +26 -0
- package/src/actor/ElTableActor.ts +35 -0
- package/src/actor/ElTableColumnActor.ts +72 -0
- package/src/actor/index.ts +20 -0
- package/src/asset/index.ts +17 -0
- package/src/descriptor/ElButtonDescriptor.ts +36 -0
- package/src/descriptor/ElCascaderDescriptor.ts +43 -0
- package/src/descriptor/ElCheckboxDescriptor.ts +41 -0
- package/src/descriptor/ElColDescriptor.ts +20 -0
- package/src/descriptor/ElDatePickerDescriptor.ts +43 -0
- package/src/descriptor/ElDialogDescriptor.ts +24 -0
- package/src/descriptor/ElFormDescriptor.ts +60 -0
- package/src/descriptor/ElFormItemDescriptor.ts +14 -0
- package/src/descriptor/ElInputDescriptor.ts +56 -0
- package/src/descriptor/ElInputNumberDescriptor.ts +38 -0
- package/src/descriptor/ElMenuDescriptor.ts +26 -0
- package/src/descriptor/ElMenuItemDescriptor.ts +22 -0
- package/src/descriptor/ElPaginationDescriptor.ts +52 -0
- package/src/descriptor/ElRadioDescriptor.ts +41 -0
- package/src/descriptor/ElRowDescriptor.ts +22 -0
- package/src/descriptor/ElSelectDescriptor.ts +43 -0
- package/src/descriptor/ElSubMenuDescriptor.ts +20 -0
- package/src/descriptor/ElSwitchDescriptor.ts +35 -0
- package/src/descriptor/ElTableColumnDescriptor.ts +41 -0
- package/src/descriptor/ElTableDescriptor.ts +26 -0
- package/src/descriptor/index.ts +20 -0
- package/src/index.ts +7 -0
- package/src/interpreter/ElButtonInterpreter.ts +18 -0
- package/src/interpreter/ElCascaderInterpreter.ts +18 -0
- package/src/interpreter/ElCheckboxInterpreter.ts +18 -0
- package/src/interpreter/ElColInterpreter.ts +18 -0
- package/src/interpreter/ElDatePickerInterpreter.ts +18 -0
- package/src/interpreter/ElDialogInterpreter.ts +18 -0
- package/src/interpreter/ElFormInterpreter.ts +18 -0
- package/src/interpreter/ElInputInterpreter.ts +18 -0
- package/src/interpreter/ElInputNumberInterpreter.ts +18 -0
- package/src/interpreter/ElMenuInterpreter.ts +18 -0
- package/src/interpreter/ElMenuItemInterpreter.ts +18 -0
- package/src/interpreter/ElPaginationInterpreter.ts +18 -0
- package/src/interpreter/ElRadioInterpreter.ts +18 -0
- package/src/interpreter/ElRowInterpreter.ts +18 -0
- package/src/interpreter/ElSelectInterpreter.ts +18 -0
- package/src/interpreter/ElSubMenuInterpreter.ts +18 -0
- package/src/interpreter/ElSwitchInterpreter.ts +18 -0
- package/src/interpreter/ElTableColumnInterpreter.ts +18 -0
- package/src/interpreter/ElTableInterpreter.ts +18 -0
- package/src/interpreter/index.ts +33 -0
- package/src/locale/Language.ts +10 -0
- package/src/locale/LanguageProvider.ts +64 -0
- package/src/locale/index.ts +2 -0
- package/src/preset/execute/ElDialog/close.ts +48 -0
- package/src/preset/execute/ElDialog/index.ts +2 -0
- package/src/preset/execute/ElDialog/open.ts +51 -0
- package/src/preset/execute/ElForm/branch.ts +47 -0
- package/src/preset/execute/ElForm/create.ts +31 -0
- package/src/preset/execute/ElForm/edit.ts +31 -0
- package/src/preset/execute/ElForm/getData.ts +51 -0
- package/src/preset/execute/ElForm/index.ts +5 -0
- package/src/preset/execute/ElForm/reset.ts +55 -0
- package/src/preset/execute/ElPagination/getData.ts +48 -0
- package/src/preset/execute/ElPagination/index.ts +2 -0
- package/src/preset/execute/ElPagination/reset.ts +46 -0
- package/src/preset/execute/ElTable/create.ts +38 -0
- package/src/preset/execute/ElTable/delete.ts +53 -0
- package/src/preset/execute/ElTable/edit.ts +38 -0
- package/src/preset/execute/ElTable/index.ts +3 -0
- package/src/preset/execute/ElTableColumn/formatter.ts +74 -0
- package/src/preset/execute/ElTableColumn/index.ts +1 -0
- package/src/preset/execute/index.ts +5 -0
- package/src/preset/index.ts +7 -0
- package/src/preset/routine/ElDialog/close.ts +26 -0
- package/src/preset/routine/ElDialog/index.ts +1 -0
- package/src/preset/routine/ElTable/create.ts +31 -0
- package/src/preset/routine/ElTable/delete.ts +31 -0
- package/src/preset/routine/ElTable/edit.ts +33 -0
- package/src/preset/routine/ElTable/index.ts +6 -0
- package/src/preset/routine/ElTable/list.ts +32 -0
- package/src/preset/routine/ElTable/reset.ts +31 -0
- package/src/preset/routine/ElTable/submit.ts +45 -0
- package/src/preset/routine/index.ts +2 -0
- package/src/shims-vue.d.ts +5 -0
- package/src/utils/form.ts +72 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/style.ts +9 -0
- package/src/utils/validator.ts +30 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { h, resolveDynamicComponent, VNode } from "vue";
|
|
2
|
+
import { DatasetDescriptor, UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
|
|
4
|
+
import { ElRadioDescriptor } from "../descriptor";
|
|
5
|
+
import { ElFormItemActor } from "./ElFormItemActor";
|
|
6
|
+
|
|
7
|
+
class ElRadioActor extends ElFormItemActor {
|
|
8
|
+
|
|
9
|
+
getProps(descriptor: ElRadioDescriptor, args: UpdateArgs): VyrVueProps {
|
|
10
|
+
const props = super.getProps(descriptor, args)
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
...props,
|
|
14
|
+
disabled: descriptor.disabled,
|
|
15
|
+
border: descriptor.border,
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getComponent() {
|
|
20
|
+
return resolveDynamicComponent('el-radio-group') as VNode
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getContent(instance: VyrVueInstance, _children: VyrVueChildren, descriptor: ElRadioDescriptor) {
|
|
24
|
+
const children: VNode[] = []
|
|
25
|
+
|
|
26
|
+
const options = DatasetDescriptor.getCollection(descriptor.options)
|
|
27
|
+
if (options.length > 0) {
|
|
28
|
+
for (const option of options) {
|
|
29
|
+
const checkbox = resolveDynamicComponent('el-radio') as VNode
|
|
30
|
+
const labelAttr = { value: option[descriptor.value] }
|
|
31
|
+
children.push(h(checkbox, labelAttr, () => option[descriptor.label]))
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const inputComponent = this.getComponent()
|
|
36
|
+
const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
|
|
37
|
+
const inputVnode = h(inputComponent, inputAttrs, { default: () => children })
|
|
38
|
+
this.currentVnode = inputVnode
|
|
39
|
+
|
|
40
|
+
return this.getItemComponent(descriptor, inputVnode)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
ElRadioActor
|
|
46
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { h, resolveDynamicComponent, VNode } from "vue";
|
|
2
|
+
import { UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
|
|
4
|
+
import { ElRowDescriptor } from "../descriptor";
|
|
5
|
+
|
|
6
|
+
class ElRowActor extends VueActor {
|
|
7
|
+
|
|
8
|
+
getProps(descriptor: ElRowDescriptor, args: UpdateArgs): VyrVueProps {
|
|
9
|
+
const props = super.getProps(descriptor, args)
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
...props,
|
|
13
|
+
gutter: descriptor.gutter,
|
|
14
|
+
justify: descriptor.justify,
|
|
15
|
+
align: descriptor.align,
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getWrapperVNode(instance: VyrVueInstance, content: VNode) {
|
|
20
|
+
return content
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getComponent() {
|
|
24
|
+
return resolveDynamicComponent('el-row') as VNode
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElRowDescriptor) {
|
|
28
|
+
const component = this.getComponent()
|
|
29
|
+
const attrs = this.getComponentAttrs(instance, descriptor)
|
|
30
|
+
|
|
31
|
+
return h(component, attrs, children)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
ElRowActor
|
|
37
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { h, resolveDynamicComponent, VNode } from "vue";
|
|
2
|
+
import { DatasetDescriptor, UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
|
|
4
|
+
import { ElSelectDescriptor } from "../descriptor";
|
|
5
|
+
import { mergeStyle } from "../utils";
|
|
6
|
+
import { ElFormItemActor } from "./ElFormItemActor";
|
|
7
|
+
|
|
8
|
+
class ElSelectActor extends ElFormItemActor {
|
|
9
|
+
|
|
10
|
+
getProps(descriptor: ElSelectDescriptor, args: UpdateArgs): VyrVueProps {
|
|
11
|
+
const props = super.getProps(descriptor, args)
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
...props,
|
|
15
|
+
placeholder: descriptor.placeholder,
|
|
16
|
+
disabled: descriptor.disabled,
|
|
17
|
+
clearable: descriptor.clearable,
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getComponent() {
|
|
22
|
+
return resolveDynamicComponent('el-select') as VNode
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getContent(instance: VyrVueInstance, _children: VyrVueChildren, descriptor: ElSelectDescriptor) {
|
|
26
|
+
const children: VNode[] = []
|
|
27
|
+
|
|
28
|
+
const options = DatasetDescriptor.getCollection(descriptor.options)
|
|
29
|
+
if (options.length > 0) {
|
|
30
|
+
for (const option of options) {
|
|
31
|
+
const checkbox = resolveDynamicComponent('el-option') as VNode
|
|
32
|
+
const labelAttr = { label: option[descriptor.label], value: option[descriptor.value] }
|
|
33
|
+
children.push(h(checkbox, labelAttr, { default: () => [] }))
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const inputComponent = this.getComponent()
|
|
38
|
+
const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
|
|
39
|
+
mergeStyle({ 'min-width': '200px' }, inputAttrs)
|
|
40
|
+
const inputVnode = h(inputComponent, inputAttrs, { default: () => children })
|
|
41
|
+
this.currentVnode = inputVnode
|
|
42
|
+
|
|
43
|
+
return this.getItemComponent(descriptor, inputVnode)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export {
|
|
48
|
+
ElSelectActor
|
|
49
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { h, resolveDynamicComponent, VNode, Text } from "vue"
|
|
2
|
+
import { Generate, UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VueActor, VyrVueChildren, VyrVueInstance } from "@vyr/vue";
|
|
4
|
+
import { ElSubMenuDescriptor } from "../descriptor";
|
|
5
|
+
|
|
6
|
+
class ElSubMenuActor extends VueActor {
|
|
7
|
+
|
|
8
|
+
getWrapper() {
|
|
9
|
+
return null
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getProps(descriptor: ElSubMenuDescriptor, args: UpdateArgs) {
|
|
13
|
+
const props = super.getProps(descriptor, args)
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
...props,
|
|
17
|
+
index: descriptor.uuid,
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getWrapperVNode(instance: VyrVueInstance, content: VNode) {
|
|
22
|
+
return content
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getComponent() {
|
|
26
|
+
return resolveDynamicComponent('el-sub-menu') as VNode
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElSubMenuDescriptor) {
|
|
30
|
+
const component = this.getComponent()
|
|
31
|
+
const attrs = this.getComponentAttrs(instance, descriptor)
|
|
32
|
+
|
|
33
|
+
if (descriptor.label) {
|
|
34
|
+
const title = h(Text, descriptor.label)
|
|
35
|
+
children.title = () => title
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const content = h(component, { ...attrs, key: Generate.uuid() }, children)
|
|
39
|
+
|
|
40
|
+
return content
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
ElSubMenuActor
|
|
46
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { resolveDynamicComponent, VNode } from "vue";
|
|
2
|
+
import { UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VyrVueProps } from "@vyr/vue";
|
|
4
|
+
import { ElSwitchDescriptor } from "../descriptor";
|
|
5
|
+
import { ElFormItemActor } from "./ElFormItemActor";
|
|
6
|
+
|
|
7
|
+
class ElSwitchActor extends ElFormItemActor {
|
|
8
|
+
|
|
9
|
+
getProps(descriptor: ElSwitchDescriptor, args: UpdateArgs): VyrVueProps {
|
|
10
|
+
const props = super.getProps(descriptor, args)
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
...props,
|
|
14
|
+
disabled: descriptor.disabled,
|
|
15
|
+
loading: descriptor.loading,
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getComponent() {
|
|
20
|
+
return resolveDynamicComponent('el-switch') as VNode
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
ElSwitchActor
|
|
26
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { h, resolveDynamicComponent, VNode } from "vue";
|
|
2
|
+
import { UpdateArgs } from "@vyr/engine";
|
|
3
|
+
import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
|
|
4
|
+
import { ElTableDescriptor } from "../descriptor";
|
|
5
|
+
|
|
6
|
+
class ElTableActor extends VueActor {
|
|
7
|
+
|
|
8
|
+
getProps(descriptor: ElTableDescriptor, args: UpdateArgs): VyrVueProps {
|
|
9
|
+
const props = super.getProps(descriptor, args)
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
...props,
|
|
13
|
+
data: descriptor.data,
|
|
14
|
+
border: descriptor.border,
|
|
15
|
+
stripe: descriptor.stripe,
|
|
16
|
+
fit: descriptor.fit,
|
|
17
|
+
showHeader: descriptor.showHeader,
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getComponent() {
|
|
22
|
+
return resolveDynamicComponent('el-table') as VNode
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElTableDescriptor) {
|
|
26
|
+
const component = this.getComponent()
|
|
27
|
+
const attrs = this.getComponentAttrs(instance, descriptor)
|
|
28
|
+
|
|
29
|
+
return h(component, attrs, children)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
ElTableActor
|
|
35
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { TableColumnCtx } from "element-plus";
|
|
2
|
+
import { h, resolveDynamicComponent, VNode } from "vue"
|
|
3
|
+
import { Asset, Generate, Scriptable, UpdateArgs } from "@vyr/engine";
|
|
4
|
+
import { VueActor, VyrVueChildren, VyrVueInstance } from "@vyr/vue";
|
|
5
|
+
import { ElTableColumnDescriptor } from "../descriptor";
|
|
6
|
+
import { executePreset } from '../preset'
|
|
7
|
+
|
|
8
|
+
class ElTableColumnActor extends VueActor {
|
|
9
|
+
|
|
10
|
+
getWrapper() {
|
|
11
|
+
return null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
useFormatter(descriptor: ElTableColumnDescriptor) {
|
|
15
|
+
return (row: any, column: TableColumnCtx<any>, cellValue: any, index: number) => {
|
|
16
|
+
const formattingScript = Asset.get<Scriptable>(descriptor.formattingScript)
|
|
17
|
+
if (formattingScript) {
|
|
18
|
+
const graphics = VueActor.getGraphics(this)
|
|
19
|
+
const input = executePreset.ElTableColumn.formatter.createExecuteInput({ dataset: descriptor.formattingDataset })
|
|
20
|
+
const previous = 'cellValue'
|
|
21
|
+
const args = {
|
|
22
|
+
delta: 0,
|
|
23
|
+
trigger: descriptor,
|
|
24
|
+
input: { previous, default: input, user: input, },
|
|
25
|
+
result: new Map(),
|
|
26
|
+
}
|
|
27
|
+
args.result.set(previous, cellValue)
|
|
28
|
+
const formatValue = formattingScript.execute(descriptor, graphics, args)
|
|
29
|
+
|
|
30
|
+
return formatValue ?? cellValue
|
|
31
|
+
}
|
|
32
|
+
return cellValue
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getProps(descriptor: ElTableColumnDescriptor, args: UpdateArgs) {
|
|
37
|
+
const props = super.getProps(descriptor, args)
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
...props,
|
|
41
|
+
formatter: this.useFormatter(descriptor),
|
|
42
|
+
type: descriptor.columnType,
|
|
43
|
+
prop: descriptor.columnName,
|
|
44
|
+
label: descriptor.columnComment,
|
|
45
|
+
width: descriptor.columnWidth,
|
|
46
|
+
fixed: descriptor.columnFixed,
|
|
47
|
+
align: descriptor.columnAlign,
|
|
48
|
+
showOverflowTooltip: descriptor.columnTooltip,
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
getWrapperVNode(instance: VyrVueInstance, content: VNode) {
|
|
53
|
+
return content
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
getComponent() {
|
|
57
|
+
return resolveDynamicComponent('el-table-column') as VNode
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElTableColumnDescriptor) {
|
|
61
|
+
const component = this.getComponent()
|
|
62
|
+
const attrs = this.getComponentAttrs(instance, descriptor)
|
|
63
|
+
|
|
64
|
+
const content = h(component, { ...attrs, key: Generate.uuid() }, this.getSlots(children))
|
|
65
|
+
|
|
66
|
+
return content
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
ElTableColumnActor
|
|
72
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './ElButtonActor'
|
|
2
|
+
export * from './ElRowActor'
|
|
3
|
+
export * from './ElColActor'
|
|
4
|
+
export * from './ElFormActor'
|
|
5
|
+
export * from './ElFormItemActor'
|
|
6
|
+
export * from './ElInputActor'
|
|
7
|
+
export * from './ElInputNumberActor'
|
|
8
|
+
export * from './ElSelectActor'
|
|
9
|
+
export * from './ElCascaderActor'
|
|
10
|
+
export * from './ElCheckboxActor'
|
|
11
|
+
export * from './ElDatePickerActor'
|
|
12
|
+
export * from './ElRadioActor'
|
|
13
|
+
export * from './ElSwitchActor'
|
|
14
|
+
export * from './ElTableColumnActor'
|
|
15
|
+
export * from './ElTableActor'
|
|
16
|
+
export * from './ElDialogActor'
|
|
17
|
+
export * from './ElPaginationActor'
|
|
18
|
+
export * from './ElMenuActor'
|
|
19
|
+
export * from './ElSubMenuActor'
|
|
20
|
+
export * from './ElMenuItemActor'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AssetGraph, Category, Descriptor, Port } from "@vyr/engine";
|
|
2
|
+
import { ElCascaderDescriptor, ElCheckboxDescriptor, ElRadioDescriptor, ElSelectDescriptor, ElTableColumnDescriptor } from "../descriptor";
|
|
3
|
+
|
|
4
|
+
const ElFormByOptionsDescriptorProvider = (descriptor: { options: string } & Descriptor, port: Port) => {
|
|
5
|
+
if (descriptor.options) port.edges.push({ key: 'options', category: Category.dataset, asset: descriptor.options })
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const ElTableColumnDescriptorProvider = (descriptor: ElTableColumnDescriptor, port: Port) => {
|
|
9
|
+
if (descriptor.formattingDataset) port.edges.push({ key: 'formattingDataset', category: Category.dataset, asset: descriptor.formattingDataset })
|
|
10
|
+
if (descriptor.formattingScript) port.edges.push({ key: 'formattingScript', category: Category.ts, asset: descriptor.formattingScript })
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
AssetGraph.register(ElCascaderDescriptor.type, ElFormByOptionsDescriptorProvider)
|
|
14
|
+
AssetGraph.register(ElCheckboxDescriptor.type, ElFormByOptionsDescriptorProvider)
|
|
15
|
+
AssetGraph.register(ElRadioDescriptor.type, ElFormByOptionsDescriptorProvider)
|
|
16
|
+
AssetGraph.register(ElSelectDescriptor.type, ElFormByOptionsDescriptorProvider)
|
|
17
|
+
AssetGraph.register(ElTableColumnDescriptor.type, ElTableColumnDescriptorProvider)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
|
|
4
|
+
class ElButtonDescriptor extends VueDescriptor {
|
|
5
|
+
static type = 'ElButton'
|
|
6
|
+
|
|
7
|
+
buttonType: 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger'
|
|
8
|
+
plain: boolean
|
|
9
|
+
circle: boolean
|
|
10
|
+
round: boolean
|
|
11
|
+
size: 'large' | 'small' | 'default'
|
|
12
|
+
textMode: boolean
|
|
13
|
+
text: string
|
|
14
|
+
|
|
15
|
+
disabled: boolean
|
|
16
|
+
loading: boolean
|
|
17
|
+
|
|
18
|
+
constructor(descriptor: Partial<DeserializationObject<ElButtonDescriptor>> = {}) {
|
|
19
|
+
super(descriptor)
|
|
20
|
+
this.display = descriptor.display ?? 'inline-block'
|
|
21
|
+
this.buttonType = descriptor.buttonType ?? 'default'
|
|
22
|
+
this.plain = descriptor.plain ?? false
|
|
23
|
+
this.circle = descriptor.circle ?? false
|
|
24
|
+
this.round = descriptor.round ?? false
|
|
25
|
+
this.size = descriptor.size ?? 'default'
|
|
26
|
+
this.textMode = descriptor.textMode ?? false
|
|
27
|
+
this.text = descriptor.text ?? ''
|
|
28
|
+
this.disabled = descriptor.disabled ?? false
|
|
29
|
+
this.loading = descriptor.loading ?? false
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
VueDescriptor.register(ElButtonDescriptor)
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
ElButtonDescriptor
|
|
36
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
|
|
4
|
+
|
|
5
|
+
class ElCascaderDescriptor extends ElFormItemDescriptor {
|
|
6
|
+
static type = 'ElCascader'
|
|
7
|
+
|
|
8
|
+
columnName: string
|
|
9
|
+
columnComment: string
|
|
10
|
+
columnType: string
|
|
11
|
+
modelValue: string
|
|
12
|
+
labelWidth: string | number
|
|
13
|
+
placeholder: string
|
|
14
|
+
required: boolean
|
|
15
|
+
|
|
16
|
+
options: string
|
|
17
|
+
label: string
|
|
18
|
+
value: string
|
|
19
|
+
clearable: boolean
|
|
20
|
+
disabled: boolean
|
|
21
|
+
|
|
22
|
+
constructor(descriptor: Partial<DeserializationObject<ElCascaderDescriptor>> = {}) {
|
|
23
|
+
super(descriptor)
|
|
24
|
+
this.columnName = descriptor.columnName ?? ''
|
|
25
|
+
this.columnComment = descriptor.columnComment ?? ''
|
|
26
|
+
this.columnType = descriptor.columnType ?? ''
|
|
27
|
+
this.modelValue = descriptor.modelValue ?? ''
|
|
28
|
+
this.labelWidth = descriptor.labelWidth ?? ''
|
|
29
|
+
this.placeholder = descriptor.placeholder ?? ''
|
|
30
|
+
this.required = descriptor.required ?? false
|
|
31
|
+
|
|
32
|
+
this.options = descriptor.options ?? ''
|
|
33
|
+
this.label = descriptor.label ?? 'label'
|
|
34
|
+
this.value = descriptor.value ?? 'value'
|
|
35
|
+
this.clearable = descriptor.clearable ?? false
|
|
36
|
+
this.disabled = descriptor.disabled ?? false
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
VueDescriptor.register(ElCascaderDescriptor)
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
ElCascaderDescriptor
|
|
43
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
|
|
4
|
+
|
|
5
|
+
class ElCheckboxDescriptor extends ElFormItemDescriptor {
|
|
6
|
+
static type = 'ElCheckbox'
|
|
7
|
+
|
|
8
|
+
columnName: string
|
|
9
|
+
columnComment: string
|
|
10
|
+
columnType: string
|
|
11
|
+
modelValue: string
|
|
12
|
+
labelWidth: string | number
|
|
13
|
+
required: boolean
|
|
14
|
+
|
|
15
|
+
options: string
|
|
16
|
+
label: string
|
|
17
|
+
value: string
|
|
18
|
+
disabled: boolean
|
|
19
|
+
border: boolean
|
|
20
|
+
|
|
21
|
+
constructor(descriptor: Partial<DeserializationObject<ElCheckboxDescriptor>> = {}) {
|
|
22
|
+
super(descriptor)
|
|
23
|
+
this.columnName = descriptor.columnName ?? ''
|
|
24
|
+
this.columnComment = descriptor.columnComment ?? ''
|
|
25
|
+
this.columnType = descriptor.columnType ?? ''
|
|
26
|
+
this.modelValue = descriptor.modelValue ?? ''
|
|
27
|
+
this.labelWidth = descriptor.labelWidth ?? ''
|
|
28
|
+
this.required = descriptor.required ?? false
|
|
29
|
+
|
|
30
|
+
this.options = descriptor.options ?? ''
|
|
31
|
+
this.label = descriptor.label ?? 'label'
|
|
32
|
+
this.value = descriptor.value ?? 'value'
|
|
33
|
+
this.disabled = descriptor.disabled ?? false
|
|
34
|
+
this.border = descriptor.border ?? false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
VueDescriptor.register(ElCheckboxDescriptor)
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
ElCheckboxDescriptor
|
|
41
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
|
|
4
|
+
class ElColDescriptor extends VueDescriptor {
|
|
5
|
+
static type = 'ElCol'
|
|
6
|
+
|
|
7
|
+
span: number
|
|
8
|
+
offset: number
|
|
9
|
+
|
|
10
|
+
constructor(descriptor: Partial<DeserializationObject<ElColDescriptor>> = {}) {
|
|
11
|
+
super(descriptor)
|
|
12
|
+
this.span = descriptor.span ?? 24
|
|
13
|
+
this.offset = descriptor.offset ?? 0
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
VueDescriptor.register(ElColDescriptor)
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
ElColDescriptor
|
|
20
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
|
|
4
|
+
|
|
5
|
+
class ElDatePickerDescriptor extends ElFormItemDescriptor {
|
|
6
|
+
static type = 'ElDatePicker'
|
|
7
|
+
|
|
8
|
+
columnName: string
|
|
9
|
+
columnComment: string
|
|
10
|
+
columnType: string
|
|
11
|
+
modelValue: string
|
|
12
|
+
labelWidth: string | number
|
|
13
|
+
placeholder: string
|
|
14
|
+
required: boolean
|
|
15
|
+
|
|
16
|
+
dateType: string
|
|
17
|
+
readonly: boolean
|
|
18
|
+
disabled: boolean
|
|
19
|
+
clearable: boolean
|
|
20
|
+
format: string
|
|
21
|
+
|
|
22
|
+
constructor(descriptor: Partial<DeserializationObject<ElDatePickerDescriptor>> = {}) {
|
|
23
|
+
super(descriptor)
|
|
24
|
+
this.columnName = descriptor.columnName ?? ''
|
|
25
|
+
this.columnComment = descriptor.columnComment ?? ''
|
|
26
|
+
this.columnType = descriptor.columnType ?? ''
|
|
27
|
+
this.modelValue = descriptor.modelValue ?? ''
|
|
28
|
+
this.labelWidth = descriptor.labelWidth ?? ''
|
|
29
|
+
this.placeholder = descriptor.placeholder ?? ''
|
|
30
|
+
this.required = descriptor.required ?? false
|
|
31
|
+
|
|
32
|
+
this.dateType = descriptor.dateType ?? 'datetime'
|
|
33
|
+
this.readonly = descriptor.readonly ?? false
|
|
34
|
+
this.disabled = descriptor.disabled ?? false
|
|
35
|
+
this.clearable = descriptor.clearable ?? false
|
|
36
|
+
this.format = descriptor.format ?? 'YYYY-MM-DD HH:mm:ss'
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
VueDescriptor.register(ElDatePickerDescriptor)
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
ElDatePickerDescriptor
|
|
43
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DeserializationObject } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
|
|
4
|
+
class ElDialogDescriptor extends VueDescriptor {
|
|
5
|
+
static type = 'ElDialog'
|
|
6
|
+
|
|
7
|
+
title: string
|
|
8
|
+
closeOnClickModal: boolean
|
|
9
|
+
|
|
10
|
+
constructor(descriptor: Partial<DeserializationObject<ElDialogDescriptor>> = {}) {
|
|
11
|
+
super(descriptor)
|
|
12
|
+
if (descriptor.width === undefined) {
|
|
13
|
+
this.width = 50
|
|
14
|
+
this.wUnit = '%'
|
|
15
|
+
}
|
|
16
|
+
this.title = descriptor.title ?? ''
|
|
17
|
+
this.closeOnClickModal = descriptor.closeOnClickModal ?? false
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
VueDescriptor.register(ElDialogDescriptor)
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
ElDialogDescriptor
|
|
24
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DeserializationObject, Graphics } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
import { ElFormActor, ElFormItemActor } from "../actor";
|
|
4
|
+
import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
|
|
5
|
+
|
|
6
|
+
interface ElFormGetDataArgs {
|
|
7
|
+
form: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
class ElFormDescriptor extends VueDescriptor {
|
|
11
|
+
static type = 'ElForm'
|
|
12
|
+
labelWidth: string | number
|
|
13
|
+
labelPosition: string
|
|
14
|
+
inline: boolean
|
|
15
|
+
disabled: boolean
|
|
16
|
+
|
|
17
|
+
constructor(descriptor: Partial<DeserializationObject<ElFormDescriptor>> = {}) {
|
|
18
|
+
super(descriptor)
|
|
19
|
+
this.inline = descriptor.inline ?? false
|
|
20
|
+
this.labelPosition = descriptor.labelPosition ?? 'right'
|
|
21
|
+
this.labelWidth = descriptor.labelWidth ?? ''
|
|
22
|
+
this.disabled = descriptor.disabled ?? false
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async validate(graphics: Graphics) {
|
|
26
|
+
const formActor = graphics.getActor<ElFormActor>(this, { delta: 0 })
|
|
27
|
+
if (formActor && formActor.methods) {
|
|
28
|
+
return await formActor.methods.validate()
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return false
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async resets(graphics: Graphics) {
|
|
35
|
+
const formActor = graphics.getActor<ElFormActor>(this, { delta: 0 })
|
|
36
|
+
if (formActor && formActor.methods) {
|
|
37
|
+
await formActor.methods.resetFields()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async getData(graphics: Graphics) {
|
|
42
|
+
const data: { [k: string]: any } = {}
|
|
43
|
+
|
|
44
|
+
for (const sub of this.children) {
|
|
45
|
+
if (sub instanceof ElFormItemDescriptor) {
|
|
46
|
+
const itemActor = graphics.getActor<ElFormItemActor>(sub, { delta: 0 })
|
|
47
|
+
if (itemActor === null) continue
|
|
48
|
+
data[sub.columnName] = itemActor.getModelValue()
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return data
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
VueDescriptor.register(ElFormDescriptor)
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
ElFormDescriptor,
|
|
59
|
+
ElFormGetDataArgs,
|
|
60
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Asset, DatasetDescriptor } from "@vyr/engine";
|
|
2
|
+
import { VueDescriptor } from "@vyr/vue";
|
|
3
|
+
|
|
4
|
+
abstract class ElFormItemDescriptor extends VueDescriptor {
|
|
5
|
+
abstract modelValue?: string | boolean | number
|
|
6
|
+
abstract columnName: string
|
|
7
|
+
abstract columnComment: string
|
|
8
|
+
abstract columnType: string
|
|
9
|
+
abstract required: boolean
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
ElFormItemDescriptor
|
|
14
|
+
}
|