Explorar el Código

Merge branch 'master' of http://10.8.230.114:3000/wangbin/log-server-web

wangbin hace 2 años
padre
commit
7e3bcf5132
Se han modificado 3 ficheros con 374 adiciones y 173 borrados
  1. 180 172
      src/api/task.js
  2. 191 0
      src/view/gameTask/xmyGameList.vue
  3. 3 1
      src/view/ipLogList/abnormalIpList.vue

+ 180 - 172
src/api/task.js

@@ -1,176 +1,184 @@
 import service from '@/utils/request'
 export const createGameTask = (data) => {
-    return service({
-      url: '/gameTask/create',
-      method: 'post',
-      data
-    })
-  }
-
-
-  export const getGameTaskList = (data) => {
-    return service({
-      url: '/gameTask/getGameTaskList',
-      method: 'post',
-      data
-    })
-  }
-
-  export const getGameTaskById = (data) => {
-    return service({
-      url: '/gameTask/getGameTaskById',
-      method: 'post',
-      data
-    })
-  }
-
-  export const statusOperation = (data) => {
-    return service({
-      url: '/gameTask/statusOperation',
-      method: 'post',
-      data
-    })
-  }
-
-  export const updateGameTask = (data) => {
-    return service({
-      url: '/gameTask/update',
-      method: 'post',
-      data
-    })
-  }
-
-  export const deleteGameTask = (data) => {
-    return service({
-      url: '/gameTask/delete',
-      method: 'post',
-      data
-    })
-  }
-
-  export const getGameTaskTargetList = (data) => {
-    return service({
-      url: '/gameTask/getGameTaskTargetList',
-      method: 'post',
-      data
-    })
-  }
-
-  export const getGameTaskTargetById = (data) => {
-    return service({
-      url: '/gameTask/getGameTaskTargetById',
-      method: 'post',
-      data
-    })
-  }
-
-  export const updateGameTaskTarget = (data) => {
-    return service({
-      url: '/gameTask/updateTarget',
-      method: 'post',
-      data
-    })
-  }
-
-  export const everyDayStatistics = (data) => {
-    return service({
-      url: '/gameTask/everyDayStatistics',
-      method: 'post',
-      data
-    })
-  }
-
-  export const monthStatistics = (data) => {
-    return service({
-      url: '/gameTask/monthStatistics',
-      method: 'post',
-      data
-    })
-  }
-  
-  export const gameStatistics = (data) => {
-    return service({
-      url: '/gameTask/gameStatistics',
-      method: 'post',
-      data
-    })
-  }
-
-  export const gameList = (data) => {
-    return service({
-      url: '/gameTask/gameList',
-      method: 'post',
-      data
-    })
-  }
-
-  export const getGameTxTaskList = (data) => {
-    return service({
-      url: '/gameTask/getGameTxTaskList',
-      method: 'post',
-      data
-    })
-  }
-
-  export const taskResetFee = (data) => {
-    return service({
-      url: '/gameTask/taskResetFee',
-      method: 'post',
-      data
-    })
-  }
-
-  export const getFeeAccountList = (data) => {
-    return service({
-      url: '/gameTask/getFeeAccountList',
-      method: 'post',
-      data
-    })
-  }
-
-  const handleFileError = (res, fileName) => {
-    if (typeof (res.data) !== 'undefined') {
-      if (res.data.type === 'application/json') {
-        const reader = new FileReader()
-        reader.onload = function() {
-          const message = JSON.parse(reader.result).msg
-          ElMessage({
-            showClose: true,
-            message: message,
-            type: 'error'
-          })
-        }
-        reader.readAsText(new Blob([res.data]))
+  return service({
+    url: '/gameTask/create',
+    method: 'post',
+    data
+  })
+}
+
+
+export const getGameTaskList = (data) => {
+  return service({
+    url: '/gameTask/getGameTaskList',
+    method: 'post',
+    data
+  })
+}
+
+export const getGameTaskById = (data) => {
+  return service({
+    url: '/gameTask/getGameTaskById',
+    method: 'post',
+    data
+  })
+}
+
+export const statusOperation = (data) => {
+  return service({
+    url: '/gameTask/statusOperation',
+    method: 'post',
+    data
+  })
+}
+
+export const updateGameTask = (data) => {
+  return service({
+    url: '/gameTask/update',
+    method: 'post',
+    data
+  })
+}
+
+export const deleteGameTask = (data) => {
+  return service({
+    url: '/gameTask/delete',
+    method: 'post',
+    data
+  })
+}
+
+export const getGameTaskTargetList = (data) => {
+  return service({
+    url: '/gameTask/getGameTaskTargetList',
+    method: 'post',
+    data
+  })
+}
+
+export const getXmyTaskList = (data) => {
+  return service({
+    url: '/gameTask/getXmyTaskList',
+    method: 'post',
+    data
+  })
+}
+
+export const getGameTaskTargetById = (data) => {
+  return service({
+    url: '/gameTask/getGameTaskTargetById',
+    method: 'post',
+    data
+  })
+}
+
+export const updateGameTaskTarget = (data) => {
+  return service({
+    url: '/gameTask/updateTarget',
+    method: 'post',
+    data
+  })
+}
+
+export const everyDayStatistics = (data) => {
+  return service({
+    url: '/gameTask/everyDayStatistics',
+    method: 'post',
+    data
+  })
+}
+
+export const monthStatistics = (data) => {
+  return service({
+    url: '/gameTask/monthStatistics',
+    method: 'post',
+    data
+  })
+}
+
+export const gameStatistics = (data) => {
+  return service({
+    url: '/gameTask/gameStatistics',
+    method: 'post',
+    data
+  })
+}
+
+export const gameList = (data) => {
+  return service({
+    url: '/gameTask/gameList',
+    method: 'post',
+    data
+  })
+}
+
+export const getGameTxTaskList = (data) => {
+  return service({
+    url: '/gameTask/getGameTxTaskList',
+    method: 'post',
+    data
+  })
+}
+
+export const taskResetFee = (data) => {
+  return service({
+    url: '/gameTask/taskResetFee',
+    method: 'post',
+    data
+  })
+}
+
+export const getFeeAccountList = (data) => {
+  return service({
+    url: '/gameTask/getFeeAccountList',
+    method: 'post',
+    data
+  })
+}
+
+const handleFileError = (res, fileName) => {
+  if (typeof (res.data) !== 'undefined') {
+    if (res.data.type === 'application/json') {
+      const reader = new FileReader()
+      reader.onload = function () {
+        const message = JSON.parse(reader.result).msg
+        ElMessage({
+          showClose: true,
+          message: message,
+          type: 'error'
+        })
       }
-    } else {
-      var downloadUrl = window.URL.createObjectURL(new Blob([res]))
-      var a = document.createElement('a')
-      a.style.display = 'none'
-      a.href = downloadUrl
-      a.download = fileName
-      var event = new MouseEvent('click')
-      a.dispatchEvent(event)
+      reader.readAsText(new Blob([res.data]))
     }
-  }
-  
-  // @Tags excel
-  // @Summary 导出Excel
-  // @Security ApiKeyAuth
-  // @accept application/json
-  // @Produce  application/octet-stream
-  // @Param data body model.ExcelInfo true "导出Excel文件信息"
-  // @Success 200
-  // @Router /gameTask/taskTargetExport [post]
-  export const taskTargetExport = (tableData, fileName) => {
-    service({
-      url: '/gameTask/taskTargetExport',
-      method: 'post',
-      data: {
-        fileName: fileName,
-        infoList: tableData
-      },
-      responseType: 'blob'
-    }).then((res) => {
-      handleFileError(res, fileName)
-    })
-  }
+  } else {
+    var downloadUrl = window.URL.createObjectURL(new Blob([res]))
+    var a = document.createElement('a')
+    a.style.display = 'none'
+    a.href = downloadUrl
+    a.download = fileName
+    var event = new MouseEvent('click')
+    a.dispatchEvent(event)
+  }
+}
+
+// @Tags excel
+// @Summary 导出Excel
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce  application/octet-stream
+// @Param data body model.ExcelInfo true "导出Excel文件信息"
+// @Success 200
+// @Router /gameTask/taskTargetExport [post]
+export const taskTargetExport = (tableData, fileName) => {
+  service({
+    url: '/gameTask/taskTargetExport',
+    method: 'post',
+    data: {
+      fileName: fileName,
+      infoList: tableData
+    },
+    responseType: 'blob'
+  }).then((res) => {
+    handleFileError(res, fileName)
+  })
+}

+ 191 - 0
src/view/gameTask/xmyGameList.vue

@@ -0,0 +1,191 @@
+<template>
+    <div>
+        <div class="gva-search-box">
+            <el-form ref="searchForm" :inline="true" :model="searchInfo">
+                <el-form-item label="日期" prop="date">
+                    <el-date-picker v-model="searchInfo.date" size="default" type="daterange" unlink-panels
+                        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :disabled-date="disabledDate"
+                        :shortcuts="shortcuts" />
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
+                    <el-button size="small" icon="refresh" @click="onReset">重置</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div class="gva-table-box">
+            <el-table :data="tableData" @sort-change="sortChange" @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="55" />
+                <el-table-column align="left" label="小绵羊id" min-width="100" prop="game_id" />
+                <el-table-column align="left" label="游戏名" min-width="150" prop="name" sortable="custom" />
+                <!-- <el-table-column align="left" label="任务名称" min-width="150" prop="task_name" sortable="custom" />
+                <el-table-column align="left" label="游戏id" min-width="150" prop="game_id" sortable="custom" />
+                <el-table-column align="left" label="ip" min-width="100" prop="ip" />
+                <el-table-column align="left" label="ip个数" min-width="150" prop="count" sortable="custom" />
+                <el-table-column align="left" label="日期" min-width="150" prop="date" sortable="custom" /> -->
+                <!-- <el-table-column align="left" fixed="right" label="操作" width="200">
+                    <template #default="scope">
+                        <el-button icon="search" size="small" type="primary" link
+                            @click="selectIpFunc(scope.row)">查看</el-button>
+                    </template>
+                </el-table-column> -->
+            </el-table>
+            <div class="gva-pagination">
+                <el-pagination :current-page="page" :page-size="pageSize" :page-sizes="[10, 30, 50, 100]" :total="total"
+                    layout="total, sizes, prev, pager, next, jumper" @current-change="handleCurrentChange"
+                    @size-change="handleSizeChange" />
+            </div>
+        </div>
+        <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="dialogTitle" width="40%">
+            <!-- <template #footer>
+                <div class="dialog-footer">
+                    <el-text class="mx-1" type="success">Success</el-text>
+                    <el-button size="small" @click="closeDialog">取 消</el-button> -->
+            <!-- </div>
+            </template> -->
+            <!-- <el-table :data="IpTableData" height="500" border>
+                <el-table-column align="center" label="ip" min-width="120" prop="ip" />
+                <el-table-column align="center" label="上报次数" min-width="120" prop="count" />
+            </el-table> -->
+        </el-dialog>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: 'XmyTaskList',
+}
+</script>
+  
+<script setup>
+import {
+    getXmyTaskList
+} from '@/api/task'
+import { toSQLLine } from '@/utils/stringFun'
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import warningBar from '@/components/warningBar/warningBar.vue'
+import dayjs from "dayjs";
+const apis = ref([])
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const IpTableData = ref([])
+const searchInfo = ref({})
+
+const onReset = () => {
+    searchInfo.value = {}
+    getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+    page.value = 1
+    pageSize.value = 10
+    searchInfo.value.game_id = Number(searchInfo.value.game_id)
+    if (typeof searchInfo.value.date != "undefined") {
+        searchInfo.value.date[0] = dayjs(searchInfo.value.date[0]).format(
+            "YYYY-MM-DD"
+        );
+        searchInfo.value.date[1] = dayjs(searchInfo.value.date[1]).format(
+            "YYYY-MM-DD"
+        );
+    }
+    getTableData()
+}
+
+// 分页
+const handleSizeChange = (val) => {
+    pageSize.value = val
+    getTableData()
+}
+
+const handleCurrentChange = (val) => {
+    page.value = val
+    getTableData()
+}
+
+// 排序
+const sortChange = ({ prop, order }) => {
+    if (prop) {
+        if (prop === 'id') {
+            prop = 'id'
+        }
+        searchInfo.value.orderKey = toSQLLine(prop)
+        searchInfo.value.desc = order === 'descending'
+    }
+    getTableData()
+}
+
+// 查询
+const getTableData = async () => {
+    const table = await getXmyTaskList({ ...searchInfo.value })
+    if (table.code === 0) {
+        tableData.value = table.data.list
+        total.value = table.data.total
+        page.value = table.data.page
+        pageSize.value = table.data.pageSize
+    }
+}
+
+getTableData()
+
+// 查看IP
+// const selectIpFunc = async (row) => {
+//     const res = await getIp({ game_id: row.game_id, pc_code: row.pc_code, create_date: row.create_date })
+//     IpTableData.value = res.data.list
+//     IpTableData.value.total = res.data.total
+//     openDialog('getIp')
+// }
+const closeDialog = () => {
+    dialogFormVisible.value = false
+}
+const dialogTitle = ref('')
+const type = ref('')
+const dialogFormVisible = ref(false)
+// const openDialog = (key) => {
+//     switch (key) {
+//         case 'getIp':
+//             dialogTitle.value = 'ip个数:' + IpTableData.value.total
+//             break
+//         default:
+//             break
+//     }
+//     type.value = key
+//     dialogFormVisible.value = true
+// }
+
+// 批量操作
+const handleSelectionChange = (val) => {
+    apis.value = val
+}
+
+
+
+// 弹窗相关
+// const apiForm = ref(null)
+// const initForm = () => {
+//     apiForm.value.resetFields()
+//     form.value = {
+//         game_name: '',
+//         game_package_name: ''
+//     }
+// }
+
+</script>
+  
+<style scoped lang="scss">
+.button-box {
+    padding: 10px 20px;
+
+    .el-button {
+        float: right;
+    }
+}
+
+.warning {
+    color: #dc143c;
+}
+</style>
+  

+ 3 - 1
src/view/ipLogList/abnormalIpList.vue

@@ -23,8 +23,10 @@
             <el-table :data="tableData" @sort-change="sortChange" @selection-change="handleSelectionChange">
                 <el-table-column type="selection" width="55" />
                 <el-table-column align="left" label="电脑编号" min-width="100" prop="pc_code" />
-                <el-table-column align="left" label="ip" min-width="100" prop="ip" />
+                <el-table-column align="left" label="负责人" min-width="150" prop="user" sortable="custom" />
+                <el-table-column align="left" label="任务名称" min-width="150" prop="task_name" sortable="custom" />
                 <el-table-column align="left" label="游戏id" min-width="150" prop="game_id" sortable="custom" />
+                <el-table-column align="left" label="ip" min-width="100" prop="ip" />
                 <el-table-column align="left" label="ip个数" min-width="150" prop="count" sortable="custom" />
                 <el-table-column align="left" label="日期" min-width="150" prop="create_date" sortable="custom" />
                 <!-- <el-table-column align="left" fixed="right" label="操作" width="200">