vxe-gantt 4.0.24 → 4.0.25
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/es/gantt/src/gantt.js +155 -37
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/gantt/src/gantt.js +171 -48
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/index.umd.js +176 -51
- package/lib/index.umd.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/gantt/src/gantt.ts +187 -70
|
@@ -13,7 +13,7 @@ import { VxeTable as VxeTableComponent } from 'vxe-table'
|
|
|
13
13
|
|
|
14
14
|
import type { VxeGanttConstructor, VxeGanttEmits, GanttReactData, GanttInternalData, VxeGanttPropTypes, GanttMethods, GanttPrivateMethods, VxeGanttPrivateMethods, GanttPrivateRef, VxeGanttProps, VxeGanttPrivateComputed, VxeGanttViewInstance, VxeGanttDefines } from '../../../types'
|
|
15
15
|
import type { ValueOf, VxeFormEvents, VxeFormInstance, VxePagerEvents, VxeFormItemProps, VxePagerInstance, VxeComponentStyleType } from 'vxe-pc-ui'
|
|
16
|
-
import type { VxeTableMethods, VxeToolbarPropTypes, VxeTableProps, VxeTablePropTypes, VxeTableConstructor, VxeTablePrivateMethods, VxeTableEvents, VxeTableDefines, VxeTableEventProps, VxeToolbarInstance, VxeGridPropTypes } from 'vxe-table'
|
|
16
|
+
import type { VxeTableMethods, VxeToolbarPropTypes, VxeTableProps, VxeTablePropTypes, VxeTableConstructor, VxeTablePrivateMethods, VxeTableEvents, VxeTableDefines, VxeTableEventProps, VxeToolbarInstance, VxeGridPropTypes, VxeGridDefines } from 'vxe-table'
|
|
17
17
|
|
|
18
18
|
const { getConfig, getIcon, getI18n, commands, hooks, useFns, createEvent, globalEvents, GLOBAL_EVENT_KEYS, renderEmptyElement } = VxeUI
|
|
19
19
|
|
|
@@ -26,6 +26,7 @@ const defaultLayouts: VxeGanttPropTypes.Layouts = [['Form'], ['Toolbar', 'Top',
|
|
|
26
26
|
|
|
27
27
|
function createInternalData (): GanttInternalData {
|
|
28
28
|
return {
|
|
29
|
+
uFoot: false,
|
|
29
30
|
resizeTableWidth: 0
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -67,6 +68,7 @@ export default defineVxeComponent({
|
|
|
67
68
|
editRules: PropType<VxeTablePropTypes.EditRules>
|
|
68
69
|
animat: PropType<VxeTablePropTypes.Animat>
|
|
69
70
|
scrollbarConfig: PropType<VxeTablePropTypes.ScrollbarConfig>
|
|
71
|
+
showFooter: PropType<VxeTablePropTypes.ShowFooter>
|
|
70
72
|
params: PropType<VxeTablePropTypes.Params>
|
|
71
73
|
}),
|
|
72
74
|
|
|
@@ -112,6 +114,7 @@ export default defineVxeComponent({
|
|
|
112
114
|
filterData: [],
|
|
113
115
|
formData: {},
|
|
114
116
|
sortData: [],
|
|
117
|
+
footerData: [],
|
|
115
118
|
tZindex: 0,
|
|
116
119
|
tablePage: {
|
|
117
120
|
total: 0,
|
|
@@ -298,15 +301,18 @@ export default defineVxeComponent({
|
|
|
298
301
|
|
|
299
302
|
const computeTableExtendProps = computed(() => {
|
|
300
303
|
const rest: Record<string, any> = {}
|
|
304
|
+
const ganttProps: any = props
|
|
301
305
|
tableComponentPropKeys.forEach((key) => {
|
|
302
|
-
|
|
306
|
+
if (ganttProps[key] !== undefined) {
|
|
307
|
+
rest[key] = ganttProps[key]
|
|
308
|
+
}
|
|
303
309
|
})
|
|
304
310
|
return rest
|
|
305
311
|
})
|
|
306
312
|
|
|
307
313
|
const computeTableProps = computed(() => {
|
|
308
|
-
const { seqConfig, pagerConfig, editConfig, proxyConfig } = props
|
|
309
|
-
const { isZMax, tablePage } = reactData
|
|
314
|
+
const { showFooter, seqConfig, pagerConfig, editConfig, proxyConfig } = props
|
|
315
|
+
const { isZMax, tablePage, footerData } = reactData
|
|
310
316
|
const taskViewOpts = computeTaskViewOpts.value
|
|
311
317
|
const { tableStyle } = taskViewOpts
|
|
312
318
|
const tableExtendProps = computeTableExtendProps.value
|
|
@@ -325,8 +331,15 @@ export default defineVxeComponent({
|
|
|
325
331
|
tProps.border = border
|
|
326
332
|
}
|
|
327
333
|
}
|
|
334
|
+
if (showFooter && !tProps.footerData) {
|
|
335
|
+
// 如果未设置自己的标位数据,则使用代理的
|
|
336
|
+
tProps.footerData = footerData
|
|
337
|
+
} else if (proxyOpts.footer && footerData.length) {
|
|
338
|
+
// 如果代理标为数据,且未请求到数据,则用自己的
|
|
339
|
+
tProps.footerData = footerData
|
|
340
|
+
}
|
|
328
341
|
if (isZMax) {
|
|
329
|
-
if (
|
|
342
|
+
if (tProps.maxHeight) {
|
|
330
343
|
tProps.maxHeight = '100%'
|
|
331
344
|
} else {
|
|
332
345
|
tProps.height = '100%'
|
|
@@ -659,9 +672,12 @@ export default defineVxeComponent({
|
|
|
659
672
|
reactData.filterData = params.filterList
|
|
660
673
|
if (proxyConfig && isEnableConf(proxyOpts)) {
|
|
661
674
|
reactData.tablePage.currentPage = 1
|
|
675
|
+
internalData.uFoot = true
|
|
662
676
|
$xeGantt.commitProxy('query').then((rest) => {
|
|
663
677
|
$xeGantt.dispatchEvent('proxy-query', rest, params.$event)
|
|
664
678
|
})
|
|
679
|
+
internalData.uFoot = false
|
|
680
|
+
updateQueryFooter()
|
|
665
681
|
}
|
|
666
682
|
}
|
|
667
683
|
}
|
|
@@ -683,9 +699,12 @@ export default defineVxeComponent({
|
|
|
683
699
|
return
|
|
684
700
|
}
|
|
685
701
|
if (proxyConfig && isEnableConf(proxyOpts)) {
|
|
702
|
+
internalData.uFoot = true
|
|
686
703
|
$xeGantt.commitProxy('reload').then((rest) => {
|
|
687
704
|
$xeGantt.dispatchEvent('proxy-query', { ...rest, isReload: true }, params.$event)
|
|
688
705
|
})
|
|
706
|
+
internalData.uFoot = false
|
|
707
|
+
updateQueryFooter()
|
|
689
708
|
}
|
|
690
709
|
$xeGantt.dispatchEvent('form-submit', params, params.$event)
|
|
691
710
|
}
|
|
@@ -699,9 +718,12 @@ export default defineVxeComponent({
|
|
|
699
718
|
if ($xeTable) {
|
|
700
719
|
$xeTable.clearScroll()
|
|
701
720
|
}
|
|
721
|
+
internalData.uFoot = true
|
|
702
722
|
$xeGantt.commitProxy('reload').then((rest) => {
|
|
703
723
|
$xeGantt.dispatchEvent('proxy-query', { ...rest, isReload: true }, $event)
|
|
704
724
|
})
|
|
725
|
+
internalData.uFoot = false
|
|
726
|
+
updateQueryFooter()
|
|
705
727
|
}
|
|
706
728
|
$xeGantt.dispatchEvent('form-reset', params, $event)
|
|
707
729
|
}
|
|
@@ -865,12 +887,16 @@ export default defineVxeComponent({
|
|
|
865
887
|
if (field) {
|
|
866
888
|
let itemValue: any = null
|
|
867
889
|
if (itemRender) {
|
|
868
|
-
const { defaultValue } = itemRender
|
|
890
|
+
const { startField, endField, defaultValue } = itemRender
|
|
869
891
|
if (XEUtils.isFunction(defaultValue)) {
|
|
870
892
|
itemValue = defaultValue({ item })
|
|
871
893
|
} else if (!XEUtils.isUndefined(defaultValue)) {
|
|
872
894
|
itemValue = defaultValue
|
|
873
895
|
}
|
|
896
|
+
if (startField && endField) {
|
|
897
|
+
XEUtils.set(fData, startField, null)
|
|
898
|
+
XEUtils.set(fData, endField, null)
|
|
899
|
+
}
|
|
874
900
|
}
|
|
875
901
|
fData[field] = itemValue
|
|
876
902
|
}
|
|
@@ -892,7 +918,13 @@ export default defineVxeComponent({
|
|
|
892
918
|
if (!proxyInited) {
|
|
893
919
|
reactData.proxyInited = true
|
|
894
920
|
if (proxyOpts.autoLoad !== false) {
|
|
895
|
-
nextTick().then(() =>
|
|
921
|
+
nextTick().then(() => {
|
|
922
|
+
internalData.uFoot = true
|
|
923
|
+
const rest = $xeGantt.commitProxy('initial')
|
|
924
|
+
internalData.uFoot = false
|
|
925
|
+
updateQueryFooter()
|
|
926
|
+
return rest
|
|
927
|
+
}).then((rest) => {
|
|
896
928
|
dispatchEvent('proxy-query', { ...rest, isInited: true }, new Event('initial'))
|
|
897
929
|
})
|
|
898
930
|
}
|
|
@@ -900,6 +932,14 @@ export default defineVxeComponent({
|
|
|
900
932
|
}
|
|
901
933
|
}
|
|
902
934
|
|
|
935
|
+
const updateQueryFooter = () => {
|
|
936
|
+
const proxyOpts = computeProxyOpts.value
|
|
937
|
+
const { ajax } = proxyOpts
|
|
938
|
+
if (ajax && ajax.queryFooter) {
|
|
939
|
+
return $xeGantt.commitProxy('queryFooter')
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
|
|
903
943
|
const handleGlobalKeydownEvent = (evnt: KeyboardEvent) => {
|
|
904
944
|
const zoomOpts = computeZoomOpts.value
|
|
905
945
|
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE)
|
|
@@ -922,15 +962,15 @@ export default defineVxeComponent({
|
|
|
922
962
|
* @param {String/Object} code 字符串或对象
|
|
923
963
|
*/
|
|
924
964
|
commitProxy (proxyTarget: string | VxeToolbarPropTypes.ButtonConfig, ...args: any[]) {
|
|
925
|
-
const { proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props
|
|
965
|
+
const { showFooter, proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props
|
|
926
966
|
const { tablePage } = reactData
|
|
927
967
|
const isActiveMsg = computeIsActiveMsg.value
|
|
928
968
|
const isRespMsg = computeIsRespMsg.value
|
|
929
969
|
const proxyOpts = computeProxyOpts.value
|
|
930
970
|
const pagerOpts = computePagerOpts.value
|
|
931
971
|
const toolbarOpts = computeToolbarOpts.value
|
|
932
|
-
const { beforeQuery, afterQuery, beforeDelete, afterDelete, beforeSave, afterSave, ajax = {} } = proxyOpts
|
|
933
|
-
const resConfigs = proxyOpts.response || proxyOpts.props || {}
|
|
972
|
+
const { beforeQuery, afterQuery, beforeQueryFooter, afterQueryFooter, beforeDelete, afterDelete, beforeSave, afterSave, ajax = {} } = proxyOpts
|
|
973
|
+
const resConfigs = (proxyOpts.response || proxyOpts.props || {}) as VxeGridDefines.ProxyConfigResponseConfig
|
|
934
974
|
const $xeTable = refTable.value
|
|
935
975
|
if (!$xeTable) {
|
|
936
976
|
return nextTick()
|
|
@@ -981,15 +1021,16 @@ export default defineVxeComponent({
|
|
|
981
1021
|
case 'initial':
|
|
982
1022
|
case 'reload':
|
|
983
1023
|
case 'query': {
|
|
984
|
-
const
|
|
985
|
-
const
|
|
986
|
-
const
|
|
987
|
-
if (
|
|
1024
|
+
const qMethods = ajax.query
|
|
1025
|
+
const qsMethods = ajax.querySuccess
|
|
1026
|
+
const qeMethods = ajax.queryError
|
|
1027
|
+
if (qMethods) {
|
|
988
1028
|
const isInited = code === 'initial'
|
|
989
1029
|
const isReload = code === 'reload'
|
|
990
1030
|
if (!isInited && reactData.tableLoading) {
|
|
991
1031
|
return nextTick()
|
|
992
1032
|
}
|
|
1033
|
+
let operPromise = null
|
|
993
1034
|
let sortList: any[] = []
|
|
994
1035
|
let filterList: VxeTableDefines.FilterCheckedParams[] = []
|
|
995
1036
|
let pageParams: any = {}
|
|
@@ -1043,7 +1084,7 @@ export default defineVxeComponent({
|
|
|
1043
1084
|
} else {
|
|
1044
1085
|
if ($xeTable) {
|
|
1045
1086
|
if (isReload) {
|
|
1046
|
-
$xeTable.clearAll()
|
|
1087
|
+
operPromise = $xeTable.clearAll()
|
|
1047
1088
|
} else {
|
|
1048
1089
|
sortList = $xeTable.getSortColumns()
|
|
1049
1090
|
filterList = $xeTable.getCheckedFilters()
|
|
@@ -1063,65 +1104,119 @@ export default defineVxeComponent({
|
|
|
1063
1104
|
sorts: sortList,
|
|
1064
1105
|
filters: filterList,
|
|
1065
1106
|
form: formData,
|
|
1066
|
-
options:
|
|
1107
|
+
options: qMethods
|
|
1067
1108
|
}
|
|
1068
1109
|
reactData.sortData = sortList
|
|
1069
1110
|
reactData.filterData = filterList
|
|
1070
1111
|
reactData.tableLoading = true
|
|
1071
|
-
return Promise.
|
|
1072
|
-
.
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
tableData = (listProp ? (XEUtils.isFunction(listProp) ? listProp({ data: rest, $table: $xeTable, $grid: null, $gantt: $xeGantt }) : XEUtils.get(rest, listProp)) : rest) || []
|
|
1112
|
+
return Promise.all([
|
|
1113
|
+
Promise.resolve((beforeQuery || qMethods)(commitParams, ...args)),
|
|
1114
|
+
operPromise
|
|
1115
|
+
]).then(([rest]) => {
|
|
1116
|
+
let tableData: any[] = []
|
|
1117
|
+
reactData.tableLoading = false
|
|
1118
|
+
if (rest) {
|
|
1119
|
+
const reParams = { data: rest, $table: $xeTable, $grid: null, $gantt: $xeGantt }
|
|
1120
|
+
if (pagerConfig && isEnableConf(pagerOpts)) {
|
|
1121
|
+
const totalProp = resConfigs.total
|
|
1122
|
+
const total = (XEUtils.isFunction(totalProp) ? totalProp(reParams) : XEUtils.get(rest, totalProp || 'page.total')) || 0
|
|
1123
|
+
tablePage.total = XEUtils.toNumber(total)
|
|
1124
|
+
const resultProp = resConfigs.result
|
|
1125
|
+
tableData = (XEUtils.isFunction(resultProp) ? resultProp(reParams) : XEUtils.get(rest, resultProp || 'result')) || []
|
|
1126
|
+
// 检验当前页码,不能超出当前最大页数
|
|
1127
|
+
const pageCount = Math.max(Math.ceil(total / tablePage.pageSize), 1)
|
|
1128
|
+
if (tablePage.currentPage > pageCount) {
|
|
1129
|
+
tablePage.currentPage = pageCount
|
|
1090
1130
|
}
|
|
1091
|
-
}
|
|
1092
|
-
if ($xeTable as any) {
|
|
1093
|
-
$xeTable.loadData(tableData)
|
|
1094
1131
|
} else {
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
if (afterQuery) {
|
|
1102
|
-
afterQuery(commitParams, ...args)
|
|
1103
|
-
}
|
|
1104
|
-
if (querySuccessMethods) {
|
|
1105
|
-
querySuccessMethods({ ...commitParams, response: rest })
|
|
1132
|
+
const listProp = resConfigs.list
|
|
1133
|
+
if (XEUtils.isArray(rest)) {
|
|
1134
|
+
tableData = rest
|
|
1135
|
+
} else if (listProp) {
|
|
1136
|
+
tableData = (XEUtils.isFunction(listProp) ? listProp(reParams) : XEUtils.get(rest, listProp)) || []
|
|
1137
|
+
}
|
|
1106
1138
|
}
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1139
|
+
if (showFooter) {
|
|
1140
|
+
const fdProp = resConfigs.footerData
|
|
1141
|
+
const footerList = fdProp ? (XEUtils.isFunction(fdProp) ? fdProp(reParams) : XEUtils.get(rest, fdProp)) : []
|
|
1142
|
+
if (XEUtils.isArray(footerList)) {
|
|
1143
|
+
reactData.footerData = footerList
|
|
1144
|
+
}
|
|
1112
1145
|
}
|
|
1113
|
-
|
|
1114
|
-
|
|
1146
|
+
}
|
|
1147
|
+
if ($xeTable) {
|
|
1148
|
+
$xeTable.loadData(tableData)
|
|
1149
|
+
} else {
|
|
1150
|
+
nextTick(() => {
|
|
1151
|
+
const $xeTable = refTable.value
|
|
1152
|
+
if ($xeTable) {
|
|
1153
|
+
$xeTable.loadData(tableData)
|
|
1154
|
+
}
|
|
1155
|
+
})
|
|
1156
|
+
}
|
|
1157
|
+
if (afterQuery) {
|
|
1158
|
+
afterQuery(commitParams, ...args)
|
|
1159
|
+
}
|
|
1160
|
+
if (qsMethods) {
|
|
1161
|
+
qsMethods({ ...commitParams, response: rest })
|
|
1162
|
+
}
|
|
1163
|
+
return { status: true }
|
|
1164
|
+
}).catch((rest) => {
|
|
1165
|
+
reactData.tableLoading = false
|
|
1166
|
+
if (qeMethods) {
|
|
1167
|
+
qeMethods({ ...commitParams, response: rest })
|
|
1168
|
+
}
|
|
1169
|
+
return { status: false }
|
|
1170
|
+
})
|
|
1115
1171
|
} else {
|
|
1116
|
-
errLog('vxe.error.notFunc', ['proxy-config.ajax.query'])
|
|
1172
|
+
errLog('vxe.error.notFunc', ['[gantt] proxy-config.ajax.query'])
|
|
1173
|
+
}
|
|
1174
|
+
break
|
|
1175
|
+
}
|
|
1176
|
+
case 'queryFooter': {
|
|
1177
|
+
const qfMethods = ajax.queryFooter
|
|
1178
|
+
const qfSuccessMethods = ajax.queryFooterSuccess
|
|
1179
|
+
const qfErrorMethods = ajax.queryFooterError
|
|
1180
|
+
if (qfMethods) {
|
|
1181
|
+
let filterList: VxeTableDefines.FilterCheckedParams[] = []
|
|
1182
|
+
if ($xeTable) {
|
|
1183
|
+
filterList = $xeTable.getCheckedFilters()
|
|
1184
|
+
}
|
|
1185
|
+
const commitParams = {
|
|
1186
|
+
$table: $xeTable,
|
|
1187
|
+
$grid: null,
|
|
1188
|
+
$gantt: $xeGantt,
|
|
1189
|
+
code,
|
|
1190
|
+
button,
|
|
1191
|
+
filters: filterList,
|
|
1192
|
+
form: formData,
|
|
1193
|
+
options: qfMethods
|
|
1194
|
+
}
|
|
1195
|
+
return Promise.resolve((beforeQueryFooter || qfMethods)(commitParams, ...args)).then(rest => {
|
|
1196
|
+
reactData.footerData = XEUtils.isArray(rest) ? rest : []
|
|
1197
|
+
if (afterQueryFooter) {
|
|
1198
|
+
afterQueryFooter(commitParams, ...args)
|
|
1199
|
+
}
|
|
1200
|
+
if (qfSuccessMethods) {
|
|
1201
|
+
qfSuccessMethods({ ...commitParams, response: rest })
|
|
1202
|
+
}
|
|
1203
|
+
return { status: true }
|
|
1204
|
+
}).catch((rest) => {
|
|
1205
|
+
if (qfErrorMethods) {
|
|
1206
|
+
qfErrorMethods({ ...commitParams, response: rest })
|
|
1207
|
+
}
|
|
1208
|
+
return { status: false }
|
|
1209
|
+
})
|
|
1210
|
+
} else {
|
|
1211
|
+
errLog('vxe.error.notFunc', ['[gantt] proxy-config.ajax.queryFooter'])
|
|
1117
1212
|
}
|
|
1118
1213
|
break
|
|
1119
1214
|
}
|
|
1120
1215
|
case 'delete': {
|
|
1121
|
-
const
|
|
1216
|
+
const dMethods = ajax.delete
|
|
1122
1217
|
const deleteSuccessMethods = ajax.deleteSuccess
|
|
1123
1218
|
const deleteErrorMethods = ajax.deleteError
|
|
1124
|
-
if (
|
|
1219
|
+
if (dMethods) {
|
|
1125
1220
|
const selectRecords = $xeGantt.getCheckboxRecords()
|
|
1126
1221
|
const removeRecords = selectRecords.filter(row => !$xeTable.isInsertByRow(row))
|
|
1127
1222
|
const body = { removeRecords }
|
|
@@ -1133,7 +1228,7 @@ export default defineVxeComponent({
|
|
|
1133
1228
|
button,
|
|
1134
1229
|
body,
|
|
1135
1230
|
form: formData,
|
|
1136
|
-
options:
|
|
1231
|
+
options: dMethods
|
|
1137
1232
|
}
|
|
1138
1233
|
if (selectRecords.length) {
|
|
1139
1234
|
return handleDeleteRow(code, 'vxe.grid.deleteSelectRecord', () => {
|
|
@@ -1141,7 +1236,7 @@ export default defineVxeComponent({
|
|
|
1141
1236
|
return $xeTable.remove(selectRecords)
|
|
1142
1237
|
}
|
|
1143
1238
|
reactData.tableLoading = true
|
|
1144
|
-
return Promise.resolve((beforeDelete ||
|
|
1239
|
+
return Promise.resolve((beforeDelete || dMethods)(commitParams, ...args))
|
|
1145
1240
|
.then(rest => {
|
|
1146
1241
|
reactData.tableLoading = false
|
|
1147
1242
|
$xeTable.setPendingRow(removeRecords, false)
|
|
@@ -1153,7 +1248,10 @@ export default defineVxeComponent({
|
|
|
1153
1248
|
if (afterDelete) {
|
|
1154
1249
|
afterDelete(commitParams, ...args)
|
|
1155
1250
|
} else {
|
|
1251
|
+
internalData.uFoot = true
|
|
1156
1252
|
$xeGantt.commitProxy('query')
|
|
1253
|
+
internalData.uFoot = false
|
|
1254
|
+
updateQueryFooter()
|
|
1157
1255
|
}
|
|
1158
1256
|
if (deleteSuccessMethods) {
|
|
1159
1257
|
deleteSuccessMethods({ ...commitParams, response: rest })
|
|
@@ -1181,7 +1279,7 @@ export default defineVxeComponent({
|
|
|
1181
1279
|
}
|
|
1182
1280
|
}
|
|
1183
1281
|
} else {
|
|
1184
|
-
errLog('vxe.error.notFunc', ['proxy-config.ajax.delete'])
|
|
1282
|
+
errLog('vxe.error.notFunc', ['[gantt] proxy-config.ajax.delete'])
|
|
1185
1283
|
}
|
|
1186
1284
|
break
|
|
1187
1285
|
}
|
|
@@ -1234,7 +1332,10 @@ export default defineVxeComponent({
|
|
|
1234
1332
|
if (afterSave) {
|
|
1235
1333
|
afterSave(commitParams, ...args)
|
|
1236
1334
|
} else {
|
|
1335
|
+
internalData.uFoot = true
|
|
1237
1336
|
$xeGantt.commitProxy('query')
|
|
1337
|
+
internalData.uFoot = false
|
|
1338
|
+
updateQueryFooter()
|
|
1238
1339
|
}
|
|
1239
1340
|
if (saveSuccessMethods) {
|
|
1240
1341
|
saveSuccessMethods({ ...commitParams, response: rest })
|
|
@@ -1262,7 +1363,7 @@ export default defineVxeComponent({
|
|
|
1262
1363
|
}
|
|
1263
1364
|
})
|
|
1264
1365
|
} else {
|
|
1265
|
-
errLog('vxe.error.notFunc', ['proxy-config.ajax.save'])
|
|
1366
|
+
errLog('vxe.error.notFunc', ['[gantt] proxy-config.ajax.save'])
|
|
1266
1367
|
}
|
|
1267
1368
|
break
|
|
1268
1369
|
}
|
|
@@ -1273,7 +1374,7 @@ export default defineVxeComponent({
|
|
|
1273
1374
|
if (tCommandMethod) {
|
|
1274
1375
|
tCommandMethod({ code, button, $table: $xeTable, $grid: null, $gantt: $xeGantt }, ...args)
|
|
1275
1376
|
} else {
|
|
1276
|
-
errLog('vxe.error.notCommands', [code])
|
|
1377
|
+
errLog('vxe.error.notCommands', [`[grid] ${code}`])
|
|
1277
1378
|
}
|
|
1278
1379
|
}
|
|
1279
1380
|
}
|
|
@@ -1473,6 +1574,7 @@ export default defineVxeComponent({
|
|
|
1473
1574
|
* 获取需要排除的高度
|
|
1474
1575
|
*/
|
|
1475
1576
|
getExcludeHeight () {
|
|
1577
|
+
const { height } = props
|
|
1476
1578
|
const { isZMax } = reactData
|
|
1477
1579
|
const el = refElem.value
|
|
1478
1580
|
if (el) {
|
|
@@ -1481,8 +1583,11 @@ export default defineVxeComponent({
|
|
|
1481
1583
|
const topWrapper = refTopWrapper.value
|
|
1482
1584
|
const bottomWrapper = refBottomWrapper.value
|
|
1483
1585
|
const pagerWrapper = refPagerWrapper.value
|
|
1484
|
-
const parentEl = el.parentElement
|
|
1485
|
-
|
|
1586
|
+
const parentEl = el.parentElement
|
|
1587
|
+
let parentPaddingSize = 0
|
|
1588
|
+
if (parentEl && (height === '100%' || height === 'auto')) {
|
|
1589
|
+
parentPaddingSize = isZMax ? 0 : getPaddingTopBottomSize(parentEl)
|
|
1590
|
+
}
|
|
1486
1591
|
return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
|
|
1487
1592
|
}
|
|
1488
1593
|
return 0
|
|
@@ -1497,11 +1602,23 @@ export default defineVxeComponent({
|
|
|
1497
1602
|
},
|
|
1498
1603
|
triggerToolbarCommitEvent (params, evnt) {
|
|
1499
1604
|
const { code } = params
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1605
|
+
if (code) {
|
|
1606
|
+
const isUf = ['reload', 'delete', 'save'].includes(code)
|
|
1607
|
+
if (isUf) {
|
|
1608
|
+
internalData.uFoot = true
|
|
1503
1609
|
}
|
|
1504
|
-
|
|
1610
|
+
const rest = $xeGantt.commitProxy(params, evnt).then((rest) => {
|
|
1611
|
+
if (rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
|
|
1612
|
+
$xeGantt.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code as 'delete' | 'save'}` : 'proxy-query', { ...rest, isReload: code === 'reload' }, evnt)
|
|
1613
|
+
}
|
|
1614
|
+
})
|
|
1615
|
+
internalData.uFoot = false
|
|
1616
|
+
if (isUf) {
|
|
1617
|
+
updateQueryFooter()
|
|
1618
|
+
}
|
|
1619
|
+
return rest
|
|
1620
|
+
}
|
|
1621
|
+
return nextTick()
|
|
1505
1622
|
},
|
|
1506
1623
|
triggerToolbarBtnEvent (button, evnt) {
|
|
1507
1624
|
$xeGantt.triggerToolbarCommitEvent(button, evnt)
|