This commit is contained in:
xiangheng
2024-10-31 16:25:55 +08:00
parent e65b9f6af8
commit affb01a8be
6 changed files with 31 additions and 90 deletions

View File

@@ -1,11 +1,9 @@
<template> <template>
<div> <template v-for="(item, index) in getOptions" :key="index">
<template v-for="(item, index) in getOptions" :key="index"> <span :style="{ color: item.color }"
<span :style="{ color: item.color }" >{{ index != 0 ? '、' : '' }}{{ item[props.labelKey] }}</span
>{{ index != 0 ? '、' : '' }}{{ item[props.labelKey] }}</span >
> </template>
</template>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed } from 'vue' import { computed } from 'vue'

View File

@@ -10,41 +10,41 @@
@close="handleClose" @close="handleClose"
> >
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="18"> <el-col :xs="24" :md="14">
<el-card> <el-card>
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
<span>错误详情</span> <span
>
<dict-value
:options="listAllData.monitor_project_listAll"
:value="formData.ProjectKey"
labelKey="ProjectName"
valueKey="ProjectKey"
/>错误详情</span
>
</div> </div>
</template> </template>
<el-form ref="formRef"> <el-form ref="formRef">
<el-form-item label="项目key" prop="ProjectKey"> <!-- <el-form-item label="项目key" prop="ProjectKey"> </el-form-item> -->
<dict-value
:options="listAllData.monitor_project_listAll"
:value="formData.ProjectKey"
labelKey="ProjectName"
valueKey="ProjectKey"
/>
</el-form-item>
<el-form-item label="事件类型" prop="EventType"> <el-form-item label="事件类型" prop="EventType">
{{ formData.EventType }} {{ formData.EventType }}
</el-form-item> </el-form-item>
<el-form-item label="URL地址" prop="Path"> <el-form-item label="URL地址" prop="Path">
{{ formData.Path }} {{ formData.Path }}
</el-form-item> </el-form-item>
<el-form-item label="错误消息" prop="Message"> <el-form-item label="错误消息" prop="Message">
{{ formData.Message }} {{ formData.Message }}
</el-form-item> </el-form-item>
<el-form-item label="错误堆栈" prop="Stack"> <el-form-item label="" prop="Stack">
{{ formData.Stack }} {{ formData.Stack }}
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- <template #footer>Footer content</template> -->
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="6"> <el-col :xs="24" :md="10">
<el-card> <el-card>
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
@@ -61,13 +61,13 @@
> >
<template #title> <template #title>
<div class="flex-1 text-left"> <div class="flex-1 text-left">
{{ user.City }}-{{ user.Browser }}{{ user.Ip }} {{ user.City }} {{ user.Browser }}{{ user.Ip }}
</div> </div>
<span> <span>
{{ user.CreateTime }} {{ user.CreateTime }}
</span> </span>
</template> </template>
<el-descriptions border> <el-descriptions border :column="2">
<el-descriptions-item label="省市区"> <el-descriptions-item label="省市区">
{{ user.Country }}{{ user.Province }}{{ user.City }} {{ user.Country }}{{ user.Province }}{{ user.City }}
</el-descriptions-item> </el-descriptions-item>

View File

@@ -7,7 +7,7 @@
:model="queryParams" :model="queryParams"
:inline="true" :inline="true"
label-width="70px" label-width="70px"
label-position="left" label-position="right"
> >
<el-form-item label="项目" prop="ProjectKey" class="w-[280px]"> <el-form-item label="项目" prop="ProjectKey" class="w-[280px]">
<el-select v-model="queryParams.ProjectKey" clearable> <el-select v-model="queryParams.ProjectKey" clearable>
@@ -38,42 +38,6 @@
</el-card> </el-card>
<el-card class="!border-none mt-4" shadow="never"> <el-card class="!border-none mt-4" shadow="never">
<div class="text-right"> <div class="text-right">
<!-- <el-button
v-perms="['admin:monitor_error:add']"
type="primary"
@click="handleAdd()"
>
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button> -->
<!-- <upload
v-perms="['admin:monitor_error:ImportFile']"
class="ml-3 mr-3"
:url="monitor_error_import_file"
:data="{ cid: 0 }"
type="file"
:show-progress="true"
@change="resetPage"
>
<el-button type="primary">
<template #icon>
<icon name="el-icon-Upload" />
</template>
导入
</el-button>
</upload> -->
<!-- <el-button
v-perms="['admin:monitor_error:ExportFile']"
type="primary"
@click="exportFile"
>
<template #icon>
<icon name="el-icon-Download" />
</template>
导出
</el-button> -->
<el-button <el-button
v-perms="['admin:monitor_error:delBatch']" v-perms="['admin:monitor_error:delBatch']"
type="danger" type="danger"
@@ -92,7 +56,7 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="项目" prop="ProjectKey" min-width="100"> <el-table-column label="项目" prop="ProjectKey" min-width="80">
<template #default="{ row }"> <template #default="{ row }">
<dict-value <dict-value
:options="listAllData.monitor_project_listAll" :options="listAllData.monitor_project_listAll"
@@ -106,8 +70,8 @@
<el-table-column label="URL地址" prop="Path" min-width="130" /> <el-table-column label="URL地址" prop="Path" min-width="130" />
<el-table-column label="错误消息" prop="Message" min-width="130" /> <el-table-column label="错误消息" prop="Message" min-width="130" />
<!-- <el-table-column label="错误堆栈" prop="Stack" min-width="130" /> --> <!-- <el-table-column label="错误堆栈" prop="Stack" min-width="130" /> -->
<el-table-column label="md5" prop="Md5" min-width="130" /> <!-- <el-table-column label="md5" prop="Md5" min-width="130" /> -->
<el-table-column label="创建时间" prop="CreateTime" min-width="130" /> <el-table-column label="创建时间" prop="CreateTime" width="170" />
<el-table-column label="操作" width="120" fixed="right"> <el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }"> <template #default="{ row }">

View File

@@ -171,7 +171,7 @@ func (service monitorClientService) Detail(Id int) (res MonitorClientResp, e err
// ErrorUser 监控-客户端信息详情 // ErrorUser 监控-客户端信息详情
func (service monitorClientService) ErrorUsers(error_id int) (res []MonitorClientResp, e error) { func (service monitorClientService) ErrorUsers(error_id int) (res []MonitorClientResp, e error) {
var obj = []model.MonitorClient{} var obj = []model.MonitorClient{}
service.db.Raw("SELECT client.*,list.create_time AS create_time from x_monitor_error_list as list right join x_monitor_client as client on client.id = list.client_id where list.error_id = ? Order by list.id DESC LIMIT 0,20", error_id).Scan(&obj) service.db.Raw("SELECT client.*,list.create_time AS create_time from x_monitor_error_list as list right join x_monitor_client as client on client.id = list.cid where list.eid = ? Order by list.id DESC LIMIT 0,20", error_id).Scan(&obj)
util.ConvertUtil.Copy(&res, obj) util.ConvertUtil.Copy(&res, obj)
return return
@@ -192,28 +192,6 @@ func (service monitorClientService) Add(addReq MonitorClientAddReq) (createId in
return return
} }
// // Edit 监控-客户端信息编辑
// func (service monitorClientService) Edit(editReq MonitorClientEditReq) (e error) {
// var obj model.MonitorClient
// err := service.db.Where("id = ?", editReq.Id).Limit(1).First(&obj).Error
// // 校验
// if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
// return
// }
// if e = response.CheckErr(err, "查询失败"); e != nil {
// return
// }
// util.ConvertUtil.Copy(&obj, editReq)
// err = service.db.Model(&obj).Select("*").Updates(obj).Error
// if e = response.CheckErr(err, "编辑失败"); e != nil {
// return
// }
// cacheUtil.RemoveCache(obj.Id)
// service.Detail(obj.Id)
// return
// }
// Del 监控-客户端信息删除 // Del 监控-客户端信息删除
func (service monitorClientService) Del(Id int) (e error) { func (service monitorClientService) Del(Id int) (e error) {
var obj model.MonitorClient var obj model.MonitorClient

View File

@@ -89,6 +89,7 @@ class Logger implements IErrorEvent {
} }
}; };
private unhandledrejection = (err: any): void => { private unhandledrejection = (err: any): void => {
console.error(err);
if (err && typeof err.reason === "string") { if (err && typeof err.reason === "string") {
this.callback({ this.callback({
Type: "error", Type: "error",

View File

@@ -17,8 +17,8 @@ class XLog {
private platform: IErrorEvent; private platform: IErrorEvent;
MessageList: any[] = []; private MessageList: any[] = [];
timer: number; private timer: number;
constructor(props: Props, platform: IErrorEvent) { constructor(props: Props, platform: IErrorEvent) {
this.platform = platform; this.platform = platform;