1
continuous-integration/drone/push Build is passing Details

uat_us
熊飞 2024-01-26 12:20:03 +08:00
parent 6ca9ed8a9b
commit fcac89e034
23 changed files with 1014 additions and 1002 deletions

View File

@ -1,146 +1,146 @@
<template>
<div class="agreements-info">
<el-table
:data="agreementList"
style="margin-top:10px;"
:span-method="objectSpanMethod"
border
size="small"
>
<el-table-column type="index" label="No." width="50" />
<el-table-column
prop="TrialCode"
label="Trial ID"
min-width="50"
show-overflow-tooltip
/>
<el-table-column prop="Type" label="File Type" min-width="80" show-overflow-tooltip />
<el-table-column
prop="FileName"
label="File Name"
min-width="100"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="60"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button
v-if="(scope.row.Type=='Statement of Work') ||(scope.row.Type=='Acknowledgement of SOW') || scope.row.Type=='Consultant Agreement'"
size="small"
type="text"
@click="preview(scope.$index, scope.row)"
>View</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
doctorInfo: {
type: Object,
default() {
return {}
}
}
},
data() {
return {
agreementList: [],
spanArr: [],
pos: 0
}
},
created() {
this.initAgreement()
},
methods: {
initAgreement() {
if (this.doctorInfo.AttachmentList) {
this.doctorInfo.AttachmentList.forEach(item => {
if (item.Type === 'Consultant Agreement') {
item.TrialCode = ''
this.agreementList.push(item)
}
})
this.doctorInfo.SowList.forEach(item => {
item.Type = 'Statement of Work'
this.agreementList.push(item)
})
this.doctorInfo.AckSowList.forEach(item => {
item.Type = 'Acknowledgement of SOW'
this.agreementList.push(item)
})
this.agreementList = this.agreementList.sort((a, b) => {
if (a.TrialCode < b.TrialCode) {
return -1
} else if (a.TrialCode === b.TrialCode) {
return 1
} else {
return 0
}
})
this.getSpanArr(this.agreementList)
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 1) {
const _row = this.spanArr[rowIndex]
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)
this.pos = 0
} else {
//
if (data[i].TrialCode === data[i - 1].TrialCode) {
this.spanArr[this.pos] += 1
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')
}
},
timeFormatter(row) {
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
},
officalFormatter(row, column) {
if (row.IsOfficial) {
return 'Yes'
} else {
return 'No'
}
}
}
}
</script>
<style lang="scss">
.agreements-info{
padding:5px 15px;
font-size:13px;
}
</style>
<template>
<div class="agreements-info">
<el-table
:data="agreementList"
style="margin-top:10px;"
:span-method="objectSpanMethod"
border
size="small"
>
<el-table-column type="index" label="No." width="50" />
<el-table-column
prop="TrialCode"
label="Trial ID"
min-width="50"
show-overflow-tooltip
/>
<el-table-column prop="Type" label="File Type" min-width="80" show-overflow-tooltip />
<el-table-column
prop="FileName"
label="File Name"
min-width="100"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="60"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button
v-if="(scope.row.Type=='Statement of Work') ||(scope.row.Type=='Acknowledgement of SOW') || scope.row.Type=='Consultant Agreement'"
size="small"
type="text"
@click="preview(scope.$index, scope.row)"
>View</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
doctorInfo: {
type: Object,
default() {
return {}
}
}
},
data() {
return {
agreementList: [],
spanArr: [],
pos: 0
}
},
created() {
this.initAgreement()
},
methods: {
initAgreement() {
if (this.doctorInfo.AttachmentList) {
this.doctorInfo.AttachmentList.forEach(item => {
if (item.Type === 'Consultant Agreement') {
item.TrialCode = ''
this.agreementList.push(item)
}
})
this.doctorInfo.SowList.forEach(item => {
item.Type = 'Statement of Work'
this.agreementList.push(item)
})
this.doctorInfo.AckSowList.forEach(item => {
item.Type = 'Acknowledgement of SOW'
this.agreementList.push(item)
})
this.agreementList = this.agreementList.sort((a, b) => {
if (a.TrialCode < b.TrialCode) {
return -1
} else if (a.TrialCode === b.TrialCode) {
return 1
} else {
return 0
}
})
this.getSpanArr(this.agreementList)
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 1) {
const _row = this.spanArr[rowIndex]
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)
this.pos = 0
} else {
//
if (data[i].TrialCode === data[i - 1].TrialCode) {
this.spanArr[this.pos] += 1
this.spanArr.push(0)
} else {
this.spanArr.push(1)
this.pos = i
}
}
}
},
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
timeFormatter(row) {
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
},
officalFormatter(row, column) {
if (row.IsOfficial) {
return 'Yes'
} else {
return 'No'
}
}
}
}
</script>
<style lang="scss">
.agreements-info{
padding:5px 15px;
font-size:13px;
}
</style>

View File

@ -1,182 +1,182 @@
<template>
<div class="education-info">
<div class="btn-wrapper">
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">Download</el-button>
</div>
<el-table
:data="tblList"
:span-method="objectSpanMethod"
size="small"
@selection-change="selectMore"
>
<el-table-column type="selection" align="left" width="50" />
<el-table-column type="index" label="No." width="50" />
<el-table-column prop="Type" label="Type" min-width="50" show-overflow-tooltip />
<el-table-column
prop="FileName"
label="File Name"
min-width="80"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="50"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">View</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { downloadByAttachmentId } from '@/api/reviewers'
export default {
props: {
attachmentList: {
type: Array,
default() {
return []
}
},
doctorId: {
type: String,
default: ''
}
},
data() {
return {
tblList: [],
checkID: [],
spanArr: [],
pos: 0
}
},
created() {
this.tblList = this.filterListByType(this.attachmentList)
this.getSpanArr(this.tblList)
},
methods: {
filterListByType(arr) {
var list = []
if (arr.length > 0) {
arr.forEach(item => {
if (item.Type === 'Diploma of the highest medical degree') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Medical Qualification Certificate') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Practice License') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(CT)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(MRI)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(NM)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(US)') {
list.push(item)
}
})
}
return list
},
downloadAttachement() {
downloadByAttachmentId(this.doctorId, this.checkID).then(res => {
if (res.IsSuccess) {
var fullPath = res.Result.FullFilePath
window.open(fullPath)
}
})
},
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(filePath, '_blank')
}
},
selectMore(val) {
const arr = []
for (let index = 0; index < val.length; index++) {
arr.push(val[index].Id)
}
this.checkID = arr
},
getSpanArr(data) {
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.spanArr.push(1)
this.pos = 0
} else {
//
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>
<template>
<div class="education-info">
<div class="btn-wrapper">
<el-button style="margin-left:auto" size="small" :disabled="checkID.length==0" @click="downloadAttachement">Download</el-button>
</div>
<el-table
:data="tblList"
:span-method="objectSpanMethod"
size="small"
@selection-change="selectMore"
>
<el-table-column type="selection" align="left" width="50" />
<el-table-column type="index" label="No." width="50" />
<el-table-column prop="Type" label="Type" min-width="50" show-overflow-tooltip />
<el-table-column
prop="FileName"
label="File Name"
min-width="80"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="50"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">View</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { downloadByAttachmentId } from '@/api/reviewers'
export default {
props: {
attachmentList: {
type: Array,
default() {
return []
}
},
doctorId: {
type: String,
default: ''
}
},
data() {
return {
tblList: [],
checkID: [],
spanArr: [],
pos: 0
}
},
created() {
this.tblList = this.filterListByType(this.attachmentList)
this.getSpanArr(this.tblList)
},
methods: {
filterListByType(arr) {
var list = []
if (arr.length > 0) {
arr.forEach(item => {
if (item.Type === 'Diploma of the highest medical degree') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Medical Qualification Certificate') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Practice License') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(CT)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(MRI)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(NM)') {
list.push(item)
}
})
arr.forEach(item => {
if (item.Type === 'Modality Certificate(US)') {
list.push(item)
}
})
}
return list
},
downloadAttachement() {
downloadByAttachmentId(this.doctorId, this.checkID).then(res => {
if (res.IsSuccess) {
var fullPath = res.Result.FullFilePath
window.open(fullPath)
}
})
},
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
selectMore(val) {
const arr = []
for (let index = 0; index < val.length; index++) {
arr.push(val[index].Id)
}
this.checkID = arr
},
getSpanArr(data) {
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.spanArr.push(1)
this.pos = 0
} else {
//
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>

View File

@ -1,98 +1,98 @@
<template>
<div class="resume-info">
<el-table :data="list" style="margin-top:10px;" size="small">
<el-table-column type="index" label="No." width="50" />
<el-table-column
prop="FileName"
label="File Name"
min-width="60"
show-overflow-tooltip
/>
<el-table-column
prop="Isoffical"
label="Offical"
min-width="50"
:formatter="officalFormatter"
show-overflow-tooltip
/>
<el-table-column
prop="Language"
label="Language"
min-width="50"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'' }}
</template>
</el-table-column>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="60"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">Download</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
resumeList: {
type: Array,
default() {
return []
}
}
},
data() {
return {
list: []
}
},
created() {
this.list = this.filterResume(this.resumeList)
},
methods: {
filterResume(arr) {
var list = []
if (arr.length > 0) {
arr.forEach(item => {
if (item.Type === 'Resume') {
list.push(item)
}
})
}
return list
},
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(filePath, '_blank')
}
},
timeFormatter(row) {
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
},
officalFormatter(row, column) {
if (row.IsOfficial) {
return 'Yes'
} else {
return 'No'
}
}
}
}
</script>
<style lang="scss">
.resume-info{
padding:5px 15px;
font-size:13px;
}
</style>
<template>
<div class="resume-info">
<el-table :data="list" style="margin-top:10px;" size="small">
<el-table-column type="index" label="No." width="50" />
<el-table-column
prop="FileName"
label="File Name"
min-width="60"
show-overflow-tooltip
/>
<el-table-column
prop="Isoffical"
label="Offical"
min-width="50"
:formatter="officalFormatter"
show-overflow-tooltip
/>
<el-table-column
prop="Language"
label="Language"
min-width="50"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'' }}
</template>
</el-table-column>
<el-table-column
prop="CreateTime"
label="Upload Time"
min-width="60"
show-overflow-tooltip
/>
<el-table-column label="Action" min-width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="preview(scope.$index, scope.row)">Download</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
resumeList: {
type: Array,
default() {
return []
}
}
},
data() {
return {
list: []
}
},
created() {
this.list = this.filterResume(this.resumeList)
},
methods: {
filterResume(arr) {
var list = []
if (arr.length > 0) {
arr.forEach(item => {
if (item.Type === 'Resume') {
list.push(item)
}
})
}
return list
},
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
timeFormatter(row) {
return new Date(row.CreateTime).format('yyyy-MM-dd hh:mm:ss')
},
officalFormatter(row, column) {
if (row.IsOfficial) {
return 'Yes'
} else {
return 'No'
}
}
}
}
</script>
<style lang="scss">
.resume-info{
padding:5px 15px;
font-size:13px;
}
</style>

View File

@ -75,7 +75,7 @@ export default {
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
},
preview(file) {
this.$set(this.fileInfo, 'currentId', file.Id)

View File

@ -1,100 +1,100 @@
<template>
<div v-loading="loading" class="preview-wrapper">
<el-tabs tab-position="right" type="card">
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
<iframe
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
frameborder="0"
:src="file.FullFilePath"
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="`/static/pdfjs/web/viewer.html?file=${file.FullFilePath}`" width="100%" height="100%" frameborder="0" />
<div v-else>
{{ $t('common:message:downloadFile') }}
<el-link type="primary" @click="downLoadFile(file.FullFilePath)">{{ $t('common:button:download') }}</el-link>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getNoneDicomStudyFileList } from '@/api/trials'
import store from '@/store'
import { changeURLStatic } from '@/utils/history.js'
export default {
name: 'SingleNoneDicom',
data() {
return {
fileType: '',
fileUrl: '',
loading: false,
fileList: [],
noneDicomId: ''
}
},
mounted() {
if (this.$router.currentRoute.query.TokenKey) {
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
changeURLStatic('TokenKey', '')
}
this.noneDicomId = this.$router.currentRoute.query.Id
this.getFileList()
},
methods: {
getFileList() {
this.loading = true
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
this.fileList = res.Result
this.fileList.forEach(file => {
const fileName = file.FileName
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
})
this.loading = false
}).catch(() => { this.loading = false })
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
}
}
}
</script>
<style lang="scss">
.preview-wrapper{
height: 100%;
::-webkit-scrollbar {
width: 7px;
height: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #d0d0d0;
}
.el-tabs{
display: flex;
flex-direction: row !important;
width: 100%;
height: 100%;
.el-tabs__header{
margin-right: 10px !important;
height: 100% !important;
width: 300px;
border: 2px solid #E4E7ED;
overflow: auto;
}
.el-tabs__content{
flex: 1;
height: 100%;
.el-tab-pane{
height: 100%;
}
}
}
}
</style>
<template>
<div v-loading="loading" class="preview-wrapper">
<el-tabs tab-position="right" type="card">
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
<iframe
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
frameborder="0"
:src="file.FullFilePath"
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="`/static/pdfjs/web/viewer.html?file=${file.FullFilePath}`" width="100%" height="100%" frameborder="0" />
<div v-else>
{{ $t('common:message:downloadFile') }}
<el-link type="primary" @click="downLoadFile(file.FullFilePath)">{{ $t('common:button:download') }}</el-link>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getNoneDicomStudyFileList } from '@/api/trials'
import store from '@/store'
import { changeURLStatic } from '@/utils/history.js'
export default {
name: 'SingleNoneDicom',
data() {
return {
fileType: '',
fileUrl: '',
loading: false,
fileList: [],
noneDicomId: ''
}
},
mounted() {
if (this.$router.currentRoute.query.TokenKey) {
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
changeURLStatic('TokenKey', '')
}
this.noneDicomId = this.$router.currentRoute.query.Id
this.getFileList()
},
methods: {
getFileList() {
this.loading = true
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
this.fileList = res.Result
this.fileList.forEach(file => {
const fileName = file.FileName
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
})
this.loading = false
}).catch(() => { this.loading = false })
},
downLoadFile(filePath) {
if (!filePath) return
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
}
}
</script>
<style lang="scss">
.preview-wrapper{
height: 100%;
::-webkit-scrollbar {
width: 7px;
height: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #d0d0d0;
}
.el-tabs{
display: flex;
flex-direction: row !important;
width: 100%;
height: 100%;
.el-tabs__header{
margin-right: 10px !important;
height: 100% !important;
width: 300px;
border: 2px solid #E4E7ED;
overflow: auto;
}
.el-tabs__content{
flex: 1;
height: 100%;
.el-tab-pane{
height: 100%;
}
}
}
}
</style>

View File

@ -14,21 +14,21 @@
<el-table-column
prop="TrialCode"
label="Trial ID"
:label="$t('resumeInfo:label:TrialCode')"
min-width="50"
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
prop="FileName"
label="File Name"
:label="$t('resumeInfo:label:FileName')"
min-width="100"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
:label="$t('resumeInfo:label:CreateTime')"
min-width="60"
show-overflow-tooltip
/>
@ -39,7 +39,7 @@
size="small"
type="text"
@click="preview(scope.$index, scope.row)"
>View</el-button>
>{{$t('resumeInfo:button:view')}}</el-button>
</template>
</el-table-column>
</el-table>
@ -124,7 +124,7 @@ export default {
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
timeFormatter(row) {

View File

@ -1,101 +1,101 @@
<template>
<div class="basic-info">
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
<el-row>
<el-col :span="6">
<el-form-item label="Surname:">
<span>{{ basicInfo.LastName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Given Name:">
<span>{{ basicInfo.FirstName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Name CN:">
<span>{{ basicInfo.ChineseName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ID:">
<span>{{ basicInfo.ReviewerCode }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="Gender:">
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
<span v-else>{{ basicInfo.Sex === 0?'':'' }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Title:">
<span v-if="isEnglish">
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
</span>
<span v-else>
{{ (Array.isArray(basicInfo.TitleCNList)&& basicInfo.TitleCNList.length > 0) ? basicInfo.TitleCNList.join(', ') : '' }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Phone:">
<span>{{ basicInfo.Phone }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Email:">
<span>{{ basicInfo.EMail }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="WeChat:">
<span>{{ basicInfo.WeChat }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
export default {
props: {
basicInfo: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.basic-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>
<template>
<div class="basic-info">
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
<el-row>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:Surname')">
<span>{{ basicInfo.LastName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:FirstName')">
<span>{{ basicInfo.FirstName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:ChineseName')">
<span>{{ basicInfo.ChineseName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:ReviewerCode')">
<span>{{ basicInfo.ReviewerCode }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:Sex')">
<span v-if="isEnglish">{{ basicInfo.Sex === 0?'Male':'Female' }}</span>
<span v-else>{{ basicInfo.Sex === 0?'':'' }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:Title')">
<span v-if="isEnglish">
{{ (Array.isArray(basicInfo.Title)&& basicInfo.Title.length > 0) ? basicInfo.TitleList.join(', ') : '' }}
</span>
<span v-else>
{{ (Array.isArray(basicInfo.TitleCNList)&& basicInfo.TitleCNList.length > 0) ? basicInfo.TitleCNList.join(', ') : '' }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:Phone')">
<span>{{ basicInfo.Phone }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:Email')">
<span>{{ basicInfo.EMail }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item :label="$t('resumeInfo:label:WeChat')">
<span>{{ basicInfo.WeChat }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
export default {
props: {
basicInfo: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.basic-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>

View File

@ -1,48 +1,48 @@
<template>
<div class="comment-info">
<el-form :model="statusList" class="demo-form-inline" size="small">
<el-form-item label="Comment:">
<el-input
v-model="statusList.AdminComment"
type="textarea"
autosize
readonly
/>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
statusList: {
type: Object,
default() {
return {}
}
}
}
}
</script>
<style lang="scss">
.comment-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>
<template>
<div class="comment-info">
<el-form :model="statusList" class="demo-form-inline" size="small">
<el-form-item :label="$t('resumeInfo:label:Comment')">
<el-input
v-model="statusList.AdminComment"
type="textarea"
autosize
readonly
/>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
statusList: {
type: Object,
default() {
return {}
}
}
}
}
</script>
<style lang="scss">
.comment-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>

View File

@ -1,7 +1,7 @@
<template>
<div class="education-info">
<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>
<el-table
:data="tblList"
@ -13,23 +13,23 @@
<span></span>
</template>
<el-table-column type="selection" align="left" width="50" />
<el-table-column type="index" label="No." width="50" />
<el-table-column prop="Type" label="Type" min-width="50" show-overflow-tooltip />
<el-table-column type="index" :label="$t('resumeInfo:label:No')" width="50" />
<el-table-column prop="Type" :label="$t('resumeInfo:label:Type')" min-width="50" show-overflow-tooltip />
<el-table-column
prop="FileName"
label="File Name"
:label="$t('resumeInfo:label:FileName')"
min-width="80"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
label="Upload Time"
:label="$t('resumeInfo:label:CreateTime')"
min-width="50"
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">
<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>
</el-table-column>
</el-table>
@ -163,7 +163,7 @@ export default {
preview(index, row) {
const filePath = row.FullPath
if (filePath) {
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
selectMore(val) {

View File

@ -5,27 +5,27 @@
<template slot="empty">
<span></span>
</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
prop="BeginDateStr"
label="Start"
:label="$t('resumeInfo:label:BeginDateStr')"
min-width="55"
show-overflow-tooltip
/>
<el-table-column
prop="EndDateStr"
label="End"
:label="$t('resumeInfo:label:EndDateStr')"
min-width="55"
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">
<span v-show="scope.row.Degree">
{{ isEnglish?scope.row.Degree:scope.row.DegreeCN }}
</span>
</template>
</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">
<span v-show="scope.row.Major">
{{ isEnglish?scope.row.Major:scope.row.MajorCN }}
@ -34,7 +34,7 @@
</el-table-column>
<el-table-column
prop="Organization"
label="Institution"
:label="$t('resumeInfo:label:Institution')"
min-width="150"
show-overflow-tooltip
>
@ -44,7 +44,7 @@
</span>
</template>
</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">
<span v-show="scope.row.City">
{{ isEnglish?scope.row.City:scope.row.CityCN }}
@ -53,7 +53,7 @@
</el-table-column>
<el-table-column
prop="Province"
label="State/Province"
:label="$t('resumeInfo:label:Province')"
min-width="80"
show-overflow-tooltip
>
@ -63,7 +63,7 @@
</span>
</template>
</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">
<span v-show="scope.row.Country">
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}
@ -72,25 +72,25 @@
</el-table-column>
</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">
<template slot="empty">
<span></span>
</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
prop="BeginDateStr"
label="Start"
:label="$t('resumeInfo:label:BeginDateStr')"
min-width="55"
show-overflow-tooltip
/>
<el-table-column
prop="EndDateStr"
label="End"
:label="$t('resumeInfo:label:EndDateStr')"
min-width="55"
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">
<span v-show="scope.row.Training">
{{ isEnglish?scope.row.Training:scope.row.TrainingCN }}
@ -99,7 +99,7 @@
</el-table-column>
<el-table-column
prop="Major"
label="Specialty / Research Field"
:label="$t('resumeInfo:label:Specialty')"
min-width="140"
show-overflow-tooltip
>
@ -110,21 +110,21 @@
</template>
</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">
<span v-show="scope.row.Hospital">
{{ isEnglish?scope.row.Hospital:scope.row.HospitalCN }}
</span>
</template>
</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">
<span v-show="scope.row.School">
{{ isEnglish?scope.row.School:scope.row.SchoolCN }}
</span>
</template>
</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">
<span v-show="scope.row.City">
{{ isEnglish?scope.row.City:scope.row.CityCN }}
@ -133,7 +133,7 @@
</el-table-column>
<el-table-column
prop="Province"
label="State/Province"
:label="$t('resumeInfo:label:StateProvince')"
min-width="90"
show-overflow-tooltip
>
@ -143,7 +143,7 @@
</span>
</template>
</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">
<span v-show="scope.row.Country">
{{ isEnglish?scope.row.Country:scope.row.CountryCN }}

View File

@ -3,25 +3,25 @@
<el-form :inline="true" :model="employment" class="demo-form-inline" size="small">
<el-row>
<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-else>{{ employment.DepartmentCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.RankCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.PhysicianCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.PositionCN }}</span>
</el-form-item>
@ -30,31 +30,31 @@
<el-row>
<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-else>{{ employment.HospitalNameCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.UniversityAffiliatedCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.CityCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.ProvinceCN }}</span>
</el-form-item>
</el-col>
<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-else>{{ employment.CountryCN }}</span>
</el-form-item>

View File

@ -1,102 +1,102 @@
<template>
<div class="research-info">
<el-form :model="researchInfo" class="demo-form-inline" size="small">
<el-form-item label="Field of Research:">
<el-input
v-if="isEnglish"
v-model="researchInfo.Research"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.ResearchCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item label="Grants:">
<el-input
v-if="isEnglish"
v-model="researchInfo.Grants"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.GrantsCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item label="Publications:">
<el-input
v-model="researchInfo.Publications"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item label="Awards & Honors:">
<el-input
v-if="isEnglish"
v-model="researchInfo.AwardsHonors"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.AwardsHonorsCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
researchInfo: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.research-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>
<template>
<div class="research-info">
<el-form :model="researchInfo" class="demo-form-inline" size="small">
<el-form-item :label="$t('resumeInfo:label:FieldofResearch')">
<el-input
v-if="isEnglish"
v-model="researchInfo.Research"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.ResearchCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item :label="$t('resumeInfo:label:Grants')">
<el-input
v-if="isEnglish"
v-model="researchInfo.Grants"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.GrantsCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item :label="$t('resumeInfo:label:Publications')">
<el-input
v-model="researchInfo.Publications"
type="textarea"
autosize
readonly
/>
</el-form-item>
<el-form-item :label="$t('resumeInfo:label:Awards&Honors')">
<el-input
v-if="isEnglish"
v-model="researchInfo.AwardsHonors"
type="textarea"
autosize
readonly
/>
<el-input
v-else
v-model="researchInfo.AwardsHonorsCN"
type="textarea"
autosize
readonly
/>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
researchInfo: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.research-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>

View File

@ -4,23 +4,23 @@
<template slot="empty">
<span></span>
</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="FileName"
label="File Name"
:label="$t('resumeInfo:label:FileName')"
min-width="60"
show-overflow-tooltip
/>
<el-table-column
prop="Isoffical"
label="Offical"
:label="$t('resumeInfo:label:Isoffical')"
min-width="50"
:formatter="officalFormatter"
show-overflow-tooltip
/>
<el-table-column
prop="Language"
label="Language"
:label="$t('resumeInfo:label:Language')"
min-width="50"
show-overflow-tooltip
>
@ -30,13 +30,13 @@
</el-table-column>
<el-table-column
prop="CreateTime"
label="Upload Time"
:label="$t('resumeInfo:label:CreateTime')"
min-width="60"
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">
<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>
</el-table-column>
</el-table>

View File

@ -1,58 +1,58 @@
<template>
<div class="specialty-info">
<el-form :model="specialty" class="demo-form-inline" size="small">
<el-form-item label="Specialty:">
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
<span v-else>{{ specialty.SpecialityCN }}</span>
</el-form-item>
<el-form-item label="Subspeciality:">
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
<span v-else>{{ specialty.SubspecialityCNList }}</span>
</el-form-item>
<el-form-item label="Modality:">
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
specialty: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.specialty-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>
<template>
<div class="specialty-info">
<el-form :model="specialty" class="demo-form-inline" size="small">
<el-form-item :label="$t('resumeInfo:label:Speciality')">
<span v-if="isEnglish">{{ specialty.Speciality }}</span>
<span v-else>{{ specialty.SpecialityCN }}</span>
</el-form-item>
<el-form-item :label="$t('resumeInfo:label:Subspeciality')">
<span v-if="isEnglish">{{ specialty.Subspeciality }}</span>
<span v-else>{{ specialty.SubspecialityCNList }}</span>
</el-form-item>
<el-form-item :label="$t('resumeInfo:label:ReadingType')">
<span v-if="isEnglish">{{ specialty.ReadingType }}</span>
<span v-else>{{ specialty.ReadingTypeCNList }}</span>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props: {
specialty: {
type: Object,
default() {
return {}
}
},
isEnglish: {
type: Boolean
}
}
}
</script>
<style lang="scss">
.specialty-info{
padding:5px 15px;
font-size:13px;
.el-form-item--mini.el-form-item{
margin-bottom: 0px;
}
.el-form-item--small.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
font-size: 13px;
}
.el-form-item__label{
font-size: 13px;
color: #303133;
font-weight: bold;
}
}
</style>

View File

@ -3,7 +3,7 @@
<el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
<el-row>
<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">
<router-link
:to="{
@ -17,7 +17,7 @@
</el-form-item>
</el-col>
<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">
<router-link
:to="{
@ -31,7 +31,7 @@
</el-form-item>
</el-col>
<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">
<router-link
:to="{
@ -44,13 +44,13 @@
</el-form-item>
</el-col>
<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>
<el-button
type="text"
size="small"
@click="initHolidayList"
>Planned Vacation</el-button>
>{{ $t('resumeInfo:label:PlannedVacation') }}</el-button>
</el-form-item>
</el-col>
</el-row>
@ -65,13 +65,13 @@
<el-table-column type="index" />
<el-table-column
property="StartDate"
label="Beginning Date"
:label="$t('resumeInfo:label:BeginningDate')"
min-width="120"
:formatter="beginTimeFormatter"
/>
<el-table-column
property="EndDate"
label="End Date"
:label="$t('resumeInfo:label:EndDate')"
min-width="120"
:formatter="endTimeFormatter"
/>

View File

@ -5,11 +5,11 @@
<template slot="empty">
<span></span>
</template>
<el-table-column type="index" label="No." width="50" />
<el-table-column prop="Phase" label="Phase" min-width="20" show-overflow-tooltip />
<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
prop="EvaluationCriteriaList"
label="Review Criteria"
:label="$t('resumeInfo:label:ReviewCriteria')"
min-width="40"
show-overflow-tooltip
>
@ -19,20 +19,20 @@
</el-table-column>
<el-table-column
prop="VisitReadingCount"
label="Visit Reading Count"
:label="$t('resumeInfo:label:VisitReadingCount')"
min-width="150"
show-overflow-tooltip
/>
<el-table-column
prop="EvaluationContent"
label="Indication"
:label="$t('resumeInfo:label:EvaluationContent')"
min-width="150"
show-overflow-tooltip
/>
</el-table>
<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>
<a
v-if="form.GCP"
@ -42,7 +42,7 @@
>View</a>
</el-form-item>
<el-form-item label="Other Relevant Experience:">
<el-form-item :label="$t('resumeInfo:label:OtherRelevantExperience')">
<el-input
v-if="isEnglish"
v-model="form.OtherClinicalExperience"

View File

@ -91,14 +91,26 @@ export default {
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() {
// this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
// this.isEnglish = this.$i18n.locale === 'zh' ? false : true
this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
this.isEnglish = this.$i18n.locale === 'zh' ? false : true
this.doctorId = this.$route.query.doctorId
this.initForm()
},
methods: {
initStatus() {
if (this.doctorInfo.AuditView) {
const res = this.doctorInfo.AuditView

View File

@ -217,7 +217,7 @@ export default {
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
},
handleSearch() {
this.searchData.PageIndex = 1

View File

@ -405,7 +405,7 @@ export default {
},
handlePreview(filePath) {
if (filePath) {
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
handleSearch() {

View File

@ -1,94 +1,94 @@
<template>
<div v-loading="loading" class="preview-wrapper">
<el-tabs tab-position="right" type="card">
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
<iframe
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
frameborder="0"
:src="file.FullFilePath"
width="100%"
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>
该文件不支持在线预览可点击<el-link type="primary" @click="downLoadFile(file.FullFilePath)"></el-link>原件
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getNoneDicomStudyFileList } from '@/api/trials'
export default {
name: 'PreviewFiles',
props: {
noneDicomId: {
type: String,
required: true
}
},
data() {
return {
fileType: '',
fileUrl: '',
loading: false,
fileList: []
}
},
mounted() {
this.getFileList()
},
methods: {
getFileList() {
this.loading = true
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
this.fileList = res.Result
this.fileList.forEach(file => {
const fileName = file.FileName
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
})
this.loading = false
}).catch(() => { this.loading = false })
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
}
}
}
</script>
<style lang="scss">
.preview-wrapper{
height: 100%;
::-webkit-scrollbar {
width: 7px;
height: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #d0d0d0;
}
.el-tabs{
display: flex;
flex-direction: row !important;
width: 100%;
height: 100%;
.el-tabs__header{
margin-right: 10px !important;
height: 100% !important;
width: 300px;
border: 2px solid #E4E7ED;
overflow: auto;
}
.el-tabs__content{
flex: 1;
height: 100%;
.el-tab-pane{
height: 100%;
}
}
}
}
</style>
<template>
<div v-loading="loading" class="preview-wrapper">
<el-tabs tab-position="right" type="card">
<el-tab-pane v-for="file in fileList" :key="file.Id" :label="file.FileName">
<iframe
v-if="file.Type.indexOf('jpg') !== -1 || file.Type.indexOf('png') !== -1"
frameborder="0"
:src="file.FullFilePath"
width="100%"
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>
该文件不支持在线预览可点击<el-link type="primary" @click="downLoadFile(file.FullFilePath)"></el-link>原件
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getNoneDicomStudyFileList } from '@/api/trials'
export default {
name: 'PreviewFiles',
props: {
noneDicomId: {
type: String,
required: true
}
},
data() {
return {
fileType: '',
fileUrl: '',
loading: false,
fileList: []
}
},
mounted() {
this.getFileList()
},
methods: {
getFileList() {
this.loading = true
getNoneDicomStudyFileList(this.noneDicomId).then(res => {
this.fileList = res.Result
this.fileList.forEach(file => {
const fileName = file.FileName
file.Type = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
})
this.loading = false
}).catch(() => { this.loading = false })
},
downLoadFile(filePath) {
if (!filePath) return
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
}
}
</script>
<style lang="scss">
.preview-wrapper{
height: 100%;
::-webkit-scrollbar {
width: 7px;
height: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #d0d0d0;
}
.el-tabs{
display: flex;
flex-direction: row !important;
width: 100%;
height: 100%;
.el-tabs__header{
margin-right: 10px !important;
height: 100% !important;
width: 300px;
border: 2px solid #E4E7ED;
overflow: auto;
}
.el-tabs__content{
flex: 1;
height: 100%;
.el-tab-pane{
height: 100%;
}
}
}
}
</style>

View File

@ -215,7 +215,7 @@ export default {
},
handlePreview(filePath) {
if (filePath) {
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
},
handleSearch() {

View File

@ -82,7 +82,7 @@ export default {
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
}
}
}

View File

@ -74,7 +74,7 @@ export default {
},
downLoadFile(filePath) {
if (!filePath) return
window.open(filePath, '_blank')
window.open(this.OSSclientConfig.basePath + filePath, '_blank')
},
preview(file) {
this.$set(this.fileInfo, 'currentFileType', this.getFileType(file.FileName))