@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,290 +0,0 @@
1
- <template>
2
- <section class="model__tree-table">
3
- <section :ref="modelTreeWrapper" class="model__tree--wrapper">
4
- <ele-tree
5
- :tree-data="treeData"
6
- :defaultExpandedKeys="defaultExpandedKeys"
7
- :defaultSelectedKeys="defaultSelectedKeys"
8
- @select="selectTreeNode"
9
- :replace-fields="treeMeta.replaceFields || replaceFields">
10
- </ele-tree>
11
- </section>
12
- <section :ref="modelTableWrapper" class="model__table--wrapper">
13
- <ele-search-area :ref="searchArea" @search="onSearch" :data-source="searchMeta.elements"></ele-search-area>
14
- <ele-button-group :ref="buttonGroup" @click="handleClickButtonGroup" style="margin-top: 16px" :data-source="getButtonGroupElements"></ele-button-group>
15
- <ele-table
16
- v-on="$listeners"
17
- :loading="loading"
18
- :columns="columns"
19
- :total="total"
20
- :actions="actions"
21
- :pageSize="pageSize"
22
- :pageSizeOptions="pageSizeOptions"
23
- :data-source="tableData"
24
- @change-page="onChangePage"
25
- style="margin-top: 8px;"
26
- ></ele-table>
27
- </section>
28
- </section>
29
- </template>
30
-
31
- <script>
32
- import EleTree from '../../tree/src/index.vue'
33
- import EleTable from '../../table/src/index.vue'
34
- import EleSearchArea from '../../composite-components/search-area/src/index.vue'
35
- import EleButtonGroup from '../../composite-components/button-group/src/index.vue'
36
- import { type, net } from '@idooel/shared'
37
- import { v4 as uuidv4 } from 'uuid'
38
- export default {
39
- name: 'ele-tree-table-model',
40
- components: {
41
- EleTree,
42
- EleTable,
43
- EleSearchArea,
44
- EleButtonGroup
45
- },
46
- props: {
47
- treeMeta: {
48
- type: Object,
49
- default: () => ({})
50
- },
51
- searchMeta: {
52
- type: Object,
53
- default: () => ({})
54
- },
55
- buttonGroupMeta: {
56
- typeof: Object,
57
- default: () => ({})
58
- },
59
- tableMeta: {
60
- type: Object,
61
- default: () => ({})
62
- }
63
- },
64
- data () {
65
- return {
66
- treeData: [],
67
- tableData: [],
68
- defaultExpandedKeys: [],
69
- defaultSelectedKeys: [],
70
- replaceFields: {
71
- title: 'title',
72
- children: 'children',
73
- key: 'id'
74
- },
75
- loading: false,
76
- total: 0,
77
- tableQuerys: {},
78
- resizeObserverModelTableWrapper: null,
79
- modelTableWrapperHeight: 0,
80
- currentTreeNodeData: {}
81
- }
82
- },
83
- computed: {
84
- buttonGroup () {
85
- return uuidv4()
86
- },
87
- searchArea () {
88
- return uuidv4()
89
- },
90
- modelTreeWrapper () {
91
- return uuidv4()
92
- },
93
- modelTableWrapper () {
94
- return uuidv4()
95
- },
96
- actions () {
97
- const { operations } = this.tableMeta
98
- return operations.elements
99
- },
100
- pageSize () {
101
- const { page = {} } = this.tableMeta
102
- return page.pageSize || 10
103
- },
104
- pageSizeOptions () {
105
- const { page = {} } = this.tableMeta
106
- return page.pageSizeOptions || ['10', '20', '30', '40']
107
- },
108
- columns () {
109
- const { columns, operations } = this.tableMeta
110
- if (type.get(columns) === 'array') {
111
- const columnsOptions = columns.map(item => {
112
- if (item.render) {
113
- return {
114
- title: item.title,
115
- dataIndex: item.dataIndex,
116
- width: item.width,
117
- align: item.align,
118
- fixed: item.fixed,
119
- customRender: (text, record, index) => {
120
- const { $createElement } = this
121
- return item.render.call(this, { h: $createElement, ctx: this }, typeof text == 'string' ? text : text[item.dataIndex], record, index)
122
- }
123
- }
124
- }
125
- return {
126
- title: item.title,
127
- dataIndex: item.dataIndex,
128
- width: item.width,
129
- align: item.align,
130
- fixed: item.fixed
131
- }
132
- })
133
- if (operations) {
134
- return [
135
- ...columnsOptions,
136
- {
137
- title: '操作',
138
- width: operations.width,
139
- key: 'action',
140
- fixed: 'right',
141
- scopedSlots: { customRender: 'action' }
142
- }
143
- ]
144
- }
145
- return columnsOptions
146
- } else {
147
- console.error('Error: columns is invalid, please check it')
148
- return []
149
- }
150
- },
151
- getButtonGroupElements () {
152
- const { elements } = this.buttonGroupMeta
153
- if (type.get(elements) === 'function') {
154
- return elements.call(this)
155
- } else if (type.get(elements) === 'array') {
156
- return elements
157
- } else {
158
- return []
159
- }
160
- }
161
- },
162
- async created () {
163
- this.treeData = await this.requestTreeData()
164
- const [defaultTreeNode = {}] = this.treeData
165
- this.defaultExpandedKeys = [defaultTreeNode[this.replaceFields.key]]
166
- this.defaultSelectedKeys = [defaultTreeNode[this.replaceFields.key]]
167
- const { fieldMap } = this.tableMeta
168
- this.currentTreeNodeData = defaultTreeNode
169
- this.tableData = await this.requestTableData(this.execTableFieldMap(fieldMap, defaultTreeNode))
170
- },
171
- methods: {
172
- handleClickButtonGroup (props) {
173
- const { eventName } = props
174
- this.$emit(eventName, { currentTreeNode: this.currentTreeNodeData })
175
- },
176
- watchViewPort () {
177
- const modelTableWrapper = this.$refs[this.modelTableWrapper]
178
- console.log(modelTableWrapper.getBoundingClientRect())
179
- const { top } = modelTableWrapper.getBoundingClientRect()
180
- this.$refs[this.modelTreeWrapper].style.height = `calc(100vh - ${top}px)`
181
- },
182
- async onSearch (props) {
183
- this.tableQuerys = Object.assign(this.tableQuerys, props)
184
- this.tableData = await this.requestTableData()
185
- },
186
- execTableFieldMap (fieldMap = {}, props) {
187
- let ret = {}
188
- const keys = Object.keys(fieldMap)
189
- keys.forEach(key => {
190
- const field = fieldMap[key]
191
- ret[field] = props[key]
192
- })
193
- return ret
194
- },
195
- async selectTreeNode (selectedKeys, e) {
196
- const { fieldMap } = this.tableMeta
197
- this.currentTreeNodeData = e.node.$vnode.data.props.dataRef
198
- const execFieldMapRet = this.execTableFieldMap(fieldMap, e.node.$vnode.data.props.dataRef)
199
- this.tableData = await this.requestTableData(execFieldMapRet)
200
- },
201
- async requestTreeData () {
202
- const { url, requestType } = this.treeMeta
203
- const ret = await net.get(
204
- url
205
- ).then(resp => {
206
- const { data } = resp || {}
207
- return data
208
- })
209
- return ret
210
- },
211
- async onChangePage (page, pageSize) {
212
- this.tableData = await this.requestTableData({ currentPage: page, pageSize })
213
- },
214
- async requestTableData (props = {}) {
215
- const { url, requestType, page = {} } = this.tableMeta
216
- const { pageSize = 10 } = page
217
- this.tableQuerys = Object.assign(this.tableQuerys, { currentPage: 1, pageSize }, props)
218
- const ret = await net.get(
219
- url,
220
- this.tableQuerys
221
- ).then(resp => {
222
- const { data = [], count } = resp || {}
223
- this.total = count
224
- return data.map(item => {
225
- return {
226
- key: uuidv4(),
227
- ...item
228
- }
229
- })
230
- })
231
- return ret
232
- },
233
- refreshTreeStatus (props = {}) {},
234
- refreshTableStatus (props = {}) {},
235
- getModelTableWrapperHeight () {},
236
- setModelTreeWrapperHeight (height) {
237
- this.$refs[this.modelTreeWrapper].style.height = height
238
- },
239
- setModelTableWrapperHeight () {
240
- const { top } = this.$refs[this.modelTableWrapper].getBoundingClientRect()
241
- const height = `calc(100vh - ${top}px)`
242
- this.$refs[this.modelTableWrapper].style.height = height
243
- this.setModelTreeWrapperHeight(height)
244
- },
245
- getSearchAreaHeight () {
246
- return this.$refs[this.searchArea].$el.clientHeight
247
- },
248
- getButtonGroupHeight () {
249
- return this.$refs[this.buttonGroup].$el.clientHeight
250
- }
251
- },
252
- mounted () {
253
- //TODO
254
- // this.setModelTableWrapperHeight()
255
- // this.resizeObserverModelTableWrapper = new ResizeObserver(entries => {
256
- // for (let entry of entries) {
257
- // this.modelTableWrapperHeight = entry.contentRect.height
258
- // console.log('this.modelTableWrapperHeight:', this.modelTableWrapperHeight)
259
- // console.log('getSearchAreaHeight', this.getSearchAreaHeight())
260
- // console.log('getButtonGroupHeight', this.getButtonGroupHeight())
261
- // const tableHeight = this.modelTableWrapperHeight - this.getSearchAreaHeight() - this.getButtonGroupHeight()
262
- // console.log('tableHeight', tableHeight)
263
- // }
264
- // })
265
- // this.resizeObserverModelTableWrapper.observe(this.$refs[this.modelTableWrapper])
266
- }
267
- }
268
- </script>
269
-
270
- <style lang="scss" scoped>
271
- .model__tree-table {
272
- background: transparent;
273
- display: flex;
274
- flex-direction: row;
275
- width: 100%;
276
- .model__tree--wrapper {
277
- width: 240px;
278
- background: #fff;
279
- flex-shrink: 0;
280
- padding: 16px;
281
- box-sizing: border-box;
282
- margin-right: 16px;
283
- overflow-y: auto;
284
- }
285
- .model__table--wrapper {
286
- min-width: 0;
287
- background: #fff;
288
- }
289
- }
290
- </style>