Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
b7c57c3c27
|
|
@ -391,3 +391,35 @@ export function getReSendEmail(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取系统基础配置
|
||||
export function getSystemBasicConfigInfo() {
|
||||
return request({
|
||||
url: `/DeployConfig/getSystemBasicConfigInfo`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
// 更新系统基础配置
|
||||
export function updateSystemBasicConfig(data) {
|
||||
return request({
|
||||
url: `/DeployConfig/updateSystemBasicConfig`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 获取系统邮件配置
|
||||
export function getEmailConfigInfo() {
|
||||
return request({
|
||||
url: `/DeployConfig/getEmailConfigInfo`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
// 更新系统邮件配置
|
||||
export function updateSystemEmailConfig(data) {
|
||||
return request({
|
||||
url: `/DeployConfig/updateSystemEmailConfig`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,11 +50,11 @@ export const constantRoutes = [
|
|||
component: () => import('@/views/login/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/test',
|
||||
component: () => import('@/views/test/index'),
|
||||
hidden: true
|
||||
},
|
||||
// {
|
||||
// path: '/test',
|
||||
// component: () => import('@/views/test/index'),
|
||||
// hidden: true
|
||||
// },
|
||||
{
|
||||
path: '/resetpassword',
|
||||
component: () => import('@/views/forgetpassword/index'),
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<el-form ref="equipmentForm" :model="form" :rules="rules" label-width="150px">
|
||||
<el-form ref="equipmentForm" :model="form" :rules="rules" label-width="300px">
|
||||
<div class="base-dialog-body">
|
||||
<!-- 扫描设备 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:equipment')" prop="EquipmentTypeId"
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:equipment')" prop="EquipmentTypeEnum"
|
||||
v-if="EquipmentControlFieldList.includes('EquipmentTypeEnum')">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-select v-model="form.EquipmentTypeEnum" style="width:100%" @change="form.OtherEquipmentType = null">
|
||||
|
|
@ -16,12 +16,12 @@
|
|||
</el-form-item>
|
||||
<!-- 扫描参数 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:param')"
|
||||
v-if="EquipmentControlFieldList.includes('Parameters')">
|
||||
v-if="EquipmentControlFieldList.includes('Parameters')" prop="Parameters">
|
||||
<el-input v-model="form.Parameters" />
|
||||
</el-form-item>
|
||||
<!-- 扫描仪器制造商名称 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:manufacturer')"
|
||||
v-if="EquipmentControlFieldList.includes('ManufacturerType')">
|
||||
v-if="EquipmentControlFieldList.includes('ManufacturerType')" prop="ManufacturerType">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-select v-model="form.ManufacturerType" style="width:100%" @change="form.ManufacturerName = null">
|
||||
<el-option v-for="item of $d.ManufacturerType" :key="item.id" :label="item.label" :value="item.value" />
|
||||
|
|
@ -33,12 +33,12 @@
|
|||
</el-form-item>
|
||||
<!-- 扫描仪型号 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:model')"
|
||||
v-if="EquipmentControlFieldList.includes('ScannerType')">
|
||||
v-if="EquipmentControlFieldList.includes('ScannerType')" prop="ScannerType">
|
||||
<el-input v-model="form.ScannerType" />
|
||||
</el-form-item>
|
||||
<!-- 磁场强度 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:MagneticFieldStrengthType')"
|
||||
v-if="EquipmentControlFieldList.includes('MagneticFieldStrengthType')">
|
||||
v-if="EquipmentControlFieldList.includes('MagneticFieldStrengthType')" prop="MagneticFieldStrengthType">
|
||||
<el-select v-model="form.MagneticFieldStrengthType" style="width:100%">
|
||||
<el-option v-for="item of $d.MagneticFieldStrengthType" :key="item.id" :label="item.label"
|
||||
:value="item.value" />
|
||||
|
|
@ -46,21 +46,15 @@
|
|||
</el-form-item>
|
||||
<!-- 体部线圈通道数 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:BodyCoilChannelCount')"
|
||||
v-if="EquipmentControlFieldList.includes('BodyCoilChannelCount')">
|
||||
v-if="EquipmentControlFieldList.includes('BodyCoilChannelCount')" prop="BodyCoilChannelCount">
|
||||
<el-select v-model="form.BodyCoilChannelCount" style="width:100%">
|
||||
<el-option v-for="item of $d.BodyCoilChannelCount" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否具备专用的PDFF脂肪定量序列(CSE-MRI序列) -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:HasDedicatedPdfFatQuantificationSequence')"
|
||||
v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')">
|
||||
<el-select v-model="form.HasDedicatedPdfFatQuantificationSequence" style="width:100%">
|
||||
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否具备专用的PDFF脂肪定量序列(CSE-MRI序列) -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:HasDedicatedPdfFatQuantificationSequence')"
|
||||
v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')">
|
||||
v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')"
|
||||
prop="HasDedicatedPdfFatQuantificationSequence">
|
||||
<el-select v-model="form.HasDedicatedPdfFatQuantificationSequence" style="width:100%"
|
||||
@change="form.PdfFatQuantificationSequenceType = null, form.OtherSequenceSpecification = null">
|
||||
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
|
|
@ -68,6 +62,7 @@
|
|||
</el-form-item>
|
||||
<!-- PDFF脂肪定量序列 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:PdfFatQuantificationSequenceType')"
|
||||
prop="PdfFatQuantificationSequenceType"
|
||||
v-if="form.HasDedicatedPdfFatQuantificationSequence && EquipmentControlFieldList.includes('PdfFatQuantificationSequenceType')">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-select v-model="form.PdfFatQuantificationSequenceType" style="width:100%"
|
||||
|
|
@ -81,7 +76,7 @@
|
|||
</div>
|
||||
</el-form-item>
|
||||
<!-- 是否包含 T2/R2 校正(用于铁沉积校正) -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:HasT2R2Correction')"
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:HasT2R2Correction')" prop="HasT2R2Correction"
|
||||
v-if="EquipmentControlFieldList.includes('HasT2R2Correction')">
|
||||
<el-select v-model="form.HasT2R2Correction" style="width:100%">
|
||||
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
|
|
@ -89,13 +84,14 @@
|
|||
</el-form-item>
|
||||
<!-- 是否可完整导出 PDFF 参数图及全部原始 DICOM 数据 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:CanFullyExportPdfParameterMapsAndRawDicom')"
|
||||
prop="CanFullyExportPdfParameterMapsAndRawDicom"
|
||||
v-if="EquipmentControlFieldList.includes('CanFullyExportPdfParameterMapsAndRawDicom')">
|
||||
<el-select v-model="form.CanFullyExportPdfParameterMapsAndRawDicom" style="width:100%">
|
||||
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 备注 -->
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:remark')"
|
||||
<el-form-item :label="$t('trials:equiptResearch:form:remark')" prop="Note"
|
||||
v-if="EquipmentControlFieldList.includes('Note')">
|
||||
<el-input v-model="form.Note" />
|
||||
</el-form-item>
|
||||
|
|
@ -160,8 +156,65 @@ export default {
|
|||
},
|
||||
rules: {
|
||||
EquipmentTypeEnum: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (this.form.EquipmentTypeEnum === -1 && !this.form.OtherEquipmentType) {
|
||||
callback(this.$t('common:ruleMessage:specify'));
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']
|
||||
},
|
||||
],
|
||||
Parameters: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
Note: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
ManufacturerType: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (this.form.ManufacturerType === -1 && !this.form.ManufacturerName) {
|
||||
callback(this.$t('common:ruleMessage:specify'));
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']
|
||||
},
|
||||
],
|
||||
ScannerType: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
MagneticFieldStrengthType: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
|
||||
]
|
||||
],
|
||||
BodyCoilChannelCount: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
HasDedicatedPdfFatQuantificationSequence: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
PdfFatQuantificationSequenceType: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (this.form.PdfFatQuantificationSequenceType === -1 && !this.form.OtherSequenceSpecification) {
|
||||
callback(this.$t('common:ruleMessage:specify'));
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']
|
||||
},
|
||||
],
|
||||
HasT2R2Correction: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
CanFullyExportPdfParameterMapsAndRawDicom: [
|
||||
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
|
||||
],
|
||||
},
|
||||
btnLoading: false,
|
||||
dictionaryList: {}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@
|
|||
</el-table>
|
||||
|
||||
<!-- 新增/编辑人员信息 -->
|
||||
<el-dialog v-if="editVisible" :visible.sync="editVisible" :close-on-click-modal="false" :title="title" width="600px"
|
||||
<el-dialog v-if="editVisible" :visible.sync="editVisible" :close-on-click-modal="false" :title="title" width="800px"
|
||||
custom-class="base-dialog-wrapper" :append-to-body="userTypeEnumInt !== 0">
|
||||
<EquipmentForm :data="rowData" :trial-site-survey-equipment-type="trialSiteSurveyEquipmentType"
|
||||
:EquipmentControlFieldList="EquipmentControlFieldList" @getList="getList" @close="closeDialog" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,423 @@
|
|||
<template>
|
||||
<div class="systemConfig" v-loading="loading">
|
||||
<div ref="leftContainer" class="left" style="padding: 20px;">
|
||||
<el-form :inline="true" :model="form" :rules="rules" ref="systemConfigForm"
|
||||
style="display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;">
|
||||
<h3>{{ $t("system:config:BasicSystemConfig") }}</h3>
|
||||
<el-form-item :label="$t('system:config:QcRiskControl')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.QCRiskControl" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OpenUserComplexPassword')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.OpenUserComplexPassword" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OpenSignDocumentBeforeWork')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.OpenSignDocumentBeforeWork" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OpenTrialRelationDelete')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.OpenTrialRelationDelete" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OpenLoginLimit')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.OpenLoginLimit" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:LoginMaxFailCount')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.LoginMaxFailCount">
|
||||
<el-input v-model="form.BasicSystemConfig.LoginMaxFailCount" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:LoginFailLockMinutes')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.LoginFailLockMinutes">
|
||||
<el-input v-model="form.BasicSystemConfig.LoginFailLockMinutes" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:AutoLoginOutMinutes')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.AutoLoginOutMinutes">
|
||||
<el-input v-model="form.BasicSystemConfig.AutoLoginOutMinutes" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OpenLoginMFA')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.OpenLoginMFA" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:ContinuousReadingTimeMin')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.ContinuousReadingTimeMin">
|
||||
<el-input v-model="form.BasicSystemConfig.ContinuousReadingTimeMin" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:ReadingRestTimeMin')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.ReadingRestTimeMin">
|
||||
<el-input v-model="form.BasicSystemConfig.ReadingRestTimeMin" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:IsNeedChangePassWord')" style="width: 45%;">
|
||||
<el-select v-model="form.BasicSystemConfig.IsNeedChangePassWord" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:ChangePassWordDays')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.ChangePassWordDays">
|
||||
<el-input v-model="form.BasicSystemConfig.ChangePassWordDays" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:TemplateType')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.TemplateType">
|
||||
<el-select v-model="form.BasicSystemConfig.TemplateType" placeholder="">
|
||||
<el-option v-for="item in $d.SysTemplateType" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:ThirdPdfUrl')" style="width: 45%;" prop="BasicSystemConfig.ThirdPdfUrl">
|
||||
<el-input v-model="form.BasicSystemConfig.ThirdPdfUrl" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:UserMFAVerifyMinutes')" style="width: 45%;"
|
||||
prop="BasicSystemConfig.UserMFAVerifyMinutes">
|
||||
<el-input v-model="form.BasicSystemConfig.UserMFAVerifyMinutes" clearable type="number" />
|
||||
</el-form-item>
|
||||
<h3>{{ $t("system:config:SystemEmailSendConfig") }}</h3>
|
||||
<el-form-item :label="$t('system:config:Host')" style="width: 45%;" prop="SystemEmailSendConfig.Host">
|
||||
<el-input v-model="form.SystemEmailSendConfig.Host" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:Port')" style="width: 45%;" prop="SystemEmailSendConfig.Port">
|
||||
<el-input v-model="form.SystemEmailSendConfig.Port" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:Imap')" style="width: 45%;" prop="SystemEmailSendConfig.Imap">
|
||||
<el-input v-model="form.SystemEmailSendConfig.Imap" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:ImapPort')" style="width: 45%;" prop="SystemEmailSendConfig.ImapPort">
|
||||
<el-input v-model="form.SystemEmailSendConfig.ImapPort" clearable type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:FromEmail')" style="width: 45%;" prop="SystemEmailSendConfig.FromEmail">
|
||||
<el-input v-model="form.SystemEmailSendConfig.FromEmail" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:FromName')" style="width: 45%;" prop="SystemEmailSendConfig.FromName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.FromName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:AuthorizationCode')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.AuthorizationCode">
|
||||
<el-input v-model="form.SystemEmailSendConfig.AuthorizationCode" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:SiteUrl')" style="width: 45%;" prop="SystemEmailSendConfig.SiteUrl">
|
||||
<el-input v-model="form.SystemEmailSendConfig.SiteUrl" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:SystemShortName')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.SystemShortName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.SystemShortName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OrganizationName')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.OrganizationName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.OrganizationName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:OrganizationNameCN')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.OrganizationNameCN">
|
||||
<el-input v-model="form.SystemEmailSendConfig.OrganizationNameCN" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:PlatformName')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.PlatformName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.PlatformName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:PlatformNameCN')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.PlatformNameCN">
|
||||
<el-input v-model="form.SystemEmailSendConfig.PlatformNameCN" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:CompanyName')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.CompanyName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.CompanyName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:CompanyNameCN')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.CompanyNameCN">
|
||||
<el-input v-model="form.SystemEmailSendConfig.CompanyNameCN" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:CompanyShortName')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.CompanyShortName">
|
||||
<el-input v-model="form.SystemEmailSendConfig.CompanyShortName" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:CompanyShortNameCN')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.CompanyShortNameCN">
|
||||
<el-input v-model="form.SystemEmailSendConfig.CompanyShortNameCN" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:IsEnv_US')" style="width: 45%;">
|
||||
<el-select v-model="form.SystemEmailSendConfig.IsEnv_US" placeholder="">
|
||||
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system:config:EmailRegexStr')" style="width: 45%;"
|
||||
prop="SystemEmailSendConfig.EmailRegexStr">
|
||||
<el-input v-model="form.SystemEmailSendConfig.EmailRegexStr" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 100%;text-align: right;">
|
||||
<el-button type="primary" size="small" @click="handleSave">
|
||||
{{ $t('common:button:save') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getSystemBasicConfigInfo, getEmailConfigInfo, updateSystemBasicConfig, updateSystemEmailConfig } from '@/api/admin'
|
||||
export default {
|
||||
name: "systemConfig",
|
||||
data() {
|
||||
return {
|
||||
rules: {
|
||||
'BasicSystemConfig.LoginMaxFailCount': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.LoginFailLockMinutes': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.AutoLoginOutMinutes': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.ContinuousReadingTimeMin': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.ReadingRestTimeMin': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.ChangePassWordDays': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.TemplateType': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.UserMFAVerifyMinutes': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'BasicSystemConfig.ThirdPdfUrl': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
|
||||
'SystemEmailSendConfig.Host': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.Port': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'SystemEmailSendConfig.Imap': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.ImapPort': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||
{ type: 'number', message: this.$t('systemConfig:ruleMessage:mustNumber'), trigger: 'blur' },
|
||||
],
|
||||
'SystemEmailSendConfig.FromEmail': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.FromName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.AuthorizationCode': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.SiteUrl': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.SystemShortName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.OrganizationName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.OrganizationNameCN': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.PlatformName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.PlatformNameCN': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.CompanyName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.CompanyNameCN': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.CompanyShortName': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.CompanyShortNameCN': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
'SystemEmailSendConfig.EmailRegexStr': [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||
],
|
||||
},
|
||||
form: {
|
||||
"BasicSystemConfig": {
|
||||
// 启用质控风险控制功能
|
||||
"QCRiskControl": true,
|
||||
// 打开用户复杂密码
|
||||
"OpenUserComplexPassword": false,
|
||||
// 是否在开始工作前强制签署电子知情同意书
|
||||
"OpenSignDocumentBeforeWork": false,
|
||||
// 是否打开项目关联删除
|
||||
"OpenTrialRelationDelete": false,
|
||||
//是否启用登录失败次数限制(防暴力破解)
|
||||
"OpenLoginLimit": false,
|
||||
// 连续登录失败多少次后触发锁定
|
||||
"LoginMaxFailCount": 5,
|
||||
//触发锁定后账号锁定时长(分钟)
|
||||
"LoginFailLockMinutes": 1,
|
||||
//无操作自动登出的超时时间(分钟)
|
||||
"AutoLoginOutMinutes": 10,
|
||||
// 是否启用多因子登录认证(MFA)
|
||||
"OpenLoginMFA": false,
|
||||
// 连续阅片的最长工作时间(分钟),超时后强制休息
|
||||
"ContinuousReadingTimeMin": 120,
|
||||
//强制休息时长(分钟)
|
||||
"ReadingRestTimeMin": 10,
|
||||
// 是否强制用户定期修改密码
|
||||
"IsNeedChangePassWord": true,
|
||||
// 密码有效期(天),到期后必须修改
|
||||
"ChangePassWordDays": 90,
|
||||
//模板类型1Elevate(LiLi)2Extensive(展影)
|
||||
"TemplateType": 2,
|
||||
// 转换PDF服务配置
|
||||
"ThirdPdfUrl": "http://106.14.89.110:30088/api/v1/convert/file/pdf",
|
||||
//MFA免验证发送天数
|
||||
"UserMFAVerifyMinutes": 1440
|
||||
},
|
||||
// 邮件服务配置(用于系统通知、找回密码、错误报警等'
|
||||
"SystemEmailSendConfig": {
|
||||
//企业邮箱sMTP服务器地址
|
||||
"Host": "smtp.qiye.aliyun.com",
|
||||
//SMTP端口
|
||||
"Port": 465,
|
||||
"Imap": "imap.qiye.aliyun.com",
|
||||
"ImapPort": 993,
|
||||
// 发件人邮箱地址
|
||||
"FromEmail": "test@extimaging.com",
|
||||
// 发件人显示名称
|
||||
"FromName": "Test IRC Imaging System",
|
||||
//SMTP授权码
|
||||
"AuthorizationCode": "SHzyyl2021",
|
||||
//系统对外访问地址
|
||||
"SiteUrl": "http://irc.test.extimaging.com/login",
|
||||
//系统简称-致性核查使用
|
||||
"SystemShortName": "IRC",
|
||||
// 组织英文名称-添加用户默认值
|
||||
"OrganizationName": "ExtImaging",
|
||||
// 组织中文名称
|
||||
"OrganizationNameCN": "ExtImaging",
|
||||
"PlatformName": "EICS",
|
||||
"PlatformNameCN": "展影云平台",
|
||||
//公司英文全称
|
||||
"CompanyName": "Extensive Imaging",
|
||||
// 公司中文全称,
|
||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
||||
//公司英文简称
|
||||
"CompanyShortName": "Extensive Imaging",
|
||||
//公司中文简称
|
||||
"CompanyShortNameCN": "展影医疗",
|
||||
// 是否为国际版环境 方便前端区分,用于区分1i1li还是irc 做一些事情"
|
||||
"IsEnv_US": false,
|
||||
// 邮箱格式校验正则表达式
|
||||
"EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
|
||||
//后端周期性邮件默认语言
|
||||
// "CronEmailDefaultCulture": "zh-CN"
|
||||
}
|
||||
},
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getInfo()
|
||||
},
|
||||
methods: {
|
||||
handleSave() {
|
||||
this.loading = true
|
||||
Promise.all([this.updateSystemBasicConfig(), this.updateSystemEmailConfig()]).then(res => {
|
||||
this.loading = false
|
||||
this.getInfo()
|
||||
})
|
||||
},
|
||||
getInfo() {
|
||||
this.loading = true
|
||||
Promise.all([this.getSystemBasicConfigInfo(), this.getEmailConfigInfo()]).then(res => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
async updateSystemBasicConfig() {
|
||||
try {
|
||||
let validate = await this.$refs.systemConfigForm.validate()
|
||||
if (!validate) return false
|
||||
let data = {}
|
||||
Object.keys(this.form.BasicSystemConfig).forEach(key => {
|
||||
data[key] = this.form.BasicSystemConfig[key]
|
||||
})
|
||||
let res = await updateSystemBasicConfig(data)
|
||||
if (res.IsSuccess) {
|
||||
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
async updateSystemEmailConfig() {
|
||||
try {
|
||||
let validate = await this.$refs.systemConfigForm.validate()
|
||||
if (!validate) return false
|
||||
let data = {}
|
||||
Object.keys(this.form.SystemEmailSendConfig).forEach(key => {
|
||||
data[key] = this.form.SystemEmailSendConfig[key]
|
||||
})
|
||||
let res = await updateSystemEmailConfig(data)
|
||||
if (res.IsSuccess) {
|
||||
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
async getSystemBasicConfigInfo() {
|
||||
try {
|
||||
let res = await getSystemBasicConfigInfo()
|
||||
if (res.IsSuccess) {
|
||||
Object.keys(this.form.BasicSystemConfig).forEach(key => {
|
||||
this.form.BasicSystemConfig[key] = res.Result[key]
|
||||
})
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
async getEmailConfigInfo() {
|
||||
try {
|
||||
let res = await getEmailConfigInfo()
|
||||
if (res.IsSuccess) {
|
||||
Object.keys(this.form.SystemEmailSendConfig).forEach(key => {
|
||||
this.form.SystemEmailSendConfig[key] = res.Result[key]
|
||||
})
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
console.log(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.systemConfig {
|
||||
overflow-y: auto;
|
||||
|
||||
h3 {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -217,8 +217,15 @@ export default {
|
|||
this.form.ReplaceContentCN = res.Result.ModifyFiledList[0].ReplaceContentCN.split('<p>').join('').split('</p>').filter(item => isNaN(item)).join("\n")
|
||||
} else {
|
||||
let arr = [this.$t('trials:equiptResearch:form:item1'), this.$t('trials:equiptResearch:form:item2'), this.$t('trials:equiptResearch:form:item3'), this.$t('trials:equiptResearch:form:item4')]
|
||||
// this.form.ReplaceContent = arr.join("\n")
|
||||
this.form.ReplaceContentCN = arr.join("\n")
|
||||
let arr2 = [this.$t('trials:equiptResearch:form:item5'), this.$t('trials:equiptResearch:form:item6'), this.$t('trials:equiptResearch:form:item7'), this.$t('trials:equiptResearch:form:item8')]
|
||||
if (this.$i18n.locale !== 'zh') {
|
||||
this.form.ReplaceContentCN = arr2.join("\n")
|
||||
this.form.ReplaceContent = arr.join("\n")
|
||||
} else {
|
||||
this.form.ReplaceContentCN = arr.join("\n")
|
||||
this.form.ReplaceContent = arr2.join("\n")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
|
|
|
|||
|
|
@ -118,6 +118,23 @@
|
|||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- QC质控下载 -->
|
||||
<el-form-item :label="$t('trials:logincCfg:form:IsSupportQCDownloadImage')" prop="IsSupportQCDownloadImage"
|
||||
v-if="showMore">
|
||||
<el-radio-group v-model="form.IsSupportQCDownloadImage" :disabled="form.IsTrialBasicLogicConfirmed && !isEdit">
|
||||
<el-radio v-for="item of $d.YesOrNo" :key="`IsSupportQCDownloadImage${item.value}`" :label="item.value">
|
||||
{{ item.label }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- 失访可读 -->
|
||||
<el-form-item :label="$t('trials:logincCfg:form:IsOpenLostVistRead')" prop="IsOpenLostVistRead " v-if="showMore">
|
||||
<el-radio-group v-model="form.IsOpenLostVistRead" :disabled="form.IsTrialBasicLogicConfirmed && !isEdit">
|
||||
<el-radio v-for="item of $d.YesOrNo" :key="`IsOpenLostVistRead ${item.value}`" :label="item.value">
|
||||
{{ item.label }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- 自动任务是否区分类型 -->
|
||||
<el-form-item :label="$t('trials:logincCfg:form:IsIQCAutoTaskDistinguishType')"
|
||||
prop="IsIQCAutoTaskDistinguishType" v-if="form.IsIQCAutoNextTask && showMore">
|
||||
|
|
@ -528,6 +545,8 @@ export default {
|
|||
StudyUseModalityList: [],
|
||||
StudyUseStudyNameList: [],
|
||||
IsIQCAutoNextTask: false,
|
||||
IsSupportQCDownloadImage: false,
|
||||
IsOpenLostVistRead: false,
|
||||
IsIQCAutoTaskDistinguishType: false
|
||||
// ClinicalDataSetNames: [],
|
||||
// ClinicalDataTrialSetIds: [],
|
||||
|
|
@ -1263,6 +1282,16 @@ export default {
|
|||
NewVal: this.$fd('YesOrNo', this.form.IsIQCAutoNextTask),
|
||||
OldVal: this.$fd('YesOrNo', this.initialForm.IsIQCAutoNextTask),
|
||||
},
|
||||
{
|
||||
Name: this.$t('trials:logincCfg:form:IsSupportQCDownloadImage'),
|
||||
NewVal: this.$fd('YesOrNo', this.form.IsSupportQCDownloadImage),
|
||||
OldVal: this.$fd('YesOrNo', this.initialForm.IsSupportQCDownloadImage),
|
||||
},
|
||||
{
|
||||
Name: this.$t('trials:logincCfg:form:IsOpenLostVistRead'),
|
||||
NewVal: this.$fd('YesOrNo', this.form.IsOpenLostVistRead),
|
||||
OldVal: this.$fd('YesOrNo', this.initialForm.IsOpenLostVistRead),
|
||||
},
|
||||
{
|
||||
Name: this.$t('trials:logincCfg:form:IsIQCAutoTaskDistinguishType'),
|
||||
NewVal: this.$fd('YesOrNo', this.form.IsIQCAutoTaskDistinguishType),
|
||||
|
|
|
|||
|
|
@ -40,14 +40,14 @@
|
|||
{{ $store.state.trials.uploadTip }}
|
||||
</div> -->
|
||||
<el-tooltip v-if="
|
||||
$store.state.trials.config.IsSupportQCDownloadImage &&
|
||||
IsSupportQCDownloadImage &&
|
||||
!hasPermi(['role:spm'])
|
||||
" :content="$t('trials:download:tip:message')" placement="top-end" effect="light">
|
||||
<i class="el-icon-warning-outline" style="font-size: 18px"></i>
|
||||
</el-tooltip>
|
||||
<!-- 下载所有影像 -->
|
||||
<el-button v-if="
|
||||
$store.state.trials.config.IsSupportQCDownloadImage &&
|
||||
IsSupportQCDownloadImage &&
|
||||
!hasPermi(['role:spm'])
|
||||
" :loading="downloading" :disabled="selectTableDicom.length <= 0" size="small" type="primary"
|
||||
style="margin-left: 10px" @click="getCRCUploadedStudyInfo('dicom')">
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
</el-button>
|
||||
<!-- 下载工具 -->
|
||||
<el-button v-if="
|
||||
$store.state.trials.config.IsSupportQCDownloadImage &&
|
||||
IsSupportQCDownloadImage &&
|
||||
!hasPermi(['role:spm'])
|
||||
" :loading="downloading" size="small" type="primary" style="margin-left: 10px"
|
||||
@click="getCRCUploadedStudyInfo('tools')">
|
||||
|
|
@ -73,15 +73,13 @@
|
|||
<el-table :data="studyList" :row-class-name="tableRowClassName"
|
||||
@selection-change="handleSelectionChangeDicom"
|
||||
:default-sort="{ prop: 'UploadedTime', order: 'ascending' }">
|
||||
<el-table-column type="selection" width="55" v-if='$store.state.trials.config.IsSupportQCDownloadImage'>
|
||||
<el-table-column type="selection" width="55" v-if='IsSupportQCDownloadImage'>
|
||||
</el-table-column>
|
||||
<!-- 检查编号 -->
|
||||
<el-table-column prop="StudyCode" :label="$t('trials:audit:table:studyId')" sortable>
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip
|
||||
placement="top"
|
||||
v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) && IsHaveStudyClinicalData && scope.row.IsHasEmptyPatientInfo"
|
||||
>
|
||||
<el-tooltip placement="top"
|
||||
v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) && IsHaveStudyClinicalData && scope.row.IsHasEmptyPatientInfo">
|
||||
<div slot="content">{{ $t('trials:audit:message:ptDataValid') }}</div>
|
||||
<span class="el-icon-warning" style="color: red; cursor: pointer"></span>
|
||||
</el-tooltip>
|
||||
|
|
@ -158,12 +156,11 @@
|
|||
:disabled="isAudit || scope.row.IsDeleted || SecondReviewState > 0"
|
||||
@click="handleEditStudy(scope.row)" />
|
||||
<!-- 预览PET-CT数据 -->
|
||||
<el-button icon="el-icon-document" :title="$t('trials:audit:tab:clinicalData')"
|
||||
v-if="
|
||||
['PT、CT', 'CT、PT', 'PET-CT'].includes(
|
||||
scope.row.Modalities
|
||||
) && IsHaveStudyClinicalData
|
||||
" circle :disabled="scope.row.IsDeleted" @click="handlePreviewClinicalData(scope.row)" />
|
||||
<el-button icon="el-icon-document" :title="$t('trials:audit:tab:clinicalData')" v-if="
|
||||
['PT、CT', 'CT、PT', 'PET-CT'].includes(
|
||||
scope.row.Modalities
|
||||
) && IsHaveStudyClinicalData
|
||||
" circle :disabled="scope.row.IsDeleted" @click="handlePreviewClinicalData(scope.row)" />
|
||||
<!-- 质控后编辑 -->
|
||||
<el-button icon="el-icon-edit" :title="$t('trials:audit:action:Correction')" circle
|
||||
v-if="isAuditToEdit" @click="handleEditStudy(scope.row)" />
|
||||
|
|
@ -257,14 +254,14 @@
|
|||
{{ $store.state.trials.uploadTip }}
|
||||
</div> -->
|
||||
<el-tooltip v-if="
|
||||
$store.state.trials.config.IsSupportQCDownloadImage &&
|
||||
IsSupportQCDownloadImage &&
|
||||
!hasPermi(['role:spm'])
|
||||
" :content="$t('trials:download:tip:message')" placement="top-end" effect="light">
|
||||
<i class="el-icon-warning-outline" style="font-size: 18px"></i>
|
||||
</el-tooltip>
|
||||
<!-- 下载所有影像 -->
|
||||
<el-button v-if="
|
||||
$store.state.trials.config.IsSupportQCDownloadImage &&
|
||||
IsSupportQCDownloadImage &&
|
||||
!hasPermi(['role:spm'])
|
||||
" :loading="downloading" :disabled="selectTableNonedicom.length <= 0" size="small" type="primary"
|
||||
style="margin-left: 10px" @click="getCRCUploadedStudyInfo('noneDicom')">
|
||||
|
|
@ -283,7 +280,7 @@
|
|||
</div>
|
||||
<el-table :data="noneDicomStudyList" @selection-change="handleSelectionChangeNonedicom"
|
||||
:row-class-name="tableRowClassName" :default-sort="{ prop: 'CreateTime', order: 'ascending' }">
|
||||
<el-table-column type="selection" width="55" v-if='$store.state.trials.config.IsSupportQCDownloadImage'>
|
||||
<el-table-column type="selection" width="55" v-if='IsSupportQCDownloadImage'>
|
||||
</el-table-column>
|
||||
<!-- 检查编号 -->
|
||||
<el-table-column prop="CodeView" :label="$t('trials:audit:table:nonDicomsStudyId')" sortable />
|
||||
|
|
@ -910,8 +907,7 @@
|
|||
{{ $t('trials:audit:button:auditPassed') }}
|
||||
</el-button>
|
||||
<!-- 跳过 -->
|
||||
<el-button size="small" type="primary" round
|
||||
@click="skipTask">
|
||||
<el-button size="small" type="primary" round @click="skipTask">
|
||||
{{ $t('trials:audit:button:skipTask') }}
|
||||
</el-button>
|
||||
<!-- 审核终止 -->
|
||||
|
|
@ -920,8 +916,11 @@
|
|||
<!-- </el-button>-->
|
||||
</div>
|
||||
<!--petct临床数据预览-->
|
||||
<el-dialog v-if="petVisible" :close-on-click-modal="false" :show-close="true" :visible.sync="petVisible" append-to-body>
|
||||
<uploadPetClinicalData :subject-visit-id="data.Id" :data="data" :studyData="rowData" :allow-add-or-edit="false" :isPatientFormAllowEdit="!isAudit || SecondReviewState > 0 || isAuditToEdit" :isAudit="isAuditToEdit" @close="petVisible = false"/>
|
||||
<el-dialog v-if="petVisible" :close-on-click-modal="false" :show-close="true" :visible.sync="petVisible"
|
||||
append-to-body>
|
||||
<uploadPetClinicalData :subject-visit-id="data.Id" :data="data" :studyData="rowData" :allow-add-or-edit="false"
|
||||
:isPatientFormAllowEdit="!isAudit || SecondReviewState > 0 || isAuditToEdit" :isAudit="isAuditToEdit"
|
||||
@close="petVisible = false" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -1117,7 +1116,8 @@ export default {
|
|||
IsSecondPass: false,
|
||||
userId: zzSessionStorage.getItem('userId'),
|
||||
|
||||
QCRiskControl: false
|
||||
QCRiskControl: false,
|
||||
IsSupportQCDownloadImage: false
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
|
|
@ -1324,6 +1324,7 @@ export default {
|
|||
this.loading = true
|
||||
getVisitQCInfo(this.data.Id, this.data.QCProcessEnum, this.currentQCType)
|
||||
.then((res) => {
|
||||
this.IsSupportQCDownloadImage = res.Result.IsSupportQCDownloadImage
|
||||
this.secondReviewList = res.Result.SecondReviewList
|
||||
if (this.secondReviewList.length > 0) {
|
||||
let data = this.secondReviewList.find(item => item.SignTime) || {}
|
||||
|
|
@ -2176,11 +2177,11 @@ export default {
|
|||
if (confirm !== 'confirm') return
|
||||
this.$emit('close')
|
||||
}
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
this.$emit('getList')
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
getNextQCInfo() {
|
||||
// '是否确认进入下一个质控任务?'
|
||||
|
|
|
|||
Loading…
Reference in New Issue