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
c51dedbd1e
|
@ -334,4 +334,12 @@ export function doctorSendEmail(param) {
|
|||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
// 获取医生是否休假
|
||||
export function getIsVacation(param) {
|
||||
return request({
|
||||
url: `/Vacation/getIsVacation`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
|
@ -257,6 +257,7 @@
|
|||
:on-remove="handleRemoveFile2"
|
||||
:show-file-list="true"
|
||||
:limit="1"
|
||||
accept=".pdf"
|
||||
:file-list="fileList"
|
||||
>
|
||||
<el-button
|
||||
|
@ -265,6 +266,7 @@
|
|||
:disabled="fileList.length > 0"
|
||||
>{{ $t('common:button:upload') }}</el-button
|
||||
>
|
||||
<span>{{ $t('system:tip:file:pdf') }}</span>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:Agreements:label:Remark')">
|
||||
|
@ -368,6 +370,7 @@ export default {
|
|||
],
|
||||
},
|
||||
fileList: [],
|
||||
accept: '.pdf',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -414,41 +417,66 @@ export default {
|
|||
this.form.FilePath = null
|
||||
this.fileList = []
|
||||
},
|
||||
beforeUpload() {
|
||||
beforeUpload(row) {
|
||||
if (this.fileList.length > 0) {
|
||||
this.$alert('最多只能传一个附件')
|
||||
return
|
||||
}
|
||||
if (!this.checkFileSuffix(row.name)) {
|
||||
this.$message.warning(`Must be in .pdf format`)
|
||||
return false
|
||||
}
|
||||
},
|
||||
handlePreview3(row) {
|
||||
return this.$preview({
|
||||
path: row.FilePath,
|
||||
type: 'pdf',
|
||||
title: row.FileName,
|
||||
})
|
||||
if (row.FilePath) {
|
||||
window.open(this.OSSclientConfig.basePath + row.FilePath, '_blank')
|
||||
}
|
||||
},
|
||||
handlePreview2(row, r2) {
|
||||
return this.$preview({
|
||||
path: row.fullPath,
|
||||
type: 'pdf',
|
||||
title: row.FileName,
|
||||
})
|
||||
if (row.fullPath) {
|
||||
window.open(this.OSSclientConfig.basePath + row.fullPath, '_blank')
|
||||
}
|
||||
},
|
||||
async handleUploadFile(param) {
|
||||
this.btnLoading = true
|
||||
var fileName = param.file.name
|
||||
let file = await this.fileToBlob(param.file)
|
||||
let res = await this.OSSclient.put(
|
||||
`/SystemData/reviewer/${
|
||||
this.form.FileType === 0 ? '既往阅片情况声明' : '入项资格确认书'
|
||||
}/${this.doctorId}/${fileName}`,
|
||||
file
|
||||
checkFileSuffix(fileName) {
|
||||
var index = fileName.lastIndexOf('.')
|
||||
var suffix = fileName.substring(index + 1, fileName.length)
|
||||
return (
|
||||
this.accept.toLocaleLowerCase().search(suffix.toLocaleLowerCase()) === 1
|
||||
)
|
||||
this.form.FileName = param.file.name
|
||||
this.form.FilePath = this.$getObjectName(res.url)
|
||||
this.fileList[0] = {
|
||||
name: this.$getObjectName(res.url),
|
||||
path: this.$getObjectName(res.url),
|
||||
fullPath: this.$getObjectName(res.url),
|
||||
url: res.url,
|
||||
},
|
||||
async handleUploadFile(param) {
|
||||
try {
|
||||
this.btnLoading = true
|
||||
var fileName = param.file.name
|
||||
let file = await this.fileToBlob(param.file)
|
||||
let res = await this.OSSclient.put(
|
||||
`/SystemData/reviewer/${
|
||||
this.form.FileType === 0 ? '既往阅片情况声明' : '入项资格确认书'
|
||||
}/${this.doctorId}/${fileName}`,
|
||||
file
|
||||
)
|
||||
this.form.FileName = param.file.name
|
||||
this.form.FilePath = this.$getObjectName(res.url)
|
||||
this.fileList[0] = {
|
||||
name: this.$getObjectName(res.url),
|
||||
path: this.$getObjectName(res.url),
|
||||
fullPath: this.$getObjectName(res.url),
|
||||
url: res.url,
|
||||
}
|
||||
this.btnLoading = false
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
this.btnLoading = false
|
||||
},
|
||||
handleCancle() {
|
||||
this.model_cfg.visible = false
|
||||
|
@ -499,6 +527,12 @@ export default {
|
|||
})
|
||||
},
|
||||
handlePreview(row) {
|
||||
console.log(row)
|
||||
return this.$preview({
|
||||
path: row.FullPath,
|
||||
type: 'pdf',
|
||||
title: row.FileName,
|
||||
})
|
||||
if (row.FullPath) {
|
||||
window.open(this.OSSclientConfig.basePath + row.FullPath, '_blank')
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.MajorCN
|
||||
!isEN
|
||||
? `${scope.row.Major} / ${scope.row.MajorCN}`
|
||||
: scope.row.Major
|
||||
}}
|
||||
|
@ -73,7 +73,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.OrganizationCN
|
||||
!isEN
|
||||
? `${scope.row.Organization} / ${scope.row.OrganizationCN}`
|
||||
: scope.row.Organization
|
||||
}}
|
||||
|
@ -87,9 +87,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.CityCN
|
||||
? `${scope.row.City} / ${scope.row.CityCN}`
|
||||
: scope.row.City
|
||||
!isEN ? `${scope.row.City} / ${scope.row.CityCN}` : scope.row.City
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -101,7 +99,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.ProvinceCN
|
||||
!isEN
|
||||
? `${scope.row.Province} / ${scope.row.ProvinceCN}`
|
||||
: scope.row.Province
|
||||
}}
|
||||
|
@ -115,7 +113,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.CountryCN
|
||||
!isEN
|
||||
? `${scope.row.Country} / ${scope.row.CountryCN}`
|
||||
: scope.row.Country
|
||||
}}
|
||||
|
@ -191,7 +189,7 @@
|
|||
</template>
|
||||
<template slot-scope="scope" v-else>
|
||||
{{
|
||||
scope.row.TrainingCN
|
||||
!isEN
|
||||
? `${scope.row.Training} / ${scope.row.TrainingCN}`
|
||||
: scope.row.Training
|
||||
}}
|
||||
|
@ -205,7 +203,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.MajorCN
|
||||
!isEN
|
||||
? `${scope.row.Major} / ${scope.row.MajorCN}`
|
||||
: scope.row.Major
|
||||
}}
|
||||
|
@ -219,7 +217,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.HospitalCN
|
||||
!isEN
|
||||
? `${scope.row.Hospital} / ${scope.row.HospitalCN}`
|
||||
: scope.row.Hospital
|
||||
}}
|
||||
|
@ -233,7 +231,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.SchoolCN
|
||||
!isEN
|
||||
? `${scope.row.School} / ${scope.row.SchoolCN}`
|
||||
: scope.row.School
|
||||
}}
|
||||
|
@ -247,9 +245,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.CityCN
|
||||
? `${scope.row.City} / ${scope.row.CityCN}`
|
||||
: scope.row.City
|
||||
!isEN ? `${scope.row.City} / ${scope.row.CityCN}` : scope.row.City
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -261,7 +257,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.ProvinceCN
|
||||
!isEN
|
||||
? `${scope.row.Province} / ${scope.row.ProvinceCN}`
|
||||
: scope.row.Province
|
||||
}}
|
||||
|
@ -275,7 +271,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.CountryCN
|
||||
!isEN
|
||||
? `${scope.row.Country} / ${scope.row.CountryCN}`
|
||||
: scope.row.Country
|
||||
}}
|
||||
|
@ -922,6 +918,9 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters(['hospitalList']),
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.initPage()
|
||||
|
|
|
@ -96,7 +96,50 @@ export default {
|
|||
IdCard: '',
|
||||
BankPhoneNum: '',
|
||||
},
|
||||
rules: {},
|
||||
rules: {
|
||||
BankNum: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(/^[A-Za-z0-9]+$/, 'ig')
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
IdCard: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/, 'ig')
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
BankPhoneNum: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(
|
||||
/^1(3[0-9]|4[01456879]|5[0-3,5-9]|6[2567]|7[0-8]|8[0-9]|9[0-3,5-9])d{8}$/,
|
||||
'ig'
|
||||
)
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
|
||||
<el-form-item :label="$t('system:Setting:label:On Vacation:')">
|
||||
<span style="font-size: 12px; margin-right: 20px">{{
|
||||
checkForm.InHoliday
|
||||
InHoliday
|
||||
}}</span>
|
||||
<el-button type="text" @click="handleView">{{
|
||||
$t('system:Setting:Planned Vacation')
|
||||
|
@ -217,6 +217,7 @@ import {
|
|||
getVacationList,
|
||||
addOrUpdateVacation,
|
||||
deleteVacation,
|
||||
getIsVacation,
|
||||
} from '@/api/reviewers'
|
||||
import { fmtDate } from '@/utils/formatter'
|
||||
export default {
|
||||
|
@ -259,6 +260,7 @@ export default {
|
|||
pageSize: 5,
|
||||
totalItems: 0,
|
||||
loading2: false,
|
||||
InHoliday: '',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -270,8 +272,23 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
this.initForm()
|
||||
this.getIsVacation()
|
||||
},
|
||||
methods: {
|
||||
// 获取是否休假
|
||||
async getIsVacation() {
|
||||
try {
|
||||
let data = {
|
||||
DoctorId: this.doctorId,
|
||||
}
|
||||
let res = await getIsVacation(data)
|
||||
if (res.IsSuccess) {
|
||||
this.InHoliday = res.Result.IsVacation ? 'Yes' : 'No'
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
initForm() {
|
||||
if (!this.doctorId) return
|
||||
getAuditState(this.doctorId).then((res) => {
|
||||
|
@ -381,7 +398,7 @@ export default {
|
|||
.catch((action) => {})
|
||||
},
|
||||
closeDialog() {
|
||||
this.initForm()
|
||||
this.getIsVacation()
|
||||
},
|
||||
handleChange() {
|
||||
if (
|
||||
|
|
|
@ -406,10 +406,21 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
IndicationOptions() {
|
||||
console.log(
|
||||
this.$d.IndicationType,
|
||||
this.clinicalTrialForm.IndicationTypeId
|
||||
)
|
||||
if (!this.clinicalTrialForm.IndicationTypeId) return []
|
||||
let indicationGrouping = this.$d.IndicationType.filter(
|
||||
let indicationGroupingArr = this.$d.IndicationType.filter(
|
||||
(item) => item.id === this.clinicalTrialForm.IndicationTypeId
|
||||
)[0].raw.ChildGroup
|
||||
)
|
||||
let indicationGrouping = null
|
||||
if (
|
||||
Array.isArray(indicationGroupingArr) &&
|
||||
indicationGroupingArr.length > 0
|
||||
) {
|
||||
indicationGrouping = indicationGroupingArr[0].raw.ChildGroup
|
||||
}
|
||||
let arr =
|
||||
this.$d.Indication.filter(
|
||||
(item) => indicationGrouping === item.raw.ChildGroup
|
||||
|
|
|
@ -107,6 +107,7 @@
|
|||
:on-remove="handleRemoveFile2"
|
||||
:show-file-list="true"
|
||||
:limit="1"
|
||||
:accept="accept"
|
||||
:file-list="fileList"
|
||||
>
|
||||
<el-button
|
||||
|
@ -115,6 +116,7 @@
|
|||
:disabled="fileList.length > 0"
|
||||
>{{ $t('common:button:upload') }}</el-button
|
||||
>
|
||||
<span>{{ $t('system:tip:file:pdf') }}</span>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:Agreements:label:Remark')">
|
||||
|
@ -226,6 +228,7 @@ export default {
|
|||
],
|
||||
},
|
||||
fileList: [],
|
||||
accept: '.pdf',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -285,19 +288,40 @@ export default {
|
|||
this.form.FilePath = null
|
||||
this.fileList = []
|
||||
},
|
||||
beforeUpload() {
|
||||
beforeUpload(row) {
|
||||
if (this.fileList.length > 0) {
|
||||
// this.$alert('最多只能传一个附件')
|
||||
this.$alert(this.$t('upload:rule:maxFile1'))
|
||||
return
|
||||
}
|
||||
if (!this.checkFileSuffix(row.name)) {
|
||||
this.$message.warning(`Must be in .pdf format`)
|
||||
return false
|
||||
}
|
||||
},
|
||||
checkFileSuffix(fileName) {
|
||||
var index = fileName.lastIndexOf('.')
|
||||
var suffix = fileName.substring(index + 1, fileName.length)
|
||||
return (
|
||||
this.accept.toLocaleLowerCase().search(suffix.toLocaleLowerCase()) === 1
|
||||
)
|
||||
},
|
||||
handlePreview3(row) {
|
||||
return this.$preview({
|
||||
path: row.FilePath,
|
||||
type: 'pdf',
|
||||
title: row.FileName,
|
||||
})
|
||||
if (row.FilePath) {
|
||||
window.open(this.OSSclientConfig.basePath + row.FilePath, '_blank')
|
||||
}
|
||||
},
|
||||
handlePreview2(row, r2) {
|
||||
return this.$preview({
|
||||
path: row.FullPath,
|
||||
type: 'pdf',
|
||||
title: row.FileName,
|
||||
})
|
||||
if (row.fullPath) {
|
||||
window.open(this.OSSclientConfig.basePath + row.fullPath, '_blank')
|
||||
}
|
||||
|
|
|
@ -649,9 +649,16 @@ export default {
|
|||
computed: {
|
||||
IndicationOptions() {
|
||||
if (!this.form.IndicationTypeId) return []
|
||||
let indicationGrouping = this.$d.IndicationType.filter(
|
||||
let indicationGroupingArr = this.$d.IndicationType.filter(
|
||||
(item) => item.id === this.form.IndicationTypeId
|
||||
)[0].raw.ChildGroup
|
||||
)
|
||||
let indicationGrouping = null
|
||||
if (
|
||||
Array.isArray(indicationGroupingArr) &&
|
||||
indicationGroupingArr.length > 0
|
||||
) {
|
||||
indicationGrouping = indicationGroupingArr[0].raw.ChildGroup
|
||||
}
|
||||
let arr =
|
||||
this.$d.Indication.filter(
|
||||
(item) => indicationGrouping === item.raw.ChildGroup
|
||||
|
|
|
@ -71,8 +71,6 @@
|
|||
</template>
|
||||
<script>
|
||||
import {
|
||||
getAuditState,
|
||||
updateAuditResume,
|
||||
getVacationList,
|
||||
addOrUpdateVacation,
|
||||
deleteVacation,
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
</el-button>
|
||||
<template v-if="DATA.FirstName && DATA.LastName">
|
||||
<div class="userInfo">
|
||||
<span>{{ DATA.FirstName }}{{ DATA.LastName }}</span>
|
||||
<span>{{
|
||||
isEN ? DATA.FirstName + DATA.LastName : DATA.ChineseName
|
||||
}}</span>
|
||||
<span>{{ $fd('Sex', DATA.Sex) }}</span>
|
||||
<span v-if="isEN">
|
||||
{{
|
||||
|
|
|
@ -168,7 +168,50 @@ export default {
|
|||
appendToBody: true,
|
||||
},
|
||||
form: defaultForm(),
|
||||
rules: {},
|
||||
rules: {
|
||||
BankNum: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(/^[A-Za-z0-9]+$/, 'ig')
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
IdCard: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/, 'ig')
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
BankPhoneNum: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
let reg = new RegExp(
|
||||
/^1(3[0-9]|4[01456879]|5[0-3,5-9]|6[2567]|7[0-8]|8[0-9]|9[0-3,5-9])d{8}$/,
|
||||
'ig'
|
||||
)
|
||||
if (value && !reg.test(value)) {
|
||||
callback(new Error(this.$t('common:ruleMessage:pattern')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
|
|
|
@ -5,8 +5,12 @@
|
|||
<div class="message">
|
||||
<div class="userInfo">
|
||||
<span v-if="isAll">
|
||||
{{ reviewerData.BasicInfoView.FirstName
|
||||
}}{{ reviewerData.BasicInfoView.LastName }}
|
||||
{{
|
||||
isEN
|
||||
? reviewerData.BasicInfoView.FirstName +
|
||||
reviewerData.BasicInfoView.LastName
|
||||
: reviewerData.BasicInfoView.ChineseName
|
||||
}}
|
||||
</span>
|
||||
<span v-else>{{
|
||||
isEN
|
||||
|
@ -39,7 +43,7 @@
|
|||
<span>
|
||||
<span>
|
||||
{{ $t('system:Setting:title:Vacation') }}
|
||||
{{ reviewerData.AuditView.InHoliday ? 'Yes' : 'No' }}
|
||||
{{ InHoliday }}
|
||||
</span>
|
||||
<el-button type="text" @click="handleView">
|
||||
{{ $t('system:Setting:Planned Vacation') }}
|
||||
|
@ -184,7 +188,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
>{{ scope.row.BeginDateStr }}-{{ scope.row.EndDateStr }}</span
|
||||
>{{ scope.row.BeginDateStr }} ~ {{ scope.row.EndDateStr }}</span
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -249,7 +253,7 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
>{{ scope.row.BeginDateStr }}-{{ scope.row.EndDateStr }}</span
|
||||
>{{ scope.row.BeginDateStr }} ~ {{ scope.row.EndDateStr }}</span
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -686,9 +690,12 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getDetail } from '@/api/reviewers'
|
||||
import {
|
||||
getDetail,
|
||||
getIsVacation,
|
||||
getDoctorCriterionFile,
|
||||
} from '@/api/reviewers'
|
||||
import { getAttachmentByType } from '@/api/attachment'
|
||||
import { getDoctorCriterionFile } from '@/api/reviewers'
|
||||
import holiday from './components/info/holiday.vue'
|
||||
export default {
|
||||
name: 'curriculumVitaePreview',
|
||||
|
@ -737,6 +744,7 @@ export default {
|
|||
loading: false,
|
||||
|
||||
holidayVisible: false,
|
||||
InHoliday: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -828,8 +836,23 @@ export default {
|
|||
this.getDetail()
|
||||
this.getResumeList()
|
||||
this.initSowList()
|
||||
this.getIsVacation()
|
||||
},
|
||||
methods: {
|
||||
// 获取是否休假
|
||||
async getIsVacation() {
|
||||
try {
|
||||
let data = {
|
||||
DoctorId: this.reviewerId,
|
||||
}
|
||||
let res = await getIsVacation(data)
|
||||
if (res.IsSuccess) {
|
||||
this.InHoliday = res.Result.IsVacation ? 'Yes' : 'No'
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
// 获取详情
|
||||
async getDetail() {
|
||||
try {
|
||||
|
@ -910,6 +933,7 @@ export default {
|
|||
<style lang="scss" scoped>
|
||||
.curriculumVitaePreview {
|
||||
display: flex;
|
||||
padding: 0 100px;
|
||||
.title {
|
||||
font-size: 18px;
|
||||
border: none;
|
||||
|
|
Loading…
Reference in New Issue