@idooel/components 0.0.2-beta.3 → 0.0.2-beta.31

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 (113) hide show
  1. package/README.md +98 -98
  2. package/dist/@idooel/components.esm.js +3599 -1574
  3. package/dist/@idooel/components.umd.js +3653 -1629
  4. package/jsconfig.json +7 -7
  5. package/package.json +64 -50
  6. package/packages/alert/index.js +4 -4
  7. package/packages/alert/src/index.vue +45 -45
  8. package/packages/batch-export/index.js +4 -4
  9. package/packages/batch-export/src/index.vue +104 -104
  10. package/packages/business-components/modal-fsm/index.js +4 -4
  11. package/packages/business-components/modal-fsm/src/index.vue +163 -163
  12. package/packages/business-components/modal-import/index.js +4 -4
  13. package/packages/business-components/modal-import/src/index.vue +222 -139
  14. package/packages/business-components/modal-timeline/index.js +4 -4
  15. package/packages/business-components/modal-timeline/src/index.vue +77 -77
  16. package/packages/business-components/tabs-sub-center/index.js +4 -4
  17. package/packages/business-components/tabs-sub-center/src/index.vue +116 -116
  18. package/packages/button/index.js +4 -4
  19. package/packages/button/src/index.vue +65 -65
  20. package/packages/checkbox/index.js +4 -4
  21. package/packages/checkbox/src/index.vue +52 -52
  22. package/packages/composite-components/button-group/index.js +4 -4
  23. package/packages/composite-components/button-group/src/index.vue +151 -151
  24. package/packages/composite-components/form-attachment/src/index.vue +14 -14
  25. package/packages/composite-components/form-img-crop/index.js +4 -4
  26. package/packages/composite-components/form-img-crop/src/index.vue +131 -131
  27. package/packages/composite-components/modal-confirm/index.js +4 -4
  28. package/packages/composite-components/modal-confirm/src/index.vue +103 -103
  29. package/packages/composite-components/modal-form/index.js +4 -4
  30. package/packages/composite-components/modal-form/src/index.vue +230 -230
  31. package/packages/composite-components/modal-img-crop/index.js +4 -4
  32. package/packages/composite-components/modal-img-crop/src/index.vue +298 -298
  33. package/packages/composite-components/modal-table/index.js +4 -4
  34. package/packages/composite-components/modal-table/src/index.vue +155 -155
  35. package/packages/composite-components/modal-tree/index.js +4 -4
  36. package/packages/composite-components/modal-tree/src/index.vue +75 -75
  37. package/packages/composite-components/search-area/index.js +4 -4
  38. package/packages/composite-components/search-area/src/index.vue +239 -237
  39. package/packages/composite-components/search-area/src/label.vue +35 -35
  40. package/packages/composite-components/select-entity-modal-table/index.js +4 -4
  41. package/packages/composite-components/select-entity-modal-table/src/index.vue +171 -171
  42. package/packages/date/index.js +4 -4
  43. package/packages/date/src/index.vue +112 -112
  44. package/packages/date-range/index.js +4 -4
  45. package/packages/date-range/src/index.vue +47 -47
  46. package/packages/form/index.js +4 -4
  47. package/packages/form/src/index.vue +393 -319
  48. package/packages/icon/index.js +4 -4
  49. package/packages/icon/src/index.vue +31 -31
  50. package/packages/index.js +159 -153
  51. package/packages/input/index.js +4 -4
  52. package/packages/input/src/index.vue +35 -35
  53. package/packages/input-number/index.js +4 -4
  54. package/packages/input-number/src/index.vue +23 -23
  55. package/packages/loading/index.js +4 -4
  56. package/packages/loading/src/index.vue +36 -36
  57. package/packages/meta/provider.js +4 -0
  58. package/packages/modal/index.js +4 -4
  59. package/packages/modal/src/index.vue +184 -184
  60. package/packages/models/form-group-model/index.js +4 -4
  61. package/packages/models/form-group-model/src/index.vue +271 -273
  62. package/packages/models/form-model/index.js +4 -4
  63. package/packages/models/form-model/src/index.vue +236 -232
  64. package/packages/models/step-model/index.js +4 -4
  65. package/packages/models/step-model/src/index.vue +224 -224
  66. package/packages/models/tree-table-model/README.md +0 -0
  67. package/packages/models/tree-table-model/index.js +4 -4
  68. package/packages/models/tree-table-model/src/index.vue +963 -689
  69. package/packages/pagination/index.js +5 -0
  70. package/packages/pagination/src/index.vue +372 -0
  71. package/packages/radio/index.js +4 -4
  72. package/packages/radio/src/index.vue +56 -56
  73. package/packages/select/index.js +4 -4
  74. package/packages/select/src/index.vue +113 -105
  75. package/packages/select-entity/index.js +4 -4
  76. package/packages/select-entity/src/index.vue +119 -119
  77. package/packages/table/index.js +4 -4
  78. package/packages/table/src/action.vue +176 -172
  79. package/packages/table/src/index.vue +605 -319
  80. package/packages/tabs/index.js +4 -4
  81. package/packages/tabs/src/index.vue +55 -55
  82. package/packages/text/index.js +4 -4
  83. package/packages/text/src/index.vue +47 -47
  84. package/packages/text-editor/index.js +4 -4
  85. package/packages/text-editor/src/index.vue +72 -72
  86. package/packages/textarea/index.js +4 -4
  87. package/packages/textarea/src/index.vue +57 -57
  88. package/packages/theme/form.scss +21 -21
  89. package/packages/theme/index.scss +43 -43
  90. package/packages/theme/overrid.scss +7 -7
  91. package/packages/theme/styleClass.scss +2 -2
  92. package/packages/theme/variables.scss +55 -55
  93. package/packages/timeline/index.js +4 -4
  94. package/packages/timeline/src/index.vue +257 -257
  95. package/packages/tpl/index.js +4 -4
  96. package/packages/tpl/src/index.vue +55 -55
  97. package/packages/tree/index.js +4 -4
  98. package/packages/tree/src/TreeNode.vue +29 -29
  99. package/packages/tree/src/index.vue +101 -101
  100. package/packages/tree-select/index.js +4 -4
  101. package/packages/tree-select/src/index.vue +142 -142
  102. package/packages/upload/index.js +4 -4
  103. package/packages/upload/src/index.vue +998 -494
  104. package/packages/utils/README.md +172 -0
  105. package/packages/utils/index.js +66 -62
  106. package/packages/utils/runtime-context/dataPoolAPI.js +501 -0
  107. package/packages/utils/runtime-context/globalDataPool.js +279 -0
  108. package/packages/utils/runtime-context/index.js +76 -0
  109. package/packages/utils/runtime-context/modelSchema.js +174 -0
  110. package/scripts/rollup.config.js +42 -42
  111. package/scripts/rollup.esm.config.js +11 -11
  112. package/scripts/rollup.umd.config.js +17 -14
  113. package/vitest.config.js +17 -0
@@ -1,56 +1,56 @@
1
- <template>
2
- <component
3
- v-if="modelNameValidator.existed"
4
- :is="modelName"
5
- :ref="genModelRef"
6
- v-bind="$attrs"
7
- v-on="$listeners">
8
- <template v-for="(idx, name) in $scopedSlots" v-slot:[name]="data">
9
- <slot :name="name" v-bind="data"></slot>
10
- </template>
11
- </component>
12
- <div v-else v-html="modelNameValidator.message"></div>
13
- </template>
14
-
15
- <script>
16
- import EleTreeTableModel from '../../models/tree-table-model/src/index.vue'
17
- import EleFormGroupModel from '../../models/form-group-model/src/index.vue'
18
- import EleFormModel from '../../models/form-model/src/index.vue'
19
- import EleStepModel from '../../models/step-model/src/index.vue'
20
- import { v4 as uuidv4 } from 'uuid'
21
- import { models } from '../../index.js'
22
- export default {
23
- name: 'ele-tpl',
24
- props: {
25
- modelName: {
26
- type: String
27
- }
28
- },
29
- components: {
30
- [EleTreeTableModel.name]: EleTreeTableModel,
31
- [EleFormGroupModel.name]: EleFormGroupModel,
32
- [EleStepModel.name]: EleStepModel,
33
- [EleFormModel.name]: EleFormModel
34
- },
35
- computed: {
36
- modelNameValidator () {
37
- const target = models.find(model => model.name === this.modelName)
38
- return {
39
- existed: !!target,
40
- message: !!target ? '' : `Model <span style="color:red;">${this.modelName}</span> not found`
41
- }
42
- },
43
- genModelRef () {
44
- return uuidv4()
45
- }
46
- },
47
- methods: {
48
- getModel () {
49
- return this.$refs[this.genModelRef]
50
- }
51
- }
52
- }
53
- </script>
54
- <style lang="scss">
55
- @import '../../theme/index';
1
+ <template>
2
+ <component
3
+ v-if="modelNameValidator.existed"
4
+ :is="modelName"
5
+ :ref="genModelRef"
6
+ v-bind="$attrs"
7
+ v-on="$listeners">
8
+ <template v-for="(idx, name) in $scopedSlots" v-slot:[name]="data">
9
+ <slot :name="name" v-bind="data"></slot>
10
+ </template>
11
+ </component>
12
+ <div v-else v-html="modelNameValidator.message"></div>
13
+ </template>
14
+
15
+ <script>
16
+ import EleTreeTableModel from '../../models/tree-table-model/src/index.vue'
17
+ import EleFormGroupModel from '../../models/form-group-model/src/index.vue'
18
+ import EleFormModel from '../../models/form-model/src/index.vue'
19
+ import EleStepModel from '../../models/step-model/src/index.vue'
20
+ import { v4 as uuidv4 } from 'uuid'
21
+ import { models } from '../../index.js'
22
+ export default {
23
+ name: 'ele-tpl',
24
+ props: {
25
+ modelName: {
26
+ type: String
27
+ }
28
+ },
29
+ components: {
30
+ [EleTreeTableModel.name]: EleTreeTableModel,
31
+ [EleFormGroupModel.name]: EleFormGroupModel,
32
+ [EleStepModel.name]: EleStepModel,
33
+ [EleFormModel.name]: EleFormModel
34
+ },
35
+ computed: {
36
+ modelNameValidator () {
37
+ const target = models.find(model => model.name === this.modelName)
38
+ return {
39
+ existed: !!target,
40
+ message: !!target ? '' : `Model <span style="color:red;">${this.modelName}</span> not found`
41
+ }
42
+ },
43
+ genModelRef () {
44
+ return uuidv4()
45
+ }
46
+ },
47
+ methods: {
48
+ getModel () {
49
+ return this.$refs[this.genModelRef]
50
+ }
51
+ }
52
+ }
53
+ </script>
54
+ <style lang="scss">
55
+ @import '../../theme/index';
56
56
  </style>
@@ -1,5 +1,5 @@
1
- import EleTree from './src/index.vue'
2
-
3
- EleTree.install = Vue => Vue.component(EleTree.name, EleTree)
4
-
1
+ import EleTree from './src/index.vue'
2
+
3
+ EleTree.install = Vue => Vue.component(EleTree.name, EleTree)
4
+
5
5
  export default EleTree
@@ -1,30 +1,30 @@
1
- <template>
2
- <a-tree-node :key="node.key" :title="node.title">
3
- <a-icon slot="icon" type="carry-out" />
4
- <template v-if="node.children">
5
- <TreeNode
6
- v-for="(children, idx) in node.children"
7
- :key="idx"
8
- :node="children">
9
- </TreeNode>
10
- </template>
11
- <!-- <span slot="title" style="color: #1890ff">parent 1</span> -->
12
- </a-tree-node>
13
- </template>
14
-
15
- <script>
16
- export default {
17
- name: 'TreeNode',
18
- isTreeNode: true,
19
- props: {
20
- node: {
21
- type: Object,
22
- required: true
23
- }
24
- }
25
- }
26
- </script>
27
-
28
- <style scoped>
29
-
1
+ <template>
2
+ <a-tree-node :key="node.key" :title="node.title">
3
+ <a-icon slot="icon" type="carry-out" />
4
+ <template v-if="node.children">
5
+ <TreeNode
6
+ v-for="(children, idx) in node.children"
7
+ :key="idx"
8
+ :node="children">
9
+ </TreeNode>
10
+ </template>
11
+ <!-- <span slot="title" style="color: #1890ff">parent 1</span> -->
12
+ </a-tree-node>
13
+ </template>
14
+
15
+ <script>
16
+ export default {
17
+ name: 'TreeNode',
18
+ isTreeNode: true,
19
+ props: {
20
+ node: {
21
+ type: Object,
22
+ required: true
23
+ }
24
+ }
25
+ }
26
+ </script>
27
+
28
+ <style scoped>
29
+
30
30
  </style>
@@ -1,102 +1,102 @@
1
- <template>
2
- <div class="g-tree__wrapper">
3
- <a-tree
4
- v-if="innerTreeData.length"
5
- :tree-data="innerTreeData"
6
- :checkable="checkable"
7
- @select="selectTreeNode"
8
- @check="checkTreeNode"
9
- :replaceFields="replaceFields"
10
- :default-expanded-keys="defaultExpandedKeys"
11
- :default-selected-keys="defaultSelectedKeys"
12
- :show-line="showLine"
13
- blockNode
14
- :show-icon="showIcon">
15
- <a-icon v-if="switcherIcon" slot="switcherIcon" :type="switcherIcon" />
16
- <template #title="props">
17
- <span :title="props[replaceFields.title]" class="tree-node__title">
18
- {{ props[replaceFields.title] }}
19
- </span>
20
- </template>
21
- <template slot="custom" slot-scope="{ scopedSlots }">
22
- <a-icon :type="scopedSlots.iconName"></a-icon>
23
- </template>
24
- </a-tree>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- export default {
30
- name: 'ele-tree',
31
- props: {
32
- treeData: {
33
- type: Array,
34
- default: () => []
35
- },
36
- showLine: {
37
- type: Boolean,
38
- default: false
39
- },
40
- switcherIcon: {
41
- type: String
42
- },
43
- checkable: {
44
- type: Boolean,
45
- default: false
46
- },
47
- replaceFields: {
48
- type: Object,
49
- default: () => ({
50
- title: 'title',
51
- key: 'id',
52
- children: 'children'
53
- })
54
- },
55
- defaultExpandedKeys: {
56
- type: Array
57
- },
58
- defaultSelectedKeys: {
59
- type: Array
60
- },
61
- showIcon: {
62
- type: Boolean,
63
- default: true
64
- }
65
- },
66
- data () {
67
- return {}
68
- },
69
- computed: {
70
- innerTreeData () {
71
- return this.treeData
72
- }
73
- },
74
- methods: {
75
- checkTreeNode (checkedKeys, e) {
76
- const { checkedNodes } = e
77
- const nodeDatas = checkedNodes.map(item => item.data.props.dataRef)
78
- this.$emit('check', checkedKeys, nodeDatas)
79
- },
80
- refreshTreeStatus (props = {}) {},
81
- selectTreeNode (selectedKeys, e) {
82
- this.$emit('select', selectedKeys, e)
83
- }
84
- }
85
- }
86
- </script>
87
-
88
- <style lang="scss" scoped>
89
- .g-tree__wrapper {
90
- overflow: hidden;
91
- ::v-deep .ant-tree {
92
- .ant-tree-node-content-wrapper {
93
- text-overflow: ellipsis;
94
- overflow: hidden;
95
- white-space: nowrap;
96
- }
97
- .ant-tree-node-selected {
98
- color: #fff;
99
- }
100
- }
101
- }
1
+ <template>
2
+ <div class="g-tree__wrapper">
3
+ <a-tree
4
+ v-if="innerTreeData.length"
5
+ :tree-data="innerTreeData"
6
+ :checkable="checkable"
7
+ @select="selectTreeNode"
8
+ @check="checkTreeNode"
9
+ :replaceFields="replaceFields"
10
+ :default-expanded-keys="defaultExpandedKeys"
11
+ :default-selected-keys="defaultSelectedKeys"
12
+ :show-line="showLine"
13
+ blockNode
14
+ :show-icon="showIcon">
15
+ <a-icon v-if="switcherIcon" slot="switcherIcon" :type="switcherIcon" />
16
+ <template #title="props">
17
+ <span :title="props[replaceFields.title]" class="tree-node__title">
18
+ {{ props[replaceFields.title] }}
19
+ </span>
20
+ </template>
21
+ <template slot="custom" slot-scope="{ scopedSlots }">
22
+ <a-icon :type="scopedSlots.iconName"></a-icon>
23
+ </template>
24
+ </a-tree>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ export default {
30
+ name: 'ele-tree',
31
+ props: {
32
+ treeData: {
33
+ type: Array,
34
+ default: () => []
35
+ },
36
+ showLine: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ switcherIcon: {
41
+ type: String
42
+ },
43
+ checkable: {
44
+ type: Boolean,
45
+ default: false
46
+ },
47
+ replaceFields: {
48
+ type: Object,
49
+ default: () => ({
50
+ title: 'title',
51
+ key: 'id',
52
+ children: 'children'
53
+ })
54
+ },
55
+ defaultExpandedKeys: {
56
+ type: Array
57
+ },
58
+ defaultSelectedKeys: {
59
+ type: Array
60
+ },
61
+ showIcon: {
62
+ type: Boolean,
63
+ default: true
64
+ }
65
+ },
66
+ data () {
67
+ return {}
68
+ },
69
+ computed: {
70
+ innerTreeData () {
71
+ return this.treeData
72
+ }
73
+ },
74
+ methods: {
75
+ checkTreeNode (checkedKeys, e) {
76
+ const { checkedNodes } = e
77
+ const nodeDatas = checkedNodes.map(item => item.data.props.dataRef)
78
+ this.$emit('check', checkedKeys, nodeDatas)
79
+ },
80
+ refreshTreeStatus (props = {}) {},
81
+ selectTreeNode (selectedKeys, e) {
82
+ this.$emit('select', selectedKeys, e)
83
+ }
84
+ }
85
+ }
86
+ </script>
87
+
88
+ <style lang="scss" scoped>
89
+ .g-tree__wrapper {
90
+ overflow: hidden;
91
+ ::v-deep .ant-tree {
92
+ .ant-tree-node-content-wrapper {
93
+ text-overflow: ellipsis;
94
+ overflow: hidden;
95
+ white-space: nowrap;
96
+ }
97
+ .ant-tree-node-selected {
98
+ color: #fff;
99
+ }
100
+ }
101
+ }
102
102
  </style>
@@ -1,5 +1,5 @@
1
- import EleTreeSelect from './src/index.vue'
2
-
3
- EleTreeSelect.install = Vue => Vue.component(EleTreeSelect.name, EleTreeSelect)
4
-
1
+ import EleTreeSelect from './src/index.vue'
2
+
3
+ EleTreeSelect.install = Vue => Vue.component(EleTreeSelect.name, EleTreeSelect)
4
+
5
5
  export default EleTreeSelect
@@ -1,143 +1,143 @@
1
- <template>
2
- <div class="ele__tree-select">
3
- <a-tree-select
4
- :value="value"
5
- @change="onChange"
6
- :multiple="multiple"
7
- :disabled="disabled"
8
- :defaultValue="defaultValue"
9
- :replaceFields="replaceFields"
10
- :tree-data="dataSource">
11
- </a-tree-select>
12
- </div>
13
- </template>
14
-
15
- <script>
16
- import { net, route } from '@idooel/shared'
17
- import { parseFieldMap, CONTEXT } from '../../utils'
18
- export default {
19
- name: 'ele-tree-select',
20
- model: {
21
- prop: 'value',
22
- event: 'change'
23
- },
24
- inject: {
25
- [CONTEXT]: {
26
- default: () => (() => {})
27
- }
28
- },
29
- props: {
30
- disabled: {
31
- type: Boolean,
32
- default: false
33
- },
34
- value: {
35
- type: [String, Array]
36
- },
37
- url: {
38
- type: String,
39
- default: ''
40
- },
41
- requestType: {
42
- type: String,
43
- default: 'GET'
44
- },
45
- params: {
46
- type: Object,
47
- default: () => {
48
- return {}
49
- }
50
- },
51
- fieldMap: {
52
- type: Object,
53
- default: () => {
54
- return {}
55
- }
56
- },
57
- replaceFields: {
58
- type: Object,
59
- default: () => {
60
- return {
61
- children: 'children',
62
- title: 'title',
63
- key: 'key',
64
- value: 'value'
65
- }
66
- }
67
- },
68
- treeData: {
69
- type: Array,
70
- default: () => {
71
- return []
72
- }
73
- },
74
- multiple: {
75
- type: Boolean,
76
- default: false
77
- },
78
- picks: {
79
- type: Array,
80
- default: () => {
81
- return []
82
- }
83
- },
84
- defaultValue: {
85
- type: Array,
86
- default: () => []
87
- }
88
- },
89
- data() {
90
- return {
91
- innerDataSource: []
92
- }
93
- },
94
- computed: {
95
- contextData () {
96
- return this[CONTEXT].call(this)
97
- },
98
- dataSource () {
99
- return this.url ? this.innerDataSource : this.treeData
100
- }
101
- },
102
- methods: {
103
- onChange (value, label, extra) {
104
- this.$emit('change', value)
105
- },
106
- assignKeyFormTreeData (dataSource = []) {
107
- return dataSource.map(nodeData => {
108
- const { children } = nodeData
109
- children && this.assignKeyFormTreeData(children)
110
- if (!nodeData.key) {
111
- nodeData.key = nodeData.id
112
- nodeData.value = nodeData.id
113
- }
114
- return nodeData
115
- })
116
- },
117
- requestData () {
118
- const { exposed = {} } = this.contextData
119
- const { getFieldsValue, route } = exposed
120
- const formModel = getFieldsValue && getFieldsValue()
121
- const ctx = {
122
- ...formModel,
123
- route
124
- }
125
- net[this.requestType.toLowerCase()](this.url, { ...this.params, ...parseFieldMap(this.fieldMap, ctx) }).then(resp => {
126
- const { data, code } = resp
127
- if (code == 2000) {
128
- this.innerDataSource = this.assignKeyFormTreeData(data)
129
- }
130
- })
131
- }
132
- },
133
- mounted() {
134
- this.$nextTick(() => {
135
- this.url && this.requestData()
136
- })
137
- }
138
- }
139
- </script>
140
-
141
- <style lang="scss" scoped>
142
-
1
+ <template>
2
+ <div class="ele__tree-select">
3
+ <a-tree-select
4
+ :value="value"
5
+ @change="onChange"
6
+ :multiple="multiple"
7
+ :disabled="disabled"
8
+ :defaultValue="defaultValue"
9
+ :replaceFields="replaceFields"
10
+ :tree-data="dataSource">
11
+ </a-tree-select>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+ import { net, route } from '@idooel/shared'
17
+ import { parseFieldMap, CONTEXT } from '../../utils'
18
+ export default {
19
+ name: 'ele-tree-select',
20
+ model: {
21
+ prop: 'value',
22
+ event: 'change'
23
+ },
24
+ inject: {
25
+ [CONTEXT]: {
26
+ default: () => (() => {})
27
+ }
28
+ },
29
+ props: {
30
+ disabled: {
31
+ type: Boolean,
32
+ default: false
33
+ },
34
+ value: {
35
+ type: [String, Array]
36
+ },
37
+ url: {
38
+ type: String,
39
+ default: ''
40
+ },
41
+ requestType: {
42
+ type: String,
43
+ default: 'GET'
44
+ },
45
+ params: {
46
+ type: Object,
47
+ default: () => {
48
+ return {}
49
+ }
50
+ },
51
+ fieldMap: {
52
+ type: Object,
53
+ default: () => {
54
+ return {}
55
+ }
56
+ },
57
+ replaceFields: {
58
+ type: Object,
59
+ default: () => {
60
+ return {
61
+ children: 'children',
62
+ title: 'title',
63
+ key: 'key',
64
+ value: 'value'
65
+ }
66
+ }
67
+ },
68
+ treeData: {
69
+ type: Array,
70
+ default: () => {
71
+ return []
72
+ }
73
+ },
74
+ multiple: {
75
+ type: Boolean,
76
+ default: false
77
+ },
78
+ picks: {
79
+ type: Array,
80
+ default: () => {
81
+ return []
82
+ }
83
+ },
84
+ defaultValue: {
85
+ type: Array,
86
+ default: () => []
87
+ }
88
+ },
89
+ data() {
90
+ return {
91
+ innerDataSource: []
92
+ }
93
+ },
94
+ computed: {
95
+ contextData () {
96
+ return this[CONTEXT].call(this)
97
+ },
98
+ dataSource () {
99
+ return this.url ? this.innerDataSource : this.treeData
100
+ }
101
+ },
102
+ methods: {
103
+ onChange (value, label, extra) {
104
+ this.$emit('change', value)
105
+ },
106
+ assignKeyFormTreeData (dataSource = []) {
107
+ return dataSource.map(nodeData => {
108
+ const { children } = nodeData
109
+ children && this.assignKeyFormTreeData(children)
110
+ if (!nodeData.key) {
111
+ nodeData.key = nodeData.id
112
+ nodeData.value = nodeData.id
113
+ }
114
+ return nodeData
115
+ })
116
+ },
117
+ requestData () {
118
+ const { exposed = {} } = this.contextData
119
+ const { getFieldsValue, route } = exposed
120
+ const formModel = getFieldsValue && getFieldsValue()
121
+ const ctx = {
122
+ ...formModel,
123
+ route
124
+ }
125
+ net[this.requestType.toLowerCase()](this.url, { ...this.params, ...parseFieldMap(this.fieldMap, ctx) }).then(resp => {
126
+ const { data, code } = resp
127
+ if (code == 2000) {
128
+ this.innerDataSource = this.assignKeyFormTreeData(data)
129
+ }
130
+ })
131
+ }
132
+ },
133
+ mounted() {
134
+ this.$nextTick(() => {
135
+ this.url && this.requestData()
136
+ })
137
+ }
138
+ }
139
+ </script>
140
+
141
+ <style lang="scss" scoped>
142
+
143
143
  </style>