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

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 +3622 -1592
  3. package/dist/@idooel/components.umd.js +3676 -1647
  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 +964 -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,224 +1,224 @@
1
- <template>
2
- <div class="ele-step-model__wrapper">
3
- <div class="ele-step-model__step--wrapper">
4
- <a-steps class="ele-steps" :current="current" size="small">
5
- <a-step v-for="step in elements" :title="step.title" :key="step.key" />
6
- </a-steps>
7
- </div>
8
- <div class="ele-step-model__content--wrapper">
9
- <template v-for="name in scopedSlotsNames">
10
- <div :key="name" v-if="currentSlotName == name" :class="['ele-step-model__slot', `ele-step-model__slot--${name}`]">
11
- <slot :name="name"></slot>
12
- </div>
13
- </template>
14
- </div>
15
- <div class="ele-step-model__footer--wrapper">
16
- <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
17
- </div>
18
- </div>
19
- </template>
20
-
21
- <script>
22
- import { BUILT_IN_EVENT_NAMES, CONTEXT } from '../../../utils'
23
- import { parse } from '@idooel/expression'
24
- import { type } from '@idooel/shared'
25
- export default {
26
- name: 'ele-step-model',
27
- props: {
28
- stepMeta: {
29
- type: Object,
30
- default: () => ({})
31
- },
32
- footerMeta: {
33
- type: Object,
34
- default: () => ({})
35
- }
36
- },
37
- data() {
38
- return {
39
- current: 0,
40
- currentSlotComponentRef: null,
41
- innerFooterElements: []
42
- }
43
- },
44
- provide() {
45
- return {
46
- [CONTEXT]: () => {
47
- return {
48
- ...this.expressionData
49
- }
50
- }
51
- }
52
- },
53
- computed: {
54
- routeMetaDisabled () {
55
- return this.executeExpression(this.$route.meta.disabled)
56
- },
57
- expressionData () {
58
- return {
59
- current: this.current,
60
- _route: this.$route.query,
61
- _routeMeta: this.$route.meta
62
- }
63
- },
64
- currentSlotName () {
65
- return this.scopedSlotsNames[this.current]
66
- },
67
- footerElements () {
68
- return this.innerFooterElements
69
- },
70
- assignAttrForEvents () {
71
- const events = this.footerElements.reduce((ret, ele) => {
72
- ret[ele.eventName] = (e) => {
73
- this.evalShowExpressionForFooterElements()
74
- this.$emit(ele.eventName || 'click', { ...e, exposed: this.exposedMethods })
75
- }
76
- return ret
77
- }, {})
78
- return {
79
- ...this.$listeners,
80
- ...events,
81
- [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],
82
- [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS],
83
- [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT]
84
- }
85
- },
86
- activeIndex () {
87
- const { activeIndex } = this.stepMeta
88
- return activeIndex
89
- },
90
- elements () {
91
- const { elements } = this.stepMeta
92
- return elements
93
- },
94
- scopedSlotsNames () {
95
- const slotNames = this.elements.map(item => item.key)
96
- return slotNames
97
- },
98
- exposedMethods () {
99
- return {
100
- slotRef: this.currentSlotComponentRef,
101
- setCurrentStep: this.setCurrentStep,
102
- next: this.nextStep,
103
- prev: this.prevStep,
104
- current: this.current
105
- }
106
- }
107
- },
108
- watch: {
109
- activeIndex: {
110
- handler (idx) {
111
- this.current = idx
112
- },
113
- immediate: true
114
- },
115
- current: {
116
- handler () {
117
- this.$nextTick(() => {
118
- this.currentSlotComponentRef = this.getCurrentSlotComponentRef()
119
- })
120
- },
121
- immediate: true
122
- }
123
- },
124
- created () {
125
- const { elements } = this.footerMeta
126
- this.innerFooterElements = elements.call(this)
127
- this.evalShowExpressionForFooterElements()
128
- },
129
- methods: {
130
- executeExpression (expression) {
131
- if (type.isBool(expression)) return expression
132
- if (type.isEmpty(expression)) return false
133
- return parse(expression, { ...this.expressionData })
134
- },
135
- evalShowExpressionForFooterElements () {
136
- this.innerFooterElements = this.innerFooterElements.map(element => {
137
- const { show = true, key, eventName } = element
138
- if(key == BUILT_IN_EVENT_NAMES.SUBMIT || eventName == BUILT_IN_EVENT_NAMES.SUBMIT) {
139
- // built in submit button should according to the route meta disabled
140
- this.$set(element, '_show', this.executeExpression(show, this.expressionData) && !this.routeMetaDisabled)
141
- return element
142
- }
143
- show && this.$set(element, '_show', this.executeExpression(show, this.expressionData))
144
- return element
145
- })
146
- },
147
- getCurrentSlotComponentRef () {
148
- const includeMetaCmp = this.$children.find(child => child.meta)
149
- if (!includeMetaCmp) return null
150
- const { $children: components } = includeMetaCmp
151
- const target = components.find(cmp => cmp.$options._componentTag === 'ele-tpl')
152
- return target.getModel ? target.getModel() : null
153
- },
154
- setCurrentStep (index) {
155
- this.current = index
156
- this.evalShowExpressionForFooterElements()
157
- },
158
- nextStep () {
159
- if (this.current >= this.elements.length - 1) return
160
- this.current ++
161
- this.evalShowExpressionForFooterElements()
162
- },
163
- prevStep () {
164
- if (this.current <= 0) return
165
- this.current --
166
- this.evalShowExpressionForFooterElements()
167
- },
168
- [BUILT_IN_EVENT_NAMES.NEXT] (props) {
169
- this.$emit(BUILT_IN_EVENT_NAMES.NEXT, { ...props, exposed: { ...this.exposedMethods } })
170
- },
171
- [BUILT_IN_EVENT_NAMES.PREVIOUS] (props) {
172
- this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, { ...props, exposed: { ...this.exposedMethods } })
173
- },
174
- [BUILT_IN_EVENT_NAMES.SUBMIT] (props) {
175
- const currentComponent = this.getCurrentSlotComponentRef() || {}
176
- const hasSubmitMethod = currentComponent.hasOwnProperty(BUILT_IN_EVENT_NAMES.SUBMIT)
177
- hasSubmitMethod && currentComponent[BUILT_IN_EVENT_NAMES.SUBMIT]()
178
- this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, exposed: { ...this.exposedMethods } })
179
- }
180
- }
181
- }
182
- </script>
183
-
184
- <style lang="scss" scoped>
185
- .ele-step-model__wrapper {
186
- width: 100%;
187
- height: 100vh;
188
- position: relative;
189
- .ele-step-model__step--wrapper {
190
- width: 100%;
191
- height: 64px;
192
- padding: 16px;
193
- display: flex;
194
- flex-direction: row;
195
- align-items: center;
196
- background: #fff;
197
- .ele-steps {
198
- .ant-steps-item {
199
- text-align: left;
200
- }
201
- }
202
- }
203
- .ele-step-model__content--wrapper {
204
- width: 100%;
205
- width: 100%;
206
- margin-top: 16px;
207
- margin-bottom: 16px;
208
- height: calc(100vh - 64px - 64px - 16px - 16px);
209
- overflow: auto;
210
- }
211
- .ele-step-model__footer--wrapper {
212
- width: 100%;
213
- height: 64px;
214
- background: #fff;
215
- position: absolute;
216
- bottom: 0;
217
- display: flex;
218
- flex-direction: row;
219
- align-items: center;
220
- justify-content: end;
221
- }
222
- }
223
- </style>import meta from '@/views/tree-table-page/meta'import meta from '@/views/tree-table-page/meta'
224
-
1
+ <template>
2
+ <div class="ele-step-model__wrapper">
3
+ <div class="ele-step-model__step--wrapper">
4
+ <a-steps class="ele-steps" :current="current" size="small">
5
+ <a-step v-for="step in elements" :title="step.title" :key="step.key" />
6
+ </a-steps>
7
+ </div>
8
+ <div class="ele-step-model__content--wrapper">
9
+ <template v-for="name in scopedSlotsNames">
10
+ <div :key="name" v-if="currentSlotName == name" :class="['ele-step-model__slot', `ele-step-model__slot--${name}`]">
11
+ <slot :name="name"></slot>
12
+ </div>
13
+ </template>
14
+ </div>
15
+ <div class="ele-step-model__footer--wrapper">
16
+ <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+ import { BUILT_IN_EVENT_NAMES, CONTEXT } from '../../../utils'
23
+ import { parse } from '@idooel/expression'
24
+ import { type } from '@idooel/shared'
25
+ export default {
26
+ name: 'ele-step-model',
27
+ props: {
28
+ stepMeta: {
29
+ type: Object,
30
+ default: () => ({})
31
+ },
32
+ footerMeta: {
33
+ type: Object,
34
+ default: () => ({})
35
+ }
36
+ },
37
+ data() {
38
+ return {
39
+ current: 0,
40
+ currentSlotComponentRef: null,
41
+ innerFooterElements: []
42
+ }
43
+ },
44
+ provide() {
45
+ return {
46
+ [CONTEXT]: () => {
47
+ return {
48
+ ...this.expressionData
49
+ }
50
+ }
51
+ }
52
+ },
53
+ computed: {
54
+ routeMetaDisabled () {
55
+ return this.executeExpression(this.$route.meta.disabled)
56
+ },
57
+ expressionData () {
58
+ return {
59
+ current: this.current,
60
+ _route: this.$route.query,
61
+ _routeMeta: this.$route.meta
62
+ }
63
+ },
64
+ currentSlotName () {
65
+ return this.scopedSlotsNames[this.current]
66
+ },
67
+ footerElements () {
68
+ return this.innerFooterElements
69
+ },
70
+ assignAttrForEvents () {
71
+ const events = this.footerElements.reduce((ret, ele) => {
72
+ ret[ele.eventName] = (e) => {
73
+ this.evalShowExpressionForFooterElements()
74
+ this.$emit(ele.eventName || 'click', { ...e, exposed: this.exposedMethods })
75
+ }
76
+ return ret
77
+ }, {})
78
+ return {
79
+ ...this.$listeners,
80
+ ...events,
81
+ [BUILT_IN_EVENT_NAMES.NEXT]: this[BUILT_IN_EVENT_NAMES.NEXT],
82
+ [BUILT_IN_EVENT_NAMES.PREVIOUS]: this[BUILT_IN_EVENT_NAMES.PREVIOUS],
83
+ [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT]
84
+ }
85
+ },
86
+ activeIndex () {
87
+ const { activeIndex } = this.stepMeta
88
+ return activeIndex
89
+ },
90
+ elements () {
91
+ const { elements } = this.stepMeta
92
+ return elements
93
+ },
94
+ scopedSlotsNames () {
95
+ const slotNames = this.elements.map(item => item.key)
96
+ return slotNames
97
+ },
98
+ exposedMethods () {
99
+ return {
100
+ slotRef: this.currentSlotComponentRef,
101
+ setCurrentStep: this.setCurrentStep,
102
+ next: this.nextStep,
103
+ prev: this.prevStep,
104
+ current: this.current
105
+ }
106
+ }
107
+ },
108
+ watch: {
109
+ activeIndex: {
110
+ handler (idx) {
111
+ this.current = idx
112
+ },
113
+ immediate: true
114
+ },
115
+ current: {
116
+ handler () {
117
+ this.$nextTick(() => {
118
+ this.currentSlotComponentRef = this.getCurrentSlotComponentRef()
119
+ })
120
+ },
121
+ immediate: true
122
+ }
123
+ },
124
+ created () {
125
+ const { elements } = this.footerMeta
126
+ this.innerFooterElements = elements.call(this)
127
+ this.evalShowExpressionForFooterElements()
128
+ },
129
+ methods: {
130
+ executeExpression (expression) {
131
+ if (type.isBool(expression)) return expression
132
+ if (type.isEmpty(expression)) return false
133
+ return parse(expression, { ...this.expressionData })
134
+ },
135
+ evalShowExpressionForFooterElements () {
136
+ this.innerFooterElements = this.innerFooterElements.map(element => {
137
+ const { show = true, key, eventName } = element
138
+ if(key == BUILT_IN_EVENT_NAMES.SUBMIT || eventName == BUILT_IN_EVENT_NAMES.SUBMIT) {
139
+ // built in submit button should according to the route meta disabled
140
+ this.$set(element, '_show', this.executeExpression(show, this.expressionData) && !this.routeMetaDisabled)
141
+ return element
142
+ }
143
+ show && this.$set(element, '_show', this.executeExpression(show, this.expressionData))
144
+ return element
145
+ })
146
+ },
147
+ getCurrentSlotComponentRef () {
148
+ const includeMetaCmp = this.$children.find(child => child.meta)
149
+ if (!includeMetaCmp) return null
150
+ const { $children: components } = includeMetaCmp
151
+ const target = components.find(cmp => cmp.$options._componentTag === 'ele-tpl')
152
+ return target.getModel ? target.getModel() : null
153
+ },
154
+ setCurrentStep (index) {
155
+ this.current = index
156
+ this.evalShowExpressionForFooterElements()
157
+ },
158
+ nextStep () {
159
+ if (this.current >= this.elements.length - 1) return
160
+ this.current ++
161
+ this.evalShowExpressionForFooterElements()
162
+ },
163
+ prevStep () {
164
+ if (this.current <= 0) return
165
+ this.current --
166
+ this.evalShowExpressionForFooterElements()
167
+ },
168
+ [BUILT_IN_EVENT_NAMES.NEXT] (props) {
169
+ this.$emit(BUILT_IN_EVENT_NAMES.NEXT, { ...props, exposed: { ...this.exposedMethods } })
170
+ },
171
+ [BUILT_IN_EVENT_NAMES.PREVIOUS] (props) {
172
+ this.$emit(BUILT_IN_EVENT_NAMES.PREVIOUS, { ...props, exposed: { ...this.exposedMethods } })
173
+ },
174
+ [BUILT_IN_EVENT_NAMES.SUBMIT] (props) {
175
+ const currentComponent = this.getCurrentSlotComponentRef() || {}
176
+ const hasSubmitMethod = currentComponent.hasOwnProperty(BUILT_IN_EVENT_NAMES.SUBMIT)
177
+ hasSubmitMethod && currentComponent[BUILT_IN_EVENT_NAMES.SUBMIT]()
178
+ this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, exposed: { ...this.exposedMethods } })
179
+ }
180
+ }
181
+ }
182
+ </script>
183
+
184
+ <style lang="scss" scoped>
185
+ .ele-step-model__wrapper {
186
+ width: 100%;
187
+ height: 100vh;
188
+ position: relative;
189
+ .ele-step-model__step--wrapper {
190
+ width: 100%;
191
+ height: 64px;
192
+ padding: 16px;
193
+ display: flex;
194
+ flex-direction: row;
195
+ align-items: center;
196
+ background: #fff;
197
+ .ele-steps {
198
+ .ant-steps-item {
199
+ text-align: left;
200
+ }
201
+ }
202
+ }
203
+ .ele-step-model__content--wrapper {
204
+ width: 100%;
205
+ width: 100%;
206
+ margin-top: 16px;
207
+ margin-bottom: 16px;
208
+ height: calc(100vh - 64px - 64px - 16px - 16px);
209
+ overflow: auto;
210
+ }
211
+ .ele-step-model__footer--wrapper {
212
+ width: 100%;
213
+ height: 64px;
214
+ background: #fff;
215
+ position: absolute;
216
+ bottom: 0;
217
+ display: flex;
218
+ flex-direction: row;
219
+ align-items: center;
220
+ justify-content: end;
221
+ }
222
+ }
223
+ </style>import meta from '@/views/tree-table-page/meta'import meta from '@/views/tree-table-page/meta'
224
+
File without changes
@@ -1,5 +1,5 @@
1
- import EleTreeTableModel from './src/index.vue'
2
-
3
- EleTreeTableModel.install = Vue => Vue.component(EleTreeTableModel.name, EleTreeTableModel)
4
-
1
+ import EleTreeTableModel from './src/index.vue'
2
+
3
+ EleTreeTableModel.install = Vue => Vue.component(EleTreeTableModel.name, EleTreeTableModel)
4
+
5
5
  export default EleTreeTableModel