el-form-renderer-vue3 1.0.0 → 1.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.
Files changed (52) hide show
  1. package/el-form-renderer-vue3.es.js +4036 -0
  2. package/el-form-renderer-vue3.umd.js +5 -0
  3. package/package.json +12 -34
  4. package/.vite/deps_temp_ce3ed5bf/package.json +0 -3
  5. package/.vscode/extensions.json +0 -3
  6. package/LICENSE +0 -661
  7. package/README.en.md +0 -36
  8. package/README.md +0 -252
  9. package/index.html +0 -13
  10. package/src/App.vue +0 -59
  11. package/src/ChildCom.vue +0 -24
  12. package/src/assets/vue.svg +0 -1
  13. package/src/components/femessage/components/render-form-group.vue +0 -48
  14. package/src/components/femessage/components/render-form-item.vue +0 -328
  15. package/src/components/femessage/el-form-renderer.vue +0 -284
  16. package/src/components/femessage/util/CustomComponent.js +0 -28
  17. package/src/components/femessage/util/VNode.js +0 -9
  18. package/src/components/femessage/util/enable-when.js +0 -26
  19. package/src/components/femessage/util/transform-content.js +0 -48
  20. package/src/components/femessage/util/utils.js +0 -127
  21. package/src/el-form-renderer.md +0 -220
  22. package/src/main.js +0 -15
  23. package/src/router/index.js +0 -160
  24. package/src/style.css +0 -89
  25. package/src/view/AboutView.vue +0 -40
  26. package/src/view/HomeView.vue +0 -134
  27. package/src/view/MyInput.vue +0 -46
  28. package/src/view/checkboxGroup.vue +0 -29
  29. package/src/view/content.vue +0 -176
  30. package/src/view/deprecated.vue +0 -37
  31. package/src/view/disabled.vue +0 -104
  32. package/src/view/el.vue +0 -24
  33. package/src/view/format.vue +0 -63
  34. package/src/view/getcomponent.vue +0 -51
  35. package/src/view/getform.vue +0 -50
  36. package/src/view/hidden.vue +0 -51
  37. package/src/view/label.vue +0 -25
  38. package/src/view/next.vue +0 -55
  39. package/src/view/picker.vue +0 -27
  40. package/src/view/radioGroup.vue +0 -38
  41. package/src/view/readonly.vue +0 -144
  42. package/src/view/remote.vue +0 -115
  43. package/src/view/rules.vue +0 -46
  44. package/src/view/rulesPlus.vue +0 -34
  45. package/src/view/setoptios.vue +0 -50
  46. package/src/view/slot.vue +0 -37
  47. package/src/view/testAttrs.vue +0 -17
  48. package/src/view/update.vue +0 -64
  49. package/src/view/vmodel.vue +0 -137
  50. package/src/your-component.vue +0 -55
  51. package/vite.config.js +0 -7
  52. /package/{public/vite.svg → vite.svg} +0 -0
@@ -1,64 +0,0 @@
1
- <template>
2
- <div class="box">update-form</div>
3
- <div>默认情况下,updateForm 来者不拒,不在表单设置内的值,也可以存储进去 </div>
4
- <div class="update-form">
5
- <el-form-renderer :content="content" inline ref="formRender">
6
- <el-button @click="setValue">updateForm()</el-button>
7
- <div>
8
- <el-button type="primary" @click="getValue(false)">log getFormValue()</el-button>
9
- <el-button type="primary" @click="getValue(true)">log getFormValue({strict: true})</el-button>
10
- </div>
11
- </el-form-renderer>
12
- <div>{{ value }}</div>
13
- </div>
14
- </template>
15
- <script setup>
16
- import { reactive, ref } from "vue";
17
- import elFormRenderer from "../components/femessage/el-form-renderer.vue";
18
- let formRender = ref()
19
- let value = ref()
20
- const content = reactive([
21
- {
22
- id: 'name',
23
- type: 'input',
24
- label: 'name',
25
- el: {
26
- placeholder: 'name'
27
- }
28
- },
29
- {
30
- id: 'area',
31
- type: 'select',
32
- label: 'area',
33
- el: {
34
- placeholder: 'area'
35
- },
36
- options: [{
37
- label: 'shanghai',
38
- value: 'shanghai'
39
- }, {
40
- label: 'beijing',
41
- value: 'beijing'
42
- }]
43
- }
44
- ]);
45
- const getValue = (strict) => {
46
- let res = formRender.value.getFormValue({ strict })
47
- value.value = res
48
- }
49
- const setValue = () => {
50
- formRender.value.updateForm({
51
- name: 'alvin',
52
- area: 'shanghai',
53
- // 设置冗余字段
54
- extraKey: 'extraValue',
55
- })
56
- }
57
-
58
- </script>
59
- <style scoped>
60
- .box {
61
- margin: 20px 0;
62
- font-size: 20px;
63
- }
64
- </style>
@@ -1,137 +0,0 @@
1
- <template>
2
- <el-form-renderer label-width="100px" :content="content" v-model:FormData="FormData" ref="form">
3
- <el-button @click="resetForm">reset</el-button>
4
- <el-button @click="setValue">设置名字为小明</el-button>
5
- <pre>{{ FormData }}</pre>
6
- </el-form-renderer>
7
- </template>
8
-
9
- <script setup>
10
- import { reactive, ref } from "vue";
11
- import elFormRenderer from "../components/femessage/el-form-renderer.vue";
12
- const form = ref();
13
- let FormData = reactive({
14
- "name": "",
15
- "type": [],
16
- "startDate": "2019-01-01",
17
- "endDate": "2019-01-02",
18
- "region": [],
19
- "date": [
20
- "2019-01-01",
21
- "2019-01-02"
22
- ]
23
- });
24
- const content = reactive([
25
- {
26
- type: 'input',
27
- id: 'name',
28
- label: 'name',
29
- attrs: { 'data-name': 'form1' },
30
- el: {
31
- size: 'default',
32
- placeholder: 'test placeholder'
33
- },
34
- rules: [
35
- { required: true, message: 'miss name', trigger: 'blur' },
36
- { min: 3, max: 5, message: 'length between 3 to 5', trigger: 'blur' }
37
- ]
38
- }, {
39
- type: 'select',
40
- id: 'region',
41
- label: 'region',
42
- options: [
43
- {
44
- label: 'shanghai',
45
- value: 'shanghai'
46
- },
47
- {
48
- label: 'beijing',
49
- value: 'beijing'
50
- },
51
- {
52
- label: 'guangzhou',
53
- value: 'guangzhou'
54
- },
55
- ],
56
- el: { filterable: true, multiple: true, multipleLimit: 2 },
57
- rules: [
58
- { required: true, message: 'miss area', trigger: 'change' }
59
- ]
60
- }, {
61
- type: 'date-picker',
62
- id: 'date',
63
- label: 'date',
64
- el: {
65
- type: 'daterange',
66
- valueFormat: 'yyyy-MM-dd'
67
- },
68
- rules: [
69
- { required: true, message: 'miss date', trigger: 'change' }
70
- ],
71
- inputFormat: (row) => {
72
- if (row.startDate && row.endDate) {
73
- return [row.startDate, row.endDate]
74
- }
75
- },
76
- outputFormat: (val) => {
77
- if (!val) {
78
- return { startDate: '', endDate: '' }
79
- }
80
- return {
81
- startDate: val[0],
82
- endDate: val[1]
83
- }
84
- }
85
- }, {
86
- type: 'switch',
87
- id: 'delivery',
88
- label: 'delivery'
89
- }, {
90
- type: 'checkbox-group',
91
- id: 'type',
92
- label: 'type',
93
- default: [],
94
- options: [{
95
- label: 'typeA'
96
- }, {
97
- label: 'typeB'
98
- }, {
99
- label: 'typeC'
100
- }],
101
- rules: [
102
- { type: 'array', required: true, message: 'miss type', trigger: 'change' }
103
- ]
104
- }, {
105
- type: 'radio-group',
106
- id: 'resource',
107
- label: 'resource',
108
- options: [{
109
- label: 'resourceA',
110
- value: 'A',
111
- }, {
112
- label: 'resourceB',
113
- value: 'B'
114
- }],
115
- rules: [
116
- { required: true, message: 'miss resource', trigger: 'change' }
117
- ]
118
- }, {
119
- type: 'input',
120
- id: 'desc',
121
- label: 'desc',
122
- el: {
123
- type: 'textarea'
124
- },
125
- rules: [
126
- { required: true, message: 'miss desc', trigger: 'blur' }
127
- ]
128
- }
129
- ]);
130
- const resetForm = () => {
131
- form.value.methods.resetFields();
132
- };
133
- const setValue = () => {
134
- FormData.name = '小明'
135
- };
136
-
137
- </script>
@@ -1,55 +0,0 @@
1
- <template>
2
- <el-input v-model="newValue" v-bind="$attrs"></el-input>
3
- </template>
4
-
5
- <script setup>
6
- let emit = defineEmits(["customEvent", "update:modelValue"]);
7
-
8
- import { watch, computed, useAttrs } from "vue";
9
- let props = defineProps({
10
- modelValue: String,
11
- title: String,
12
- });
13
- const attrs = useAttrs();
14
- console.log(attrs);
15
- watch(
16
- () => props.modelValue,
17
- () => {
18
- console.log("触发");
19
- emit("customEvent", newValue.value);
20
- }
21
- );
22
- // 计算属性求和
23
- const newValue = computed({
24
- get: () => {
25
- console.log("get");
26
- return props.modelValue;
27
- },
28
- set: (value) => {
29
- console.log("set");
30
- return emit("update:modelValue", value);
31
- },
32
- });
33
- </script>
34
- <script>
35
- export default {
36
- // 校验规则
37
- // rules: [
38
- // {
39
- // required: true,
40
- // message: "自定义组件的提醒消息",
41
- // },
42
- // ],
43
-
44
- // rules 也可以是个函数, 参数是当前表单项配置, 需要返回一个数组.
45
- rules(item) {
46
- console.log(item);
47
- return [
48
- {
49
- required: true,
50
- message: `${item.id} 不能为空`,
51
- },
52
- ];
53
- },
54
- };
55
- </script>
package/vite.config.js DELETED
@@ -1,7 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import vue from '@vitejs/plugin-vue'
3
-
4
- // https://vitejs.dev/config/
5
- export default defineConfig({
6
- plugins: [vue()],
7
- })
File without changes