@idooel/components 0.0.1-beta.12 → 0.0.1-beta.14

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.
@@ -326,6 +326,10 @@ var script$p = {
326
326
  event: 'change'
327
327
  },
328
328
  props: {
329
+ disabled: {
330
+ type: Boolean,
331
+ default: false
332
+ },
329
333
  maxLength: {
330
334
  type: Number,
331
335
  default: 125
@@ -395,7 +399,11 @@ var __vue_render__$p = function () {
395
399
  var _h = _vm.$createElement;
396
400
  var _c = _vm._self._c || _h;
397
401
  return _c("a-input", {
398
- attrs: { value: _vm.value, "max-length": _vm.maxLength },
402
+ attrs: {
403
+ value: _vm.value,
404
+ disabled: _vm.disabled,
405
+ "max-length": _vm.maxLength,
406
+ },
399
407
  on: { change: _vm.onChange },
400
408
  })
401
409
  };
@@ -405,11 +413,11 @@ __vue_render__$p._withStripped = true;
405
413
  /* style */
406
414
  const __vue_inject_styles__$p = function (inject) {
407
415
  if (!inject) return
408
- inject("data-v-16d94539_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", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
416
+ inject("data-v-2dfc23ac_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
409
417
 
410
418
  };
411
419
  /* scoped */
412
- const __vue_scope_id__$p = "data-v-16d94539";
420
+ const __vue_scope_id__$p = "data-v-2dfc23ac";
413
421
  /* module identifier */
414
422
  const __vue_module_identifier__$p = undefined;
415
423
  /* functional template */
@@ -439,6 +447,10 @@ __vue_component__$p.install = Vue => Vue.component(__vue_component__$p.name, __v
439
447
  var script$o = {
440
448
  name: 'ele-select',
441
449
  props: {
450
+ disabled: {
451
+ type: Boolean,
452
+ default: false
453
+ },
442
454
  value: {
443
455
  type: [String, Array, Number]
444
456
  },
@@ -513,7 +525,7 @@ var __vue_render__$o = function () {
513
525
  "a-select",
514
526
  {
515
527
  staticStyle: { width: "100%" },
516
- attrs: { value: _vm.value },
528
+ attrs: { disabled: _vm.disabled, value: _vm.value },
517
529
  on: { change: _vm.onChange },
518
530
  },
519
531
  _vm._l(_vm.innerDataSource, function (item) {
@@ -532,11 +544,11 @@ __vue_render__$o._withStripped = true;
532
544
  /* style */
533
545
  const __vue_inject_styles__$o = function (inject) {
534
546
  if (!inject) return
535
- inject("data-v-3ef1486c_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
547
+ inject("data-v-6f550619_0", { source: "\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["index.vue"],"names":[],"mappings":";;AAEA,oCAAoC","file":"index.vue"}, media: undefined });
536
548
 
537
549
  };
538
550
  /* scoped */
539
- const __vue_scope_id__$o = "data-v-3ef1486c";
551
+ const __vue_scope_id__$o = "data-v-6f550619";
540
552
  /* module identifier */
541
553
  const __vue_module_identifier__$o = undefined;
542
554
  /* functional template */
@@ -2669,6 +2681,7 @@ __vue_render__$h._withStripped = true;
2669
2681
  //
2670
2682
  //
2671
2683
  //
2684
+ //
2672
2685
 
2673
2686
  var script$g = {
2674
2687
  name: 'ele-textarea',
@@ -2696,6 +2709,10 @@ var script$g = {
2696
2709
  },
2697
2710
  value: {
2698
2711
  type: String
2712
+ },
2713
+ disabled: {
2714
+ type: Boolean,
2715
+ default: false
2699
2716
  }
2700
2717
  },
2701
2718
  methods: {
@@ -2718,6 +2735,7 @@ var __vue_render__$g = function () {
2718
2735
  return _c("a-textarea", {
2719
2736
  attrs: {
2720
2737
  value: _vm.value,
2738
+ disabled: _vm.disabled,
2721
2739
  "auto-size": _vm.autosize,
2722
2740
  "max-length": _vm.maxLength,
2723
2741
  placeholder: _vm.placeholder,
@@ -2732,11 +2750,11 @@ __vue_render__$g._withStripped = true;
2732
2750
  /* style */
2733
2751
  const __vue_inject_styles__$g = function (inject) {
2734
2752
  if (!inject) return
2735
- inject("data-v-71315eca_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
2753
+ inject("data-v-416114ba_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: {"version":3,"sources":[],"names":[],"mappings":"","file":"index.vue"}, media: undefined });
2736
2754
 
2737
2755
  };
2738
2756
  /* scoped */
2739
- const __vue_scope_id__$g = "data-v-71315eca";
2757
+ const __vue_scope_id__$g = "data-v-416114ba";
2740
2758
  /* module identifier */
2741
2759
  const __vue_module_identifier__$g = undefined;
2742
2760
  /* functional template */
@@ -3723,7 +3741,6 @@ var script$9 = {
3723
3741
  },
3724
3742
  setDefaultValues() {
3725
3743
  const defaultValues = this.collectDefaultValues();
3726
- console.log(defaultValues, 'defaultValues');
3727
3744
  this.setFieldsValue(defaultValues);
3728
3745
  },
3729
3746
  validateFields() {
@@ -3789,7 +3806,10 @@ var __vue_render__$9 = function () {
3789
3806
  },
3790
3807
  ],
3791
3808
  staticStyle: { width: "100%" },
3792
- attrs: { "max-length": ele.maxLength },
3809
+ attrs: {
3810
+ disabled: ele.disabled,
3811
+ "max-length": ele.maxLength,
3812
+ },
3793
3813
  on: {
3794
3814
  change: function ($event) {
3795
3815
  return _vm.onChange($event, ele)
@@ -3820,6 +3840,7 @@ var __vue_render__$9 = function () {
3820
3840
  attrs: {
3821
3841
  "max-length": ele.maxLength,
3822
3842
  autosize: ele.autosize,
3843
+ disabled: ele.disabled,
3823
3844
  "allow-clear": ele.allowClear,
3824
3845
  placeholder: ele.placeholder,
3825
3846
  },
@@ -3852,6 +3873,7 @@ var __vue_render__$9 = function () {
3852
3873
  staticStyle: { width: "100%" },
3853
3874
  attrs: {
3854
3875
  "data-source": ele.optionList,
3876
+ disabled: ele.disabled,
3855
3877
  code: ele.code,
3856
3878
  params: ele.params,
3857
3879
  },
@@ -4028,11 +4050,11 @@ __vue_render__$9._withStripped = true;
4028
4050
  /* style */
4029
4051
  const __vue_inject_styles__$9 = function (inject) {
4030
4052
  if (!inject) return
4031
- inject("data-v-07e602ca_0", { source: ".ele__form--wrapper[data-v-07e602ca] {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\form\\src\\index.vue","index.vue"],"names":[],"mappings":"AAgJA;EACA,gBAAA;AC/IA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"ele__form--wrapper\">\r\n <a-form :form=\"form\" layout=\"vertical\" class=\"ant-advanced-search-form\">\r\n <a-row :gutter=\"24\">\r\n <a-col :span=\"ele.span\" v-for=\"ele in elements\" :key=\"ele.name\">\r\n <template v-if=\"ele.type == 'Input'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-input @change=\"onChange($event, ele)\" :max-length=\"ele.maxLength\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-input>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Textarea'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-textarea \r\n @change=\"onChange($event, ele)\"\r\n :max-length=\"ele.maxLength\"\r\n :autosize=\"ele.autosize\"\r\n :allow-clear=\"ele.allowClear\"\r\n :placeholder=\"ele.placeholder\"\r\n v-decorator=\"[ele.name, { rules: ele.rules }]\"\r\n style=\"width:100%;\">\r\n </ele-textarea>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Select'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-select :data-source=\"ele.optionList\" :code=\"ele.code\" :params=\"ele.params\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-select>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'ele-upload'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-upload v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-upload>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'ele-date-range'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-date-range v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-date-range>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'SelectEntity'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-select-entity v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-select-entity>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'InputNumber'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-input-number :precision=\"ele.precision\" v-decorator=\"[ele.name, { rules: ele.rules }]\" v-bind=\"ele.props\" style=\"width:100%;\"></ele-input-number>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Checkbox'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-checkbox :data-source=\"ele.optionList\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-checkbox>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Radio'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-radio @change=\"onChange($event, ele)\" :data-source=\"ele.optionList\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-radio>\r\n </a-form-item>\r\n </template>\r\n </a-col>\r\n </a-row>\r\n </a-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport EleSelect from '../../select/src/index.vue'\r\nimport EleInput from '../../input/src/index.vue'\r\nimport EleTextarea from '../../textarea/src/index.vue'\r\nimport EleUpload from '../../upload/src/index.vue'\r\nimport EleSelectEntity from '../../select-entity/src/index.vue'\r\nimport EleInputNumber from '../../input-number/src/index.vue'\r\nimport EleCheckbox from '../../checkbox/src/index.vue'\r\nimport EleRadio from '../../radio/src/index.vue'\r\nexport default {\r\n name: 'ele-form',\r\n components: {\r\n EleSelect,\r\n EleInput,\r\n EleTextarea,\r\n EleUpload,\r\n EleSelectEntity,\r\n EleInputNumber,\r\n EleCheckbox,\r\n EleRadio\r\n },\r\n props: {\r\n elements: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n data () {\r\n return {\r\n some: '1',\r\n form: this.$form.createForm(this, { name: 'coordinated' })\r\n }\r\n },\r\n computed: {\r\n exposedMethods () {\r\n return {\r\n setFieldsValue: this.setFieldsValue\r\n }\r\n }\r\n },\r\n methods: {\r\n onChange (value, props) {\r\n this.$emit('change', { value, props, exposed: { ...this.exposedMethods } })\r\n },\r\n collectDefaultValues () {\r\n const ret = this.elements.reduce((ret, props) => {\r\n const { name, defaultValue } = props\r\n if (defaultValue) {\r\n ret[name] = defaultValue\r\n }\r\n return ret\r\n }, {})\r\n return ret\r\n },\r\n setDefaultValues () {\r\n const defaultValues = this.collectDefaultValues()\r\n console.log(defaultValues, 'defaultValues')\r\n this.setFieldsValue(defaultValues)\r\n },\r\n validateFields () {\r\n let ret = false\r\n this.form.validateFields((error, values) => {\r\n ret = !error\r\n })\r\n return ret\r\n },\r\n setFieldsValue (props = {}) {\r\n this.form.setFieldsValue(props)\r\n },\r\n getFieldsValue () {\r\n return this.form.getFieldsValue()\r\n }\r\n },\r\n mounted() {\r\n this.setDefaultValues()\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ele__form--wrapper {\r\n background: #fff;\r\n .ant-form-item {\r\n }\r\n}\r\n</style>",".ele__form--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4053
+ inject("data-v-55fe862a_0", { source: ".ele__form--wrapper[data-v-55fe862a] {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\form\\src\\index.vue","index.vue"],"names":[],"mappings":"AAgJA;EACA,gBAAA;AC/IA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"ele__form--wrapper\">\r\n <a-form :form=\"form\" layout=\"vertical\" class=\"ant-advanced-search-form\">\r\n <a-row :gutter=\"24\">\r\n <a-col :span=\"ele.span\" v-for=\"ele in elements\" :key=\"ele.name\">\r\n <template v-if=\"ele.type == 'Input'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-input @change=\"onChange($event, ele)\" :disabled=\"ele.disabled\" :max-length=\"ele.maxLength\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-input>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Textarea'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-textarea \r\n @change=\"onChange($event, ele)\"\r\n :max-length=\"ele.maxLength\"\r\n :autosize=\"ele.autosize\"\r\n :disabled=\"ele.disabled\"\r\n :allow-clear=\"ele.allowClear\"\r\n :placeholder=\"ele.placeholder\"\r\n v-decorator=\"[ele.name, { rules: ele.rules }]\"\r\n style=\"width:100%;\">\r\n </ele-textarea>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Select'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-select :data-source=\"ele.optionList\" :disabled=\"ele.disabled\" :code=\"ele.code\" :params=\"ele.params\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-select>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'ele-upload'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-upload v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-upload>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'ele-date-range'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-date-range v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-date-range>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'SelectEntity'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-select-entity v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-select-entity>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'InputNumber'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-input-number :precision=\"ele.precision\" v-decorator=\"[ele.name, { rules: ele.rules }]\" v-bind=\"ele.props\" style=\"width:100%;\"></ele-input-number>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Checkbox'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-checkbox :data-source=\"ele.optionList\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-checkbox>\r\n </a-form-item>\r\n </template>\r\n <template v-else-if=\"ele.type == 'Radio'\">\r\n <a-form-item :label=\"`${ele.label}:`\">\r\n <ele-radio @change=\"onChange($event, ele)\" :data-source=\"ele.optionList\" v-decorator=\"[ele.name, { rules: ele.rules }]\" style=\"width:100%;\"></ele-radio>\r\n </a-form-item>\r\n </template>\r\n </a-col>\r\n </a-row>\r\n </a-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport EleSelect from '../../select/src/index.vue'\r\nimport EleInput from '../../input/src/index.vue'\r\nimport EleTextarea from '../../textarea/src/index.vue'\r\nimport EleUpload from '../../upload/src/index.vue'\r\nimport EleSelectEntity from '../../select-entity/src/index.vue'\r\nimport EleInputNumber from '../../input-number/src/index.vue'\r\nimport EleCheckbox from '../../checkbox/src/index.vue'\r\nimport EleRadio from '../../radio/src/index.vue'\r\nexport default {\r\n name: 'ele-form',\r\n components: {\r\n EleSelect,\r\n EleInput,\r\n EleTextarea,\r\n EleUpload,\r\n EleSelectEntity,\r\n EleInputNumber,\r\n EleCheckbox,\r\n EleRadio\r\n },\r\n props: {\r\n elements: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n data () {\r\n return {\r\n some: '1',\r\n form: this.$form.createForm(this, { name: 'coordinated' })\r\n }\r\n },\r\n computed: {\r\n exposedMethods () {\r\n return {\r\n setFieldsValue: this.setFieldsValue\r\n }\r\n }\r\n },\r\n methods: {\r\n onChange (value, props) {\r\n this.$emit('change', { value, props, exposed: { ...this.exposedMethods } })\r\n },\r\n collectDefaultValues () {\r\n const ret = this.elements.reduce((ret, props) => {\r\n const { name, defaultValue } = props\r\n if (defaultValue) {\r\n ret[name] = defaultValue\r\n }\r\n return ret\r\n }, {})\r\n return ret\r\n },\r\n setDefaultValues () {\r\n const defaultValues = this.collectDefaultValues()\r\n this.setFieldsValue(defaultValues)\r\n },\r\n validateFields () {\r\n let ret = false\r\n this.form.validateFields((error, values) => {\r\n ret = !error\r\n })\r\n return ret\r\n },\r\n setFieldsValue (props = {}) {\r\n this.form.setFieldsValue(props)\r\n },\r\n getFieldsValue () {\r\n return this.form.getFieldsValue()\r\n }\r\n },\r\n mounted() {\r\n this.setDefaultValues()\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ele__form--wrapper {\r\n background: #fff;\r\n .ant-form-item {\r\n }\r\n}\r\n</style>",".ele__form--wrapper {\n background: #fff;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4032
4054
 
4033
4055
  };
4034
4056
  /* scoped */
4035
- const __vue_scope_id__$9 = "data-v-07e602ca";
4057
+ const __vue_scope_id__$9 = "data-v-55fe862a";
4036
4058
  /* module identifier */
4037
4059
  const __vue_module_identifier__$9 = undefined;
4038
4060
  /* functional template */
@@ -4060,7 +4082,9 @@ const BUILT_IN_EVENT_NAMES = {
4060
4082
  SUBMIT: 'submit',
4061
4083
  CANCEL: 'cancel',
4062
4084
  INCREASE: 'increase',
4063
- DELETE: 'delete'
4085
+ DELETE: 'delete',
4086
+ NEXT: 'next',
4087
+ PREVIOUS: 'previous'
4064
4088
  };
4065
4089
  const RESERVE_EVENT_NAMES = {
4066
4090
  WATCH_FORM_STATUS: 'watch-form-status'
@@ -4437,7 +4461,7 @@ var script$7 = {
4437
4461
  });
4438
4462
  return ret;
4439
4463
  },
4440
- async submitRequestTrigger(props) {
4464
+ async submitRequestTrigger(props = {}) {
4441
4465
  const {
4442
4466
  url,
4443
4467
  requestType,
@@ -4456,7 +4480,7 @@ var script$7 = {
4456
4480
  headers
4457
4481
  }).then(resp => {
4458
4482
  this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, {
4459
- props,
4483
+ ...props,
4460
4484
  formModel: this.formModels
4461
4485
  });
4462
4486
  });
@@ -4501,7 +4525,10 @@ var script$7 = {
4501
4525
  setFieldsValue(props) {
4502
4526
  this.$refs[this.formRef].setFieldsValue(props);
4503
4527
  },
4504
- [BUILT_IN_EVENT_NAMES.SUBMIT](props) {
4528
+ validateFields() {
4529
+ return this.$refs[this.formRef].validateFields();
4530
+ },
4531
+ [BUILT_IN_EVENT_NAMES.SUBMIT](props = {}) {
4505
4532
  const status = this.$refs[this.formRef].validateFields();
4506
4533
  if (status) {
4507
4534
  //TODO fieldMap
@@ -4510,9 +4537,9 @@ var script$7 = {
4510
4537
  console.log('error');
4511
4538
  }
4512
4539
  },
4513
- [BUILT_IN_EVENT_NAMES.CANCEL](props) {
4540
+ [BUILT_IN_EVENT_NAMES.CANCEL](props = {}) {
4514
4541
  this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, {
4515
- props
4542
+ ...props
4516
4543
  });
4517
4544
  }
4518
4545
  },
@@ -4544,20 +4571,22 @@ var __vue_render__$7 = function () {
4544
4571
  1
4545
4572
  ),
4546
4573
  _vm._v(" "),
4547
- _c(
4548
- "div",
4549
- { staticClass: "form-model__footer" },
4550
- [
4551
- _c(
4552
- "ele-button-group",
4553
- _vm._g(
4554
- { attrs: { "data-source": _vm.footerElements } },
4555
- _vm.assignAttrForEvents
4556
- )
4557
- ),
4558
- ],
4559
- 1
4560
- ),
4574
+ _vm.footerMeta
4575
+ ? _c(
4576
+ "div",
4577
+ { staticClass: "form-model__footer" },
4578
+ [
4579
+ _c(
4580
+ "ele-button-group",
4581
+ _vm._g(
4582
+ { attrs: { "data-source": _vm.footerElements } },
4583
+ _vm.assignAttrForEvents
4584
+ )
4585
+ ),
4586
+ ],
4587
+ 1
4588
+ )
4589
+ : _vm._e(),
4561
4590
  ])
4562
4591
  };
4563
4592
  var __vue_staticRenderFns__$7 = [];
@@ -4566,11 +4595,11 @@ __vue_render__$7._withStripped = true;
4566
4595
  /* style */
4567
4596
  const __vue_inject_styles__$7 = function (inject) {
4568
4597
  if (!inject) return
4569
- inject("data-v-1ea6d862_0", { source: ".form__model--wrapper[data-v-1ea6d862] {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n}\n.form__model--wrapper .form-model__title[data-v-1ea6d862] {\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-1ea6d862] {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer[data-v-1ea6d862] {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\form-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAiIA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,gBAAA;AChIA;ADiIA;EACA,YAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8DAAA;AC/HA;ADiIA;EACA,aAAA;AC/HA;ADiIA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,YAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;AC/HA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"form__model--wrapper\">\r\n <div class=\"form-model__title\" v-if=\"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, parseFieldMap } 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 execFieldMap (fieldMap = {}, dataSource = {}) {\r\n const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})\r\n return ret\r\n },\r\n async submitRequestTrigger (props) {\r\n const { url, requestType, headers, params, fieldMap = {} } = this.submitRequest\r\n if (!url) return\r\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), ...this.formModels }, { headers }).then(resp => {\r\n this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { props, formModel: this.formModels })\r\n })\r\n },\r\n async infoRequestTrigger () {\r\n const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest\r\n if (!url) return\r\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {\r\n const { data = {} } = resp\r\n this.setFieldsValue(data)\r\n })\r\n },\r\n async preRequestTrigger () {\r\n const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest\r\n if (!url) return\r\n await net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers })\r\n },\r\n setFieldsValue (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 if (status) {\r\n //TODO fieldMap\r\n this.submitRequestTrigger(props)\r\n } else {\r\n console.log('error')\r\n }\r\n },\r\n [BUILT_IN_EVENT_NAMES.CANCEL] (props) {\r\n this.$emit(BUILT_IN_EVENT_NAMES.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 background: #fff;\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 float: right;\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 background: #fff;\n}\n.form__model--wrapper .form-model__title {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4598
+ inject("data-v-a6743918_0", { source: ".form__model--wrapper[data-v-a6743918] {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n}\n.form__model--wrapper .form-model__title[data-v-a6743918] {\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-a6743918] {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer[data-v-a6743918] {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\form-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAoIA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,gBAAA;ACnIA;ADoIA;EACA,YAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8DAAA;AClIA;ADoIA;EACA,aAAA;AClIA;ADoIA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,YAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;AClIA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"form__model--wrapper\">\r\n <div class=\"form-model__title\" v-if=\"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\" v-if=\"footerMeta\">\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, parseFieldMap } 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 execFieldMap (fieldMap = {}, dataSource = {}) {\r\n const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})\r\n return ret\r\n },\r\n async submitRequestTrigger (props = {}) {\r\n const { url, requestType, headers, params, fieldMap = {} } = this.submitRequest\r\n if (!url) return\r\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), ...this.formModels }, { headers }).then(resp => {\r\n this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: this.formModels })\r\n })\r\n },\r\n async infoRequestTrigger () {\r\n const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest\r\n if (!url) return\r\n net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {\r\n const { data = {} } = resp\r\n this.setFieldsValue(data)\r\n })\r\n },\r\n async preRequestTrigger () {\r\n const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest\r\n if (!url) return\r\n await net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers })\r\n },\r\n setFieldsValue (props) {\r\n this.$refs[this.formRef].setFieldsValue(props)\r\n },\r\n validateFields () {\r\n return this.$refs[this.formRef].validateFields()\r\n },\r\n [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {\r\n const status = this.$refs[this.formRef].validateFields()\r\n if (status) {\r\n //TODO fieldMap\r\n this.submitRequestTrigger(props)\r\n } else {\r\n console.log('error')\r\n }\r\n },\r\n [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {\r\n this.$emit(BUILT_IN_EVENT_NAMES.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 background: #fff;\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 float: right;\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 background: #fff;\n}\n.form__model--wrapper .form-model__title {\n height: 56px;\n padding: 0 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid var(--idooel-form-title-border-color);\n}\n.form__model--wrapper .form-model__content {\n padding: 16px;\n}\n.form__model--wrapper .form-model__footer {\n /* width: 100%; */\n height: 64px;\n position: fixed;\n bottom: 0;\n display: flex;\n float: right;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4570
4599
 
4571
4600
  };
4572
4601
  /* scoped */
4573
- const __vue_scope_id__$7 = "data-v-1ea6d862";
4602
+ const __vue_scope_id__$7 = "data-v-a6743918";
4574
4603
  /* module identifier */
4575
4604
  const __vue_module_identifier__$7 = undefined;
4576
4605
  /* functional template */
@@ -4595,38 +4624,59 @@ __vue_render__$7._withStripped = true;
4595
4624
  );
4596
4625
 
4597
4626
  //
4598
- //
4599
- //
4600
- //
4601
- //
4602
- //
4603
- //
4604
- //
4605
- //
4606
- //
4607
- //
4608
- //
4609
- //
4610
- //
4611
- //
4612
- //
4613
- //
4614
- //
4615
-
4616
4627
  var script$6 = {
4617
4628
  name: 'ele-step-model',
4629
+ components: {
4630
+ EleButtonGroup: __vue_component__$i
4631
+ },
4618
4632
  props: {
4619
4633
  stepMeta: {
4620
4634
  type: Object,
4621
4635
  default: () => ({})
4636
+ },
4637
+ footerMeta: {
4638
+ type: Object,
4639
+ default: () => ({})
4622
4640
  }
4623
4641
  },
4642
+ data() {
4643
+ return {
4644
+ current: 0,
4645
+ currentSlotComponentRef: null
4646
+ };
4647
+ },
4624
4648
  computed: {
4625
- activeKey() {
4649
+ currentSlotName() {
4650
+ return this.scopedSlotsNames[this.current];
4651
+ },
4652
+ footerElements() {
4626
4653
  const {
4627
- activeKey
4654
+ elements
4655
+ } = this.footerMeta;
4656
+ return elements.call(this);
4657
+ },
4658
+ assignAttrForEvents() {
4659
+ const events = this.footerElements.reduce((ret, ele) => {
4660
+ ret[ele.eventName] = e => {
4661
+ this.$emit(ele.eventName || 'click', {
4662
+ ...e,
4663
+ exposed: this.exposedMethods
4664
+ });
4665
+ };
4666
+ return ret;
4667
+ }, {});
4668
+ return {
4669
+ ...this.$listeners,
4670
+ ...events,
4671
+ [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],
4672
+ [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS]
4673
+ };
4674
+ },
4675
+ activeIndex() {
4676
+ const {
4677
+ activeIndex
4628
4678
  } = this.stepMeta;
4629
- return activeKey;
4679
+ return activeIndex;
4630
4680
  },
4631
4681
  elements() {
4632
4682
  const {
@@ -4635,11 +4685,70 @@ var script$6 = {
4635
4685
  return elements;
4636
4686
  },
4637
4687
  scopedSlotsNames() {
4638
- return Object.keys(this.$scopedSlots);
4688
+ const slotNames = this.elements.map(item => item.key);
4689
+ return slotNames;
4690
+ },
4691
+ exposedMethods() {
4692
+ return {
4693
+ slotRef: this.currentSlotComponentRef,
4694
+ setCurrentStep: this.setCurrentStep,
4695
+ next: this.nextStep,
4696
+ prev: this.prevStep
4697
+ };
4639
4698
  }
4640
4699
  },
4641
- mounted() {
4642
- console.log('slotComponents', Object.keys(this.$scopedSlots));
4700
+ watch: {
4701
+ activeIndex: {
4702
+ handler(idx) {
4703
+ this.current = idx;
4704
+ },
4705
+ immediate: true
4706
+ },
4707
+ current: {
4708
+ handler() {
4709
+ this.$nextTick(() => {
4710
+ this.currentSlotComponentRef = this.getCurrentSlotComponentRef();
4711
+ });
4712
+ },
4713
+ immediate: true
4714
+ }
4715
+ },
4716
+ methods: {
4717
+ getCurrentSlotComponentRef() {
4718
+ const includeMetaCmp = this.$children.find(child => child.meta);
4719
+ if (!includeMetaCmp) return null;
4720
+ const {
4721
+ $children: [component]
4722
+ } = includeMetaCmp;
4723
+ return component.getModel ? component.getModel() : null;
4724
+ },
4725
+ setCurrentStep(index) {
4726
+ this.current = index;
4727
+ },
4728
+ nextStep() {
4729
+ if (this.current >= this.elements.length - 1) return;
4730
+ this.current++;
4731
+ },
4732
+ prevStep() {
4733
+ if (this.current <= 0) return;
4734
+ this.current--;
4735
+ },
4736
+ [BUILT_IN_EVENT_NAMES.NEXT](props) {
4737
+ this.$emit(BUILT_IN_EVENT_NAMES.NEXT, {
4738
+ ...props,
4739
+ exposed: {
4740
+ ...this.exposedMethods
4741
+ }
4742
+ });
4743
+ },
4744
+ [BUILT_IN_EVENT_NAMES.PREVIOUS](props) {
4745
+ this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, {
4746
+ ...props,
4747
+ exposed: {
4748
+ ...this.exposedMethods
4749
+ }
4750
+ });
4751
+ }
4643
4752
  }
4644
4753
  };
4645
4754
 
@@ -4660,7 +4769,7 @@ var __vue_render__$6 = function () {
4660
4769
  "a-steps",
4661
4770
  {
4662
4771
  staticClass: "ele-steps",
4663
- attrs: { current: _vm.activeKey, size: "small" },
4772
+ attrs: { current: _vm.current, size: "small" },
4664
4773
  },
4665
4774
  _vm._l(_vm.elements, function (step) {
4666
4775
  return _c("a-step", { key: step.key, attrs: { title: step.title } })
@@ -4677,26 +4786,39 @@ var __vue_render__$6 = function () {
4677
4786
  [
4678
4787
  _vm._l(_vm.scopedSlotsNames, function (name) {
4679
4788
  return [
4680
- _c(
4681
- "div",
4682
- {
4683
- class: [
4684
- "ele-step-model__slot",
4685
- "ele-step-model__slot--" + name,
4686
- ],
4687
- },
4688
- [_vm._t(name)],
4689
- 2
4690
- ),
4789
+ _vm.currentSlotName == name
4790
+ ? _c(
4791
+ "div",
4792
+ {
4793
+ class: [
4794
+ "ele-step-model__slot",
4795
+ "ele-step-model__slot--" + name,
4796
+ ],
4797
+ },
4798
+ [_vm._t(name)],
4799
+ 2
4800
+ )
4801
+ : _vm._e(),
4691
4802
  ]
4692
4803
  }),
4693
4804
  ],
4694
4805
  2
4695
4806
  ),
4696
4807
  _vm._v(" "),
4697
- _c("div", { staticClass: "ele-step-model__footer--wrapper" }, [
4698
- _vm._v("footer"),
4699
- ]),
4808
+ _c(
4809
+ "div",
4810
+ { staticClass: "ele-step-model__footer--wrapper" },
4811
+ [
4812
+ _c(
4813
+ "ele-button-group",
4814
+ _vm._g(
4815
+ { attrs: { "data-source": _vm.footerElements } },
4816
+ _vm.assignAttrForEvents
4817
+ )
4818
+ ),
4819
+ ],
4820
+ 1
4821
+ ),
4700
4822
  ])
4701
4823
  };
4702
4824
  var __vue_staticRenderFns__$6 = [];
@@ -4705,11 +4827,11 @@ __vue_render__$6._withStripped = true;
4705
4827
  /* style */
4706
4828
  const __vue_inject_styles__$6 = function (inject) {
4707
4829
  if (!inject) return
4708
- inject("data-v-71cb979c_0", { source: ".ele-step-model__wrapper .ele-step-model__step--wrapper[data-v-71cb979c] {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item[data-v-71cb979c] {\n text-align: left;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\step-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAgDA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;AC/CA;ADiDA;EACA,gBAAA;AC/CA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"ele-step-model__wrapper\">\r\n <div class=\"ele-step-model__step--wrapper\">\r\n <a-steps class=\"ele-steps\" :current=\"activeKey\" size=\"small\">\r\n <a-step v-for=\"step in elements\" :title=\"step.title\" :key=\"step.key\" />\r\n </a-steps>\r\n </div>\r\n <div class=\"ele-step-model__content--wrapper\">\r\n <template v-for=\"name in scopedSlotsNames\">\r\n <div :class=\"['ele-step-model__slot', `ele-step-model__slot--${name}`]\">\r\n <slot :name=\"name\"></slot>\r\n </div>\r\n </template>\r\n </div>\r\n <div class=\"ele-step-model__footer--wrapper\">footer</div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ele-step-model',\r\n props: {\r\n stepMeta: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n activeKey () {\r\n const { activeKey } = this.stepMeta\r\n return activeKey\r\n },\r\n elements () {\r\n const { elements } = this.stepMeta\r\n return elements\r\n },\r\n scopedSlotsNames () {\r\n return Object.keys(this.$scopedSlots)\r\n }\r\n },\r\n mounted() {\r\n console.log('slotComponents', Object.keys(this.$scopedSlots))\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ele-step-model__wrapper {\r\n .ele-step-model__step--wrapper {\r\n width: 100%;\r\n height: 64px;\r\n padding: 16px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n .ele-steps {\r\n .ant-steps-item {\r\n text-align: left;\r\n }\r\n }\r\n }\r\n}\r\n</style>",".ele-step-model__wrapper .ele-step-model__step--wrapper {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item {\n text-align: left;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4830
+ inject("data-v-86ff892c_0", { source: ".ele-step-model__wrapper[data-v-86ff892c] {\n width: 100%;\n height: 100vh;\n position: relative;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper[data-v-86ff892c] {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n background: #fff;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item[data-v-86ff892c] {\n text-align: left;\n}\n.ele-step-model__wrapper .ele-step-model__content--wrapper[data-v-86ff892c] {\n width: 100%;\n width: 100%;\n margin-top: 16px;\n margin-bottom: 16px;\n height: calc(100vh - 64px - 64px - 16px - 16px);\n overflow: auto;\n}\n.ele-step-model__wrapper .ele-step-model__footer--wrapper[data-v-86ff892c] {\n width: 100%;\n height: 64px;\n background: #fff;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */", map: {"version":3,"sources":["E:\\work\\code\\ganjiao\\ganjian-monorepo\\packages\\components\\packages\\step-model\\src\\index.vue","index.vue"],"names":[],"mappings":"AAoIA;EACA,WAAA;EACA,aAAA;EACA,kBAAA;ACnIA;ADoIA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,gBAAA;AClIA;ADoIA;EACA,gBAAA;AClIA;ADsIA;EACA,WAAA;EACA,WAAA;EACA,gBAAA;EACA,mBAAA;EACA,+CAAA;EACA,cAAA;ACpIA;ADsIA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,kBAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,oBAAA;ACpIA;;AAEA,oCAAoC","file":"index.vue","sourcesContent":["<template>\r\n <div class=\"ele-step-model__wrapper\">\r\n <div class=\"ele-step-model__step--wrapper\">\r\n <a-steps class=\"ele-steps\" :current=\"current\" size=\"small\">\r\n <a-step v-for=\"step in elements\" :title=\"step.title\" :key=\"step.key\" />\r\n </a-steps>\r\n </div>\r\n <div class=\"ele-step-model__content--wrapper\">\r\n <template v-for=\"name in scopedSlotsNames\">\r\n <div v-if=\"currentSlotName == name\" :class=\"['ele-step-model__slot', `ele-step-model__slot--${name}`]\">\r\n <slot :name=\"name\"></slot>\r\n </div>\r\n </template>\r\n </div>\r\n <div class=\"ele-step-model__footer--wrapper\">\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\nexport default {\r\n name: 'ele-step-model',\r\n components: {\r\n EleButtonGroup\r\n },\r\n props: {\r\n stepMeta: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n footerMeta: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n data() {\r\n return {\r\n current: 0,\r\n currentSlotComponentRef: null\r\n }\r\n },\r\n computed: {\r\n currentSlotName () {\r\n return this.scopedSlotsNames[this.current]\r\n },\r\n footerElements () {\r\n const { elements } = this.footerMeta\r\n return elements.call(this)\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, exposed: this.exposedMethods })\r\n }\r\n return ret\r\n }, {})\r\n return {\r\n ...this.$listeners,\r\n ...events,\r\n [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],\r\n [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS]\r\n }\r\n },\r\n activeIndex () {\r\n const { activeIndex } = this.stepMeta\r\n return activeIndex\r\n },\r\n elements () {\r\n const { elements } = this.stepMeta\r\n return elements\r\n },\r\n scopedSlotsNames () {\r\n const slotNames = this.elements.map(item => item.key)\r\n return slotNames\r\n },\r\n exposedMethods () {\r\n return {\r\n slotRef: this.currentSlotComponentRef,\r\n setCurrentStep: this.setCurrentStep,\r\n next: this.nextStep,\r\n prev: this.prevStep\r\n }\r\n }\r\n },\r\n watch: {\r\n activeIndex: {\r\n handler (idx) {\r\n this.current = idx\r\n },\r\n immediate: true\r\n },\r\n current: {\r\n handler () {\r\n this.$nextTick(() => {\r\n this.currentSlotComponentRef = this.getCurrentSlotComponentRef()\r\n })\r\n },\r\n immediate: true\r\n }\r\n },\r\n methods: {\r\n getCurrentSlotComponentRef () {\r\n const includeMetaCmp = this.$children.find(child => child.meta)\r\n if (!includeMetaCmp) return null\r\n const { $children: [component] } = includeMetaCmp\r\n return component.getModel ? component.getModel() : null\r\n },\r\n setCurrentStep (index) {\r\n this.current = index\r\n },\r\n nextStep () {\r\n if (this.current >= this.elements.length - 1) return\r\n this.current ++\r\n },\r\n prevStep () {\r\n if (this.current <= 0) return\r\n this.current --\r\n },\r\n [BUILT_IN_EVENT_NAMES.NEXT] (props) {\r\n this.$emit(BUILT_IN_EVENT_NAMES.NEXT, { ...props, exposed: { ...this.exposedMethods } })\r\n },\r\n [BUILT_IN_EVENT_NAMES.PREVIOUS] (props) {\r\n this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, { ...props, exposed: { ...this.exposedMethods } })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ele-step-model__wrapper {\r\n width: 100%;\r\n height: 100vh;\r\n position: relative;\r\n .ele-step-model__step--wrapper {\r\n width: 100%;\r\n height: 64px;\r\n padding: 16px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n background: #fff;\r\n .ele-steps {\r\n .ant-steps-item {\r\n text-align: left;\r\n }\r\n }\r\n }\r\n .ele-step-model__content--wrapper {\r\n width: 100%;\r\n width: 100%;\r\n margin-top: 16px;\r\n margin-bottom: 16px;\r\n height: calc(100vh - 64px - 64px - 16px - 16px);\r\n overflow: auto;\r\n }\r\n .ele-step-model__footer--wrapper {\r\n width: 100%;\r\n height: 64px;\r\n background: #fff;\r\n position: absolute;\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>import meta from '@/views/tree-table-page/meta'\r\n",".ele-step-model__wrapper {\n width: 100%;\n height: 100vh;\n position: relative;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper {\n width: 100%;\n height: 64px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n background: #fff;\n}\n.ele-step-model__wrapper .ele-step-model__step--wrapper .ele-steps .ant-steps-item {\n text-align: left;\n}\n.ele-step-model__wrapper .ele-step-model__content--wrapper {\n width: 100%;\n width: 100%;\n margin-top: 16px;\n margin-bottom: 16px;\n height: calc(100vh - 64px - 64px - 16px - 16px);\n overflow: auto;\n}\n.ele-step-model__wrapper .ele-step-model__footer--wrapper {\n width: 100%;\n height: 64px;\n background: #fff;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n}\n\n/*# sourceMappingURL=index.vue.map */"]}, media: undefined });
4709
4831
 
4710
4832
  };
4711
4833
  /* scoped */
4712
- const __vue_scope_id__$6 = "data-v-71cb979c";
4834
+ const __vue_scope_id__$6 = "data-v-86ff892c";
4713
4835
  /* module identifier */
4714
4836
  const __vue_module_identifier__$6 = undefined;
4715
4837
  /* functional template */