Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
Y
yn-science-front
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐俊
yn-science-front
Commits
2b936752
Commit
2b936752
authored
Jul 30, 2025
by
wangxl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
5555
parent
cd0d4cf3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
77 additions
and
144 deletions
+77
-144
scoreInfo.vue
src/views/evaluation/talent/components/scoreInfo.vue
+69
-128
scoreView.vue
src/views/evaluation/talent/components/scoreView.vue
+8
-16
No files found.
src/views/evaluation/talent/components/scoreInfo.vue
View file @
2b936752
<
template
>
<div>
<table
class=
"tab-content"
style=
"width: 100%
"
>
<table
class=
"tab-content"
cellpadding=
"3"
cellspacing=
"3"
style=
"width: 98%;margin-top: 6px;
"
>
<tr>
<td
class=
"bg-title"
>
评审指标
</td>
<td
class=
"bg-title"
>
评审指标选项
</td>
<td
class=
"bg-title"
>
专家打分
</td>
<td
class=
"bg-title"
style=
"width:7%"
>
指标分类
</td>
<td
class=
"bg-title"
style=
"width:10%"
>
评分标准
</td>
<td
class=
"bg-title"
style=
"width:10%"
>
评分项目
</td>
<td
class=
"bg-title"
style=
"width:8%"
>
单项得分
</td>
<td
class=
"bg-title"
style=
"width:30%"
>
明细
</td>
<td
class=
"bg-title"
style=
"width:10%"
>
数量
</td>
<td
class=
"bg-title"
style=
"width:10%"
>
评分
</td>
<td
class=
"bg-title"
style=
"width:25%"
>
备注
</td>
</tr>
<tr
v-for=
"(item,index) in tableData"
:key=
"'tr1'+index"
>
<td>
{{
item
.
oneLevel
}}
</td>
<tr
v-for=
"(item,index) in scoreList"
:key=
"'scoreList'+index"
type=
"flex"
class=
"row_center"
>
<td
:rowspan=
"item.row1"
v-if=
"item.row1>0"
style=
"text-align:center;font-weight: 800;"
>
{{
item
.
content1
}}
</td>
<td
:rowspan=
"item.row2"
v-if=
"item.row2>0"
>
{{
item
.
content2
}}
</td>
<td>
{{
item
.
content
}}
</td>
<td
style=
"text-align:center"
>
{{
item
.
scoreDetail
}}
</td>
<td>
{{
item
.
towLevel1
}}
<br
/>
{{
item
.
towLevel2
}}
<br
/>
{{
item
.
towLevel3
}}
{{
item
.
detail
}}
</td>
<td
style=
"text-align: center;"
>
<span
v-if=
"item.order==1"
>
{{
value
.
score1
}}
</span>
<span
v-if=
"item.order==2"
>
{{
value
.
score2
}}
</span>
<span
v-if=
"item.order==3"
>
{{
value
.
score3
}}
</span>
<span
v-if=
"item.order==4"
>
{{
value
.
score4
}}
</span>
<span
v-if=
"item.order==5"
>
{{
value
.
score5
}}
</span>
<span
v-if=
"item.order==6"
>
{{
value
.
score6
}}
</span>
<span
v-if=
"item.order==7"
>
{{
value
.
score7
}}
</span>
<td
style=
"text-align:center;font-weight: 600;"
>
{{
item
.
count
}}
</td>
</tr>
<tr>
<td
class=
"bg-title"
style=
"text-align: right;"
>
是否推荐立项
</td>
<td
colspan=
"2"
>
<a-tag
:color=
"'#87d068'"
v-if=
"value.supportState==1"
>
是
</a-tag>
<a-tag
:color=
"'#f50'"
v-if=
"value.supportState==0"
>
否
</a-tag>
</td>
</tr>
<tr
v-if=
"value.supportState!=null&&value.supportState==false"
>
<td
style=
"text-align: right;"
>
不推荐原因
</td>
<td
colspan=
"2"
style=
"text-align: left;"
>
<div
v-html=
"toTextarea(value.noSupportReason)"
></div>
<td
style=
"text-align: center;font-weight: 600;"
>
{{
item
.
score
}}
</td>
<td>
{{
item
.
remark
}}
</td>
</tr>
<tr>
<td
class=
"bg-title"
style=
"text-align: right;"
>
评审结果
</td>
<td
colspan=
"2"
>
<a-tag
:color=
"'#87d068'"
v-if=
"value.evaluationType==1"
>
{{
evaluationTypeA
}}
</a-tag>
<a-tag
:color=
"'#2db7f5'"
v-if=
"value.evaluationType==2"
>
{{
evaluationTypeB
}}
</a-tag>
<a-tag
:color=
"'#f50'"
v-if=
"value.evaluationType==3"
>
{{
evaluationTypeC
}}
</a-tag>
</td>
</tr>
<tr>
<td
style=
"text-align: right;"
>
评审意见(是否存在科研被信问题?该项目存在的问题和不足及意见建议)
</td>
<td
colspan=
"2"
style=
"text-align: left;"
>
<div
v-html=
"toTextarea(value.remark)"
></div>
</td>
</tr>
<tr>
<td
style=
"text-align: right;"
>
总得分
</td>
<td
colspan=
"2"
style=
"text-align: left;"
>
<span>
{{
value
.
totalScore
}}
</span>
</td>
<td
colspan=
"6"
style=
"text-align: right;"
>
总分:
</td>
<td
style=
"text-align: center;"
>
{{
value
.
totalScore
}}
</td>
<td
style=
"text-align: center;"
>
/
</td>
</tr>
</table>
<div
style=
"height: 10px;"
></div>
</div>
</
template
>
<
script
>
import
{
toTextarea
,
getEvaluationType
}
from
'@/views/utils/common'
export
default
{
name
:
"score
Info
"
,
name
:
"score
Edit
"
,
components
:
{},
props
:
{
value
:
{
...
...
@@ -76,101 +51,66 @@ export default {
},
data
()
{
return
{
tableData
:
[
{
order
:
1
,
oneLevel
:
"1.特色与创新性、拟研究的科学问题的重要性或潜在应用价值(20分)"
,
towLevel1
:
"A.好 (20-16)"
,
towLevel2
:
"B.较好 (15-12)"
,
towLevel3
:
"C.一般 (11-0)"
,
score
:
20
,
grade
:
null
,
},
{
order
:
2
,
oneLevel
:
"2.立项依据的充分性和研究的科学价值(15分)"
,
towLevel1
:
"A.好 (15-12) "
,
towLevel2
:
"B.较好 (11-9) "
,
towLevel3
:
" C.一般 (8-0)"
,
score
:
15
,
grade
:
null
,
},
{
order
:
3
,
oneLevel
:
"3.研究内容的合理性和完整性(15分)"
,
towLevel1
:
"A.合理完整 (15-12) "
,
towLevel2
:
"B.较合理完整 (11-9) "
,
towLevel3
:
" C.一般 (8-0)"
,
score
:
15
,
grade
:
null
,
},
{
order
:
4
,
oneLevel
:
"4.预期目标及考核指标(15分)"
,
towLevel1
:
"A.明确 (15-12) "
,
towLevel2
:
" B.较明确 (11-9) "
,
towLevel3
:
"C.一般 (8-0)"
,
score
:
15
,
grade
:
null
,
},
{
order
:
5
,
oneLevel
:
"5.研究方案和技术路线的可行性(15分)"
,
towLevel1
:
"A.可行 (15-12)"
,
towLevel2
:
"B.较可行 (11-9) "
,
towLevel3
:
"C.一般 (8-0)"
,
score
:
15
,
grade
:
null
,
},
{
order
:
6
,
oneLevel
:
"6.前期工作基础、支撑条件及主持人的科研能力(15分)"
,
towLevel1
:
"A.好 (15-12) "
,
towLevel2
:
"B.较好 (11-9) "
,
towLevel3
:
" C.一般 (8-0)"
,
score
:
15
,
grade
:
null
,
},
{
order
:
7
,
oneLevel
:
"7.组织运行管理与风险分析(5分)"
,
towLevel1
:
"A.风险小 (5-4) "
,
towLevel2
:
"B.有一定风险 (3-2) "
,
towLevel3
:
" C.风险较大 (1-0)"
,
score
:
5
,
grade
:
null
,
},
],
scoreList
:
[]
};
},
computed
:
{
evaluationTypeA
()
{
return
getEvaluationType
(
0
)
},
evaluationTypeB
()
{
return
getEvaluationType
(
1
)
},
evaluationTypeC
()
{
return
getEvaluationType
(
2
)
},
},
created
()
{
},
methods
:
{
toTextarea
,
},
watch
:
{
value
:
{
handler
(
value
)
{
this
.
scoreList
=
value
.
scoreList
},
},
}
};
</
script
>
<
style
scoped
lang=
"less"
>
.app-content {
table {
table-layout: fixed;
width: 100%;
border: 1;
border-collapse: collapse;
.tab-content {
::v-deep .ant-row {
border: 0 !important;
}
table tr td,
th {
border: 1px solid #e8e8e8;
padding: 6px 6px;
color: rgba(0, 0, 0, 0.65);
::v-deep .ant-row .ant-col {
border: 0 !important;
min-height: 30px !important;
}
table tr th
{
text-align: center
;
::v-deep .ant-form-item-control
{
line-height: 30px !important
;
}
table tr {
th:first-child {
width: 4%;
}
th:nth-child(2) {
width: 6%;
}
th:nth-child(3) {
width: 8%;
}
th:nth-child(4) {
width: 18%;
}
th:nth-child(5) {
width: 6%;
}
th:nth-child(6) {
width: 6%;
}
th:nth-child(7) {
width: 40%;
}
::v-deep .ant-form-item {
margin: 0 !important;
}
table {
::v-deep .ant-row {
border: 0 !important;
}
::v-deep .ant-row .ant-col {
border: 0 !important;
min-height: 30px !important;
}
::v-deep .ant-form-item-control {
line-height: 30px !important;
}
::v-deep .ant-form-item {
margin: 0 !important;
}
::v-deep .ant-input-number {
height: 30px !important;
}
::v-deep .ant-input-number-input {
height: 30px !important;
}
::v-deep .ant-input-number {
height: 30px !important;
}
}
.none-bottom {
::v-deep .ant-col {
border-bottom: 0 !important;
::v-deep .ant-input-number-input {
height: 30px !important;
}
}
table,
tr,
td {
border: 1px solid #f0f0f0;
font-size: 10pt;
text-align: left;
line-height: 25px;
height: 25px;
padding: 4px;
}
.bg-title {
background-color: #f8fafc;
font-weight: bold;
text-align: center;
}
.target-value {
text-align: center;
}
</
style
>
\ No newline at end of file
src/views/evaluation/talent/components/scoreView.vue
View file @
2b936752
<
template
>
<div
style=
"height:70vh;overflow:auto"
class=
"app-content f
rom-table f
ont-line-space"
>
<div
style=
"height:70vh;overflow:auto"
class=
"app-content font-line-space"
>
<a-spin
:spinning=
"loading"
style=
"width: 100%;height: 100%;"
>
<score-info
v-model=
"formData"
/>
</a-spin>
...
...
@@ -7,12 +7,12 @@
</
template
>
<
script
>
import
i
nfo
from
'@/views/evaluation/talent/components/scoreInfo'
import
scoreI
nfo
from
'@/views/evaluation/talent/components/scoreInfo'
import
{
toTextarea
}
from
'@/views/utils/common'
export
default
{
name
:
"scoreView"
,
components
:
{
i
nfo
scoreI
nfo
},
props
:
{
value
:
{
...
...
@@ -24,29 +24,21 @@ export default {
},
data
()
{
return
{
formData
:
{
id
:
null
,
projId
:
null
,
expertId
:
null
,
expertName
:
null
,
projectBasis
:
null
,
academicValue
:
null
,
innovation
:
null
,
researchPlan
:
null
,
expectedResults
:
null
,
totalScore
:
null
,
remark
:
null
,
projName
:
null
,
projNo
:
null
,
},
formData
:
{
id
:
null
},
loading
:
false
,
};
},
computed
:
{
evaluationTypeA
()
{
return
getEvaluationType
(
0
)
},
evaluationTypeB
()
{
return
getEvaluationType
(
1
)
},
evaluationTypeC
()
{
return
getEvaluationType
(
2
)
},
},
created
()
{
this
.
get
AssignExpert
ById
()
this
.
get
TalentAssignInfo
ById
()
},
methods
:
{
get
AssignExpert
ById
()
{
get
TalentAssignInfo
ById
()
{
if
(
!!
this
.
value
)
{
this
.
loading
=
true
this
.
$api
.
projectAssign
.
getAssignExpert
ById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
this
.
$api
.
talentAssign
.
getTalentAssignInfo
ById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
=
data
this
.
loading
=
false
...
...
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