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 () {