Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9e25f059
authored
Dec 28, 2024
by
CalciumIon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: enhance log retrieval and user interaction in LogsTable component
parent
05e389fe
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
11 deletions
+36
-11
model/log.go
+13
-2
web/src/components/LogsTable.js
+13
-8
web/src/helpers/render.js
+10
-1
No files found.
model/log.go
View file @
9e25f059
...
...
@@ -184,7 +184,7 @@ func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int
if
err
!=
nil
{
return
nil
,
0
,
err
}
err
=
tx
.
Order
(
"id desc"
)
.
Limit
(
num
)
.
Offset
(
startIdx
)
.
Omit
(
"id"
)
.
Find
(
&
logs
)
.
Error
err
=
tx
.
Order
(
"id desc"
)
.
Limit
(
num
)
.
Offset
(
startIdx
)
.
Find
(
&
logs
)
.
Error
for
i
:=
range
logs
{
var
otherMap
map
[
string
]
interface
{}
otherMap
=
common
.
StrToMap
(
logs
[
i
]
.
Other
)
...
...
@@ -193,6 +193,7 @@ func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int
delete
(
otherMap
,
"admin_info"
)
}
logs
[
i
]
.
Other
=
common
.
MapToJsonStr
(
otherMap
)
logs
[
i
]
.
Id
=
logs
[
i
]
.
Id
%
1024
}
return
logs
,
total
,
err
}
...
...
@@ -203,7 +204,17 @@ func SearchAllLogs(keyword string) (logs []*Log, err error) {
}
func
SearchUserLogs
(
userId
int
,
keyword
string
)
(
logs
[]
*
Log
,
err
error
)
{
err
=
LOG_DB
.
Where
(
"user_id = ? and type = ?"
,
userId
,
keyword
)
.
Order
(
"id desc"
)
.
Limit
(
common
.
MaxRecentItems
)
.
Omit
(
"id"
)
.
Find
(
&
logs
)
.
Error
err
=
LOG_DB
.
Where
(
"user_id = ? and type = ?"
,
userId
,
keyword
)
.
Order
(
"id desc"
)
.
Limit
(
common
.
MaxRecentItems
)
.
Find
(
&
logs
)
.
Error
for
i
:=
range
logs
{
var
otherMap
map
[
string
]
interface
{}
otherMap
=
common
.
StrToMap
(
logs
[
i
]
.
Other
)
if
otherMap
!=
nil
{
// delete admin
delete
(
otherMap
,
"admin_info"
)
}
logs
[
i
]
.
Other
=
common
.
MapToJsonStr
(
otherMap
)
logs
[
i
]
.
Id
=
logs
[
i
]
.
Id
%
1024
}
return
logs
,
err
}
...
...
web/src/components/LogsTable.js
View file @
9e25f059
...
...
@@ -185,7 +185,10 @@ const LogsTable = () => {
size
=
'small'
color
=
{
stringToColor
(
text
)}
style
=
{{
marginRight
:
4
}}
onClick
=
{()
=>
showUserInfo
(
record
.
user_id
)}
onClick
=
{(
event
)
=>
{
event
.
stopPropagation
();
showUserInfo
(
record
.
user_id
)
}}
>
{
typeof
text
===
'string'
&&
text
.
slice
(
0
,
1
)}
<
/Avatar
>
...
...
@@ -205,8 +208,9 @@ const LogsTable = () => {
<
Tag
color
=
'grey'
size
=
'large'
onClick
=
{()
=>
{
copyText
(
text
);
onClick
=
{(
event
)
=>
{
//cancel the row click event
copyText
(
event
,
text
);
}}
>
{
' '
}
...
...
@@ -265,8 +269,8 @@ const LogsTable = () => {
<
Tag
color
=
{
stringToColor
(
text
)}
size
=
'large'
onClick
=
{()
=>
{
copyText
(
text
);
onClick
=
{(
event
)
=>
{
copyText
(
event
,
text
);
}}
>
{
' '
}
...
...
@@ -518,7 +522,7 @@ const LogsTable = () => {
let
expandDatesLocal
=
{};
for
(
let
i
=
0
;
i
<
logs
.
length
;
i
++
)
{
logs
[
i
].
timestamp2string
=
timestamp2string
(
logs
[
i
].
created_at
);
logs
[
i
].
key
=
i
;
logs
[
i
].
key
=
logs
[
i
].
id
;
let
other
=
getLogOther
(
logs
[
i
].
other
);
let
expandDataLocal
=
[];
if
(
isAdmin
())
{
...
...
@@ -650,11 +654,12 @@ const LogsTable = () => {
await
loadLogs
(
activePage
,
pageSize
,
logType
);
};
const
copyText
=
async
(
text
)
=>
{
const
copyText
=
async
(
e
,
text
)
=>
{
e
.
stopPropagation
();
if
(
await
copy
(
text
))
{
showSuccess
(
'已复制:'
+
text
);
}
else
{
Modal
.
error
({
title
:
'无法复制到剪贴板,请手动复制'
,
content
:
text
});
Modal
.
error
({
title
:
t
(
'无法复制到剪贴板,请手动复制'
)
,
content
:
text
});
}
};
...
...
web/src/helpers/render.js
View file @
9e25f059
import
i18next
from
'i18next'
;
import
{
Tag
}
from
'@douyinfe/semi-ui'
;
import
{
Modal
,
Tag
}
from
'@douyinfe/semi-ui'
;
import
{
copy
,
showSuccess
}
from
'./utils.js'
;
export
function
renderText
(
text
,
limit
)
{
if
(
text
.
length
>
limit
)
{
...
...
@@ -38,6 +39,14 @@ export function renderGroup(group) {
size
=
'large'
color
=
{
tagColors
[
group
]
||
stringToColor
(
group
)}
key
=
{
group
}
onClick
=
{
async
(
event
)
=>
{
event
.
stopPropagation
();
if
(
await
copy
(
group
))
{
showSuccess
(
i18next
.
t
(
'已复制:'
)
+
group
);
}
else
{
Modal
.
error
({
title
:
t
(
'无法复制到剪贴板,请手动复制'
),
content
:
group
});
}
}}
>
{
group
}
<
/Tag
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment