@idooel/components 0.0.1-beta.2 → 0.0.1-beta.20

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 (72) hide show
  1. package/dist/@idooel/components.esm.css +123 -0
  2. package/dist/@idooel/components.esm.js +1986 -715
  3. package/dist/@idooel/components.umd.css +117 -0
  4. package/dist/@idooel/components.umd.js +1992 -721
  5. package/package.json +46 -45
  6. package/packages/alert/index.js +5 -0
  7. package/packages/alert/src/index.vue +46 -0
  8. package/packages/batch-export/index.js +4 -4
  9. package/packages/batch-export/src/index.vue +106 -14
  10. package/packages/button/index.js +4 -4
  11. package/packages/button/src/index.vue +54 -54
  12. package/packages/checkbox/index.js +4 -4
  13. package/packages/checkbox/src/index.vue +43 -43
  14. package/packages/{attachment → composite-components/attachment}/src/index.vue +14 -14
  15. package/packages/composite-components/button-group/index.js +4 -4
  16. package/packages/composite-components/button-group/src/index.vue +45 -45
  17. package/packages/composite-components/modal-import/index.js +5 -0
  18. package/packages/composite-components/modal-import/src/index.vue +28 -0
  19. package/packages/composite-components/search-area/index.js +4 -4
  20. package/packages/composite-components/search-area/src/index.vue +225 -206
  21. package/packages/composite-components/search-area/src/label.vue +35 -35
  22. package/packages/date/index.js +4 -4
  23. package/packages/date/src/index.vue +39 -39
  24. package/packages/date-range/index.js +5 -0
  25. package/packages/date-range/src/index.vue +42 -0
  26. package/packages/form/index.js +4 -4
  27. package/packages/form/src/index.vue +210 -118
  28. package/packages/form-group-model/index.js +5 -0
  29. package/packages/form-group-model/src/index.vue +258 -0
  30. package/packages/form-model/index.js +4 -4
  31. package/packages/form-model/src/index.vue +163 -138
  32. package/packages/icon/index.js +4 -4
  33. package/packages/icon/src/index.vue +31 -31
  34. package/packages/index.js +81 -73
  35. package/packages/input/index.js +4 -4
  36. package/packages/input/src/index.vue +35 -27
  37. package/packages/input-number/index.js +4 -4
  38. package/packages/input-number/src/index.vue +23 -23
  39. package/packages/modal/index.js +4 -4
  40. package/packages/modal/src/index.vue +141 -128
  41. package/packages/radio/index.js +4 -4
  42. package/packages/radio/src/index.vue +51 -47
  43. package/packages/select/index.js +4 -4
  44. package/packages/select/src/index.vue +77 -34
  45. package/packages/select-entity/index.js +4 -4
  46. package/packages/select-entity/src/index.vue +113 -113
  47. package/packages/step-model/index.js +5 -0
  48. package/packages/step-model/src/index.vue +173 -0
  49. package/packages/table/index.js +4 -4
  50. package/packages/table/src/action.vue +131 -131
  51. package/packages/table/src/index.vue +157 -157
  52. package/packages/textarea/index.js +4 -4
  53. package/packages/textarea/src/index.vue +57 -48
  54. package/packages/theme/form.scss +21 -23
  55. package/packages/theme/index.scss +27 -23
  56. package/packages/theme/variables.scss +55 -55
  57. package/packages/tpl/index.js +4 -4
  58. package/packages/tpl/src/index.vue +55 -49
  59. package/packages/tree/index.js +4 -4
  60. package/packages/tree/src/TreeNode.vue +29 -29
  61. package/packages/tree/src/index.vue +101 -101
  62. package/packages/tree-table-model/index.js +4 -4
  63. package/packages/tree-table-model/src/index.vue +314 -314
  64. package/packages/upload/index.js +4 -4
  65. package/packages/upload/src/index.vue +348 -350
  66. package/packages/utils/index.js +22 -3
  67. package/scripts/rollup.config.js +35 -35
  68. package/scripts/rollup.esm.config.js +11 -11
  69. package/scripts/rollup.umd.config.js +14 -14
  70. package/packages/text/index.js +0 -5
  71. package/packages/text/src/index.vue +0 -15
  72. /package/packages/{attachment → composite-components/attachment}/index.js +0 -0
@@ -1,4 +1,4 @@
1
- import { type, route, net } from '@idooel/shared';
1
+ import { type, net, route } from '@idooel/shared';
2
2
  import moment from 'moment';
3
3
  import FileUpload from 'vue-upload-component';
4
4
 
@@ -20,7 +20,7 @@ import FileUpload from 'vue-upload-component';
20
20
  //
21
21
  //
22
22
 
23
- var script$n = {
23
+ var script$r = {
24
24
  name: 'ele-button',
25
25
  props: {
26
26
  record: {
@@ -138,10 +138,10 @@ function normalizeComponent(template, style, script, scopeId, isFunctionalTempla
138
138
  }
139
139
 
140
140
  /* script */
141
- const __vue_script__$n = script$n;
141
+ const __vue_script__$r = script$r;
142
142
 
143
143
  /* template */
144
- var __vue_render__$n = function () {
144
+ var __vue_render__$r = function () {
145
145
  var _vm = this;
146
146
  var _h = _vm.$createElement;
147
147
  var _c = _vm._self._c || _h;
@@ -187,17 +187,17 @@ var __vue_render__$n = function () {
187
187
  2
188
188
  )
189
189
  };
190
- var __vue_staticRenderFns__$n = [];
191
- __vue_render__$n._withStripped = true;
190
+ var __vue_staticRenderFns__$r = [];
191
+ __vue_render__$r._withStripped = true;
192
192
 
193
193
  /* style */
194
- const __vue_inject_styles__$n = undefined;
194
+ const __vue_inject_styles__$r = undefined;
195
195
  /* scoped */
196
- const __vue_scope_id__$n = undefined;
196
+ const __vue_scope_id__$r = undefined;
197
197
  /* module identifier */
198
- const __vue_module_identifier__$n = undefined;
198
+ const __vue_module_identifier__$r = undefined;
199
199
  /* functional template */
200
- const __vue_is_functional_template__$n = false;
200
+ const __vue_is_functional_template__$r = false;
201
201
  /* style inject */
202
202
 
203
203
  /* style inject SSR */
@@ -206,20 +206,20 @@ __vue_render__$n._withStripped = true;
206
206
 
207
207
 
208
208
 
209
- const __vue_component__$n = /*#__PURE__*/normalizeComponent(
210
- { render: __vue_render__$n, staticRenderFns: __vue_staticRenderFns__$n },
211
- __vue_inject_styles__$n,
212
- __vue_script__$n,
213
- __vue_scope_id__$n,
214
- __vue_is_functional_template__$n,
215
- __vue_module_identifier__$n,
209
+ const __vue_component__$r = /*#__PURE__*/normalizeComponent(
210
+ { render: __vue_render__$r, staticRenderFns: __vue_staticRenderFns__$r },
211
+ __vue_inject_styles__$r,
212
+ __vue_script__$r,
213
+ __vue_scope_id__$r,
214
+ __vue_is_functional_template__$r,
215
+ __vue_module_identifier__$r,
216
216
  false,
217
217
  undefined,
218
218
  undefined,
219
219
  undefined
220
220
  );
221
221
 
222
- __vue_component__$n.install = Vue => Vue.component(__vue_component__$n.name, __vue_component__$n);
222
+ __vue_component__$r.install = Vue => Vue.component(__vue_component__$r.name, __vue_component__$r);
223
223
 
224
224
  //
225
225
  //
@@ -234,7 +234,7 @@ __vue_component__$n.install = Vue => Vue.component(__vue_component__$n.name, __v
234
234
  //
235
235
  //
236
236
 
237
- var script$m = {
237
+ var script$q = {
238
238
  name: 'ele-date',
239
239
  props: {
240
240
  value: {
@@ -262,10 +262,10 @@ var script$m = {
262
262
  };
263
263
 
264
264
  /* script */
265
- const __vue_script__$m = script$m;
265
+ const __vue_script__$q = script$q;
266
266
 
267
267
  /* template */
268
- var __vue_render__$m = function () {
268
+ var __vue_render__$q = function () {
269
269
  var _vm = this;
270
270
  var _h = _vm.$createElement;
271
271
  var _c = _vm._self._c || _h;
@@ -280,17 +280,17 @@ var __vue_render__$m = function () {
280
280
  on: { focus: _vm.onFocus, panelChange: _vm.onPanelChange },
281
281
  })
282
282
  };
283
- var __vue_staticRenderFns__$m = [];
284
- __vue_render__$m._withStripped = true;
283
+ var __vue_staticRenderFns__$q = [];
284
+ __vue_render__$q._withStripped = true;
285
285
 
286
286
  /* style */
287
- const __vue_inject_styles__$m = undefined;
287
+ const __vue_inject_styles__$q = undefined;
288
288
  /* scoped */
289
- const __vue_scope_id__$m = undefined;
289
+ const __vue_scope_id__$q = undefined;
290
290
  /* module identifier */
291
- const __vue_module_identifier__$m = undefined;
291
+ const __vue_module_identifier__$q = undefined;
292
292
  /* functional template */
293
- const __vue_is_functional_template__$m = false;
293
+ const __vue_is_functional_template__$q = false;
294
294
  /* style inject */
295
295
 
296
296
  /* style inject SSR */
@@ -299,29 +299,37 @@ __vue_render__$m._withStripped = true;
299
299
 
300
300
 
301
301
 
302
- const __vue_component__$m = /*#__PURE__*/normalizeComponent(
303
- { render: __vue_render__$m, staticRenderFns: __vue_staticRenderFns__$m },
304
- __vue_inject_styles__$m,
305
- __vue_script__$m,
306
- __vue_scope_id__$m,
307
- __vue_is_functional_template__$m,
308
- __vue_module_identifier__$m,
302
+ const __vue_component__$q = /*#__PURE__*/normalizeComponent(
303
+ { render: __vue_render__$q, staticRenderFns: __vue_staticRenderFns__$q },
304
+ __vue_inject_styles__$q,
305
+ __vue_script__$q,
306
+ __vue_scope_id__$q,
307
+ __vue_is_functional_template__$q,
308
+ __vue_module_identifier__$q,
309
309
  false,
310
310
  undefined,
311
311
  undefined,
312
312
  undefined
313
313
  );
314
314
 
315
- __vue_component__$m.install = Vue => Vue.component(__vue_component__$m.name, __vue_component__$m);
315
+ __vue_component__$q.install = Vue => Vue.component(__vue_component__$q.name, __vue_component__$q);
316
316
 
317
317
  //
318
318
  //
319
319
  //
320
320
  //
321
321
 
322
- var script$l = {
322
+ var script$p = {
323
323
  name: 'ele-input',
324
+ model: {
325
+ prop: 'value',
326
+ event: 'change'
327
+ },
324
328
  props: {
329
+ disabled: {
330
+ type: Boolean,
331
+ default: false
332
+ },
325
333
  maxLength: {
326
334
  type: Number,
327
335
  default: 125
@@ -383,66 +391,66 @@ function addStyle(id, css) {
383
391
  }
384
392
 
385
393
  /* script */
386
- const __vue_script__$l = script$l;
394
+ const __vue_script__$p = script$p;
387
395
 
388
396
  /* template */
389
- var __vue_render__$l = function () {
397
+ var __vue_render__$p = function () {
390
398
  var _vm = this;
391
399
  var _h = _vm.$createElement;
392
400
  var _c = _vm._self._c || _h;
393
401
  return _c("a-input", {
394
- attrs: { value: _vm.value, "max-length": _vm.maxLength },
402
+ attrs: {
403
+ value: _vm.value,
404
+ disabled: _vm.disabled,
405
+ "max-length": _vm.maxLength,
406
+ },
395
407
  on: { change: _vm.onChange },
396
408
  })
397
409
  };
398
- var __vue_staticRenderFns__$l = [];
399
- __vue_render__$l._withStripped = true;
410
+ var __vue_staticRenderFns__$p = [];
411
+ __vue_render__$p._withStripped = true;
400
412
 
401
413
  /* style */
402
- const __vue_inject_styles__$l = function (inject) {
414
+ const __vue_inject_styles__$p = function (inject) {
403
415
  if (!inject) return
404
- inject("data-v-468d0810_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
416
+ inject("data-v-c04139c8_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
405
417
 
406
418
  };
407
419
  /* scoped */
408
- const __vue_scope_id__$l = "data-v-468d0810";
420
+ const __vue_scope_id__$p = "data-v-c04139c8";
409
421
  /* module identifier */
410
- const __vue_module_identifier__$l = undefined;
422
+ const __vue_module_identifier__$p = undefined;
411
423
  /* functional template */
412
- const __vue_is_functional_template__$l = false;
424
+ const __vue_is_functional_template__$p = false;
413
425
  /* style inject SSR */
414
426
 
415
427
  /* style inject shadow dom */
416
428
 
417
429
 
418
430
 
419
- const __vue_component__$l = /*#__PURE__*/normalizeComponent(
420
- { render: __vue_render__$l, staticRenderFns: __vue_staticRenderFns__$l },
421
- __vue_inject_styles__$l,
422
- __vue_script__$l,
423
- __vue_scope_id__$l,
424
- __vue_is_functional_template__$l,
425
- __vue_module_identifier__$l,
431
+ const __vue_component__$p = /*#__PURE__*/normalizeComponent(
432
+ { render: __vue_render__$p, staticRenderFns: __vue_staticRenderFns__$p },
433
+ __vue_inject_styles__$p,
434
+ __vue_script__$p,
435
+ __vue_scope_id__$p,
436
+ __vue_is_functional_template__$p,
437
+ __vue_module_identifier__$p,
426
438
  false,
427
439
  createInjector,
428
440
  undefined,
429
441
  undefined
430
442
  );
431
443
 
432
- __vue_component__$l.install = Vue => Vue.component(__vue_component__$l.name, __vue_component__$l);
444
+ __vue_component__$p.install = Vue => Vue.component(__vue_component__$p.name, __vue_component__$p);
433
445
 
434
446
  //
435
- //
436
- //
437
- //
438
- //
439
- //
440
- //
441
- //
442
-
443
- var script$k = {
447
+ var script$o = {
444
448
  name: 'ele-select',
445
449
  props: {
450
+ disabled: {
451
+ type: Boolean,
452
+ default: false
453
+ },
446
454
  value: {
447
455
  type: [String, Array, Number]
448
456
  },
@@ -452,9 +460,52 @@ var script$k = {
452
460
  dataSource: {
453
461
  type: Array,
454
462
  default: () => []
463
+ },
464
+ url: {
465
+ type: String,
466
+ default: 'api-basic/workbench/dicttype/enum/selectList'
467
+ },
468
+ code: {
469
+ type: String
470
+ },
471
+ params: {
472
+ type: Object,
473
+ default: () => ({})
474
+ }
475
+ },
476
+ data() {
477
+ return {
478
+ innerDataSource: []
479
+ };
480
+ },
481
+ watch: {
482
+ dataSource: {
483
+ handler(dataSource) {
484
+ this.innerDataSource = dataSource;
485
+ },
486
+ immediate: true
455
487
  }
456
488
  },
489
+ created() {
490
+ (this.code || !type.isEmpty(this.params)) && this.fetchDataSourceByUrl();
491
+ },
457
492
  methods: {
493
+ fetchDataSourceByUrl() {
494
+ net.get(this.url, {
495
+ code: this.code,
496
+ ...this.params
497
+ }).then(resp => {
498
+ const {
499
+ data
500
+ } = resp;
501
+ this.innerDataSource = data.map(item => {
502
+ return {
503
+ label: item.name,
504
+ value: item.code
505
+ };
506
+ });
507
+ });
508
+ },
458
509
  onChange(value) {
459
510
  this.$emit('change', value);
460
511
  this.$emit('input', value);
@@ -463,10 +514,10 @@ var script$k = {
463
514
  };
464
515
 
465
516
  /* script */
466
- const __vue_script__$k = script$k;
517
+ const __vue_script__$o = script$o;
467
518
 
468
519
  /* template */
469
- var __vue_render__$k = function () {
520
+ var __vue_render__$o = function () {
470
521
  var _vm = this;
471
522
  var _h = _vm.$createElement;
472
523
  var _c = _vm._self._c || _h;
@@ -474,10 +525,10 @@ var __vue_render__$k = function () {
474
525
  "a-select",
475
526
  {
476
527
  staticStyle: { width: "100%" },
477
- attrs: { value: _vm.value },
528
+ attrs: { disabled: _vm.disabled, value: _vm.value },
478
529
  on: { change: _vm.onChange },
479
530
  },
480
- _vm._l(_vm.dataSource, function (item) {
531
+ _vm._l(_vm.innerDataSource, function (item) {
481
532
  return _c(
482
533
  "a-select-option",
483
534
  { key: item.value, attrs: { value: item.value } },
@@ -487,41 +538,41 @@ var __vue_render__$k = function () {
487
538
  1
488
539
  )
489
540
  };
490
- var __vue_staticRenderFns__$k = [];
491
- __vue_render__$k._withStripped = true;
541
+ var __vue_staticRenderFns__$o = [];
542
+ __vue_render__$o._withStripped = true;
492
543
 
493
544
  /* style */
494
- const __vue_inject_styles__$k = function (inject) {
545
+ const __vue_inject_styles__$o = function (inject) {
495
546
  if (!inject) return
496
- inject("data-v-499435e8_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
547
+ inject("data-v-1db57f86_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
497
548
 
498
549
  };
499
550
  /* scoped */
500
- const __vue_scope_id__$k = "data-v-499435e8";
551
+ const __vue_scope_id__$o = "data-v-1db57f86";
501
552
  /* module identifier */
502
- const __vue_module_identifier__$k = undefined;
553
+ const __vue_module_identifier__$o = undefined;
503
554
  /* functional template */
504
- const __vue_is_functional_template__$k = false;
555
+ const __vue_is_functional_template__$o = false;
505
556
  /* style inject SSR */
506
557
 
507
558
  /* style inject shadow dom */
508
559
 
509
560
 
510
561
 
511
- const __vue_component__$k = /*#__PURE__*/normalizeComponent(
512
- { render: __vue_render__$k, staticRenderFns: __vue_staticRenderFns__$k },
513
- __vue_inject_styles__$k,
514
- __vue_script__$k,
515
- __vue_scope_id__$k,
516
- __vue_is_functional_template__$k,
517
- __vue_module_identifier__$k,
562
+ const __vue_component__$o = /*#__PURE__*/normalizeComponent(
563
+ { render: __vue_render__$o, staticRenderFns: __vue_staticRenderFns__$o },
564
+ __vue_inject_styles__$o,
565
+ __vue_script__$o,
566
+ __vue_scope_id__$o,
567
+ __vue_is_functional_template__$o,
568
+ __vue_module_identifier__$o,
518
569
  false,
519
570
  createInjector,
520
571
  undefined,
521
572
  undefined
522
573
  );
523
574
 
524
- __vue_component__$k.install = Vue => Vue.component(__vue_component__$k.name, __vue_component__$k);
575
+ __vue_component__$o.install = Vue => Vue.component(__vue_component__$o.name, __vue_component__$o);
525
576
 
526
577
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
527
578
  // require the crypto API and do not support built-in fallback to lower quality random number
@@ -1155,7 +1206,7 @@ const parse = (expression, props = {}) => {
1155
1206
 
1156
1207
  //
1157
1208
  const MENU_KEY_NAMESPACE = 'f7b3b8b0-1b7b-11ec-9621-0242ac130002';
1158
- var script$j = {
1209
+ var script$n = {
1159
1210
  props: {
1160
1211
  record: {
1161
1212
  type: Object
@@ -1253,10 +1304,10 @@ var script$j = {
1253
1304
  };
1254
1305
 
1255
1306
  /* script */
1256
- const __vue_script__$j = script$j;
1307
+ const __vue_script__$n = script$n;
1257
1308
 
1258
1309
  /* template */
1259
- var __vue_render__$j = function () {
1310
+ var __vue_render__$n = function () {
1260
1311
  var _vm = this;
1261
1312
  var _h = _vm.$createElement;
1262
1313
  var _c = _vm._self._c || _h;
@@ -1356,34 +1407,34 @@ var __vue_render__$j = function () {
1356
1407
  0
1357
1408
  )
1358
1409
  };
1359
- var __vue_staticRenderFns__$j = [];
1360
- __vue_render__$j._withStripped = true;
1410
+ var __vue_staticRenderFns__$n = [];
1411
+ __vue_render__$n._withStripped = true;
1361
1412
 
1362
1413
  /* style */
1363
- const __vue_inject_styles__$j = function (inject) {
1414
+ const __vue_inject_styles__$n = function (inject) {
1364
1415
  if (!inject) return
1365
- inject("data-v-572820bc_0", { source: ".g-table__action[data-v-572820bc] {\n display: flex;\n flex-direction: row;\n}\n.g-table__action .table-action__item[data-v-572820bc] {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n}\n.g-table__action .table-action__item[data-v-572820bc]:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=action.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\table\\src\\action.vue","action.vue"],"names":[],"mappings":"AAsHA;EACA,aAAA;EACA,mBAAA;ACrHA;ADsHA;EACA,eAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;ACpHA;ADqHA;EACA,cAAA;ACnHA;;AAEA,qCAAqC","file":"action.vue","sourcesContent":["<template>\r\n <div class=\"g-table__action\">\r\n <div class=\"table-action__item\" v-for=\"(item, idx) in execOperationExpression(dataSource)\" :key=\"idx\">\r\n <template v-if=\"item.type == 'text'\">\r\n <span @click=\"handleClickText(item)\">{{ item.label }}</span>\r\n </template>\r\n <template v-else-if=\"item.type == 'dropdown'\">\r\n <a-dropdown>\r\n <a-menu slot=\"overlay\" @click=\"handleDropdownClick\">\r\n <a-menu-item :key=\"`${item.key || ''}${menuKeyDelimiter}${opt.value || ''}`\" v-for=\"opt in execOperationExpression(item.optionList)\">\r\n <template v-if=\"opt.type == 'confirm'\">\r\n <a-popconfirm :title=\"opt.message\" @confirm=\"handleClickConfirm(opt)\">\r\n {{ opt.label }}\r\n </a-popconfirm>\r\n </template>\r\n <template v-else>\r\n {{ opt.label }}\r\n </template>\r\n </a-menu-item>\r\n </a-menu>\r\n <span>{{ item.label }}</span>\r\n </a-dropdown>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { v5 as uuidv5 } from 'uuid'\r\nimport { type, route } from '@idooel/shared'\r\nimport { parse } from '@idooel/expression'\r\nconst MENU_KEY_NAMESPACE = 'f7b3b8b0-1b7b-11ec-9621-0242ac130002'\r\nexport default {\r\n props: {\r\n record: {\r\n type: Object\r\n },\r\n dataSource: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n inject: {\r\n requestTreeData: {\r\n default: void 0\r\n },\r\n requestTableData: {\r\n default: void 0\r\n }\r\n },\r\n computed: {\r\n menuKeyDelimiter () {\r\n return uuidv5('_', MENU_KEY_NAMESPACE)\r\n },\r\n builtInMethods () {\r\n return { \r\n requestTreeData: this.requestTreeData, \r\n requestTableData: this.requestTableData \r\n }\r\n }\r\n },\r\n methods: {\r\n execOperationExpression (dataSource = []) {\r\n const ret = dataSource.map(item => {\r\n const { show } = item\r\n if (type.isUndefined(show)) {\r\n return item\r\n } else if (type.isBool(show)) {\r\n if (show) return item\r\n } else if (type.isStr(show)) {\r\n const parseRet = parse(show, { \r\n ...this.record, \r\n _route: route.searchToQueryParams(window.location.search) \r\n })\r\n if (parseRet) return item\r\n }\r\n }).filter(item => item)\r\n return ret\r\n },\r\n handleClickConfirm (props) {\r\n //TODO generate event by special rule\r\n const { eventName, value } = props\r\n this.$emit(eventName, { \r\n key: value, \r\n record: this.record,\r\n builtInMethods: this.builtInMethods \r\n })\r\n },\r\n handleDropdownClick (props) {\r\n const { key } = props\r\n const [parent, child] = key.split(this.menuKeyDelimiter)\r\n if (!parent || !child) {\r\n throw new Error('key is required')\r\n }\r\n const currentDropdown = this.dataSource.find(item => item.key === parent)\r\n const currentClickTarget = currentDropdown.optionList.find(item => item.value === child)\r\n const { eventName, type } = currentClickTarget\r\n //TODO generate event by special rule\r\n if (type === 'confirm') return\r\n this.$emit(eventName, { \r\n key: child, \r\n record: this.record, \r\n builtInMethods: this.builtInMethods \r\n })\r\n },\r\n handleClickText (props) {\r\n const { eventName, key } = props\r\n this.$emit(eventName, { \r\n key, \r\n record: this.record, \r\n builtInMethods: this.builtInMethods \r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.g-table__action {\r\n display: flex;\r\n flex-direction: row;\r\n .table-action__item {\r\n font-size: 14px;\r\n color: #409EFF;\r\n margin-left: 16px;\r\n cursor: pointer;\r\n &:first-child {\r\n margin-left: 0;\r\n }\r\n }\r\n}\r\n</style>",".g-table__action {\n display: flex;\n flex-direction: row;\n}\n.g-table__action .table-action__item {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n}\n.g-table__action .table-action__item:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=action.vue.map */"]}, media: undefined });
1416
+ inject("data-v-5e9f9cdc_0", { source: ".g-table__action[data-v-5e9f9cdc] {\n display: flex;\n flex-direction: row;\n}\n.g-table__action .table-action__item[data-v-5e9f9cdc] {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n}\n.g-table__action .table-action__item[data-v-5e9f9cdc]:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=action.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/table/src/action.vue","action.vue"],"names":[],"mappings":"AAsHA;EACA,aAAA;EACA,mBAAA;ACrHA;ADsHA;EACA,eAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;ACpHA;ADqHA;EACA,cAAA;ACnHA;;AAEA,qCAAqC","file":"action.vue","sourcesContent":["<template>\n <div class=\"g-table__action\">\n <div class=\"table-action__item\" v-for=\"(item, idx) in execOperationExpression(dataSource)\" :key=\"idx\">\n <template v-if=\"item.type == 'text'\">\n <span @click=\"handleClickText(item)\">{{ item.label }}</span>\n </template>\n <template v-else-if=\"item.type == 'dropdown'\">\n <a-dropdown>\n <a-menu slot=\"overlay\" @click=\"handleDropdownClick\">\n <a-menu-item :key=\"`${item.key || ''}${menuKeyDelimiter}${opt.value || ''}`\" v-for=\"opt in execOperationExpression(item.optionList)\">\n <template v-if=\"opt.type == 'confirm'\">\n <a-popconfirm :title=\"opt.message\" @confirm=\"handleClickConfirm(opt)\">\n {{ opt.label }}\n </a-popconfirm>\n </template>\n <template v-else>\n {{ opt.label }}\n </template>\n </a-menu-item>\n </a-menu>\n <span>{{ item.label }}</span>\n </a-dropdown>\n </template>\n </div>\n </div>\n</template>\n\n<script>\nimport { v5 as uuidv5 } from 'uuid'\nimport { type, route } from '@idooel/shared'\nimport { parse } from '@idooel/expression'\nconst MENU_KEY_NAMESPACE = 'f7b3b8b0-1b7b-11ec-9621-0242ac130002'\nexport default {\n props: {\n record: {\n type: Object\n },\n dataSource: {\n type: Array,\n default: () => []\n }\n },\n inject: {\n requestTreeData: {\n default: void 0\n },\n requestTableData: {\n default: void 0\n }\n },\n computed: {\n menuKeyDelimiter () {\n return uuidv5('_', MENU_KEY_NAMESPACE)\n },\n builtInMethods () {\n return { \n requestTreeData: this.requestTreeData, \n requestTableData: this.requestTableData \n }\n }\n },\n methods: {\n execOperationExpression (dataSource = []) {\n const ret = dataSource.map(item => {\n const { show } = item\n if (type.isUndefined(show)) {\n return item\n } else if (type.isBool(show)) {\n if (show) return item\n } else if (type.isStr(show)) {\n const parseRet = parse(show, { \n ...this.record, \n _route: route.searchToQueryParams(window.location.search) \n })\n if (parseRet) return item\n }\n }).filter(item => item)\n return ret\n },\n handleClickConfirm (props) {\n //TODO generate event by special rule\n const { eventName, value } = props\n this.$emit(eventName, { \n key: value, \n record: this.record,\n builtInMethods: this.builtInMethods \n })\n },\n handleDropdownClick (props) {\n const { key } = props\n const [parent, child] = key.split(this.menuKeyDelimiter)\n if (!parent || !child) {\n throw new Error('key is required')\n }\n const currentDropdown = this.dataSource.find(item => item.key === parent)\n const currentClickTarget = currentDropdown.optionList.find(item => item.value === child)\n const { eventName, type } = currentClickTarget\n //TODO generate event by special rule\n if (type === 'confirm') return\n this.$emit(eventName, { \n key: child, \n record: this.record, \n builtInMethods: this.builtInMethods \n })\n },\n handleClickText (props) {\n const { eventName, key } = props\n this.$emit(eventName, { \n key, \n record: this.record, \n builtInMethods: this.builtInMethods \n })\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.g-table__action {\n display: flex;\n flex-direction: row;\n .table-action__item {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n &:first-child {\n margin-left: 0;\n }\n }\n}\n</style>",".g-table__action {\n display: flex;\n flex-direction: row;\n}\n.g-table__action .table-action__item {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n}\n.g-table__action .table-action__item:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=action.vue.map */"]}, media: undefined });
1366
1417
 
1367
1418
  };
1368
1419
  /* scoped */
1369
- const __vue_scope_id__$j = "data-v-572820bc";
1420
+ const __vue_scope_id__$n = "data-v-5e9f9cdc";
1370
1421
  /* module identifier */
1371
- const __vue_module_identifier__$j = undefined;
1422
+ const __vue_module_identifier__$n = undefined;
1372
1423
  /* functional template */
1373
- const __vue_is_functional_template__$j = false;
1424
+ const __vue_is_functional_template__$n = false;
1374
1425
  /* style inject SSR */
1375
1426
 
1376
1427
  /* style inject shadow dom */
1377
1428
 
1378
1429
 
1379
1430
 
1380
- const __vue_component__$j = /*#__PURE__*/normalizeComponent(
1381
- { render: __vue_render__$j, staticRenderFns: __vue_staticRenderFns__$j },
1382
- __vue_inject_styles__$j,
1383
- __vue_script__$j,
1384
- __vue_scope_id__$j,
1385
- __vue_is_functional_template__$j,
1386
- __vue_module_identifier__$j,
1431
+ const __vue_component__$n = /*#__PURE__*/normalizeComponent(
1432
+ { render: __vue_render__$n, staticRenderFns: __vue_staticRenderFns__$n },
1433
+ __vue_inject_styles__$n,
1434
+ __vue_script__$n,
1435
+ __vue_scope_id__$n,
1436
+ __vue_is_functional_template__$n,
1437
+ __vue_module_identifier__$n,
1387
1438
  false,
1388
1439
  createInjector,
1389
1440
  undefined,
@@ -1391,10 +1442,10 @@ __vue_render__$j._withStripped = true;
1391
1442
  );
1392
1443
 
1393
1444
  //
1394
- var script$i = {
1445
+ var script$m = {
1395
1446
  name: 'ele-table',
1396
1447
  components: {
1397
- Actions: __vue_component__$j
1448
+ Actions: __vue_component__$n
1398
1449
  },
1399
1450
  props: {
1400
1451
  actions: {
@@ -1437,10 +1488,10 @@ var script$i = {
1437
1488
  };
1438
1489
 
1439
1490
  /* script */
1440
- const __vue_script__$i = script$i;
1491
+ const __vue_script__$m = script$m;
1441
1492
 
1442
1493
  /* template */
1443
- var __vue_render__$i = function () {
1494
+ var __vue_render__$m = function () {
1444
1495
  var _vm = this;
1445
1496
  var _h = _vm.$createElement;
1446
1497
  var _c = _vm._self._c || _h;
@@ -1499,41 +1550,41 @@ var __vue_render__$i = function () {
1499
1550
  1
1500
1551
  )
1501
1552
  };
1502
- var __vue_staticRenderFns__$i = [];
1503
- __vue_render__$i._withStripped = true;
1553
+ var __vue_staticRenderFns__$m = [];
1554
+ __vue_render__$m._withStripped = true;
1504
1555
 
1505
1556
  /* style */
1506
- const __vue_inject_styles__$i = function (inject) {
1557
+ const __vue_inject_styles__$m = function (inject) {
1507
1558
  if (!inject) return
1508
- inject("data-v-6f3faf52_0", { source: ".g-table__wrapper[data-v-6f3faf52] {\n padding: 16px;\n padding-top: unset;\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table {\n border-width: calc(var(--idooel-border-width) * 1px);\n border-style: solid;\n border-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-header .ant-table-fixed {\n /* border-bottom: 2px solid #53a8ff !important; */\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-tbody tr td {\n border-color: var(--idooel-column-border-color);\n border-width: calc(var(--idooel-column-border-width) * 1px);\n border-style: solid;\n border-top: unset;\n border-left: unset;\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-body {\n border-top-width: calc(var(--idooel-border-width) * 1px);\n border-top-style: solid;\n border-top-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-left {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-left .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-left .ant-table-body-inner {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-style: solid;\n border-right-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-left .ant-table-fixed {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-color: var(--idooel-border-color);\n border-right-style: solid;\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-right {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-right .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-color: var(--idooel-border-color);\n border-bottom-style: solid;\n}\n.g-table__wrapper[data-v-6f3faf52] .ant-table-wrapper .ant-table-fixed-right .ant-table-fixed {\n border-left-width: calc(var(--idooel-border-width) * 1px);\n border-left-style: solid;\n border-left-color: var(--idooel-border-color);\n}\n.g-table__wrapper .g-table__pagination[data-v-6f3faf52] {\n /* margin-top: 8px; */\n display: flex;\n flex-direction: row;\n justify-content: end;\n border-width: calc(var(--idooel-border-width) * 1px);\n border-color: var(--idooel-border-color);\n border-style: solid;\n border-top: unset;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\table\\src\\index.vue","index.vue"],"names":[],"mappings":"AA4EA;EAgEA,aAAA;EACA,kBAAA;AC1IA;AD2EA;EACA,oDAAA;EACA,mBAAA;EACA,wCAAA;ACzEA;AD4EA;EACA,iDAAA;AC1EA;AD+EA;EACA,+CAAA;EACA,2DAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;AC7EA;ADiFA;EACA,wDAAA;EACA,uBAAA;EACA,4CAAA;AC/EA;ADiFA;EACA,2DAAA;EACA,0BAAA;EACA,+CAAA;AC/EA;ADgFA;EACA,2DAAA;EACA,0BAAA;EACA,+CAAA;AC9EA;ADgFA;EACA,0DAAA;EACA,yBAAA;EACA,8CAAA;AC9EA;ADgFA;EACA,0DAAA;EACA,8CAAA;EACA,yBAAA;AC9EA;ADiFA;EAMA,2DAAA;EACA,0BAAA;EACA,+CAAA;ACpFA;AD6EA;EACA,2DAAA;EACA,+CAAA;EACA,0BAAA;AC3EA;ADgFA;EACA,yDAAA;EACA,wBAAA;EACA,6CAAA;AC9EA;ADsFA;EACA,qBAAA;EACA,aAAA;EACA,mBAAA;EACA,oBAAA;EACA,oDAAA;EACA,wCAAA;EACA,mBAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;ACpFA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"g-table__wrapper\">\r\n <a-table\r\n :pagination=\"false\"\r\n :loading=\"loading\"\r\n :columns=\"columns\"\r\n :row-class-name=\"setRowClassName\"\r\n :data-source=\"dataSource\"\r\n :scroll=\"{ x: 1500, y: 500 }\">\r\n <template slot=\"action\" slot-scope=\"record\">\r\n <Actions v-on=\"$listeners\" :data-source=\"actions\" :record=\"record\"></Actions>\r\n </template>\r\n </a-table>\r\n <div class=\"g-table__pagination\">\r\n <a-pagination\r\n :show-total=\"total => `共 ${total} 条数据`\"\r\n show-size-changer \r\n show-quick-jumper\r\n :pageSize=\"pageSize\"\r\n :pageSizeOptions=\"pageSizeOptions\"\r\n @change=\"onChangePagination\" \r\n :total=\"total\">\r\n </a-pagination>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Actions from './action.vue'\r\nexport default {\r\n name: 'ele-table',\r\n components: {\r\n Actions\r\n },\r\n props: {\r\n actions: {\r\n type: Array,\r\n default: () => []\r\n },\r\n total: {\r\n type: Number,\r\n default: 0\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n columns: {\r\n type: Array,\r\n default: () => []\r\n },\r\n dataSource: {\r\n type: Array,\r\n default: () => []\r\n },\r\n pageSize: {\r\n type: Number,\r\n default: 10\r\n },\r\n pageSizeOptions: {\r\n type: Array,\r\n default: () => ['10', '20', '30', '40']\r\n }\r\n },\r\n methods: {\r\n setRowClassName (record, idx) {\r\n return idx % 2 === 0 ? 'g-table__row--even' : 'g-table__row--odd'\r\n },\r\n onChangePagination (page, pagrSize) {\r\n this.$emit('change-page', page, pagrSize)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.g-table__wrapper {\r\n ::v-deep .ant-table-wrapper {\r\n .ant-table {\r\n border-width: calc(var(--idooel-border-width) * 1px);\r\n border-style: solid;\r\n border-color: var(--idooel-border-color);\r\n }\r\n .ant-table-header {\r\n .ant-table-fixed {\r\n /* border-bottom: 2px solid #53a8ff !important; */\r\n }\r\n }\r\n .ant-table-tbody {\r\n tr {\r\n td {\r\n border-color: var(--idooel-column-border-color);\r\n border-width: calc(var(--idooel-column-border-width) * 1px);;\r\n border-style: solid;\r\n border-top: unset;\r\n border-left: unset;\r\n }\r\n }\r\n }\r\n .ant-table-body {\r\n border-top-width: calc(var(--idooel-border-width) * 1px);\r\n border-top-style: solid;\r\n border-top-color: var(--idooel-border-color);\r\n }\r\n .ant-table-fixed-left {\r\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\r\n border-bottom-style: solid;\r\n border-bottom-color: var(--idooel-border-color);\r\n .ant-table-header {\r\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\r\n border-bottom-style: solid;\r\n border-bottom-color: var(--idooel-border-color);\r\n }\r\n .ant-table-body-inner {\r\n border-right-width: calc(var(--idooel-border-width) * 1px);\r\n border-right-style: solid;\r\n border-right-color: var(--idooel-border-color);\r\n }\r\n .ant-table-fixed {\r\n border-right-width: calc(var(--idooel-border-width) * 1px);\r\n border-right-color: var(--idooel-border-color);\r\n border-right-style: solid;\r\n }\r\n }\r\n .ant-table-fixed-right {\r\n .ant-table-header {\r\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\r\n border-bottom-color: var(--idooel-border-color);\r\n border-bottom-style: solid;\r\n }\r\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\r\n border-bottom-style: solid;\r\n border-bottom-color: var(--idooel-border-color);\r\n .ant-table-fixed {\r\n border-left-width: calc(var(--idooel-border-width) * 1px);\r\n border-left-style: solid;\r\n border-left-color: var(--idooel-border-color);\r\n }\r\n }\r\n }\r\n padding: 16px;\r\n padding-top: unset;\r\n .g-table__row--even {}\r\n .g-table__row--odd {}\r\n .g-table__pagination {\r\n /* margin-top: 8px; */\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: end;\r\n border-width: calc(var(--idooel-border-width) * 1px);\r\n border-color: var(--idooel-border-color);\r\n border-style: solid;\r\n border-top: unset;\r\n padding-top: 8px;\r\n padding-bottom: 8px;\r\n }\r\n}\r\n</style>",".g-table__wrapper {\n padding: 16px;\n padding-top: unset;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table {\n border-width: calc(var(--idooel-border-width) * 1px);\n border-style: solid;\n border-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-header .ant-table-fixed {\n /* border-bottom: 2px solid #53a8ff !important; */\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-tbody tr td {\n border-color: var(--idooel-column-border-color);\n border-width: calc(var(--idooel-column-border-width) * 1px);\n border-style: solid;\n border-top: unset;\n border-left: unset;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-body {\n border-top-width: calc(var(--idooel-border-width) * 1px);\n border-top-style: solid;\n border-top-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-body-inner {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-style: solid;\n border-right-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-fixed {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-color: var(--idooel-border-color);\n border-right-style: solid;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-color: var(--idooel-border-color);\n border-bottom-style: solid;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right .ant-table-fixed {\n border-left-width: calc(var(--idooel-border-width) * 1px);\n border-left-style: solid;\n border-left-color: var(--idooel-border-color);\n}\n.g-table__wrapper .g-table__pagination {\n /* margin-top: 8px; */\n display: flex;\n flex-direction: row;\n justify-content: end;\n border-width: calc(var(--idooel-border-width) * 1px);\n border-color: var(--idooel-border-color);\n border-style: solid;\n border-top: unset;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
1559
+ inject("data-v-70a1f03f_0", { source: ".g-table__wrapper[data-v-70a1f03f] {\n padding: 16px;\n padding-top: unset;\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table {\n border-width: calc(var(--idooel-border-width) * 1px);\n border-style: solid;\n border-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-header .ant-table-fixed {\n /* border-bottom: 2px solid #53a8ff !important; */\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-tbody tr td {\n border-color: var(--idooel-column-border-color);\n border-width: calc(var(--idooel-column-border-width) * 1px);\n border-style: solid;\n border-top: unset;\n border-left: unset;\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-body {\n border-top-width: calc(var(--idooel-border-width) * 1px);\n border-top-style: solid;\n border-top-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-left {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-left .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-left .ant-table-body-inner {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-style: solid;\n border-right-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-left .ant-table-fixed {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-color: var(--idooel-border-color);\n border-right-style: solid;\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-right {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-right .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-color: var(--idooel-border-color);\n border-bottom-style: solid;\n}\n.g-table__wrapper[data-v-70a1f03f] .ant-table-wrapper .ant-table-fixed-right .ant-table-fixed {\n border-left-width: calc(var(--idooel-border-width) * 1px);\n border-left-style: solid;\n border-left-color: var(--idooel-border-color);\n}\n.g-table__wrapper .g-table__pagination[data-v-70a1f03f] {\n /* margin-top: 8px; */\n display: flex;\n flex-direction: row;\n justify-content: end;\n border-width: calc(var(--idooel-border-width) * 1px);\n border-color: var(--idooel-border-color);\n border-style: solid;\n border-top: unset;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/table/src/index.vue","index.vue"],"names":[],"mappings":"AA4EA;EAgEA,aAAA;EACA,kBAAA;AC1IA;AD2EA;EACA,oDAAA;EACA,mBAAA;EACA,wCAAA;ACzEA;AD4EA;EACA,iDAAA;AC1EA;AD+EA;EACA,+CAAA;EACA,2DAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;AC7EA;ADiFA;EACA,wDAAA;EACA,uBAAA;EACA,4CAAA;AC/EA;ADiFA;EACA,2DAAA;EACA,0BAAA;EACA,+CAAA;AC/EA;ADgFA;EACA,2DAAA;EACA,0BAAA;EACA,+CAAA;AC9EA;ADgFA;EACA,0DAAA;EACA,yBAAA;EACA,8CAAA;AC9EA;ADgFA;EACA,0DAAA;EACA,8CAAA;EACA,yBAAA;AC9EA;ADiFA;EAMA,2DAAA;EACA,0BAAA;EACA,+CAAA;ACpFA;AD6EA;EACA,2DAAA;EACA,+CAAA;EACA,0BAAA;AC3EA;ADgFA;EACA,yDAAA;EACA,wBAAA;EACA,6CAAA;AC9EA;ADsFA;EACA,qBAAA;EACA,aAAA;EACA,mBAAA;EACA,oBAAA;EACA,oDAAA;EACA,wCAAA;EACA,mBAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;ACpFA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"g-table__wrapper\">\n <a-table\n :pagination=\"false\"\n :loading=\"loading\"\n :columns=\"columns\"\n :row-class-name=\"setRowClassName\"\n :data-source=\"dataSource\"\n :scroll=\"{ x: 1500, y: 500 }\">\n <template slot=\"action\" slot-scope=\"record\">\n <Actions v-on=\"$listeners\" :data-source=\"actions\" :record=\"record\"></Actions>\n </template>\n </a-table>\n <div class=\"g-table__pagination\">\n <a-pagination\n :show-total=\"total => `共 ${total} 条数据`\"\n show-size-changer \n show-quick-jumper\n :pageSize=\"pageSize\"\n :pageSizeOptions=\"pageSizeOptions\"\n @change=\"onChangePagination\" \n :total=\"total\">\n </a-pagination>\n </div>\n </div>\n</template>\n\n<script>\nimport Actions from './action.vue'\nexport default {\n name: 'ele-table',\n components: {\n Actions\n },\n props: {\n actions: {\n type: Array,\n default: () => []\n },\n total: {\n type: Number,\n default: 0\n },\n loading: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array,\n default: () => []\n },\n dataSource: {\n type: Array,\n default: () => []\n },\n pageSize: {\n type: Number,\n default: 10\n },\n pageSizeOptions: {\n type: Array,\n default: () => ['10', '20', '30', '40']\n }\n },\n methods: {\n setRowClassName (record, idx) {\n return idx % 2 === 0 ? 'g-table__row--even' : 'g-table__row--odd'\n },\n onChangePagination (page, pagrSize) {\n this.$emit('change-page', page, pagrSize)\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.g-table__wrapper {\n ::v-deep .ant-table-wrapper {\n .ant-table {\n border-width: calc(var(--idooel-border-width) * 1px);\n border-style: solid;\n border-color: var(--idooel-border-color);\n }\n .ant-table-header {\n .ant-table-fixed {\n /* border-bottom: 2px solid #53a8ff !important; */\n }\n }\n .ant-table-tbody {\n tr {\n td {\n border-color: var(--idooel-column-border-color);\n border-width: calc(var(--idooel-column-border-width) * 1px);;\n border-style: solid;\n border-top: unset;\n border-left: unset;\n }\n }\n }\n .ant-table-body {\n border-top-width: calc(var(--idooel-border-width) * 1px);\n border-top-style: solid;\n border-top-color: var(--idooel-border-color);\n }\n .ant-table-fixed-left {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n }\n .ant-table-body-inner {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-style: solid;\n border-right-color: var(--idooel-border-color);\n }\n .ant-table-fixed {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-color: var(--idooel-border-color);\n border-right-style: solid;\n }\n }\n .ant-table-fixed-right {\n .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-color: var(--idooel-border-color);\n border-bottom-style: solid;\n }\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n .ant-table-fixed {\n border-left-width: calc(var(--idooel-border-width) * 1px);\n border-left-style: solid;\n border-left-color: var(--idooel-border-color);\n }\n }\n }\n padding: 16px;\n padding-top: unset;\n .g-table__row--even {}\n .g-table__row--odd {}\n .g-table__pagination {\n /* margin-top: 8px; */\n display: flex;\n flex-direction: row;\n justify-content: end;\n border-width: calc(var(--idooel-border-width) * 1px);\n border-color: var(--idooel-border-color);\n border-style: solid;\n border-top: unset;\n padding-top: 8px;\n padding-bottom: 8px;\n }\n}\n</style>",".g-table__wrapper {\n padding: 16px;\n padding-top: unset;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table {\n border-width: calc(var(--idooel-border-width) * 1px);\n border-style: solid;\n border-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-header .ant-table-fixed {\n /* border-bottom: 2px solid #53a8ff !important; */\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-tbody tr td {\n border-color: var(--idooel-column-border-color);\n border-width: calc(var(--idooel-column-border-width) * 1px);\n border-style: solid;\n border-top: unset;\n border-left: unset;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-body {\n border-top-width: calc(var(--idooel-border-width) * 1px);\n border-top-style: solid;\n border-top-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-body-inner {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-style: solid;\n border-right-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-left .ant-table-fixed {\n border-right-width: calc(var(--idooel-border-width) * 1px);\n border-right-color: var(--idooel-border-color);\n border-right-style: solid;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-style: solid;\n border-bottom-color: var(--idooel-border-color);\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right .ant-table-header {\n border-bottom-width: calc(var(--idooel-border-width) * 1px);\n border-bottom-color: var(--idooel-border-color);\n border-bottom-style: solid;\n}\n.g-table__wrapper ::v-deep .ant-table-wrapper .ant-table-fixed-right .ant-table-fixed {\n border-left-width: calc(var(--idooel-border-width) * 1px);\n border-left-style: solid;\n border-left-color: var(--idooel-border-color);\n}\n.g-table__wrapper .g-table__pagination {\n /* margin-top: 8px; */\n display: flex;\n flex-direction: row;\n justify-content: end;\n border-width: calc(var(--idooel-border-width) * 1px);\n border-color: var(--idooel-border-color);\n border-style: solid;\n border-top: unset;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
1509
1560
 
1510
1561
  };
1511
1562
  /* scoped */
1512
- const __vue_scope_id__$i = "data-v-6f3faf52";
1563
+ const __vue_scope_id__$m = "data-v-70a1f03f";
1513
1564
  /* module identifier */
1514
- const __vue_module_identifier__$i = undefined;
1565
+ const __vue_module_identifier__$m = undefined;
1515
1566
  /* functional template */
1516
- const __vue_is_functional_template__$i = false;
1567
+ const __vue_is_functional_template__$m = false;
1517
1568
  /* style inject SSR */
1518
1569
 
1519
1570
  /* style inject shadow dom */
1520
1571
 
1521
1572
 
1522
1573
 
1523
- const __vue_component__$i = /*#__PURE__*/normalizeComponent(
1524
- { render: __vue_render__$i, staticRenderFns: __vue_staticRenderFns__$i },
1525
- __vue_inject_styles__$i,
1526
- __vue_script__$i,
1527
- __vue_scope_id__$i,
1528
- __vue_is_functional_template__$i,
1529
- __vue_module_identifier__$i,
1574
+ const __vue_component__$m = /*#__PURE__*/normalizeComponent(
1575
+ { render: __vue_render__$m, staticRenderFns: __vue_staticRenderFns__$m },
1576
+ __vue_inject_styles__$m,
1577
+ __vue_script__$m,
1578
+ __vue_scope_id__$m,
1579
+ __vue_is_functional_template__$m,
1580
+ __vue_module_identifier__$m,
1530
1581
  false,
1531
1582
  createInjector,
1532
1583
  undefined,
1533
1584
  undefined
1534
1585
  );
1535
1586
 
1536
- __vue_component__$i.install = Vue => Vue.component(__vue_component__$i.name, __vue_component__$i);
1587
+ __vue_component__$m.install = Vue => Vue.component(__vue_component__$m.name, __vue_component__$m);
1537
1588
 
1538
1589
  //
1539
1590
  //
@@ -1559,7 +1610,7 @@ __vue_component__$i.install = Vue => Vue.component(__vue_component__$i.name, __v
1559
1610
  //
1560
1611
  //
1561
1612
 
1562
- var script$h = {
1613
+ var script$l = {
1563
1614
  name: 'ele-tree',
1564
1615
  props: {
1565
1616
  treeData: {
@@ -1622,10 +1673,10 @@ var script$h = {
1622
1673
  };
1623
1674
 
1624
1675
  /* script */
1625
- const __vue_script__$h = script$h;
1676
+ const __vue_script__$l = script$l;
1626
1677
 
1627
1678
  /* template */
1628
- var __vue_render__$h = function () {
1679
+ var __vue_render__$l = function () {
1629
1680
  var _vm = this;
1630
1681
  var _h = _vm.$createElement;
1631
1682
  var _c = _vm._self._c || _h;
@@ -1682,41 +1733,41 @@ var __vue_render__$h = function () {
1682
1733
  1
1683
1734
  )
1684
1735
  };
1685
- var __vue_staticRenderFns__$h = [];
1686
- __vue_render__$h._withStripped = true;
1736
+ var __vue_staticRenderFns__$l = [];
1737
+ __vue_render__$l._withStripped = true;
1687
1738
 
1688
1739
  /* style */
1689
- const __vue_inject_styles__$h = function (inject) {
1740
+ const __vue_inject_styles__$l = function (inject) {
1690
1741
  if (!inject) return
1691
- inject("data-v-cc99bbf0_0", { source: ".g-tree__wrapper[data-v-cc99bbf0] {\n overflow: hidden;\n}\n.g-tree__wrapper[data-v-cc99bbf0] .ant-tree .ant-tree-node-content-wrapper {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.g-tree__wrapper[data-v-cc99bbf0] .ant-tree .ant-tree-node-selected {\n color: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\tree\\src\\index.vue","index.vue"],"names":[],"mappings":"AAwFA;EACA,gBAAA;ACvFA;ADyFA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;ACvFA;ADyFA;EACA,WAAA;ACvFA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"g-tree__wrapper\">\r\n <a-tree\r\n v-if=\"innerTreeData.length\"\r\n :tree-data=\"innerTreeData\"\r\n @select=\"selectTreeNode\"\r\n :replaceFields=\"replaceFields\"\r\n :default-expanded-keys=\"defaultExpandedKeys\"\r\n :default-selected-keys=\"defaultSelectedKeys\"\r\n blockNode \r\n :show-icon=\"showIcon\">\r\n <template #title=\"{ title }\">\r\n <span :title=\"title\" class=\"tree-node__title\">\r\n {{ title }}\r\n </span>\r\n </template>\r\n <template slot=\"custom\" slot-scope=\"{ scopedSlots }\">\r\n <a-icon :type=\"scopedSlots.iconName\"></a-icon>\r\n </template>\r\n </a-tree>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ele-tree',\r\n props: {\r\n treeData: {\r\n type: Array,\r\n default: () => []\r\n },\r\n replaceFields: {\r\n type: Object,\r\n default: () => ({\r\n title: 'title',\r\n key: 'id',\r\n children: 'children'\r\n })\r\n },\r\n defaultExpandedKeys: {\r\n type: Array\r\n },\r\n defaultSelectedKeys: {\r\n type: Array\r\n },\r\n showIcon: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n data () {\r\n return {}\r\n },\r\n computed: {\r\n innerTreeData () {\r\n return this.treeData\r\n // return [\r\n // {\r\n // title: 'parent 1',\r\n // key: 1,\r\n // scopedSlots: {\r\n // icon: 'custom',\r\n // iconName: 'smile-o'\r\n // },\r\n // children: [\r\n // {\r\n // title: '2',\r\n // key: 2,\r\n // scopedSlots: {\r\n // icon: 'custom',\r\n // iconName: 'frown-o'\r\n // }\r\n // }\r\n // ]\r\n // }\r\n // ]\r\n }\r\n },\r\n methods: {\r\n refreshTreeStatus (props = {}) {},\r\n selectTreeNode (selectedKeys, e) {\r\n this.$emit('select', selectedKeys, e)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.g-tree__wrapper {\r\n overflow: hidden;\r\n ::v-deep .ant-tree {\r\n .ant-tree-node-content-wrapper {\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n }\r\n .ant-tree-node-selected {\r\n color: #fff;\r\n }\r\n }\r\n}\r\n</style>",".g-tree__wrapper {\n overflow: hidden;\n}\n.g-tree__wrapper ::v-deep .ant-tree .ant-tree-node-content-wrapper {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.g-tree__wrapper ::v-deep .ant-tree .ant-tree-node-selected {\n color: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
1742
+ inject("data-v-0cdfa85c_0", { source: ".g-tree__wrapper[data-v-0cdfa85c] {\n overflow: hidden;\n}\n.g-tree__wrapper[data-v-0cdfa85c] .ant-tree .ant-tree-node-content-wrapper {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.g-tree__wrapper[data-v-0cdfa85c] .ant-tree .ant-tree-node-selected {\n color: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/tree/src/index.vue","index.vue"],"names":[],"mappings":"AAwFA;EACA,gBAAA;ACvFA;ADyFA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;ACvFA;ADyFA;EACA,WAAA;ACvFA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"g-tree__wrapper\">\n <a-tree\n v-if=\"innerTreeData.length\"\n :tree-data=\"innerTreeData\"\n @select=\"selectTreeNode\"\n :replaceFields=\"replaceFields\"\n :default-expanded-keys=\"defaultExpandedKeys\"\n :default-selected-keys=\"defaultSelectedKeys\"\n blockNode \n :show-icon=\"showIcon\">\n <template #title=\"{ title }\">\n <span :title=\"title\" class=\"tree-node__title\">\n {{ title }}\n </span>\n </template>\n <template slot=\"custom\" slot-scope=\"{ scopedSlots }\">\n <a-icon :type=\"scopedSlots.iconName\"></a-icon>\n </template>\n </a-tree>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'ele-tree',\n props: {\n treeData: {\n type: Array,\n default: () => []\n },\n replaceFields: {\n type: Object,\n default: () => ({\n title: 'title',\n key: 'id',\n children: 'children'\n })\n },\n defaultExpandedKeys: {\n type: Array\n },\n defaultSelectedKeys: {\n type: Array\n },\n showIcon: {\n type: Boolean,\n default: true\n }\n },\n data () {\n return {}\n },\n computed: {\n innerTreeData () {\n return this.treeData\n // return [\n // {\n // title: 'parent 1',\n // key: 1,\n // scopedSlots: {\n // icon: 'custom',\n // iconName: 'smile-o'\n // },\n // children: [\n // {\n // title: '2',\n // key: 2,\n // scopedSlots: {\n // icon: 'custom',\n // iconName: 'frown-o'\n // }\n // }\n // ]\n // }\n // ]\n }\n },\n methods: {\n refreshTreeStatus (props = {}) {},\n selectTreeNode (selectedKeys, e) {\n this.$emit('select', selectedKeys, e)\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.g-tree__wrapper {\n overflow: hidden;\n ::v-deep .ant-tree {\n .ant-tree-node-content-wrapper {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n .ant-tree-node-selected {\n color: #fff;\n }\n }\n}\n</style>",".g-tree__wrapper {\n overflow: hidden;\n}\n.g-tree__wrapper ::v-deep .ant-tree .ant-tree-node-content-wrapper {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.g-tree__wrapper ::v-deep .ant-tree .ant-tree-node-selected {\n color: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
1692
1743
 
1693
1744
  };
1694
1745
  /* scoped */
1695
- const __vue_scope_id__$h = "data-v-cc99bbf0";
1746
+ const __vue_scope_id__$l = "data-v-0cdfa85c";
1696
1747
  /* module identifier */
1697
- const __vue_module_identifier__$h = undefined;
1748
+ const __vue_module_identifier__$l = undefined;
1698
1749
  /* functional template */
1699
- const __vue_is_functional_template__$h = false;
1750
+ const __vue_is_functional_template__$l = false;
1700
1751
  /* style inject SSR */
1701
1752
 
1702
1753
  /* style inject shadow dom */
1703
1754
 
1704
1755
 
1705
1756
 
1706
- const __vue_component__$h = /*#__PURE__*/normalizeComponent(
1707
- { render: __vue_render__$h, staticRenderFns: __vue_staticRenderFns__$h },
1708
- __vue_inject_styles__$h,
1709
- __vue_script__$h,
1710
- __vue_scope_id__$h,
1711
- __vue_is_functional_template__$h,
1712
- __vue_module_identifier__$h,
1757
+ const __vue_component__$l = /*#__PURE__*/normalizeComponent(
1758
+ { render: __vue_render__$l, staticRenderFns: __vue_staticRenderFns__$l },
1759
+ __vue_inject_styles__$l,
1760
+ __vue_script__$l,
1761
+ __vue_scope_id__$l,
1762
+ __vue_is_functional_template__$l,
1763
+ __vue_module_identifier__$l,
1713
1764
  false,
1714
1765
  createInjector,
1715
1766
  undefined,
1716
1767
  undefined
1717
1768
  );
1718
1769
 
1719
- __vue_component__$h.install = Vue => Vue.component(__vue_component__$h.name, __vue_component__$h);
1770
+ __vue_component__$l.install = Vue => Vue.component(__vue_component__$l.name, __vue_component__$l);
1720
1771
 
1721
1772
  //
1722
1773
  //
@@ -1726,7 +1777,7 @@ __vue_component__$h.install = Vue => Vue.component(__vue_component__$h.name, __v
1726
1777
  //
1727
1778
  //
1728
1779
 
1729
- var script$g = {
1780
+ var script$k = {
1730
1781
  props: {
1731
1782
  label: {
1732
1783
  type: String
@@ -1735,10 +1786,10 @@ var script$g = {
1735
1786
  };
1736
1787
 
1737
1788
  /* script */
1738
- const __vue_script__$g = script$g;
1789
+ const __vue_script__$k = script$k;
1739
1790
 
1740
1791
  /* template */
1741
- var __vue_render__$g = function () {
1792
+ var __vue_render__$k = function () {
1742
1793
  var _vm = this;
1743
1794
  var _h = _vm.$createElement;
1744
1795
  var _c = _vm._self._c || _h;
@@ -1748,34 +1799,34 @@ var __vue_render__$g = function () {
1748
1799
  _c("span", { staticClass: "label__suffix" }, [_vm._v(":")]),
1749
1800
  ])
1750
1801
  };
1751
- var __vue_staticRenderFns__$g = [];
1752
- __vue_render__$g._withStripped = true;
1802
+ var __vue_staticRenderFns__$k = [];
1803
+ __vue_render__$k._withStripped = true;
1753
1804
 
1754
1805
  /* style */
1755
- const __vue_inject_styles__$g = function (inject) {
1806
+ const __vue_inject_styles__$k = function (inject) {
1756
1807
  if (!inject) return
1757
- inject("data-v-40e71716_0", { source: ".g-search__label[data-v-40e71716] {\n /* width: 69px; */\n flex-basis: 69px;\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.g-search__label .label__title[data-v-40e71716], .g-search__label .label__suffix[data-v-40e71716] {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.88);\n white-space: nowrap;\n}\n.g-search__label .label__suffix[data-v-40e71716] {\n margin-left: 4px;\n}\n\n/*# sourceMappingURL=label.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\composite-components\\search-area\\src\\label.vue","label.vue"],"names":[],"mappings":"AAkBA;EACA,iBAAA;EACA,gBAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8BAAA;ACjBA;ADkBA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;AChBA;ADkBA;EACA,gBAAA;AChBA;;AAEA,oCAAoC","file":"label.vue","sourcesContent":["<template>\r\n <div class=\"g-search__label\">\r\n <span class=\"label__title\">{{ label }}</span>\r\n <span class=\"label__suffix\">:</span>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n props: {\r\n label: {\r\n type: String\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.g-search__label {\r\n /* width: 69px; */\r\n flex-basis: 69px;\r\n height: 32px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n .label__title, .label__suffix {\r\n font-size: 14px;\r\n color: rgba(0, 0, 0, 0.88);\r\n white-space: nowrap;\r\n }\r\n .label__suffix {\r\n margin-left: 4px;\r\n }\r\n}\r\n</style>",".g-search__label {\n /* width: 69px; */\n flex-basis: 69px;\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.g-search__label .label__title, .g-search__label .label__suffix {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.88);\n white-space: nowrap;\n}\n.g-search__label .label__suffix {\n margin-left: 4px;\n}\n\n/*# sourceMappingURL=label.vue.map */"]}, media: undefined });
1808
+ inject("data-v-07e596bf_0", { source: ".g-search__label[data-v-07e596bf] {\n /* width: 69px; */\n flex-basis: 69px;\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.g-search__label .label__title[data-v-07e596bf], .g-search__label .label__suffix[data-v-07e596bf] {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.88);\n white-space: nowrap;\n}\n.g-search__label .label__suffix[data-v-07e596bf] {\n margin-left: 4px;\n}\n\n/*# sourceMappingURL=label.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/composite-components/search-area/src/label.vue","label.vue"],"names":[],"mappings":"AAkBA;EACA,iBAAA;EACA,gBAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8BAAA;ACjBA;ADkBA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;AChBA;ADkBA;EACA,gBAAA;AChBA;;AAEA,oCAAoC","file":"label.vue","sourcesContent":["<template>\n <div class=\"g-search__label\">\n <span class=\"label__title\">{{ label }}</span>\n <span class=\"label__suffix\">:</span>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n label: {\n type: String\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.g-search__label {\n /* width: 69px; */\n flex-basis: 69px;\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n .label__title, .label__suffix {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.88);\n white-space: nowrap;\n }\n .label__suffix {\n margin-left: 4px;\n }\n}\n</style>",".g-search__label {\n /* width: 69px; */\n flex-basis: 69px;\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.g-search__label .label__title, .g-search__label .label__suffix {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.88);\n white-space: nowrap;\n}\n.g-search__label .label__suffix {\n margin-left: 4px;\n}\n\n/*# sourceMappingURL=label.vue.map */"]}, media: undefined });
1758
1809
 
1759
1810
  };
1760
1811
  /* scoped */
1761
- const __vue_scope_id__$g = "data-v-40e71716";
1812
+ const __vue_scope_id__$k = "data-v-07e596bf";
1762
1813
  /* module identifier */
1763
- const __vue_module_identifier__$g = undefined;
1814
+ const __vue_module_identifier__$k = undefined;
1764
1815
  /* functional template */
1765
- const __vue_is_functional_template__$g = false;
1816
+ const __vue_is_functional_template__$k = false;
1766
1817
  /* style inject SSR */
1767
1818
 
1768
1819
  /* style inject shadow dom */
1769
1820
 
1770
1821
 
1771
1822
 
1772
- const __vue_component__$g = /*#__PURE__*/normalizeComponent(
1773
- { render: __vue_render__$g, staticRenderFns: __vue_staticRenderFns__$g },
1774
- __vue_inject_styles__$g,
1775
- __vue_script__$g,
1776
- __vue_scope_id__$g,
1777
- __vue_is_functional_template__$g,
1778
- __vue_module_identifier__$g,
1823
+ const __vue_component__$k = /*#__PURE__*/normalizeComponent(
1824
+ { render: __vue_render__$k, staticRenderFns: __vue_staticRenderFns__$k },
1825
+ __vue_inject_styles__$k,
1826
+ __vue_script__$k,
1827
+ __vue_scope_id__$k,
1828
+ __vue_is_functional_template__$k,
1829
+ __vue_module_identifier__$k,
1779
1830
  false,
1780
1831
  createInjector,
1781
1832
  undefined,
@@ -1783,14 +1834,14 @@ __vue_render__$g._withStripped = true;
1783
1834
  );
1784
1835
 
1785
1836
  //
1786
- var script$f = {
1837
+ var script$j = {
1787
1838
  name: 'ele-search-area',
1788
1839
  components: {
1789
- EleInput: __vue_component__$l,
1790
- EleSelect: __vue_component__$k,
1791
- ELeButton: __vue_component__$n,
1792
- Label: __vue_component__$g,
1793
- EleDate: __vue_component__$m
1840
+ EleInput: __vue_component__$p,
1841
+ EleSelect: __vue_component__$o,
1842
+ ELeButton: __vue_component__$r,
1843
+ Label: __vue_component__$k,
1844
+ EleDate: __vue_component__$q
1794
1845
  },
1795
1846
  props: {
1796
1847
  gutter: {
@@ -1865,6 +1916,14 @@ var script$f = {
1865
1916
  const querys = this.extractValues();
1866
1917
  this.$emit('search', querys);
1867
1918
  },
1919
+ buildMapto(mapTo = [], dataSource) {
1920
+ const [startField, endField] = mapTo;
1921
+ const [startValue, endValue] = dataSource || [null, null];
1922
+ return {
1923
+ [startField]: startValue,
1924
+ [endField]: endValue
1925
+ };
1926
+ },
1868
1927
  extractValues() {
1869
1928
  let ret = {};
1870
1929
  this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {
@@ -1872,6 +1931,9 @@ var script$f = {
1872
1931
  case 'DatePicker':
1873
1932
  ret[item.name] = typeof item._value == 'undefined' ? undefined : moment(item._value).format(item.format);
1874
1933
  break;
1934
+ case 'ele-date-range':
1935
+ Object.assign(ret, this.buildMapto(item.mapTo, item._value));
1936
+ break;
1875
1937
  default:
1876
1938
  ret[item.name] = item._value;
1877
1939
  break;
@@ -1893,6 +1955,10 @@ var script$f = {
1893
1955
  defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1894
1956
  !defaultValue && this.$set(item, '_value', undefined);
1895
1957
  break;
1958
+ case 'ele-date-picker':
1959
+ defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1960
+ !defaultValue && this.$set(item, '_value', []);
1961
+ break;
1896
1962
  default:
1897
1963
  defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1898
1964
  !defaultValue && this.$set(item, '_value', null);
@@ -1910,10 +1976,10 @@ var script$f = {
1910
1976
  };
1911
1977
 
1912
1978
  /* script */
1913
- const __vue_script__$f = script$f;
1979
+ const __vue_script__$j = script$j;
1914
1980
 
1915
1981
  /* template */
1916
- var __vue_render__$f = function () {
1982
+ var __vue_render__$j = function () {
1917
1983
  var _vm = this;
1918
1984
  var _h = _vm.$createElement;
1919
1985
  var _c = _vm._self._c || _h;
@@ -2049,14 +2115,34 @@ var __vue_render__$f = function () {
2049
2115
  },
2050
2116
  }),
2051
2117
  ]
2052
- : _vm._e(),
2053
- ],
2054
- 2
2055
- ),
2056
- ]
2057
- )
2058
- : _vm._e(),
2059
- ]
2118
+ : item.type == "ele-date-range"
2119
+ ? [
2120
+ _c("Label", {
2121
+ attrs: { label: item.label },
2122
+ }),
2123
+ _vm._v(" "),
2124
+ _c("ele-date-range", {
2125
+ attrs: {
2126
+ format: item.format,
2127
+ "show-time": item.showTime,
2128
+ },
2129
+ model: {
2130
+ value: item._value,
2131
+ callback: function ($$v) {
2132
+ _vm.$set(item, "_value", $$v);
2133
+ },
2134
+ expression: "item._value",
2135
+ },
2136
+ }),
2137
+ ]
2138
+ : _vm._e(),
2139
+ ],
2140
+ 2
2141
+ ),
2142
+ ]
2143
+ )
2144
+ : _vm._e(),
2145
+ ]
2060
2146
  }),
2061
2147
  ],
2062
2148
  2
@@ -2065,34 +2151,34 @@ var __vue_render__$f = function () {
2065
2151
  1
2066
2152
  )
2067
2153
  };
2068
- var __vue_staticRenderFns__$f = [];
2069
- __vue_render__$f._withStripped = true;
2154
+ var __vue_staticRenderFns__$j = [];
2155
+ __vue_render__$j._withStripped = true;
2070
2156
 
2071
2157
  /* style */
2072
- const __vue_inject_styles__$f = function (inject) {
2158
+ const __vue_inject_styles__$j = function (inject) {
2073
2159
  if (!inject) return
2074
- inject("data-v-5a224358_0", { source: ".search-area__wrapper[data-v-5a224358] {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n}\n.search-area__wrapper[data-v-5a224358] .ant-col:last-child {\n float: right;\n}\n.search-area__wrapper .search-area__item[data-v-5a224358] {\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.search-area__wrapper .search-area__item.search-area--action[data-v-5a224358] {\n justify-content: end;\n}\n.search-area__wrapper .search-area__item .expand-collapse[data-v-5a224358] {\n margin-left: 8px;\n height: 32px;\n padding: 4px 16px;\n color: var(--idooel-primary-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__text[data-v-5a224358] {\n font-size: 14px;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__icon[data-v-5a224358] {\n font-size: 16px;\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\composite-components\\search-area\\src\\index.vue","index.vue"],"names":[],"mappings":"AAyKA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;ACxKA;AD0KA;EACA,YAAA;ACxKA;AD2KA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;ACzKA;AD0KA;EACA,oBAAA;ACxKA;AD0KA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;EACA,kCAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;ACxKA;ADyKA;EACA,eAAA;ACvKA;ADyKA;EACA,eAAA;EACA,gBAAA;ACvKA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"search-area__wrapper\">\r\n <a-row :gutter=\"gutter\">\r\n <template v-for=\"(item, idx) in innerDataSource\">\r\n <a-col v-if=\"item._show\" :span=\"item.span || span\" :key=\"idx\">\r\n <div v-if=\"item.type == '_action'\" class=\"search-area__item search-area--action\">\r\n <ele-button icon=\"search\" type=\"primary\" @click=\"handleClickSearch\">查询</ele-button>\r\n <ele-button style=\"margin-left:8px;\" icon=\"reload\" @click=\"handleClickReset\">重置</ele-button>\r\n <div class=\"expand-collapse\" @click=\"handleClickExpandCollapse\">\r\n <span class=\"expand-collapse__text\">{{ isExpand ? '收起' : '展开' }}</span>\r\n <span class=\"expand-collapse__icon\">\r\n <a-icon v-if=\"isExpand\" type=\"up\" />\r\n <a-icon v-else type=\"down\" />\r\n </span>\r\n </div>\r\n </div>\r\n <div v-else class=\"search-area__item\">\r\n <template v-if=\"item.type == 'Input'\">\r\n <Label :label=\"item.label\"></Label>\r\n <ele-input v-model=\"item._value\"></ele-input>\r\n </template>\r\n <template v-else-if=\"item.type == 'Select'\">\r\n <Label :label=\"item.label\"></Label>\r\n <ele-select v-model=\"item._value\" :data-source=\"item.optionList\"></ele-select>\r\n </template>\r\n <template v-else-if=\"item.type == 'DatePicker'\">\r\n <Label :label=\"item.label\"></Label>\r\n <ele-date v-model=\"item._value\" :format=\"item.format\"></ele-date>\r\n </template>\r\n </div>\r\n </a-col>\r\n </template>\r\n </a-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport EleInput from '../../../input/src/index.vue'\r\nimport EleSelect from '../../../select/src/index.vue'\r\nimport ELeButton from '../../../button/src/index.vue'\r\nimport EleDate from '../../../date/src/index.vue'\r\nimport Label from './label.vue'\r\nimport moment from 'moment'\r\nimport { parse } from '@idooel/expression'\r\nexport default {\r\n name: 'ele-search-area',\r\n components: {\r\n EleInput,\r\n EleSelect,\r\n ELeButton,\r\n Label,\r\n EleDate\r\n },\r\n props: {\r\n gutter: {\r\n type: [Number, Array, Object],\r\n default: () => ([\r\n 16, 8\r\n ])\r\n },\r\n span: {\r\n type: Number,\r\n default: 8\r\n },\r\n dataSource: {\r\n type: Array,\r\n required: true\r\n }\r\n },\r\n data() {\r\n return {\r\n isExpand: false\r\n }\r\n },\r\n computed: {\r\n cuttingFormula () {\r\n return (24 / this.span - 1)\r\n },\r\n buildDataSource () {\r\n return this.controlDisplayByFormula(this.mapDefaultValueToValue())\r\n },\r\n innerDataSource () {\r\n return [ ...this.buildDataSource, { type: '_action', _show: true }]\r\n }\r\n },\r\n created() {},\r\n methods: {\r\n controlDisplayByFormula (dataSource = []) {\r\n if (this.isExpand) {\r\n dataSource.forEach(item => {\r\n this.$set(item, '_show', true)\r\n })\r\n } else {\r\n dataSource.forEach((item, idx) => {\r\n if (idx < this.cuttingFormula) {\r\n this.$set(item, '_show', true)\r\n } else {\r\n this.$set(item, '_show', false)\r\n }\r\n })\r\n }\r\n return dataSource\r\n },\r\n buildDefaultValue (arg) {\r\n if (!arg || arg.charAt(0) !== '_') return arg\r\n return parse(arg, {\r\n _route: this.$route.query\r\n })\r\n },\r\n mapDefaultValueToValue () {\r\n this.dataSource.forEach(props => {\r\n this.$set(props, '_show', this.isExpand)\r\n if (props.defaultValue) {\r\n this.$set(props, '_value', this.buildDefaultValue(props.defaultValue))\r\n }\r\n })\r\n return this.dataSource\r\n },\r\n handleClickExpandCollapse () {\r\n this.isExpand = !this.isExpand\r\n },\r\n handleClickSearch () {\r\n const querys = this.extractValues()\r\n this.$emit('search', querys)\r\n },\r\n extractValues () {\r\n let ret = {}\r\n this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {\r\n switch (item.type) {\r\n case 'DatePicker':\r\n ret[item.name] = typeof item._value == 'undefined' ? undefined : moment(item._value).format(item.format)\r\n break\r\n default:\r\n ret[item.name] = item._value\r\n break\r\n }\r\n })\r\n return ret\r\n },\r\n handleClickReset () {\r\n this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {\r\n const { defaultValue } = item\r\n switch (item.type) {\r\n case 'Select':\r\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\r\n !defaultValue && this.$set(item, '_value', null)\r\n break\r\n case 'DatePicker':\r\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\r\n !defaultValue && this.$set(item, '_value', undefined)\r\n break\r\n default:\r\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\r\n !defaultValue && this.$set(item, '_value', null)\r\n break\r\n }\r\n })\r\n //TODO defaultValue\r\n const querys = this.extractValues()\r\n this.$emit('search', querys)\r\n },\r\n onChangeSelect (value, props) {\r\n this.$set(props, '_value', value)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.search-area__wrapper {\r\n padding-top: 16px;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n ::v-deep .ant-col {\r\n &:last-child {\r\n float: right;\r\n }\r\n }\r\n .search-area__item {\r\n height: 32px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n &.search-area--action {\r\n justify-content: end;\r\n }\r\n .expand-collapse {\r\n margin-left: 8px;\r\n height: 32px;\r\n padding: 4px 16px;\r\n color: var(--idooel-primary-color);\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n .expand-collapse__text {\r\n font-size: 14px;\r\n }\r\n .expand-collapse__icon {\r\n font-size: 16px;\r\n margin-left: 8px;\r\n }\r\n }\r\n }\r\n}\r\n</style>",".search-area__wrapper {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n}\n.search-area__wrapper ::v-deep .ant-col:last-child {\n float: right;\n}\n.search-area__wrapper .search-area__item {\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.search-area__wrapper .search-area__item.search-area--action {\n justify-content: end;\n}\n.search-area__wrapper .search-area__item .expand-collapse {\n margin-left: 8px;\n height: 32px;\n padding: 4px 16px;\n color: var(--idooel-primary-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__text {\n font-size: 14px;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__icon {\n font-size: 16px;\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2160
+ inject("data-v-276237e6_0", { source: ".search-area__wrapper[data-v-276237e6] {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n}\n.search-area__wrapper[data-v-276237e6] .ant-col:last-child {\n float: right;\n}\n.search-area__wrapper .search-area__item[data-v-276237e6] {\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.search-area__wrapper .search-area__item.search-area--action[data-v-276237e6] {\n justify-content: end;\n}\n.search-area__wrapper .search-area__item .expand-collapse[data-v-276237e6] {\n margin-left: 8px;\n height: 32px;\n padding: 4px 16px;\n color: var(--idooel-primary-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__text[data-v-276237e6] {\n font-size: 14px;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__icon[data-v-276237e6] {\n font-size: 16px;\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/composite-components/search-area/src/index.vue","index.vue"],"names":[],"mappings":"AA4LA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;AC3LA;AD6LA;EACA,YAAA;AC3LA;AD8LA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;AC5LA;AD6LA;EACA,oBAAA;AC3LA;AD6LA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;EACA,kCAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;AC3LA;AD4LA;EACA,eAAA;AC1LA;AD4LA;EACA,eAAA;EACA,gBAAA;AC1LA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"search-area__wrapper\">\n <a-row :gutter=\"gutter\">\n <template v-for=\"(item, idx) in innerDataSource\">\n <a-col v-if=\"item._show\" :span=\"item.span || span\" :key=\"idx\">\n <div v-if=\"item.type == '_action'\" class=\"search-area__item search-area--action\">\n <ele-button icon=\"search\" type=\"primary\" @click=\"handleClickSearch\">查询</ele-button>\n <ele-button style=\"margin-left:8px;\" icon=\"reload\" @click=\"handleClickReset\">重置</ele-button>\n <div class=\"expand-collapse\" @click=\"handleClickExpandCollapse\">\n <span class=\"expand-collapse__text\">{{ isExpand ? '收起' : '展开' }}</span>\n <span class=\"expand-collapse__icon\">\n <a-icon v-if=\"isExpand\" type=\"up\" />\n <a-icon v-else type=\"down\" />\n </span>\n </div>\n </div>\n <div v-else class=\"search-area__item\">\n <template v-if=\"item.type == 'Input'\">\n <Label :label=\"item.label\"></Label>\n <ele-input v-model=\"item._value\"></ele-input>\n </template>\n <template v-else-if=\"item.type == 'Select'\">\n <Label :label=\"item.label\"></Label>\n <ele-select v-model=\"item._value\" :data-source=\"item.optionList\"></ele-select>\n </template>\n <template v-else-if=\"item.type == 'DatePicker'\">\n <Label :label=\"item.label\"></Label>\n <ele-date v-model=\"item._value\" :format=\"item.format\"></ele-date>\n </template>\n <template v-else-if=\"item.type == 'ele-date-range'\">\n <Label :label=\"item.label\"></Label>\n <ele-date-range v-model=\"item._value\" :format=\"item.format\" :show-time=\"item.showTime\"></ele-date-range>\n </template>\n </div>\n </a-col>\n </template>\n </a-row>\n </div>\n</template>\n\n<script>\nimport EleInput from '../../../input/src/index.vue'\nimport EleSelect from '../../../select/src/index.vue'\nimport ELeButton from '../../../button/src/index.vue'\nimport EleDate from '../../../date/src/index.vue'\nimport Label from './label.vue'\nimport moment from 'moment'\nimport { parse } from '@idooel/expression'\nexport default {\n name: 'ele-search-area',\n components: {\n EleInput,\n EleSelect,\n ELeButton,\n Label,\n EleDate\n },\n props: {\n gutter: {\n type: [Number, Array, Object],\n default: () => ([\n 16, 8\n ])\n },\n span: {\n type: Number,\n default: 8\n },\n dataSource: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n isExpand: false\n }\n },\n computed: {\n cuttingFormula () {\n return (24 / this.span - 1)\n },\n buildDataSource () {\n return this.controlDisplayByFormula(this.mapDefaultValueToValue())\n },\n innerDataSource () {\n return [ ...this.buildDataSource, { type: '_action', _show: true }]\n }\n },\n created() {},\n methods: {\n controlDisplayByFormula (dataSource = []) {\n if (this.isExpand) {\n dataSource.forEach(item => {\n this.$set(item, '_show', true)\n })\n } else {\n dataSource.forEach((item, idx) => {\n if (idx < this.cuttingFormula) {\n this.$set(item, '_show', true)\n } else {\n this.$set(item, '_show', false)\n }\n })\n }\n return dataSource\n },\n buildDefaultValue (arg) {\n if (!arg || arg.charAt(0) !== '_') return arg\n return parse(arg, {\n _route: this.$route.query\n })\n },\n mapDefaultValueToValue () {\n this.dataSource.forEach(props => {\n this.$set(props, '_show', this.isExpand)\n if (props.defaultValue) {\n this.$set(props, '_value', this.buildDefaultValue(props.defaultValue))\n }\n })\n return this.dataSource\n },\n handleClickExpandCollapse () {\n this.isExpand = !this.isExpand\n },\n handleClickSearch () {\n const querys = this.extractValues()\n this.$emit('search', querys)\n },\n buildMapto (mapTo = [], dataSource) {\n const [ startField, endField ] = mapTo\n const [ startValue, endValue ] = dataSource || [null, null]\n return {\n [startField]: startValue,\n [endField]: endValue\n }\n },\n extractValues () {\n let ret = {}\n this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {\n switch (item.type) {\n case 'DatePicker':\n ret[item.name] = typeof item._value == 'undefined' ? undefined : moment(item._value).format(item.format)\n break\n case 'ele-date-range':\n Object.assign(ret, this.buildMapto(item.mapTo, item._value))\n break\n default:\n ret[item.name] = item._value\n break\n }\n })\n return ret\n },\n handleClickReset () {\n this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {\n const { defaultValue } = item\n switch (item.type) {\n case 'Select':\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\n !defaultValue && this.$set(item, '_value', null)\n break\n case 'DatePicker':\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\n !defaultValue && this.$set(item, '_value', undefined)\n break\n case 'ele-date-picker':\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\n !defaultValue && this.$set(item, '_value', [])\n break\n default:\n defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue))\n !defaultValue && this.$set(item, '_value', null)\n break\n }\n })\n //TODO defaultValue\n const querys = this.extractValues()\n this.$emit('search', querys)\n },\n onChangeSelect (value, props) {\n this.$set(props, '_value', value)\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.search-area__wrapper {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n ::v-deep .ant-col {\n &:last-child {\n float: right;\n }\n }\n .search-area__item {\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n &.search-area--action {\n justify-content: end;\n }\n .expand-collapse {\n margin-left: 8px;\n height: 32px;\n padding: 4px 16px;\n color: var(--idooel-primary-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n .expand-collapse__text {\n font-size: 14px;\n }\n .expand-collapse__icon {\n font-size: 16px;\n margin-left: 8px;\n }\n }\n }\n}\n</style>",".search-area__wrapper {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n}\n.search-area__wrapper ::v-deep .ant-col:last-child {\n float: right;\n}\n.search-area__wrapper .search-area__item {\n height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.search-area__wrapper .search-area__item.search-area--action {\n justify-content: end;\n}\n.search-area__wrapper .search-area__item .expand-collapse {\n margin-left: 8px;\n height: 32px;\n padding: 4px 16px;\n color: var(--idooel-primary-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__text {\n font-size: 14px;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__icon {\n font-size: 16px;\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2075
2161
 
2076
2162
  };
2077
2163
  /* scoped */
2078
- const __vue_scope_id__$f = "data-v-5a224358";
2164
+ const __vue_scope_id__$j = "data-v-276237e6";
2079
2165
  /* module identifier */
2080
- const __vue_module_identifier__$f = undefined;
2166
+ const __vue_module_identifier__$j = undefined;
2081
2167
  /* functional template */
2082
- const __vue_is_functional_template__$f = false;
2168
+ const __vue_is_functional_template__$j = false;
2083
2169
  /* style inject SSR */
2084
2170
 
2085
2171
  /* style inject shadow dom */
2086
2172
 
2087
2173
 
2088
2174
 
2089
- const __vue_component__$f = /*#__PURE__*/normalizeComponent(
2090
- { render: __vue_render__$f, staticRenderFns: __vue_staticRenderFns__$f },
2091
- __vue_inject_styles__$f,
2092
- __vue_script__$f,
2093
- __vue_scope_id__$f,
2094
- __vue_is_functional_template__$f,
2095
- __vue_module_identifier__$f,
2175
+ const __vue_component__$j = /*#__PURE__*/normalizeComponent(
2176
+ { render: __vue_render__$j, staticRenderFns: __vue_staticRenderFns__$j },
2177
+ __vue_inject_styles__$j,
2178
+ __vue_script__$j,
2179
+ __vue_scope_id__$j,
2180
+ __vue_is_functional_template__$j,
2181
+ __vue_module_identifier__$j,
2096
2182
  false,
2097
2183
  createInjector,
2098
2184
  undefined,
@@ -2100,10 +2186,10 @@ __vue_render__$f._withStripped = true;
2100
2186
  );
2101
2187
 
2102
2188
  //
2103
- var script$e = {
2189
+ var script$i = {
2104
2190
  name: 'ele-button-group',
2105
2191
  components: {
2106
- EleButton: __vue_component__$n
2192
+ EleButton: __vue_component__$r
2107
2193
  },
2108
2194
  props: {
2109
2195
  dataSource: {
@@ -2114,10 +2200,10 @@ var script$e = {
2114
2200
  };
2115
2201
 
2116
2202
  /* script */
2117
- const __vue_script__$e = script$e;
2203
+ const __vue_script__$i = script$i;
2118
2204
 
2119
2205
  /* template */
2120
- var __vue_render__$e = function () {
2206
+ var __vue_render__$i = function () {
2121
2207
  var _vm = this;
2122
2208
  var _h = _vm.$createElement;
2123
2209
  var _c = _vm._self._c || _h;
@@ -2147,34 +2233,34 @@ var __vue_render__$e = function () {
2147
2233
  1
2148
2234
  )
2149
2235
  };
2150
- var __vue_staticRenderFns__$e = [];
2151
- __vue_render__$e._withStripped = true;
2236
+ var __vue_staticRenderFns__$i = [];
2237
+ __vue_render__$i._withStripped = true;
2152
2238
 
2153
2239
  /* style */
2154
- const __vue_inject_styles__$e = function (inject) {
2240
+ const __vue_inject_styles__$i = function (inject) {
2155
2241
  if (!inject) return
2156
- inject("data-v-de67e2d2_0", { source: ".button-group__wrapper[data-v-de67e2d2] {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n}\n.button-group__wrapper .ant-btn[data-v-de67e2d2] {\n margin-left: 8px;\n}\n.button-group__wrapper .ant-btn[data-v-de67e2d2]:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\composite-components\\button-group\\src\\index.vue","index.vue"],"names":[],"mappings":"AAkCA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;ACjCA;ADkCA;EACA,gBAAA;AChCA;ADiCA;EACA,cAAA;AC/BA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"button-group__wrapper\">\r\n <ele-button \r\n v-for=\"(item, idx) in dataSource\" \r\n :type=\"item.type\"\r\n :icon=\"item.icon\"\r\n :mode=\"item.mode\"\r\n :data-source=\"item.optionList\"\r\n :event-name=\"item.eventName\"\r\n :record=\"item\"\r\n v-on=\"$listeners\"\r\n :key=\"idx\">\r\n {{ item.label }}\r\n </ele-button>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport EleButton from '../../../button/src/index.vue'\r\nexport default {\r\n name: 'ele-button-group',\r\n components: {\r\n EleButton\r\n },\r\n props: {\r\n dataSource: {\r\n type: Array,\r\n default: () => []\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.button-group__wrapper {\r\n display: flex;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n .ant-btn {\r\n margin-left: 8px;\r\n &:first-child {\r\n margin-left: 0;\r\n }\r\n }\r\n}\r\n</style>",".button-group__wrapper {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n}\n.button-group__wrapper .ant-btn {\n margin-left: 8px;\n}\n.button-group__wrapper .ant-btn:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2242
+ inject("data-v-25af6fb8_0", { source: ".button-group__wrapper[data-v-25af6fb8] {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n}\n.button-group__wrapper .ant-btn[data-v-25af6fb8] {\n margin-left: 8px;\n}\n.button-group__wrapper .ant-btn[data-v-25af6fb8]:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/composite-components/button-group/src/index.vue","index.vue"],"names":[],"mappings":"AAkCA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;ACjCA;ADkCA;EACA,gBAAA;AChCA;ADiCA;EACA,cAAA;AC/BA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"button-group__wrapper\">\n <ele-button \n v-for=\"(item, idx) in dataSource\" \n :type=\"item.type\"\n :icon=\"item.icon\"\n :mode=\"item.mode\"\n :data-source=\"item.optionList\"\n :event-name=\"item.eventName\"\n :record=\"item\"\n v-on=\"$listeners\"\n :key=\"idx\">\n {{ item.label }}\n </ele-button>\n </div>\n</template>\n\n<script>\nimport EleButton from '../../../button/src/index.vue'\nexport default {\n name: 'ele-button-group',\n components: {\n EleButton\n },\n props: {\n dataSource: {\n type: Array,\n default: () => []\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.button-group__wrapper {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n .ant-btn {\n margin-left: 8px;\n &:first-child {\n margin-left: 0;\n }\n }\n}\n</style>",".button-group__wrapper {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n}\n.button-group__wrapper .ant-btn {\n margin-left: 8px;\n}\n.button-group__wrapper .ant-btn:first-child {\n margin-left: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2157
2243
 
2158
2244
  };
2159
2245
  /* scoped */
2160
- const __vue_scope_id__$e = "data-v-de67e2d2";
2246
+ const __vue_scope_id__$i = "data-v-25af6fb8";
2161
2247
  /* module identifier */
2162
- const __vue_module_identifier__$e = undefined;
2248
+ const __vue_module_identifier__$i = undefined;
2163
2249
  /* functional template */
2164
- const __vue_is_functional_template__$e = false;
2250
+ const __vue_is_functional_template__$i = false;
2165
2251
  /* style inject SSR */
2166
2252
 
2167
2253
  /* style inject shadow dom */
2168
2254
 
2169
2255
 
2170
2256
 
2171
- const __vue_component__$e = /*#__PURE__*/normalizeComponent(
2172
- { render: __vue_render__$e, staticRenderFns: __vue_staticRenderFns__$e },
2173
- __vue_inject_styles__$e,
2174
- __vue_script__$e,
2175
- __vue_scope_id__$e,
2176
- __vue_is_functional_template__$e,
2177
- __vue_module_identifier__$e,
2257
+ const __vue_component__$i = /*#__PURE__*/normalizeComponent(
2258
+ { render: __vue_render__$i, staticRenderFns: __vue_staticRenderFns__$i },
2259
+ __vue_inject_styles__$i,
2260
+ __vue_script__$i,
2261
+ __vue_scope_id__$i,
2262
+ __vue_is_functional_template__$i,
2263
+ __vue_module_identifier__$i,
2178
2264
  false,
2179
2265
  createInjector,
2180
2266
  undefined,
@@ -2182,13 +2268,13 @@ __vue_render__$e._withStripped = true;
2182
2268
  );
2183
2269
 
2184
2270
  //
2185
- var script$d = {
2271
+ var script$h = {
2186
2272
  name: 'ele-tree-table-model',
2187
2273
  components: {
2188
- EleTree: __vue_component__$h,
2189
- EleTable: __vue_component__$i,
2190
- EleSearchArea: __vue_component__$f,
2191
- EleButtonGroup: __vue_component__$e
2274
+ EleTree: __vue_component__$l,
2275
+ EleTable: __vue_component__$m,
2276
+ EleSearchArea: __vue_component__$j,
2277
+ EleButtonGroup: __vue_component__$i
2192
2278
  },
2193
2279
  props: {
2194
2280
  treeMeta: {
@@ -2467,10 +2553,10 @@ var script$d = {
2467
2553
  };
2468
2554
 
2469
2555
  /* script */
2470
- const __vue_script__$d = script$d;
2556
+ const __vue_script__$h = script$h;
2471
2557
 
2472
2558
  /* template */
2473
- var __vue_render__$d = function () {
2559
+ var __vue_render__$h = function () {
2474
2560
  var _vm = this;
2475
2561
  var _h = _vm.$createElement;
2476
2562
  var _c = _vm._self._c || _h;
@@ -2550,34 +2636,34 @@ var __vue_render__$d = function () {
2550
2636
  ]),
2551
2637
  ])
2552
2638
  };
2553
- var __vue_staticRenderFns__$d = [];
2554
- __vue_render__$d._withStripped = true;
2639
+ var __vue_staticRenderFns__$h = [];
2640
+ __vue_render__$h._withStripped = true;
2555
2641
 
2556
2642
  /* style */
2557
- const __vue_inject_styles__$d = function (inject) {
2643
+ const __vue_inject_styles__$h = function (inject) {
2558
2644
  if (!inject) return
2559
- inject("data-v-fe2ee33e_0", { source: ".ele.model__tree-table[data-v-fe2ee33e] {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.ele.model__tree-table .model__tree-table--container .model__tree--wrapper[data-v-fe2ee33e] {\n width: 240px;\n background: #fff;\n flex-shrink: 0;\n padding: 16px;\n box-sizing: border-box;\n margin-right: 16px;\n overflow-y: auto;\n}\n.ele.model__tree-table .model__table--container[data-v-fe2ee33e] {\n width: 100%;\n min-width: 0;\n background: #fff;\n}\n.ele.model__tree-table .model__table--container .model__table--wrapper[data-v-fe2ee33e] {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\tree-table-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAgSA;EACA,uBAAA;EACA,aAAA;EACA,mBAAA;EACA,WAAA;AC/RA;ADiSA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,aAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;AC/RA;ADkSA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;AChSA;ADiSA;EACA,gBAAA;AC/RA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <section class=\"ele model__tree-table\">\r\n <section class=\"model__tree-table--container\" v-if=\"showTree\">\r\n <div class=\"model__tree--title\"></div>\r\n <section :ref=\"modelTreeWrapper\" class=\"model__tree--wrapper\">\r\n <ele-tree \r\n :tree-data=\"treeData\"\r\n :defaultExpandedKeys=\"defaultExpandedKeys\"\r\n :defaultSelectedKeys=\"defaultSelectedKeys\"\r\n @select=\"selectTreeNode\"\r\n :replace-fields=\"treeMeta.replaceFields || replaceFields\">\r\n </ele-tree>\r\n </section>\r\n </section>\r\n <section class=\"model__table--container\">\r\n <div class=\"model__table--title\"></div>\r\n <section :ref=\"modelTableWrapper\" class=\"model__table--wrapper\">\r\n <ele-search-area :ref=\"searchArea\" @search=\"onSearch\" :data-source=\"searchMeta.elements\"></ele-search-area>\r\n <ele-button-group v-on=\"$listeners\" :ref=\"buttonGroup\" @click=\"handleClickButtonGroup\" style=\"margin-top: 16px\" :data-source=\"getButtonGroupElements\"></ele-button-group>\r\n <ele-table\r\n v-on=\"$listeners\"\r\n :loading=\"loading\" \r\n :columns=\"columns\"\r\n :total=\"total\"\r\n :actions=\"actions\"\r\n :pageSize=\"pageSize\"\r\n :pageSizeOptions=\"pageSizeOptions\"\r\n :data-source=\"tableData\"\r\n @change-page=\"onChangePage\" \r\n style=\"margin-top: 8px;\"\r\n ></ele-table>\r\n </section>\r\n </section>\r\n </section>\r\n</template>\r\n\r\n<script>\r\nimport EleTree from '../../tree/src/index.vue'\r\nimport EleTable from '../../table/src/index.vue'\r\nimport EleSearchArea from '../../composite-components/search-area/src/index.vue'\r\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\r\nimport { type, net } from '@idooel/shared'\r\nimport { v4 as uuidv4 } from 'uuid'\r\nexport default {\r\n name: 'ele-tree-table-model',\r\n components: {\r\n EleTree,\r\n EleTable,\r\n EleSearchArea,\r\n EleButtonGroup\r\n },\r\n props: {\r\n treeMeta: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n searchMeta: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n buttonGroupMeta: {\r\n typeof: Object,\r\n default: () => ({})\r\n },\r\n tableMeta: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n provide () {\r\n return {\r\n requestTreeData: this.requestTreeData,\r\n requestTableData: this.requestTableData\r\n }\r\n },\r\n data () {\r\n return {\r\n treeData: [],\r\n tableData: [],\r\n defaultExpandedKeys: [],\r\n defaultSelectedKeys: [],\r\n replaceFields: {\r\n title: 'title',\r\n children: 'children',\r\n key: 'id'\r\n },\r\n loading: false,\r\n total: 0,\r\n tableQuerys: {},\r\n resizeObserverModelTableWrapper: null,\r\n modelTableWrapperHeight: 0,\r\n currentTreeNodeData: {}\r\n }\r\n },\r\n computed: {\r\n showTree () {\r\n return !!Object.keys(this.treeMeta).length\r\n },\r\n buttonGroup () {\r\n return uuidv4()\r\n },\r\n searchArea () {\r\n return uuidv4()\r\n },\r\n modelTreeWrapper () {\r\n return uuidv4()\r\n },\r\n modelTableWrapper () {\r\n return uuidv4()\r\n },\r\n actions () {\r\n const { operations } = this.tableMeta\r\n return operations.elements\r\n },\r\n pageSize () {\r\n const { page = {} } = this.tableMeta\r\n return page.pageSize || 10\r\n },\r\n pageSizeOptions () {\r\n const { page = {} } = this.tableMeta\r\n return page.pageSizeOptions || ['10', '20', '30', '40']\r\n },\r\n columns () {\r\n const { columns, operations } = this.tableMeta\r\n if (type.get(columns) === 'array') {\r\n const columnsOptions = columns.map(item => {\r\n if (item.render) {\r\n return {\r\n title: item.title,\r\n dataIndex: item.dataIndex,\r\n width: item.width,\r\n align: item.align,\r\n fixed: item.fixed,\r\n customRender: (text, record, index) => {\r\n const { $createElement } = this\r\n return item.render.call(this, { h: $createElement, ctx: this }, typeof text == 'string' ? text : text[item.dataIndex], record, index)\r\n }\r\n }\r\n }\r\n return {\r\n title: item.title,\r\n dataIndex: item.dataIndex,\r\n width: item.width,\r\n align: item.align,\r\n fixed: item.fixed\r\n }\r\n })\r\n if (operations) {\r\n return [\r\n ...columnsOptions,\r\n {\r\n title: '操作',\r\n width: operations.width,\r\n key: 'action',\r\n fixed: 'right',\r\n scopedSlots: { customRender: 'action' }\r\n }\r\n ]\r\n }\r\n return columnsOptions\r\n } else {\r\n console.error('Error: columns is invalid, please check it')\r\n return []\r\n }\r\n },\r\n getButtonGroupElements () {\r\n const { elements } = this.buttonGroupMeta\r\n if (type.get(elements) === 'function') {\r\n return elements.call(this)\r\n } else if (type.get(elements) === 'array') {\r\n return elements\r\n } else {\r\n return []\r\n }\r\n }\r\n },\r\n async created () {\r\n if (this.showTree) {\r\n this.treeData = await this.requestTreeData()\r\n const [defaultTreeNode = {}] = this.treeData\r\n this.defaultExpandedKeys = [defaultTreeNode[this.replaceFields.key]]\r\n this.defaultSelectedKeys = [defaultTreeNode[this.replaceFields.key]]\r\n this.currentTreeNodeData = defaultTreeNode\r\n }\r\n const { fieldMap } = this.tableMeta\r\n this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, this.currentTreeNodeData))\r\n },\r\n methods: {\r\n handleClickButtonGroup (props) {\r\n const { eventName } = props\r\n this.$emit(eventName, { currentTreeNode: this.currentTreeNodeData })\r\n },\r\n watchViewPort () {\r\n const modelTableWrapper = this.$refs[this.modelTableWrapper]\r\n console.log(modelTableWrapper.getBoundingClientRect())\r\n const { top } = modelTableWrapper.getBoundingClientRect()\r\n this.$refs[this.modelTreeWrapper].style.height = `calc(100vh - ${top}px)`\r\n },\r\n async onSearch (props) {\r\n this.tableQuerys = Object.assign(this.tableQuerys, props)\r\n this.tableData = await this.requestTableData()\r\n },\r\n execTableFieldMap (fieldMap = {}, props) {\r\n let ret = {}\r\n const keys = Object.keys(fieldMap)\r\n keys.forEach(key => {\r\n const field = fieldMap[key]\r\n ret[field] = props[key]\r\n })\r\n return ret\r\n },\r\n async selectTreeNode (selectedKeys, e) {\r\n const { fieldMap } = this.tableMeta\r\n this.currentTreeNodeData = e.node.$vnode.data.props.dataRef\r\n const execFieldMapRet = this.execTableFieldMap(fieldMap, e.node.$vnode.data.props.dataRef)\r\n this.tableData = await this.requestTableData(execFieldMapRet)\r\n },\r\n async requestTreeData () {\r\n const { url, requestType } = this.treeMeta\r\n const ret = await net.get(\r\n url\r\n ).then(resp => {\r\n const { data } = resp || {}\r\n return data\r\n })\r\n return ret\r\n },\r\n async onChangePage (page, pageSize) {\r\n this.tableData = await this.requestTableData({ currentPage: page, pageSize })\r\n },\r\n async requestTableData (props = {}) {\r\n const { url, requestType, page = {} } = this.tableMeta\r\n const { pageSize = 10 } = page\r\n this.tableQuerys = Object.assign(this.tableQuerys, { currentPage: 1, pageSize }, props)\r\n const ret = await net.get(\r\n url,\r\n this.tableQuerys\r\n ).then(resp => {\r\n const { data = [], count } = resp || {}\r\n this.total = count\r\n return data.map(item => {\r\n return {\r\n key: uuidv4(),\r\n ...item\r\n }\r\n })\r\n })\r\n return ret\r\n },\r\n refreshTreeStatus (props = {}) {},\r\n refreshTableStatus (props = {}) {},\r\n getModelTableWrapperHeight () {},\r\n setModelTreeWrapperHeight (height) {\r\n this.$refs[this.modelTreeWrapper].style.height = height\r\n },\r\n setModelTableWrapperHeight () {\r\n const { top } = this.$refs[this.modelTableWrapper].getBoundingClientRect()\r\n const height = `calc(100vh - ${top}px)`\r\n this.$refs[this.modelTableWrapper].style.height = height\r\n this.setModelTreeWrapperHeight(height)\r\n },\r\n getSearchAreaHeight () {\r\n return this.$refs[this.searchArea].$el.clientHeight\r\n },\r\n getButtonGroupHeight () {\r\n return this.$refs[this.buttonGroup].$el.clientHeight\r\n }\r\n },\r\n mounted () {\r\n //TODO\r\n // this.setModelTableWrapperHeight()\r\n // this.resizeObserverModelTableWrapper = new ResizeObserver(entries => {\r\n // for (let entry of entries) {\r\n // this.modelTableWrapperHeight = entry.contentRect.height\r\n // console.log('this.modelTableWrapperHeight:', this.modelTableWrapperHeight)\r\n // console.log('getSearchAreaHeight', this.getSearchAreaHeight())\r\n // console.log('getButtonGroupHeight', this.getButtonGroupHeight())\r\n // const tableHeight = this.modelTableWrapperHeight - this.getSearchAreaHeight() - this.getButtonGroupHeight()\r\n // console.log('tableHeight', tableHeight)\r\n // }\r\n // })\r\n // this.resizeObserverModelTableWrapper.observe(this.$refs[this.modelTableWrapper])\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ele {\r\n &.model__tree-table {\r\n background: transparent; \r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n .model__tree-table--container {\r\n .model__tree--wrapper {\r\n width: 240px;\r\n background: #fff;\r\n flex-shrink: 0;\r\n padding: 16px;\r\n box-sizing: border-box;\r\n margin-right: 16px;\r\n overflow-y: auto;\r\n }\r\n }\r\n .model__table--container {\r\n width: 100%;\r\n min-width: 0;\r\n background: #fff;\r\n .model__table--wrapper {\r\n background: #fff;\r\n }\r\n }\r\n }\r\n}\r\n</style>",".ele.model__tree-table {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.ele.model__tree-table .model__tree-table--container .model__tree--wrapper {\n width: 240px;\n background: #fff;\n flex-shrink: 0;\n padding: 16px;\n box-sizing: border-box;\n margin-right: 16px;\n overflow-y: auto;\n}\n.ele.model__tree-table .model__table--container {\n width: 100%;\n min-width: 0;\n background: #fff;\n}\n.ele.model__tree-table .model__table--container .model__table--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2645
+ inject("data-v-3541b780_0", { source: ".ele.model__tree-table[data-v-3541b780] {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.ele.model__tree-table .model__tree-table--container .model__tree--wrapper[data-v-3541b780] {\n width: 240px;\n background: #fff;\n flex-shrink: 0;\n padding: 16px;\n box-sizing: border-box;\n margin-right: 16px;\n overflow-y: auto;\n}\n.ele.model__tree-table .model__table--container[data-v-3541b780] {\n width: 100%;\n min-width: 0;\n background: #fff;\n}\n.ele.model__tree-table .model__table--container .model__table--wrapper[data-v-3541b780] {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/tree-table-model/src/index.vue","index.vue"],"names":[],"mappings":"AAgSA;EACA,uBAAA;EACA,aAAA;EACA,mBAAA;EACA,WAAA;AC/RA;ADiSA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,aAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;AC/RA;ADkSA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;AChSA;ADiSA;EACA,gBAAA;AC/RA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <section class=\"ele model__tree-table\">\n <section class=\"model__tree-table--container\" v-if=\"showTree\">\n <div class=\"model__tree--title\"></div>\n <section :ref=\"modelTreeWrapper\" class=\"model__tree--wrapper\">\n <ele-tree \n :tree-data=\"treeData\"\n :defaultExpandedKeys=\"defaultExpandedKeys\"\n :defaultSelectedKeys=\"defaultSelectedKeys\"\n @select=\"selectTreeNode\"\n :replace-fields=\"treeMeta.replaceFields || replaceFields\">\n </ele-tree>\n </section>\n </section>\n <section class=\"model__table--container\">\n <div class=\"model__table--title\"></div>\n <section :ref=\"modelTableWrapper\" class=\"model__table--wrapper\">\n <ele-search-area :ref=\"searchArea\" @search=\"onSearch\" :data-source=\"searchMeta.elements\"></ele-search-area>\n <ele-button-group v-on=\"$listeners\" :ref=\"buttonGroup\" @click=\"handleClickButtonGroup\" style=\"margin-top: 16px\" :data-source=\"getButtonGroupElements\"></ele-button-group>\n <ele-table\n v-on=\"$listeners\"\n :loading=\"loading\" \n :columns=\"columns\"\n :total=\"total\"\n :actions=\"actions\"\n :pageSize=\"pageSize\"\n :pageSizeOptions=\"pageSizeOptions\"\n :data-source=\"tableData\"\n @change-page=\"onChangePage\" \n style=\"margin-top: 8px;\"\n ></ele-table>\n </section>\n </section>\n </section>\n</template>\n\n<script>\nimport EleTree from '../../tree/src/index.vue'\nimport EleTable from '../../table/src/index.vue'\nimport EleSearchArea from '../../composite-components/search-area/src/index.vue'\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\nimport { type, net } from '@idooel/shared'\nimport { v4 as uuidv4 } from 'uuid'\nexport default {\n name: 'ele-tree-table-model',\n components: {\n EleTree,\n EleTable,\n EleSearchArea,\n EleButtonGroup\n },\n props: {\n treeMeta: {\n type: Object,\n default: () => ({})\n },\n searchMeta: {\n type: Object,\n default: () => ({})\n },\n buttonGroupMeta: {\n typeof: Object,\n default: () => ({})\n },\n tableMeta: {\n type: Object,\n default: () => ({})\n }\n },\n provide () {\n return {\n requestTreeData: this.requestTreeData,\n requestTableData: this.requestTableData\n }\n },\n data () {\n return {\n treeData: [],\n tableData: [],\n defaultExpandedKeys: [],\n defaultSelectedKeys: [],\n replaceFields: {\n title: 'title',\n children: 'children',\n key: 'id'\n },\n loading: false,\n total: 0,\n tableQuerys: {},\n resizeObserverModelTableWrapper: null,\n modelTableWrapperHeight: 0,\n currentTreeNodeData: {}\n }\n },\n computed: {\n showTree () {\n return !!Object.keys(this.treeMeta).length\n },\n buttonGroup () {\n return uuidv4()\n },\n searchArea () {\n return uuidv4()\n },\n modelTreeWrapper () {\n return uuidv4()\n },\n modelTableWrapper () {\n return uuidv4()\n },\n actions () {\n const { operations } = this.tableMeta\n return operations.elements\n },\n pageSize () {\n const { page = {} } = this.tableMeta\n return page.pageSize || 10\n },\n pageSizeOptions () {\n const { page = {} } = this.tableMeta\n return page.pageSizeOptions || ['10', '20', '30', '40']\n },\n columns () {\n const { columns, operations } = this.tableMeta\n if (type.get(columns) === 'array') {\n const columnsOptions = columns.map(item => {\n if (item.render) {\n return {\n title: item.title,\n dataIndex: item.dataIndex,\n width: item.width,\n align: item.align,\n fixed: item.fixed,\n customRender: (text, record, index) => {\n const { $createElement } = this\n return item.render.call(this, { h: $createElement, ctx: this }, typeof text == 'string' ? text : text[item.dataIndex], record, index)\n }\n }\n }\n return {\n title: item.title,\n dataIndex: item.dataIndex,\n width: item.width,\n align: item.align,\n fixed: item.fixed\n }\n })\n if (operations) {\n return [\n ...columnsOptions,\n {\n title: '操作',\n width: operations.width,\n key: 'action',\n fixed: 'right',\n scopedSlots: { customRender: 'action' }\n }\n ]\n }\n return columnsOptions\n } else {\n console.error('Error: columns is invalid, please check it')\n return []\n }\n },\n getButtonGroupElements () {\n const { elements } = this.buttonGroupMeta\n if (type.get(elements) === 'function') {\n return elements.call(this)\n } else if (type.get(elements) === 'array') {\n return elements\n } else {\n return []\n }\n }\n },\n async created () {\n if (this.showTree) {\n this.treeData = await this.requestTreeData()\n const [defaultTreeNode = {}] = this.treeData\n this.defaultExpandedKeys = [defaultTreeNode[this.replaceFields.key]]\n this.defaultSelectedKeys = [defaultTreeNode[this.replaceFields.key]]\n this.currentTreeNodeData = defaultTreeNode\n }\n const { fieldMap } = this.tableMeta\n this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, this.currentTreeNodeData))\n },\n methods: {\n handleClickButtonGroup (props) {\n const { eventName } = props\n this.$emit(eventName, { currentTreeNode: this.currentTreeNodeData })\n },\n watchViewPort () {\n const modelTableWrapper = this.$refs[this.modelTableWrapper]\n console.log(modelTableWrapper.getBoundingClientRect())\n const { top } = modelTableWrapper.getBoundingClientRect()\n this.$refs[this.modelTreeWrapper].style.height = `calc(100vh - ${top}px)`\n },\n async onSearch (props) {\n this.tableQuerys = Object.assign(this.tableQuerys, props)\n this.tableData = await this.requestTableData()\n },\n execTableFieldMap (fieldMap = {}, props) {\n let ret = {}\n const keys = Object.keys(fieldMap)\n keys.forEach(key => {\n const field = fieldMap[key]\n ret[field] = props[key]\n })\n return ret\n },\n async selectTreeNode (selectedKeys, e) {\n const { fieldMap } = this.tableMeta\n this.currentTreeNodeData = e.node.$vnode.data.props.dataRef\n const execFieldMapRet = this.execTableFieldMap(fieldMap, e.node.$vnode.data.props.dataRef)\n this.tableData = await this.requestTableData(execFieldMapRet)\n },\n async requestTreeData () {\n const { url, requestType } = this.treeMeta\n const ret = await net.get(\n url\n ).then(resp => {\n const { data } = resp || {}\n return data\n })\n return ret\n },\n async onChangePage (page, pageSize) {\n this.tableData = await this.requestTableData({ currentPage: page, pageSize })\n },\n async requestTableData (props = {}) {\n const { url, requestType, page = {} } = this.tableMeta\n const { pageSize = 10 } = page\n this.tableQuerys = Object.assign(this.tableQuerys, { currentPage: 1, pageSize }, props)\n const ret = await net.get(\n url,\n this.tableQuerys\n ).then(resp => {\n const { data = [], count } = resp || {}\n this.total = count\n return data.map(item => {\n return {\n key: uuidv4(),\n ...item\n }\n })\n })\n return ret\n },\n refreshTreeStatus (props = {}) {},\n refreshTableStatus (props = {}) {},\n getModelTableWrapperHeight () {},\n setModelTreeWrapperHeight (height) {\n this.$refs[this.modelTreeWrapper].style.height = height\n },\n setModelTableWrapperHeight () {\n const { top } = this.$refs[this.modelTableWrapper].getBoundingClientRect()\n const height = `calc(100vh - ${top}px)`\n this.$refs[this.modelTableWrapper].style.height = height\n this.setModelTreeWrapperHeight(height)\n },\n getSearchAreaHeight () {\n return this.$refs[this.searchArea].$el.clientHeight\n },\n getButtonGroupHeight () {\n return this.$refs[this.buttonGroup].$el.clientHeight\n }\n },\n mounted () {\n //TODO\n // this.setModelTableWrapperHeight()\n // this.resizeObserverModelTableWrapper = new ResizeObserver(entries => {\n // for (let entry of entries) {\n // this.modelTableWrapperHeight = entry.contentRect.height\n // console.log('this.modelTableWrapperHeight:', this.modelTableWrapperHeight)\n // console.log('getSearchAreaHeight', this.getSearchAreaHeight())\n // console.log('getButtonGroupHeight', this.getButtonGroupHeight())\n // const tableHeight = this.modelTableWrapperHeight - this.getSearchAreaHeight() - this.getButtonGroupHeight()\n // console.log('tableHeight', tableHeight)\n // }\n // })\n // this.resizeObserverModelTableWrapper.observe(this.$refs[this.modelTableWrapper])\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele {\n &.model__tree-table {\n background: transparent; \n display: flex;\n flex-direction: row;\n width: 100%;\n .model__tree-table--container {\n .model__tree--wrapper {\n width: 240px;\n background: #fff;\n flex-shrink: 0;\n padding: 16px;\n box-sizing: border-box;\n margin-right: 16px;\n overflow-y: auto;\n }\n }\n .model__table--container {\n width: 100%;\n min-width: 0;\n background: #fff;\n .model__table--wrapper {\n background: #fff;\n }\n }\n }\n}\n</style>",".ele.model__tree-table {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.ele.model__tree-table .model__tree-table--container .model__tree--wrapper {\n width: 240px;\n background: #fff;\n flex-shrink: 0;\n padding: 16px;\n box-sizing: border-box;\n margin-right: 16px;\n overflow-y: auto;\n}\n.ele.model__tree-table .model__table--container {\n width: 100%;\n min-width: 0;\n background: #fff;\n}\n.ele.model__tree-table .model__table--container .model__table--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2560
2646
 
2561
2647
  };
2562
2648
  /* scoped */
2563
- const __vue_scope_id__$d = "data-v-fe2ee33e";
2649
+ const __vue_scope_id__$h = "data-v-3541b780";
2564
2650
  /* module identifier */
2565
- const __vue_module_identifier__$d = undefined;
2651
+ const __vue_module_identifier__$h = undefined;
2566
2652
  /* functional template */
2567
- const __vue_is_functional_template__$d = false;
2653
+ const __vue_is_functional_template__$h = false;
2568
2654
  /* style inject SSR */
2569
2655
 
2570
2656
  /* style inject shadow dom */
2571
2657
 
2572
2658
 
2573
2659
 
2574
- const __vue_component__$d = /*#__PURE__*/normalizeComponent(
2575
- { render: __vue_render__$d, staticRenderFns: __vue_staticRenderFns__$d },
2576
- __vue_inject_styles__$d,
2577
- __vue_script__$d,
2578
- __vue_scope_id__$d,
2579
- __vue_is_functional_template__$d,
2580
- __vue_module_identifier__$d,
2660
+ const __vue_component__$h = /*#__PURE__*/normalizeComponent(
2661
+ { render: __vue_render__$h, staticRenderFns: __vue_staticRenderFns__$h },
2662
+ __vue_inject_styles__$h,
2663
+ __vue_script__$h,
2664
+ __vue_scope_id__$h,
2665
+ __vue_is_functional_template__$h,
2666
+ __vue_module_identifier__$h,
2581
2667
  false,
2582
2668
  createInjector,
2583
2669
  undefined,
@@ -2585,113 +2671,6 @@ __vue_render__$d._withStripped = true;
2585
2671
  );
2586
2672
 
2587
2673
  //
2588
- var script$c = {
2589
- name: 'ele-tpl',
2590
- props: {
2591
- modelName: {
2592
- type: String
2593
- }
2594
- },
2595
- components: {
2596
- [__vue_component__$d.name]: __vue_component__$d
2597
- },
2598
- computed: {
2599
- modelNameValidator() {
2600
- const target = models.find(model => model.name === this.modelName);
2601
- return {
2602
- existed: !!target,
2603
- message: !!target ? '' : `Model <span style="color:red;">${this.modelName}</span> not found`
2604
- };
2605
- },
2606
- genModelRef() {
2607
- return v4();
2608
- }
2609
- },
2610
- methods: {
2611
- getModel() {
2612
- return this.$refs[this.genModelRef];
2613
- }
2614
- }
2615
- };
2616
-
2617
- /* script */
2618
- const __vue_script__$c = script$c;
2619
-
2620
- /* template */
2621
- var __vue_render__$c = function () {
2622
- var _vm = this;
2623
- var _h = _vm.$createElement;
2624
- var _c = _vm._self._c || _h;
2625
- return _vm.modelNameValidator.existed
2626
- ? _c(
2627
- _vm.modelName,
2628
- _vm._g(
2629
- _vm._b(
2630
- {
2631
- ref: _vm.genModelRef,
2632
- tag: "component",
2633
- scopedSlots: _vm._u(
2634
- [
2635
- _vm._l(_vm.$scopedSlots, function (idx, name) {
2636
- return {
2637
- key: name,
2638
- fn: function (data) {
2639
- return [_vm._t(name, null, null, data)]
2640
- },
2641
- }
2642
- }),
2643
- ],
2644
- null,
2645
- true
2646
- ),
2647
- },
2648
- "component",
2649
- _vm.$attrs,
2650
- false
2651
- ),
2652
- _vm.$listeners
2653
- )
2654
- )
2655
- : _c("div", {
2656
- domProps: { innerHTML: _vm._s(_vm.modelNameValidator.message) },
2657
- })
2658
- };
2659
- var __vue_staticRenderFns__$c = [];
2660
- __vue_render__$c._withStripped = true;
2661
-
2662
- /* style */
2663
- const __vue_inject_styles__$c = function (inject) {
2664
- if (!inject) return
2665
- inject("data-v-7b13873a_0", { source: ".has-error .ele-upload__wrapper .file-uploads label {\n border-color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--text .ele-upload__message {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n color: #FFA39E;\n}\n:root {\n --idooel-primary-color: #1890FF;\n --idoole-black-02: rgba(0, 0, 0, 0.04);\n --idoole-black-06: rgba(0, 0, 0, 0.44);\n --idoole-black-07: rgba(0, 0, 0, 0.64);\n --idoole-black-008: rgba(0, 0, 0, 0.88);\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n --idooel-form-title-border-color: rgba(0, 0, 0, 0.16);\n --idooel-form-upload-bg-color: rgba(0, 0, 0, 0.02);\n --idooel-form-upload-border-hover-color: #40A9FF;\n --idooel-form-border-radius: 2px;\n --idooel-form-border-err-color: #F5222D;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":"AAAA;EACE,qBAAqB;AACvB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AAEA;EACE,+BAA+B;EAC/B,sCAAsC;EACtC,sCAAsC;EACtC,sCAAsC;EACtC,uCAAuC;EACvC,wBAAwB;EACxB,8BAA8B;EAC9B,+BAA+B;EAC/B,qCAAqC;EACrC,qDAAqD;EACrD,kDAAkD;EAClD,gDAAgD;EAChD,gCAAgC;EAChC,uCAAuC;AACzC;;AAEA,oCAAoC","file":"index.vue","sourcesContent":[".has-error .ele-upload__wrapper .file-uploads label {\n border-color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--text .ele-upload__message {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .file-uploads .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n color: #FFA39E;\n}\n\n:root {\n --idooel-primary-color: #1890FF;\n --idoole-black-02: rgba(0, 0, 0, 0.04);\n --idoole-black-06: rgba(0, 0, 0, 0.44);\n --idoole-black-07: rgba(0, 0, 0, 0.64);\n --idoole-black-008: rgba(0, 0, 0, 0.88);\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n --idooel-form-title-border-color: rgba(0, 0, 0, 0.16);\n --idooel-form-upload-bg-color: rgba(0, 0, 0, 0.02);\n --idooel-form-upload-border-hover-color: #40A9FF;\n --idooel-form-border-radius: 2px;\n --idooel-form-border-err-color: #F5222D;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
2666
-
2667
- };
2668
- /* scoped */
2669
- const __vue_scope_id__$c = undefined;
2670
- /* module identifier */
2671
- const __vue_module_identifier__$c = undefined;
2672
- /* functional template */
2673
- const __vue_is_functional_template__$c = false;
2674
- /* style inject SSR */
2675
-
2676
- /* style inject shadow dom */
2677
-
2678
-
2679
-
2680
- const __vue_component__$c = /*#__PURE__*/normalizeComponent(
2681
- { render: __vue_render__$c, staticRenderFns: __vue_staticRenderFns__$c },
2682
- __vue_inject_styles__$c,
2683
- __vue_script__$c,
2684
- __vue_scope_id__$c,
2685
- __vue_is_functional_template__$c,
2686
- __vue_module_identifier__$c,
2687
- false,
2688
- createInjector,
2689
- undefined,
2690
- undefined
2691
- );
2692
-
2693
- __vue_component__$c.install = Vue => Vue.component(__vue_component__$c.name, __vue_component__$c);
2694
-
2695
2674
  //
2696
2675
  //
2697
2676
  //
@@ -2704,8 +2683,12 @@ __vue_component__$c.install = Vue => Vue.component(__vue_component__$c.name, __v
2704
2683
  //
2705
2684
  //
2706
2685
 
2707
- var script$b = {
2686
+ var script$g = {
2708
2687
  name: 'ele-textarea',
2688
+ model: {
2689
+ prop: 'value',
2690
+ event: 'change'
2691
+ },
2709
2692
  props: {
2710
2693
  maxLength: {
2711
2694
  type: Number
@@ -2726,28 +2709,33 @@ var script$b = {
2726
2709
  },
2727
2710
  value: {
2728
2711
  type: String
2712
+ },
2713
+ disabled: {
2714
+ type: Boolean,
2715
+ default: false
2729
2716
  }
2730
2717
  },
2731
2718
  methods: {
2732
2719
  onChange(e) {
2733
2720
  const value = e.target.value;
2734
- this.$emit('on-change', value);
2721
+ this.$emit('change', value);
2735
2722
  this.$emit('input', value);
2736
2723
  }
2737
2724
  }
2738
2725
  };
2739
2726
 
2740
2727
  /* script */
2741
- const __vue_script__$b = script$b;
2728
+ const __vue_script__$g = script$g;
2742
2729
 
2743
2730
  /* template */
2744
- var __vue_render__$b = function () {
2731
+ var __vue_render__$g = function () {
2745
2732
  var _vm = this;
2746
2733
  var _h = _vm.$createElement;
2747
2734
  var _c = _vm._self._c || _h;
2748
2735
  return _c("a-textarea", {
2749
2736
  attrs: {
2750
2737
  value: _vm.value,
2738
+ disabled: _vm.disabled,
2751
2739
  "auto-size": _vm.autosize,
2752
2740
  "max-length": _vm.maxLength,
2753
2741
  placeholder: _vm.placeholder,
@@ -2756,34 +2744,34 @@ var __vue_render__$b = function () {
2756
2744
  on: { change: _vm.onChange },
2757
2745
  })
2758
2746
  };
2759
- var __vue_staticRenderFns__$b = [];
2760
- __vue_render__$b._withStripped = true;
2747
+ var __vue_staticRenderFns__$g = [];
2748
+ __vue_render__$g._withStripped = true;
2761
2749
 
2762
2750
  /* style */
2763
- const __vue_inject_styles__$b = function (inject) {
2751
+ const __vue_inject_styles__$g = function (inject) {
2764
2752
  if (!inject) return
2765
- inject("data-v-256502c2_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
2753
+ inject("data-v-27d78bca_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
2766
2754
 
2767
2755
  };
2768
2756
  /* scoped */
2769
- const __vue_scope_id__$b = "data-v-256502c2";
2757
+ const __vue_scope_id__$g = "data-v-27d78bca";
2770
2758
  /* module identifier */
2771
- const __vue_module_identifier__$b = undefined;
2759
+ const __vue_module_identifier__$g = undefined;
2772
2760
  /* functional template */
2773
- const __vue_is_functional_template__$b = false;
2761
+ const __vue_is_functional_template__$g = false;
2774
2762
  /* style inject SSR */
2775
2763
 
2776
2764
  /* style inject shadow dom */
2777
2765
 
2778
2766
 
2779
2767
 
2780
- const __vue_component__$b = /*#__PURE__*/normalizeComponent(
2781
- { render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
2782
- __vue_inject_styles__$b,
2783
- __vue_script__$b,
2784
- __vue_scope_id__$b,
2785
- __vue_is_functional_template__$b,
2786
- __vue_module_identifier__$b,
2768
+ const __vue_component__$g = /*#__PURE__*/normalizeComponent(
2769
+ { render: __vue_render__$g, staticRenderFns: __vue_staticRenderFns__$g },
2770
+ __vue_inject_styles__$g,
2771
+ __vue_script__$g,
2772
+ __vue_scope_id__$g,
2773
+ __vue_is_functional_template__$g,
2774
+ __vue_module_identifier__$g,
2787
2775
  false,
2788
2776
  createInjector,
2789
2777
  undefined,
@@ -2800,7 +2788,7 @@ __vue_render__$b._withStripped = true;
2800
2788
  //
2801
2789
  //
2802
2790
 
2803
- var script$a = {
2791
+ var script$f = {
2804
2792
  name: 'ele-icon',
2805
2793
  props: {
2806
2794
  type: {
@@ -2823,10 +2811,10 @@ var script$a = {
2823
2811
  };
2824
2812
 
2825
2813
  /* script */
2826
- const __vue_script__$a = script$a;
2814
+ const __vue_script__$f = script$f;
2827
2815
 
2828
2816
  /* template */
2829
- var __vue_render__$a = function () {
2817
+ var __vue_render__$f = function () {
2830
2818
  var _vm = this;
2831
2819
  var _h = _vm.$createElement;
2832
2820
  var _c = _vm._self._c || _h;
@@ -2834,17 +2822,17 @@ var __vue_render__$a = function () {
2834
2822
  ? _c("a-icon", { attrs: { type: _vm.type, theme: _vm.theme } })
2835
2823
  : _c("i", { class: ["iconfont", _vm.type] })
2836
2824
  };
2837
- var __vue_staticRenderFns__$a = [];
2838
- __vue_render__$a._withStripped = true;
2825
+ var __vue_staticRenderFns__$f = [];
2826
+ __vue_render__$f._withStripped = true;
2839
2827
 
2840
2828
  /* style */
2841
- const __vue_inject_styles__$a = undefined;
2829
+ const __vue_inject_styles__$f = undefined;
2842
2830
  /* scoped */
2843
- const __vue_scope_id__$a = undefined;
2831
+ const __vue_scope_id__$f = undefined;
2844
2832
  /* module identifier */
2845
- const __vue_module_identifier__$a = undefined;
2833
+ const __vue_module_identifier__$f = undefined;
2846
2834
  /* functional template */
2847
- const __vue_is_functional_template__$a = false;
2835
+ const __vue_is_functional_template__$f = false;
2848
2836
  /* style inject */
2849
2837
 
2850
2838
  /* style inject SSR */
@@ -2853,13 +2841,13 @@ __vue_render__$a._withStripped = true;
2853
2841
 
2854
2842
 
2855
2843
 
2856
- const __vue_component__$a = /*#__PURE__*/normalizeComponent(
2857
- { render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
2858
- __vue_inject_styles__$a,
2859
- __vue_script__$a,
2860
- __vue_scope_id__$a,
2861
- __vue_is_functional_template__$a,
2862
- __vue_module_identifier__$a,
2844
+ const __vue_component__$f = /*#__PURE__*/normalizeComponent(
2845
+ { render: __vue_render__$f, staticRenderFns: __vue_staticRenderFns__$f },
2846
+ __vue_inject_styles__$f,
2847
+ __vue_script__$f,
2848
+ __vue_scope_id__$f,
2849
+ __vue_is_functional_template__$f,
2850
+ __vue_module_identifier__$f,
2863
2851
  false,
2864
2852
  undefined,
2865
2853
  undefined,
@@ -2867,11 +2855,11 @@ __vue_render__$a._withStripped = true;
2867
2855
  );
2868
2856
 
2869
2857
  //
2870
- var script$9 = {
2858
+ var script$e = {
2871
2859
  name: 'ele-upload',
2872
2860
  components: {
2873
2861
  FileUpload,
2874
- EleIcon: __vue_component__$a
2862
+ EleIcon: __vue_component__$f
2875
2863
  },
2876
2864
  model: {
2877
2865
  prop: 'value',
@@ -3101,10 +3089,10 @@ var script$9 = {
3101
3089
  };
3102
3090
 
3103
3091
  /* script */
3104
- const __vue_script__$9 = script$9;
3092
+ const __vue_script__$e = script$e;
3105
3093
 
3106
3094
  /* template */
3107
- var __vue_render__$9 = function () {
3095
+ var __vue_render__$e = function () {
3108
3096
  var _vm = this;
3109
3097
  var _h = _vm.$createElement;
3110
3098
  var _c = _vm._self._c || _h;
@@ -3242,34 +3230,34 @@ var __vue_render__$9 = function () {
3242
3230
  1
3243
3231
  )
3244
3232
  };
3245
- var __vue_staticRenderFns__$9 = [];
3246
- __vue_render__$9._withStripped = true;
3233
+ var __vue_staticRenderFns__$e = [];
3234
+ __vue_render__$e._withStripped = true;
3247
3235
 
3248
3236
  /* style */
3249
- const __vue_inject_styles__$9 = function (inject) {
3237
+ const __vue_inject_styles__$e = function (inject) {
3250
3238
  if (!inject) return
3251
- inject("data-v-29bc9f58_0", { source: "[data-v-29bc9f58] .file-uploads label {\n opacity: 1 !important;\n cursor: pointer;\n border: 1px dashed var(--idooel-form-title-border-color);\n background: var(--idooel-form-upload-bg-color) !important;\n border-radius: var(--idooel-form-border-radius);\n}\n[data-v-29bc9f58] .file-uploads label:hover {\n border-color: var(--idooel-form-upload-border-hover-color);\n}\n.ele-upload__wrapper[data-v-29bc9f58] {\n width: 100%;\n}\n.ele-upload__wrapper .ele-upload__area[data-v-29bc9f58] {\n padding: 16px;\n width: 100%;\n height: 80px;\n display: flex;\n flex-direction: row;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload[data-v-29bc9f58] {\n font-size: 48px;\n color: var(--idooel-primary-color);\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text[data-v-29bc9f58] {\n margin-left: 16px;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__message[data-v-29bc9f58] {\n font-size: 16px;\n color: var(--idoole-black-008);\n text-align: left;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__ext[data-v-29bc9f58] {\n text-align: left;\n font-size: 14px;\n color: var(--idoole-black-06);\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item[data-v-29bc9f58] {\n width: 100%;\n margin-top: 8px;\n padding: 8px 12px;\n border-radius: var(--idooel-form-border-radius);\n background: var(--idooel-form-upload-bg-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name[data-v-29bc9f58] {\n flex: 1;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n margin-left: 8px;\n cursor: pointer;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name .ele-file__inner[data-v-29bc9f58] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete[data-v-29bc9f58] {\n margin-left: 8px;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete .ele-file__delete--icon[data-v-29bc9f58] {\n margin-left: 8px;\n cursor: pointer;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\upload\\src\\index.vue","index.vue"],"names":[],"mappings":"AAqRA;EACA,qBAAA;EACA,eAAA;EACA,wDAAA;EACA,yDAAA;EAIA,+CAAA;ACvRA;ADoRA;EACA,0DAAA;AClRA;ADuRA;EACA,WAAA;ACpRA;ADqRA;EACA,aAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;ACnRA;ADqRA;EACA,eAAA;EACA,kCAAA;ACnRA;ADsRA;EACA,iBAAA;ACpRA;ADqRA;EACA,eAAA;EACA,8BAAA;EACA,gBAAA;ACnRA;ADqRA;EACA,gBAAA;EACA,eAAA;EACA,6BAAA;ACnRA;ADwRA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;EACA,+CAAA;EACA,8CAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;ACtRA;ADwRA;EACA,OAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;EACA,eAAA;ACtRA;ADuRA;EACA,gBAAA;EACA,uBAAA;ACrRA;ADwRA;EACA,gBAAA;ACtRA;ADuRA;EACA,gBAAA;EACA,eAAA;ACrRA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"ele-upload__wrapper\">\r\n <FileUpload\r\n class=\"ele-upload__inner\"\r\n v-show=\"isShowUploadContainer\"\r\n v-model=\"files\"\r\n :ref=\"uploadRef\"\r\n :drop=\"drop\"\r\n :chunk-enabled=\"chunkEnabled\"\r\n :chunk=\"chunkConfig\"\r\n :accept=\"accept\"\r\n :size=\"fileSizeLimit\"\r\n :post-action=\"postAction\"\r\n :multiple=\"multiple\"\r\n :maximum=\"getMaximum\"\r\n @input-file=\"onWatchInputFiles\"\r\n @input=\"onWatchFiles\"\r\n style=\"width: 100%;\">\r\n <section class=\"ele-upload__area\">\r\n <div class=\"ele-upload__area--icon\">\r\n <ele-icon type=\"cloud-upload\"></ele-icon>\r\n </div>\r\n <div class=\"ele-upload__area--text\">\r\n <div class=\"ele-upload__message\">单击或拖动文件到该区域以上传</div>\r\n <div class=\"ele-upload__ext\">文件小于{{ size }}M</div>\r\n </div>\r\n </section>\r\n </FileUpload>\r\n <section class=\"ele-files__wrapper\">\r\n <div class=\"ele-file__item\" v-for=\"(file, idx) in files\" :key=\"idx\">\r\n <div class=\"ele-file__suffix--icon\">\r\n <ele-icon type=\"icon-doc\"></ele-icon>\r\n </div>\r\n <div class=\"ele-file__name\">\r\n <div class=\"ele-file__inner\" @click=\"handleClickDownload(file)\">{{ file.name }}</div>\r\n <div v-if=\"!file.success\" class=\"ele-uplpad__progress\">\r\n <a-progress :strokeWidth=\"2\" :percent=\"Number(file.progress)\" size=\"small\" />\r\n </div>\r\n </div>\r\n <div class=\"ele-file__delete\" v-if=\"file.success || file.error\">\r\n <span class=\"ele-file__size\">{{ (file.size / byteConversion).toFixed(2) }}M</span>\r\n <span class=\"ele-file__delete--icon\" @click=\"handleClickDelete(file)\">\r\n <ele-icon type=\"delete\"></ele-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport FileUpload from 'vue-upload-component'\r\nimport { v4 as uuidv4 } from 'uuid'\r\nimport { route, net } from '@idooel/shared'\r\nimport EleIcon from '../../icon/src/index.vue'\r\nexport default {\r\n name: 'ele-upload',\r\n components: {\r\n FileUpload,\r\n EleIcon\r\n },\r\n model: {\r\n prop: 'value',\r\n event: 'change'\r\n },\r\n props: {\r\n url: {\r\n type: String,\r\n default: '/zuul/api-file/workbench/file'\r\n },\r\n size: {\r\n type: Number,\r\n default: 100\r\n },\r\n accept: {\r\n type: String\r\n },\r\n maximum: {\r\n type: Number,\r\n default: 10\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n drop: {\r\n type: Boolean,\r\n default: true\r\n },\r\n value: {\r\n type: [String, Array]\r\n },\r\n querys: {\r\n type: Object,\r\n default: () => ({\r\n _csrf: 'c81f993f-f044-45bb-b3af-2977d335042d',\r\n _t: new Date().valueOf()\r\n })\r\n },\r\n headers: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n byteConversion: {\r\n type: Number,\r\n default: 1024 * 1024\r\n },\r\n chunkEnabled: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n data() {\r\n return {\r\n files: [],\r\n saveToServerAsyncPageTimer: null\r\n }\r\n },\r\n computed: {\r\n getPayloads () {\r\n return {\r\n override: false\r\n }\r\n },\r\n chunkConfig () {\r\n const ret = route.toQueryString(this.querys)\r\n return {\r\n action: `${window.prefixPath}/zuul/api-file/workbench/file/temp/chunk/vue`,\r\n headers: {\r\n 'X-XSRF-TOKEN': localStorage.getItem('token')\r\n },\r\n minSize: 3 * this.byteConversion,\r\n maxActive: 3,\r\n maxRetries: 5,\r\n startBody: {\r\n override: true,\r\n path: '/cw'\r\n },\r\n uploadBody: {\r\n override: true,\r\n path: '/cw'\r\n },\r\n finishBody: {\r\n override: true,\r\n path: '/cw'\r\n }\r\n }\r\n },\r\n isFileUploadSuccessed () {\r\n return this.files.every(file => file.success)\r\n },\r\n isShowUploadContainer () {\r\n if (this.multiple) {\r\n if (this.isFileUploadSuccessed && this.files.length >= this.maximum) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n } else {\r\n if (this.isFileUploadSuccessed && this.files.length >= 1) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n },\r\n getMaximum () {\r\n return this.multiple ? this.maximum : 1\r\n },\r\n fileSizeLimit () {\r\n return this.size * this.byteConversion\r\n },\r\n postAction () {\r\n const ret = route.toQueryString(this.querys)\r\n return `${window.prefixPath}${this.url}?${ret}`\r\n },\r\n uploadRef () {\r\n return uuidv4()\r\n },\r\n fileSuffixIcon () {\r\n return {\r\n 'doc': { name: 'icon-doc' },\r\n }\r\n },\r\n fileIds () {\r\n const fileIds = this.files.map(file => {\r\n return file.response.data.fileID\r\n })\r\n return this.multiple ? fileIds : fileIds[0]\r\n }\r\n },\r\n methods: {\r\n handleClickDownload (file) {\r\n console.log('download file', file)\r\n },\r\n handleClickDelete (file) {\r\n this.$refs[this.uploadRef].remove(file)\r\n this.$emit('change', this.fileIds)\r\n },\r\n onWatchFiles (files) {\r\n this.files = files\r\n if (this.isFileUploadSuccessed) {\r\n this.$emit('change', this.fileIds)\r\n }\r\n },\r\n async saveToServerAsyncPage (payloads = {}) {\r\n net.post('zuul/api-file/workbench/file/temp/saveToServerAsyncPage', payloads, { \r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n }).then(resp =>{\r\n const { data } = resp\r\n if (data !== 'saveToServerAsyncPage') {\r\n clearInterval(this.saveToServerAsyncPageTimer)\r\n }\r\n })\r\n // const ret = await net.post({\r\n // url: 'zuul/api-file/workbench/file/temp/saveToServerAsyncPage',\r\n // method: 'POST',\r\n // data: { ...payloads }\r\n // }).then(resp => {\r\n // const { data: { data, code, message } } = resp\r\n // if (code !== '2000') {\r\n // this.$Message.error(message)\r\n // return\r\n // }\r\n // if (data !== 'saveToServerAsyncPage') {\r\n // clearInterval(timer)\r\n // const { fileID, size } = data\r\n // this.$emit('on-success', { ...data, fileId: fileID })\r\n // this.$Message.success('同步成功')\r\n // return { fileId: fileID, size }\r\n // }\r\n // })\r\n // return ret\r\n },\r\n onWatchInputFiles (newFile, oldFile) {\r\n if (newFile && !oldFile) {\r\n // add file\r\n console.log('add', newFile)\r\n }\r\n if (newFile && oldFile) {\r\n // update file\r\n console.log('update', newFile)\r\n const { success, active, chunk, response } = newFile\r\n if (chunk && success && !active) {\r\n console.log('chunk end')\r\n const { data: { file, type } } = response\r\n const payloads = {\r\n filePath: file.match(/\\/cw(.*)/)[0],\r\n asyncID: uuidv4(),\r\n isDeleteOrigin: false,\r\n toImage: type === 'pdf' ? true : false,\r\n unzip: type === 'zip' ? true : false,\r\n _csrf: localStorage.getItem('token')\r\n }\r\n this.saveToServerAsyncPageTimer = setInterval(() => {\r\n this.saveToServerAsyncPage(payloads)\r\n }, 2000)\r\n }\r\n }\r\n if (!newFile && oldFile) {\r\n // delete file\r\n console.log('delete')\r\n }\r\n if (Boolean(newFile) !== Boolean(oldFile) || oldFile.error !== newFile.error) {\r\n if (!this.$refs[this.uploadRef].active) {\r\n this.$refs[this.uploadRef].active = true\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .file-uploads {\r\n label {\r\n opacity: 1 !important;\r\n cursor: pointer;\r\n border: 1px dashed var(--idooel-form-title-border-color);\r\n background: var(--idooel-form-upload-bg-color) !important;\r\n &:hover {\r\n border-color: var(--idooel-form-upload-border-hover-color);\r\n }\r\n border-radius: var(--idooel-form-border-radius);\r\n }\r\n}\r\n.ele-upload__wrapper {\r\n width: 100%;\r\n .ele-upload__area {\r\n padding: 16px;\r\n width: 100%;\r\n height: 80px;\r\n display: flex;\r\n flex-direction: row;\r\n .ele-upload__area--icon {\r\n .anticon-cloud-upload {\r\n font-size: 48px;\r\n color: var(--idooel-primary-color);\r\n }\r\n }\r\n .ele-upload__area--text {\r\n margin-left: 16px;\r\n .ele-upload__message {\r\n font-size: 16px;\r\n color: var(--idoole-black-008);\r\n text-align: left;\r\n }\r\n .ele-upload__ext {\r\n text-align: left;\r\n font-size: 14px;\r\n color: var(--idoole-black-06);\r\n }\r\n }\r\n }\r\n .ele-files__wrapper {\r\n .ele-file__item {\r\n width: 100%;\r\n margin-top: 8px;\r\n padding: 8px 12px;\r\n border-radius: var(--idooel-form-border-radius);\r\n background: var(--idooel-form-upload-bg-color);\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n .ele-file__suffix--icon {}\r\n .ele-file__name {\r\n flex: 1;\r\n text-align: left;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n font-size: 14px;\r\n margin-left: 8px;\r\n cursor: pointer;\r\n .ele-file__inner {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n }\r\n .ele-file__delete {\r\n margin-left: 8px;\r\n .ele-file__delete--icon {\r\n margin-left: 8px;\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","::v-deep .file-uploads label {\n opacity: 1 !important;\n cursor: pointer;\n border: 1px dashed var(--idooel-form-title-border-color);\n background: var(--idooel-form-upload-bg-color) !important;\n border-radius: var(--idooel-form-border-radius);\n}\n::v-deep .file-uploads label:hover {\n border-color: var(--idooel-form-upload-border-hover-color);\n}\n\n.ele-upload__wrapper {\n width: 100%;\n}\n.ele-upload__wrapper .ele-upload__area {\n padding: 16px;\n width: 100%;\n height: 80px;\n display: flex;\n flex-direction: row;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n font-size: 48px;\n color: var(--idooel-primary-color);\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text {\n margin-left: 16px;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__message {\n font-size: 16px;\n color: var(--idoole-black-008);\n text-align: left;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n text-align: left;\n font-size: 14px;\n color: var(--idoole-black-06);\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item {\n width: 100%;\n margin-top: 8px;\n padding: 8px 12px;\n border-radius: var(--idooel-form-border-radius);\n background: var(--idooel-form-upload-bg-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name {\n flex: 1;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n margin-left: 8px;\n cursor: pointer;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name .ele-file__inner {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete {\n margin-left: 8px;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete .ele-file__delete--icon {\n margin-left: 8px;\n cursor: pointer;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3239
+ inject("data-v-5b271004_0", { source: "[data-v-5b271004] .ele-upload__inner {\n opacity: 1 !important;\n cursor: pointer;\n border: 1px dashed var(--idooel-form-title-border-color);\n background: var(--idooel-form-upload-bg-color) !important;\n border-radius: var(--idooel-form-border-radius);\n}\n[data-v-5b271004] .ele-upload__inner:hover {\n border-color: var(--idooel-form-upload-border-hover-color);\n}\n.ele-upload__wrapper[data-v-5b271004] {\n width: 100%;\n}\n.ele-upload__wrapper .ele-upload__area[data-v-5b271004] {\n padding: 16px;\n width: 100%;\n height: 80px;\n display: flex;\n flex-direction: row;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload[data-v-5b271004] {\n font-size: 48px;\n color: var(--idooel-primary-color);\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text[data-v-5b271004] {\n margin-left: 16px;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__message[data-v-5b271004] {\n font-size: 16px;\n color: var(--idoole-black-008);\n text-align: left;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__ext[data-v-5b271004] {\n text-align: left;\n font-size: 14px;\n color: var(--idoole-black-06);\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item[data-v-5b271004] {\n width: 100%;\n margin-top: 8px;\n padding: 8px 12px;\n border-radius: var(--idooel-form-border-radius);\n background: var(--idooel-form-upload-bg-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name[data-v-5b271004] {\n flex: 1;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n margin-left: 8px;\n cursor: pointer;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name .ele-file__inner[data-v-5b271004] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete[data-v-5b271004] {\n margin-left: 8px;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete .ele-file__delete--icon[data-v-5b271004] {\n margin-left: 8px;\n cursor: pointer;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/upload/src/index.vue","index.vue"],"names":[],"mappings":"AAoRA;EACA,qBAAA;EACA,eAAA;EACA,wDAAA;EACA,yDAAA;EAIA,+CAAA;ACtRA;ADmRA;EACA,0DAAA;ACjRA;ADqRA;EACA,WAAA;AClRA;ADmRA;EACA,aAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;ACjRA;ADmRA;EACA,eAAA;EACA,kCAAA;ACjRA;ADoRA;EACA,iBAAA;AClRA;ADmRA;EACA,eAAA;EACA,8BAAA;EACA,gBAAA;ACjRA;ADmRA;EACA,gBAAA;EACA,eAAA;EACA,6BAAA;ACjRA;ADsRA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;EACA,+CAAA;EACA,8CAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;ACpRA;ADsRA;EACA,OAAA;EACA,gBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;EACA,eAAA;ACpRA;ADqRA;EACA,gBAAA;EACA,uBAAA;ACnRA;ADsRA;EACA,gBAAA;ACpRA;ADqRA;EACA,gBAAA;EACA,eAAA;ACnRA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"ele-upload__wrapper\">\n <FileUpload\n class=\"ele-upload__inner\"\n v-show=\"isShowUploadContainer\"\n v-model=\"files\"\n :ref=\"uploadRef\"\n :drop=\"drop\"\n :chunk-enabled=\"chunkEnabled\"\n :chunk=\"chunkConfig\"\n :accept=\"accept\"\n :size=\"fileSizeLimit\"\n :post-action=\"postAction\"\n :multiple=\"multiple\"\n :maximum=\"getMaximum\"\n @input-file=\"onWatchInputFiles\"\n @input=\"onWatchFiles\"\n style=\"width: 100%;\">\n <section class=\"ele-upload__area\">\n <div class=\"ele-upload__area--icon\">\n <ele-icon type=\"cloud-upload\"></ele-icon>\n </div>\n <div class=\"ele-upload__area--text\">\n <div class=\"ele-upload__message\">单击或拖动文件到该区域以上传</div>\n <div class=\"ele-upload__ext\">文件小于{{ size }}M</div>\n </div>\n </section>\n </FileUpload>\n <section class=\"ele-files__wrapper\">\n <div class=\"ele-file__item\" v-for=\"(file, idx) in files\" :key=\"idx\">\n <div class=\"ele-file__suffix--icon\">\n <ele-icon type=\"icon-doc\"></ele-icon>\n </div>\n <div class=\"ele-file__name\">\n <div class=\"ele-file__inner\" @click=\"handleClickDownload(file)\">{{ file.name }}</div>\n <div v-if=\"!file.success\" class=\"ele-uplpad__progress\">\n <a-progress :strokeWidth=\"2\" :percent=\"Number(file.progress)\" size=\"small\" />\n </div>\n </div>\n <div class=\"ele-file__delete\" v-if=\"file.success || file.error\">\n <span class=\"ele-file__size\">{{ (file.size / byteConversion).toFixed(2) }}M</span>\n <span class=\"ele-file__delete--icon\" @click=\"handleClickDelete(file)\">\n <ele-icon type=\"delete\"></ele-icon>\n </span>\n </div>\n </div>\n </section>\n </div>\n</template>\n\n<script>\nimport FileUpload from 'vue-upload-component'\nimport { v4 as uuidv4 } from 'uuid'\nimport { route, net } from '@idooel/shared'\nimport EleIcon from '../../icon/src/index.vue'\nexport default {\n name: 'ele-upload',\n components: {\n FileUpload,\n EleIcon\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n url: {\n type: String,\n default: '/zuul/api-file/workbench/file'\n },\n size: {\n type: Number,\n default: 100\n },\n accept: {\n type: String\n },\n maximum: {\n type: Number,\n default: 10\n },\n multiple: {\n type: Boolean,\n default: false\n },\n drop: {\n type: Boolean,\n default: true\n },\n value: {\n type: [String, Array]\n },\n querys: {\n type: Object,\n default: () => ({\n _csrf: 'c81f993f-f044-45bb-b3af-2977d335042d',\n _t: new Date().valueOf()\n })\n },\n headers: {\n type: Object,\n default: () => ({})\n },\n byteConversion: {\n type: Number,\n default: 1024 * 1024\n },\n chunkEnabled: {\n type: Boolean,\n default: true\n }\n },\n data() {\n return {\n files: [],\n saveToServerAsyncPageTimer: null\n }\n },\n computed: {\n getPayloads () {\n return {\n override: false\n }\n },\n chunkConfig () {\n const ret = route.toQueryString(this.querys)\n return {\n action: `${window.prefixPath}/zuul/api-file/workbench/file/temp/chunk/vue`,\n headers: {\n 'X-XSRF-TOKEN': localStorage.getItem('token')\n },\n minSize: 3 * this.byteConversion,\n maxActive: 3,\n maxRetries: 5,\n startBody: {\n override: true,\n path: '/cw'\n },\n uploadBody: {\n override: true,\n path: '/cw'\n },\n finishBody: {\n override: true,\n path: '/cw'\n }\n }\n },\n isFileUploadSuccessed () {\n return this.files.every(file => file.success)\n },\n isShowUploadContainer () {\n if (this.multiple) {\n if (this.isFileUploadSuccessed && this.files.length >= this.maximum) {\n return false\n } else {\n return true\n }\n } else {\n if (this.isFileUploadSuccessed && this.files.length >= 1) {\n return false\n } else {\n return true\n }\n }\n },\n getMaximum () {\n return this.multiple ? this.maximum : 1\n },\n fileSizeLimit () {\n return this.size * this.byteConversion\n },\n postAction () {\n const ret = route.toQueryString(this.querys)\n return `${window.prefixPath}${this.url}?${ret}`\n },\n uploadRef () {\n return uuidv4()\n },\n fileSuffixIcon () {\n return {\n 'doc': { name: 'icon-doc' },\n }\n },\n fileIds () {\n const fileIds = this.files.map(file => {\n return file.response.data.fileID\n })\n return this.multiple ? fileIds : fileIds[0]\n }\n },\n methods: {\n handleClickDownload (file) {\n console.log('download file', file)\n },\n handleClickDelete (file) {\n this.$refs[this.uploadRef].remove(file)\n this.$emit('change', this.fileIds)\n },\n onWatchFiles (files) {\n this.files = files\n if (this.isFileUploadSuccessed) {\n this.$emit('change', this.fileIds)\n }\n },\n async saveToServerAsyncPage (payloads = {}) {\n net.post('zuul/api-file/workbench/file/temp/saveToServerAsyncPage', payloads, { \n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }).then(resp =>{\n const { data } = resp\n if (data !== 'saveToServerAsyncPage') {\n clearInterval(this.saveToServerAsyncPageTimer)\n }\n })\n // const ret = await net.post({\n // url: 'zuul/api-file/workbench/file/temp/saveToServerAsyncPage',\n // method: 'POST',\n // data: { ...payloads }\n // }).then(resp => {\n // const { data: { data, code, message } } = resp\n // if (code !== '2000') {\n // this.$Message.error(message)\n // return\n // }\n // if (data !== 'saveToServerAsyncPage') {\n // clearInterval(timer)\n // const { fileID, size } = data\n // this.$emit('on-success', { ...data, fileId: fileID })\n // this.$Message.success('同步成功')\n // return { fileId: fileID, size }\n // }\n // })\n // return ret\n },\n onWatchInputFiles (newFile, oldFile) {\n if (newFile && !oldFile) {\n // add file\n console.log('add', newFile)\n }\n if (newFile && oldFile) {\n // update file\n console.log('update', newFile)\n const { success, active, chunk, response } = newFile\n if (chunk && success && !active) {\n console.log('chunk end')\n const { data: { file, type } } = response\n const payloads = {\n filePath: file.match(/\\/cw(.*)/)[0],\n asyncID: uuidv4(),\n isDeleteOrigin: false,\n toImage: type === 'pdf' ? true : false,\n unzip: type === 'zip' ? true : false,\n _csrf: localStorage.getItem('token')\n }\n this.saveToServerAsyncPageTimer = setInterval(() => {\n this.saveToServerAsyncPage(payloads)\n }, 2000)\n }\n }\n if (!newFile && oldFile) {\n // delete file\n console.log('delete')\n }\n if (Boolean(newFile) !== Boolean(oldFile) || oldFile.error !== newFile.error) {\n if (!this.$refs[this.uploadRef].active) {\n this.$refs[this.uploadRef].active = true\n }\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .ele-upload__inner {\n opacity: 1 !important;\n cursor: pointer;\n border: 1px dashed var(--idooel-form-title-border-color);\n background: var(--idooel-form-upload-bg-color) !important;\n &:hover {\n border-color: var(--idooel-form-upload-border-hover-color);\n }\n border-radius: var(--idooel-form-border-radius);\n}\n.ele-upload__wrapper {\n width: 100%;\n .ele-upload__area {\n padding: 16px;\n width: 100%;\n height: 80px;\n display: flex;\n flex-direction: row;\n .ele-upload__area--icon {\n .anticon-cloud-upload {\n font-size: 48px;\n color: var(--idooel-primary-color);\n }\n }\n .ele-upload__area--text {\n margin-left: 16px;\n .ele-upload__message {\n font-size: 16px;\n color: var(--idoole-black-008);\n text-align: left;\n }\n .ele-upload__ext {\n text-align: left;\n font-size: 14px;\n color: var(--idoole-black-06);\n }\n }\n }\n .ele-files__wrapper {\n .ele-file__item {\n width: 100%;\n margin-top: 8px;\n padding: 8px 12px;\n border-radius: var(--idooel-form-border-radius);\n background: var(--idooel-form-upload-bg-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n .ele-file__suffix--icon {}\n .ele-file__name {\n flex: 1;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n margin-left: 8px;\n cursor: pointer;\n .ele-file__inner {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n .ele-file__delete {\n margin-left: 8px;\n .ele-file__delete--icon {\n margin-left: 8px;\n cursor: pointer;\n }\n }\n }\n }\n}\n</style>","::v-deep .ele-upload__inner {\n opacity: 1 !important;\n cursor: pointer;\n border: 1px dashed var(--idooel-form-title-border-color);\n background: var(--idooel-form-upload-bg-color) !important;\n border-radius: var(--idooel-form-border-radius);\n}\n::v-deep .ele-upload__inner:hover {\n border-color: var(--idooel-form-upload-border-hover-color);\n}\n\n.ele-upload__wrapper {\n width: 100%;\n}\n.ele-upload__wrapper .ele-upload__area {\n padding: 16px;\n width: 100%;\n height: 80px;\n display: flex;\n flex-direction: row;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n font-size: 48px;\n color: var(--idooel-primary-color);\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text {\n margin-left: 16px;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__message {\n font-size: 16px;\n color: var(--idoole-black-008);\n text-align: left;\n}\n.ele-upload__wrapper .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n text-align: left;\n font-size: 14px;\n color: var(--idoole-black-06);\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item {\n width: 100%;\n margin-top: 8px;\n padding: 8px 12px;\n border-radius: var(--idooel-form-border-radius);\n background: var(--idooel-form-upload-bg-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name {\n flex: 1;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n font-size: 14px;\n margin-left: 8px;\n cursor: pointer;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__name .ele-file__inner {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete {\n margin-left: 8px;\n}\n.ele-upload__wrapper .ele-files__wrapper .ele-file__item .ele-file__delete .ele-file__delete--icon {\n margin-left: 8px;\n cursor: pointer;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3252
3240
 
3253
3241
  };
3254
3242
  /* scoped */
3255
- const __vue_scope_id__$9 = "data-v-29bc9f58";
3243
+ const __vue_scope_id__$e = "data-v-5b271004";
3256
3244
  /* module identifier */
3257
- const __vue_module_identifier__$9 = undefined;
3245
+ const __vue_module_identifier__$e = undefined;
3258
3246
  /* functional template */
3259
- const __vue_is_functional_template__$9 = false;
3247
+ const __vue_is_functional_template__$e = false;
3260
3248
  /* style inject SSR */
3261
3249
 
3262
3250
  /* style inject shadow dom */
3263
3251
 
3264
3252
 
3265
3253
 
3266
- const __vue_component__$9 = /*#__PURE__*/normalizeComponent(
3267
- { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
3268
- __vue_inject_styles__$9,
3269
- __vue_script__$9,
3270
- __vue_scope_id__$9,
3271
- __vue_is_functional_template__$9,
3272
- __vue_module_identifier__$9,
3254
+ const __vue_component__$e = /*#__PURE__*/normalizeComponent(
3255
+ { render: __vue_render__$e, staticRenderFns: __vue_staticRenderFns__$e },
3256
+ __vue_inject_styles__$e,
3257
+ __vue_script__$e,
3258
+ __vue_scope_id__$e,
3259
+ __vue_is_functional_template__$e,
3260
+ __vue_module_identifier__$e,
3273
3261
  false,
3274
3262
  createInjector,
3275
3263
  undefined,
@@ -3295,7 +3283,7 @@ __vue_render__$9._withStripped = true;
3295
3283
  //
3296
3284
  //
3297
3285
 
3298
- var script$8 = {
3286
+ var script$d = {
3299
3287
  name: 'ele-select-entity',
3300
3288
  props: {
3301
3289
  value: {
@@ -3352,10 +3340,10 @@ var script$8 = {
3352
3340
  };
3353
3341
 
3354
3342
  /* script */
3355
- const __vue_script__$8 = script$8;
3343
+ const __vue_script__$d = script$d;
3356
3344
 
3357
3345
  /* template */
3358
- var __vue_render__$8 = function () {
3346
+ var __vue_render__$d = function () {
3359
3347
  var _vm = this;
3360
3348
  var _h = _vm.$createElement;
3361
3349
  var _c = _vm._self._c || _h;
@@ -3405,34 +3393,34 @@ var __vue_render__$8 = function () {
3405
3393
  2
3406
3394
  )
3407
3395
  };
3408
- var __vue_staticRenderFns__$8 = [];
3409
- __vue_render__$8._withStripped = true;
3396
+ var __vue_staticRenderFns__$d = [];
3397
+ __vue_render__$d._withStripped = true;
3410
3398
 
3411
3399
  /* style */
3412
- const __vue_inject_styles__$8 = function (inject) {
3400
+ const __vue_inject_styles__$d = function (inject) {
3413
3401
  if (!inject) return
3414
- inject("data-v-328544bb_0", { source: ".g-select-entity__wrapper[data-v-328544bb] {\n font-size: 14px;\n line-height: 30px;\n position: relative;\n width: 100%;\n display: flex;\n color: var(--idoole-black-07);\n border-radius: 4px;\n border: 1px solid var(--idooel-form-title-border-color);\n}\n.g-select-entity__wrapper[data-v-328544bb]:hover {\n border-color: var(--idooel-primary-color);\n}\n.g-select-entity__wrapper .select-entity__input[data-v-328544bb] {\n padding: 0 11px;\n background-color: #fff;\n border-radius: 4px;\n flex-grow: 1;\n min-height: 30px;\n text-align: left;\n}\n.g-select-entity__wrapper .select-entity__addon[data-v-328544bb] {\n padding: 0 11px;\n color: var(--idoole-black-07);\n background-color: var(--idoole-black-02);\n border-left: 1px solid var(--idooel-form-title-border-color);\n cursor: pointer;\n min-height: 30px;\n white-space: nowrap;\n}\n.has-error .g-select-entity__wrapper[data-v-328544bb] {\n border-color: var(--idooel-form-border-err-color);\n}\n.g-select-entity__disabled .select-entity__input[data-v-328544bb] {\n background-color: var(--idoole-black-02);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\select-entity\\src\\index.vue","index.vue"],"names":[],"mappings":"AA6EA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,aAAA;EACA,6BAAA;EACA,kBAAA;EACA,uDAAA;AC5EA;AD6EA;EACA,yCAAA;AC3EA;AD6EA;EACA,eAAA;EACA,sBAAA;EACA,kBAAA;EACA,YAAA;EACA,gBAAA;EACA,gBAAA;AC3EA;AD6EA;EACA,eAAA;EACA,6BAAA;EACA,wCAAA;EACA,4DAAA;EACA,eAAA;EACA,gBAAA;EACA,mBAAA;AC3EA;AD8EA;EACA,iDAAA;AC3EA;AD6EA;EACA,wCAAA;AC1EA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"g-select-entity__wrapper\" :class=\"disabled ? 'g-select-entity__disabled' : ''\">\r\n <span class=\"select-entity__input\">\r\n <a-tag\r\n v-for=\"(item, inx) in getValueList()\"\r\n :key=\"item.value\"\r\n :closable=\"!disabled && !getIsMaxCount()\"\r\n @close=\"onClose(...arguments, inx)\"\r\n >\r\n {{ item.label }}\r\n </a-tag>\r\n <a-tag v-if=\"getIsMaxCount()\">......</a-tag>\r\n </span>\r\n <span class=\"select-entity__addon\" @click=\"onChange\">{{ addonAfter }}</span>\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ele-select-entity',\r\n props: {\r\n value: {\r\n type: [Array, Object]\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: true\r\n },\r\n maxCount: {\r\n type: Number,\r\n default: 7\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n addonAfter: {\r\n type: String,\r\n default: '选择'\r\n }\r\n },\r\n methods: {\r\n getValueList () {\r\n if (this.value) {\r\n if (this.multiple) {\r\n return this.getIsMaxCount() ? this.value.slice(0, this.maxCount) : this.value\r\n }\r\n return [this.value]\r\n }\r\n return []\r\n },\r\n getIsMaxCount () {\r\n if (this.value && this.multiple) {\r\n return this.value.length >= this.maxCount\r\n }\r\n return false\r\n },\r\n onChange () {\r\n if (this.disabled) return\r\n this.$emit('change', this.value)\r\n },\r\n onClose (e, inx) {\r\n e = window.event || e\r\n e.preventDefault()\r\n if (!this.multiple) {\r\n this.$emit('change', null)\r\n return\r\n }\r\n this.value.splice(inx, 1)\r\n this.$emit('change', this.value)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.g-select-entity__wrapper {\r\n font-size: 14px;\r\n line-height: 30px;\r\n position: relative;\r\n width: 100%;\r\n display: flex;\r\n color: var(--idoole-black-07);\r\n border-radius: 4px;\r\n border: 1px solid var(--idooel-form-title-border-color);\r\n &:hover {\r\n border-color: var(--idooel-primary-color);\r\n }\r\n .select-entity__input {\r\n padding: 0 11px;\r\n background-color: #fff;\r\n border-radius: 4px;\r\n flex-grow: 1;\r\n min-height: 30px;\r\n text-align: left;\r\n }\r\n .select-entity__addon {\r\n padding: 0 11px;\r\n color: var(--idoole-black-07);\r\n background-color: var(--idoole-black-02);\r\n border-left: 1px solid var(--idooel-form-title-border-color);\r\n cursor: pointer;\r\n min-height: 30px;\r\n white-space: nowrap;\r\n }\r\n}\r\n.has-error .g-select-entity__wrapper {\r\n border-color: var(--idooel-form-border-err-color);\r\n}\r\n.g-select-entity__disabled .select-entity__input {\r\n background-color: var(--idoole-black-02);\r\n}\r\n</style>",".g-select-entity__wrapper {\n font-size: 14px;\n line-height: 30px;\n position: relative;\n width: 100%;\n display: flex;\n color: var(--idoole-black-07);\n border-radius: 4px;\n border: 1px solid var(--idooel-form-title-border-color);\n}\n.g-select-entity__wrapper:hover {\n border-color: var(--idooel-primary-color);\n}\n.g-select-entity__wrapper .select-entity__input {\n padding: 0 11px;\n background-color: #fff;\n border-radius: 4px;\n flex-grow: 1;\n min-height: 30px;\n text-align: left;\n}\n.g-select-entity__wrapper .select-entity__addon {\n padding: 0 11px;\n color: var(--idoole-black-07);\n background-color: var(--idoole-black-02);\n border-left: 1px solid var(--idooel-form-title-border-color);\n cursor: pointer;\n min-height: 30px;\n white-space: nowrap;\n}\n\n.has-error .g-select-entity__wrapper {\n border-color: var(--idooel-form-border-err-color);\n}\n\n.g-select-entity__disabled .select-entity__input {\n background-color: var(--idoole-black-02);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3402
+ inject("data-v-611a11f1_0", { source: ".g-select-entity__wrapper[data-v-611a11f1] {\n font-size: 14px;\n line-height: 30px;\n position: relative;\n width: 100%;\n display: flex;\n color: var(--idoole-black-07);\n border-radius: 4px;\n border: 1px solid var(--idooel-form-title-border-color);\n}\n.g-select-entity__wrapper[data-v-611a11f1]:hover {\n border-color: var(--idooel-primary-color);\n}\n.g-select-entity__wrapper .select-entity__input[data-v-611a11f1] {\n padding: 0 11px;\n background-color: #fff;\n border-radius: 4px;\n flex-grow: 1;\n min-height: 30px;\n text-align: left;\n}\n.g-select-entity__wrapper .select-entity__addon[data-v-611a11f1] {\n padding: 0 11px;\n color: var(--idoole-black-07);\n background-color: var(--idoole-black-02);\n border-left: 1px solid var(--idooel-form-title-border-color);\n cursor: pointer;\n min-height: 30px;\n white-space: nowrap;\n}\n.has-error .g-select-entity__wrapper[data-v-611a11f1] {\n border-color: var(--idooel-form-border-err-color);\n}\n.g-select-entity__disabled .select-entity__input[data-v-611a11f1] {\n background-color: var(--idoole-black-02);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/select-entity/src/index.vue","index.vue"],"names":[],"mappings":"AA6EA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,aAAA;EACA,6BAAA;EACA,kBAAA;EACA,uDAAA;AC5EA;AD6EA;EACA,yCAAA;AC3EA;AD6EA;EACA,eAAA;EACA,sBAAA;EACA,kBAAA;EACA,YAAA;EACA,gBAAA;EACA,gBAAA;AC3EA;AD6EA;EACA,eAAA;EACA,6BAAA;EACA,wCAAA;EACA,4DAAA;EACA,eAAA;EACA,gBAAA;EACA,mBAAA;AC3EA;AD8EA;EACA,iDAAA;AC3EA;AD6EA;EACA,wCAAA;AC1EA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"g-select-entity__wrapper\" :class=\"disabled ? 'g-select-entity__disabled' : ''\">\n <span class=\"select-entity__input\">\n <a-tag\n v-for=\"(item, inx) in getValueList()\"\n :key=\"item.value\"\n :closable=\"!disabled && !getIsMaxCount()\"\n @close=\"onClose(...arguments, inx)\"\n >\n {{ item.label }}\n </a-tag>\n <a-tag v-if=\"getIsMaxCount()\">......</a-tag>\n </span>\n <span class=\"select-entity__addon\" @click=\"onChange\">{{ addonAfter }}</span>\n <slot></slot>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'ele-select-entity',\n props: {\n value: {\n type: [Array, Object]\n },\n multiple: {\n type: Boolean,\n default: true\n },\n maxCount: {\n type: Number,\n default: 7\n },\n disabled: {\n type: Boolean,\n default: false\n },\n addonAfter: {\n type: String,\n default: '选择'\n }\n },\n methods: {\n getValueList () {\n if (this.value) {\n if (this.multiple) {\n return this.getIsMaxCount() ? this.value.slice(0, this.maxCount) : this.value\n }\n return [this.value]\n }\n return []\n },\n getIsMaxCount () {\n if (this.value && this.multiple) {\n return this.value.length >= this.maxCount\n }\n return false\n },\n onChange () {\n if (this.disabled) return\n this.$emit('change', this.value)\n },\n onClose (e, inx) {\n e = window.event || e\n e.preventDefault()\n if (!this.multiple) {\n this.$emit('change', null)\n return\n }\n this.value.splice(inx, 1)\n this.$emit('change', this.value)\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.g-select-entity__wrapper {\n font-size: 14px;\n line-height: 30px;\n position: relative;\n width: 100%;\n display: flex;\n color: var(--idoole-black-07);\n border-radius: 4px;\n border: 1px solid var(--idooel-form-title-border-color);\n &:hover {\n border-color: var(--idooel-primary-color);\n }\n .select-entity__input {\n padding: 0 11px;\n background-color: #fff;\n border-radius: 4px;\n flex-grow: 1;\n min-height: 30px;\n text-align: left;\n }\n .select-entity__addon {\n padding: 0 11px;\n color: var(--idoole-black-07);\n background-color: var(--idoole-black-02);\n border-left: 1px solid var(--idooel-form-title-border-color);\n cursor: pointer;\n min-height: 30px;\n white-space: nowrap;\n }\n}\n.has-error .g-select-entity__wrapper {\n border-color: var(--idooel-form-border-err-color);\n}\n.g-select-entity__disabled .select-entity__input {\n background-color: var(--idoole-black-02);\n}\n</style>",".g-select-entity__wrapper {\n font-size: 14px;\n line-height: 30px;\n position: relative;\n width: 100%;\n display: flex;\n color: var(--idoole-black-07);\n border-radius: 4px;\n border: 1px solid var(--idooel-form-title-border-color);\n}\n.g-select-entity__wrapper:hover {\n border-color: var(--idooel-primary-color);\n}\n.g-select-entity__wrapper .select-entity__input {\n padding: 0 11px;\n background-color: #fff;\n border-radius: 4px;\n flex-grow: 1;\n min-height: 30px;\n text-align: left;\n}\n.g-select-entity__wrapper .select-entity__addon {\n padding: 0 11px;\n color: var(--idoole-black-07);\n background-color: var(--idoole-black-02);\n border-left: 1px solid var(--idooel-form-title-border-color);\n cursor: pointer;\n min-height: 30px;\n white-space: nowrap;\n}\n\n.has-error .g-select-entity__wrapper {\n border-color: var(--idooel-form-border-err-color);\n}\n\n.g-select-entity__disabled .select-entity__input {\n background-color: var(--idoole-black-02);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3415
3403
 
3416
3404
  };
3417
3405
  /* scoped */
3418
- const __vue_scope_id__$8 = "data-v-328544bb";
3406
+ const __vue_scope_id__$d = "data-v-611a11f1";
3419
3407
  /* module identifier */
3420
- const __vue_module_identifier__$8 = undefined;
3408
+ const __vue_module_identifier__$d = undefined;
3421
3409
  /* functional template */
3422
- const __vue_is_functional_template__$8 = false;
3410
+ const __vue_is_functional_template__$d = false;
3423
3411
  /* style inject SSR */
3424
3412
 
3425
3413
  /* style inject shadow dom */
3426
3414
 
3427
3415
 
3428
3416
 
3429
- const __vue_component__$8 = /*#__PURE__*/normalizeComponent(
3430
- { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
3431
- __vue_inject_styles__$8,
3432
- __vue_script__$8,
3433
- __vue_scope_id__$8,
3434
- __vue_is_functional_template__$8,
3435
- __vue_module_identifier__$8,
3417
+ const __vue_component__$d = /*#__PURE__*/normalizeComponent(
3418
+ { render: __vue_render__$d, staticRenderFns: __vue_staticRenderFns__$d },
3419
+ __vue_inject_styles__$d,
3420
+ __vue_script__$d,
3421
+ __vue_scope_id__$d,
3422
+ __vue_is_functional_template__$d,
3423
+ __vue_module_identifier__$d,
3436
3424
  false,
3437
3425
  createInjector,
3438
3426
  undefined,
@@ -3446,7 +3434,7 @@ __vue_render__$8._withStripped = true;
3446
3434
  //
3447
3435
  //
3448
3436
 
3449
- var script$7 = {
3437
+ var script$c = {
3450
3438
  name: 'ele-input-number',
3451
3439
  props: {
3452
3440
  precision: {
@@ -3464,10 +3452,10 @@ var script$7 = {
3464
3452
  };
3465
3453
 
3466
3454
  /* script */
3467
- const __vue_script__$7 = script$7;
3455
+ const __vue_script__$c = script$c;
3468
3456
 
3469
3457
  /* template */
3470
- var __vue_render__$7 = function () {
3458
+ var __vue_render__$c = function () {
3471
3459
  var _vm = this;
3472
3460
  var _h = _vm.$createElement;
3473
3461
  var _c = _vm._self._c || _h;
@@ -3491,17 +3479,17 @@ var __vue_render__$7 = function () {
3491
3479
  1
3492
3480
  )
3493
3481
  };
3494
- var __vue_staticRenderFns__$7 = [];
3495
- __vue_render__$7._withStripped = true;
3482
+ var __vue_staticRenderFns__$c = [];
3483
+ __vue_render__$c._withStripped = true;
3496
3484
 
3497
3485
  /* style */
3498
- const __vue_inject_styles__$7 = undefined;
3486
+ const __vue_inject_styles__$c = undefined;
3499
3487
  /* scoped */
3500
- const __vue_scope_id__$7 = undefined;
3488
+ const __vue_scope_id__$c = undefined;
3501
3489
  /* module identifier */
3502
- const __vue_module_identifier__$7 = undefined;
3490
+ const __vue_module_identifier__$c = undefined;
3503
3491
  /* functional template */
3504
- const __vue_is_functional_template__$7 = false;
3492
+ const __vue_is_functional_template__$c = false;
3505
3493
  /* style inject */
3506
3494
 
3507
3495
  /* style inject SSR */
@@ -3510,13 +3498,13 @@ __vue_render__$7._withStripped = true;
3510
3498
 
3511
3499
 
3512
3500
 
3513
- const __vue_component__$7 = /*#__PURE__*/normalizeComponent(
3514
- { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
3515
- __vue_inject_styles__$7,
3516
- __vue_script__$7,
3517
- __vue_scope_id__$7,
3518
- __vue_is_functional_template__$7,
3519
- __vue_module_identifier__$7,
3501
+ const __vue_component__$c = /*#__PURE__*/normalizeComponent(
3502
+ { render: __vue_render__$c, staticRenderFns: __vue_staticRenderFns__$c },
3503
+ __vue_inject_styles__$c,
3504
+ __vue_script__$c,
3505
+ __vue_scope_id__$c,
3506
+ __vue_is_functional_template__$c,
3507
+ __vue_module_identifier__$c,
3520
3508
  false,
3521
3509
  undefined,
3522
3510
  undefined,
@@ -3528,7 +3516,7 @@ __vue_render__$7._withStripped = true;
3528
3516
  //
3529
3517
  //
3530
3518
 
3531
- var script$6 = {
3519
+ var script$b = {
3532
3520
  name: 'ele-checkbox',
3533
3521
  props: {
3534
3522
  value: {
@@ -3552,10 +3540,10 @@ var script$6 = {
3552
3540
  };
3553
3541
 
3554
3542
  /* script */
3555
- const __vue_script__$6 = script$6;
3543
+ const __vue_script__$b = script$b;
3556
3544
 
3557
3545
  /* template */
3558
- var __vue_render__$6 = function () {
3546
+ var __vue_render__$b = function () {
3559
3547
  var _vm = this;
3560
3548
  var _h = _vm.$createElement;
3561
3549
  var _c = _vm._self._c || _h;
@@ -3568,34 +3556,34 @@ var __vue_render__$6 = function () {
3568
3556
  on: { change: _vm.onChange },
3569
3557
  })
3570
3558
  };
3571
- var __vue_staticRenderFns__$6 = [];
3572
- __vue_render__$6._withStripped = true;
3559
+ var __vue_staticRenderFns__$b = [];
3560
+ __vue_render__$b._withStripped = true;
3573
3561
 
3574
3562
  /* style */
3575
- const __vue_inject_styles__$6 = function (inject) {
3563
+ const __vue_inject_styles__$b = function (inject) {
3576
3564
  if (!inject) return
3577
- inject("data-v-63b1b120_0", { source: ".ant-checkbox-group[data-v-63b1b120] {\n text-align: left;\n line-height: 32px;\n}\n.has-error .ant-checkbox-group[data-v-63b1b120] .ant-checkbox-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-checkbox-group[data-v-63b1b120] .ant-checkbox-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\checkbox\\src\\index.vue","index.vue"],"names":[],"mappings":"AA6BA;EACA,gBAAA;EACA,iBAAA;AC5BA;ADgCA;EACA,0CAAA;AC7BA;AD+BA;EACA,iDAAA;AC7BA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <a-checkbox-group :options=\"dataSource\" :disabled=\"disabled\" :defaultValue=\"value\" @change=\"onChange\"></a-checkbox-group>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ele-checkbox',\r\n props: {\r\n value: {\r\n type: Array\r\n },\r\n dataSource: {\r\n type: Array,\r\n default: () => []\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n methods: {\r\n onChange (value) {\r\n this.$emit('change', value)\r\n this.$emit('input', value)\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.ant-checkbox-group {\r\n text-align: left;\r\n line-height: 32px;\r\n}\r\n.has-error {\r\n .ant-checkbox-group {\r\n ::v-deep .ant-checkbox-wrapper {\r\n color: var(--idooel-form-border-err-color);\r\n }\r\n ::v-deep .ant-checkbox-inner {\r\n border-color: var(--idooel-form-border-err-color);\r\n }\r\n }\r\n}\r\n</style>",".ant-checkbox-group {\n text-align: left;\n line-height: 32px;\n}\n\n.has-error .ant-checkbox-group ::v-deep .ant-checkbox-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-checkbox-group ::v-deep .ant-checkbox-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3565
+ inject("data-v-b24f06c0_0", { source: ".ant-checkbox-group[data-v-b24f06c0] {\n text-align: left;\n line-height: 32px;\n}\n.has-error .ant-checkbox-group[data-v-b24f06c0] .ant-checkbox-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-checkbox-group[data-v-b24f06c0] .ant-checkbox-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/checkbox/src/index.vue","index.vue"],"names":[],"mappings":"AA6BA;EACA,gBAAA;EACA,iBAAA;AC5BA;ADgCA;EACA,0CAAA;AC7BA;AD+BA;EACA,iDAAA;AC7BA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <a-checkbox-group :options=\"dataSource\" :disabled=\"disabled\" :defaultValue=\"value\" @change=\"onChange\"></a-checkbox-group>\n</template>\n\n<script>\nexport default {\n name: 'ele-checkbox',\n props: {\n value: {\n type: Array\n },\n dataSource: {\n type: Array,\n default: () => []\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n onChange (value) {\n this.$emit('change', value)\n this.$emit('input', value)\n }\n }\n}\n</script>\n<style lang=\"scss\" scoped>\n.ant-checkbox-group {\n text-align: left;\n line-height: 32px;\n}\n.has-error {\n .ant-checkbox-group {\n ::v-deep .ant-checkbox-wrapper {\n color: var(--idooel-form-border-err-color);\n }\n ::v-deep .ant-checkbox-inner {\n border-color: var(--idooel-form-border-err-color);\n }\n }\n}\n</style>",".ant-checkbox-group {\n text-align: left;\n line-height: 32px;\n}\n\n.has-error .ant-checkbox-group ::v-deep .ant-checkbox-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-checkbox-group ::v-deep .ant-checkbox-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3578
3566
 
3579
3567
  };
3580
3568
  /* scoped */
3581
- const __vue_scope_id__$6 = "data-v-63b1b120";
3569
+ const __vue_scope_id__$b = "data-v-b24f06c0";
3582
3570
  /* module identifier */
3583
- const __vue_module_identifier__$6 = undefined;
3571
+ const __vue_module_identifier__$b = undefined;
3584
3572
  /* functional template */
3585
- const __vue_is_functional_template__$6 = false;
3573
+ const __vue_is_functional_template__$b = false;
3586
3574
  /* style inject SSR */
3587
3575
 
3588
3576
  /* style inject shadow dom */
3589
3577
 
3590
3578
 
3591
3579
 
3592
- const __vue_component__$6 = /*#__PURE__*/normalizeComponent(
3593
- { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
3594
- __vue_inject_styles__$6,
3595
- __vue_script__$6,
3596
- __vue_scope_id__$6,
3597
- __vue_is_functional_template__$6,
3598
- __vue_module_identifier__$6,
3580
+ const __vue_component__$b = /*#__PURE__*/normalizeComponent(
3581
+ { render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
3582
+ __vue_inject_styles__$b,
3583
+ __vue_script__$b,
3584
+ __vue_scope_id__$b,
3585
+ __vue_is_functional_template__$b,
3586
+ __vue_module_identifier__$b,
3599
3587
  false,
3600
3588
  createInjector,
3601
3589
  undefined,
@@ -3611,8 +3599,12 @@ __vue_render__$6._withStripped = true;
3611
3599
  //
3612
3600
  //
3613
3601
 
3614
- var script$5 = {
3602
+ var script$a = {
3615
3603
  name: 'ele-radio',
3604
+ model: {
3605
+ prop: 'value',
3606
+ event: 'change'
3607
+ },
3616
3608
  props: {
3617
3609
  value: {
3618
3610
  type: [String, Array, Number]
@@ -3635,17 +3627,17 @@ var script$5 = {
3635
3627
  };
3636
3628
 
3637
3629
  /* script */
3638
- const __vue_script__$5 = script$5;
3630
+ const __vue_script__$a = script$a;
3639
3631
 
3640
3632
  /* template */
3641
- var __vue_render__$5 = function () {
3633
+ var __vue_render__$a = function () {
3642
3634
  var _vm = this;
3643
3635
  var _h = _vm.$createElement;
3644
3636
  var _c = _vm._self._c || _h;
3645
3637
  return _c(
3646
3638
  "a-radio-group",
3647
3639
  {
3648
- attrs: { defaultValue: _vm.value, disabled: _vm.disabled },
3640
+ attrs: { value: _vm.value, disabled: _vm.disabled },
3649
3641
  on: { change: _vm.onChange },
3650
3642
  },
3651
3643
  _vm._l(_vm.dataSource, function (item) {
@@ -3656,34 +3648,34 @@ var __vue_render__$5 = function () {
3656
3648
  1
3657
3649
  )
3658
3650
  };
3659
- var __vue_staticRenderFns__$5 = [];
3660
- __vue_render__$5._withStripped = true;
3651
+ var __vue_staticRenderFns__$a = [];
3652
+ __vue_render__$a._withStripped = true;
3661
3653
 
3662
3654
  /* style */
3663
- const __vue_inject_styles__$5 = function (inject) {
3655
+ const __vue_inject_styles__$a = function (inject) {
3664
3656
  if (!inject) return
3665
- inject("data-v-66c5cdf2_0", { source: ".ant-radio-group[data-v-66c5cdf2] {\n text-align: left;\n line-height: 32px;\n}\n.has-error .ant-radio-group[data-v-66c5cdf2] .ant-radio-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-radio-group[data-v-66c5cdf2] .ant-radio-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\radio\\src\\index.vue","index.vue"],"names":[],"mappings":"AAiCA;EACA,gBAAA;EACA,iBAAA;AChCA;ADoCA;EACA,0CAAA;ACjCA;ADmCA;EACA,iDAAA;ACjCA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <a-radio-group :defaultValue=\"value\" @change=\"onChange\" :disabled=\"disabled\">\r\n <a-radio v-for=\"item in dataSource\" :key=\"item.value\" :value=\"item.value\">\r\n {{ item.label }}\r\n </a-radio>\r\n </a-radio-group>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ele-radio',\r\n props: {\r\n value: {\r\n type: [String, Array, Number]\r\n },\r\n dataSource: {\r\n type: Array,\r\n default: () => []\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n methods: {\r\n onChange (e) {\r\n this.$emit('change', e.target.value)\r\n this.$emit('input', e.target.value)\r\n }\r\n }\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.ant-radio-group {\r\n text-align: left;\r\n line-height: 32px;\r\n}\r\n.has-error {\r\n .ant-radio-group {\r\n ::v-deep .ant-radio-wrapper {\r\n color: var(--idooel-form-border-err-color);\r\n }\r\n ::v-deep .ant-radio-inner {\r\n border-color: var(--idooel-form-border-err-color);\r\n }\r\n }\r\n}\r\n</style>",".ant-radio-group {\n text-align: left;\n line-height: 32px;\n}\n\n.has-error .ant-radio-group ::v-deep .ant-radio-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-radio-group ::v-deep .ant-radio-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3657
+ inject("data-v-ec29379c_0", { source: ".ant-radio-group[data-v-ec29379c] {\n text-align: left;\n line-height: 32px;\n}\n.has-error .ant-radio-group[data-v-ec29379c] .ant-radio-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-radio-group[data-v-ec29379c] .ant-radio-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/radio/src/index.vue","index.vue"],"names":[],"mappings":"AAqCA;EACA,gBAAA;EACA,iBAAA;ACpCA;ADwCA;EACA,0CAAA;ACrCA;ADuCA;EACA,iDAAA;ACrCA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <a-radio-group :value=\"value\" @change=\"onChange\" :disabled=\"disabled\">\n <a-radio v-for=\"item in dataSource\" :key=\"item.value\" :value=\"item.value\">\n {{ item.label }}\n </a-radio>\n </a-radio-group>\n</template>\n\n<script>\nexport default {\n name: 'ele-radio',\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n value: {\n type: [String, Array, Number]\n },\n dataSource: {\n type: Array,\n default: () => []\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n onChange (e) {\n this.$emit('change', e.target.value)\n this.$emit('input', e.target.value)\n }\n }\n}\n</script>\n<style lang=\"scss\" scoped>\n.ant-radio-group {\n text-align: left;\n line-height: 32px;\n}\n.has-error {\n .ant-radio-group {\n ::v-deep .ant-radio-wrapper {\n color: var(--idooel-form-border-err-color);\n }\n ::v-deep .ant-radio-inner {\n border-color: var(--idooel-form-border-err-color);\n }\n }\n}\n</style>",".ant-radio-group {\n text-align: left;\n line-height: 32px;\n}\n\n.has-error .ant-radio-group ::v-deep .ant-radio-wrapper {\n color: var(--idooel-form-border-err-color);\n}\n.has-error .ant-radio-group ::v-deep .ant-radio-inner {\n border-color: var(--idooel-form-border-err-color);\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3666
3658
 
3667
3659
  };
3668
3660
  /* scoped */
3669
- const __vue_scope_id__$5 = "data-v-66c5cdf2";
3661
+ const __vue_scope_id__$a = "data-v-ec29379c";
3670
3662
  /* module identifier */
3671
- const __vue_module_identifier__$5 = undefined;
3663
+ const __vue_module_identifier__$a = undefined;
3672
3664
  /* functional template */
3673
- const __vue_is_functional_template__$5 = false;
3665
+ const __vue_is_functional_template__$a = false;
3674
3666
  /* style inject SSR */
3675
3667
 
3676
3668
  /* style inject shadow dom */
3677
3669
 
3678
3670
 
3679
3671
 
3680
- const __vue_component__$5 = /*#__PURE__*/normalizeComponent(
3681
- { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
3682
- __vue_inject_styles__$5,
3683
- __vue_script__$5,
3684
- __vue_scope_id__$5,
3685
- __vue_is_functional_template__$5,
3686
- __vue_module_identifier__$5,
3672
+ const __vue_component__$a = /*#__PURE__*/normalizeComponent(
3673
+ { render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
3674
+ __vue_inject_styles__$a,
3675
+ __vue_script__$a,
3676
+ __vue_scope_id__$a,
3677
+ __vue_is_functional_template__$a,
3678
+ __vue_module_identifier__$a,
3687
3679
  false,
3688
3680
  createInjector,
3689
3681
  undefined,
@@ -3691,38 +3683,94 @@ __vue_render__$5._withStripped = true;
3691
3683
  );
3692
3684
 
3693
3685
  //
3694
- var script$4 = {
3686
+ var script$9 = {
3695
3687
  name: 'ele-form',
3696
3688
  components: {
3697
- EleSelect: __vue_component__$k,
3698
- EleInput: __vue_component__$l,
3699
- EleTextarea: __vue_component__$b,
3700
- EleUpload: __vue_component__$9,
3701
- EleSelectEntity: __vue_component__$8,
3702
- EleInputNumber: __vue_component__$7,
3703
- EleCheckbox: __vue_component__$6,
3704
- EleRadio: __vue_component__$5
3689
+ EleSelect: __vue_component__$o,
3690
+ EleInput: __vue_component__$p,
3691
+ EleTextarea: __vue_component__$g,
3692
+ EleUpload: __vue_component__$e,
3693
+ EleSelectEntity: __vue_component__$d,
3694
+ EleInputNumber: __vue_component__$c,
3695
+ EleCheckbox: __vue_component__$b,
3696
+ EleRadio: __vue_component__$a
3705
3697
  },
3706
3698
  props: {
3699
+ formName: {
3700
+ type: [Number, String],
3701
+ default: 'coordinated'
3702
+ },
3707
3703
  elements: {
3708
3704
  type: Array,
3709
3705
  default: () => []
3710
3706
  }
3711
3707
  },
3712
3708
  data() {
3713
- return {
3714
- some: '1',
3715
- form: this.$form.createForm(this, {
3716
- name: 'coordinated'
3717
- })
3718
- };
3709
+ return {};
3710
+ },
3711
+ computed: {
3712
+ form() {
3713
+ return this.$form.createForm(this, {
3714
+ name: this.formName
3715
+ });
3716
+ },
3717
+ exposedMethods() {
3718
+ return {
3719
+ setFieldsValue: this.setFieldsValue,
3720
+ getFieldsValue: this.getFieldsValue
3721
+ };
3722
+ }
3719
3723
  },
3720
3724
  methods: {
3721
- onChangeTextarea(value, props) {
3725
+ evalDisabledExpression() {
3726
+ this.elements.forEach(ele => {
3727
+ const {
3728
+ disabled
3729
+ } = ele;
3730
+ const ret = this.executeExpression(disabled);
3731
+ this.$set(ele, '_disabled', ret);
3732
+ });
3733
+ },
3734
+ executeExpression(expression) {
3735
+ if (type.isBool(expression)) return expression;
3736
+ if (type.isEmpty(expression)) return false;
3737
+ return parse(expression, {
3738
+ ...this.getFieldsValue()
3739
+ });
3740
+ },
3741
+ onChange(value, props) {
3742
+ const {
3743
+ name
3744
+ } = props;
3722
3745
  this.setFieldsValue({
3723
- [props.name]: value
3746
+ [name]: value
3747
+ });
3748
+ this.evalDisabledExpression();
3749
+ this.$emit('change', {
3750
+ value,
3751
+ props,
3752
+ exposed: {
3753
+ ...this.exposedMethods
3754
+ }
3724
3755
  });
3725
3756
  },
3757
+ collectDefaultValues() {
3758
+ const ret = this.elements.reduce((ret, props) => {
3759
+ const {
3760
+ name,
3761
+ defaultValue
3762
+ } = props;
3763
+ if (defaultValue) {
3764
+ ret[name] = defaultValue;
3765
+ }
3766
+ return ret;
3767
+ }, {});
3768
+ return ret;
3769
+ },
3770
+ setDefaultValues() {
3771
+ const defaultValues = this.collectDefaultValues();
3772
+ this.setFieldsValue(defaultValues);
3773
+ },
3726
3774
  validateFields() {
3727
3775
  let ret = false;
3728
3776
  this.form.validateFields((error, values) => {
@@ -3736,14 +3784,18 @@ var script$4 = {
3736
3784
  getFieldsValue() {
3737
3785
  return this.form.getFieldsValue();
3738
3786
  }
3787
+ },
3788
+ mounted() {
3789
+ this.setDefaultValues();
3790
+ this.evalDisabledExpression();
3739
3791
  }
3740
3792
  };
3741
3793
 
3742
3794
  /* script */
3743
- const __vue_script__$4 = script$4;
3795
+ const __vue_script__$9 = script$9;
3744
3796
 
3745
3797
  /* template */
3746
- var __vue_render__$4 = function () {
3798
+ var __vue_render__$9 = function () {
3747
3799
  var _vm = this;
3748
3800
  var _h = _vm.$createElement;
3749
3801
  var _c = _vm._self._c || _h;
@@ -3783,7 +3835,15 @@ var __vue_render__$4 = function () {
3783
3835
  },
3784
3836
  ],
3785
3837
  staticStyle: { width: "100%" },
3786
- attrs: { "max-length": ele.maxLength },
3838
+ attrs: {
3839
+ disabled: _vm.executeExpression(ele._disabled),
3840
+ "max-length": ele.maxLength,
3841
+ },
3842
+ on: {
3843
+ change: function ($event) {
3844
+ return _vm.onChange($event, ele)
3845
+ },
3846
+ },
3787
3847
  }),
3788
3848
  ],
3789
3849
  1
@@ -3809,12 +3869,13 @@ var __vue_render__$4 = function () {
3809
3869
  attrs: {
3810
3870
  "max-length": ele.maxLength,
3811
3871
  autosize: ele.autosize,
3872
+ disabled: _vm.executeExpression(ele._disabled),
3812
3873
  "allow-clear": ele.allowClear,
3813
3874
  placeholder: ele.placeholder,
3814
3875
  },
3815
3876
  on: {
3816
- "on-change": function ($event) {
3817
- return _vm.onChangeTextarea($event, ele)
3877
+ change: function ($event) {
3878
+ return _vm.onChange($event, ele)
3818
3879
  },
3819
3880
  },
3820
3881
  }),
@@ -3839,7 +3900,12 @@ var __vue_render__$4 = function () {
3839
3900
  },
3840
3901
  ],
3841
3902
  staticStyle: { width: "100%" },
3842
- attrs: { "data-source": ele.optionList },
3903
+ attrs: {
3904
+ "data-source": ele.optionList,
3905
+ disabled: _vm.executeExpression(ele._disabled),
3906
+ code: ele.code,
3907
+ params: ele.params,
3908
+ },
3843
3909
  }),
3844
3910
  ],
3845
3911
  1
@@ -3867,6 +3933,31 @@ var __vue_render__$4 = function () {
3867
3933
  1
3868
3934
  ),
3869
3935
  ]
3936
+ : ele.type == "ele-date-range"
3937
+ ? [
3938
+ _c(
3939
+ "a-form-item",
3940
+ { attrs: { label: ele.label + ":" } },
3941
+ [
3942
+ _c("ele-date-range", {
3943
+ directives: [
3944
+ {
3945
+ name: "decorator",
3946
+ rawName: "v-decorator",
3947
+ value: [ele.name, { rules: ele.rules }],
3948
+ expression:
3949
+ "[ele.name, { rules: ele.rules }]",
3950
+ },
3951
+ ],
3952
+ staticStyle: { width: "100%" },
3953
+ attrs: {
3954
+ disabled: _vm.executeExpression(ele._disabled),
3955
+ },
3956
+ }),
3957
+ ],
3958
+ 1
3959
+ ),
3960
+ ]
3870
3961
  : ele.type == "SelectEntity"
3871
3962
  ? [
3872
3963
  _c(
@@ -3909,7 +4000,17 @@ var __vue_render__$4 = function () {
3909
4000
  },
3910
4001
  ],
3911
4002
  staticStyle: { width: "100%" },
3912
- attrs: { precision: ele.precision },
4003
+ attrs: {
4004
+ precision: ele.precision,
4005
+ disabled: _vm.executeExpression(
4006
+ ele._disabled
4007
+ ),
4008
+ },
4009
+ on: {
4010
+ change: function ($event) {
4011
+ return _vm.onChange($event, ele)
4012
+ },
4013
+ },
3913
4014
  },
3914
4015
  "ele-input-number",
3915
4016
  ele.props,
@@ -3937,7 +4038,10 @@ var __vue_render__$4 = function () {
3937
4038
  },
3938
4039
  ],
3939
4040
  staticStyle: { width: "100%" },
3940
- attrs: { "data-source": ele.optionList },
4041
+ attrs: {
4042
+ "data-source": ele.optionList,
4043
+ disabled: _vm.executeExpression(ele._disabled),
4044
+ },
3941
4045
  }),
3942
4046
  ],
3943
4047
  1
@@ -3960,7 +4064,15 @@ var __vue_render__$4 = function () {
3960
4064
  },
3961
4065
  ],
3962
4066
  staticStyle: { width: "100%" },
3963
- attrs: { "data-source": ele.optionList },
4067
+ attrs: {
4068
+ disabled: _vm.executeExpression(ele._disabled),
4069
+ "data-source": ele.optionList,
4070
+ },
4071
+ on: {
4072
+ change: function ($event) {
4073
+ return _vm.onChange($event, ele)
4074
+ },
4075
+ },
3964
4076
  }),
3965
4077
  ],
3966
4078
  1
@@ -3980,42 +4092,1061 @@ var __vue_render__$4 = function () {
3980
4092
  1
3981
4093
  )
3982
4094
  };
3983
- var __vue_staticRenderFns__$4 = [];
3984
- __vue_render__$4._withStripped = true;
4095
+ var __vue_staticRenderFns__$9 = [];
4096
+ __vue_render__$9._withStripped = true;
3985
4097
 
3986
4098
  /* style */
3987
- const __vue_inject_styles__$4 = function (inject) {
4099
+ const __vue_inject_styles__$9 = function (inject) {
3988
4100
  if (!inject) return
3989
- inject("data-v-e06c4e7c_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue","sourcesContent":["\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4101
+ inject("data-v-18e5775b_0", { source: ".ele__form--wrapper[data-v-18e5775b] {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/form/src/index.vue","index.vue"],"names":[],"mappings":"AA6MA;EACA,gBAAA;AC5MA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"ele__form--wrapper\">\n <a-form :form=\"form\" layout=\"vertical\" class=\"ant-advanced-search-form\">\n <a-row :gutter=\"24\">\n <a-col :span=\"ele.span\" v-for=\"ele in elements\" :key=\"ele.name\">\n <template v-if=\"ele.type == 'Input'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-input \n @change=\"onChange($event, ele)\" \n :disabled=\"executeExpression(ele._disabled)\" \n :max-length=\"ele.maxLength\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-input>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'Textarea'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-textarea \n @change=\"onChange($event, ele)\"\n :max-length=\"ele.maxLength\"\n :autosize=\"ele.autosize\"\n :disabled=\"executeExpression(ele._disabled)\"\n :allow-clear=\"ele.allowClear\"\n :placeholder=\"ele.placeholder\"\n v-decorator=\"[ele.name, { rules: ele.rules }]\"\n style=\"width:100%;\">\n </ele-textarea>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'Select'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-select \n :data-source=\"ele.optionList\" \n :disabled=\"executeExpression(ele._disabled)\" \n :code=\"ele.code\" \n :params=\"ele.params\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-select>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'ele-upload'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-upload v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-upload>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'ele-date-range'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-date-range \n :disabled=\"executeExpression(ele._disabled)\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-date-range>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'SelectEntity'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-select-entity \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-select-entity>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'InputNumber'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-input-number \n @change=\"onChange($event, ele)\" \n :precision=\"ele.precision\" \n :disabled=\"executeExpression(ele._disabled)\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n v-bind=\"ele.props\" \n style=\"width:100%;\">\n </ele-input-number>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'Checkbox'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-checkbox \n :data-source=\"ele.optionList\" \n :disabled=\"executeExpression(ele._disabled)\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-checkbox>\n </a-form-item>\n </template>\n <template v-else-if=\"ele.type == 'Radio'\">\n <a-form-item :label=\"`${ele.label}:`\">\n <ele-radio \n @change=\"onChange($event, ele)\" \n :disabled=\"executeExpression(ele._disabled)\" \n :data-source=\"ele.optionList\" \n v-decorator=\"[ele.name, { rules: ele.rules }]\" \n style=\"width:100%;\">\n </ele-radio>\n </a-form-item>\n </template>\n </a-col>\n </a-row>\n </a-form>\n </div>\n</template>\n\n<script>\nimport EleSelect from '../../select/src/index.vue'\nimport EleInput from '../../input/src/index.vue'\nimport EleTextarea from '../../textarea/src/index.vue'\nimport EleUpload from '../../upload/src/index.vue'\nimport EleSelectEntity from '../../select-entity/src/index.vue'\nimport EleInputNumber from '../../input-number/src/index.vue'\nimport EleCheckbox from '../../checkbox/src/index.vue'\nimport EleRadio from '../../radio/src/index.vue'\nimport { parse } from '@idooel/expression'\nimport { type } from '@idooel/shared'\nexport default {\n name: 'ele-form',\n components: {\n EleSelect,\n EleInput,\n EleTextarea,\n EleUpload,\n EleSelectEntity,\n EleInputNumber,\n EleCheckbox,\n EleRadio\n },\n props: {\n formName: {\n type: [Number, String],\n default: 'coordinated'\n },\n elements: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {}\n },\n computed: {\n form () {\n return this.$form.createForm(this, { name: this.formName })\n },\n exposedMethods () {\n return {\n setFieldsValue: this.setFieldsValue,\n getFieldsValue: this.getFieldsValue\n }\n }\n },\n methods: {\n evalDisabledExpression () {\n this.elements.forEach(ele => {\n const { disabled } = ele\n const ret = this.executeExpression(disabled)\n this.$set(ele, '_disabled', ret)\n })\n },\n executeExpression (expression) {\n if (type.isBool(expression)) return expression\n if (type.isEmpty(expression)) return false\n return parse(expression, { ...this.getFieldsValue() })\n },\n onChange (value, props) {\n const { name } = props\n this.setFieldsValue({ [name]: value })\n this.evalDisabledExpression()\n this.$emit('change', { value, props, exposed: { ...this.exposedMethods } })\n },\n collectDefaultValues () {\n const ret = this.elements.reduce((ret, props) => {\n const { name, defaultValue } = props\n if (defaultValue) {\n ret[name] = defaultValue\n }\n return ret\n }, {})\n return ret\n },\n setDefaultValues () {\n const defaultValues = this.collectDefaultValues()\n this.setFieldsValue(defaultValues)\n },\n validateFields () {\n let ret = false\n this.form.validateFields((error, values) => {\n ret = !error\n })\n return ret\n },\n setFieldsValue (props = {}) {\n this.form.setFieldsValue(props)\n },\n getFieldsValue () {\n return this.form.getFieldsValue()\n }\n },\n mounted() {\n this.setDefaultValues()\n this.evalDisabledExpression()\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele__form--wrapper {\n background: #fff;\n .ant-form-item {\n }\n}\n</style>",".ele__form--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
3990
4102
 
3991
4103
  };
3992
4104
  /* scoped */
3993
- const __vue_scope_id__$4 = "data-v-e06c4e7c";
4105
+ const __vue_scope_id__$9 = "data-v-18e5775b";
3994
4106
  /* module identifier */
3995
- const __vue_module_identifier__$4 = undefined;
4107
+ const __vue_module_identifier__$9 = undefined;
4108
+ /* functional template */
4109
+ const __vue_is_functional_template__$9 = false;
4110
+ /* style inject SSR */
4111
+
4112
+ /* style inject shadow dom */
4113
+
4114
+
4115
+
4116
+ const __vue_component__$9 = /*#__PURE__*/normalizeComponent(
4117
+ { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
4118
+ __vue_inject_styles__$9,
4119
+ __vue_script__$9,
4120
+ __vue_scope_id__$9,
4121
+ __vue_is_functional_template__$9,
4122
+ __vue_module_identifier__$9,
4123
+ false,
4124
+ createInjector,
4125
+ undefined,
4126
+ undefined
4127
+ );
4128
+
4129
+ const BUILT_IN_EVENT_NAMES = {
4130
+ SUBMIT: 'submit',
4131
+ CANCEL: 'cancel',
4132
+ INCREASE: 'increase',
4133
+ DELETE: 'delete',
4134
+ NEXT: 'next',
4135
+ PREVIOUS: 'previous'
4136
+ };
4137
+ const RESERVE_EVENT_NAMES = {
4138
+ WATCH_FORM_STATUS: 'watch-form-status'
4139
+ };
4140
+ const parseFieldMap = (fieldMap = {}, dataSource = {}) => {
4141
+ let ret = {};
4142
+ Object.keys(fieldMap).forEach(key => {
4143
+ ret[fieldMap[key]] = parse(key, dataSource);
4144
+ });
4145
+ return ret;
4146
+ };
4147
+
4148
+ //
4149
+ var script$8 = {
4150
+ name: 'ele-form-group-model',
4151
+ components: {
4152
+ [__vue_component__$9.name]: __vue_component__$9,
4153
+ [__vue_component__$i.name]: __vue_component__$i
4154
+ },
4155
+ props: {
4156
+ mode: {
4157
+ type: String
4158
+ },
4159
+ fieldName: {
4160
+ type: String,
4161
+ default: 'formGroup'
4162
+ },
4163
+ groupMeta: {
4164
+ type: Array,
4165
+ default: () => []
4166
+ },
4167
+ footerMeta: {
4168
+ type: Object,
4169
+ default: () => {}
4170
+ },
4171
+ preRequest: {
4172
+ type: Object,
4173
+ default: () => {}
4174
+ },
4175
+ infoRequest: {
4176
+ type: Object,
4177
+ default: () => {}
4178
+ },
4179
+ submitRequest: {
4180
+ type: Object,
4181
+ default: () => {}
4182
+ }
4183
+ },
4184
+ data() {
4185
+ return {
4186
+ increaseCount: 1
4187
+ };
4188
+ },
4189
+ computed: {
4190
+ showFooterMeta() {
4191
+ return !type.isEmpty(this.footerMeta);
4192
+ },
4193
+ formRefBase() {
4194
+ return v4();
4195
+ },
4196
+ footerElements() {
4197
+ const {
4198
+ elements
4199
+ } = this.footerMeta;
4200
+ return elements.call(this);
4201
+ },
4202
+ assignAttrForEvents() {
4203
+ const events = this.footerElements.reduce((ret, ele) => {
4204
+ ret[ele.eventName] = e => {
4205
+ this.$emit(ele.eventName || 'click', {
4206
+ ...e
4207
+ });
4208
+ };
4209
+ return ret;
4210
+ }, {});
4211
+ return {
4212
+ ...this.$listeners,
4213
+ ...events,
4214
+ [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
4215
+ [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL],
4216
+ [BUILT_IN_EVENT_NAMES.INCREASE]: this[BUILT_IN_EVENT_NAMES.INCREASE]
4217
+ };
4218
+ },
4219
+ getFormRefs() {
4220
+ return this.groupMeta.map((group, idx) => {
4221
+ if (!group.isGenTpl) {
4222
+ return this.$refs[group.key || `${this.formRefBase}__${idx}`];
4223
+ }
4224
+ return void 0;
4225
+ }).filter(item => !!item).flat();
4226
+ },
4227
+ formModels() {
4228
+ if (this.mode === 'increase') {
4229
+ //TODO increase mode to return formModels
4230
+ return this.getFormRefs.map(form => {
4231
+ return form.getFieldsValue();
4232
+ });
4233
+ } else {
4234
+ return this.getFormRefs.map(form => {
4235
+ const {
4236
+ $vnode: {
4237
+ data: {
4238
+ ref
4239
+ }
4240
+ }
4241
+ } = form;
4242
+ return {
4243
+ key: ref,
4244
+ value: form.getFieldsValue()
4245
+ };
4246
+ }).reduce((ret, props) => {
4247
+ ret[props.key] = props.value;
4248
+ return ret;
4249
+ }, {});
4250
+ }
4251
+ }
4252
+ },
4253
+ methods: {
4254
+ execFieldMap(fieldMap = {}, dataSource = {}) {
4255
+ const ret = parseFieldMap(fieldMap, {
4256
+ _route: this.$route.query,
4257
+ ...dataSource
4258
+ });
4259
+ return ret;
4260
+ },
4261
+ onChangeFormStatus(props, key) {
4262
+ this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, {
4263
+ key,
4264
+ ...props
4265
+ });
4266
+ },
4267
+ async infoRequestTrigger() {
4268
+ const {
4269
+ url,
4270
+ requestType,
4271
+ params = {},
4272
+ fieldMap = {},
4273
+ headers = {}
4274
+ } = this.infoRequest;
4275
+ if (!url) return;
4276
+ net[requestType.toLowerCase()](url, {
4277
+ ...params,
4278
+ ...this.execFieldMap(fieldMap)
4279
+ }, {
4280
+ ...headers
4281
+ }).then(resp => {
4282
+ const {
4283
+ data = {}
4284
+ } = resp;
4285
+ if (this.mode === 'increase') {
4286
+ this.renderIncreaseForm(data);
4287
+ }
4288
+ });
4289
+ },
4290
+ async preRequestTrigger() {
4291
+ const {
4292
+ url,
4293
+ requestType = 'GET',
4294
+ params = {},
4295
+ fieldMap = {},
4296
+ headers = {}
4297
+ } = this.preRequest;
4298
+ if (!url) return;
4299
+ net[requestType.toLowerCase()](url, {
4300
+ ...params,
4301
+ ...fieldMap
4302
+ }, {
4303
+ ...headers
4304
+ }).then(resp => {
4305
+ const {
4306
+ data = {}
4307
+ } = resp;
4308
+ if (this.mode === 'increase') {
4309
+ this.renderIncreaseForm(data);
4310
+ }
4311
+ });
4312
+ },
4313
+ renderIncreaseForm(data = {}) {
4314
+ const formGroupValuesLength = data[this.fieldName].length;
4315
+ const genTplTarget = this.groupMeta.find(item => item.isGenTpl);
4316
+ const notGenTplPoolLength = this.groupMeta.filter(item => !item.isGenTpl).length;
4317
+ const genNum = formGroupValuesLength - notGenTplPoolLength;
4318
+ new Array(genNum).fill().forEach(() => {
4319
+ const form = this.genForm(genTplTarget);
4320
+ this.groupMeta.push(form);
4321
+ });
4322
+ const formGroupValues = data[this.fieldName];
4323
+ this.setFieldsValue(formGroupValues);
4324
+ },
4325
+ async submitRequestTrigger(props = {}) {
4326
+ const {
4327
+ url,
4328
+ requestType,
4329
+ headers = {},
4330
+ params = {},
4331
+ fieldMap = {}
4332
+ } = this.submitRequest;
4333
+ if (!url) return;
4334
+ const ret = await net[requestType.toLowerCase()](url, {
4335
+ ...params,
4336
+ ...this.execFieldMap(fieldMap, {
4337
+ ...this.formModels
4338
+ }),
4339
+ [this.fieldName]: this.formModels
4340
+ }, {
4341
+ headers
4342
+ }).then(resp => {
4343
+ this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, {
4344
+ ...props,
4345
+ formModel: {
4346
+ ...this.formModels,
4347
+ ...(resp.data || {})
4348
+ }
4349
+ });
4350
+ return resp.data;
4351
+ });
4352
+ return ret;
4353
+ },
4354
+ setFieldsValue(data = []) {
4355
+ this.getFormRefs.forEach((form, idx) => {
4356
+ form.setFieldsValue(data[idx]);
4357
+ });
4358
+ },
4359
+ [BUILT_IN_EVENT_NAMES.SUBMIT](props = {}) {
4360
+ const status = this.getFormRefs.map(form => {
4361
+ const status = form.validateFields();
4362
+ return status;
4363
+ }).every(item => item);
4364
+ if (status) {
4365
+ return this.submitRequestTrigger(props);
4366
+ } else {
4367
+ return false;
4368
+ }
4369
+ },
4370
+ [BUILT_IN_EVENT_NAMES.CANCEL](props = {}) {
4371
+ this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, {
4372
+ ...props
4373
+ });
4374
+ },
4375
+ genForm(base) {
4376
+ const {
4377
+ elements,
4378
+ title,
4379
+ buttonGroupMeta
4380
+ } = base;
4381
+ return {
4382
+ elements: JSON.parse(JSON.stringify(elements)),
4383
+ buttonGroupMeta,
4384
+ title: `${title}${this.increaseCount++}`,
4385
+ _gen: true
4386
+ };
4387
+ },
4388
+ handleClickDelete(props = {}, attr = {}, idx) {
4389
+ this.groupMeta.splice(idx, 1);
4390
+ this.$emit(BUILT_IN_EVENT_NAMES.DELETE, {
4391
+ ...props
4392
+ });
4393
+ },
4394
+ [BUILT_IN_EVENT_NAMES.INCREASE](props) {
4395
+ const genTplTarget = this.groupMeta.find(item => item.isGenTpl);
4396
+ const form = this.genForm(genTplTarget);
4397
+ this.groupMeta.push(form);
4398
+ }
4399
+ },
4400
+ async mounted() {
4401
+ await this.preRequestTrigger();
4402
+ await this.infoRequestTrigger();
4403
+ }
4404
+ };
4405
+
4406
+ /* script */
4407
+ const __vue_script__$8 = script$8;
4408
+
4409
+ /* template */
4410
+ var __vue_render__$8 = function () {
4411
+ var _vm = this;
4412
+ var _h = _vm.$createElement;
4413
+ var _c = _vm._self._c || _h;
4414
+ return _c(
4415
+ "div",
4416
+ { staticClass: "ele form-group-model__wrapper" },
4417
+ [
4418
+ _vm._l(_vm.groupMeta, function (group, idx) {
4419
+ return [
4420
+ !group.isGenTpl
4421
+ ? _c(
4422
+ "div",
4423
+ {
4424
+ key: group.key || idx,
4425
+ staticClass: "form-group-model__from",
4426
+ },
4427
+ [
4428
+ _c("div", { staticClass: "form-group-model__form--title" }, [
4429
+ _c("div", [_vm._v(_vm._s(group.title))]),
4430
+ _vm._v(" "),
4431
+ _c(
4432
+ "div",
4433
+ { staticClass: "form-group-model__form--buttons" },
4434
+ [
4435
+ group.buttonGroupMeta
4436
+ ? _c(
4437
+ "ele-button-group",
4438
+ _vm._g(
4439
+ {
4440
+ attrs: {
4441
+ "data-source":
4442
+ group.buttonGroupMeta.elements.call(this),
4443
+ },
4444
+ on: {
4445
+ delete: function ($event) {
4446
+ return _vm.handleClickDelete(
4447
+ $event,
4448
+ group,
4449
+ idx
4450
+ )
4451
+ },
4452
+ },
4453
+ },
4454
+ _vm.assignAttrForEvents
4455
+ )
4456
+ )
4457
+ : _vm._e(),
4458
+ ],
4459
+ 1
4460
+ ),
4461
+ ]),
4462
+ _vm._v(" "),
4463
+ _c(
4464
+ "div",
4465
+ { staticClass: "form-group-model__form--content" },
4466
+ [
4467
+ _c("ele-form", {
4468
+ ref: group.key || _vm.formRefBase + "__" + idx,
4469
+ refInFor: true,
4470
+ attrs: {
4471
+ "form-name": group.key || idx,
4472
+ elements: group.elements,
4473
+ },
4474
+ on: {
4475
+ change: function ($event) {
4476
+ return _vm.onChangeFormStatus(
4477
+ $event,
4478
+ group.key || idx
4479
+ )
4480
+ },
4481
+ },
4482
+ }),
4483
+ ],
4484
+ 1
4485
+ ),
4486
+ ]
4487
+ )
4488
+ : _vm._e(),
4489
+ ]
4490
+ }),
4491
+ _vm._v(" "),
4492
+ _vm.showFooterMeta
4493
+ ? _c(
4494
+ "div",
4495
+ { staticClass: "form-group-model__form--footer" },
4496
+ [
4497
+ _c(
4498
+ "ele-button-group",
4499
+ _vm._g(
4500
+ { attrs: { "data-source": _vm.footerElements } },
4501
+ _vm.assignAttrForEvents
4502
+ )
4503
+ ),
4504
+ ],
4505
+ 1
4506
+ )
4507
+ : _vm._e(),
4508
+ ],
4509
+ 2
4510
+ )
4511
+ };
4512
+ var __vue_staticRenderFns__$8 = [];
4513
+ __vue_render__$8._withStripped = true;
4514
+
4515
+ /* style */
4516
+ const __vue_inject_styles__$8 = function (inject) {
4517
+ if (!inject) return
4518
+ inject("data-v-cf97e098_0", { source: ".ele.form-group-model__wrapper[data-v-cf97e098] {\n background: unset;\n padding-bottom: 80px;\n}\n.ele.form-group-model__wrapper .form-group-model__from[data-v-cf97e098] {\n background: #fff;\n margin-top: 16px;\n}\n.ele.form-group-model__wrapper .form-group-model__from[data-v-cf97e098]:first-child {\n margin-top: unset;\n}\n.ele.form-group-model__wrapper .form-group-model__from .form-group-model__form--title[data-v-cf97e098] {\n width: 100%;\n height: 56px;\n padding: 0 16px;\n border-bottom: 1px solid;\n border-color: var(--idooel-form-title-border-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.ele.form-group-model__wrapper .form-group-model__from .form-group-model__form--content[data-v-cf97e098] {\n padding: 16px;\n}\n.ele.form-group-model__wrapper .form-group-model__form--footer[data-v-cf97e098] {\n width: 100%;\n height: 64px;\n background: #fff;\n position: fixed;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/form-group-model/src/index.vue","index.vue"],"names":[],"mappings":"AA4NA;EACA,iBAAA;EACA,oBAAA;AC3NA;AD4NA;EACA,gBAAA;EACA,gBAAA;AC1NA;AD2NA;EACA,iBAAA;ACzNA;AD2NA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,wBAAA;EACA,mDAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8BAAA;ACzNA;AD2NA;EACA,aAAA;ACzNA;AD4NA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;AC1NA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"ele form-group-model__wrapper\">\n <template v-for=\"(group, idx) in groupMeta\">\n <div \n class=\"form-group-model__from\"\n v-if=\"!group.isGenTpl\"\n :key=\"group.key || idx\">\n <div class=\"form-group-model__form--title\">\n <div>{{ group.title }}</div>\n <div class=\"form-group-model__form--buttons\">\n <ele-button-group v-if=\"group.buttonGroupMeta\" v-on=\"assignAttrForEvents\" @delete=\"handleClickDelete($event, group, idx)\" :data-source=\"group.buttonGroupMeta.elements.call(this)\"></ele-button-group>\n </div>\n </div>\n <div class=\"form-group-model__form--content\">\n <ele-form @change=\"onChangeFormStatus($event, group.key || idx)\" :form-name=\"group.key || idx\" :ref=\"group.key || `${formRefBase}__${idx}`\" :elements=\"group.elements\"></ele-form>\n </div>\n </div>\n </template>\n <div v-if=\"showFooterMeta\" class=\"form-group-model__form--footer\">\n <ele-button-group v-on=\"assignAttrForEvents\" :data-source=\"footerElements\"></ele-button-group>\n </div>\n </div>\n</template>\n\n<script>\nimport Form from '../../form/src/index.vue'\nimport { BUILT_IN_EVENT_NAMES, RESERVE_EVENT_NAMES, parseFieldMap } from '../../utils'\nimport { v4 as uuidv4 } from 'uuid'\nimport { type, net } from '@idooel/shared'\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\nexport default {\n name: 'ele-form-group-model',\n components: {\n [Form.name]: Form,\n [EleButtonGroup.name]: EleButtonGroup\n },\n props: {\n mode: {\n type: String\n },\n fieldName: {\n type: String,\n default: 'formGroup'\n },\n groupMeta: {\n type: Array,\n default: () => []\n },\n footerMeta: {\n type: Object,\n default: () => {}\n },\n preRequest: {\n type: Object,\n default: () => {}\n },\n infoRequest: {\n type: Object,\n default: () => {}\n },\n submitRequest: {\n type: Object,\n default: () => {}\n }\n },\n data () {\n return {\n increaseCount: 1\n }\n },\n computed: {\n showFooterMeta () {\n return !type.isEmpty(this.footerMeta)\n },\n formRefBase () {\n return uuidv4()\n },\n footerElements () {\n const { elements } = this.footerMeta\n return elements.call(this)\n },\n assignAttrForEvents () {\n const events = this.footerElements.reduce((ret, ele) => {\n ret[ele.eventName] = (e) => {\n this.$emit(ele.eventName || 'click', { ...e })\n }\n return ret\n }, {})\n return {\n ...this.$listeners,\n ...events,\n [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],\n [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL],\n [BUILT_IN_EVENT_NAMES.INCREASE]: this[BUILT_IN_EVENT_NAMES.INCREASE]\n }\n },\n getFormRefs () {\n return this.groupMeta.map((group, idx) => {\n if (!group.isGenTpl) {\n return this.$refs[group.key || `${this.formRefBase}__${idx}`]\n }\n return void 0\n }).filter(item => !!item).flat()\n },\n formModels () {\n if (this.mode === 'increase') {\n //TODO increase mode to return formModels\n return this.getFormRefs.map(form => {\n return form.getFieldsValue()\n })\n } else {\n return this.getFormRefs.map(form => {\n const { $vnode: { data: { ref } } } = form\n return {\n key: ref,\n value: form.getFieldsValue()\n }\n }).reduce((ret, props) => {\n ret[props.key] = props.value\n return ret\n }, {})\n }\n }\n },\n methods: {\n execFieldMap (fieldMap = {}, dataSource = {}) {\n const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})\n return ret\n },\n onChangeFormStatus (props, key) {\n this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, { key, ...props })\n },\n async infoRequestTrigger () {\n const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest\n if (!url) return\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {\n const { data = {} } = resp\n if (this.mode === 'increase') {\n this.renderIncreaseForm(data)\n }\n })\n },\n async preRequestTrigger () {\n const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest\n if (!url) return\n net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers }).then(resp => {\n const { data = {} } = resp\n if (this.mode === 'increase') {\n this.renderIncreaseForm(data)\n }\n })\n },\n renderIncreaseForm (data = {}) {\n const formGroupValuesLength = data[this.fieldName].length\n const genTplTarget = this.groupMeta.find(item => item.isGenTpl)\n const notGenTplPoolLength = this.groupMeta.filter(item => !item.isGenTpl).length\n const genNum = formGroupValuesLength - notGenTplPoolLength\n new Array(genNum).fill().forEach(() => {\n const form = this.genForm(genTplTarget)\n this.groupMeta.push(form)\n })\n const formGroupValues = data[this.fieldName]\n this.setFieldsValue(formGroupValues)\n },\n async submitRequestTrigger (props = {}) {\n const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest\n if (!url) return\n const ret = await net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), [this.fieldName]: this.formModels }, { headers }).then(resp => {\n this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels, ...resp.data || {} } })\n return resp.data\n })\n return ret\n },\n setFieldsValue (data = []) {\n this.getFormRefs.forEach((form, idx) => {\n form.setFieldsValue(data[idx])\n })\n },\n [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {\n const status = this.getFormRefs.map(form => {\n const status = form.validateFields()\n return status\n }).every(item => item)\n if (status) {\n return this.submitRequestTrigger(props)\n } else {\n return false\n }\n },\n [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {\n this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })\n },\n genForm (base) {\n const { elements, title, buttonGroupMeta } = base\n return {\n elements: JSON.parse(JSON.stringify(elements)),\n buttonGroupMeta,\n title: `${title}${this.increaseCount++}`,\n _gen: true\n }\n },\n handleClickDelete (props = {}, attr = {}, idx) {\n this.groupMeta.splice(idx, 1)\n this.$emit(BUILT_IN_EVENT_NAMES.DELETE, { ...props })\n },\n [BUILT_IN_EVENT_NAMES.INCREASE] (props) {\n const genTplTarget = this.groupMeta.find(item => item.isGenTpl)\n const form = this.genForm(genTplTarget)\n this.groupMeta.push(form)\n }\n },\n async mounted() {\n await this.preRequestTrigger()\n await this.infoRequestTrigger()\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele {\n &.form-group-model__wrapper {\n background: unset;\n padding-bottom: 80px;\n .form-group-model__from {\n background: #fff;\n margin-top: 16px;\n &:first-child {\n margin-top: unset;\n }\n .form-group-model__form--title {\n width: 100%;\n height: 56px;\n padding: 0 16px;\n border-bottom: 1px solid;\n border-color: var(--idooel-form-title-border-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n .form-group-model__form--content {\n padding: 16px;\n }\n }\n .form-group-model__form--footer {\n width: 100%;\n height: 64px;\n background: #fff;\n position: fixed;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n }\n }\n}\n</style>",".ele.form-group-model__wrapper {\n background: unset;\n padding-bottom: 80px;\n}\n.ele.form-group-model__wrapper .form-group-model__from {\n background: #fff;\n margin-top: 16px;\n}\n.ele.form-group-model__wrapper .form-group-model__from:first-child {\n margin-top: unset;\n}\n.ele.form-group-model__wrapper .form-group-model__from .form-group-model__form--title {\n width: 100%;\n height: 56px;\n padding: 0 16px;\n border-bottom: 1px solid;\n border-color: var(--idooel-form-title-border-color);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.ele.form-group-model__wrapper .form-group-model__from .form-group-model__form--content {\n padding: 16px;\n}\n.ele.form-group-model__wrapper .form-group-model__form--footer {\n width: 100%;\n height: 64px;\n background: #fff;\n position: fixed;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4519
+
4520
+ };
4521
+ /* scoped */
4522
+ const __vue_scope_id__$8 = "data-v-cf97e098";
4523
+ /* module identifier */
4524
+ const __vue_module_identifier__$8 = undefined;
4525
+ /* functional template */
4526
+ const __vue_is_functional_template__$8 = false;
4527
+ /* style inject SSR */
4528
+
4529
+ /* style inject shadow dom */
4530
+
4531
+
4532
+
4533
+ const __vue_component__$8 = /*#__PURE__*/normalizeComponent(
4534
+ { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
4535
+ __vue_inject_styles__$8,
4536
+ __vue_script__$8,
4537
+ __vue_scope_id__$8,
4538
+ __vue_is_functional_template__$8,
4539
+ __vue_module_identifier__$8,
4540
+ false,
4541
+ createInjector,
4542
+ undefined,
4543
+ undefined
4544
+ );
4545
+
4546
+ //
4547
+ var script$7 = {
4548
+ name: 'ele-form-model',
4549
+ components: {
4550
+ EleButtonGroup: __vue_component__$i
4551
+ },
4552
+ props: {
4553
+ title: {
4554
+ type: String
4555
+ },
4556
+ formMeta: {
4557
+ type: Object
4558
+ },
4559
+ footerMeta: {
4560
+ type: Object
4561
+ }
4562
+ },
4563
+ data() {
4564
+ return {};
4565
+ },
4566
+ computed: {
4567
+ formRef() {
4568
+ return v4();
4569
+ },
4570
+ assignAttrForEvents() {
4571
+ const events = this.footerElements.reduce((ret, ele) => {
4572
+ ret[ele.eventName] = e => {
4573
+ this.$emit(ele.eventName || 'click', {
4574
+ ...e,
4575
+ formModel: this.formModels
4576
+ });
4577
+ };
4578
+ return ret;
4579
+ }, {});
4580
+ return {
4581
+ ...this.$listeners,
4582
+ ...events,
4583
+ [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
4584
+ [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]
4585
+ };
4586
+ },
4587
+ elements() {
4588
+ const {
4589
+ elements
4590
+ } = this.formMeta;
4591
+ return elements;
4592
+ },
4593
+ preRequest() {
4594
+ const {
4595
+ preRequest
4596
+ } = this.formMeta;
4597
+ return preRequest;
4598
+ },
4599
+ infoRequest() {
4600
+ const {
4601
+ infoRequest
4602
+ } = this.formMeta;
4603
+ return infoRequest;
4604
+ },
4605
+ submitRequest() {
4606
+ const {
4607
+ submitRequest
4608
+ } = this.formMeta;
4609
+ return submitRequest;
4610
+ },
4611
+ footerElements() {
4612
+ const {
4613
+ elements
4614
+ } = this.footerMeta;
4615
+ return elements.call(this);
4616
+ },
4617
+ formModels() {
4618
+ return this.$refs[this.formRef].getFieldsValue();
4619
+ }
4620
+ },
4621
+ methods: {
4622
+ execFieldMap(fieldMap = {}, dataSource = {}) {
4623
+ const ret = parseFieldMap(fieldMap, {
4624
+ _route: this.$route.query,
4625
+ ...dataSource
4626
+ });
4627
+ return ret;
4628
+ },
4629
+ async submitRequestTrigger(props = {}) {
4630
+ const {
4631
+ url,
4632
+ requestType,
4633
+ headers = {},
4634
+ params = {},
4635
+ fieldMap = {}
4636
+ } = this.submitRequest;
4637
+ if (!url) return;
4638
+ const ret = await net[requestType.toLowerCase()](url, {
4639
+ ...params,
4640
+ ...this.execFieldMap(fieldMap, {
4641
+ ...this.formModels
4642
+ }),
4643
+ ...this.formModels
4644
+ }, {
4645
+ headers
4646
+ }).then(resp => {
4647
+ console.log(resp.data);
4648
+ this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, {
4649
+ ...props,
4650
+ formModel: {
4651
+ ...this.formModels,
4652
+ ...(resp.data || {})
4653
+ }
4654
+ });
4655
+ return resp.data;
4656
+ });
4657
+ return ret;
4658
+ },
4659
+ async infoRequestTrigger() {
4660
+ const {
4661
+ url,
4662
+ requestType,
4663
+ params = {},
4664
+ fieldMap = {},
4665
+ headers = {}
4666
+ } = this.infoRequest;
4667
+ if (!url) return;
4668
+ net[requestType.toLowerCase()](url, {
4669
+ ...params,
4670
+ ...this.execFieldMap(fieldMap)
4671
+ }, {
4672
+ ...headers
4673
+ }).then(resp => {
4674
+ const {
4675
+ data = {}
4676
+ } = resp;
4677
+ this.setFieldsValue(data);
4678
+ });
4679
+ },
4680
+ async preRequestTrigger() {
4681
+ const {
4682
+ url,
4683
+ requestType = 'GET',
4684
+ params = {},
4685
+ fieldMap = {},
4686
+ headers = {}
4687
+ } = this.preRequest;
4688
+ if (!url) return;
4689
+ await net[requestType.toLowerCase()](url, {
4690
+ ...params,
4691
+ ...fieldMap
4692
+ }, {
4693
+ ...headers
4694
+ });
4695
+ },
4696
+ setFieldsValue(props) {
4697
+ this.$refs[this.formRef].setFieldsValue(props);
4698
+ },
4699
+ validateFields() {
4700
+ return this.$refs[this.formRef].validateFields();
4701
+ },
4702
+ [BUILT_IN_EVENT_NAMES.SUBMIT](props = {}) {
4703
+ const status = this.$refs[this.formRef].validateFields();
4704
+ if (status) {
4705
+ //TODO fieldMap
4706
+ return this.submitRequestTrigger(props);
4707
+ } else {
4708
+ return false;
4709
+ }
4710
+ },
4711
+ [BUILT_IN_EVENT_NAMES.CANCEL](props = {}) {
4712
+ this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, {
4713
+ ...props
4714
+ });
4715
+ }
4716
+ },
4717
+ async mounted() {
4718
+ await this.preRequestTrigger();
4719
+ await this.infoRequestTrigger();
4720
+ }
4721
+ };
4722
+
4723
+ /* script */
4724
+ const __vue_script__$7 = script$7;
4725
+
4726
+ /* template */
4727
+ var __vue_render__$7 = function () {
4728
+ var _vm = this;
4729
+ var _h = _vm.$createElement;
4730
+ var _c = _vm._self._c || _h;
4731
+ return _c("div", { staticClass: "form__model--wrapper" }, [
4732
+ _vm.title
4733
+ ? _c("div", { staticClass: "form-model__title" }, [
4734
+ _vm._v("\n " + _vm._s(_vm.title) + "\n "),
4735
+ ])
4736
+ : _vm._e(),
4737
+ _vm._v(" "),
4738
+ _c(
4739
+ "div",
4740
+ { staticClass: "form-model__content" },
4741
+ [_c("ele-form", { ref: _vm.formRef, attrs: { elements: _vm.elements } })],
4742
+ 1
4743
+ ),
4744
+ _vm._v(" "),
4745
+ _vm.footerMeta
4746
+ ? _c(
4747
+ "div",
4748
+ { staticClass: "form-model__footer" },
4749
+ [
4750
+ _c(
4751
+ "ele-button-group",
4752
+ _vm._g(
4753
+ { attrs: { "data-source": _vm.footerElements } },
4754
+ _vm.assignAttrForEvents
4755
+ )
4756
+ ),
4757
+ ],
4758
+ 1
4759
+ )
4760
+ : _vm._e(),
4761
+ ])
4762
+ };
4763
+ var __vue_staticRenderFns__$7 = [];
4764
+ __vue_render__$7._withStripped = true;
4765
+
4766
+ /* style */
4767
+ const __vue_inject_styles__$7 = function (inject) {
4768
+ if (!inject) return
4769
+ inject("data-v-35189f14_0", { source: ".form__model--wrapper[data-v-35189f14] {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n}\n.form__model--wrapper .form-model__title[data-v-35189f14] {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content[data-v-35189f14] {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer[data-v-35189f14] {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/form-model/src/index.vue","index.vue"],"names":[],"mappings":"AAuIA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,gBAAA;ACtIA;ADuIA;EACA,YAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8DAAA;ACrIA;ADuIA;EACA,aAAA;ACrIA;ADuIA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,YAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;ACrIA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"form__model--wrapper\">\n <div class=\"form-model__title\" v-if=\"title\">\n {{ title }}\n </div>\n <div class=\"form-model__content\">\n <ele-form :ref=\"formRef\" :elements=\"elements\"></ele-form>\n </div>\n <div class=\"form-model__footer\" v-if=\"footerMeta\">\n <ele-button-group v-on=\"assignAttrForEvents\" :data-source=\"footerElements\"></ele-button-group>\n </div>\n </div>\n</template>\n\n<script>\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\nimport { BUILT_IN_EVENT_NAMES, parseFieldMap } from '../../utils'\nimport { v4 as uuidv4 } from 'uuid'\nimport { net } from '@idooel/shared'\nexport default {\n name: 'ele-form-model',\n components: {\n EleButtonGroup\n },\n props: {\n title: {\n type: String\n },\n formMeta: {\n type: Object\n },\n footerMeta: {\n type: Object\n }\n },\n data() {\n return {}\n },\n computed: {\n formRef () {\n return uuidv4()\n },\n assignAttrForEvents () {\n const events = this.footerElements.reduce((ret, ele) => {\n ret[ele.eventName] = (e) => {\n this.$emit(ele.eventName || 'click', { ...e, formModel: this.formModels })\n }\n return ret\n }, {})\n return {\n ...this.$listeners,\n ...events,\n [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],\n [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]\n }\n },\n elements () {\n const { elements } = this.formMeta\n return elements\n },\n preRequest () {\n const { preRequest } = this.formMeta\n return preRequest\n },\n infoRequest () {\n const { infoRequest } = this.formMeta\n return infoRequest\n },\n submitRequest () {\n const { submitRequest } = this.formMeta\n return submitRequest\n },\n footerElements () {\n const { elements } = this.footerMeta\n return elements.call(this)\n },\n formModels () {\n return this.$refs[this.formRef].getFieldsValue()\n }\n },\n methods: {\n execFieldMap (fieldMap = {}, dataSource = {}) {\n const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})\n return ret\n },\n async submitRequestTrigger (props = {}) {\n const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest\n if (!url) return\n const ret = await net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), ...this.formModels }, { headers }).then(resp => {\n console.log(resp.data)\n this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels, ...resp.data || {} } })\n return resp.data\n })\n return ret\n },\n async infoRequestTrigger () {\n const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest\n if (!url) return\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {\n const { data = {} } = resp\n this.setFieldsValue(data)\n })\n },\n async preRequestTrigger () {\n const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest\n if (!url) return\n await net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers })\n },\n setFieldsValue (props) {\n this.$refs[this.formRef].setFieldsValue(props)\n },\n validateFields () {\n return this.$refs[this.formRef].validateFields()\n },\n [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {\n const status = this.$refs[this.formRef].validateFields()\n if (status) {\n //TODO fieldMap\n return this.submitRequestTrigger(props)\n } else {\n return false\n }\n },\n [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {\n this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })\n }\n },\n async mounted() {\n await this.preRequestTrigger()\n await this.infoRequestTrigger()\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.form__model--wrapper {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n .form-model__title {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n }\n .form-model__content {\n padding: 16px;\n }\n .form-model__footer {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n }\n}\n</style>",".form__model--wrapper {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n}\n.form__model--wrapper .form-model__title {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4770
+
4771
+ };
4772
+ /* scoped */
4773
+ const __vue_scope_id__$7 = "data-v-35189f14";
4774
+ /* module identifier */
4775
+ const __vue_module_identifier__$7 = undefined;
4776
+ /* functional template */
4777
+ const __vue_is_functional_template__$7 = false;
4778
+ /* style inject SSR */
4779
+
4780
+ /* style inject shadow dom */
4781
+
4782
+
4783
+
4784
+ const __vue_component__$7 = /*#__PURE__*/normalizeComponent(
4785
+ { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
4786
+ __vue_inject_styles__$7,
4787
+ __vue_script__$7,
4788
+ __vue_scope_id__$7,
4789
+ __vue_is_functional_template__$7,
4790
+ __vue_module_identifier__$7,
4791
+ false,
4792
+ createInjector,
4793
+ undefined,
4794
+ undefined
4795
+ );
4796
+
4797
+ //
4798
+ var script$6 = {
4799
+ name: 'ele-step-model',
4800
+ components: {
4801
+ EleButtonGroup: __vue_component__$i
4802
+ },
4803
+ props: {
4804
+ stepMeta: {
4805
+ type: Object,
4806
+ default: () => ({})
4807
+ },
4808
+ footerMeta: {
4809
+ type: Object,
4810
+ default: () => ({})
4811
+ }
4812
+ },
4813
+ data() {
4814
+ return {
4815
+ current: 0,
4816
+ currentSlotComponentRef: null
4817
+ };
4818
+ },
4819
+ computed: {
4820
+ currentSlotName() {
4821
+ return this.scopedSlotsNames[this.current];
4822
+ },
4823
+ footerElements() {
4824
+ const {
4825
+ elements
4826
+ } = this.footerMeta;
4827
+ return elements.call(this);
4828
+ },
4829
+ assignAttrForEvents() {
4830
+ const events = this.footerElements.reduce((ret, ele) => {
4831
+ ret[ele.eventName] = e => {
4832
+ this.$emit(ele.eventName || 'click', {
4833
+ ...e,
4834
+ exposed: this.exposedMethods
4835
+ });
4836
+ };
4837
+ return ret;
4838
+ }, {});
4839
+ return {
4840
+ ...this.$listeners,
4841
+ ...events,
4842
+ [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],
4843
+ [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS]
4844
+ };
4845
+ },
4846
+ activeIndex() {
4847
+ const {
4848
+ activeIndex
4849
+ } = this.stepMeta;
4850
+ return activeIndex;
4851
+ },
4852
+ elements() {
4853
+ const {
4854
+ elements
4855
+ } = this.stepMeta;
4856
+ return elements;
4857
+ },
4858
+ scopedSlotsNames() {
4859
+ const slotNames = this.elements.map(item => item.key);
4860
+ return slotNames;
4861
+ },
4862
+ exposedMethods() {
4863
+ return {
4864
+ slotRef: this.currentSlotComponentRef,
4865
+ setCurrentStep: this.setCurrentStep,
4866
+ next: this.nextStep,
4867
+ prev: this.prevStep,
4868
+ current: this.current
4869
+ };
4870
+ }
4871
+ },
4872
+ watch: {
4873
+ activeIndex: {
4874
+ handler(idx) {
4875
+ this.current = idx;
4876
+ },
4877
+ immediate: true
4878
+ },
4879
+ current: {
4880
+ handler() {
4881
+ this.$nextTick(() => {
4882
+ this.currentSlotComponentRef = this.getCurrentSlotComponentRef();
4883
+ });
4884
+ },
4885
+ immediate: true
4886
+ }
4887
+ },
4888
+ methods: {
4889
+ getCurrentSlotComponentRef() {
4890
+ const includeMetaCmp = this.$children.find(child => child.meta);
4891
+ if (!includeMetaCmp) return null;
4892
+ const {
4893
+ $children: components
4894
+ } = includeMetaCmp;
4895
+ const target = components.find(cmp => cmp.$options._componentTag === 'ele-tpl');
4896
+ return target.getModel ? target.getModel() : null;
4897
+ },
4898
+ setCurrentStep(index) {
4899
+ this.current = index;
4900
+ },
4901
+ nextStep() {
4902
+ if (this.current >= this.elements.length - 1) return;
4903
+ this.current++;
4904
+ },
4905
+ prevStep() {
4906
+ if (this.current <= 0) return;
4907
+ this.current--;
4908
+ },
4909
+ [BUILT_IN_EVENT_NAMES.NEXT](props) {
4910
+ this.$emit(BUILT_IN_EVENT_NAMES.NEXT, {
4911
+ ...props,
4912
+ exposed: {
4913
+ ...this.exposedMethods
4914
+ }
4915
+ });
4916
+ },
4917
+ [BUILT_IN_EVENT_NAMES.PREVIOUS](props) {
4918
+ this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, {
4919
+ ...props,
4920
+ exposed: {
4921
+ ...this.exposedMethods
4922
+ }
4923
+ });
4924
+ }
4925
+ }
4926
+ };
4927
+
4928
+ /* script */
4929
+ const __vue_script__$6 = script$6;
4930
+
4931
+ /* template */
4932
+ var __vue_render__$6 = function () {
4933
+ var _vm = this;
4934
+ var _h = _vm.$createElement;
4935
+ var _c = _vm._self._c || _h;
4936
+ return _c("div", { staticClass: "ele-step-model__wrapper" }, [
4937
+ _c(
4938
+ "div",
4939
+ { staticClass: "ele-step-model__step--wrapper" },
4940
+ [
4941
+ _c(
4942
+ "a-steps",
4943
+ {
4944
+ staticClass: "ele-steps",
4945
+ attrs: { current: _vm.current, size: "small" },
4946
+ },
4947
+ _vm._l(_vm.elements, function (step) {
4948
+ return _c("a-step", { key: step.key, attrs: { title: step.title } })
4949
+ }),
4950
+ 1
4951
+ ),
4952
+ ],
4953
+ 1
4954
+ ),
4955
+ _vm._v(" "),
4956
+ _c(
4957
+ "div",
4958
+ { staticClass: "ele-step-model__content--wrapper" },
4959
+ [
4960
+ _vm._l(_vm.scopedSlotsNames, function (name) {
4961
+ return [
4962
+ _vm.currentSlotName == name
4963
+ ? _c(
4964
+ "div",
4965
+ {
4966
+ key: name,
4967
+ class: [
4968
+ "ele-step-model__slot",
4969
+ "ele-step-model__slot--" + name,
4970
+ ],
4971
+ },
4972
+ [_vm._t(name)],
4973
+ 2
4974
+ )
4975
+ : _vm._e(),
4976
+ ]
4977
+ }),
4978
+ ],
4979
+ 2
4980
+ ),
4981
+ _vm._v(" "),
4982
+ _c(
4983
+ "div",
4984
+ { staticClass: "ele-step-model__footer--wrapper" },
4985
+ [
4986
+ _c(
4987
+ "ele-button-group",
4988
+ _vm._g(
4989
+ { attrs: { "data-source": _vm.footerElements } },
4990
+ _vm.assignAttrForEvents
4991
+ )
4992
+ ),
4993
+ ],
4994
+ 1
4995
+ ),
4996
+ ])
4997
+ };
4998
+ var __vue_staticRenderFns__$6 = [];
4999
+ __vue_render__$6._withStripped = true;
5000
+
5001
+ /* style */
5002
+ const __vue_inject_styles__$6 = function (inject) {
5003
+ if (!inject) return
5004
+ inject("data-v-7e474ae0_0", { source: ".ele-step-model__wrapper[data-v-7e474ae0] {\n width: 100%;\n height: 100vh;\n position: relative;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper[data-v-7e474ae0] {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n background: #fff;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item[data-v-7e474ae0] {\n text-align: left;\n}\n.ele-step-model__wrapper .ele-step-model__content--wrapper[data-v-7e474ae0] {\n width: 100%;\n width: 100%;\n margin-top: 16px;\n margin-bottom: 16px;\n height: calc(100vh - 64px - 64px - 16px - 16px);\n overflow: auto;\n}\n.ele-step-model__wrapper .ele-step-model__footer--wrapper[data-v-7e474ae0] {\n width: 100%;\n height: 64px;\n background: #fff;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/step-model/src/index.vue","index.vue"],"names":[],"mappings":"AAsIA;EACA,WAAA;EACA,aAAA;EACA,kBAAA;ACrIA;ADsIA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,gBAAA;ACpIA;ADsIA;EACA,gBAAA;ACpIA;ADwIA;EACA,WAAA;EACA,WAAA;EACA,gBAAA;EACA,mBAAA;EACA,+CAAA;EACA,cAAA;ACtIA;ADwIA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,kBAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;ACtIA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <div class=\"ele-step-model__wrapper\">\n <div class=\"ele-step-model__step--wrapper\">\n <a-steps class=\"ele-steps\" :current=\"current\" size=\"small\">\n <a-step v-for=\"step in elements\" :title=\"step.title\" :key=\"step.key\" />\n </a-steps>\n </div>\n <div class=\"ele-step-model__content--wrapper\">\n <template v-for=\"name in scopedSlotsNames\">\n <div :key=\"name\" v-if=\"currentSlotName == name\" :class=\"['ele-step-model__slot', `ele-step-model__slot--${name}`]\">\n <slot :name=\"name\"></slot>\n </div>\n </template>\n </div>\n <div class=\"ele-step-model__footer--wrapper\">\n <ele-button-group v-on=\"assignAttrForEvents\" :data-source=\"footerElements\"></ele-button-group>\n </div>\n </div>\n</template>\n\n<script>\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\nimport { BUILT_IN_EVENT_NAMES } from '../../utils'\nexport default {\n name: 'ele-step-model',\n components: {\n EleButtonGroup\n },\n props: {\n stepMeta: {\n type: Object,\n default: () => ({})\n },\n footerMeta: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n current: 0,\n currentSlotComponentRef: null\n }\n },\n computed: {\n currentSlotName () {\n return this.scopedSlotsNames[this.current]\n },\n footerElements () {\n const { elements } = this.footerMeta\n return elements.call(this)\n },\n assignAttrForEvents () {\n const events = this.footerElements.reduce((ret, ele) => {\n ret[ele.eventName] = (e) => {\n this.$emit(ele.eventName || 'click', { ...e, exposed: this.exposedMethods })\n }\n return ret\n }, {})\n return {\n ...this.$listeners,\n ...events,\n [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],\n [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS]\n }\n },\n activeIndex () {\n const { activeIndex } = this.stepMeta\n return activeIndex\n },\n elements () {\n const { elements } = this.stepMeta\n return elements\n },\n scopedSlotsNames () {\n const slotNames = this.elements.map(item => item.key)\n return slotNames\n },\n exposedMethods () {\n return {\n slotRef: this.currentSlotComponentRef,\n setCurrentStep: this.setCurrentStep,\n next: this.nextStep,\n prev: this.prevStep,\n current: this.current\n }\n }\n },\n watch: {\n activeIndex: {\n handler (idx) {\n this.current = idx\n },\n immediate: true\n },\n current: {\n handler () {\n this.$nextTick(() => {\n this.currentSlotComponentRef = this.getCurrentSlotComponentRef()\n })\n },\n immediate: true\n }\n },\n methods: {\n getCurrentSlotComponentRef () {\n const includeMetaCmp = this.$children.find(child => child.meta)\n if (!includeMetaCmp) return null\n const { $children: components } = includeMetaCmp\n const target = components.find(cmp => cmp.$options._componentTag === 'ele-tpl')\n return target.getModel ? target.getModel() : null\n },\n setCurrentStep (index) {\n this.current = index\n },\n nextStep () {\n if (this.current >= this.elements.length - 1) return\n this.current ++\n },\n prevStep () {\n if (this.current <= 0) return\n this.current --\n },\n [BUILT_IN_EVENT_NAMES.NEXT] (props) {\n this.$emit(BUILT_IN_EVENT_NAMES.NEXT, { ...props, exposed: { ...this.exposedMethods } })\n },\n [BUILT_IN_EVENT_NAMES.PREVIOUS] (props) {\n this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, { ...props, exposed: { ...this.exposedMethods } })\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele-step-model__wrapper {\n width: 100%;\n height: 100vh;\n position: relative;\n .ele-step-model__step--wrapper {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n background: #fff;\n .ele-steps {\n .ant-steps-item {\n text-align: left;\n }\n }\n }\n .ele-step-model__content--wrapper {\n width: 100%;\n width: 100%;\n margin-top: 16px;\n margin-bottom: 16px;\n height: calc(100vh - 64px - 64px - 16px - 16px);\n overflow: auto;\n }\n .ele-step-model__footer--wrapper {\n width: 100%;\n height: 64px;\n background: #fff;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n }\n}\n</style>import meta from '@/views/tree-table-page/meta'\n",".ele-step-model__wrapper {\n width: 100%;\n height: 100vh;\n position: relative;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n background: #fff;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item {\n text-align: left;\n}\n.ele-step-model__wrapper .ele-step-model__content--wrapper {\n width: 100%;\n width: 100%;\n margin-top: 16px;\n margin-bottom: 16px;\n height: calc(100vh - 64px - 64px - 16px - 16px);\n overflow: auto;\n}\n.ele-step-model__wrapper .ele-step-model__footer--wrapper {\n width: 100%;\n height: 64px;\n background: #fff;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
5005
+
5006
+ };
5007
+ /* scoped */
5008
+ const __vue_scope_id__$6 = "data-v-7e474ae0";
5009
+ /* module identifier */
5010
+ const __vue_module_identifier__$6 = undefined;
5011
+ /* functional template */
5012
+ const __vue_is_functional_template__$6 = false;
5013
+ /* style inject SSR */
5014
+
5015
+ /* style inject shadow dom */
5016
+
5017
+
5018
+
5019
+ const __vue_component__$6 = /*#__PURE__*/normalizeComponent(
5020
+ { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
5021
+ __vue_inject_styles__$6,
5022
+ __vue_script__$6,
5023
+ __vue_scope_id__$6,
5024
+ __vue_is_functional_template__$6,
5025
+ __vue_module_identifier__$6,
5026
+ false,
5027
+ createInjector,
5028
+ undefined,
5029
+ undefined
5030
+ );
5031
+
5032
+ //
5033
+ var script$5 = {
5034
+ name: 'ele-tpl',
5035
+ props: {
5036
+ modelName: {
5037
+ type: String
5038
+ }
5039
+ },
5040
+ components: {
5041
+ [__vue_component__$h.name]: __vue_component__$h,
5042
+ [__vue_component__$8.name]: __vue_component__$8,
5043
+ [__vue_component__$6.name]: __vue_component__$6,
5044
+ [__vue_component__$7.name]: __vue_component__$7
5045
+ },
5046
+ computed: {
5047
+ modelNameValidator() {
5048
+ const target = models.find(model => model.name === this.modelName);
5049
+ return {
5050
+ existed: !!target,
5051
+ message: !!target ? '' : `Model <span style="color:red;">${this.modelName}</span> not found`
5052
+ };
5053
+ },
5054
+ genModelRef() {
5055
+ return v4();
5056
+ }
5057
+ },
5058
+ methods: {
5059
+ getModel() {
5060
+ return this.$refs[this.genModelRef];
5061
+ }
5062
+ }
5063
+ };
5064
+
5065
+ /* script */
5066
+ const __vue_script__$5 = script$5;
5067
+
5068
+ /* template */
5069
+ var __vue_render__$5 = function () {
5070
+ var _vm = this;
5071
+ var _h = _vm.$createElement;
5072
+ var _c = _vm._self._c || _h;
5073
+ return _vm.modelNameValidator.existed
5074
+ ? _c(
5075
+ _vm.modelName,
5076
+ _vm._g(
5077
+ _vm._b(
5078
+ {
5079
+ ref: _vm.genModelRef,
5080
+ tag: "component",
5081
+ scopedSlots: _vm._u(
5082
+ [
5083
+ _vm._l(_vm.$scopedSlots, function (idx, name) {
5084
+ return {
5085
+ key: name,
5086
+ fn: function (data) {
5087
+ return [_vm._t(name, null, null, data)]
5088
+ },
5089
+ }
5090
+ }),
5091
+ ],
5092
+ null,
5093
+ true
5094
+ ),
5095
+ },
5096
+ "component",
5097
+ _vm.$attrs,
5098
+ false
5099
+ ),
5100
+ _vm.$listeners
5101
+ )
5102
+ )
5103
+ : _c("div", {
5104
+ domProps: { innerHTML: _vm._s(_vm.modelNameValidator.message) },
5105
+ })
5106
+ };
5107
+ var __vue_staticRenderFns__$5 = [];
5108
+ __vue_render__$5._withStripped = true;
5109
+
5110
+ /* style */
5111
+ const __vue_inject_styles__$5 = function (inject) {
5112
+ if (!inject) return
5113
+ inject("data-v-46431deb_0", { source: ".has-error .ele-upload__wrapper .ele-upload__inner {\n border-color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--text .ele-upload__message {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n color: #FFA39E;\n}\n:root {\n --idooel-primary-color: #1890FF;\n --idoole-black-02: rgba(0, 0, 0, 0.04);\n --idoole-black-06: rgba(0, 0, 0, 0.44);\n --idoole-black-07: rgba(0, 0, 0, 0.64);\n --idoole-black-008: rgba(0, 0, 0, 0.88);\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n --idooel-form-title-border-color: rgba(0, 0, 0, 0.16);\n --idooel-form-upload-bg-color: rgba(0, 0, 0, 0.02);\n --idooel-form-upload-border-hover-color: #40A9FF;\n --idooel-form-border-radius: 2px;\n --idooel-form-border-err-color: #F5222D;\n --idooel-link-06: #1890FF;\n --idooel-link-03: #91D5FF;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":"AAAA;EACE,qBAAqB;AACvB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AAEA;EACE,+BAA+B;EAC/B,sCAAsC;EACtC,sCAAsC;EACtC,sCAAsC;EACtC,uCAAuC;EACvC,wBAAwB;EACxB,8BAA8B;EAC9B,+BAA+B;EAC/B,qCAAqC;EACrC,qDAAqD;EACrD,kDAAkD;EAClD,gDAAgD;EAChD,gCAAgC;EAChC,uCAAuC;EACvC,yBAAyB;EACzB,yBAAyB;AAC3B;;AAEA,oCAAoC","file":"index.vue","sourcesContent":[".has-error .ele-upload__wrapper .ele-upload__inner {\n border-color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--icon .anticon-cloud-upload {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--text .ele-upload__message {\n color: #F5222D;\n}\n.has-error .ele-upload__wrapper .ele-upload__inner .ele-upload__area .ele-upload__area--text .ele-upload__ext {\n color: #FFA39E;\n}\n\n:root {\n --idooel-primary-color: #1890FF;\n --idoole-black-02: rgba(0, 0, 0, 0.04);\n --idoole-black-06: rgba(0, 0, 0, 0.44);\n --idoole-black-07: rgba(0, 0, 0, 0.64);\n --idoole-black-008: rgba(0, 0, 0, 0.88);\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n --idooel-form-title-border-color: rgba(0, 0, 0, 0.16);\n --idooel-form-upload-bg-color: rgba(0, 0, 0, 0.02);\n --idooel-form-upload-border-hover-color: #40A9FF;\n --idooel-form-border-radius: 2px;\n --idooel-form-border-err-color: #F5222D;\n --idooel-link-06: #1890FF;\n --idooel-link-03: #91D5FF;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
5114
+
5115
+ };
5116
+ /* scoped */
5117
+ const __vue_scope_id__$5 = undefined;
5118
+ /* module identifier */
5119
+ const __vue_module_identifier__$5 = undefined;
3996
5120
  /* functional template */
3997
- const __vue_is_functional_template__$4 = false;
5121
+ const __vue_is_functional_template__$5 = false;
3998
5122
  /* style inject SSR */
3999
5123
 
4000
5124
  /* style inject shadow dom */
4001
5125
 
4002
5126
 
4003
5127
 
4004
- const __vue_component__$4 = /*#__PURE__*/normalizeComponent(
4005
- { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
4006
- __vue_inject_styles__$4,
4007
- __vue_script__$4,
4008
- __vue_scope_id__$4,
4009
- __vue_is_functional_template__$4,
4010
- __vue_module_identifier__$4,
5128
+ const __vue_component__$5 = /*#__PURE__*/normalizeComponent(
5129
+ { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
5130
+ __vue_inject_styles__$5,
5131
+ __vue_script__$5,
5132
+ __vue_scope_id__$5,
5133
+ __vue_is_functional_template__$5,
5134
+ __vue_module_identifier__$5,
4011
5135
  false,
4012
5136
  createInjector,
4013
5137
  undefined,
4014
5138
  undefined
4015
5139
  );
4016
5140
 
4017
- __vue_component__$4.install = Vue => Vue.component(__vue_component__$4.name, __vue_component__$4);
5141
+ __vue_component__$5.install = Vue => Vue.component(__vue_component__$5.name, __vue_component__$5);
5142
+
5143
+ __vue_component__$9.install = Vue => Vue.component(__vue_component__$9.name, __vue_component__$9);
4018
5144
 
5145
+ //
5146
+ //
5147
+ //
5148
+ //
5149
+ //
4019
5150
  //
4020
5151
  //
4021
5152
  //
@@ -4023,63 +5154,97 @@ __vue_component__$4.install = Vue => Vue.component(__vue_component__$4.name, __v
4023
5154
  //
4024
5155
  //
4025
5156
 
4026
- var script$3 = {
4027
- name: 'g-text'
5157
+ var script$4 = {
5158
+ name: 'ele-alert',
5159
+ props: {
5160
+ type: {
5161
+ type: String,
5162
+ default: 'success'
5163
+ },
5164
+ showIcon: {
5165
+ type: Boolean,
5166
+ default: true
5167
+ },
5168
+ message: {
5169
+ type: String,
5170
+ default: 'Success Tips'
5171
+ },
5172
+ description: {
5173
+ type: String
5174
+ },
5175
+ closable: {
5176
+ type: Boolean,
5177
+ default: true
5178
+ },
5179
+ closeText: {
5180
+ type: String
5181
+ }
5182
+ }
4028
5183
  };
4029
5184
 
4030
5185
  /* script */
4031
- const __vue_script__$3 = script$3;
5186
+ const __vue_script__$4 = script$4;
4032
5187
 
4033
5188
  /* template */
4034
- var __vue_render__$3 = function () {
5189
+ var __vue_render__$4 = function () {
4035
5190
  var _vm = this;
4036
5191
  var _h = _vm.$createElement;
4037
5192
  var _c = _vm._self._c || _h;
4038
- return _c("div", [_vm._v("\n text\n")])
5193
+ return _c("a-alert", {
5194
+ staticClass: "ele-alert",
5195
+ attrs: {
5196
+ message: _vm.message,
5197
+ description: _vm.description,
5198
+ type: _vm.type,
5199
+ closable: _vm.closable,
5200
+ closeText: _vm.closeText,
5201
+ "show-icon": _vm.showIcon,
5202
+ },
5203
+ })
4039
5204
  };
4040
- var __vue_staticRenderFns__$3 = [];
4041
- __vue_render__$3._withStripped = true;
5205
+ var __vue_staticRenderFns__$4 = [];
5206
+ __vue_render__$4._withStripped = true;
4042
5207
 
4043
5208
  /* style */
4044
- const __vue_inject_styles__$3 = function (inject) {
5209
+ const __vue_inject_styles__$4 = function (inject) {
4045
5210
  if (!inject) return
4046
- inject("data-v-d41a0ce6_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
5211
+ inject("data-v-ee7d6de4_0", { source: ".ele-alert[data-v-ee7d6de4] {\n text-align: left !important;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/alert/src/index.vue","index.vue"],"names":[],"mappings":"AA0CA;EACA,2BAAA;ACzCA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <a-alert\n class=\"ele-alert\"\n :message=\"message\" \n :description=\"description\" \n :type=\"type\"\n :closable=\"closable\"\n :closeText=\"closeText\"\n :show-icon=\"showIcon\" />\n</template>\n\n<script>\nexport default {\n name: 'ele-alert',\n props: {\n type: {\n type: String,\n default: 'success'\n },\n showIcon: {\n type: Boolean,\n default: true\n },\n message: {\n type: String,\n default: 'Success Tips'\n },\n description: {\n type: String\n },\n closable: {\n type: Boolean,\n default: true\n },\n closeText: {\n type: String\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele-alert {\n text-align: left !important;\n}\n</style>",".ele-alert {\n text-align: left !important;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4047
5212
 
4048
5213
  };
4049
5214
  /* scoped */
4050
- const __vue_scope_id__$3 = "data-v-d41a0ce6";
5215
+ const __vue_scope_id__$4 = "data-v-ee7d6de4";
4051
5216
  /* module identifier */
4052
- const __vue_module_identifier__$3 = undefined;
5217
+ const __vue_module_identifier__$4 = undefined;
4053
5218
  /* functional template */
4054
- const __vue_is_functional_template__$3 = false;
5219
+ const __vue_is_functional_template__$4 = false;
4055
5220
  /* style inject SSR */
4056
5221
 
4057
5222
  /* style inject shadow dom */
4058
5223
 
4059
5224
 
4060
5225
 
4061
- const __vue_component__$3 = /*#__PURE__*/normalizeComponent(
4062
- { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
4063
- __vue_inject_styles__$3,
4064
- __vue_script__$3,
4065
- __vue_scope_id__$3,
4066
- __vue_is_functional_template__$3,
4067
- __vue_module_identifier__$3,
5226
+ const __vue_component__$4 = /*#__PURE__*/normalizeComponent(
5227
+ { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
5228
+ __vue_inject_styles__$4,
5229
+ __vue_script__$4,
5230
+ __vue_scope_id__$4,
5231
+ __vue_is_functional_template__$4,
5232
+ __vue_module_identifier__$4,
4068
5233
  false,
4069
5234
  createInjector,
4070
5235
  undefined,
4071
5236
  undefined
4072
5237
  );
4073
5238
 
4074
- __vue_component__$3.install = Vue => Vue.component(__vue_component__$3.name, __vue_component__$3);
5239
+ __vue_component__$4.install = Vue => Vue.component(__vue_component__$4.name, __vue_component__$4);
4075
5240
 
4076
- __vue_component__$9.install = Vue => Vue.component(__vue_component__$9.name, __vue_component__$9);
5241
+ __vue_component__$e.install = Vue => Vue.component(__vue_component__$e.name, __vue_component__$e);
4077
5242
 
4078
- __vue_component__$8.install = Vue => Vue.component(__vue_component__$8.name, __vue_component__$8);
5243
+ __vue_component__$d.install = Vue => Vue.component(__vue_component__$d.name, __vue_component__$d);
4079
5244
 
4080
- __vue_component__$a.install = Vue => Vue.component(__vue_component__$a.name, __vue_component__$a);
5245
+ __vue_component__$f.install = Vue => Vue.component(__vue_component__$f.name, __vue_component__$f);
4081
5246
 
4082
- __vue_component__$7.install = Vue => Vue.component(__vue_component__$7.name, __vue_component__$7);
5247
+ __vue_component__$c.install = Vue => Vue.component(__vue_component__$c.name, __vue_component__$c);
4083
5248
 
4084
5249
  //
4085
5250
  //
@@ -4103,8 +5268,17 @@ __vue_component__$7.install = Vue => Vue.component(__vue_component__$7.name, __v
4103
5268
  //
4104
5269
  //
4105
5270
  //
5271
+ //
5272
+ //
5273
+ //
5274
+ //
5275
+ //
5276
+ //
5277
+ //
5278
+ //
5279
+ //
4106
5280
 
4107
- var script$2 = {
5281
+ var script$3 = {
4108
5282
  name: 'ele-modal',
4109
5283
  props: {
4110
5284
  value: {
@@ -4125,7 +5299,7 @@ var script$2 = {
4125
5299
  },
4126
5300
  size: {
4127
5301
  type: String,
4128
- default: 'small'
5302
+ default: 'middle'
4129
5303
  },
4130
5304
  map: {
4131
5305
  type: Object,
@@ -4152,6 +5326,10 @@ var script$2 = {
4152
5326
  onlyClose: {
4153
5327
  type: Boolean,
4154
5328
  default: false
5329
+ },
5330
+ buttonGroupMeta: {
5331
+ type: Object,
5332
+ default: () => ({})
4155
5333
  }
4156
5334
  },
4157
5335
  watch: {
@@ -4185,27 +5363,171 @@ var script$2 = {
4185
5363
  middle: 80,
4186
5364
  big: 40
4187
5365
  };
4188
- this.map = Object.assign(this.map, defaultMap);
5366
+ this.map = Object.assign(this.map, defaultMap);
5367
+ },
5368
+ methods: {
5369
+ openModal() {
5370
+ this.showModal = true;
5371
+ this.removeHidden();
5372
+ },
5373
+ handleCancel() {
5374
+ this.showModal = false;
5375
+ this.removeHidden();
5376
+ console.log('on-cancel');
5377
+ this.$emit('cancel');
5378
+ this.$emit('input', this.showModal);
5379
+ },
5380
+ handleOk() {
5381
+ console.log('on-ok');
5382
+ this.$emit('ok');
5383
+ },
5384
+ removeHidden() {
5385
+ let ishidden = document.body.style.overflow === 'hidden';
5386
+ ishidden && (document.body.style.overflow = 'initial');
5387
+ }
5388
+ }
5389
+ };
5390
+
5391
+ /* script */
5392
+ const __vue_script__$3 = script$3;
5393
+
5394
+ /* template */
5395
+ var __vue_render__$3 = function () {
5396
+ var _vm = this;
5397
+ var _h = _vm.$createElement;
5398
+ var _c = _vm._self._c || _h;
5399
+ return _c(
5400
+ "a-modal",
5401
+ {
5402
+ attrs: {
5403
+ title: _vm.title,
5404
+ cancelText: _vm.cancelText,
5405
+ okText: _vm.okText,
5406
+ closable: _vm.closable,
5407
+ width: _vm.width,
5408
+ keyboard: false,
5409
+ maskClosable: _vm.maskClosable,
5410
+ dialogStyle: { top: _vm.upDownDistance[_vm.size] + "px" },
5411
+ bodyStyle: { maxHeight: _vm.maxheight, overflowY: "auto" },
5412
+ footer: _vm.showFooter ? undefined : null,
5413
+ },
5414
+ on: { cancel: _vm.handleCancel, ok: _vm.handleOk },
5415
+ model: {
5416
+ value: _vm.showModal,
5417
+ callback: function ($$v) {
5418
+ _vm.showModal = $$v;
5419
+ },
5420
+ expression: "showModal",
5421
+ },
5422
+ },
5423
+ [
5424
+ _vm._t("default"),
5425
+ _vm._v(" "),
5426
+ _c("template", { slot: "footer" }, [
5427
+ _c(
5428
+ "div",
5429
+ { staticClass: "ele-modal__footer" },
5430
+ _vm._l(_vm.buttonGroupMeta.elements, function (btn) {
5431
+ return _c(
5432
+ "ele-button",
5433
+ _vm._g(
5434
+ {
5435
+ key: btn.key,
5436
+ attrs: { type: btn.type, "event-name": btn.eventName },
5437
+ },
5438
+ _vm.$listeners
5439
+ ),
5440
+ [_vm._v("\n " + _vm._s(btn.label) + "\n ")]
5441
+ )
5442
+ }),
5443
+ 1
5444
+ ),
5445
+ ]),
5446
+ ],
5447
+ 2
5448
+ )
5449
+ };
5450
+ var __vue_staticRenderFns__$3 = [];
5451
+ __vue_render__$3._withStripped = true;
5452
+
5453
+ /* style */
5454
+ const __vue_inject_styles__$3 = undefined;
5455
+ /* scoped */
5456
+ const __vue_scope_id__$3 = undefined;
5457
+ /* module identifier */
5458
+ const __vue_module_identifier__$3 = undefined;
5459
+ /* functional template */
5460
+ const __vue_is_functional_template__$3 = false;
5461
+ /* style inject */
5462
+
5463
+ /* style inject SSR */
5464
+
5465
+ /* style inject shadow dom */
5466
+
5467
+
5468
+
5469
+ const __vue_component__$3 = /*#__PURE__*/normalizeComponent(
5470
+ { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
5471
+ __vue_inject_styles__$3,
5472
+ __vue_script__$3,
5473
+ __vue_scope_id__$3,
5474
+ __vue_is_functional_template__$3,
5475
+ __vue_module_identifier__$3,
5476
+ false,
5477
+ undefined,
5478
+ undefined,
5479
+ undefined
5480
+ );
5481
+
5482
+ __vue_component__$3.install = Vue => Vue.component(__vue_component__$3.name, __vue_component__$3);
5483
+
5484
+ __vue_component__$b.install = Vue => Vue.component(__vue_component__$b.name, __vue_component__$b);
5485
+
5486
+ __vue_component__$a.install = Vue => Vue.component(__vue_component__$a.name, __vue_component__$a);
5487
+
5488
+ //
5489
+ var script$2 = {
5490
+ name: 'ele-batch-export',
5491
+ components: {
5492
+ EleIcon: __vue_component__$f
5493
+ },
5494
+ props: {
5495
+ value: {
5496
+ type: Boolean,
5497
+ default: false
5498
+ },
5499
+ buttonGroupMeta: {
5500
+ type: Object,
5501
+ default: () => {
5502
+ return {
5503
+ elements: [{
5504
+ label: '关闭',
5505
+ key: 'close',
5506
+ type: 'primary',
5507
+ eventName: 'handleClose'
5508
+ }]
5509
+ };
5510
+ }
5511
+ }
5512
+ },
5513
+ data() {
5514
+ return {
5515
+ innerValue: false
5516
+ };
5517
+ },
5518
+ watch: {
5519
+ value: {
5520
+ handler(value) {
5521
+ this.$nextTick(() => {
5522
+ this.innerValue = value;
5523
+ });
5524
+ },
5525
+ immediate: true
5526
+ }
4189
5527
  },
4190
5528
  methods: {
4191
- openModal() {
4192
- this.showModal = true;
4193
- this.removeHidden();
4194
- },
4195
- handleCancel() {
4196
- this.showModal = false;
4197
- this.removeHidden();
4198
- console.log('on-cancel');
4199
- this.$emit('cancel');
4200
- this.$emit('input', this.showModal);
4201
- },
4202
- handleOk() {
4203
- console.log('on-ok');
4204
- this.$emit('ok');
4205
- },
4206
- removeHidden() {
4207
- let ishidden = document.body.style.overflow === 'hidden';
4208
- ishidden && (document.body.style.overflow = 'initial');
5529
+ handleClick() {
5530
+ this.$emit('on-batch-export');
4209
5531
  }
4210
5532
  }
4211
5533
  };
@@ -4219,50 +5541,75 @@ var __vue_render__$2 = function () {
4219
5541
  var _h = _vm.$createElement;
4220
5542
  var _c = _vm._self._c || _h;
4221
5543
  return _c(
4222
- "a-modal",
4223
- {
4224
- attrs: {
4225
- title: _vm.title,
4226
- cancelText: _vm.cancelText,
4227
- okText: _vm.okText,
4228
- closable: _vm.closable,
4229
- width: _vm.width,
4230
- keyboard: false,
4231
- maskClosable: _vm.maskClosable,
4232
- dialogStyle: { top: _vm.upDownDistance[_vm.size] + "px" },
4233
- bodyStyle: { maxHeight: _vm.maxheight, overflowY: "auto" },
4234
- footer: _vm.showFooter ? undefined : null,
4235
- },
4236
- on: { cancel: _vm.handleCancel, ok: _vm.handleOk },
4237
- model: {
4238
- value: _vm.showModal,
4239
- callback: function ($$v) {
4240
- _vm.showModal = $$v;
5544
+ "ele-modal",
5545
+ _vm._g(
5546
+ {
5547
+ attrs: { buttonGroupMeta: _vm.buttonGroupMeta, title: "批量导出" },
5548
+ model: {
5549
+ value: _vm.innerValue,
5550
+ callback: function ($$v) {
5551
+ _vm.innerValue = $$v;
5552
+ },
5553
+ expression: "innerValue",
4241
5554
  },
4242
- expression: "showModal",
4243
5555
  },
4244
- },
5556
+ _vm.$listeners
5557
+ ),
4245
5558
  [
4246
- _vm._t("default"),
4247
- _vm._v(" "),
4248
- _c("template", { slot: "footer" }, [_vm._t("footer")], 2),
4249
- ],
4250
- 2
5559
+ _c("div", { staticClass: "ele-batch-export__content" }, [
5560
+ _c(
5561
+ "div",
5562
+ { staticClass: "ele-batch-export__container" },
5563
+ [
5564
+ _c("ele-icon", {
5565
+ staticClass: "ele-batch-export__icon",
5566
+ attrs: { type: "download" },
5567
+ }),
5568
+ _vm._v(" "),
5569
+ _c("div", { staticClass: "ele-batch-export__handle" }, [
5570
+ _c(
5571
+ "div",
5572
+ {
5573
+ staticClass: "ele-batch-export__btn",
5574
+ on: { click: _vm.handleClick },
5575
+ },
5576
+ [
5577
+ _vm._v(
5578
+ "导出任务处理中..... 请点击此按钮跳转到“批处理管理”菜单查看任务进度"
5579
+ ),
5580
+ ]
5581
+ ),
5582
+ _vm._v(" "),
5583
+ _c("div", { staticClass: "ele-batch-export__btn--hint" }, [
5584
+ _vm._v("批处理任务的准备工作会在后台运行"),
5585
+ ]),
5586
+ ]),
5587
+ ],
5588
+ 1
5589
+ ),
5590
+ _vm._v(" "),
5591
+ _c("div", { staticClass: "ele-batch-export__message" }, [
5592
+ _vm._v("\n 您可以请点击上方按钮查看任务进度或关闭弹框\n "),
5593
+ ]),
5594
+ ]),
5595
+ ]
4251
5596
  )
4252
5597
  };
4253
5598
  var __vue_staticRenderFns__$2 = [];
4254
5599
  __vue_render__$2._withStripped = true;
4255
5600
 
4256
5601
  /* style */
4257
- const __vue_inject_styles__$2 = undefined;
5602
+ const __vue_inject_styles__$2 = function (inject) {
5603
+ if (!inject) return
5604
+ inject("data-v-0ccbf9ac_0", { source: ".ele-batch-export__content[data-v-0ccbf9ac] {\n height: 106px;\n}\n.ele-batch-export__content .ele-batch-export__container[data-v-0ccbf9ac] {\n border-width: 1px;\n border-style: dashed;\n height: 80px;\n border-color: var(--idooel-link-06);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 16px;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__icon[data-v-0ccbf9ac] {\n font-size: 48px;\n color: var(--idooel-link-06);\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle[data-v-0ccbf9ac] {\n margin-left: 16px;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle .ele-batch-export__btn[data-v-0ccbf9ac] {\n color: var(--idooel-link-06);\n font-size: 16px;\n cursor: pointer;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle .ele-batch-export__btn--hint[data-v-0ccbf9ac] {\n color: var(--idooel-link-03);\n font-size: 14px;\n}\n.ele-batch-export__content .ele-batch-export__message[data-v-0ccbf9ac] {\n color: var(--idooel-link-06);\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["/Users/huangshan/Goldgov/front/ganjiao/base-elearning-frontend-model/packages/components/packages/batch-export/src/index.vue","index.vue"],"names":[],"mappings":"AAyEA;EACA,aAAA;ACxEA;ADyEA;EACA,iBAAA;EACA,oBAAA;EACA,YAAA;EACA,mCAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,eAAA;ACvEA;ADwEA;EACA,eAAA;EACA,4BAAA;ACtEA;ADwEA;EACA,iBAAA;ACtEA;ADuEA;EACA,4BAAA;EACA,eAAA;EACA,eAAA;ACrEA;ADuEA;EACA,4BAAA;EACA,eAAA;ACrEA;ADyEA;EACA,4BAAA;EACA,eAAA;ACvEA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\n <ele-modal \n v-model=\"innerValue\" \n v-on=\"$listeners\"\n :buttonGroupMeta=\"buttonGroupMeta\" \n title=\"批量导出\">\n <div class=\"ele-batch-export__content\">\n <div class=\"ele-batch-export__container\">\n <ele-icon class=\"ele-batch-export__icon\" type=\"download\"></ele-icon>\n <div class=\"ele-batch-export__handle\">\n <div class=\"ele-batch-export__btn\" @click=\"handleClick\">导出任务处理中..... 请点击此按钮跳转到“批处理管理”菜单查看任务进度</div>\n <div class=\"ele-batch-export__btn--hint\">批处理任务的准备工作会在后台运行</div>\n </div>\n </div>\n <div class=\"ele-batch-export__message\">\n 您可以请点击上方按钮查看任务进度或关闭弹框\n </div>\n </div>\n </ele-modal>\n</template>\n\n<script>\nimport EleIcon from '../../icon/src/index.vue'\nexport default {\n name: 'ele-batch-export',\n components: {\n EleIcon\n },\n props: {\n value: {\n type: Boolean,\n default: false\n },\n buttonGroupMeta: {\n type: Object,\n default: () => {\n return {\n elements: [\n {\n label: '关闭',\n key: 'close',\n type: 'primary',\n eventName: 'handleClose'\n }\n ]\n }\n }\n }\n },\n data() {\n return {\n innerValue: false\n }\n },\n watch: {\n value: {\n handler (value) {\n this.$nextTick(() => {\n this.innerValue = value\n })\n },\n immediate: true\n }\n },\n methods: {\n handleClick () {\n this.$emit('on-batch-export')\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.ele-batch-export__content {\n height: 106px;\n .ele-batch-export__container {\n border-width: 1px;\n border-style: dashed;\n height: 80px;\n border-color: var(--idooel-link-06);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 16px;\n .ele-batch-export__icon {\n font-size: 48px;\n color: var(--idooel-link-06);\n }\n .ele-batch-export__handle {\n margin-left: 16px;\n .ele-batch-export__btn {\n color: var(--idooel-link-06);\n font-size: 16px;\n cursor: pointer;\n }\n .ele-batch-export__btn--hint {\n color: var(--idooel-link-03);\n font-size: 14px;\n }\n }\n }\n .ele-batch-export__message {\n color: var(--idooel-link-06);\n font-size: 14px;\n }\n}\n</style>",".ele-batch-export__content {\n height: 106px;\n}\n.ele-batch-export__content .ele-batch-export__container {\n border-width: 1px;\n border-style: dashed;\n height: 80px;\n border-color: var(--idooel-link-06);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 16px;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__icon {\n font-size: 48px;\n color: var(--idooel-link-06);\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle {\n margin-left: 16px;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle .ele-batch-export__btn {\n color: var(--idooel-link-06);\n font-size: 16px;\n cursor: pointer;\n}\n.ele-batch-export__content .ele-batch-export__container .ele-batch-export__handle .ele-batch-export__btn--hint {\n color: var(--idooel-link-03);\n font-size: 14px;\n}\n.ele-batch-export__content .ele-batch-export__message {\n color: var(--idooel-link-06);\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
5605
+
5606
+ };
4258
5607
  /* scoped */
4259
- const __vue_scope_id__$2 = undefined;
5608
+ const __vue_scope_id__$2 = "data-v-0ccbf9ac";
4260
5609
  /* module identifier */
4261
5610
  const __vue_module_identifier__$2 = undefined;
4262
5611
  /* functional template */
4263
5612
  const __vue_is_functional_template__$2 = false;
4264
- /* style inject */
4265
-
4266
5613
  /* style inject SSR */
4267
5614
 
4268
5615
  /* style inject shadow dom */
@@ -4277,17 +5624,17 @@ __vue_render__$2._withStripped = true;
4277
5624
  __vue_is_functional_template__$2,
4278
5625
  __vue_module_identifier__$2,
4279
5626
  false,
4280
- undefined,
5627
+ createInjector,
4281
5628
  undefined,
4282
5629
  undefined
4283
5630
  );
4284
5631
 
4285
5632
  __vue_component__$2.install = Vue => Vue.component(__vue_component__$2.name, __vue_component__$2);
4286
5633
 
4287
- __vue_component__$6.install = Vue => Vue.component(__vue_component__$6.name, __vue_component__$6);
4288
-
4289
- __vue_component__$5.install = Vue => Vue.component(__vue_component__$5.name, __vue_component__$5);
4290
-
5634
+ //
5635
+ //
5636
+ //
5637
+ //
4291
5638
  //
4292
5639
  //
4293
5640
  //
@@ -4296,7 +5643,29 @@ __vue_component__$5.install = Vue => Vue.component(__vue_component__$5.name, __v
4296
5643
  //
4297
5644
 
4298
5645
  var script$1 = {
4299
- name: 'ele-batch-export'
5646
+ name: 'ele-date-range',
5647
+ model: {
5648
+ prop: 'value',
5649
+ event: 'change'
5650
+ },
5651
+ props: {
5652
+ showTime: {
5653
+ type: Object
5654
+ },
5655
+ format: {
5656
+ type: Array,
5657
+ default: () => ['YYYY-MM-DD', 'YYYY-MM-DD']
5658
+ },
5659
+ value: {
5660
+ type: Array,
5661
+ default: () => []
5662
+ }
5663
+ },
5664
+ methods: {
5665
+ onChange(date, dateString) {
5666
+ this.$emit('change', dateString);
5667
+ }
5668
+ }
4300
5669
  };
4301
5670
 
4302
5671
  /* script */
@@ -4307,7 +5676,11 @@ var __vue_render__$1 = function () {
4307
5676
  var _vm = this;
4308
5677
  var _h = _vm.$createElement;
4309
5678
  var _c = _vm._self._c || _h;
4310
- return _c("div", [_vm._v("\n export\n")])
5679
+ return _c("a-range-picker", {
5680
+ staticStyle: { width: "100%" },
5681
+ attrs: { "show-time": _vm.showTime, value: _vm.value, format: _vm.format },
5682
+ on: { change: _vm.onChange },
5683
+ })
4311
5684
  };
4312
5685
  var __vue_staticRenderFns__$1 = [];
4313
5686
  __vue_render__$1._withStripped = true;
@@ -4315,11 +5688,11 @@ __vue_render__$1._withStripped = true;
4315
5688
  /* style */
4316
5689
  const __vue_inject_styles__$1 = function (inject) {
4317
5690
  if (!inject) return
4318
- inject("data-v-4ed65b1c_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
5691
+ inject("data-v-fc0aeb36_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
4319
5692
 
4320
5693
  };
4321
5694
  /* scoped */
4322
- const __vue_scope_id__$1 = "data-v-4ed65b1c";
5695
+ const __vue_scope_id__$1 = "data-v-fc0aeb36";
4323
5696
  /* module identifier */
4324
5697
  const __vue_module_identifier__$1 = undefined;
4325
5698
  /* functional template */
@@ -4345,123 +5718,31 @@ __vue_render__$1._withStripped = true;
4345
5718
 
4346
5719
  __vue_component__$1.install = Vue => Vue.component(__vue_component__$1.name, __vue_component__$1);
4347
5720
 
4348
- __vue_component__$e.install = Vue => Vue.component(__vue_component__$e.name, __vue_component__$e);
4349
-
4350
- __vue_component__$f.install = Vue => Vue.component(__vue_component__$f.name, __vue_component__$f);
4351
-
4352
- __vue_component__$d.install = Vue => Vue.component(__vue_component__$d.name, __vue_component__$d);
5721
+ __vue_component__$i.install = Vue => Vue.component(__vue_component__$i.name, __vue_component__$i);
4353
5722
 
4354
- const BUILT_IN_EVENT_NAMES = {
4355
- SUBMIT: 'submit',
4356
- CANCEL: 'cancel'
4357
- };
5723
+ __vue_component__$j.install = Vue => Vue.component(__vue_component__$j.name, __vue_component__$j);
4358
5724
 
4359
5725
  //
5726
+ //
5727
+ //
5728
+ //
5729
+
4360
5730
  var script = {
4361
- name: 'ele-form-model',
4362
- components: {
4363
- EleButtonGroup: __vue_component__$e
5731
+ name: 'ele-modal-import',
5732
+ model: {
5733
+ prop: 'value',
5734
+ event: 'change'
4364
5735
  },
4365
5736
  props: {
4366
- title: {
4367
- type: String
4368
- },
4369
- formMeta: {
4370
- type: Object
4371
- },
4372
- footerMeta: {
4373
- type: Object
5737
+ value: {
5738
+ type: Boolean,
5739
+ default: false
4374
5740
  }
4375
5741
  },
4376
5742
  data() {
4377
- return {};
4378
- },
4379
- computed: {
4380
- formRef() {
4381
- return v4();
4382
- },
4383
- assignAttrForEvents() {
4384
- const events = this.footerElements.reduce((ret, ele) => {
4385
- ret[ele.eventName] = e => {
4386
- this.$emit(ele.eventName || 'click', {
4387
- ...e,
4388
- formModel: this.formModels
4389
- });
4390
- };
4391
- return ret;
4392
- }, {});
4393
- return {
4394
- ...this.$listeners,
4395
- ...events,
4396
- [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
4397
- [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]
4398
- };
4399
- },
4400
- elements() {
4401
- const {
4402
- elements
4403
- } = this.formMeta;
4404
- return elements;
4405
- },
4406
- preRequest() {
4407
- const {
4408
- preRequest
4409
- } = this.formMeta;
4410
- return preRequest;
4411
- },
4412
- infoRequest() {
4413
- const {
4414
- infoRequest
4415
- } = this.formMeta;
4416
- return infoRequest;
4417
- },
4418
- submitRequest() {
4419
- const {
4420
- submitRequest
4421
- } = this.formMeta;
4422
- return submitRequest;
4423
- },
4424
- footerElements() {
4425
- const {
4426
- elements
4427
- } = this.footerMeta;
4428
- return elements.call(this);
4429
- },
4430
- formModels() {
4431
- return this.$refs[this.formRef].getFieldsValue();
4432
- }
4433
- },
4434
- methods: {
4435
- async submitRequestTrigger() {},
4436
- async infoRequestTrigger() {},
4437
- async preRequestTrigger() {
4438
- const {
4439
- url,
4440
- requestType = 'GET',
4441
- fieldMap = {}
4442
- } = this.preRequest;
4443
- if (!url) return;
4444
- await net[requestType.toLowerCase()](url, {});
4445
- },
4446
- setValueForField(props) {
4447
- this.$refs[this.formRef].setFieldsValue(props);
4448
- },
4449
- [BUILT_IN_EVENT_NAMES.SUBMIT](props) {
4450
- const status = this.$refs[this.formRef].validateFields();
4451
- console.log('status', status);
4452
- if (status) {
4453
- console.log('status', this.formModels);
4454
- } else {
4455
- console.log('error');
4456
- }
4457
- },
4458
- [BUILT_IN_EVENT_NAMES.CANCEL](props) {
4459
- console.log('inner CANCEL', props);
4460
- }
4461
- },
4462
- async mounted() {
4463
- await this.preRequestTrigger();
4464
- await this.infoRequestTrigger();
5743
+ return {
5744
+ innerValue: true
5745
+ };
4465
5746
  }
4466
5747
  };
4467
5748
 
@@ -4473,33 +5754,15 @@ var __vue_render__ = function () {
4473
5754
  var _vm = this;
4474
5755
  var _h = _vm.$createElement;
4475
5756
  var _c = _vm._self._c || _h;
4476
- return _c("div", { staticClass: "form__model--wrapper" }, [
4477
- _c("div", { staticClass: "form-model__title" }, [
4478
- _vm._v("\n " + _vm._s(_vm.title) + "\n "),
4479
- ]),
4480
- _vm._v(" "),
4481
- _c(
4482
- "div",
4483
- { staticClass: "form-model__content" },
4484
- [_c("ele-form", { ref: _vm.formRef, attrs: { elements: _vm.elements } })],
4485
- 1
4486
- ),
4487
- _vm._v(" "),
4488
- _c(
4489
- "div",
4490
- { staticClass: "form-model__footer" },
4491
- [
4492
- _c(
4493
- "ele-button-group",
4494
- _vm._g(
4495
- { attrs: { "data-source": _vm.footerElements } },
4496
- _vm.assignAttrForEvents
4497
- )
4498
- ),
4499
- ],
4500
- 1
4501
- ),
4502
- ])
5757
+ return _c("ele-modal", {
5758
+ model: {
5759
+ value: _vm.innerValue,
5760
+ callback: function ($$v) {
5761
+ _vm.innerValue = $$v;
5762
+ },
5763
+ expression: "innerValue",
5764
+ },
5765
+ })
4503
5766
  };
4504
5767
  var __vue_staticRenderFns__ = [];
4505
5768
  __vue_render__._withStripped = true;
@@ -4507,11 +5770,11 @@ __vue_render__._withStripped = true;
4507
5770
  /* style */
4508
5771
  const __vue_inject_styles__ = function (inject) {
4509
5772
  if (!inject) return
4510
- inject("data-v-4815b8c0_0", { source: ".form__model--wrapper[data-v-4815b8c0] {\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n.form__model--wrapper .form-model__title[data-v-4815b8c0] {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content[data-v-4815b8c0] {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer[data-v-4815b8c0] {\n width: 100%;\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\form-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAgHA;EACA,WAAA;EACA,YAAA;EACA,cAAA;AC/GA;ADgHA;EACA,YAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8DAAA;AC9GA;ADgHA;EACA,aAAA;AC9GA;ADgHA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;AC9GA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"form__model--wrapper\">\r\n <div class=\"form-model__title\">\r\n {{ title }}\r\n </div>\r\n <div class=\"form-model__content\">\r\n <ele-form :ref=\"formRef\" :elements=\"elements\"></ele-form>\r\n </div>\r\n <div class=\"form-model__footer\">\r\n <ele-button-group v-on=\"assignAttrForEvents\" :data-source=\"footerElements\"></ele-button-group>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport EleButtonGroup from '../../composite-components/button-group/src/index.vue'\r\nimport { BUILT_IN_EVENT_NAMES } from '../../utils'\r\nimport { v4 as uuidv4 } from 'uuid'\r\nimport { net } from '@idooel/shared'\r\nexport default {\r\n name: 'ele-form-model',\r\n components: {\r\n EleButtonGroup\r\n },\r\n props: {\r\n title: {\r\n type: String\r\n },\r\n formMeta: {\r\n type: Object\r\n },\r\n footerMeta: {\r\n type: Object\r\n }\r\n },\r\n data() {\r\n return {}\r\n },\r\n computed: {\r\n formRef () {\r\n return uuidv4()\r\n },\r\n assignAttrForEvents () {\r\n const events = this.footerElements.reduce((ret, ele) => {\r\n ret[ele.eventName] = (e) => {\r\n this.$emit(ele.eventName || 'click', { ...e, formModel: this.formModels })\r\n }\r\n return ret\r\n }, {})\r\n return {\r\n ...this.$listeners,\r\n ...events,\r\n [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],\r\n [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]\r\n }\r\n },\r\n elements () {\r\n const { elements } = this.formMeta\r\n return elements\r\n },\r\n preRequest () {\r\n const { preRequest } = this.formMeta\r\n return preRequest\r\n },\r\n infoRequest () {\r\n const { infoRequest } = this.formMeta\r\n return infoRequest\r\n },\r\n submitRequest () {\r\n const { submitRequest } = this.formMeta\r\n return submitRequest\r\n },\r\n footerElements () {\r\n const { elements } = this.footerMeta\r\n return elements.call(this)\r\n },\r\n formModels () {\r\n return this.$refs[this.formRef].getFieldsValue()\r\n }\r\n },\r\n methods: {\r\n async submitRequestTrigger () {},\r\n async infoRequestTrigger () {},\r\n async preRequestTrigger () {\r\n const { url, requestType = 'GET', fieldMap = {} } = this.preRequest\r\n if (!url) return\r\n await net[requestType.toLowerCase()](url, {})\r\n },\r\n setValueForField (props) {\r\n this.$refs[this.formRef].setFieldsValue(props)\r\n },\r\n [BUILT_IN_EVENT_NAMES.SUBMIT] (props) {\r\n const status = this.$refs[this.formRef].validateFields()\r\n console.log('status', status)\r\n if (status) {\r\n console.log('status', this.formModels)\r\n } else {\r\n console.log('error')\r\n }\r\n },\r\n [BUILT_IN_EVENT_NAMES.CANCEL] (props) {\r\n console.log('inner CANCEL', props)\r\n }\r\n },\r\n async mounted() {\r\n await this.preRequestTrigger()\r\n await this.infoRequestTrigger()\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.form__model--wrapper {\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n .form-model__title {\r\n height: 56px;\r\n padding: 0 16px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n border-bottom: 1px solid var(--idooel-form-title-border-color);\r\n }\r\n .form-model__content {\r\n padding: 16px;\r\n }\r\n .form-model__footer {\r\n width: 100%;\r\n height: 64px;\r\n position: fixed;\r\n bottom: 0;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: end;\r\n }\r\n}\r\n</style>",".form__model--wrapper {\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n.form__model--wrapper .form-model__title {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer {\n width: 100%;\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
5773
+ inject("data-v-fb6f0796_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
4511
5774
 
4512
5775
  };
4513
5776
  /* scoped */
4514
- const __vue_scope_id__ = "data-v-4815b8c0";
5777
+ const __vue_scope_id__ = "data-v-fb6f0796";
4515
5778
  /* module identifier */
4516
5779
  const __vue_module_identifier__ = undefined;
4517
5780
  /* functional template */
@@ -4537,9 +5800,17 @@ __vue_render__._withStripped = true;
4537
5800
 
4538
5801
  __vue_component__.install = Vue => Vue.component(__vue_component__.name, __vue_component__);
4539
5802
 
4540
- const compositeComponents = [__vue_component__$e, __vue_component__$f];
4541
- const models = [__vue_component__$d, __vue_component__];
4542
- const components = [__vue_component__$n, __vue_component__$m, __vue_component__$l, __vue_component__$k, __vue_component__$i, __vue_component__$h, __vue_component__$c, __vue_component__$4, __vue_component__$3, __vue_component__$9, __vue_component__$8, __vue_component__$a, __vue_component__$7, __vue_component__$2, __vue_component__$6, __vue_component__$5, __vue_component__$1, ...compositeComponents, ...models];
5803
+ __vue_component__$h.install = Vue => Vue.component(__vue_component__$h.name, __vue_component__$h);
5804
+
5805
+ __vue_component__$7.install = Vue => Vue.component(__vue_component__$7.name, __vue_component__$7);
5806
+
5807
+ __vue_component__$8.install = Vue => Vue.component(__vue_component__$8.name, __vue_component__$8);
5808
+
5809
+ __vue_component__$6.install = Vue => Vue.component(__vue_component__$6.name, __vue_component__$6);
5810
+
5811
+ const compositeComponents = [__vue_component__$i, __vue_component__$j, __vue_component__];
5812
+ const models = [__vue_component__$h, __vue_component__$7, __vue_component__$8, __vue_component__$6];
5813
+ const components = [__vue_component__$r, __vue_component__$q, __vue_component__$p, __vue_component__$o, __vue_component__$m, __vue_component__$l, __vue_component__$5, __vue_component__$9, __vue_component__$4, __vue_component__$e, __vue_component__$d, __vue_component__$f, __vue_component__$c, __vue_component__$3, __vue_component__$b, __vue_component__$a, __vue_component__$2, __vue_component__$1, ...compositeComponents, ...models];
4543
5814
  const install = Vue => {
4544
5815
  if (install.installed) return;
4545
5816
  install.installed = true;
@@ -4548,4 +5819,4 @@ const install = Vue => {
4548
5819
  });
4549
5820
  };
4550
5821
 
4551
- export { __vue_component__$n as EleButton, __vue_component__$m as EleDate, __vue_component__$l as EleInput, __vue_component__$2 as EleModal, __vue_component__$k as EleSelect, __vue_component__$i as EleTable, __vue_component__$c as EleTpl, __vue_component__$h as EleTree, install as default, models };
5822
+ export { __vue_component__$r as EleButton, __vue_component__$q as EleDate, __vue_component__$p as EleInput, __vue_component__$3 as EleModal, __vue_component__$o as EleSelect, __vue_component__$m as EleTable, __vue_component__$5 as EleTpl, __vue_component__$l as EleTree, install as default, models };