@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
@@ -1,36 +1,36 @@
1
- <template>
2
- <div class="g-search__label">
3
- <span class="label__title">{{ label }}</span>
4
- <span class="label__suffix">:</span>
5
- </div>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- props: {
11
- label: {
12
- type: String
13
- }
14
- }
15
- }
16
- </script>
17
-
18
- <style lang="scss" scoped>
19
- .g-search__label {
20
- /* width: 69px; */
21
- flex-basis: 69px;
22
- height: 32px;
23
- display: flex;
24
- flex-direction: row;
25
- align-items: center;
26
- justify-content: space-between;
27
- .label__title, .label__suffix {
28
- font-size: 14px;
29
- color: rgba(0, 0, 0, 0.88);
30
- white-space: nowrap;
31
- }
32
- .label__suffix {
33
- margin-left: 4px;
34
- }
35
- }
1
+ <template>
2
+ <div class="g-search__label">
3
+ <span class="label__title">{{ label }}</span>
4
+ <span class="label__suffix">:</span>
5
+ </div>
6
+ </template>
7
+
8
+ <script>
9
+ export default {
10
+ props: {
11
+ label: {
12
+ type: String
13
+ }
14
+ }
15
+ }
16
+ </script>
17
+
18
+ <style lang="scss" scoped>
19
+ .g-search__label {
20
+ /* width: 69px; */
21
+ flex-basis: 69px;
22
+ height: 32px;
23
+ display: flex;
24
+ flex-direction: row;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ .label__title, .label__suffix {
28
+ font-size: 14px;
29
+ color: rgba(0, 0, 0, 0.88);
30
+ white-space: nowrap;
31
+ }
32
+ .label__suffix {
33
+ margin-left: 4px;
34
+ }
35
+ }
36
36
  </style>
@@ -0,0 +1,5 @@
1
+ import EleSelectEntityModalTable from './src/index.vue'
2
+
3
+ EleSelectEntityModalTable.install = Vue => Vue.component(EleSelectEntityModalTable.name, EleSelectEntityModalTable)
4
+
5
+ export default EleSelectEntityModalTable
@@ -0,0 +1,172 @@
1
+ <template>
2
+ <section class="select__entity--modal-table">
3
+ <ele-select-entity :multiple="multiple" :maxCount="maxCount" :value="entityValue" @close="onClosSelectEntity" @evoke="evokeSelectEntity"></ele-select-entity>
4
+ <ele-modal-table
5
+ @handleEntitySave="handleEntitySave"
6
+ @handleEntityCancel="handleEntityCancel"
7
+ :meta="buildMeta"
8
+ v-model="showModalTableValue">
9
+ </ele-modal-table>
10
+ </section>
11
+ </template>
12
+
13
+ <script>
14
+ import { type } from '@idooel/shared'
15
+ export default {
16
+ name: 'ele-select-entity-modal-table',
17
+ model: {
18
+ prop: 'value',
19
+ event: 'change'
20
+ },
21
+ props: {
22
+ value: {
23
+ type: [Array, Object],
24
+ default: () => []
25
+ },
26
+ title: {
27
+ type: String
28
+ },
29
+ maxCount: {
30
+ type: Number
31
+ },
32
+ tableMeta: {
33
+ type: Object,
34
+ default: () => ({})
35
+ },
36
+ returnValues: {
37
+ type: [String, Object],
38
+ default: () => ({})
39
+ },
40
+ replaceFields: {
41
+ type: Object
42
+ },
43
+ multiple: {
44
+ type: Boolean,
45
+ default: true
46
+ }
47
+ },
48
+ data() {
49
+ return {
50
+ showModalTableValue: false,
51
+ entityValue: [],
52
+ emitValue: void 0
53
+ }
54
+ },
55
+ watch: {
56
+ value: {
57
+ handler(innerValue) {
58
+ const _innerValue = type.isArray(innerValue) ? innerValue : [innerValue]
59
+ const { label, value } = this.replaceFields
60
+ this.entityValue = _innerValue.map(item => {
61
+ return {
62
+ label: item[label],
63
+ value: item[value]
64
+ }
65
+ })
66
+ },
67
+ immediate: true
68
+ }
69
+ },
70
+ computed: {
71
+ buildMeta () {
72
+ const { tableMeta } = this.tableMeta
73
+ Object.assign(tableMeta, { multiple: this.multiple })
74
+ return {
75
+ ...this.tableMeta,
76
+ footerMeta: {
77
+ elements: (ctx) => [
78
+ {
79
+ label: '确定',
80
+ type: 'primary',
81
+ key: 'save',
82
+ eventName: 'handleEntitySave'
83
+ },
84
+ {
85
+ label: '返回',
86
+ key: 'cancel',
87
+ eventName: 'handleEntityCancel'
88
+ }
89
+ ]
90
+ }
91
+ }
92
+ }
93
+ },
94
+ created () {
95
+ this.emitValue = this.multiple ? [] : void 0
96
+ },
97
+ methods: {
98
+ handleEntityCancel () {
99
+ this.showModalTableValue = false
100
+ },
101
+ buildEntityValueForEmitObjectReturnValues (dataSource = []) {
102
+ const keys = Object.keys(this.returnValues)
103
+ const ret = dataSource.map(props => {
104
+ const ret = {}
105
+ keys.forEach(key => {
106
+ ret[key] = props[this.returnValues[key]]
107
+ })
108
+ return ret
109
+ })
110
+ return this.multiple ? ret : ret[0]
111
+ },
112
+ emitEntityValue (dataSource = []) {
113
+ this.emitValue = this.value
114
+ if (this.multiple) {
115
+ if (type.isStr(this.returnValues)) {
116
+ const ret = dataSource.map(props => {
117
+ return props[this.returnValues]
118
+ })
119
+ this.emitValue.push(...ret)
120
+ } else if (type.isObject(this.returnValues)) {
121
+ this.emitValue.push(...this.buildEntityValueForEmitObjectReturnValues(dataSource))
122
+ }
123
+ } else {
124
+ if (type.isStr(this.returnValues)) {
125
+ this.emitValue = dataSource ? dataSource[this.returnValues] : ''
126
+ } else if (type.isObject(this.returnValues)) {
127
+ this.emitValue = dataSource ? this.buildEntityValueForEmitObjectReturnValues([dataSource]) : ''
128
+ }
129
+ }
130
+ this.$emit('change', this.emitValue)
131
+ },
132
+ onClosSelectEntity (props) {
133
+ this.entityValue = this.entityValue.filter(item => item.value !== props.value)
134
+ if (this.multiple) {
135
+ if (type.isStr(this.returnValues)) {
136
+ this.emitValue = this.emitValue.filter(item => item !== props.value)
137
+ } else if (type.isObject(this.returnValues)) {
138
+ const reverseReturnValues = Object.fromEntries(Object.entries(this.returnValues).map(([key, value]) => [value, key]))
139
+ const primaryKey = reverseReturnValues[this.replaceFields.value]
140
+ this.emitValue = this.emitValue.filter(item => item[primaryKey] !== props.value)
141
+ }
142
+ } else {
143
+ if (type.isStr(this.returnValues)) {
144
+ this.emitValue = ''
145
+ } else if (type.isObject(this.returnValues)) {
146
+ this.emitValue = {}
147
+ }
148
+ }
149
+ this.$emit('change', this.emitValue)
150
+ },
151
+ handleEntitySave (props) {
152
+ const { exposed = {} } = props
153
+ const { currentTableSelection } = exposed
154
+ const currentTableSelectionRet = type.isArray(currentTableSelection) ? currentTableSelection : [currentTableSelection]
155
+ this.entityValue = currentTableSelectionRet.map(item => {
156
+ return {
157
+ label: item[this.replaceFields.label],
158
+ value: item[this.replaceFields.value]
159
+ }
160
+ })
161
+ this.emitEntityValue(currentTableSelection)
162
+ this.showModalTableValue = false
163
+ },
164
+ showModalTable () {
165
+ this.showModalTableValue = true
166
+ },
167
+ evokeSelectEntity () {
168
+ this.showModalTable()
169
+ }
170
+ }
171
+ }
172
+ </script>
@@ -1,5 +1,5 @@
1
- import EleDate from './src/index.vue'
2
-
3
- EleDate.install = Vue => Vue.component(EleDate.name, EleDate)
4
-
1
+ import EleDate from './src/index.vue'
2
+
3
+ EleDate.install = Vue => Vue.component(EleDate.name, EleDate)
4
+
5
5
  export default EleDate
@@ -1,40 +1,113 @@
1
- <template>
2
- <a-date-picker
3
- style="width: 100%;"
4
- mode="year"
5
- :open="open"
6
- :value="value"
7
- @focus="onFocus"
8
- @panelChange="onPanelChange"
9
- :format="format">
10
- </a-date-picker>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: 'ele-date',
16
- props: {
17
- value: {
18
- type: Object
19
- },
20
- format: {
21
- type: String,
22
- default: 'YYYY/MM/DD'
23
- }
24
- },
25
- data () {
26
- return {
27
- open: false
28
- }
29
- },
30
- methods: {
31
- onFocus () {
32
- this.open = true
33
- },
34
- onPanelChange (value, mode) {
35
- this.$emit('input', value)
36
- this.open = false
37
- }
38
- }
39
- }
40
- </script>
1
+ <template>
2
+ <div class="ele-date__wrapper">
3
+ <a-date-picker
4
+ style="width: 100%;"
5
+ :mode="modeValue"
6
+ v-if="modeValue == 'year'"
7
+ :open="open"
8
+ :disabled="disabled"
9
+ :value="value"
10
+ :placeholder="placeholder"
11
+ :show-time="showTime"
12
+ :show-today="showToday"
13
+ :valueFormat="innerValueFormat"
14
+ @panelChange="onPanelChange"
15
+ @openChange="openChange"
16
+ @change="onChange"
17
+ :format="format">
18
+ </a-date-picker>
19
+ <a-date-picker
20
+ v-else
21
+ style="width: 100%;"
22
+ :placeholder="placeholder"
23
+ :open="open"
24
+ :disabled="disabled"
25
+ :value="value"
26
+ :show-time="showTime"
27
+ :show-today="showToday"
28
+ :valueFormat="innerValueFormat"
29
+ @panelChange="onPanelChange"
30
+ @openChange="openChange"
31
+ @change="onChange"
32
+ :format="format">
33
+ </a-date-picker>
34
+ </div>
35
+ </template>
36
+
37
+ <script>
38
+ import moment from 'moment'
39
+ export default {
40
+ name: 'ele-date',
41
+ model: {
42
+ prop: 'value',
43
+ event: 'change'
44
+ },
45
+ props: {
46
+ value: {
47
+ type: [String, Object]
48
+ },
49
+ disabled: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ format: {
54
+ type: String,
55
+ default: 'YYYY/MM/DD'
56
+ },
57
+ mode: {
58
+ type: String
59
+ },
60
+ valueFormat: {
61
+ type: String
62
+ },
63
+ showTime: {
64
+ type: [Boolean, Object],
65
+ default: true
66
+ },
67
+ showToday: {
68
+ type: Boolean,
69
+ default: true
70
+ },
71
+ placeholder: {
72
+ type: String,
73
+ default: '请选择日期'
74
+ }
75
+ },
76
+ data () {
77
+ return {
78
+ open: false
79
+ }
80
+ },
81
+ computed: {
82
+ innerValueFormat () {
83
+ if (this.valueFormat) return this.valueFormat
84
+ return this.format
85
+ },
86
+ modeValue () {
87
+ if (this.mode) return this.mode
88
+ if (this.format === 'YYYY') return 'year'
89
+ return 'date'
90
+ }
91
+ },
92
+ methods: {
93
+ onChange (_, dataString) {
94
+ this.$emit('input', dataString)
95
+ this.$emit('change', dataString)
96
+ },
97
+ onPanelChange (value, mode) {
98
+ if (this.modeValue !== 'year') return
99
+ this.$emit('input', moment(value).format(this.format))
100
+ this.$emit('change', moment(value).format(this.format))
101
+ this.open = false
102
+ },
103
+ openChange (open) {
104
+ this.open = open
105
+ }
106
+ }
107
+ }
108
+ </script>
109
+ <style lang="scss" scoped>
110
+ .ele-date__wrapper {
111
+ width: 100%;
112
+ }
113
+ </style>
@@ -0,0 +1,5 @@
1
+ import EleDateRange from './src/index.vue'
2
+
3
+ EleDateRange.install = Vue => Vue.component(EleDateRange.name, EleDateRange)
4
+
5
+ export default EleDateRange
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <a-range-picker
3
+ style="width: 100%;"
4
+ :disabled="disabled"
5
+ :show-time="showTime"
6
+ :value="value"
7
+ :format="format"
8
+ @change="onChange">
9
+ </a-range-picker>
10
+ </template>
11
+
12
+ <script>
13
+ export default {
14
+ name: 'ele-date-range',
15
+ model: {
16
+ prop: 'value',
17
+ event: 'change'
18
+ },
19
+ props: {
20
+ disabled: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ showTime: {
25
+ type: Object
26
+ },
27
+ format: {
28
+ type: Array,
29
+ default: () => ['YYYY-MM-DD', 'YYYY-MM-DD']
30
+ },
31
+ value: {
32
+ type: Array,
33
+ default: () => []
34
+ }
35
+ },
36
+ methods: {
37
+ onChange (date, dateString) {
38
+ this.$emit('change', dateString)
39
+ }
40
+ }
41
+ }
42
+ </script>
43
+
44
+ <style lang="scss" scoped>
45
+
46
+ </style>
47
+ import { models } from '../..';
@@ -0,0 +1,5 @@
1
+ import EleForm from './src/index.vue'
2
+
3
+ EleForm.install = Vue => Vue.component(EleForm.name, EleForm)
4
+
5
+ export default EleForm