diff --git a/src/api/index.js b/src/api/index.js
index aad1bc6110d67faa00ef2c0c2a2dce7699244387..0c4d9060e3bc59d84895356188e4b954545715b7 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -476,6 +476,9 @@ export default {
         getCount (params) {
             return fetch(`/v1/science-admin/com-talent-apply/getCount`, params)
         },
+        save (params) {
+            return fetch(`/v1/science-admin/com-talent-apply/save`, params, 'post', 'json')
+        }
     },
     task: {
         getListByPage (params) {
diff --git a/src/views/report/talent/components/talentEdit.vue b/src/views/report/talent/components/talentEdit.vue
index f83d2282f8301db6eb3c6e33cafc9a7a2acd4ca0..5f8c346811c38195f3e7de46106c5cebfe492bed 100644
--- a/src/views/report/talent/components/talentEdit.vue
+++ b/src/views/report/talent/components/talentEdit.vue
@@ -388,7 +388,10 @@ export default {
   data() {
     return {
       formData: {
+        id: null, 
+        reportYear: null,
         certId: null,
+        personId: null,
         personName: null,
         nation: null,
         sex: null,
@@ -409,6 +412,7 @@ export default {
         telephone: null,
         fax: null,
         email: null,
+        resumeList: [],
       },
       rules: {
         certId: [{ required: true, message: '*', trigger: 'blur' },],
@@ -419,12 +423,12 @@ export default {
         degree: [{ required: true, message: '*', trigger: 'change' },],
         degreeTime: [{ required: true, message: '*', trigger: 'change' },],
         degreeUnit: [{ required: true, message: '*', trigger: 'blur' },],
-        spec: [{ required: false, message: '*', trigger: 'change' }],
-        graduateTeacher: [{ required: false, message: '*', trigger: 'change' }],
+        spec: [{ required: true, message: '*', trigger: 'change' }],
+        graduateTeacher: [{ required: true, message: '*', trigger: 'change' }],
         title: [{ required: true, message: '*', trigger: 'change' },],
         politicalParty: [{ required: true, message: '*', trigger: 'blur' },],
-        duty: [{ required: false, message: '*', trigger: 'change' }],
-        talentType: [{ required: false, message: '*', trigger: 'change' }],
+        duty: [{ required: true, message: '*', trigger: 'change' }],
+        talentType: [{ required: true, message: '*', trigger: 'change' }],
         honoraryTitle: [{ required: true, message: '*', trigger: 'blur' },],
         holdPost1: [{ required: true, message: '*', trigger: 'blur' },],
         holdPost2: [{ required: true, message: '*', trigger: 'blur' },],
@@ -447,8 +451,8 @@ export default {
       this.loading = true
       this.$api.person.getPersonByCertId({ certId: this.formData.certId }).then(({ data = {} }) => {
         if (data) {
-          console.log(data)
           this.formData = data
+          this.formData.personId = data.id
         }
         this.loading = false
       }).catch(() => { this.loading = false })
@@ -488,9 +492,10 @@ export default {
             let state = obj.projState
             if (state != 30 && step == 5)
               obj.projState = 10
+            
             let pars = isEmptyParams(obj)
             let par = { ...pars }
-            this.$api.project.save(par).then(({ data = {} }) => {
+            this.$api.talent.save(par).then(({ data = {} }) => {
               if (data) {
                 this.formData.id = data
                 if (next) {
@@ -523,6 +528,7 @@ export default {
           }
           break;
         case 1:
+          obj = { id: null, resumeList: [] }
           break;
         case 2:
           break;
@@ -533,9 +539,18 @@ export default {
         case 5:
           break;
       }
+      
       Object.keys(obj).forEach(key => {
-        obj[key] = this.formData[key];
+        let value = this.formData[key]
+        
+        if ((key === 'talentType' || key === 'graduateTeacher') && Array.isArray(value)) {
+          obj[key] = value.join(',')
+        } else {
+          obj[key] = value
+        }
       })
+      
+      console.log('getObj处理后的数据:', obj)
       return obj
     },
     checkInfo (step) {
@@ -567,6 +582,13 @@ export default {
       if (!!this.value) {
         this.$api.talent.getTalentInfoById({ 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.$emit('onStepChange', { step: 0, state: data.completeStatus })
             this.loadList()
diff --git a/src/views/utils/common.js b/src/views/utils/common.js
index a397bd5966bca9502d1b1a9d5e4b387404335869..4620f1aaab2348a6a72fb8b1a1473cdc3894f1d3 100644
--- a/src/views/utils/common.js
+++ b/src/views/utils/common.js
@@ -1,4 +1,3 @@
-
 import moment from 'moment'
 import storeInfo from '../../store/index'
 import router from "../../router"