@idooel/components 0.0.1 → 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 (107) hide show
  1. package/README.md +99 -0
  2. package/dist/@idooel/components.esm.js +13956 -1882
  3. package/dist/@idooel/components.umd.js +14000 -1891
  4. package/jsconfig.json +8 -0
  5. package/package.json +12 -6
  6. package/packages/alert/index.js +5 -0
  7. package/packages/alert/src/index.vue +46 -0
  8. package/packages/batch-export/index.js +5 -0
  9. package/packages/batch-export/src/index.vue +105 -0
  10. package/packages/business-components/modal-fsm/index.js +5 -0
  11. package/packages/business-components/modal-fsm/src/index.vue +164 -0
  12. package/packages/business-components/modal-import/index.js +5 -0
  13. package/packages/business-components/modal-import/src/index.vue +140 -0
  14. package/packages/business-components/modal-timeline/index.js +5 -0
  15. package/packages/business-components/modal-timeline/src/index.vue +78 -0
  16. package/packages/business-components/tabs-sub-center/index.js +5 -0
  17. package/packages/business-components/tabs-sub-center/src/index.vue +117 -0
  18. package/packages/button/index.js +4 -4
  19. package/packages/button/src/index.vue +65 -24
  20. package/packages/checkbox/index.js +5 -0
  21. package/packages/checkbox/src/index.vue +53 -0
  22. package/packages/composite-components/button-group/index.js +4 -4
  23. package/packages/composite-components/button-group/src/index.vue +151 -46
  24. package/packages/composite-components/form-attachment/src/index.vue +15 -0
  25. package/packages/composite-components/form-img-crop/index.js +5 -0
  26. package/packages/composite-components/form-img-crop/src/index.vue +121 -0
  27. package/packages/composite-components/modal-confirm/index.js +5 -0
  28. package/packages/composite-components/modal-confirm/src/index.vue +104 -0
  29. package/packages/composite-components/modal-form/index.js +5 -0
  30. package/packages/composite-components/modal-form/src/index.vue +231 -0
  31. package/packages/composite-components/modal-img-crop/index.js +5 -0
  32. package/packages/composite-components/modal-img-crop/src/index.vue +299 -0
  33. package/packages/composite-components/modal-table/index.js +5 -0
  34. package/packages/composite-components/modal-table/src/index.vue +156 -0
  35. package/packages/composite-components/modal-table-transfer/index.js +0 -0
  36. package/packages/composite-components/modal-tree/index.js +5 -0
  37. package/packages/composite-components/modal-tree/src/index.vue +76 -0
  38. package/packages/composite-components/search-area/index.js +4 -4
  39. package/packages/composite-components/search-area/src/index.vue +237 -128
  40. package/packages/composite-components/search-area/src/label.vue +35 -35
  41. package/packages/composite-components/select-entity-modal-table/index.js +5 -0
  42. package/packages/composite-components/select-entity-modal-table/src/index.vue +172 -0
  43. package/packages/composite-components/table-transfer/index.js +0 -0
  44. package/packages/date/index.js +4 -4
  45. package/packages/date/src/index.vue +113 -40
  46. package/packages/date-range/index.js +5 -0
  47. package/packages/date-range/src/index.vue +47 -0
  48. package/packages/form/index.js +5 -0
  49. package/packages/form/src/index.vue +319 -0
  50. package/packages/icon/index.js +5 -0
  51. package/packages/icon/src/index.vue +32 -0
  52. package/packages/index.js +153 -50
  53. package/packages/input/index.js +4 -4
  54. package/packages/input/src/index.vue +35 -23
  55. package/packages/input-number/index.js +5 -0
  56. package/packages/input-number/src/index.vue +24 -0
  57. package/packages/loading/index.js +5 -0
  58. package/packages/loading/src/index.vue +37 -0
  59. package/packages/modal/index.js +5 -0
  60. package/packages/modal/src/index.vue +185 -0
  61. package/packages/models/form-group-model/index.js +5 -0
  62. package/packages/models/form-group-model/src/index.vue +274 -0
  63. package/packages/models/form-model/index.js +5 -0
  64. package/packages/models/form-model/src/index.vue +233 -0
  65. package/packages/models/step-model/index.js +5 -0
  66. package/packages/models/step-model/src/index.vue +224 -0
  67. package/packages/{tree-table-model → models/tree-table-model}/index.js +4 -4
  68. package/packages/models/tree-table-model/src/index.vue +689 -0
  69. package/packages/radio/index.js +5 -0
  70. package/packages/radio/src/index.vue +57 -0
  71. package/packages/select/index.js +4 -4
  72. package/packages/select/src/index.vue +105 -34
  73. package/packages/select-entity/index.js +5 -0
  74. package/packages/select-entity/src/index.vue +120 -0
  75. package/packages/table/index.js +4 -4
  76. package/packages/table/src/action.vue +172 -103
  77. package/packages/table/src/index.vue +289 -88
  78. package/packages/tabs/index.js +5 -0
  79. package/packages/tabs/src/index.vue +56 -0
  80. package/packages/text/index.js +5 -0
  81. package/packages/text/src/index.vue +48 -0
  82. package/packages/text-editor/index.js +5 -0
  83. package/packages/text-editor/src/index.vue +73 -0
  84. package/packages/textarea/index.js +5 -0
  85. package/packages/textarea/src/index.vue +58 -0
  86. package/packages/theme/form.scss +22 -0
  87. package/packages/theme/index.scss +43 -0
  88. package/packages/theme/overrid.scss +8 -0
  89. package/packages/theme/styleClass.scss +3 -0
  90. package/packages/theme/variables.scss +56 -0
  91. package/packages/timeline/index.js +5 -0
  92. package/packages/timeline/src/index.vue +258 -0
  93. package/packages/tpl/index.js +4 -4
  94. package/packages/tpl/src/index.vue +56 -47
  95. package/packages/tree/index.js +4 -4
  96. package/packages/tree/src/TreeNode.vue +29 -29
  97. package/packages/tree/src/index.vue +101 -96
  98. package/packages/tree-select/index.js +5 -0
  99. package/packages/tree-select/src/index.vue +143 -0
  100. package/packages/upload/index.js +5 -0
  101. package/packages/upload/src/index.vue +445 -0
  102. package/packages/utils/index.js +63 -0
  103. package/scripts/rollup.config.js +42 -35
  104. package/scripts/rollup.esm.config.js +11 -11
  105. package/scripts/rollup.umd.config.js +14 -14
  106. package/packages/tree-table-model/src/index.vue +0 -290
  107. /package/packages/{tree-table-model/README.md → composite-components/form-attachment/index.js} +0 -0
@@ -0,0 +1,319 @@
1
+ <template>
2
+ <div class="ele__form--wrapper">
3
+ <a-form :form="form" layout="vertical" class="ant-advanced-search-form">
4
+ <a-row :gutter="24">
5
+ <template v-for="ele in elements">
6
+ <a-col v-if="executeExpression(ele._show)" :span="ele.span" :key="ele.name">
7
+ <template v-if="ele.type == 'Input'">
8
+ <a-form-item :label="`${ele.label}:`">
9
+ <ele-input
10
+ @change="onChange($event, ele)"
11
+ :disabled="executeExpression(ele._disabled)"
12
+ :max-length="ele.maxLength"
13
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
14
+ style="width:100%;">
15
+ </ele-input>
16
+ </a-form-item>
17
+ </template>
18
+ <template v-else-if="ele.type == 'Textarea'">
19
+ <a-form-item :label="`${ele.label}:`">
20
+ <ele-textarea
21
+ @change="onChange($event, ele)"
22
+ :max-length="ele.maxLength"
23
+ :autosize="ele.autosize"
24
+ :disabled="executeExpression(ele._disabled)"
25
+ :allow-clear="ele.allowClear"
26
+ :placeholder="ele.placeholder"
27
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
28
+ style="width:100%;">
29
+ </ele-textarea>
30
+ </a-form-item>
31
+ </template>
32
+ <template v-else-if="ele.type == 'Select'">
33
+ <a-form-item :label="`${ele.label}:`">
34
+ <ele-select
35
+ :data-source="ele.optionList"
36
+ :disabled="executeExpression(ele._disabled)"
37
+ :multiple="ele.multiple"
38
+ :mode="ele.mode"
39
+ :code="ele.code"
40
+ :init="ele.init"
41
+ :url="ele.url"
42
+ :params="ele.params"
43
+ @change="onChange($event, ele)"
44
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
45
+ style="width:100%;">
46
+ </ele-select>
47
+ </a-form-item>
48
+ </template>
49
+ <template v-else-if="ele.type == 'ele-upload'">
50
+ <a-form-item :label="`${ele.label}:`">
51
+ <ele-upload v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
52
+ :ext="ele.ext"
53
+ :multiple="ele.multiple"
54
+ :accept="ele.accept"
55
+ :extensions="ele.extensions"
56
+ :size="ele.size"
57
+ :icon="ele.icon"
58
+ :url="ele.url"
59
+ :message="ele.message"
60
+ style="width:100%;">
61
+ </ele-upload>
62
+ </a-form-item>
63
+ </template>
64
+ <template v-else-if="ele.type == 'ele-date-range'">
65
+ <a-form-item :label="`${ele.label}:`">
66
+ <ele-date-range
67
+ :disabled="executeExpression(ele._disabled)"
68
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
69
+ style="width:100%;">
70
+ </ele-date-range>
71
+ </a-form-item>
72
+ </template>
73
+ <template v-else-if="ele.type == 'ele-date'">
74
+ <a-form-item :label="`${ele.label}:`">
75
+ <ele-date
76
+ :format="ele.format"
77
+ :mode="ele.mode"
78
+ :show-time="ele.showTime"
79
+ :show-today="ele.showToday"
80
+ :value-format="ele.valueFormat"
81
+ :disabled="executeExpression(ele._disabled)"
82
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
83
+ style="width:100%;">
84
+ </ele-date>
85
+ </a-form-item>
86
+ </template>
87
+ <template v-else-if="ele.type == 'SelectEntity'">
88
+ <a-form-item :label="`${ele.label}:`">
89
+ <ele-select-entity
90
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
91
+ style="width:100%;">
92
+ </ele-select-entity>
93
+ </a-form-item>
94
+ </template>
95
+ <template v-else-if="ele.type == 'InputNumber' || ele.type == 'ele-input-number'">
96
+ <a-form-item :label="`${ele.label}:`">
97
+ <ele-input-number
98
+ @change="onChange($event, ele)"
99
+ :precision="ele.precision"
100
+ :disabled="executeExpression(ele._disabled)"
101
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
102
+ v-bind="ele.props"
103
+ style="width:100%;">
104
+ </ele-input-number>
105
+ </a-form-item>
106
+ </template>
107
+ <template v-else-if="ele.type == 'Checkbox'">
108
+ <a-form-item :label="`${ele.label}:`">
109
+ <ele-checkbox
110
+ :data-source="ele.optionList"
111
+ :disabled="executeExpression(ele._disabled)"
112
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
113
+ style="width:100%;">
114
+ </ele-checkbox>
115
+ </a-form-item>
116
+ </template>
117
+ <template v-else-if="ele.type == 'Radio'">
118
+ <a-form-item :label="`${ele.label}:`">
119
+ <ele-radio
120
+ @change="onChange($event, ele)"
121
+ :disabled="executeExpression(ele._disabled)"
122
+ :data-source="ele.optionList"
123
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
124
+ style="width:100%;">
125
+ </ele-radio>
126
+ </a-form-item>
127
+ </template>
128
+ <template v-else-if="ele.type == 'ele-form-img-crop'">
129
+ <a-form-item :label="`${ele.label}:`">
130
+ <ele-form-img-crop
131
+ @change="onChange($event, ele)"
132
+ :width="ele.width"
133
+ :height="ele.height"
134
+ :modal-title="ele.modalTitle"
135
+ :cropper-config="ele.cropperConfig"
136
+ :oper-text="ele.operText"
137
+ :disabled="executeExpression(ele._disabled)"
138
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
139
+ style="width:100%;">
140
+ </ele-form-img-crop>
141
+ </a-form-item>
142
+ </template>
143
+ <template v-else-if="ele.type == 'ele-tree-select'">
144
+ <a-form-item :label="`${ele.label}:`">
145
+ <ele-tree-select
146
+ @change="onChange($event, ele)"
147
+ :disabled="executeExpression(ele._disabled)"
148
+ v-bind="ele.meta"
149
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
150
+ style="width:100%;">
151
+ </ele-tree-select>
152
+ </a-form-item>
153
+ </template>
154
+ <template v-else-if="ele.type == 'ele-select-entity-modal-table'">
155
+ <a-form-item :label="`${ele.label}:`">
156
+ <ele-select-entity-modal-table
157
+ @change="onChange($event, ele)"
158
+ :disabled="executeExpression(ele._disabled)"
159
+ v-bind="ele.meta"
160
+ v-decorator="[ele.name, { rules: rebuildRules(ele.rules) }]"
161
+ style="width:100%;">
162
+ </ele-select-entity-modal-table>
163
+ </a-form-item>
164
+ </template>
165
+ </a-col>
166
+ </template>
167
+ </a-row>
168
+ </a-form>
169
+ </div>
170
+ </template>
171
+
172
+ <script>
173
+ import { parse } from '@idooel/expression'
174
+ import { type } from '@idooel/shared'
175
+ import { CONTEXT } from '../../utils'
176
+ export default {
177
+ name: 'ele-form',
178
+ props: {
179
+ value: {
180
+ type: Object,
181
+ default: () => ({})
182
+ },
183
+ disabled: {
184
+ type: [Boolean, String],
185
+ default: '_routeMeta.disabled'
186
+ },
187
+ formName: {
188
+ type: [Number, String],
189
+ default: 'coordinated'
190
+ },
191
+ elements: {
192
+ type: Array,
193
+ default: () => []
194
+ }
195
+ },
196
+ data () {
197
+ return {
198
+ formModel: {}
199
+ }
200
+ },
201
+ inject: {
202
+ [CONTEXT]: {
203
+ default: () => (() => ({}))
204
+ }
205
+ },
206
+ computed: {
207
+ contextData () {
208
+ return this[CONTEXT].call(this)
209
+ },
210
+ globalDisabled () {
211
+ return this.executeExpression(this.disabled)
212
+ },
213
+ form () {
214
+ const ref = this.$form.createForm(this, { name: this.formName })
215
+ return ref
216
+ },
217
+ exposedMethods () {
218
+ return {
219
+ setFieldsValue: this.setFieldsValue,
220
+ getFieldsValue: this.getFieldsValue
221
+ }
222
+ }
223
+ },
224
+ created () {
225
+ this.setDefaultValues()
226
+ },
227
+ methods: {
228
+ setFormModel (props = {}) {
229
+ this.formModel = props
230
+ this.dispatchExpression()
231
+ },
232
+ rebuildRules (rules = []) {
233
+ //TODO
234
+ rules.map(rule => {
235
+ const { validator } = rule
236
+ if (validator) {
237
+ validator.formModel = this.getFieldsValue()
238
+ validator.exposed = this.exposedMethods
239
+ }
240
+ })
241
+ return rules
242
+ },
243
+ dispatchExpression () {
244
+ this.evalDisabledExpression()
245
+ this.evalShowExpression()
246
+ },
247
+ evalDisabledExpression () {
248
+ this.elements.forEach(ele => {
249
+ if (this.globalDisabled) return this.$set(ele, '_disabled', true)
250
+ const { disabled } = ele
251
+ const ret = this.executeExpression(disabled)
252
+ this.$set(ele, '_disabled', ret)
253
+ })
254
+ },
255
+ evalShowExpression () {
256
+ this.elements.forEach(ele => {
257
+ const { show = true } = ele
258
+ const ret = this.executeExpression(show)
259
+ this.$set(ele, '_show', ret)
260
+ })
261
+ },
262
+ executeExpression (expression) {
263
+ if (type.isBool(expression)) return expression
264
+ if (type.isEmpty(expression)) return false
265
+ return parse(expression, { ...this.getFieldsValue(), ...this.formModel, _route: this.$route.query, _routeMeta: this.$route.meta })
266
+ },
267
+ onChange (value, props) {
268
+ const { name } = props
269
+ this.$set(this.formModel, name, value)
270
+ this.dispatchExpression()
271
+ this.setFieldsValue({ [name]: value })
272
+ this.$emit('change', { value, props, exposed: { ...this.exposedMethods } })
273
+ },
274
+ collectDefaultValues () {
275
+ const ret = this.elements.reduce((ret, props) => {
276
+ const { name, defaultValue } = props
277
+ if (defaultValue) {
278
+ ret[name] = defaultValue
279
+ }
280
+ return ret
281
+ }, {})
282
+ return ret
283
+ },
284
+ //TODO deprecated in the future, need to be implemented in the outer component
285
+ setDefaultValues () {
286
+ const defaultValues = this.collectDefaultValues()
287
+ this.setFormModel(defaultValues)
288
+ this.setFieldsValue(defaultValues)
289
+ },
290
+ validateFields () {
291
+ let ret = false
292
+ this.form.validateFields((error, values) => {
293
+ ret = !error
294
+ })
295
+ return ret
296
+ },
297
+ setFieldsValue (props = {}) {
298
+ this.$nextTick(() => {
299
+ this.form.setFieldsValue(props)
300
+ })
301
+ },
302
+ getFieldsValue (fieldNames) {
303
+ return this.form.getFieldsValue(fieldNames)
304
+ }
305
+ },
306
+ mounted() {
307
+ this.$emit('x:mounted', { setFormModel: this.setFormModel })
308
+ this.dispatchExpression()
309
+ }
310
+ }
311
+ </script>
312
+
313
+ <style lang="scss" scoped>
314
+ .ele__form--wrapper {
315
+ background: #fff;
316
+ .ant-form-item {
317
+ }
318
+ }
319
+ </style>
@@ -0,0 +1,5 @@
1
+ import EleIcon from './src/index.vue'
2
+
3
+ EleIcon.install = Vue => Vue.component(EleIcon.name, EleIcon)
4
+
5
+ export default EleIcon
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <a-icon
3
+ v-if="isAntIcon"
4
+ :type="type"
5
+ :theme="theme">
6
+ </a-icon>
7
+ <i :class="['iconfont', type]" v-else></i>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'ele-icon',
13
+ props: {
14
+ type: {
15
+ type: String,
16
+ default: ''
17
+ },
18
+ theme: {
19
+ type: String
20
+ }
21
+ },
22
+ computed: {
23
+ isAntIcon() {
24
+ const prefix = this.type.slice(0, 5)
25
+ if (prefix === 'icon-') {
26
+ return false
27
+ }
28
+ return true
29
+ }
30
+ }
31
+ }
32
+ </script>
package/packages/index.js CHANGED
@@ -1,51 +1,154 @@
1
- import EleButton from './button/index.js'
2
- import EleDate from './date/index.js'
3
- import EleInput from './input/index.js'
4
- import EleSelect from './select/index.js'
5
- import EleTable from './table/index.js'
6
- import EleTree from './tree/index.js'
7
- import EleTpl from './tpl/index.js'
8
-
9
- import EleButtonGroup from './composite-components/button-group/index.js'
10
- import EleSearchArea from './composite-components/search-area/index.js'
11
-
12
- import EleTreeTableModel from './tree-table-model/index.js'
13
-
14
- const compositeComponents = [
15
- EleButtonGroup,
16
- EleSearchArea
17
- ]
18
-
19
- export const models = [
20
- EleTreeTableModel
21
- ]
22
-
23
- const components = [
24
- EleButton,
25
- EleDate,
26
- EleInput,
27
- EleSelect,
28
- EleTable,
29
- EleTree,
30
- EleTpl,
31
- ...compositeComponents,
32
- ...models
33
- ]
34
-
35
- const install = (Vue) => {
36
- if (install.installed) return
37
- install.installed = true
38
- components.forEach(component => {
39
- Vue.component(component.name, component)
40
- })
41
- }
42
- export default install
43
- export {
44
- EleButton,
45
- EleDate,
46
- EleInput,
47
- EleSelect,
48
- EleTable,
49
- EleTree,
50
- EleTpl
1
+ import EleButton from './button/index.js'
2
+ import EleDate from './date/index.js'
3
+ import EleInput from './input/index.js'
4
+ import EleSelect from './select/index.js'
5
+ import EleTable from './table/index.js'
6
+ import EleTree from './tree/index.js'
7
+ import EleTpl from './tpl/index.js'
8
+ import EleForm from './form/index.js'
9
+ import EleAlert from './alert/index.js'
10
+ import EleUpload from './upload/index.js'
11
+ import EleSelectEntity from './select-entity/index.js'
12
+ import EleIcon from './icon/index.js'
13
+ import EleInputNumber from './input-number/index.js'
14
+ import EleModal from './modal/index.js'
15
+ import EleCheckbox from './checkbox/index.js'
16
+ import EleRadio from './radio/index.js'
17
+ import EleBatchExport from './batch-export/index.js'
18
+ import EleDateRange from './date-range/index.js'
19
+ import EleTimeline from './timeline/index.js'
20
+ import EleText from './text/index.js'
21
+ import EleTabs from './tabs/index.js'
22
+ import EleModalImgCrop from './composite-components/modal-img-crop/index.js'
23
+ import EleTextEditor from './text-editor/index.js'
24
+ import EleTextarea from './textarea/index.js'
25
+ import EleLoading from './loading/index.js'
26
+ import EleTreeSelect from './tree-select/index.js'
27
+
28
+ import EleSearchArea from './composite-components/search-area/index.js'
29
+ import EleButtonGroup from './composite-components/button-group/index.js'
30
+ import EleModalForm from './composite-components/modal-form/index.js'
31
+ import EleModalTree from './composite-components/modal-tree/index.js'
32
+ import EleModalConfirm from './composite-components/modal-confirm/index.js'
33
+ import EleModalTable from './composite-components/modal-table/index.js'
34
+ import EleFormImgCrop from './composite-components/form-img-crop/index.js'
35
+ import EleSelectEntityModalTable from './composite-components/select-entity-modal-table/index.js'
36
+
37
+ import EleModalImport from './business-components/modal-import/index.js'
38
+ import EleModalTimeline from './business-components/modal-timeline/index.js'
39
+ import EleModalFsm from './business-components/modal-fsm/index.js'
40
+ import EleTabsSubCenter from './business-components/tabs-sub-center/index.js'
41
+
42
+ import EleTreeTableModel from './models/tree-table-model/index.js'
43
+ import EleFormPageModel from './models/form-model/index.js'
44
+ import EleFormGroupModel from './models/form-group-model/index.js'
45
+ import EleStepModel from './models/step-model/index.js'
46
+
47
+ const compositeComponents = [
48
+ EleButtonGroup,
49
+ EleSearchArea,
50
+ EleModalForm,
51
+ EleModalTree,
52
+ EleModalImgCrop,
53
+ EleModalConfirm,
54
+ EleModalTable,
55
+ EleFormImgCrop,
56
+ EleSelectEntityModalTable
57
+ ]
58
+ const businessComponents = [
59
+ EleModalImport,
60
+ EleModalTimeline,
61
+ EleModalFsm,
62
+ EleTabsSubCenter
63
+ ]
64
+
65
+ export const models = [
66
+ EleTreeTableModel,
67
+ EleFormPageModel,
68
+ EleFormGroupModel,
69
+ EleStepModel
70
+ ]
71
+
72
+ const components = [
73
+ EleButton,
74
+ EleDate,
75
+ EleInput,
76
+ EleSelect,
77
+ EleTable,
78
+ EleTree,
79
+ EleTpl,
80
+ EleForm,
81
+ EleAlert,
82
+ EleUpload,
83
+ EleSelectEntity,
84
+ EleIcon,
85
+ EleInputNumber,
86
+ EleModal,
87
+ EleCheckbox,
88
+ EleRadio,
89
+ EleBatchExport,
90
+ EleDateRange,
91
+ EleTimeline,
92
+ EleText,
93
+ EleTabs,
94
+ EleTextEditor,
95
+ EleTextarea,
96
+ EleLoading,
97
+ EleTreeSelect,
98
+ ...compositeComponents,
99
+ ...businessComponents,
100
+ ...models,
101
+ ]
102
+
103
+ const install = (Vue) => {
104
+ if (install.installed) return
105
+ install.installed = true
106
+ components.forEach(component => {
107
+ Vue.component(component.name, component)
108
+ })
109
+ }
110
+ export default install
111
+ export {
112
+ EleButton,
113
+ EleDate,
114
+ EleInput,
115
+ EleSelect,
116
+ EleTable,
117
+ EleTree,
118
+ EleTpl,
119
+ EleForm,
120
+ EleAlert,
121
+ EleUpload,
122
+ EleSelectEntity,
123
+ EleIcon,
124
+ EleInputNumber,
125
+ EleModal,
126
+ EleCheckbox,
127
+ EleRadio,
128
+ EleTreeSelect,
129
+ EleBatchExport,
130
+ EleDateRange,
131
+ EleTimeline,
132
+ EleText,
133
+ EleTabs,
134
+ EleTextEditor,
135
+ EleButtonGroup,
136
+ EleSearchArea,
137
+ EleModalForm,
138
+ EleModalTree,
139
+ EleModalImgCrop,
140
+ EleModalImport,
141
+ EleModalTimeline,
142
+ EleTreeTableModel,
143
+ EleFormPageModel,
144
+ EleFormGroupModel,
145
+ EleStepModel,
146
+ EleModalConfirm,
147
+ EleModalFsm,
148
+ EleTextarea,
149
+ EleModalTable,
150
+ EleLoading,
151
+ EleTabsSubCenter,
152
+ EleFormImgCrop,
153
+ EleSelectEntityModalTable
51
154
  }
@@ -1,5 +1,5 @@
1
- import EleInput from './src/index.vue'
2
-
3
- EleInput.install = Vue => Vue.component(EleInput.name, EleInput)
4
-
1
+ import EleInput from './src/index.vue'
2
+
3
+ EleInput.install = Vue => Vue.component(EleInput.name, EleInput)
4
+
5
5
  export default EleInput
@@ -1,24 +1,36 @@
1
- <template>
2
- <a-input :value="value" @change="onChange"></a-input>
3
- </template>
4
-
5
- <script>
6
- export default {
7
- name: 'ele-input',
8
- props: {
9
- value: {
10
- type: String
11
- }
12
- },
13
- methods: {
14
- onChange (e) {
15
- this.$emit('change', e.target.value)
16
- this.$emit('input', e.target.value)
17
- }
18
- }
19
- }
20
- </script>
21
-
22
- <style scoped>
23
-
1
+ <template>
2
+ <a-input :value="value" :disabled="disabled" :max-length="maxLength" @change="onChange"></a-input>
3
+ </template>
4
+
5
+ <script>
6
+ export default {
7
+ name: 'ele-input',
8
+ model: {
9
+ prop: 'value',
10
+ event: 'change'
11
+ },
12
+ props: {
13
+ disabled: {
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ maxLength: {
18
+ type: Number,
19
+ default: 125
20
+ },
21
+ value: {
22
+ type: String
23
+ }
24
+ },
25
+ methods: {
26
+ onChange (e) {
27
+ this.$emit('change', e.target.value)
28
+ this.$emit('input', e.target.value)
29
+ }
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <style scoped>
35
+
24
36
  </style>
@@ -0,0 +1,5 @@
1
+ import EleInputNumber from './src/index.vue'
2
+
3
+ EleInputNumber.install = Vue => Vue.component(EleInputNumber.name, EleInputNumber)
4
+
5
+ export default EleInputNumber
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <div>
3
+ <a-input-number v-bind="$attrs" :value="value" :precision="precision" @change="onChange" style="width: 100%;"></a-input-number>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ele-input-number',
10
+ props: {
11
+ precision: {
12
+ type: Number
13
+ },
14
+ value: {
15
+ type: [Number, String]
16
+ }
17
+ },
18
+ methods: {
19
+ onChange (value) {
20
+ this.$emit('change', value)
21
+ }
22
+ }
23
+ }
24
+ </script>
@@ -0,0 +1,5 @@
1
+ import EleLoading from './src/index.vue'
2
+
3
+ EleLoading.install = Vue => Vue.component(EleLoading.name, EleLoading)
4
+
5
+ export default EleLoading