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
6c1f128c
Commit
6c1f128c
authored
Mar 26, 2025
by
徐俊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xujun
parent
5d574ba5
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1523 additions
and
21 deletions
+1523
-21
Index.vue
src/views/report/talent/Index.vue
+4
-4
budgetInfo.vue
src/views/report/talent/components/budgetInfo.vue
+257
-0
fileInfo.vue
src/views/report/talent/components/fileInfo.vue
+95
-2
membersInfo.vue
src/views/report/talent/components/membersInfo.vue
+99
-3
resumeInfo.vue
src/views/report/talent/components/resumeInfo.vue
+202
-3
scientificGainInfo.vue
src/views/report/talent/components/scientificGainInfo.vue
+314
-4
talentInfo.vue
src/views/report/talent/components/talentInfo.vue
+483
-2
talentView.vue
src/views/report/talent/components/talentView.vue
+69
-3
No files found.
src/views/report/talent/Index.vue
View file @
6c1f128c
...
@@ -39,8 +39,8 @@
...
@@ -39,8 +39,8 @@
<a-modal
v-model=
"visibleEdit"
v-if=
"visibleEdit"
title=
"人才申报创建/修改"
width=
"94%"
:footer=
"null"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<a-modal
v-model=
"visibleEdit"
v-if=
"visibleEdit"
title=
"人才申报创建/修改"
width=
"94%"
:footer=
"null"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<talent-create
v-model=
"id"
@
close=
"closeWindow"
></talent-create>
<talent-create
v-model=
"id"
@
close=
"closeWindow"
></talent-create>
</a-modal>
</a-modal>
<a-modal
v-model=
"visibleView"
title=
"查看"
width=
"
700px"
:footer=
"null"
destroyOnClose
>
<a-modal
v-model=
"visibleView"
title=
"查看"
width=
"
94%"
:footer=
"null"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<talent-
info
v-model=
"id"
></talent-info
>
<talent-
view
v-model=
"id"
@
close=
"closeWindow"
></talent-view
>
</a-modal>
</a-modal>
</div>
</div>
</template>
</template>
...
@@ -48,12 +48,12 @@
...
@@ -48,12 +48,12 @@
<
script
>
<
script
>
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
import
talentCreate
from
"@/views/report/talent/components/talentCreate"
import
talentCreate
from
"@/views/report/talent/components/talentCreate"
import
talent
Info
from
"@/views/report/talent/components/talentInfo
"
import
talent
View
from
"@/views/report/talent/components/talentView
"
export
default
{
export
default
{
name
:
"reportTalent"
,
name
:
"reportTalent"
,
components
:
{
components
:
{
talentCreate
,
talent
Info
talentCreate
,
talent
View
},
},
data
()
{
data
()
{
return
{
return
{
...
...
src/views/report/talent/components/budgetInfo.vue
View file @
6c1f128c
<
template
>
<div>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
申请资助的预算支出科目
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
第一年
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
第二年
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
第三年
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
第四年
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
第五年
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
费用
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
操作
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in budgetList"
:key=
"index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
style=
"text-align: left;"
>
<div
class=
"special-middle"
>
{{
item
.
budgetName
}}
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
yearValue1
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
yearValue2
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
yearValue3
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
yearValue4
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
yearValue5
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
amountFee
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
合计
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue1
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue2
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue3
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue4
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue5
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalFee
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
</a-row>
</div>
</
template
>
<
script
>
const
Budget
=
{
id
:
null
,
talentId
:
null
,
budgetId
:
"00000000-0000-0000-0000-000000000000"
,
yearValue1
:
0.00
,
yearValue2
:
0.00
,
yearValue3
:
0.00
,
yearValue4
:
0.00
,
yearValue5
:
0.00
,
amountFee
:
0.00
,
showIndex
:
null
,
isRequired
:
false
}
export
default
{
name
:
"budgetInfo"
,
props
:
{
budgetList
:
{
type
:
Array
,
default
:
()
=>
{
return
[{
...
Budget
}];
},
}
},
data
()
{
return
{
totalYearValue1
:
0.00
,
totalYearValue2
:
0.00
,
totalYearValue3
:
0.00
,
totalYearValue4
:
0.00
,
totalYearValue5
:
0.00
,
totalFee
:
0.00
,
invisibleYearValue1
:
[
2
,
8
],
invisibleYearValue2
:
[
2
,
8
],
invisibleYearValue3
:
[
2
,
8
],
invisibleYearValue4
:
[
2
,
8
],
invisibleYearValue5
:
[
2
,
8
],
}
},
created
()
{
//this.calTotalFee()
},
methods
:
{
FeeChange
(
index
)
{
if
(
index
==
0
)
this
.
educationFee
()
else
if
(
index
==
1
)
this
.
scienceFee
()
else
if
(
index
>
2
&&
index
<
8
)
this
.
researchFee
(
index
)
else
if
(
this
.
budgetList
.
length
>
8
)
this
.
otherFee
(
index
)
this
.
calTotalFee
()
},
YearValue1Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue2Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue3Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue4Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue5Change
(
index
)
{
this
.
FeeChange
(
index
)
},
calTotalFee
()
{
this
.
totalYearValue1
=
this
.
budgetList
[
0
].
yearValue1
+
this
.
budgetList
[
1
].
yearValue1
+
this
.
budgetList
[
2
].
yearValue1
+
this
.
budgetList
[
8
].
yearValue1
this
.
totalYearValue2
=
this
.
budgetList
[
0
].
yearValue2
+
this
.
budgetList
[
1
].
yearValue2
+
this
.
budgetList
[
2
].
yearValue2
+
this
.
budgetList
[
8
].
yearValue2
this
.
totalYearValue3
=
this
.
budgetList
[
0
].
yearValue3
+
this
.
budgetList
[
1
].
yearValue3
+
this
.
budgetList
[
2
].
yearValue3
+
this
.
budgetList
[
8
].
yearValue3
this
.
totalYearValue4
=
this
.
budgetList
[
0
].
yearValue4
+
this
.
budgetList
[
1
].
yearValue4
+
this
.
budgetList
[
2
].
yearValue4
+
this
.
budgetList
[
8
].
yearValue4
this
.
totalYearValue5
=
this
.
budgetList
[
0
].
yearValue5
+
this
.
budgetList
[
1
].
yearValue5
+
this
.
budgetList
[
2
].
yearValue5
+
this
.
budgetList
[
8
].
yearValue5
this
.
totalFee
=
this
.
totalYearValue1
+
this
.
totalYearValue2
+
this
.
totalYearValue3
+
+
this
.
totalYearValue4
+
this
.
totalYearValue5
},
//一、国内外进修费用
educationFee
()
{
this
.
budgetList
[
0
].
amountFee
=
this
.
budgetList
[
0
].
yearValue1
+
this
.
budgetList
[
0
].
yearValue2
+
this
.
budgetList
[
0
].
yearValue3
+
this
.
budgetList
[
0
].
yearValue4
+
this
.
budgetList
[
0
].
yearValue5
},
//二、学术交流费用
scienceFee
()
{
this
.
budgetList
[
1
].
amountFee
=
this
.
budgetList
[
1
].
yearValue1
+
this
.
budgetList
[
1
].
yearValue2
+
this
.
budgetList
[
1
].
yearValue3
+
this
.
budgetList
[
1
].
yearValue4
+
this
.
budgetList
[
1
].
yearValue5
},
//三、研究费用
researchFee
(
index
)
{
this
.
budgetList
[
index
].
amountFee
=
this
.
budgetList
[
index
].
yearValue1
+
this
.
budgetList
[
index
].
yearValue2
+
this
.
budgetList
[
index
].
yearValue3
+
this
.
budgetList
[
index
].
yearValue4
+
this
.
budgetList
[
index
].
yearValue5
this
.
budgetList
[
2
].
yearValue1
=
0.00
this
.
budgetList
[
2
].
yearValue2
=
0.00
this
.
budgetList
[
2
].
yearValue3
=
0.00
this
.
budgetList
[
2
].
yearValue4
=
0.00
this
.
budgetList
[
2
].
yearValue5
=
0.00
for
(
let
i
=
3
;
i
<=
7
;
i
++
)
{
this
.
budgetList
[
2
].
yearValue1
+=
this
.
budgetList
[
i
].
yearValue1
this
.
budgetList
[
2
].
yearValue2
+=
this
.
budgetList
[
i
].
yearValue2
this
.
budgetList
[
2
].
yearValue3
+=
this
.
budgetList
[
i
].
yearValue3
this
.
budgetList
[
2
].
yearValue4
+=
this
.
budgetList
[
i
].
yearValue4
this
.
budgetList
[
2
].
yearValue5
+=
this
.
budgetList
[
i
].
yearValue5
}
this
.
budgetList
[
2
].
amountFee
=
this
.
budgetList
[
2
].
yearValue1
+
this
.
budgetList
[
2
].
yearValue2
+
this
.
budgetList
[
2
].
yearValue3
+
this
.
budgetList
[
2
].
yearValue4
+
this
.
budgetList
[
2
].
yearValue5
},
//四、其他费用
otherFee
(
index
)
{
this
.
budgetList
[
index
].
amountFee
=
this
.
budgetList
[
index
].
yearValue1
+
this
.
budgetList
[
index
].
yearValue2
+
this
.
budgetList
[
index
].
yearValue3
+
this
.
budgetList
[
index
].
yearValue4
+
this
.
budgetList
[
index
].
yearValue5
this
.
budgetList
[
8
].
yearValue1
=
0.00
this
.
budgetList
[
8
].
yearValue2
=
0.00
this
.
budgetList
[
8
].
yearValue3
=
0.00
this
.
budgetList
[
8
].
yearValue4
=
0.00
this
.
budgetList
[
8
].
yearValue5
=
0.00
for
(
let
i
=
9
;
i
<
this
.
budgetList
.
length
;
i
++
)
{
this
.
budgetList
[
8
].
yearValue1
+=
this
.
budgetList
[
i
].
yearValue1
this
.
budgetList
[
8
].
yearValue2
+=
this
.
budgetList
[
i
].
yearValue2
this
.
budgetList
[
8
].
yearValue3
+=
this
.
budgetList
[
i
].
yearValue3
this
.
budgetList
[
8
].
yearValue4
+=
this
.
budgetList
[
i
].
yearValue4
this
.
budgetList
[
8
].
yearValue5
+=
this
.
budgetList
[
i
].
yearValue5
}
this
.
budgetList
[
8
].
amountFee
=
this
.
budgetList
[
8
].
yearValue1
+
this
.
budgetList
[
8
].
yearValue2
+
this
.
budgetList
[
8
].
yearValue3
+
this
.
budgetList
[
8
].
yearValue4
+
this
.
budgetList
[
8
].
yearValue5
},
addBudgetArray
()
{
const
newItem
=
{
...
Budget
,
showIndex
:
this
.
budgetList
.
length
+
1
}
this
.
budgetList
.
push
(
newItem
)
},
deleteBudgetArray
(
item
)
{
let
index
=
this
.
budgetList
.
indexOf
(
item
)
if
(
index
!==
-
1
)
{
this
.
budgetList
.
splice
(
index
,
1
)
}
},
getTotalFee
()
{
return
parseFloat
(
this
.
totalFee
);
}
},
watch
:
{
budgetList
:
{
handler
(
budgetList
)
{
this
.
calTotalFee
()
}
}
}
}
</
script
>
src/views/report/talent/components/fileInfo.vue
View file @
6c1f128c
<
template
>
<
template
>
<div>
<div>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
附件
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
class=
"bg-gray"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
序号
</div>
</div>
</a-col>
<a-col
:span=
"8"
class=
"bg-gray"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
文件名
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
是否必备材料
</div>
</div>
</a-col>
<a-col
:span=
"10"
class=
"bg-gray"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
附件名称
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
操作
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in fileList"
:key=
"'appendix' + index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
{{
index
+
1
}}
</div>
</div>
</a-col>
<a-col
:span=
"8"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div
v-if=
"item.fileName"
style=
"text-align: left;"
>
<!--
{{
item
.
fileName
}}
-->
<document-view
:fileUrl=
"item.downloadUrl"
:fileName=
"item.fileName"
:imageArray=
"[item.downloadUrl]"
></document-view>
</div>
<div
v-else
>
无
</div>
</div>
</a-col>
<a-col
:span=
"2"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
isRequired
==
true
?
"是"
:
"否"
}}
</div>
</div>
</a-col>
<a-col
:span=
"10"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
fileExplain
}}
<span
v-if=
"item.isRequired"
style=
"color:red;"
>
*
</span></div>
</div>
</a-col>
<a-col
:span=
"2"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
<div
v-if=
"item.downloadUrl"
><a
:href=
"item.downloadUrl"
:download=
"item.fileName"
>
下载
</a></div>
</div>
</a-col>
</a-row>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
documentView
from
'@/views/components/common/documentView'
const
File
=
{
fileName
:
null
,
downloadUrl
:
null
,
fileExplain
:
null
,
downloadId
:
null
,
isRequired
:
true
,
required
:
false
,
isTitle
:
false
};
export
default
{
export
default
{
name
:
"fileInfo"
,
name
:
"fileInfo"
,
components
:
{
documentView
,
},
props
:
{
fileList
:
{
type
:
Array
,
default
:
()
=>
{
return
[{
...
File
}];
},
},
},
data
()
{
data
()
{
return
{};
return
{};
},
},
methods
:
{
created
()
{
},
methods
:
{
// 添加附件
addfileList
()
{
this
.
fileList
.
push
(
Object
.
assign
({
...
File
},
{
fileExplain
:
''
}))
},
// 删除附件
removefileList
(
item
)
{
let
index
=
this
.
fileList
.
indexOf
(
item
)
if
(
index
!==
-
1
)
{
this
.
fileList
.
splice
(
index
,
1
)
}
},
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
src/views/report/talent/components/membersInfo.vue
View file @
6c1f128c
<
template
>
<
template
>
<div></div>
<div>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
团队人员名单
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"1"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
序号
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
姓名
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
性别
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
出生日期
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
专业
</div>
</div>
</a-col>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
技术职称
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
单位
</div>
</div>
</a-col>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
工作分工(限10字)
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in membersList"
:key=
"'membersList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"1"
>
<div
style=
"margin-top:10px;"
>
{{
item
.
showIndex
}}
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
name
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
sex
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
birthday
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
specName
}}
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
titleName
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
workUnit
}}
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
projWork
}}
</div>
</div>
</a-col>
</a-row>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
moment
from
'moment'
export
default
{
export
default
{
name
:
"membersInfo"
,
name
:
"membersInfo"
,
props
:
{
props
:
{
membersList
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
{
default
:
()
=>
{
return
[
];
return
[{
...
Member
}
];
},
},
}
},
},
data
()
{
data
()
{
return
{};
return
{};
},
},
methods
:
{},
methods
:
{
moment
,
},
};
};
</
script
>
</
script
>
src/views/report/talent/components/resumeInfo.vue
View file @
6c1f128c
<
template
>
<
template
>
<div>
<div>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
申报人才简历
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<span>
学历(高中以上)
</span>
</div>
</a-col>
<a-col
:span=
"20"
>
<!-- 学历表格 -->
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
起止日期
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
学校
</div>
</div>
</a-col>
<a-col
:span=
"10"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
备注
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in educationList"
:key=
"'educationList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
resumeStart
).
format
(
'YYYY-MM-DD'
)
}}
至
{{
moment
(
item
.
resumeEnd
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
orgName
}}
</div>
</div>
</a-col>
<a-col
:span=
"10"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
resumeRemark
}}
</div>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<span>
研修经历
</span>
</div>
</a-col>
<a-col
:span=
"20"
>
<!-- 研修经历表格 -->
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
起止日期
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
机构(国别)
</div>
</div>
</a-col>
<a-col
:span=
"10"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
研修内容(限20字)
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in studyList"
:key=
"'studyList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
resumeStart
).
format
(
'YYYY-MM-DD'
)
}}
至
{{
moment
(
item
.
resumeEnd
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
orgName
}}
</div>
</div>
</a-col>
<a-col
:span=
"10"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
resumeRemark
}}
</div>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<span>
工作经历
</span>
</div>
</a-col>
<a-col
:span=
"20"
>
<!-- 工作经历表格 -->
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
起止日期
</div>
</div>
</a-col>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
机构
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
职务
</div>
</div>
</a-col>
<a-col
:span=
"9"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
承担的主要工作(限20字)
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in workList"
:key=
"'workList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
resumeStart
).
format
(
'YYYY-MM-DD'
)
}}
至
{{
moment
(
item
.
resumeEnd
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
orgName
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
positionName
}}
</div>
</div>
</a-col>
<a-col
:span=
"9"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
resumeRemark
}}
</div>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
moment
from
'moment'
export
default
{
export
default
{
name
:
"resumeInfo"
,
name
:
"resumeInfo"
,
props
:
{
props
:
{
budge
t
:
{
resumeLis
t
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
{
default
:
()
=>
{
return
[];
return
[];
...
@@ -17,11 +167,59 @@ export default {
...
@@ -17,11 +167,59 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
educationList
:
[],
studyList
:
[],
workList
:
[],
};
};
},
created
()
{
},
},
methods
:
{
methods
:
{
moment
,
InitData
()
{
// 根据 resumeType 分类并排序
if
(
this
.
resumeList
&&
this
.
resumeList
.
length
>
0
)
{
// 学历记录
this
.
educationList
=
this
.
resumeList
.
filter
(
item
=>
item
.
resumeType
===
'e76f5097-fe28-11ef-b6cb-0c42a1380f01'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
.
map
(
item
=>
({
...
item
,
resumeRange
:
item
.
resumeStart
&&
item
.
resumeEnd
?
[
moment
(
item
.
resumeStart
),
moment
(
item
.
resumeEnd
)]
:
[]
}))
// 研修经历
this
.
studyList
=
this
.
resumeList
.
filter
(
item
=>
item
.
resumeType
===
'e76f5097-fe28-11ef-b6cb-0c42a1380f02'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
.
map
(
item
=>
({
...
item
,
resumeRange
:
item
.
resumeStart
&&
item
.
resumeEnd
?
[
moment
(
item
.
resumeStart
),
moment
(
item
.
resumeEnd
)]
:
[]
}))
// 工作经历
this
.
workList
=
this
.
resumeList
.
filter
(
item
=>
item
.
resumeType
===
'e76f5097-fe28-11ef-b6cb-0c42a1380f03'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
.
map
(
item
=>
({
...
item
,
resumeRange
:
item
.
resumeStart
&&
item
.
resumeEnd
?
[
moment
(
item
.
resumeStart
),
moment
(
item
.
resumeEnd
)]
:
[]
}))
}
}
},
watch
:
{
resumeList
:
{
handler
(
resumeList
)
{
if
(
!!
resumeList
)
{
this
.
InitData
()
}
},
},
},
},
};
};
</
script
>
</
script
>
\ No newline at end of file
src/views/report/talent/components/scientificGainInfo.vue
View file @
6c1f128c
<
template
>
<
template
>
<div></div>
<div>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
申报人才科研成绩
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div>
<span>
1、主要科研成果获奖情况(按获奖时间顺序填写,含专利、新药证书等不超过15项。)
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
序号
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
成果名称
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
授奖部门及等级
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
本人排名
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in gainList"
:key=
"'gainList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
{{
item
.
showIndex
}}
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDate
?
moment
(
item
.
gainDate
).
format
(
'YYYY-MM-DD'
)
:
''
}}
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainName
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDescription
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainRemark
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div>
<span>
2、发表的主要科研论文(按时间顺序填写,不超过15篇,SCI论文等外文论文需提供影响因子证明(科技部门批准机构开具的证明))
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
序号
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
论文名称
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
发表刊物
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
本人排名
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in thesisList"
:key=
"'thesisList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
{{
item
.
showIndex
}}
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDate
?
moment
(
item
.
gainDate
).
format
(
'YYYY-MM-DD'
)
:
''
}}
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainName
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDescription
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainRemark
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div>
<span>
3、出版的专著和教材(按出版时间顺序填写,不超过15本。)
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
序号
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
专著及教材
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
出版社
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
本人排名
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in appearList"
:key=
"'appearList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
{{
item
.
showIndex
}}
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDate
?
moment
(
item
.
gainDate
).
format
(
'YYYY-MM-DD'
)
:
''
}}
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainName
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDescription
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainRemark
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div>
<span>
4、承担的课题(按立项时间顺序填写,不超过15项。)
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
序号
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
课题名称
</div>
</div>
</a-col>
<a-col
:span=
"6"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
项目来源
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
本人排名
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in courseList"
:key=
"'courseList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
{{
item
.
showIndex
}}
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDate
?
moment
(
item
.
gainDate
).
format
(
'YYYY-MM-DD'
)
:
''
}}
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainName
}}
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainDescription
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
gainRemark
}}
</div>
</div>
</a-col>
</a-row>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
moment
from
"moment"
;
import
moment
from
"moment"
const
Gain
=
{
id
:
null
,
talentId
:
null
,
gainType
:
'dff44c90-ff10-11ef-b6cb-0c42a1380f01'
,
gainDate
:
null
,
gainName
:
null
,
gainDescription
:
null
,
gainRemark
:
null
,
showIndex
:
null
,
}
const
Thesis
=
{
id
:
null
,
talentId
:
null
,
gainType
:
'dff44c90-ff10-11ef-b6cb-0c42a1380f02'
,
gainDate
:
null
,
gainName
:
null
,
gainDescription
:
null
,
gainRemark
:
null
,
showIndex
:
null
,
}
const
Appear
=
{
id
:
null
,
talentId
:
null
,
gainType
:
'dff44c90-ff10-11ef-b6cb-0c42a1380f03'
,
gainDate
:
null
,
gainName
:
null
,
gainDescription
:
null
,
gainRemark
:
null
,
showIndex
:
null
,
}
const
Course
=
{
id
:
null
,
talentId
:
null
,
gainType
:
'dff44c90-ff10-11ef-b6cb-0c42a1380f04'
,
gainDate
:
null
,
gainName
:
null
,
gainDescription
:
null
,
gainRemark
:
null
,
showIndex
:
null
,
}
const
ScientificGain
=
{};
export
default
{
export
default
{
name
:
"scientificGainInfo"
,
name
:
"scientificGainInfo"
,
props
:
{
scientificList
:
{
type
:
Array
,
default
:
()
=>
{
return
[];
},
},
},
data
()
{
data
()
{
return
{};
return
{
gainList
:
[],
thesisList
:
[],
appearList
:
[],
courseList
:
[],
};
},
},
created
()
{
created
()
{
},
},
methods
:
{
methods
:
{
moment
,
InitData
()
{
if
(
this
.
scientificList
&&
this
.
scientificList
.
length
>
0
)
{
this
.
gainList
=
this
.
scientificList
.
filter
(
item
=>
item
.
gainType
===
'dff44c90-ff10-11ef-b6cb-0c42a1380f01'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
if
(
this
.
gainList
.
length
==
0
)
{
this
.
gainList
.
push
({
...
Gain
})
}
this
.
thesisList
=
this
.
scientificList
.
filter
(
item
=>
item
.
gainType
===
'dff44c90-ff10-11ef-b6cb-0c42a1380f02'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
if
(
this
.
thesisList
.
length
==
0
)
{
this
.
thesisList
.
push
({
...
Thesis
})
}
this
.
appearList
=
this
.
scientificList
.
filter
(
item
=>
item
.
gainType
===
'dff44c90-ff10-11ef-b6cb-0c42a1380f03'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
if
(
this
.
appearList
.
length
==
0
)
{
this
.
appearList
.
push
({
...
Appear
})
}
this
.
courseList
=
this
.
scientificList
.
filter
(
item
=>
item
.
gainType
===
'dff44c90-ff10-11ef-b6cb-0c42a1380f04'
)
.
sort
((
a
,
b
)
=>
a
.
showIndex
-
b
.
showIndex
)
if
(
this
.
courseList
.
length
==
0
)
{
this
.
courseList
.
push
({
...
Course
})
}
}
},
},
watch
:
{
scientificList
:
{
handler
(
scientificList
)
{
if
(
!!
scientificList
)
{
this
.
InitData
()
}
else
{
this
.
gainList
.
push
({
...
Gain
})
this
.
thesisList
.
push
({
...
Thesis
})
this
.
appearList
.
push
({
...
Appear
})
this
.
courseList
.
push
({
...
Course
})
}
},
},
},
},
};
};
</
script
>
</
script
>
\ No newline at end of file
src/views/report/talent/components/talentInfo.vue
View file @
6c1f128c
<
template
>
<
template
>
<div
class=
"from-table font-line-space"
v-if=
"tabsData[0].isShow"
>
<div
v-if=
"tabsData[1].isShow"
>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px;text-align: center;"
>
<div
class=
"main-title"
>
<span>
申报人基本情况
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
身份证号
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
<div>
{{
value
.
certId
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
人才类别
</div>
</div>
</a-col>
<a-col
:span=
"13"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
talentCategoryName
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
姓名
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
personName
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
性别
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
sex
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
民族
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
nationName
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
出生年月
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
value
.
birthday
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
最高学位
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
degreeName
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
最高学位授予时间
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
value
.
degreeTime
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
最高学位授予单位
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
degreeUnit
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
目前从事专业
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
specName
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
是否为研究生导师
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
<para-check
v-model=
"value.graduateTeacher"
:typeId=
"18"
:disabled=
"true"
/>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
专业技术职称
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
titleName
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
党派
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
politicalParty
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
行政职务
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
{{
value
.
duty
}}
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
是否是省级或省级以上人才
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div>
<para-check
v-model=
"value.talentType"
:typeId=
"16"
:disabled=
"true"
/>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
省级及以上劳动模范、先进工作者等荣誉称号
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.honoraryTitle)"
></div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
在国家、省级一级学术团体任职情况(包括任职时间和职务)
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.holdPost1)"
></div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
担任国内统计源期刊职务情况(包括任职时间和职务)
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div>
<div
v-html=
"toTextarea(value.holdPost2)"
></div>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
担任国家或省级重点学科/专科、重点实验室、内设研究机构负责人情况(包括任职时间和职务)
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.holdPost3)"
></div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
联系方式
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<a-row>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
电话
</div>
</a-col>
<a-col
:span=
"8"
>
<div
style=
"margin-top: 10px;"
>
{{
value
.
mobile
}}
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
传真
</div>
</a-col>
<a-col
:span=
"8"
>
<div
style=
"margin-top: 10px;"
>
{{
value
.
fax
}}
</div>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
Email
</div>
</a-col>
<a-col
:span=
"20"
>
<div
style=
"margin-top: 10px;"
>
{{
value
.
email
}}
</div>
</a-col>
</a-row>
</a-col>
</a-row>
</div>
<div
v-if=
"tabsData[2].isShow"
>
<resume-info
:resumeList
.
sync=
"value.resumeList"
/>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
申报人才业务技术能力
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
<span>
本人业务技术能力、外语水平及已经开展的主要业务工作(应阐明自身的技术优势、薄弱环节及改进措施)
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
v-html=
"toTextarea(value.technicalSkill)"
></div>
</a-col>
</a-row>
</div>
<div
v-if=
"tabsData[3].isShow"
>
<scientific-gain-info
:scientificList
.
sync=
"value.scientificList"
/>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
科学研究规划
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
<span>
结合本人业务基础和专长,所在学科的建设目标,获资助后拟研究的关键问题、主要研究内容、创新技术研发与应用及预期成果,要有量化指标:
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.qualityTarget)"
></div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
<span>
目前的研究条件(详述已具备的研究条件,包括主要的仪器设备、实验动物等)
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.researchCondition)"
></div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div
style=
"margin-top: 10px;"
>
<span>
研究进度:按年度列出研究进度及相关指标
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.researchProgress)"
></div>
</div>
</a-col>
</a-row>
</div>
<div
v-if=
"tabsData[4].isShow"
>
<members-info
:membersList
.
sync=
"value.membersList"
/>
</div>
<div
v-if=
"tabsData[5].isShow"
>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
经费预算及培养计划和目标
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
申请资助金额
</div>
</div>
</a-col>
<a-col
:span=
"17"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
value
.
applyFund
).
toFixed
(
2
)
}}
(万元)
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
其他经费来源
</div>
</div>
</a-col>
<a-col
:span=
"17"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
value
.
otherFund
).
toFixed
(
2
)
}}
(万元)
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
合计
</div>
</div>
</a-col>
<a-col
:span=
"17"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
value
.
totalFund
).
toFixed
(
2
)
}}
(万元)
</div>
</div>
</a-col>
</a-row>
<budget-info
:budgetList
.
sync=
"value.budgetList"
/>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
申报人所在单位培养计划和培养目标
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.planTarget)"
></div>
</div>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<span>
申报人所在单位的学科发展和人才队伍建设专家指导委员会审核意见
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
>
<div
class=
"special-middle"
>
<div
v-html=
"toTextarea(value.unitAdvice)"
></div>
</div>
</a-col>
</a-row>
</div>
<div
v-if=
"tabsData[6].isShow"
>
<file-info
:fileList
.
sync=
"value.fileList"
/>
</div>
<div
v-if=
"tabsData[7].isShow"
>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
moment
from
'moment'
import
{
toTextarea
}
from
'@/views/utils/common'
import
paraCheck
from
'@/views/components/common/paraCheck'
import
resumeInfo
from
'@/views/report/talent/components/resumeInfo'
import
scientificGainInfo
from
'@/views/report/talent/components/scientificGainInfo'
import
membersInfo
from
'@/views/report/talent/components/membersInfo'
import
budgetInfo
from
'@/views/report/talent/components/budgetInfo'
import
fileInfo
from
'@/views/report/talent/components/fileInfo'
export
default
{
export
default
{
name
:
"talentInfo"
,
name
:
"talentInfo"
,
components
:
{
paraCheck
,
resumeInfo
,
scientificGainInfo
,
membersInfo
,
budgetInfo
,
fileInfo
,
},
props
:
{
value
:
{
type
:
Object
,
default
:
()
=>
{
return
null
}
},
tabsData
:
{
type
:
Array
,
default
:
()
=>
{
return
[]
}
},
},
data
()
{
data
()
{
return
{};
return
{};
},
},
created
()
{
if
(
!!!
this
.
tabsData
||
this
.
tabsData
.
length
==
0
)
this
.
tabsData
=
[
{
title
:
'全部'
,
key
:
'0'
,
isShow
:
true
},
{
title
:
'申报人基本情况'
,
key
:
'1'
,
isShow
:
true
},
{
title
:
'申报人简历'
,
key
:
'2'
,
isShow
:
true
},
{
title
:
'申报人科研成绩'
,
key
:
'3'
,
isShow
:
true
},
{
title
:
'科学研究规划及团队人员名单'
,
key
:
'4'
,
isShow
:
true
},
{
title
:
'经费预算及培养计划和目标'
,
key
:
'5'
,
isShow
:
true
},
{
title
:
'附件'
,
key
:
'6'
,
isShow
:
true
},
{
title
:
'项目审核记录'
,
key
:
'7'
,
isShow
:
true
},
]
},
methods
:
{
methods
:
{
moment
,
toTextarea
,
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
src/views/report/talent/components/talentView.vue
View file @
6c1f128c
...
@@ -44,16 +44,82 @@ export default {
...
@@ -44,16 +44,82 @@ export default {
{
title
:
'项目审核记录'
,
key
:
'7'
,
isShow
:
true
},
{
title
:
'项目审核记录'
,
key
:
'7'
,
isShow
:
true
},
],
],
formData
:
{
formData
:
{
id
:
null
,
talentCategory
:
null
,
reportYear
:
null
,
certId
:
null
,
personId
:
null
,
personName
:
null
,
nation
:
null
,
sex
:
null
,
birthday
:
null
,
degree
:
null
,
degreeTime
:
null
,
degreeUnit
:
null
,
spec
:
null
,
graduateTeacher
:
null
,
title
:
null
,
politicalParty
:
null
,
duty
:
null
,
talentType
:
null
,
honoraryTitle
:
null
,
holdPost1
:
null
,
holdPost2
:
null
,
holdPost3
:
null
,
mobile
:
null
,
fax
:
null
,
technicalSkill
:
null
,
qualityTarget
:
null
,
researchCondition
:
null
,
researchProgress
:
null
,
email
:
null
,
applyFund
:
null
,
otherFund
:
null
,
totalFund
:
null
,
planTarget
:
null
,
unitAdvice
:
null
,
talentState
:
null
,
resumeList
:
[],
membersList
:
[],
budgetList
:
[],
scientificList
:
[],
fileList
:
[],
},
},
loading
:
false
,
loading
:
false
,
};
};
},
},
created
()
{
created
()
{
this
.
getTalentApplyById
()
},
},
methods
:
{
methods
:
{
callback
()
{
getTalentApplyById
()
{
if
(
this
.
value
!=
null
)
{
this
.
$api
.
talent
.
getTalentApplyById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
// 处理字符串转数组
if
(
typeof
data
.
talentType
===
'string'
&&
data
.
talentType
)
{
data
.
talentType
=
data
.
talentType
.
split
(
','
)
}
if
(
typeof
data
.
graduateTeacher
===
'string'
&&
data
.
graduateTeacher
)
{
data
.
graduateTeacher
=
data
.
graduateTeacher
.
split
(
','
)
}
this
.
formData
=
data
this
.
loading
=
false
}
else
this
.
$emit
(
'close'
,
'error'
)
}).
catch
(()
=>
{
this
.
$emit
(
'close'
,
'error'
)
})
}
},
callback
(
key
)
{
var
index
=
parseInt
(
key
)
this
.
tabsData
.
forEach
(
e
=>
{
if
(
key
==
'0'
)
e
.
isShow
=
true
else
e
.
isShow
=
false
})
this
.
tabsData
[
0
].
isShow
=
true
;
this
.
tabsData
[
index
].
isShow
=
true
;
},
},
onTalentExport
()
{
onTalentExport
()
{
...
...
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