Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
0633e775d4
|
@ -214,3 +214,19 @@ export function getPatientList_Export(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
export function getCommonEvaluationList_Export(data) {
|
||||
return requestDownload({
|
||||
url: `/ExcelExport/getCommonEvaluationList_Export`,
|
||||
responseType: 'blob',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function getCommonJudgeRatioList_Export(data) {
|
||||
return requestDownload({
|
||||
url: `/ExcelExport/getCommonJudgeRatioList_Export`,
|
||||
responseType: 'blob',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -298,3 +298,27 @@ export function addOrUpdateDoctorBasicInfoAndEmployment(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
// 新增或编辑概述
|
||||
export function updateGneralSituation(param) {
|
||||
return request({
|
||||
url: `/Doctor/updateGneralSituation`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
// 新增或编辑支付方式
|
||||
export function updatePaymentMode(param) {
|
||||
return request({
|
||||
url: `/Doctor/updatePaymentMode`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
// 新增或编辑Publication
|
||||
export function addOrUpdateResearchPublicationInfo(param) {
|
||||
return request({
|
||||
url: `/ResearchPublication/addOrUpdateResearchPublicationInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
|
@ -37,8 +37,11 @@
|
|||
min-width="70"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope" v-if="$fd('Degree', scope.row.Degree)">
|
||||
{{ $fd('Degree', scope.row.Degree) }}
|
||||
<template
|
||||
slot-scope="scope"
|
||||
v-if="$fd('Degree', Number(scope.row.Degree))"
|
||||
>
|
||||
{{ $fd('Degree', Number(scope.row.Degree)) }}
|
||||
</template>
|
||||
<template slot-scope="scope" v-else>
|
||||
{{
|
||||
|
@ -180,7 +183,13 @@
|
|||
min-width="70"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<template
|
||||
slot-scope="scope"
|
||||
v-if="$fd('Training', Number(scope.row.Training))"
|
||||
>
|
||||
{{ $fd('Training', Number(scope.row.Training)) }}
|
||||
</template>
|
||||
<template slot-scope="scope" v-else>
|
||||
{{
|
||||
scope.row.TrainingCN
|
||||
? `${scope.row.Training} / ${scope.row.TrainingCN}`
|
||||
|
|
|
@ -331,6 +331,25 @@ import BaseModel from '@/components/BaseModel'
|
|||
export default {
|
||||
name: 'clinicalTrials',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
|
|
|
@ -2,12 +2,18 @@
|
|||
<div class="continuingTraining">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:continuingTraining:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
@click.stop="openEdit"
|
||||
:disabled="!reviewerId"
|
||||
>
|
||||
{{ $t('common:button:add') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:data="DATA"
|
||||
v-loading="loading"
|
||||
style="width: 100%"
|
||||
:header-cell-style="{ background: '#eee', color: '#606266' }"
|
||||
>
|
||||
|
@ -15,33 +21,56 @@
|
|||
prop="date"
|
||||
:label="$t('curriculumVitae:continuingTraining:table:time')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.BeginDateStr }}-{{ scope.row.EndDateStr }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
prop="Training"
|
||||
:label="$t('curriculumVitae:continuingTraining:table:type')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ $fd('Training', Number(scope.row.Training)) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
prop="Major"
|
||||
:label="$t('curriculumVitae:continuingTraining:table:direction')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ isEN ? scope.row.Major : scope.row.MajorCN }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
prop="school"
|
||||
:label="$t('curriculumVitae:continuingTraining:table:school')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ isEN ? scope.row.School : scope.row.SchoolCN }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
prop="City"
|
||||
:label="$t('curriculumVitae:continuingTraining:table:city')"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="date" :label="$t('common:action:action')">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit(scope)">
|
||||
<span>{{ isEN ? scope.row.City : scope.row.CityCN }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('common:action:action')">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
@click.stop="openEdit(scope.row)"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
@click.stop="handleDel(scope.row)"
|
||||
>
|
||||
{{ $t('common:button:delete') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -59,25 +88,28 @@
|
|||
>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:time')"
|
||||
prop="InternationalizationType"
|
||||
prop="BeginDate"
|
||||
>
|
||||
<el-date-picker
|
||||
clearable
|
||||
v-model="daterange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
:range-separator="$t('curriculumVitae:daterange:rangeSeparator')"
|
||||
:start-placeholder="$t('curriculumVitae:daterange:startTime')"
|
||||
:end-placeholder="$t('curriculumVitae:daterange:endTime')"
|
||||
@change="changeTimeList"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:type')"
|
||||
prop="InternationalizationType"
|
||||
prop="Training"
|
||||
>
|
||||
<el-select v-model="form.Sex" clearable placeholder="">
|
||||
<el-select v-model="form.Training" clearable placeholder="">
|
||||
<el-option
|
||||
v-for="item in $d.sex"
|
||||
v-for="item in $d.Training"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
|
@ -86,46 +118,56 @@
|
|||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:direction')"
|
||||
prop="InternationalizationType"
|
||||
prop="Major"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="12" style="margin-right: 5px">
|
||||
<el-input
|
||||
clearable
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:continuingTraining:placeholder:direction'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-input
|
||||
clearable
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:continuingTraining:placeholder:directionEN'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-input
|
||||
style="width: 97%"
|
||||
v-model="form.Major"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:directionEN')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="MajorCN">
|
||||
<el-input
|
||||
style="width: 97%"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
v-model="form.MajorCN"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:direction')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:school')"
|
||||
prop="InternationalizationType"
|
||||
:label="$t('curriculumVitae:continuingTraining:form:hospital')"
|
||||
prop="HospitalId"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="12" style="margin-right: 5px">
|
||||
<el-input
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:school')
|
||||
"
|
||||
></el-input>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-select v-model="form.HospitalId" filterable placeholder="">
|
||||
<el-option
|
||||
v-for="(item, index) in hospitalList"
|
||||
:key="index"
|
||||
:label="item.HospitalName"
|
||||
:value="item.Id"
|
||||
>
|
||||
<span>
|
||||
{{ item.HospitalName }}
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="12" style="margin-right: 5px">
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:school')"
|
||||
prop="School"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.School"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t(
|
||||
|
@ -133,29 +175,88 @@
|
|||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:city')"
|
||||
prop="InternationalizationType"
|
||||
>
|
||||
<el-select v-model="form.Sex" clearable placeholder="">
|
||||
<el-option
|
||||
v-for="item in $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="SchoolCN" label-width="10px">
|
||||
<el-input
|
||||
v-model="form.SchoolCN"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:school')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12" style="margin-right: 5px">
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:city')"
|
||||
prop="City"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.City"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:City')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="CityCN" label-width="10px">
|
||||
<el-input
|
||||
v-model="form.CityCN"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:CityCN')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12" style="margin-right: 5px">
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:continuingTraining:form:Country')"
|
||||
prop="Country"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.Country"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t('curriculumVitae:continuingTraining:placeholder:Country')
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="CountryCN" label-width="10px">
|
||||
<el-input
|
||||
v-model="form.CountryCN"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:continuingTraining:placeholder:CountryCN'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
<template slot="dialog-footer">
|
||||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -164,12 +265,50 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import {
|
||||
addOrUpdatePostgraduateInfo,
|
||||
deletePostgraduateInfo,
|
||||
} from '@/api/reviewers'
|
||||
import store from '@/store'
|
||||
import { mapGetters } from 'vuex'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
BeginDate: '',
|
||||
EndDate: '',
|
||||
Training: '',
|
||||
Major: '',
|
||||
MajorCN: '',
|
||||
HospitalId: null,
|
||||
School: '',
|
||||
SchoolCN: '',
|
||||
City: '',
|
||||
CityCN: '',
|
||||
Country: '',
|
||||
CountryCN: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'continuingTraining',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Array,
|
||||
required: true,
|
||||
default: () => {
|
||||
return []
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
model_cfg: {
|
||||
visible: false,
|
||||
showClose: true,
|
||||
|
@ -177,21 +316,150 @@ export default {
|
|||
title: this.$t('curriculumVitae:continuingTraining:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
rules: {},
|
||||
form: defaultForm(),
|
||||
rules: {
|
||||
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 select degree',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
Major: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter the major',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{ max: 100, message: 'The maximum length is 100' },
|
||||
],
|
||||
MajorCN: [
|
||||
{
|
||||
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' },
|
||||
],
|
||||
CityCN: [
|
||||
{ required: true, message: 'Please enter the city', 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' },
|
||||
],
|
||||
CountryCN: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter the country',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{ max: 50, message: 'The maximum length is 50' },
|
||||
],
|
||||
},
|
||||
loading: false,
|
||||
daterange: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['hospitalList']),
|
||||
},
|
||||
mounted() {
|
||||
store.dispatch('global/getHospital')
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
openEdit(row) {
|
||||
this.form = defaultForm()
|
||||
this.daterange = []
|
||||
if (row) {
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (row[key]) {
|
||||
this.form[key] = row[key]
|
||||
}
|
||||
})
|
||||
if (this.form.BeginDate && this.form.EndDate) {
|
||||
this.daterange = [this.form.BeginDate, this.form.EndDate]
|
||||
}
|
||||
if (this.form.Degree) {
|
||||
this.form.Degree = Number(this.form.Degree)
|
||||
}
|
||||
this.form.Id = row.Id
|
||||
}
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.daterange = []
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.continuingTrainingFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.DoctorId = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await addOrUpdatePostgraduateInfo(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
async handleDel(row) {
|
||||
try {
|
||||
let confirm = await this.$confirm(
|
||||
this.$t('trials:trials-list:table:isDeleted')
|
||||
)
|
||||
if (!confirm) return false
|
||||
this.loading = true
|
||||
let res = await deletePostgraduateInfo(row.Id)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||
this.$emit('getInfo')
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
changeTimeList() {
|
||||
if (this.daterange && this.daterange.length === 2) {
|
||||
this.form.BeginDate = this.daterange[0]
|
||||
this.form.EndDate = this.daterange[1]
|
||||
} else {
|
||||
this.form.BeginDate = null
|
||||
this.form.EndDate = null
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -305,6 +305,10 @@ export default {
|
|||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -399,11 +403,6 @@ export default {
|
|||
daterange: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
openEdit(row) {
|
||||
this.form = defaultForm()
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
<span v-if="isEN">{{ DATA.HospitalName }}</span>
|
||||
<span v-else>{{ DATA.HospitalNameCN }}</span>
|
||||
</span>
|
||||
<span> </span>
|
||||
</div>
|
||||
<div class="userTitle">
|
||||
<span
|
||||
|
@ -146,7 +145,7 @@
|
|||
:label="$t('curriculumVitae:info:form:email')"
|
||||
prop="EMail"
|
||||
>
|
||||
<el-input v-model="form.EMail" clearable></el-input>
|
||||
<el-input v-model="form.EMail" clearable disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
@ -388,6 +387,10 @@ export default {
|
|||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -486,9 +489,6 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters(['hospitalList']),
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getDicData()
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
<template>
|
||||
<div class="other">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:other:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<span>{{ $t('curriculumVitae:other:AH') }}</span>
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
:disabled="!reviewerId"
|
||||
@click.stop="openEdit"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="message">
|
||||
<div>{{ $t('curriculumVitae:other:AH') }}</div>
|
||||
<p>a诺夫卡刷积分八九十快点把手里的v八路军那是的健康蓝色的艰苦拉萨的</p>
|
||||
<div class="message" v-if="DATA.AwardsHonors || DATA.AwardsHonorsCN">
|
||||
<span v-if="isEN">{{ DATA.AwardsHonors }}</span>
|
||||
<span v-else>{{ DATA.AwardsHonorsCN }}</span>
|
||||
</div>
|
||||
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
|
||||
<base-model :config="model_cfg">
|
||||
<template slot="dialog-body">
|
||||
<el-form
|
||||
|
@ -22,21 +28,26 @@
|
|||
>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:other:form:AH')"
|
||||
prop="InternationalizationType"
|
||||
prop="AwardsHonors"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="form.AwardsHonors"
|
||||
style="margin-bottom: 10px"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="$t('curriculumVitae:other:placeholder:AHEN')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="AwardsHonorsCN">
|
||||
<el-input
|
||||
clearable
|
||||
v-model="form.AwardsHonorsCN"
|
||||
style="margin-bottom: 10px"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="$t('curriculumVitae:other:placeholder:AH')"
|
||||
></el-input>
|
||||
<el-input
|
||||
clearable
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="$t('curriculumVitae:other:placeholder:AHEN')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
@ -44,7 +55,12 @@
|
|||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -53,9 +69,34 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import { addOrUpdateResearchPublicationInfo } from '@/api/reviewers'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
Id: null,
|
||||
AwardsHonors: '',
|
||||
AwardsHonorsCN: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'other',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
model_cfg: {
|
||||
|
@ -65,20 +106,43 @@ export default {
|
|||
title: this.$t('curriculumVitae:scientificResearchProject:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (this.DATA[key]) {
|
||||
this.form[key] = this.DATA[key]
|
||||
}
|
||||
})
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.otherFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.DoctorId = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await addOrUpdateResearchPublicationInfo(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
<div class="pay">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:pay:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
:disabled="!reviewerId"
|
||||
@click.stop="openEdit"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -11,25 +16,33 @@
|
|||
<el-form-item
|
||||
:label="$t('curriculumVitae:pay:form:payCardId')"
|
||||
style="width: 45%"
|
||||
>21323123123123123213123123213123</el-form-item
|
||||
>
|
||||
{{ DATA.BankNum }}
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:pay:form:username')"
|
||||
style="width: 45%"
|
||||
>wangxiaoshuang</el-form-item
|
||||
>
|
||||
{{ DATA.BankName }}
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:pay:form:bank')"
|
||||
style="width: 45%"
|
||||
></el-form-item>
|
||||
>
|
||||
{{ DATA.OpeningBank }}
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:pay:form:idCard')"
|
||||
style="width: 45%"
|
||||
></el-form-item>
|
||||
>
|
||||
{{ DATA.IdCard }}
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:pay:form:phone')"
|
||||
style="width: 45%"
|
||||
></el-form-item>
|
||||
>
|
||||
{{ DATA.BankPhoneNum }}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<base-model :config="model_cfg">
|
||||
|
@ -47,37 +60,53 @@
|
|||
<el-form-item
|
||||
style="width: 45%"
|
||||
:label="$t('curriculumVitae:pay:form:payCardId')"
|
||||
prop="InternationalizationType"
|
||||
prop="BankNum"
|
||||
>
|
||||
<el-input clearable placeholder=""></el-input>
|
||||
<el-input
|
||||
clearable
|
||||
placeholder=""
|
||||
v-model="form.BankNum"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
style="width: 45%"
|
||||
:label="$t('curriculumVitae:pay:form:username')"
|
||||
prop="InternationalizationType"
|
||||
prop="BankName"
|
||||
>
|
||||
<el-input clearable placeholder=""></el-input>
|
||||
<el-input
|
||||
clearable
|
||||
placeholder=""
|
||||
v-model="form.BankName"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
style="width: 45%"
|
||||
:label="$t('curriculumVitae:pay:form:bank')"
|
||||
prop="InternationalizationType"
|
||||
prop="OpeningBank"
|
||||
>
|
||||
<el-input clearable placeholder=""></el-input>
|
||||
<el-input
|
||||
clearable
|
||||
placeholder=""
|
||||
v-model="form.OpeningBank"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
style="width: 45%"
|
||||
:label="$t('curriculumVitae:pay:form:idCard')"
|
||||
prop="InternationalizationType"
|
||||
prop="IdCard"
|
||||
>
|
||||
<el-input clearable placeholder=""></el-input>
|
||||
<el-input clearable placeholder="" v-model="form.IdCard"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
style="width: 45%"
|
||||
:label="$t('curriculumVitae:pay:form:phone')"
|
||||
prop="InternationalizationType"
|
||||
prop="BankPhoneNum"
|
||||
>
|
||||
<el-input clearable placeholder=""></el-input>
|
||||
<el-input
|
||||
clearable
|
||||
placeholder=""
|
||||
v-model="form.BankPhoneNum"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
@ -85,7 +114,12 @@
|
|||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -94,32 +128,82 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import { updatePaymentMode } from '@/api/reviewers'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
BankNum: '',
|
||||
BankName: '',
|
||||
OpeningBank: '',
|
||||
IdCard: '',
|
||||
BankPhoneNum: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'pay',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
model_cfg: {
|
||||
visible: false,
|
||||
showClose: true,
|
||||
width: '800px',
|
||||
title: this.$t('curriculumVitae:scientificResearchProject:form:title'),
|
||||
title: this.$t('curriculumVitae:pay:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (this.DATA[key]) {
|
||||
this.form[key] = this.DATA[key]
|
||||
}
|
||||
})
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.payFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.Id = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await updatePaymentMode(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -2,28 +2,43 @@
|
|||
<div class="scientificResearchProject">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:scientificResearchProject:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
:disabled="!reviewerId"
|
||||
@click.stop="openEdit"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="message">
|
||||
<div
|
||||
class="message"
|
||||
v-if="DATA.Research || DATA.ResearchCN || DATA.Grants || DATA.GrantsCN"
|
||||
>
|
||||
<el-form class="demo-form-inline">
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:scientificResearchProject:direction')"
|
||||
>
|
||||
<div>direction</div>
|
||||
<div>
|
||||
<span v-if="isEN">{{ DATA.Research }}</span>
|
||||
<span v-else>{{ DATA.ResearchCN }}</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:scientificResearchProject:subject')"
|
||||
>
|
||||
<div>subject</div>
|
||||
<div>
|
||||
<span v-if="isEN">{{ DATA.Grants }}</span>
|
||||
<span v-else>{{ DATA.GrantsCN }}</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
|
||||
<base-model :config="model_cfg">
|
||||
<template slot="dialog-body">
|
||||
<el-form
|
||||
ref="continuingTrainingFrom"
|
||||
ref="scientificResearchProjectFrom"
|
||||
v-loading="loading"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
|
@ -34,22 +49,26 @@
|
|||
:label="
|
||||
$t('curriculumVitae:scientificResearchProject:form:direction')
|
||||
"
|
||||
prop="InternationalizationType"
|
||||
prop="Research"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="form.Research"
|
||||
style="margin-bottom: 10px"
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:scientificResearchProject:placeholder:direction'
|
||||
'curriculumVitae:scientificResearchProject:placeholder:directionEN'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="ResearchCN">
|
||||
<el-input
|
||||
v-model="form.ResearchCN"
|
||||
clearable
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:scientificResearchProject:placeholder:directionEN'
|
||||
'curriculumVitae:scientificResearchProject:placeholder:direction'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
|
@ -58,26 +77,30 @@
|
|||
:label="
|
||||
$t('curriculumVitae:scientificResearchProject:form:subject')
|
||||
"
|
||||
prop="InternationalizationType"
|
||||
prop="Grants"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.Grants"
|
||||
clearable
|
||||
style="margin-bottom: 10px"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:scientificResearchProject:placeholder:subject'
|
||||
'curriculumVitae:scientificResearchProject:placeholder:subjectEN'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="GrantsCN">
|
||||
<el-input
|
||||
clearable
|
||||
v-model="form.GrantsCN"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="
|
||||
$t(
|
||||
'curriculumVitae:scientificResearchProject:placeholder:subjectEN'
|
||||
'curriculumVitae:scientificResearchProject:placeholder:subject'
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
|
@ -88,7 +111,12 @@
|
|||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -97,9 +125,36 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import { addOrUpdateResearchPublicationInfo } from '@/api/reviewers'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
Id: null,
|
||||
Research: '',
|
||||
ResearchCN: '',
|
||||
Grants: '',
|
||||
GrantsCN: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'scientificResearchProject',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
model_cfg: {
|
||||
|
@ -109,20 +164,43 @@ export default {
|
|||
title: this.$t('curriculumVitae:scientificResearchProject:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (this.DATA[key]) {
|
||||
this.form[key] = this.DATA[key]
|
||||
}
|
||||
})
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.scientificResearchProjectFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.DoctorId = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await addOrUpdateResearchPublicationInfo(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -128,13 +128,7 @@
|
|||
@change="(a) => selectOther(a, 'Subspeciality')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of [
|
||||
...dictionaryList.Subspeciality,
|
||||
{
|
||||
Id: otherId,
|
||||
Value: 'Other',
|
||||
},
|
||||
]"
|
||||
v-for="item of Subspeciality"
|
||||
:key="item.Id"
|
||||
:label="item.Value"
|
||||
:value="item.Id"
|
||||
|
@ -184,13 +178,7 @@
|
|||
@change="(a) => selectOther(a, 'ReadingType')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of [
|
||||
...dictionaryList.ReadingType,
|
||||
{
|
||||
Id: otherId,
|
||||
Value: 'Other',
|
||||
},
|
||||
]"
|
||||
v-for="item of ReadingType"
|
||||
:key="item.Id"
|
||||
:label="item.Value"
|
||||
:value="item.Id"
|
||||
|
@ -270,13 +258,24 @@ export default {
|
|||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
return {
|
||||
ReadingTypeCNList: [],
|
||||
ReadingTypeIds: [],
|
||||
ReadingTypeList: [],
|
||||
SubspecialityCNList: [],
|
||||
SubspecialityIds: [],
|
||||
SubspecialityList: [],
|
||||
}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -330,17 +329,36 @@ export default {
|
|||
},
|
||||
loading: false,
|
||||
otherId: 'ef84e9cb-f1a6-49d7-b6da-34be2c12abd5',
|
||||
dictionaryList: {},
|
||||
dictionaryList: {
|
||||
Subspeciality: [],
|
||||
Department: [],
|
||||
ReadingType: [],
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getDicData()
|
||||
},
|
||||
computed: {
|
||||
Subspeciality() {
|
||||
return [
|
||||
...this.dictionaryList.Subspeciality,
|
||||
{
|
||||
Id: this.otherId,
|
||||
Value: 'Other',
|
||||
},
|
||||
]
|
||||
},
|
||||
ReadingType() {
|
||||
return [
|
||||
...this.dictionaryList.ReadingType,
|
||||
{
|
||||
Id: this.otherId,
|
||||
Value: 'Other',
|
||||
},
|
||||
]
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
|
|
|
@ -2,13 +2,18 @@
|
|||
<div class="summarize">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:summarize:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
:disabled="!reviewerId"
|
||||
@click.stop="openEdit"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<template v-if="true">
|
||||
<div class="message"></div>
|
||||
</template>
|
||||
<div class="message" v-if="DATA.SummarizeEn || DATA.Summarize">
|
||||
{{ isEN ? DATA.SummarizeEn : DATA.Summarize }}
|
||||
</div>
|
||||
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
|
||||
<base-model :config="model_cfg">
|
||||
<template slot="dialog-body">
|
||||
|
@ -22,19 +27,21 @@
|
|||
>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:summarize:form:summarize')"
|
||||
prop="InternationalizationType"
|
||||
prop="Summarize"
|
||||
>
|
||||
<el-input
|
||||
:placeholder="
|
||||
$t('curriculumVitae:summarize:form:placeholder:summarize')
|
||||
"
|
||||
v-model="form.Summarize"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="InternationalizationType">
|
||||
<el-form-item prop="SummarizeEn">
|
||||
<el-input
|
||||
v-model="form.SummarizeEn"
|
||||
:placeholder="
|
||||
$t('curriculumVitae:summarize:form:placeholder:summarizeEN')
|
||||
"
|
||||
|
@ -49,7 +56,12 @@
|
|||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -58,9 +70,33 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import { updateGneralSituation } from '@/api/reviewers'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
SummarizeEn: '',
|
||||
Summarize: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'summarize',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
model_cfg: {
|
||||
|
@ -70,20 +106,43 @@ export default {
|
|||
title: this.$t('curriculumVitae:summarize:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (this.DATA[key]) {
|
||||
this.form[key] = this.DATA[key]
|
||||
}
|
||||
})
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.summarizeFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.Id = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await updateGneralSituation(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -2,41 +2,19 @@
|
|||
<div class="treatise">
|
||||
<div class="title">
|
||||
<span>{{ $t('curriculumVitae:treatise:title') }}</span>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
{{ $t('common:button:add') }}
|
||||
<el-button
|
||||
type="text"
|
||||
class="editBtn"
|
||||
:disabled="!reviewerId"
|
||||
@click.stop="openEdit"
|
||||
>
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
:header-cell-style="{ background: '#eee', color: '#606266' }"
|
||||
>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
:label="$t('curriculumVitae:treatise:table:author')"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
:label="$t('curriculumVitae:treatise:table:name')"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
:label="$t('curriculumVitae:treatise:table:publish')"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="date" :label="$t('common:action:action')">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit(scope)">
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
<el-button type="text" class="editBtn" @click.stop="openEdit">
|
||||
{{ $t('common:button:delete') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="message" v-if="DATA.Publications">
|
||||
{{ DATA.Publications }}
|
||||
</div>
|
||||
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
|
||||
<base-model :config="model_cfg">
|
||||
<template slot="dialog-body">
|
||||
<el-form
|
||||
|
@ -47,24 +25,16 @@
|
|||
label-width="80px"
|
||||
size="small"
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:treatise:form:author')"
|
||||
prop="InternationalizationType"
|
||||
>
|
||||
<el-input clearable></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:treatise:form:name')"
|
||||
prop="InternationalizationType"
|
||||
prop="Publications"
|
||||
>
|
||||
<el-input clearable type="textarea" :rows="2"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('curriculumVitae:treatise:form:publish')"
|
||||
prop="InternationalizationType"
|
||||
>
|
||||
<el-input clearable type="textarea" :rows="2"></el-input>
|
||||
<el-input
|
||||
v-model="form.Publications"
|
||||
clearable
|
||||
type="textarea"
|
||||
:rows="6"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
@ -72,7 +42,12 @@
|
|||
<el-button size="small" type="primary" @click="handleCancle">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<el-button size="small" type="primary" @click="handleSave">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave"
|
||||
>
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -81,12 +56,35 @@
|
|||
</template>
|
||||
<script>
|
||||
import BaseModel from '@/components/BaseModel'
|
||||
import { addOrUpdateResearchPublicationInfo } from '@/api/reviewers'
|
||||
const defaultForm = () => {
|
||||
return {
|
||||
Id: null,
|
||||
Publications: '',
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'treatise',
|
||||
components: { BaseModel },
|
||||
props: {
|
||||
DATA: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
reviewerId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isEN: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
model_cfg: {
|
||||
visible: false,
|
||||
showClose: true,
|
||||
|
@ -94,7 +92,7 @@ export default {
|
|||
title: this.$t('curriculumVitae:treatise:form:title'),
|
||||
appendToBody: true,
|
||||
},
|
||||
form: {},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
loading: false,
|
||||
daterange: [],
|
||||
|
@ -102,13 +100,36 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
openEdit() {
|
||||
this.form = defaultForm()
|
||||
Object.keys(this.form).forEach((key) => {
|
||||
if (this.DATA[key]) {
|
||||
this.form[key] = this.DATA[key]
|
||||
}
|
||||
})
|
||||
this.model_cfg.visible = true
|
||||
},
|
||||
handleCancle() {
|
||||
this.form = defaultForm()
|
||||
this.model_cfg.visible = false
|
||||
},
|
||||
handleSave() {
|
||||
this.model_cfg.visible = false
|
||||
async handleSave() {
|
||||
try {
|
||||
let validate = await this.$refs.treatiseFrom.validate()
|
||||
if (!validate) return false
|
||||
if (this.reviewerId) {
|
||||
this.form.DoctorId = this.reviewerId
|
||||
}
|
||||
this.loading = true
|
||||
let res = await addOrUpdateResearchPublicationInfo(this.form)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$emit('getInfo')
|
||||
this.model_cfg.visible = false
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -127,4 +148,13 @@ export default {
|
|||
.el-date-editor {
|
||||
width: 97%;
|
||||
}
|
||||
.message {
|
||||
margin: auto;
|
||||
min-height: 100px;
|
||||
background-color: #eee;
|
||||
padding: 10px;
|
||||
line-height: 30px;
|
||||
border-radius: 5px;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
</style>
|
|
@ -65,17 +65,26 @@
|
|||
...reviewerData.EmploymentView,
|
||||
}"
|
||||
:reviewerId.sync="reviewerId"
|
||||
:isEN="isEN"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="summarize">
|
||||
<summarize />
|
||||
<summarize
|
||||
:DATA="{
|
||||
...reviewerData.SummarizeInfo,
|
||||
}"
|
||||
:reviewerId.sync="reviewerId"
|
||||
:isEN="isEN"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="specialty">
|
||||
<specialty
|
||||
:DATA="{
|
||||
...reviewerData.SpecialtyView,
|
||||
}"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
|
@ -83,27 +92,58 @@
|
|||
<div class="box" id="educationalExperience">
|
||||
<educationalExperience
|
||||
:DATA="reviewerData.EducationList"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="continuingTraining">
|
||||
<continuingTraining />
|
||||
<continuingTraining
|
||||
:DATA="reviewerData.PostgraduateList"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="scientificResearchProject">
|
||||
<scientificResearchProject />
|
||||
<scientificResearchProject
|
||||
:DATA="{ ...reviewerData.ResearchPublicationView }"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="clinicalTrials">
|
||||
<clinicalTrials />
|
||||
<clinicalTrials
|
||||
:DATA="{ ...reviewerData.TrialExperienceView }"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="treatise">
|
||||
<treatise />
|
||||
<treatise
|
||||
:DATA="{ ...reviewerData.ResearchPublicationView }"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="other">
|
||||
<other />
|
||||
<other
|
||||
:DATA="{ ...reviewerData.ResearchPublicationView }"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
<div class="box" id="pay">
|
||||
<pay />
|
||||
<pay
|
||||
:DATA="{ ...reviewerData.PaymentModeInfo }"
|
||||
:isEN="isEN"
|
||||
:reviewerId.sync="reviewerId"
|
||||
@getInfo="getDetail"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightFile">
|
||||
|
@ -164,9 +204,26 @@ export default {
|
|||
reviewerData: {
|
||||
BasicInfoView: {},
|
||||
EmploymentView: {},
|
||||
AckSowList: [],
|
||||
AttachmentList: [],
|
||||
AuditView: {},
|
||||
EducationList: [],
|
||||
IntoGroupInfo: {},
|
||||
PaymentModeInfo: {},
|
||||
PostgraduateList: [],
|
||||
ResearchPublicationView: {},
|
||||
SowList: [],
|
||||
SpecialtyView: {},
|
||||
SummarizeInfo: {},
|
||||
TrialExperienceView: {},
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.$i18n.locale = this.$route.query.lang
|
||||
await this.setLanguage(this.$route.query.lang)
|
||||
|
@ -229,7 +286,9 @@ export default {
|
|||
}
|
||||
}
|
||||
// 把下标赋值给 vue 的 data
|
||||
this.activeIndex = navItem.id
|
||||
if (navItem) {
|
||||
this.activeIndex = navItem.id
|
||||
}
|
||||
},
|
||||
// 预览简历
|
||||
openPreview() {
|
||||
|
|
|
@ -1,23 +1,27 @@
|
|||
<template>
|
||||
<div style="text-align: right">
|
||||
<!--导出-->
|
||||
<el-button type="primary" :disabled="!(trialCriterionList.length>0)" icon="el-icon-download" size="mini" @click="handleExport(0)" style="margin-bottom: 10px">
|
||||
<el-button
|
||||
type="primary"
|
||||
:disabled="!(trialCriterionList.length > 0)"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport(0)"
|
||||
style="margin-bottom: 10px"
|
||||
>
|
||||
{{ $t('common:button:export') }}
|
||||
</el-button>
|
||||
<el-tabs type="border-card" v-model="TrialReadingCriterionId">
|
||||
<el-tab-pane :label="i.TrialReadingCriterionName" :name="i.TrialReadingCriterionId" v-for="i of trialCriterionList" :key="i.TrialReadingCriterionId">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
border
|
||||
stripe
|
||||
>
|
||||
<el-table-column
|
||||
label=""
|
||||
:min-width="50"
|
||||
>
|
||||
<el-tab-pane
|
||||
:label="i.TrialReadingCriterionName"
|
||||
:name="i.TrialReadingCriterionId"
|
||||
v-for="i of trialCriterionList"
|
||||
:key="i.TrialReadingCriterionId"
|
||||
>
|
||||
<el-table v-loading="loading" :data="list" border stripe>
|
||||
<el-table-column label="" :min-width="50">
|
||||
<template slot-scope="scope">
|
||||
{{scope.$index + 1}}
|
||||
{{ scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 文件名称 -->
|
||||
|
@ -52,73 +56,120 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { getReadingTaskList_Export, getTrialReadingCriterionCanExportDocumentList, getOverallTumorEvaluationList_Export, getEvaluationOfTumorEfficacy_Export, getDetailedOfEvaluatedLesion_Export } from '@/api/export'
|
||||
import {
|
||||
getCommonEvaluationList_Export,
|
||||
getCommonJudgeRatioList_Export,
|
||||
getReadingTaskList_Export,
|
||||
getTrialReadingCriterionCanExportDocumentList,
|
||||
getOverallTumorEvaluationList_Export,
|
||||
getEvaluationOfTumorEfficacy_Export,
|
||||
getDetailedOfEvaluatedLesion_Export,
|
||||
} from '@/api/export'
|
||||
import { getTrialCriterionList } from '@/api/trials/reading'
|
||||
|
||||
export default {
|
||||
name: "exportList",
|
||||
name: 'exportList',
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
trialCriterionList: [],
|
||||
TrialReadingCriterionId: null,
|
||||
trialId: null,
|
||||
list: []
|
||||
list: [],
|
||||
}
|
||||
},
|
||||
props: {
|
||||
data: {
|
||||
type: Object,
|
||||
default() { return {} }
|
||||
}
|
||||
default() {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
TrialReadingCriterionId(v) {
|
||||
if (v === '0') return
|
||||
this.loading = true
|
||||
getTrialReadingCriterionCanExportDocumentList({TrialReadingCriterionId: v}).then(res => {
|
||||
this.list = res.Result
|
||||
this.loading = false
|
||||
}).catch(() => { this.loading = true })
|
||||
}
|
||||
getTrialReadingCriterionCanExportDocumentList({
|
||||
TrialReadingCriterionId: v,
|
||||
})
|
||||
.then((res) => {
|
||||
this.list = res.Result
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = true
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.trialId =this.$route.query.trialId
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getTrialCriterionList()
|
||||
},
|
||||
methods: {
|
||||
handleExport(type) {
|
||||
var searchData = {...this.data}
|
||||
var searchData = { ...this.data }
|
||||
searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
||||
switch (type) {
|
||||
case 0:
|
||||
getReadingTaskList_Export(searchData).then(res => {
|
||||
}).catch(() => { this.loading = false })
|
||||
break;
|
||||
case 1:
|
||||
getOverallTumorEvaluationList_Export(searchData).then(res => {
|
||||
}).catch(() => { this.loading = false })
|
||||
break;
|
||||
case 2:
|
||||
getEvaluationOfTumorEfficacy_Export(searchData).then(res => {
|
||||
}).catch(() => { this.loading = false })
|
||||
getReadingTaskList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 4:
|
||||
searchData.ReadingExportType = 0
|
||||
getCommonEvaluationList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 5:
|
||||
searchData.ReadingExportType = 1
|
||||
getCommonEvaluationList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 6:
|
||||
searchData.ReadingExportType = 2
|
||||
getCommonEvaluationList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 7:
|
||||
getCommonJudgeRatioList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 8:
|
||||
getCommonJudgeRatioList_Export(searchData)
|
||||
.then((res) => {})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
break
|
||||
case 3:
|
||||
getDetailedOfEvaluatedLesion_Export(searchData).then(res => {
|
||||
}).catch(() => { this.loading = false })
|
||||
break;
|
||||
}
|
||||
},
|
||||
getTrialCriterionList() {
|
||||
getTrialCriterionList(this.trialId).then(res => {
|
||||
this.trialCriterionList = res.Result
|
||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
||||
}).catch(() => {})
|
||||
}
|
||||
}
|
||||
getTrialCriterionList(this.trialId)
|
||||
.then((res) => {
|
||||
this.trialCriterionList = res.Result
|
||||
this.TrialReadingCriterionId =
|
||||
this.trialCriterionList[0].TrialReadingCriterionId
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue