|
|
@@ -64,7 +64,7 @@ const handleColumns = (columns: any, status?: string) => {
|
|
|
}
|
|
|
|
|
|
// 获取表格列
|
|
|
-const getTableColumns = async (isInit: boolean) => {
|
|
|
+const getTableColumns = async () => {
|
|
|
tableLoadingColumn.value = true
|
|
|
await $api.getTrackingTableColumns().then((res: any) => {
|
|
|
if (res.code === 200) {
|
|
|
@@ -85,7 +85,9 @@ const getTableColumns = async (isInit: boolean) => {
|
|
|
}
|
|
|
})
|
|
|
nextTick(() => {
|
|
|
- !isInit && (tableLoadingColumn.value = false)
|
|
|
+ tableLoadingColumn.value = false
|
|
|
+ selectedNumber.value = 0
|
|
|
+ selectedTableData.value = []
|
|
|
})
|
|
|
}
|
|
|
|
|
|
@@ -93,46 +95,51 @@ const pageInfo = ref({ pageNo: 1, pageSize: 100, total: 0 })
|
|
|
const TagsList = ref()
|
|
|
const tempSearch = ref('')
|
|
|
|
|
|
-// 获取表格数据
|
|
|
+// 获得表格数据后赋值
|
|
|
+const assignTableData = (data: any) => {
|
|
|
+ trackingTable.value.data = data.searchData || []
|
|
|
+ pageInfo.value.total = Number(data.rc)
|
|
|
+ TagsList.value = data.tagsList
|
|
|
+ tempSearch.value = data.tmp_search
|
|
|
+
|
|
|
+ if (data.canEdiVgm && trackingTable.value.columns.length > 0) {
|
|
|
+ const index = trackingTable.value.columns.findIndex((item: any) => item.title === 'Action')
|
|
|
+ if (index === -1) {
|
|
|
+ trackingTable.value.columns.push({
|
|
|
+ title: 'Action',
|
|
|
+ fixed: 'right',
|
|
|
+ width: 80,
|
|
|
+ slots: { default: 'action' }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 拥有所有字段的表格
|
|
|
+ setTimeout(() => {
|
|
|
+ allTable.value.columns = handleColumns(data.allColums, 'all')
|
|
|
+ allTable.value.data = data.searchData
|
|
|
+ nextTick(() => {
|
|
|
+ allTableRef.value && autoWidth(allTable.value, allTableRef.value)
|
|
|
+ })
|
|
|
+ }, 1000)
|
|
|
+}
|
|
|
+
|
|
|
let filterdataobj: any = {}
|
|
|
const getSharedTableData = () => {
|
|
|
const trackingData = JSON.parse(localStorage.getItem('searchData'))?.trackingData
|
|
|
if (trackingData) {
|
|
|
- trackingTable.value.data = trackingData.searchData || []
|
|
|
- pageInfo.value.total = Number(trackingData.rc)
|
|
|
pageInfo.value.pageSize = Number(trackingData.ps)
|
|
|
- TagsList.value = trackingData.tagsList
|
|
|
- tempSearch.value = trackingData.tmp_search
|
|
|
-
|
|
|
- if (trackingData.canEdiVgm && trackingTable.value.columns.length > 0) {
|
|
|
- const index = trackingTable.value.columns.findIndex((item: any) => item.title === 'Action')
|
|
|
- if (index === -1) {
|
|
|
- trackingTable.value.columns.push({
|
|
|
- title: 'Action',
|
|
|
- fixed: 'right',
|
|
|
- width: 80,
|
|
|
- slots: { default: 'action' }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
+ assignTableData(trackingData)
|
|
|
+ selectedNumber.value = 0
|
|
|
+ selectedTableData.value = []
|
|
|
nextTick(() => {
|
|
|
tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
})
|
|
|
-
|
|
|
- // 拥有所有字段的表格
|
|
|
- setTimeout(() => {
|
|
|
- allTable.value.columns = handleColumns(trackingData.allColums, 'all')
|
|
|
-
|
|
|
- allTable.value.data = trackingData.searchData || []
|
|
|
- nextTick(() => {
|
|
|
- allTableRef.value && autoWidth(allTable.value, allTableRef.value)
|
|
|
- })
|
|
|
- }, 1000)
|
|
|
return true
|
|
|
}
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
+// 获取表格数据
|
|
|
const getTableData = async (isPageChange?: boolean) => {
|
|
|
const rc = isPageChange ? pageInfo.value.total : -1
|
|
|
tableLoadingTableData.value = true
|
|
|
@@ -142,35 +149,16 @@ const getTableData = async (isPageChange?: boolean) => {
|
|
|
sessionStorage.getItem('clickParams') != '{}'
|
|
|
) {
|
|
|
const data = JSON.parse(sessionStorage.getItem('clickParams') as string) || {}
|
|
|
- trackingTable.value.data = data.searchData || []
|
|
|
- pageInfo.value.total = Number(data.rc)
|
|
|
- TagsList.value = data.tagsList
|
|
|
-
|
|
|
- tempSearch.value = data.tmp_search
|
|
|
-
|
|
|
- if (data.canEdiVgm && trackingTable.value.columns.length > 0) {
|
|
|
- const index = trackingTable.value.columns.findIndex((item: any) => item.title === 'Action')
|
|
|
- if (index === -1) {
|
|
|
- trackingTable.value.columns.push({
|
|
|
- title: 'Action',
|
|
|
- fixed: 'right',
|
|
|
- width: 80,
|
|
|
- slots: { default: 'action' }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 拥有所有字段的表格
|
|
|
- setTimeout(() => {
|
|
|
- allTable.value.columns = handleColumns(data.allColums, 'all')
|
|
|
- allTable.value.data = data.searchData
|
|
|
- nextTick(() => {
|
|
|
- allTableRef.value && autoWidth(allTable.value, allTableRef.value)
|
|
|
- })
|
|
|
- }, 1000)
|
|
|
+ assignTableData(data)
|
|
|
setTimeout(() => {
|
|
|
sessionStorage.removeItem('clickParams')
|
|
|
}, 5000)
|
|
|
+ nextTick(() => {
|
|
|
+ tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
+ tableLoadingTableData.value = false
|
|
|
+ selectedNumber.value = 0
|
|
|
+ selectedTableData.value = []
|
|
|
+ })
|
|
|
} else {
|
|
|
await $api
|
|
|
.getTrackingTableData({
|
|
|
@@ -182,39 +170,18 @@ const getTableData = async (isPageChange?: boolean) => {
|
|
|
})
|
|
|
.then((res: any) => {
|
|
|
if (res.code === 200) {
|
|
|
- trackingTable.value.data = res.data.searchData || []
|
|
|
- pageInfo.value.total = Number(res.data.rc)
|
|
|
- tempSearch.value = res.data.tmp_search
|
|
|
-
|
|
|
- if (res.data.canEdiVgm && trackingTable.value.columns.length > 0) {
|
|
|
- const index = trackingTable.value.columns.findIndex(
|
|
|
- (item: any) => item.title === 'Action'
|
|
|
- )
|
|
|
- if (index === -1) {
|
|
|
- trackingTable.value.columns.push({
|
|
|
- title: 'Action',
|
|
|
- fixed: 'right',
|
|
|
- width: 80,
|
|
|
- slots: { default: 'action' }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 拥有所有字段的表格
|
|
|
- setTimeout(() => {
|
|
|
- allTable.value.columns = handleColumns(res.data.allColums, 'all')
|
|
|
- allTable.value.data = res.data.searchData || []
|
|
|
- nextTick(() => {
|
|
|
- allTableRef.value && autoWidth(allTable.value, allTableRef.value)
|
|
|
- })
|
|
|
- }, 1000)
|
|
|
+ assignTableData(res.data)
|
|
|
}
|
|
|
})
|
|
|
+ .finally(() => {
|
|
|
+ nextTick(() => {
|
|
|
+ tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
+ tableLoadingTableData.value = false
|
|
|
+ })
|
|
|
+ selectedNumber.value = 0
|
|
|
+ selectedTableData.value = []
|
|
|
+ })
|
|
|
}
|
|
|
- nextTick(() => {
|
|
|
- tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
- tableLoadingTableData.value = false
|
|
|
- })
|
|
|
}
|
|
|
|
|
|
// 查询列表数据
|
|
|
@@ -231,42 +198,20 @@ const searchTableData = (data: any) => {
|
|
|
})
|
|
|
.then((res: any) => {
|
|
|
if (res.code === 200) {
|
|
|
- trackingTable.value.data = res.data.searchData
|
|
|
- pageInfo.value.total = Number(res.data.rc)
|
|
|
- tempSearch.value = res.data.tmp_search
|
|
|
-
|
|
|
- if (res.data.canEdiVgm && trackingTable.value.columns.length > 0) {
|
|
|
- const index = trackingTable.value.columns.findIndex(
|
|
|
- (item: any) => item.title === 'Action'
|
|
|
- )
|
|
|
- if (index === -1) {
|
|
|
- trackingTable.value.columns.push({
|
|
|
- title: 'Action',
|
|
|
- fixed: 'right',
|
|
|
- width: 80,
|
|
|
- slots: { default: 'action' }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- // 拥有所有字段的表格
|
|
|
- setTimeout(() => {
|
|
|
- allTable.value.columns = handleColumns(res.data.allColums, 'all')
|
|
|
- allTable.value.data = res.data.searchData
|
|
|
- nextTick(() => {
|
|
|
- allTableRef.value && autoWidth(allTable.value, allTableRef.value)
|
|
|
- })
|
|
|
- }, 1000)
|
|
|
+ assignTableData(res.data)
|
|
|
}
|
|
|
})
|
|
|
.finally(() => {
|
|
|
tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
tableLoadingTableData.value = false
|
|
|
+ selectedNumber.value = 0
|
|
|
+ selectedTableData.value = []
|
|
|
})
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
tableLoadingColumn.value = true
|
|
|
- Promise.all([getTableColumns(true)]).finally(() => {
|
|
|
+ Promise.all([getTableColumns()]).finally(() => {
|
|
|
tableLoadingColumn.value = false
|
|
|
nextTick(() => {
|
|
|
tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
@@ -370,12 +315,21 @@ const handleDownload = () => {
|
|
|
curSelectedColumns.push(item.title)
|
|
|
}
|
|
|
})
|
|
|
- downloadDialogRef.value.openDialog(props.tagsData, curSelectedColumns)
|
|
|
+ downloadDialogRef.value.openDialog(
|
|
|
+ props.tagsData,
|
|
|
+ curSelectedColumns,
|
|
|
+ selectedNumber.value || pageInfo.value.total
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
const exportLoading = ref(false)
|
|
|
// 获取导出表格数据
|
|
|
const getExportTableData = (status: number) => {
|
|
|
+ // 如果有选中表格行数据,那么只到处选中的数据
|
|
|
+ if (selectedNumber.value > 0) {
|
|
|
+ exportTable(status)
|
|
|
+ return
|
|
|
+ }
|
|
|
exportLoading.value = true
|
|
|
const buildColumnString = (columns: any[]): string => {
|
|
|
return columns
|
|
|
@@ -428,6 +382,14 @@ const exportTable = (status: number) => {
|
|
|
}
|
|
|
exportConfig.columns = trackingTable.value.columns
|
|
|
}
|
|
|
+ if (selectedNumber.value > 0) {
|
|
|
+ exportConfig.dataFilterMethod = ({ row }: any) => {
|
|
|
+ const index = selectedTableData.value.findIndex(
|
|
|
+ (item: any) => item._X_ROW_KEY === row._X_ROW_KEY
|
|
|
+ )
|
|
|
+ return index !== -1
|
|
|
+ }
|
|
|
+ }
|
|
|
allTableRef.value?.exportData(exportConfig)
|
|
|
}
|
|
|
|
|
|
@@ -453,7 +415,7 @@ const handleCustomizeColumns = () => {
|
|
|
|
|
|
// 定制表格
|
|
|
const customizeColumns = async () => {
|
|
|
- await getTableColumns(false)
|
|
|
+ await getTableColumns()
|
|
|
nextTick(() => {
|
|
|
tableRef.value && autoWidth(trackingTable.value, tableRef.value)
|
|
|
})
|
|
|
@@ -482,12 +444,15 @@ const handleLinkClick = (row: any, column: any) => {
|
|
|
}
|
|
|
|
|
|
const selectedNumber = ref(0)
|
|
|
+const selectedTableData = ref([])
|
|
|
// 复选框选中事件
|
|
|
const handleCheckboxChange = ({ records }: any) => {
|
|
|
selectedNumber.value = records.length
|
|
|
+ selectedTableData.value = records
|
|
|
}
|
|
|
const handleCheckAllChange = ({ records }: any) => {
|
|
|
selectedNumber.value = records.length
|
|
|
+ selectedTableData.value = records
|
|
|
}
|
|
|
|
|
|
// VGM
|