@idooel/components 0.0.1-beta.21 → 0.0.1-beta.22

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 (74) hide show
  1. package/dist/@idooel/components.esm.js +954 -584
  2. package/dist/@idooel/components.umd.js +964 -592
  3. package/package.json +49 -46
  4. package/packages/alert/index.js +4 -4
  5. package/packages/alert/src/index.vue +45 -45
  6. package/packages/batch-export/index.js +4 -4
  7. package/packages/batch-export/src/index.vue +108 -106
  8. package/packages/button/index.js +4 -4
  9. package/packages/button/src/index.vue +54 -54
  10. package/packages/checkbox/index.js +4 -4
  11. package/packages/checkbox/src/index.vue +43 -43
  12. package/packages/composite-components/attachment/src/index.vue +14 -14
  13. package/packages/composite-components/button-group/index.js +4 -4
  14. package/packages/composite-components/button-group/src/index.vue +53 -45
  15. package/packages/composite-components/modal-import/index.js +4 -4
  16. package/packages/composite-components/modal-import/src/index.vue +27 -27
  17. package/packages/composite-components/search-area/index.js +4 -4
  18. package/packages/composite-components/search-area/src/index.vue +225 -225
  19. package/packages/composite-components/search-area/src/label.vue +35 -35
  20. package/packages/date/index.js +4 -4
  21. package/packages/date/src/index.vue +39 -39
  22. package/packages/date-range/index.js +4 -4
  23. package/packages/date-range/src/index.vue +47 -47
  24. package/packages/form/index.js +4 -4
  25. package/packages/form/src/index.vue +212 -212
  26. package/packages/form-group-model/index.js +4 -4
  27. package/packages/form-group-model/src/index.vue +273 -273
  28. package/packages/form-model/index.js +4 -4
  29. package/packages/form-model/src/index.vue +165 -165
  30. package/packages/icon/index.js +4 -4
  31. package/packages/icon/src/index.vue +31 -31
  32. package/packages/img-crop/index.js +5 -0
  33. package/packages/img-crop/src/index.vue +181 -0
  34. package/packages/index.js +89 -84
  35. package/packages/input/index.js +4 -4
  36. package/packages/input/src/index.vue +35 -35
  37. package/packages/input-number/index.js +4 -4
  38. package/packages/input-number/src/index.vue +23 -23
  39. package/packages/modal/index.js +4 -4
  40. package/packages/modal/src/index.vue +146 -141
  41. package/packages/radio/index.js +4 -4
  42. package/packages/radio/src/index.vue +51 -51
  43. package/packages/select/index.js +4 -4
  44. package/packages/select/src/index.vue +92 -92
  45. package/packages/select-entity/index.js +4 -4
  46. package/packages/select-entity/src/index.vue +113 -113
  47. package/packages/step-model/index.js +4 -4
  48. package/packages/step-model/src/index.vue +196 -173
  49. package/packages/table/index.js +4 -4
  50. package/packages/table/src/action.vue +131 -131
  51. package/packages/table/src/index.vue +157 -157
  52. package/packages/tabs/index.js +4 -4
  53. package/packages/tabs/src/index.vue +55 -54
  54. package/packages/text-editor/index.js +5 -0
  55. package/packages/text-editor/src/index.vue +73 -0
  56. package/packages/textarea/index.js +4 -4
  57. package/packages/textarea/src/index.vue +57 -57
  58. package/packages/theme/form.scss +21 -21
  59. package/packages/theme/index.scss +31 -27
  60. package/packages/theme/styleClass.scss +3 -0
  61. package/packages/theme/variables.scss +55 -55
  62. package/packages/tpl/index.js +4 -4
  63. package/packages/tpl/src/index.vue +55 -55
  64. package/packages/tree/index.js +4 -4
  65. package/packages/tree/src/TreeNode.vue +29 -29
  66. package/packages/tree/src/index.vue +101 -101
  67. package/packages/tree-table-model/index.js +4 -4
  68. package/packages/tree-table-model/src/index.vue +314 -314
  69. package/packages/upload/index.js +4 -4
  70. package/packages/upload/src/index.vue +348 -348
  71. package/packages/utils/index.js +23 -23
  72. package/scripts/rollup.config.js +35 -35
  73. package/scripts/rollup.esm.config.js +11 -11
  74. package/scripts/rollup.umd.config.js +14 -14
@@ -1,274 +1,274 @@
1
- <template>
2
- <div class="ele form-group-model__wrapper">
3
- <template v-for="(group, idx) in innerGroupMeta">
4
- <div
5
- class="form-group-model__from"
6
- v-if="!group.isGenTpl"
7
- :key="group.key || idx">
8
- <div class="form-group-model__form--title">
9
- <div>{{ group.title }}</div>
10
- <div class="form-group-model__form--buttons">
11
- <ele-button-group v-if="group.buttonGroupMeta" v-on="assignAttrForEvents" @delete="handleClickDelete($event, group, idx)" :data-source="group.buttonGroupMeta.elements.call(this)"></ele-button-group>
12
- </div>
13
- </div>
14
- <div class="form-group-model__form--content">
15
- <ele-form @change="onChangeFormStatus($event, group.key || idx)" :form-name="group.key || idx" :ref="group.key || `${formRefBase}__${idx}`" :elements="group.elements"></ele-form>
16
- </div>
17
- </div>
18
- </template>
19
- <div v-if="showFooterMeta" class="form-group-model__form--footer">
20
- <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
21
- </div>
22
- </div>
23
- </template>
24
-
25
- <script>
26
- import Form from '../../form/src/index.vue'
27
- import { BUILT_IN_EVENT_NAMES, RESERVE_EVENT_NAMES, parseFieldMap } from '../../utils'
28
- import { v4 as uuidv4 } from 'uuid'
29
- import { type, net } from '@idooel/shared'
30
- import EleButtonGroup from '../../composite-components/button-group/src/index.vue'
31
- export default {
32
- name: 'ele-form-group-model',
33
- components: {
34
- [Form.name]: Form,
35
- [EleButtonGroup.name]: EleButtonGroup
36
- },
37
- props: {
38
- mode: {
39
- type: String
40
- },
41
- fieldName: {
42
- type: String,
43
- default: 'formGroup'
44
- },
45
- groupMeta: {
46
- type: Function,
47
- default: () => []
48
- },
49
- footerMeta: {
50
- type: Object,
51
- default: () => {}
52
- },
53
- preRequest: {
54
- type: Object,
55
- default: () => {}
56
- },
57
- infoRequest: {
58
- type: Object,
59
- default: () => {}
60
- },
61
- submitRequest: {
62
- type: Object,
63
- default: () => {}
64
- }
65
- },
66
- data () {
67
- return {
68
- increaseCount: 1,
69
- innerGroupMeta: []
70
- }
71
- },
72
- watch: {
73
- readOnlyGroupMeta: {
74
- handler (meta) {
75
- this.innerGroupMeta = meta
76
- },
77
- immediate: true
78
- }
79
- },
80
- computed: {
81
- readOnlyGroupMeta () {
82
- return this.groupMeta.call(this)
83
- },
84
- showFooterMeta () {
85
- return !type.isEmpty(this.footerMeta)
86
- },
87
- formRefBase () {
88
- return uuidv4()
89
- },
90
- footerElements () {
91
- const { elements } = this.footerMeta
92
- return elements.call(this)
93
- },
94
- assignAttrForEvents () {
95
- const events = this.footerElements.reduce((ret, ele) => {
96
- ret[ele.eventName] = (e) => {
97
- this.$emit(ele.eventName || 'click', { ...e })
98
- }
99
- return ret
100
- }, {})
101
- return {
102
- ...this.$listeners,
103
- ...events,
104
- [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
105
- [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL],
106
- [BUILT_IN_EVENT_NAMES.INCREASE]: this[BUILT_IN_EVENT_NAMES.INCREASE]
107
- }
108
- },
109
- getFormRefs () {
110
- return this.innerGroupMeta.map((group, idx) => {
111
- if (!group.isGenTpl) {
112
- return this.$refs[group.key || `${this.formRefBase}__${idx}`]
113
- }
114
- return void 0
115
- }).filter(item => !!item).flat()
116
- },
117
- formModels () {
118
- if (this.mode === 'increase') {
119
- //TODO increase mode to return formModels
120
- return this.getFormRefs.map(form => {
121
- return form.getFieldsValue()
122
- })
123
- } else {
124
- return this.getFormRefs.map(form => {
125
- const { $vnode: { data: { ref } } } = form
126
- return {
127
- key: ref,
128
- value: form.getFieldsValue()
129
- }
130
- }).reduce((ret, props) => {
131
- ret[props.key] = props.value
132
- return ret
133
- }, {})
134
- }
135
- }
136
- },
137
- methods: {
138
- execFieldMap (fieldMap = {}, dataSource = {}) {
139
- const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})
140
- return ret
141
- },
142
- onChangeFormStatus (props, key) {
143
- this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, { key, ...props })
144
- },
145
- async infoRequestTrigger () {
146
- if (!this.infoRequest) return
147
- const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest
148
- if (!url) return
149
- net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {
150
- const { data = {} } = resp
151
- if (this.mode === 'increase') {
152
- this.renderIncreaseForm(data)
153
- }
154
- this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
155
- })
156
- },
157
- async preRequestTrigger () {
158
- if (!this.preRequest) return
159
- const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest
160
- if (!url) return
161
- net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers }).then(resp => {
162
- const { data = {} } = resp
163
- if (this.mode === 'increase') {
164
- this.renderIncreaseForm(data)
165
- }
166
- this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
167
- })
168
- },
169
- renderIncreaseForm (data = {}) {
170
- const formGroupValuesLength = data[this.fieldName].length
171
- const genTplTarget = this.readOnlyGroupMeta.find(item => item.isGenTpl)
172
- const notGenTplPoolLength = this.readOnlyGroupMeta.filter(item => !item.isGenTpl).length
173
- const genNum = formGroupValuesLength - notGenTplPoolLength
174
- new Array(genNum).fill().forEach(() => {
175
- const form = this.genForm(genTplTarget)
176
- this.innerGroupMeta.push(form)
177
- })
178
- const formGroupValues = data[this.fieldName]
179
- this.setFieldsValue(formGroupValues)
180
- },
181
- async submitRequestTrigger (props = {}) {
182
- const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest
183
- if (!url) return
184
- const ret = await net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), [this.fieldName]: this.formModels }, { headers }).then(resp => {
185
- this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels, ...resp.data || {} } })
186
- return resp.data
187
- })
188
- return ret
189
- },
190
- setFieldsValue (data = []) {
191
- this.getFormRefs.forEach((form, idx) => {
192
- form.setFieldsValue(data[idx])
193
- })
194
- },
195
- [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {
196
- const status = this.getFormRefs.map(form => {
197
- const status = form.validateFields()
198
- return status
199
- }).every(item => item)
200
- if (status) {
201
- return this.submitRequestTrigger(props)
202
- } else {
203
- return false
204
- }
205
- },
206
- [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {
207
- this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })
208
- },
209
- genForm (base) {
210
- const { elements, title, buttonGroupMeta } = base
211
- return {
212
- elements: JSON.parse(JSON.stringify(elements)),
213
- buttonGroupMeta,
214
- title: `${title}${this.increaseCount++}`,
215
- _gen: true
216
- }
217
- },
218
- handleClickDelete (props = {}, attr = {}, idx) {
219
- this.innerGroupMeta.splice(idx, 1)
220
- this.$emit(BUILT_IN_EVENT_NAMES.DELETE, { ...props })
221
- },
222
- [BUILT_IN_EVENT_NAMES.INCREASE] (props) {
223
- const genTplTarget = this.readOnlyGroupMeta.find(item => item.isGenTpl)
224
- const form = this.genForm(genTplTarget)
225
- this.innerGroupMeta.push(form)
226
- }
227
- },
228
- async mounted() {
229
- await this.preRequestTrigger()
230
- await this.infoRequestTrigger()
231
- }
232
- }
233
- </script>
234
-
235
- <style lang="scss" scoped>
236
- .ele {
237
- &.form-group-model__wrapper {
238
- background: unset;
239
- padding-bottom: 80px;
240
- .form-group-model__from {
241
- background: #fff;
242
- margin-top: 16px;
243
- &:first-child {
244
- margin-top: unset;
245
- }
246
- .form-group-model__form--title {
247
- width: 100%;
248
- height: 56px;
249
- padding: 0 16px;
250
- border-bottom: 1px solid;
251
- border-color: var(--idooel-form-title-border-color);
252
- display: flex;
253
- flex-direction: row;
254
- align-items: center;
255
- justify-content: space-between;
256
- }
257
- .form-group-model__form--content {
258
- padding: 16px;
259
- }
260
- }
261
- .form-group-model__form--footer {
262
- width: 100%;
263
- height: 64px;
264
- background: #fff;
265
- position: fixed;
266
- bottom: 0;
267
- display: flex;
268
- flex-direction: row;
269
- align-items: center;
270
- justify-content: end;
271
- }
272
- }
273
- }
1
+ <template>
2
+ <div class="ele form-group-model__wrapper">
3
+ <template v-for="(group, idx) in innerGroupMeta">
4
+ <div
5
+ class="form-group-model__from"
6
+ v-if="!group.isGenTpl"
7
+ :key="group.key || idx">
8
+ <div class="form-group-model__form--title">
9
+ <div>{{ group.title }}</div>
10
+ <div class="form-group-model__form--buttons">
11
+ <ele-button-group v-if="group.buttonGroupMeta" v-on="assignAttrForEvents" @delete="handleClickDelete($event, group, idx)" :data-source="group.buttonGroupMeta.elements.call(this)"></ele-button-group>
12
+ </div>
13
+ </div>
14
+ <div class="form-group-model__form--content">
15
+ <ele-form @change="onChangeFormStatus($event, group.key || idx)" :form-name="group.key || idx" :ref="group.key || `${formRefBase}__${idx}`" :elements="group.elements"></ele-form>
16
+ </div>
17
+ </div>
18
+ </template>
19
+ <div v-if="showFooterMeta" class="form-group-model__form--footer">
20
+ <ele-button-group v-on="assignAttrForEvents" :data-source="footerElements"></ele-button-group>
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script>
26
+ import Form from '../../form/src/index.vue'
27
+ import { BUILT_IN_EVENT_NAMES, RESERVE_EVENT_NAMES, parseFieldMap } from '../../utils'
28
+ import { v4 as uuidv4 } from 'uuid'
29
+ import { type, net } from '@idooel/shared'
30
+ import EleButtonGroup from '../../composite-components/button-group/src/index.vue'
31
+ export default {
32
+ name: 'ele-form-group-model',
33
+ components: {
34
+ [Form.name]: Form,
35
+ [EleButtonGroup.name]: EleButtonGroup
36
+ },
37
+ props: {
38
+ mode: {
39
+ type: String
40
+ },
41
+ fieldName: {
42
+ type: String,
43
+ default: 'formGroup'
44
+ },
45
+ groupMeta: {
46
+ type: Function,
47
+ default: () => []
48
+ },
49
+ footerMeta: {
50
+ type: Object,
51
+ default: () => {}
52
+ },
53
+ preRequest: {
54
+ type: Object,
55
+ default: () => {}
56
+ },
57
+ infoRequest: {
58
+ type: Object,
59
+ default: () => {}
60
+ },
61
+ submitRequest: {
62
+ type: Object,
63
+ default: () => {}
64
+ }
65
+ },
66
+ data () {
67
+ return {
68
+ increaseCount: 1,
69
+ innerGroupMeta: []
70
+ }
71
+ },
72
+ watch: {
73
+ readOnlyGroupMeta: {
74
+ handler (meta) {
75
+ this.innerGroupMeta = meta
76
+ },
77
+ immediate: true
78
+ }
79
+ },
80
+ computed: {
81
+ readOnlyGroupMeta () {
82
+ return this.groupMeta.call(this)
83
+ },
84
+ showFooterMeta () {
85
+ return !type.isEmpty(this.footerMeta)
86
+ },
87
+ formRefBase () {
88
+ return uuidv4()
89
+ },
90
+ footerElements () {
91
+ const { elements } = this.footerMeta
92
+ return elements.call(this)
93
+ },
94
+ assignAttrForEvents () {
95
+ const events = this.footerElements.reduce((ret, ele) => {
96
+ ret[ele.eventName] = (e) => {
97
+ this.$emit(ele.eventName || 'click', { ...e })
98
+ }
99
+ return ret
100
+ }, {})
101
+ return {
102
+ ...this.$listeners,
103
+ ...events,
104
+ [BUILT_IN_EVENT_NAMES.SUBMIT]: this[BUILT_IN_EVENT_NAMES.SUBMIT],
105
+ [BUILT_IN_EVENT_NAMES.CANCEL]: this[BUILT_IN_EVENT_NAMES.CANCEL],
106
+ [BUILT_IN_EVENT_NAMES.INCREASE]: this[BUILT_IN_EVENT_NAMES.INCREASE]
107
+ }
108
+ },
109
+ getFormRefs () {
110
+ return this.innerGroupMeta.map((group, idx) => {
111
+ if (!group.isGenTpl) {
112
+ return this.$refs[group.key || `${this.formRefBase}__${idx}`]
113
+ }
114
+ return void 0
115
+ }).filter(item => !!item).flat()
116
+ },
117
+ formModels () {
118
+ if (this.mode === 'increase') {
119
+ //TODO increase mode to return formModels
120
+ return this.getFormRefs.map(form => {
121
+ return form.getFieldsValue()
122
+ })
123
+ } else {
124
+ return this.getFormRefs.map(form => {
125
+ const { $vnode: { data: { ref } } } = form
126
+ return {
127
+ key: ref,
128
+ value: form.getFieldsValue()
129
+ }
130
+ }).reduce((ret, props) => {
131
+ ret[props.key] = props.value
132
+ return ret
133
+ }, {})
134
+ }
135
+ }
136
+ },
137
+ methods: {
138
+ execFieldMap (fieldMap = {}, dataSource = {}) {
139
+ const ret = parseFieldMap(fieldMap, { _route: this.$route.query, ...dataSource})
140
+ return ret
141
+ },
142
+ onChangeFormStatus (props, key) {
143
+ this.$emit(RESERVE_EVENT_NAMES.WATCH_FORM_STATUS, { key, ...props })
144
+ },
145
+ async infoRequestTrigger () {
146
+ if (!this.infoRequest) return
147
+ const { url, requestType, params = {}, fieldMap = {}, headers = {} } = this.infoRequest
148
+ if (!url) return
149
+ net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap) }, { ...headers }).then(resp => {
150
+ const { data = {} } = resp
151
+ if (this.mode === 'increase') {
152
+ this.renderIncreaseForm(data)
153
+ }
154
+ this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
155
+ })
156
+ },
157
+ async preRequestTrigger () {
158
+ if (!this.preRequest) return
159
+ const { url, requestType = 'GET', params = {}, fieldMap = {}, headers = {} } = this.preRequest
160
+ if (!url) return
161
+ net[requestType.toLowerCase()](url, { ...params, ...fieldMap }, { ...headers }).then(resp => {
162
+ const { data = {} } = resp
163
+ if (this.mode === 'increase') {
164
+ this.renderIncreaseForm(data)
165
+ }
166
+ this.$emit(RESERVE_EVENT_NAMES.INIT_FORM, { ...data })
167
+ })
168
+ },
169
+ renderIncreaseForm (data = {}) {
170
+ const formGroupValuesLength = data[this.fieldName].length
171
+ const genTplTarget = this.readOnlyGroupMeta.find(item => item.isGenTpl)
172
+ const notGenTplPoolLength = this.readOnlyGroupMeta.filter(item => !item.isGenTpl).length
173
+ const genNum = formGroupValuesLength - notGenTplPoolLength
174
+ new Array(genNum).fill().forEach(() => {
175
+ const form = this.genForm(genTplTarget)
176
+ this.innerGroupMeta.push(form)
177
+ })
178
+ const formGroupValues = data[this.fieldName]
179
+ this.setFieldsValue(formGroupValues)
180
+ },
181
+ async submitRequestTrigger (props = {}) {
182
+ const { url, requestType, headers = {}, params = {}, fieldMap = {} } = this.submitRequest
183
+ if (!url) return
184
+ const ret = await net[requestType.toLowerCase()](url, { ...params, ...this.execFieldMap(fieldMap, { ...this.formModels }), [this.fieldName]: this.formModels }, { headers }).then(resp => {
185
+ this.$emit(BUILT_IN_EVENT_NAMES.SUBMIT, { ...props, formModel: { ...this.formModels, ...resp.data || {} } })
186
+ return resp.data
187
+ })
188
+ return ret
189
+ },
190
+ setFieldsValue (data = []) {
191
+ this.getFormRefs.forEach((form, idx) => {
192
+ form.setFieldsValue(data[idx])
193
+ })
194
+ },
195
+ [BUILT_IN_EVENT_NAMES.SUBMIT] (props = {}) {
196
+ const status = this.getFormRefs.map(form => {
197
+ const status = form.validateFields()
198
+ return status
199
+ }).every(item => item)
200
+ if (status) {
201
+ return this.submitRequestTrigger(props)
202
+ } else {
203
+ return false
204
+ }
205
+ },
206
+ [BUILT_IN_EVENT_NAMES.CANCEL] (props = {}) {
207
+ this.$emit(BUILT_IN_EVENT_NAMES.CANCEL, { ...props })
208
+ },
209
+ genForm (base) {
210
+ const { elements, title, buttonGroupMeta } = base
211
+ return {
212
+ elements: JSON.parse(JSON.stringify(elements)),
213
+ buttonGroupMeta,
214
+ title: `${title}${this.increaseCount++}`,
215
+ _gen: true
216
+ }
217
+ },
218
+ handleClickDelete (props = {}, attr = {}, idx) {
219
+ this.innerGroupMeta.splice(idx, 1)
220
+ this.$emit(BUILT_IN_EVENT_NAMES.DELETE, { ...props })
221
+ },
222
+ [BUILT_IN_EVENT_NAMES.INCREASE] (props) {
223
+ const genTplTarget = this.readOnlyGroupMeta.find(item => item.isGenTpl)
224
+ const form = this.genForm(genTplTarget)
225
+ this.innerGroupMeta.push(form)
226
+ }
227
+ },
228
+ async mounted() {
229
+ await this.preRequestTrigger()
230
+ await this.infoRequestTrigger()
231
+ }
232
+ }
233
+ </script>
234
+
235
+ <style lang="scss" scoped>
236
+ .ele {
237
+ &.form-group-model__wrapper {
238
+ background: unset;
239
+ padding-bottom: 80px;
240
+ .form-group-model__from {
241
+ background: #fff;
242
+ margin-top: 16px;
243
+ &:first-child {
244
+ margin-top: unset;
245
+ }
246
+ .form-group-model__form--title {
247
+ width: 100%;
248
+ height: 56px;
249
+ padding: 0 16px;
250
+ border-bottom: 1px solid;
251
+ border-color: var(--idooel-form-title-border-color);
252
+ display: flex;
253
+ flex-direction: row;
254
+ align-items: center;
255
+ justify-content: space-between;
256
+ }
257
+ .form-group-model__form--content {
258
+ padding: 16px;
259
+ }
260
+ }
261
+ .form-group-model__form--footer {
262
+ width: 100%;
263
+ height: 64px;
264
+ background: #fff;
265
+ position: fixed;
266
+ bottom: 0;
267
+ display: flex;
268
+ flex-direction: row;
269
+ align-items: center;
270
+ justify-content: end;
271
+ }
272
+ }
273
+ }
274
274
  </style>
@@ -1,5 +1,5 @@
1
- import EleFormPageModel from './src/index.vue'
2
-
3
- EleFormPageModel.install = Vue => Vue.component(EleFormPageModel.name, EleFormPageModel)
4
-
1
+ import EleFormPageModel from './src/index.vue'
2
+
3
+ EleFormPageModel.install = Vue => Vue.component(EleFormPageModel.name, EleFormPageModel)
4
+
5
5
  export default EleFormPageModel