소스 검색

refactor(HeaderCard组件、Table组件及依赖Table组件的其他组件、TemporalTrend组件): 更新日期选择器;更改Table组件Props的功能

日期选择器现在会默认选择最近一周的日期,不再持久化存储用户最近选择的日期;
删除commonStore中关于日期的相关逻辑

移动Table组件到components/table文件夹中
重新定义Table组件Props中的openPageQuery和openRemoteQuery功能:
    -openPageQuery用来决定是否需要分页组件,默认开启
    -openRemoteQuery用来决定是否需要远程查询,默认开启

修复TemporalTrend组件的tab-change时间函数格式错误的问题
fxs 6 달 전
부모
커밋
753ac3bc3b

+ 1 - 1
components.d.ts

@@ -59,7 +59,7 @@ declare module 'vue' {
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
     StatisticText: typeof import('./src/components/dataAnalysis/StatisticText.vue')['default']
-    Table: typeof import('./src/components/Table.vue')['default']
+    Table: typeof import('./src/components/table/Table.vue')['default']
     TableFieldText: typeof import('./src/components/table/TableFieldText.vue')['default']
     TemporalTrend: typeof import('./src/components/dataAnalysis/TemporalTrend.vue')['default']
     TimeLineChart: typeof import('./src/components/echarts/TimeLineChart.vue')['default']

+ 2 - 5
src/components/dataAnalysis/HeaderCard.vue

@@ -11,13 +11,10 @@ import type { HeaderCardProps, IconDropdownItem } from '@/types/dataAnalysis'
 
 import { computed, onMounted, reactive, ref, watch } from 'vue'
 import { createDateRange } from '@/utils/common'
-import { useCommonStore } from '@/stores/useCommon'
 
 import router from '@/router'
 import WithIconSelect from '@/components/common/WithIconSelect.vue'
 
-const { selectInfo, changeDateRange } = useCommonStore()
-
 const props = withDefaults(defineProps<HeaderCardProps>(), {
   openDateSelect: false,
   needPfSelect: true,
@@ -44,7 +41,7 @@ const shortcuts = [
 ]
 
 // 选择的日期
-const selectDate = ref<Array<Date>>([selectInfo.startTime, selectInfo.endTime])
+const selectDate = ref<[Date, Date]>(shortcuts[0].value())
 
 // 面包屑列表
 const breadcrumbList = reactive<
@@ -96,7 +93,7 @@ const goBack = (index: number) => {
  * @param {*} val 新日期
  */
 const dateChange = (val: Array<Date>) => {
-  changeDateRange(val)
+  // changeDateRange(val)
   emits('changeDate', val)
 }
 

+ 4 - 3
src/components/dataAnalysis/TemporalTrend.vue

@@ -12,10 +12,11 @@ import type { TablePaginationSetting, TableFieldInfo } from '@/types/table'
 
 import { nextTick, onMounted, reactive, ref, watch } from 'vue'
 
-import Table from '../Table.vue'
+import Table from '../table/Table.vue'
 import TimeLineChart from '../echarts/TimeLineChart.vue'
 import StatisticText from './StatisticText.vue'
 import axiosInstance from '@/utils/axios/axiosInstance'
+import type { TabPaneName } from 'element-plus'
 
 interface CacheData {
   paginationConfig: TablePaginationSetting
@@ -292,13 +293,13 @@ const getData = async (type: number) => {
  * @description: 当标签页切换的时候,重新获取数据,如果有缓存数据则直接使用缓存数据
  * @param {*} tabName 对应的tabName,去tabInfo中找到对应的url
  */
-const tabChange = async (tabName: string) => {
+const tabChange = (tabName: TabPaneName) => {
   if (props.tabInfo) {
     if (cacheData[tabName]) {
       setCacheData(true)
     } else {
       let type = props.tabInfo.find((item) => item.name === tabName)?.type
-      if (type) await getData(type)
+      if (type) getData(type)
       else throw new Error('No match type')
     }
   }

+ 36 - 46
src/components/Table.vue → src/components/table/Table.vue

@@ -7,25 +7,25 @@
  * 
 -->
 <script setup lang="ts">
-import type { PropsParams, TableFieldInfo, TablePaginationSetting } from '@/types/table'
-import type { ReqConfig } from '@/types/dataAnalysis'
+import type { PropsParams, TableFieldInfo, TablePaginationSetting } from '@/types/table.ts'
+import type { ReqConfig } from '@/types/dataAnalysis.ts'
 import type { FormInstance } from 'element-plus'
-import { FilterType } from '@/types/table'
-import { FieldSpecialEffectType } from '@/types/tableText'
+import { FilterType } from '@/types/table.ts'
+import { FieldSpecialEffectType } from '@/types/tableText.ts'
 
 import { initLoadResource } from '@/utils/resource'
 import { fuzzySearch, throttleFunc } from '@/utils/common'
 import { useCustomFilter } from '@/hooks/useCustomFilter.ts'
-import { useTable } from '@/hooks/useTable'
-import { useRequest } from '@/hooks/useRequest'
+import { useTable } from '@/hooks/useTable.ts'
+import { useRequest } from '@/hooks/useRequest.ts'
 import { computed, onMounted, reactive, ref, toRaw, watch } from 'vue'
 import { Filter } from '@element-plus/icons-vue'
 
-import CustomFilter from './form/CustomFilter.vue'
-import FilterPopover from './toolsBtn/FilterPopover.vue'
-import RefreshBtn from './toolsBtn/RefreshBtn.vue'
-import TableFieldText from './table/TableFieldText.vue'
-import axiosInstance from '@/utils/axios/axiosInstance'
+import CustomFilter from '../form/CustomFilter.vue'
+import FilterPopover from '../toolsBtn/FilterPopover.vue'
+import RefreshBtn from '../toolsBtn/RefreshBtn.vue'
+import TableFieldText from './TableFieldText.vue'
+import axiosInstance from '@/utils/axios/axiosInstance.ts'
 
 type CustomFilterRef = InstanceType<typeof CustomFilter>
 
@@ -41,7 +41,6 @@ const {
   activeCustomFilterKey,
   initCustomFilterInfo,
   openCustomFilter,
-
   confirmCustomFilter
 } = useCustomFilter(customFilterRef)
 // 节流的延迟时间
@@ -53,22 +52,20 @@ const toolsIconSize = ref(25)
 // 查询表单
 const queryFormRef = ref<FormInstance>()
 
-// 传过来的配置
 const props = withDefaults(defineProps<PropsParams>(), {
   needRowindex: true,
   needAverage: false,
   needLeftTools: false,
   needRightTools: false,
   openFilterQuery: false,
-  openPageQuery: false,
+  openPageQuery: true,
+  openRemoteQuery: true,
   needUpload: false,
   needDownLoad: false,
-  openRemoteQuery: false,
+
   loadingState: false
 })
 
-// 父组件触发的方法
-// 删除了一个事件触发,loadSuccess
 const emits = defineEmits(['addNewItem', 'upload', 'downLoad'])
 
 // 加载动画
@@ -113,8 +110,12 @@ const blobUrlInfo = reactive<Record<string, string>>({})
 // 一些公用方法
 const { getTableData } = useTable(tableData, paginationConfig)
 
-// 没有开启分页查询的时候使用的数据
-const tableDataNoPaging = computed(() => {
+/**
+ * 计算表格数据,如果开启了分页查询,那么就返回一个空数组,否则返回当前页码的数据
+ */
+const tableDataNoPaging = computed<any[]>(() => {
+  // 开启分页查询则需要去远程查询,不使用此处的动态计算的数据
+  if (props.openRemoteQuery) return []
   let curPage = paginationConfig.currentPage
   let limit = paginationConfig.limit
   let begin = curPage * limit - limit
@@ -171,14 +172,15 @@ const handleSizeChange = (val: number) => {
  * @description 加载表格数据
  */
 const loadTableData = async (): Promise<boolean> => {
-  console.trace()
   return new Promise(async (resolve, reject) => {
     loading.value = true
     // 如果是直接传入的数据
     if (props.dataList) {
       tableData.splice(0, tableData.length, ...props.dataList)
+      if (props.paginationConfig) {
+        paginationConfig.total = props.paginationConfig.total
+      }
 
-      paginationConfig.total = props.paginationConfig.total
       loading.value = false
 
       resolve(true)
@@ -189,13 +191,13 @@ const loadTableData = async (): Promise<boolean> => {
           // 如果开启了分页查询,那么要计算出需要展示的页码位置所对应的偏移量
           // 同时要将查询的条数改为对应的用户选择的展示条数
 
-          if (props.openPageQuery) {
+          if (props.openRemoteQuery) {
             reqConfig.otherOptions.offset =
               (paginationConfig.currentPage - 1) * paginationConfig.limit
             reqConfig.otherOptions.limit = paginationConfig.limit
           }
           // console.log(reqConfig.otherOptions)
-          await getTableData(reqConfig.url, reqConfig.otherOptions, props.openPageQuery)
+          await getTableData(reqConfig.url, reqConfig.otherOptions, props.openRemoteQuery)
 
           backupTableData.splice(0, backupTableData.length, ...tableData)
           resolve(true)
@@ -223,6 +225,7 @@ const getData = () => {
     try {
       // 等待数据加载完成
       await loadTableData()
+      // 如果需要平均值字段,则需要在表格头部插入一行计算平均值
       if (props.needAverage) {
         let rowData: any = {}
         let oldList: Array<any> = JSON.parse(JSON.stringify(tableData))
@@ -264,22 +267,7 @@ const resetTableData = () => {
 }
 
 /**
- * 删除没有用的自定义筛选字段,如果不删后端会查询不到(可以不用)
- *
- */
-// const delUnusedCustomFilter = () => {
-//   let customKeys = customFieldsList.value?.map((item) => {
-//     return item.name
-//   })
-//   for (let [k, v] of Object.entries(queryFormData)) {
-//     if (customKeys && customKeys.includes(k) && typeof v !== 'object') {
-//       console.log(k)
-//     }
-//   }
-// }
-
-/**
- * @description: 按条件查询,如果开启了分页查询,那么会直接重新查询数据,否则,会根据现有数据进行查询
+ * @description 按条件查询,如果开启了分页查询,那么会直接重新查询数据,否则,会根据现有数据进行查询
  */
 const queryTableData = () => {
   console.log(props.openRemoteQuery, props.requestConfig)
@@ -320,7 +308,7 @@ const resetQueryFormData = () => {
     JSON.stringify(backupQueryFormData, (_, v) => (typeof v === 'undefined' ? '' : v))
   )
   Object.assign(queryFormData, data)
-  reqConfig.otherOptions = backupReqOtherOptions // 要把请求的参数也重置一次,不然切换平台等操作,会带着原来查询参数请求
+  reqConfig.otherOptions = backupReqOtherOptions // 要把请求的参数也重置一次,不然切换平台等操作,会带着原来查询参数请求
 }
 
 /**
@@ -328,7 +316,7 @@ const resetQueryFormData = () => {
  */
 const resetQueryForm = () => {
   resetQueryFormData()
-  queryTableData()
+  throttleQueryTableData()
 }
 
 // 把重置方法包装一下,节流
@@ -340,7 +328,8 @@ const throttleResetQueryForm = throttleFunc(resetQueryForm, throttleTime)
  * @param  rowData 插入的数据
  */
 const insertRow = (start: number, rowData: any) => {
-  if (props.openPageQuery) {
+  console.log(tableData)
+  if (props.openRemoteQuery) {
     tableData[start].splice(0, 0, rowData)
   } else {
     tableData.splice(start, 0, rowData)
@@ -417,7 +406,7 @@ const watchCurPage = watch(
 )
 
 // 如果没有开启分页查询,直接关闭这两个监听
-if (!props.openPageQuery) {
+if (!props.openRemoteQuery) {
   watchLimit()
   watchCurPage()
 }
@@ -770,7 +759,7 @@ onMounted(() => {
           </el-icon>
           下载
         </el-button>
-        <!-- throttleFunc(queryTableData, 200) -->
+
         <RefreshBtn @refresh-table="throttleGetData" :icon-size="toolsIconSize"></RefreshBtn>
 
         <FilterPopover
@@ -783,13 +772,14 @@ onMounted(() => {
     <div class="tableBox">
       <!-- 没有分页的时候需要重新计算一下data -->
       <el-table
-        :data="openPageQuery ? tableData[paginationConfig.currentPage] : tableDataNoPaging"
+        :data="openRemoteQuery ? tableData[paginationConfig.currentPage] : tableDataNoPaging"
         style="width: 100%"
         class="tableBody"
         :cell-style="tableCellStyle"
         v-loading="loading"
         :row-key="createRowKey()"
         @sort-change="tableSortChange"
+        table-layout="auto"
       >
         <el-table-column
           v-if="props.needRowindex"
@@ -870,7 +860,7 @@ onMounted(() => {
 
         <slot name="tableOperation"></slot>
       </el-table>
-      <div class="userTablePaginationBox">
+      <div class="userTablePaginationBox" v-if="openPageQuery">
         <el-pagination
           class="userTablePagination"
           background

+ 0 - 1
src/hooks/useTable.ts

@@ -54,7 +54,6 @@ export function useTable(tableData: Array<any>, paginationSetting: TablePaginati
         await axiosInstance.post(url, option).then(async (result) => {
           let info = JSON.parse(JSON.stringify(result)) as ResponseInfo
           let data = info.data
-          console.log('执行了')
 
           // 没有数据则直接置为空
           if (!data) {

+ 7 - 30
src/stores/useCommon.ts

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-28 11:46:10
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-10-15 11:01:18
+ * @LastEditTime: 2024-11-28
  * @FilePath: \Game-Backstage-Management-System\src\stores\useCommon.ts
  * @Description:通用的store,在多个页面均会使用
  *
@@ -10,13 +10,10 @@
 import { reactive } from 'vue'
 import { defineStore } from 'pinia'
 import { getLocalInfo, saveLocalInfo } from '@/utils/localStorage/localStorage'
-import { createDateRange, invalidDateRange } from '@/utils/common'
 
 interface SelectInfo {
   gid: string
   pf: Array<string>
-  startTime: Date
-  endTime: Date
 }
 
 interface MultipleChoice {
@@ -39,19 +36,11 @@ const defaultGid = '1001'
 const getSelectInfo = (): SelectInfo => {
   let gid = getLocalInfo('selectInfo', 'gid') as string
   let pf = getLocalInfo('selectInfo', 'pf') as string[]
-  let localStartTime = getLocalInfo('selectInfo', 'startTime') as string
-  let localEndTime = getLocalInfo('selectInfo', 'endTime') as string
-  let newDateRange = createDateRange(7)
-  let startTime = newDateRange[0]
-  let endTime = newDateRange[1]
 
   gid = gid ? gid : defaultGid
   pf = pf ? [pf[0]] : defaultPf
-  if (invalidDateRange(localStartTime, localEndTime)) {
-    startTime = new Date(localStartTime)
-    endTime = new Date(localEndTime)
-  }
-  return { pf, gid, startTime, endTime }
+
+  return { pf, gid }
 }
 
 /**
@@ -70,9 +59,9 @@ const getMultipleChoice = (): { tempPf: string[] } => {
  * @param {SelectInfo} tempMultipleChoice 多选的选择器
  */
 const initSelect = (selectInfo: SelectInfo, tempMultipleChoice: MultipleChoice) => {
-  const { gid, pf, startTime, endTime } = getSelectInfo()
+  const { gid, pf } = getSelectInfo()
   const { tempPf } = getMultipleChoice()
-  Object.assign(selectInfo, { gid, pf, startTime, endTime })
+  Object.assign(selectInfo, { gid, pf })
   Object.assign(tempMultipleChoice, { gid, pf: tempPf })
   saveLocalInfo('selectInfo', selectInfo)
   saveLocalInfo('tempMultipleChoice', tempMultipleChoice)
@@ -82,9 +71,7 @@ export const useCommonStore = defineStore('commonStore', () => {
   // 用于保存当前的gid和pf的选择
   const selectInfo = reactive<SelectInfo>({
     gid: defaultGid,
-    pf: defaultPf,
-    startTime: new Date(),
-    endTime: new Date()
+    pf: defaultPf
   })
 
   // 临时用来保存多选平台,因为目前业务只有部分页面需要多选,后续可能会改为全部多选
@@ -109,22 +96,12 @@ export const useCommonStore = defineStore('commonStore', () => {
     localStorage.setItem('tempMultipleChoice', JSON.stringify(tempMultipleChoice))
   }
 
-  const changeDateRange = (date: Array<Date>) => {
-    const startTime = date[0]
-    const endTime = date[1]
-
-    selectInfo.startTime = startTime
-    selectInfo.endTime = endTime
-    saveSelectInfo()
-  }
-
   const allGameInfo = reactive<Array<GameInfo>>([])
   return {
     selectInfo,
     allGameInfo,
     tempMultipleChoice: tempMultipleChoice,
     saveSelectInfo,
-    saveTempMultipleChoice: saveTempMultipleChoice,
-    changeDateRange
+    saveTempMultipleChoice: saveTempMultipleChoice
   }
 })

+ 16 - 0
src/types/res.ts

@@ -4,9 +4,25 @@ export interface ResponseInfo {
   data?: any
   count?: number
 }
+
+/**
+ * 消息提示类型
+ */
 export enum MessageType {
+  /**
+   * 成功
+   */
   Success = 'success',
+  /**
+   * 警告
+   */
   Warning = 'warning',
+  /**
+   * 信息
+   */
   Info = 'info',
+  /**
+   * 错误
+   */
   Error = 'error'
 }

+ 5 - 3
src/types/table.ts

@@ -65,7 +65,9 @@ export interface TableFieldInfo {
   specialEffect?: SpecialEffect
 }
 
-// props的参数格式
+/**
+ * 表格组件的属性
+ */
 export interface PropsParams {
   loadingState?: boolean // loading动画,这个配置是当数据直接由外部控制时触发
   needRowindex?: boolean // 是否需要行号
@@ -75,12 +77,12 @@ export interface PropsParams {
   needDownload?: boolean // 是否需要下载功能
   needRightTools?: boolean // 是否需要右侧工具栏
   openFilterQuery?: boolean // 是否开启上方查询功能
-  openPageQuery?: boolean // 是否开启分页查询
+  openPageQuery?: boolean // 是否开启分页功能
   openRemoteQuery?: boolean // 是否开启远程查询
 
   dataList?: Array<any> // 表格数据,可以直接传入,也可以给请求地址来请求
   queryInfo?: Array<QueryInfo> // 上方查询功能所需要的信息
-  paginationConfig: TablePaginationSetting // 表格分页的信息
+  paginationConfig?: TablePaginationSetting // 表格分页的信息
   tableFieldsInfo: Array<TableFieldInfo> // 表格字段信息
   requestConfig?: ReqConfig
 

+ 2 - 1
src/utils/common/index.ts

@@ -114,7 +114,7 @@ export function resetTimeToMidnight(dateTime: Date): string {
  *
  * @param {*} day 天数
  */
-export const createDateRange = (day: number): Array<Date> => {
+export const createDateRange = (day: number): [Date, Date] => {
   const end = new Date()
   const start = new Date()
   start.setTime(start.getTime() - 3600 * 1000 * 24 * day)
@@ -143,6 +143,7 @@ export const invalidDateRange = (startTime: string, endTime: string): boolean =>
  * @param isMilliseconds 是否为毫秒级时间戳
  */
 export const formatTimestamp = (timestamp: number, isMilliseconds: boolean = false): string => {
+  if (timestamp === 0) return '无'
   // 将秒级时间戳转换为毫秒级时间戳
   const adjustedTimestamp = isMilliseconds ? timestamp : timestamp * 1000
 

+ 5 - 3
src/utils/table/table.ts

@@ -2,6 +2,7 @@ import { useTableStore } from '@/stores/useTable'
 import { useRequest } from '@/hooks/useRequest'
 
 import axiosInstance from '../axios/axiosInstance'
+import type { ResponseInfo } from '@/types/res.ts'
 
 const { AllApi } = useRequest()
 
@@ -34,9 +35,10 @@ export const getAllGameInfo = async () => {
     // 如果已经有了,那么直接用缓存
     if (tableStore.allGameInfo.length) return tableStore.allGameInfo
 
-    const response = await axiosInstance.post(AllApi.getGameTable, {
+    const response = (await axiosInstance.post(AllApi.getGameTable, {
       appSecret: '6YJSuc50uJ18zj45'
-    })
+    })) as ResponseInfo
+    if (!response || response.code !== 0) throw new Error('获取游戏列表失败')
     const result = JSON.parse(JSON.stringify(response))
     const data = result.data
     const returnData: Array<any> = formatGameInfo(data, result.code)
@@ -45,7 +47,7 @@ export const getAllGameInfo = async () => {
     return returnData
   } catch (err) {
     console.log(err)
-    throw new Error('获取游戏列表失败')
+    // throw new Error('获取游戏列表失败')
   }
 }
 

+ 1 - 1
src/views/AppManage/EventDetailsView.vue

@@ -14,7 +14,7 @@ import { useRequest } from '@/hooks/useRequest'
 import { useCommonStore } from '@/stores/useCommon'
 
 import Form from '@/components/form/Form.vue'
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import Dialog from '@/components/common/Dialog.vue'
 import FileUpload from '@/components/form/FileUpload.vue'
 

+ 1 - 1
src/views/AppManage/EventMangeTable.vue

@@ -12,7 +12,7 @@ import { FieldSpecialEffectType, TextType } from '@/types/tableText'
 import { FormFieldType } from '@/types/form'
 import { reactive, ref, watch } from 'vue'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import Dialog from '@/components/common/Dialog.vue'
 import router from '@/router'
 

+ 1 - 1
src/views/AppManage/UserConversionTable.vue

@@ -2,7 +2,7 @@
 import { useRequest } from '@/hooks/useRequest'
 import { useCommonStore } from '@/stores/useCommon'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import type { ReqConfig } from '@/types/dataAnalysis'
 import { reactive, watch } from 'vue'
 import {

+ 1 - 1
src/views/Home/Analysis/AdvertisingUsers.vue

@@ -11,7 +11,7 @@ import { useCommonStore } from '@/stores/useCommon'
 import { formatTimestamp } from '@/utils/common'
 import { usePage } from '@/hooks/usePage'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import { FieldSpecialEffectType } from '@/types/tableText'
 
 type Table = typeof Table

+ 1 - 1
src/views/Home/Analysis/EventAnalysisDetail.vue

@@ -24,7 +24,7 @@ import { useRoute } from 'vue-router'
 import { useAnalysis } from '@/hooks/useAnalysis'
 import { useCommonStore } from '@/stores/useCommon'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import TemporalTrend from '@/components/dataAnalysis/TemporalTrend.vue'
 import router from '@/router'
 

+ 3 - 2
src/views/Home/Analysis/EventAnalysisTable.vue

@@ -10,7 +10,7 @@ import { resetTimeToMidnight } from '@/utils/common'
 import { useAnalysis } from '@/hooks/useAnalysis'
 import { usePage } from '@/hooks/usePage'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import router from '@/router'
 
 const { updateReqConfig } = useAnalysis()
@@ -159,7 +159,8 @@ watchPageChange(() => [props.startTime, props.endTime], backupDate, updateDate)
         ref="eventTable"
         :need-rowindex="false"
         :request-config="requestConfig"
-        :open-page-query="false"
+        :open-page-query="true"
+        :open-remote-query="false"
         :open-filter-query="true"
         :query-info="eventTableFilterInfo"
         :pagination-config="pagingConfig"

+ 2 - 1
src/views/Home/Analysis/KeepView.vue

@@ -17,7 +17,7 @@ import { useCommonStore } from '@/stores/useCommon'
 import { useAnalysis } from '@/hooks/useAnalysis'
 import { usePage } from '@/hooks/usePage'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import HeaderCard from '@/components/dataAnalysis/HeaderCard.vue'
 import axiosInstance from '@/utils/axios/axiosInstance'
 
@@ -207,6 +207,7 @@ watchPageChange(() => [keepDataTableInfo.requestConfig], backupReq, getTableData
         :pagination-config="keepDataTableInfo.paginationConfig"
         :table-fields-info="keepDataTableInfo.tableFieldsInfo"
         :data-list="keepTableData"
+        :open-remote-query="false"
       ></Table>
     </div>
   </div>

+ 1 - 1
src/views/Home/Analysis/UserBehavior.vue

@@ -12,7 +12,7 @@ import { formatTimestamp } from '@/utils/common'
 import { formatDate } from '@/utils/common'
 import { usePage } from '@/hooks/usePage'
 
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import { FieldSpecialEffectType, TagType, TextType } from '@/types/tableText'
 
 type Table = typeof Table

+ 4 - 1
src/views/Home/Analysis/UserTrendView.vue

@@ -10,7 +10,7 @@ import { resetTimeToMidnight } from '@/utils/common'
 import { usePage } from '@/hooks/usePage'
 
 import HeaderCard from '@/components/dataAnalysis/HeaderCard.vue'
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import StatisticText from '@/components/dataAnalysis/StatisticText.vue'
 import TemporalTrend from '@/components/dataAnalysis/TemporalTrend.vue'
 import axiosInstance from '@/utils/axios/axiosInstance'
@@ -306,6 +306,7 @@ const getDetailData = () => {
             ...nVal
           })
         }
+        console.log(detailDataTableData)
         detailDataTableData.splice(0, detailDataTableData.length, ...newList)
         detailDataTableInfo.paginationConfig.total = newList.length
       })
@@ -373,6 +374,8 @@ watchPageChange(() => [detailDataTableInfo.requestConfig], backupReq, getDetailD
           :pagination-config="detailDataTableInfo.paginationConfig"
           :table-fields-info="detailDataTableInfo.tableFieldsInfo"
           :data-list="detailDataTableData"
+          :open-remote-query="false"
+          :open-page-query="true"
         ></Table>
       </div>
     </div>

+ 3 - 2
src/views/Home/InfoManage/GameManageView.vue

@@ -11,7 +11,7 @@ import { useRequest } from '@/hooks/useRequest'
 import { useCommonStore } from '@/stores/useCommon'
 
 import Dialog from '@/components/common/Dialog.vue'
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import { FieldSpecialEffectType } from '@/types/tableText.ts'
 
 const { allGameInfo, selectInfo } = useCommonStore()
@@ -320,7 +320,8 @@ onMounted(() => {
       :need-right-tools="true"
       :need-left-tools="true"
       :open-filter-query="true"
-      :open-page-query="false"
+      :open-page-query="true"
+      :open-remote-query="false"
       :query-info="queryInfo"
       :table-fields-info="fieldsInfo"
       :request-config="requestConfig"

+ 1 - 1
src/views/Home/InfoManage/PlayerManageView.vue

@@ -14,7 +14,7 @@ import { useCommonStore } from '@/stores/useCommon'
 import { useAnalysis } from '@/hooks/useAnalysis'
 
 import Dialog from '@/components/common/Dialog.vue'
-import Table from '@/components/Table.vue'
+import Table from '@/components/table/Table.vue'
 import axiosInstance from '@/utils/axios/axiosInstance'
 
 const { updateReqConfig } = useAnalysis()

+ 1 - 0
tsconfig.app.json

@@ -6,6 +6,7 @@
     "src/**/*.tsx",
     "src/**/*.vue",
     "auto-imports.d.ts",
+    "components.d.ts",
     "config/**/*.ts"
   ],
   "exclude": ["src/**/__tests__/*"],