resolver-egretimp-plus 0.1.106 → 0.1.108
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.
- package/dist/846/index.js +2 -0
- package/dist/846/index.js.LICENSE.txt +6 -0
- package/dist/h5/index.js +2 -2
- package/dist/theme/element/index.css +1 -1
- package/dist/theme/element/src/components/common.scss +1 -0
- package/dist/theme/element/src/components/table.scss +30 -9
- package/dist/web/index.js +74 -74
- package/dist/web/index.js.LICENSE.txt +0 -7
- package/package.json +1 -1
- package/src/analysisComponent.jsx +1 -0
- package/src/components/packages-H5/CustomComponentTableH5.vue +4 -0
- package/src/components/packages-web/CustomComponentCollapse.vue +11 -3
- package/src/components/packages-web/CustomComponentEditor.vue +11 -4
- package/src/components/packages-web/CustomComponentTable.jsx +203 -106
- package/src/components/patchComponents-web.js +1 -1
- package/src/components/tabs/src/tab-bar.vue +1 -1
- package/src/resolver-common.vue +2 -2
- package/src/theme/element/components/common.scss +1 -0
- package/src/theme/element/components/table.scss +30 -9
package/package.json
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
import { commonPropsType, formatDate, formatAmount, getConfigOptions, hasOwn, isPlainObject } from '../../utils/index.js'
|
|
3
3
|
import { computed, inject, onMounted, reactive, ref, useAttrs, watch } from 'vue'
|
|
4
4
|
|
|
5
|
+
defineOptions({
|
|
6
|
+
inheritAttrs: false
|
|
7
|
+
})
|
|
8
|
+
|
|
5
9
|
const attrs = useAttrs()
|
|
6
10
|
const lang = inject('lang')
|
|
7
11
|
const selects = inject('selects')
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<ElCollapseItem v-bind="collapseItemProps" :class="collapseItemClass">
|
|
5
5
|
<template #title>
|
|
6
6
|
<div class="collapge-slot-title">
|
|
7
|
-
<ElRow align="middle" :class="
|
|
7
|
+
<ElRow align="middle" :class="polyElClass">
|
|
8
8
|
<span>{{ lang.indexOf('zh') > -1 ? props.config.metaNameZh : props.config.metaNameEn }}</span>
|
|
9
9
|
<Renderer @click="stopPropagation" :config="rightSlotPmPageMetaList" v-model="props.refValue.value"></Renderer>
|
|
10
10
|
</ElRow>
|
|
@@ -25,6 +25,7 @@ import { ElCollapse, ElCollapseItem, ElCard, ElRow } from 'element-plus'
|
|
|
25
25
|
import Renderer from '../../renderer.jsx'
|
|
26
26
|
import { computed, inject, useAttrs, defineEmits, defineProps } from 'vue'
|
|
27
27
|
import { commonPropsType, hasOwn } from '../../utils/index.js'
|
|
28
|
+
import { reactive } from 'vue'
|
|
28
29
|
|
|
29
30
|
defineOptions({
|
|
30
31
|
inheritAttrs: false
|
|
@@ -79,6 +80,10 @@ const showSegment = computed(() => {
|
|
|
79
80
|
return props?.showSegment == '1'
|
|
80
81
|
})
|
|
81
82
|
|
|
83
|
+
const polyElClass = reactive({
|
|
84
|
+
'hidden-head-flag': hiddenHeadFlag.value
|
|
85
|
+
})
|
|
86
|
+
|
|
82
87
|
const collapseClass = computed(() => {
|
|
83
88
|
return {
|
|
84
89
|
'underline-hidden': hasOwn(props.config, 'underlineHidden') ? props.config.underlineHidden : noCollpase.value,
|
|
@@ -122,11 +127,14 @@ const stopPropagation = (e) => {
|
|
|
122
127
|
e?.stopPropagation()
|
|
123
128
|
}
|
|
124
129
|
|
|
130
|
+
const needWrap = computed(() => {
|
|
131
|
+
return props.config.needWrap === true || props.config.needWrap == '1'
|
|
132
|
+
})
|
|
125
133
|
const component = computed(() => {
|
|
126
|
-
return
|
|
134
|
+
return needWrap.value ? ElCard : 'div'
|
|
127
135
|
})
|
|
128
136
|
const componentProps = computed(() => {
|
|
129
|
-
return
|
|
137
|
+
return needWrap.value ? {
|
|
130
138
|
shadow: 'never'
|
|
131
139
|
} : {}
|
|
132
140
|
})
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { computed, inject } from 'vue'
|
|
3
|
-
import { Quill, quillEditor } from 'vue3-quill'
|
|
2
|
+
import { computed, inject, ref } from 'vue'
|
|
3
|
+
// import { Quill, quillEditor } from 'vue3-quill'
|
|
4
4
|
import { commonPropsType } from '../../utils';
|
|
5
5
|
|
|
6
|
+
const currentComp = ref(null)
|
|
7
|
+
|
|
8
|
+
import('vue3-quill').then(({ Quill, quillEditor }) => {
|
|
9
|
+
currentComp.value = quillEditor
|
|
10
|
+
})
|
|
11
|
+
|
|
6
12
|
const props = defineProps({
|
|
7
13
|
...commonPropsType,
|
|
8
14
|
})
|
|
@@ -24,7 +30,8 @@ const editorStyle = computed(() => {
|
|
|
24
30
|
</script>
|
|
25
31
|
<template>
|
|
26
32
|
<div class="custom-component-editor">
|
|
27
|
-
<
|
|
33
|
+
<component
|
|
34
|
+
:is="currentComp"
|
|
28
35
|
ref="fieldEditor"
|
|
29
36
|
v-model:value="modelValue"
|
|
30
37
|
:options="editorOption"
|
|
@@ -33,7 +40,7 @@ const editorStyle = computed(() => {
|
|
|
33
40
|
@focus="() => {}"
|
|
34
41
|
@change="() => {}"
|
|
35
42
|
:style="editorStyle"
|
|
36
|
-
></
|
|
43
|
+
></component>
|
|
37
44
|
</div>
|
|
38
45
|
</template>
|
|
39
46
|
<style lang="scss">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { ElPagination } from 'element-plus'
|
|
2
|
+
import { ElAutoResizer, ElPagination, ElTableV2 } from 'element-plus'
|
|
3
3
|
import ElTable, { ElTableColumn } from '../table'
|
|
4
4
|
import Renderer from '../../renderer.jsx'
|
|
5
5
|
import { computed, inject, watch, h, ref, reactive } from 'vue'
|
|
@@ -11,10 +11,64 @@ export default {
|
|
|
11
11
|
name: 'CustomComponentTable',
|
|
12
12
|
props: {
|
|
13
13
|
...commonPropsType,
|
|
14
|
+
...ElTableV2.props,
|
|
14
15
|
...ElTable.props,
|
|
15
16
|
...ElPagination.props
|
|
16
17
|
},
|
|
17
18
|
setup(props, { expose, attrs, emit }) {
|
|
19
|
+
// 虚拟表格列的属性
|
|
20
|
+
const virtualizedColumnPropKeys = ['align', 'class', 'key', 'dataKey', 'fixed', 'flexGrow', 'flexShrink', 'headerClass', 'hidden', 'style', 'sortable', 'title', 'maxWidth', 'minWidth', 'width']
|
|
21
|
+
// 开启虚拟化表格
|
|
22
|
+
const isVirtualized = computed(() => {
|
|
23
|
+
// if (props.config.metaCode === 'mksAttachList') {
|
|
24
|
+
// return false
|
|
25
|
+
// }
|
|
26
|
+
// return true
|
|
27
|
+
return props.config?.isVirtualized == '1'
|
|
28
|
+
})
|
|
29
|
+
let pageSize = 5 // 默认每页5条
|
|
30
|
+
if (props.config?.pageSize) {
|
|
31
|
+
pageSize = parseInt(props.config.pageSize) || 5
|
|
32
|
+
}
|
|
33
|
+
const page = reactive({
|
|
34
|
+
pageNum: 1,
|
|
35
|
+
pageSize,
|
|
36
|
+
total: 0,
|
|
37
|
+
})
|
|
38
|
+
// 开启前端分页
|
|
39
|
+
const isFrontPage = computed(() => {
|
|
40
|
+
return props.config?.frontPageFlag == '1'
|
|
41
|
+
})
|
|
42
|
+
// 是否配置分页功能 ====== start======
|
|
43
|
+
const pageable = computed(() => {
|
|
44
|
+
return props.config?.pageable == '1'
|
|
45
|
+
})
|
|
46
|
+
// 分页器布局模式
|
|
47
|
+
const pageAlign = computed(() => {
|
|
48
|
+
return props.config?.pageAlign
|
|
49
|
+
})
|
|
50
|
+
const PAGE_LEFT = 'left'
|
|
51
|
+
const PAGE_CENTER = 'center'
|
|
52
|
+
const PAGE_RIGHT = 'right'
|
|
53
|
+
const pageAlignEnmu = {
|
|
54
|
+
[PAGE_LEFT]: 'flex-start',
|
|
55
|
+
[PAGE_RIGHT]: 'flex-end',
|
|
56
|
+
[PAGE_CENTER]: 'center'
|
|
57
|
+
}
|
|
58
|
+
// 表格是否开启单行可选择配置
|
|
59
|
+
const selectable = computed(() => {
|
|
60
|
+
return props.config?.selectable == '1' || props.config?.canSelect
|
|
61
|
+
})
|
|
62
|
+
const indectModeRef = inject('indectModeRef', ref(''))
|
|
63
|
+
const ruleExecuter = inject('_ruleExecuter')
|
|
64
|
+
const dynamicMapComp = inject('dynamicMapComp')
|
|
65
|
+
const parentRootValue = inject('_parentRootValue', {})
|
|
66
|
+
const parentDynamicMapComp = inject('_parentDynamicMapComp', {})
|
|
67
|
+
const selectionsObj = inject('_selectionsObj', {})
|
|
68
|
+
const rootStore = inject('_rootStore', {})
|
|
69
|
+
const lang = inject('lang')
|
|
70
|
+
const rootValue = inject('rootValue')
|
|
71
|
+
const selects = inject('selects')
|
|
18
72
|
const modelValue = computed({
|
|
19
73
|
get() {
|
|
20
74
|
return props.modelValue
|
|
@@ -24,7 +78,8 @@ export default {
|
|
|
24
78
|
}
|
|
25
79
|
})
|
|
26
80
|
const tableProps = computed(() => {
|
|
27
|
-
const
|
|
81
|
+
const tableComp = isVirtualized.value ? ElTableV2 : ElTable
|
|
82
|
+
const porpsObj = Object.keys(tableComp.props).reduce((ret, key) => {
|
|
28
83
|
if (props[key] !== undefined && props[key] !== null) {
|
|
29
84
|
ret[key] = props[key]
|
|
30
85
|
}
|
|
@@ -40,7 +95,7 @@ export default {
|
|
|
40
95
|
})
|
|
41
96
|
|
|
42
97
|
const getCompEvents = (comp) => {
|
|
43
|
-
let emitKeys = comp.emits
|
|
98
|
+
let emitKeys = comp.emits || {}
|
|
44
99
|
if(!Array.isArray(emitKeys)) {
|
|
45
100
|
emitKeys = Object.keys(emitKeys)
|
|
46
101
|
}
|
|
@@ -54,7 +109,8 @@ export default {
|
|
|
54
109
|
}
|
|
55
110
|
|
|
56
111
|
const tableEvents = computed(() => {
|
|
57
|
-
|
|
112
|
+
const tableComp = isVirtualized.value ? ElTableV2 : ElTable
|
|
113
|
+
return getCompEvents(tableComp)
|
|
58
114
|
})
|
|
59
115
|
const sliceTableEvents = computed(() => {
|
|
60
116
|
const ret = {
|
|
@@ -67,16 +123,6 @@ export default {
|
|
|
67
123
|
return getCompEvents(ElPagination)
|
|
68
124
|
})
|
|
69
125
|
|
|
70
|
-
const indectModeRef = inject('indectModeRef', ref(''))
|
|
71
|
-
const ruleExecuter = inject('_ruleExecuter')
|
|
72
|
-
const dynamicMapComp = inject('dynamicMapComp')
|
|
73
|
-
const parentRootValue = inject('_parentRootValue', {})
|
|
74
|
-
const parentDynamicMapComp = inject('_parentDynamicMapComp', {})
|
|
75
|
-
const selectionsObj = inject('_selectionsObj', {})
|
|
76
|
-
const rootStore = inject('_rootStore', {})
|
|
77
|
-
const lang = inject('lang')
|
|
78
|
-
const rootValue = inject('rootValue')
|
|
79
|
-
const selects = inject('selects')
|
|
80
126
|
const tableColumnFirstMetaCode = ref("")
|
|
81
127
|
const tableColumnConfigs = computed(() => {
|
|
82
128
|
let pmPageMetaList = props.config.pmPageMetaList || []
|
|
@@ -91,18 +137,7 @@ export default {
|
|
|
91
137
|
return normalColumnConfig(config)
|
|
92
138
|
})
|
|
93
139
|
})
|
|
94
|
-
|
|
95
|
-
if (props.config?.pageSize) {
|
|
96
|
-
pageSize = parseInt(props.config.pageSize) || 5
|
|
97
|
-
}
|
|
98
|
-
const page = reactive({
|
|
99
|
-
pageNum: 1,
|
|
100
|
-
pageSize,
|
|
101
|
-
total: 0,
|
|
102
|
-
})
|
|
103
|
-
const isFrontPage = computed(() => {
|
|
104
|
-
return props.config?.frontPageFlag == '1'
|
|
105
|
-
})
|
|
140
|
+
|
|
106
141
|
const normalPageTotal = computed(() => {
|
|
107
142
|
return !isFrontPage.value ? page.total : ((modelValue.value || [])?.length || 0)
|
|
108
143
|
})
|
|
@@ -156,14 +191,15 @@ export default {
|
|
|
156
191
|
/** 自定义排序逻辑 ===end==== */
|
|
157
192
|
|
|
158
193
|
// 获取表格列的属性配置
|
|
159
|
-
|
|
194
|
+
function getTableColumnProps(config, idx) {
|
|
160
195
|
const nextList = tableColumnConfigs.value.slice(idx + 1)
|
|
161
196
|
// 当前config表格列是最后一个显示列,并且后面有hidden的列
|
|
162
197
|
const isEndConfig = !nextList?.filter(config => {
|
|
163
198
|
return config.displayType != DISPLAY_HIDDEN && !(config.width == 0 || config.width == '0px' || config.hidden == '1')
|
|
164
199
|
})?.length
|
|
165
200
|
const nextConfig = nextList.find(config => config.displayType != DISPLAY_HIDDEN)
|
|
166
|
-
const
|
|
201
|
+
const columnkeys = isVirtualized.value ? virtualizedColumnPropKeys : ElTableColumn.props
|
|
202
|
+
const retObj = Object.keys(columnkeys).reduce((ret, key) => {
|
|
167
203
|
if (hasOwn(config, key)) {
|
|
168
204
|
ret[key] = config[key]
|
|
169
205
|
}
|
|
@@ -181,22 +217,37 @@ export default {
|
|
|
181
217
|
}
|
|
182
218
|
if (config.columnWidth) {
|
|
183
219
|
retObj.width = config.columnWidth
|
|
220
|
+
if (isVirtualized.value) {
|
|
221
|
+
retObj.width = parseInt(retObj.width)
|
|
222
|
+
}
|
|
184
223
|
}
|
|
185
224
|
if (!retObj.width) {
|
|
186
|
-
retObj.minWidth =
|
|
225
|
+
retObj.minWidth = 160
|
|
226
|
+
if (isVirtualized.value) {
|
|
227
|
+
retObj.width = 160
|
|
228
|
+
retObj.headerClass = 'flex-grow-import'
|
|
229
|
+
retObj.class = 'flex-grow-import'
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
let classKey = 'className'
|
|
233
|
+
if (isVirtualized.value) {
|
|
234
|
+
classKey = 'class'
|
|
187
235
|
}
|
|
188
236
|
if (retObj.width == 0 || retObj.width == '0px' || config.hidden == '1') {
|
|
189
|
-
retObj
|
|
190
|
-
retObj.width =
|
|
237
|
+
retObj[classKey] = 'hidden-column'
|
|
238
|
+
retObj.width = 1
|
|
239
|
+
if (isVirtualized.value) {
|
|
240
|
+
retObj.headerClass = 'hidden-column'
|
|
241
|
+
}
|
|
191
242
|
}
|
|
192
243
|
if (nextConfig && (nextConfig.width == 0 || nextConfig.width == '0px' || nextConfig.hidden == '1')) {
|
|
193
|
-
retObj
|
|
244
|
+
retObj[classKey] = `${retObj[classKey] || ''} next-hidden-column`
|
|
194
245
|
}
|
|
195
246
|
if (isEndConfig) {
|
|
196
|
-
retObj
|
|
247
|
+
retObj[classKey] = `${retObj[classKey] || ''} end-show-column`
|
|
197
248
|
}
|
|
198
249
|
if (config.metaType == 'CustomComponentSelectEmployees') {
|
|
199
|
-
retObj
|
|
250
|
+
retObj[classKey] = `${retObj[classKey] || ''} clear-index`
|
|
200
251
|
}
|
|
201
252
|
if (
|
|
202
253
|
isPlainColumn({...config, isColumn: true}, true) &&
|
|
@@ -235,11 +286,12 @@ export default {
|
|
|
235
286
|
return orginRet && parentSelectionsRet
|
|
236
287
|
}
|
|
237
288
|
}
|
|
289
|
+
|
|
238
290
|
return retObj
|
|
239
291
|
}
|
|
240
292
|
|
|
241
293
|
// 获取表格的配置,这边会做一下配置转化,表格中的不需要labelWidth
|
|
242
|
-
|
|
294
|
+
function normalColumnConfig(config) {
|
|
243
295
|
return {
|
|
244
296
|
...config,
|
|
245
297
|
labelHidden: '1'
|
|
@@ -247,7 +299,7 @@ export default {
|
|
|
247
299
|
}
|
|
248
300
|
|
|
249
301
|
// 列中是否需要展示render渲染
|
|
250
|
-
|
|
302
|
+
function tableColumnNotRender(config) {
|
|
251
303
|
if (!config) return true
|
|
252
304
|
// if (config['show-overflow-tooltip'] || config.showOverflowTooltip) return true
|
|
253
305
|
// 'selection', 'index' 是el-table属性type中type的两个枚举,这两个直接使用默认效果
|
|
@@ -257,12 +309,11 @@ export default {
|
|
|
257
309
|
const metaTypeNotRender = TABLE_COLUMN_NOT_RENDER_META_TYPE.some(metaType => compareComponet(metaType, config.metaType)) || !config.metaType
|
|
258
310
|
return !config.renderby && metaTypeNotRender
|
|
259
311
|
}
|
|
260
|
-
|
|
261
312
|
|
|
262
|
-
|
|
313
|
+
function getValue(idx) {
|
|
263
314
|
return tableData.value?.[idx]
|
|
264
315
|
}
|
|
265
|
-
|
|
316
|
+
function onUpdateModelValue(val, idx) {
|
|
266
317
|
if (!modelValue.value) {
|
|
267
318
|
modelValue.value = []
|
|
268
319
|
}
|
|
@@ -350,7 +401,7 @@ export default {
|
|
|
350
401
|
return ret
|
|
351
402
|
}, defaultTotalObj)
|
|
352
403
|
})
|
|
353
|
-
|
|
404
|
+
function defaultTotalFn(total, val, row) {
|
|
354
405
|
if (val === undefined || val === null) {
|
|
355
406
|
val = 0
|
|
356
407
|
if (val === undefined) {
|
|
@@ -386,10 +437,7 @@ export default {
|
|
|
386
437
|
})
|
|
387
438
|
// 统计行定义 ====end======
|
|
388
439
|
|
|
389
|
-
//
|
|
390
|
-
const selectable = computed(() => {
|
|
391
|
-
return props.config?.selectable == '1' || props.config?.canSelect
|
|
392
|
-
})
|
|
440
|
+
// 开启单行选择配置后需要的逻辑=====start=====
|
|
393
441
|
const selectedRow = ref(null)
|
|
394
442
|
const currentChange = (row) => {
|
|
395
443
|
selectedRow.value = row
|
|
@@ -401,22 +449,8 @@ export default {
|
|
|
401
449
|
multipleSelection.value = val
|
|
402
450
|
rootStore.tableSelectedInfo = val
|
|
403
451
|
}
|
|
452
|
+
// 开启单行选择配置后需要的逻辑=====end=====
|
|
404
453
|
|
|
405
|
-
// 是否配置分页功能 ====== start======
|
|
406
|
-
const pageable = computed(() => {
|
|
407
|
-
return props.config?.pageable == '1'
|
|
408
|
-
})
|
|
409
|
-
const pageAlign = computed(() => {
|
|
410
|
-
return props.config?.pageAlign
|
|
411
|
-
})
|
|
412
|
-
const PAGE_LEFT = 'left'
|
|
413
|
-
const PAGE_CENTER = 'center'
|
|
414
|
-
const PAGE_RIGHT = 'right'
|
|
415
|
-
const pageAlignEnmu = {
|
|
416
|
-
[PAGE_LEFT]: 'flex-start',
|
|
417
|
-
[PAGE_RIGHT]: 'flex-end',
|
|
418
|
-
[PAGE_CENTER]: 'center'
|
|
419
|
-
}
|
|
420
454
|
// 获取分页功能属性
|
|
421
455
|
const paginationProps = computed(() => {
|
|
422
456
|
const attrs = Object.keys(ElPagination.props).reduce((ret, key) => {
|
|
@@ -505,57 +539,120 @@ export default {
|
|
|
505
539
|
return totalRow.value?.length ? [...tableData.value, ...totalRow.value] : tableData.value
|
|
506
540
|
})
|
|
507
541
|
// console.log('dynamicMapComp===:', inject('dynamicMapComp'))
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
>
|
|
542
|
+
|
|
543
|
+
function generateCellSolts(columnConfg, configIdx) {
|
|
544
|
+
let headerKey = 'header'
|
|
545
|
+
let cellKey = 'default'
|
|
546
|
+
if (isVirtualized.value) {
|
|
547
|
+
headerKey = 'headerCellRenderer'
|
|
548
|
+
cellKey = 'cellRenderer'
|
|
549
|
+
}
|
|
550
|
+
return {
|
|
551
|
+
[headerKey]: () => (
|
|
552
|
+
<span className='head-span' title={lang.value.indexOf('zh') > -1 ? columnConfg.metaNameZh : columnConfg.metaNameEn}>
|
|
553
|
+
{ columnConfg.requiredFlag == '1' ? <span style="color: rgb(245, 34, 45); margin-right: 3px;">*</span> : '' }
|
|
554
|
+
{ columnConfg.headerRender ? columnConfg.headerRender(h, { props, config: columnConfg, lang, rootValue, selects })
|
|
555
|
+
: (lang.value.indexOf('zh') > -1 ? columnConfg.metaNameZh : columnConfg.metaNameEn)
|
|
556
|
+
}
|
|
519
557
|
{
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
<
|
|
558
|
+
columnConfg.hintFlag == '1' ? (
|
|
559
|
+
<ElTooltip effect="dark" content={lang.value.indexOf('zh') > -1 ? columnConfg.hintContentZh : columnConfg.hintContentEn} placement="top">
|
|
560
|
+
<elIcon style="fontSize: 16px; verticalAlign: sub; margin-left: 3px;"><QuestionFilled /></elIcon>
|
|
561
|
+
</ElTooltip>
|
|
562
|
+
) : null
|
|
563
|
+
}
|
|
564
|
+
</span>
|
|
565
|
+
),
|
|
566
|
+
[cellKey]: (params) => {
|
|
567
|
+
let row = params.row
|
|
568
|
+
let $index = params.$index
|
|
569
|
+
if (isVirtualized.value) {
|
|
570
|
+
row = params.rowData
|
|
571
|
+
$index = params.rowIndex
|
|
572
|
+
}
|
|
573
|
+
if (row.totalFlag) {
|
|
574
|
+
return totalCodeRenders.value[columnConfg.metaCode] ? totalCodeRenders.value[columnConfg.metaCode]({
|
|
575
|
+
val: row[columnConfg.metaCode],
|
|
576
|
+
row,
|
|
577
|
+
h
|
|
578
|
+
}) : null
|
|
579
|
+
}
|
|
580
|
+
// const config = columnConfg
|
|
581
|
+
const config = multiPmPageMetaList.value?.[$index]?.[configIdx]
|
|
582
|
+
return (
|
|
583
|
+
tableColumnNotRender(config) ? null :
|
|
584
|
+
<Renderer key={`${config.columnId}-${config.rowIndex}`} class="error-tip-block" rowScope={{row, $index}} modelValue={getValue($index)} onUpdate:modelValue={(val) => { onUpdateModelValue(val, $index) }} config={config}></Renderer>
|
|
585
|
+
)
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
function generateRenderVnode() {
|
|
591
|
+
if (isVirtualized.value) {
|
|
592
|
+
let height = '500px'
|
|
593
|
+
if (!dataList.value?.length) {
|
|
594
|
+
height = '100px'
|
|
595
|
+
}
|
|
596
|
+
return (
|
|
597
|
+
<ElAutoResizer style={{height}}>
|
|
598
|
+
{{
|
|
599
|
+
default: ({ height, width }) => {
|
|
600
|
+
const columns = tableColumnConfigs.value.map((columnConfg, configIdx) => {
|
|
601
|
+
return columnConfg.displayType == DISPLAY_HIDDEN ? null : {
|
|
602
|
+
key: columnConfg.requiredFlag + columnConfg.metaCode,
|
|
603
|
+
...getTableColumnProps(columnConfg, configIdx),
|
|
604
|
+
...generateCellSolts(columnConfg, configIdx),
|
|
605
|
+
}
|
|
606
|
+
}).filter(item => !!item)
|
|
607
|
+
return (
|
|
608
|
+
<ElTableV2
|
|
609
|
+
{...tableProps.value} {...sliceTableEvents.value}
|
|
610
|
+
class="table-border"
|
|
611
|
+
cache={2}
|
|
612
|
+
data={dataList.value}
|
|
613
|
+
columns={columns}
|
|
614
|
+
fixed
|
|
615
|
+
width={width}
|
|
616
|
+
height={height}
|
|
617
|
+
>
|
|
523
618
|
{{
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
{ columnConfg.headerRender ? columnConfg.headerRender(h, { props, config: columnConfg, lang, rootValue, selects })
|
|
528
|
-
: (lang.value.indexOf('zh') > -1 ? columnConfg.metaNameZh : columnConfg.metaNameEn)
|
|
529
|
-
}
|
|
530
|
-
{
|
|
531
|
-
columnConfg.hintFlag == '1' ? (
|
|
532
|
-
<ElTooltip effect="dark" content={lang.value.indexOf('zh') > -1 ? columnConfg.hintContentZh : columnConfg.hintContentEn} placement="top">
|
|
533
|
-
<elIcon style="fontSize: 16px; verticalAlign: sub; margin-left: 3px;"><QuestionFilled /></elIcon>
|
|
534
|
-
</ElTooltip>
|
|
535
|
-
) : null
|
|
536
|
-
}
|
|
537
|
-
</span>
|
|
538
|
-
),
|
|
539
|
-
default: ({row, column, $index}) => {
|
|
540
|
-
if (row.totalFlag) {
|
|
541
|
-
return totalCodeRenders.value[columnConfg.metaCode] ? totalCodeRenders.value[columnConfg.metaCode]({
|
|
542
|
-
val: row[columnConfg.metaCode],
|
|
543
|
-
row,
|
|
544
|
-
h
|
|
545
|
-
}) : null
|
|
546
|
-
}
|
|
547
|
-
const config = multiPmPageMetaList.value?.[$index]?.[configIdx]
|
|
548
|
-
return (
|
|
549
|
-
tableColumnNotRender(config) ? null :
|
|
550
|
-
<Renderer key={`${config.columnId}-${config.rowIndex}`} class="error-tip-block" rowScope={{row, $index}} modelValue={getValue($index)} onUpdate:modelValue={(val) => { onUpdateModelValue(val, $index) }} config={config}></Renderer>
|
|
551
|
-
)
|
|
552
|
-
}
|
|
619
|
+
empty: () => (<div style={{height: '60px', color: 'var(--el-text-color-secondary)', textAlign: 'center', lineHeight: '60px'}}>
|
|
620
|
+
{lang.value.indexOf('zh') > -1 ? '暂无数据' : 'No Data'}
|
|
621
|
+
</div>)
|
|
553
622
|
}}
|
|
554
|
-
</
|
|
623
|
+
</ElTableV2>
|
|
555
624
|
)
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
</
|
|
625
|
+
}
|
|
626
|
+
}}
|
|
627
|
+
</ElAutoResizer>
|
|
628
|
+
)
|
|
629
|
+
}
|
|
630
|
+
return (
|
|
631
|
+
<ElTable {...tableProps.value} {...sliceTableEvents.value}
|
|
632
|
+
ref={(e) => {tableRef.value = e}}
|
|
633
|
+
highlight-current-row={selectable.value || tableProps.value?.highlightCurrentRow ? true : false}
|
|
634
|
+
onCurrentChange={selectable.value || tableProps.value?.highlightCurrentRow ? currentChange : () => {}}
|
|
635
|
+
data={dataList.value}
|
|
636
|
+
onSelectionChange={handleSelectionChange}
|
|
637
|
+
onSortChange={onSortChange}
|
|
638
|
+
>
|
|
639
|
+
{
|
|
640
|
+
tableColumnConfigs.value.map((columnConfg, configIdx) => {
|
|
641
|
+
return columnConfg.displayType == DISPLAY_HIDDEN ? null : (
|
|
642
|
+
<ElTableColumn key={columnConfg.requiredFlag + columnConfg.metaCode} {...getTableColumnProps(columnConfg, configIdx)}>
|
|
643
|
+
{generateCellSolts(columnConfg, configIdx)}
|
|
644
|
+
</ElTableColumn>
|
|
645
|
+
)
|
|
646
|
+
})
|
|
647
|
+
}
|
|
648
|
+
</ElTable>
|
|
649
|
+
)
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
return () => {
|
|
653
|
+
return (
|
|
654
|
+
<div class="custom-component-table">
|
|
655
|
+
{ generateRenderVnode() }
|
|
559
656
|
{
|
|
560
657
|
pageable.value ?
|
|
561
658
|
<div class="pagination-wrap" style={{'justify-content': pageAlignEnmu[pageAlign.value || PAGE_RIGHT]}}>
|
|
@@ -15,7 +15,7 @@ export default function () {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
} catch (error) {
|
|
18
|
-
modulesFiles = import.meta.glob('./packages-web/*.{vue,jsx,js}')
|
|
18
|
+
modulesFiles = import.meta.glob('./packages-web/*.{vue,jsx,js}', { eager: true })
|
|
19
19
|
modulesFilesKeys = Object.keys(modulesFiles)
|
|
20
20
|
resolveModule = (modulePath) => {
|
|
21
21
|
return modulesFiles[modulePath]
|
package/src/resolver-common.vue
CHANGED
|
@@ -46,8 +46,8 @@ const loadSelects = ref({})
|
|
|
46
46
|
const attrs = useAttrs()
|
|
47
47
|
const allSelects = computed(() => {
|
|
48
48
|
return {
|
|
49
|
-
...
|
|
50
|
-
...
|
|
49
|
+
...loadSelects.value,
|
|
50
|
+
...(props.selects || {})
|
|
51
51
|
}
|
|
52
52
|
})
|
|
53
53
|
initInterceptors(props.messageInstance)
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
@mixin hiddenColumn {
|
|
2
|
+
.hidden-column {
|
|
3
|
+
border: none;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
// display: none;
|
|
6
|
+
}
|
|
7
|
+
.hidden-column + .el-table__cell {
|
|
8
|
+
// border: none;
|
|
9
|
+
}
|
|
10
|
+
.next-hidden-column.end-show-column {
|
|
11
|
+
border: none;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
1
14
|
|
|
2
15
|
.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column::before, .el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column::before, .el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column::before, .el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column::before, .el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column::before, .el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column::before{
|
|
3
16
|
height: 100%;
|
|
@@ -90,7 +103,7 @@
|
|
|
90
103
|
td.el-table__cell {
|
|
91
104
|
color: var(--el-input-text-color,var(--el-text-color-regular));
|
|
92
105
|
}
|
|
93
|
-
.el-table__cell {
|
|
106
|
+
.el-table__cell,.el-table-v2__row-cell {
|
|
94
107
|
height: 40px;
|
|
95
108
|
.el-date-editor, .el-date-editor--date{
|
|
96
109
|
.el-input__wrapper{
|
|
@@ -141,18 +154,26 @@
|
|
|
141
154
|
.pagination-wrap {
|
|
142
155
|
display: flex;
|
|
143
156
|
}
|
|
144
|
-
|
|
145
|
-
|
|
157
|
+
// table-v2
|
|
158
|
+
.table-border {
|
|
159
|
+
border: 1px solid var(--el-table-border-color);
|
|
160
|
+
border-radius: var(--boder-radius);
|
|
146
161
|
overflow: hidden;
|
|
147
|
-
|
|
162
|
+
|
|
148
163
|
}
|
|
149
|
-
.
|
|
150
|
-
|
|
164
|
+
.el-table-v2__header-cell,.el-table-v2__row-cell {
|
|
165
|
+
border-right: var(--el-table-border);
|
|
166
|
+
&:last-of-type {
|
|
167
|
+
border-right: none;
|
|
168
|
+
}
|
|
151
169
|
}
|
|
152
|
-
.
|
|
153
|
-
|
|
170
|
+
.flex-grow-import {
|
|
171
|
+
flex-grow: 1 !important;
|
|
154
172
|
}
|
|
173
|
+
|
|
174
|
+
@include hiddenColumn;
|
|
175
|
+
|
|
155
176
|
.clear-index {
|
|
156
177
|
z-index: unset;
|
|
157
178
|
}
|
|
158
|
-
}
|
|
179
|
+
}
|