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
93a2d747c5
|
@ -12,6 +12,7 @@
|
||||||
<div style="width: 320px">
|
<div style="width: 320px">
|
||||||
<el-form
|
<el-form
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
|
@submit.native.prevent
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form-item label="关键字">
|
<el-form-item label="关键字">
|
||||||
|
|
|
@ -1,146 +1,149 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="agreements-info">
|
<div class="agreements-info">
|
||||||
<el-table
|
<el-table
|
||||||
:data="agreementList"
|
:data="agreementList"
|
||||||
style="margin-top:10px;"
|
style="margin-top:10px;"
|
||||||
:span-method="objectSpanMethod"
|
:span-method="objectSpanMethod"
|
||||||
border
|
border
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<template slot="empty">
|
||||||
|
<span></span>
|
||||||
<el-table-column
|
</template>
|
||||||
prop="TrialCode"
|
<el-table-column type="index" label="No." width="50" />
|
||||||
label="Trial ID"
|
|
||||||
min-width="50"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="TrialCode"
|
||||||
/>
|
:label="$t('resumeInfo:label:TrialCode')"
|
||||||
<el-table-column prop="Type" label="File Type" min-width="80" show-overflow-tooltip />
|
min-width="50"
|
||||||
<el-table-column
|
show-overflow-tooltip
|
||||||
prop="FileName"
|
/>
|
||||||
label="File Name"
|
<el-table-column prop="Type" :label="$t('resumeInfo:label:Type')" min-width="80" show-overflow-tooltip />
|
||||||
min-width="100"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="FileName"
|
||||||
/>
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
|
min-width="100"
|
||||||
<el-table-column
|
show-overflow-tooltip
|
||||||
prop="CreateTime"
|
/>
|
||||||
label="Upload Time"
|
|
||||||
min-width="60"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="CreateTime"
|
||||||
/>
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
<el-table-column label="Action" min-width="150">
|
min-width="60"
|
||||||
<template slot-scope="scope">
|
show-overflow-tooltip
|
||||||
<el-button
|
/>
|
||||||
v-if="(scope.row.Type=='Statement of Work') ||(scope.row.Type=='Acknowledgement of SOW') || scope.row.Type=='Consultant Agreement'"
|
<el-table-column label="Action" min-width="150">
|
||||||
size="small"
|
<template slot-scope="scope">
|
||||||
type="text"
|
<el-button
|
||||||
@click="preview(scope.$index, scope.row)"
|
v-if="(scope.row.Type=='Statement of Work') ||(scope.row.Type=='Acknowledgement of SOW') || scope.row.Type=='Consultant Agreement'"
|
||||||
>View</el-button>
|
size="small"
|
||||||
</template>
|
type="text"
|
||||||
</el-table-column>
|
@click="preview(scope.$index, scope.row)"
|
||||||
</el-table>
|
>{{$t('resumeInfo:button:view')}}</el-button>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
<script>
|
</el-table>
|
||||||
export default {
|
</div>
|
||||||
props: {
|
</template>
|
||||||
doctorInfo: {
|
<script>
|
||||||
type: Object,
|
export default {
|
||||||
default() {
|
props: {
|
||||||
return {}
|
doctorInfo: {
|
||||||
}
|
type: Object,
|
||||||
}
|
default() {
|
||||||
},
|
return {}
|
||||||
data() {
|
}
|
||||||
return {
|
}
|
||||||
agreementList: [],
|
},
|
||||||
spanArr: [],
|
data() {
|
||||||
pos: 0
|
return {
|
||||||
}
|
agreementList: [],
|
||||||
},
|
spanArr: [],
|
||||||
created() {
|
pos: 0
|
||||||
this.initAgreement()
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
created() {
|
||||||
initAgreement() {
|
this.initAgreement()
|
||||||
if (this.doctorInfo.AttachmentList) {
|
},
|
||||||
this.doctorInfo.AttachmentList.forEach(item => {
|
methods: {
|
||||||
if (item.Type === 'Consultant Agreement') {
|
initAgreement() {
|
||||||
item.TrialCode = ''
|
if (this.doctorInfo.AttachmentList) {
|
||||||
this.agreementList.push(item)
|
this.doctorInfo.AttachmentList.forEach(item => {
|
||||||
}
|
if (item.Type === 'Consultant Agreement') {
|
||||||
})
|
item.TrialCode = ''
|
||||||
this.doctorInfo.SowList.forEach(item => {
|
this.agreementList.push(item)
|
||||||
item.Type = 'Statement of Work'
|
}
|
||||||
this.agreementList.push(item)
|
})
|
||||||
})
|
this.doctorInfo.SowList.forEach(item => {
|
||||||
this.doctorInfo.AckSowList.forEach(item => {
|
item.Type = 'Statement of Work'
|
||||||
item.Type = 'Acknowledgement of SOW'
|
this.agreementList.push(item)
|
||||||
this.agreementList.push(item)
|
})
|
||||||
})
|
this.doctorInfo.AckSowList.forEach(item => {
|
||||||
this.agreementList = this.agreementList.sort((a, b) => {
|
item.Type = 'Acknowledgement of SOW'
|
||||||
if (a.TrialCode < b.TrialCode) {
|
this.agreementList.push(item)
|
||||||
return -1
|
})
|
||||||
} else if (a.TrialCode === b.TrialCode) {
|
this.agreementList = this.agreementList.sort((a, b) => {
|
||||||
return 1
|
if (a.TrialCode < b.TrialCode) {
|
||||||
} else {
|
return -1
|
||||||
return 0
|
} else if (a.TrialCode === b.TrialCode) {
|
||||||
}
|
return 1
|
||||||
})
|
} else {
|
||||||
this.getSpanArr(this.agreementList)
|
return 0
|
||||||
}
|
}
|
||||||
},
|
})
|
||||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
this.getSpanArr(this.agreementList)
|
||||||
if (columnIndex === 1) {
|
}
|
||||||
const _row = this.spanArr[rowIndex]
|
},
|
||||||
const _col = _row > 0 ? 1 : 0
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||||
return {
|
if (columnIndex === 1) {
|
||||||
rowspan: _row,
|
const _row = this.spanArr[rowIndex]
|
||||||
colspan: _col
|
const _col = _row > 0 ? 1 : 0
|
||||||
}
|
return {
|
||||||
}
|
rowspan: _row,
|
||||||
},
|
colspan: _col
|
||||||
getSpanArr(data) {
|
}
|
||||||
for (var i = 0; i < data.length; i++) {
|
}
|
||||||
if (i === 0) {
|
},
|
||||||
this.spanArr.push(1)
|
getSpanArr(data) {
|
||||||
this.pos = 0
|
for (var i = 0; i < data.length; i++) {
|
||||||
} else {
|
if (i === 0) {
|
||||||
// 判断当前元素与上一个元素是否相同
|
this.spanArr.push(1)
|
||||||
if (data[i].TrialCode === data[i - 1].TrialCode) {
|
this.pos = 0
|
||||||
this.spanArr[this.pos] += 1
|
} else {
|
||||||
this.spanArr.push(0)
|
// 判断当前元素与上一个元素是否相同
|
||||||
} else {
|
if (data[i].TrialCode === data[i - 1].TrialCode) {
|
||||||
this.spanArr.push(1)
|
this.spanArr[this.pos] += 1
|
||||||
this.pos = i
|
this.spanArr.push(0)
|
||||||
}
|
} else {
|
||||||
}
|
this.spanArr.push(1)
|
||||||
}
|
this.pos = i
|
||||||
},
|
}
|
||||||
preview(index, row) {
|
}
|
||||||
const filePath = row.FullPath
|
}
|
||||||
if (filePath) {
|
},
|
||||||
window.open(filePath, '_blank')
|
preview(index, row) {
|
||||||
}
|
const filePath = row.FullPath
|
||||||
},
|
if (filePath) {
|
||||||
timeFormatter(row) {
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
|
}
|
||||||
},
|
},
|
||||||
officalFormatter(row, column) {
|
timeFormatter(row) {
|
||||||
if (row.IsOfficial) {
|
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
|
||||||
return 'Yes'
|
},
|
||||||
} else {
|
officalFormatter(row, column) {
|
||||||
return 'No'
|
if (row.IsOfficial) {
|
||||||
}
|
return 'Yes'
|
||||||
}
|
} else {
|
||||||
}
|
return 'No'
|
||||||
}
|
}
|
||||||
</script>
|
}
|
||||||
|
}
|
||||||
<style lang="scss">
|
}
|
||||||
.agreements-info{
|
</script>
|
||||||
padding:5px 15px;
|
|
||||||
font-size:13px;
|
<style lang="scss">
|
||||||
}
|
.agreements-info{
|
||||||
</style>
|
padding:5px 15px;
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -3,23 +3,23 @@
|
||||||
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Name:">
|
<el-form-item :label="$t('resumeInfo:label:BlindName')">
|
||||||
<span>{{ basicInfo.BlindName }}</span>
|
<span>{{ basicInfo.BlindName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Name CN:">
|
<el-form-item :label="$t('resumeInfo:label:ChineseName')">
|
||||||
<span>{{ basicInfo.BlindNameCN }}</span>
|
<span>{{ basicInfo.BlindNameCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Gender:">
|
<el-form-item :label="$t('resumeInfo:label:Sex')">
|
||||||
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
|
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
|
||||||
<span v-else>{{ basicInfo.Sex === 0?'男':'女' }}</span>
|
<span v-else>{{ basicInfo.Sex === 0?'男':'女' }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Title:">
|
<el-form-item :label="$t('resumeInfo:label:Title')">
|
||||||
<span v-if="isEnglish">
|
<span v-if="isEnglish">
|
||||||
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
|
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -1,48 +1,48 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="comment-info">
|
<div class="comment-info">
|
||||||
<el-form :model="statusList" class="demo-form-inline" size="small">
|
<el-form :model="statusList" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Comment:">
|
<el-form-item :label="$t('resumeInfo:label:Comment')">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="statusList.AdminComment"
|
v-model="statusList.AdminComment"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
statusList: {
|
statusList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.comment-info{
|
.comment-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,182 +1,233 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="education-info">
|
<div class="education-info">
|
||||||
<div class="btn-wrapper">
|
<div class="btn-wrapper">
|
||||||
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">Download</el-button>
|
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">{{$t('resumeInfo:button:Download')}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tblList"
|
:data="tblList"
|
||||||
:span-method="objectSpanMethod"
|
:span-method="objectSpanMethod"
|
||||||
size="small"
|
size="small"
|
||||||
@selection-change="selectMore"
|
@selection-change="selectMore"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" align="left" width="50" />
|
<template slot="empty">
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<span></span>
|
||||||
<el-table-column prop="Type" label="Type" min-width="50" show-overflow-tooltip />
|
</template>
|
||||||
<el-table-column
|
<el-table-column type="selection" align="left" width="50" />
|
||||||
prop="FileName"
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
label="File Name"
|
<el-table-column prop="Type" :label="$t('resumeInfo:label:Type')" min-width="50" show-overflow-tooltip />
|
||||||
min-width="80"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="FileName"
|
||||||
/>
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
<el-table-column
|
min-width="80"
|
||||||
prop="CreateTime"
|
show-overflow-tooltip
|
||||||
label="Upload Time"
|
/>
|
||||||
min-width="50"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="CreateTime"
|
||||||
/>
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
<el-table-column label="Action" min-width="150">
|
min-width="50"
|
||||||
<template slot-scope="scope">
|
show-overflow-tooltip
|
||||||
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">View</el-button>
|
/>
|
||||||
</template>
|
<el-table-column :label="$t('common:action:action')" min-width="150">
|
||||||
</el-table-column>
|
<template slot-scope="scope">
|
||||||
</el-table>
|
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">{{$t('resumeInfo:button:view')}}</el-button>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
<script>
|
</el-table>
|
||||||
import { downloadByAttachmentId } from '@/api/reviewers'
|
</div>
|
||||||
export default {
|
</template>
|
||||||
props: {
|
<script>
|
||||||
attachmentList: {
|
import { getDoctorAttachment } from '@/api/reviewers'
|
||||||
type: Array,
|
import axios from "axios";
|
||||||
default() {
|
import JSZip from "jszip";
|
||||||
return []
|
import { saveAs } from 'file-saver'
|
||||||
}
|
export default {
|
||||||
},
|
props: {
|
||||||
doctorId: {
|
attachmentList: {
|
||||||
type: String,
|
type: Array,
|
||||||
default: ''
|
default() {
|
||||||
}
|
return []
|
||||||
},
|
}
|
||||||
data() {
|
},
|
||||||
return {
|
doctorId: {
|
||||||
tblList: [],
|
type: String,
|
||||||
checkID: [],
|
default: ''
|
||||||
spanArr: [],
|
}
|
||||||
pos: 0
|
},
|
||||||
}
|
data() {
|
||||||
},
|
return {
|
||||||
created() {
|
tblList: [],
|
||||||
this.tblList = this.filterListByType(this.attachmentList)
|
checkID: [],
|
||||||
this.getSpanArr(this.tblList)
|
spanArr: [],
|
||||||
},
|
pos: 0
|
||||||
methods: {
|
}
|
||||||
filterListByType(arr) {
|
},
|
||||||
var list = []
|
created() {
|
||||||
if (arr.length > 0) {
|
this.tblList = this.filterListByType(this.attachmentList)
|
||||||
arr.forEach(item => {
|
this.getSpanArr(this.tblList)
|
||||||
if (item.Type === 'Diploma of the highest medical degree') {
|
},
|
||||||
list.push(item)
|
methods: {
|
||||||
}
|
filterListByType(arr) {
|
||||||
})
|
var list = []
|
||||||
arr.forEach(item => {
|
if (arr.length > 0) {
|
||||||
if (item.Type === 'Medical Qualification Certificate') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Diploma of the highest medical degree') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
arr.forEach(item => {
|
})
|
||||||
if (item.Type === 'Practice License') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Medical Qualification Certificate') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
arr.forEach(item => {
|
})
|
||||||
if (item.Type === 'Modality Certificate(CT)') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Practice License') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
arr.forEach(item => {
|
})
|
||||||
if (item.Type === 'Modality Certificate(MRI)') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Modality Certificate(CT)') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
arr.forEach(item => {
|
})
|
||||||
if (item.Type === 'Modality Certificate(NM)') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Modality Certificate(MRI)') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
arr.forEach(item => {
|
})
|
||||||
if (item.Type === 'Modality Certificate(US)') {
|
arr.forEach(item => {
|
||||||
list.push(item)
|
if (item.Type === 'Modality Certificate(NM)') {
|
||||||
}
|
list.push(item)
|
||||||
})
|
}
|
||||||
}
|
})
|
||||||
return list
|
arr.forEach(item => {
|
||||||
},
|
if (item.Type === 'Modality Certificate(US)') {
|
||||||
downloadAttachement() {
|
list.push(item)
|
||||||
downloadByAttachmentId(this.doctorId, this.checkID).then(res => {
|
}
|
||||||
if (res.IsSuccess) {
|
})
|
||||||
var fullPath = res.Result.FullFilePath
|
}
|
||||||
window.open(fullPath)
|
return list
|
||||||
}
|
},
|
||||||
})
|
getFileData(fileUrl) {
|
||||||
},
|
return new Promise((resolve, reject) => {
|
||||||
preview(index, row) {
|
axios(fileUrl, {
|
||||||
const filePath = row.FullPath
|
method: 'GET',
|
||||||
if (filePath) {
|
responseType: 'blob' // 返回的数据会被强制转为blob类型 ,转换成arraybuffer 也行
|
||||||
window.open(filePath, '_blank')
|
}).then((res) => {
|
||||||
}
|
console.log('res', res)
|
||||||
},
|
resolve(res)
|
||||||
selectMore(val) {
|
}).catch(error => {
|
||||||
const arr = []
|
reject(error)
|
||||||
for (let index = 0; index < val.length; index++) {
|
})
|
||||||
arr.push(val[index].Id)
|
})
|
||||||
}
|
},
|
||||||
this.checkID = arr
|
async handleBatchDown(dataSource) {
|
||||||
},
|
return new Promise(resolve => {
|
||||||
getSpanArr(data) {
|
const zip = new JSZip() // 创建实例对象
|
||||||
for (var i = 0; i < data.length; i++) {
|
const promises = []
|
||||||
if (i === 0) {
|
dataSource.FileList.forEach((item) => {
|
||||||
this.spanArr.push(1)
|
console.log(this.OSSclientConfig.basePath + item.Path)
|
||||||
this.pos = 0
|
const promise = this.getFileData(this.OSSclientConfig.basePath + item.Path).then((res) => {
|
||||||
} else {
|
const fileName = item.FileName + ''
|
||||||
// 判断当前元素与上一个元素是否相同
|
// 创建文件用file(),创建文件夹用 floder()
|
||||||
if (data[i].Type === data[i - 1].Type) {
|
zip.file(fileName, res.data, {binary: true})
|
||||||
this.spanArr[this.pos] += 1
|
})
|
||||||
this.spanArr.push(0)
|
promises.push(promise)
|
||||||
} else {
|
})
|
||||||
this.spanArr.push(1)
|
console.log(promises)
|
||||||
this.pos = i
|
// 生成 zip 文件
|
||||||
}
|
Promise.all(promises).then(() => {
|
||||||
}
|
// 生成zip 文件
|
||||||
}
|
zip.generateAsync({
|
||||||
},
|
type: 'blob',
|
||||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
compression: 'DEFLATE', // STORE: 默认不压缩, DEFLATE:需要压缩
|
||||||
if (columnIndex === 2) {
|
compressionOptions: {
|
||||||
const _row = this.spanArr[rowIndex]
|
level: 9 // 压缩等级 1~9 1 压缩速度最快, 9 最优压缩方式
|
||||||
const _col = _row > 0 ? 1 : 0
|
}
|
||||||
return {
|
}).then((res) => {
|
||||||
rowspan: _row,
|
saveAs(res, dataSource.ReviewerCode + '_Credentials.zip') // 使用FileSaver.saveAs保存文件,文件名可自定义
|
||||||
colspan: _col
|
resolve()
|
||||||
}
|
})
|
||||||
} else if (columnIndex === 3) {
|
}).catch(reason => {
|
||||||
const _row = this.spanArr[rowIndex]
|
resolve()
|
||||||
const _col = _row > 0 ? 1 : 0
|
})
|
||||||
return {
|
})
|
||||||
rowspan: _row,
|
},
|
||||||
colspan: _col
|
downloadAttachement() {
|
||||||
}
|
getDoctorAttachment({
|
||||||
} else if (columnIndex === 4) {
|
DoctorId: this.doctorId,
|
||||||
const _row = this.spanArr[rowIndex]
|
AttachmentIdList: this.checkID
|
||||||
const _col = _row > 0 ? 1 : 0
|
}).then(res => {
|
||||||
return {
|
this.handleBatchDown(res.Result)
|
||||||
rowspan: _row,
|
})
|
||||||
colspan: _col
|
},
|
||||||
}
|
preview(index, row) {
|
||||||
}
|
const filePath = row.FullPath
|
||||||
},
|
if (filePath) {
|
||||||
timeFormatter(row) {
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
return new Date(row.UpdateTime).format('yyyy-MM-dd hh:mm:ss')
|
}
|
||||||
}
|
},
|
||||||
}
|
selectMore(val) {
|
||||||
}
|
const arr = []
|
||||||
</script>
|
for (let index = 0; index < val.length; index++) {
|
||||||
|
arr.push(val[index].Id)
|
||||||
<style lang="scss">
|
}
|
||||||
.education-info{
|
this.checkID = arr
|
||||||
padding:5px 15px;
|
},
|
||||||
font-size:13px;
|
getSpanArr(data) {
|
||||||
.btn-wrapper{
|
for (var i = 0; i < data.length; i++) {
|
||||||
display: flex;
|
if (i === 0) {
|
||||||
align-items: center;
|
this.spanArr.push(1)
|
||||||
}
|
this.pos = 0
|
||||||
}
|
} else {
|
||||||
</style>
|
// 判断当前元素与上一个元素是否相同
|
||||||
|
if (data[i].Type === data[i - 1].Type) {
|
||||||
|
this.spanArr[this.pos] += 1
|
||||||
|
this.spanArr.push(0)
|
||||||
|
} else {
|
||||||
|
this.spanArr.push(1)
|
||||||
|
this.pos = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||||
|
if (columnIndex === 2) {
|
||||||
|
const _row = this.spanArr[rowIndex]
|
||||||
|
const _col = _row > 0 ? 1 : 0
|
||||||
|
return {
|
||||||
|
rowspan: _row,
|
||||||
|
colspan: _col
|
||||||
|
}
|
||||||
|
} else if (columnIndex === 3) {
|
||||||
|
const _row = this.spanArr[rowIndex]
|
||||||
|
const _col = _row > 0 ? 1 : 0
|
||||||
|
return {
|
||||||
|
rowspan: _row,
|
||||||
|
colspan: _col
|
||||||
|
}
|
||||||
|
} else if (columnIndex === 4) {
|
||||||
|
const _row = this.spanArr[rowIndex]
|
||||||
|
const _col = _row > 0 ? 1 : 0
|
||||||
|
return {
|
||||||
|
rowspan: _row,
|
||||||
|
colspan: _col
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
timeFormatter(row) {
|
||||||
|
return new Date(row.UpdateTime).format('yyyy-MM-dd hh:mm:ss')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.education-info{
|
||||||
|
padding:5px 15px;
|
||||||
|
font-size:13px;
|
||||||
|
.btn-wrapper{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,188 +1,194 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="education-info">
|
<div class="education-info">
|
||||||
<div class="title">Education (in chronological order)</div>
|
<div class="title">{{ $t('resumeInfo:label:Education') }}</div>
|
||||||
<el-table :data="educationList" border style="width: 100%;margin-top:10px;" size="small">
|
<el-table :data="educationList" border style="width: 100%;margin-top:10px;" size="small">
|
||||||
<el-table-column type="index" label="No." width="45" />
|
<template slot="empty">
|
||||||
<el-table-column
|
<span></span>
|
||||||
prop="BeginDateStr"
|
</template>
|
||||||
label="Start"
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="45" />
|
||||||
min-width="55"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="BeginDateStr"
|
||||||
/>
|
:label="$t('resumeInfo:label:BeginDateStr')"
|
||||||
<el-table-column
|
min-width="55"
|
||||||
prop="EndDateStr"
|
show-overflow-tooltip
|
||||||
label="End"
|
/>
|
||||||
min-width="55"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="EndDateStr"
|
||||||
/>
|
:label="$t('resumeInfo:label:EndDateStr')"
|
||||||
<el-table-column prop="Degree" label="Degree" min-width="70" show-overflow-tooltip>
|
min-width="55"
|
||||||
<template slot-scope="scope">
|
show-overflow-tooltip
|
||||||
<span v-show="scope.row.Degree">
|
/>
|
||||||
{{ isEnglish?scope.row.Degree:scope.row.DegreeCN }}
|
<el-table-column prop="Degree" :label="$t('resumeInfo:label:Degree')" min-width="70" show-overflow-tooltip>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.Degree">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.Degree:scope.row.DegreeCN }}
|
||||||
<el-table-column prop="Major" label="Major" min-width="130" show-overflow-tooltip>
|
</span>
|
||||||
<template slot-scope="scope">
|
</template>
|
||||||
<span v-show="scope.row.Major">
|
</el-table-column>
|
||||||
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
<el-table-column prop="Major" :label="$t('resumeInfo:label:Major')" min-width="130" show-overflow-tooltip>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.Major">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
||||||
<el-table-column
|
</span>
|
||||||
prop="Organization"
|
</template>
|
||||||
label="Institution"
|
</el-table-column>
|
||||||
min-width="150"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="Organization"
|
||||||
>
|
:label="$t('resumeInfo:label:Institution')"
|
||||||
<template slot-scope="scope">
|
min-width="150"
|
||||||
<span v-show="scope.row.Organization">
|
show-overflow-tooltip
|
||||||
{{ isEnglish?scope.row.Organization:scope.row.OrganizationCN }}
|
>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.Organization">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.Organization:scope.row.OrganizationCN }}
|
||||||
<el-table-column prop="City" label="City" min-width="70" show-overflow-tooltip>
|
</span>
|
||||||
<template slot-scope="scope">
|
</template>
|
||||||
<span v-show="scope.row.City">
|
</el-table-column>
|
||||||
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
<el-table-column prop="City" :label="$t('resumeInfo:label:City')" min-width="70" show-overflow-tooltip>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.City">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
||||||
<el-table-column
|
</span>
|
||||||
prop="Province"
|
</template>
|
||||||
label="State/Province"
|
</el-table-column>
|
||||||
min-width="80"
|
<el-table-column
|
||||||
show-overflow-tooltip
|
prop="Province"
|
||||||
>
|
:label="$t('resumeInfo:label:Province')"
|
||||||
<template slot-scope="scope">
|
min-width="80"
|
||||||
<span v-show="scope.row.Province">
|
show-overflow-tooltip
|
||||||
{{ isEnglish?scope.row.Province:scope.row.ProvinceCN }}
|
>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.Province">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.Province:scope.row.ProvinceCN }}
|
||||||
<el-table-column prop="Country" label="Country" min-width="70" show-overflow-tooltip>
|
</span>
|
||||||
<template slot-scope="scope">
|
</template>
|
||||||
<span v-show="scope.row.Country">
|
</el-table-column>
|
||||||
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
<el-table-column prop="Country" :label="$t('resumeInfo:label:Country')" min-width="70" show-overflow-tooltip>
|
||||||
</span>
|
<template slot-scope="scope">
|
||||||
</template>
|
<span v-show="scope.row.Country">
|
||||||
</el-table-column>
|
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
||||||
</el-table>
|
</span>
|
||||||
|
</template>
|
||||||
<div class="title">Postgraduate Training (in chronological order)</div>
|
</el-table-column>
|
||||||
<el-table :data="postgraduateList" border style="width: 100%" size="small">
|
</el-table>
|
||||||
<el-table-column type="index" label="No." width="45" />
|
|
||||||
<el-table-column
|
<div class="title">{{$t('resumeInfo:label:PostgraduateTraining')}}</div>
|
||||||
prop="BeginDateStr"
|
<el-table :data="postgraduateList" border style="width: 100%" size="small">
|
||||||
label="Start"
|
<template slot="empty">
|
||||||
min-width="55"
|
<span></span>
|
||||||
show-overflow-tooltip
|
</template>
|
||||||
/>
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="45" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EndDateStr"
|
prop="BeginDateStr"
|
||||||
label="End"
|
:label="$t('resumeInfo:label:BeginDateStr')"
|
||||||
min-width="55"
|
min-width="55"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="Training" label="Training" min-width="70" show-overflow-tooltip>
|
<el-table-column
|
||||||
<template slot-scope="scope">
|
prop="EndDateStr"
|
||||||
<span v-show="scope.row.Training">
|
:label="$t('resumeInfo:label:EndDateStr')"
|
||||||
{{ isEnglish?scope.row.Training:scope.row.TrainingCN }}
|
min-width="55"
|
||||||
</span>
|
show-overflow-tooltip
|
||||||
</template>
|
/>
|
||||||
</el-table-column>
|
<el-table-column prop="Training" :label="$t('resumeInfo:label:Training')" min-width="70" show-overflow-tooltip>
|
||||||
<el-table-column
|
<template slot-scope="scope">
|
||||||
prop="Major"
|
<span v-show="scope.row.Training">
|
||||||
label="Specialty / Research Field"
|
{{ isEnglish?scope.row.Training:scope.row.TrainingCN }}
|
||||||
min-width="140"
|
</span>
|
||||||
show-overflow-tooltip
|
</template>
|
||||||
>
|
</el-table-column>
|
||||||
<template slot-scope="scope">
|
<el-table-column
|
||||||
<span v-show="scope.row.Major">
|
prop="Major"
|
||||||
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
:label="$t('resumeInfo:label:Specialty')"
|
||||||
</span>
|
min-width="140"
|
||||||
</template>
|
show-overflow-tooltip
|
||||||
</el-table-column>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
<el-table-column prop="Hospital" label="Hospital" min-width="110" show-overflow-tooltip>
|
<span v-show="scope.row.Major">
|
||||||
<template slot-scope="scope">
|
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
||||||
<span v-show="scope.row.Hospital">
|
</span>
|
||||||
{{ isEnglish?scope.row.Hospital:scope.row.HospitalCN }}
|
</template>
|
||||||
</span>
|
</el-table-column>
|
||||||
</template>
|
|
||||||
</el-table-column>
|
<el-table-column prop="Hospital" :label="$t('resumeInfo:label:Hospital')" min-width="110" show-overflow-tooltip>
|
||||||
<el-table-column prop="School" label="University" min-width="120" show-overflow-tooltip>
|
<template slot-scope="scope">
|
||||||
<template slot-scope="scope">
|
<span v-show="scope.row.Hospital">
|
||||||
<span v-show="scope.row.School">
|
{{ isEnglish?scope.row.Hospital:scope.row.HospitalCN }}
|
||||||
{{ isEnglish?scope.row.School:scope.row.SchoolCN }}
|
</span>
|
||||||
</span>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="School" :label="$t('resumeInfo:label:University')" min-width="120" show-overflow-tooltip>
|
||||||
<el-table-column prop="City" label="City" min-width="70" show-overflow-tooltip>
|
<template slot-scope="scope">
|
||||||
<template slot-scope="scope">
|
<span v-show="scope.row.School">
|
||||||
<span v-show="scope.row.City">
|
{{ isEnglish?scope.row.School:scope.row.SchoolCN }}
|
||||||
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
</span>
|
||||||
</span>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="City" :label="$t('resumeInfo:label:City')" min-width="70" show-overflow-tooltip>
|
||||||
<el-table-column
|
<template slot-scope="scope">
|
||||||
prop="Province"
|
<span v-show="scope.row.City">
|
||||||
label="State/Province"
|
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
||||||
min-width="90"
|
</span>
|
||||||
show-overflow-tooltip
|
</template>
|
||||||
>
|
</el-table-column>
|
||||||
<template slot-scope="scope">
|
<el-table-column
|
||||||
<span v-show="scope.row.Province">
|
prop="Province"
|
||||||
{{ isEnglish?scope.row.Province:scope.row.ProvinceCN }}
|
:label="$t('resumeInfo:label:StateProvince')"
|
||||||
</span>
|
min-width="90"
|
||||||
</template>
|
show-overflow-tooltip
|
||||||
</el-table-column>
|
>
|
||||||
<el-table-column prop="Country" label="Country" min-width="70" show-overflow-tooltip>
|
<template slot-scope="scope">
|
||||||
<template slot-scope="scope">
|
<span v-show="scope.row.Province">
|
||||||
<span v-show="scope.row.Country">
|
{{ isEnglish?scope.row.Province:scope.row.ProvinceCN }}
|
||||||
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
</span>
|
||||||
</span>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="Country" :label="$t('resumeInfo:label:Country')" min-width="70" show-overflow-tooltip>
|
||||||
</el-table>
|
<template slot-scope="scope">
|
||||||
</div>
|
<span v-show="scope.row.Country">
|
||||||
</template>
|
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
||||||
<script>
|
</span>
|
||||||
export default {
|
</template>
|
||||||
props: {
|
</el-table-column>
|
||||||
educationList: {
|
</el-table>
|
||||||
type: Array,
|
</div>
|
||||||
default() {
|
</template>
|
||||||
return []
|
<script>
|
||||||
}
|
export default {
|
||||||
},
|
props: {
|
||||||
postgraduateList: {
|
educationList: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default() {
|
default() {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isEnglish: {
|
postgraduateList: {
|
||||||
type: Boolean
|
type: Array,
|
||||||
}
|
default() {
|
||||||
},
|
return []
|
||||||
methods: {
|
}
|
||||||
}
|
},
|
||||||
}
|
isEnglish: {
|
||||||
</script>
|
type: Boolean
|
||||||
|
}
|
||||||
<style lang="scss">
|
},
|
||||||
.education-info{
|
methods: {
|
||||||
padding:5px 15px;
|
}
|
||||||
font-size:13px;
|
}
|
||||||
.title{
|
</script>
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
<style lang="scss">
|
||||||
background-color: #9c9fa6;
|
.education-info{
|
||||||
font-size: 14px;
|
padding:5px 15px;
|
||||||
padding-left: 10px;
|
font-size:13px;
|
||||||
color: #fff;
|
.title{
|
||||||
margin: 10px 0;
|
height: 30px;
|
||||||
}
|
line-height: 30px;
|
||||||
}
|
background-color: #9c9fa6;
|
||||||
</style>
|
font-size: 14px;
|
||||||
|
padding-left: 10px;
|
||||||
|
color: #fff;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -3,25 +3,25 @@
|
||||||
<el-form :inline="true" :model="employment" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="employment" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Department:">
|
<el-form-item :label="$t('resumeInfo:label:Department')">
|
||||||
<span v-if="isEnglish">{{ employment.Department }}</span>
|
<span v-if="isEnglish">{{ employment.Department }}</span>
|
||||||
<span v-else>{{ employment.DepartmentCN }}</span>
|
<span v-else>{{ employment.DepartmentCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Rank:">
|
<el-form-item :label="$t('resumeInfo:label:Rank')">
|
||||||
<span v-if="isEnglish">{{ employment.Rank }}</span>
|
<span v-if="isEnglish">{{ employment.Rank }}</span>
|
||||||
<span v-else>{{ employment.RankCN }}</span>
|
<span v-else>{{ employment.RankCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Physician:">
|
<el-form-item :label="$t('resumeInfo:label:Physician')">
|
||||||
<span v-if="isEnglish">{{ employment.Physician }}</span>
|
<span v-if="isEnglish">{{ employment.Physician }}</span>
|
||||||
<span v-else>{{ employment.PhysicianCN }}</span>
|
<span v-else>{{ employment.PhysicianCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Position:">
|
<el-form-item :label="$t('resumeInfo:label:Position')">
|
||||||
<span v-if="isEnglish">{{ employment.Position }}</span>
|
<span v-if="isEnglish">{{ employment.Position }}</span>
|
||||||
<span v-else>{{ employment.PositionCN }}</span>
|
<span v-else>{{ employment.PositionCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -30,31 +30,31 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Hospital:">
|
<el-form-item :label="$t('resumeInfo:label:Hospital')">
|
||||||
<span v-if="isEnglish">{{ employment.HospitalName }}</span>
|
<span v-if="isEnglish">{{ employment.HospitalName }}</span>
|
||||||
<span v-else>{{ employment.HospitalNameCN }}</span>
|
<span v-else>{{ employment.HospitalNameCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Affiliated University:">
|
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
||||||
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
||||||
<span v-else>{{ employment.UniversityAffiliatedCN }}</span>
|
<span v-else>{{ employment.UniversityAffiliatedCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="City:">
|
<el-form-item :label="$t('resumeInfo:label:City')">
|
||||||
<span v-if="isEnglish">{{ employment.City }}</span>
|
<span v-if="isEnglish">{{ employment.City }}</span>
|
||||||
<span v-else>{{ employment.CityCN }}</span>
|
<span v-else>{{ employment.CityCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="State/Province:">
|
<el-form-item :label="$t('resumeInfo:label:StateProvince')">
|
||||||
<span v-if="isEnglish">{{ employment.Province }}</span>
|
<span v-if="isEnglish">{{ employment.Province }}</span>
|
||||||
<span v-else>{{ employment.ProvinceCN }}</span>
|
<span v-else>{{ employment.ProvinceCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Country:">
|
<el-form-item :label="$t('resumeInfo:label:Country:')">
|
||||||
<span v-if="isEnglish">{{ employment.Country }}</span>
|
<span v-if="isEnglish">{{ employment.Country }}</span>
|
||||||
<span v-else>{{ employment.CountryCN }}</span>
|
<span v-else>{{ employment.CountryCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="research-info">
|
<div class="research-info">
|
||||||
<el-form :model="researchInfo" class="demo-form-inline" size="small">
|
<el-form :model="researchInfo" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Field of Research:">
|
<el-form-item :label="$t('resumeInfo:label:FieldofResearch')" prop="FieldofResearch">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.Research"
|
v-model="researchInfo.Research"
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Grants:">
|
<el-form-item :label="$t('resumeInfo:label:Grants')" prop="Grants">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.Grants"
|
v-model="researchInfo.Grants"
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Publications:">
|
<el-form-item :label="$t('resumeInfo:label:Publications')" prop="BlindPublications">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="auditView.BlindPublications"
|
v-model="auditView.BlindPublications"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Awards & Honors:">
|
<el-form-item :label="$t('resumeInfo:label:Awards&Honors')" prop="AwardsHonors">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.AwardsHonors"
|
v-model="researchInfo.AwardsHonors"
|
||||||
|
|
|
@ -1,98 +1,101 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="resume-info">
|
<div class="resume-info">
|
||||||
<el-table :data="list" style="margin-top:10px;" size="small">
|
<el-table :data="list" style="margin-top:10px;" size="small">
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<template slot="empty">
|
||||||
|
<span></span>
|
||||||
<el-table-column
|
</template>
|
||||||
prop="FileName"
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
label="File Name"
|
<el-table-column
|
||||||
min-width="60"
|
prop="FileName"
|
||||||
show-overflow-tooltip
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
/>
|
min-width="60"
|
||||||
<el-table-column
|
show-overflow-tooltip
|
||||||
prop="Isoffical"
|
/>
|
||||||
label="Offical"
|
<el-table-column
|
||||||
min-width="50"
|
prop="Isoffical"
|
||||||
:formatter="officalFormatter"
|
:label="$t('resumeInfo:label:Isoffical')"
|
||||||
show-overflow-tooltip
|
min-width="50"
|
||||||
/>
|
:formatter="officalFormatter"
|
||||||
<el-table-column
|
show-overflow-tooltip
|
||||||
prop="Language"
|
/>
|
||||||
label="Language"
|
<el-table-column
|
||||||
min-width="50"
|
prop="Language"
|
||||||
show-overflow-tooltip
|
:label="$t('resumeInfo:label:Language')"
|
||||||
>
|
min-width="50"
|
||||||
<template slot-scope="scope">
|
show-overflow-tooltip
|
||||||
{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'' }}
|
>
|
||||||
</template>
|
<template slot-scope="scope">
|
||||||
</el-table-column>
|
{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'' }}
|
||||||
<el-table-column
|
</template>
|
||||||
prop="CreateTime"
|
</el-table-column>
|
||||||
label="Upload Time"
|
<el-table-column
|
||||||
min-width="60"
|
prop="CreateTime"
|
||||||
show-overflow-tooltip
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
/>
|
min-width="60"
|
||||||
<el-table-column label="Action" min-width="150">
|
show-overflow-tooltip
|
||||||
<template slot-scope="scope">
|
/>
|
||||||
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">Download</el-button>
|
<el-table-column :label="$t('common:action:action')" min-width="150">
|
||||||
</template>
|
<template slot-scope="scope">
|
||||||
</el-table-column>
|
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">{{ $t('common:button:download') }}</el-button>
|
||||||
</el-table>
|
</template>
|
||||||
</div>
|
</el-table-column>
|
||||||
</template>
|
</el-table>
|
||||||
<script>
|
</div>
|
||||||
export default {
|
</template>
|
||||||
props: {
|
<script>
|
||||||
resumeList: {
|
export default {
|
||||||
type: Array,
|
props: {
|
||||||
default() {
|
resumeList: {
|
||||||
return []
|
type: Array,
|
||||||
}
|
default() {
|
||||||
}
|
return []
|
||||||
},
|
}
|
||||||
data() {
|
}
|
||||||
return {
|
},
|
||||||
list: []
|
data() {
|
||||||
}
|
return {
|
||||||
},
|
list: []
|
||||||
created() {
|
}
|
||||||
this.list = this.filterResume(this.resumeList)
|
},
|
||||||
},
|
created() {
|
||||||
methods: {
|
this.list = this.filterResume(this.resumeList)
|
||||||
filterResume(arr) {
|
},
|
||||||
var list = []
|
methods: {
|
||||||
if (arr.length > 0) {
|
filterResume(arr) {
|
||||||
arr.forEach(item => {
|
var list = []
|
||||||
if (item.Type === 'Resume') {
|
if (arr.length > 0) {
|
||||||
list.push(item)
|
arr.forEach(item => {
|
||||||
}
|
if (item.Type === 'Resume') {
|
||||||
})
|
list.push(item)
|
||||||
}
|
}
|
||||||
return list
|
})
|
||||||
},
|
}
|
||||||
preview(index, row) {
|
return list
|
||||||
const filePath = row.FullPath
|
},
|
||||||
if (filePath) {
|
preview(index, row) {
|
||||||
window.open(filePath, '_blank')
|
const filePath = row.FullPath
|
||||||
}
|
if (filePath) {
|
||||||
},
|
console.log(this.OSSclientConfig.basePath + filePath)
|
||||||
timeFormatter(row) {
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
|
}
|
||||||
},
|
},
|
||||||
officalFormatter(row, column) {
|
timeFormatter(row) {
|
||||||
if (row.IsOfficial) {
|
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
|
||||||
return 'Yes'
|
},
|
||||||
} else {
|
officalFormatter(row, column) {
|
||||||
return 'No'
|
if (row.IsOfficial) {
|
||||||
}
|
return 'Yes'
|
||||||
}
|
} else {
|
||||||
}
|
return 'No'
|
||||||
}
|
}
|
||||||
</script>
|
}
|
||||||
|
}
|
||||||
<style lang="scss">
|
}
|
||||||
.resume-info{
|
</script>
|
||||||
padding:5px 15px;
|
|
||||||
font-size:13px;
|
<style lang="scss">
|
||||||
}
|
.resume-info{
|
||||||
</style>
|
padding:5px 15px;
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="specialty-info">
|
<div class="specialty-info">
|
||||||
<el-form :model="specialty" class="demo-form-inline" size="small">
|
<el-form :model="specialty" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Specialty:">
|
<el-form-item :label="$t('resumeInfo:label:Speciality')">
|
||||||
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
|
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
|
||||||
<span v-else>{{ specialty.SpecialityCN }}</span>
|
<span v-else>{{ specialty.SpecialityCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Subspeciality:">
|
<el-form-item :label="$t('resumeInfo:label:Subspeciality')">
|
||||||
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
|
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
|
||||||
<span v-else>{{ specialty.SubspecialityCNList }}</span>
|
<span v-else>{{ specialty.SubspecialityCNList }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Modality:">
|
<el-form-item :label="$t('resumeInfo:label:ReadingType')">
|
||||||
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
|
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
|
||||||
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
|
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
specialty: {
|
specialty: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isEnglish: {
|
isEnglish: {
|
||||||
type: Boolean
|
type: Boolean
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.specialty-info{
|
.specialty-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Pending:">
|
<el-form-item :label="$t('resumeInfo:label:Pending')">
|
||||||
<span v-if="statusList.Submitted" style="color:#428bca">
|
<span v-if="statusList.Submitted" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Approved:">
|
<el-form-item :label="$t('resumeInfo:label:Approved')">
|
||||||
<span v-if="statusList.Approved" style="color:#428bca">
|
<span v-if="statusList.Approved" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Reading:">
|
<el-form-item :label="$t('resumeInfo:label:Reading')">
|
||||||
<span v-if="statusList.Reading" style="color:#428bca">
|
<span v-if="statusList.Reading" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -44,19 +44,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="On Vacation:">
|
<el-form-item :label="$t('resumeInfo:label:Vacation')">
|
||||||
<span style="font-size:12px;margin-right:20px;">{{ holiday }}</span>
|
<span style="font-size:12px;margin-right:20px;">{{ holiday }}</span>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="initHolidayList"
|
@click="initHolidayList"
|
||||||
>Planned Vacation</el-button>
|
>{{ $t('resumeInfo:label:PlannedVacation') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="Vacation"
|
:title="$t('resumeInfo:label:Vacation')"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="35%"
|
width="35%"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
@ -65,13 +65,13 @@
|
||||||
<el-table-column type="index" />
|
<el-table-column type="index" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
property="StartDate"
|
property="StartDate"
|
||||||
label="Beginning Date"
|
:label="$t('resumeInfo:label:BeginningDate')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
:formatter="beginTimeFormatter"
|
:formatter="beginTimeFormatter"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
property="EndDate"
|
property="EndDate"
|
||||||
label="End Date"
|
:label="$t('resumeInfo:label:EndDate')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
:formatter="endTimeFormatter"
|
:formatter="endTimeFormatter"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="trialExperience-info">
|
<div class="trialExperience-info">
|
||||||
<div class="title">Clinical Trial Experience</div>
|
<div class="title">{{$t('resumeInfo:title:ClinicalTrialExperience')}}</div>
|
||||||
<el-table :data="GCPList" border style="width: 100%" size="small">
|
<el-table :data="GCPList" border style="width: 100%" size="small">
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<template slot="empty">
|
||||||
<el-table-column prop="Phase" label="Phase" min-width="20" show-overflow-tooltip />
|
<span></span>
|
||||||
|
</template>
|
||||||
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
|
<el-table-column prop="Phase" :label="$t('resumeInfo:label:Phase')" min-width="20" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EvaluationCriteriaList"
|
prop="EvaluationCriteriaList"
|
||||||
label="Review Criteria"
|
:label="$t('resumeInfo:label:ReviewCriteria')"
|
||||||
min-width="40"
|
min-width="40"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -16,24 +19,30 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitReadingCount"
|
prop="VisitReadingCount"
|
||||||
label="Visit Reading Count"
|
:label="$t('resumeInfo:label:VisitReadingCount')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EvaluationContent"
|
prop="EvaluationContent"
|
||||||
label="Indication"
|
:label="$t('resumeInfo:label:EvaluationContent')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-form :model="form" class="demo-form-inline" size="small">
|
<el-form :model="form" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="GCP Certificate:">
|
<el-form-item :label="$t('resumeInfo:label:GCPCertificate')">
|
||||||
<span>{{ GCP }}</span>
|
<span>{{ GCP }}</span>
|
||||||
|
<a
|
||||||
|
v-if="form.GCP"
|
||||||
|
href="#"
|
||||||
|
class="view"
|
||||||
|
@click.prevent="previewGCP()"
|
||||||
|
>View</a>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Other Relevant Experience:">
|
<el-form-item :label="$t('resumeInfo:label:OtherRelevantExperience')">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="form.OtherClinicalExperience"
|
v-model="form.OtherClinicalExperience"
|
||||||
|
|
|
@ -16,36 +16,24 @@
|
||||||
|
|
||||||
<div style="flex:1;margin-top:50px;overflow-y: auto;">
|
<div style="flex:1;margin-top:50px;overflow-y: auto;">
|
||||||
<el-collapse v-model="activeNames">
|
<el-collapse v-model="activeNames">
|
||||||
<el-collapse-item title="Basic Info" name="1">
|
<el-collapse-item :title="$t('resumeInfo:title:BasicInfo')" name="1">
|
||||||
<basic-info :basic-info="doctorInfo.BasicInfoView" :is-english="isEnglish" />
|
<basic-info :basic-info="doctorInfo.BasicInfoView" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Employment" name="2">
|
<el-collapse-item :title="$t('resumeInfo:title:Employment')" name="2">
|
||||||
<Employment :employment="workInfo" :is-english="isEnglish" />
|
<Employment :employment="workInfo" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Specialty" name="3">
|
<el-collapse-item :title="$t('resumeInfo:title:Specialty')" name="3">
|
||||||
<Specialty :specialty="specialtyList" :is-english="isEnglish" />
|
<Specialty :specialty="specialtyList" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Education & Training" name="4">
|
<el-collapse-item :title="$t('resumeInfo:title:Education&Training')" name="4">
|
||||||
<education-training :education-list="doctorInfo.EducationList" :postgraduate-list="doctorInfo.PostgraduateList" :is-english="isEnglish" />
|
<education-training :education-list="doctorInfo.EducationList" :postgraduate-list="doctorInfo.PostgraduateList" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Research & Publication" name="5">
|
<el-collapse-item :title="$t('resumeInfo:title:Research&Publication')" name="5">
|
||||||
<research-publication :research-info="doctorInfo.ResearchPublicationView" :audit-view="doctorInfo.AuditView" :is-english="isEnglish" />
|
<research-publication :research-info="doctorInfo.ResearchPublicationView" :audit-view="doctorInfo.AuditView" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Trial Experience" name="6">
|
<el-collapse-item :title="$t('resumeInfo:title:TrialExperience')" name="6">
|
||||||
<trial-experience v-if="doctorInfo.TrialExperienceView" :trial-experience="doctorInfo.TrialExperienceView" :is-english="isEnglish" />
|
<trial-experience v-if="doctorInfo.TrialExperienceView" :trial-experience="doctorInfo.TrialExperienceView" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<!-- <el-collapse-item title="Credentials" name="7">-->
|
|
||||||
<!-- <Credentials v-if="doctorInfo.AttachmentList" :attachment-list="doctorInfo.AttachmentList" :doctor-id="doctorId" />-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="Resume" name="8">-->
|
|
||||||
<!-- <Resume v-if="doctorInfo.AttachmentList" :resume-list="doctorInfo.AttachmentList" />-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="Agreements" name="9">-->
|
|
||||||
<!-- <Agreements v-if="doctorInfo.AttachmentList" :doctor-info="doctorInfo" />-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
<!-- <el-collapse-item title="Comment" name="10">-->
|
|
||||||
<!-- <Comment :status-list="statusList" />-->
|
|
||||||
<!-- </el-collapse-item>-->
|
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -63,6 +51,7 @@ import Credentials from './components/Credentials'
|
||||||
import Resume from './components/Resume'
|
import Resume from './components/Resume'
|
||||||
import Agreements from './components/Agreements'
|
import Agreements from './components/Agreements'
|
||||||
import Comment from './components/Comment'
|
import Comment from './components/Comment'
|
||||||
|
import {mapMutations} from "vuex";
|
||||||
export default {
|
export default {
|
||||||
components: { StatusInfo, BasicInfo, Employment, Specialty, EducationTraining, ResearchPublication, TrialExperience, Credentials, Resume, Agreements, Comment },
|
components: { StatusInfo, BasicInfo, Employment, Specialty, EducationTraining, ResearchPublication, TrialExperience, Credentials, Resume, Agreements, Comment },
|
||||||
data() {
|
data() {
|
||||||
|
@ -90,13 +79,26 @@ export default {
|
||||||
doctorId: ''
|
doctorId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
isEnglish(v) {
|
||||||
|
if (v === true) {
|
||||||
|
this.$i18n.locale = 'en'
|
||||||
|
this.setLanguage('en')
|
||||||
|
this.$updateDictionary()
|
||||||
|
} else {
|
||||||
|
this.$i18n.locale = 'zh'
|
||||||
|
this.setLanguage('zh')
|
||||||
|
this.$updateDictionary()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
||||||
this.doctorId = this.$route.query.doctorId
|
this.doctorId = this.$route.query.doctorId
|
||||||
this.initForm()
|
this.initForm()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
initStatus() {
|
initStatus() {
|
||||||
if (this.doctorInfo.AuditView) {
|
if (this.doctorInfo.AuditView) {
|
||||||
const res = this.doctorInfo.AuditView
|
const res = this.doctorInfo.AuditView
|
||||||
|
|
|
@ -13,9 +13,14 @@
|
||||||
<el-input v-model="form.SiteCode" disabled />
|
<el-input v-model="form.SiteCode" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Site Name: " prop="SiteName">
|
<!-- 中心名称 -->
|
||||||
|
<el-form-item :label="$t('trials:customSite:form:siteName')" prop="SiteName">
|
||||||
<el-input v-model="form.SiteName" />
|
<el-input v-model="form.SiteName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- 中心名称(CN) -->
|
||||||
|
<el-form-item :label="$t('trials:customSite:form:siteName') + '(CN)'" v-if="!show" prop="SiteNameCN">
|
||||||
|
<el-input v-model="form.SiteNameCN" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Alias Name: ">
|
<el-form-item label="Alias Name: ">
|
||||||
<el-input v-model="form.AliasName" />
|
<el-input v-model="form.AliasName" />
|
||||||
|
@ -113,6 +118,10 @@ export default {
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
{ max: 50, message: 'The maximum length is 50' }
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
],
|
],
|
||||||
|
SiteNameCN: [
|
||||||
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
|
],
|
||||||
SiteCode: [
|
SiteCode: [
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
{ max: 50, message: 'The maximum length is 50' }
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
|
@ -144,11 +153,13 @@ export default {
|
||||||
{ max: 50, message: 'The maximum length is 50' }
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
loading: false
|
loading: false,
|
||||||
|
show: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.initForm()
|
this.initForm()
|
||||||
|
this.show = process.env.VUE_APP_OSS_PATH === '/usa/dist'
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleSave() {
|
handleSave() {
|
||||||
|
|
|
@ -75,7 +75,7 @@ export default {
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
},
|
},
|
||||||
preview(file) {
|
preview(file) {
|
||||||
this.$set(this.fileInfo, 'currentId', file.Id)
|
this.$set(this.fileInfo, 'currentId', file.Id)
|
||||||
|
|
|
@ -1,100 +1,100 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="preview-wrapper">
|
<div v-loading="loading" class="preview-wrapper">
|
||||||
<el-tabs tab-position="right" type="card">
|
<el-tabs tab-position="right" type="card">
|
||||||
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
|
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
|
||||||
|
|
||||||
<iframe
|
<iframe
|
||||||
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
|
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
|
||||||
frameborder="0"
|
frameborder="0"
|
||||||
:src="file.FullFilePath"
|
:src="file.FullFilePath"
|
||||||
width="100%"
|
width="100%"
|
||||||
height="100%"
|
height="100%"
|
||||||
/>
|
/>
|
||||||
<!-- <embed v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath" style="width: 100%; height: 100%"> -->
|
<!-- <embed v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath" style="width: 100%; height: 100%"> -->
|
||||||
<!-- <iframe v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath+'#toolbar=0'" width="100%" height="100%" frameborder="0" /> -->
|
<!-- <iframe v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath+'#toolbar=0'" width="100%" height="100%" frameborder="0" /> -->
|
||||||
<iframe v-else-if="file.Type.indexOf('pdf') !== -1" :src="`/static/pdfjs/web/viewer.html?file=${file.FullFilePath}`" width="100%" height="100%" frameborder="0" />
|
<iframe v-else-if="file.Type.indexOf('pdf') !== -1" :src="`/static/pdfjs/web/viewer.html?file=${file.FullFilePath}`" width="100%" height="100%" frameborder="0" />
|
||||||
<div v-else>
|
<div v-else>
|
||||||
{{ $t('common:message:downloadFile') }}
|
{{ $t('common:message:downloadFile') }}
|
||||||
<el-link type="primary" @click="downLoadFile(file.FullFilePath)">{{ $t('common:button:download') }}</el-link>
|
<el-link type="primary" @click="downLoadFile(file.FullFilePath)">{{ $t('common:button:download') }}</el-link>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { getNoneDicomStudyFileList } from '@/api/trials'
|
import { getNoneDicomStudyFileList } from '@/api/trials'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import { changeURLStatic } from '@/utils/history.js'
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
export default {
|
export default {
|
||||||
name: 'SingleNoneDicom',
|
name: 'SingleNoneDicom',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
fileType: '',
|
fileType: '',
|
||||||
fileUrl: '',
|
fileUrl: '',
|
||||||
loading: false,
|
loading: false,
|
||||||
fileList: [],
|
fileList: [],
|
||||||
noneDicomId: ''
|
noneDicomId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
if (this.$router.currentRoute.query.TokenKey) {
|
if (this.$router.currentRoute.query.TokenKey) {
|
||||||
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
|
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
|
||||||
changeURLStatic('TokenKey', '')
|
changeURLStatic('TokenKey', '')
|
||||||
}
|
}
|
||||||
this.noneDicomId = this.$router.currentRoute.query.Id
|
this.noneDicomId = this.$router.currentRoute.query.Id
|
||||||
this.getFileList()
|
this.getFileList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getFileList() {
|
getFileList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
|
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
|
||||||
this.fileList = res.Result
|
this.fileList = res.Result
|
||||||
this.fileList.forEach(file => {
|
this.fileList.forEach(file => {
|
||||||
const fileName = file.FileName
|
const fileName = file.FileName
|
||||||
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
||||||
})
|
})
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.preview-wrapper{
|
.preview-wrapper{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 7px;
|
width: 7px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background: #d0d0d0;
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
.el-tabs{
|
.el-tabs{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row !important;
|
flex-direction: row !important;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.el-tabs__header{
|
.el-tabs__header{
|
||||||
margin-right: 10px !important;
|
margin-right: 10px !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
border: 2px solid #E4E7ED;
|
border: 2px solid #E4E7ED;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.el-tabs__content{
|
.el-tabs__content{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.el-tab-pane{
|
.el-tab-pane{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -14,21 +14,21 @@
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="TrialCode"
|
prop="TrialCode"
|
||||||
label="Trial ID"
|
:label="$t('resumeInfo:label:TrialCode')"
|
||||||
min-width="50"
|
min-width="50"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="Type" label="File Type" min-width="80" show-overflow-tooltip />
|
<el-table-column prop="Type" :label="$t('resumeInfo:label:Type')" min-width="80" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="FileName"
|
prop="FileName"
|
||||||
label="File Name"
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="Upload Time"
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
min-width="60"
|
min-width="60"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="preview(scope.$index, scope.row)"
|
@click="preview(scope.$index, scope.row)"
|
||||||
>View</el-button>
|
>{{$t('resumeInfo:button:view')}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -124,7 +124,7 @@ export default {
|
||||||
preview(index, row) {
|
preview(index, row) {
|
||||||
const filePath = row.FullPath
|
const filePath = row.FullPath
|
||||||
if (filePath) {
|
if (filePath) {
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
timeFormatter(row) {
|
timeFormatter(row) {
|
||||||
|
|
|
@ -1,101 +1,101 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="basic-info">
|
<div class="basic-info">
|
||||||
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Surname:">
|
<el-form-item :label="$t('resumeInfo:label:Surname')">
|
||||||
<span>{{ basicInfo.LastName }}</span>
|
<span>{{ basicInfo.LastName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Given Name:">
|
<el-form-item :label="$t('resumeInfo:label:FirstName')">
|
||||||
<span>{{ basicInfo.FirstName }}</span>
|
<span>{{ basicInfo.FirstName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Name CN:">
|
<el-form-item :label="$t('resumeInfo:label:ChineseName')">
|
||||||
<span>{{ basicInfo.ChineseName }}</span>
|
<span>{{ basicInfo.ChineseName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="ID:">
|
<el-form-item :label="$t('resumeInfo:label:ReviewerCode')">
|
||||||
<span>{{ basicInfo.ReviewerCode }}</span>
|
<span>{{ basicInfo.ReviewerCode }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Gender:">
|
<el-form-item :label="$t('resumeInfo:label:Sex')">
|
||||||
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
|
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
|
||||||
<span v-else>{{ basicInfo.Sex === 0?'男':'女' }}</span>
|
<span v-else>{{ basicInfo.Sex === 0?'男':'女' }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Title:">
|
<el-form-item :label="$t('resumeInfo:label:Title')">
|
||||||
<span v-if="isEnglish">
|
<span v-if="isEnglish">
|
||||||
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
|
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
{{ (Array.isArray(basicInfo.TitleCNList)&& basicInfo.TitleCNList.length > 0) ? basicInfo.TitleCNList.join(', ') : '' }}
|
{{ (Array.isArray(basicInfo.TitleCNList)&& basicInfo.TitleCNList.length > 0) ? basicInfo.TitleCNList.join(', ') : '' }}
|
||||||
</span>
|
</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Phone:">
|
<el-form-item :label="$t('resumeInfo:label:Phone')">
|
||||||
<span>{{ basicInfo.Phone }}</span>
|
<span>{{ basicInfo.Phone }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Email:">
|
<el-form-item :label="$t('resumeInfo:label:Email')">
|
||||||
<span>{{ basicInfo.EMail }}</span>
|
<span>{{ basicInfo.EMail }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="WeChat:">
|
<el-form-item :label="$t('resumeInfo:label:WeChat')">
|
||||||
<span>{{ basicInfo.WeChat }}</span>
|
<span>{{ basicInfo.WeChat }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
basicInfo: {
|
basicInfo: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isEnglish: {
|
isEnglish: {
|
||||||
type: Boolean
|
type: Boolean
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.basic-info{
|
.basic-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,48 +1,48 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="comment-info">
|
<div class="comment-info">
|
||||||
<el-form :model="statusList" class="demo-form-inline" size="small">
|
<el-form :model="statusList" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Comment:">
|
<el-form-item :label="$t('resumeInfo:label:Comment')">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="statusList.AdminComment"
|
v-model="statusList.AdminComment"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
statusList: {
|
statusList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.comment-info{
|
.comment-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="education-info">
|
<div class="education-info">
|
||||||
<div class="btn-wrapper">
|
<div class="btn-wrapper">
|
||||||
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">Download</el-button>
|
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">{{$t('resumeInfo:button:Download')}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tblList"
|
:data="tblList"
|
||||||
|
@ -13,23 +13,23 @@
|
||||||
<span></span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column type="selection" align="left" width="50" />
|
<el-table-column type="selection" align="left" width="50" />
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
<el-table-column prop="Type" label="Type" min-width="50" show-overflow-tooltip />
|
<el-table-column prop="Type" :label="$t('resumeInfo:label:Type')" min-width="50" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="FileName"
|
prop="FileName"
|
||||||
label="File Name"
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
min-width="80"
|
min-width="80"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="Upload Time"
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
min-width="50"
|
min-width="50"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" min-width="150">
|
<el-table-column :label="$t('common:action:action')" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">View</el-button>
|
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">{{$t('resumeInfo:button:view')}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -163,7 +163,7 @@ export default {
|
||||||
preview(index, row) {
|
preview(index, row) {
|
||||||
const filePath = row.FullPath
|
const filePath = row.FullPath
|
||||||
if (filePath) {
|
if (filePath) {
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
selectMore(val) {
|
selectMore(val) {
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="education-info">
|
<div class="education-info">
|
||||||
<div class="title">Education (in chronological order)</div>
|
<div class="title">{{ $t('resumeInfo:label:Education') }}</div>
|
||||||
<el-table :data="educationList" border style="width: 100%;margin-top:10px;" size="small">
|
<el-table :data="educationList" border style="width: 100%;margin-top:10px;" size="small">
|
||||||
<template slot="empty">
|
<template slot="empty">
|
||||||
<span></span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column type="index" label="No." width="45" />
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="45" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="BeginDateStr"
|
prop="BeginDateStr"
|
||||||
label="Start"
|
:label="$t('resumeInfo:label:BeginDateStr')"
|
||||||
min-width="55"
|
min-width="55"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EndDateStr"
|
prop="EndDateStr"
|
||||||
label="End"
|
:label="$t('resumeInfo:label:EndDateStr')"
|
||||||
min-width="55"
|
min-width="55"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="Degree" label="Degree" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="Degree" :label="$t('resumeInfo:label:Degree')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Degree">
|
<span v-show="scope.row.Degree">
|
||||||
{{ isEnglish?scope.row.Degree:scope.row.DegreeCN }}
|
{{ isEnglish?scope.row.Degree:scope.row.DegreeCN }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Major" label="Major" min-width="130" show-overflow-tooltip>
|
<el-table-column prop="Major" :label="$t('resumeInfo:label:Major')" min-width="130" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Major">
|
<span v-show="scope.row.Major">
|
||||||
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Organization"
|
prop="Organization"
|
||||||
label="Institution"
|
:label="$t('resumeInfo:label:Institution')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="City" label="City" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="City" :label="$t('resumeInfo:label:City')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.City">
|
<span v-show="scope.row.City">
|
||||||
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Province"
|
prop="Province"
|
||||||
label="State/Province"
|
:label="$t('resumeInfo:label:Province')"
|
||||||
min-width="80"
|
min-width="80"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Country" label="Country" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="Country" :label="$t('resumeInfo:label:Country')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Country">
|
<span v-show="scope.row.Country">
|
||||||
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
||||||
|
@ -72,25 +72,25 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<div class="title">Postgraduate Training (in chronological order)</div>
|
<div class="title">{{$t('resumeInfo:label:PostgraduateTraining')}}</div>
|
||||||
<el-table :data="postgraduateList" border style="width: 100%" size="small">
|
<el-table :data="postgraduateList" border style="width: 100%" size="small">
|
||||||
<template slot="empty">
|
<template slot="empty">
|
||||||
<span></span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column type="index" label="No." width="45" />
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="45" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="BeginDateStr"
|
prop="BeginDateStr"
|
||||||
label="Start"
|
:label="$t('resumeInfo:label:BeginDateStr')"
|
||||||
min-width="55"
|
min-width="55"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EndDateStr"
|
prop="EndDateStr"
|
||||||
label="End"
|
:label="$t('resumeInfo:label:EndDateStr')"
|
||||||
min-width="55"
|
min-width="55"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="Training" label="Training" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="Training" :label="$t('resumeInfo:label:Training')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Training">
|
<span v-show="scope.row.Training">
|
||||||
{{ isEnglish?scope.row.Training:scope.row.TrainingCN }}
|
{{ isEnglish?scope.row.Training:scope.row.TrainingCN }}
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Major"
|
prop="Major"
|
||||||
label="Specialty / Research Field"
|
:label="$t('resumeInfo:label:Specialty')"
|
||||||
min-width="140"
|
min-width="140"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -110,21 +110,21 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="Hospital" label="Hospital" min-width="110" show-overflow-tooltip>
|
<el-table-column prop="Hospital" :label="$t('resumeInfo:label:Hospital')" min-width="110" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Hospital">
|
<span v-show="scope.row.Hospital">
|
||||||
{{ isEnglish?scope.row.Hospital:scope.row.HospitalCN }}
|
{{ isEnglish?scope.row.Hospital:scope.row.HospitalCN }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="School" label="University" min-width="120" show-overflow-tooltip>
|
<el-table-column prop="School" :label="$t('resumeInfo:label:University')" min-width="120" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.School">
|
<span v-show="scope.row.School">
|
||||||
{{ isEnglish?scope.row.School:scope.row.SchoolCN }}
|
{{ isEnglish?scope.row.School:scope.row.SchoolCN }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="City" label="City" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="City" :label="$t('resumeInfo:label:City')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.City">
|
<span v-show="scope.row.City">
|
||||||
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
{{ isEnglish?scope.row.City:scope.row.CityCN }}
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Province"
|
prop="Province"
|
||||||
label="State/Province"
|
:label="$t('resumeInfo:label:StateProvince')"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Country" label="Country" min-width="70" show-overflow-tooltip>
|
<el-table-column prop="Country" :label="$t('resumeInfo:label:Country')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.Country">
|
<span v-show="scope.row.Country">
|
||||||
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
|
||||||
|
|
|
@ -3,25 +3,25 @@
|
||||||
<el-form :inline="true" :model="employment" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="employment" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Department:">
|
<el-form-item :label="$t('resumeInfo:label:Department')">
|
||||||
<span v-if="isEnglish">{{ employment.Department }}</span>
|
<span v-if="isEnglish">{{ employment.Department }}</span>
|
||||||
<span v-else>{{ employment.DepartmentCN }}</span>
|
<span v-else>{{ employment.DepartmentCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Rank:">
|
<el-form-item :label="$t('resumeInfo:label:Rank')">
|
||||||
<span v-if="isEnglish">{{ employment.Rank }}</span>
|
<span v-if="isEnglish">{{ employment.Rank }}</span>
|
||||||
<span v-else>{{ employment.RankCN }}</span>
|
<span v-else>{{ employment.RankCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Physician:">
|
<el-form-item :label="$t('resumeInfo:label:Physician')">
|
||||||
<span v-if="isEnglish">{{ employment.Physician }}</span>
|
<span v-if="isEnglish">{{ employment.Physician }}</span>
|
||||||
<span v-else>{{ employment.PhysicianCN }}</span>
|
<span v-else>{{ employment.PhysicianCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Position:">
|
<el-form-item :label="$t('resumeInfo:label:Position')">
|
||||||
<span v-if="isEnglish">{{ employment.Position }}</span>
|
<span v-if="isEnglish">{{ employment.Position }}</span>
|
||||||
<span v-else>{{ employment.PositionCN }}</span>
|
<span v-else>{{ employment.PositionCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -30,31 +30,31 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Hospital:">
|
<el-form-item :label="$t('resumeInfo:label:Hospital')">
|
||||||
<span v-if="isEnglish">{{ employment.HospitalName }}</span>
|
<span v-if="isEnglish">{{ employment.HospitalName }}</span>
|
||||||
<span v-else>{{ employment.HospitalNameCN }}</span>
|
<span v-else>{{ employment.HospitalNameCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Affiliated University:">
|
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
||||||
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
||||||
<span v-else>{{ employment.UniversityAffiliatedCN }}</span>
|
<span v-else>{{ employment.UniversityAffiliatedCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="City:">
|
<el-form-item :label="$t('resumeInfo:label:City')">
|
||||||
<span v-if="isEnglish">{{ employment.City }}</span>
|
<span v-if="isEnglish">{{ employment.City }}</span>
|
||||||
<span v-else>{{ employment.CityCN }}</span>
|
<span v-else>{{ employment.CityCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="State/Province:">
|
<el-form-item :label="$t('resumeInfo:label:StateProvince')">
|
||||||
<span v-if="isEnglish">{{ employment.Province }}</span>
|
<span v-if="isEnglish">{{ employment.Province }}</span>
|
||||||
<span v-else>{{ employment.ProvinceCN }}</span>
|
<span v-else>{{ employment.ProvinceCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Country:">
|
<el-form-item :label="$t('resumeInfo:label:Country:')">
|
||||||
<span v-if="isEnglish">{{ employment.Country }}</span>
|
<span v-if="isEnglish">{{ employment.Country }}</span>
|
||||||
<span v-else>{{ employment.CountryCN }}</span>
|
<span v-else>{{ employment.CountryCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -1,102 +1,102 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="research-info">
|
<div class="research-info">
|
||||||
<el-form :model="researchInfo" class="demo-form-inline" size="small">
|
<el-form :model="researchInfo" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Field of Research:">
|
<el-form-item :label="$t('resumeInfo:label:FieldofResearch')" prop="FieldofResearch">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.Research"
|
v-model="researchInfo.Research"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-else
|
||||||
v-model="researchInfo.ResearchCN"
|
v-model="researchInfo.ResearchCN"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Grants:">
|
<el-form-item :label="$t('resumeInfo:label:Grants')" prop="Grants">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.Grants"
|
v-model="researchInfo.Grants"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-else
|
||||||
v-model="researchInfo.GrantsCN"
|
v-model="researchInfo.GrantsCN"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Publications:">
|
<el-form-item :label="$t('resumeInfo:label:Publications')" prop="Publications">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="researchInfo.Publications"
|
v-model="researchInfo.Publications"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Awards & Honors:">
|
<el-form-item :label="$t('resumeInfo:label:Awards&Honors')" prop="AwardsHonors">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="researchInfo.AwardsHonors"
|
v-model="researchInfo.AwardsHonors"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-else
|
||||||
v-model="researchInfo.AwardsHonorsCN"
|
v-model="researchInfo.AwardsHonorsCN"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
readonly
|
readonly
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
researchInfo: {
|
researchInfo: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isEnglish: {
|
isEnglish: {
|
||||||
type: Boolean
|
type: Boolean
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.research-info{
|
.research-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
<template slot="empty">
|
<template slot="empty">
|
||||||
<span></span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="FileName"
|
prop="FileName"
|
||||||
label="File Name"
|
:label="$t('resumeInfo:label:FileName')"
|
||||||
min-width="60"
|
min-width="60"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Isoffical"
|
prop="Isoffical"
|
||||||
label="Offical"
|
:label="$t('resumeInfo:label:Isoffical')"
|
||||||
min-width="50"
|
min-width="50"
|
||||||
:formatter="officalFormatter"
|
:formatter="officalFormatter"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Language"
|
prop="Language"
|
||||||
label="Language"
|
:label="$t('resumeInfo:label:Language')"
|
||||||
min-width="50"
|
min-width="50"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -30,13 +30,13 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="Upload Time"
|
:label="$t('resumeInfo:label:CreateTime')"
|
||||||
min-width="60"
|
min-width="60"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" min-width="150">
|
<el-table-column :label="$t('common:action:action')" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">Download</el-button>
|
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">{{ $t('common:button:download') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="specialty-info">
|
<div class="specialty-info">
|
||||||
<el-form :model="specialty" class="demo-form-inline" size="small">
|
<el-form :model="specialty" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="Specialty:">
|
<el-form-item :label="$t('resumeInfo:label:Speciality')">
|
||||||
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
|
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
|
||||||
<span v-else>{{ specialty.SpecialityCN }}</span>
|
<span v-else>{{ specialty.SpecialityCN }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Subspeciality:">
|
<el-form-item :label="$t('resumeInfo:label:Subspeciality')">
|
||||||
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
|
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
|
||||||
<span v-else>{{ specialty.SubspecialityCNList }}</span>
|
<span v-else>{{ specialty.SubspecialityCNList }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Modality:">
|
<el-form-item :label="$t('resumeInfo:label:ReadingType')">
|
||||||
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
|
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
|
||||||
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
|
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
specialty: {
|
specialty: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isEnglish: {
|
isEnglish: {
|
||||||
type: Boolean
|
type: Boolean
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.specialty-info{
|
.specialty-info{
|
||||||
padding:5px 15px;
|
padding:5px 15px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
.el-form-item--mini.el-form-item{
|
.el-form-item--mini.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item--small.el-form-item{
|
.el-form-item--small.el-form-item{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.el-form-item__content{
|
.el-form-item__content{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-form-item__label{
|
.el-form-item__label{
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Pending:">
|
<el-form-item :label="$t('resumeInfo:label:Pending')">
|
||||||
<span v-if="statusList.Submitted" style="color:#428bca">
|
<span v-if="statusList.Submitted" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Approved:">
|
<el-form-item :label="$t('resumeInfo:label:Approved')">
|
||||||
<span v-if="statusList.Approved" style="color:#428bca">
|
<span v-if="statusList.Approved" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="Reading:">
|
<el-form-item :label="$t('resumeInfo:label:Reading')">
|
||||||
<span v-if="statusList.Reading" style="color:#428bca">
|
<span v-if="statusList.Reading" style="color:#428bca">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
|
@ -44,19 +44,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="On Vacation:">
|
<el-form-item :label="$t('resumeInfo:label:Vacation')">
|
||||||
<span style="font-size:12px;margin-right:20px;">{{ holiday }}</span>
|
<span style="font-size:12px;margin-right:20px;">{{ holiday }}</span>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="initHolidayList"
|
@click="initHolidayList"
|
||||||
>Planned Vacation</el-button>
|
>{{ $t('resumeInfo:label:PlannedVacation') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="Vacation"
|
:title="$t('resumeInfo:label:Vacation')"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="35%"
|
width="35%"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
@ -65,13 +65,13 @@
|
||||||
<el-table-column type="index" />
|
<el-table-column type="index" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
property="StartDate"
|
property="StartDate"
|
||||||
label="Beginning Date"
|
:label="$t('resumeInfo:label:BeginningDate')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
:formatter="beginTimeFormatter"
|
:formatter="beginTimeFormatter"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
property="EndDate"
|
property="EndDate"
|
||||||
label="End Date"
|
:label="$t('resumeInfo:label:EndDate')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
:formatter="endTimeFormatter"
|
:formatter="endTimeFormatter"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="trialExperience-info">
|
<div class="trialExperience-info">
|
||||||
<div class="title">Clinical Trial Experience</div>
|
<div class="title">{{$t('resumeInfo:title:ClinicalTrialExperience')}}</div>
|
||||||
<el-table :data="GCPList" border style="width: 100%" size="small">
|
<el-table :data="GCPList" border style="width: 100%" size="small">
|
||||||
<template slot="empty">
|
<template slot="empty">
|
||||||
<span></span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column type="index" label="No." width="50" />
|
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
|
||||||
<el-table-column prop="Phase" label="Phase" min-width="20" show-overflow-tooltip />
|
<el-table-column prop="Phase" :label="$t('resumeInfo:label:Phase')" min-width="20" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EvaluationCriteriaList"
|
prop="EvaluationCriteriaList"
|
||||||
label="Review Criteria"
|
:label="$t('resumeInfo:label:ReviewCriteria')"
|
||||||
min-width="40"
|
min-width="40"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -19,20 +19,20 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitReadingCount"
|
prop="VisitReadingCount"
|
||||||
label="Visit Reading Count"
|
:label="$t('resumeInfo:label:VisitReadingCount')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EvaluationContent"
|
prop="EvaluationContent"
|
||||||
label="Indication"
|
:label="$t('resumeInfo:label:EvaluationContent')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-form :model="form" class="demo-form-inline" size="small">
|
<el-form :model="form" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="GCP Certificate:">
|
<el-form-item :label="$t('resumeInfo:label:GCPCertificate')">
|
||||||
<span>{{ GCP }}</span>
|
<span>{{ GCP }}</span>
|
||||||
<a
|
<a
|
||||||
v-if="form.GCP"
|
v-if="form.GCP"
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
>View</a>
|
>View</a>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Other Relevant Experience:">
|
<el-form-item :label="$t('resumeInfo:label:OtherRelevantExperience')">
|
||||||
<el-input
|
<el-input
|
||||||
v-if="isEnglish"
|
v-if="isEnglish"
|
||||||
v-model="form.OtherClinicalExperience"
|
v-model="form.OtherClinicalExperience"
|
||||||
|
|
|
@ -16,35 +16,35 @@
|
||||||
<div style="flex:1;margin-top:50px;overflow-y: auto;">
|
<div style="flex:1;margin-top:50px;overflow-y: auto;">
|
||||||
<el-collapse v-model="activeNames">
|
<el-collapse v-model="activeNames">
|
||||||
<status-info :basic-info="basicInfo" :status-list="statusList" :doctor-id="doctorId" :holiday="holiday" :is-english="isEnglish" />
|
<status-info :basic-info="basicInfo" :status-list="statusList" :doctor-id="doctorId" :holiday="holiday" :is-english="isEnglish" />
|
||||||
<el-collapse-item title="Basic Info" name="1">
|
<el-collapse-item :title="$t('resumeInfo:title:BasicInfo')" name="1">
|
||||||
<basic-info :basic-info="doctorInfo.BasicInfoView" :is-english="isEnglish" />
|
<basic-info :basic-info="doctorInfo.BasicInfoView" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Employment" name="2">
|
<el-collapse-item :title="$t('resumeInfo:title:Employment')" name="2">
|
||||||
<Employment :employment="workInfo" :is-english="isEnglish" />
|
<Employment :employment="workInfo" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Specialty" name="3">
|
<el-collapse-item :title="$t('resumeInfo:title:Specialty')" name="3">
|
||||||
<Specialty :specialty="specialtyList" :is-english="isEnglish" />
|
<Specialty :specialty="specialtyList" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Education & Training" name="4">
|
<el-collapse-item :title="$t('resumeInfo:title:Education&Training')" name="4">
|
||||||
<education-training :education-list="doctorInfo.EducationList" :postgraduate-list="doctorInfo.PostgraduateList" :is-english="isEnglish" />
|
<education-training :education-list="doctorInfo.EducationList" :postgraduate-list="doctorInfo.PostgraduateList" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Research & Publication" name="5">
|
<el-collapse-item :title="$t('resumeInfo:title:Research&Publication')" name="5">
|
||||||
<research-publication :research-info="doctorInfo.ResearchPublicationView" :is-english="isEnglish" />
|
<research-publication :research-info="doctorInfo.ResearchPublicationView" :is-english="isEnglish" />
|
||||||
|
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Trial Experience" name="6">
|
<el-collapse-item :title="$t('resumeInfo:title:TrialExperience')" name="6">
|
||||||
<trial-experience v-if="doctorInfo.TrialExperienceView" :trial-experience="doctorInfo.TrialExperienceView" :is-english="isEnglish" />
|
<trial-experience v-if="doctorInfo.TrialExperienceView" :trial-experience="doctorInfo.TrialExperienceView" :is-english="isEnglish" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Credentials" name="7">
|
<el-collapse-item :title="$t('resumeInfo:title:Credentials')" name="7">
|
||||||
<Credentials v-if="doctorInfo.AttachmentList" :attachment-list="doctorInfo.AttachmentList" :doctor-id="doctorId" />
|
<Credentials v-if="doctorInfo.AttachmentList" :attachment-list="doctorInfo.AttachmentList" :doctor-id="doctorId" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Resume" name="8">
|
<el-collapse-item :title="$t('resumeInfo:title:Resume')" name="8">
|
||||||
<Resume v-if="doctorInfo.AttachmentList" :resume-list="doctorInfo.AttachmentList" />
|
<Resume v-if="doctorInfo.AttachmentList" :resume-list="doctorInfo.AttachmentList" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Agreements" name="9">
|
<el-collapse-item :title="$t('resumeInfo:title:Agreements')" name="9">
|
||||||
<Agreements v-if="doctorInfo.AttachmentList" :doctor-info="doctorInfo" />
|
<Agreements v-if="doctorInfo.AttachmentList" :doctor-info="doctorInfo" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="Comment" name="10">
|
<el-collapse-item :title="$t('resumeInfo:title:Comment')" name="10">
|
||||||
<Comment :status-list="statusList" />
|
<Comment :status-list="statusList" />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
|
@ -64,6 +64,7 @@ import Credentials from './components/Credentials'
|
||||||
import Resume from './components/Resume'
|
import Resume from './components/Resume'
|
||||||
import Agreements from './components/Agreements'
|
import Agreements from './components/Agreements'
|
||||||
import Comment from './components/Comment'
|
import Comment from './components/Comment'
|
||||||
|
import {mapMutations} from "vuex";
|
||||||
export default {
|
export default {
|
||||||
components: { StatusInfo, BasicInfo, Employment, Specialty, EducationTraining, ResearchPublication, TrialExperience, Credentials, Resume, Agreements, Comment },
|
components: { StatusInfo, BasicInfo, Employment, Specialty, EducationTraining, ResearchPublication, TrialExperience, Credentials, Resume, Agreements, Comment },
|
||||||
data() {
|
data() {
|
||||||
|
@ -91,14 +92,27 @@ export default {
|
||||||
doctorId: ''
|
doctorId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
isEnglish(v) {
|
||||||
|
if (v === true) {
|
||||||
|
this.$i18n.locale = 'en'
|
||||||
|
this.setLanguage('en')
|
||||||
|
this.$updateDictionary()
|
||||||
|
} else {
|
||||||
|
this.$i18n.locale = 'zh'
|
||||||
|
this.setLanguage('zh')
|
||||||
|
this.$updateDictionary()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
||||||
// this.isEnglish = this.$i18n.locale === 'zh' ? false : true
|
this.isEnglish = this.$i18n.locale === 'zh' ? false : true
|
||||||
this.doctorId = this.$route.query.doctorId
|
this.doctorId = this.$route.query.doctorId
|
||||||
this.initForm()
|
this.initForm()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
initStatus() {
|
initStatus() {
|
||||||
if (this.doctorInfo.AuditView) {
|
if (this.doctorInfo.AuditView) {
|
||||||
const res = this.doctorInfo.AuditView
|
const res = this.doctorInfo.AuditView
|
||||||
|
@ -177,7 +191,7 @@ export default {
|
||||||
if (res.Result) {
|
if (res.Result) {
|
||||||
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
||||||
this.doctorInfo = res.Result
|
this.doctorInfo = res.Result
|
||||||
this.title = `${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}'s Details`
|
this.title = `${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}`
|
||||||
this.htmlTitle = this.title
|
this.htmlTitle = this.title
|
||||||
this.initStatus()
|
this.initStatus()
|
||||||
this.initEmploymentInfo()
|
this.initEmploymentInfo()
|
||||||
|
|
|
@ -119,7 +119,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="操作用户名"
|
label="操作用户名"
|
||||||
prop="optUserName"
|
prop="OptUserName"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
|
|
@ -217,7 +217,7 @@ export default {
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1
|
||||||
|
|
|
@ -405,7 +405,7 @@ export default {
|
||||||
},
|
},
|
||||||
handlePreview(filePath) {
|
handlePreview(filePath) {
|
||||||
if (filePath) {
|
if (filePath) {
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
|
|
|
@ -1,183 +1,194 @@
|
||||||
<template>
|
<template>
|
||||||
<el-form
|
<el-form
|
||||||
ref="customSiteForm"
|
ref="customSiteForm"
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:model="form"
|
:model="form"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
class="demo-ruleForm"
|
class="demo-ruleForm"
|
||||||
size="small"
|
size="small"
|
||||||
label-width="150px"
|
label-width="150px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
<!-- 中心编号 -->
|
<!-- 中心编号 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:siteId')" prop="SiteCode">
|
<el-form-item :label="$t('trials:customSite:form:siteId')" prop="SiteCode">
|
||||||
<el-input v-model="form.SiteCode" />
|
<el-input v-model="form.SiteCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 中心名称 -->
|
<!-- 中心名称 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:siteName')" prop="SiteName">
|
<el-form-item :label="$t('trials:customSite:form:siteName')" prop="SiteName">
|
||||||
<el-input v-model="form.SiteName" />
|
<el-input v-model="form.SiteName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 组织机构代码 -->
|
<!-- 中心名称(CN) -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:orgCode')">
|
<el-form-item :label="$t('trials:customSite:form:siteName') + '(CN)'" v-if="!show" prop="SiteNameCN">
|
||||||
<el-input v-model="form.UniqueCode" />
|
<el-input v-model="form.SiteNameCN" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 国家 -->
|
<!-- 组织机构代码 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:country')" prop="Country">
|
<el-form-item :label="$t('trials:customSite:form:orgCode')">
|
||||||
<el-input v-model="form.Country" />
|
<el-input v-model="form.UniqueCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 城市 -->
|
<!-- 国家 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:city')" prop="City">
|
<el-form-item :label="$t('trials:customSite:form:country')" prop="Country">
|
||||||
<el-input v-model="form.City" />
|
<el-input v-model="form.Country" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 地址 -->
|
<!-- 城市 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:address')" prop="Address">
|
<el-form-item :label="$t('trials:customSite:form:city')" prop="City">
|
||||||
<el-input v-model="form.Address" />
|
<el-input v-model="form.City" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 附属医院 -->
|
<!-- 地址 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:hospital')">
|
<el-form-item :label="$t('trials:customSite:form:address')" prop="Address">
|
||||||
<el-select
|
<el-input v-model="form.Address" />
|
||||||
v-model="form.HospitalId"
|
</el-form-item>
|
||||||
clearable
|
<!-- 附属医院 -->
|
||||||
style="width:100%;"
|
<el-form-item :label="$t('trials:customSite:form:hospital')">
|
||||||
>
|
<el-select
|
||||||
<el-option
|
v-model="form.HospitalId"
|
||||||
v-for="item in hospitalList"
|
clearable
|
||||||
:key="item.Id"
|
style="width:100%;"
|
||||||
:label="item.HospitalName"
|
>
|
||||||
:value="item.Id"
|
<el-option
|
||||||
/>
|
v-for="item in hospitalList"
|
||||||
</el-select>
|
:key="item.Id"
|
||||||
</el-form-item>
|
:label="item.HospitalName"
|
||||||
<!-- 负责人 -->
|
:value="item.Id"
|
||||||
<el-form-item :label="$t('trials:customSite:form:director')" prop="DirectorName">
|
/>
|
||||||
<el-input v-model="form.DirectorName" />
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 负责人电话 -->
|
<!-- 负责人 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:directorPhone')" prop="DirectorPhone">
|
<el-form-item :label="$t('trials:customSite:form:director')" prop="DirectorName">
|
||||||
<el-input v-model="form.DirectorPhone" />
|
<el-input v-model="form.DirectorName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 联系人 -->
|
<!-- 负责人电话 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:contactor')" prop="ContactName">
|
<el-form-item :label="$t('trials:customSite:form:directorPhone')" prop="DirectorPhone">
|
||||||
<el-input v-model="form.ContactName" />
|
<el-input v-model="form.DirectorPhone" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 联系人电话 -->
|
<!-- 联系人 -->
|
||||||
<el-form-item :label="$t('trials:customSite:form:contactorPhone')" prop="ContactPhone">
|
<el-form-item :label="$t('trials:customSite:form:contactor')" prop="ContactName">
|
||||||
<el-input v-model="form.ContactPhone" />
|
<el-input v-model="form.ContactName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
<!-- 联系人电话 -->
|
||||||
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
<el-form-item :label="$t('trials:customSite:form:contactorPhone')" prop="ContactPhone">
|
||||||
<el-form-item>
|
<el-input v-model="form.ContactPhone" />
|
||||||
<!-- 取消 -->
|
</el-form-item>
|
||||||
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancel">
|
</div>
|
||||||
{{ $t('common:button:cancel') }}
|
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
||||||
</el-button>
|
<el-form-item>
|
||||||
<!-- 保存 -->
|
<!-- 取消 -->
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">
|
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancel">
|
||||||
{{ $t('common:button:save') }}
|
{{ $t('common:button:cancel') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
<!-- 保存 -->
|
||||||
</div>
|
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">
|
||||||
</el-form>
|
{{ $t('common:button:save') }}
|
||||||
</template>
|
</el-button>
|
||||||
<script>
|
</el-form-item>
|
||||||
import { addOrUpdateSite } from '@/api/dictionary'
|
</div>
|
||||||
import store from '@/store'
|
</el-form>
|
||||||
export default {
|
</template>
|
||||||
name: 'CustomSiteForm',
|
<script>
|
||||||
props: {
|
import { addOrUpdateSite } from '@/api/dictionary'
|
||||||
data: {
|
import store from '@/store'
|
||||||
type: Object,
|
export default {
|
||||||
default() {
|
name: 'CustomSiteForm',
|
||||||
return {}
|
props: {
|
||||||
}
|
data: {
|
||||||
}
|
type: Object,
|
||||||
},
|
default() {
|
||||||
data() {
|
return {}
|
||||||
return {
|
}
|
||||||
btnLoading: false,
|
}
|
||||||
hospitalList: [],
|
},
|
||||||
form: {
|
data() {
|
||||||
Id: '',
|
return {
|
||||||
SiteCode: '',
|
btnLoading: false,
|
||||||
SiteName: '',
|
hospitalList: [],
|
||||||
Country: '',
|
form: {
|
||||||
City: '',
|
Id: '',
|
||||||
HospitalId: '',
|
SiteCode: '',
|
||||||
DirectorName: '',
|
SiteName: '',
|
||||||
DirectorPhone: '',
|
SiteNameCN: '',
|
||||||
ContactName: '',
|
Country: '',
|
||||||
ContactPhone: '',
|
City: '',
|
||||||
UniqueCode: '',
|
HospitalId: '',
|
||||||
Address: ''
|
DirectorName: '',
|
||||||
},
|
DirectorPhone: '',
|
||||||
rules: {
|
ContactName: '',
|
||||||
SiteName: [
|
ContactPhone: '',
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
UniqueCode: '',
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
Address: ''
|
||||||
],
|
},
|
||||||
SiteCode: [
|
rules: {
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
SiteName: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
],
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
Country: [
|
],
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
SiteNameCN: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
],
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
City: [
|
],
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
SiteCode: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
],
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
// HospitalId: [
|
],
|
||||||
// { required: true, message: 'Please specify', trigger: 'blur' }
|
Country: [
|
||||||
// ],
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
Address: [
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
],
|
||||||
],
|
City: [
|
||||||
DirectorName: [
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
],
|
],
|
||||||
DirectorPhone: [
|
// HospitalId: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
// { required: true, message: 'Please specify', trigger: 'blur' }
|
||||||
],
|
// ],
|
||||||
ContactName: [
|
Address: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
ContactPhone: [
|
DirectorName: [
|
||||||
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
]
|
],
|
||||||
},
|
DirectorPhone: [
|
||||||
loading: false
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
}
|
],
|
||||||
},
|
ContactName: [
|
||||||
mounted() {
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
this.initForm()
|
],
|
||||||
},
|
ContactPhone: [
|
||||||
methods: {
|
{ max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }
|
||||||
handleSave() {
|
]
|
||||||
this.$refs.customSiteForm.validate(valid => {
|
},
|
||||||
if (!valid) return
|
loading: false,
|
||||||
this.btnLoading = true
|
show: false
|
||||||
addOrUpdateSite(this.form).then(res => {
|
}
|
||||||
this.btnLoading = false
|
},
|
||||||
if (res.IsSuccess) {
|
mounted() {
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.initForm()
|
||||||
this.$emit('getList')
|
this.show = process.env.VUE_APP_OSS_PATH === '/usa/dist'
|
||||||
this.$emit('close')
|
},
|
||||||
}
|
methods: {
|
||||||
}).catch(() => {
|
handleSave() {
|
||||||
this.btnLoading = false
|
this.$refs.customSiteForm.validate(valid => {
|
||||||
})
|
if (!valid) return
|
||||||
})
|
this.btnLoading = true
|
||||||
},
|
addOrUpdateSite(this.form).then(res => {
|
||||||
handleCancel() {
|
this.btnLoading = false
|
||||||
this.$emit('close')
|
if (res.IsSuccess) {
|
||||||
},
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
async initForm() {
|
this.$emit('getList')
|
||||||
this.loading = true
|
this.$emit('close')
|
||||||
this.hospitalList = await store.dispatch('global/getHospital')
|
}
|
||||||
this.loading = false
|
}).catch(() => {
|
||||||
}
|
this.btnLoading = false
|
||||||
}
|
})
|
||||||
|
})
|
||||||
}
|
},
|
||||||
</script>
|
handleCancel() {
|
||||||
|
this.$emit('close')
|
||||||
|
},
|
||||||
|
async initForm() {
|
||||||
|
this.loading = true
|
||||||
|
this.hospitalList = await store.dispatch('global/getHospital')
|
||||||
|
this.loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -1,94 +1,94 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="preview-wrapper">
|
<div v-loading="loading" class="preview-wrapper">
|
||||||
<el-tabs tab-position="right" type="card">
|
<el-tabs tab-position="right" type="card">
|
||||||
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
|
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
|
||||||
|
|
||||||
<iframe
|
<iframe
|
||||||
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
|
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
|
||||||
frameborder="0"
|
frameborder="0"
|
||||||
:src="file.FullFilePath"
|
:src="file.FullFilePath"
|
||||||
width="100%"
|
width="100%"
|
||||||
style="width: 100%; height: 100%"
|
style="width: 100%; height: 100%"
|
||||||
/>
|
/>
|
||||||
<embed v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath" style="width: 100%; height: 100%">
|
<embed v-else-if="file.Type.indexOf('pdf') !== -1" :src="file.FullFilePath" style="width: 100%; height: 100%">
|
||||||
<div v-else>
|
<div v-else>
|
||||||
该文件不支持在线预览,可点击<el-link type="primary" @click="downLoadFile(file.FullFilePath)">下载</el-link>原件
|
该文件不支持在线预览,可点击<el-link type="primary" @click="downLoadFile(file.FullFilePath)">下载</el-link>原件
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getNoneDicomStudyFileList } from '@/api/trials'
|
import { getNoneDicomStudyFileList } from '@/api/trials'
|
||||||
export default {
|
export default {
|
||||||
name: 'PreviewFiles',
|
name: 'PreviewFiles',
|
||||||
props: {
|
props: {
|
||||||
noneDicomId: {
|
noneDicomId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
fileType: '',
|
fileType: '',
|
||||||
fileUrl: '',
|
fileUrl: '',
|
||||||
loading: false,
|
loading: false,
|
||||||
fileList: []
|
fileList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getFileList()
|
this.getFileList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getFileList() {
|
getFileList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
|
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
|
||||||
this.fileList = res.Result
|
this.fileList = res.Result
|
||||||
this.fileList.forEach(file => {
|
this.fileList.forEach(file => {
|
||||||
const fileName = file.FileName
|
const fileName = file.FileName
|
||||||
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
||||||
})
|
})
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.preview-wrapper{
|
.preview-wrapper{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 7px;
|
width: 7px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background: #d0d0d0;
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
.el-tabs{
|
.el-tabs{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row !important;
|
flex-direction: row !important;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.el-tabs__header{
|
.el-tabs__header{
|
||||||
margin-right: 10px !important;
|
margin-right: 10px !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
border: 2px solid #E4E7ED;
|
border: 2px solid #E4E7ED;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.el-tabs__content{
|
.el-tabs__content{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.el-tab-pane{
|
.el-tab-pane{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -215,7 +215,7 @@ export default {
|
||||||
},
|
},
|
||||||
handlePreview(filePath) {
|
handlePreview(filePath) {
|
||||||
if (filePath) {
|
if (filePath) {
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
<!-- 下载模板 -->
|
<!-- 下载模板 -->
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
v-hasPermi="['trials:trials-panel:visit:consistency-check:upload']"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
@click="handleDownload"
|
@click="handleDownload"
|
||||||
>
|
>
|
||||||
|
|
|
@ -82,7 +82,7 @@ export default {
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ export default {
|
||||||
},
|
},
|
||||||
downLoadFile(filePath) {
|
downLoadFile(filePath) {
|
||||||
if (!filePath) return
|
if (!filePath) return
|
||||||
window.open(filePath, '_blank')
|
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
|
||||||
},
|
},
|
||||||
preview(file) {
|
preview(file) {
|
||||||
this.$set(this.fileInfo, 'currentFileType', this.getFileType(file.FileName))
|
this.$set(this.fileInfo, 'currentFileType', this.getFileType(file.FileName))
|
||||||
|
|
Loading…
Reference in New Issue