tianheng-ui 0.1.43 → 0.1.45

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 (58) hide show
  1. package/lib/tianheng-ui.js +13 -13
  2. package/package.json +1 -1
  3. package/packages/FormMaking/GenerateForm.vue +93 -84
  4. package/packages/FormMaking/GenerateFormItem.vue +40 -130
  5. package/packages/FormMaking/WidgetConfig.vue +123 -59
  6. package/packages/FormMaking/WidgetFormItem.vue +1 -1
  7. package/packages/FormMaking/WidgetTools.vue +34 -9
  8. package/packages/FormMaking/custom/config.js +6 -2
  9. package/packages/FormMaking/custom/configs/button.vue +2 -2
  10. package/packages/FormMaking/custom/configs/cascader.vue +2 -2
  11. package/packages/FormMaking/custom/configs/checkbox.vue +2 -2
  12. package/packages/FormMaking/custom/configs/grid.vue +12 -0
  13. package/packages/FormMaking/custom/configs/list.vue +18 -0
  14. package/packages/FormMaking/custom/configs/radio.vue +2 -2
  15. package/packages/FormMaking/custom/configs/select.vue +2 -2
  16. package/packages/FormMaking/custom/configs/tabs.vue +2 -2
  17. package/packages/FormMaking/custom/configs/upload.vue +2 -2
  18. package/packages/FormMaking/custom/items/alliance.vue +2 -2
  19. package/packages/FormMaking/custom/items/blank_dev.vue +2 -2
  20. package/packages/FormMaking/custom/items/blank_pro.vue +2 -2
  21. package/packages/FormMaking/custom/items/button.vue +2 -2
  22. package/packages/FormMaking/custom/items/cascader.vue +2 -2
  23. package/packages/FormMaking/custom/items/cell.vue +2 -2
  24. package/packages/FormMaking/custom/items/checkbox.vue +2 -2
  25. package/packages/FormMaking/custom/items/color.vue +2 -2
  26. package/packages/FormMaking/custom/items/date.vue +2 -2
  27. package/packages/FormMaking/custom/items/divider.vue +2 -2
  28. package/packages/FormMaking/custom/items/editor.vue +2 -2
  29. package/packages/FormMaking/custom/items/filler.vue +2 -2
  30. package/packages/FormMaking/custom/items/grid_dev.vue +2 -2
  31. package/packages/FormMaking/custom/items/grid_pro.vue +18 -4
  32. package/packages/FormMaking/custom/items/image.vue +2 -2
  33. package/packages/FormMaking/custom/items/input.vue +2 -2
  34. package/packages/FormMaking/custom/items/list_dev.vue +2 -2
  35. package/packages/FormMaking/custom/items/number.vue +2 -2
  36. package/packages/FormMaking/custom/items/radio.vue +2 -2
  37. package/packages/FormMaking/custom/items/rate.vue +2 -2
  38. package/packages/FormMaking/custom/items/select.vue +2 -2
  39. package/packages/FormMaking/custom/items/slider.vue +2 -2
  40. package/packages/FormMaking/custom/items/switch.vue +2 -2
  41. package/packages/FormMaking/custom/items/tableH5_dev.vue +2 -2
  42. package/packages/FormMaking/custom/items/tableH5_pro.vue +26 -18
  43. package/packages/FormMaking/custom/items/table_dev.vue +2 -2
  44. package/packages/FormMaking/custom/items/table_pro.vue +10 -5
  45. package/packages/FormMaking/custom/items/tabs_dev.vue +2 -2
  46. package/packages/FormMaking/custom/items/tabs_pro.vue +14 -9
  47. package/packages/FormMaking/custom/items/text.vue +2 -2
  48. package/packages/FormMaking/custom/items/textarea.vue +2 -2
  49. package/packages/FormMaking/custom/items/time.vue +2 -2
  50. package/packages/FormMaking/custom/items/upload.vue +2 -2
  51. package/packages/FormMaking/custom/mixins/index.js +69 -13
  52. package/packages/FormMaking/index.vue +62 -57
  53. package/packages/TableMaking/custom/config.js +4 -1
  54. package/packages/TableMaking/custom/items/table/index-h5.vue +21 -30
  55. package/packages/TableMaking/custom/items/table/index-pc.vue +3 -3
  56. package/packages/TableMaking/index.vue +44 -6
  57. package/packages/TableMaking/widgetConfig.vue +99 -49
  58. package/packages/TableMaking/widgetTable.vue +4 -4
@@ -14,7 +14,7 @@
14
14
 
15
15
  <div v-if="activeTab.value === 'field'">
16
16
  <el-form
17
- v-if="data.model"
17
+ v-if="data.key"
18
18
  :model="data"
19
19
  label-position="left"
20
20
  label-width="80px"
@@ -48,7 +48,10 @@
48
48
  </el-option>
49
49
  </el-select>
50
50
  </el-form-item>
51
- <el-form-item v-if="config.fieldsType === 'fieldsApi'" prop="model">
51
+ <el-form-item
52
+ v-if="config.fields.type === 'api'"
53
+ :prop="['grid'].includes(data.type) ? '' : 'model'"
54
+ >
52
55
  <el-tooltip
53
56
  slot="label"
54
57
  effect="light"
@@ -57,21 +60,31 @@
57
60
  >
58
61
  <span style="color: #409EFF;">字段标识</span>
59
62
  </el-tooltip>
60
- <el-select
63
+ <el-cascader
64
+ v-model="data.model"
65
+ :options="getFieldsOptions"
66
+ :props="{
67
+ value: 'alias',
68
+ checkStrictly: true,
69
+ emitPath: false
70
+ }"
71
+ clearable
72
+ ></el-cascader>
73
+ <!-- <el-select
61
74
  v-model="data.model"
62
75
  style="width:100%;"
63
76
  placeholder="请选择字段"
64
77
  >
65
78
  <el-option
66
- v-for="item in fields"
67
- :key="item.prop"
79
+ v-for="item in getFieldsOptions"
80
+ :key="item.alias"
68
81
  :label="item.label"
69
- :value="item.prop"
82
+ :value="item.alias"
70
83
  >
71
84
  </el-option>
72
- </el-select>
85
+ </el-select> -->
73
86
  </el-form-item>
74
- <el-form-item prop="model">
87
+ <el-form-item :prop="['grid'].includes(data.type) ? '' : 'model'">
75
88
  <el-tooltip
76
89
  slot="label"
77
90
  effect="light"
@@ -87,8 +100,7 @@
87
100
  <component
88
101
  :widget="data"
89
102
  :config="config"
90
- :fields="fields"
91
- :apiConfig="apiConfig"
103
+ :apiOptions="apiOptions"
92
104
  :is="compsData[data.type].content"
93
105
  ></component>
94
106
 
@@ -146,7 +158,7 @@
146
158
  >
147
159
  <el-collapse v-model="collapseValue">
148
160
  <el-collapse-item title="表单配置" name="group-form">
149
- <el-form-item prop="fieldsType" required>
161
+ <el-form-item prop="fields.type" required>
150
162
  <el-tooltip
151
163
  slot="label"
152
164
  effect="light"
@@ -155,41 +167,49 @@
155
167
  >
156
168
  <span style="color: #409EFF;">字段类型</span>
157
169
  </el-tooltip>
158
- <el-radio-group v-model="config.fieldsType">
170
+ <el-radio-group v-model="config.fields.type">
159
171
  <el-radio-button label="custom">自定义</el-radio-button>
160
- <el-radio-button label="fieldsApi">接口导入</el-radio-button>
172
+ <el-radio-button label="api">接口导入</el-radio-button>
161
173
  </el-radio-group>
162
174
  </el-form-item>
163
- <el-form-item
164
- v-if="config.fieldsType === 'fieldsApi'"
165
- prop="fieldsApi"
166
- required
167
- >
168
- <el-tooltip
169
- slot="label"
170
- effect="light"
171
- content="使用接口的出参配置可选字段"
172
- placement="top"
173
- >
174
- <span style="color: #409EFF;">字段接口</span>
175
- </el-tooltip>
176
- <el-select
177
- v-model="config.fieldsApi"
178
- style="width:100%"
179
- clearable
180
- placeholder="请选择"
181
- no-data-text="暂无接口,请前往【数据源模块】创建"
182
- @change="handleFieldsApiChange"
183
- >
184
- <el-option
185
- v-for="item in Object.values(apiConfig)"
186
- :key="item.id"
187
- :label="item.label"
188
- :value="item.id"
175
+ <template v-if="config.fields.type === 'api'">
176
+ <el-form-item>
177
+ <el-tooltip
178
+ slot="label"
179
+ effect="light"
180
+ content="开启后,列表接口值修改,会触发 remote-params 回调,用于从服务器查询字段,"
181
+ placement="top"
189
182
  >
190
- </el-option>
191
- </el-select>
192
- </el-form-item>
183
+ <span style="color: #409EFF;">远程字段</span>
184
+ </el-tooltip>
185
+ <el-switch v-model="config.fields.remote"> </el-switch>
186
+ </el-form-item>
187
+ <el-form-item prop="fields.api" required>
188
+ <el-tooltip
189
+ slot="label"
190
+ effect="light"
191
+ content="使用接口的出参配置可选字段"
192
+ placement="top"
193
+ >
194
+ <span style="color: #409EFF;">字段接口</span>
195
+ </el-tooltip>
196
+ <el-select
197
+ v-model="config.fields.api"
198
+ style="width:100%"
199
+ clearable
200
+ placeholder="请选择"
201
+ no-data-text="暂无接口,请前往【数据源模块】创建"
202
+ >
203
+ <el-option
204
+ v-for="item in apiOptions"
205
+ :key="item.id"
206
+ :label="item.name"
207
+ :value="item.id"
208
+ >
209
+ </el-option>
210
+ </el-select>
211
+ </el-form-item>
212
+ </template>
193
213
  <el-form-item label="表单标题" prop="title" required>
194
214
  <el-input
195
215
  v-model="config.title"
@@ -232,9 +252,9 @@
232
252
  no-data-text="暂无接口,请前往【接口模块】创建"
233
253
  >
234
254
  <el-option
235
- v-for="item in Object.values(apiConfig)"
255
+ v-for="item in apiOptions"
236
256
  :key="item.id"
237
- :label="item.label"
257
+ :label="item.name"
238
258
  :value="item.id"
239
259
  >
240
260
  </el-option>
@@ -381,9 +401,7 @@
381
401
  </div>
382
402
  </div>
383
403
  <span slot="footer" class="dialog-footer">
384
- <el-button size="small" @click="dialog.show = false"
385
- >取 消</el-button
386
- >
404
+ <el-button size="small" @click="dialog.show = false">取 消</el-button>
387
405
  <el-button type="primary" size="small" @click="handleEventDialogAffirm"
388
406
  >保 存</el-button
389
407
  >
@@ -409,8 +427,7 @@ export default {
409
427
  return {};
410
428
  }
411
429
  },
412
- fields: Array,
413
- apiConfig: Object
430
+ apiOptions: Array
414
431
  },
415
432
  data() {
416
433
  return {
@@ -431,6 +448,7 @@ export default {
431
448
  "group-attributes",
432
449
  "group-style_form"
433
450
  ],
451
+ fieldsData: { inParams: [], outParams: [] },
434
452
  dialog: {
435
453
  show: false,
436
454
  data: [],
@@ -472,7 +490,7 @@ export default {
472
490
  model: [
473
491
  { required: true, message: "请填选组件字段", trigger: "change" }
474
492
  ],
475
- fieldsApi: [
493
+ "fields.api": [
476
494
  { required: true, message: "请选择字段接口", trigger: "change" }
477
495
  ],
478
496
  title: [
@@ -481,6 +499,19 @@ export default {
481
499
  }
482
500
  };
483
501
  },
502
+ computed: {
503
+ getFieldsOptions() {
504
+ return this.fieldsData.inParams;
505
+ }
506
+ },
507
+ watch: {
508
+ "config.fields.api"(val) {
509
+ this.handleFieldsApiChange(val);
510
+ },
511
+ apiOptions() {
512
+ this.handleFieldsApiChange(this.config.fields.api);
513
+ }
514
+ },
484
515
  created() {
485
516
  this.activeTab = this.tabsMenus[1];
486
517
  const keys = Object.keys(this.compsData);
@@ -515,10 +546,7 @@ export default {
515
546
  };
516
547
  },
517
548
  handleEventDialogDelete(item, index) {
518
- if (
519
- this.dialog.active &&
520
- item.key === this.dialog.active.key
521
- ) {
549
+ if (this.dialog.active && item.key === this.dialog.active.key) {
522
550
  this.dialog.active = null;
523
551
  }
524
552
  this.dialog.data.splice(index, 1);
@@ -541,8 +569,46 @@ export default {
541
569
  const config = deepClone(this.compsData[val].config);
542
570
  this.$emit("update", config);
543
571
  },
544
- handleFieldsApiChange() {
545
- this.$emit("fieldsChange");
572
+ handleFieldsApiChange(apiId) {
573
+ if (!this.apiOptions.length || !this.config.fields.api) {
574
+ this.fieldsData = { inParams: [], outParams: [] };
575
+ return;
576
+ }
577
+ const api = this.apiOptions.filter(item => {
578
+ return item.id === apiId;
579
+ })[0];
580
+ if (!api) {
581
+ this.$message.warning("未知的字段借口,请检查配置信息");
582
+ this.fieldsData = { inParams: [], outParams: [] };
583
+ return;
584
+ }
585
+
586
+ const initParams = (paramsList, pAlias) => {
587
+ paramsList.forEach(item => {
588
+ item.elType = "input";
589
+ item.align = "left";
590
+ item.pAlias = pAlias ? `${pAlias}.${item.alias}` : item.alias;
591
+ if (item.children && item.children.length) {
592
+ initParams(item.children, item.pAlias);
593
+ }
594
+ });
595
+ };
596
+ if (this.config.fields.remote) {
597
+ const callback = res => {
598
+ api.inParams = res.inParams;
599
+ api.outParams = res.outParams;
600
+ this.fieldsData.inParams = deepClone(res.inParams) || [];
601
+ initParams(this.fieldsData.inParams);
602
+ this.fieldsData.outParams = deepClone(res.outParams) || [];
603
+ initParams(this.fieldsData.outParams);
604
+ };
605
+ this.$emit("remote-params", apiId, callback);
606
+ } else {
607
+ this.fieldsData.inParams = deepClone(api.inParams) || [];
608
+ initParams(this.fieldsData.inParams);
609
+ this.fieldsData.outParams = deepClone(api.outParams) || [];
610
+ initParams(this.fieldsData.outParams);
611
+ }
546
612
  },
547
613
  formValidate() {
548
614
  return new Promise((resolve, reject) => {
@@ -550,9 +616,7 @@ export default {
550
616
  this.$refs.formRef.validate(valid => {
551
617
  resolve(valid);
552
618
  });
553
- } else {
554
- reject();
555
- }
619
+ } else reject();
556
620
  });
557
621
  }
558
622
  }
@@ -15,8 +15,8 @@
15
15
  >
16
16
  <component
17
17
  :is="compsData[widget.type].content"
18
- :value.sync="widget.options.defaultValue"
19
18
  :widget="widget"
19
+ :model.sync="widget.options.defaultValue"
20
20
  :config="config"
21
21
  :select.sync="selectWidget"
22
22
  :widgetArray="widgetArray"
@@ -165,7 +165,6 @@
165
165
  <generate-form
166
166
  v-if="dialog.show"
167
167
  :config="formData"
168
- :value="formValue"
169
168
  :oauthConfig="oauthConfig"
170
169
  :remoteData="remoteData"
171
170
  :slotKeys="slotKeys"
@@ -189,7 +188,6 @@
189
188
  v-if="dialog.show"
190
189
  class="box"
191
190
  :config="formData"
192
- :value="formValue"
193
191
  :oauthConfig="oauthConfig"
194
192
  :remote="remoteData"
195
193
  insite="true"
@@ -239,7 +237,6 @@ export default {
239
237
  basicComponents: Array,
240
238
  layoutComponents: Array,
241
239
  formData: Object,
242
- formValue: Object,
243
240
  oauthConfig: Object,
244
241
  apiOptions: Array
245
242
  },
@@ -305,12 +302,7 @@ export default {
305
302
  let workbook = XLSX.read(data, { type: "binary" }); //解析二进制格式数据
306
303
  let worksheet = workbook.Sheets[workbook.SheetNames[0]]; //获取第一个Sheet
307
304
 
308
- // console.log("XLSX.read => \n", workbook);
309
- // console.log("sheet_to_json => \n", XLSX.utils.sheet_to_json(worksheet));
310
- // console.log("sheet_to_csv => \n", XLSX.utils.sheet_to_csv(worksheet));
311
- // console.log("sheet_to_txt => \n", XLSX.utils.sheet_to_txt(worksheet));
312
305
  const xlsxDom = this.parseDom(XLSX.utils.sheet_to_html(worksheet));
313
- // console.log("sheet_to_html => \n", xlsxDom);
314
306
  const rowsDom = xlsxDom.getElementsByTagName("tr");
315
307
  let rowSpan = 0;
316
308
  for (let i = 0; i < rowsDom[0].childNodes.length; i++) {
@@ -321,7 +313,7 @@ export default {
321
313
 
322
314
  let config = {
323
315
  list: [],
324
- config: this.baseConfig
316
+ config: this.baseConfig.config
325
317
  };
326
318
 
327
319
  for (const row of rowsDom) {
@@ -363,6 +355,11 @@ export default {
363
355
  data.options.defaultValue = valueDom.innerText;
364
356
  data.key = colKey;
365
357
  data.model = "input_" + colKey;
358
+ data.events = {
359
+ onChange: "",
360
+ onFocus: "",
361
+ onBlur: ""
362
+ };
366
363
  grid.options.columns.push({ span: span, list: [data] });
367
364
  } else {
368
365
  span = titleDom.colSpan * colSpan;
@@ -386,6 +383,7 @@ export default {
386
383
  config.list.push(data);
387
384
  }
388
385
  }
386
+
389
387
  this.handleClick("import-excel", config);
390
388
  }
391
389
  },
@@ -439,6 +437,7 @@ export default {
439
437
  this.$refs.generateForm.reset();
440
438
  },
441
439
  handleDialogOpen(action) {
440
+ this.handleNetworkConfig();
442
441
  let data = "";
443
442
  switch (action) {
444
443
  case "generateJson":
@@ -493,6 +492,32 @@ export default {
493
492
  default:
494
493
  break;
495
494
  }
495
+ },
496
+ handleNetworkConfig() {
497
+ const fieldsApi = {
498
+ fields: this.formData.config.fields.api,
499
+ mounted: this.formData.config.mounted.api
500
+ };
501
+ const initList = list => {
502
+ for (const item of list) {
503
+ if (item.type === "grid" || item.type === "tabs") {
504
+ item.options.columns.forEach(e => {
505
+ initList(e.list);
506
+ });
507
+ } else if (item.type === "table" || item.type === "tableH5") {
508
+ initList(item.options.columns);
509
+ } else if (item.options.remote) {
510
+ fieldsApi[item.model] = item.options.remoteFunc;
511
+ }
512
+ }
513
+ };
514
+ initList(this.formData.list);
515
+ const apis = Object.values(fieldsApi);
516
+ const network = {};
517
+ this.apiOptions.map(item => {
518
+ if (apis.includes(item.id)) network[item.id] = item;
519
+ });
520
+ this.formData.config.network = network;
496
521
  }
497
522
  }
498
523
  };
@@ -735,6 +735,7 @@ export const layoutComponents = [
735
735
  list: []
736
736
  }
737
737
  ],
738
+ isEntity: false,
738
739
  hideLabel: true
739
740
  },
740
741
  events: {},
@@ -803,8 +804,11 @@ export const templateComponents = [];
803
804
  export const baseConfig = {
804
805
  list: [],
805
806
  config: {
806
- fieldsType: "fieldsApi",
807
- fieldsApi: "",
807
+ fields: {
808
+ type: "api",
809
+ api: "",
810
+ remote: false
811
+ },
808
812
  ui: "element",
809
813
  title: "",
810
814
  width: "",
@@ -96,9 +96,9 @@
96
96
  no-data-text="暂无接口,请前往【接口模块】创建"
97
97
  >
98
98
  <el-option
99
- v-for="item in Object.values(apiConfig)"
99
+ v-for="item in apiOptions"
100
100
  :key="item.id"
101
- :label="item.label"
101
+ :label="item.name"
102
102
  :value="item.id"
103
103
  >
104
104
  </el-option>
@@ -65,9 +65,9 @@
65
65
  clearable
66
66
  >
67
67
  <el-option
68
- v-for="item in Object.values(apiConfig)"
68
+ v-for="item in apiOptions"
69
69
  :key="item.id"
70
- :label="item.label"
70
+ :label="item.name"
71
71
  :value="item.id"
72
72
  >
73
73
  </el-option>
@@ -59,9 +59,9 @@
59
59
  clearable
60
60
  >
61
61
  <el-option
62
- v-for="item in Object.values(apiConfig)"
62
+ v-for="item in apiOptions"
63
63
  :key="item.id"
64
- :label="item.label"
64
+ :label="item.name"
65
65
  :value="item.id"
66
66
  >
67
67
  </el-option>
@@ -68,6 +68,18 @@
68
68
  <el-option value="bottom" label="底部对齐"></el-option>
69
69
  </el-select>
70
70
  </el-form-item>
71
+
72
+ <el-form-item>
73
+ <el-tooltip
74
+ slot="label"
75
+ effect="light"
76
+ content="用于包装数据结构,开启后对布局中的组件数据做对象处理"
77
+ placement="top"
78
+ >
79
+ <span style="color: #409EFF;">实体结构</span>
80
+ </el-tooltip>
81
+ <el-switch v-model="widget.options.isEntity"> </el-switch>
82
+ </el-form-item>
71
83
  </el-collapse-item>
72
84
  </div>
73
85
  </template>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <div>
3
+
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ data() {
10
+ return {};
11
+ },
12
+ created() {},
13
+ mounted() {},
14
+ methods: {},
15
+ };
16
+ </script>
17
+
18
+ <style lang="scss" scoped></style>
@@ -47,9 +47,9 @@
47
47
  clearable
48
48
  >
49
49
  <el-option
50
- v-for="item in Object.values(apiConfig)"
50
+ v-for="item in apiOptions"
51
51
  :key="item.id"
52
- :label="item.label"
52
+ :label="item.name"
53
53
  :value="item.id"
54
54
  >
55
55
  </el-option>
@@ -44,9 +44,9 @@
44
44
  clearable
45
45
  >
46
46
  <el-option
47
- v-for="item in Object.values(apiConfig)"
47
+ v-for="item in apiOptions"
48
48
  :key="item.id"
49
- :label="item.label"
49
+ :label="item.name"
50
50
  :value="item.id"
51
51
  >
52
52
  </el-option>
@@ -55,9 +55,9 @@
55
55
  placeholder="请选择远端方法"
56
56
  >
57
57
  <el-option
58
- v-for="item in Object.values(apiConfig)"
58
+ v-for="item in apiOptions"
59
59
  :key="item.id"
60
- :label="item.label"
60
+ :label="item.name"
61
61
  :value="item.id"
62
62
  >
63
63
  </el-option>
@@ -72,9 +72,9 @@
72
72
  placeholder="请选择远端方法"
73
73
  >
74
74
  <el-option
75
- v-for="item in Object.values(apiConfig)"
75
+ v-for="item in apiOptions"
76
76
  :key="item.id"
77
- :label="item.label"
77
+ :label="item.name"
78
78
  :value="item.id"
79
79
  >
80
80
  </el-option>
@@ -29,12 +29,12 @@
29
29
  </template>
30
30
 
31
31
  <script>
32
- import { itemsComponent } from "../mixins/index";
32
+ import { itemsComponent, eventMixin } from "../mixins/index";
33
33
  import Draggable from "vuedraggable";
34
34
  import WidgetFormItem from "../../WidgetFormItem.vue";
35
35
  export default {
36
36
  components: { Draggable, WidgetFormItem },
37
- mixins: [itemsComponent],
37
+ mixins: [itemsComponent, eventMixin],
38
38
  data() {
39
39
  return {
40
40
  selectWidget: {}
@@ -7,9 +7,9 @@
7
7
  </template>
8
8
 
9
9
  <script>
10
- import { itemsComponent } from "../mixins/index";
10
+ import { itemsComponent, eventMixin } from "../mixins/index";
11
11
  export default {
12
- mixins: [itemsComponent]
12
+ mixins: [itemsComponent, eventMixin]
13
13
  };
14
14
  </script>
15
15
 
@@ -5,9 +5,9 @@
5
5
  </template>
6
6
 
7
7
  <script>
8
- import { itemsComponent } from "../mixins/index";
8
+ import { itemsComponent, eventMixin } from "../mixins/index";
9
9
  export default {
10
- mixins: [itemsComponent]
10
+ mixins: [itemsComponent, eventMixin]
11
11
  };
12
12
  </script>
13
13
 
@@ -19,10 +19,10 @@
19
19
  </template>
20
20
 
21
21
  <script>
22
- import { itemsComponent } from "../mixins/index";
22
+ import { itemsComponent, eventMixin } from "../mixins/index";
23
23
  import * as Axios from "lib/theme-chalk/js/axios";
24
24
  export default {
25
- mixins: [itemsComponent],
25
+ mixins: [itemsComponent, eventMixin],
26
26
  data() {
27
27
  return {
28
28
  axios: null
@@ -24,9 +24,9 @@
24
24
  </template>
25
25
 
26
26
  <script>
27
- import { itemsComponent } from "../mixins/index";
27
+ import { itemsComponent, eventMixin } from "../mixins/index";
28
28
  export default {
29
- mixins: [itemsComponent]
29
+ mixins: [itemsComponent, eventMixin]
30
30
  };
31
31
  </script>
32
32
 
@@ -7,9 +7,9 @@
7
7
  </template>
8
8
 
9
9
  <script>
10
- import { itemsComponent } from "../mixins/index";
10
+ import { itemsComponent, eventMixin } from "../mixins/index";
11
11
  export default {
12
- mixins: [itemsComponent]
12
+ mixins: [itemsComponent, eventMixin]
13
13
  };
14
14
  </script>
15
15
 
@@ -47,9 +47,9 @@
47
47
  </template>
48
48
 
49
49
  <script>
50
- import { itemsComponent } from "../mixins/index";
50
+ import { itemsComponent, eventMixin } from "../mixins/index";
51
51
  export default {
52
- mixins: [itemsComponent]
52
+ mixins: [itemsComponent, eventMixin]
53
53
  };
54
54
  </script>
55
55
 
@@ -10,9 +10,9 @@
10
10
  </template>
11
11
 
12
12
  <script>
13
- import { itemsComponent } from "../mixins/index";
13
+ import { itemsComponent, eventMixin } from "../mixins/index";
14
14
  export default {
15
- mixins: [itemsComponent]
15
+ mixins: [itemsComponent, eventMixin]
16
16
  };
17
17
  </script>
18
18