652 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			652 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <div v-loading="loading" class="form-container">
 | |
|     <div class="title-wrapper">
 | |
|       <p>Education (in chronological order)</p>
 | |
|       <el-button class="add" size="small" @click="handleAddEducation">Add</el-button>
 | |
|     </div>
 | |
|     <el-table
 | |
|       ref="educationTbl"
 | |
|       :data="educationList"
 | |
|       border
 | |
|       class="table"
 | |
|       size="small"
 | |
|     >
 | |
|       <el-table-column type="index" width="30" />
 | |
|       <el-table-column
 | |
|         prop="BeginDateStr"
 | |
|         label="Start"
 | |
|         min-width="55"
 | |
|         show-overflow-tooltip
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="EndDateStr"
 | |
|         label="End"
 | |
|         min-width="55"
 | |
|         show-overflow-tooltip
 | |
|       />
 | |
|       <el-table-column prop="Degree" label="Degree" min-width="70" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.DegreeCN?`${scope.row.Degree} / ${scope.row.DegreeCN}`:scope.row.Degree }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Major" label="Major" min-width="120" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column
 | |
|         prop="Organization"
 | |
|         label="Institution"
 | |
|         min-width="150"
 | |
|         show-overflow-tooltip
 | |
|       >
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.OrganizationCN?`${scope.row.Organization} / ${scope.row.OrganizationCN}`:scope.row.Organization }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="City" label="City" min-width="90" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Province" label="State/Province" min-width="90" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Country" label="Country" min-width="80" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column label="Operation" min-width="120">
 | |
|         <template slot-scope="scope">
 | |
|           <el-button type="text" size="small" @click="handleEducationEdit(scope.row)">Edit</el-button>
 | |
|           <el-button type="text" size="small" @click="handleEducationDelete(scope.row)">Delete</el-button>
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|     </el-table>
 | |
| 
 | |
|     <div class="title-wrapper" style="margin-top:40px;">
 | |
|       <p>Postgraduate Training (in chronological order)</p>
 | |
|       <el-button class="add" size="small" @click="handleAddPostgraduate">Add</el-button>
 | |
|     </div>
 | |
|     <el-table
 | |
|       ref="postgraduateTbl"
 | |
|       :data="postgraduateList"
 | |
|       border
 | |
|       class="table"
 | |
|       size="small"
 | |
|     >
 | |
|       <el-table-column type="index" width="30" />
 | |
|       <el-table-column
 | |
|         prop="BeginDateStr"
 | |
|         label="Start"
 | |
|         min-width="55"
 | |
|         show-overflow-tooltip
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="EndDateStr"
 | |
|         label="End"
 | |
|         min-width="55"
 | |
|         show-overflow-tooltip
 | |
|       />
 | |
|       <el-table-column prop="Training" label="Training" min-width="70" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.TrainingCN?`${scope.row.Training} / ${scope.row.TrainingCN}`:scope.row.Training }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column
 | |
|         prop="Major"
 | |
|         label="Specialty/Research Field"
 | |
|         min-width="155"
 | |
|         show-overflow-tooltip
 | |
|       >
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Hospital" label="Hospital" min-width="120" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.HospitalCN?`${scope.row.Hospital} / ${scope.row.HospitalCN}`:scope.row.Hospital }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="School" label="University" min-width="120" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.SchoolCN?`${scope.row.School} / ${scope.row.SchoolCN}`:scope.row.School }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="City" label="City" min-width="100" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Province" label="State/Province" min-width="100" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column prop="Country" label="Country" min-width="90" show-overflow-tooltip>
 | |
|         <template slot-scope="scope">
 | |
|           {{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|       <el-table-column label="Operation" min-width="120">
 | |
|         <template slot-scope="scope">
 | |
|           <el-button type="text" size="small" @click="handlePostgraduateEdit(scope.row)">Edit</el-button>
 | |
|           <el-button type="text" size="small" @click="handlePostgraduateDelete(scope.row)">Delete</el-button>
 | |
|         </template>
 | |
|       </el-table-column>
 | |
|     </el-table>
 | |
| 
 | |
|     <el-dialog
 | |
|       v-if="educationDialogVisible"
 | |
|       :title="educationDialogTitle"
 | |
|       :visible.sync="educationDialogVisible"
 | |
|       width="40%"
 | |
|       :close-on-click-modal="false"
 | |
|     >
 | |
|       <el-form v-if="educationDialogVisible" ref="educationForm" size="small" label-width="120px" :model="educationForm" :rules="educationRules">
 | |
|         <el-form-item label="Start" prop="BeginDate">
 | |
|           <el-date-picker
 | |
|             v-model="educationForm.BeginDate"
 | |
|             type="month"
 | |
|             placeholder="select date"
 | |
|             value-format="yyyy-MM"
 | |
|             format="yyyy-MM"
 | |
|             size="small"
 | |
|             :picker-options="beginPickerOption"
 | |
|           />
 | |
|         </el-form-item>
 | |
|         <el-form-item label="End" prop="EndDate">
 | |
|           <el-date-picker
 | |
|             v-model="educationForm.EndDate"
 | |
|             type="month"
 | |
|             placeholder="select date"
 | |
|             value-format="yyyy-MM"
 | |
|             format="yyyy-MM"
 | |
|             size="small"
 | |
|             :picker-options="endpickerOption"
 | |
|           />
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Degree" prop="Degree">
 | |
|           <el-select v-model="educationForm.Degree" placeholder="Please select" size="small">
 | |
|             <el-option
 | |
|               v-for="item in degreeOptions"
 | |
|               :key="item.value"
 | |
|               :label="item.value"
 | |
|               :value="item.value"
 | |
|             />
 | |
|           </el-select>
 | |
|         </el-form-item>
 | |
| 
 | |
|         <el-form-item label="Major" prop="Major">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.Major" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.MajorCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Institution" prop="Organization">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.Organization" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.OrganizationCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="City" prop="City">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.City" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.CityCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
| 
 | |
|         </el-form-item>
 | |
|         <el-form-item label="State/Province" prop="Province">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.Province" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.ProvinceCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Country" prop="Country">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.Country" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="educationForm.CountryCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|       </el-form>
 | |
|       <span slot="footer" class="dialog-footer">
 | |
|         <el-button type="primary" size="small" :loading="isDisabled" @click="handleEducationSave">Save</el-button>
 | |
|       </span>
 | |
|     </el-dialog>
 | |
| 
 | |
|     <el-dialog
 | |
|       v-if="postgraduateDialogVisible"
 | |
|       :title="postgraduateDialogTitle"
 | |
|       :visible.sync="postgraduateDialogVisible"
 | |
|       width="40%"
 | |
|       :close-on-click-modal="false"
 | |
|     >
 | |
|       <el-form v-if="postgraduateDialogVisible" ref="postgraduateForm" size="small" label-width="190px" :model="postgraduateForm" :rules="postgraduateRules">
 | |
|         <el-form-item label="Start" prop="BeginDate">
 | |
|           <el-date-picker
 | |
|             v-model="postgraduateForm.BeginDate"
 | |
|             type="month"
 | |
|             placeholder="select date"
 | |
|             value-format="yyyy-MM"
 | |
|             format="yyyy-MM"
 | |
|             :picker-options="postgraduateBeginPickerOption"
 | |
|             size="small"
 | |
|           />
 | |
|         </el-form-item>
 | |
|         <el-form-item label="End" prop="EndDate">
 | |
|           <el-date-picker
 | |
|             v-model="postgraduateForm.EndDate"
 | |
|             type="month"
 | |
|             placeholder="select date"
 | |
|             value-format="yyyy-MM"
 | |
|             format="yyyy-MM"
 | |
|             :picker-options="postgraduateEndpickerOption"
 | |
|             size="small"
 | |
|           />
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Training" prop="Training">
 | |
|           <el-select v-model="postgraduateForm.Training" placeholder="Please select" size="small">
 | |
|             <el-option
 | |
|               v-for="item in TrainingOptions"
 | |
|               :key="item.value"
 | |
|               :label="item.label"
 | |
|               :value="item.value"
 | |
|             />
 | |
|           </el-select>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Specialty / Research Field" prop="Major">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.Major" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.MajorCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Hospital" prop="Hospital">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.Hospital" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.HospitalCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="University" prop="School">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.School" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.SchoolCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
| 
 | |
|         <el-form-item label="City" prop="City">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.City" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.CityCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="State/Province" prop="Province">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.Province" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.ProvinceCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="Country" prop="Country">
 | |
|           <el-row type="flex" justify="space-between">
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.Country" placeholder="Please specify in English" size="small" />
 | |
|             </el-col>
 | |
|             <el-col :span="11">
 | |
|               <el-input v-model="postgraduateForm.CountryCN" placeholder="请用中文注明" size="small" />
 | |
|             </el-col>
 | |
|           </el-row>
 | |
|         </el-form-item>
 | |
|       </el-form>
 | |
|       <span slot="footer" class="dialog-footer">
 | |
|         <el-button size="small" type="primary" :loading="isDisabled" @click="handlePostgraduateSave">Save</el-button>
 | |
|       </span>
 | |
|     </el-dialog>
 | |
|   </div>
 | |
| </template>
 | |
| <script>
 | |
| import { getEducation, addOrUpdateEducationInfo, deleteEducationInfo, addOrUpdatePostgraduateInfo, deletePostgraduateInfo } from '@/api/reviewers'
 | |
| const getEducationDefault = () => {
 | |
|   return {
 | |
|     Id: '',
 | |
|     DoctorId: '',
 | |
|     BeginDate: '',
 | |
|     EndDate: '',
 | |
|     Degree: '',
 | |
|     Major: '',
 | |
|     MajorCN: '',
 | |
|     Organization: '',
 | |
|     OrganizationCN: '',
 | |
|     City: '',
 | |
|     CityCN: '',
 | |
|     Province: '',
 | |
|     ProvinceCN: '',
 | |
|     Country: '',
 | |
|     CountryCN: ''
 | |
|   }
 | |
| }
 | |
| const getPostgraduateDefault = () => {
 | |
|   return {
 | |
|     Id: '',
 | |
|     DoctorId: '',
 | |
|     BeginDate: '',
 | |
|     EndDate: '',
 | |
|     Training: '',
 | |
|     Major: '',
 | |
|     MajorCN: '',
 | |
|     Hospital: '',
 | |
|     HospitalCN: '',
 | |
|     School: '',
 | |
|     SchoolCN: '',
 | |
|     City: '',
 | |
|     CityCN: '',
 | |
|     Province: '',
 | |
|     ProvinceCN: '',
 | |
|     Country: '',
 | |
|     CountryCN: ''
 | |
|   }
 | |
| }
 | |
| export default {
 | |
|   name: 'EducationTraining',
 | |
|   data() {
 | |
|     return {
 | |
|       educationList: [],
 | |
|       postgraduateList: [],
 | |
|       educationDialogTitle: '',
 | |
|       educationForm: getEducationDefault(),
 | |
|       educationRules: {
 | |
|         BeginDate: [{ required: true, message: 'Please select a start date', trigger: 'blur' }],
 | |
|         EndDate: [{ required: true, message: 'Please select a valid date', trigger: 'blur' }],
 | |
|         Degree: [
 | |
|           { required: true, message: 'Please enter the degree', trigger: 'blur' },
 | |
|           { max: 100, message: 'The maximum length is 100' }
 | |
|         ],
 | |
|         Major: [
 | |
|           { required: true, message: 'Please enter the major', trigger: 'blur' },
 | |
|           { max: 100, message: 'The maximum length is 100' }
 | |
|         ],
 | |
|         Organization: [
 | |
|           { required: true, message: 'Please enter the institution', trigger: 'blur' },
 | |
|           { max: 100, message: 'The maximum length is 100' }
 | |
|         ],
 | |
|         City: [
 | |
|           { required: true, message: 'Please enter the city', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ],
 | |
|         Province: [
 | |
|           { required: true, message: 'Please enter the state/province', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ],
 | |
|         Country: [
 | |
|           { required: true, message: 'Please enter the country', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ]
 | |
|       },
 | |
|       educationDialogVisible: false,
 | |
|       degreeOptions: [{ value: 'Bachelor' }, { value: 'Master' }, { value: 'Doctorate' }],
 | |
|       TrainingOptions: [{ value: 'Residency' }, { value: 'Fellowship' }, { value: 'Post-Doc' }, { value: 'Visiting Scholar' }],
 | |
|       beginPickerOption: {
 | |
|         disabledDate: time => {
 | |
|           if (this.educationForm.EndDate) {
 | |
|             return time.getTime() > new Date(this.educationForm.EndDate).getTime()
 | |
|           } else {
 | |
|             return time.getTime() > Date.now()
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       endpickerOption: {
 | |
|         disabledDate: time => {
 | |
|           if (this.educationForm.BeginDate) {
 | |
|             return time.getTime() > Date.now() || time.getTime() <= new Date(this.educationForm.BeginDate).getTime()
 | |
|           } else {
 | |
|             return time.getTime() > Date.now()
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       postgraduateDialogTitle: '',
 | |
|       postgraduateDialogVisible: false,
 | |
|       postgraduateForm: getPostgraduateDefault(),
 | |
|       postgraduateRules: {
 | |
|         BeginDate: [{ required: true, message: 'Please select a start date', trigger: 'blur' }],
 | |
|         EndDate: [{ required: true, message: 'Please select a valid date', trigger: 'blur' }],
 | |
|         Training: [
 | |
|           { required: true, message: 'Please enter the degree', trigger: 'blur' },
 | |
|           { max: 100, message: 'The maximum length is 100' }
 | |
|         ],
 | |
|         Major: [
 | |
|           { required: true, message: 'Please enter the major', trigger: 'blur' },
 | |
|           { max: 100, message: 'The maximum length is 100' }
 | |
|         ],
 | |
|         City: [
 | |
|           { required: true, message: 'Please enter the city', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ],
 | |
|         Province: [
 | |
|           { required: true, message: 'Please enter the state/province', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ],
 | |
|         Country: [
 | |
|           { required: true, message: 'Please enter the country', trigger: 'blur' },
 | |
|           { max: 50, message: 'The maximum length is 50' }
 | |
|         ]
 | |
|       },
 | |
|       postgraduateBeginPickerOption: {
 | |
|         disabledDate: time => {
 | |
|           if (this.postgraduateForm.EndDate) {
 | |
|             return time.getTime() > new Date(this.postgraduateForm.EndDate).getTime()
 | |
|           } else {
 | |
|             return time.getTime() > Date.now()
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       postgraduateEndpickerOption: {
 | |
|         disabledDate: time => {
 | |
|           if (this.postgraduateForm.BeginDate) {
 | |
|             return time.getTime() > Date.now() || time.getTime() <= new Date(this.postgraduateForm.BeginDate).getTime()
 | |
|           } else {
 | |
|             return time.getTime() > Date.now()
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       isDisabled: false,
 | |
|       loading: false
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|     this.initPage()
 | |
|   },
 | |
|   methods: {
 | |
|     initPage() {
 | |
|       const id = this.$route.query.Id
 | |
|       if (id) {
 | |
|         this.loading = true
 | |
|         getEducation(id).then(res => {
 | |
|           this.educationList = res.Result.EducationList
 | |
|           this.postgraduateList = res.Result.PostgraduateList
 | |
|           this.loading = false
 | |
|         }).catch(() => {
 | |
|           this.loading = false
 | |
|         })
 | |
|       }
 | |
|     },
 | |
|     handleAddEducation() {
 | |
|       this.educationDialogTitle = 'New'
 | |
|       this.educationDialogVisible = true
 | |
|       Object.assign(this.educationForm, getEducationDefault())
 | |
|     },
 | |
|     handleEducationEdit(row) {
 | |
|       // eslint-disable-next-line no-unused-vars
 | |
|       const { BeginDateStr, EndDateStr, ...param } = row
 | |
|       this.educationDialogTitle = 'Edit'
 | |
|       this.educationDialogVisible = true
 | |
|       this.educationForm = param
 | |
|     },
 | |
| 
 | |
|     handleEducationSave() {
 | |
|       this.$refs.educationForm.validate(valid => {
 | |
|         if (valid) {
 | |
|           this.isDisabled = true
 | |
|           this.educationForm.DoctorId = this.$route.query.Id
 | |
| 
 | |
|           if (this.educationForm.Degree === 'Bachelor') {
 | |
|             this.educationForm.DegreeCN = '学士'
 | |
|           } else if (this.educationForm.Degree === 'Master') {
 | |
|             this.educationForm.DegreeCN = '硕士'
 | |
|           } else if (this.educationForm.Degree === 'Doctorate') {
 | |
|             this.educationForm.DegreeCN = '博士'
 | |
|           }
 | |
|           addOrUpdateEducationInfo(this.educationForm).then(res => {
 | |
|             this.isDisabled = false
 | |
|             this.educationDialogVisible = false
 | |
|             this.initPage()
 | |
|             if (this.educationForm.Id) {
 | |
|               this.$message({
 | |
|                 message: 'Updated successfully',
 | |
|                 type: 'success'
 | |
|               })
 | |
|             } else {
 | |
|               this.$message({
 | |
|                 message: 'Addedd successfully',
 | |
|                 type: 'success'
 | |
|               })
 | |
|             }
 | |
| 
 | |
|             this.$refs['educationForm'].resetFields()
 | |
|           })
 | |
|             .catch(() => {
 | |
|               this.isDisabled = false
 | |
|             })
 | |
|         }
 | |
|       })
 | |
|     },
 | |
|     handleEducationDelete(row) {
 | |
|       this.$confirm('Confirm to delete?', {
 | |
|         type: 'warning',
 | |
|         distinguishCancelAndClose: true,
 | |
|         confirmButtonText: 'OK',
 | |
|         cancelButtonText: 'Cancel'
 | |
|       })
 | |
|         .then(() => {
 | |
|           deleteEducationInfo(row.Id)
 | |
|             .then(res => {
 | |
|               this.educationList.splice(this.educationList.findIndex(item => item.Id === row.Id), 1)
 | |
|               this.$message.success('Deleted successfully !')
 | |
|             })
 | |
|         })
 | |
|         .catch(action => {})
 | |
|     },
 | |
| 
 | |
|     handleAddPostgraduate() {
 | |
|       this.postgraduateDialogTitle = 'New'
 | |
|       this.postgraduateDialogVisible = true
 | |
|       Object.assign(this.postgraduateForm, getPostgraduateDefault())
 | |
|     },
 | |
|     handlePostgraduateEdit(row) {
 | |
|       // eslint-disable-next-line no-unused-vars
 | |
|       const { BeginDateStr, EndDateStr, ...param } = row
 | |
|       this.postgraduateDialogTitle = 'Edit'
 | |
|       this.postgraduateDialogVisible = true
 | |
|       this.postgraduateForm = param
 | |
|     },
 | |
|     handlePostgraduateSave() {
 | |
|       this.$refs.postgraduateForm.validate(valid => {
 | |
|         if (valid) {
 | |
|           this.isDisabled = true
 | |
|           this.postgraduateForm.DoctorId = this.$route.query.Id
 | |
| 
 | |
|           if (this.postgraduateForm.Training === 'Residency') {
 | |
|             this.postgraduateForm.TrainingCN = '规培'
 | |
|           } else if (this.postgraduateForm.Training === 'Fellowship') {
 | |
|             this.postgraduateForm.TrainingCN = '专科培训'
 | |
|           } else if (this.postgraduateForm.Training === 'Post-Doc') {
 | |
|             this.postgraduateForm.TrainingCN = '博士后'
 | |
|           } else if (this.postgraduateForm.Training === 'Visiting Scholar') {
 | |
|             this.postgraduateForm.TrainingCN = '访问学者'
 | |
|           }
 | |
|           addOrUpdatePostgraduateInfo(this.postgraduateForm).then(res => {
 | |
|             this.isDisabled = false
 | |
|             this.postgraduateDialogVisible = false
 | |
|             this.initPage()
 | |
|             if (this.postgraduateForm.Id) {
 | |
|               this.$message({
 | |
|                 message: 'Updated successfully',
 | |
|                 type: 'success'
 | |
|               })
 | |
|             } else {
 | |
|               this.$message({
 | |
|                 message: 'Addedd successfully',
 | |
|                 type: 'success'
 | |
|               })
 | |
|             }
 | |
| 
 | |
|             this.$refs['postgraduateForm'].resetFields()
 | |
|           })
 | |
|             .catch(err => {
 | |
|               this.isDisabled = false
 | |
|               console.log(err)
 | |
|             })
 | |
|         }
 | |
|       })
 | |
|     },
 | |
|     handlePostgraduateDelete(row) {
 | |
|       this.$confirm('Confirm to delete?', {
 | |
|         type: 'warning',
 | |
|         distinguishCancelAndClose: true,
 | |
|         confirmButtonText: 'OK',
 | |
|         cancelButtonText: 'Cancel'
 | |
|       })
 | |
|         .then(() => {
 | |
|           deletePostgraduateInfo(row.Id)
 | |
|             .then(res => {
 | |
|               this.postgraduateList.splice(this.postgraduateList.findIndex(item => item.Id === row.Id), 1)
 | |
|               this.$message.success('Deleted successfully !')
 | |
|             })
 | |
|         })
 | |
|         .catch(action => {})
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 |