Merge commit '49dcab2a0e6e2b5a2de22a4256ec383b3b9ddb28' into uat
# Conflicts: # src/views/trials/trials-panel/reading/dicoms/components/DicomCanvas.vue # src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomCanvas.vue # src/views/trials/trials-panel/visit/crc-upload/index.vue # vue.config.jsuat_us
commit
0ce246689b
|
@ -27,7 +27,7 @@ VUE_APP_LOGOUT_FOR_PERMISSION = false
|
||||||
VUE_APP_LOGOUT_FOR_TIME = 1800
|
VUE_APP_LOGOUT_FOR_TIME = 1800
|
||||||
|
|
||||||
# 是否开启密码正则验证 true:是 false:否
|
# 是否开启密码正则验证 true:是 false:否
|
||||||
VUE_APP_PASSWORD_FOR_PERMISSION = true
|
VUE_APP_PASSWORD_FOR_PERMISSION = false
|
||||||
|
|
||||||
# 密码校验规则
|
# 密码校验规则
|
||||||
VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$
|
VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$
|
||||||
|
@ -35,6 +35,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!
|
||||||
# 是否开启文档签署验证 true:是 false:否
|
# 是否开启文档签署验证 true:是 false:否
|
||||||
VUE_APP_WORD_FOR_PERMISSION = false
|
VUE_APP_WORD_FOR_PERMISSION = false
|
||||||
|
|
||||||
|
# 公司名称
|
||||||
|
VUE_APP_COMPANY_NAME = "Extensive Imaging"
|
||||||
|
|
||||||
|
|
||||||
# dicom文件地址
|
# dicom文件地址
|
||||||
VUE_APP_DICOM_PATH = 'https://zyypacs.oss-cn-shanghai.aliyuncs.com'
|
VUE_APP_DICOM_PATH = 'https://zyypacs.oss-cn-shanghai.aliyuncs.com'
|
||||||
|
|
|
@ -29,6 +29,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!
|
||||||
# 是否开启文档签署验证 true:是 false:否
|
# 是否开启文档签署验证 true:是 false:否
|
||||||
VUE_APP_WORD_FOR_PERMISSION = true
|
VUE_APP_WORD_FOR_PERMISSION = true
|
||||||
|
|
||||||
|
# 公司名称
|
||||||
|
VUE_APP_COMPANY_NAME = "Extensive Imaging"
|
||||||
|
|
||||||
# dicom文件地址
|
# dicom文件地址
|
||||||
# VUE_APP_DICOM_PATH = 'http://101.132.193.237:7080'
|
# VUE_APP_DICOM_PATH = 'http://101.132.193.237:7080'
|
||||||
VUE_APP_DICOM_PATH = 'https://zyypacs-prod.oss-cn-shanghai.aliyuncs.com'
|
VUE_APP_DICOM_PATH = 'https://zyypacs-prod.oss-cn-shanghai.aliyuncs.com'
|
||||||
|
|
3
.env.uat
3
.env.uat
|
@ -31,6 +31,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!
|
||||||
# 是否开启文档签署验证 true:是 false:否
|
# 是否开启文档签署验证 true:是 false:否
|
||||||
VUE_APP_WORD_FOR_PERMISSION = true
|
VUE_APP_WORD_FOR_PERMISSION = true
|
||||||
|
|
||||||
|
# 公司名称
|
||||||
|
VUE_APP_COMPANY_NAME = "Extensive Imaging"
|
||||||
|
|
||||||
# dicom文件地址
|
# dicom文件地址
|
||||||
VUE_APP_DICOM_PATH = 'https://zyypacs-uat.oss-cn-shanghai.aliyuncs.com'
|
VUE_APP_DICOM_PATH = 'https://zyypacs-uat.oss-cn-shanghai.aliyuncs.com'
|
||||||
|
|
||||||
|
|
5
.env.usa
5
.env.usa
|
@ -2,7 +2,7 @@
|
||||||
ENV = 'production'
|
ENV = 'production'
|
||||||
NODE_ENV = 'production'
|
NODE_ENV = 'production'
|
||||||
# base public path
|
# base public path
|
||||||
VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-01-31/'
|
VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-04-29/'
|
||||||
|
|
||||||
# 是否开启登陆限制 true:是 false:否
|
# 是否开启登陆限制 true:是 false:否
|
||||||
VUE_APP_LOGIN_FOR_PERMISSION = false
|
VUE_APP_LOGIN_FOR_PERMISSION = false
|
||||||
|
@ -28,6 +28,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!
|
||||||
# 是否开启文档签署验证 true:是 false:否
|
# 是否开启文档签署验证 true:是 false:否
|
||||||
VUE_APP_WORD_FOR_PERMISSION = true
|
VUE_APP_WORD_FOR_PERMISSION = true
|
||||||
|
|
||||||
|
# 公司名称
|
||||||
|
VUE_APP_COMPANY_NAME = "Elevate Imaging"
|
||||||
|
|
||||||
# dicom文件地址
|
# dicom文件地址
|
||||||
VUE_APP_DICOM_PATH = 'https://zyypacs-usa.oss-us-west-1.aliyuncs.com'
|
VUE_APP_DICOM_PATH = 'https://zyypacs-usa.oss-us-west-1.aliyuncs.com'
|
||||||
|
|
||||||
|
|
|
@ -11520,6 +11520,15 @@
|
||||||
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz",
|
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz",
|
||||||
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
|
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
|
||||||
},
|
},
|
||||||
|
"moment-timezone": {
|
||||||
|
"version": "0.5.45",
|
||||||
|
"resolved": "https://registry.npmmirror.com/moment-timezone/-/moment-timezone-0.5.45.tgz",
|
||||||
|
"integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"moment": "^2.29.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"move-concurrently": {
|
"move-concurrently": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"name": "EICS",
|
"name": "EICS",
|
||||||
"version": "1.3.2",
|
"version": "1.3.2",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vue-cli-service serve --open",
|
"dev": "vue-cli-service serve --open --mode development",
|
||||||
"build": "vue-cli-service build",
|
"build": "vue-cli-service build",
|
||||||
"build:prod": "vue-cli-service build --mode prod",
|
"build:prod": "vue-cli-service build --mode prod",
|
||||||
"build:uat": "vue-cli-service build --mode uat",
|
"build:uat": "vue-cli-service build --mode uat",
|
||||||
|
@ -83,6 +83,7 @@
|
||||||
"eslint-plugin-vue": "^6.2.2",
|
"eslint-plugin-vue": "^6.2.2",
|
||||||
"html-webpack-plugin": "3.2.0",
|
"html-webpack-plugin": "3.2.0",
|
||||||
"minio": "^7.1.3",
|
"minio": "^7.1.3",
|
||||||
|
"moment-timezone": "^0.5.45",
|
||||||
"node-xlsx": "^0.21.0",
|
"node-xlsx": "^0.21.0",
|
||||||
"runjs": "^4.3.2",
|
"runjs": "^4.3.2",
|
||||||
"script-ext-html-webpack-plugin": "2.1.3",
|
"script-ext-html-webpack-plugin": "2.1.3",
|
||||||
|
|
|
@ -148,8 +148,8 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.tableData = Object.assign([], this.arr)
|
this.tableData = Object.assign([], this.arr)
|
||||||
}
|
}
|
||||||
console.log(JSON.stringify(this.$path))
|
// console.log(JSON.stringify(this.$path))
|
||||||
console.log(JSON.stringify(this.tableData))
|
// console.log(JSON.stringify(this.tableData))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,9 @@ export function getBasicDataSelects(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getBasicDataAllSelect(params) {
|
export function getBasicDataAllSelect(params, isSystem) {
|
||||||
return request({
|
return request({
|
||||||
url: params ? `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect`,
|
url: params ? (isSystem ? `/Dictionary/getBasicDataAllSelect?SystemReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}`) : `/Dictionary/getBasicDataAllSelect`,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1747,6 +1747,21 @@ export function deleteTrialExternalUser(id) {
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getUserTobeDoneRecord() {
|
||||||
|
return request({
|
||||||
|
url: `/PersonalWorkstation/getUserTobeDoneRecord`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNeedSignTrialDocTrialIdList() {
|
||||||
|
return request({
|
||||||
|
url: `/PersonalWorkstation/getNeedSignTrialDocTrialIdList`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function getBasicStat() {
|
export function getBasicStat() {
|
||||||
return request({
|
return request({
|
||||||
url: `/PersonalWorkstation/getBasicStat`,
|
url: `/PersonalWorkstation/getBasicStat`,
|
||||||
|
@ -2795,6 +2810,29 @@ export function saveImageQuality(param) {
|
||||||
data: param
|
data: param
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function getIsSuvMaxLesion(param) {
|
||||||
|
return request({
|
||||||
|
url: `/LuganoCalculate/getIsSuvMaxLesion`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCanChooseNotMerge(param) {
|
||||||
|
return request({
|
||||||
|
url: `/LuganoCalculate/getCanChooseNotMerge`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function saveTaskQuestion(saveQuestionType, param) {
|
||||||
|
return request({
|
||||||
|
url: `/SaveTaskQuestion/${saveQuestionType}`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function deleteReadingRowAnswer(param) {
|
export function deleteReadingRowAnswer(param) {
|
||||||
return request({
|
return request({
|
||||||
url: `/ReadingImageTask/deleteReadingRowAnswer`,
|
url: `/ReadingImageTask/deleteReadingRowAnswer`,
|
||||||
|
@ -2864,6 +2902,14 @@ export function asyncTrialCriterionDictionary(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function configTrialProcessInfoVerification(param) {
|
||||||
|
return request({
|
||||||
|
url: `/TrialConfig/configTrialProcessInfoVerification`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function getTrialEmailNoticeConfigList(param) {
|
export function getTrialEmailNoticeConfigList(param) {
|
||||||
return request({
|
return request({
|
||||||
url: `/TrialEmailNoticeConfig/getTrialEmailNoticeConfigList`,
|
url: `/TrialEmailNoticeConfig/getTrialEmailNoticeConfigList`,
|
||||||
|
@ -3519,3 +3565,105 @@ export function getTrialSiteSurveySelectList(param) {
|
||||||
data: param
|
data: param
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function getCanMergeLesion(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingImageTask/getCanMergeLesion`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function mergeLesion(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingImageTask/mergeLesion`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function resetAndAsyncCriterion(param) {
|
||||||
|
return request({
|
||||||
|
url: `/Inspection/ReadingCriterion/ResetAndAsyncCriterion`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function batchSetCriterionJoinJoinAnalysis(param) {
|
||||||
|
return request({
|
||||||
|
url: `/DoctorWorkload/batchSetCriterionJoinJoinAnalysis`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateTrialVirtualSiteCode(param) {
|
||||||
|
return request({
|
||||||
|
url: `/TaskConsistentRule/updateTrialVirtualSiteCode`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getUpdateVirtualSiteCodeList(param) {
|
||||||
|
return request({
|
||||||
|
url: `/TaskConsistentRule/getUpdateVirtualSiteCodeList?trialId=${param.trialId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addDefaultQuestions(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingMedicineQuestion/addDefaultQuestions`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getReadingCalculationData(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingImageTask/getReadingCalculationData`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTrialSignDocumentList(param) {
|
||||||
|
return request({
|
||||||
|
url: `/TrialDocument/getTrialSignDocumentList`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPreviousOtherPicturePath(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingImageTask/getPreviousOtherPicturePath`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function verifyIsCanConfirm(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingMedicineQuestion/verifyIsCanConfirm`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getPTAndCtSeries(param) {
|
||||||
|
return request({
|
||||||
|
url: `/SubjectVisit/getPTAndCtSeries`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDicomSeriesInfo(param) {
|
||||||
|
return request({
|
||||||
|
url: `/SubjectVisit/getDicomSeriesInfo`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,12 @@ export function login(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function loginOut() {
|
||||||
|
return request({
|
||||||
|
url: `/User/loginOut`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
export function getAllDictionary() {
|
export function getAllDictionary() {
|
||||||
return request({
|
return request({
|
||||||
url: '/dictionary/getAllDictionary',
|
url: '/dictionary/getAllDictionary',
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -2,13 +2,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="trialsTab">
|
<div class="trialsTab">
|
||||||
<el-tabs v-model="trialsTab" @tab-click="clickTab">
|
<el-tabs v-model="trialsTab" @tab-click="clickTab">
|
||||||
<el-tab-pane v-for="item of trialsRouter.children.find(v => {return v.name == 'TrialsPanel'}).children" :key="`tab${item.path}`" :disabled="TotalNeedSignTrialDocCount !== 0" :label="$t(item.LanguageMark)" :name="item.path">
|
<el-tab-pane v-for="item of trialsRouter.children.find(v => {return v.name == 'TrialsPanel'}).children" :key="`tab${item.path}`" :disabled="TotalNeedSignTrialDocCount !== 0 && item.path !== '/trials/trials-panel/attachments'" :label="$t(item.LanguageMark)" :name="item.path">
|
||||||
<el-tabs v-if="!item.tabHiddn" v-model="trialsTabChild" @tab-click="clickTab">
|
<el-tabs v-if="!item.tabHiddn" v-model="trialsTabChild" @tab-click="clickTab">
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
v-for="item1 of item.children"
|
v-for="item1 of item.children"
|
||||||
v-if="TrialConfig && isShow(item1.path)"
|
v-if="TrialConfig && isShow(item1.path)"
|
||||||
:key="`tab1${item1.path}`"
|
:key="`tab1${item1.path}`"
|
||||||
:disabled="TotalNeedSignTrialDocCount !== 0 || (TrialStatusStr === 'Initializing' && (item1.path === '/trials/trials-panel/setting/personnel-manage' || item1.path === '/trials/trials-panel/setting/qc-question' || item1.path === '/trials/trials-panel/setting/reading-unit' || item1.path === '/trials/trials-panel/setting/medical-audit' || item1.path === '/trials/trials-panel/setting/email-manage'))"
|
:disabled="TotalNeedSignTrialDocCount !== 0 && item1.path !== '/trials/trials-panel/attachments/self-attachment' || (TrialStatusStr === 'Initializing' && (item1.path === '/trials/trials-panel/setting/personnel-manage' || item1.path === '/trials/trials-panel/setting/qc-question' || item1.path === '/trials/trials-panel/setting/reading-unit' || item1.path === '/trials/trials-panel/setting/medical-audit' || item1.path === '/trials/trials-panel/setting/email-manage'))"
|
||||||
:label="$t(item1.LanguageMark)"
|
:label="$t(item1.LanguageMark)"
|
||||||
:name="item1.path"
|
:name="item1.path"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
:on-exceed="handleExceed"
|
:on-exceed="handleExceed"
|
||||||
accept=".pdf"
|
accept=".pdf"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :disabled="btnDisabled || $route.query.ReviewStatus === '1'" >Upload</el-button>
|
<el-button size="small" type="primary" :disabled="btnDisabled || $route.query.ReviewStatus === '1'" >{{ $t('system:GcpCertificate:upload:Upload') }}</el-button>
|
||||||
<span slot="tip" class="el-upload__tip">(must be in pdf format. 1/2 pages, please confirm information integrity)</span>
|
<span slot="tip" class="el-upload__tip">{{$t('system:GcpCertificate:tap:must2') }}</span>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -45,6 +45,7 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initFileList() {
|
initFileList() {
|
||||||
|
if(!this.doctorId) return
|
||||||
getAttachmentByType(this.doctorId, this.type)
|
getAttachmentByType(this.doctorId, this.type)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
|
@ -129,7 +130,7 @@ export default {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.$emit('getFileList', '', '')
|
this.$emit('getFileList', '', '')
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
:file-list="fileList"
|
:file-list="fileList"
|
||||||
:accept="accept"
|
:accept="accept"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :disabled="isDisabled">Upload</el-button>
|
<el-button size="small" type="primary" :disabled="isDisabled">{{ $t('common:button:upload') }}</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -39,6 +39,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
if(!this.doctorId) return
|
||||||
this.initFileList()
|
this.initFileList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -143,8 +144,7 @@ export default {
|
||||||
this.$confirm('Sure to remove?', {
|
this.$confirm('Sure to remove?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteAttachment(file.Id, file.Path)
|
deleteAttachment(file.Id, file.Path)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
@ -152,7 +152,7 @@ export default {
|
||||||
this.fileList.splice(this.fileList.findIndex(item => item.Id === file.Id), 1)
|
this.fileList.splice(this.fileList.findIndex(item => item.Id === file.Id), 1)
|
||||||
this.$emit('getFileList', this.fileList)
|
this.$emit('getFileList', this.fileList)
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:upload']) && allowAddOrEdit"
|
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:edit']) && allowAddOrEdit"
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
>
|
>
|
||||||
|
@ -81,7 +81,6 @@
|
||||||
<!-- 移除 -->
|
<!-- 移除 -->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="(data.SubmitState*1 < 2 || (data.SubmitState === 2 && data.IsQCConfirmedReupload))"
|
v-if="(data.SubmitState*1 < 2 || (data.SubmitState === 2 && data.IsQCConfirmedReupload))"
|
||||||
v-hasPermi="['trials:trials-panel:visit:crc-upload:upload']"
|
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
circle
|
circle
|
||||||
:title="$t('common:button:delete')"
|
:title="$t('common:button:delete')"
|
||||||
|
@ -127,7 +126,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:upload']) && allowAddOrEdit"
|
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:edit']) && allowAddOrEdit"
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
min-width="200"
|
min-width="200"
|
||||||
>
|
>
|
||||||
|
@ -144,7 +143,6 @@
|
||||||
<!-- 移除 -->
|
<!-- 移除 -->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="data.SubmitState*1 < 2 || (data.SubmitState === 2 && data.IsQCConfirmedReupload)"
|
v-if="data.SubmitState*1 < 2 || (data.SubmitState === 2 && data.IsQCConfirmedReupload)"
|
||||||
v-hasPermi="['trials:trials-panel:visit:crc-upload:upload']"
|
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
circle
|
circle
|
||||||
:title="$t('common:button:delete')"
|
:title="$t('common:button:delete')"
|
||||||
|
@ -200,7 +198,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:upload']) && allowAddOrEdit"
|
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:edit']) && allowAddOrEdit"
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
min-width="200"
|
min-width="200"
|
||||||
>
|
>
|
||||||
|
@ -237,7 +235,7 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
size="small"
|
size="small"
|
||||||
:loading="downloadLoading"
|
:loading="downloadLoading"
|
||||||
@click.native.prevent="handleDownloadTpl(cd.ClinicalDataTrialSetId)"
|
@click.native.prevent="handleDownloadTpl(cd)"
|
||||||
>
|
>
|
||||||
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -551,11 +549,8 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDownloadTpl(clinicalDataTrialSetId) {
|
handleDownloadTpl(cd) {
|
||||||
this.downloadLoading = true
|
window.open(this.OSSclientConfig.basePath + cd.Path)
|
||||||
DownloadTrialClinicalFile(clinicalDataTrialSetId).then(data => {
|
|
||||||
this.downloadLoading = false
|
|
||||||
}).catch(() => { this.downloadLoading = false })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ export default
|
||||||
ReadingUnitConfirmation: 108, // 医学审核问题确认
|
ReadingUnitConfirmation: 108, // 医学审核问题确认
|
||||||
MedicalAudit: 215,// 医学审核
|
MedicalAudit: 215,// 医学审核
|
||||||
HeavyReadingApproval: 216,// 重阅审批
|
HeavyReadingApproval: 216,// 重阅审批
|
||||||
|
ResetAndAsyncCriterion: 218, //同步签名
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1710814433132" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6202" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M509.48 9.666C232.874 9.666 8.666 233.874 8.666 510.48c0 276.618 224.206 500.818 500.814 500.818 276.618 0 500.818-224.202 500.818-500.818 0-276.606-224.2-500.814-500.818-500.814z m0 896.198c-218.384 0-395.378-176.994-395.378-395.382 0-218.384 176.996-395.378 395.378-395.378 218.388 0 395.382 176.996 395.382 395.378 0.002 218.388-176.992 395.382-395.382 395.382z m26.362-390.848v-189.042c0-29.136-23.578-52.718-52.718-52.718s-52.716 23.582-52.716 52.718v210.87c0 0.18 0.012 0.356 0.014 0.534 0.006 0.686 0.018 1.37 0.052 2.054 0.026 0.52 0.072 1.036 0.112 1.55 0.026 0.334 0.042 0.666 0.076 1 0.06 0.632 0.142 1.258 0.226 1.884 0.028 0.21 0.05 0.422 0.08 0.63 0.102 0.698 0.222 1.388 0.35 2.076 0.026 0.136 0.046 0.276 0.074 0.412 0.142 0.732 0.304 1.458 0.476 2.178 0.022 0.098 0.042 0.196 0.068 0.292 0.182 0.744 0.382 1.48 0.596 2.21l0.068 0.244c0.22 0.74 0.46 1.474 0.71 2.202l0.078 0.228c0.256 0.732 0.532 1.454 0.818 2.17 0.032 0.076 0.06 0.154 0.09 0.23 0.292 0.718 0.602 1.428 0.926 2.13l0.104 0.228c0.334 0.716 0.684 1.424 1.05 2.124 0.032 0.058 0.06 0.12 0.09 0.178 0.386 0.732 0.79 1.454 1.208 2.164l0.044 0.078a52.9 52.9 0 0 0 8.716 11.054l148.508 148.506c20.594 20.598 53.956 20.598 74.548 0 20.586-20.586 20.586-53.95 0-74.542l-133.648-133.642z" fill="#FFFFFF" p-id="6203"></path></svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -23,23 +23,22 @@
|
||||||
<div style="margin-left:20px;">
|
<div style="margin-left:20px;">
|
||||||
<el-dropdown class="dropdown-container" trigger="click">
|
<el-dropdown class="dropdown-container" trigger="click">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
{{ name }}
|
{{ `${name} (${userTypeShortName})` }}
|
||||||
<span v-if="userTypeShortName">({{ userTypeShortName }})</span>
|
<!-- {{ name }}
|
||||||
|
<span v-if="userTypeShortName"> ({{ userTypeShortName }}) </span> -->
|
||||||
<i class="el-icon-caret-bottom" />
|
<i class="el-icon-caret-bottom" />
|
||||||
</span>
|
</span>
|
||||||
<el-dropdown-menu slot="dropdown" class="user-dropdown">
|
<el-dropdown-menu slot="dropdown" class="user-dropdown">
|
||||||
<el-dropdown-item v-if="!isReviewer">
|
<el-dropdown-item v-if="!isReviewer">
|
||||||
<span style="display:block;" @click="editInfo">Edit Info</span>
|
<span style="display:block;" @click="editInfo">{{$t('system:navbar:button:Profile')}}</span>
|
||||||
</el-dropdown-item>
|
|
||||||
<el-dropdown-item>
|
|
||||||
<span style="display:block;" @click="account">Account</span>
|
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item divided>
|
<el-dropdown-item divided>
|
||||||
<span style="display:block;" @click="logout">Log Out</span>
|
<span style="display:block;" @click="logout">{{$t('system:navbar:button:Log Out')}}</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
<TopLang></TopLang>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -50,12 +49,15 @@ import {mapGetters, mapMutations} from 'vuex'
|
||||||
import Breadcrumb from '@/components/Breadcrumb'
|
import Breadcrumb from '@/components/Breadcrumb'
|
||||||
import Hamburger from '@/components/Hamburger'
|
import Hamburger from '@/components/Hamburger'
|
||||||
import Screenfull from '@/components/Screenfull'
|
import Screenfull from '@/components/Screenfull'
|
||||||
|
import TopLang from './topLang'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
Hamburger,
|
Hamburger,
|
||||||
Screenfull
|
Screenfull,
|
||||||
|
TopLang
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -89,9 +91,6 @@ export default {
|
||||||
editInfo() {
|
editInfo() {
|
||||||
this.$router.push({ name: 'BaiscInfo' })
|
this.$router.push({ name: 'BaiscInfo' })
|
||||||
},
|
},
|
||||||
account() {
|
|
||||||
this.$router.push({ name: 'Account' })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
<template>
|
||||||
|
<el-dropdown
|
||||||
|
style="height:50px;line-height: 60px;"
|
||||||
|
@command="handleSetLanguage"
|
||||||
|
>
|
||||||
|
|
||||||
|
<span class="el-dropdown-link">
|
||||||
|
<svg-icon icon-class="language" style="font-size:25px;margin:0 10px;" />
|
||||||
|
<!-- {{ language==='zh'?'语言:中文':'Language: English' }} -->
|
||||||
|
<!-- <i class="el-icon-arrow-down el-icon--right" /> -->
|
||||||
|
</span>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item
|
||||||
|
:disabled="language==='zh'"
|
||||||
|
command="zh"
|
||||||
|
>中文
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item
|
||||||
|
:disabled="language==='en'"
|
||||||
|
command="en"
|
||||||
|
>English
|
||||||
|
</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters, mapMutations } from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'TopLang',
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters({
|
||||||
|
language: 'language'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
|
handleSetLanguage(lang) {
|
||||||
|
this.$i18n.locale = lang
|
||||||
|
this.setLanguage(lang)
|
||||||
|
this.$updateDictionary()
|
||||||
|
window.location.reload()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
</style>
|
|
@ -160,10 +160,16 @@ Vue.prototype.fileToBlob = (file) => {
|
||||||
var _vm
|
var _vm
|
||||||
async function VueInit () {
|
async function VueInit () {
|
||||||
var params
|
var params
|
||||||
|
var res
|
||||||
if (~window.location.href.indexOf('/readingDicoms') || ~window.location.href.indexOf('/noneDicomReading') || ~window.location.href.indexOf('/criterionquestions') || ~window.location.href.indexOf('/petct')) {
|
if (~window.location.href.indexOf('/readingDicoms') || ~window.location.href.indexOf('/noneDicomReading') || ~window.location.href.indexOf('/criterionquestions') || ~window.location.href.indexOf('/petct')) {
|
||||||
params = $q('TrialReadingCriterionId')
|
params = $q('TrialReadingCriterionId')
|
||||||
|
res = await getBasicDataAllSelect(params)
|
||||||
|
} else if (~window.location.href.indexOf('/ecrfPreview')) {
|
||||||
|
params = $q('SystemReadingCriterionId')
|
||||||
|
res = await getBasicDataAllSelect(params, true)
|
||||||
|
} else {
|
||||||
|
res = await getBasicDataAllSelect(params)
|
||||||
}
|
}
|
||||||
var res = await getBasicDataAllSelect(params)
|
|
||||||
var Internationalization = await getFrontInternationalizationList()
|
var Internationalization = await getFrontInternationalizationList()
|
||||||
Vue.prototype.$tl = Internationalization.Result
|
Vue.prototype.$tl = Internationalization.Result
|
||||||
let zhMessages = {}, enMessages = {}
|
let zhMessages = {}, enMessages = {}
|
||||||
|
@ -326,6 +332,7 @@ async function VueInit () {
|
||||||
}
|
}
|
||||||
const h = _vm.$createElement
|
const h = _vm.$createElement
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
|
window.VUE_APP_COMPANY_NAME = process.env.VUE_APP_COMPANY_NAME;
|
||||||
waitOperate(eval(process.env.VUE_APP_LOGOUT_FOR_PERMISSION) ? () => {
|
waitOperate(eval(process.env.VUE_APP_LOGOUT_FOR_PERMISSION) ? () => {
|
||||||
var lang = zzSessionStorage.getItem('lang')?zzSessionStorage.getItem('lang'):'zh'
|
var lang = zzSessionStorage.getItem('lang')?zzSessionStorage.getItem('lang'):'zh'
|
||||||
if ( _vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') {
|
if ( _vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') {
|
||||||
|
|
|
@ -56,6 +56,9 @@ router.beforeEach(async(to, from, next) => {
|
||||||
/* has no token*/
|
/* has no token*/
|
||||||
if (whiteList.indexOf(to.path) !== -1) {
|
if (whiteList.indexOf(to.path) !== -1) {
|
||||||
// 在免登录whiteList中,直接进入
|
// 在免登录whiteList中,直接进入
|
||||||
|
if (to.path === '/readingDicoms' || to.path === '/noneDicomReading'){
|
||||||
|
OSSclient()
|
||||||
|
}
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
if (to.path === '/researchForm') {
|
if (to.path === '/researchForm') {
|
||||||
|
|
|
@ -139,6 +139,13 @@ export const constantRoutes = [
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: () => import('@/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt')
|
component: () => import('@/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt')
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
path: '/historyScreenshot',
|
||||||
|
name: 'historyScreenshot',
|
||||||
|
hidden: true,
|
||||||
|
component: () => import('@/views/trials/trials-panel/reading/dicoms/components/Fusion/HistoryScreenshot')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/visitDicomReview',
|
path: '/visitDicomReview',
|
||||||
name: 'visitDicomReview',
|
name: 'visitDicomReview',
|
||||||
|
@ -242,6 +249,11 @@ export const constantRoutes = [
|
||||||
component: () => import('@/views/404'),
|
component: () => import('@/views/404'),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/ecrfPreview',
|
||||||
|
component: () => import('@/views/dictionary/template/components/ECRF'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/editUser',
|
path: '/editUser',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
@ -250,12 +262,7 @@ export const constantRoutes = [
|
||||||
children: [{
|
children: [{
|
||||||
path: 'baiscInfo',
|
path: 'baiscInfo',
|
||||||
name: 'BaiscInfo',
|
name: 'BaiscInfo',
|
||||||
component: () => import('@/views/user/editInfo')
|
component: () => import('@/views/user/myInfo')
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'account',
|
|
||||||
name: 'Account',
|
|
||||||
component: () => import('@/views/user/account')
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,7 @@ const getters = {
|
||||||
activeSeries: state => state.reading.activeSeries,
|
activeSeries: state => state.reading.activeSeries,
|
||||||
lastCanvasTaskId: state => state.reading.lastCanvasTaskId,
|
lastCanvasTaskId: state => state.reading.lastCanvasTaskId,
|
||||||
imageQuality: state => state.reading.imageQuality,
|
imageQuality: state => state.reading.imageQuality,
|
||||||
|
imageQualityIssues: state => state.reading.imageQualityIssues,
|
||||||
language: state => state.lang.language,
|
language: state => state.lang.language,
|
||||||
TotalNeedSignSystemDocCount: state => state.user.TotalNeedSignSystemDocCount,
|
TotalNeedSignSystemDocCount: state => state.user.TotalNeedSignSystemDocCount,
|
||||||
TotalNeedSignTrialDocCount: state => state.user.TotalNeedSignTrialDocCount,
|
TotalNeedSignTrialDocCount: state => state.user.TotalNeedSignTrialDocCount,
|
||||||
|
|
|
@ -29,7 +29,8 @@ const getDefaultState = () => {
|
||||||
currentReadingTaskState: 2,
|
currentReadingTaskState: 2,
|
||||||
activeSeries: {},
|
activeSeries: {},
|
||||||
lastCanvasTaskId: '',
|
lastCanvasTaskId: '',
|
||||||
imageQuality: null
|
imageQuality: null,
|
||||||
|
imageQualityIssues: null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getQuestions(questions) {
|
function getQuestions(questions) {
|
||||||
|
@ -183,6 +184,7 @@ const actions = {
|
||||||
state.activeSeries = {}
|
state.activeSeries = {}
|
||||||
state.lastCanvasTaskId = ''
|
state.lastCanvasTaskId = ''
|
||||||
state.imageQuality = null
|
state.imageQuality = null
|
||||||
|
state.imageQualityIssues = null
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -875,6 +877,9 @@ const actions = {
|
||||||
setImageQuality({ state }, imageQuality) {
|
setImageQuality({ state }, imageQuality) {
|
||||||
state.imageQuality = isNaN(parseInt(imageQuality)) ? null : parseInt(imageQuality)
|
state.imageQuality = isNaN(parseInt(imageQuality)) ? null : parseInt(imageQuality)
|
||||||
},
|
},
|
||||||
|
setImageQualityIssues({ state }, imageQualityIssues) {
|
||||||
|
state.imageQualityIssues = isNaN(parseInt(imageQualityIssues)) ? null : parseInt(imageQualityIssues)
|
||||||
|
},
|
||||||
addQuestionMeasuredData({ state }, obj) {
|
addQuestionMeasuredData({ state }, obj) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
|
var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { getToken, setToken, removeToken, setName, removeName } from '@/utils/auth'
|
import { getToken, setToken, removeToken, setName, removeName } from '@/utils/auth'
|
||||||
import { login, getUserMenuTree, getUserPermissions } from '@/api/user'
|
import { login,loginOut,getUserMenuTree, getUserPermissions } from '@/api/user'
|
||||||
|
|
||||||
import { resetRouter } from '@/router'
|
import { resetRouter } from '@/router'
|
||||||
import md5 from 'js-md5'
|
import md5 from 'js-md5'
|
||||||
|
@ -78,6 +78,9 @@ const mutations = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
|
changeUserName({ commit }, userName) {
|
||||||
|
commit('SET_USERNAME', userName)
|
||||||
|
},
|
||||||
// user login
|
// user login
|
||||||
login({ commit }, userInfo) {
|
login({ commit }, userInfo) {
|
||||||
const { username, password } = userInfo
|
const { username, password } = userInfo
|
||||||
|
@ -175,12 +178,17 @@ const actions = {
|
||||||
commit('SET_NAME', zzSessionStorage.getItem('realName'))
|
commit('SET_NAME', zzSessionStorage.getItem('realName'))
|
||||||
},
|
},
|
||||||
// user logout
|
// user logout
|
||||||
logout({ commit, state }) {
|
async logout({ commit, state }) {
|
||||||
|
try{
|
||||||
|
await loginOut()
|
||||||
removeToken() // must remove token first
|
removeToken() // must remove token first
|
||||||
resetRouter()
|
resetRouter()
|
||||||
removeName()
|
removeName()
|
||||||
zzSessionStorage.clear()
|
zzSessionStorage.clear()
|
||||||
commit('RESET_STATE')
|
commit('RESET_STATE')
|
||||||
|
}catch(e){
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setToken({ commit }, token) {
|
setToken({ commit }, token) {
|
||||||
commit('SET_TOKEN', token)
|
commit('SET_TOKEN', token)
|
||||||
|
|
|
@ -54,7 +54,7 @@ export const anonymization = function (file, config) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(dataset)
|
// console.log(dataset)
|
||||||
let newDicomFile = dataset.write()
|
let newDicomFile = dataset.write()
|
||||||
const bufferArray = new Uint8Array(newDicomFile)
|
const bufferArray = new Uint8Array(newDicomFile)
|
||||||
const blob = new Blob([bufferArray], { type: 'application/octet-stream' })
|
const blob = new Blob([bufferArray], { type: 'application/octet-stream' })
|
||||||
|
|
|
@ -3,6 +3,8 @@ import { Message, MessageBox, Alert } from 'element-ui'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import moment from 'moment-timezone';
|
||||||
|
console.log(moment.tz.guess())
|
||||||
axios.defaults.withCredentials = false
|
axios.defaults.withCredentials = false
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
baseURL: '/api',
|
baseURL: '/api',
|
||||||
|
@ -19,6 +21,7 @@ service.interceptors.request.use(
|
||||||
config.headers['Content-Type'] = 'application/json;charset=UTF-8'
|
config.headers['Content-Type'] = 'application/json;charset=UTF-8'
|
||||||
var language = zzSessionStorage.getItem('lang')
|
var language = zzSessionStorage.getItem('lang')
|
||||||
config.headers['Accept-Language'] = language === 'en'?'en-US,en;q=0.5':'zh-CN,zh;q=0.9'
|
config.headers['Accept-Language'] = language === 'en'?'en-US,en;q=0.5':'zh-CN,zh;q=0.9'
|
||||||
|
config.headers['TimeZoneId'] = moment.tz.guess()
|
||||||
if (store.getters.token) {
|
if (store.getters.token) {
|
||||||
config.headers.Authorization = `Bearer ${store.getters.token}`
|
config.headers.Authorization = `Bearer ${store.getters.token}`
|
||||||
}
|
}
|
||||||
|
@ -59,7 +62,11 @@ service.interceptors.response.use(
|
||||||
MessageBox.confirm(res.ErrorMessage, {
|
MessageBox.confirm(res.ErrorMessage, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => {
|
||||||
|
if(res.Code === 6) {
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return Promise.reject(res)
|
return Promise.reject(res)
|
||||||
|
@ -71,7 +78,7 @@ service.interceptors.response.use(
|
||||||
var message = ''
|
var message = ''
|
||||||
if (error && error.response) {
|
if (error && error.response) {
|
||||||
const status = error.response.status
|
const status = error.response.status
|
||||||
if (error.response.data && error.response.data.Code === -1) {
|
if (error.response.data && (error.response.data.Code === -1 || error.response.data.Code === -2)) {
|
||||||
store.dispatch('user/logout').then(() => {
|
store.dispatch('user/logout').then(() => {
|
||||||
router.push(`/login`)
|
router.push(`/login`)
|
||||||
this.$i18n.locale = 'zh'
|
this.$i18n.locale = 'zh'
|
||||||
|
|
|
@ -89,18 +89,16 @@ export default {
|
||||||
},
|
},
|
||||||
// 移除菜单
|
// 移除菜单
|
||||||
remove(node) {
|
remove(node) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteMenuFunction(node.Id)
|
deleteMenuFunction(node.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.getlist()
|
this.getlist()
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -89,16 +89,15 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDeleteRole(row) {
|
handleDeleteRole(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteUserTypeRole(row.Id).then((res) => {
|
deleteUserTypeRole(row.Id).then((res) => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -20,8 +20,7 @@ export default {
|
||||||
this.$confirm('Sure to reset password?', {
|
this.$confirm('Sure to reset password?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
resetPassword(this.userId).then(res => {
|
resetPassword(this.userId).then(res => {
|
||||||
|
|
|
@ -113,18 +113,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除用户
|
// 删除用户
|
||||||
handleDeleteUser(data) {
|
handleDeleteUser(data) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSysUser(data.Id)
|
deleteSysUser(data.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -14,27 +14,26 @@
|
||||||
<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="$t('resumeInfo: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="$t('resumeInfo: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>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item :label="$t('resumeInfo: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-row>
|
||||||
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
||||||
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
||||||
|
|
|
@ -90,11 +90,12 @@ export default {
|
||||||
this.setLanguage('zh')
|
this.setLanguage('zh')
|
||||||
this.$updateDictionary()
|
this.$updateDictionary()
|
||||||
}
|
}
|
||||||
this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}`:''
|
this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.BlindName}${this.$t('resumeInfo:title:Details')}`:''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
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.doctorId = this.$route.query.doctorId
|
this.doctorId = this.$route.query.doctorId
|
||||||
this.initForm()
|
this.initForm()
|
||||||
},
|
},
|
||||||
|
@ -135,6 +136,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.workInfo.Position = this.workInfo.Position
|
this.workInfo.Position = this.workInfo.Position
|
||||||
this.workInfo.PositionCN = this.workInfo.PositionCN
|
this.workInfo.PositionCN = this.workInfo.PositionCN
|
||||||
|
//
|
||||||
}
|
}
|
||||||
this.workInfo.PositionOther = this.workInfo.PositionOther ? 'Other - ' + this.workInfo.PositionOther : 'Other'
|
this.workInfo.PositionOther = this.workInfo.PositionOther ? 'Other - ' + this.workInfo.PositionOther : 'Other'
|
||||||
}
|
}
|
||||||
|
@ -179,7 +181,7 @@ export default {
|
||||||
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
||||||
this.doctorInfo = res.Result
|
this.doctorInfo = res.Result
|
||||||
!this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : '';
|
!this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : '';
|
||||||
this.title = `${this.doctorInfo.BasicInfoView.BlindName} 's Details`
|
this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.BlindName}${this.$t('resumeInfo:title:Details')}`:''
|
||||||
this.htmlTitle = this.title
|
this.htmlTitle = this.title
|
||||||
this.initStatus()
|
this.initStatus()
|
||||||
this.initEmploymentInfo()
|
this.initEmploymentInfo()
|
||||||
|
|
|
@ -126,8 +126,7 @@ export default {
|
||||||
this.$confirm('Sure to sign out', {
|
this.$confirm('Sure to sign out', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$store.dispatch('user/logout').then(res => {
|
this.$store.dispatch('user/logout').then(res => {
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
import * as dicomParser from 'dicom-parser'
|
import * as dicomParser from 'dicom-parser'
|
||||||
import * as cornerstone from 'cornerstone-core'
|
import * as cornerstone from 'cornerstone-core'
|
||||||
import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'
|
import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'
|
||||||
import dicomStore from '@/utils/dicom-store.js'
|
import dicomStore from '@/utils/dicom-store'
|
||||||
import dicomViewer from '@/components/Dicom/DicomViewer'
|
import dicomViewer from '@/components/Dicom/DicomViewer'
|
||||||
import dicomPreview from '@/components/Dicom/DicomPreview'
|
import dicomPreview from '@/components/Dicom/DicomPreview'
|
||||||
|
|
||||||
|
@ -86,6 +86,10 @@ export default {
|
||||||
uid: {
|
uid: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
studyList: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -102,7 +106,7 @@ export default {
|
||||||
var totalHeight = window.innerHeight || document.body.clientHeight
|
var totalHeight = window.innerHeight || document.body.clientHeight
|
||||||
var wrapper = this.$refs['preview-wrapper']
|
var wrapper = this.$refs['preview-wrapper']
|
||||||
wrapper.style.height = (totalHeight - 70) + 'px'
|
wrapper.style.height = (totalHeight - 70) + 'px'
|
||||||
if (!dicomStore.studyList || !this.uid) return
|
if (!this.studyList || !this.uid) return
|
||||||
this.loadStudy()
|
this.loadStudy()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -120,7 +124,7 @@ export default {
|
||||||
return newObj
|
return newObj
|
||||||
},
|
},
|
||||||
loadStudy() {
|
loadStudy() {
|
||||||
var studyList = dicomStore.studyList
|
var studyList = this.studyList
|
||||||
var studyUid = this.uid
|
var studyUid = this.uid
|
||||||
var studyItem = studyList.find(function(item) {
|
var studyItem = studyList.find(function(item) {
|
||||||
return item.dicomInfo.studyUid === studyUid
|
return item.dicomInfo.studyUid === studyUid
|
||||||
|
|
|
@ -64,22 +64,25 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showDelete" @click.stop="">
|
<div v-if="showDelete" @click.stop="" style="display: flex;flex-direction: row;justify-content: space-between;">
|
||||||
|
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isReading') }}</span>
|
<div>
|
||||||
|
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isReading') }}</span>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="item.isReading"
|
v-model="item.isReading"
|
||||||
size="mini"
|
size="mini"
|
||||||
@change="changeReadingStatus($event, item)"
|
@change="changeReadingStatus($event, item)"
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isDelete') }}</span>
|
<div>
|
||||||
|
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isDelete') }}</span>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="item.isDeleted"
|
v-model="item.isDeleted"
|
||||||
size="mini"
|
size="mini"
|
||||||
@change="changeDeleteStatus($event, item)"
|
@change="changeDeleteStatus($event, item)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div v-if="item.prefetchInstanceCount>0 && item.prefetchInstanceCount<item.instanceCount">
|
<div v-if="item.prefetchInstanceCount>0 && item.prefetchInstanceCount<item.instanceCount">
|
||||||
<el-progress :percentage="parseInt(((item.prefetchInstanceCount/item.instanceCount)*100).toFixed(2))" />
|
<el-progress :percentage="parseInt(((item.prefetchInstanceCount/item.instanceCount)*100).toFixed(2))" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -403,6 +406,7 @@ export default {
|
||||||
data.isReading = true
|
data.isReading = true
|
||||||
}
|
}
|
||||||
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
||||||
|
message = message.replace('yyy', this.$fd('YesOrNo', !data.isReading))
|
||||||
this.$confirm(message, {
|
this.$confirm(message, {
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
|
@ -430,6 +434,7 @@ export default {
|
||||||
data.isDeleted = true
|
data.isDeleted = true
|
||||||
}
|
}
|
||||||
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
||||||
|
message = message.replace('yyy', this.$fd('YesOrNo', !data.isDeleted))
|
||||||
this.$confirm(message, {
|
this.$confirm(message, {
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
|
|
|
@ -83,15 +83,17 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showDelete" @click.stop="">
|
<div v-if="showDelete" @click.stop="" style="display: flex;flex-direction: row;justify-content: space-between;">
|
||||||
|
|
||||||
|
<div>
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isReading') }}</span>
|
<span style="font-size: 12px;">{{ $t('trials:audit:table:isReading') }}</span>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="series.isReading"
|
v-model="series.isReading"
|
||||||
size="mini"
|
size="mini"
|
||||||
@change="changeReadingStatus($event, series)"
|
@change="changeReadingStatus($event, series)"
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isDelete') }}</span>
|
<span style="font-size: 12px;">{{ $t('trials:audit:table:isDelete') }}</span>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="series.isDeleted"
|
v-model="series.isDeleted"
|
||||||
|
@ -99,6 +101,7 @@
|
||||||
@change="changeDeleteStatus($event, series)"
|
@change="changeDeleteStatus($event, series)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<!-- <div style="position: absolute;bottom: -10px;left: 0;width: 100%;">
|
<!-- <div style="position: absolute;bottom: -10px;left: 0;width: 100%;">
|
||||||
<el-progress v-if="series.prefetchInstanceCount>0 && series.prefetchInstanceCount<series.instanceCount" :percentage="Number(series.prefetchInstanceCount/series.instanceCount)*100" />
|
<el-progress v-if="series.prefetchInstanceCount>0 && series.prefetchInstanceCount<series.instanceCount" :percentage="Number(series.prefetchInstanceCount/series.instanceCount)*100" />
|
||||||
</div> -->
|
</div> -->
|
||||||
|
@ -353,6 +356,7 @@ export default {
|
||||||
data.isReading = true
|
data.isReading = true
|
||||||
}
|
}
|
||||||
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
||||||
|
message = message.replace('yyy', this.$fd('YesOrNo', !data.isReading))
|
||||||
this.$confirm(message, {
|
this.$confirm(message, {
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
|
@ -380,6 +384,7 @@ export default {
|
||||||
data.isDeleted = true
|
data.isDeleted = true
|
||||||
}
|
}
|
||||||
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr)
|
||||||
|
message = message.replace('yyy', this.$fd('YesOrNo', !data.isDeleted))
|
||||||
this.$confirm(message, {
|
this.$confirm(message, {
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
|
|
|
@ -244,8 +244,7 @@ export default {
|
||||||
this.$confirm('是否确认废除此文件?', {
|
this.$confirm('是否确认废除此文件?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<el-table-column prop="ModuleTypeValueCN" label="模块" show-overflow-tooltip align="left" min-width="230px" />
|
<el-table-column prop="ModuleTypeValueCN" label="模块" show-overflow-tooltip align="left" min-width="230px" />
|
||||||
<el-table-column prop="Description" label="操作名称" :show-overflow-tooltip="true" min-width="200px">
|
<el-table-column prop="Description" label="操作名称" :show-overflow-tooltip="true" min-width="200px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Description }}({{scope.row.DescriptionCN}})</span>
|
<span>{{ scope.row.DescriptionCN }}({{scope.row.Description}})</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="DescriptionCN" label="其他" :show-overflow-tooltip="true" min-width="140px">
|
<el-table-column prop="DescriptionCN" label="其他" :show-overflow-tooltip="true" min-width="140px">
|
||||||
|
@ -608,11 +608,11 @@
|
||||||
<div style="padding: 0 40px;display: flex;flex-direction: column">
|
<div style="padding: 0 40px;display: flex;flex-direction: column">
|
||||||
<div style="text-align: right;height: 50px;">
|
<div style="text-align: right;height: 50px;">
|
||||||
<el-select v-model="copeParams.FromItemId" collapse-tags filterable placeholder="完全拷贝对象" clearable size="small">
|
<el-select v-model="copeParams.FromItemId" collapse-tags filterable placeholder="完全拷贝对象" clearable size="small">
|
||||||
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.Description" />
|
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.DescriptionCN" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" size="mini" style="margin-right: 10px" @click="handleOverCope(selectRow)">完全拷贝</el-button>
|
<el-button type="primary" size="mini" style="margin-right: 10px" @click="handleOverCope(selectRow)">完全拷贝</el-button>
|
||||||
<el-select v-model="copeParams.DataSourceGuids" multiple collapse-tags filterable placeholder="拷贝对象" clearable size="small">
|
<el-select v-model="copeParams.DataSourceGuids" multiple collapse-tags filterable placeholder="拷贝对象" clearable size="small">
|
||||||
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.Description" />
|
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.DescriptionCN" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" size="mini" @click="handleCope(selectRow)">拷贝</el-button>
|
<el-button type="primary" size="mini" @click="handleCope(selectRow)">拷贝</el-button>
|
||||||
<el-button type="primary" size="mini" @click="handleAdd(selectRow)">新建</el-button>
|
<el-button type="primary" size="mini" @click="handleAdd(selectRow)">新建</el-button>
|
||||||
|
@ -668,6 +668,12 @@
|
||||||
<el-table-column prop="TrialConfigRelyFieldName" label="依赖字段" min-width="120px" :show-overflow-tooltip="true" />
|
<el-table-column prop="TrialConfigRelyFieldName" label="依赖字段" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="操作" align="center" min-width="180" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" min-width="180" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleCopyData(scope.row)"
|
||||||
|
>复制</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -1146,6 +1152,16 @@ export default {
|
||||||
this.title = '修改'
|
this.title = '修改'
|
||||||
this.rowDrop2()
|
this.rowDrop2()
|
||||||
},
|
},
|
||||||
|
handleCopyData (row) {
|
||||||
|
this.$confirm('确定复制该条记录到当前稽查下吗?').then(() => {
|
||||||
|
let params = {...row}
|
||||||
|
delete params.Id
|
||||||
|
addOrUpdateFrontAuditConfig(params).then(() => {
|
||||||
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
this.$refs['form'].validate(valid => {
|
this.$refs['form'].validate(valid => {
|
||||||
|
|
|
@ -125,18 +125,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除字典表配置信息
|
// 删除字典表配置信息
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteDictionary(row.Id)
|
deleteDictionary(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$store.dispatch('global/setDictionary', {})
|
this.$store.dispatch('global/setDictionary', {})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -239,18 +239,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteEmailNoticeConfig(row.Id)
|
deleteEmailNoticeConfig(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -139,11 +139,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除CRO
|
// 删除CRO
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -152,7 +151,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -8,12 +8,15 @@
|
||||||
label-width="170px"
|
label-width="170px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
<el-form-item label="Hospital CN: " prop="SiteId">
|
<el-form-item label="Site: ">
|
||||||
<el-select v-model="form.SiteId" style="width: 100%" filterable @change="siteChange">
|
<el-select v-model="form.SiteId" style="width: 100%" clearable filterable @change="siteChange">
|
||||||
<el-option v-for="item of siteList" :value="item.Id" :key="item.Id" :label="item.SiteName">
|
<el-option v-for="item of siteList" :value="item.Id" :key="item.Id" :label="item.SiteName">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="Hospital CN: " prop="HospitalNameCN">
|
||||||
|
<el-input v-model="form.HospitalNameCN" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="Hospital EN: " prop="HospitalName">
|
<el-form-item label="Hospital EN: " prop="HospitalName">
|
||||||
<el-input v-model="form.HospitalName" />
|
<el-input v-model="form.HospitalName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -88,9 +91,7 @@ export default {
|
||||||
},
|
},
|
||||||
siteList: [],
|
siteList: [],
|
||||||
rules: {
|
rules: {
|
||||||
SiteId: [{ required: true, message: 'Please specify', trigger: 'blur' },
|
HospitalNameCN: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
||||||
{ max: 50, message: 'The maximum length is 50' }],
|
|
||||||
HospitalName: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
|
||||||
UniversityAffiliated: [{ max: 100, message: 'The maximum length is 100' }],
|
UniversityAffiliated: [{ max: 100, message: 'The maximum length is 100' }],
|
||||||
UniversityAffiliatedCN: [{ max: 100, message: 'The maximum length is 100' }],
|
UniversityAffiliatedCN: [{ max: 100, message: 'The maximum length is 100' }],
|
||||||
Country: [{ required: true, message: 'Please specify', trigger: 'blur' },
|
Country: [{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
|
@ -116,7 +117,8 @@ export default {
|
||||||
this.siteList.forEach(o => {
|
this.siteList.forEach(o => {
|
||||||
if (o.Id === v) {
|
if (o.Id === v) {
|
||||||
this.form.CityCN = o.City
|
this.form.CityCN = o.City
|
||||||
this.form.HospitalNameCN = o.SiteName
|
this.form.HospitalNameCN = o.SiteNameCN
|
||||||
|
this.form.HospitalName = o.SiteName
|
||||||
this.form.ProvinceCN = o.Province
|
this.form.ProvinceCN = o.Province
|
||||||
this.form.CountryCN = o.Country
|
this.form.CountryCN = o.Country
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,11 +201,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除医院信息
|
// 删除医院信息
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -213,7 +212,7 @@ export default {
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|
|
@ -213,11 +213,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除Site
|
// 删除Site
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -227,7 +226,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$store.dispatch('global/setSite', {})
|
this.$store.dispatch('global/setSite', {})
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -139,11 +139,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除Sponsor
|
// 删除Sponsor
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -152,7 +151,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -182,11 +182,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -195,7 +194,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -154,11 +154,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -167,7 +166,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -183,11 +183,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -196,7 +195,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -182,11 +182,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -195,7 +194,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -153,11 +153,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -166,7 +165,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -206,11 +206,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -219,7 +218,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -183,11 +183,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -196,7 +195,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -122,11 +122,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -135,7 +134,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -137,18 +137,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSystemBasicData(row.Id)
|
deleteSystemBasicData(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -178,18 +178,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSystemBasicData(row.Id)
|
deleteSystemBasicData(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -162,11 +162,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -175,7 +174,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
:disabled="isCompleteConfig"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
style="margin-right: 10px;"
|
style="margin-right: 10px;"
|
||||||
>
|
>
|
||||||
|
@ -59,12 +60,13 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="small" type="primary" @click="openChildren(scope.row)">
|
<el-button size="small" :disabled="isCompleteConfig" type="primary" @click="openChildren(scope.row)">
|
||||||
配置
|
配置
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="small"
|
size="small"
|
||||||
|
:disabled="isCompleteConfig"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
@ -151,6 +153,10 @@ export default {
|
||||||
criterionId: {
|
criterionId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
isCompleteConfig: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
@ -19,6 +19,52 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
label="分组名称"
|
||||||
|
prop="GroupName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.GroupName" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="分组标识"
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
prop="GroupClassify"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.GroupClassify"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of groupClassifyList"
|
||||||
|
:key="item.Id"
|
||||||
|
:value="parseInt(item.Code)"
|
||||||
|
:label="item.ValueCN"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
label="分组名称(EN)"
|
||||||
|
prop="GroupEnName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.GroupEnName" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
|
label="问题名称"
|
||||||
|
prop="QuestionName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.QuestionName" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
|
label="问题名称(EN)"
|
||||||
|
prop="QuestionEnName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.QuestionEnName" />
|
||||||
|
</el-form-item>
|
||||||
<!-- 数值类型 -->
|
<!-- 数值类型 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
||||||
|
@ -75,52 +121,6 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'group'"
|
|
||||||
label="分组名称"
|
|
||||||
prop="GroupName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.GroupName" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
label="分组标识"
|
|
||||||
prop="GroupClassify"
|
|
||||||
>
|
|
||||||
<el-select
|
|
||||||
v-model="form.GroupClassify"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item of groupClassifyList"
|
|
||||||
:key="item.Id"
|
|
||||||
:value="parseInt(item.Code)"
|
|
||||||
:label="item.ValueCN"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'group'"
|
|
||||||
label="分组名称(EN)"
|
|
||||||
prop="GroupEnName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.GroupEnName" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type !== 'group'"
|
|
||||||
label="问题名称"
|
|
||||||
prop="QuestionName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.QuestionName" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type !== 'group'"
|
|
||||||
label="问题名称(EN)"
|
|
||||||
prop="QuestionEnName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.QuestionEnName" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<!-- <el-form-item
|
<!-- <el-form-item
|
||||||
v-if="form.Type === 'select' || form.Type === 'radio'"
|
v-if="form.Type === 'select' || form.Type === 'radio'"
|
||||||
label="选项"
|
label="选项"
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
placeholder="选项请用‘|’分割多个选项"
|
placeholder="选项请用‘|’分割多个选项"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="问题分类">
|
<el-form-item label="问题分类" v-if="form.Type !== 'group'">
|
||||||
<!-- <el-radio-group v-model="form.QuestionClassify">
|
<!-- <el-radio-group v-model="form.QuestionClassify">
|
||||||
<el-radio v-for="item of $d.QuestionClassify" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
|
<el-radio v-for="item of $d.QuestionClassify" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
|
@ -406,6 +406,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="问题标识"
|
label="问题标识"
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
prop="QuestionType"
|
prop="QuestionType"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="criterion-config">
|
<div class="criterion-config">
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane label="访视阅片" name="0">
|
<el-tab-pane :label="'访视阅片'" name="0">
|
||||||
<div class="search-form" style="display:flex;justify-content: space-between;">
|
<div class="search-form" style="display:flex;justify-content: space-between;">
|
||||||
<el-form :inline="true" size="mini" class="base-search-form">
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
<el-form-item label="名称">
|
<el-form-item label="名称">
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
:disabled="list.length === 0"
|
:disabled="list.length === 0"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="preview.visible = true"
|
@click="handlePreview"
|
||||||
>
|
>
|
||||||
预览
|
预览
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
v-if="addOrEdit.visible"
|
v-if="addOrEdit.visible"
|
||||||
:visible.sync="addOrEdit.visible"
|
:visible.sync="addOrEdit.visible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="addOrEdit.title"
|
:title="`${addOrEdit.title}`"
|
||||||
width="600px"
|
width="600px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
|
@ -303,6 +303,9 @@ export default {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handlePreview() {
|
||||||
|
window.open(`/ecrfPreview?SystemReadingCriterionId=${this.criterionId}&lang=${this.$i18n.locale}`)
|
||||||
|
},
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.searchData.ReadingQuestionCriterionSystemId = this.criterionId
|
this.searchData.ReadingQuestionCriterionSystemId = this.criterionId
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="scope.row.IsCompleteConfig"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
@ -133,7 +134,7 @@
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configVisible"
|
v-if="configVisible"
|
||||||
title="eCRF"
|
:title="'eCRF' + `(${rowData.CriterionName})`"
|
||||||
:visible.sync="configVisible"
|
:visible.sync="configVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
|
@ -145,7 +146,7 @@
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configBaseDataVisible"
|
v-if="configBaseDataVisible"
|
||||||
title="基础数据配置"
|
:title="'基础数据配置' + `(${rowData.CriterionName})`"
|
||||||
:visible.sync="configBaseDataVisible"
|
:visible.sync="configBaseDataVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
|
@ -190,6 +191,7 @@ export default {
|
||||||
addDialog: { title: '', visible: false }
|
addDialog: { title: '', visible: false }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
|
|
@ -137,11 +137,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -150,7 +149,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -25,18 +25,13 @@
|
||||||
|
|
||||||
import { getSystemReadingQuestion } from '@/api/dictionary'
|
import { getSystemReadingQuestion } from '@/api/dictionary'
|
||||||
import CriterionFormItem from './CriterionFormItem'
|
import CriterionFormItem from './CriterionFormItem'
|
||||||
|
import {mapMutations} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EcrfPreview',
|
name: 'EcrfPreview',
|
||||||
components: {
|
components: {
|
||||||
CriterionFormItem
|
CriterionFormItem
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
criterionId: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
|
@ -49,9 +44,14 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.$i18n.locale = this.$route.query.lang
|
||||||
|
this.setLanguage(this.$route.query.lang)
|
||||||
|
this.$updateDictionary()
|
||||||
|
this.criterionId = this.$route.query.SystemReadingCriterionId
|
||||||
this.getQuestions()
|
this.getQuestions()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
getQuestions() {
|
getQuestions() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
var param = {
|
var param = {
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
v-if="config.configType === 2"
|
v-if="config.configType === 2"
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
:data="$d && $d.GlobalAssessType"
|
:data="GlobalAssessType"
|
||||||
stripe
|
stripe
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
|
@ -165,7 +165,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BaseModel from '@/components/BaseModel'
|
import BaseModel from '@/components/BaseModel'
|
||||||
import { getAssessType, setAssessType, setDictionaryBaseLineUse, setDictionaryFollowVisitUse, setSystemGlobalInfo, getSystemGlobalInfo } from '@/api/dictionary'
|
import { getCriterionDictionary, getAssessType, setAssessType, setDictionaryBaseLineUse, setDictionaryFollowVisitUse, setSystemGlobalInfo, getSystemGlobalInfo } from '@/api/dictionary'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
data: {
|
data: {
|
||||||
|
@ -192,7 +192,8 @@ export default {
|
||||||
IsMustGlobalReading: false,
|
IsMustGlobalReading: false,
|
||||||
form: {
|
form: {
|
||||||
IsMustGlobalReading: false
|
IsMustGlobalReading: false
|
||||||
}
|
},
|
||||||
|
GlobalAssessType: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforecreate() {
|
beforecreate() {
|
||||||
|
@ -204,8 +205,17 @@ export default {
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
this.getSystemGlobalInfo()
|
this.getSystemGlobalInfo()
|
||||||
|
this.getCriterionDictionary()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getCriterionDictionary() {
|
||||||
|
getCriterionDictionary({
|
||||||
|
ReadingCriterionId: this.criterionId,
|
||||||
|
DictionaryCode: 'GlobalAssessType'
|
||||||
|
}).then(res => {
|
||||||
|
this.GlobalAssessType = res.Result.GlobalAssessType
|
||||||
|
})
|
||||||
|
},
|
||||||
getSystemGlobalInfo() {
|
getSystemGlobalInfo() {
|
||||||
getSystemGlobalInfo({
|
getSystemGlobalInfo({
|
||||||
SystemCriterionId: this.criterionId
|
SystemCriterionId: this.criterionId
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
:data="$d.OncologyAssessType"
|
:data="OncologyAssessType"
|
||||||
stripe
|
stripe
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
|
@ -81,13 +81,13 @@
|
||||||
width="55">
|
width="55">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="raw.ValueCN"
|
prop="ValueCN"
|
||||||
label="中文值"
|
label="中文值"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="raw.Value"
|
prop="Value"
|
||||||
label="英文值"
|
label="英文值"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BaseModel from '@/components/BaseModel'
|
import BaseModel from '@/components/BaseModel'
|
||||||
import { getSystemOncologyInfo, setSystemOncologyInfo } from '@/api/dictionary'
|
import { getSystemOncologyInfo, setSystemOncologyInfo, getCriterionDictionary } from '@/api/dictionary'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
data: {
|
data: {
|
||||||
|
@ -132,13 +132,23 @@ export default {
|
||||||
preview: { visible: false, title: 'eCRF预览' },
|
preview: { visible: false, title: 'eCRF预览' },
|
||||||
config: { visible: false, title: '肿瘤学阅片结果', appendToBody: true, width: '600px', configType: 0 },
|
config: { visible: false, title: '肿瘤学阅片结果', appendToBody: true, width: '600px', configType: 0 },
|
||||||
selectedList: [],
|
selectedList: [],
|
||||||
|
OncologyAssessType: [],
|
||||||
IsOncologyReading: true
|
IsOncologyReading: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
|
this.getCriterionDictionary()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getCriterionDictionary() {
|
||||||
|
getCriterionDictionary({
|
||||||
|
ReadingCriterionId: this.criterionId,
|
||||||
|
DictionaryCode: 'OncologyAssessType'
|
||||||
|
}).then(res => {
|
||||||
|
this.OncologyAssessType = res.Result.OncologyAssessType
|
||||||
|
})
|
||||||
|
},
|
||||||
toggleSelection(rows) {
|
toggleSelection(rows) {
|
||||||
console.log(this.$refs.multipleTable)
|
console.log(this.$refs.multipleTable)
|
||||||
if (rows) {
|
if (rows) {
|
||||||
|
@ -173,9 +183,9 @@ export default {
|
||||||
this.config.title = '肿瘤学阅片结果'
|
this.config.title = '肿瘤学阅片结果'
|
||||||
this.config.visible = true
|
this.config.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
var a = this.$d.OncologyAssessType.filter(v => {
|
var a = this.OncologyAssessType.filter(v => {
|
||||||
return !!this.list.find(v1 => {
|
return !!this.list.find(v1 => {
|
||||||
return v1.DictionaryId === v.id
|
return v1.DictionaryId === v.Id
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.toggleSelection(a)
|
this.toggleSelection(a)
|
||||||
|
@ -184,15 +194,15 @@ export default {
|
||||||
},
|
},
|
||||||
handleSave() {
|
handleSave() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
var a = this.$d.OncologyAssessType.filter(v => {
|
var a = this.OncologyAssessType.filter(v => {
|
||||||
return !!this.list.find(v1 => {
|
return !!this.list.find(v1 => {
|
||||||
return v1.DictionaryId === v.id
|
return v1.DictionaryId === v.Id
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
var params = {
|
var params = {
|
||||||
SystemCriterionId: this.criterionId,
|
SystemCriterionId: this.criterionId,
|
||||||
ParentCode: 'OncologyAssessType',
|
ParentCode: 'OncologyAssessType',
|
||||||
DictionaryIds: this.config.configType === 1 ? a.map(v => v.id) : this.selectedList.map(v => v.id),
|
DictionaryIds: this.config.configType === 1 ? a.map(v => v.Id) : this.selectedList.map(v => v.Id),
|
||||||
IsSystemCriterion: true,
|
IsSystemCriterion: true,
|
||||||
IsOncologyReading: this.form.IsOncologyReading
|
IsOncologyReading: this.form.IsOncologyReading
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,11 +170,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -183,7 +182,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -217,11 +217,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除受试者
|
// 删除受试者
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -230,7 +229,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -109,18 +109,17 @@ export default {
|
||||||
this.template_model.visible = true
|
this.template_model.visible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteQATemplate(row.Id)
|
deleteQATemplate(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -107,18 +107,17 @@ export default {
|
||||||
this.setting_model.visible = true
|
this.setting_model.visible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteQATemplateItem(row.Id)
|
deleteQATemplateItem(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -137,18 +137,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSystemBasicData(row.Id)
|
deleteSystemBasicData(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -178,18 +178,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSystemBasicData(row.Id)
|
deleteSystemBasicData(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<!-- 首次登录修改密码 -->
|
<!-- 首次登录修改密码 -->
|
||||||
{{ $t('recompose:title:init') }}
|
{{ $t('recompose:title:init') }}
|
||||||
</div>
|
</div>
|
||||||
<el-form ref="passwordForm" v-loading="loading" label-position="right" :model="password" :rules="passwordFormRules" label-width="180px">
|
<el-form ref="passwordForm" v-loading="loading" label-position="right" :model="password" :rules="passwordFormRules" label-width="200px">
|
||||||
<!-- 邮箱 -->
|
<!-- 邮箱 -->
|
||||||
<el-form-item :label="$t('recompose:form:email')" prop="Email">
|
<el-form-item :label="$t('recompose:form:email')" prop="Email">
|
||||||
<el-input v-model="password.Email" disabled />
|
<el-input v-model="password.Email" disabled />
|
||||||
|
|
|
@ -177,8 +177,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deletePaymentAdjustment(row.Id)
|
deletePaymentAdjustment(row.Id)
|
||||||
|
|
|
@ -160,7 +160,7 @@ export default {
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -263,15 +263,14 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteRankPrice(row.Id)
|
deleteRankPrice(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
|
|
|
@ -340,11 +340,10 @@ export default {
|
||||||
},
|
},
|
||||||
handleView(row) { row.SowFullPath ? window.open(row.SowFullPath, '_blank') : '' },
|
handleView(row) { row.SowFullPath ? window.open(row.SowFullPath, '_blank') : '' },
|
||||||
handleDeleteSOW(row) {
|
handleDeleteSOW(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const param = { SowPath: row.SowPath, TrialId: row.TrialId }
|
const param = { SowPath: row.SowPath, TrialId: row.TrialId }
|
||||||
|
|
|
@ -92,7 +92,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
this.$emit('getFileList', this.fileList)
|
this.$emit('getFileList', this.fileList)
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
ref="resetForm"
|
ref="resetForm"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
:model="form"
|
:model="form"
|
||||||
label-width="150px"
|
label-width="200px"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
class="demo-ruleForm"
|
class="demo-ruleForm"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -122,17 +122,17 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var validatePass = (rule, value, callback) => {
|
// var validatePass = (rule, value, callback) => {
|
||||||
if (value === '') {
|
// if (value === '') {
|
||||||
// 请输入密码
|
// // 请输入密码
|
||||||
callback(new Error(this.$t('passwordReset:formRule:password')))
|
// callback(new Error(this.$t('passwordReset:formRule:password')))
|
||||||
} else {
|
// } else {
|
||||||
if (this.CheckPass !== '') {
|
// if (this.CheckPass !== '') {
|
||||||
this.$refs.resetForm.validateField('CheckPass')
|
// this.$refs.resetForm.validateField('CheckPass')
|
||||||
}
|
// }
|
||||||
callback()
|
// callback()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
var validatePass2 = (rule, value, callback) => {
|
var validatePass2 = (rule, value, callback) => {
|
||||||
if (value === '' || value === undefined) {
|
if (value === '' || value === undefined) {
|
||||||
// 请再次输入密码
|
// 请再次输入密码
|
||||||
|
@ -205,6 +205,8 @@ export default {
|
||||||
verifyAnonymousVerifyCode(this.form.EmailOrPhone, this.form.VerificationCode).then(res => {
|
verifyAnonymousVerifyCode(this.form.EmailOrPhone, this.form.VerificationCode).then(res => {
|
||||||
this.formLoading = false
|
this.formLoading = false
|
||||||
this.users = res.Result
|
this.users = res.Result
|
||||||
|
// 验证成功
|
||||||
|
this.$message.success(this.$t('passwordReset:message:verifiedSuccessfully'))
|
||||||
}).catch(() => { this.formLoading = false })
|
}).catch(() => { this.formLoading = false })
|
||||||
},
|
},
|
||||||
handleEmailChange() {
|
handleEmailChange() {
|
||||||
|
@ -268,7 +270,7 @@ export default {
|
||||||
/*/deep/ .is-error{*/
|
/*/deep/ .is-error{*/
|
||||||
/* margin-bottom: 40px;*/
|
/* margin-bottom: 40px;*/
|
||||||
/*}*/
|
/*}*/
|
||||||
/deep/ .is-error.my_new_pwd{
|
.is-error.my_new_pwd{
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<div class="login-l">
|
<div class="login-l">
|
||||||
<div class="login-logo">
|
<div class="login-logo">
|
||||||
<img v-if="language === 'zh'" src="@/assets/zzlogo2.png" alt="">
|
<img v-if="language === 'zh'" src="@/assets/zzlogo2.png" alt="">
|
||||||
<img v-else src="@/assets/zzlogo3.png" alt="">
|
<img v-else src="@/assets/zzlogo4.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="login-image">
|
<div class="login-image">
|
||||||
<img src="@/assets/login-bg.png">
|
<img src="@/assets/login-bg.png">
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
style="width:100%;margin-bottom:10px;"
|
style="width:100%;margin-bottom:10px;"
|
||||||
size="medium"
|
size="medium"
|
||||||
@click.native.prevent="loginIn"
|
@click.native.prevent="handleLogin"
|
||||||
>
|
>
|
||||||
{{ $t('login:button:login') }}
|
{{ $t('login:button:login') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<span style="color:#428bca">关于</span>
|
<span style="color:#428bca">关于</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<Vcode :show="isShow" slider-text="拖到滑块完成验证" :imgs="[Img1]" @success="onSuccess" />
|
<Vcode :show="isShow" :fail-text="$t('login:button:failText')" :success-text="$t('login:button:successText')" :slider-text="$t('login:button:sliderText')" :imgs="[Img1]" @success="onSuccess" />
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="aboutVisible"
|
v-if="aboutVisible"
|
||||||
:visible.sync="aboutVisible"
|
:visible.sync="aboutVisible"
|
||||||
|
@ -148,7 +148,7 @@ import { mapGetters, mapMutations } from 'vuex'
|
||||||
import TopLang from './topLang'
|
import TopLang from './topLang'
|
||||||
// import NoticeMarquee from '../trials/trials-layout/components/noticeMarquee'
|
// import NoticeMarquee from '../trials/trials-layout/components/noticeMarquee'
|
||||||
import Vcode from 'vue-puzzle-vcode'
|
import Vcode from 'vue-puzzle-vcode'
|
||||||
import Img1 from '@/assets/pic-1.png'
|
import Img1 from '@/assets/pic-2.png'
|
||||||
export default {
|
export default {
|
||||||
name: 'Login',
|
name: 'Login',
|
||||||
components: { TopLang, Vcode },
|
components: { TopLang, Vcode },
|
||||||
|
@ -180,6 +180,7 @@ export default {
|
||||||
loginType: null,
|
loginType: null,
|
||||||
location: null,
|
location: null,
|
||||||
isShow: false,
|
isShow: false,
|
||||||
|
showCode: false,
|
||||||
Img1
|
Img1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -230,7 +231,11 @@ export default {
|
||||||
this.loginType = this.$route.query.loginType
|
this.loginType = this.$route.query.loginType
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
if (this.showCode) {
|
||||||
this.isShow = true
|
this.isShow = true
|
||||||
|
} else {
|
||||||
|
this.onSuccess()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// console.log('error submit!!')
|
// console.log('error submit!!')
|
||||||
return false
|
return false
|
||||||
|
@ -239,6 +244,7 @@ export default {
|
||||||
},
|
},
|
||||||
loginIn() {
|
loginIn() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
this.showCode = false
|
||||||
this.$store.dispatch('user/login', this.loginForm).then((res) => {
|
this.$store.dispatch('user/login', this.loginForm).then((res) => {
|
||||||
if (!res) {
|
if (!res) {
|
||||||
// 当前用户为首次登录,请先修改密码之后再次登录
|
// 当前用户为首次登录,请先修改密码之后再次登录
|
||||||
|
@ -273,6 +279,7 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
this.showCode = true
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
v-if="(state === 0 && userTypeEnumInt === 0)"
|
v-if="(state === 0 && userTypeEnumInt === 0)"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleSubmit"
|
@click="handleSubmit('submit')"
|
||||||
>
|
>
|
||||||
{{ $t('trials:researchForm:button:submit') }}
|
{{ $t('trials:researchForm:button:submit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
v-if="(state === 1 && hasPermi(['role:spm','role:cpm']))"
|
v-if="(state === 1 && hasPermi(['role:spm','role:cpm']))"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleSubmit"
|
@click="handleSubmit('approve')"
|
||||||
>
|
>
|
||||||
{{ $t('trials:researchForm:button:auditPasses') }}
|
{{ $t('trials:researchForm:button:auditPasses') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -243,35 +243,22 @@ export default {
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 提交
|
// 提交
|
||||||
handleSubmit() {
|
handleSubmit(type) {
|
||||||
if (this.userTypeEnumInt === 0) {
|
if (this.userTypeEnumInt === 0) {
|
||||||
// if (this.$refs['researchParticipants'].list.length === 0 && this.$refs['researchEquipments'].list.length === 0) {
|
|
||||||
// this.$alert(this.$t('trials:researchForm:message:saveWarning'))
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// var list = this.$refs['researchParticipants'].list
|
|
||||||
// var cIdx = list.findIndex(i => parseInt(i.TrialRoleCode) === 1)
|
|
||||||
// var pIdx = list.findIndex(i => parseInt(i.TrialRoleCode) === 4)
|
|
||||||
// if (cIdx === -1 || pIdx === -1) {
|
|
||||||
// // 提交时校验必须crc角色和影像负责人角色至少有1个
|
|
||||||
// this.$alert(this.$t('trials:researchForm:message:saveWarning1'))
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$refs['baseResearchInfo'].handleSave(true).then(res => {
|
this.$refs['baseResearchInfo'].handleSave(true).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res) {
|
if (res) {
|
||||||
this.submit()
|
this.submit(type)
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
} else {
|
} else {
|
||||||
this.submit()
|
this.submit(type)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
submit() {
|
submit() {
|
||||||
// 是否确认提交
|
// 是否确认提交
|
||||||
this.$confirm(this.$t('trials:researchForm:message:submitWarning'), {
|
this.$confirm(this.userTypeEnumInt === 0 ? this.$t('trials:researchForm:message:submitWarning') : this.$t('trials:researchForm:message:submitWarning2'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true
|
distinguishCancelAndClose: true
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
@ -287,7 +274,12 @@ export default {
|
||||||
if (this.userTypeEnumInt !== 0) {
|
if (this.userTypeEnumInt !== 0) {
|
||||||
this.$emit('refreshPage')
|
this.$emit('refreshPage')
|
||||||
}
|
}
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
// this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
if(type === 'approve'){
|
||||||
|
this.$message.success(this.$t('common:message:approvedSuccessfully'))
|
||||||
|
}else{
|
||||||
|
this.$message.success(this.$t('trials:researchForm:message:savedSuccessfully'))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
|
@ -320,7 +312,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.initPage()
|
this.initPage()
|
||||||
this.$emit('refreshPage')
|
this.$emit('refreshPage')
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.$message.success(this.$t('common:message:approvedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -53,13 +53,13 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<!-- <el-row>-->
|
||||||
<el-col :span="6">
|
<!-- <el-col :span="6">-->
|
||||||
<el-form-item :label="$t('resumeInfo: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>
|
||||||
|
|
|
@ -14,27 +14,27 @@
|
||||||
<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="$t('resumeInfo: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="$t('resumeInfo: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>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item :label="$t('resumeInfo: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-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
<el-form-item :label="$t('resumeInfo:label:Affiliated')">
|
||||||
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
<span v-if="isEnglish">{{ employment.UniversityAffiliated }}</span>
|
||||||
|
|
|
@ -189,8 +189,8 @@ export default {
|
||||||
this.pageLoading = false
|
this.pageLoading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
if (res.Result) {
|
if (res.Result) {
|
||||||
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
|
||||||
this.doctorInfo = res.Result
|
this.doctorInfo = res.Result
|
||||||
|
this.holiday = res.Result.InHoliday ? 'Yes' : 'No'
|
||||||
!this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : '';
|
!this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : '';
|
||||||
this.title = `${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}`
|
this.title = `${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}`
|
||||||
this.htmlTitle = this.title
|
this.htmlTitle = this.title
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
<div class="box-wrapper">
|
<div class="box-wrapper">
|
||||||
<h2 style="text-align:center;">
|
<h2 style="text-align:center;">
|
||||||
<!-- 中心调研表 -->
|
<!-- 中心调研表 -->
|
||||||
独立阅片人信息填写
|
<!-- 独立阅片人信息填写 -->
|
||||||
|
{{$t("trials:researchForm:form:title")}}
|
||||||
</h2>
|
</h2>
|
||||||
<el-card shadow="hover" style="padding-top: 40px">
|
<el-card shadow="hover" style="padding-top: 40px">
|
||||||
<el-form
|
<el-form
|
||||||
|
@ -58,6 +59,7 @@ import { sendVerifyCode, verifySendCode, getTrialSurveyInitInfo } from '@/api/re
|
||||||
import { verifyEmialGetDoctorInfo, sendEmialVerifyCode } from '@/api/reviewers'
|
import { verifyEmialGetDoctorInfo, sendEmialVerifyCode } from '@/api/reviewers'
|
||||||
import { login, getUserMenuTree, getUserPermissions } from '@/api/user'
|
import { login, getUserMenuTree, getUserPermissions } from '@/api/user'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
import { mapMutations } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
var checkPhone = (rule, value, callback) => {
|
var checkPhone = (rule, value, callback) => {
|
||||||
|
@ -149,9 +151,14 @@ export default {
|
||||||
isHaveSiteSurveyRecord: false
|
isHaveSiteSurveyRecord: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created(){
|
||||||
|
this.$i18n.locale = this.$route.query.lang
|
||||||
|
this.setLanguage(this.$route.query.lang)
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
// 提交
|
// 提交
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
this.$refs['resetForm'].validate(valid => {
|
this.$refs['resetForm'].validate(valid => {
|
||||||
|
@ -176,7 +183,7 @@ export default {
|
||||||
store.dispatch('user/setTree', menuTree.Result)
|
store.dispatch('user/setTree', menuTree.Result)
|
||||||
store.dispatch('user/setPermissions', permissions.Result)
|
store.dispatch('user/setPermissions', permissions.Result)
|
||||||
// this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` })
|
// this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` })
|
||||||
this.$router.push({path: `/ReviewersResearchForm?Id=${res.Result.DoctorId ? res.Result.DoctorId : ''}&tabActive=BasicInfo&ReviewStatus=${res.Result.ReviewStatus}`})
|
this.$router.push({path: `/ReviewersResearchForm?Id=${res.Result.DoctorId ? res.Result.DoctorId : ''}&tabActive=BasicInfo&ReviewStatus=${res.Result.ReviewStatus}&lang=${this.$route.query.lang}`})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.btnLoading = false
|
this.btnLoading = false
|
||||||
this.sendDisabled = false
|
this.sendDisabled = false
|
||||||
|
|
|
@ -1,32 +1,33 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-tabs v-model="active" :before-leave="checkLeave" @tab-click="clickTab">
|
<el-tabs v-model="active" :before-leave="checkLeave" @tab-click="clickTab">
|
||||||
<el-tab-pane label="Basic Info" name="BasicInfo">
|
<el-tab-pane :label="$t('system:reviewer:tab:BasicInfo')" name="BasicInfo">
|
||||||
<basic-info v-if="load.BasicInfo" />
|
<basic-info v-if="load.BasicInfo" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Employment" name="Employment">
|
<el-tab-pane :label="$t('system:reviewer:tab:Employment')" name="Employment">
|
||||||
<Employment v-if="load.Employment" />
|
<Employment v-if="load.Employment" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Specialty" name="Specialty">
|
<el-tab-pane :label="$t('system:reviewer:tab:Specialty')" name="Specialty">
|
||||||
<specialty v-if="load.Specialty" />
|
<specialty v-if="load.Specialty" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
<!--Education & Training-->
|
||||||
<el-tab-pane label="Education & Training" name="EducationTraining">
|
<el-tab-pane :label="$t('system:reviewer:tab:Education&Training')" name="EducationTraining">
|
||||||
<education-training v-if="load.EducationTraining" />
|
<education-training v-if="load.EducationTraining" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Research & Publication" name="ResearchPublication">
|
<!--Research & Publication-->
|
||||||
|
<el-tab-pane :label="$t('system:reviewer:tab:Research&Publication')" name="ResearchPublication">
|
||||||
<research-publication v-if="load.ResearchPublication" />
|
<research-publication v-if="load.ResearchPublication" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Trial Experience" name="TrialExperience">
|
<el-tab-pane :label="$t('system:reviewer:tab:TrialExperience')" name="TrialExperience">
|
||||||
<trial-experience v-if="load.TrialExperience" />
|
<trial-experience v-if="load.TrialExperience" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Credentials" name="Credentials">
|
<el-tab-pane :label="$t('system:reviewer:tab:Credentials')" name="Credentials">
|
||||||
<Credentials v-if="load.Credentials" />
|
<Credentials v-if="load.Credentials" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Resumes" name="Resumes">
|
<el-tab-pane :label="$t('system:reviewer:tab:Resumes')" name="Resumes">
|
||||||
<Resumes v-if="load.Resumes" />
|
<Resumes v-if="load.Resumes" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Agreements" name="Agreements">
|
<el-tab-pane :label="$t('system:reviewer:tab:Agreements')" name="Agreements">
|
||||||
<Agreements v-if="load.Agreements" />
|
<Agreements v-if="load.Agreements" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
@ -44,6 +45,7 @@ import Resumes from './components/Resumes'
|
||||||
import Agreements from './components/Agreements'
|
import Agreements from './components/Agreements'
|
||||||
import Setting from './components/Setting'
|
import Setting from './components/Setting'
|
||||||
import { changeURLStatic, getQueryString } from '@/utils/history.js'
|
import { changeURLStatic, getQueryString } from '@/utils/history.js'
|
||||||
|
import { mapMutations } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
BasicInfo,
|
BasicInfo,
|
||||||
|
@ -74,6 +76,10 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created(){
|
||||||
|
this.$i18n.locale = this.$route.query.lang
|
||||||
|
this.setLanguage(this.$route.query.lang)
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.active = this.$route.query.tabActive
|
this.active = this.$route.query.tabActive
|
||||||
if (this.$route.query.Id === '' && this.active !== 'BasicInfo') {
|
if (this.$route.query.Id === '' && this.active !== 'BasicInfo') {
|
||||||
|
@ -82,13 +88,14 @@ export default {
|
||||||
this.load[this.active] = true
|
this.load[this.active] = true
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
clickTab(tab, event) {
|
clickTab(tab, event) {
|
||||||
if (this.load[tab.name] === false) {
|
if (this.load[tab.name] === false) {
|
||||||
this.load[tab.name] = true
|
this.load[tab.name] = true
|
||||||
}
|
}
|
||||||
changeURLStatic('tabActive', tab.name)
|
changeURLStatic('tabActive', tab.name)
|
||||||
const id = getQueryString('Id')
|
const id = getQueryString('Id')
|
||||||
this.$router.push({ path: `/ReviewersResearchForm?Id=${id}&tabActive=${tab.name}&ReviewStatus=${getQueryString('ReviewStatus')}` })
|
this.$router.push({ path: `/ReviewersResearchForm?Id=${id}&tabActive=${tab.name}&ReviewStatus=${getQueryString('ReviewStatus')}&lang=${this.$i18n.locale}` })
|
||||||
},
|
},
|
||||||
checkLeave() {
|
checkLeave() {
|
||||||
const id = getQueryString('Id')
|
const id = getQueryString('Id')
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="resumes-container">
|
<div v-loading="loading" class="resumes-container">
|
||||||
<div class="resume-content" v-if="!$route.query.ReviewStatus">
|
<div class="resume-content" v-if="!$route.query.ReviewStatus">
|
||||||
<p>Consultant Agreement</p>
|
<p>{{$t('system:Agreements:title:Consultant Agreement')}}</p>
|
||||||
<div class="upload-content">
|
<div class="upload-content">
|
||||||
<upload-files ref="uploadAgreement" :disabled="$route.query.ReviewStatus === '1'" :doctor-id="doctorId" type="Consultant Agreement" accept=".pdf" @getFileList="getFileList" />
|
<upload-files ref="uploadAgreement" :disabled="$route.query.ReviewStatus === '1'" :doctor-id="doctorId" type="Consultant Agreement" accept=".pdf" @getFileList="getFileList" />
|
||||||
</div>
|
</div>
|
||||||
<p>(must be in pdf format)</p>
|
<p>{{ $t('system:GcpCertificate:tap:must') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!$route.query.ReviewStatus">
|
<div v-if="!$route.query.ReviewStatus">
|
||||||
<el-table :data="agreementList" size="small">
|
<el-table :data="agreementList" size="small">
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="FileName" label="Consultant Agreement" width="300" />
|
<el-table-column prop="FileName" :label="$t('system:Agreements:table:Consultant Agreement')" width="300" />
|
||||||
<el-table-column prop="CreateTime" label="Upload Time" width="150" />
|
<el-table-column prop="CreateTime" :label="$t('system:Agreements:table:Upload Time')" width="150" />
|
||||||
<el-table-column label="Action" width="400">
|
<el-table-column :label="$t('common:action:action')" width="400">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="handlePreview(scope.row)">View</el-button>
|
<el-button type="text" size="small" @click="handlePreview(scope.row)">{{$t('trials:enrolledReviews:button:view')}}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">Delete</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">{{$t('common:button:delete')}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -24,21 +24,22 @@
|
||||||
<span style="margin-right: 20px">
|
<span style="margin-right: 20px">
|
||||||
{{$t('trials:enrolledReviews:message:SOW')}}
|
{{$t('trials:enrolledReviews:message:SOW')}}
|
||||||
</span>
|
</span>
|
||||||
<el-button size="small" type="primary" :disabled="$route.query.ReviewStatus === '1'" @click="addCol(0, $t('trials:enrolledReviews:message:SOW'))">Upload</el-button>
|
<el-button size="small" type="primary" :disabled="$route.query.ReviewStatus === '1'" @click="addCol(0, $t('trials:enrolledReviews:message:SOW'))">
|
||||||
|
{{ $t('common:button:upload') }}</el-button>
|
||||||
<el-button size="small" type="primary" @click="handleDownload('Reviewer_SOW_Template')">
|
<el-button size="small" type="primary" @click="handleDownload('Reviewer_SOW_Template')">
|
||||||
<i class="el-icon-view el-icon-download"></i>
|
<i class="el-icon-view el-icon-download"></i>
|
||||||
Template
|
{{ $t('common:button:template') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="sowList" size="small">
|
<el-table :data="sowList" size="small">
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column label="Criterion Type" width="120">
|
<el-table-column :label="$t('system:Agreements:table:Criterion Type')" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CriterionName }}
|
{{ scope.row.CriterionName }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="FileName" label="Statement of Work" width="400" />
|
<el-table-column prop="FileName" :label="$t('system:Agreements:table:Statement of Work')" width="400" />
|
||||||
<el-table-column prop="IsEnable" label="Is Enable" width="100">
|
<el-table-column prop="IsEnable" :label="$t('system:Agreements:table:Is Enable')" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="scope.row.IsEnable"
|
v-model="scope.row.IsEnable"
|
||||||
|
@ -48,13 +49,14 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Remark" label="Remark" width="200" />
|
<el-table-column prop="Remark" :label="$t('system:Agreements:Remark')" width="200" />
|
||||||
<el-table-column prop="CreateTime" label="Upload Time" width="150" />
|
<el-table-column prop="CreateTime" :label="$t('system:Agreements:Upload Time')" width="150" />
|
||||||
<el-table-column label="Action" width="400">
|
<el-table-column :label="$t('common:action:action')" width="400">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePreview3(scope.row)">View</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePreview3(scope.row)">{{$t('trials:enrolledReviews:button:view')}}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEditCol(scope.row, 0, $t('trials:enrolledReviews:message:SOW'))">Edit</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEditCol(scope.row, 0, $t('trials:enrolledReviews:message:SOW'))">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile3(scope.row)">Delete</el-button>
|
{{ $t('common:button:edit') }}</el-button>
|
||||||
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile3(scope.row)">{{ $t('common:button:delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -62,17 +64,17 @@
|
||||||
<span style="margin-right: 20px">
|
<span style="margin-right: 20px">
|
||||||
{{$t('trials:enrolledReviews:message:EQC')}}
|
{{$t('trials:enrolledReviews:message:EQC')}}
|
||||||
</span>
|
</span>
|
||||||
<el-button size="small" type="primary" :disabled="$route.query.ReviewStatus === '1'" @click="addCol(1, $t('trials:enrolledReviews:message:EQC'))">Upload</el-button>
|
<el-button size="small" type="primary" :disabled="$route.query.ReviewStatus === '1'" @click="addCol(1, $t('trials:enrolledReviews:message:EQC'))">{{$t('common:button:upload')}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="ackSowList" size="small" v-if="!$route.query.ReviewStatus">
|
<el-table :data="ackSowList" size="small" v-if="!$route.query.ReviewStatus">
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column label="Criterion Type" width="120">
|
<el-table-column :label="$t('system:Agreements:table:Criterion Type')" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CriterionName }}
|
{{ scope.row.CriterionName }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="FileName" label="Acknowledgement of SOW" width="400" />
|
<el-table-column prop="FileName" :label="$t('system:Agreements:table:Acknowledgement of SOW')" width="400" />
|
||||||
<el-table-column prop="IsEnable" label="Is Enable" width="100">
|
<el-table-column prop="IsEnable" :label="$t('system:Agreements:table:Is Enable')" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="scope.row.IsEnable"
|
v-model="scope.row.IsEnable"
|
||||||
|
@ -82,13 +84,13 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Remark" label="Remark" width="200" />
|
<el-table-column prop="Remark" :label="$t('system:Agreements:table:Remark')" width="200" />
|
||||||
<el-table-column prop="CreateTime" label="Upload Time" width="150" />
|
<el-table-column prop="CreateTime" :label="$t('system:Agreements:table:Upload Time')" width="150" />
|
||||||
<el-table-column label="Action" width="400">
|
<el-table-column label="Action" width="400">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePreview3(scope.row)">View</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePreview3(scope.row)">{{$t('common:button:view')}}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEditCol(scope.row, 1, $t('trials:enrolledReviews:message:EQC'))">Edit</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEditCol(scope.row, 1, $t('trials:enrolledReviews:message:EQC'))">{{$t('common:button:edit')}}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile3(scope.row)">Delete</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile3(scope.row)">{{$t('common:button:delete')}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -101,7 +103,7 @@
|
||||||
label-width="120px"
|
label-width="120px"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form-item label="Criterion Type " prop="CriterionType">
|
<el-form-item :label="$t('system:Agreements:label:Criterion Type')" prop="CriterionType">
|
||||||
<el-select v-model="form.CriterionType">
|
<el-select v-model="form.CriterionType">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.CriterionType"
|
v-for="item of $d.CriterionType"
|
||||||
|
@ -111,7 +113,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="File" prop="FilePath">
|
<el-form-item :label="$t('system:Agreements:label:File')" prop="FilePath">
|
||||||
<el-upload
|
<el-upload
|
||||||
class="upload-demo"
|
class="upload-demo"
|
||||||
action
|
action
|
||||||
|
@ -126,11 +128,11 @@
|
||||||
<el-button size="small" type="primary" :disabled="fileList.length > 0">{{$t('common:button:upload')}}</el-button>
|
<el-button size="small" type="primary" :disabled="fileList.length > 0">{{$t('common:button:upload')}}</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Remark">
|
<el-form-item :label="$t('system:Agreements:label:Remark')">
|
||||||
<el-input v-model="form.Remark" type="textarea"
|
<el-input v-model="form.Remark" type="textarea"
|
||||||
:autosize="{ minRows: 2, maxRows: 4}"></el-input>
|
:autosize="{ minRows: 2, maxRows: 4}"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Is Enable">
|
<el-form-item :label="$t('system:Agreements:label:Is Enable')">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.IsEnable"
|
v-model="form.IsEnable"
|
||||||
:active-value="true"
|
:active-value="true"
|
||||||
|
@ -140,8 +142,8 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">Cancel</el-button>
|
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">{{ $t('common:button:cancel') }}</el-button>
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">Save</el-button>
|
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</BaseModel>
|
</BaseModel>
|
||||||
</div>
|
</div>
|
||||||
|
@ -272,6 +274,7 @@ export default {
|
||||||
this.model_cfg.title = title
|
this.model_cfg.title = title
|
||||||
},
|
},
|
||||||
initSowList() {
|
initSowList() {
|
||||||
|
if (!this.doctorId) return
|
||||||
getDoctorCriterionFile({
|
getDoctorCriterionFile({
|
||||||
fileType: 0,
|
fileType: 0,
|
||||||
DoctorId: this.doctorId
|
DoctorId: this.doctorId
|
||||||
|
|
|
@ -15,31 +15,31 @@
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item v-if="basicInfo.ReviewerCode" label="ID: ">
|
<el-form-item v-if="basicInfo.ReviewerCode" :label="$t('system:reviewer:label:Id')">
|
||||||
<el-input v-model="basicInfo.ReviewerCode" disabled size="small" />
|
<el-input v-model="basicInfo.ReviewerCode" disabled size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Surname: " prop="LastName">
|
<el-form-item :label="$t('system:reviewer:label:LastName')" prop="LastName">
|
||||||
<el-input v-model="basicInfo.LastName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
<el-input v-model="basicInfo.LastName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Given Name: " prop="FirstName">
|
<el-form-item :label="$t('system:reviewer:label:FirstName')" prop="FirstName">
|
||||||
<el-input v-model="basicInfo.FirstName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
<el-input v-model="basicInfo.FirstName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Name CN: " prop="ChineseName">
|
<el-form-item :label="$t('system:reviewer:label:NameCN')" prop="ChineseName">
|
||||||
<el-input v-model="basicInfo.ChineseName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
<el-input v-model="basicInfo.ChineseName" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Gender: " prop="Sex">
|
<el-form-item :label="$t('system:reviewer:label:Gender')" prop="Sex">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="basicInfo.Sex"
|
v-model="basicInfo.Sex"
|
||||||
prop="Sex"
|
prop="Sex"
|
||||||
|
@ -59,12 +59,12 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Phone: " prop="Phone">
|
<el-form-item :label="$t('system:reviewer:label:Phone')" prop="Phone">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="basicInfo.Phone" size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="basicInfo.Phone" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Title: " prop="TitleIds">
|
<el-form-item :label="$t('system:reviewer:label:Title')" prop="TitleIds">
|
||||||
<el-select
|
<el-select
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
v-model="basicInfo.TitleIds[0]"
|
v-model="basicInfo.TitleIds[0]"
|
||||||
|
@ -89,17 +89,15 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="EMail: " prop="EMail">
|
<el-form-item :label="$t('system:reviewer:label:Email')" prop="EMail">
|
||||||
<el-input v-model="basicInfo.EMail" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
<el-input v-model="basicInfo.EMail" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<!-- <el-col :span="12">-->
|
||||||
<el-form-item label="WeChat: " prop="WeChat">
|
<!-- <el-form-item label="WeChat: " prop="WeChat">-->
|
||||||
<el-input v-model="basicInfo.WeChat" :disabled="$route.query.ReviewStatus === '1'" size="small" />
|
<!-- <el-input v-model="basicInfo.WeChat" :disabled="$route.query.ReviewStatus === '1'" size="small" />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<!-- <el-form-item label="Payment Type: " prop="Nation">
|
<!-- <el-form-item label="Payment Type: " prop="Nation">
|
||||||
<el-radio-group v-model="basicInfo.Nation">
|
<el-radio-group v-model="basicInfo.Nation">
|
||||||
|
@ -108,7 +106,7 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
|
|
||||||
<el-form-item label="Payment Type: " prop="Nation">
|
<el-form-item :label="$t('system:reviewer:label:Country')" prop="Nation">
|
||||||
<el-select
|
<el-select
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
v-model="basicInfo.Nation"
|
v-model="basicInfo.Nation"
|
||||||
|
@ -116,11 +114,13 @@
|
||||||
clearable
|
clearable
|
||||||
class="mr"
|
class="mr"
|
||||||
>
|
>
|
||||||
<el-option v-for="item of $d.AttendedReviewerType" :value="item.value" :label="item.label" />
|
<el-option v-for="item of $d.AttendedReviewerType" :value="item.value" :label="item.label" :key="item.id"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<!-- <el-row>-->
|
||||||
|
<!-- </el-row>-->
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-form-item style="margin-left: 120px">
|
<el-form-item style="margin-left: 120px">
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
:loading="isDisabled"
|
:loading="isDisabled"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleSave"
|
@click="handleSave"
|
||||||
>Save</el-button>
|
> {{ $t('common:button:save') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="credentials-container">
|
<div class="credentials-container">
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<el-card class="e-card">
|
<el-card class="e-card">
|
||||||
<p class="title">Diploma of the highest medical degree 最高医学学位毕业证书
|
<p class="title">{{$t('system:Credentials:title:Diploma of the highest medical degree')}}
|
||||||
</p>
|
</p>
|
||||||
<upload-file :doctor-id="doctorId" type="Diploma of the highest medical degree" />
|
<upload-file :doctor-id="doctorId" type="Diploma of the highest medical degree" />
|
||||||
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_DiplomaOfTheHighestMedicalDegree_Template')">-->
|
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_DiplomaOfTheHighestMedicalDegree_Template')">-->
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card class="e-card">
|
<el-card class="e-card">
|
||||||
<p class="title">Medical Qualification Certificate 医师资格证
|
<p class="title">{{$t('system:Credentials:title:Medical Qualification Certificate')}}
|
||||||
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_MedicalQualificationCertificate_Template')">-->
|
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_MedicalQualificationCertificate_Template')">-->
|
||||||
<!-- <i class="el-icon-view el-icon-download"></i>-->
|
<!-- <i class="el-icon-view el-icon-download"></i>-->
|
||||||
<!-- Template-->
|
<!-- Template-->
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card class="e-card">
|
<el-card class="e-card">
|
||||||
<p class="title">Practice License 医师执业证
|
<p class="title">{{$t('system:Credentials:title:Practice License')}}
|
||||||
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_PracticeLicense_Template')">-->
|
<!-- <el-button size="mini" type="primary" style="position: absolute;bottom:10px;right: 10px;" @click="handleDownload('Reviewer_PracticeLicense_Template')">-->
|
||||||
<!-- <i class="el-icon-view el-icon-download"></i>-->
|
<!-- <i class="el-icon-view el-icon-download"></i>-->
|
||||||
<!-- Template-->
|
<!-- Template-->
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
<upload-file :doctor-id="doctorId" type="Practice License" />
|
<upload-file :doctor-id="doctorId" type="Practice License" />
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
<h6 style="line-height:30px;font-size:13px;">Modality Certificate 大型医用设备上岗证</h6>
|
<h6 style="line-height:30px;font-size:13px;">{{$t('system:Credentials:title:Modality Certificate')}}</h6>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<el-card class="e-card">
|
<el-card class="e-card">
|
||||||
<p class="title">CT
|
<p class="title">CT
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="form-container">
|
<div v-loading="loading" class="form-container">
|
||||||
<div class="title-wrapper">
|
<div class="title-wrapper">
|
||||||
<p>Education (in chronological order)</p>
|
<p>{{ $t('system:reviewer:title:Education') }}</p>
|
||||||
<el-button class="add" :disabled="$route.query.ReviewStatus === '1'" size="small" @click="handleAddEducation">Add</el-button>
|
<el-button class="add" :disabled="$route.query.ReviewStatus === '1'" size="small" @click="handleAddEducation">
|
||||||
|
{{ $t('common:button:add') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
ref="educationTbl"
|
ref="educationTbl"
|
||||||
|
@ -14,29 +15,29 @@
|
||||||
<el-table-column type="index" width="30" />
|
<el-table-column type="index" width="30" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="BeginDateStr"
|
prop="BeginDateStr"
|
||||||
label="Start"
|
:label="$t('system:EducationTraining:table:Start')"
|
||||||
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('system:EducationTraining:table:End')"
|
||||||
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('system:EducationTraining:table:Degree')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.DegreeCN?`${scope.row.Degree} / ${scope.row.DegreeCN}`:scope.row.Degree }}
|
{{ scope.row.DegreeCN?`${scope.row.Degree} / ${scope.row.DegreeCN}`:scope.row.Degree }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Major" label="Major" min-width="120" show-overflow-tooltip>
|
<el-table-column prop="Major" :label="$t('system:EducationTraining:table:Major')" min-width="120" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
|
{{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Organization"
|
prop="Organization"
|
||||||
label="Institution"
|
:label="$t('system:EducationTraining:table:Institution')"
|
||||||
min-width="150"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -44,32 +45,35 @@
|
||||||
{{ scope.row.OrganizationCN?`${scope.row.Organization} / ${scope.row.OrganizationCN}`:scope.row.Organization }}
|
{{ scope.row.OrganizationCN?`${scope.row.Organization} / ${scope.row.OrganizationCN}`:scope.row.Organization }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="City" label="City" min-width="90" show-overflow-tooltip>
|
<el-table-column prop="City" :label="$t('system:EducationTraining:table:City')" min-width="90" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
|
{{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Province" label="State/Province" min-width="90" show-overflow-tooltip>
|
<el-table-column prop="Province" :label="$t('system:EducationTraining:table:State/Province')" min-width="90" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
|
{{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Country" label="Country" min-width="80" show-overflow-tooltip>
|
<el-table-column prop="Country" :label="$t('system:EducationTraining:table:Country')" min-width="80" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
|
{{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Operation" min-width="120">
|
<el-table-column :label="$t('system:EducationTraining:table:Operation')" min-width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEducationEdit(scope.row)">Edit</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEducationEdit(scope.row)">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEducationDelete(scope.row)">Delete</el-button>
|
{{ $t('common:button:edit') }}</el-button>
|
||||||
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEducationDelete(scope.row)">
|
||||||
|
{{ $t('common:button:delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<div class="title-wrapper" style="margin-top:40px;">
|
<div class="title-wrapper" style="margin-top:40px;">
|
||||||
<p>Postgraduate Training (in chronological order)</p>
|
<p>{{ $t('system:reviewer:title:Postgraduate') }}</p>
|
||||||
<el-button class="add" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleAddPostgraduate">Add</el-button>
|
<el-button class="add" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleAddPostgraduate">
|
||||||
|
{{ $t('common:button:add') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
ref="postgraduateTbl"
|
ref="postgraduateTbl"
|
||||||
|
@ -81,24 +85,24 @@
|
||||||
<el-table-column type="index" width="30" />
|
<el-table-column type="index" width="30" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="BeginDateStr"
|
prop="BeginDateStr"
|
||||||
label="Start"
|
:label="$t('system:EducationTraining:table:Start')"
|
||||||
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('system:EducationTraining:table:End')"
|
||||||
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('system:EducationTraining:table:Training')" min-width="70" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.TrainingCN?`${scope.row.Training} / ${scope.row.TrainingCN}`:scope.row.Training }}
|
{{ scope.row.TrainingCN?`${scope.row.Training} / ${scope.row.TrainingCN}`:scope.row.Training }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Major"
|
prop="Major"
|
||||||
label="Specialty/Research Field"
|
:label="$t('system:EducationTraining:table:Specialty/Research Field')"
|
||||||
min-width="155"
|
min-width="155"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -106,32 +110,32 @@
|
||||||
{{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
|
{{ scope.row.MajorCN?`${scope.row.Major} / ${scope.row.MajorCN}`:scope.row.Major }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Hospital" label="Hospital" min-width="120" show-overflow-tooltip>
|
<el-table-column prop="Hospital" :label="$t('system:EducationTraining:table:Hospital')" min-width="120" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.HospitalCN?`${scope.row.Hospital} / ${scope.row.HospitalCN}`:scope.row.Hospital }}
|
{{ scope.row.HospitalCN?`${scope.row.Hospital} / ${scope.row.HospitalCN}`:scope.row.Hospital }}
|
||||||
</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('system:EducationTraining:table:University')" min-width="120" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.SchoolCN?`${scope.row.School} / ${scope.row.SchoolCN}`:scope.row.School }}
|
{{ scope.row.SchoolCN?`${scope.row.School} / ${scope.row.SchoolCN}`:scope.row.School }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="City" label="City" min-width="100" show-overflow-tooltip>
|
<el-table-column prop="City" :label="$t('system:EducationTraining:table:City')" min-width="100" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
|
{{ scope.row.CityCN?`${scope.row.City} / ${scope.row.CityCN}`:scope.row.City }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Province" label="State/Province" min-width="100" show-overflow-tooltip>
|
<el-table-column prop="Province" :label="$t('system:EducationTraining:table:State/Province')" min-width="100" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
|
{{ scope.row.ProvinceCN?`${scope.row.Province} / ${scope.row.ProvinceCN}`:scope.row.Province }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Country" label="Country" min-width="90" show-overflow-tooltip>
|
<el-table-column prop="Country" :label="$t('system:EducationTraining:table:Country')" min-width="90" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
|
{{ scope.row.CountryCN?`${scope.row.Country} / ${scope.row.CountryCN}`:scope.row.Country }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Operation" min-width="120">
|
<el-table-column :label="$t('system:EducationTraining:table:Operation')" min-width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePostgraduateEdit(scope.row)">Edit</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePostgraduateEdit(scope.row)">Edit</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePostgraduateDelete(scope.row)">Delete</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handlePostgraduateDelete(scope.row)">Delete</el-button>
|
||||||
|
@ -147,7 +151,7 @@
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-form v-if="educationDialogVisible" ref="educationForm" size="small" label-width="120px" :model="educationForm" :rules="educationRules">
|
<el-form v-if="educationDialogVisible" ref="educationForm" size="small" label-width="120px" :model="educationForm" :rules="educationRules">
|
||||||
<el-form-item label="Start" prop="BeginDate">
|
<el-form-item :label="$t('system:EducationTraining:table:Start')" prop="BeginDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="educationForm.BeginDate"
|
v-model="educationForm.BeginDate"
|
||||||
type="month"
|
type="month"
|
||||||
|
@ -158,7 +162,7 @@
|
||||||
:picker-options="beginPickerOption"
|
:picker-options="beginPickerOption"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="End" prop="EndDate">
|
<el-form-item :label="$t('system:EducationTraining:table:End')" prop="EndDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="educationForm.EndDate"
|
v-model="educationForm.EndDate"
|
||||||
type="month"
|
type="month"
|
||||||
|
@ -169,8 +173,8 @@
|
||||||
:picker-options="endpickerOption"
|
:picker-options="endpickerOption"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Degree" prop="Degree">
|
<el-form-item :label="$t('system:EducationTraining:table:Degree')" prop="Degree">
|
||||||
<el-select v-model="educationForm.Degree" placeholder="Please select" size="small">
|
<el-select v-model="educationForm.Degree" size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in degreeOptions"
|
v-for="item in degreeOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
@ -180,7 +184,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Major" prop="Major">
|
<el-form-item :label="$t('system:EducationTraining:table:Major')" prop="Major">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="educationForm.Major" placeholder="Please specify in English" size="small" />
|
<el-input v-model="educationForm.Major" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -190,7 +194,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Institution" prop="Organization">
|
<el-form-item :label="$t('system:EducationTraining:table:Institution')" prop="Organization">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="educationForm.Organization" placeholder="Please specify in English" size="small" />
|
<el-input v-model="educationForm.Organization" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -200,7 +204,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="City" prop="City">
|
<el-form-item :label="$t('system:EducationTraining:table:City')" prop="City">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="educationForm.City" placeholder="Please specify in English" size="small" />
|
<el-input v-model="educationForm.City" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -211,7 +215,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="State/Province" prop="Province">
|
<el-form-item :label="$t('system:EducationTraining:table:State/Province')" prop="Province">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="educationForm.Province" placeholder="Please specify in English" size="small" />
|
<el-input v-model="educationForm.Province" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -221,7 +225,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Country" prop="Country">
|
<el-form-item :label="$t('system:EducationTraining:table:Country')" prop="Country">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="educationForm.Country" placeholder="Please specify in English" size="small" />
|
<el-input v-model="educationForm.Country" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -233,7 +237,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" size="small" :loading="isDisabled" @click="handleEducationSave">Save</el-button>
|
<el-button type="primary" size="small" :loading="isDisabled" @click="handleEducationSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
@ -245,7 +249,7 @@
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-form v-if="postgraduateDialogVisible" ref="postgraduateForm" size="small" label-width="190px" :model="postgraduateForm" :rules="postgraduateRules">
|
<el-form v-if="postgraduateDialogVisible" ref="postgraduateForm" size="small" label-width="190px" :model="postgraduateForm" :rules="postgraduateRules">
|
||||||
<el-form-item label="Start" prop="BeginDate">
|
<el-form-item :label="$t('system:EducationTraining:table:Start')" prop="BeginDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="postgraduateForm.BeginDate"
|
v-model="postgraduateForm.BeginDate"
|
||||||
type="month"
|
type="month"
|
||||||
|
@ -256,7 +260,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="End" prop="EndDate">
|
<el-form-item :label="$t('system:EducationTraining:table:End')" prop="EndDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="postgraduateForm.EndDate"
|
v-model="postgraduateForm.EndDate"
|
||||||
type="month"
|
type="month"
|
||||||
|
@ -267,7 +271,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Training" prop="Training">
|
<el-form-item :label="$t('system:EducationTraining:table:Training')" prop="Training">
|
||||||
<el-select v-model="postgraduateForm.Training" placeholder="Please select" size="small">
|
<el-select v-model="postgraduateForm.Training" placeholder="Please select" size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in TrainingOptions"
|
v-for="item in TrainingOptions"
|
||||||
|
@ -277,7 +281,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Specialty / Research Field" prop="Major">
|
<el-form-item :label="$t('system:EducationTraining:table:Specialty/Research Field')" prop="Major">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.Major" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.Major" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -287,7 +291,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Hospital" prop="Hospital">
|
<el-form-item :label="$t('system:EducationTraining:table:Hospital')" prop="Hospital">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.Hospital" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.Hospital" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -297,7 +301,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="University" prop="School">
|
<el-form-item :label="$t('system:EducationTraining:table:University')" prop="School">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.School" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.School" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -308,7 +312,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="City" prop="City">
|
<el-form-item :label="$t('system:EducationTraining:table:City')" prop="City">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.City" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.City" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -318,7 +322,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="State/Province" prop="Province">
|
<el-form-item :label="$t('system:EducationTraining:table:State/Province')" prop="Province">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.Province" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.Province" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -328,7 +332,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Country" prop="Country">
|
<el-form-item :label="$t('system:EducationTraining:table:Country')" prop="Country">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input v-model="postgraduateForm.Country" placeholder="Please specify in English" size="small" />
|
<el-input v-model="postgraduateForm.Country" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -340,7 +344,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" type="primary" :loading="isDisabled" @click="handlePostgraduateSave">Save</el-button>
|
<el-button size="small" type="primary" :loading="isDisabled" @click="handlePostgraduateSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
@ -528,7 +532,6 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.isDisabled = true
|
this.isDisabled = true
|
||||||
this.educationForm.DoctorId = this.$route.query.Id
|
this.educationForm.DoctorId = this.$route.query.Id
|
||||||
|
|
||||||
if (this.educationForm.Degree === 'Bachelor') {
|
if (this.educationForm.Degree === 'Bachelor') {
|
||||||
this.educationForm.DegreeCN = '学士'
|
this.educationForm.DegreeCN = '学士'
|
||||||
} else if (this.educationForm.Degree === 'Master') {
|
} else if (this.educationForm.Degree === 'Master') {
|
||||||
|
@ -564,8 +567,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteEducationInfo(row.Id)
|
deleteEducationInfo(row.Id)
|
||||||
|
@ -633,8 +635,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deletePostgraduateInfo(row.Id)
|
deletePostgraduateInfo(row.Id)
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="Hospital: " prop="HospitalId">
|
<el-form-item :label="$t('system:reviewer:label:Hospital')" prop="HospitalId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="employmentForm.HospitalId"
|
v-model="employmentForm.HospitalId"
|
||||||
placeholder="select"
|
placeholder="select"
|
||||||
|
@ -39,13 +39,12 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="Affiliated University: ">
|
<el-form-item :label="$t('system:reviewer:label:AffiliatedUniversity')">
|
||||||
<el-input
|
<el-input
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
v-model="UniversityAffiliated"
|
v-model="UniversityAffiliated"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
disabled
|
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -53,29 +52,29 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="City: ">
|
<el-form-item :label="$t('system:reviewer:label:City')">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="City" disabled size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="City" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="State/Province: ">
|
<el-form-item :label="$t('system:reviewer:label:State/Province')">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="Province" disabled size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="Province" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="Country: ">
|
<el-form-item :label="$t('system:reviewer:label:Country')">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="Country" disabled size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="Country" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="Department: " prop="DepartmentId">
|
<el-form-item :label="$t('system:reviewer:label:Department')" prop="DepartmentId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="employmentForm.DepartmentId"
|
v-model="employmentForm.DepartmentId"
|
||||||
placeholder="select"
|
placeholder="select"
|
||||||
|
@ -123,7 +122,7 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="Rank: " prop="RankId">
|
<el-form-item :label="$t('system:reviewer:label:Rank')" prop="RankId">
|
||||||
<el-select
|
<el-select
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
v-model="employmentForm.RankId"
|
v-model="employmentForm.RankId"
|
||||||
|
@ -141,7 +140,7 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Rank"
|
v-for="item of $d.Rank"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.raw.Value"
|
:label="item.label"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
/>
|
/>
|
||||||
<!-- <el-option label="Other" :value="otherId" />-->
|
<!-- <el-option label="Other" :value="otherId" />-->
|
||||||
|
@ -170,99 +169,98 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<!-- <el-row>-->
|
||||||
<el-col :span="14">
|
<!-- <el-col :span="14">-->
|
||||||
<el-form-item label="Physician: " prop="PhysicianId" >
|
<!-- <el-form-item label="Physician: " prop="PhysicianId" >-->
|
||||||
<el-select
|
<!-- <el-select-->
|
||||||
v-model="employmentForm.PhysicianId"
|
<!-- v-model="employmentForm.PhysicianId"-->
|
||||||
placeholder="select"
|
<!-- placeholder="select"-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
@change="PhysicianChange"
|
<!-- @change="PhysicianChange"-->
|
||||||
style="width:100%;"
|
<!-- style="width:100%;"-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="item of $d.PhysicianOriginal"
|
<!-- v-for="item of $d.PhysicianOriginal"-->
|
||||||
:key="item.id"
|
<!-- :key="item.id"-->
|
||||||
:label="item.raw.Value"
|
<!-- :label="item.raw.Value"-->
|
||||||
:value="item.id"
|
<!-- :value="item.id"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col :span="5">
|
<!-- <el-col :span="5">-->
|
||||||
<el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="Physician">
|
<!-- <el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="Physician">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
v-model="employmentForm.Physician"
|
<!-- v-model="employmentForm.Physician"-->
|
||||||
placeholder="Please specify"
|
<!-- placeholder="Please specify"-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col :span="5">
|
<!-- <el-col :span="5">-->
|
||||||
<el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="PhysicianCN">
|
<!-- <el-form-item v-if="$fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === '其它' || $fd('PhysicianOriginal', employmentForm.PhysicianId, 'id') === 'Other'" class="other-item" prop="PhysicianCN">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
v-model="employmentForm.PhysicianCN"
|
<!-- v-model="employmentForm.PhysicianCN"-->
|
||||||
placeholder="请用中文注明"
|
<!-- placeholder="请用中文注明"-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
</el-row>
|
<!-- </el-row>-->
|
||||||
|
<!-- <el-row>-->
|
||||||
<el-row>
|
<!-- <el-col :span="14">-->
|
||||||
<el-col :span="14">
|
<!-- <el-form-item label="Position: " prop="PositionId">-->
|
||||||
<el-form-item label="Position: " prop="PositionId">
|
<!-- <el-select-->
|
||||||
<el-select
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- v-model="employmentForm.PositionId"-->
|
||||||
v-model="employmentForm.PositionId"
|
<!-- placeholder="select"-->
|
||||||
placeholder="select"
|
<!-- style="width:100%;"-->
|
||||||
style="width:100%;"
|
<!-- size="small"-->
|
||||||
size="small"
|
<!-- >-->
|
||||||
>
|
<!-- <!– <el-option-->
|
||||||
<!-- <el-option
|
<!-- v-for="(key,value) of dictionaryList.Position"-->
|
||||||
v-for="(key,value) of dictionaryList.Position"
|
<!-- :key="key"-->
|
||||||
:key="key"
|
<!-- :label="key"-->
|
||||||
:label="key"
|
<!-- :value="value"-->
|
||||||
:value="value"
|
<!-- /> –>-->
|
||||||
/> -->
|
<!-- <el-option-->
|
||||||
<el-option
|
<!-- v-for="item of dictionaryList.Position"-->
|
||||||
v-for="item of dictionaryList.Position"
|
<!-- :key="item.Id"-->
|
||||||
:key="item.Id"
|
<!-- :label="item.Value"-->
|
||||||
:label="item.Value"
|
<!-- :value="item.Id"-->
|
||||||
:value="item.Id"
|
<!-- />-->
|
||||||
/>
|
<!-- <el-option label="Other" :value="otherId" />-->
|
||||||
<el-option label="Other" :value="otherId" />
|
<!-- <el-option label="None" value="f30a074b-2b47-4a92-97ec-e15086d37883" />-->
|
||||||
<el-option label="None" value="f30a074b-2b47-4a92-97ec-e15086d37883" />
|
<!-- </el-select>-->
|
||||||
</el-select>
|
<!-- </el-form-item>-->
|
||||||
</el-form-item>
|
<!-- </el-col>-->
|
||||||
</el-col>
|
<!-- <el-col :span="5">-->
|
||||||
<el-col :span="5">
|
<!-- <el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOther">-->
|
||||||
<el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOther">
|
<!-- <el-input-->
|
||||||
<el-input
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- v-model="employmentForm.PositionOther"-->
|
||||||
v-model="employmentForm.PositionOther"
|
<!-- placeholder="Please specify"-->
|
||||||
placeholder="Please specify"
|
<!-- size="small"-->
|
||||||
size="small"
|
<!-- />-->
|
||||||
/>
|
<!-- </el-form-item>-->
|
||||||
</el-form-item>
|
<!-- </el-col>-->
|
||||||
</el-col>
|
<!-- <el-col :span="5">-->
|
||||||
<el-col :span="5">
|
<!-- <el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOtherCN">-->
|
||||||
<el-form-item v-if="employmentForm.PositionId===otherId" class="other-item" prop="PositionOtherCN">
|
<!-- <el-input-->
|
||||||
<el-input
|
<!-- :disabled="$route.query.ReviewStatus === '1'"-->
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
<!-- v-model="employmentForm.PositionOtherCN"-->
|
||||||
v-model="employmentForm.PositionOtherCN"
|
<!-- placeholder="请用中文注明"-->
|
||||||
placeholder="请用中文注明"
|
<!-- size="small"-->
|
||||||
size="small"
|
<!-- />-->
|
||||||
/>
|
<!-- </el-form-item>-->
|
||||||
</el-form-item>
|
<!-- </el-col>-->
|
||||||
</el-col>
|
<!-- </el-row>-->
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'" size="small" @click="handleSave">Save</el-button>
|
<el-button type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'" size="small" @click="handleSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -377,9 +375,9 @@ export default {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.isDisabled = true
|
this.isDisabled = true
|
||||||
const param = {}
|
const param = {}
|
||||||
var o = this.$d.PhysicianOriginal.find(v => {
|
// var o = this.$d.PhysicianOriginal.find(v => {
|
||||||
return v.id === this.employmentForm.PhysicianId
|
// return v.id === this.employmentForm.PhysicianId
|
||||||
})
|
// })
|
||||||
param.Id = this.$route.query.Id
|
param.Id = this.$route.query.Id
|
||||||
param.DepartmentId = this.employmentForm.DepartmentId
|
param.DepartmentId = this.employmentForm.DepartmentId
|
||||||
param.DepartmentOther = this.employmentForm.DepartmentId === this.otherId ? this.employmentForm.DepartmentOther : ''
|
param.DepartmentOther = this.employmentForm.DepartmentId === this.otherId ? this.employmentForm.DepartmentOther : ''
|
||||||
|
@ -387,9 +385,9 @@ export default {
|
||||||
param.RankId = this.employmentForm.RankId
|
param.RankId = this.employmentForm.RankId
|
||||||
param.RankOther = this.employmentForm.RankId === this.otherId ? this.employmentForm.RankOther : ''
|
param.RankOther = this.employmentForm.RankId === this.otherId ? this.employmentForm.RankOther : ''
|
||||||
param.RankOtherCN = this.employmentForm.RankId === this.otherId ? this.employmentForm.RankOtherCN : ''
|
param.RankOtherCN = this.employmentForm.RankId === this.otherId ? this.employmentForm.RankOtherCN : ''
|
||||||
param.PhysicianId = this.employmentForm.PhysicianId
|
// param.PhysicianId = this.employmentForm.PhysicianId
|
||||||
param.Physician = o.label !== '其它' && o.label !== 'Other' ? o.raw.Value : this.employmentForm.Physician
|
// param.Physician = o.label !== '其它' && o.label !== 'Other' ? o.raw.Value : this.employmentForm.Physician
|
||||||
param.PhysicianCN = o.label !== '其它' && o.label !== 'Other' ? o.raw.ValueCN : this.employmentForm.PhysicianCN
|
// param.PhysicianCN = o.label !== '其它' && o.label !== 'Other' ? o.raw.ValueCN : this.employmentForm.PhysicianCN
|
||||||
param.PositionId = this.employmentForm.PositionId
|
param.PositionId = this.employmentForm.PositionId
|
||||||
param.PositionOther = this.employmentForm.PositionId === this.otherId ? this.employmentForm.PositionOther : ''
|
param.PositionOther = this.employmentForm.PositionId === this.otherId ? this.employmentForm.PositionOther : ''
|
||||||
param.PositionOtherCN = this.employmentForm.PositionId === this.otherId ? this.employmentForm.PositionOtherCN : ''
|
param.PositionOtherCN = this.employmentForm.PositionId === this.otherId ? this.employmentForm.PositionOtherCN : ''
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="gcp-container">
|
<div class="gcp-container">
|
||||||
<el-radio-group v-model="GCP" style="margin-bottom:20px">
|
<el-radio-group v-model="GCP" style="margin-bottom:20px">
|
||||||
<el-radio :label="1">Yes</el-radio>
|
<el-radio :label="1">{{ $t('system:GcpCertificate:radio:Yes') }}</el-radio>
|
||||||
<el-radio :label="0">No</el-radio>
|
<el-radio :label="0">{{ $t('system:GcpCertificate:radio:No') }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<div v-if="GCP" class="upload-container">
|
<div v-if="GCP" class="upload-container">
|
||||||
<!-- <upload-file :doctor-id="doctorId" type="GCP" />-->
|
<!-- <upload-file :doctor-id="doctorId" type="GCP" />-->
|
||||||
|
@ -19,13 +19,13 @@
|
||||||
:on-exceed="handleExceed"
|
:on-exceed="handleExceed"
|
||||||
accept=".pdf"
|
accept=".pdf"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :loading="btnDisabled">Upload</el-button>
|
<el-button size="small" type="primary" :loading="btnDisabled">{{ $t('system:GcpCertificate:upload:Upload') }}</el-button>
|
||||||
<span slot="tip" style="margin-left:10px;" class="el-upload__tip">(must be in pdf format)</span>
|
<span slot="tip" style="margin-left:10px;" class="el-upload__tip">{{ $t('system:GcpCertificate:tap:must') }}</span>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button :loading="saveBtnLoading" :disabled="(fileList.length === 0 && GCP === 1)" type="primary" size="small" style="margin-top:20px" @click="handleSaveGCP">
|
<el-button :loading="saveBtnLoading" :disabled="(fileList.length === 0 && GCP === 1)" type="primary" size="small" style="margin-top:20px" @click="handleSaveGCP">
|
||||||
Save
|
{{ $t('common:button:save') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -97,6 +97,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
initFileList() {
|
initFileList() {
|
||||||
|
if(!this.doctorId) return
|
||||||
getAttachmentByType(this.doctorId, 'GCP')
|
getAttachmentByType(this.doctorId, 'GCP')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
|
@ -181,7 +182,7 @@ export default {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.GCPID = ''
|
this.GCPID = ''
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="form-container" style="width:80%;">
|
<div class="form-container" style="width:80%;">
|
||||||
<el-form ref="researchForm" v-loading="loading" label-width="140px" :model="researchForm" size="small">
|
<el-form ref="researchForm" v-loading="loading" label-width="140px" :model="researchForm" size="small">
|
||||||
<el-form-item label="Field of Research: ">
|
<el-form-item :label="$t('system:reviewer:label:Field of Research')">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Research" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Research" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Grants: ">
|
<el-form-item :label="$t('system:reviewer:label:Grants')">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Grants" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Grants" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Publications: ">
|
<el-form-item :label="$t('system:reviewer:label:Publications')">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Publications" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.Publications" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Awards & Honors: ">
|
<el-form-item :label="$t('system:reviewer:label:Awards & Honors')">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.AwardsHonors" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
<el-input :disabled="$route.query.ReviewStatus === '1'" v-model="researchForm.AwardsHonors" type="textarea" rows="5" placeholder="Please specify in English" size="small" />
|
||||||
|
@ -42,7 +42,8 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button :disabled="$route.query.ReviewStatus === '1'" type="primary" :loading="isDisabled" @click="handleSave">Save</el-button>
|
<el-button :disabled="$route.query.ReviewStatus === '1'" type="primary" :loading="isDisabled" @click="handleSave">
|
||||||
|
{{ $t('common:button:save') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="resumes-container">
|
<div v-loading="loading" class="resumes-container">
|
||||||
<div class="resume-content">
|
<div class="resume-content">
|
||||||
<p>Resume</p>
|
<p>{{ $t('system:Resumes:title:Resume') }}</p>
|
||||||
<div class="upload-content">
|
<div class="upload-content">
|
||||||
<!-- <upload-files ref="uploadResume" :doctor-id="doctorId" :data-list="resumeList" :language="2" btn-name="Upload(English)" type="Resume" accept=".doc, .docx" @getFileList="getFileList" /> -->
|
<!-- <upload-files ref="uploadResume" :doctor-id="doctorId" :data-list="resumeList" :language="2" btn-name="Upload(English)" type="Resume" accept=".doc, .docx" @getFileList="getFileList" /> -->
|
||||||
<div class="uploadFile-container">
|
<div class="uploadFile-container">
|
||||||
|
@ -14,21 +14,21 @@
|
||||||
:file-list="resumeList"
|
:file-list="resumeList"
|
||||||
accept=".doc,.docx"
|
accept=".doc,.docx"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'">Upload</el-button>
|
<el-button size="small" type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'">{{ $t('system:GcpCertificate:upload:Upload') }}</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>(must be in doc,docx format)</p>
|
<p>{{ $t('system:GcpCertificate:tap:must') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="resumeTbl">
|
<div class="resumeTbl">
|
||||||
<el-table :data="resumeListEN" size="small">
|
<el-table :data="resumeListEN" size="small">
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="FileName" label="Resume" width="180" show-overflow-tooltip />
|
<el-table-column prop="FileName" :label="$t('system:Resumes:table:Resume')" width="180" show-overflow-tooltip />
|
||||||
<el-table-column prop="CreateTime" label="Upload Time" width="150" show-overflow-tooltip />
|
<el-table-column prop="CreateTime" :label="$t('system:Resumes:table:Upload Time')" width="150" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsOfficial"
|
prop="IsOfficial"
|
||||||
label="Official"
|
:label="$t('system:Resumes:table:Official')"
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Language"
|
prop="Language"
|
||||||
label="Language"
|
:label="$t('system:Resumes:table:Language')"
|
||||||
width="100"
|
width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -46,23 +46,23 @@
|
||||||
<!-- <el-button size="small" type="text" @click="handleLanguageClick(scope.row)">{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'Setting' }}</el-button> -->
|
<!-- <el-button size="small" type="text" @click="handleLanguageClick(scope.row)">{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'Setting' }}</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Action" width="400">
|
<el-table-column :label="$t('common:action:action')" width="400">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="handlePreview(scope.row)">Download</el-button>
|
<el-button type="text" size="small" @click="handlePreview(scope.row)">{{ $t('common:button:download') }}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">Delete</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">{{ $t('common:button:delete') }}</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="scope.row.IsOfficial || $route.query.ReviewStatus === '1'"
|
:disabled="scope.row.IsOfficial || $route.query.ReviewStatus === '1'"
|
||||||
@click="handleSetOfiical(scope.row)"
|
@click="handleSetOfiical(scope.row)"
|
||||||
>Set as Official</el-button>
|
>{{ $t('system:Resumes:button:Set as Official') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="resume-content" style="margin-top:10px;">
|
<div class="resume-content" style="margin-top:10px;">
|
||||||
<p>中文简历</p>
|
<p>{{ $t('system:Resumes:title:ResumeCN') }}</p>
|
||||||
<div class="upload-content">
|
<div class="upload-content">
|
||||||
<div class="uploadFile-container">
|
<div class="uploadFile-container">
|
||||||
<el-upload
|
<el-upload
|
||||||
|
@ -74,20 +74,20 @@
|
||||||
:file-list="resumeList"
|
:file-list="resumeList"
|
||||||
accept=".doc, .docx"
|
accept=".doc, .docx"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'">上传</el-button>
|
<el-button size="small" type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'">{{ $t('system:GcpCertificate:upload:Upload') }}</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>(必须是 doc,docx 格式)</p>
|
<p>{{ $t('system:GcpCertificate:tap:must') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="resumeTbl">
|
<div class="resumeTbl">
|
||||||
<el-table :data="resumeListCN" size="small">
|
<el-table :data="resumeListCN" size="small">
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="FileName" label="Resume" width="180" show-overflow-tooltip />
|
<el-table-column prop="FileName" :label="$t('system:Resumes:table:Resume')" width="180" show-overflow-tooltip />
|
||||||
<el-table-column prop="CreateTime" label="Upload Time" width="150" show-overflow-tooltip />
|
<el-table-column prop="CreateTime" :label="$t('system:Resumes:table:Upload Time')" width="150" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsOfficial"
|
prop="IsOfficial"
|
||||||
label="Official"
|
:label="$t('system:Resumes:table:Official')"
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Language"
|
prop="Language"
|
||||||
label="Language"
|
:label="$t('system:Resumes:table:Language')"
|
||||||
width="100"
|
width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -105,16 +105,16 @@
|
||||||
<!-- <el-button size="small" type="text" @click="handleLanguageClick(scope.row)">{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'Setting' }}</el-button> -->
|
<!-- <el-button size="small" type="text" @click="handleLanguageClick(scope.row)">{{ scope.row.Language===1?'CH':scope.row.Language===2?'EN':'Setting' }}</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Action" width="400">
|
<el-table-column :label="$t('common:action:action')" width="400">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="handlePreview(scope.row)">Download</el-button>
|
<el-button type="text" size="small" @click="handlePreview(scope.row)">{{ $t('common:button:download') }}</el-button>
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">Delete</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleRemoveFile(scope.row)">{{ $t('common:button:delete') }}</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="scope.row.IsOfficial"
|
:disabled="scope.row.IsOfficial || $route.query.ReviewStatus === '1'"
|
||||||
@click="handleSetOfiical(scope.row)"
|
@click="handleSetOfiical(scope.row)"
|
||||||
>Set as Official</el-button>
|
>{{ $t('system:Resumes:button:Set as Official') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -163,6 +163,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
if(!this.doctorId) return
|
||||||
this.getResumeList()
|
this.getResumeList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -266,11 +267,10 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleRemoveFile(row) {
|
handleRemoveFile(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteAttachment(row.Id, row.Path)
|
deleteAttachment(row.Id, row.Path)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
@ -278,7 +278,7 @@ export default {
|
||||||
this.resumeList.splice(this.resumeList.findIndex(item => item.Id === row.Id), 1)
|
this.resumeList.splice(this.resumeList.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.filterByLanguage()
|
this.filterByLanguage()
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,68 +2,68 @@
|
||||||
<div v-loading="loading" class="check-container form-container">
|
<div v-loading="loading" class="check-container form-container">
|
||||||
<el-form ref="checkForm" :model="checkForm" label-width="200px" size="small" :rules="rules">
|
<el-form ref="checkForm" :model="checkForm" label-width="200px" size="small" :rules="rules">
|
||||||
<div class="title-wrapper">
|
<div class="title-wrapper">
|
||||||
<p>盲化信息</p>
|
<p>{{$t('system:Setting:title:Blinded information') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="check-content">
|
<div class="check-content">
|
||||||
<el-form-item label="Blind Name" prop="BlindName">
|
<el-form-item :label="$t('system:Setting:label:Blind Name')" prop="BlindName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="checkForm.BlindName"
|
v-model="checkForm.BlindName"
|
||||||
style="width:300px"
|
style="width:300px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Blind NameCN" prop="BlindNameCN">
|
<el-form-item :label="$t('system:Setting:label:Blind NameCN')" prop="BlindNameCN">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="checkForm.BlindNameCN"
|
v-model="checkForm.BlindNameCN"
|
||||||
style="width:300px"
|
style="width:300px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Blind Publications" prop="BlindPublications">
|
<el-form-item :label="$t('system:Setting:label:Blind Publications')" prop="BlindPublications">
|
||||||
<el-input v-model="checkForm.BlindPublications" type="textarea" rows="8" style="width:60%;" size="small" />
|
<el-input v-model="checkForm.BlindPublications" type="textarea" rows="8" style="width:60%;" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="title-wrapper">
|
<div class="title-wrapper">
|
||||||
<p>Setting</p>
|
<p>{{$t('system:Setting:title:Blinded Setting') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="check-content">
|
<div class="check-content">
|
||||||
<el-form-item label="Information Confirmed?">
|
<el-form-item :label="$t('system:Setting:label:Information Confirmed?')">
|
||||||
<el-radio-group v-model="checkForm.ReviewStatus" @change="handleChange">
|
<el-radio-group v-model="checkForm.ReviewStatus" @change="handleChange">
|
||||||
<el-radio :label="1">Yes</el-radio>
|
<el-radio :label="1">{{$t('system:Setting:label:Information Confirmed?:Yes')}}</el-radio>
|
||||||
<el-radio :label="2">No</el-radio>
|
<el-radio :label="2">{{$t('system:Setting:label:Information Confirmed?:No')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Contractor Status?">
|
<el-form-item :label="$t('system:Setting:label:Contractor Status?')">
|
||||||
<el-radio-group v-model="checkForm.CooperateStatus" @change="handleChange">
|
<el-radio-group v-model="checkForm.CooperateStatus" @change="handleChange">
|
||||||
<el-radio :label="1">Yes</el-radio>
|
<el-radio :label="1">{{$t('system:Setting:label:Information Confirmed?:Yes')}}</el-radio>
|
||||||
<el-radio :label="2">No</el-radio>
|
<el-radio :label="2">{{$t('system:Setting:label:Information Confirmed?:No')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Accepting New Trials?">
|
<el-form-item :label="$t('system:Setting:label:Accepting New Trials?')">
|
||||||
<el-radio-group v-model="checkForm.AcceptingNewTrial" :disabled="radioDisabled">
|
<el-radio-group v-model="checkForm.AcceptingNewTrial" :disabled="radioDisabled">
|
||||||
<el-radio :label="true">Yes</el-radio>
|
<el-radio :label="true">{{$t('system:Setting:label:Information Confirmed?:Yes')}}</el-radio>
|
||||||
<el-radio :label="false">No</el-radio>
|
<el-radio :label="false">{{$t('system:Setting:label:Information Confirmed?:No')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Actively Reading?">
|
<el-form-item :label="$t('system:Setting:label:Actively Reading?')">
|
||||||
<el-radio-group v-model="checkForm.ActivelyReading" :disabled="radioDisabled">
|
<el-radio-group v-model="checkForm.ActivelyReading" :disabled="radioDisabled">
|
||||||
<el-radio :label="true">Yes</el-radio>
|
<el-radio :label="true">{{$t('system:Setting:label:Information Confirmed?:Yes')}}</el-radio>
|
||||||
<el-radio :label="false">No</el-radio>
|
<el-radio :label="false">{{$t('system:Setting:label:Information Confirmed?:No')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Is Virtual?">
|
<el-form-item :label="$t('system:Setting:label:Is Virtual?')">
|
||||||
<el-radio-group v-model="checkForm.IsVirtual" :disabled="radioDisabled">
|
<el-radio-group v-model="checkForm.IsVirtual" :disabled="radioDisabled">
|
||||||
<el-radio :label="true">Yes</el-radio>
|
<el-radio :label="true">{{$t('system:Setting:label:Information Confirmed?:Yes')}}</el-radio>
|
||||||
<el-radio :label="false">No</el-radio>
|
<el-radio :label="false">{{$t('system:Setting:label:Information Confirmed?:No')}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="On Vacation: ">
|
<el-form-item :label="$t('system:Setting:label:On Vacation:')">
|
||||||
<span style="font-size:12px;margin-right:20px;">{{ checkForm.InHoliday }}</span>
|
<span style="font-size:12px;margin-right:20px;">{{ checkForm.InHoliday }}</span>
|
||||||
<el-button type="text" @click="handleView">Planned Vacation</el-button>
|
<el-button type="text" @click="handleView">{{ $t('system:Setting:Planned Vacation') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Comment: " prop="AdminComment">
|
<el-form-item :label="$t('system:Setting:label:Comment:')" prop="AdminComment">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="checkForm.AdminComment"
|
v-model="checkForm.AdminComment"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
|
@ -73,12 +73,12 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item style="margin-top:20px">
|
<el-form-item style="margin-top:20px">
|
||||||
<el-button type="primary" :disabled="isDisabled" @click="handleSave">Save</el-button>
|
<el-button type="primary" :disabled="isDisabled" @click="handleSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="Vacation"
|
:title="$t('system:Setting:title:Vacation')"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="50%"
|
width="50%"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
@ -87,37 +87,38 @@
|
||||||
<div>
|
<div>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="daterange"
|
v-model="daterange"
|
||||||
|
style="width: 360px"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
format="yyyy-MM-dd"
|
format="yyyy-MM-dd"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
range-separator="to"
|
range-separator="to"
|
||||||
start-placeholder="Beginning Date"
|
:start-placeholder="$t('system:Setting:label:Beginning Date')"
|
||||||
end-placeholder="End Date"
|
:end-placeholder="$t('system:Setting:label:End Date')"
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
<el-button style="margin-left:10px;" type="primary" size="small" @click="handleAddHoliday">Add</el-button>
|
<el-button style="margin-left:10px;" type="primary" size="small" @click="handleAddHoliday">{{ $t('common:button:add') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table v-loading="loading2" :data="gridData" size="small">
|
<el-table v-loading="loading2" :data="gridData" size="small">
|
||||||
<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('system:Setting:table:Beginning Date')"
|
||||||
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('system:Setting:table:End Date')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
:formatter="endTimeFormatter"
|
:formatter="endTimeFormatter"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" fixed="right" min-width="200">
|
<el-table-column :label="$t('common:action:action')" fixed="right" min-width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
<el-button type="text" @click="handleDelete(scope.row)">{{ $t('common:button:delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="pagination">
|
<div class="pagination" style="padding: 10px 0;text-align: right">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
background
|
background
|
||||||
layout="total,sizes,prev, pager, next"
|
layout="total,sizes,prev, pager, next"
|
||||||
|
@ -165,7 +166,6 @@ export default {
|
||||||
rules: {
|
rules: {
|
||||||
AdminComment: [{ max: 500, message: 'The maximum length is 500' }],
|
AdminComment: [{ max: 500, message: 'The maximum length is 500' }],
|
||||||
BlindName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
BlindName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
BlindNameCN: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
|
||||||
},
|
},
|
||||||
doctorId: this.$route.query.Id,
|
doctorId: this.$route.query.Id,
|
||||||
isDisabled: false,
|
isDisabled: false,
|
||||||
|
@ -184,6 +184,7 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initForm() {
|
initForm() {
|
||||||
|
if (!this.doctorId) return
|
||||||
getAuditState(this.doctorId).then(res => {
|
getAuditState(this.doctorId).then(res => {
|
||||||
if (res.Result) {
|
if (res.Result) {
|
||||||
this.checkForm = res.Result
|
this.checkForm = res.Result
|
||||||
|
@ -204,7 +205,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
if (res.Result) { this.checkForm.Id = res.Result }
|
if (res.Result) { this.checkForm.Id = res.Result }
|
||||||
this.isDisabled = false
|
this.isDisabled = false
|
||||||
this.$message.success('Saved successfully')
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
@ -258,11 +259,9 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading2 = true
|
this.loading2 = true
|
||||||
|
@ -274,7 +273,7 @@ export default {
|
||||||
this.gridData.splice(index, 1)
|
this.gridData.splice(index, 1)
|
||||||
this.totalItems = this.totalItems - 1
|
this.totalItems = this.totalItems - 1
|
||||||
}
|
}
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
this.loading2 = false
|
this.loading2 = false
|
||||||
})
|
})
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Specialty: " prop="SpecialityId">
|
<el-form-item :label="$t('system:reviewer:label:Specialty')" prop="SpecialityId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="specialtyForm.SpecialityId"
|
v-model="specialtyForm.SpecialityId"
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Subspeciality: " prop="SubspecialityIds">
|
<el-form-item :label="$t('system:reviewer:label:Subspeciality')" prop="SubspecialityIds">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="specialtyForm.SubspecialityIds"
|
v-model="specialtyForm.SubspecialityIds"
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="Modality: " prop="ReadingTypeIds">
|
<el-form-item :label="$t('system:reviewer:label:Modality')" prop="ReadingTypeIds">
|
||||||
<el-select
|
<el-select
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
v-model="specialtyForm.ReadingTypeIds"
|
v-model="specialtyForm.ReadingTypeIds"
|
||||||
|
@ -171,7 +171,8 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'" size="small" @click="handleSave">Save</el-button>
|
<el-button type="primary" :disabled="isDisabled || $route.query.ReviewStatus === '1'" size="small" @click="handleSave">
|
||||||
|
{{ $t('common:button:save') }}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<div class="title-wrapper">
|
<div class="title-wrapper">
|
||||||
<p>Clinical Trial Experience</p>
|
<p>{{$t('system:TrialExperience:title:Clinical Trial Experience')}}</p>
|
||||||
<el-button :disabled="$route.query.ReviewStatus === '1'" class="add" size="small" @click="handleAddClinicalTrial">Add</el-button>
|
<el-button :disabled="$route.query.ReviewStatus === '1'" class="add" size="small" @click="handleAddClinicalTrial">{{$t('common:button:add')}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding:0 40px;">
|
<div style="padding:0 40px;">
|
||||||
<el-table
|
<el-table
|
||||||
|
@ -13,36 +13,37 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="Phase" label="Phase" min-width="50" />
|
<el-table-column prop="Phase" :label="$t('system:TrialExperience:title:Phase')" min-width="50" />
|
||||||
<el-table-column prop="EvaluationCriteriaList" label="Review Criteria" min-width="100">
|
<el-table-column prop="EvaluationCriteriaList" :label="$t('system:TrialExperience:title:Review Criteria')" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.EvaluationCriteriaList.length>0? scope.row.EvaluationCriteriaList.join(', '):'' }}
|
{{ scope.row.EvaluationCriteriaList.length>0? scope.row.EvaluationCriteriaList.join(', '):'' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="EvaluationCriteriaList" label="Starting And Ending Date" min-width="100">
|
<el-table-column prop="EvaluationCriteriaList" :label="$t('system:TrialExperience:title:Starting And Ending Date')" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.StartTime">{{ scope.row.StartTime.split('-')[0] }}-{{scope.row.EndTime ? scope.row.EndTime.split('-')[0] : '至今'}}</span>
|
<span v-if="scope.row.StartTime">{{ scope.row.StartTime.split('-')[0] }}-{{scope.row.EndTime ? scope.row.EndTime.split('-')[0] : '至今'}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="VisitReadingCount" label="Visit Reading Count" min-width="70" />
|
<el-table-column prop="VisitReadingCount" :label="$t('system:TrialExperience:title:Visit Reading Count')" min-width="70" />
|
||||||
<el-table-column prop="EvaluationContent" label="Indication" min-width="70" />
|
<el-table-column prop="EvaluationContent" :label="$t('system:TrialExperience:Indication')" min-width="70" />
|
||||||
<el-table-column label="Operation" min-width="200">
|
<el-table-column :label="$t('system:TrialExperience:Operation')" min-width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEdit(scope.row)">Edit</el-button>
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleEdit(scope.row)">
|
||||||
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleDel(scope.row)">Delete</el-button>
|
{{ $t('common:button:edit') }}</el-button>
|
||||||
|
<el-button type="text" size="small" :disabled="$route.query.ReviewStatus === '1'" @click="handleDel(scope.row)">{{ $t('common:button:delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="title-wrapper" style="margin-top:10px;">
|
<div class="title-wrapper" style="margin-top:10px;">
|
||||||
<p>GCP Certificate</p>
|
<p>{{$t('system:TrialExperience:title:GCP Certificate')}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-left:40px;width:40%">
|
<div style="margin-left:40px;width:40%">
|
||||||
<gcp-certificate :doctor-id="doctorId" :gcp="GCP" :gcp-id="GCPID" />
|
<gcp-certificate :doctor-id="doctorId" :gcp="GCP" :gcp-id="GCPID" />
|
||||||
</div>
|
</div>
|
||||||
<div class="title-wrapper" style="margin-top:10px;">
|
<div class="title-wrapper" style="margin-top:10px;">
|
||||||
<p>Other Relevant Experience</p>
|
<p>{{$t('system:TrialExperience:title:Other Relevant Experience')}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding:0 40px;">
|
<div style="padding:0 40px;">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
|
@ -59,7 +60,8 @@
|
||||||
<el-input v-model="OtherClinicalExperienceCN" :disabled="$route.query.ReviewStatus === '1'" type="textarea" rows="5" placeholder="请用中文注明" size="small" />
|
<el-input v-model="OtherClinicalExperienceCN" :disabled="$route.query.ReviewStatus === '1'" type="textarea" rows="5" placeholder="请用中文注明" size="small" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-button type="primary" size="small" style="margin-top:20px" :disabled="isBtnDisabled || $route.query.ReviewStatus === '1'" @click="handleSaveOtherClinical">Save</el-button>
|
<el-button type="primary" size="small" style="margin-top:20px" :disabled="isBtnDisabled || $route.query.ReviewStatus === '1'" @click="handleSaveOtherClinical">
|
||||||
|
{{ $t('common:button:save') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-if="clinicalTrialDialogVisible" :title="clinicalTrialDialogTitle" :visible.sync="clinicalTrialDialogVisible" width="480px" :close-on-click-modal="false">
|
<el-dialog v-if="clinicalTrialDialogVisible" :title="clinicalTrialDialogTitle" :visible.sync="clinicalTrialDialogVisible" width="480px" :close-on-click-modal="false">
|
||||||
<el-form
|
<el-form
|
||||||
|
@ -70,8 +72,8 @@
|
||||||
:model="clinicalTrialForm"
|
:model="clinicalTrialForm"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form-item label="Phase" prop="PhaseId">
|
<el-form-item :label="$t('system:TrialExperience:label:Phase')" prop="PhaseId">
|
||||||
<el-select v-model="clinicalTrialForm.PhaseId" placeholder="Please select">
|
<el-select v-model="clinicalTrialForm.PhaseId">
|
||||||
<!-- <el-option
|
<!-- <el-option
|
||||||
v-for="(key,value) of dictionaryList.Phase"
|
v-for="(key,value) of dictionaryList.Phase"
|
||||||
:key="value"
|
:key="value"
|
||||||
|
@ -86,10 +88,9 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Review Criteria" prop="EvaluationCriteriaIdList">
|
<el-form-item :label="$t('system:TrialExperience:label:Review Criteria')" prop="EvaluationCriteriaIdList">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
||||||
placeholder="Please select"
|
|
||||||
multiple
|
multiple
|
||||||
>
|
>
|
||||||
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
|
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
|
||||||
|
@ -101,29 +102,29 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Start Time" prop="StartTime">
|
<el-form-item :label="$t('system:TrialExperience:label:Start Time')" prop="StartTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="clinicalTrialForm.StartTime"
|
v-model="clinicalTrialForm.StartTime"
|
||||||
type="year"
|
type="year"
|
||||||
placeholder="Select Start Time">
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="End Time" prop="EndTime">
|
<el-form-item :label="$t('system:TrialExperience:label:End Time')" prop="EndTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="clinicalTrialForm.EndTime"
|
v-model="clinicalTrialForm.EndTime"
|
||||||
type="year"
|
type="year"
|
||||||
placeholder="Select End Time">
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Visit Reading Count" prop="VisitReadingCount">
|
<el-form-item :label="$t('system:TrialExperience:Visit Reading Count')" prop="VisitReadingCount">
|
||||||
<el-input style="width: 100%" oninput="value=value.replace(/[^\d]/g,'')" v-model="clinicalTrialForm.VisitReadingCount" controls-position="right" :min="0" />
|
<el-input style="width: 100%" oninput="value=value.replace(/[^\d]/g,'')" v-model="clinicalTrialForm.VisitReadingCount" controls-position="right" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Indication" prop="EvaluationContent">
|
<el-form-item :label="$t('system:TrialExperience:Indication')" prop="EvaluationContent">
|
||||||
<el-input v-model="clinicalTrialForm.EvaluationContent" />
|
<el-input v-model="clinicalTrialForm.EvaluationContent" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" size="small" :loading="isDisabled" @click="handleSave">Save</el-button>
|
<el-button type="primary" size="small" :loading="isDisabled" @click="handleSave">{{ $t('common:button:save') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
@ -265,8 +266,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteTrialExperience(row.Id)
|
deleteTrialExperience(row.Id)
|
||||||
|
|
|
@ -1,39 +1,34 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-tabs v-model="active" @tab-click="clickTab">
|
<el-tabs v-model="active" @tab-click="clickTab">
|
||||||
<el-tab-pane label="Basic Info" name="BasicInfo">
|
<el-tab-pane :label="$t('system:reviewer:tab:BasicInfo')" name="BasicInfo">
|
||||||
<basic-info v-if="load.BasicInfo" />
|
<basic-info v-if="load.BasicInfo" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Employment" name="Employment">
|
<el-tab-pane :label="$t('system:reviewer:tab:Employment')" name="Employment">
|
||||||
|
|
||||||
<Employment v-if="load.Employment" />
|
<Employment v-if="load.Employment" />
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Specialty" name="Specialty">
|
<el-tab-pane :label="$t('system:reviewer:tab:Specialty')" name="Specialty">
|
||||||
|
|
||||||
<specialty v-if="load.Specialty" />
|
<specialty v-if="load.Specialty" />
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
<el-tab-pane :label="$t('system:reviewer:tab:Education&Training')" name="EducationTraining">
|
||||||
<el-tab-pane label="Education & Training" name="EducationTraining">
|
|
||||||
<education-training v-if="load.EducationTraining" />
|
<education-training v-if="load.EducationTraining" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Research & Publication" name="ResearchPublication">
|
<el-tab-pane :label="$t('system:reviewer:tab:Research&Publication')" name="ResearchPublication">
|
||||||
<research-publication v-if="load.ResearchPublication" />
|
<research-publication v-if="load.ResearchPublication" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Trial Experience" name="TrialExperience">
|
<el-tab-pane :label="$t('system:reviewer:tab:TrialExperience')" name="TrialExperience">
|
||||||
<trial-experience v-if="load.TrialExperience" />
|
<trial-experience v-if="load.TrialExperience" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Credentials" name="Credentials">
|
<el-tab-pane :label="$t('system:reviewer:tab:Credentials')" name="Credentials">
|
||||||
<Credentials v-if="load.Credentials" />
|
<Credentials v-if="load.Credentials" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Resumes" name="Resumes">
|
<el-tab-pane :label="$t('system:reviewer:tab:Resumes')" name="Resumes">
|
||||||
<Resumes v-if="load.Resumes" />
|
<Resumes v-if="load.Resumes" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Agreements" name="Agreements">
|
<el-tab-pane :label="$t('system:reviewer:tab:Agreements')" name="Agreements">
|
||||||
<Agreements v-if="load.Agreements" />
|
<Agreements v-if="load.Agreements" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="Setting" name="Setting">
|
<el-tab-pane :label="$t('system:reviewer:tab:Setting')" name="Setting">
|
||||||
<Setting v-if="load.Setting" />
|
<Setting v-if="load.Setting" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<div class="base-search-form">
|
<div class="base-search-form">
|
||||||
<el-form size="small" :inline="true">
|
<el-form size="small" :inline="true">
|
||||||
<el-form-item label="Name:">
|
<el-form-item :label="$t('reviewers-list:label:Name')">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchData.Name"
|
v-model="searchData.Name"
|
||||||
style="width:100px;"
|
style="width:100px;"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Modality:">
|
<el-form-item :label="$t('reviewers-list:label:Modality')">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchData.ReadingTypeIdList"
|
v-model="searchData.ReadingTypeIdList"
|
||||||
clearable
|
clearable
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Subspeciality:">
|
<el-form-item :label="$t('reviewers-list:label:Subspeciality')">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchData.SubspecialityIdList"
|
v-model="searchData.SubspecialityIdList"
|
||||||
multiple
|
multiple
|
||||||
|
@ -50,271 +50,36 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<!-- <el-button type="text" @click="handleMore">More</el-button> -->
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">{{ $t('common:button:search') }}</el-button>
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">{{ $t('common:button:reset') }}</el-button>
|
||||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">Reset</el-button>
|
|
||||||
<el-button
|
<el-button
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
type="primary"
|
type="primary"
|
||||||
:disabled="!(selectArr.length>0)"
|
:disabled="!(selectArr.length>0)"
|
||||||
@click="handleDownLoadOffical"
|
@click="handleDownLoadOffical"
|
||||||
>Download CV</el-button>
|
>{{$t('reviewers-list:label:DownloadCV')}}</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-link"
|
icon="el-icon-link"
|
||||||
@click="showResearchLink"
|
@click="showResearchLink"
|
||||||
>
|
>
|
||||||
采集链接
|
{{$t('reviewers-list:label:showResearchLink')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-switch
|
<!-- <el-switch-->
|
||||||
v-model="isEN"
|
<!-- v-model="isEN"-->
|
||||||
active-text="EN"
|
<!-- active-text="EN"-->
|
||||||
inactive-text="中文"
|
<!-- inactive-text="中文"-->
|
||||||
style="margin-right:10px;"
|
<!-- style="margin-right:10px;"-->
|
||||||
@change="handleIsEnChange"
|
<!-- @change="handleIsEnChange"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-button size="small" icon="el-icon-plus" type="primary" @click="handleNew">New</el-button>
|
<el-button size="small" icon="el-icon-plus" type="primary" @click="handleNew">{{$t('common:button:new')}}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 更多搜索条件 -->
|
|
||||||
<el-drawer
|
|
||||||
:visible.sync="isShow"
|
|
||||||
:with-header="false"
|
|
||||||
size="410px"
|
|
||||||
>
|
|
||||||
<div style="padding:10px;">
|
|
||||||
<el-form label-width="160px" size="mini">
|
|
||||||
<el-form-item label="Name">
|
|
||||||
<el-input
|
|
||||||
v-model="searchData.Name"
|
|
||||||
placeholder="Name"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Modality">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.ReadingTypeIdList"
|
|
||||||
placeholder="Modality"
|
|
||||||
clearable
|
|
||||||
multiple
|
|
||||||
style="width:100%;"
|
|
||||||
>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="(key,value) of dictionaryList.ReadingType"
|
|
||||||
:key="key"
|
|
||||||
:label="key"
|
|
||||||
:value="value"
|
|
||||||
/> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.ReadingType"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Subspeciality">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.SubspecialityIdList"
|
|
||||||
placeholder="Subspeciality"
|
|
||||||
multiple
|
|
||||||
clearable
|
|
||||||
style="width:100%;"
|
|
||||||
>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="(key,value) of dictionaryList.Subspeciality"
|
|
||||||
:key="key"
|
|
||||||
:label="key"
|
|
||||||
:value="value"
|
|
||||||
/> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.Subspeciality"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Department">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.DepartmentId"
|
|
||||||
placeholder="Department"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="(key,value) of dictionaryList.Department"
|
|
||||||
:key="key"
|
|
||||||
:label="key"
|
|
||||||
:value="value"
|
|
||||||
/> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.Department"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Rank">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.RankId"
|
|
||||||
placeholder="Rank"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="(key,value) of dictionaryList.Rank"
|
|
||||||
:key="key"
|
|
||||||
:label="key"
|
|
||||||
:value="value"
|
|
||||||
/> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.Rank"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Position">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.PositionId"
|
|
||||||
placeholder="Position"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="(key,value) of dictionaryList.Position"
|
|
||||||
:key="key"
|
|
||||||
:label="key"
|
|
||||||
:value="value"
|
|
||||||
/> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.Position"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Institution">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.HospitalId"
|
|
||||||
placeholder="Institution"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="(item,index) in hospitalList"
|
|
||||||
:key="index"
|
|
||||||
:label="item.HospitalName"
|
|
||||||
:value="item.Id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Review Criteria">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.EvaluationCriteriaIdList"
|
|
||||||
placeholder="Please select"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
multiple
|
|
||||||
>
|
|
||||||
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="key" :label="key" :value="value" /> -->
|
|
||||||
<el-option
|
|
||||||
v-for="item of dict.type.ReadingStandard"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Enrollment">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.EnrollStatus"
|
|
||||||
placeholder="Enrollment"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option key="2" label="Yes" :value="2" />
|
|
||||||
<el-option key="1" label="No" :value="1" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Information Confirmed">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.InformationConfirmed"
|
|
||||||
placeholder="Information Confirmed"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option key="1" label="Yes" :value="1" />
|
|
||||||
<el-option key="2" label="No" :value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="Contractor Status">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.ContractorStatus"
|
|
||||||
placeholder="Contractor Status"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option key="1" label="Yes" :value="1" />
|
|
||||||
<el-option key="2" label="No" :value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="Accepting New Trials">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.AcceptingNewTrial"
|
|
||||||
placeholder="Accepting New Trials"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option key="2" label="Yes" :value="true" />
|
|
||||||
<el-option key="1" label="No" :value="false" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="Actively Reading">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.ActivelyReading"
|
|
||||||
placeholder="Actively Reading"
|
|
||||||
style="width:100%;"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option key="2" label="Yes" :value="true" />
|
|
||||||
<el-option key="1" label="No" :value="false" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="Payment Type: ">
|
|
||||||
<el-select
|
|
||||||
v-model="searchData.Nation"
|
|
||||||
clearable
|
|
||||||
style="width:100%;"
|
|
||||||
>
|
|
||||||
<el-option v-for="item of $d.AttendedReviewerType" :value="item.value" :label="item.label" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item>
|
|
||||||
<el-button type="primary" @click="handleSelectSearch">Search</el-button>
|
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
|
||||||
<el-button type="primary" @click="isShow=false">Back</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
</el-drawer>
|
|
||||||
|
|
||||||
<!-- 医生列表 -->
|
<!-- 医生列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-adaptive="{bottomOffset:55}"
|
v-adaptive="{bottomOffset:55}"
|
||||||
|
@ -330,7 +95,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="left"
|
align="left"
|
||||||
prop="LastName"
|
prop="LastName"
|
||||||
label="Name"
|
:label="$t('reviewers-list:table:Name')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
width="130"
|
width="130"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -341,15 +106,15 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ChineseName"
|
prop="ChineseName"
|
||||||
label="Name CN"
|
:label="$t('reviewers-list:table:NameCN')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
width="90"
|
width="90"
|
||||||
align="left"
|
align="left"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="ReviewerCode" label="ID" width="80" show-overflow-tooltip sortable="custom" />
|
<el-table-column prop="ReviewerCode" :label="$t('reviewers-list:table:ID')" width="80" show-overflow-tooltip sortable="custom" />
|
||||||
<el-table-column prop="AccountUserName" label="User Name" width="140" show-overflow-tooltip sortable="custom" />
|
<el-table-column prop="AccountUserName" :label="$t('reviewers-list:table:UserName')" width="140" show-overflow-tooltip sortable="custom" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="Reading"
|
:label="$t('reviewers-list:table:Reading')"
|
||||||
width="100"
|
width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -370,7 +135,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="Finished"
|
:label="$t('reviewers-list:table:Finished')"
|
||||||
width="100"
|
width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -393,7 +158,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="left"
|
align="left"
|
||||||
prop="SpecialityId"
|
prop="SpecialityId"
|
||||||
label="Specialty"
|
:label="$t('reviewers-list:table:Specialty')"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
width="130"
|
width="130"
|
||||||
|
@ -407,7 +172,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="left"
|
align="left"
|
||||||
prop="Subspeciality"
|
prop="Subspeciality"
|
||||||
label="Subspecialty"
|
:label="$t('reviewers-list:table:Subspecialty')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="150"
|
min-width="150"
|
||||||
>
|
>
|
||||||
|
@ -422,7 +187,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="HospitalName"
|
prop="HospitalName"
|
||||||
label="Institution"
|
:label="$t('reviewers-list:table:Institution')"
|
||||||
min-width="110"
|
min-width="110"
|
||||||
align="left"
|
align="left"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -436,7 +201,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="City"
|
prop="City"
|
||||||
label="Location"
|
:label="$t('reviewers-list:table:Location')"
|
||||||
width="110"
|
width="110"
|
||||||
align="left"
|
align="left"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -450,7 +215,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsVirtual"
|
prop="IsVirtual"
|
||||||
label="Virtual"
|
:label="$t('reviewers-list:table:Virtual')"
|
||||||
min-width="80"
|
min-width="80"
|
||||||
align="left"
|
align="left"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -464,7 +229,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ReviewStatus"
|
prop="ReviewStatus"
|
||||||
label="Confirmed"
|
:label="$t('reviewers-list:table:Confirmed')"
|
||||||
min-width="80"
|
min-width="80"
|
||||||
align="left"
|
align="left"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -476,27 +241,27 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Action" min-width="200" align="left" fixed="right">
|
<el-table-column :label="$t('common:action:action')" min-width="200" align="left" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
circle
|
circle
|
||||||
icon="el-icon-info"
|
icon="el-icon-info"
|
||||||
title="Detail"
|
:title="$t('reviewers-list:table:Detail')"
|
||||||
@click="handleDetail(scope.row)"
|
@click="handleDetail(scope.row)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
circle
|
circle
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
title="Edit"
|
:title="$t('reviewers-list:table:Edit')"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
circle
|
circle
|
||||||
title="盲态简历"
|
:title="$t('reviewers-list:table:Blind')"
|
||||||
@click="lookResumeInfo(scope.row)"
|
@click="lookResumeInfo(scope.row)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -515,13 +280,13 @@
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<div>
|
<div>
|
||||||
<i style="color:#428bca;" class="el-icon-success" />
|
<i style="color:#428bca;" class="el-icon-success" />
|
||||||
<span>成功创建分享链接</span>
|
<span>{{ $t('reviewers-list:message:msg1')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin:10px 0;">
|
<div style="margin:10px 0;">
|
||||||
<span style="">个人简历填写链接:</span><el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" v-model="shareLink" readonly style="width: 100%;margin-top: 10px" />
|
<span style="">{{ $t('reviewers-list:message:msg2') }}</span><el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" v-model="shareLink" readonly style="width: 100%;margin-top: 10px" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button type="primary" round @click="copyCode">复制链接</el-button>
|
<el-button type="primary" round @click="copyCode">{{ $t('reviewers-list:button:copyCode') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
|
@ -602,17 +367,20 @@ export default {
|
||||||
},
|
},
|
||||||
tokenKey: getToken(),
|
tokenKey: getToken(),
|
||||||
share_model: { visible: false, title: '', width: '500px' },
|
share_model: { visible: false, title: '', width: '500px' },
|
||||||
shareLink: null
|
shareLink: null,
|
||||||
|
isEnglish: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dicts: ['ReadingType', 'Subspeciality', 'Department', 'Rank', 'Position', 'ReadingStandard'],
|
dicts: ['ReadingType', 'Subspeciality', 'Department', 'Rank', 'Position', 'ReadingStandard'],
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['hospitalList', 'reviewersQuery', 'isEnglish'])
|
...mapGetters(['hospitalList', 'reviewersQuery'])
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.isEN = this.isEnglish
|
|
||||||
this.reviewersQuery ? this.listQuery = this.reviewersQuery : ''
|
this.reviewersQuery ? this.listQuery = this.reviewersQuery : ''
|
||||||
this.initPage()
|
this.initPage()
|
||||||
|
// this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
||||||
|
this.isEnglish = this.$i18n.locale === 'zh' ? false : true
|
||||||
|
this.isEN = this.isEnglish
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
copyCode() {
|
copyCode() {
|
||||||
|
@ -637,7 +405,7 @@ export default {
|
||||||
},
|
},
|
||||||
showResearchLink() {
|
showResearchLink() {
|
||||||
const trialId = this.trialId
|
const trialId = this.trialId
|
||||||
this.shareLink = `${location.protocol}//${location.host}/ReviewersResearch`
|
this.shareLink = `${location.protocol}//${location.host}/ReviewersResearch?lang=${this.$store.getters.language}`
|
||||||
this.share_model.visible = true
|
this.share_model.visible = true
|
||||||
},
|
},
|
||||||
lookResumeInfo(row) {
|
lookResumeInfo(row) {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue