sh-view 2.9.8 → 2.9.11
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/package.json +11 -11
- package/packages/components/index.js +1 -7
- package/packages/components/sh-calendar/index.vue +2 -2
- package/packages/components/sh-date/index.vue +1 -1
- package/packages/components/sh-form/js/useForm.js +10 -3
- package/packages/components/sh-table/components/importModal.vue +7 -7
- package/packages/components/sh-table/grid.vue +1 -2
- package/packages/components/sh-table/js/props.js +7 -3
- package/packages/components/sh-table/js/tableMethods.js +42 -3
- package/packages/components/sh-table/js/useTable.js +38 -35
- package/packages/components/sh-table/table.vue +1 -2
- package/packages/components/sh-tree/components/table-tree.vue +49 -109
- package/packages/components/sh-tree/index.vue +127 -38
- package/packages/css/theme.scss +4 -0
- package/packages/index.js +0 -1
- package/packages/vxeTable/css/index.scss +18 -24
- package/packages/vxeTable/index.js +81 -49
- package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +4 -4
- package/packages/vxeTable/render/cell/vxe-render-goption.vue +3 -3
- package/packages/vxeTable/render/cell/vxe-render-img.vue +6 -2
- package/packages/vxeTable/render/cell/vxe-render-input.vue +2 -2
- package/packages/vxeTable/render/cell/vxe-render-money.vue +19 -3
- package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +4 -4
- package/packages/vxeTable/render/cell/vxe-render-select.vue +2 -2
- package/packages/vxeTable/render/cell/vxe-render-table.vue +7 -6
- package/packages/vxeTable/render/cell/vxe-render-time.vue +3 -3
- package/packages/vxeTable/render/cell/vxe-render-tree.vue +1 -1
- package/packages/vxeTable/render/footer/vxe-footer-input.vue +13 -3
- package/packages/vxeTable/render/footer/vxe-footer-money.vue +13 -3
- package/packages/vxeTable/render/globalRenders.jsx +73 -205
- package/packages/vxeTable/render/header/vxe-header-money.vue +1 -1
- package/packages/vxeTable/render/mixin/cell-hooks.js +47 -53
- package/packages/vxeTable/render/mixin/cell-props.js +2 -10
- package/packages/vxeTable/render/mixin/filter-hooks.js +3 -0
|
@@ -19,11 +19,7 @@ import ShValidators from 'sh-tools/packages/utils/validate'
|
|
|
19
19
|
import { utils } from 'sh-tools'
|
|
20
20
|
import { publicRenders, extraRenders, filterRenders, publicRendersNames } from './render/globalRenders.jsx'
|
|
21
21
|
|
|
22
|
-
let uiOptions = {
|
|
23
|
-
|
|
24
|
-
let tableOptions = {
|
|
25
|
-
zIndex: 1500,
|
|
26
|
-
version: 0,
|
|
22
|
+
let uiOptions = {
|
|
27
23
|
input: {
|
|
28
24
|
controls: false,
|
|
29
25
|
clearable: true
|
|
@@ -34,6 +30,55 @@ let tableOptions = {
|
|
|
34
30
|
keyField: 'value'
|
|
35
31
|
}
|
|
36
32
|
},
|
|
33
|
+
numberInput: {
|
|
34
|
+
clearable: true,
|
|
35
|
+
controlConfig: { enabled: false }
|
|
36
|
+
},
|
|
37
|
+
pager: {
|
|
38
|
+
currentPage: 1,
|
|
39
|
+
pageSize: 50,
|
|
40
|
+
total: 0,
|
|
41
|
+
layouts: ['Sizes', 'PrevJump', 'PrevPage', 'Number', 'NextPage', 'NextJump', 'FullJump', 'Total'],
|
|
42
|
+
pagerCount: 7,
|
|
43
|
+
pageSizes: [
|
|
44
|
+
{ label: '50条', value: 50 },
|
|
45
|
+
{ label: '100条', value: 100 },
|
|
46
|
+
{ label: '500条', value: 500 },
|
|
47
|
+
{ label: '1000条', value: 1000 },
|
|
48
|
+
{ label: '10000条', value: 10000 },
|
|
49
|
+
{ label: '10万条', value: 100000 }
|
|
50
|
+
],
|
|
51
|
+
align: 'right',
|
|
52
|
+
border: true,
|
|
53
|
+
background: false,
|
|
54
|
+
perfect: true,
|
|
55
|
+
autoHidden: false,
|
|
56
|
+
enabled: true
|
|
57
|
+
},
|
|
58
|
+
toolbar: {
|
|
59
|
+
custom: {
|
|
60
|
+
immediate: false
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
form: {},
|
|
64
|
+
modal: {
|
|
65
|
+
lockView: true,
|
|
66
|
+
resize: true,
|
|
67
|
+
mask: true,
|
|
68
|
+
duration: 3000,
|
|
69
|
+
dblclickZoom: true,
|
|
70
|
+
showTitleOverflow: true
|
|
71
|
+
},
|
|
72
|
+
icon: {},
|
|
73
|
+
loading: {
|
|
74
|
+
icon: 'vxe-icon-spinner roll',
|
|
75
|
+
text: '加载中...'
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let tableOptions = {
|
|
80
|
+
zIndex: 1500,
|
|
81
|
+
version: 0,
|
|
37
82
|
table: {
|
|
38
83
|
fit: true,
|
|
39
84
|
stripe: false,
|
|
@@ -44,14 +89,40 @@ let tableOptions = {
|
|
|
44
89
|
rowConfig: {
|
|
45
90
|
useKey: true,
|
|
46
91
|
keyField: '_XID',
|
|
47
|
-
|
|
48
|
-
|
|
92
|
+
isHover: true,
|
|
93
|
+
drag: false,
|
|
94
|
+
resizable: false
|
|
95
|
+
},
|
|
96
|
+
columnConfig: {
|
|
97
|
+
useKey: true,
|
|
98
|
+
isHover: true,
|
|
99
|
+
drag: false,
|
|
100
|
+
resizable: false
|
|
49
101
|
},
|
|
102
|
+
currentRowConfig: {},
|
|
50
103
|
sortConfig: {
|
|
51
104
|
multiple: false,
|
|
52
105
|
chronological: false,
|
|
53
106
|
trigger: 'cell'
|
|
54
107
|
},
|
|
108
|
+
rowDragConfig: {
|
|
109
|
+
showIcon: true,
|
|
110
|
+
showDragTip: true,
|
|
111
|
+
isPeerDrag: false,
|
|
112
|
+
isCrossDrag: false,
|
|
113
|
+
isToChildDrag: false,
|
|
114
|
+
isSelfToChildDrag: false,
|
|
115
|
+
showGuidesStatus: true
|
|
116
|
+
},
|
|
117
|
+
columnDragConfig: {
|
|
118
|
+
showIcon: true,
|
|
119
|
+
showDragTip: true,
|
|
120
|
+
isPeerDrag: false,
|
|
121
|
+
isCrossDrag: false,
|
|
122
|
+
isToChildDrag: false,
|
|
123
|
+
isSelfToChildDrag: false,
|
|
124
|
+
showGuidesStatus: true
|
|
125
|
+
},
|
|
55
126
|
radioConfig: {
|
|
56
127
|
strict: true,
|
|
57
128
|
highlight: true
|
|
@@ -99,6 +170,7 @@ let tableOptions = {
|
|
|
99
170
|
mode: 'cell'
|
|
100
171
|
},
|
|
101
172
|
customConfig: {
|
|
173
|
+
enabled: true,
|
|
102
174
|
storage: true
|
|
103
175
|
},
|
|
104
176
|
seqConfig: {
|
|
@@ -107,48 +179,8 @@ let tableOptions = {
|
|
|
107
179
|
resizeConfig: {
|
|
108
180
|
refreshDelay: 200
|
|
109
181
|
},
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
},
|
|
113
|
-
pager: {
|
|
114
|
-
currentPage: 1,
|
|
115
|
-
pageSize: 50,
|
|
116
|
-
total: 0,
|
|
117
|
-
layouts: ['Sizes', 'PrevJump', 'PrevPage', 'Number', 'NextPage', 'NextJump', 'FullJump', 'Total'],
|
|
118
|
-
pagerCount: 7,
|
|
119
|
-
pageSizes: [
|
|
120
|
-
{ label: '50条', value: 50 },
|
|
121
|
-
{ label: '100条', value: 100 },
|
|
122
|
-
{ label: '500条', value: 500 },
|
|
123
|
-
{ label: '1000条', value: 1000 },
|
|
124
|
-
{ label: '10000条', value: 10000 },
|
|
125
|
-
{ label: '10万条', value: 100000 }
|
|
126
|
-
],
|
|
127
|
-
align: 'right',
|
|
128
|
-
border: true,
|
|
129
|
-
background: false,
|
|
130
|
-
perfect: true,
|
|
131
|
-
autoHidden: false,
|
|
132
|
-
enabled: true
|
|
133
|
-
},
|
|
134
|
-
toolbar: {
|
|
135
|
-
custom: {
|
|
136
|
-
immediate: false
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
form: {},
|
|
140
|
-
modal: {
|
|
141
|
-
lockView: true,
|
|
142
|
-
resize: true,
|
|
143
|
-
mask: true,
|
|
144
|
-
duration: 3000,
|
|
145
|
-
dblclickZoom: true,
|
|
146
|
-
showTitleOverflow: true
|
|
147
|
-
},
|
|
148
|
-
icon: {},
|
|
149
|
-
loading: {
|
|
150
|
-
icon: 'vxe-icon-spinner roll',
|
|
151
|
-
text: '加载中...'
|
|
182
|
+
virtualXConfig: { enabled: false, gt: 40, oSize: 0 },
|
|
183
|
+
virtualYConfig: { enabled: true, gt: 60, oSize: 0 }
|
|
152
184
|
},
|
|
153
185
|
moneyConfig: {
|
|
154
186
|
enabled: false,
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
</vxe-checkbox-group>
|
|
7
7
|
</template>
|
|
8
8
|
<template v-else-if="!redit && showType">
|
|
9
|
-
<
|
|
9
|
+
<template v-for="roption in rprops.options" :key="roption">
|
|
10
10
|
<sh-tag v-if="roptionShow(roption)" :color="roption.tagColor || rprops.tagColor" :type="roption.tagType || rprops.tagType">{{ roption.label }}</sh-tag>
|
|
11
|
-
</
|
|
11
|
+
</template>
|
|
12
12
|
</template>
|
|
13
13
|
<template v-else>
|
|
14
14
|
<span v-html="renderText"></span>
|
|
@@ -27,10 +27,10 @@ export default defineComponent({
|
|
|
27
27
|
const { proxy } = getCurrentInstance()
|
|
28
28
|
const useCell = cellHooks(props, context, proxy)
|
|
29
29
|
|
|
30
|
-
const showType = computed(() =>
|
|
30
|
+
const showType = computed(() => useCell.rprops.value.showType === 'tag')
|
|
31
31
|
|
|
32
32
|
const roptionShow = roption => {
|
|
33
|
-
return useCell.renderText.value.split(
|
|
33
|
+
return useCell.renderText.value.split(useCell.rprops.value.split).includes(roption.label)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<span class="vxe-render--inner">
|
|
3
3
|
<template v-for="renderBtn in renderBtns" :key="renderBtn.code">
|
|
4
|
-
<
|
|
4
|
+
<vxe-button
|
|
5
5
|
v-if="isBtnRender(renderBtn)"
|
|
6
6
|
v-ripple
|
|
7
7
|
:type="rprops.type"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
:status="getBtnContent(renderBtn).status"
|
|
11
11
|
@click="vxeBtnCallback($event, renderBtn)">
|
|
12
12
|
{{ getBtnContent(renderBtn).content }}
|
|
13
|
-
</
|
|
13
|
+
</vxe-button>
|
|
14
14
|
</template>
|
|
15
15
|
</span>
|
|
16
16
|
</template>
|
|
@@ -29,7 +29,7 @@ export default defineComponent({
|
|
|
29
29
|
|
|
30
30
|
const renderBtns = computed(() => {
|
|
31
31
|
let renderBtns = []
|
|
32
|
-
let { btnContain, btnsConfig } =
|
|
32
|
+
let { btnContain, btnsConfig } = useCell.rprops.value
|
|
33
33
|
if (btnsConfig && Array.isArray(btnsConfig)) {
|
|
34
34
|
renderBtns = btnsConfig
|
|
35
35
|
}
|
|
@@ -7,18 +7,22 @@
|
|
|
7
7
|
<script>
|
|
8
8
|
import { computed, defineComponent, getCurrentInstance } from 'vue'
|
|
9
9
|
import cellProps from '../mixin/cell-props'
|
|
10
|
+
import cellHooks from '../mixin/cell-hooks'
|
|
10
11
|
export default defineComponent({
|
|
11
12
|
name: 'VxeRenderImg',
|
|
12
13
|
props: cellProps,
|
|
13
14
|
setup(props, context) {
|
|
14
15
|
const { proxy } = getCurrentInstance()
|
|
15
16
|
const { $vUtils } = proxy
|
|
16
|
-
const
|
|
17
|
+
const useCell = cellHooks(props, context, proxy)
|
|
18
|
+
|
|
19
|
+
const imgSrc = computed(() => $vUtils.get(useCell.rdata.value, useCell.rkey.value))
|
|
17
20
|
const imgHeight = computed(() => {
|
|
18
|
-
return
|
|
21
|
+
return useCell.rprops.value.square ? useCell.rprops.value.width : useCell.rprops.value.height
|
|
19
22
|
})
|
|
20
23
|
|
|
21
24
|
return {
|
|
25
|
+
...useCell,
|
|
22
26
|
imgSrc,
|
|
23
27
|
imgHeight
|
|
24
28
|
}
|
|
@@ -33,11 +33,11 @@ export default defineComponent({
|
|
|
33
33
|
const { $vUtils } = proxy
|
|
34
34
|
const useCell = cellHooks(props, context, proxy)
|
|
35
35
|
|
|
36
|
-
const controlButton = computed(() =>
|
|
36
|
+
const controlButton = computed(() => useCell.rprops.value.control && ['number', 'float', 'integer'].includes(useCell.rprops.value.type))
|
|
37
37
|
|
|
38
38
|
// 输入框数字加减控制
|
|
39
39
|
const vxeControlClick = bol => {
|
|
40
|
-
const { step = 1, min, max } =
|
|
40
|
+
const { step = 1, min, max } = useCell.rprops.value
|
|
41
41
|
let value = bol ? $vUtils.add(useCell.renderValue.value, step) : $vUtils.subtract(useCell.renderValue.value, step)
|
|
42
42
|
if ((min !== undefined && value < min) || (max !== undefined && value > max)) return
|
|
43
43
|
useCell.setRenderValue(value)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform, 'td-all': rprops.bill }">
|
|
3
3
|
<template v-if="redit || isEditAll">
|
|
4
|
-
<vxe-input v-model="
|
|
4
|
+
<vxe-number-input v-model="renderText" v-bind="rprops" :size="rsize" :immediate="false" @change="vxeInputChange" @blur="vxeMoneyCallback" @clear="vxeMoneyCallback" />
|
|
5
5
|
</template>
|
|
6
6
|
<template v-else-if="rprops.bill">
|
|
7
7
|
<template v-for="(bil, bilindex) in billGroups" :key="bilindex">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</template>
|
|
10
10
|
</template>
|
|
11
11
|
<template v-else>
|
|
12
|
-
<span class="blue" v-html="
|
|
12
|
+
<span class="blue" v-html="cellFormatValue"></span>
|
|
13
13
|
</template>
|
|
14
14
|
</span>
|
|
15
15
|
</template>
|
|
@@ -23,10 +23,26 @@ export default defineComponent({
|
|
|
23
23
|
props: cellProps,
|
|
24
24
|
setup(props, context) {
|
|
25
25
|
const { proxy } = getCurrentInstance()
|
|
26
|
+
const { $vUtils } = proxy
|
|
26
27
|
const useCell = cellHooks(props, context, proxy)
|
|
27
28
|
|
|
29
|
+
const cellFormatValue = computed(() => {
|
|
30
|
+
let cellValue = useCell.renderText.value
|
|
31
|
+
if (useCell.rprops.value.commafy) {
|
|
32
|
+
return $vUtils.commafy(Number(cellValue), { digits: useCell.rprops.value.digits })
|
|
33
|
+
}
|
|
34
|
+
return cellValue
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const vxeMoneyCallback = async ({ value, $event }) => {
|
|
38
|
+
let cellValue = $vUtils.multiply(value, useCell.rprops.value.moneyUnit || 1)
|
|
39
|
+
useCell.setRenderValue(cellValue)
|
|
40
|
+
}
|
|
41
|
+
|
|
28
42
|
return {
|
|
29
|
-
...useCell
|
|
43
|
+
...useCell,
|
|
44
|
+
cellFormatValue,
|
|
45
|
+
vxeMoneyCallback
|
|
30
46
|
}
|
|
31
47
|
}
|
|
32
48
|
})
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
</vxe-radio-group>
|
|
7
7
|
</template>
|
|
8
8
|
<template v-else-if="!redit && showType">
|
|
9
|
-
<
|
|
9
|
+
<template v-for="roption in rprops.options" :key="roption">
|
|
10
10
|
<sh-tag v-if="roptionShow(roption)" :color="roption.tagColor || rprops.tagColor" :type="roption.tagType || rprops.tagType">{{ roption.label }}</sh-tag>
|
|
11
|
-
</
|
|
11
|
+
</template>
|
|
12
12
|
</template>
|
|
13
13
|
<template v-else>
|
|
14
14
|
<span v-html="renderText"></span>
|
|
@@ -27,10 +27,10 @@ export default defineComponent({
|
|
|
27
27
|
const { proxy } = getCurrentInstance()
|
|
28
28
|
const useCell = cellHooks(props, context, proxy)
|
|
29
29
|
|
|
30
|
-
const showType = computed(() =>
|
|
30
|
+
const showType = computed(() => useCell.rprops.value.showType === 'tag')
|
|
31
31
|
|
|
32
32
|
const roptionShow = roption => {
|
|
33
|
-
return useCell.renderText.value.split(
|
|
33
|
+
return useCell.renderText.value.split(useCell.rprops.value.split).includes(roption.label)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
return {
|
|
@@ -31,11 +31,11 @@ export default defineComponent({
|
|
|
31
31
|
const { proxy } = getCurrentInstance()
|
|
32
32
|
const useCell = cellHooks(props, context, proxy)
|
|
33
33
|
|
|
34
|
-
const showType = computed(() =>
|
|
34
|
+
const showType = computed(() => useCell.rprops.value.showType === 'tag')
|
|
35
35
|
|
|
36
36
|
const showTags = computed(() => {
|
|
37
37
|
const renderValue = useCell.renderValue.value
|
|
38
|
-
const { options = [], multiple } =
|
|
38
|
+
const { options = [], multiple } = useCell.rprops.value
|
|
39
39
|
if (multiple && Array.isArray(renderValue)) {
|
|
40
40
|
return options.filter(option => renderValue.includes(option.value))
|
|
41
41
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
v-bind="rprops"
|
|
7
7
|
:size="rsize"
|
|
8
8
|
:data-sourse="renderValue"
|
|
9
|
-
@edit-closed="
|
|
9
|
+
@edit-closed="vxeTableCallback"
|
|
10
10
|
@toolbaroption="onToolbaroption"></sh-table>
|
|
11
11
|
</span>
|
|
12
12
|
</template>
|
|
@@ -24,22 +24,23 @@ export default defineComponent({
|
|
|
24
24
|
const shTableRef = ref()
|
|
25
25
|
|
|
26
26
|
// 输入框回调
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
}
|
|
27
|
+
const vxeTableCallback = params => {}
|
|
28
|
+
|
|
30
29
|
// 新增、删除行回调
|
|
31
30
|
const onToolbaroption = (code, data, $table) => {
|
|
32
31
|
driveBackData()
|
|
33
32
|
}
|
|
33
|
+
|
|
34
34
|
// 回填数据
|
|
35
35
|
const driveBackData = value => {
|
|
36
|
-
|
|
36
|
+
let cellValue = shTableRef.value.getFullData()
|
|
37
|
+
useCell.setRenderValue(cellValue)
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
return {
|
|
40
41
|
...useCell,
|
|
41
42
|
shTableRef,
|
|
42
|
-
|
|
43
|
+
vxeTableCallback,
|
|
43
44
|
onToolbaroption
|
|
44
45
|
}
|
|
45
46
|
}
|
|
@@ -23,13 +23,13 @@ export default defineComponent({
|
|
|
23
23
|
|
|
24
24
|
// 禁用事件
|
|
25
25
|
const vxeDisabledMethod = ({ date, viewType }) => {
|
|
26
|
-
let { startTime, endTime } =
|
|
26
|
+
let { startTime, endTime } = useCell.rprops.value
|
|
27
27
|
if (startTime) {
|
|
28
|
-
startTime = $vUtils.format(startTime,
|
|
28
|
+
startTime = $vUtils.format(startTime, useCell.rdata.value)
|
|
29
29
|
let { done, time } = $vUtils.getDateDiff(startTime, date)
|
|
30
30
|
return startTime ? !done : false
|
|
31
31
|
} else if (endTime) {
|
|
32
|
-
endTime = $vUtils.format(endTime,
|
|
32
|
+
endTime = $vUtils.format(endTime, useCell.rdata.value)
|
|
33
33
|
let { done, time } = $vUtils.getDateDiff(endTime, date)
|
|
34
34
|
return done
|
|
35
35
|
}
|
|
@@ -31,7 +31,7 @@ export default defineComponent({
|
|
|
31
31
|
|
|
32
32
|
// 输入框回调
|
|
33
33
|
const vxeTreeCallback = (selectedKeys, selectedRows) => {
|
|
34
|
-
let { valueKeys, multiple } =
|
|
34
|
+
let { valueKeys, multiple } = useCell.rprops.value
|
|
35
35
|
let rvalue = selectedKeys
|
|
36
36
|
if (!multiple) {
|
|
37
37
|
rvalue = selectedKeys[0] || ''
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span v-html="
|
|
2
|
+
<span v-html="cellFormatValue"></span>
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script>
|
|
6
|
-
import { defineComponent, getCurrentInstance } from 'vue'
|
|
6
|
+
import { computed, defineComponent, getCurrentInstance } from 'vue'
|
|
7
7
|
import cellProps from '../mixin/cell-props'
|
|
8
8
|
import cellHooks from '../mixin/cell-hooks'
|
|
9
9
|
export default defineComponent({
|
|
@@ -11,10 +11,20 @@ export default defineComponent({
|
|
|
11
11
|
props: cellProps,
|
|
12
12
|
setup(props, context) {
|
|
13
13
|
const { proxy } = getCurrentInstance()
|
|
14
|
+
const { $vUtils } = proxy
|
|
14
15
|
const useCell = cellHooks(props, context, proxy)
|
|
15
16
|
|
|
17
|
+
const cellFormatValue = computed(() => {
|
|
18
|
+
let cellValue = useCell.renderText.value
|
|
19
|
+
if (useCell.rprops.value.commafy) {
|
|
20
|
+
return $vUtils.commafy(Number(cellValue), { digits: useCell.rprops.value.digits })
|
|
21
|
+
}
|
|
22
|
+
return cellValue
|
|
23
|
+
})
|
|
24
|
+
|
|
16
25
|
return {
|
|
17
|
-
...useCell
|
|
26
|
+
...useCell,
|
|
27
|
+
cellFormatValue
|
|
18
28
|
}
|
|
19
29
|
}
|
|
20
30
|
})
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
</template>
|
|
6
6
|
</div>
|
|
7
7
|
<template v-else>
|
|
8
|
-
<span class="blue" v-html="
|
|
8
|
+
<span class="blue" v-html="cellFormatValue"></span>
|
|
9
9
|
</template>
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
12
|
<script>
|
|
13
|
-
import { defineComponent, getCurrentInstance } from 'vue'
|
|
13
|
+
import { computed, defineComponent, getCurrentInstance } from 'vue'
|
|
14
14
|
import cellProps from '../mixin/cell-props'
|
|
15
15
|
import cellHooks from '../mixin/cell-hooks'
|
|
16
16
|
export default defineComponent({
|
|
@@ -18,10 +18,20 @@ export default defineComponent({
|
|
|
18
18
|
props: cellProps,
|
|
19
19
|
setup(props, context) {
|
|
20
20
|
const { proxy } = getCurrentInstance()
|
|
21
|
+
const { $vUtils } = proxy
|
|
21
22
|
const useCell = cellHooks(props, context, proxy)
|
|
22
23
|
|
|
24
|
+
const cellFormatValue = computed(() => {
|
|
25
|
+
let cellValue = useCell.renderText.value
|
|
26
|
+
if (useCell.rprops.value.commafy) {
|
|
27
|
+
return $vUtils.commafy(Number(cellValue), { digits: useCell.rprops.value.digits })
|
|
28
|
+
}
|
|
29
|
+
return cellValue
|
|
30
|
+
})
|
|
31
|
+
|
|
23
32
|
return {
|
|
24
|
-
...useCell
|
|
33
|
+
...useCell,
|
|
34
|
+
cellFormatValue
|
|
25
35
|
}
|
|
26
36
|
}
|
|
27
37
|
})
|