Forráskód Böngészése

修复了事件管理详情页和事件分析详情页公用同一个router-view的bug,之前会导致事件管理详情页触发两次请求,并且会有额外的prop传入详情页;

fxs 8 hónapja
szülő
commit
28facdd399

+ 1 - 1
src/components/dataAnalysis/StatisticText.vue

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-26 13:57:37
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-09-11 15:00:44
+ * @LastEditTime: 2024-10-10 09:04:54
  * @FilePath: \Game-Backstage-Management-System\src\components\dataAnalysis\StatisticText.vue
  * @Description: 用于展示统计数据,如总览页面上方的总览数据
  * 

+ 1 - 1
src/hooks/usePage.ts

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-09-10 10:31:42
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-09-11 16:28:26
+ * @LastEditTime: 2024-10-10 15:37:44
  * @FilePath: \Game-Backstage-Management-System\src\hooks\usePage.ts
  * @Description:
  *

+ 13 - 7
src/hooks/useRequest.ts

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-20 17:24:06
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-10-09 14:02:35
+ * @LastEditTime: 2024-10-10 12:08:47
  * @FilePath: \Game-Backstage-Management-System\src\hooks\useRequest.ts
  * @Description:
  *
@@ -74,7 +74,11 @@ export function useRequest() {
    * @param {string} kind 请求类型
    * @return {*}
    */
-  const analysisResCode = (data: AxiosResponse, kind?: string): Promise<ResponseInfo> => {
+  const analysisResCode = (
+    data: AxiosResponse,
+    kind = '请求',
+    showMsg = true
+  ): Promise<ResponseInfo> => {
     return new Promise((resolve, reject) => {
       let info = JSON.parse(JSON.stringify(data)) as ResponseInfo
 
@@ -94,11 +98,13 @@ export function useRequest() {
           reject(info.msg)
         }
       }
-      ElMessage({
-        type,
-        message,
-        duration: 1000
-      })
+      if (showMsg) {
+        ElMessage({
+          type,
+          message,
+          duration: 1000
+        })
+      }
     })
   }
 

+ 1 - 1
src/router/home.ts

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-20 14:24:58
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-09-12 17:47:02
+ * @LastEditTime: 2024-10-10 15:45:26
  * @FilePath: \Game-Backstage-Management-System\src\router\home.ts
  * @Description:
  *

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

@@ -324,8 +324,8 @@ const dialogConfig = reactive<DialogConfig>({
 const getEventInfo = (id: number) => {
   axiosInstance
     .post(AllApi.gameActionDetail, { id })
-    .then((data) => {
-      analysisResCode(data).then((info) => {
+    .then((data: any) => {
+      analysisResCode(data, '请求', true).then((info) => {
         let result = info.data
         let updateEventField = {
           gid: '',
@@ -485,7 +485,7 @@ onUnmounted(() => {
         :pagination-config="pageConfig"
         :table-fields-info="tableFieldConfig"
         :request-config="tableReqConfig"
-        :need-download="true"
+        :need-download="false"
         @add-new-item="addNewAttr"
         ref="optionTableRef"
       >

+ 5 - 3
src/views/AppManage/EventManageView.vue

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-09-02 17:57:15
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-09-18 12:00:30
+ * @LastEditTime: 2024-10-10 15:40:15
  * @FilePath: \Game-Backstage-Management-System\src\views\AppManage\EventManageView.vue
  * @Description: 
  * 
@@ -51,6 +51,7 @@ const nowRouteName = computed(() => router.currentRoute.value.name)
  */
 const headerAddPath = (info: any) => {
   const { name, pathName } = info
+
   headerCard.value?.addPath(name, pathName)
 }
 
@@ -337,11 +338,12 @@ const uploadSuccess = async (data: any) => {
           :is="Component"
           ref="eventTableRef"
           v-if="shouldListenToEvent(route.name, 'EventTable')"
-          @enterDetail="headerAddPath"
+          @enterEventDetail="headerAddPath"
         />
 
         <!-- 如果不是正常渲染其他组件 -->
-        <component v-if="route.name !== 'EventTable'" :is="Component" />
+        <component v-if="route.name === 'EventDetail'" :is="Component" />
+        <!-- <component v-else :is="Component" /> -->
       </router-view>
     </div>
     <div class="uploadFileBox">

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

@@ -25,7 +25,7 @@ const eventDialog = ref()
 const eventTable = ref<InstanceType<typeof Table> | null>(null)
 
 // 主要为了给面包屑导航提供信息
-const emits = defineEmits(['enterDetail', 'upload'])
+const emits = defineEmits(['enterEventDetail', 'upload'])
 
 // 表格分页设置
 const pagingConfig = reactive<TablePaginationSetting>({
@@ -231,7 +231,7 @@ const dialogInfo = reactive<DialogConfig>({
  */
 const viewDetails = (row: any) => {
   if (row.id) {
-    emits('enterDetail', {
+    emits('enterEventDetail', {
       name: row.actionName,
       pathName: 'EventDetail'
     })

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

@@ -32,7 +32,7 @@ const eventTable = ref<InstanceType<typeof Table>>()
 const isSinglePf = false
 
 // 主要为了给面包屑导航提供信息
-const emits = defineEmits(['enterDetail'])
+const emits = defineEmits(['enterAnalysisDetail'])
 
 interface eventTableProps {
   startTime: string
@@ -118,7 +118,7 @@ const eventTableFilterInfo: Array<QueryInfo> = [
  * @return {*}
  */
 const viewDetails = (row: any) => {
-  emits('enterDetail', {
+  emits('enterAnalysisDetail', {
     name: row.actionName,
     pathName: 'EventAnalysisDetail'
   })

+ 5 - 3
src/views/Home/Analysis/EventAnalysisView.vue

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-27 17:11:23
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-09-29 09:59:34
+ * @LastEditTime: 2024-10-10 15:47:48
  * @FilePath: \Game-Backstage-Management-System\src\views\Home\Analysis\EventAnalysisView.vue
  * @Description: 
  * 
@@ -69,15 +69,17 @@ const dateChange = (newDate: Array<Date>) => {
       <!-- 监听表格的跳转事件 -->
       <router-view v-slot="{ Component, route }" :startTime="startTime" :endTime="endTime">
         <!-- 是eventtable组件就去监听enterdetail事件 -->
+        <!-- 这个keepalive不要去掉,因为里面的table的监听事件是放在onactive中 -->
         <keep-alive>
           <component
             :is="Component"
             v-if="shouldListenToEvent(route.name, 'EventAnalysisTable')"
-            @enterDetail="headerAddPath"
+            @enterAnalysisDetail="headerAddPath"
           />
         </keep-alive>
         <!-- 如果不是正常渲染其他组件 -->
-        <component v-if="route.name !== 'EventAnalysisTable'" :is="Component" />
+        <component v-if="route.name === 'EventAnalysisDetail'" :is="Component" />
+        <!-- <component v-else :is="Component" /> -->
       </router-view>
     </div>
   </div>

+ 1 - 1
src/views/Index.vue

@@ -2,7 +2,7 @@
  * @Author: fxs bjnsfxs@163.com
  * @Date: 2024-08-20 14:06:49
  * @LastEditors: fxs bjnsfxs@163.com
- * @LastEditTime: 2024-10-09 16:31:29
+ * @LastEditTime: 2024-10-10 15:49:48
  * @FilePath: \Game-Backstage-Management-System\src\views\Index.vue
  * @Description: 
  *