meixioacomponent 0.2.15 → 0.2.18

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meixioacomponent",
3
- "version": "0.2.15",
3
+ "version": "0.2.18",
4
4
  "private": false,
5
5
  "author": "YuRi",
6
6
  "main": "lib/meixioacomponent.umd.min.js",
@@ -92,7 +92,6 @@
92
92
  </template>
93
93
 
94
94
  <script>
95
- import { json } from "body-parser";
96
95
  import baseButtonHandleVue from "../baseButtonHandle/baseButtonHandle.vue";
97
96
  //
98
97
  import areaJson from "./area";
@@ -190,9 +189,7 @@ export default {
190
189
  },
191
190
  methods: {
192
191
  init() {
193
- //console.log("start");
194
192
  if (this.module && this.module instanceof Object) {
195
- //console.log("end");
196
193
  for (let i = 0; i < areaConfig.length; i++) {
197
194
  let item = areaConfig[i];
198
195
  let value = this.module[`${item.value}`];
@@ -377,6 +374,13 @@ export default {
377
374
  }
378
375
  },
379
376
  },
377
+ watch: {
378
+ module(newVal, oldVal) {
379
+ if (this.$parent.$options._componentTag == "el-form-item") {
380
+ this.init();
381
+ }
382
+ },
383
+ },
380
384
  };
381
385
  </script>
382
386
 
@@ -0,0 +1,38 @@
1
+ <template>
2
+ <div class="form-item-skeleton-wrap">
3
+ <div class="skeleton-left">
4
+ <base-skeleton :shape="`rect`" :lines="[1]"> </base-skeleton>
5
+ </div>
6
+ <div class="skeleton-right">
7
+ <base-skeleton :shape="`rect`" :lines="[4, 7]"> </base-skeleton>
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ export default {
14
+ data() {
15
+ return {};
16
+ },
17
+ };
18
+ </script>
19
+
20
+ <style lang="less" scoped>
21
+ .form-item-skeleton-wrap {
22
+ width: 100%;
23
+ height: 100%;
24
+ display: flex;
25
+ align-items: center;
26
+ flex-flow: row nowrap;
27
+ justify-content: space-between;
28
+ .skeleton-left {
29
+ width: 30%;
30
+ height: 100%;
31
+ margin-right: var(--margin-5);
32
+ }
33
+ .skeleton-right {
34
+ height: 60px;
35
+ width: calc(70% - 10px);
36
+ }
37
+ }
38
+ </style>
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div class="pro_form_content" ref="proFormWrap">
3
3
  <el-form
4
+ v-if="!loading"
4
5
  ref="form"
5
6
  :rules="rules"
6
7
  :model="formdata"
@@ -27,17 +28,20 @@
27
28
  :class="[`form-item-${citem.key}`]"
28
29
  v-if="formType == 'default' && citem.type != 'area'"
29
30
  @formItemConfirm="formItemConfirm"
30
- v-model="formdata[`${citem.key}`]"
31
+ @proFormItemChange="
32
+ proFormItemChange($event, findFormItem(index, cindex))
33
+ "
34
+ v-model="formList[findFormItem(index, cindex)].value"
31
35
  >
32
36
  <template slot="template" v-if="citem.type == 'template'">
33
- <slot :name="`form-${citem.key}`" :scope="formdata"></slot>
37
+ <slot :name="`form-${citem.key}`" :scope="formList"></slot>
34
38
  </template>
35
39
  </pro_form_itemVue>
36
40
  <baseAreaVue
37
41
  :disable="citem.disabled"
38
42
  v-if="citem.type == 'area'"
39
43
  :ref="`area-${citem.key}`"
40
- v-model="formdata[`${citem.key}`]"
44
+ v-model="formList[findFormItem(index, cindex)].value"
41
45
  :class="[`form-item-${citem.key}`]"
42
46
  @confirmAreaValue="
43
47
  formItemConfirm({
@@ -48,7 +52,7 @@
48
52
  <baseUploadVue
49
53
  :max="formConfig.max"
50
54
  v-if="formType == `upload`"
51
- v-model="formdata[`${citem.key}`]"
55
+ v-model="formList[findFormItem(index, cindex)].value"
52
56
  :class="[`form-item-${citem.key}`]"
53
57
  ></baseUploadVue>
54
58
  </el-form-item>
@@ -62,6 +66,23 @@
62
66
  :config="handleConfig"
63
67
  ></baseButtonHandleVue>
64
68
  </el-form>
69
+
70
+ <div class="form-skeleton-wrap" v-else>
71
+ <div
72
+ :key="index"
73
+ class="form-line-box"
74
+ v-for="(item, index) in formLineList"
75
+ >
76
+ <div
77
+ class="form-skeleton-item-wrap"
78
+ :key="cindex"
79
+ v-for="(citem, cindex) in item"
80
+ :class="[`chunk-${chunkLength}`, `${flexClass}`, size]"
81
+ >
82
+ <pro_formItem_skeletonVue></pro_formItem_skeletonVue>
83
+ </div>
84
+ </div>
85
+ </div>
65
86
  </div>
66
87
  </template>
67
88
 
@@ -69,6 +90,7 @@
69
90
  import pro_form_itemVue from "./pro_form_item.vue";
70
91
  import baseAreaVue from "../../base/baseArea/baseArea.vue";
71
92
  import baseUploadVue from "../../base/baseUpload/baseUpload.vue";
93
+ import pro_formItem_skeletonVue from "./pro_form-item_skeleton.vue";
72
94
  import baseButtonHandleVue from "../../base/baseButtonHandle/baseButtonHandle.vue";
73
95
  //
74
96
  import { ArrayChunk } from "../../../utils/utils";
@@ -76,20 +98,17 @@ export default {
76
98
  name: "baseForm",
77
99
  data() {
78
100
  return {
79
- formdata: {},
80
101
  handleConfig: [],
81
- formLineList: [],
82
102
  chunkLength: null,
103
+ loading: true,
83
104
  };
84
105
  },
85
- created() {
106
+ created() {},
107
+ mounted() {
86
108
  this.$nextTick(() => {
87
109
  this.init();
88
- this.setFormData();
89
- this.setFormLineList();
90
110
  });
91
111
  },
92
- mounted() {},
93
112
  props: {
94
113
  rules: {
95
114
  type: Object,
@@ -143,6 +162,7 @@ export default {
143
162
  baseUploadVue,
144
163
  pro_form_itemVue,
145
164
  baseButtonHandleVue,
165
+ pro_formItem_skeletonVue,
146
166
  },
147
167
  computed: {
148
168
  flexClass() {
@@ -153,6 +173,18 @@ export default {
153
173
  return "flex-row";
154
174
  }
155
175
  },
176
+
177
+ formdata() {
178
+ let obj = {};
179
+ this.$props.formList.forEach((item) => {
180
+ obj[`${item.key}`] = item.value;
181
+ });
182
+ return obj;
183
+ },
184
+
185
+ formLineList() {
186
+ return ArrayChunk(this.$props.formList, this.chunkLength);
187
+ },
156
188
  },
157
189
  methods: {
158
190
  init() {
@@ -176,7 +208,9 @@ export default {
176
208
  },
177
209
  ];
178
210
  }
179
-
211
+ this.setChunkLength();
212
+ },
213
+ setChunkLength() {
180
214
  if (this.$props.rowNumber) {
181
215
  this.chunkLength = this.$props.rowNumber;
182
216
  return;
@@ -221,6 +255,8 @@ export default {
221
255
  let confrim = true;
222
256
  const rulesItem = this.$props.rules[params.config.key];
223
257
  if (rulesItem) {
258
+ console.log(rulesItem);
259
+ console.log(this.$refs.form);
224
260
  this.$refs.form.validateField(
225
261
  [`${params.config.key}`],
226
262
  (errorMsg) => {
@@ -236,15 +272,7 @@ export default {
236
272
  return true;
237
273
  }
238
274
  },
239
- setFormData() {
240
- this.formdata = {};
241
- this.$props.formList.forEach((item) => {
242
- this.$set(this.formdata, `${item.key}`, item.value);
243
- });
244
- },
245
- setFormLineList() {
246
- this.formLineList = ArrayChunk(this.$props.formList, this.chunkLength);
247
- },
275
+
248
276
  // 返回form表单值
249
277
  returnFormValue() {
250
278
  return this.formdata;
@@ -257,8 +285,11 @@ export default {
257
285
  checkValidate() {
258
286
  return new Promise((resolve, reject) => {
259
287
  this.$refs.form.validate((validate, Object) => {
288
+ console.log(Object);
260
289
  // 滚动至未填写的项目中
261
- this.scrollToItem(Object);
290
+ if (JSON.stringify(Object) != "{}") {
291
+ this.scrollToItem(Object);
292
+ }
262
293
  resolve({ result: validate, validateArray: Object });
263
294
  });
264
295
  });
@@ -292,11 +323,18 @@ export default {
292
323
  onCancel() {
293
324
  this.$emit("onCancel");
294
325
  },
326
+
327
+ findFormItem(index, cindex) {
328
+ return index * this.chunkLength + cindex;
329
+ },
295
330
  },
296
331
  watch: {
297
- formList(newVal, oldVal) {
298
- this.setFormData();
299
- this.setFormLineList();
332
+ chunkLength(newVal, oldVal) {
333
+ if (this.loading) {
334
+ setTimeout(() => {
335
+ this.loading = false;
336
+ }, 1500);
337
+ }
300
338
  },
301
339
  },
302
340
  };