系统配置、中心调研配置
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2026-05-21 14:41:33 +08:00
parent c767004a2d
commit b53f566160
6 changed files with 542 additions and 26 deletions

View File

@ -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
})
}

View File

@ -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'),

View File

@ -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: {}

View File

@ -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" />

View File

@ -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": "展影医疗",
// 便1i1liirc "
"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>

View File

@ -212,13 +212,21 @@ export default {
this.form[key] = false
})
}
res.Result.ModifyFiledList = []
if (Array.isArray(res.Result.ModifyFiledList) && res.Result.ModifyFiledList.length > 0) {
this.form.ReplaceContent = res.Result.ModifyFiledList[0].ReplaceContent.split('<p>').join('').split('</p>').filter(item => isNaN(item)).join("\n")
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) {