@idooel/components 0.0.1-beta.99 → 0.0.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 (105) hide show
  1. package/README.md +98 -98
  2. package/dist/@idooel/components.esm.js +256 -159
  3. package/dist/@idooel/components.umd.js +256 -159
  4. package/jsconfig.json +7 -7
  5. package/package.json +50 -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 +139 -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 +120 -111
  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 -223
  31. package/packages/composite-components/modal-img-crop/index.js +4 -4
  32. package/packages/composite-components/modal-img-crop/src/index.vue +298 -289
  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 +237 -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 -168
  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 +318 -302
  48. package/packages/icon/index.js +4 -4
  49. package/packages/icon/src/index.vue +31 -31
  50. package/packages/index.js +153 -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/modal/index.js +4 -4
  58. package/packages/modal/src/index.vue +184 -184
  59. package/packages/models/form-group-model/index.js +4 -4
  60. package/packages/models/form-group-model/src/index.vue +273 -273
  61. package/packages/models/form-model/index.js +4 -4
  62. package/packages/models/form-model/src/index.vue +232 -221
  63. package/packages/models/step-model/index.js +4 -4
  64. package/packages/models/step-model/src/index.vue +224 -224
  65. package/packages/models/tree-table-model/index.js +4 -4
  66. package/packages/models/tree-table-model/src/index.vue +689 -681
  67. package/packages/radio/index.js +4 -4
  68. package/packages/radio/src/index.vue +56 -56
  69. package/packages/select/index.js +4 -4
  70. package/packages/select/src/index.vue +105 -105
  71. package/packages/select-entity/index.js +4 -4
  72. package/packages/select-entity/src/index.vue +119 -119
  73. package/packages/table/index.js +4 -4
  74. package/packages/table/src/action.vue +172 -172
  75. package/packages/table/src/index.vue +289 -335
  76. package/packages/tabs/index.js +4 -4
  77. package/packages/tabs/src/index.vue +55 -55
  78. package/packages/text/index.js +4 -4
  79. package/packages/text/src/index.vue +47 -47
  80. package/packages/text-editor/index.js +4 -4
  81. package/packages/text-editor/src/index.vue +72 -72
  82. package/packages/textarea/index.js +4 -4
  83. package/packages/textarea/src/index.vue +57 -57
  84. package/packages/theme/form.scss +21 -21
  85. package/packages/theme/index.scss +42 -42
  86. package/packages/theme/overrid.scss +7 -7
  87. package/packages/theme/styleClass.scss +2 -2
  88. package/packages/theme/variables.scss +55 -55
  89. package/packages/timeline/index.js +4 -4
  90. package/packages/timeline/src/index.vue +257 -257
  91. package/packages/tpl/index.js +4 -4
  92. package/packages/tpl/src/index.vue +55 -55
  93. package/packages/tree/index.js +4 -4
  94. package/packages/tree/src/TreeNode.vue +29 -29
  95. package/packages/tree/src/index.vue +101 -101
  96. package/packages/tree-select/index.js +4 -4
  97. package/packages/tree-select/src/index.vue +142 -142
  98. package/packages/upload/index.js +4 -4
  99. package/packages/upload/src/index.vue +444 -444
  100. package/packages/utils/index.js +62 -62
  101. package/scripts/rollup.config.js +42 -42
  102. package/scripts/rollup.esm.config.js +11 -11
  103. package/scripts/rollup.umd.config.js +14 -14
  104. package/dist/@idooel/components.esm.js.map +0 -1
  105. package/dist/@idooel/components.umd.js.map +0 -1
@@ -1,222 +1,233 @@
1
- <template>
2
- <div class="form__model--wrapper">
3
- <div class="form-model__title" v-if="title">
4
- {{ title }}
5
- </div>
6
- <div class="form-model__content">
7
- <ele-alert style="margin-bottom: 16px;" v-if="alertMeta" v-bind="alertMeta"></ele-alert>
8
- <ele-form :ref="formRef" @change="onChangeFormStatus($event)" :elements="elements" :disabled="globalDisabled"></ele-form>
9
- </div>
10
- <div class="form-model__footer" v-if="footerMeta">
11
- <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
12
- </div>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- import { BUILT_IN_EVENT_NAMES, parseFieldMap, RESERVE_EVENT_NAMES, PAGE_STATUS, CONTEXT, BUILT_IN_METHODS_NAMES } from '../../../utils'
18
- import { v4 as uuidv4 } from 'uuid'
19
- import { net, type } from '@idooel/shared'
20
- import { parse } from '@idooel/expression'
21
- export default {
22
- name: 'ele-form-model',
23
- props: {
24
- disabled: {
25
- type: [Boolean, String],
26
- default: '_routeMeta.disabled'
27
- },
28
- title: {
29
- type: String
30
- },
31
- formMeta: {
32
- type: Object
33
- },
34
- footerMeta: {
35
- type: Object
36
- }
37
- },
38
- data() {
39
- return {}
40
- },
41
- provide () {
42
- return {
43
- [CONTEXT]: () => {
44
- return {
45
- exposed: this.exposed
46
- }
47
- }
48
- }
49
- },
50
- computed: {
51
- globalDisabled () {
52
- return this.executeExpression(this.disabled)
53
- },
54
- formRef () {
55
- return uuidv4()
56
- },
57
- exposed () {
58
- return {
59
- setFieldsValue: this.setFieldsValue,
60
- validateFields: this.validateFields,
61
- getFieldsValue: this.getFieldsValue,
62
- route: this.$route,
63
- [BUILT_IN_METHODS_NAMES.SUBMIT_FORM]: this.submitRequestTrigger
64
- }
65
- },
66
- assignAttrForEvents () {
67
- const events = this.footerElements.reduce((ret, ele) => {
68
- ret[ele.eventName] = (e) => {
69
- this.$emit(ele.eventName || 'click', { ...e, formModel: this.formModels(), exposed: this.exposed })
70
- }
71
- return ret
72
- }, {})
73
- return {
74
- ...this.$listeners,
75
- ...events,
76
- [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
77
- [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]
78
- }
79
- },
80
- elements () {
81
- const { elements } = this.formMeta
82
- return elements
83
- },
84
- preRequest () {
85
- const { preRequest = {} } = this.formMeta
86
- return preRequest
87
- },
88
- infoRequest () {
89
- const { infoRequest = {} } = this.formMeta
90
- return infoRequest
91
- },
92
- alertMeta () {
93
- const { alert = {} } = this.formMeta
94
- return type.isEmpty(alert) ? null : alert
95
- },
96
- submitRequest () {
97
- const { submitRequest = {} } = this.formMeta
98
- return submitRequest
99
- },
100
- footerElements () {
101
- const { elements } = this.footerMeta
102
- return elements.call(this)
103
- },
104
- expressionData () {
105
- return {
106
- _route: this.$route.query,
107
- _routeMeta: this.$route.meta
108
- }
109
- },
110
- routeMetaMode () {
111
- return this.$route.meta.mode
112
- }
113
- },
114
- methods: {
115
- onChangeFormStatus (props) {
116
- this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, { ...props })
117
- },
118
- formModels (fieldNames) {
119
- return this.$refs[this.formRef] ? this.$refs[this.formRef].getFieldsValue(fieldNames) : {}
120
- },
121
- executeExpression (expression, dataSource = {}) {
122
- if (type.isBool(expression)) return expression
123
- if (type.isEmpty(expression)) return false
124
- return parse(expression, { ...this.expressionData, ...this.formModels(), ...dataSource })
125
- },
126
- execFieldMap (fieldMap = {}, dataSource = {}) {
127
- const ret = parseFieldMap(fieldMap, { ...this.expressionData, ...dataSource})
128
- return ret
129
- },
130
- async submitRequestTrigger (props = {}) {
131
- const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest
132
- const currentUrl = this.executeExpressionForUrl(url)
133
- if (!currentUrl) return
134
- const ret = await net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels() }), ...this.formModels() }, { headers }).then(resp => {
135
- this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels(), ...resp.data || {} } })
136
- return resp.data
137
- })
138
- return ret
139
- },
140
- async infoRequestTrigger () {
141
- if (PAGE_STATUS.CREATE == this.routeMetaMode) return
142
- const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest
143
- const currentUrl = this.executeExpressionForUrl(url)
144
- if (!currentUrl) return
145
- net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {
146
- const { data = {} } = resp
147
- this.setFieldsValue(data)
148
- this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
149
- })
150
- },
151
- async preRequestTrigger () {
152
- const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest
153
- const currentUrl = this.executeExpressionForUrl(url)
154
- if (!currentUrl) return
155
- const { data } = await net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers })
156
- this.setFieldsValue(data)
157
- this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
158
- },
159
- executeExpressionForUrl (url) {
160
- return type.isApi(url) ? url : this.executeExpression(url)
161
- },
162
- setFieldsValue (props) {
163
- this.$refs[this.formRef].setFieldsValue(props)
164
- },
165
- getFieldsValue (fieldNames) {
166
- return this.$refs[this.formRef].getFieldsValue(fieldNames)
167
- },
168
- validateFields () {
169
- return this.$refs[this.formRef].validateFields()
170
- },
171
- [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {
172
- if (this.globalDisabled) return
173
- const status = this.$refs[this.formRef].validateFields()
174
- if (status) {
175
- //TODO fieldMap
176
- return this.submitRequestTrigger(props)
177
- } else {
178
- return false
179
- }
180
- },
181
- [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {
182
- this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })
183
- }
184
- },
185
- async mounted() {
186
- await this.preRequestTrigger()
187
- await this.infoRequestTrigger()
188
- this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { exposed: this.exposed })
189
- }
190
- }
191
- </script>
192
-
193
- <style lang="scss" scoped>
194
- .form__model--wrapper {
195
- width: 100%;
196
- height: 100%;
197
- overflow: auto;
198
- background: #fff;
199
- .form-model__title {
200
- height: 56px;
201
- padding: 0 16px;
202
- display: flex;
203
- flex-direction: row;
204
- align-items: center;
205
- border-bottom: 1px solid var(--idooel-form-title-border-color);
206
- }
207
- .form-model__content {
208
- padding: 16px;
209
- }
210
- .form-model__footer {
211
- /* width: 100%; */
212
- height: 64px;
213
- position: fixed;
214
- bottom: 0;
215
- display: flex;
216
- float: right;
217
- flex-direction: row;
218
- align-items: center;
219
- justify-content: end;
220
- }
221
- }
1
+ <template>
2
+ <div class="form__model--wrapper">
3
+ <div class="form-model__title" v-if="title">
4
+ {{ title }}
5
+ </div>
6
+ <div class="form-model__content">
7
+ <ele-alert style="margin-bottom: 16px;" v-if="alertMeta" v-bind="alertMeta"></ele-alert>
8
+ <ele-form :ref="formRef" @change="onChangeFormStatus($event)" :elements="elements" :disabled="globalDisabled"></ele-form>
9
+ </div>
10
+ <div class="form-model__footer" v-if="footerMeta">
11
+ <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
12
+ </div>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import { BUILT_IN_EVENT_NAMES, parseFieldMap, RESERVE_EVENT_NAMES, PAGE_STATUS, CONTEXT, BUILT_IN_METHODS_NAMES } from '../../../utils'
18
+ import { v4 as uuidv4 } from 'uuid'
19
+ import { net, type } from '@idooel/shared'
20
+ import { parse } from '@idooel/expression'
21
+ export default {
22
+ name: 'ele-form-model',
23
+ props: {
24
+ disabled: {
25
+ type: [Boolean, String],
26
+ default: '_routeMeta.disabled'
27
+ },
28
+ title: {
29
+ type: String
30
+ },
31
+ formMeta: {
32
+ type: Object
33
+ },
34
+ footerMeta: {
35
+ type: Object
36
+ }
37
+ },
38
+ data() {
39
+ return {}
40
+ },
41
+ provide () {
42
+ return {
43
+ [CONTEXT]: () => {
44
+ return {
45
+ exposed: this.exposed
46
+ }
47
+ }
48
+ }
49
+ },
50
+ computed: {
51
+ globalDisabled () {
52
+ return this.executeExpression(this.disabled)
53
+ },
54
+ formRef () {
55
+ return uuidv4()
56
+ },
57
+ exposed () {
58
+ return {
59
+ setFieldsValue: this.setFieldsValue,
60
+ validateFields: this.validateFields,
61
+ getFieldsValue: this.getFieldsValue,
62
+ route: this.$route,
63
+ [BUILT_IN_METHODS_NAMES.SUBMIT_FORM]: this.submitRequestTrigger
64
+ }
65
+ },
66
+ assignAttrForEvents () {
67
+ const events = this.footerElements.reduce((ret, ele) => {
68
+ ret[ele.eventName] = (e) => {
69
+ this.$emit(ele.eventName || 'click', { ...e, formModel: this.formModels(), exposed: this.exposed })
70
+ }
71
+ return ret
72
+ }, {})
73
+ return {
74
+ ...this.$listeners,
75
+ ...events,
76
+ [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
77
+ [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL]
78
+ }
79
+ },
80
+ elements () {
81
+ const { elements } = this.formMeta
82
+ return elements
83
+ },
84
+ preRequest () {
85
+ const { preRequest = {} } = this.formMeta
86
+ return preRequest
87
+ },
88
+ infoRequest () {
89
+ const { infoRequest = {} } = this.formMeta
90
+ return infoRequest
91
+ },
92
+ alertMeta () {
93
+ const { alert = {} } = this.formMeta
94
+ return type.isEmpty(alert) ? null : alert
95
+ },
96
+ submitRequest () {
97
+ const { submitRequest = {} } = this.formMeta
98
+ return submitRequest
99
+ },
100
+ footerElements () {
101
+ const { elements } = this.footerMeta
102
+ return elements.call(this)
103
+ },
104
+ expressionData () {
105
+ return {
106
+ _route: this.$route.query,
107
+ _routeMeta: this.$route.meta
108
+ }
109
+ },
110
+ routeMetaMode () {
111
+ return this.$route.meta.mode
112
+ }
113
+ },
114
+ methods: {
115
+ collectDefaultValues () {
116
+ const ret = this.elements.reduce((ret, props) => {
117
+ const { name, defaultValue } = props
118
+ if (defaultValue) {
119
+ ret[name] = defaultValue
120
+ }
121
+ return ret
122
+ }, {})
123
+ return ret
124
+ },
125
+ onChangeFormStatus (props) {
126
+ this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, { ...props })
127
+ },
128
+ formModels (fieldNames) {
129
+ return this.$refs[this.formRef] ? this.$refs[this.formRef].getFieldsValue(fieldNames) : {}
130
+ },
131
+ executeExpression (expression, dataSource = {}) {
132
+ if (type.isBool(expression)) return expression
133
+ if (type.isEmpty(expression)) return false
134
+ return parse(expression, { ...this.expressionData, ...this.formModels(), ...dataSource })
135
+ },
136
+ execFieldMap (fieldMap = {}, dataSource = {}) {
137
+ const ret = parseFieldMap(fieldMap, { ...this.expressionData, ...dataSource})
138
+ return ret
139
+ },
140
+ async submitRequestTrigger (props = {}) {
141
+ const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest
142
+ const currentUrl = this.executeExpressionForUrl(url)
143
+ if (!currentUrl) return
144
+ const ret = await net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels() }), ...this.formModels() }, { headers }).then(resp => {
145
+ this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels(), ...resp.data || {} } })
146
+ return resp.data
147
+ })
148
+ return ret
149
+ },
150
+ async infoRequestTrigger () {
151
+ if (PAGE_STATUS.CREATE == this.routeMetaMode) return
152
+ const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest
153
+ const currentUrl = this.executeExpressionForUrl(url)
154
+ if (!currentUrl) return
155
+ net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {
156
+ const { data = {} } = resp
157
+ this.setFieldsValue(data)
158
+ this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
159
+ })
160
+ },
161
+ async preRequestTrigger () {
162
+ const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest
163
+ const currentUrl = this.executeExpressionForUrl(url)
164
+ if (!currentUrl) return
165
+ const { data } = await net[requestType.toLowerCase()](currentUrl, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers })
166
+ this.setFieldsValue(data)
167
+ this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
168
+ },
169
+ executeExpressionForUrl (url) {
170
+ return type.isApi(url) ? url : this.executeExpression(url)
171
+ },
172
+ setFieldsValue (props) {
173
+ this.$refs[this.formRef].setFieldsValue(props)
174
+ },
175
+ getFieldsValue (fieldNames) {
176
+ return this.$refs[this.formRef].getFieldsValue(fieldNames)
177
+ },
178
+ validateFields () {
179
+ return this.$refs[this.formRef].validateFields()
180
+ },
181
+ [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {
182
+ if (this.globalDisabled) return
183
+ const status = this.$refs[this.formRef].validateFields()
184
+ if (status) {
185
+ //TODO fieldMap
186
+ return this.submitRequestTrigger(props)
187
+ } else {
188
+ return false
189
+ }
190
+ },
191
+ [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {
192
+ this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })
193
+ }
194
+ },
195
+ async mounted() {
196
+ this.setFieldsValue(this.collectDefaultValues())
197
+ await this.preRequestTrigger()
198
+ await this.infoRequestTrigger()
199
+ this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { exposed: this.exposed })
200
+ }
201
+ }
202
+ </script>
203
+
204
+ <style lang="scss" scoped>
205
+ .form__model--wrapper {
206
+ width: 100%;
207
+ height: 100%;
208
+ overflow: auto;
209
+ background: #fff;
210
+ .form-model__title {
211
+ height: 56px;
212
+ padding: 0 16px;
213
+ display: flex;
214
+ flex-direction: row;
215
+ align-items: center;
216
+ border-bottom: 1px solid var(--idooel-form-title-border-color);
217
+ }
218
+ .form-model__content {
219
+ padding: 16px;
220
+ }
221
+ .form-model__footer {
222
+ /* width: 100%; */
223
+ height: 64px;
224
+ position: fixed;
225
+ bottom: 0;
226
+ display: flex;
227
+ float: right;
228
+ flex-direction: row;
229
+ align-items: center;
230
+ justify-content: end;
231
+ }
232
+ }
222
233
  </style>
@@ -1,5 +1,5 @@
1
- import EleStepModel from './src/index.vue'
2
-
3
- EleStepModel.install = Vue => Vue.component(EleStepModel.name, EleStepModel)
4
-
1
+ import EleStepModel from './src/index.vue'
2
+
3
+ EleStepModel.install = Vue => Vue.component(EleStepModel.name, EleStepModel)
4
+
5
5
  export default EleStepModel