后台管理页面部分国际化更改
continuous-integration/drone/push Build is passing Details

uat
caiyiling 2025-02-13 09:25:32 +08:00
parent 89fe4e4c00
commit 689782bf36
9 changed files with 154 additions and 96 deletions

View File

@ -73,13 +73,13 @@
<el-button
circle
icon="el-icon-edit-outline"
title="编辑"
:title="$t('common:button:edit')"
@click="handleEdit(scope.row)"
/>
<el-button
circle
icon="el-icon-delete"
title="删除"
:title="$t('common:button:delete')"
@click="handleDelete(scope.row)"
/>
</template>

View File

@ -113,13 +113,13 @@
<el-button
circle
icon="el-icon-edit-outline"
title="编辑"
:title="$t('common:button:edit')"
@click="handleEdit(scope.row)"
/>
<el-button
circle
icon="el-icon-delete"
title="删除"
:title="$t('common:button:delete')"
@click="handleDelete(scope.row)"
/>
</template>

View File

@ -32,9 +32,9 @@
<el-input v-model="form.AliasName" />
</el-form-item>
<el-form-item label="组织机构代码: ">
<!-- <el-form-item label="组织机构代码: ">
<el-input v-model="form.UniqueCode" />
</el-form-item>
</el-form-item> -->
<el-form-item label="Country: " prop="Country">
<el-input v-model="form.Country" />

View File

@ -74,13 +74,13 @@
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
<!-- <el-table-column
prop="UniqueCode"
label="组织机构代码"
min-width="130"
show-overflow-tooltip
sortable="custom"
/>
/> -->
<el-table-column
prop="Country"
label="Country"
@ -149,13 +149,13 @@
<el-button
circle
icon="el-icon-edit-outline"
title="编辑"
:title="$t('common:button:edit')"
@click="handleEdit(scope.row)"
/>
<el-button
circle
icon="el-icon-delete"
title="删除"
:title="$t('common:button:delete')"
@click="handleDelete(scope.row)"
/>
</template>

View File

@ -73,13 +73,13 @@
<el-button
circle
icon="el-icon-edit-outline"
title="编辑"
:title="$t('common:button:edit')"
@click="handleEdit(scope.row)"
/>
<el-button
circle
icon="el-icon-delete"
title="删除"
:title="$t('common:button:delete')"
@click="handleDelete(scope.row)"
/>
</template>

View File

@ -8,8 +8,9 @@
>
<el-input v-model="searchData.CriterionName" clearable style="width:120px;" />
</el-form-item>
<!-- 标准类型 -->
<el-form-item
label="标准类型"
:label="$t('dictionary:template:criterionConfig:table:criterionType')"
>
<el-select v-model="searchData.CriterionType" clearable style="width:120px;">
<el-option
@ -20,8 +21,9 @@
/>
</el-select>
</el-form-item>
<!-- 标准分组 -->
<el-form-item
label="标准分组"
:label="$t('dictionary:template:criterionConfig:table:criterionGroup')"
>
<el-select v-model="searchData.CriterionGroup" clearable style="width:120px;">
<el-option
@ -32,8 +34,9 @@
/>
</el-select>
</el-form-item>
<!-- 是否配置完成 -->
<el-form-item
label="是否配置完成"
:label="$t('dictionary:template:criterionConfig:table:isCompleteConfig')"
>
<el-select v-model="searchData.IsCompleteConfig" clearable style="width:120px;">
<el-option
@ -44,8 +47,9 @@
/>
</el-select>
</el-form-item>
<!-- 是否启用 -->
<el-form-item
label="是否启用"
:label="$t('dictionary:template:criterionConfig:table:isEnable')"
>
<el-select v-model="searchData.IsEnable" clearable style="width:120px;">
<el-option
@ -70,7 +74,8 @@
</el-form-item>
</el-form>
<span style="margin-left:auto">
<el-button type="primary" size="mini" @click="handleAdd"></el-button>
<!-- 添加 -->
<el-button type="primary" size="mini" @click="handleAdd">{{$t('common:button:new')}}</el-button>
</span>
</div>
@ -85,16 +90,17 @@
ref="criterionsTbl"
>
<el-table-column type="index" width="60" />
<!-- 标准名称 -->
<el-table-column
prop="CriterionName"
label="标准名称"
:label="$t('trials:auditRecord:table:criterion')"
show-overflow-tooltip
sortable="custom"
/>
<!-- 标准类型 -->
<el-table-column
prop="CriterionType"
label="标准类型"
:label="$t('dictionary:template:criterionConfig:table:criterionType')"
show-overflow-tooltip
sortable="custom"
>
@ -102,9 +108,10 @@
{{ $fd('CriterionType',scope.row.CriterionType) }}
</template>
</el-table-column>
<!-- 标准分组 -->
<el-table-column
prop="CriterionGroup"
label="标准分组"
:label="$t('dictionary:template:criterionConfig:table:criterionGroup')"
show-overflow-tooltip
sortable="custom"
>
@ -112,10 +119,10 @@
{{ $fd('CriterionGroup',scope.row.CriterionGroup) }}
</template>
</el-table-column>
<!-- 是否配置完成 -->
<el-table-column
prop="IsCompleteConfig"
label="是否配置完成"
:label="$t('dictionary:template:criterionConfig:table:isCompleteConfig')"
sortable="custom"
>
<template slot-scope="scope">
@ -128,29 +135,33 @@
{{ $fd('YesOrNo', scope.row.IsCompleteConfig) }}
</template>
</el-table-column>
<!-- 描述 -->
<el-table-column
prop="Description"
label="描述"
:label="$t('dictionary:template:criterionConfig:table:description')"
show-overflow-tooltip
/>
<!-- 是否启用 -->
<el-table-column
prop="IsEnable"
label="是否启用"
:label="$t('dictionary:template:criterionConfig:table:isEnable')"
sortable="custom"
>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsEnable) }}
</template>
</el-table-column>
<!-- 显示序号 -->
<el-table-column
prop="ShowOrder"
label="显示序号"
:label="$t('dictionary:template:criterionConfig:table:showOrder')"
show-overflow-tooltip
sortable="custom"
/>
<!-- eICRF仅展示阅片Tab -->
<el-table-column
prop="IseCRFShowInDicomReading"
label="eICRF仅展示阅片Tab"
:label="$t('dictionary:template:criterionConfig:table:isECRFShowInDicomReading')"
show-overflow-tooltip
sortable="custom"
width="210"
@ -159,36 +170,40 @@
{{ $fd('YesOrNo', scope.row.IseCRFShowInDicomReading) }}
</template>
</el-table-column>
<el-table-column label="Action" min-width="200px">
<el-table-column :label="$t('common:action:action')" min-width="200px">
<template slot-scope="scope">
<!-- 编辑 -->
<el-button
type="primary"
size="mini"
@click="handleEdit(scope.row)"
>
编辑
{{ $t('common:button:edit') }}
</el-button>
<!-- eCRF -->
<el-button
type="primary"
size="mini"
@click="handleConfig(scope.row)"
>
eCRF
{{ $t('dictionary:template:criterionConfig:button:eCRF') }}
</el-button>
<!-- 基础数据 -->
<el-button
type="primary"
size="mini"
@click="handleBaseDataConfig(scope.row)"
>
基础数据
{{ $t('dictionary:template:criterionConfig:button:basicData') }}
</el-button>
<!-- 删除 -->
<el-button
type="danger"
size="mini"
:disabled="scope.row.IsCompleteConfig"
@click="handleDelete(scope.row)"
>
删除
{{ $t('common:button:delete') }}
</el-button>
</template>
@ -227,7 +242,7 @@
<el-dialog
v-if="configBaseDataVisible"
:title="'基础数据配置' + `(${rowData.CriterionName})`"
:title="`${this.$t('trials:readingUnit:readingCriterion:title:baseDataCfg')} (${rowData.CriterionName})`"
:visible.sync="configBaseDataVisible"
:close-on-click-modal="false"
:fullscreen="true"
@ -292,17 +307,17 @@ export default {
}).catch(() => { this.loading = false })
},
handleAdd() {
this.addDialog.title = '添加'
this.addDialog.title = this.$t('common:button:new')
this.addDialog.visible = true
this.rowData = {}
},
handleEdit(row) {
this.addDialog.title = '编辑'
this.addDialog.title = this.$t('common:button:edit')
this.addDialog.visible = true
this.rowData = { ...row }
},
handleDelete(row) {
this.$confirm('是否确认删除', {
this.$confirm(this.$t('trials:readingUnit:baseDataCfg:message:deleteConfirm'), {
distinguishCancelAndClose: true,
type: 'warning'
}).then(() => {
@ -319,10 +334,10 @@ export default {
changeStatus(callback, row) {
var message = ''
if (callback) {
message = '是否确认更改?'
message = this.$t('trials:readingUnit:baseDataCfg:message:updateConfirm')
row.IsCompleteConfig = false
} else {
message = '是否确认更改?'
message = this.$t('trials:readingUnit:baseDataCfg:message:updateConfirm')
row.IsCompleteConfig = true
}
this.$confirm(message, {

View File

@ -9,7 +9,8 @@
label-width="130px"
size="small"
>
<el-form-item label="问题名称" prop="QuestionName">
<!-- 问题名称 -->
<el-form-item :label="$t('trials:qcCfg:table:questionName')" prop="QuestionName">
<el-input v-model="form.QuestionName" />
</el-form-item>
<el-form-item
@ -27,24 +28,28 @@
/>
</el-select>
</el-form-item>
<el-form-item label="类型">
<!-- 类型 -->
<el-form-item :label="$t('trials:qcCfg:table:type')">
<el-select v-model="form.Type" @change="((val)=>{typeChange(val, form)})">
<el-option value="select" label="下拉框" />
<el-option value="input" label="单行文本框" />
<el-option value="textarea" label="多行文本框" />
<el-option value="radio" label="单选框" />
<el-option
v-for="item of $d.QcType"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 选项 -->
<el-form-item
v-if="form.Type === 'select' || form.Type === 'radio'"
label="选项: "
:label="$t('trials:qcCfg:table:typeValue')"
prop="TypeValue"
>
<el-input v-model="form.TypeValue" placeholder="选项请用‘|’分割多个选项" />
<el-input v-model="form.TypeValue" :placeholder="$t('trials:qcCfg:message:typeValue')" />
</el-form-item>
<!-- 父问题 -->
<el-form-item
label="父问题"
:label="$t('trials:qcCfg:table:parentQs')"
>
<el-select
v-model="form.ParentId"
@ -62,7 +67,7 @@
<!-- 父问题触发值 -->
<el-form-item
v-if="form.ParentId"
label="父问题触发值"
:label="$t('trials:qcCfg:table:parentTriggerValue')"
prop="ParentTriggerValue"
>
<el-select
@ -76,27 +81,47 @@
/>
</el-select>
</el-form-item>
<el-form-item label="是否必填">
<el-radio-group v-model="form.IsRequired">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
<!-- 是否必填 -->
<el-form-item :label="$t('trials:qcCfg:table:isRequired')">
<el-radio-group
v-model="form.IsRequired"
>
<el-radio
v-for="item of $d.YesOrNo"
:key="`IsRequired${item.value}`"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="启用状态">
<el-radio-group v-model="form.IsEnable">
<el-radio :label="true">启用</el-radio>
<el-radio :label="false">停用</el-radio>
<!-- 启用状态 -->
<el-form-item :label="$t('trials:qcCfg:table:isEnable')">
<el-radio-group
v-model="form.IsEnable"
>
<el-radio
v-for="item of $d.YesOrNo"
:key="item.value"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="序号" prop="ShowOrder">
<el-form-item :label="$t('trials:qcCfg:table:order')" prop="ShowOrder">
<el-input-number v-model="form.ShowOrder" controls-position="right" :min="0" />
</el-form-item>
</el-form>
</template>
<template slot="dialog-footer">
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">Cancel</el-button>
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">Save</el-button>
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">
{{ $t('common:button:cancel') }}
</el-button>
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">
{{ $t('common:button:save') }}
</el-button>
</template>
</base-model>
</template>
@ -128,7 +153,8 @@ export default {
} else {
var arr = value.split('|')
if (new Set(arr).size !== arr.length) {
callback(new Error('选项不允许存在相同值'))
// ''
callback(new Error(this.$t('trials:qcCfg:message:msg1')))
} else {
callback()
}
@ -138,13 +164,13 @@ export default {
btnLoading: false,
form: formDataDefault(),
rules: {
QuestionName: [{ required: true, message: 'Please specify', trigger: 'blur' },
{ max: 300, message: 'The maximum length is 300' }],
TypeValue: [{ required: true, message: 'Please specify', trigger: 'blur' },
QuestionName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: 300, message: `${this.$t('common:ruleMessage:maxLength')} 300` }],
TypeValue: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ validator: validateTypeVal, trigger: 'blur' },
{ max: 200, message: 'The maximum length is 200' }],
ParentTriggerValue: [{ required: true, message: 'Please select', trigger: 'blur' }],
LanguageType: [{ required: true, message: 'Please select', trigger: 'blur' }]
{ max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }],
ParentTriggerValue: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }],
LanguageType: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }]
},
model_cfg: { visible: false, showClose: true, width: '600px', title: '' },
parentOptions: [],
@ -185,7 +211,7 @@ export default {
this.btnLoading = true
addOrUpdateQCQuestionConfigure(this.form).then(res => {
this.btnLoading = false
this.$message.success('Saved successfully!')
this.$message.success(this.$t('common:message:savedSuccessfully'))
// this.$refs['qcQuestionForm'].resetFields()
this.model_cfg.visible = false
this.$emit('getList')

View File

@ -3,7 +3,8 @@
<!-- 搜索框 -->
<div class="search">
<el-form :inline="true" size="mini" class="base-search-form">
<el-form-item label="问题名称:">
<!-- 问题名称 -->
<el-form-item :label="$t('trials:qcCfg:table:questionName')">
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
</el-form-item>
<!-- 语言类型 -->
@ -22,7 +23,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="类型:">
<el-form-item :label="$t('trials:qcCfg:table:type')">
<el-input v-model="searchData.Type" clearable style="width:120px;" />
</el-form-item>
<el-form-item>
@ -45,9 +46,9 @@
type="primary"
@click="preview.visible = true"
>
Preview
{{$t('common:button:preview')}}
</el-button>
<el-button type="primary" size="mini" @click="handleAdd">New</el-button>
<el-button type="primary" size="mini" @click="handleAdd">{{$t('common:button:new')}}</el-button>
</span>
</div>
@ -59,14 +60,16 @@
size="small"
height="100"
>
<!-- 序号 -->
<el-table-column
prop="ShowOrder"
label="序号"
:label="$t('trials:qcCfg:table:order')"
min-width="70"
/>
<!-- 问题名称 -->
<el-table-column
prop="QuestionName"
label="问题名称"
:label="$t('trials:qcCfg:table:questionName')"
show-overflow-tooltip
/>
<!-- 审核问题 -->
@ -79,68 +82,73 @@
{{ $fd('LanguageType', scope.row.LanguageType) }}
</template>
</el-table-column>
<!-- 类型 -->
<el-table-column
prop="Type"
label="类型"
:label="$t('trials:qcCfg:table:type')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.Type=== 'radio'?'单选框':scope.row.Type=== 'select'?'下拉框':scope.row.Type=== 'input'?'文本框':scope.row.Type=== 'textarea'?'多行文本框':'' }}
{{ $fd('QcType', scope.row.Type) }}
</template>
</el-table-column>
<!-- 选项 -->
<el-table-column
prop="TypeValue"
label="选项"
:label="$t('trials:qcCfg:table:typeValue')"
show-overflow-tooltip
min-width="110"
/>
<!-- 父问题 -->
<el-table-column
prop="ParentShowOrder"
label="父问题"
:label="$t('trials:qcCfg:table:parentQs')"
show-overflow-tooltip
min-width="110"
/>
<!-- 父问题触发值 -->
<el-table-column
prop="ParentTriggerValue"
label="父问题触发值"
:label="$t('trials:qcCfg:table:parentTriggerValue')"
show-overflow-tooltip
min-width="110"
/>
<!-- 是否必填 -->
<el-table-column
prop="IsRequired"
label="是否必填"
:label="$t('trials:qcCfg:table:isRequired')"
min-width="90"
>
<template slot-scope="scope">
{{ scope.row.IsRequired?'是':'否' }}
{{ $fd('YesOrNo', scope.row.IsRequired) }}
</template>
</el-table-column>
<!-- 启用状态 -->
<el-table-column
prop="IsEnable"
label="启用状态"
:label="$t('trials:qcCfg:table:isEnable')"
min-width="120"
>
<template slot-scope="scope">
{{ scope.row.IsEnable?'启用':'停用' }}
{{ $fd('YesOrNo', scope.row.IsEnable) }}
</template>
</el-table-column>
<el-table-column label="Action" width="200" fixed="right">
<el-table-column :label="$t('common:action:action')" width="200" fixed="right">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
@click="handleEdit(scope.row)"
>
Edit
{{ $t('common:button:edit') }}
</el-button>
<el-button
type="danger"
size="mini"
@click="handleDelete(scope.row)"
>
Delete
{{ $t('common:button:delete') }}
</el-button>
</template>

View File

@ -1,31 +1,40 @@
<template>
<div class="question-wrapper">
<el-tabs v-model="activeTab" @tab-click="clickTab">
<el-tab-pane label="QC问题配置" name="qc">
<!-- QC问题配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:qcConfig')" name="qc">
<qc-questions v-if="activeTab == 'qc'" />
</el-tab-pane>
<el-tab-pane label="阅片标准配置" name="criterions">
<!-- 阅片标准配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:criterionsConfig')" name="criterions">
<criterions-tmp v-if="activeTab == 'criterions'" />
</el-tab-pane>
<el-tab-pane label="临床数据配置" name="clinicalData">
<!-- 临床数据配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:clinicalDataConfig')" name="clinicalData">
<clinical-data v-if="activeTab == 'clinicalData'" />
</el-tab-pane>
<el-tab-pane label="医学审核问题配置" name="medicalAudit">
<!-- 医学审核问题配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:medicalConfig')" name="medicalAudit">
<medical-audit v-if="activeTab == 'medicalAudit'" />
</el-tab-pane>
<el-tab-pane label="DICOM字段匿名化配置" name="anonymization">
<!-- DICOM字段匿名化配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:dicomTagConfig')" name="anonymization">
<Anonymization v-if="activeTab == 'anonymization'" />
</el-tab-pane>
<el-tab-pane label="DICOM字段新增配置" name="increasefields">
<!-- DICOM字段新增配置 -->
<el-tab-pane :label="$t('dictionary:template:tab:dicomTagAddConfig')" name="increasefields">
<IncreaseFields v-if="activeTab == 'increasefields'" />
</el-tab-pane>
<el-tab-pane label="邮件管理" name="email">
<!-- 邮件管理 -->
<el-tab-pane :label="$t('dictionary:template:tab:emailConfig')" name="email">
<Email v-if="activeTab == 'email'" />
</el-tab-pane>
<el-tab-pane label="签名管理" name="sign">
<!-- 签名管理 -->
<el-tab-pane :label="$t('dictionary:template:tab:signConfig')" name="sign">
<Sign v-if="activeTab == 'sign'" />
</el-tab-pane>
<el-tab-pane label="浏览器推荐" name="browser">
<!-- 浏览器推荐 -->
<el-tab-pane :label="$t('dictionary:template:tab:browserConfig')" name="browser">
<Browser v-if="activeTab == 'browser'" />
</el-tab-pane>
</el-tabs>