Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/hir-web into main
commit
7a0a8bfa5c
|
@ -2,12 +2,10 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
|
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
|
||||||
|
|
||||||
import ElementUI, { MessageBox } from 'element-ui'
|
import ElementUI from 'element-ui'
|
||||||
import { getBasicDataAllSelect, getFrontInternationalizationList } from '@/api/dictionary/dictionary'
|
import { getBasicDataAllSelect, getFrontInternationalizationList } from '@/api/dictionary/dictionary'
|
||||||
// import 'element-ui/lib/theme-chalk/index.css'
|
|
||||||
import './assets/css/theme-blue/index.css' // 浅绿色主题
|
import './assets/css/theme-blue/index.css' // 浅绿色主题
|
||||||
import './assets/css/iconfont/index.css' // 阿里巴巴图标库
|
import './assets/css/iconfont/index.css' // 阿里巴巴图标库
|
||||||
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
|
|
||||||
import i18n from './lang'
|
import i18n from './lang'
|
||||||
import '@/styles/index.scss' // global css
|
import '@/styles/index.scss' // global css
|
||||||
|
|
||||||
|
@ -23,10 +21,7 @@ import '@/permission' // permission control
|
||||||
import md5 from 'js-md5'
|
import md5 from 'js-md5'
|
||||||
import VueClipboard from 'vue-clipboard2'
|
import VueClipboard from 'vue-clipboard2'
|
||||||
Vue.use(VueClipboard)
|
Vue.use(VueClipboard)
|
||||||
// import htmlToPdf from './utils/htmlToPdf'
|
|
||||||
// Vue.use(htmlToPdf)
|
|
||||||
import permission from './utils/permission'
|
import permission from './utils/permission'
|
||||||
import { OSSclient } from './utils/oss'
|
|
||||||
Vue.use(permission)
|
Vue.use(permission)
|
||||||
|
|
||||||
import Viewer from 'v-viewer'
|
import Viewer from 'v-viewer'
|
||||||
|
|
|
@ -10,10 +10,18 @@ import { OSSclient } from './utils/oss'
|
||||||
|
|
||||||
NProgress.configure({ showSpinner: false })
|
NProgress.configure({ showSpinner: false })
|
||||||
|
|
||||||
const whiteList = ['/activate','/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
const whiteList = ['/activate', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
||||||
|
// 影像页关闭
|
||||||
|
Vue.prototype.$openWindow = null
|
||||||
|
Vue.prototype.$setOpenWindow = (openWindow) => {
|
||||||
|
if (Vue.prototype.$openWindow) {
|
||||||
|
Vue.prototype.$openWindow.close();
|
||||||
|
}
|
||||||
|
Vue.prototype.$openWindow = openWindow;
|
||||||
|
}
|
||||||
router.beforeEach(async (to, from, next) => {
|
router.beforeEach(async (to, from, next) => {
|
||||||
NProgress.start()
|
NProgress.start()
|
||||||
|
Vue.prototype.$setOpenWindow();
|
||||||
// 设置页面标题
|
// 设置页面标题
|
||||||
// document.title = getPageTitle(to.meta.title)
|
// document.title = getPageTitle(to.meta.title)
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@ service.interceptors.request.use(
|
||||||
config => {
|
config => {
|
||||||
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'
|
||||||
console.log(config.headers)
|
// console.log(config.headers)
|
||||||
if (store.getters.token) {
|
if (store.getters.token) {
|
||||||
config.headers.Authorization = `Bearer ${store.getters.token}`
|
config.headers.Authorization = `Bearer ${store.getters.token}`
|
||||||
}
|
}
|
||||||
|
@ -30,14 +30,14 @@ service.interceptors.response.use(
|
||||||
response => {
|
response => {
|
||||||
const res = response.data
|
const res = response.data
|
||||||
let fileReader = new FileReader();
|
let fileReader = new FileReader();
|
||||||
fileReader.onload = function() {
|
fileReader.onload = function () {
|
||||||
try {
|
try {
|
||||||
let jsonData = JSON.parse(fileReader.result); // 如果是普通对象数据,后台转换失败
|
let jsonData = JSON.parse(fileReader.result); // 如果是普通对象数据,后台转换失败
|
||||||
if (!jsonData.IsSuccess && jsonData.ErrorMessage) {
|
if (!jsonData.IsSuccess && jsonData.ErrorMessage) {
|
||||||
MessageBox.confirm(jsonData.ErrorMessage, {
|
MessageBox.confirm(jsonData.ErrorMessage, {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
return Promise.reject(jsonData)
|
return Promise.reject(jsonData)
|
||||||
}
|
}
|
||||||
|
@ -66,19 +66,19 @@ service.interceptors.response.use(
|
||||||
if (error && error.response) {
|
if (error && error.response) {
|
||||||
const status = error.response.status
|
const status = error.response.status
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 400: message = store.state.lang.language === 'en'? 'Request error' : '请求错误'; break
|
case 400: message = store.state.lang.language === 'en' ? 'Request error' : '请求错误'; break
|
||||||
case 401: message = store.state.lang.language === 'en'? 'Not authorized or login timed out. Please log in again.' : '未授权或登陆超时,请重新登录'; break
|
case 401: message = store.state.lang.language === 'en' ? 'Not authorized or login timed out. Please log in again.' : '未授权或登陆超时,请重新登录'; break
|
||||||
case 403: message = error.response.data.ErrorMessage; break
|
case 403: message = error.response.data.ErrorMessage; break
|
||||||
case 404: message = store.state.lang.language === 'en'? 'Request address error' : `请求地址出错`; break
|
case 404: message = store.state.lang.language === 'en' ? 'Request address error' : `请求地址出错`; break
|
||||||
case 405: message = store.state.lang.language === 'en'? 'Interface parameter error or request method inconsistency' : `接口参数传递错误,或者请求方法不一致`; break
|
case 405: message = store.state.lang.language === 'en' ? 'Interface parameter error or request method inconsistency' : `接口参数传递错误,或者请求方法不一致`; break
|
||||||
case 408: message = store.state.lang.language === 'en'? 'Request timed out' : '请求超时'; break
|
case 408: message = store.state.lang.language === 'en' ? 'Request timed out' : '请求超时'; break
|
||||||
case 429: message = store.state.lang.language === 'en'? 'The application service limits the traffic. Your requests are too frequent. Please try again later.' : '应用服务限流,您的请求过于频繁,请稍后再试'; break
|
case 429: message = store.state.lang.language === 'en' ? 'The application service limits the traffic. Your requests are too frequent. Please try again later.' : '应用服务限流,您的请求过于频繁,请稍后再试'; break
|
||||||
case 500: message = store.state.lang.language === 'en'? 'Internal server error, and unable to complete the request. Software release might be in process. Please contact the administrator.' : '服务器内部错误,无法完成请求;可能正在发布中,请联系管理员处理'; break
|
case 500: message = store.state.lang.language === 'en' ? 'Internal server error, and unable to complete the request. Software release might be in process. Please contact the administrator.' : '服务器内部错误,无法完成请求;可能正在发布中,请联系管理员处理'; break
|
||||||
case 501: message = store.state.lang.language === 'en'? 'Service has not been implemented.' : '服务未实现'; break
|
case 501: message = store.state.lang.language === 'en' ? 'Service has not been implemented.' : '服务未实现'; break
|
||||||
case 502: message = store.state.lang.language === 'en'? 'System is being upgraded. Please wait patiently.' : '系统正在升级,请耐心等待。'; break
|
case 502: message = store.state.lang.language === 'en' ? 'System is being upgraded. Please wait patiently.' : '系统正在升级,请耐心等待。'; break
|
||||||
case 503: message = store.state.lang.language === 'en'? 'Service is not available' : '服务不可用'; break
|
case 503: message = store.state.lang.language === 'en' ? 'Service is not available' : '服务不可用'; break
|
||||||
case 504: message = store.state.lang.language === 'en'? 'Gateway timed out' : '网关超时'; break
|
case 504: message = store.state.lang.language === 'en' ? 'Gateway timed out' : '网关超时'; break
|
||||||
case 505: message = store.state.lang.language === 'en'? 'HTTP version is not supported' : 'HTTP版本不受支持'; break
|
case 505: message = store.state.lang.language === 'en' ? 'HTTP version is not supported' : 'HTTP版本不受支持'; break
|
||||||
default: break
|
default: break
|
||||||
}
|
}
|
||||||
if (error.response.status === 401) {
|
if (error.response.status === 401) {
|
||||||
|
@ -100,7 +100,7 @@ service.interceptors.response.use(
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
callback: action => {}
|
callback: action => { }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:researchForm:form:checkCode')"
|
:label="$t('trials:researchForm:form:checkCode')"
|
||||||
prop="CheckCode"
|
prop="CheckCode"
|
||||||
:maxlength="10"
|
:maxlength="6"
|
||||||
>
|
>
|
||||||
<el-input v-model="password.CheckCode" type="number" />
|
<el-input v-model="password.CheckCode" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
width="500px"
|
width="500px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
append-to-body
|
append-to-body
|
||||||
|
:before-close="handleCancel"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form
|
||||||
ref="editVisitForm"
|
ref="editVisitForm"
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
<div ref="leftContainer" class="left">
|
<div ref="leftContainer" class="left">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<!--AE Title-->
|
<!--AE Title-->
|
||||||
<el-form-item label="AE Title" prop="CalledAE">
|
<el-form-item
|
||||||
|
:label="$t('system:dicom:search:AETitle')"
|
||||||
|
prop="CalledAE"
|
||||||
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchData.CalledAE"
|
v-model="searchData.CalledAE"
|
||||||
style="width: 140px"
|
style="width: 140px"
|
||||||
|
@ -11,11 +14,11 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--IP-->
|
<!--IP-->
|
||||||
<el-form-item label="IP" prop="IP">
|
<el-form-item :label="$t('system:dicom:search:IP')" prop="IP">
|
||||||
<el-input v-model="searchData.IP" style="width: 140px" clearable />
|
<el-input v-model="searchData.IP" style="width: 140px" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--Port-->
|
<!--Port-->
|
||||||
<el-form-item label="Port" prop="Port">
|
<el-form-item :label="$t('system:dicom:search:Port')" prop="Port">
|
||||||
<el-input v-model="searchData.Port" style="width: 140px" clearable />
|
<el-input v-model="searchData.Port" style="width: 140px" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -41,44 +44,43 @@
|
||||||
>
|
>
|
||||||
<!--AE Title-->
|
<!--AE Title-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="AE Title"
|
:label="$t('system:dicom:table:AETitle')"
|
||||||
prop="CalledAE"
|
prop="CalledAE"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!--IP-->
|
<!--IP-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="IP"
|
:label="$t('system:dicom:table:IP')"
|
||||||
prop="IP"
|
prop="IP"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!--Port-->
|
<!--Port-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="Port"
|
:label="$t('system:dicom:table:Port')"
|
||||||
prop="Port"
|
prop="Port"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!--Modality-->
|
<!--Modality-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="Modality"
|
:label="$t('system:dicom:table:Modality')"
|
||||||
prop="Modality"
|
prop="Modality"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!--Description-->
|
<!--Description-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="Description"
|
:label="$t('system:dicom:table:Description')"
|
||||||
prop="Description"
|
prop="Description"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="actions"
|
:label="$t('system:dicom:table:action')"
|
||||||
fixed="right"
|
fixed="right"
|
||||||
prop="UserTypeShortName"
|
prop="UserTypeShortName"
|
||||||
min-width="200"
|
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -87,7 +89,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
v-hasPermi="['system:dicom:edit']"
|
v-hasPermi="['system:dicom:edit']"
|
||||||
@click="openDialog('edit', scope.row)"
|
@click="openDialog('edit', scope.row)"
|
||||||
>编辑</el-button
|
>{{ $t("system:dicom:table:edit") }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
|
@ -212,7 +214,9 @@ export default {
|
||||||
},
|
},
|
||||||
// 测试连通性
|
// 测试连通性
|
||||||
async test(item) {
|
async test(item) {
|
||||||
|
this.loading = true;
|
||||||
let res = await testConnect(item.Id);
|
let res = await testConnect(item.Id);
|
||||||
|
this.loading = false;
|
||||||
if (res.IsSuccess && res.Result) {
|
if (res.IsSuccess && res.Result) {
|
||||||
this.$message.success(this.$t("system:dicomAE:connect:success"));
|
this.$message.success(this.$t("system:dicomAE:connect:success"));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
>
|
>
|
||||||
<el-select v-model="form.NoticeLevelEnum" clearable size="small">
|
<el-select v-model="form.NoticeLevelEnum" clearable size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of dict.type.NoteLevel"
|
v-for="item of $d.NoteLevel"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.raw.Code * 1"
|
:value="item.raw.Code * 1"
|
||||||
|
@ -27,10 +27,10 @@
|
||||||
>
|
>
|
||||||
<el-select v-model="form.NoticeTypeEnum" clearable size="small">
|
<el-select v-model="form.NoticeTypeEnum" clearable size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of dict.type.NoteType"
|
v-for="item of $d.NoteType"
|
||||||
:key="item.value"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.raw.Code * 1"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -44,10 +44,10 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of dict.type.NoticeApplicableTrial"
|
v-for="item of $d.TrialType"
|
||||||
:key="item.value"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.raw.Code * 1"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -75,10 +75,10 @@
|
||||||
>
|
>
|
||||||
<el-select v-model="form.NoticeModeEnum" clearable size="small">
|
<el-select v-model="form.NoticeModeEnum" clearable size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of dict.type.NoticeMode"
|
v-for="item of $d.NoticeMode"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.raw.Code * 1"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
>
|
>
|
||||||
<el-select v-model="searchData.NoticeTypeEnum" clearable size="small">
|
<el-select v-model="searchData.NoticeTypeEnum" clearable size="small">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.TrialType"
|
v-for="item of $d.NoteType"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
|
@ -42,8 +42,8 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.NoticeApplicableTrial"
|
v-for="item of $d.TrialType"
|
||||||
:key="item.value"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
|
@ -60,10 +60,10 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.UserType"
|
v-for="item of roleList"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:label="item.label"
|
:label="item.UserTypeShortName"
|
||||||
:value="item.value"
|
:value="item.Id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -188,10 +188,10 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{
|
{{
|
||||||
$d.NoticeApplicableTrial.find((v) => {
|
$d.TrialType.find((v) => {
|
||||||
return v.raw.Code * 1 === scope.row.ApplicableProjectEnum;
|
return v.raw.Code * 1 === scope.row.ApplicableProjectEnum;
|
||||||
})
|
})
|
||||||
? $d.NoticeApplicableTrial.find((v) => {
|
? $d.TrialType.find((v) => {
|
||||||
return v.raw.Code * 1 === scope.row.ApplicableProjectEnum;
|
return v.raw.Code * 1 === scope.row.ApplicableProjectEnum;
|
||||||
}).label
|
}).label
|
||||||
: ""
|
: ""
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.StartDate }}-{{ scope.row.EndDate }}
|
{{ scope.row.StartDate }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -287,9 +287,11 @@
|
||||||
min-width="200"
|
min-width="200"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
v-if="
|
v-if="
|
||||||
hasPermi(['system:notice:edit']) ||
|
hasPermi([
|
||||||
hasPermi(['system:notice:publish']) ||
|
'system:notice:edit',
|
||||||
hasPermi(['system:notice:back'])
|
'system:notice:publish',
|
||||||
|
'system:notice:back',
|
||||||
|
])
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -436,7 +438,11 @@ export default {
|
||||||
getUserTypeRoleList() {
|
getUserTypeRoleList() {
|
||||||
getUserTypeRoleList({})
|
getUserTypeRoleList({})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.roleList = res.Result;
|
this.roleList = res.Result.map((item) => {
|
||||||
|
if ([4, 5, 8, 9, 12, 14].includes(item.UserTypeEnum)) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}).filter((item) => item);
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
|
|
|
@ -76,13 +76,12 @@
|
||||||
ref="userType"
|
ref="userType"
|
||||||
v-model="user.UserTypeId"
|
v-model="user.UserTypeId"
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="Please select"
|
placeholder=""
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:disabled="user.CanEditUserType === false"
|
:disabled="user.CanEditUserType === false"
|
||||||
>
|
>
|
||||||
<template v-for="(userType, key) of userTypeOptions">
|
<template v-for="(userType, key) of userTypeOptions">
|
||||||
<el-option
|
<el-option
|
||||||
v-if="userType.UserTypeEnum !== 20"
|
|
||||||
:key="key"
|
:key="key"
|
||||||
:label="userType.UserType"
|
:label="userType.UserType"
|
||||||
:value="userType.Id"
|
:value="userType.Id"
|
||||||
|
@ -368,7 +367,15 @@ export default {
|
||||||
getUserTypeList() {
|
getUserTypeList() {
|
||||||
getUserTypeListByUserType(0).then((res) => {
|
getUserTypeListByUserType(0).then((res) => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.userTypeOptions = res.Result;
|
let arr = [2, 4, 5, 8, 9, 12, 14];
|
||||||
|
if (this.hasPermi(["role:oa"])) {
|
||||||
|
arr = [4, 5, 8, 9, 12, 14];
|
||||||
|
}
|
||||||
|
this.userTypeOptions = res.Result.map((item) => {
|
||||||
|
if (arr.includes(item.UserTypeEnum)) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}).filter((item) => item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -108,6 +108,7 @@
|
||||||
:Patient="PatientData"
|
:Patient="PatientData"
|
||||||
:submitMessage="submitMessage"
|
:submitMessage="submitMessage"
|
||||||
:status="status"
|
:status="status"
|
||||||
|
@close="beforeCloseStudyDig"
|
||||||
/>
|
/>
|
||||||
<base-model v-if="addSubject_model.visible" :config="addSubject_model">
|
<base-model v-if="addSubject_model.visible" :config="addSubject_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
|
|
|
@ -456,6 +456,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 确认提交
|
// 确认提交
|
||||||
async confirmSubmit() {
|
async confirmSubmit() {
|
||||||
|
@ -487,6 +488,7 @@ export default {
|
||||||
this.$message.success(
|
this.$message.success(
|
||||||
this.$t("trials:crcUpload:message:submittedSuccessfully")
|
this.$t("trials:crcUpload:message:submittedSuccessfully")
|
||||||
);
|
);
|
||||||
|
this.$emit("close");
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.btnLoading2 = false;
|
this.btnLoading2 = false;
|
||||||
|
|
|
@ -38,22 +38,11 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 80px;
|
width: 150px;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
{{ $t("trials:trials-list:table:researchNumber") }}
|
{{ $t("trials:trials-list:table:researchNumber") }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
style="
|
|
||||||
display: inline-block;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
width: 160px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
{{ $t("trials:trials-list:table:experimentName") }}
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -65,6 +54,17 @@
|
||||||
>
|
>
|
||||||
{{ $t("trials:trials-list:table:sponsor") }}
|
{{ $t("trials:trials-list:table:sponsor") }}
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 160px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ $t("trials:trials-list:table:experimentName") }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
|
@ -80,11 +80,11 @@
|
||||||
{{ $t("trials:trials-list:table:researchNumber") }}:
|
{{ $t("trials:trials-list:table:researchNumber") }}:
|
||||||
{{ item.ResearchProgramNo }}
|
{{ item.ResearchProgramNo }}
|
||||||
<br />
|
<br />
|
||||||
{{ $t("trials:trials-list:table:experimentName") }}:
|
|
||||||
{{ item.ExperimentName }}
|
|
||||||
<br />
|
|
||||||
{{ $t("trials:trials-list:table:sponsor") }}:
|
{{ $t("trials:trials-list:table:sponsor") }}:
|
||||||
{{ item.SponsorName }}
|
{{ item.SponsorName }}
|
||||||
|
<br />
|
||||||
|
{{ $t("trials:trials-list:table:experimentName") }}:
|
||||||
|
{{ item.ExperimentName }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="options_item"
|
class="options_item"
|
||||||
|
@ -100,22 +100,11 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 80px;
|
width: 150px;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
{{ item.ResearchProgramNo }}
|
{{ item.ResearchProgramNo }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
style="
|
|
||||||
display: inline-block;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
width: 160px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
{{ item.ExperimentName }}
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -127,6 +116,17 @@
|
||||||
>
|
>
|
||||||
{{ item.SponsorName }}
|
{{ item.SponsorName }}
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 160px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ item.ExperimentName }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
@ -233,7 +233,11 @@ export default {
|
||||||
inputChange(v) {
|
inputChange(v) {
|
||||||
this.resultFilter = this.options.filter((o) => {
|
this.resultFilter = this.options.filter((o) => {
|
||||||
var reg = new RegExp(v, "ig");
|
var reg = new RegExp(v, "ig");
|
||||||
return reg.test(o.ResearchProgramNo) || reg.test(o.ExperimentName)|| reg.test(o.SponsorName);
|
return (
|
||||||
|
reg.test(o.ResearchProgramNo) ||
|
||||||
|
reg.test(o.ExperimentName) ||
|
||||||
|
reg.test(o.SponsorName)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -207,6 +207,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
// 关闭弹框
|
// 关闭弹框
|
||||||
beforeCloseStudyDig() {
|
beforeCloseStudyDig() {
|
||||||
|
this.$setOpenWindow();
|
||||||
this.$emit("update:visible", false);
|
this.$emit("update:visible", false);
|
||||||
},
|
},
|
||||||
// 获取列表
|
// 获取列表
|
||||||
|
@ -256,7 +257,8 @@ export default {
|
||||||
const routeData = this.$router.resolve({
|
const routeData = this.$router.resolve({
|
||||||
path: `/showdicom?studyId=${item.SCPStudyId}&TokenKey=${token}&type=Patient`,
|
path: `/showdicom?studyId=${item.SCPStudyId}&TokenKey=${token}&type=Patient`,
|
||||||
});
|
});
|
||||||
window.open(routeData.href, "_blank");
|
let newWindow = window.open(routeData.href, "_blank");
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 查看报告
|
// 查看报告
|
||||||
report() {},
|
report() {},
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
v-model="trialForm.CriterionTypeList"
|
v-model="trialForm.CriterionTypeList"
|
||||||
multiple
|
multiple
|
||||||
clearable
|
clearable
|
||||||
:disabled="trialForm.Id !== ''"
|
:disabled="TrialStatusStr === 'Ongoing'"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of CriterionTypeList"
|
v-for="item of CriterionTypeList"
|
||||||
|
@ -330,6 +330,7 @@ export default {
|
||||||
phaseNum: null,
|
phaseNum: null,
|
||||||
dictionaryList: {},
|
dictionaryList: {},
|
||||||
CriterionTypeList: [], // 阅片标准列表
|
CriterionTypeList: [], // 阅片标准列表
|
||||||
|
TrialStatusStr: null, // 项目状态
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -367,6 +368,7 @@ export default {
|
||||||
)[0].raw.ChildGroup;
|
)[0].raw.ChildGroup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.TrialStatusStr = res.Result.TrialStatusStr;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 激活码 -->
|
<!-- 激活码 -->
|
||||||
<el-form-item label="激活码">
|
<el-form-item label="激活码">
|
||||||
<span>{{ form.code }}</span>
|
<el-input v-model="form.code" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
||||||
|
@ -122,6 +122,7 @@ export default {
|
||||||
PurchaseDuration: null,
|
PurchaseDuration: null,
|
||||||
TrialCode: null,
|
TrialCode: null,
|
||||||
TrialId: null,
|
TrialId: null,
|
||||||
|
HospitalCode: null,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -159,6 +160,7 @@ export default {
|
||||||
CriterionTypeList: this.data.CriterionTypeList,
|
CriterionTypeList: this.data.CriterionTypeList,
|
||||||
CreateUserId: this.data.CreateUserId,
|
CreateUserId: this.data.CreateUserId,
|
||||||
AuthorizationDeadLineDate: null,
|
AuthorizationDeadLineDate: null,
|
||||||
|
HospitalCode: this.data.HospitalCode,
|
||||||
};
|
};
|
||||||
let res = await getTrialActivationCode(params);
|
let res = await getTrialActivationCode(params);
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
label-width="120px"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
<p>授权申请信息</p>
|
<p>{{ $t("trials:activate:ApplyMessage") }}</p>
|
||||||
<!-- 单位名称 -->
|
<!-- 单位名称 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:activate:organizationName')"
|
:label="$t('trials:trials-list:activate:organizationName')"
|
||||||
|
@ -71,13 +71,6 @@
|
||||||
prop="Activate"
|
prop="Activate"
|
||||||
>
|
>
|
||||||
<el-input v-model="form.Activate" :disabled="isActivate" />
|
<el-input v-model="form.Activate" :disabled="isActivate" />
|
||||||
<span
|
|
||||||
v-if="form.Activate"
|
|
||||||
class="copy"
|
|
||||||
@click.stop="getActivationCodeInfo"
|
|
||||||
style="margin-left: 10px"
|
|
||||||
>{{ $t("trials:reviewTrack:impactList:save") }}</span
|
|
||||||
>
|
|
||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
id="uploadFileInp"
|
id="uploadFileInp"
|
||||||
|
@ -91,9 +84,16 @@
|
||||||
v-if="!isActivate"
|
v-if="!isActivate"
|
||||||
>{{ $t("trials:activate:button:upload") }}</label
|
>{{ $t("trials:activate:button:upload") }}</label
|
||||||
>
|
>
|
||||||
|
<span
|
||||||
|
v-if="form.Activate"
|
||||||
|
class="copy"
|
||||||
|
@click.stop="getActivationCodeInfo"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
>{{ $t("trials:reviewTrack:impactList:save") }}</span
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div v-if="isActivate">
|
<div v-if="isActivate">
|
||||||
<p>授权信息</p>
|
<p>{{ $t("trials:activate:Message") }}</p>
|
||||||
<!-- 单位名称 -->
|
<!-- 单位名称 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:activate:organizationName')"
|
:label="$t('trials:trials-list:activate:organizationName')"
|
||||||
|
@ -184,6 +184,7 @@ export default {
|
||||||
HospitalName: null,
|
HospitalName: null,
|
||||||
CriterionTypeList: [],
|
CriterionTypeList: [],
|
||||||
CreateUserId: null,
|
CreateUserId: null,
|
||||||
|
HospitalCode: null,
|
||||||
AuthorizationDeadLineDate: null,
|
AuthorizationDeadLineDate: null,
|
||||||
},
|
},
|
||||||
ActivateData: {
|
ActivateData: {
|
||||||
|
@ -193,6 +194,7 @@ export default {
|
||||||
HospitalName: null,
|
HospitalName: null,
|
||||||
CriterionTypeList: [],
|
CriterionTypeList: [],
|
||||||
CreateUserId: null,
|
CreateUserId: null,
|
||||||
|
HospitalCode: null,
|
||||||
AuthorizationDeadLineDate: null,
|
AuthorizationDeadLineDate: null,
|
||||||
},
|
},
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
|
@ -260,6 +262,7 @@ export default {
|
||||||
HospitalName: this.form.HospitalName,
|
HospitalName: this.form.HospitalName,
|
||||||
CriterionTypeList: this.form.CriterionTypeList,
|
CriterionTypeList: this.form.CriterionTypeList,
|
||||||
CreateUserId: this.form.CreateUserId,
|
CreateUserId: this.form.CreateUserId,
|
||||||
|
HospitalCode: this.form.HospitalCode,
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
let res = await getTrialAuthorizationCode(params);
|
let res = await getTrialAuthorizationCode(params);
|
||||||
|
|
|
@ -99,6 +99,7 @@
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
@sort-change="handleSortChange"
|
@sort-change="handleSortChange"
|
||||||
|
@row-click="handleDetail"
|
||||||
>
|
>
|
||||||
<!-- <el-table-column type="selection" align="left" width="45" /> -->
|
<!-- <el-table-column type="selection" align="left" width="45" /> -->
|
||||||
<el-table-column width="40">
|
<el-table-column width="40">
|
||||||
|
@ -166,12 +167,6 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<!--是否授权-->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="Sponsor"
|
|
||||||
:label="$t('trials:trials-list:table:isAccredit')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/> -->
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="TrialStatusStr"
|
prop="TrialStatusStr"
|
||||||
:label="$t('trials:trials-list:table:status')"
|
:label="$t('trials:trials-list:table:status')"
|
||||||
|
@ -201,27 +196,41 @@
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<!--阅片标准-->
|
||||||
|
<el-table-column
|
||||||
|
prop="CriterionTypeList"
|
||||||
|
:label="$t('trials:trials-list:table:CriterionTypeList')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
v-if="hasPermi(['role:pm', 'role:pi', 'role:sr'])"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{
|
||||||
|
scope.row.CriterionTypeList.map((item) =>
|
||||||
|
$fd("CriterionType", Number(item))
|
||||||
|
).join(",")
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!--待提交访视数量-->
|
||||||
|
<el-table-column
|
||||||
|
prop="UnSubmitCount"
|
||||||
|
:label="$t('trials:trials-list:table:UnSubmitCount')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
v-if="hasPermi(['role:pm'])"
|
||||||
|
/>
|
||||||
|
<!--待阅片数量-->
|
||||||
|
<el-table-column
|
||||||
|
prop="UnReadCount"
|
||||||
|
:label="$t('trials:trials-list:table:UnReadCount')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
v-if="hasPermi(['role:pm', 'role:pi', 'role:sr'])"
|
||||||
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
:label="$t('trials:trials-list:table:createDate')"
|
:label="$t('trials:trials-list:table:createDate')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<!--授权日期-->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="AuthorizationDate"
|
|
||||||
:label="$t('trials:trials-list:table:dateAuthorized')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{
|
|
||||||
scope.row.AuthorizationDate
|
|
||||||
? moment(scope.row.AuthorizationDate)
|
|
||||||
: ""
|
|
||||||
}}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column> -->
|
|
||||||
<!--授权时长-->
|
<!--授权时长-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AuthorizationDuration"
|
prop="AuthorizationDuration"
|
||||||
|
@ -238,7 +247,7 @@
|
||||||
icon="el-icon-info"
|
icon="el-icon-info"
|
||||||
:disabled="scope.row.IsDeleted"
|
:disabled="scope.row.IsDeleted"
|
||||||
:title="$t('trials:trials-list:action:panel')"
|
:title="$t('trials:trials-list:action:panel')"
|
||||||
@click="handleDetail(scope.row)"
|
@click.stop="handleDetail(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 编辑项目基本信息 -->
|
<!-- 编辑项目基本信息 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -247,7 +256,7 @@
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
:disabled="scope.row.IsDeleted"
|
:disabled="scope.row.IsDeleted"
|
||||||
:title="$t('trials:trials-list:action:edit')"
|
:title="$t('trials:trials-list:action:edit')"
|
||||||
@click="handleEdit(scope.row)"
|
@click.stop="handleEdit(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 修改项目状态 -->
|
<!-- 修改项目状态 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -256,7 +265,7 @@
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
:disabled="scope.row.IsDeleted"
|
:disabled="scope.row.IsDeleted"
|
||||||
:title="$t('trials:trials-list:action:status')"
|
:title="$t('trials:trials-list:action:status')"
|
||||||
@click="handleStatus(scope.row)"
|
@click.stop="handleStatus(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 废除项目 -->
|
<!-- 废除项目 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -268,7 +277,7 @@
|
||||||
scope.row.TrialStatusStr !== 'Initializing'
|
scope.row.TrialStatusStr !== 'Initializing'
|
||||||
"
|
"
|
||||||
:title="$t('trials:trials-list:action:abolition')"
|
:title="$t('trials:trials-list:action:abolition')"
|
||||||
@click="handleAbandon(scope.row)"
|
@click.stop="handleAbandon(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 激活 -->
|
<!-- 激活 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -277,7 +286,7 @@
|
||||||
circle
|
circle
|
||||||
icon="el-icon-key"
|
icon="el-icon-key"
|
||||||
:title="$t('trials:trials-list:action:activate')"
|
:title="$t('trials:trials-list:action:activate')"
|
||||||
@click="handleActivate(scope.row)"
|
@click.stop="handleActivate(scope.row)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<el-input
|
<el-input
|
||||||
v-model="userForm.CheckCode"
|
v-model="userForm.CheckCode"
|
||||||
:placeholder="$t('trials:researchForm:form:checkCode')"
|
:placeholder="$t('trials:researchForm:form:checkCode')"
|
||||||
:maxlength="10"
|
:maxlength="6"
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
<!-- 修改 -->
|
<!-- 修改 -->
|
||||||
|
|
|
@ -150,6 +150,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 预览影像
|
// 预览影像
|
||||||
handleViewStudy(row) {
|
handleViewStudy(row) {
|
||||||
|
@ -159,6 +160,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -376,6 +376,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 关闭弹框
|
// 关闭弹框
|
||||||
beforeCloseStudyDig() {
|
beforeCloseStudyDig() {
|
||||||
|
this.$setOpenWindow();
|
||||||
this.$emit("update:visible", false);
|
this.$emit("update:visible", false);
|
||||||
},
|
},
|
||||||
// 预览
|
// 预览
|
||||||
|
@ -390,6 +391,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 当前检查移除
|
// 当前检查移除
|
||||||
remove(item) {
|
remove(item) {
|
||||||
|
|
|
@ -184,6 +184,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 预览影像
|
// 预览影像
|
||||||
handleViewStudy(row) {
|
handleViewStudy(row) {
|
||||||
|
@ -193,6 +194,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
getBodyPart(bodyPart) {
|
getBodyPart(bodyPart) {
|
||||||
if (!bodyPart) return "";
|
if (!bodyPart) return "";
|
||||||
|
|
|
@ -343,6 +343,10 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
if (zzSessionStorage.getItem("SubjectCode")) {
|
||||||
|
this.searchData.SubjectCode = zzSessionStorage.getItem("SubjectCode");
|
||||||
|
zzSessionStorage.removeItem("SubjectCode");
|
||||||
|
}
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -150,6 +150,14 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
<!-- 阅片标准 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="TrialReadingCriterionName"
|
||||||
|
:label="$t('trials:adReview:table:TrialReadingCriterionName')"
|
||||||
|
min-width="100"
|
||||||
|
sortable="custom"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<!-- 任务状态 -->
|
<!-- 任务状态 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="TaskState"
|
prop="TaskState"
|
||||||
|
|
|
@ -317,7 +317,7 @@ export default {
|
||||||
loading: false,
|
loading: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
// 修改检查
|
// 修改检查
|
||||||
reportBtnLoading: false,
|
reportFlag: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -331,16 +331,21 @@ export default {
|
||||||
},
|
},
|
||||||
// 评估报告
|
// 评估报告
|
||||||
async showReport(item) {
|
async showReport(item) {
|
||||||
if (this.reportBtnLoading) return;
|
if (this.reportFlag[item.Id]) return;
|
||||||
let data = {
|
let data = {
|
||||||
VisitTaskId: item.Id,
|
VisitTaskId: item.Id,
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
this.reportBtnLoading = true;
|
if (!this.reportFlag.hasOwnProperty(item.Id)) {
|
||||||
|
this.$set(this.reportFlag, item.Id, true);
|
||||||
|
}
|
||||||
|
if (!this.reportFlag[item.Id]) {
|
||||||
|
this.reportFlag[item.Id] = true;
|
||||||
|
}
|
||||||
let res = await downLoadReadReport(data);
|
let res = await downLoadReadReport(data);
|
||||||
this.reportBtnLoading = false;
|
this.reportFlag[item.Id] = false;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.reportBtnLoading = false;
|
this.reportFlag[item.Id] = false;
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
:label="item.UserTypeShortName"
|
:label="item.UserTypeShortName"
|
||||||
:value="item.Id"
|
:value="item.Id"
|
||||||
>
|
>
|
||||||
<span>{{ item.UserType }}</span>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -74,14 +73,14 @@
|
||||||
{{ $t('trials:staff:button:addExternalStaff') }}
|
{{ $t('trials:staff:button:addExternalStaff') }}
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<!-- 导出 -->
|
<!-- 导出 -->
|
||||||
<el-button
|
<!-- <el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
:disabled="list.length === 0"
|
:disabled="list.length === 0"
|
||||||
@click="handleExport"
|
@click="handleExport"
|
||||||
>
|
>
|
||||||
{{ $t("common:button:export") }}
|
{{ $t("common:button:export") }}
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -241,7 +240,11 @@
|
||||||
<!-- 分配参与人员模态框 -->
|
<!-- 分配参与人员模态框 -->
|
||||||
<base-model v-if="staff_model.visible" :config="staff_model">
|
<base-model v-if="staff_model.visible" :config="staff_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<StaffForm v-if="isAdd == 'Add'" @closeDialog="closeDialog" />
|
<StaffForm
|
||||||
|
v-if="isAdd == 'Add'"
|
||||||
|
:userTypeOptions="userTypeOptions"
|
||||||
|
@closeDialog="closeDialog"
|
||||||
|
/>
|
||||||
<StaffExternalForm
|
<StaffExternalForm
|
||||||
v-else
|
v-else
|
||||||
@closeDialog="closeDialog"
|
@closeDialog="closeDialog"
|
||||||
|
@ -335,6 +338,7 @@ import {
|
||||||
updateTrialUser,
|
updateTrialUser,
|
||||||
trialUserListExport,
|
trialUserListExport,
|
||||||
} from "@/api/trials";
|
} from "@/api/trials";
|
||||||
|
import { getUserTypeListByUserType } from "@/api/admin";
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
import StaffForm from "./staffForm";
|
import StaffForm from "./staffForm";
|
||||||
import StaffExternalForm from "./staffExternalForm";
|
import StaffExternalForm from "./staffExternalForm";
|
||||||
|
@ -517,8 +521,12 @@ export default {
|
||||||
},
|
},
|
||||||
// 获取用户类型下拉数据
|
// 获取用户类型下拉数据
|
||||||
getUserType() {
|
getUserType() {
|
||||||
getTrialUserTypeList().then((res) => {
|
getUserTypeListByUserType(0).then((res) => {
|
||||||
this.userTypeOptions = res.Result;
|
this.userTypeOptions = res.Result.map((item) => {
|
||||||
|
if ([4, 5, 8, 9, 12].includes(item.UserTypeEnum)) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}).filter((item) => item);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,206 +9,313 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<!-- 姓 -->
|
<!-- 姓 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:lastName')" prop="LastName">
|
<el-form-item
|
||||||
|
:label="$t('trials:externalStaff:table:lastName')"
|
||||||
|
prop="LastName"
|
||||||
|
>
|
||||||
<el-input v-model="form.LastName" />
|
<el-input v-model="form.LastName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 名 -->
|
<!-- 名 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:firstName')" prop="FirstName">
|
<el-form-item
|
||||||
|
:label="$t('trials:externalStaff:table:firstName')"
|
||||||
|
prop="FirstName"
|
||||||
|
>
|
||||||
<el-input v-model="form.FirstName" />
|
<el-input v-model="form.FirstName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 用户类型 -->
|
<!-- 用户类型 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:userType')" prop="UserTypeId">
|
<el-form-item
|
||||||
<el-select
|
:label="$t('trials:externalStaff:table:userType')"
|
||||||
v-model="form.UserTypeId"
|
prop="UserTypeId"
|
||||||
style="width:100%"
|
|
||||||
>
|
>
|
||||||
|
<el-select v-model="form.UserTypeId" style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of userTypeOptions"
|
v-for="item of userTypeOptions"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:label="item.UserTypeShortName"
|
:label="item.UserTypeShortName"
|
||||||
:value="item.Id"
|
:value="item.Id"
|
||||||
>
|
>
|
||||||
<span>{{ item.UserType }}</span>
|
<!-- <span>{{ item.UserType }}</span> -->
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 电话号码 -->
|
<!-- 电话号码 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:phone')" prop="Phone">
|
<el-form-item
|
||||||
|
:label="$t('trials:externalStaff:table:phone')"
|
||||||
|
prop="Phone"
|
||||||
|
>
|
||||||
<el-input v-model="form.Phone" />
|
<el-input v-model="form.Phone" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 邮箱 -->
|
<!-- 邮箱 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:email')" prop="Email">
|
<el-form-item
|
||||||
|
:label="$t('trials:externalStaff:table:email')"
|
||||||
|
prop="Email"
|
||||||
|
>
|
||||||
<el-input v-model="form.Email" />
|
<el-input v-model="form.Email" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 单位 -->
|
<!-- 单位 -->
|
||||||
<el-form-item :label="$t('trials:externalStaff:table:organization')" prop="OrganizationName">
|
<el-form-item
|
||||||
|
:label="$t('trials:externalStaff:table:organization')"
|
||||||
|
prop="OrganizationName"
|
||||||
|
>
|
||||||
<el-input v-model="form.OrganizationName" />
|
<el-input v-model="form.OrganizationName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div v-if="errorMsg" style="font-size: 12px;color: #f66;">{{ errorMsg }}</div>
|
<div v-if="errorMsg" style="font-size: 12px; color: #f66">
|
||||||
|
{{ errorMsg }}
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
<!-- 取消 -->
|
<!-- 取消 -->
|
||||||
<el-button size="small" type="primary" :disabled="btnLoading" @click="handleCancel">
|
<el-button
|
||||||
{{ $t('common:button:cancel') }}
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
:disabled="btnLoading"
|
||||||
|
@click="handleCancel"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:cancel") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 保存 -->
|
<!-- 保存 -->
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">
|
<el-button
|
||||||
{{ $t('common:button:save') }}
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
:loading="btnLoading"
|
||||||
|
@click="handleSave"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:save") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 保存且发邮件 -->
|
<!-- 保存且发邮件 -->
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave('SendEmail')">
|
<!-- <el-button size="small" type="primary" :loading="btnLoading" @click="handleSave('SendEmail')">
|
||||||
{{ $t('trials:externalStaff:button:saveAndSendEmail') }}
|
{{ $t('trials:externalStaff:button:saveAndSendEmail') }}
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { addOrUpdateTrialExternalUser } from '@/api/trials'
|
import BaseModel from "@/components/BaseModel";
|
||||||
import BaseModel from '@/components/BaseModel'
|
import { getHospital } from "@/api/hospital.js";
|
||||||
|
import { addUser } from "@/api/admin.js";
|
||||||
const formDataDefault = () => {
|
const formDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
Id: null,
|
|
||||||
TrialId: null,
|
|
||||||
LastName: null,
|
LastName: null,
|
||||||
FirstName: null,
|
FirstName: null,
|
||||||
UserTypeId: '',
|
UserTypeId: "",
|
||||||
Phone: null,
|
Phone: null,
|
||||||
Email: null,
|
Email: null,
|
||||||
OrganizationName: null
|
IsSendEmail: false,
|
||||||
}
|
Sex: "9",
|
||||||
}
|
IsZhiZhun: "",
|
||||||
|
OrganizationName: "",
|
||||||
|
DepartmentName: "",
|
||||||
|
PositionName: "",
|
||||||
|
IsTestUser: false,
|
||||||
|
verifyCode: "",
|
||||||
|
checkCode: "",
|
||||||
|
};
|
||||||
|
};
|
||||||
export default {
|
export default {
|
||||||
name: 'StaffExternalAdd',
|
name: "StaffExternalAdd",
|
||||||
components: { BaseModel },
|
components: { BaseModel },
|
||||||
props: {
|
props: {
|
||||||
userTypeOptions: {
|
userTypeOptions: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: function() {
|
default: function () {
|
||||||
return {}
|
return {};
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
var checkPhone = (rule, value, callback) => {
|
var checkPhone = (rule, value, callback) => {
|
||||||
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
|
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/;
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback()
|
callback();
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (!Number.isInteger(+value)) {
|
if (!Number.isInteger(+value)) {
|
||||||
callback(new Error(this.$t('trials:externalStaff:formRule:phone')))
|
callback(new Error(this.$t("trials:externalStaff:formRule:phone")));
|
||||||
} else {
|
} else {
|
||||||
if (phoneReg.test(value)) {
|
if (phoneReg.test(value)) {
|
||||||
callback()
|
callback();
|
||||||
} else {
|
} else {
|
||||||
callback(new Error(this.$t('trials:externalStaff:formRule:phone')))
|
callback(new Error(this.$t("trials:externalStaff:formRule:phone")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 100)
|
}, 100);
|
||||||
}
|
};
|
||||||
var validateEmail = (rule, value, callback) => {
|
var validateEmail = (rule, value, callback) => {
|
||||||
if (value === '') {
|
if (value === "") {
|
||||||
callback(new Error(this.$t('common:ruleMessage:specify')))
|
callback(new Error(this.$t("common:ruleMessage:specify")));
|
||||||
} else {
|
} else {
|
||||||
var reg = /^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/
|
var reg =
|
||||||
|
/^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
|
||||||
if (this.form.Email && reg.test(this.form.Email)) {
|
if (this.form.Email && reg.test(this.form.Email)) {
|
||||||
this.sendDisabled = false
|
this.sendDisabled = false;
|
||||||
callback()
|
callback();
|
||||||
} else {
|
} else {
|
||||||
callback(new Error(this.$t('trials:externalStaff:formRule:email')))
|
callback(new Error(this.$t("trials:externalStaff:formRule:email")));
|
||||||
this.sendDisabled = true
|
this.sendDisabled = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
Id: null,
|
// Id: null,
|
||||||
LastName: null,
|
LastName: null,
|
||||||
FirstName: null,
|
FirstName: null,
|
||||||
UserTypeId: '',
|
UserTypeId: "",
|
||||||
Phone: null,
|
Phone: null,
|
||||||
Email: null,
|
Email: null,
|
||||||
TrialId: null,
|
IsSendEmail: false,
|
||||||
IsSendEmail: false
|
Sex: "9",
|
||||||
|
IsZhiZhun: "",
|
||||||
|
OrganizationName: "",
|
||||||
|
DepartmentName: "",
|
||||||
|
PositionName: "",
|
||||||
|
IsTestUser: false,
|
||||||
|
verifyCode: "",
|
||||||
|
checkCode: "",
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
LastName: [
|
LastName: [
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
{
|
||||||
{ min: 0, max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`, trigger: 'blur' }
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 0,
|
||||||
|
max: 50,
|
||||||
|
message: `${this.$t("common:ruleMessage:maxLength")} 50`,
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
FirstName: [
|
FirstName: [
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
{
|
||||||
{ min: 0, max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`, trigger: 'blur' }
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 0,
|
||||||
|
max: 50,
|
||||||
|
message: `${this.$t("common:ruleMessage:maxLength")} 50`,
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
UserTypeId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }],
|
UserTypeId: [
|
||||||
Phone: [
|
{
|
||||||
{ required: false, validator: checkPhone, trigger: ['blur'] }
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:select"),
|
||||||
|
trigger: ["blur"],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
|
Phone: [{ required: false, validator: checkPhone, trigger: ["blur"] }],
|
||||||
Email: [
|
Email: [
|
||||||
{ required: true, validator: validateEmail, trigger: ['blur'] }
|
{ required: true, validator: validateEmail, trigger: ["blur"] },
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
userRoles: [],
|
userRoles: [],
|
||||||
userTypeEnumInt: 0,
|
userTypeEnumInt: 0,
|
||||||
model_cfg: { visible: false, showClose: true, width: '600px', title: '', appendToBody: true },
|
model_cfg: {
|
||||||
trialId: '',
|
visible: false,
|
||||||
errorMsg: null
|
showClose: true,
|
||||||
}
|
width: "600px",
|
||||||
|
title: "",
|
||||||
|
appendToBody: true,
|
||||||
|
},
|
||||||
|
trialId: "",
|
||||||
|
errorMsg: null,
|
||||||
|
hospitalName: null,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
model_cfg: {
|
model_cfg: {
|
||||||
handler(newName, oldName) {
|
handler(newName, oldName) {
|
||||||
this.errorMsg = null
|
this.errorMsg = null;
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true,
|
||||||
|
},
|
||||||
|
"form.UserTypeId": {
|
||||||
|
handler() {
|
||||||
|
if (this.form.UserTypeId) {
|
||||||
|
let name = this.getUserType(this.form.UserTypeId);
|
||||||
|
if (["PM", "PI", "SR", "OA"].includes(name)) {
|
||||||
|
this.form.IsZhiZhun = true;
|
||||||
|
this.form.OrganizationName = this.hospitalName;
|
||||||
|
return (this.IsZhiZhunDisabled = true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
this.form.IsZhiZhun = false;
|
||||||
|
this.form.OrganizationName = null;
|
||||||
|
this.IsZhiZhunDisabled = false;
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId;
|
||||||
|
this.getInfo();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取医院信息
|
||||||
|
async getInfo() {
|
||||||
|
try {
|
||||||
|
let res = await getHospital();
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.hospitalName = res.Result.HospitalName;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getUserType(id) {
|
||||||
|
let obj = this.userTypeOptions.find((item) => item.Id === id);
|
||||||
|
return obj.UserTypeShortName;
|
||||||
|
},
|
||||||
openDialog(title, data) {
|
openDialog(title, data) {
|
||||||
this.model_cfg.visible = true
|
this.model_cfg.visible = true;
|
||||||
this.model_cfg.title = title
|
this.model_cfg.title = title;
|
||||||
if (Object.keys(data).length) {
|
if (Object.keys(data).length) {
|
||||||
this.form = { ...data }
|
this.form = { ...data };
|
||||||
} else {
|
} else {
|
||||||
this.form = formDataDefault()
|
this.form = formDataDefault();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleSave(v) {
|
handleSave(v) {
|
||||||
this.$refs.anonymizationFrom.validate(valid => {
|
this.$refs.anonymizationFrom.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.btnLoading = true
|
this.btnLoading = true;
|
||||||
this.form.TrialId = this.trialId
|
this.form.TrialId = this.trialId;
|
||||||
if (v === 'SendEmail') {
|
if (v === "SendEmail") {
|
||||||
this.form.IsSendEmail = true
|
this.form.IsSendEmail = true;
|
||||||
this.form.BaseUrl = `${location.protocol}//${location.host}/login`
|
this.form.BaseUrl = `${location.protocol}//${location.host}/login`;
|
||||||
this.form.RouteUrl = `${location.protocol}//${location.host}/email-recompose`
|
this.form.RouteUrl = `${location.protocol}//${location.host}/email-recompose`;
|
||||||
}
|
}
|
||||||
addOrUpdateTrialExternalUser(this.form).then(res => {
|
addUser(this.form)
|
||||||
this.btnLoading = false
|
.then((res) => {
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.btnLoading = false;
|
||||||
this.model_cfg.visible = false
|
this.$message.success(
|
||||||
this.$emit('getList')
|
this.$t("common:message:savedSuccessfully")
|
||||||
}).catch((res) => {
|
);
|
||||||
|
this.model_cfg.visible = false;
|
||||||
|
this.$emit("getList");
|
||||||
|
})
|
||||||
|
.catch((res) => {
|
||||||
if (res.Result) {
|
if (res.Result) {
|
||||||
this.$set(this.form, 'LastName', res.Result.LastName)
|
// this.$set(this.form, "LastName", res.Result.LastName);
|
||||||
this.$set(this.form, 'FirstName', res.Result.FirstName)
|
// this.$set(this.form, "FirstName", res.Result.FirstName);
|
||||||
this.$set(this.form, 'Phone', res.Result.Phone)
|
// this.$set(this.form, "Phone", res.Result.Phone);
|
||||||
this.errorMsg = res.ErrorMessage
|
this.errorMsg = res.ErrorMessage;
|
||||||
}
|
}
|
||||||
this.btnLoading = false
|
this.btnLoading = false;
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.model_cfg.visible = false
|
this.model_cfg.visible = false;
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -11,13 +11,13 @@
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
<!-- 用户名 -->
|
<!-- 用户名 -->
|
||||||
<span>{{ $t("trials:staff:table:uid") }}:</span>
|
<!-- <span>{{ $t("trials:staff:table:uid") }}:</span>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="listQuery.UserName"
|
v-model="listQuery.UserName"
|
||||||
size="mini"
|
size="mini"
|
||||||
class="mr"
|
class="mr"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/> -->
|
||||||
<!-- 单位 -->
|
<!-- 单位 -->
|
||||||
<span>{{ $t("trials:staff:table:organization") }}:</span>
|
<span>{{ $t("trials:staff:table:organization") }}:</span>
|
||||||
<el-input
|
<el-input
|
||||||
|
@ -26,6 +26,9 @@
|
||||||
class="mr"
|
class="mr"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
|
<!-- 邮箱 -->
|
||||||
|
<span>{{ $t("trials:externalStaff:table:email") }}:</span>
|
||||||
|
<el-input v-model="listQuery.EMail" size="mini" class="mr" clearable />
|
||||||
<!-- 用户类型 -->
|
<!-- 用户类型 -->
|
||||||
<span>{{ $t("trials:staff:table:userType") }}:</span>
|
<span>{{ $t("trials:staff:table:userType") }}:</span>
|
||||||
<el-select
|
<el-select
|
||||||
|
@ -35,10 +38,10 @@
|
||||||
class="mr"
|
class="mr"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userTypeOptions"
|
v-for="item of $d.UserType"
|
||||||
:key="item.Id"
|
:key="item.id"
|
||||||
:label="item.UserTypeShortName"
|
:label="item.label"
|
||||||
:value="item.UserTypeEnum"
|
:value="item.value"
|
||||||
>
|
>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -60,17 +63,26 @@
|
||||||
>
|
>
|
||||||
{{ $t("common:button:reset") }}
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!--添加新用户-->
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['role:pm']"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:add") }}
|
||||||
|
</el-button>
|
||||||
|
<!--确认用户选择-->
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
style="margin-left: auto"
|
style="margin-left: auto"
|
||||||
:disabled="selectArr.length === 0"
|
:disabled="selectArr.length === 0"
|
||||||
:loading="assignLoadStatus"
|
:loading="assignLoadStatus"
|
||||||
icon="el-icon-plus"
|
|
||||||
@click="handleAssign"
|
@click="handleAssign"
|
||||||
>
|
>
|
||||||
{{ $t("common:button:add") }}
|
{{ $t("common:button:confirm") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-header>
|
</el-header>
|
||||||
|
@ -99,13 +111,13 @@
|
||||||
min-width="100"
|
min-width="100"
|
||||||
/>
|
/>
|
||||||
<!-- 用户名 -->
|
<!-- 用户名 -->
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
prop="UserName"
|
prop="UserName"
|
||||||
:label="$t('trials:staff:table:uid')"
|
:label="$t('trials:staff:table:uid')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
/>
|
/> -->
|
||||||
<!-- 电话 -->
|
<!-- 电话 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Phone"
|
prop="Phone"
|
||||||
|
@ -149,27 +161,38 @@
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<staffExternalAdd
|
||||||
|
ref="StaffExternalAdd"
|
||||||
|
:userTypeOptions="userTypeOptions"
|
||||||
|
@getList="getList"
|
||||||
|
/>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { getTrialUserScreeningList, addTrialUsers } from "@/api/trials";
|
||||||
getTrialUserScreeningList,
|
|
||||||
addTrialUsers,
|
|
||||||
getUserTypeList,
|
|
||||||
} from "@/api/trials";
|
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
|
import staffExternalAdd from "./staffExternalAdd.vue";
|
||||||
const getListQueryDefault = () => {
|
const getListQueryDefault = () => {
|
||||||
return {
|
return {
|
||||||
UserRealName: "",
|
UserRealName: "",
|
||||||
UserName: "",
|
UserName: "",
|
||||||
OrganizationName: "",
|
OrganizationName: "",
|
||||||
|
EMail: null,
|
||||||
UserTypeEnum: "",
|
UserTypeEnum: "",
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination, staffExternalAdd },
|
||||||
|
props: {
|
||||||
|
userTypeOptions: {
|
||||||
|
required: true,
|
||||||
|
default: () => {
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [],
|
list: [],
|
||||||
|
@ -178,17 +201,24 @@ export default {
|
||||||
selectArr: [],
|
selectArr: [],
|
||||||
assignLoadStatus: false,
|
assignLoadStatus: false,
|
||||||
isAdmin: JSON.parse(zzSessionStorage.getItem("IsAdmin")),
|
isAdmin: JSON.parse(zzSessionStorage.getItem("IsAdmin")),
|
||||||
userTypeOptions: [],
|
|
||||||
trialId: "",
|
trialId: "",
|
||||||
qCProcessEnum: null,
|
qCProcessEnum: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId;
|
this.trialId = this.$route.query.trialId;
|
||||||
this.getUserType();
|
// this.getUserType();
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleAdd() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs["StaffExternalAdd"].openDialog(
|
||||||
|
this.$t("trials:externalStaff:dialogTitle:add"),
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
},
|
||||||
getList() {
|
getList() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
target: document.querySelector(".participant-container"),
|
target: document.querySelector(".participant-container"),
|
||||||
|
@ -263,11 +293,11 @@ export default {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getUserType() {
|
// getUserType() {
|
||||||
getUserTypeList(2).then((res) => {
|
// getUserTypeList(2).then((res) => {
|
||||||
this.userTypeOptions = res.Result;
|
// this.userTypeOptions = res.Result;
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -38,34 +38,6 @@
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 申请号 -->
|
|
||||||
<!-- <el-form-item :label="$t('trials:study:form:accessionNumber')">
|
|
||||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
|
||||||
</el-form-item> -->
|
|
||||||
<!-- 检查设备 -->
|
|
||||||
<!-- <el-form-item :label="$t('trials:studyList:table:modality')">
|
|
||||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="item of $d.sex"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item> -->
|
|
||||||
<!-- 检查类型 -->
|
|
||||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:form:modality')">
|
|
||||||
<el-select v-model="searchData.Modalities" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="item of $d.modalType"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item> -->
|
|
||||||
<!-- 检查日期 -->
|
<!-- 检查日期 -->
|
||||||
<el-form-item :label="$t('trials:audit:table:studyDate')">
|
<el-form-item :label="$t('trials:audit:table:studyDate')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
@ -77,18 +49,6 @@
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 状态 -->
|
|
||||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:table:status')">
|
|
||||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="item of $d.sex"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item> -->
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
|
@ -460,6 +420,7 @@ export default {
|
||||||
});
|
});
|
||||||
var newWindow = window.open(routeData.href, "_blank");
|
var newWindow = window.open(routeData.href, "_blank");
|
||||||
this.$emit("setOpenWindow", newWindow);
|
this.$emit("setOpenWindow", newWindow);
|
||||||
|
this.$setOpenWindow(newWindow);
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
|
|
|
@ -107,6 +107,7 @@
|
||||||
:Patient="Patient"
|
:Patient="Patient"
|
||||||
:submitMessage="submitMessage"
|
:submitMessage="submitMessage"
|
||||||
:status="status"
|
:status="status"
|
||||||
|
@close="beforeCloseStudyDig"
|
||||||
/>
|
/>
|
||||||
<base-model v-if="patient_model.visible" :config="patient_model">
|
<base-model v-if="patient_model.visible" :config="patient_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:visible.sync="visible"
|
:visible.sync="visible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:fullscreen="true"
|
|
||||||
custom-class="upload-dialog"
|
custom-class="upload-dialog"
|
||||||
:before-close="beforeClosePitentDig"
|
:before-close="beforeClosePitentDig"
|
||||||
>
|
>
|
||||||
|
@ -10,10 +9,9 @@
|
||||||
<el-table
|
<el-table
|
||||||
ref="patientStudyList"
|
ref="patientStudyList"
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{ bottomOffset: 60 }"
|
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="300px"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<!--患者ID-->
|
<!--患者ID-->
|
||||||
|
@ -49,7 +47,7 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--操作-->
|
<!--操作-->
|
||||||
<el-table-column :label="$t('common:action:action')" width="250">
|
<el-table-column :label="$t('common:action:action')" width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
circle
|
circle
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
<el-input v-model="searchData.Code" style="width: 130px" clearable />
|
<el-input v-model="searchData.Code" style="width: 130px" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 患者编号 -->
|
<!-- 患者编号 -->
|
||||||
<!-- <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||||
<el-input v-model="searchData.Code" style="width: 130px" />
|
<el-input v-model="searchData.PatientIdStr" style="width: 130px" />
|
||||||
</el-form-item> -->
|
</el-form-item>
|
||||||
<!-- 姓名 -->
|
<!-- 姓名 -->
|
||||||
<el-form-item :label="$t('trials:researchStaff:table:Name')">
|
<el-form-item :label="$t('trials:researchStaff:table:Name')">
|
||||||
<el-input
|
<el-input
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 状态 -->
|
<!-- 状态 -->
|
||||||
<el-form-item :label="$t('trials:subject:table:status')">
|
<!-- <el-form-item :label="$t('trials:subject:table:status')">
|
||||||
<el-select v-model="searchData.Status" clearable style="width: 130px">
|
<el-select v-model="searchData.Status" clearable style="width: 130px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Subject_Visit_Status"
|
v-for="item of $d.Subject_Visit_Status"
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
|
@ -162,7 +162,18 @@
|
||||||
:label="$t('trials:subject:table:totalVisitCount')"
|
:label="$t('trials:subject:table:totalVisitCount')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.VisitCount >= 1"
|
||||||
|
type="text"
|
||||||
|
@click="gotoVisit(scope.row)"
|
||||||
|
>
|
||||||
|
<span>{{ scope.row.VisitCount }}</span>
|
||||||
|
</el-button>
|
||||||
|
<span v-else>{{ scope.row.VisitCount }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 最新检查访视 -->
|
<!-- 最新检查访视 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="LatestVisitName"
|
prop="LatestVisitName"
|
||||||
|
@ -307,6 +318,7 @@ import patientStudyList from "./components/patient-study-list.vue";
|
||||||
// import confirmVisitList from "../../../trials-inspection/components/confirm-visit-list.vue";
|
// import confirmVisitList from "../../../trials-inspection/components/confirm-visit-list.vue";
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
|
PatientIdStr: null,
|
||||||
Code: "",
|
Code: "",
|
||||||
Status: "",
|
Status: "",
|
||||||
Sex: "",
|
Sex: "",
|
||||||
|
@ -360,6 +372,15 @@ export default {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 跳转至访视页
|
||||||
|
gotoVisit(item) {
|
||||||
|
let query = this.$route.query;
|
||||||
|
this.$router.push({
|
||||||
|
path: "/trials/trials-panel/hir-visit",
|
||||||
|
query,
|
||||||
|
});
|
||||||
|
zzSessionStorage.setItem("SubjectCode", item.Code);
|
||||||
|
},
|
||||||
handleExport() {
|
handleExport() {
|
||||||
getSubjectList_Export(this.searchData)
|
getSubjectList_Export(this.searchData)
|
||||||
.then((res) => {})
|
.then((res) => {})
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -116,13 +116,13 @@
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
:label="$t('trials:trial-information:title:activationDate')"
|
:label="$t('trials:trial-information:title:activationDate')"
|
||||||
>
|
>
|
||||||
{{ trialInfo.AuthorizationDate }}
|
{{ otherInfo.ActiveTime }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<!--授权日期-->
|
<!--授权日期-->
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
:label="$t('trials:trials-list:table:dateAuthorized')"
|
:label="$t('trials:trials-list:table:dateAuthorized')"
|
||||||
>
|
>
|
||||||
{{ trialInfo.AuthorizationDate }}
|
{{ otherInfo.AuthorizationDeadLineDate }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-button
|
<el-button
|
||||||
|
|
Loading…
Reference in New Issue