tianheng-ui 0.0.46 → 0.0.47

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,184 +1,184 @@
1
- <template>
2
- <div class="fm-style">
3
- <el-form
4
- ref="generateForm"
5
- label-suffix=":"
6
- :size="data.config.size"
7
- :model="models"
8
- :rules="rules"
9
- :label-position="data.config.labelPosition"
10
- :label-width="data.config.labelWidth + 'px'"
11
- >
12
- <template v-for="item in data.list">
13
- <template v-if="item.type == 'grid'">
14
- <el-row
15
- :key="item.key"
16
- type="flex"
17
- :gutter="item.options.gutter ? item.options.gutter : 0"
18
- :justify="item.options.justify"
19
- :align="item.options.align"
20
- >
21
- <el-col
22
- v-for="(col, colIndex) in item.columns"
23
- :key="colIndex"
24
- :span="col.span"
25
- >
26
- <template v-for="citem in col.list">
27
- <el-form-item
28
- v-if="citem.type == 'blank'"
29
- :label="citem.name"
30
- :prop="citem.model"
31
- :key="citem.key"
32
- >
33
- <slot :name="citem.model" :model="models"></slot>
34
- </el-form-item>
35
- <genetate-form-item
36
- v-else
37
- :key="citem.key"
38
- :models.sync="models"
39
- :remote="remote"
40
- :rules="rules"
41
- :widget="citem"
42
- @input-change="onInputChange"
43
- >
44
- </genetate-form-item>
45
- </template>
46
- </el-col>
47
- </el-row>
48
- </template>
49
-
50
- <template v-else-if="item.type == 'blank'">
51
- <el-form-item :label="item.name" :prop="item.model" :key="item.key">
52
- <slot :name="item.model" :model="models"></slot>
53
- </el-form-item>
54
- </template>
55
-
56
- <template v-else>
57
- <genetate-form-item
58
- :key="item.key"
59
- :models.sync="models"
60
- :rules="rules"
61
- :widget="item"
62
- @input-change="onInputChange"
63
- :remote="remote"
64
- >
65
- </genetate-form-item>
66
- </template>
67
- </template>
68
- </el-form>
69
- </div>
70
- </template>
71
-
72
- <script>
73
- import GenetateFormItem from "./GenerateFormItem";
74
-
75
- export default {
76
- name: "fm-generate-form",
77
- components: {
78
- GenetateFormItem,
79
- },
80
- props: ["data", "remote", "value", "insite"],
81
- data() {
82
- return {
83
- models: {},
84
- rules: {},
85
- };
86
- },
87
- created() {
88
- this.generateModle(this.data.list);
89
- },
90
- mounted() {},
91
- methods: {
92
- generateModle(genList) {
93
- for (let i = 0; i < genList.length; i++) {
94
- if (genList[i].type === "grid") {
95
- genList[i].columns.forEach((item) => {
96
- this.generateModle(item.list);
97
- });
98
- } else {
99
- if (
100
- this.value &&
101
- Object.keys(this.value).indexOf(genList[i].model) >= 0
102
- ) {
103
- this.models[genList[i].model] = this.value[genList[i].model];
104
- } else {
105
- if (genList[i].type === "blank") {
106
- this.$set(
107
- this.models,
108
- genList[i].model,
109
- genList[i].options.defaultType === "String"
110
- ? ""
111
- : genList[i].options.defaultType === "Object"
112
- ? {}
113
- : []
114
- );
115
- } else {
116
- this.models[genList[i].model] = genList[i].options.defaultValue;
117
- }
118
- }
119
-
120
- if (this.rules[genList[i].model]) {
121
- this.rules[genList[i].model] = [
122
- ...this.rules[genList[i].model],
123
- ...genList[i].rules.map((item) => {
124
- if (item.pattern) {
125
- return { ...item, pattern: new RegExp(item.pattern) };
126
- } else {
127
- return { ...item };
128
- }
129
- }),
130
- ];
131
- } else {
132
- this.rules[genList[i].model] = [
133
- ...genList[i].rules.map((item) => {
134
- if (item.pattern) {
135
- return { ...item, pattern: new RegExp(item.pattern) };
136
- } else {
137
- return { ...item };
138
- }
139
- }),
140
- ];
141
- }
142
- }
143
- }
144
- },
145
- getData() {
146
- return new Promise((resolve, reject) => {
147
- this.$refs.generateForm.validate((valid) => {
148
- if (valid) {
149
- resolve(this.models);
150
- } else {
151
- reject(new Error('表单数据校验失败').message);
152
- }
153
- });
154
- });
155
- },
156
- reset() {
157
- this.$refs.generateForm.resetFields();
158
- },
159
- onInputChange(value, field) {
160
- this.$emit("on-change", field, value, this.models);
161
- },
162
- refresh() {},
163
- },
164
- watch: {
165
- data: {
166
- deep: true,
167
- handler(val) {
168
- this.generateModle(val.list);
169
- },
170
- },
171
- value: {
172
- deep: true,
173
- handler(val) {
174
- console.log(JSON.stringify(val));
175
- this.models = { ...this.models, ...val };
176
- },
177
- },
178
- },
179
- };
180
- </script>
181
-
182
- <style lang="scss">
183
- // @import '../styles/cover.scss';
184
- </style>
1
+ <template>
2
+ <div class="fm-style">
3
+ <el-form
4
+ ref="generateForm"
5
+ label-suffix=":"
6
+ :size="data.config.size"
7
+ :model="models"
8
+ :rules="rules"
9
+ :label-position="data.config.labelPosition"
10
+ :label-width="data.config.labelWidth + 'px'"
11
+ >
12
+ <template v-for="item in data.list">
13
+ <template v-if="item.type == 'grid'">
14
+ <el-row
15
+ :key="item.key"
16
+ type="flex"
17
+ :gutter="item.options.gutter ? item.options.gutter : 0"
18
+ :justify="item.options.justify"
19
+ :align="item.options.align"
20
+ >
21
+ <el-col
22
+ v-for="(col, colIndex) in item.columns"
23
+ :key="colIndex"
24
+ :span="col.span"
25
+ >
26
+ <template v-for="citem in col.list">
27
+ <el-form-item
28
+ v-if="citem.type == 'blank'"
29
+ :label="citem.name"
30
+ :prop="citem.model"
31
+ :key="citem.key"
32
+ >
33
+ <slot :name="citem.model" :model="models"></slot>
34
+ </el-form-item>
35
+ <genetate-form-item
36
+ v-else
37
+ :key="citem.key"
38
+ :models.sync="models"
39
+ :remote="remote"
40
+ :rules="rules"
41
+ :widget="citem"
42
+ @input-change="onInputChange"
43
+ >
44
+ </genetate-form-item>
45
+ </template>
46
+ </el-col>
47
+ </el-row>
48
+ </template>
49
+
50
+ <template v-else-if="item.type == 'blank'">
51
+ <el-form-item :label="item.name" :prop="item.model" :key="item.key">
52
+ <slot :name="item.model" :model="models"></slot>
53
+ </el-form-item>
54
+ </template>
55
+
56
+ <template v-else>
57
+ <genetate-form-item
58
+ :key="item.key"
59
+ :models.sync="models"
60
+ :rules="rules"
61
+ :widget="item"
62
+ @input-change="onInputChange"
63
+ :remote="remote"
64
+ >
65
+ </genetate-form-item>
66
+ </template>
67
+ </template>
68
+ </el-form>
69
+ </div>
70
+ </template>
71
+
72
+ <script>
73
+ import GenetateFormItem from "./GenerateFormItem";
74
+
75
+ export default {
76
+ name: "fm-generate-form",
77
+ components: {
78
+ GenetateFormItem,
79
+ },
80
+ props: ["data", "remote", "value", "insite"],
81
+ data() {
82
+ return {
83
+ models: {},
84
+ rules: {},
85
+ };
86
+ },
87
+ created() {
88
+ this.generateModle(this.data.list);
89
+ },
90
+ mounted() {},
91
+ methods: {
92
+ generateModle(genList) {
93
+ for (let i = 0; i < genList.length; i++) {
94
+ if (genList[i].type === "grid") {
95
+ genList[i].columns.forEach((item) => {
96
+ this.generateModle(item.list);
97
+ });
98
+ } else {
99
+ if (
100
+ this.value &&
101
+ Object.keys(this.value).indexOf(genList[i].model) >= 0
102
+ ) {
103
+ this.models[genList[i].model] = this.value[genList[i].model];
104
+ } else {
105
+ if (genList[i].type === "blank") {
106
+ this.$set(
107
+ this.models,
108
+ genList[i].model,
109
+ genList[i].options.defaultType === "String"
110
+ ? ""
111
+ : genList[i].options.defaultType === "Object"
112
+ ? {}
113
+ : []
114
+ );
115
+ } else {
116
+ this.models[genList[i].model] = genList[i].options.defaultValue;
117
+ }
118
+ }
119
+
120
+ if (this.rules[genList[i].model]) {
121
+ this.rules[genList[i].model] = [
122
+ ...this.rules[genList[i].model],
123
+ ...genList[i].rules.map((item) => {
124
+ if (item.pattern) {
125
+ return { ...item, pattern: new RegExp(item.pattern) };
126
+ } else {
127
+ return { ...item };
128
+ }
129
+ }),
130
+ ];
131
+ } else {
132
+ this.rules[genList[i].model] = [
133
+ ...genList[i].rules.map((item) => {
134
+ if (item.pattern) {
135
+ return { ...item, pattern: new RegExp(item.pattern) };
136
+ } else {
137
+ return { ...item };
138
+ }
139
+ }),
140
+ ];
141
+ }
142
+ }
143
+ }
144
+ },
145
+ getData() {
146
+ return new Promise((resolve, reject) => {
147
+ this.$refs.generateForm.validate((valid) => {
148
+ if (valid) {
149
+ resolve(this.models);
150
+ } else {
151
+ reject(new Error('表单数据校验失败').message);
152
+ }
153
+ });
154
+ });
155
+ },
156
+ reset() {
157
+ this.$refs.generateForm.resetFields();
158
+ },
159
+ onInputChange(value, field) {
160
+ this.$emit("on-change", field, value, this.models);
161
+ },
162
+ refresh() {},
163
+ },
164
+ watch: {
165
+ data: {
166
+ deep: true,
167
+ handler(val) {
168
+ this.generateModle(val.list);
169
+ },
170
+ },
171
+ value: {
172
+ deep: true,
173
+ handler(val) {
174
+ console.log(JSON.stringify(val));
175
+ this.models = { ...this.models, ...val };
176
+ },
177
+ },
178
+ },
179
+ };
180
+ </script>
181
+
182
+ <style lang="scss">
183
+ // @import '../styles/cover.scss';
184
+ </style>