pm简历新增tab
continuous-integration/drone/push Build is passing Details

uat_us
wangxiaoshuang 2024-10-24 11:18:03 +08:00
parent 6c46a58f15
commit a83b094a46
8 changed files with 355 additions and 96 deletions

View File

@ -23,11 +23,12 @@
<el-input style="width: 300px" v-model="form.EmailTopic" /> <el-input style="width: 300px" v-model="form.EmailTopic" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="systemLevel !== 1"> <el-col :span="12">
<el-form-item label="邮件延时发送s数" prop="EmailDelaySeconds"> <el-form-item label="邮件延时发送s数" prop="EmailDelaySeconds">
<el-input <el-input
v-model.number="form.EmailDelaySeconds" v-model.number="form.EmailDelaySeconds"
style="width: 300px" style="width: 300px"
type="number"
clearable clearable
> >
</el-input> </el-input>

View File

@ -212,96 +212,41 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<!-- <el-row>--> <el-col :span="14">
<!-- <el-col :span="14">--> <el-form-item
<!-- <el-form-item label="Physician: " prop="PhysicianId" >--> :label="$t('system:reviewer:label:WorkPartTime')"
<!-- <el-select--> prop="WorkPartTime"
<!-- v-model="employmentForm.PhysicianId"--> >
<!-- placeholder="select"--> <el-input
<!-- :disabled="$route.query.ReviewStatus === '1'"--> :disabled="$route.query.ReviewStatus === '1'"
<!-- @change="PhysicianChange"--> v-model="employmentForm.WorkPartTime"
<!-- style="width:100%;"--> type="textarea"
<!-- size="small"--> :rows="2"
<!-- >--> :placeholder="
<!-- <el-option--> $t('curriculumVitae:info:form:placeholder:partTimeJob')
<!-- v-for="item of $d.PhysicianOriginal"--> "
<!-- :key="item.id"--> size="small"
<!-- :label="item.raw.Value"--> />
<!-- :value="item.id"--> </el-form-item>
<!-- />--> </el-col>
<!-- </el-select>--> </el-row>
<!-- </el-form-item>--> <el-row>
<!-- </el-col>--> <el-col :span="14">
<!-- <el-col :span="5">--> <el-form-item prop="WorkPartTimeEn">
<!-- <el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="Physician">--> <el-input
<!-- <el-input--> :disabled="$route.query.ReviewStatus === '1'"
<!-- :disabled="$route.query.ReviewStatus === '1'"--> v-model="employmentForm.WorkPartTimeEn"
<!-- v-model="employmentForm.Physician"--> type="textarea"
<!-- placeholder="Please specify"--> :rows="2"
<!-- size="small"--> :placeholder="
<!-- />--> $t('curriculumVitae:info:form:placeholder:partTimeJobEN')
<!-- </el-form-item>--> "
<!-- </el-col>--> size="small"
<!-- <el-col :span="5">--> />
<!-- <el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="PhysicianCN">--> </el-form-item>
<!-- <el-input--> </el-col>
<!-- :disabled="$route.query.ReviewStatus === '1'"--> </el-row>
<!-- v-model="employmentForm.PhysicianCN"-->
<!-- placeholder="请用中文注明"-->
<!-- size="small"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="14">-->
<!-- <el-form-item label="Position: " prop="PositionId">-->
<!-- <el-select-->
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
<!-- v-model="employmentForm.PositionId"-->
<!-- placeholder="select"-->
<!-- style="width:100%;"-->
<!-- size="small"-->
<!-- >-->
<!-- &lt;!&ndash; <el-option-->
<!-- v-for="(key,value) of dictionaryList.Position"-->
<!-- :key="key"-->
<!-- :label="key"-->
<!-- :value="value"-->
<!-- /> &ndash;&gt;-->
<!-- <el-option-->
<!-- v-for="item of dictionaryList.Position"-->
<!-- :key="item.Id"-->
<!-- :label="item.Value"-->
<!-- :value="item.Id"-->
<!-- />-->
<!-- <el-option label="Other" :value="otherId" />-->
<!-- <el-option label="None" value="f30a074b-2b47-4a92-97ec-e15086d37883" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOther">-->
<!-- <el-input-->
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
<!-- v-model="employmentForm.PositionOther"-->
<!-- placeholder="Please specify"-->
<!-- size="small"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOtherCN">-->
<!-- <el-input-->
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
<!-- v-model="employmentForm.PositionOtherCN"-->
<!-- placeholder="请用中文注明"-->
<!-- size="small"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-form-item> <el-form-item>
<el-button <el-button
@ -363,6 +308,8 @@ export default {
Physician: '', Physician: '',
PhysicianCN: '', PhysicianCN: '',
PhysicianOriginal: null, PhysicianOriginal: null,
WorkPartTime: null,
WorkPartTimeEn: null,
}, },
UniversityAffiliated: '', UniversityAffiliated: '',
City: '', City: '',
@ -548,7 +495,11 @@ export default {
PositionOther, PositionOther,
PositionOtherCN, PositionOtherCN,
HospitalId, HospitalId,
WorkPartTime,
WorkPartTimeEn,
} = res.Result } = res.Result
this.employmentForm.WorkPartTime = WorkPartTime
this.employmentForm.WorkPartTimeEn = WorkPartTimeEn
this.employmentForm.Id = id this.employmentForm.Id = id
this.employmentForm.DepartmentId = this.employmentForm.DepartmentId =
DepartmentId === this.selectId ? '' : DepartmentId DepartmentId === this.selectId ? '' : DepartmentId

View File

@ -0,0 +1,136 @@
<template>
<div class="form-container basic-form">
<el-card class="box-card">
<div style="width: 1000px">
<!-- v-loading="loading" -->
<el-form
ref="payForm"
v-loading="loading"
:inline="true"
:rules="rules"
:model="form"
class="demo-ruleForm"
label-width="120px"
size="small"
>
<div>{{ $t('system:reviewer:title:pay') }}</div>
<el-row>
<el-col :span="12">
<el-form-item
:label="$t('system:reviewer:label:BankNum')"
prop="BankNum"
>
<el-input v-model="form.BankNum" clearable size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('system:reviewer:label:BankName')"
prop="BankName"
>
<el-input v-model="form.BankName" clearable size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
:label="$t('system:reviewer:label:OpeningBank')"
prop="OpeningBank"
>
<el-input v-model="form.OpeningBank" clearable size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('system:reviewer:label:IdCard')"
prop="IdCard"
>
<el-input v-model="form.IdCard" clearable size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
:label="$t('system:reviewer:label:BankPhoneNum')"
prop="BankPhoneNum"
>
<el-input v-model="form.BankPhoneNum" clearable size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item style="margin-left: 120px">
<el-button
:disabled="$route.query.ReviewStatus === '1'"
type="primary"
:loading="loading"
size="small"
@click="handleSave"
>
{{ $t('common:button:save') }}</el-button
>
</el-form-item>
</el-row>
</el-form>
</div>
</el-card>
</div>
</template>
<script>
import { getDetail, updatePaymentMode } from '@/api/reviewers'
export default {
data() {
return {
loading: false,
form: {
BankNum: '',
BankName: '',
OpeningBank: '',
IdCard: '',
BankPhoneNum: '',
},
rules: {},
}
},
mounted() {
this.getDetail()
},
methods: {
async handleSave() {
try {
let validate = await this.$refs.payForm.validate()
if (!validate) return false
this.form.Id = this.$route.query.Id || this.reviewerId
this.loading = true
let res = await updatePaymentMode(this.form)
this.loading = false
if (res.IsSuccess) {
}
} catch (err) {
this.loading = false
console.log(err)
}
},
//
async getDetail() {
try {
let id = this.$route.query.Id || this.reviewerId
if (!id) return false
this.loading = true
let res = await getDetail(id)
this.loading = false
if (res.IsSuccess) {
Object.keys(this.form).forEach((key) => {
this.form[key] = res.Result.PaymentModeInfo[key]
})
}
} catch (err) {
this.loading = false
console.log(err)
}
},
},
}
</script>

View File

@ -7,6 +7,7 @@
:model="researchForm" :model="researchForm"
size="small" size="small"
> >
<div class="title">{{ $t('system:reviewer:title:Research') }}</div>
<el-form-item :label="$t('system:reviewer:label:Field of Research')"> <el-form-item :label="$t('system:reviewer:label:Field of Research')">
<el-row type="flex" justify="space-between"> <el-row type="flex" justify="space-between">
<el-col :span="11"> <el-col :span="11">
@ -55,9 +56,10 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<div class="title">{{ $t('system:reviewer:title:Publications') }}</div>
<el-form-item :label="$t('system:reviewer:label:Publications')"> <el-form-item :label="$t('system:reviewer:label:Publications')">
<el-row type="flex" justify="space-between"> <el-row type="flex" justify="space-between">
<el-col :span="11"> <el-col :span="24">
<el-input <el-input
:disabled="$route.query.ReviewStatus === '1'" :disabled="$route.query.ReviewStatus === '1'"
v-model="researchForm.Publications" v-model="researchForm.Publications"
@ -67,11 +69,9 @@
size="small" size="small"
/> />
</el-col> </el-col>
<el-col :span="11">
<!-- <el-input v-model="researchForm.PublicationsCN" type="textarea" rows="5" placeholder="请用中文注明" size="small" /> -->
</el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<div class="title">{{ $t('system:reviewer:title:AH') }}</div>
<el-form-item :label="$t('system:reviewer:label:Awards & Honors')"> <el-form-item :label="$t('system:reviewer:label:Awards & Honors')">
<el-row type="flex" justify="space-between"> <el-row type="flex" justify="space-between">
<el-col :span="11"> <el-col :span="11">
@ -184,3 +184,13 @@ export default {
}, },
} }
</script> </script>
<style lang="scss" scoped>
.title {
width: 100%;
background-color: #eee;
line-height: 30px;
padding-left: 10px;
border-radius: 3px;
margin-bottom: 20px;
}
</style>

View File

@ -0,0 +1,132 @@
<template>
<div class="form-container">
<el-card class="box-card">
<div style="width: 80%">
<el-form
ref="summarizeFrom"
v-loading="loading"
:rules="rules"
:model="form"
class="demo-ruleForm"
label-width="150px"
>
<el-row>
<el-col :span="14">
<el-form-item
:label="$t('system:reviewer:label:Summarize')"
prop="Summarize"
>
<el-input
:disabled="$route.query.ReviewStatus === '1'"
v-model="form.Summarize"
type="textarea"
:rows="2"
:placeholder="
$t('curriculumVitae:summarize:form:placeholder:summarize')
"
size="small"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="14">
<el-form-item prop="SummarizeEn">
<el-input
:disabled="$route.query.ReviewStatus === '1'"
v-model="form.SummarizeEn"
type="textarea"
:rows="2"
:placeholder="
$t('curriculumVitae:summarize:form:placeholder:summarizeEN')
"
size="small"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button
type="primary"
:disabled="$route.query.ReviewStatus === '1'"
size="small"
:loading="loading"
@click="handleSave"
>
{{ $t('common:button:save') }}
</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<script>
import { getDetail, updateGneralSituation } from '@/api/reviewers'
export default {
props: {
reviewerId: {
type: String,
},
},
data() {
return {
loading: false,
form: {
Summarize: null,
SummarizeEn: null,
},
rules: {},
}
},
mounted() {
this.getDetail()
},
methods: {
async handleSave() {
try {
let validate = await this.$refs.summarizeFrom.validate()
if (!validate) return false
this.form.Id = this.$route.query.Id || this.reviewerId
this.loading = true
let res = await updateGneralSituation(this.form)
this.loading = false
if (res.IsSuccess) {
}
} catch (err) {
this.loading = false
console.log(err)
}
},
//
async getDetail() {
try {
let id = this.$route.query.Id || this.reviewerId
if (!id) return false
this.loading = true
let res = await getDetail(id)
this.loading = false
if (res.IsSuccess) {
Object.keys(this.form).forEach((key) => {
this.form[key] = res.Result.SummarizeInfo[key]
})
}
} catch (err) {
this.loading = false
console.log(err)
}
},
},
}
</script>
<style lang="scss" scoped>
.basic-form {
.el-input--small {
width: 220px !important;
}
.el-select--small {
width: 220px !important;
}
}
</style>

View File

@ -284,7 +284,6 @@ export default {
// offsetTop // offsetTop
const offsetTopArr = [] const offsetTopArr = []
navContents.forEach((item) => { navContents.forEach((item) => {
console.log(item.offsetTop)
offsetTopArr.push(item.offsetTop) offsetTopArr.push(item.offsetTop)
}) })
// scrollTop // scrollTop

View File

@ -13,6 +13,12 @@
> >
<Employment v-if="load.Employment" :reviewerId.sync="reviewerId" /> <Employment v-if="load.Employment" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane
:label="$t('system:reviewer:tab:Summarize')"
name="Summarize"
>
<Summarize v-if="load.Summarize" :reviewerId.sync="reviewerId" />
</el-tab-pane>
<el-tab-pane <el-tab-pane
:label="$t('system:reviewer:tab:Specialty')" :label="$t('system:reviewer:tab:Specialty')"
name="Specialty" name="Specialty"
@ -61,6 +67,9 @@
> >
<Agreements v-if="load.Agreements" :reviewerId.sync="reviewerId" /> <Agreements v-if="load.Agreements" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('system:reviewer:tab:Pay')" name="Pay">
<Pay v-if="load.Pay" :reviewerId.sync="reviewerId" />
</el-tab-pane>
<el-tab-pane :label="$t('system:reviewer:tab:Setting')" name="Setting"> <el-tab-pane :label="$t('system:reviewer:tab:Setting')" name="Setting">
<Setting v-if="load.Setting" :reviewerId.sync="reviewerId" /> <Setting v-if="load.Setting" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
@ -70,6 +79,7 @@
<script> <script>
import BasicInfo from './components/BasicInfo' import BasicInfo from './components/BasicInfo'
import Employment from './components/Employment' import Employment from './components/Employment'
import Summarize from './components/Summarize'
import Specialty from './components/Specialty' import Specialty from './components/Specialty'
import EducationTraining from './components/EducationTraining' import EducationTraining from './components/EducationTraining'
import ResearchPublication from './components/ResearchPublication' import ResearchPublication from './components/ResearchPublication'
@ -77,12 +87,14 @@ import TrialExperience from './components/TrialExperience'
import Credentials from './components/Credentials' import Credentials from './components/Credentials'
import Resumes from './components/Resumes' import Resumes from './components/Resumes'
import Agreements from './components/Agreements' import Agreements from './components/Agreements'
import Pay from './components/Pay'
import Setting from './components/Setting' import Setting from './components/Setting'
import { changeURLStatic, getQueryString } from '@/utils/history.js' import { changeURLStatic, getQueryString } from '@/utils/history.js'
export default { export default {
components: { components: {
BasicInfo, BasicInfo,
Employment, Employment,
Summarize,
Specialty, Specialty,
EducationTraining, EducationTraining,
ResearchPublication, ResearchPublication,
@ -90,6 +102,7 @@ export default {
Credentials, Credentials,
Resumes, Resumes,
Agreements, Agreements,
Pay,
Setting, Setting,
}, },
props: { props: {
@ -108,6 +121,7 @@ export default {
load: { load: {
BasicInfo: true, BasicInfo: true,
Employment: false, Employment: false,
Summarize: false,
Specialty: false, Specialty: false,
EducationTraining: false, EducationTraining: false,
ResearchPublication: false, ResearchPublication: false,
@ -115,6 +129,7 @@ export default {
Credentials: false, Credentials: false,
Resumes: false, Resumes: false,
Agreements: false, Agreements: false,
Pay,
Setting: false, Setting: false,
}, },
} }

View File

@ -17,6 +17,12 @@
> >
<Employment v-if="load.Employment" :reviewerId.sync="reviewerId" /> <Employment v-if="load.Employment" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane
:label="$t('system:reviewer:tab:Summarize')"
name="Summarize"
>
<Summarize v-if="load.Summarize" :reviewerId.sync="reviewerId" />
</el-tab-pane>
<el-tab-pane <el-tab-pane
:label="$t('system:reviewer:tab:Specialty')" :label="$t('system:reviewer:tab:Specialty')"
name="Specialty" name="Specialty"
@ -66,6 +72,9 @@
> >
<Agreements v-if="load.Agreements" :reviewerId.sync="reviewerId" /> <Agreements v-if="load.Agreements" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('system:reviewer:tab:Pay')" name="Pay">
<Pay v-if="load.Pay" :reviewerId.sync="reviewerId" />
</el-tab-pane>
<el-tab-pane :label="$t('system:reviewer:tab:Setting')" name="Setting"> <el-tab-pane :label="$t('system:reviewer:tab:Setting')" name="Setting">
<Setting v-if="load.Setting" :reviewerId.sync="reviewerId" /> <Setting v-if="load.Setting" :reviewerId.sync="reviewerId" />
</el-tab-pane> </el-tab-pane>
@ -75,6 +84,7 @@
<script> <script>
import BasicInfo from './components/BasicInfo' import BasicInfo from './components/BasicInfo'
import Employment from './components/Employment' import Employment from './components/Employment'
import Summarize from './components/Summarize'
import Specialty from './components/Specialty' import Specialty from './components/Specialty'
import EducationTraining from './components/EducationTraining' import EducationTraining from './components/EducationTraining'
import ResearchPublication from './components/ResearchPublication' import ResearchPublication from './components/ResearchPublication'
@ -82,12 +92,14 @@ import TrialExperience from './components/TrialExperience'
import Credentials from './components/Credentials' import Credentials from './components/Credentials'
import Resumes from './components/Resumes' import Resumes from './components/Resumes'
import Agreements from './components/Agreements' import Agreements from './components/Agreements'
import Pay from './components/Pay'
import Setting from './components/Setting' import Setting from './components/Setting'
import { changeURLStatic, getQueryString } from '@/utils/history.js' import { changeURLStatic, getQueryString } from '@/utils/history.js'
export default { export default {
components: { components: {
BasicInfo, BasicInfo,
Employment, Employment,
Summarize,
Specialty, Specialty,
EducationTraining, EducationTraining,
ResearchPublication, ResearchPublication,
@ -95,6 +107,7 @@ export default {
Credentials, Credentials,
Resumes, Resumes,
Agreements, Agreements,
Pay,
Setting, Setting,
}, },
props: { props: {
@ -109,6 +122,7 @@ export default {
load: { load: {
BasicInfo: true, BasicInfo: true,
Employment: false, Employment: false,
Summarize: false,
Specialty: false, Specialty: false,
EducationTraining: false, EducationTraining: false,
ResearchPublication: false, ResearchPublication: false,
@ -116,6 +130,7 @@ export default {
Credentials: false, Credentials: false,
Resumes: false, Resumes: false,
Agreements: false, Agreements: false,
Pay,
Setting: false, Setting: false,
}, },
reviewerId: null, reviewerId: null,