Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
performance-score
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tools
performance-score
Commits
e1d6e3c2
Commit
e1d6e3c2
authored
Sep 23, 2025
by
Performance System
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
a6d29b61
Pipeline
#3232
passed with stage
in 1 minute 0 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
22 deletions
+29
-22
backend/scheduler.py
+14
-3
src/store/data.js
+4
-6
src/views/admin/AdminPanel.vue
+8
-10
src/views/user/UserPanel.vue
+3
-3
No files found.
backend/scheduler.py
View file @
e1d6e3c2
...
...
@@ -125,9 +125,20 @@ class MonthlyScheduler:
institution_count
=
len
(
user_institutions
)
total_images
=
sum
(
len
(
inst
[
'images'
])
for
inst
in
user_institutions
)
# 简化的分数计算(实际应用中可能需要更复杂的逻辑)
interaction_score
=
min
(
total_images
*
0.5
,
10.0
)
# 每张图片0.5分,最高10分
performance_score
=
min
(
total_images
*
2.5
,
50.0
)
# 每张图片2.5分,最高50分
# 计算互动得分:二元计分算法(与前端保持一致)
interaction_score
=
0
for
inst
in
user_institutions
:
image_count
=
len
(
inst
[
'images'
])
if
image_count
==
0
:
interaction_score
+=
0
# 0张图片 = 0分
else
:
interaction_score
+=
1
# 1张及以上图片 = 1分
# 计算绩效得分:绩效得分 = 互动得分 ÷ 名下的带教机构数 × 10
if
institution_count
>
0
:
performance_score
=
(
interaction_score
/
institution_count
)
*
10
else
:
performance_score
=
0
user_stat
=
{
'userId'
:
user
[
'id'
],
...
...
src/store/data.js
View file @
e1d6e3c2
...
...
@@ -613,7 +613,7 @@ export const useDataStore = defineStore('data', () => {
/**
* 计算用户的交互得分
* 新算法:0张图片=0分,1张
图片=0.5分,2张及以上=1分
* 新算法:0张图片=0分,1张
及以上图片=1分(二元计分)
*/
const
calculateInteractionScore
=
(
userId
)
=>
{
const
userInstitutions
=
getInstitutionsByUserId
(
userId
)
...
...
@@ -625,14 +625,12 @@ export const useDataStore = defineStore('data', () => {
for
(
const
institution
of
userInstitutions
)
{
const
imageCount
=
institution
.
images
?
institution
.
images
.
length
:
0
// 新的互动得分算法
// 新的互动得分算法
:二元计分
let
institutionScore
=
0
if
(
imageCount
===
0
)
{
institutionScore
=
0
}
else
if
(
imageCount
===
1
)
{
institutionScore
=
0.5
institutionScore
=
0
// 0张图片 = 0分
}
else
{
institutionScore
=
1
institutionScore
=
1
// 1张及以上图片 = 1分
}
totalScore
+=
institutionScore
...
...
src/views/admin/AdminPanel.vue
View file @
e1d6e3c2
...
...
@@ -1182,8 +1182,8 @@ const userUploadStats = computed(() => {
const
users
=
regularUsers
.
value
const
stats
=
users
.
map
(
user
=>
{
const
userInstitutions
=
dataStore
.
getInstitutionsByUserId
(
user
.
id
)
// 与普通用户面板保持一致:至少
2张图片才算完成
const
uploadedCount
=
userInstitutions
.
filter
(
inst
=>
inst
.
images
.
length
>=
2
).
length
// 与普通用户面板保持一致:至少
1张图片才算完成(二元计分算法)
const
uploadedCount
=
userInstitutions
.
filter
(
inst
=>
inst
.
images
.
length
>=
1
).
length
const
uploadRate
=
userInstitutions
.
length
>
0
?
Math
.
round
((
uploadedCount
/
userInstitutions
.
length
)
*
100
)
:
0
...
...
@@ -1356,21 +1356,19 @@ const getImageCountTagType = (count) => {
}
/**
* 获取机构得分
* 获取机构得分
(二元计分)
*/
const
getInstitutionScore
=
(
imageCount
)
=>
{
if
(
imageCount
===
0
)
return
'0'
if
(
imageCount
===
1
)
return
'0.5'
return
'1'
if
(
imageCount
===
0
)
return
'0'
// 0张图片 = 0分
return
'1'
// 1张及以上图片 = 1分
}
/**
* 获取机构互动得分
* 获取机构互动得分
(二元计分)
*/
const
getInstitutionInteractionScore
=
(
imageCount
)
=>
{
if
(
imageCount
===
0
)
return
'0'
if
(
imageCount
===
1
)
return
'0.5'
return
'1'
if
(
imageCount
===
0
)
return
'0'
// 0张图片 = 0分
return
'1'
// 1张及以上图片 = 1分
}
/**
...
...
src/views/user/UserPanel.vue
View file @
e1d6e3c2
...
...
@@ -24,7 +24,7 @@
<div
class=
"score-card"
>
<div
class=
"score-title"
>
已传机构数
</div>
<div
class=
"score-value"
>
{{
uploadedInstitutionsCount
}}
</div>
<div
class=
"score-desc"
>
已上传至少
2
张图片的机构数量
</div>
<div
class=
"score-desc"
>
已上传至少
1
张图片的机构数量
</div>
</div>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -265,10 +265,10 @@ const filteredInstitutions = computed(() => {
})
/**
* 计算属性:已传机构数(至少
2张图片才算完成
)
* 计算属性:已传机构数(至少
1张图片才算完成,与二元计分算法一致
)
*/
const
uploadedInstitutionsCount
=
computed
(()
=>
{
return
userInstitutions
.
value
.
filter
(
inst
=>
inst
.
images
&&
inst
.
images
.
length
>=
2
).
length
return
userInstitutions
.
value
.
filter
(
inst
=>
inst
.
images
&&
inst
.
images
.
length
>=
1
).
length
})
/**
...
...
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