diff --git a/src/views/report/talent/Index.vue b/src/views/report/talent/Index.vue index dfcab8f15dc8b95212347fa5065f376f8854d3e2..dfcec735e06ce963fd496989135df210cc00e255 100644 --- a/src/views/report/talent/Index.vue +++ b/src/views/report/talent/Index.vue @@ -39,8 +39,8 @@ <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> </a-modal> - <a-modal v-model="visibleView" title="查看" width="700px" :footer="null" destroyOnClose> - <talent-info v-model="id"></talent-info> + <a-modal v-model="visibleView" title="查看" width="94%" :footer="null" :dialog-style="{ top: '8%' }" destroyOnClose :maskClosable="false"> + <talent-view v-model="id" @close="closeWindow"></talent-view> </a-modal> </div> </template> @@ -48,12 +48,12 @@ <script> import { isEmptyParams, filterExportExcelData, tableColumnsName } from "@/views/utils/common" import talentCreate from "@/views/report/talent/components/talentCreate" -import talentInfo from "@/views/report/talent/components/talentInfo" +import talentView from "@/views/report/talent/components/talentView" export default { name: "reportTalent", components: { - talentCreate, talentInfo + talentCreate, talentView }, data() { return { diff --git a/src/views/report/talent/components/budgetInfo.vue b/src/views/report/talent/components/budgetInfo.vue index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ccc2ffb364142f842953099c4f9557a317271c60 100644 --- a/src/views/report/talent/components/budgetInfo.vue +++ b/src/views/report/talent/components/budgetInfo.vue @@ -0,0 +1,257 @@ +<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> diff --git a/src/views/report/talent/components/fileInfo.vue b/src/views/report/talent/components/fileInfo.vue index 138d7f5c5e8c358d0a47a238a6cc2f0de5c5a112..4a5d6d4e4d66f9d54c6d39ede28c262f7aca8b05 100644 --- a/src/views/report/talent/components/fileInfo.vue +++ b/src/views/report/talent/components/fileInfo.vue @@ -1,17 +1,109 @@ <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="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> </template> <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 { name: "fileInfo", + components: { + documentView, + }, + props: { + fileList: { + type: Array, + default: () => { + return [{ ...File }]; + }, + }, + }, data() { 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> \ No newline at end of file diff --git a/src/views/report/talent/components/membersInfo.vue b/src/views/report/talent/components/membersInfo.vue index 1bba29ccaa4ba20804cb8cbe4f46820a1523ca38..d9bb0d2e4634dd867570e89389d9c2747997aaae 100644 --- a/src/views/report/talent/components/membersInfo.vue +++ b/src/views/report/talent/components/membersInfo.vue @@ -1,19 +1,115 @@ <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> <script> +import moment from 'moment' + export default { name: "membersInfo", props: { - type: Array, - default: () => { - return []; - }, + membersList: { + type: Array, + default: () => { + return [{ ...Member }]; + }, + } }, data() { return {}; }, - methods: {}, + methods: { + moment, + }, }; </script> diff --git a/src/views/report/talent/components/resumeInfo.vue b/src/views/report/talent/components/resumeInfo.vue index 03121beb27b36b2b8e8cfe194e35d201a5138516..f971578310ed5edd87b47a2cec8573a282046b4a 100644 --- a/src/views/report/talent/components/resumeInfo.vue +++ b/src/views/report/talent/components/resumeInfo.vue @@ -1,14 +1,164 @@ <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="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> </template> <script> +import moment from 'moment' + export default { name: "resumeInfo", props: { - budget: { + resumeList: { type: Array, default: () => { return []; @@ -17,11 +167,59 @@ export default { }, data() { return { - + educationList: [], + studyList: [], + workList: [], }; + }, + created() { + }, 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> \ No newline at end of file diff --git a/src/views/report/talent/components/scientificGainInfo.vue b/src/views/report/talent/components/scientificGainInfo.vue index cd863bcb4edd271049e1f5c7bd360f408f157f7b..d539857a38478d65bff71fce8bbb6649dd59e294 100644 --- a/src/views/report/talent/components/scientificGainInfo.vue +++ b/src/views/report/talent/components/scientificGainInfo.vue @@ -1,22 +1,331 @@ <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> <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 { name: "scientificGainInfo", + props: { + scientificList: { + type: Array, + default: () => { + return []; + }, + }, + }, data() { - return {}; + return { + gainList: [], + thesisList: [], + appearList: [], + courseList: [], + }; }, created() { }, 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> \ No newline at end of file diff --git a/src/views/report/talent/components/talentInfo.vue b/src/views/report/talent/components/talentInfo.vue index 9a6589731696451df0b98c63ee6f5dddbf5e8874..26a0df3d7cb14ba89e5f0e45cdfba259c7be1058 100644 --- a/src/views/report/talent/components/talentInfo.vue +++ b/src/views/report/talent/components/talentInfo.vue @@ -1,17 +1,497 @@ <template> - <div> - + <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> + {{ 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> </template> <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 { name: "talentInfo", + components: { + paraCheck, resumeInfo, scientificGainInfo, membersInfo, budgetInfo, fileInfo, + }, + props: { + value: { + type: Object, + default: () => { + return null + } + }, + tabsData: { + type: Array, + default: () => { + return [] + } + }, + }, data() { 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: { - + moment, toTextarea, } }; </script> \ No newline at end of file diff --git a/src/views/report/talent/components/talentView.vue b/src/views/report/talent/components/talentView.vue index 65be1bb17173196ab35cccbbcf44e174d5483a59..a4670dbdbd184900bbe00e46159f80c5f898863a 100644 --- a/src/views/report/talent/components/talentView.vue +++ b/src/views/report/talent/components/talentView.vue @@ -44,16 +44,82 @@ export default { { title: '项目审核记录', key: '7', isShow: true }, ], 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, }; }, created() { - + this.getTalentApplyById() }, 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 () {