Commit 07d1e70e authored by 徐俊's avatar 徐俊

xujun

parent 7005264d
<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>
<template>
<div></div>
</template>
<script>
export default {
name: "membersInfo",
props: {
type: Array,
default: () => {
return [];
},
},
data() {
return {};
},
methods: {},
};
</script>
...@@ -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 }
], ],
......
...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment