sh-view 2.9.8 → 2.9.10
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 +48 -108
- package/packages/components/sh-tree/index.vue +127 -38
- package/packages/css/theme.scss +4 -0
- 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
|
@@ -6,33 +6,42 @@ export default function (props, context, proxy) {
|
|
|
6
6
|
const renderValue = ref(null)
|
|
7
7
|
const renderText = ref('')
|
|
8
8
|
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return props.rparams.$table?.props?.editConfig?.enabled && reditmode.value === 'all' && props.rparams.column.editRender
|
|
9
|
+
const mprops = computed(() => {
|
|
10
|
+
let { $grid, $table } = props.rparams
|
|
11
|
+
const contextAttrs = $grid?.context.attrs || $table?.context.attrs || {}
|
|
12
|
+
return contextAttrs.moneyConfig || {}
|
|
14
13
|
})
|
|
14
|
+
|
|
15
|
+
const rform = computed(() => !!props.rparams.$form)
|
|
16
|
+
const rkey = computed(() => (rform.value ? props.rparams.property : props.rparams.column.property))
|
|
17
|
+
const rname = computed(() => props.roptions.name)
|
|
18
|
+
const rprops = computed(() => Object.assign({}, props.roptions.props, mprops.value))
|
|
19
|
+
const rdata = computed(() => (rform.value ? props.rparams.data : props.rparams.row))
|
|
20
|
+
const rsize = computed(() => rprops.value.size || (rform.value ? props.rparams.$form.props.size : props.rparams.$table.props.size))
|
|
21
|
+
|
|
22
|
+
const reditmode = computed(() => props.rparams.$table.props.editConfig.mode)
|
|
23
|
+
const isEditAll = computed(() => props.rparams.$table.props.editConfig.enabled && reditmode.value === 'all' && props.rparams.column.editRender)
|
|
15
24
|
const billGroups = computed(() => {
|
|
16
|
-
let { billStart = '分', billEnd = '亿' } =
|
|
25
|
+
let { billStart = '分', billEnd = '亿' } = rprops.value
|
|
17
26
|
let startIndex = $vTableSetup.cnGroups.findIndex(cn => cn.fullText === billEnd)
|
|
18
27
|
let endIndex = $vTableSetup.cnGroups.findIndex(cn => cn.fullText === billStart)
|
|
19
28
|
return $vTableSetup.cnGroups.slice(startIndex, endIndex + 1)
|
|
20
29
|
})
|
|
21
30
|
const psButtonConfig = computed(() => {
|
|
22
|
-
return { disabled:
|
|
31
|
+
return { disabled: rprops.value.disabled, size: rsize.value, status: 'primary' }
|
|
23
32
|
})
|
|
24
|
-
const prefixButton = computed(() =>
|
|
25
|
-
const suffixButton = computed(() =>
|
|
33
|
+
const prefixButton = computed(() => String(rprops.value.prefixType).toLowerCase() === 'button')
|
|
34
|
+
const suffixButton = computed(() => String(rprops.value.suffixType).toLowerCase() === 'button')
|
|
26
35
|
|
|
27
36
|
// 初始化数据
|
|
28
37
|
const initData = () => {
|
|
29
|
-
let keyValue = $vUtils.get(
|
|
38
|
+
let keyValue = $vUtils.get(rdata.value, rkey.value)
|
|
30
39
|
formatValueFun(keyValue)
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
// 输入框前缀点击事件
|
|
34
43
|
const vxeInputPrefixClick = () => {
|
|
35
|
-
if (
|
|
44
|
+
if (rprops.value.disabled) return
|
|
36
45
|
if (rform.value) {
|
|
37
46
|
let { $form } = props.rparams
|
|
38
47
|
$form.context.emit('prefix-click', props.rparams)
|
|
@@ -40,7 +49,7 @@ export default function (props, context, proxy) {
|
|
|
40
49
|
}
|
|
41
50
|
// 输入框后缀点击事件
|
|
42
51
|
const vxeInputSuffixClick = () => {
|
|
43
|
-
if (
|
|
52
|
+
if (rprops.value.disabled) return
|
|
44
53
|
if (rform.value) {
|
|
45
54
|
let { $form } = props.rparams
|
|
46
55
|
$form.context.emit('suffix-click', props.rparams)
|
|
@@ -65,48 +74,29 @@ export default function (props, context, proxy) {
|
|
|
65
74
|
setRenderValue(value)
|
|
66
75
|
}
|
|
67
76
|
// 回调赋值
|
|
68
|
-
const setRenderValue =
|
|
69
|
-
let cellValue = value
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
let { rvalue, rtext } = formatValueFun(cellValue, true)
|
|
76
|
-
cellValue = rvalue
|
|
77
|
-
}
|
|
78
|
-
$vUtils.set(props.rdata, props.rkey, cellValue)
|
|
77
|
+
const setRenderValue = value => {
|
|
78
|
+
let cellValue = !$vUtils.isNone(value) ? value : renderValue.value
|
|
79
|
+
let { rvalue, rtext } = $vUtils.formatRender(cellValue, rkey.value, rdata.value, rname.value, rprops.value, proxy, true)
|
|
80
|
+
$vUtils.set(rdata.value, rkey.value, rvalue)
|
|
81
|
+
renderValue.value = rvalue
|
|
82
|
+
renderText.value = rtext
|
|
79
83
|
if (rform.value) {
|
|
80
84
|
let { $form } = props.rparams
|
|
81
85
|
$form.context.emit('edit-closed', props.rparams)
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
// 格式化值formatValue
|
|
85
|
-
const formatValueFun =
|
|
89
|
+
const formatValueFun = value => {
|
|
90
|
+
let cellValue = value
|
|
91
|
+
let cellProps = rprops.value
|
|
86
92
|
if (props.rparams.type === 'footer') {
|
|
87
93
|
const { items, itemIndex } = props.rparams
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (props.rname === '$vMoney') footerText = $vUtils.truncate($vUtils.divide(items[itemIndex], moneyUnit), digits)
|
|
91
|
-
else if (!$vUtils.isNone(footerText) && ['integer'].includes(type)) footerText = $vUtils.toInteger(footerText)
|
|
92
|
-
else if (!$vUtils.isNone(footerText) && ['number', 'float'].includes(type)) footerText = $vUtils.truncate(footerText, digits)
|
|
93
|
-
if (!$vUtils.isNone(footerText) && commafy) footerText = $vUtils.commafy(footerText, { digits })
|
|
94
|
-
renderValue.value = items[itemIndex]
|
|
95
|
-
renderText.value = footerText
|
|
96
|
-
return
|
|
97
|
-
}
|
|
98
|
-
const { rvalue, rtext } = $vUtils.formatRender(value, props.rkey, props.rdata, props.rname, props.rprops, proxy, editable)
|
|
99
|
-
if (props.rname === '$vMoney' && !props.rprops.bill && props.rprops.bill !== '0') {
|
|
100
|
-
renderValue.value = rtext
|
|
101
|
-
} else {
|
|
102
|
-
renderValue.value = rvalue
|
|
94
|
+
cellValue = items[itemIndex]
|
|
95
|
+
cellProps = Object.assign({}, rprops.value, { formula: null, formulaMap: null })
|
|
103
96
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
renderText.value = rtext
|
|
108
|
-
}
|
|
109
|
-
return { rvalue, rtext }
|
|
97
|
+
const { rvalue, rtext } = $vUtils.formatRender(cellValue, rkey.value, rdata.value, rname.value, cellProps, proxy, false)
|
|
98
|
+
renderValue.value = rvalue
|
|
99
|
+
renderText.value = rtext
|
|
110
100
|
}
|
|
111
101
|
const getBillClass = bil => {
|
|
112
102
|
return { basic: bil.fullText === '元', commafy: ['千', '百万', '十亿', '兆'].includes(bil.fullText) }
|
|
@@ -120,27 +110,31 @@ export default function (props, context, proxy) {
|
|
|
120
110
|
}
|
|
121
111
|
|
|
122
112
|
watch(
|
|
123
|
-
() =>
|
|
113
|
+
() => rdata.value,
|
|
124
114
|
() => {
|
|
125
|
-
let keyValue = $vUtils.get(props.rdata, props.rkey)
|
|
126
|
-
let keyFormula = $vUtils.get(props.rprops, 'formula')
|
|
127
|
-
if (keyValue && $vUtils.isEqual(keyValue, renderValue.value) && !keyFormula) return
|
|
128
115
|
initData()
|
|
129
116
|
},
|
|
130
117
|
{ deep: true, immediate: true }
|
|
131
118
|
)
|
|
132
119
|
watch(
|
|
133
|
-
() =>
|
|
134
|
-
() => {
|
|
135
|
-
|
|
120
|
+
() => mprops.value.moneyUnit,
|
|
121
|
+
(nv, ov) => {
|
|
122
|
+
if (['$vMoney'].includes(rname.value) && !$vUtils.isEqual(nv, ov)) {
|
|
123
|
+
initData()
|
|
124
|
+
}
|
|
136
125
|
}
|
|
137
126
|
)
|
|
138
127
|
|
|
139
128
|
return {
|
|
140
129
|
renderValue,
|
|
141
130
|
renderText,
|
|
142
|
-
rsize,
|
|
143
131
|
rform,
|
|
132
|
+
rkey,
|
|
133
|
+
rname,
|
|
134
|
+
rprops,
|
|
135
|
+
rdata,
|
|
136
|
+
rsize,
|
|
137
|
+
mprops,
|
|
144
138
|
isEditAll,
|
|
145
139
|
billGroups,
|
|
146
140
|
psButtonConfig,
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
redit: { type: Boolean },
|
|
3
|
-
|
|
4
|
-
rname: { type: String },
|
|
5
|
-
rdata: {
|
|
6
|
-
type: Object,
|
|
7
|
-
default() {
|
|
8
|
-
return {}
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
rprops: {
|
|
3
|
+
rparams: {
|
|
12
4
|
type: Object,
|
|
13
5
|
default() {
|
|
14
6
|
return {}
|
|
15
7
|
}
|
|
16
8
|
},
|
|
17
|
-
|
|
9
|
+
roptions: {
|
|
18
10
|
type: Object,
|
|
19
11
|
default() {
|
|
20
12
|
return {}
|
|
@@ -5,6 +5,8 @@ export default function (props, context, proxy, initRenderData) {
|
|
|
5
5
|
|
|
6
6
|
let renderOption = ref({})
|
|
7
7
|
|
|
8
|
+
const rprops = computed(() => Object.assign({}, props.roptions.props))
|
|
9
|
+
|
|
8
10
|
// 初始化
|
|
9
11
|
const initData = () => {
|
|
10
12
|
const { column, $panel } = props.rparams
|
|
@@ -38,6 +40,7 @@ export default function (props, context, proxy, initRenderData) {
|
|
|
38
40
|
)
|
|
39
41
|
|
|
40
42
|
return {
|
|
43
|
+
rprops,
|
|
41
44
|
renderOption,
|
|
42
45
|
vxeFilterChange,
|
|
43
46
|
vxeFilterConfirm,
|