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
07d1e70e
Commit
07d1e70e
authored
Mar 24, 2025
by
徐俊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xujun
parent
7005264d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
274 additions
and
9 deletions
+274
-9
membersEdit.vue
src/views/report/talent/components/membersEdit.vue
+163
-0
membersInfo.vue
src/views/report/talent/components/membersInfo.vue
+19
-0
scientificGainEdit.vue
src/views/report/talent/components/scientificGainEdit.vue
+0
-0
talentCreate.vue
src/views/report/talent/components/talentCreate.vue
+1
-1
talentEdit.vue
src/views/report/talent/components/talentEdit.vue
+91
-8
No files found.
src/views/report/talent/components/membersEdit.vue
0 → 100644
View file @
07d1e70e
<
template
>
<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=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
工作分工(限10字)
</div>
</div>
</a-col>
<a-col
:span=
"1"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
操作
</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"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.name'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.name"
:maxLength=
"50"
placeholder=
"姓名"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"2"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.sex'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<base-select
v-model=
"item.sex"
:type=
"16"
:isAll=
"true"
:width=
"100"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"2"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.birthday'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<a-date-picker
placeholder=
"请选择日期"
format=
"YYYY-MM-DD"
valueFormat=
"YYYY-MM-DD HH:mm:ss"
v-model=
"item.birthday"
style=
"width: 120px"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"3"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.spec'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<cascader-select
v-model=
"item.spec"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"5"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.title'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<para-multi-select
v-model=
"item.title"
:typeId=
"7"
:width=
"120"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"4"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.workUnit'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.workUnit"
:maxLength=
"50"
placeholder=
"单位"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"4"
>
<a-form-model-item
:prop=
"'membersList.' + index + '.projWork'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.projWork"
:maxLength=
"100"
placeholder=
"项目分工"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"1"
>
<div
class=
"special-middle"
>
<a-popconfirm
title=
"确定要删除吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteMemberArray(item)"
>
<a-button
type=
"link"
size=
"small"
>
删除
</a-button>
</a-popconfirm>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center"
>
<div
class=
"special-middle"
>
<a-button
type=
"dashed"
style=
"width: 20%"
@
click=
"addMemberArray()"
>
<a-icon
type=
"plus"
/>
添加
<span
style=
"color:red;margin-left:10px"
></span>
</a-button>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<div
class=
"special-middle"
style=
"color:red;"
>
注:“申报人所在团队主要人员”应为申报人所在的学科人员
</div>
</a-col>
</a-row>
</div>
</
template
>
<
script
>
import
cascaderSelect
from
'@/views/components/common/cascaderSelect'
const
Member
=
{
id
:
null
,
talentId
:
null
,
name
:
null
,
sex
:
null
,
birthday
:
null
,
spec
:
null
,
title
:
null
,
workUnit
:
null
,
projWork
:
null
,
remark
:
null
,
showIndex
:
null
,
}
export
default
{
name
:
"membersEdit"
,
components
:
{
cascaderSelect
},
props
:
{
membersList
:
{
type
:
Array
,
default
:
()
=>
{
return
[{
...
Member
}];
},
}
},
data
()
{
return
{};
},
created
()
{
},
methods
:
{
addMemberArray
()
{
const
newItem
=
{
...
Member
,
showIndex
:
this
.
membersList
.
length
+
1
}
this
.
membersList
.
push
(
newItem
)
},
deleteMemberArray
(
item
)
{
let
index
=
this
.
membersList
.
indexOf
(
item
)
if
(
index
!==
-
1
)
{
this
.
membersList
.
splice
(
index
,
1
)
}
}
},
};
</
script
>
src/views/report/talent/components/membersInfo.vue
0 → 100644
View file @
07d1e70e
<
template
>
<div></div>
</
template
>
<
script
>
export
default
{
name
:
"membersInfo"
,
props
:
{
type
:
Array
,
default
:
()
=>
{
return
[];
},
},
data
()
{
return
{};
},
methods
:
{},
};
</
script
>
src/views/report/talent/components/scientificGainEdit.vue
View file @
07d1e70e
This diff is collapsed.
Click to expand it.
src/views/report/talent/components/talentCreate.vue
View file @
07d1e70e
...
@@ -44,7 +44,7 @@ export default {
...
@@ -44,7 +44,7 @@ export default {
{
status
:
"process"
,
title
:
'申报人才基本情况'
,
showStatus
:
true
},
{
status
:
"process"
,
title
:
'申报人才基本情况'
,
showStatus
:
true
},
{
status
:
"wait"
,
title
:
'申报人才简历'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'申报人才简历'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'申报人才科研成绩'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'申报人才科研成绩'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'
科学研究规划及
团队人员名单'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'团队人员名单'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'经费预算及培养计划和目标'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'经费预算及培养计划和目标'
,
showStatus
:
false
},
{
status
:
"wait"
,
title
:
'附件'
,
showStatus
:
false
}
{
status
:
"wait"
,
title
:
'附件'
,
showStatus
:
false
}
],
],
...
...
src/views/report/talent/components/talentEdit.vue
View file @
07d1e70e
...
@@ -342,12 +342,19 @@
...
@@ -342,12 +342,19 @@
<div
v-if=
"stepsArray[1].showStatus"
>
<div
v-if=
"stepsArray[1].showStatus"
>
<resume-edit
:resumeList
.
sync=
"formData.resumeList"
ref=
"talentResume"
/>
<resume-edit
:resumeList
.
sync=
"formData.resumeList"
ref=
"talentResume"
/>
<a-row>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<a-col
:span=
"24"
style=
"border-top: 0px; text-align: center"
>
<div
class=
"main-title"
>
<div
class=
"main-title"
>
<span>
申报人才业务技术能力
</span>
<span>
申报人才业务技术能力
</span>
</div>
</div>
</a-col>
</a-col>
</a-row>
</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-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<a-col
:span=
"24"
class=
"bg-gray"
>
<a-form-model-item
prop=
"technicalSkill"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-form-model-item
prop=
"technicalSkill"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
...
@@ -357,9 +364,59 @@
...
@@ -357,9 +364,59 @@
</a-row>
</a-row>
</div>
</div>
<div
v-if=
"stepsArray[2].showStatus"
>
<div
v-if=
"stepsArray[2].showStatus"
>
<scientific-gain-edit
:scientificList
.
sync=
"formData.scientificList"
ref=
"talentScientific"
/>
<scientific-gain-edit
ref=
"talentScientific"
:scientificList
.
sync=
"formData.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"
class=
"bg-gray"
>
<a-form-model-item
prop=
"qualityTarget"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-textarea
placeholder=
"量化指标(限1000字)"
v-model=
"formData.qualityTarget"
:maxLength=
"1000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</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"
class=
"bg-gray"
>
<a-form-model-item
prop=
"researchCondition"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-textarea
placeholder=
"研究条件(限1000字)"
v-model=
"formData.researchCondition"
:maxLength=
"1000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</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"
class=
"bg-gray"
>
<a-form-model-item
prop=
"researchProgress"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-textarea
placeholder=
"研究进度(限1000字)"
v-model=
"formData.researchProgress"
:maxLength=
"1000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
</div>
</div>
<div
v-if=
"stepsArray[3].showStatus"
>
<div
v-if=
"stepsArray[3].showStatus"
>
<members-edit
:membersList
.
sync=
"formData.membersList"
/>
</div>
</div>
<div
v-if=
"stepsArray[4].showStatus"
>
<div
v-if=
"stepsArray[4].showStatus"
>
</div>
</div>
...
@@ -377,11 +434,12 @@ import paraCheck from '@/views/components/common/paraCheck'
...
@@ -377,11 +434,12 @@ import paraCheck from '@/views/components/common/paraCheck'
import
cascaderSelect
from
'@/views/components/common/cascaderSelect'
import
cascaderSelect
from
'@/views/components/common/cascaderSelect'
import
resumeEdit
from
'@/views/report/talent/components/resumeEdit'
import
resumeEdit
from
'@/views/report/talent/components/resumeEdit'
import
scientificGainEdit
from
'@/views/report/talent/components/scientificGainEdit'
import
scientificGainEdit
from
'@/views/report/talent/components/scientificGainEdit'
import
membersEdit
from
'@/views/report/talent/components/membersEdit'
export
default
{
export
default
{
name
:
"talentEdit"
,
name
:
"talentEdit"
,
components
:
{
components
:
{
paraRadio
,
paraCheck
,
cascaderSelect
,
resumeEdit
,
scientificGainEdit
paraRadio
,
paraCheck
,
cascaderSelect
,
resumeEdit
,
scientificGainEdit
,
membersEdit
},
},
props
:
{
props
:
{
value
:
{
value
:
{
...
@@ -431,6 +489,9 @@ export default {
...
@@ -431,6 +489,9 @@ export default {
mobile
:
null
,
mobile
:
null
,
fax
:
null
,
fax
:
null
,
technicalSkill
:
null
,
technicalSkill
:
null
,
qualityTarget
:
null
,
researchCondition
:
null
,
researchProgress
:
null
,
email
:
null
,
email
:
null
,
resumeList
:
[],
resumeList
:
[],
membersList
:
[],
membersList
:
[],
...
@@ -576,6 +637,7 @@ export default {
...
@@ -576,6 +637,7 @@ export default {
}
}
},
},
submit
(
step
,
next
)
{
submit
(
step
,
next
)
{
console
.
log
(
step
)
if
(
this
.
checkInfo
(
step
))
{
if
(
this
.
checkInfo
(
step
))
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
...
@@ -627,8 +689,10 @@ export default {
...
@@ -627,8 +689,10 @@ export default {
obj
=
{
id
:
null
,
technicalSkill
:
null
,
resumeList
:
[]
}
obj
=
{
id
:
null
,
technicalSkill
:
null
,
resumeList
:
[]
}
break
;
break
;
case
2
:
case
2
:
obj
=
{
id
:
null
,
qualityTarget
:
null
,
researchCondition
:
null
,
researchProgress
:
null
,
scientificList
:
[]
}
break
;
break
;
case
3
:
case
3
:
obj
=
{
id
:
null
,
membersList
:
[]
}
break
;
break
;
case
4
:
case
4
:
break
;
break
;
...
@@ -680,6 +744,23 @@ export default {
...
@@ -680,6 +744,23 @@ export default {
return
true
return
true
},
},
checkScientiticList
()
{
this
.
$refs
.
talentScientific
.
mergeScientificList
()
if
(
!!!
this
.
formData
.
scientificList
||
this
.
formData
.
scientificList
.
length
==
0
)
{
this
.
$message
.
error
(
'请至少添加一条申报人才科研成绩!'
)
return
false
}
return
true
},
checkMemberList
()
{
if
(
!!!
this
.
formData
.
membersList
||
this
.
formData
.
membersList
.
length
==
0
)
{
this
.
$message
.
error
(
'请至少添加一条申报人才团队人员信息!'
)
return
false
}
return
true
},
checkInfo
(
step
)
{
checkInfo
(
step
)
{
switch
(
step
)
{
switch
(
step
)
{
case
0
:
case
0
:
...
@@ -696,8 +777,10 @@ export default {
...
@@ -696,8 +777,10 @@ export default {
return
this
.
checkResumeList
()
return
this
.
checkResumeList
()
break
;
break
;
case
2
:
case
2
:
return
this
.
checkScientiticList
()
break
;
break
;
case
3
:
case
3
:
return
this
.
checkMemberList
()
break
;
break
;
case
4
:
case
4
:
break
;
break
;
...
...
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