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

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 (40) hide show
  1. package/dist/@idooel/components.esm.js +2295 -378
  2. package/dist/@idooel/components.umd.js +2306 -388
  3. package/package.json +3 -2
  4. package/packages/attachment/index.js +0 -0
  5. package/packages/attachment/src/index.vue +15 -0
  6. package/packages/batch-export/index.js +5 -0
  7. package/packages/batch-export/src/index.vue +15 -0
  8. package/packages/checkbox/index.js +5 -0
  9. package/packages/checkbox/src/index.vue +44 -0
  10. package/packages/composite-components/button-group/src/index.vue +0 -5
  11. package/packages/composite-components/search-area/src/index.vue +75 -40
  12. package/packages/form/index.js +5 -0
  13. package/packages/form/src/index.vue +119 -0
  14. package/packages/form-model/index.js +5 -0
  15. package/packages/form-model/src/index.vue +139 -0
  16. package/packages/icon/index.js +5 -0
  17. package/packages/icon/src/index.vue +32 -0
  18. package/packages/index.js +25 -2
  19. package/packages/input/src/index.vue +5 -1
  20. package/packages/input-number/index.js +5 -0
  21. package/packages/input-number/src/index.vue +24 -0
  22. package/packages/modal/index.js +5 -0
  23. package/packages/modal/src/index.vue +129 -0
  24. package/packages/radio/index.js +5 -0
  25. package/packages/radio/src/index.vue +48 -0
  26. package/packages/select-entity/index.js +5 -0
  27. package/packages/select-entity/src/index.vue +114 -0
  28. package/packages/table/src/action.vue +1 -1
  29. package/packages/text/index.js +5 -0
  30. package/packages/text/src/index.vue +15 -0
  31. package/packages/textarea/index.js +5 -0
  32. package/packages/textarea/src/index.vue +49 -0
  33. package/packages/theme/form.scss +24 -0
  34. package/packages/theme/index.scss +12 -0
  35. package/packages/theme/variables.scss +23 -1
  36. package/packages/tree-table-model/src/index.vue +35 -27
  37. package/packages/upload/index.js +5 -0
  38. package/packages/upload/src/index.vue +351 -0
  39. package/packages/utils/index.js +4 -0
  40. package/scripts/rollup.config.js +1 -1
@@ -1,5 +1,6 @@
1
1
  import { type, route, net } from '@idooel/shared';
2
2
  import moment from 'moment';
3
+ import FileUpload from 'vue-upload-component';
3
4
 
4
5
  //
5
6
  //
@@ -19,7 +20,7 @@ import moment from 'moment';
19
20
  //
20
21
  //
21
22
 
22
- var script$b = {
23
+ var script$n = {
23
24
  name: 'ele-button',
24
25
  props: {
25
26
  record: {
@@ -137,10 +138,10 @@ function normalizeComponent(template, style, script, scopeId, isFunctionalTempla
137
138
  }
138
139
 
139
140
  /* script */
140
- const __vue_script__$b = script$b;
141
+ const __vue_script__$n = script$n;
141
142
 
142
143
  /* template */
143
- var __vue_render__$b = function () {
144
+ var __vue_render__$n = function () {
144
145
  var _vm = this;
145
146
  var _h = _vm.$createElement;
146
147
  var _c = _vm._self._c || _h;
@@ -186,17 +187,17 @@ var __vue_render__$b = function () {
186
187
  2
187
188
  )
188
189
  };
189
- var __vue_staticRenderFns__$b = [];
190
- __vue_render__$b._withStripped = true;
190
+ var __vue_staticRenderFns__$n = [];
191
+ __vue_render__$n._withStripped = true;
191
192
 
192
193
  /* style */
193
- const __vue_inject_styles__$b = undefined;
194
+ const __vue_inject_styles__$n = undefined;
194
195
  /* scoped */
195
- const __vue_scope_id__$b = undefined;
196
+ const __vue_scope_id__$n = undefined;
196
197
  /* module identifier */
197
- const __vue_module_identifier__$b = undefined;
198
+ const __vue_module_identifier__$n = undefined;
198
199
  /* functional template */
199
- const __vue_is_functional_template__$b = false;
200
+ const __vue_is_functional_template__$n = false;
200
201
  /* style inject */
201
202
 
202
203
  /* style inject SSR */
@@ -205,20 +206,20 @@ __vue_render__$b._withStripped = true;
205
206
 
206
207
 
207
208
 
208
- const __vue_component__$b = /*#__PURE__*/normalizeComponent(
209
- { render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
210
- __vue_inject_styles__$b,
211
- __vue_script__$b,
212
- __vue_scope_id__$b,
213
- __vue_is_functional_template__$b,
214
- __vue_module_identifier__$b,
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,
215
216
  false,
216
217
  undefined,
217
218
  undefined,
218
219
  undefined
219
220
  );
220
221
 
221
- __vue_component__$b.install = Vue => Vue.component(__vue_component__$b.name, __vue_component__$b);
222
+ __vue_component__$n.install = Vue => Vue.component(__vue_component__$n.name, __vue_component__$n);
222
223
 
223
224
  //
224
225
  //
@@ -233,7 +234,7 @@ __vue_component__$b.install = Vue => Vue.component(__vue_component__$b.name, __v
233
234
  //
234
235
  //
235
236
 
236
- var script$a = {
237
+ var script$m = {
237
238
  name: 'ele-date',
238
239
  props: {
239
240
  value: {
@@ -261,10 +262,10 @@ var script$a = {
261
262
  };
262
263
 
263
264
  /* script */
264
- const __vue_script__$a = script$a;
265
+ const __vue_script__$m = script$m;
265
266
 
266
267
  /* template */
267
- var __vue_render__$a = function () {
268
+ var __vue_render__$m = function () {
268
269
  var _vm = this;
269
270
  var _h = _vm.$createElement;
270
271
  var _c = _vm._self._c || _h;
@@ -279,17 +280,17 @@ var __vue_render__$a = function () {
279
280
  on: { focus: _vm.onFocus, panelChange: _vm.onPanelChange },
280
281
  })
281
282
  };
282
- var __vue_staticRenderFns__$a = [];
283
- __vue_render__$a._withStripped = true;
283
+ var __vue_staticRenderFns__$m = [];
284
+ __vue_render__$m._withStripped = true;
284
285
 
285
286
  /* style */
286
- const __vue_inject_styles__$a = undefined;
287
+ const __vue_inject_styles__$m = undefined;
287
288
  /* scoped */
288
- const __vue_scope_id__$a = undefined;
289
+ const __vue_scope_id__$m = undefined;
289
290
  /* module identifier */
290
- const __vue_module_identifier__$a = undefined;
291
+ const __vue_module_identifier__$m = undefined;
291
292
  /* functional template */
292
- const __vue_is_functional_template__$a = false;
293
+ const __vue_is_functional_template__$m = false;
293
294
  /* style inject */
294
295
 
295
296
  /* style inject SSR */
@@ -298,29 +299,33 @@ __vue_render__$a._withStripped = true;
298
299
 
299
300
 
300
301
 
301
- const __vue_component__$a = /*#__PURE__*/normalizeComponent(
302
- { render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
303
- __vue_inject_styles__$a,
304
- __vue_script__$a,
305
- __vue_scope_id__$a,
306
- __vue_is_functional_template__$a,
307
- __vue_module_identifier__$a,
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,
308
309
  false,
309
310
  undefined,
310
311
  undefined,
311
312
  undefined
312
313
  );
313
314
 
314
- __vue_component__$a.install = Vue => Vue.component(__vue_component__$a.name, __vue_component__$a);
315
+ __vue_component__$m.install = Vue => Vue.component(__vue_component__$m.name, __vue_component__$m);
315
316
 
316
317
  //
317
318
  //
318
319
  //
319
320
  //
320
321
 
321
- var script$9 = {
322
+ var script$l = {
322
323
  name: 'ele-input',
323
324
  props: {
325
+ maxLength: {
326
+ type: Number,
327
+ default: 125
328
+ },
324
329
  value: {
325
330
  type: String
326
331
  }
@@ -378,53 +383,53 @@ function addStyle(id, css) {
378
383
  }
379
384
 
380
385
  /* script */
381
- const __vue_script__$9 = script$9;
386
+ const __vue_script__$l = script$l;
382
387
 
383
388
  /* template */
384
- var __vue_render__$9 = function () {
389
+ var __vue_render__$l = function () {
385
390
  var _vm = this;
386
391
  var _h = _vm.$createElement;
387
392
  var _c = _vm._self._c || _h;
388
393
  return _c("a-input", {
389
- attrs: { value: _vm.value },
394
+ attrs: { value: _vm.value, "max-length": _vm.maxLength },
390
395
  on: { change: _vm.onChange },
391
396
  })
392
397
  };
393
- var __vue_staticRenderFns__$9 = [];
394
- __vue_render__$9._withStripped = true;
398
+ var __vue_staticRenderFns__$l = [];
399
+ __vue_render__$l._withStripped = true;
395
400
 
396
401
  /* style */
397
- const __vue_inject_styles__$9 = function (inject) {
402
+ const __vue_inject_styles__$l = function (inject) {
398
403
  if (!inject) return
399
- inject("data-v-560c97a2_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", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
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 });
400
405
 
401
406
  };
402
407
  /* scoped */
403
- const __vue_scope_id__$9 = "data-v-560c97a2";
408
+ const __vue_scope_id__$l = "data-v-468d0810";
404
409
  /* module identifier */
405
- const __vue_module_identifier__$9 = undefined;
410
+ const __vue_module_identifier__$l = undefined;
406
411
  /* functional template */
407
- const __vue_is_functional_template__$9 = false;
412
+ const __vue_is_functional_template__$l = false;
408
413
  /* style inject SSR */
409
414
 
410
415
  /* style inject shadow dom */
411
416
 
412
417
 
413
418
 
414
- const __vue_component__$9 = /*#__PURE__*/normalizeComponent(
415
- { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
416
- __vue_inject_styles__$9,
417
- __vue_script__$9,
418
- __vue_scope_id__$9,
419
- __vue_is_functional_template__$9,
420
- __vue_module_identifier__$9,
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,
421
426
  false,
422
427
  createInjector,
423
428
  undefined,
424
429
  undefined
425
430
  );
426
431
 
427
- __vue_component__$9.install = Vue => Vue.component(__vue_component__$9.name, __vue_component__$9);
432
+ __vue_component__$l.install = Vue => Vue.component(__vue_component__$l.name, __vue_component__$l);
428
433
 
429
434
  //
430
435
  //
@@ -435,7 +440,7 @@ __vue_component__$9.install = Vue => Vue.component(__vue_component__$9.name, __v
435
440
  //
436
441
  //
437
442
 
438
- var script$8 = {
443
+ var script$k = {
439
444
  name: 'ele-select',
440
445
  props: {
441
446
  value: {
@@ -458,10 +463,10 @@ var script$8 = {
458
463
  };
459
464
 
460
465
  /* script */
461
- const __vue_script__$8 = script$8;
466
+ const __vue_script__$k = script$k;
462
467
 
463
468
  /* template */
464
- var __vue_render__$8 = function () {
469
+ var __vue_render__$k = function () {
465
470
  var _vm = this;
466
471
  var _h = _vm.$createElement;
467
472
  var _c = _vm._self._c || _h;
@@ -482,41 +487,41 @@ var __vue_render__$8 = function () {
482
487
  1
483
488
  )
484
489
  };
485
- var __vue_staticRenderFns__$8 = [];
486
- __vue_render__$8._withStripped = true;
490
+ var __vue_staticRenderFns__$k = [];
491
+ __vue_render__$k._withStripped = true;
487
492
 
488
493
  /* style */
489
- const __vue_inject_styles__$8 = function (inject) {
494
+ const __vue_inject_styles__$k = function (inject) {
490
495
  if (!inject) return
491
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 });
492
497
 
493
498
  };
494
499
  /* scoped */
495
- const __vue_scope_id__$8 = "data-v-499435e8";
500
+ const __vue_scope_id__$k = "data-v-499435e8";
496
501
  /* module identifier */
497
- const __vue_module_identifier__$8 = undefined;
502
+ const __vue_module_identifier__$k = undefined;
498
503
  /* functional template */
499
- const __vue_is_functional_template__$8 = false;
504
+ const __vue_is_functional_template__$k = false;
500
505
  /* style inject SSR */
501
506
 
502
507
  /* style inject shadow dom */
503
508
 
504
509
 
505
510
 
506
- const __vue_component__$8 = /*#__PURE__*/normalizeComponent(
507
- { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
508
- __vue_inject_styles__$8,
509
- __vue_script__$8,
510
- __vue_scope_id__$8,
511
- __vue_is_functional_template__$8,
512
- __vue_module_identifier__$8,
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,
513
518
  false,
514
519
  createInjector,
515
520
  undefined,
516
521
  undefined
517
522
  );
518
523
 
519
- __vue_component__$8.install = Vue => Vue.component(__vue_component__$8.name, __vue_component__$8);
524
+ __vue_component__$k.install = Vue => Vue.component(__vue_component__$k.name, __vue_component__$k);
520
525
 
521
526
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
522
527
  // require the crypto API and do not support built-in fallback to lower quality random number
@@ -1150,7 +1155,7 @@ const parse = (expression, props = {}) => {
1150
1155
 
1151
1156
  //
1152
1157
  const MENU_KEY_NAMESPACE = 'f7b3b8b0-1b7b-11ec-9621-0242ac130002';
1153
- var script$7 = {
1158
+ var script$j = {
1154
1159
  props: {
1155
1160
  record: {
1156
1161
  type: Object
@@ -1248,10 +1253,10 @@ var script$7 = {
1248
1253
  };
1249
1254
 
1250
1255
  /* script */
1251
- const __vue_script__$7 = script$7;
1256
+ const __vue_script__$j = script$j;
1252
1257
 
1253
1258
  /* template */
1254
- var __vue_render__$7 = function () {
1259
+ var __vue_render__$j = function () {
1255
1260
  var _vm = this;
1256
1261
  var _h = _vm.$createElement;
1257
1262
  var _c = _vm._self._c || _h;
@@ -1264,7 +1269,19 @@ var __vue_render__$7 = function () {
1264
1269
  { key: idx, staticClass: "table-action__item" },
1265
1270
  [
1266
1271
  item.type == "text"
1267
- ? [_c("span", [_vm._v(_vm._s(item.label))])]
1272
+ ? [
1273
+ _c(
1274
+ "span",
1275
+ {
1276
+ on: {
1277
+ click: function ($event) {
1278
+ return _vm.handleClickText(item)
1279
+ },
1280
+ },
1281
+ },
1282
+ [_vm._v(_vm._s(item.label))]
1283
+ ),
1284
+ ]
1268
1285
  : item.type == "dropdown"
1269
1286
  ? [
1270
1287
  _c(
@@ -1339,34 +1356,34 @@ var __vue_render__$7 = function () {
1339
1356
  0
1340
1357
  )
1341
1358
  };
1342
- var __vue_staticRenderFns__$7 = [];
1343
- __vue_render__$7._withStripped = true;
1359
+ var __vue_staticRenderFns__$j = [];
1360
+ __vue_render__$j._withStripped = true;
1344
1361
 
1345
1362
  /* style */
1346
- const __vue_inject_styles__$7 = function (inject) {
1363
+ const __vue_inject_styles__$j = function (inject) {
1347
1364
  if (!inject) return
1348
- inject("data-v-2708b08a_0", { source: ".g-table__action[data-v-2708b08a] {\n display: flex;\n flex-direction: row;\n}\n.g-table__action .table-action__item[data-v-2708b08a] {\n font-size: 14px;\n color: #409EFF;\n margin-left: 16px;\n cursor: pointer;\n}\n.g-table__action .table-action__item[data-v-2708b08a]: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>{{ 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 });
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 });
1349
1366
 
1350
1367
  };
1351
1368
  /* scoped */
1352
- const __vue_scope_id__$7 = "data-v-2708b08a";
1369
+ const __vue_scope_id__$j = "data-v-572820bc";
1353
1370
  /* module identifier */
1354
- const __vue_module_identifier__$7 = undefined;
1371
+ const __vue_module_identifier__$j = undefined;
1355
1372
  /* functional template */
1356
- const __vue_is_functional_template__$7 = false;
1373
+ const __vue_is_functional_template__$j = false;
1357
1374
  /* style inject SSR */
1358
1375
 
1359
1376
  /* style inject shadow dom */
1360
1377
 
1361
1378
 
1362
1379
 
1363
- const __vue_component__$7 = /*#__PURE__*/normalizeComponent(
1364
- { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
1365
- __vue_inject_styles__$7,
1366
- __vue_script__$7,
1367
- __vue_scope_id__$7,
1368
- __vue_is_functional_template__$7,
1369
- __vue_module_identifier__$7,
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,
1370
1387
  false,
1371
1388
  createInjector,
1372
1389
  undefined,
@@ -1374,10 +1391,10 @@ __vue_render__$7._withStripped = true;
1374
1391
  );
1375
1392
 
1376
1393
  //
1377
- var script$6 = {
1394
+ var script$i = {
1378
1395
  name: 'ele-table',
1379
1396
  components: {
1380
- Actions: __vue_component__$7
1397
+ Actions: __vue_component__$j
1381
1398
  },
1382
1399
  props: {
1383
1400
  actions: {
@@ -1420,10 +1437,10 @@ var script$6 = {
1420
1437
  };
1421
1438
 
1422
1439
  /* script */
1423
- const __vue_script__$6 = script$6;
1440
+ const __vue_script__$i = script$i;
1424
1441
 
1425
1442
  /* template */
1426
- var __vue_render__$6 = function () {
1443
+ var __vue_render__$i = function () {
1427
1444
  var _vm = this;
1428
1445
  var _h = _vm.$createElement;
1429
1446
  var _c = _vm._self._c || _h;
@@ -1482,41 +1499,41 @@ var __vue_render__$6 = function () {
1482
1499
  1
1483
1500
  )
1484
1501
  };
1485
- var __vue_staticRenderFns__$6 = [];
1486
- __vue_render__$6._withStripped = true;
1502
+ var __vue_staticRenderFns__$i = [];
1503
+ __vue_render__$i._withStripped = true;
1487
1504
 
1488
1505
  /* style */
1489
- const __vue_inject_styles__$6 = function (inject) {
1506
+ const __vue_inject_styles__$i = function (inject) {
1490
1507
  if (!inject) return
1491
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 });
1492
1509
 
1493
1510
  };
1494
1511
  /* scoped */
1495
- const __vue_scope_id__$6 = "data-v-6f3faf52";
1512
+ const __vue_scope_id__$i = "data-v-6f3faf52";
1496
1513
  /* module identifier */
1497
- const __vue_module_identifier__$6 = undefined;
1514
+ const __vue_module_identifier__$i = undefined;
1498
1515
  /* functional template */
1499
- const __vue_is_functional_template__$6 = false;
1516
+ const __vue_is_functional_template__$i = false;
1500
1517
  /* style inject SSR */
1501
1518
 
1502
1519
  /* style inject shadow dom */
1503
1520
 
1504
1521
 
1505
1522
 
1506
- const __vue_component__$6 = /*#__PURE__*/normalizeComponent(
1507
- { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
1508
- __vue_inject_styles__$6,
1509
- __vue_script__$6,
1510
- __vue_scope_id__$6,
1511
- __vue_is_functional_template__$6,
1512
- __vue_module_identifier__$6,
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,
1513
1530
  false,
1514
1531
  createInjector,
1515
1532
  undefined,
1516
1533
  undefined
1517
1534
  );
1518
1535
 
1519
- __vue_component__$6.install = Vue => Vue.component(__vue_component__$6.name, __vue_component__$6);
1536
+ __vue_component__$i.install = Vue => Vue.component(__vue_component__$i.name, __vue_component__$i);
1520
1537
 
1521
1538
  //
1522
1539
  //
@@ -1542,7 +1559,7 @@ __vue_component__$6.install = Vue => Vue.component(__vue_component__$6.name, __v
1542
1559
  //
1543
1560
  //
1544
1561
 
1545
- var script$5 = {
1562
+ var script$h = {
1546
1563
  name: 'ele-tree',
1547
1564
  props: {
1548
1565
  treeData: {
@@ -1605,10 +1622,10 @@ var script$5 = {
1605
1622
  };
1606
1623
 
1607
1624
  /* script */
1608
- const __vue_script__$5 = script$5;
1625
+ const __vue_script__$h = script$h;
1609
1626
 
1610
1627
  /* template */
1611
- var __vue_render__$5 = function () {
1628
+ var __vue_render__$h = function () {
1612
1629
  var _vm = this;
1613
1630
  var _h = _vm.$createElement;
1614
1631
  var _c = _vm._self._c || _h;
@@ -1665,41 +1682,41 @@ var __vue_render__$5 = function () {
1665
1682
  1
1666
1683
  )
1667
1684
  };
1668
- var __vue_staticRenderFns__$5 = [];
1669
- __vue_render__$5._withStripped = true;
1685
+ var __vue_staticRenderFns__$h = [];
1686
+ __vue_render__$h._withStripped = true;
1670
1687
 
1671
1688
  /* style */
1672
- const __vue_inject_styles__$5 = function (inject) {
1689
+ const __vue_inject_styles__$h = function (inject) {
1673
1690
  if (!inject) return
1674
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 });
1675
1692
 
1676
1693
  };
1677
1694
  /* scoped */
1678
- const __vue_scope_id__$5 = "data-v-cc99bbf0";
1695
+ const __vue_scope_id__$h = "data-v-cc99bbf0";
1679
1696
  /* module identifier */
1680
- const __vue_module_identifier__$5 = undefined;
1697
+ const __vue_module_identifier__$h = undefined;
1681
1698
  /* functional template */
1682
- const __vue_is_functional_template__$5 = false;
1699
+ const __vue_is_functional_template__$h = false;
1683
1700
  /* style inject SSR */
1684
1701
 
1685
1702
  /* style inject shadow dom */
1686
1703
 
1687
1704
 
1688
1705
 
1689
- const __vue_component__$5 = /*#__PURE__*/normalizeComponent(
1690
- { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
1691
- __vue_inject_styles__$5,
1692
- __vue_script__$5,
1693
- __vue_scope_id__$5,
1694
- __vue_is_functional_template__$5,
1695
- __vue_module_identifier__$5,
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,
1696
1713
  false,
1697
1714
  createInjector,
1698
1715
  undefined,
1699
1716
  undefined
1700
1717
  );
1701
1718
 
1702
- __vue_component__$5.install = Vue => Vue.component(__vue_component__$5.name, __vue_component__$5);
1719
+ __vue_component__$h.install = Vue => Vue.component(__vue_component__$h.name, __vue_component__$h);
1703
1720
 
1704
1721
  //
1705
1722
  //
@@ -1709,7 +1726,7 @@ __vue_component__$5.install = Vue => Vue.component(__vue_component__$5.name, __v
1709
1726
  //
1710
1727
  //
1711
1728
 
1712
- var script$4 = {
1729
+ var script$g = {
1713
1730
  props: {
1714
1731
  label: {
1715
1732
  type: String
@@ -1718,10 +1735,10 @@ var script$4 = {
1718
1735
  };
1719
1736
 
1720
1737
  /* script */
1721
- const __vue_script__$4 = script$4;
1738
+ const __vue_script__$g = script$g;
1722
1739
 
1723
1740
  /* template */
1724
- var __vue_render__$4 = function () {
1741
+ var __vue_render__$g = function () {
1725
1742
  var _vm = this;
1726
1743
  var _h = _vm.$createElement;
1727
1744
  var _c = _vm._self._c || _h;
@@ -1731,34 +1748,34 @@ var __vue_render__$4 = function () {
1731
1748
  _c("span", { staticClass: "label__suffix" }, [_vm._v(":")]),
1732
1749
  ])
1733
1750
  };
1734
- var __vue_staticRenderFns__$4 = [];
1735
- __vue_render__$4._withStripped = true;
1751
+ var __vue_staticRenderFns__$g = [];
1752
+ __vue_render__$g._withStripped = true;
1736
1753
 
1737
1754
  /* style */
1738
- const __vue_inject_styles__$4 = function (inject) {
1755
+ const __vue_inject_styles__$g = function (inject) {
1739
1756
  if (!inject) return
1740
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 });
1741
1758
 
1742
1759
  };
1743
1760
  /* scoped */
1744
- const __vue_scope_id__$4 = "data-v-40e71716";
1761
+ const __vue_scope_id__$g = "data-v-40e71716";
1745
1762
  /* module identifier */
1746
- const __vue_module_identifier__$4 = undefined;
1763
+ const __vue_module_identifier__$g = undefined;
1747
1764
  /* functional template */
1748
- const __vue_is_functional_template__$4 = false;
1765
+ const __vue_is_functional_template__$g = false;
1749
1766
  /* style inject SSR */
1750
1767
 
1751
1768
  /* style inject shadow dom */
1752
1769
 
1753
1770
 
1754
1771
 
1755
- const __vue_component__$4 = /*#__PURE__*/normalizeComponent(
1756
- { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
1757
- __vue_inject_styles__$4,
1758
- __vue_script__$4,
1759
- __vue_scope_id__$4,
1760
- __vue_is_functional_template__$4,
1761
- __vue_module_identifier__$4,
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,
1762
1779
  false,
1763
1780
  createInjector,
1764
1781
  undefined,
@@ -1766,14 +1783,14 @@ __vue_render__$4._withStripped = true;
1766
1783
  );
1767
1784
 
1768
1785
  //
1769
- var script$3 = {
1786
+ var script$f = {
1770
1787
  name: 'ele-search-area',
1771
1788
  components: {
1772
- EleInput: __vue_component__$9,
1773
- EleSelect: __vue_component__$8,
1774
- ELeButton: __vue_component__$b,
1775
- Label: __vue_component__$4,
1776
- EleDate: __vue_component__$a
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
1777
1794
  },
1778
1795
  props: {
1779
1796
  gutter: {
@@ -1791,30 +1808,57 @@ var script$3 = {
1791
1808
  },
1792
1809
  data() {
1793
1810
  return {
1794
- isExpand: false,
1795
- collapseDataSource: []
1811
+ isExpand: false
1796
1812
  };
1797
1813
  },
1798
1814
  computed: {
1799
- actionColOffset() {
1800
- return (24 / this.span - 1) * this.span;
1815
+ cuttingFormula() {
1816
+ return 24 / this.span - 1;
1817
+ },
1818
+ buildDataSource() {
1819
+ return this.controlDisplayByFormula(this.mapDefaultValueToValue());
1801
1820
  },
1802
1821
  innerDataSource() {
1803
- return this.isExpand ? [...this.dataSource, {
1804
- type: '_action'
1805
- }] : [...this.collapseDataSource, {
1806
- type: '_action'
1822
+ return [...this.buildDataSource, {
1823
+ type: '_action',
1824
+ _show: true
1807
1825
  }];
1808
1826
  }
1809
1827
  },
1810
- created() {
1811
- this.collapseDataSource = this.dataSource.slice(0, 24 / this.span - 1);
1812
- },
1828
+ created() {},
1813
1829
  methods: {
1814
- handleClickExpandCollapse() {
1815
- if (!this.isExpand) {
1816
- this.collapseDataSource = this.dataSource.slice(0, 24 / this.span - 1);
1830
+ controlDisplayByFormula(dataSource = []) {
1831
+ if (this.isExpand) {
1832
+ dataSource.forEach(item => {
1833
+ this.$set(item, '_show', true);
1834
+ });
1835
+ } else {
1836
+ dataSource.forEach((item, idx) => {
1837
+ if (idx < this.cuttingFormula) {
1838
+ this.$set(item, '_show', true);
1839
+ } else {
1840
+ this.$set(item, '_show', false);
1841
+ }
1842
+ });
1817
1843
  }
1844
+ return dataSource;
1845
+ },
1846
+ buildDefaultValue(arg) {
1847
+ if (!arg || arg.charAt(0) !== '_') return arg;
1848
+ return parse(arg, {
1849
+ _route: this.$route.query
1850
+ });
1851
+ },
1852
+ mapDefaultValueToValue() {
1853
+ this.dataSource.forEach(props => {
1854
+ this.$set(props, '_show', this.isExpand);
1855
+ if (props.defaultValue) {
1856
+ this.$set(props, '_value', this.buildDefaultValue(props.defaultValue));
1857
+ }
1858
+ });
1859
+ return this.dataSource;
1860
+ },
1861
+ handleClickExpandCollapse() {
1818
1862
  this.isExpand = !this.isExpand;
1819
1863
  },
1820
1864
  handleClickSearch() {
@@ -1837,15 +1881,21 @@ var script$3 = {
1837
1881
  },
1838
1882
  handleClickReset() {
1839
1883
  this.innerDataSource.filter(item => item.type !== '_action').forEach(item => {
1884
+ const {
1885
+ defaultValue
1886
+ } = item;
1840
1887
  switch (item.type) {
1841
1888
  case 'Select':
1842
- this.$set(item, '_value', null);
1889
+ defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1890
+ !defaultValue && this.$set(item, '_value', null);
1843
1891
  break;
1844
1892
  case 'DatePicker':
1845
- this.$set(item, '_value', undefined);
1893
+ defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1894
+ !defaultValue && this.$set(item, '_value', undefined);
1846
1895
  break;
1847
1896
  default:
1848
- this.$set(item, '_value', null);
1897
+ defaultValue && this.$set(item, '_value', this.buildDefaultValue(defaultValue));
1898
+ !defaultValue && this.$set(item, '_value', null);
1849
1899
  break;
1850
1900
  }
1851
1901
  });
@@ -1860,10 +1910,10 @@ var script$3 = {
1860
1910
  };
1861
1911
 
1862
1912
  /* script */
1863
- const __vue_script__$3 = script$3;
1913
+ const __vue_script__$f = script$f;
1864
1914
 
1865
1915
  /* template */
1866
- var __vue_render__$3 = function () {
1916
+ var __vue_render__$f = function () {
1867
1917
  var _vm = this;
1868
1918
  var _h = _vm.$createElement;
1869
1919
  var _c = _vm._self._c || _h;
@@ -1874,150 +1924,175 @@ var __vue_render__$3 = function () {
1874
1924
  _c(
1875
1925
  "a-row",
1876
1926
  { attrs: { gutter: _vm.gutter } },
1877
- _vm._l(_vm.innerDataSource, function (item, idx) {
1878
- return _c(
1879
- "a-col",
1880
- { key: idx, attrs: { span: item.span || _vm.span } },
1881
- [
1882
- item.type == "_action"
1927
+ [
1928
+ _vm._l(_vm.innerDataSource, function (item, idx) {
1929
+ return [
1930
+ item._show
1883
1931
  ? _c(
1884
- "div",
1885
- { staticClass: "search-area__item search-area--action" },
1932
+ "a-col",
1933
+ { key: idx, attrs: { span: item.span || _vm.span } },
1886
1934
  [
1887
- _c(
1888
- "ele-button",
1889
- {
1890
- attrs: { icon: "search", type: "primary" },
1891
- on: { click: _vm.handleClickSearch },
1892
- },
1893
- [_vm._v("查询")]
1894
- ),
1895
- _vm._v(" "),
1896
- _c(
1897
- "ele-button",
1898
- {
1899
- staticStyle: { "margin-left": "8px" },
1900
- attrs: { icon: "reload" },
1901
- on: { click: _vm.handleClickReset },
1902
- },
1903
- [_vm._v("重置")]
1904
- ),
1905
- _vm._v(" "),
1906
- _c(
1907
- "div",
1908
- {
1909
- staticClass: "expand-collapse",
1910
- on: { click: _vm.handleClickExpandCollapse },
1911
- },
1912
- [
1913
- _c("span", { staticClass: "expand-collapse__text" }, [
1914
- _vm._v(_vm._s(_vm.isExpand ? "收起" : "展开")),
1915
- ]),
1916
- _vm._v(" "),
1917
- _c(
1918
- "span",
1919
- { staticClass: "expand-collapse__icon" },
1935
+ item.type == "_action"
1936
+ ? _c(
1937
+ "div",
1938
+ {
1939
+ staticClass:
1940
+ "search-area__item search-area--action",
1941
+ },
1920
1942
  [
1921
- _vm.isExpand
1922
- ? _c("a-icon", { attrs: { type: "up" } })
1923
- : _c("a-icon", { attrs: { type: "down" } }),
1943
+ _c(
1944
+ "ele-button",
1945
+ {
1946
+ attrs: { icon: "search", type: "primary" },
1947
+ on: { click: _vm.handleClickSearch },
1948
+ },
1949
+ [_vm._v("查询")]
1950
+ ),
1951
+ _vm._v(" "),
1952
+ _c(
1953
+ "ele-button",
1954
+ {
1955
+ staticStyle: { "margin-left": "8px" },
1956
+ attrs: { icon: "reload" },
1957
+ on: { click: _vm.handleClickReset },
1958
+ },
1959
+ [_vm._v("重置")]
1960
+ ),
1961
+ _vm._v(" "),
1962
+ _c(
1963
+ "div",
1964
+ {
1965
+ staticClass: "expand-collapse",
1966
+ on: { click: _vm.handleClickExpandCollapse },
1967
+ },
1968
+ [
1969
+ _c(
1970
+ "span",
1971
+ { staticClass: "expand-collapse__text" },
1972
+ [
1973
+ _vm._v(
1974
+ _vm._s(_vm.isExpand ? "收起" : "展开")
1975
+ ),
1976
+ ]
1977
+ ),
1978
+ _vm._v(" "),
1979
+ _c(
1980
+ "span",
1981
+ { staticClass: "expand-collapse__icon" },
1982
+ [
1983
+ _vm.isExpand
1984
+ ? _c("a-icon", {
1985
+ attrs: { type: "up" },
1986
+ })
1987
+ : _c("a-icon", {
1988
+ attrs: { type: "down" },
1989
+ }),
1990
+ ],
1991
+ 1
1992
+ ),
1993
+ ]
1994
+ ),
1924
1995
  ],
1925
1996
  1
1997
+ )
1998
+ : _c(
1999
+ "div",
2000
+ { staticClass: "search-area__item" },
2001
+ [
2002
+ item.type == "Input"
2003
+ ? [
2004
+ _c("Label", {
2005
+ attrs: { label: item.label },
2006
+ }),
2007
+ _vm._v(" "),
2008
+ _c("ele-input", {
2009
+ model: {
2010
+ value: item._value,
2011
+ callback: function ($$v) {
2012
+ _vm.$set(item, "_value", $$v);
2013
+ },
2014
+ expression: "item._value",
2015
+ },
2016
+ }),
2017
+ ]
2018
+ : item.type == "Select"
2019
+ ? [
2020
+ _c("Label", {
2021
+ attrs: { label: item.label },
2022
+ }),
2023
+ _vm._v(" "),
2024
+ _c("ele-select", {
2025
+ attrs: { "data-source": item.optionList },
2026
+ model: {
2027
+ value: item._value,
2028
+ callback: function ($$v) {
2029
+ _vm.$set(item, "_value", $$v);
2030
+ },
2031
+ expression: "item._value",
2032
+ },
2033
+ }),
2034
+ ]
2035
+ : item.type == "DatePicker"
2036
+ ? [
2037
+ _c("Label", {
2038
+ attrs: { label: item.label },
2039
+ }),
2040
+ _vm._v(" "),
2041
+ _c("ele-date", {
2042
+ attrs: { format: item.format },
2043
+ model: {
2044
+ value: item._value,
2045
+ callback: function ($$v) {
2046
+ _vm.$set(item, "_value", $$v);
2047
+ },
2048
+ expression: "item._value",
2049
+ },
2050
+ }),
2051
+ ]
2052
+ : _vm._e(),
2053
+ ],
2054
+ 2
1926
2055
  ),
1927
- ]
1928
- ),
1929
- ],
1930
- 1
2056
+ ]
1931
2057
  )
1932
- : _c(
1933
- "div",
1934
- { staticClass: "search-area__item" },
1935
- [
1936
- item.type == "Input"
1937
- ? [
1938
- _c("Label", { attrs: { label: item.label } }),
1939
- _vm._v(" "),
1940
- _c("ele-input", {
1941
- model: {
1942
- value: item._value,
1943
- callback: function ($$v) {
1944
- _vm.$set(item, "_value", $$v);
1945
- },
1946
- expression: "item._value",
1947
- },
1948
- }),
1949
- ]
1950
- : item.type == "Select"
1951
- ? [
1952
- _c("Label", { attrs: { label: item.label } }),
1953
- _vm._v(" "),
1954
- _c("ele-select", {
1955
- attrs: { "data-source": item.optionList },
1956
- model: {
1957
- value: item._value,
1958
- callback: function ($$v) {
1959
- _vm.$set(item, "_value", $$v);
1960
- },
1961
- expression: "item._value",
1962
- },
1963
- }),
1964
- ]
1965
- : item.type == "DatePicker"
1966
- ? [
1967
- _c("Label", { attrs: { label: item.label } }),
1968
- _vm._v(" "),
1969
- _c("ele-date", {
1970
- attrs: { format: item.format },
1971
- model: {
1972
- value: item._value,
1973
- callback: function ($$v) {
1974
- _vm.$set(item, "_value", $$v);
1975
- },
1976
- expression: "item._value",
1977
- },
1978
- }),
1979
- ]
1980
- : _vm._e(),
1981
- ],
1982
- 2
1983
- ),
2058
+ : _vm._e(),
1984
2059
  ]
1985
- )
1986
- }),
1987
- 1
2060
+ }),
2061
+ ],
2062
+ 2
1988
2063
  ),
1989
2064
  ],
1990
2065
  1
1991
2066
  )
1992
2067
  };
1993
- var __vue_staticRenderFns__$3 = [];
1994
- __vue_render__$3._withStripped = true;
2068
+ var __vue_staticRenderFns__$f = [];
2069
+ __vue_render__$f._withStripped = true;
1995
2070
 
1996
2071
  /* style */
1997
- const __vue_inject_styles__$3 = function (inject) {
2072
+ const __vue_inject_styles__$f = function (inject) {
1998
2073
  if (!inject) return
1999
- inject("data-v-33290002_0", { source: ".search-area__wrapper[data-v-33290002] {\n padding-top: 16px;\n padding-left: 16px;\n padding-right: 16px;\n}\n.search-area__wrapper[data-v-33290002] .ant-col:last-child {\n float: right;\n}\n.search-area__wrapper .search-area__item[data-v-33290002] {\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-33290002] {\n justify-content: end;\n}\n.search-area__wrapper .search-area__item .expand-collapse[data-v-33290002] {\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-33290002] {\n font-size: 14px;\n}\n.search-area__wrapper .search-area__item .expand-collapse .expand-collapse__icon[data-v-33290002] {\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":"AAsIA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;ACrIA;ADuIA;EACA,YAAA;ACrIA;ADwIA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;ACtIA;ADuIA;EACA,oBAAA;ACrIA;ADuIA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;EACA,kCAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;ACrIA;ADsIA;EACA,eAAA;ACpIA;ADsIA;EACA,eAAA;EACA,gBAAA;ACpIA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"search-area__wrapper\">\r\n <a-row :gutter=\"gutter\">\r\n <a-col :span=\"item.span || span\" v-for=\"(item, idx) in innerDataSource\" :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 </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\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 collapseDataSource: []\r\n }\r\n },\r\n computed: {\r\n actionColOffset () {\r\n return ((24 / this.span) - 1) * this.span\r\n },\r\n innerDataSource () {\r\n return this.isExpand ? [ ...this.dataSource, { type: '_action' }] : [ ...this.collapseDataSource, { type: '_action' }]\r\n }\r\n },\r\n created() {\r\n this.collapseDataSource = this.dataSource.slice(0, (24 / this.span - 1))\r\n },\r\n methods: {\r\n handleClickExpandCollapse () {\r\n if (!this.isExpand) {\r\n this.collapseDataSource = this.dataSource.slice(0, (24 / this.span - 1))\r\n }\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 switch (item.type) {\r\n case 'Select':\r\n this.$set(item, '_value', null)\r\n break\r\n case 'DatePicker':\r\n this.$set(item, '_value', undefined)\r\n break\r\n default:\r\n 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 });
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 });
2000
2075
 
2001
2076
  };
2002
2077
  /* scoped */
2003
- const __vue_scope_id__$3 = "data-v-33290002";
2078
+ const __vue_scope_id__$f = "data-v-5a224358";
2004
2079
  /* module identifier */
2005
- const __vue_module_identifier__$3 = undefined;
2080
+ const __vue_module_identifier__$f = undefined;
2006
2081
  /* functional template */
2007
- const __vue_is_functional_template__$3 = false;
2082
+ const __vue_is_functional_template__$f = false;
2008
2083
  /* style inject SSR */
2009
2084
 
2010
2085
  /* style inject shadow dom */
2011
2086
 
2012
2087
 
2013
2088
 
2014
- const __vue_component__$3 = /*#__PURE__*/normalizeComponent(
2015
- { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
2016
- __vue_inject_styles__$3,
2017
- __vue_script__$3,
2018
- __vue_scope_id__$3,
2019
- __vue_is_functional_template__$3,
2020
- __vue_module_identifier__$3,
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,
2021
2096
  false,
2022
2097
  createInjector,
2023
2098
  undefined,
@@ -2025,29 +2100,24 @@ __vue_render__$3._withStripped = true;
2025
2100
  );
2026
2101
 
2027
2102
  //
2028
- var script$2 = {
2103
+ var script$e = {
2029
2104
  name: 'ele-button-group',
2030
2105
  components: {
2031
- EleButton: __vue_component__$b
2106
+ EleButton: __vue_component__$n
2032
2107
  },
2033
2108
  props: {
2034
2109
  dataSource: {
2035
2110
  type: Array,
2036
2111
  default: () => []
2037
2112
  }
2038
- },
2039
- methods: {
2040
- handleClick(props) {
2041
- this.$emit('click', props);
2042
- }
2043
2113
  }
2044
2114
  };
2045
2115
 
2046
2116
  /* script */
2047
- const __vue_script__$2 = script$2;
2117
+ const __vue_script__$e = script$e;
2048
2118
 
2049
2119
  /* template */
2050
- var __vue_render__$2 = function () {
2120
+ var __vue_render__$e = function () {
2051
2121
  var _vm = this;
2052
2122
  var _h = _vm.$createElement;
2053
2123
  var _c = _vm._self._c || _h;
@@ -2077,34 +2147,34 @@ var __vue_render__$2 = function () {
2077
2147
  1
2078
2148
  )
2079
2149
  };
2080
- var __vue_staticRenderFns__$2 = [];
2081
- __vue_render__$2._withStripped = true;
2150
+ var __vue_staticRenderFns__$e = [];
2151
+ __vue_render__$e._withStripped = true;
2082
2152
 
2083
2153
  /* style */
2084
- const __vue_inject_styles__$2 = function (inject) {
2154
+ const __vue_inject_styles__$e = function (inject) {
2085
2155
  if (!inject) return
2086
- inject("data-v-106e8dd5_0", { source: ".button-group__wrapper[data-v-106e8dd5] {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n}\n.button-group__wrapper .ant-btn[data-v-106e8dd5] {\n margin-left: 8px;\n}\n.button-group__wrapper .ant-btn[data-v-106e8dd5]: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":"AAuCA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;ACtCA;ADuCA;EACA,gBAAA;ACrCA;ADsCA;EACA,cAAA;ACpCA;;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 methods: {\r\n handleClick (props) {\r\n this.$emit('click', props)\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 });
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 });
2087
2157
 
2088
2158
  };
2089
2159
  /* scoped */
2090
- const __vue_scope_id__$2 = "data-v-106e8dd5";
2160
+ const __vue_scope_id__$e = "data-v-de67e2d2";
2091
2161
  /* module identifier */
2092
- const __vue_module_identifier__$2 = undefined;
2162
+ const __vue_module_identifier__$e = undefined;
2093
2163
  /* functional template */
2094
- const __vue_is_functional_template__$2 = false;
2164
+ const __vue_is_functional_template__$e = false;
2095
2165
  /* style inject SSR */
2096
2166
 
2097
2167
  /* style inject shadow dom */
2098
2168
 
2099
2169
 
2100
2170
 
2101
- const __vue_component__$2 = /*#__PURE__*/normalizeComponent(
2102
- { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
2103
- __vue_inject_styles__$2,
2104
- __vue_script__$2,
2105
- __vue_scope_id__$2,
2106
- __vue_is_functional_template__$2,
2107
- __vue_module_identifier__$2,
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,
2108
2178
  false,
2109
2179
  createInjector,
2110
2180
  undefined,
@@ -2112,13 +2182,13 @@ __vue_render__$2._withStripped = true;
2112
2182
  );
2113
2183
 
2114
2184
  //
2115
- var script$1 = {
2185
+ var script$d = {
2116
2186
  name: 'ele-tree-table-model',
2117
2187
  components: {
2118
- EleTree: __vue_component__$5,
2119
- EleTable: __vue_component__$6,
2120
- EleSearchArea: __vue_component__$3,
2121
- EleButtonGroup: __vue_component__$2
2188
+ EleTree: __vue_component__$h,
2189
+ EleTable: __vue_component__$i,
2190
+ EleSearchArea: __vue_component__$f,
2191
+ EleButtonGroup: __vue_component__$e
2122
2192
  },
2123
2193
  props: {
2124
2194
  treeMeta: {
@@ -2164,6 +2234,9 @@ var script$1 = {
2164
2234
  };
2165
2235
  },
2166
2236
  computed: {
2237
+ showTree() {
2238
+ return !!Object.keys(this.treeMeta).length;
2239
+ },
2167
2240
  buttonGroup() {
2168
2241
  return v4();
2169
2242
  },
@@ -2258,15 +2331,17 @@ var script$1 = {
2258
2331
  }
2259
2332
  },
2260
2333
  async created() {
2261
- this.treeData = await this.requestTreeData();
2262
- const [defaultTreeNode = {}] = this.treeData;
2263
- this.defaultExpandedKeys = [defaultTreeNode[this.replaceFields.key]];
2264
- this.defaultSelectedKeys = [defaultTreeNode[this.replaceFields.key]];
2334
+ if (this.showTree) {
2335
+ this.treeData = await this.requestTreeData();
2336
+ const [defaultTreeNode = {}] = this.treeData;
2337
+ this.defaultExpandedKeys = [defaultTreeNode[this.replaceFields.key]];
2338
+ this.defaultSelectedKeys = [defaultTreeNode[this.replaceFields.key]];
2339
+ this.currentTreeNodeData = defaultTreeNode;
2340
+ }
2265
2341
  const {
2266
2342
  fieldMap
2267
2343
  } = this.tableMeta;
2268
- this.currentTreeNodeData = defaultTreeNode;
2269
- this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, defaultTreeNode));
2344
+ this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, this.currentTreeNodeData));
2270
2345
  },
2271
2346
  methods: {
2272
2347
  handleClickButtonGroup(props) {
@@ -2392,34 +2467,37 @@ var script$1 = {
2392
2467
  };
2393
2468
 
2394
2469
  /* script */
2395
- const __vue_script__$1 = script$1;
2470
+ const __vue_script__$d = script$d;
2396
2471
 
2397
2472
  /* template */
2398
- var __vue_render__$1 = function () {
2473
+ var __vue_render__$d = function () {
2399
2474
  var _vm = this;
2400
2475
  var _h = _vm.$createElement;
2401
2476
  var _c = _vm._self._c || _h;
2402
- return _c("section", { staticClass: "model__tree-table" }, [
2403
- _c("section", { staticClass: "model__tree-table--container" }, [
2404
- _c("div", { staticClass: "model__tree--title" }),
2405
- _vm._v(" "),
2406
- _c(
2407
- "section",
2408
- { ref: _vm.modelTreeWrapper, staticClass: "model__tree--wrapper" },
2409
- [
2410
- _c("ele-tree", {
2411
- attrs: {
2412
- "tree-data": _vm.treeData,
2413
- defaultExpandedKeys: _vm.defaultExpandedKeys,
2414
- defaultSelectedKeys: _vm.defaultSelectedKeys,
2415
- "replace-fields": _vm.treeMeta.replaceFields || _vm.replaceFields,
2416
- },
2417
- on: { select: _vm.selectTreeNode },
2418
- }),
2419
- ],
2420
- 1
2421
- ),
2422
- ]),
2477
+ return _c("section", { staticClass: "ele model__tree-table" }, [
2478
+ _vm.showTree
2479
+ ? _c("section", { staticClass: "model__tree-table--container" }, [
2480
+ _c("div", { staticClass: "model__tree--title" }),
2481
+ _vm._v(" "),
2482
+ _c(
2483
+ "section",
2484
+ { ref: _vm.modelTreeWrapper, staticClass: "model__tree--wrapper" },
2485
+ [
2486
+ _c("ele-tree", {
2487
+ attrs: {
2488
+ "tree-data": _vm.treeData,
2489
+ defaultExpandedKeys: _vm.defaultExpandedKeys,
2490
+ defaultSelectedKeys: _vm.defaultSelectedKeys,
2491
+ "replace-fields":
2492
+ _vm.treeMeta.replaceFields || _vm.replaceFields,
2493
+ },
2494
+ on: { select: _vm.selectTreeNode },
2495
+ }),
2496
+ ],
2497
+ 1
2498
+ ),
2499
+ ])
2500
+ : _vm._e(),
2423
2501
  _vm._v(" "),
2424
2502
  _c("section", { staticClass: "model__table--container" }, [
2425
2503
  _c("div", { staticClass: "model__table--title" }),
@@ -2472,34 +2550,34 @@ var __vue_render__$1 = function () {
2472
2550
  ]),
2473
2551
  ])
2474
2552
  };
2475
- var __vue_staticRenderFns__$1 = [];
2476
- __vue_render__$1._withStripped = true;
2553
+ var __vue_staticRenderFns__$d = [];
2554
+ __vue_render__$d._withStripped = true;
2477
2555
 
2478
2556
  /* style */
2479
- const __vue_inject_styles__$1 = function (inject) {
2557
+ const __vue_inject_styles__$d = function (inject) {
2480
2558
  if (!inject) return
2481
- inject("data-v-37846a00_0", { source: ".model__tree-table[data-v-37846a00] {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.model__tree-table .model__tree-table--container .model__tree--wrapper[data-v-37846a00] {\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.model__tree-table .model__table--container[data-v-37846a00] {\n min-width: 0;\n background: #fff;\n}\n.model__tree-table .model__table--container .model__table--wrapper[data-v-37846a00] {\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":"AA0RA;EACA,uBAAA;EACA,aAAA;EACA,mBAAA;EACA,WAAA;ACzRA;AD2RA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,aAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;ACzRA;AD4RA;EACA,YAAA;EACA,gBAAA;AC1RA;AD2RA;EACA,gBAAA;ACzRA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <section class=\"model__tree-table\">\r\n <section class=\"model__tree-table--container\">\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 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 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 const { fieldMap } = this.tableMeta\r\n this.currentTreeNodeData = defaultTreeNode\r\n this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, defaultTreeNode))\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.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 min-width: 0;\r\n background: #fff;\r\n .model__table--wrapper {\r\n background: #fff;\r\n }\r\n }\r\n}\r\n</style>",".model__tree-table {\n background: transparent;\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n.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.model__tree-table .model__table--container {\n min-width: 0;\n background: #fff;\n}\n.model__tree-table .model__table--container .model__table--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
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 });
2482
2560
 
2483
2561
  };
2484
2562
  /* scoped */
2485
- const __vue_scope_id__$1 = "data-v-37846a00";
2563
+ const __vue_scope_id__$d = "data-v-fe2ee33e";
2486
2564
  /* module identifier */
2487
- const __vue_module_identifier__$1 = undefined;
2565
+ const __vue_module_identifier__$d = undefined;
2488
2566
  /* functional template */
2489
- const __vue_is_functional_template__$1 = false;
2567
+ const __vue_is_functional_template__$d = false;
2490
2568
  /* style inject SSR */
2491
2569
 
2492
2570
  /* style inject shadow dom */
2493
2571
 
2494
2572
 
2495
2573
 
2496
- const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
2497
- { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
2498
- __vue_inject_styles__$1,
2499
- __vue_script__$1,
2500
- __vue_scope_id__$1,
2501
- __vue_is_functional_template__$1,
2502
- __vue_module_identifier__$1,
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,
2503
2581
  false,
2504
2582
  createInjector,
2505
2583
  undefined,
@@ -2507,7 +2585,7 @@ __vue_render__$1._withStripped = true;
2507
2585
  );
2508
2586
 
2509
2587
  //
2510
- var script = {
2588
+ var script$c = {
2511
2589
  name: 'ele-tpl',
2512
2590
  props: {
2513
2591
  modelName: {
@@ -2515,7 +2593,7 @@ var script = {
2515
2593
  }
2516
2594
  },
2517
2595
  components: {
2518
- [__vue_component__$1.name]: __vue_component__$1
2596
+ [__vue_component__$d.name]: __vue_component__$d
2519
2597
  },
2520
2598
  computed: {
2521
2599
  modelNameValidator() {
@@ -2537,10 +2615,10 @@ var script = {
2537
2615
  };
2538
2616
 
2539
2617
  /* script */
2540
- const __vue_script__ = script;
2618
+ const __vue_script__$c = script$c;
2541
2619
 
2542
2620
  /* template */
2543
- var __vue_render__ = function () {
2621
+ var __vue_render__$c = function () {
2544
2622
  var _vm = this;
2545
2623
  var _h = _vm.$createElement;
2546
2624
  var _c = _vm._self._c || _h;
@@ -2578,51 +2656,1890 @@ var __vue_render__ = function () {
2578
2656
  domProps: { innerHTML: _vm._s(_vm.modelNameValidator.message) },
2579
2657
  })
2580
2658
  };
2581
- var __vue_staticRenderFns__ = [];
2582
- __vue_render__._withStripped = true;
2659
+ var __vue_staticRenderFns__$c = [];
2660
+ __vue_render__$c._withStripped = true;
2583
2661
 
2584
2662
  /* style */
2585
- const __vue_inject_styles__ = function (inject) {
2663
+ const __vue_inject_styles__$c = function (inject) {
2586
2664
  if (!inject) return
2587
- inject("data-v-7b13873a_0", { source: ":root {\n --idooel-primary-color: #1890FF;\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":"AAAA;EACE,+BAA+B;EAC/B,wBAAwB;EACxB,8BAA8B;EAC9B,+BAA+B;EAC/B,qCAAqC;AACvC;;AAEA,oCAAoC","file":"index.vue","sourcesContent":[":root {\n --idooel-primary-color: #1890FF;\n --idooel-border-width: 2;\n --idooel-border-color: #53a8ff;\n --idooel-column-border-width: 1;\n --idooel-column-border-color: #d9ecff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
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 });
2588
2666
 
2589
2667
  };
2590
2668
  /* scoped */
2591
- const __vue_scope_id__ = undefined;
2669
+ const __vue_scope_id__$c = undefined;
2592
2670
  /* module identifier */
2593
- const __vue_module_identifier__ = undefined;
2671
+ const __vue_module_identifier__$c = undefined;
2594
2672
  /* functional template */
2595
- const __vue_is_functional_template__ = false;
2673
+ const __vue_is_functional_template__$c = false;
2596
2674
  /* style inject SSR */
2597
2675
 
2598
2676
  /* style inject shadow dom */
2599
2677
 
2600
2678
 
2601
2679
 
2602
- const __vue_component__ = /*#__PURE__*/normalizeComponent(
2603
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
2604
- __vue_inject_styles__,
2605
- __vue_script__,
2606
- __vue_scope_id__,
2607
- __vue_is_functional_template__,
2608
- __vue_module_identifier__,
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,
2609
2687
  false,
2610
2688
  createInjector,
2611
2689
  undefined,
2612
2690
  undefined
2613
2691
  );
2614
2692
 
2615
- __vue_component__.install = Vue => Vue.component(__vue_component__.name, __vue_component__);
2693
+ __vue_component__$c.install = Vue => Vue.component(__vue_component__$c.name, __vue_component__$c);
2616
2694
 
2617
- __vue_component__$2.install = Vue => Vue.component(__vue_component__$2.name, __vue_component__$2);
2695
+ //
2696
+ //
2697
+ //
2698
+ //
2699
+ //
2700
+ //
2701
+ //
2702
+ //
2703
+ //
2704
+ //
2705
+ //
2618
2706
 
2619
- __vue_component__$3.install = Vue => Vue.component(__vue_component__$3.name, __vue_component__$3);
2707
+ var script$b = {
2708
+ name: 'ele-textarea',
2709
+ props: {
2710
+ maxLength: {
2711
+ type: Number
2712
+ },
2713
+ placeholder: {
2714
+ type: String
2715
+ },
2716
+ allowClear: {
2717
+ type: Boolean,
2718
+ default: false
2719
+ },
2720
+ autosize: {
2721
+ type: [Boolean, Object],
2722
+ default: () => ({
2723
+ minRows: 4,
2724
+ maxRows: 4
2725
+ })
2726
+ },
2727
+ value: {
2728
+ type: String
2729
+ }
2730
+ },
2731
+ methods: {
2732
+ onChange(e) {
2733
+ const value = e.target.value;
2734
+ this.$emit('on-change', value);
2735
+ this.$emit('input', value);
2736
+ }
2737
+ }
2738
+ };
2620
2739
 
2621
- __vue_component__$1.install = Vue => Vue.component(__vue_component__$1.name, __vue_component__$1);
2740
+ /* script */
2741
+ const __vue_script__$b = script$b;
2742
+
2743
+ /* template */
2744
+ var __vue_render__$b = function () {
2745
+ var _vm = this;
2746
+ var _h = _vm.$createElement;
2747
+ var _c = _vm._self._c || _h;
2748
+ return _c("a-textarea", {
2749
+ attrs: {
2750
+ value: _vm.value,
2751
+ "auto-size": _vm.autosize,
2752
+ "max-length": _vm.maxLength,
2753
+ placeholder: _vm.placeholder,
2754
+ "allow-clear": _vm.allowClear,
2755
+ },
2756
+ on: { change: _vm.onChange },
2757
+ })
2758
+ };
2759
+ var __vue_staticRenderFns__$b = [];
2760
+ __vue_render__$b._withStripped = true;
2761
+
2762
+ /* style */
2763
+ const __vue_inject_styles__$b = function (inject) {
2764
+ 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 });
2766
+
2767
+ };
2768
+ /* scoped */
2769
+ const __vue_scope_id__$b = "data-v-256502c2";
2770
+ /* module identifier */
2771
+ const __vue_module_identifier__$b = undefined;
2772
+ /* functional template */
2773
+ const __vue_is_functional_template__$b = false;
2774
+ /* style inject SSR */
2775
+
2776
+ /* style inject shadow dom */
2777
+
2778
+
2779
+
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,
2787
+ false,
2788
+ createInjector,
2789
+ undefined,
2790
+ undefined
2791
+ );
2792
+
2793
+ //
2794
+ //
2795
+ //
2796
+ //
2797
+ //
2798
+ //
2799
+ //
2800
+ //
2801
+ //
2802
+
2803
+ var script$a = {
2804
+ name: 'ele-icon',
2805
+ props: {
2806
+ type: {
2807
+ type: String,
2808
+ default: ''
2809
+ },
2810
+ theme: {
2811
+ type: String
2812
+ }
2813
+ },
2814
+ computed: {
2815
+ isAntIcon() {
2816
+ const prefix = this.type.slice(0, 5);
2817
+ if (prefix === 'icon-') {
2818
+ return false;
2819
+ }
2820
+ return true;
2821
+ }
2822
+ }
2823
+ };
2824
+
2825
+ /* script */
2826
+ const __vue_script__$a = script$a;
2827
+
2828
+ /* template */
2829
+ var __vue_render__$a = function () {
2830
+ var _vm = this;
2831
+ var _h = _vm.$createElement;
2832
+ var _c = _vm._self._c || _h;
2833
+ return _vm.isAntIcon
2834
+ ? _c("a-icon", { attrs: { type: _vm.type, theme: _vm.theme } })
2835
+ : _c("i", { class: ["iconfont", _vm.type] })
2836
+ };
2837
+ var __vue_staticRenderFns__$a = [];
2838
+ __vue_render__$a._withStripped = true;
2839
+
2840
+ /* style */
2841
+ const __vue_inject_styles__$a = undefined;
2842
+ /* scoped */
2843
+ const __vue_scope_id__$a = undefined;
2844
+ /* module identifier */
2845
+ const __vue_module_identifier__$a = undefined;
2846
+ /* functional template */
2847
+ const __vue_is_functional_template__$a = false;
2848
+ /* style inject */
2849
+
2850
+ /* style inject SSR */
2851
+
2852
+ /* style inject shadow dom */
2853
+
2854
+
2855
+
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,
2863
+ false,
2864
+ undefined,
2865
+ undefined,
2866
+ undefined
2867
+ );
2868
+
2869
+ //
2870
+ var script$9 = {
2871
+ name: 'ele-upload',
2872
+ components: {
2873
+ FileUpload,
2874
+ EleIcon: __vue_component__$a
2875
+ },
2876
+ model: {
2877
+ prop: 'value',
2878
+ event: 'change'
2879
+ },
2880
+ props: {
2881
+ url: {
2882
+ type: String,
2883
+ default: '/zuul/api-file/workbench/file'
2884
+ },
2885
+ size: {
2886
+ type: Number,
2887
+ default: 100
2888
+ },
2889
+ accept: {
2890
+ type: String
2891
+ },
2892
+ maximum: {
2893
+ type: Number,
2894
+ default: 10
2895
+ },
2896
+ multiple: {
2897
+ type: Boolean,
2898
+ default: false
2899
+ },
2900
+ drop: {
2901
+ type: Boolean,
2902
+ default: true
2903
+ },
2904
+ value: {
2905
+ type: [String, Array]
2906
+ },
2907
+ querys: {
2908
+ type: Object,
2909
+ default: () => ({
2910
+ _csrf: 'c81f993f-f044-45bb-b3af-2977d335042d',
2911
+ _t: new Date().valueOf()
2912
+ })
2913
+ },
2914
+ headers: {
2915
+ type: Object,
2916
+ default: () => ({})
2917
+ },
2918
+ byteConversion: {
2919
+ type: Number,
2920
+ default: 1024 * 1024
2921
+ },
2922
+ chunkEnabled: {
2923
+ type: Boolean,
2924
+ default: true
2925
+ }
2926
+ },
2927
+ data() {
2928
+ return {
2929
+ files: [],
2930
+ saveToServerAsyncPageTimer: null
2931
+ };
2932
+ },
2933
+ computed: {
2934
+ getPayloads() {
2935
+ return {
2936
+ override: false
2937
+ };
2938
+ },
2939
+ chunkConfig() {
2940
+ route.toQueryString(this.querys);
2941
+ return {
2942
+ action: `${window.prefixPath}/zuul/api-file/workbench/file/temp/chunk/vue`,
2943
+ headers: {
2944
+ 'X-XSRF-TOKEN': localStorage.getItem('token')
2945
+ },
2946
+ minSize: 3 * this.byteConversion,
2947
+ maxActive: 3,
2948
+ maxRetries: 5,
2949
+ startBody: {
2950
+ override: true,
2951
+ path: '/cw'
2952
+ },
2953
+ uploadBody: {
2954
+ override: true,
2955
+ path: '/cw'
2956
+ },
2957
+ finishBody: {
2958
+ override: true,
2959
+ path: '/cw'
2960
+ }
2961
+ };
2962
+ },
2963
+ isFileUploadSuccessed() {
2964
+ return this.files.every(file => file.success);
2965
+ },
2966
+ isShowUploadContainer() {
2967
+ if (this.multiple) {
2968
+ if (this.isFileUploadSuccessed && this.files.length >= this.maximum) {
2969
+ return false;
2970
+ } else {
2971
+ return true;
2972
+ }
2973
+ } else {
2974
+ if (this.isFileUploadSuccessed && this.files.length >= 1) {
2975
+ return false;
2976
+ } else {
2977
+ return true;
2978
+ }
2979
+ }
2980
+ },
2981
+ getMaximum() {
2982
+ return this.multiple ? this.maximum : 1;
2983
+ },
2984
+ fileSizeLimit() {
2985
+ return this.size * this.byteConversion;
2986
+ },
2987
+ postAction() {
2988
+ const ret = route.toQueryString(this.querys);
2989
+ return `${window.prefixPath}${this.url}?${ret}`;
2990
+ },
2991
+ uploadRef() {
2992
+ return v4();
2993
+ },
2994
+ fileSuffixIcon() {
2995
+ return {
2996
+ 'doc': {
2997
+ name: 'icon-doc'
2998
+ }
2999
+ };
3000
+ },
3001
+ fileIds() {
3002
+ const fileIds = this.files.map(file => {
3003
+ return file.response.data.fileID;
3004
+ });
3005
+ return this.multiple ? fileIds : fileIds[0];
3006
+ }
3007
+ },
3008
+ methods: {
3009
+ handleClickDownload(file) {
3010
+ console.log('download file', file);
3011
+ },
3012
+ handleClickDelete(file) {
3013
+ this.$refs[this.uploadRef].remove(file);
3014
+ this.$emit('change', this.fileIds);
3015
+ },
3016
+ onWatchFiles(files) {
3017
+ this.files = files;
3018
+ if (this.isFileUploadSuccessed) {
3019
+ this.$emit('change', this.fileIds);
3020
+ }
3021
+ },
3022
+ async saveToServerAsyncPage(payloads = {}) {
3023
+ net.post('zuul/api-file/workbench/file/temp/saveToServerAsyncPage', payloads, {
3024
+ headers: {
3025
+ 'Content-Type': 'multipart/form-data'
3026
+ }
3027
+ }).then(resp => {
3028
+ const {
3029
+ data
3030
+ } = resp;
3031
+ if (data !== 'saveToServerAsyncPage') {
3032
+ clearInterval(this.saveToServerAsyncPageTimer);
3033
+ }
3034
+ });
3035
+ // const ret = await net.post({
3036
+ // url: 'zuul/api-file/workbench/file/temp/saveToServerAsyncPage',
3037
+ // method: 'POST',
3038
+ // data: { ...payloads }
3039
+ // }).then(resp => {
3040
+ // const { data: { data, code, message } } = resp
3041
+ // if (code !== '2000') {
3042
+ // this.$Message.error(message)
3043
+ // return
3044
+ // }
3045
+ // if (data !== 'saveToServerAsyncPage') {
3046
+ // clearInterval(timer)
3047
+ // const { fileID, size } = data
3048
+ // this.$emit('on-success', { ...data, fileId: fileID })
3049
+ // this.$Message.success('同步成功')
3050
+ // return { fileId: fileID, size }
3051
+ // }
3052
+ // })
3053
+ // return ret
3054
+ },
3055
+ onWatchInputFiles(newFile, oldFile) {
3056
+ if (newFile && !oldFile) {
3057
+ // add file
3058
+ console.log('add', newFile);
3059
+ }
3060
+ if (newFile && oldFile) {
3061
+ // update file
3062
+ console.log('update', newFile);
3063
+ const {
3064
+ success,
3065
+ active,
3066
+ chunk,
3067
+ response
3068
+ } = newFile;
3069
+ if (chunk && success && !active) {
3070
+ console.log('chunk end');
3071
+ const {
3072
+ data: {
3073
+ file,
3074
+ type
3075
+ }
3076
+ } = response;
3077
+ const payloads = {
3078
+ filePath: file.match(/\/cw(.*)/)[0],
3079
+ asyncID: v4(),
3080
+ isDeleteOrigin: false,
3081
+ toImage: type === 'pdf' ? true : false,
3082
+ unzip: type === 'zip' ? true : false,
3083
+ _csrf: localStorage.getItem('token')
3084
+ };
3085
+ this.saveToServerAsyncPageTimer = setInterval(() => {
3086
+ this.saveToServerAsyncPage(payloads);
3087
+ }, 2000);
3088
+ }
3089
+ }
3090
+ if (!newFile && oldFile) {
3091
+ // delete file
3092
+ console.log('delete');
3093
+ }
3094
+ if (Boolean(newFile) !== Boolean(oldFile) || oldFile.error !== newFile.error) {
3095
+ if (!this.$refs[this.uploadRef].active) {
3096
+ this.$refs[this.uploadRef].active = true;
3097
+ }
3098
+ }
3099
+ }
3100
+ }
3101
+ };
3102
+
3103
+ /* script */
3104
+ const __vue_script__$9 = script$9;
3105
+
3106
+ /* template */
3107
+ var __vue_render__$9 = function () {
3108
+ var _vm = this;
3109
+ var _h = _vm.$createElement;
3110
+ var _c = _vm._self._c || _h;
3111
+ return _c(
3112
+ "div",
3113
+ { staticClass: "ele-upload__wrapper" },
3114
+ [
3115
+ _c(
3116
+ "FileUpload",
3117
+ {
3118
+ directives: [
3119
+ {
3120
+ name: "show",
3121
+ rawName: "v-show",
3122
+ value: _vm.isShowUploadContainer,
3123
+ expression: "isShowUploadContainer",
3124
+ },
3125
+ ],
3126
+ ref: _vm.uploadRef,
3127
+ staticClass: "ele-upload__inner",
3128
+ staticStyle: { width: "100%" },
3129
+ attrs: {
3130
+ drop: _vm.drop,
3131
+ "chunk-enabled": _vm.chunkEnabled,
3132
+ chunk: _vm.chunkConfig,
3133
+ accept: _vm.accept,
3134
+ size: _vm.fileSizeLimit,
3135
+ "post-action": _vm.postAction,
3136
+ multiple: _vm.multiple,
3137
+ maximum: _vm.getMaximum,
3138
+ },
3139
+ on: { "input-file": _vm.onWatchInputFiles, input: _vm.onWatchFiles },
3140
+ model: {
3141
+ value: _vm.files,
3142
+ callback: function ($$v) {
3143
+ _vm.files = $$v;
3144
+ },
3145
+ expression: "files",
3146
+ },
3147
+ },
3148
+ [
3149
+ _c("section", { staticClass: "ele-upload__area" }, [
3150
+ _c(
3151
+ "div",
3152
+ { staticClass: "ele-upload__area--icon" },
3153
+ [_c("ele-icon", { attrs: { type: "cloud-upload" } })],
3154
+ 1
3155
+ ),
3156
+ _vm._v(" "),
3157
+ _c("div", { staticClass: "ele-upload__area--text" }, [
3158
+ _c("div", { staticClass: "ele-upload__message" }, [
3159
+ _vm._v("单击或拖动文件到该区域以上传"),
3160
+ ]),
3161
+ _vm._v(" "),
3162
+ _c("div", { staticClass: "ele-upload__ext" }, [
3163
+ _vm._v("文件小于" + _vm._s(_vm.size) + "M"),
3164
+ ]),
3165
+ ]),
3166
+ ]),
3167
+ ]
3168
+ ),
3169
+ _vm._v(" "),
3170
+ _c(
3171
+ "section",
3172
+ { staticClass: "ele-files__wrapper" },
3173
+ _vm._l(_vm.files, function (file, idx) {
3174
+ return _c("div", { key: idx, staticClass: "ele-file__item" }, [
3175
+ _c(
3176
+ "div",
3177
+ { staticClass: "ele-file__suffix--icon" },
3178
+ [_c("ele-icon", { attrs: { type: "icon-doc" } })],
3179
+ 1
3180
+ ),
3181
+ _vm._v(" "),
3182
+ _c("div", { staticClass: "ele-file__name" }, [
3183
+ _c(
3184
+ "div",
3185
+ {
3186
+ staticClass: "ele-file__inner",
3187
+ on: {
3188
+ click: function ($event) {
3189
+ return _vm.handleClickDownload(file)
3190
+ },
3191
+ },
3192
+ },
3193
+ [_vm._v(_vm._s(file.name))]
3194
+ ),
3195
+ _vm._v(" "),
3196
+ !file.success
3197
+ ? _c(
3198
+ "div",
3199
+ { staticClass: "ele-uplpad__progress" },
3200
+ [
3201
+ _c("a-progress", {
3202
+ attrs: {
3203
+ strokeWidth: 2,
3204
+ percent: Number(file.progress),
3205
+ size: "small",
3206
+ },
3207
+ }),
3208
+ ],
3209
+ 1
3210
+ )
3211
+ : _vm._e(),
3212
+ ]),
3213
+ _vm._v(" "),
3214
+ file.success || file.error
3215
+ ? _c("div", { staticClass: "ele-file__delete" }, [
3216
+ _c("span", { staticClass: "ele-file__size" }, [
3217
+ _vm._v(
3218
+ _vm._s((file.size / _vm.byteConversion).toFixed(2)) + "M"
3219
+ ),
3220
+ ]),
3221
+ _vm._v(" "),
3222
+ _c(
3223
+ "span",
3224
+ {
3225
+ staticClass: "ele-file__delete--icon",
3226
+ on: {
3227
+ click: function ($event) {
3228
+ return _vm.handleClickDelete(file)
3229
+ },
3230
+ },
3231
+ },
3232
+ [_c("ele-icon", { attrs: { type: "delete" } })],
3233
+ 1
3234
+ ),
3235
+ ])
3236
+ : _vm._e(),
3237
+ ])
3238
+ }),
3239
+ 0
3240
+ ),
3241
+ ],
3242
+ 1
3243
+ )
3244
+ };
3245
+ var __vue_staticRenderFns__$9 = [];
3246
+ __vue_render__$9._withStripped = true;
3247
+
3248
+ /* style */
3249
+ const __vue_inject_styles__$9 = function (inject) {
3250
+ 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 });
3252
+
3253
+ };
3254
+ /* scoped */
3255
+ const __vue_scope_id__$9 = "data-v-29bc9f58";
3256
+ /* module identifier */
3257
+ const __vue_module_identifier__$9 = undefined;
3258
+ /* functional template */
3259
+ const __vue_is_functional_template__$9 = false;
3260
+ /* style inject SSR */
3261
+
3262
+ /* style inject shadow dom */
3263
+
3264
+
3265
+
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,
3273
+ false,
3274
+ createInjector,
3275
+ undefined,
3276
+ undefined
3277
+ );
3278
+
3279
+ //
3280
+ //
3281
+ //
3282
+ //
3283
+ //
3284
+ //
3285
+ //
3286
+ //
3287
+ //
3288
+ //
3289
+ //
3290
+ //
3291
+ //
3292
+ //
3293
+ //
3294
+ //
3295
+ //
3296
+ //
3297
+
3298
+ var script$8 = {
3299
+ name: 'ele-select-entity',
3300
+ props: {
3301
+ value: {
3302
+ type: [Array, Object]
3303
+ },
3304
+ multiple: {
3305
+ type: Boolean,
3306
+ default: true
3307
+ },
3308
+ maxCount: {
3309
+ type: Number,
3310
+ default: 7
3311
+ },
3312
+ disabled: {
3313
+ type: Boolean,
3314
+ default: false
3315
+ },
3316
+ addonAfter: {
3317
+ type: String,
3318
+ default: '选择'
3319
+ }
3320
+ },
3321
+ methods: {
3322
+ getValueList() {
3323
+ if (this.value) {
3324
+ if (this.multiple) {
3325
+ return this.getIsMaxCount() ? this.value.slice(0, this.maxCount) : this.value;
3326
+ }
3327
+ return [this.value];
3328
+ }
3329
+ return [];
3330
+ },
3331
+ getIsMaxCount() {
3332
+ if (this.value && this.multiple) {
3333
+ return this.value.length >= this.maxCount;
3334
+ }
3335
+ return false;
3336
+ },
3337
+ onChange() {
3338
+ if (this.disabled) return;
3339
+ this.$emit('change', this.value);
3340
+ },
3341
+ onClose(e, inx) {
3342
+ e = window.event || e;
3343
+ e.preventDefault();
3344
+ if (!this.multiple) {
3345
+ this.$emit('change', null);
3346
+ return;
3347
+ }
3348
+ this.value.splice(inx, 1);
3349
+ this.$emit('change', this.value);
3350
+ }
3351
+ }
3352
+ };
3353
+
3354
+ /* script */
3355
+ const __vue_script__$8 = script$8;
3356
+
3357
+ /* template */
3358
+ var __vue_render__$8 = function () {
3359
+ var _vm = this;
3360
+ var _h = _vm.$createElement;
3361
+ var _c = _vm._self._c || _h;
3362
+ return _c(
3363
+ "div",
3364
+ {
3365
+ staticClass: "g-select-entity__wrapper",
3366
+ class: _vm.disabled ? "g-select-entity__disabled" : "",
3367
+ },
3368
+ [
3369
+ _c(
3370
+ "span",
3371
+ { staticClass: "select-entity__input" },
3372
+ [
3373
+ _vm._l(_vm.getValueList(), function (item, inx) {
3374
+ return _c(
3375
+ "a-tag",
3376
+ {
3377
+ key: item.value,
3378
+ attrs: { closable: !_vm.disabled && !_vm.getIsMaxCount() },
3379
+ on: {
3380
+ close: function ($event) {
3381
+ var i = arguments.length,
3382
+ argsArray = Array(i);
3383
+ while (i--) argsArray[i] = arguments[i];
3384
+ return _vm.onClose.apply(void 0, argsArray.concat([inx]))
3385
+ },
3386
+ },
3387
+ },
3388
+ [_vm._v("\n " + _vm._s(item.label) + "\n ")]
3389
+ )
3390
+ }),
3391
+ _vm._v(" "),
3392
+ _vm.getIsMaxCount() ? _c("a-tag", [_vm._v("......")]) : _vm._e(),
3393
+ ],
3394
+ 2
3395
+ ),
3396
+ _vm._v(" "),
3397
+ _c(
3398
+ "span",
3399
+ { staticClass: "select-entity__addon", on: { click: _vm.onChange } },
3400
+ [_vm._v(_vm._s(_vm.addonAfter))]
3401
+ ),
3402
+ _vm._v(" "),
3403
+ _vm._t("default"),
3404
+ ],
3405
+ 2
3406
+ )
3407
+ };
3408
+ var __vue_staticRenderFns__$8 = [];
3409
+ __vue_render__$8._withStripped = true;
3410
+
3411
+ /* style */
3412
+ const __vue_inject_styles__$8 = function (inject) {
3413
+ 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 });
3415
+
3416
+ };
3417
+ /* scoped */
3418
+ const __vue_scope_id__$8 = "data-v-328544bb";
3419
+ /* module identifier */
3420
+ const __vue_module_identifier__$8 = undefined;
3421
+ /* functional template */
3422
+ const __vue_is_functional_template__$8 = false;
3423
+ /* style inject SSR */
3424
+
3425
+ /* style inject shadow dom */
3426
+
3427
+
3428
+
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,
3436
+ false,
3437
+ createInjector,
3438
+ undefined,
3439
+ undefined
3440
+ );
3441
+
3442
+ //
3443
+ //
3444
+ //
3445
+ //
3446
+ //
3447
+ //
3448
+
3449
+ var script$7 = {
3450
+ name: 'ele-input-number',
3451
+ props: {
3452
+ precision: {
3453
+ type: Number
3454
+ },
3455
+ value: {
3456
+ type: [Number, String]
3457
+ }
3458
+ },
3459
+ methods: {
3460
+ onChange(value) {
3461
+ this.$emit('change', value);
3462
+ }
3463
+ }
3464
+ };
3465
+
3466
+ /* script */
3467
+ const __vue_script__$7 = script$7;
3468
+
3469
+ /* template */
3470
+ var __vue_render__$7 = function () {
3471
+ var _vm = this;
3472
+ var _h = _vm.$createElement;
3473
+ var _c = _vm._self._c || _h;
3474
+ return _c(
3475
+ "div",
3476
+ [
3477
+ _c(
3478
+ "a-input-number",
3479
+ _vm._b(
3480
+ {
3481
+ staticStyle: { width: "100%" },
3482
+ attrs: { value: _vm.value, precision: _vm.precision },
3483
+ on: { change: _vm.onChange },
3484
+ },
3485
+ "a-input-number",
3486
+ _vm.$attrs,
3487
+ false
3488
+ )
3489
+ ),
3490
+ ],
3491
+ 1
3492
+ )
3493
+ };
3494
+ var __vue_staticRenderFns__$7 = [];
3495
+ __vue_render__$7._withStripped = true;
3496
+
3497
+ /* style */
3498
+ const __vue_inject_styles__$7 = undefined;
3499
+ /* scoped */
3500
+ const __vue_scope_id__$7 = undefined;
3501
+ /* module identifier */
3502
+ const __vue_module_identifier__$7 = undefined;
3503
+ /* functional template */
3504
+ const __vue_is_functional_template__$7 = false;
3505
+ /* style inject */
3506
+
3507
+ /* style inject SSR */
3508
+
3509
+ /* style inject shadow dom */
3510
+
3511
+
3512
+
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,
3520
+ false,
3521
+ undefined,
3522
+ undefined,
3523
+ undefined
3524
+ );
3525
+
3526
+ //
3527
+ //
3528
+ //
3529
+ //
3530
+
3531
+ var script$6 = {
3532
+ name: 'ele-checkbox',
3533
+ props: {
3534
+ value: {
3535
+ type: Array
3536
+ },
3537
+ dataSource: {
3538
+ type: Array,
3539
+ default: () => []
3540
+ },
3541
+ disabled: {
3542
+ type: Boolean,
3543
+ default: false
3544
+ }
3545
+ },
3546
+ methods: {
3547
+ onChange(value) {
3548
+ this.$emit('change', value);
3549
+ this.$emit('input', value);
3550
+ }
3551
+ }
3552
+ };
3553
+
3554
+ /* script */
3555
+ const __vue_script__$6 = script$6;
3556
+
3557
+ /* template */
3558
+ var __vue_render__$6 = function () {
3559
+ var _vm = this;
3560
+ var _h = _vm.$createElement;
3561
+ var _c = _vm._self._c || _h;
3562
+ return _c("a-checkbox-group", {
3563
+ attrs: {
3564
+ options: _vm.dataSource,
3565
+ disabled: _vm.disabled,
3566
+ defaultValue: _vm.value,
3567
+ },
3568
+ on: { change: _vm.onChange },
3569
+ })
3570
+ };
3571
+ var __vue_staticRenderFns__$6 = [];
3572
+ __vue_render__$6._withStripped = true;
3573
+
3574
+ /* style */
3575
+ const __vue_inject_styles__$6 = function (inject) {
3576
+ 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 });
3578
+
3579
+ };
3580
+ /* scoped */
3581
+ const __vue_scope_id__$6 = "data-v-63b1b120";
3582
+ /* module identifier */
3583
+ const __vue_module_identifier__$6 = undefined;
3584
+ /* functional template */
3585
+ const __vue_is_functional_template__$6 = false;
3586
+ /* style inject SSR */
3587
+
3588
+ /* style inject shadow dom */
3589
+
3590
+
3591
+
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,
3599
+ false,
3600
+ createInjector,
3601
+ undefined,
3602
+ undefined
3603
+ );
3604
+
3605
+ //
3606
+ //
3607
+ //
3608
+ //
3609
+ //
3610
+ //
3611
+ //
3612
+ //
3613
+
3614
+ var script$5 = {
3615
+ name: 'ele-radio',
3616
+ props: {
3617
+ value: {
3618
+ type: [String, Array, Number]
3619
+ },
3620
+ dataSource: {
3621
+ type: Array,
3622
+ default: () => []
3623
+ },
3624
+ disabled: {
3625
+ type: Boolean,
3626
+ default: false
3627
+ }
3628
+ },
3629
+ methods: {
3630
+ onChange(e) {
3631
+ this.$emit('change', e.target.value);
3632
+ this.$emit('input', e.target.value);
3633
+ }
3634
+ }
3635
+ };
3636
+
3637
+ /* script */
3638
+ const __vue_script__$5 = script$5;
3639
+
3640
+ /* template */
3641
+ var __vue_render__$5 = function () {
3642
+ var _vm = this;
3643
+ var _h = _vm.$createElement;
3644
+ var _c = _vm._self._c || _h;
3645
+ return _c(
3646
+ "a-radio-group",
3647
+ {
3648
+ attrs: { defaultValue: _vm.value, disabled: _vm.disabled },
3649
+ on: { change: _vm.onChange },
3650
+ },
3651
+ _vm._l(_vm.dataSource, function (item) {
3652
+ return _c("a-radio", { key: item.value, attrs: { value: item.value } }, [
3653
+ _vm._v("\n " + _vm._s(item.label) + "\n "),
3654
+ ])
3655
+ }),
3656
+ 1
3657
+ )
3658
+ };
3659
+ var __vue_staticRenderFns__$5 = [];
3660
+ __vue_render__$5._withStripped = true;
3661
+
3662
+ /* style */
3663
+ const __vue_inject_styles__$5 = function (inject) {
3664
+ 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 });
3666
+
3667
+ };
3668
+ /* scoped */
3669
+ const __vue_scope_id__$5 = "data-v-66c5cdf2";
3670
+ /* module identifier */
3671
+ const __vue_module_identifier__$5 = undefined;
3672
+ /* functional template */
3673
+ const __vue_is_functional_template__$5 = false;
3674
+ /* style inject SSR */
3675
+
3676
+ /* style inject shadow dom */
3677
+
3678
+
3679
+
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,
3687
+ false,
3688
+ createInjector,
3689
+ undefined,
3690
+ undefined
3691
+ );
3692
+
3693
+ //
3694
+ var script$4 = {
3695
+ name: 'ele-form',
3696
+ 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
3705
+ },
3706
+ props: {
3707
+ elements: {
3708
+ type: Array,
3709
+ default: () => []
3710
+ }
3711
+ },
3712
+ data() {
3713
+ return {
3714
+ some: '1',
3715
+ form: this.$form.createForm(this, {
3716
+ name: 'coordinated'
3717
+ })
3718
+ };
3719
+ },
3720
+ methods: {
3721
+ onChangeTextarea(value, props) {
3722
+ this.setFieldsValue({
3723
+ [props.name]: value
3724
+ });
3725
+ },
3726
+ validateFields() {
3727
+ let ret = false;
3728
+ this.form.validateFields((error, values) => {
3729
+ ret = !error;
3730
+ });
3731
+ return ret;
3732
+ },
3733
+ setFieldsValue(props = {}) {
3734
+ this.form.setFieldsValue(props);
3735
+ },
3736
+ getFieldsValue() {
3737
+ return this.form.getFieldsValue();
3738
+ }
3739
+ }
3740
+ };
3741
+
3742
+ /* script */
3743
+ const __vue_script__$4 = script$4;
3744
+
3745
+ /* template */
3746
+ var __vue_render__$4 = function () {
3747
+ var _vm = this;
3748
+ var _h = _vm.$createElement;
3749
+ var _c = _vm._self._c || _h;
3750
+ return _c(
3751
+ "div",
3752
+ { staticClass: "ele__form--wrapper" },
3753
+ [
3754
+ _c(
3755
+ "a-form",
3756
+ {
3757
+ staticClass: "ant-advanced-search-form",
3758
+ attrs: { form: _vm.form, layout: "vertical" },
3759
+ },
3760
+ [
3761
+ _c(
3762
+ "a-row",
3763
+ { attrs: { gutter: 24 } },
3764
+ _vm._l(_vm.elements, function (ele) {
3765
+ return _c(
3766
+ "a-col",
3767
+ { key: ele.name, attrs: { span: ele.span } },
3768
+ [
3769
+ ele.type == "Input"
3770
+ ? [
3771
+ _c(
3772
+ "a-form-item",
3773
+ { attrs: { label: ele.label + ":" } },
3774
+ [
3775
+ _c("ele-input", {
3776
+ directives: [
3777
+ {
3778
+ name: "decorator",
3779
+ rawName: "v-decorator",
3780
+ value: [ele.name, { rules: ele.rules }],
3781
+ expression:
3782
+ "[ele.name, { rules: ele.rules }]",
3783
+ },
3784
+ ],
3785
+ staticStyle: { width: "100%" },
3786
+ attrs: { "max-length": ele.maxLength },
3787
+ }),
3788
+ ],
3789
+ 1
3790
+ ),
3791
+ ]
3792
+ : ele.type == "Textarea"
3793
+ ? [
3794
+ _c(
3795
+ "a-form-item",
3796
+ { attrs: { label: ele.label + ":" } },
3797
+ [
3798
+ _c("ele-textarea", {
3799
+ directives: [
3800
+ {
3801
+ name: "decorator",
3802
+ rawName: "v-decorator",
3803
+ value: [ele.name, { rules: ele.rules }],
3804
+ expression:
3805
+ "[ele.name, { rules: ele.rules }]",
3806
+ },
3807
+ ],
3808
+ staticStyle: { width: "100%" },
3809
+ attrs: {
3810
+ "max-length": ele.maxLength,
3811
+ autosize: ele.autosize,
3812
+ "allow-clear": ele.allowClear,
3813
+ placeholder: ele.placeholder,
3814
+ },
3815
+ on: {
3816
+ "on-change": function ($event) {
3817
+ return _vm.onChangeTextarea($event, ele)
3818
+ },
3819
+ },
3820
+ }),
3821
+ ],
3822
+ 1
3823
+ ),
3824
+ ]
3825
+ : ele.type == "Select"
3826
+ ? [
3827
+ _c(
3828
+ "a-form-item",
3829
+ { attrs: { label: ele.label + ":" } },
3830
+ [
3831
+ _c("ele-select", {
3832
+ directives: [
3833
+ {
3834
+ name: "decorator",
3835
+ rawName: "v-decorator",
3836
+ value: [ele.name, { rules: ele.rules }],
3837
+ expression:
3838
+ "[ele.name, { rules: ele.rules }]",
3839
+ },
3840
+ ],
3841
+ staticStyle: { width: "100%" },
3842
+ attrs: { "data-source": ele.optionList },
3843
+ }),
3844
+ ],
3845
+ 1
3846
+ ),
3847
+ ]
3848
+ : ele.type == "ele-upload"
3849
+ ? [
3850
+ _c(
3851
+ "a-form-item",
3852
+ { attrs: { label: ele.label + ":" } },
3853
+ [
3854
+ _c("ele-upload", {
3855
+ directives: [
3856
+ {
3857
+ name: "decorator",
3858
+ rawName: "v-decorator",
3859
+ value: [ele.name, { rules: ele.rules }],
3860
+ expression:
3861
+ "[ele.name, { rules: ele.rules }]",
3862
+ },
3863
+ ],
3864
+ staticStyle: { width: "100%" },
3865
+ }),
3866
+ ],
3867
+ 1
3868
+ ),
3869
+ ]
3870
+ : ele.type == "SelectEntity"
3871
+ ? [
3872
+ _c(
3873
+ "a-form-item",
3874
+ { attrs: { label: ele.label + ":" } },
3875
+ [
3876
+ _c("ele-select-entity", {
3877
+ directives: [
3878
+ {
3879
+ name: "decorator",
3880
+ rawName: "v-decorator",
3881
+ value: [ele.name, { rules: ele.rules }],
3882
+ expression:
3883
+ "[ele.name, { rules: ele.rules }]",
3884
+ },
3885
+ ],
3886
+ staticStyle: { width: "100%" },
3887
+ }),
3888
+ ],
3889
+ 1
3890
+ ),
3891
+ ]
3892
+ : ele.type == "InputNumber"
3893
+ ? [
3894
+ _c(
3895
+ "a-form-item",
3896
+ { attrs: { label: ele.label + ":" } },
3897
+ [
3898
+ _c(
3899
+ "ele-input-number",
3900
+ _vm._b(
3901
+ {
3902
+ directives: [
3903
+ {
3904
+ name: "decorator",
3905
+ rawName: "v-decorator",
3906
+ value: [ele.name, { rules: ele.rules }],
3907
+ expression:
3908
+ "[ele.name, { rules: ele.rules }]",
3909
+ },
3910
+ ],
3911
+ staticStyle: { width: "100%" },
3912
+ attrs: { precision: ele.precision },
3913
+ },
3914
+ "ele-input-number",
3915
+ ele.props,
3916
+ false
3917
+ )
3918
+ ),
3919
+ ],
3920
+ 1
3921
+ ),
3922
+ ]
3923
+ : ele.type == "Checkbox"
3924
+ ? [
3925
+ _c(
3926
+ "a-form-item",
3927
+ { attrs: { label: ele.label + ":" } },
3928
+ [
3929
+ _c("ele-checkbox", {
3930
+ directives: [
3931
+ {
3932
+ name: "decorator",
3933
+ rawName: "v-decorator",
3934
+ value: [ele.name, { rules: ele.rules }],
3935
+ expression:
3936
+ "[ele.name, { rules: ele.rules }]",
3937
+ },
3938
+ ],
3939
+ staticStyle: { width: "100%" },
3940
+ attrs: { "data-source": ele.optionList },
3941
+ }),
3942
+ ],
3943
+ 1
3944
+ ),
3945
+ ]
3946
+ : ele.type == "Radio"
3947
+ ? [
3948
+ _c(
3949
+ "a-form-item",
3950
+ { attrs: { label: ele.label + ":" } },
3951
+ [
3952
+ _c("ele-radio", {
3953
+ directives: [
3954
+ {
3955
+ name: "decorator",
3956
+ rawName: "v-decorator",
3957
+ value: [ele.name, { rules: ele.rules }],
3958
+ expression:
3959
+ "[ele.name, { rules: ele.rules }]",
3960
+ },
3961
+ ],
3962
+ staticStyle: { width: "100%" },
3963
+ attrs: { "data-source": ele.optionList },
3964
+ }),
3965
+ ],
3966
+ 1
3967
+ ),
3968
+ ]
3969
+ : _vm._e(),
3970
+ ],
3971
+ 2
3972
+ )
3973
+ }),
3974
+ 1
3975
+ ),
3976
+ ],
3977
+ 1
3978
+ ),
3979
+ ],
3980
+ 1
3981
+ )
3982
+ };
3983
+ var __vue_staticRenderFns__$4 = [];
3984
+ __vue_render__$4._withStripped = true;
3985
+
3986
+ /* style */
3987
+ const __vue_inject_styles__$4 = function (inject) {
3988
+ 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 });
3990
+
3991
+ };
3992
+ /* scoped */
3993
+ const __vue_scope_id__$4 = "data-v-e06c4e7c";
3994
+ /* module identifier */
3995
+ const __vue_module_identifier__$4 = undefined;
3996
+ /* functional template */
3997
+ const __vue_is_functional_template__$4 = false;
3998
+ /* style inject SSR */
3999
+
4000
+ /* style inject shadow dom */
4001
+
4002
+
4003
+
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,
4011
+ false,
4012
+ createInjector,
4013
+ undefined,
4014
+ undefined
4015
+ );
4016
+
4017
+ __vue_component__$4.install = Vue => Vue.component(__vue_component__$4.name, __vue_component__$4);
4018
+
4019
+ //
4020
+ //
4021
+ //
4022
+ //
4023
+ //
4024
+ //
4025
+
4026
+ var script$3 = {
4027
+ name: 'g-text'
4028
+ };
4029
+
4030
+ /* script */
4031
+ const __vue_script__$3 = script$3;
4032
+
4033
+ /* template */
4034
+ var __vue_render__$3 = function () {
4035
+ var _vm = this;
4036
+ var _h = _vm.$createElement;
4037
+ var _c = _vm._self._c || _h;
4038
+ return _c("div", [_vm._v("\n text\n")])
4039
+ };
4040
+ var __vue_staticRenderFns__$3 = [];
4041
+ __vue_render__$3._withStripped = true;
4042
+
4043
+ /* style */
4044
+ const __vue_inject_styles__$3 = function (inject) {
4045
+ 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 });
4047
+
4048
+ };
4049
+ /* scoped */
4050
+ const __vue_scope_id__$3 = "data-v-d41a0ce6";
4051
+ /* module identifier */
4052
+ const __vue_module_identifier__$3 = undefined;
4053
+ /* functional template */
4054
+ const __vue_is_functional_template__$3 = false;
4055
+ /* style inject SSR */
4056
+
4057
+ /* style inject shadow dom */
4058
+
4059
+
4060
+
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,
4068
+ false,
4069
+ createInjector,
4070
+ undefined,
4071
+ undefined
4072
+ );
4073
+
4074
+ __vue_component__$3.install = Vue => Vue.component(__vue_component__$3.name, __vue_component__$3);
4075
+
4076
+ __vue_component__$9.install = Vue => Vue.component(__vue_component__$9.name, __vue_component__$9);
4077
+
4078
+ __vue_component__$8.install = Vue => Vue.component(__vue_component__$8.name, __vue_component__$8);
4079
+
4080
+ __vue_component__$a.install = Vue => Vue.component(__vue_component__$a.name, __vue_component__$a);
4081
+
4082
+ __vue_component__$7.install = Vue => Vue.component(__vue_component__$7.name, __vue_component__$7);
4083
+
4084
+ //
4085
+ //
4086
+ //
4087
+ //
4088
+ //
4089
+ //
4090
+ //
4091
+ //
4092
+ //
4093
+ //
4094
+ //
4095
+ //
4096
+ //
4097
+ //
4098
+ //
4099
+ //
4100
+ //
4101
+ //
4102
+ //
4103
+ //
4104
+ //
4105
+ //
4106
+
4107
+ var script$2 = {
4108
+ name: 'ele-modal',
4109
+ props: {
4110
+ value: {
4111
+ type: Boolean,
4112
+ default: false
4113
+ },
4114
+ title: {
4115
+ type: String,
4116
+ default: '标题'
4117
+ },
4118
+ cancelText: {
4119
+ type: String,
4120
+ default: '关闭'
4121
+ },
4122
+ okText: {
4123
+ type: String,
4124
+ default: '确定'
4125
+ },
4126
+ size: {
4127
+ type: String,
4128
+ default: 'small'
4129
+ },
4130
+ map: {
4131
+ type: Object,
4132
+ default() {
4133
+ return {};
4134
+ }
4135
+ },
4136
+ closable: {
4137
+ type: Boolean,
4138
+ default: true
4139
+ },
4140
+ maskClosable: {
4141
+ type: Boolean,
4142
+ default: false
4143
+ },
4144
+ showFooter: {
4145
+ type: Boolean,
4146
+ default: true
4147
+ },
4148
+ footer: {
4149
+ type: Function,
4150
+ default: null
4151
+ },
4152
+ onlyClose: {
4153
+ type: Boolean,
4154
+ default: false
4155
+ }
4156
+ },
4157
+ watch: {
4158
+ value(newVal) {
4159
+ this.$nextTick(() => {
4160
+ this.showModal = newVal;
4161
+ });
4162
+ }
4163
+ },
4164
+ computed: {
4165
+ width() {
4166
+ return this.map[this.size];
4167
+ },
4168
+ maxheight() {
4169
+ return `calc(100vh - ${this.upDownDistance[this.size] * 2 + (this.title ? 55 : 0) + (this.showFooter ? 53 : 0)}px`;
4170
+ }
4171
+ },
4172
+ data() {
4173
+ return {
4174
+ showModal: false
4175
+ };
4176
+ },
4177
+ created() {
4178
+ let defaultMap = {
4179
+ small: 480,
4180
+ middle: 768,
4181
+ big: 1200
4182
+ };
4183
+ this.upDownDistance = {
4184
+ small: 80,
4185
+ middle: 80,
4186
+ big: 40
4187
+ };
4188
+ this.map = Object.assign(this.map, defaultMap);
4189
+ },
4190
+ 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');
4209
+ }
4210
+ }
4211
+ };
4212
+
4213
+ /* script */
4214
+ const __vue_script__$2 = script$2;
4215
+
4216
+ /* template */
4217
+ var __vue_render__$2 = function () {
4218
+ var _vm = this;
4219
+ var _h = _vm.$createElement;
4220
+ var _c = _vm._self._c || _h;
4221
+ 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;
4241
+ },
4242
+ expression: "showModal",
4243
+ },
4244
+ },
4245
+ [
4246
+ _vm._t("default"),
4247
+ _vm._v(" "),
4248
+ _c("template", { slot: "footer" }, [_vm._t("footer")], 2),
4249
+ ],
4250
+ 2
4251
+ )
4252
+ };
4253
+ var __vue_staticRenderFns__$2 = [];
4254
+ __vue_render__$2._withStripped = true;
4255
+
4256
+ /* style */
4257
+ const __vue_inject_styles__$2 = undefined;
4258
+ /* scoped */
4259
+ const __vue_scope_id__$2 = undefined;
4260
+ /* module identifier */
4261
+ const __vue_module_identifier__$2 = undefined;
4262
+ /* functional template */
4263
+ const __vue_is_functional_template__$2 = false;
4264
+ /* style inject */
4265
+
4266
+ /* style inject SSR */
4267
+
4268
+ /* style inject shadow dom */
4269
+
4270
+
4271
+
4272
+ const __vue_component__$2 = /*#__PURE__*/normalizeComponent(
4273
+ { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
4274
+ __vue_inject_styles__$2,
4275
+ __vue_script__$2,
4276
+ __vue_scope_id__$2,
4277
+ __vue_is_functional_template__$2,
4278
+ __vue_module_identifier__$2,
4279
+ false,
4280
+ undefined,
4281
+ undefined,
4282
+ undefined
4283
+ );
4284
+
4285
+ __vue_component__$2.install = Vue => Vue.component(__vue_component__$2.name, __vue_component__$2);
4286
+
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
+
4291
+ //
4292
+ //
4293
+ //
4294
+ //
4295
+ //
4296
+ //
4297
+
4298
+ var script$1 = {
4299
+ name: 'ele-batch-export'
4300
+ };
4301
+
4302
+ /* script */
4303
+ const __vue_script__$1 = script$1;
4304
+
4305
+ /* template */
4306
+ var __vue_render__$1 = function () {
4307
+ var _vm = this;
4308
+ var _h = _vm.$createElement;
4309
+ var _c = _vm._self._c || _h;
4310
+ return _c("div", [_vm._v("\n export\n")])
4311
+ };
4312
+ var __vue_staticRenderFns__$1 = [];
4313
+ __vue_render__$1._withStripped = true;
4314
+
4315
+ /* style */
4316
+ const __vue_inject_styles__$1 = function (inject) {
4317
+ 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 });
4319
+
4320
+ };
4321
+ /* scoped */
4322
+ const __vue_scope_id__$1 = "data-v-4ed65b1c";
4323
+ /* module identifier */
4324
+ const __vue_module_identifier__$1 = undefined;
4325
+ /* functional template */
4326
+ const __vue_is_functional_template__$1 = false;
4327
+ /* style inject SSR */
4328
+
4329
+ /* style inject shadow dom */
4330
+
4331
+
4332
+
4333
+ const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
4334
+ { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
4335
+ __vue_inject_styles__$1,
4336
+ __vue_script__$1,
4337
+ __vue_scope_id__$1,
4338
+ __vue_is_functional_template__$1,
4339
+ __vue_module_identifier__$1,
4340
+ false,
4341
+ createInjector,
4342
+ undefined,
4343
+ undefined
4344
+ );
4345
+
4346
+ __vue_component__$1.install = Vue => Vue.component(__vue_component__$1.name, __vue_component__$1);
4347
+
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);
4353
+
4354
+ const BUILT_IN_EVENT_NAMES = {
4355
+ SUBMIT: 'submit',
4356
+ CANCEL: 'cancel'
4357
+ };
4358
+
4359
+ //
4360
+ var script = {
4361
+ name: 'ele-form-model',
4362
+ components: {
4363
+ EleButtonGroup: __vue_component__$e
4364
+ },
4365
+ props: {
4366
+ title: {
4367
+ type: String
4368
+ },
4369
+ formMeta: {
4370
+ type: Object
4371
+ },
4372
+ footerMeta: {
4373
+ type: Object
4374
+ }
4375
+ },
4376
+ 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();
4465
+ }
4466
+ };
4467
+
4468
+ /* script */
4469
+ const __vue_script__ = script;
4470
+
4471
+ /* template */
4472
+ var __vue_render__ = function () {
4473
+ var _vm = this;
4474
+ var _h = _vm.$createElement;
4475
+ 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
+ ])
4503
+ };
4504
+ var __vue_staticRenderFns__ = [];
4505
+ __vue_render__._withStripped = true;
4506
+
4507
+ /* style */
4508
+ const __vue_inject_styles__ = function (inject) {
4509
+ 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 });
4511
+
4512
+ };
4513
+ /* scoped */
4514
+ const __vue_scope_id__ = "data-v-4815b8c0";
4515
+ /* module identifier */
4516
+ const __vue_module_identifier__ = undefined;
4517
+ /* functional template */
4518
+ const __vue_is_functional_template__ = false;
4519
+ /* style inject SSR */
4520
+
4521
+ /* style inject shadow dom */
4522
+
4523
+
4524
+
4525
+ const __vue_component__ = /*#__PURE__*/normalizeComponent(
4526
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
4527
+ __vue_inject_styles__,
4528
+ __vue_script__,
4529
+ __vue_scope_id__,
4530
+ __vue_is_functional_template__,
4531
+ __vue_module_identifier__,
4532
+ false,
4533
+ createInjector,
4534
+ undefined,
4535
+ undefined
4536
+ );
4537
+
4538
+ __vue_component__.install = Vue => Vue.component(__vue_component__.name, __vue_component__);
2622
4539
 
2623
- const compositeComponents = [__vue_component__$2, __vue_component__$3];
2624
- const models = [__vue_component__$1];
2625
- const components = [__vue_component__$b, __vue_component__$a, __vue_component__$9, __vue_component__$8, __vue_component__$6, __vue_component__$5, __vue_component__, ...compositeComponents, ...models];
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];
2626
4543
  const install = Vue => {
2627
4544
  if (install.installed) return;
2628
4545
  install.installed = true;
@@ -2631,4 +4548,4 @@ const install = Vue => {
2631
4548
  });
2632
4549
  };
2633
4550
 
2634
- export { __vue_component__$b as EleButton, __vue_component__$a as EleDate, __vue_component__$9 as EleInput, __vue_component__$8 as EleSelect, __vue_component__$6 as EleTable, __vue_component__ as EleTpl, __vue_component__$5 as EleTree, install as default, models };
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 };