|
|
|
@ -4,29 +4,35 @@
|
|
|
|
|
<div class="system-user-search mb15"> |
|
|
|
|
<el-form :inline="true"> |
|
|
|
|
<el-form-item label="用户uid"> |
|
|
|
|
<el-input size="default" v-model="tableData.param.uid" placeholder="请输入用户uid" class="w-50 m-2" |
|
|
|
|
clearable/> |
|
|
|
|
<el-input size="default" v-model="tableData.param.uid" placeholder="请输入用户uid" class="w-50 m-2" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="log开头"> |
|
|
|
|
<el-input size="default" v-model="tableData.param.log" placeholder="请输入log开头" class="w-50 m-2" |
|
|
|
|
clearable/> |
|
|
|
|
<el-input size="default" v-model="tableData.param.log" placeholder="请输入log开头" class="w-50 m-2" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="stack开头"> |
|
|
|
|
<el-input size="default" v-model="tableData.param.stack" placeholder="请输入stack开头" class="w-50 m-2" |
|
|
|
|
clearable/> |
|
|
|
|
<el-input size="default" v-model="tableData.param.stack" placeholder="请输入stack开头" class="w-50 m-2" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="时间"> |
|
|
|
|
<el-date-picker style="width: 400px" size="large" range-separator="-" type="datetimerange" v-model="tableData.param.times" |
|
|
|
|
start-placeholder="开始" end-placeholder="结束" format="YYYY/MM/DD HH:mm:ss" value-format="x"/> |
|
|
|
|
<!-- <el-date-picker type="datetimerange" size="large" v-model="tableData.param.lowTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />--> |
|
|
|
|
<el-date-picker |
|
|
|
|
style="width: 400px" |
|
|
|
|
size="large" |
|
|
|
|
range-separator="-" |
|
|
|
|
type="datetimerange" |
|
|
|
|
v-model="tableData.param.times" |
|
|
|
|
start-placeholder="开始" |
|
|
|
|
end-placeholder="结束" |
|
|
|
|
format="YYYY/MM/DD HH:mm:ss" |
|
|
|
|
value-format="x" |
|
|
|
|
/> |
|
|
|
|
<!-- <el-date-picker type="datetimerange" size="large" v-model="tableData.param.lowTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />--> |
|
|
|
|
</el-form-item> |
|
|
|
|
<!-- <el-form-item label="结束时间">--> |
|
|
|
|
<!-- <el-date-picker type="datetime" size="large" v-model="tableData.param.upTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- <el-form-item label="结束时间">--> |
|
|
|
|
<!-- <el-date-picker type="datetime" size="large" v-model="tableData.param.upTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-button size="default" type="primary" class="ml10" @click="mailList"> |
|
|
|
|
<el-icon> |
|
|
|
|
<ele-Search/> |
|
|
|
|
<ele-Search /> |
|
|
|
|
</el-icon> |
|
|
|
|
查询 |
|
|
|
|
</el-button> |
|
|
|
@ -34,33 +40,37 @@
|
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
|
<el-table :data="tableData.data" style="width: 100%"> |
|
|
|
|
<el-table-column prop="uid" label="用户uid" width="100"/> |
|
|
|
|
<el-table-column prop="logType" label="日志类型" show-overflow-tooltip width="100"/> |
|
|
|
|
<el-table-column prop="operationSystem" label="操作系统" show-overflow-tooltip width="155"/> |
|
|
|
|
<el-table-column prop="systemMemorySize" label="系统内存大小" show-overflow-tooltip width="155"/> |
|
|
|
|
<el-table-column prop="bug" label="log详情" show-overflow-tooltip > |
|
|
|
|
<el-table-column prop="uid" label="用户uid" width="100" /> |
|
|
|
|
<el-table-column prop="logType" label="日志类型" show-overflow-tooltip width="100" /> |
|
|
|
|
<el-table-column prop="operationSystem" label="操作系统" show-overflow-tooltip width="155" /> |
|
|
|
|
<el-table-column prop="systemMemorySize" label="系统内存大小" show-overflow-tooltip width="155" /> |
|
|
|
|
<el-table-column prop="bug" label="log详情" show-overflow-tooltip> |
|
|
|
|
<template #default="scope"> |
|
|
|
|
<span type="text" @click="alertContent(scope.row.bug)">{{ scope.row.bug }}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="stackTrace" label="堆栈详情" show-overflow-tooltip > |
|
|
|
|
<el-table-column prop="stackTrace" label="堆栈详情" show-overflow-tooltip> |
|
|
|
|
<template #default="scope"> |
|
|
|
|
<span type="text" @click="alertContent(scope.row.stackTrace)">{{ scope.row.stackTrace }}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="channel" label="渠道" show-overflow-tooltip width="140"> |
|
|
|
|
<template #default="scope"> |
|
|
|
|
{{ addZero(scope.row.channel) }}{{ addZero(scope.row.subChannel) }} |
|
|
|
|
</template> |
|
|
|
|
<template #default="scope"> {{ addZero(scope.row.channel) }}{{ addZero(scope.row.subChannel) }}</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="deviceModel" label="设备型号" show-overflow-tooltip width="155"/> |
|
|
|
|
<el-table-column prop="deviceType" label="设备类型" show-overflow-tooltip width="150"/> |
|
|
|
|
<el-table-column prop="createTime" label="发生日期" show-overflow-tooltip width="170"/> |
|
|
|
|
<el-table-column prop="deviceModel" label="设备型号" show-overflow-tooltip width="155" /> |
|
|
|
|
<el-table-column prop="deviceType" label="设备类型" show-overflow-tooltip width="150" /> |
|
|
|
|
<el-table-column prop="createTime" label="发生日期" show-overflow-tooltip width="170" /> |
|
|
|
|
</el-table> |
|
|
|
|
<el-row justify="space-evenly"> |
|
|
|
|
<el-pagination :hide-on-single-page="true" v-model:page-size="tableData.param.pageSize" |
|
|
|
|
v-model:current-page="tableData.param.pageNum" :pager-count="5" :total="tableData.total" |
|
|
|
|
@current-change="onHandleCurrentChange" layout="total, prev, pager, next"/> |
|
|
|
|
<el-pagination |
|
|
|
|
:hide-on-single-page="true" |
|
|
|
|
v-model:page-size="tableData.param.pageSize" |
|
|
|
|
v-model:current-page="tableData.param.pageNum" |
|
|
|
|
:pager-count="5" |
|
|
|
|
:total="tableData.total" |
|
|
|
|
@current-change="onHandleCurrentChange" |
|
|
|
|
layout="total, prev, pager, next" |
|
|
|
|
/> |
|
|
|
|
</el-row> |
|
|
|
|
</el-card> |
|
|
|
|
<el-dialog v-model="contentVisible" :close-on-click-modal="false" center> |
|
|
|
@ -70,11 +80,12 @@
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script lang="ts"> |
|
|
|
|
import {toRefs, reactive, onMounted, defineComponent,} from 'vue'; |
|
|
|
|
import AllItemConfigCategory from "/@/api/config/AllItemConfigCategory.json"; |
|
|
|
|
import {allChannelList, serverList} from "/@/utils/game"; |
|
|
|
|
import {clientBugList, operateClientBug} from "/@/api/game/index"; |
|
|
|
|
import {ElMessage, ElMessageBox} from 'element-plus'; |
|
|
|
|
import { toRefs, reactive, onMounted, defineComponent } from 'vue'; |
|
|
|
|
import AllItemConfigCategory from '/@/api/config/AllItemConfigCategory.json'; |
|
|
|
|
import { allChannelList, serverList } from '/@/utils/game'; |
|
|
|
|
import { clientBugList, operateClientBug } from '/@/api/game/index'; |
|
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'; |
|
|
|
|
import {channelFill} from "/@/utils/utils"; |
|
|
|
|
|
|
|
|
|
interface TableDataState { |
|
|
|
|
contentVisible: boolean; |
|
|
|
@ -94,7 +105,7 @@ interface TableDataState {
|
|
|
|
|
pageSize: number; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
servers: object[] |
|
|
|
|
servers: object[]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
@ -106,7 +117,7 @@ export default defineComponent({
|
|
|
|
|
tableData: { |
|
|
|
|
data: [], |
|
|
|
|
total: 0, |
|
|
|
|
content: "", |
|
|
|
|
content: '', |
|
|
|
|
param: { |
|
|
|
|
times: [], |
|
|
|
|
lowTime: 0, |
|
|
|
@ -115,17 +126,17 @@ export default defineComponent({
|
|
|
|
|
pageNum: 1, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
servers: [] |
|
|
|
|
servers: [], |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const mailList = () => { |
|
|
|
|
clientBugList(state.tableData.param).then(res => { |
|
|
|
|
clientBugList(state.tableData.param).then((res) => { |
|
|
|
|
console.log(res); |
|
|
|
|
if (res.data) { |
|
|
|
|
state.tableData.data = res.data.list ?? []; |
|
|
|
|
state.tableData.total = Number(res.data.total) || 0; |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 分页改变 |
|
|
|
@ -144,35 +155,32 @@ export default defineComponent({
|
|
|
|
|
confirmButtonText: '确认', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning', |
|
|
|
|
}).then(() => { |
|
|
|
|
operateClientBug({id: row.id}).then(() => { |
|
|
|
|
}) |
|
|
|
|
.then(() => { |
|
|
|
|
operateClientBug({ id: row.id }).then(() => { |
|
|
|
|
ElMessage.success('完成bug成功'); |
|
|
|
|
mailList(); |
|
|
|
|
}) |
|
|
|
|
}).catch(() => { |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
.catch(() => {}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 页面加载时 |
|
|
|
|
onMounted(() => { |
|
|
|
|
serverList().then(value => { |
|
|
|
|
serverList().then((value) => { |
|
|
|
|
state.servers = value; |
|
|
|
|
// console.log(" servers : ", state.servers); |
|
|
|
|
}); |
|
|
|
|
allChannelList().then(value => { |
|
|
|
|
allChannelList().then((value) => { |
|
|
|
|
state.channels = value; |
|
|
|
|
console.log(" channels : ", state.channels); |
|
|
|
|
console.log(' channels : ', state.channels); |
|
|
|
|
}); |
|
|
|
|
mailList(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const addZero = (val: any) => { |
|
|
|
|
let len = val.length; |
|
|
|
|
for (let i = 0; i < 6 - len; i++) { |
|
|
|
|
val = '0' + val; |
|
|
|
|
} |
|
|
|
|
return val; |
|
|
|
|
} |
|
|
|
|
return channelFill(val); |
|
|
|
|
}; |
|
|
|
|
return { |
|
|
|
|
onHandleCurrentChange, |
|
|
|
|
onRowDel, |
|
|
|
|