隐私政策修改
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
5d09bd2159
commit
0e029369a3
|
|
@ -4,7 +4,7 @@ import AGRCOMP from "./index.vue";
|
|||
const MFAConstructor = Vue.extend(AGRCOMP);
|
||||
let MFAINSTANCELIST = [];
|
||||
const AGR = options => {
|
||||
const { Id, callBack, cancelBack } = options;
|
||||
const { Id, IsEn_Us, callBack, cancelBack } = options;
|
||||
if (!Id) throw `Id is requred.but ${Id}`
|
||||
const id = `AGR${new Date().getTime()}`;
|
||||
const instance = new MFAConstructor();
|
||||
|
|
@ -13,7 +13,7 @@ const AGR = options => {
|
|||
instance.vm = instance.$mount();
|
||||
if (instance.vm.visible) return;
|
||||
document.body.appendChild(instance.vm.$el);
|
||||
instance.vm.open({ Id });
|
||||
instance.vm.open({ Id, IsEn_Us });
|
||||
instance.vm.$on("success", (Id) => {
|
||||
if (callBack) callBack(Id)
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,10 +2,11 @@
|
|||
<!--AGR-->
|
||||
<el-dialog v-if="visible" :visible.sync="visible" width="60%" :close-on-click-modal="false" append-to-body center
|
||||
:show-close="true" @close="cancel">
|
||||
<div slot="title">
|
||||
{{ agreement.FileName }}
|
||||
</div>
|
||||
<div v-html="agreement.FileContent"></div>
|
||||
<!-- <div slot="title">
|
||||
{{ agreement.FileName }}
|
||||
</div> -->
|
||||
<div v-html="agreement.FileEnContent" class="content" v-if="IsEn_Us"></div>
|
||||
<div v-html="agreement.FileContent" class="content" v-else></div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
|
|
@ -17,7 +18,8 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
agreement: {}
|
||||
agreement: {},
|
||||
IsEn_Us: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -38,7 +40,8 @@ export default {
|
|||
}
|
||||
},
|
||||
open(data) {
|
||||
let { Id } = data;
|
||||
let { Id, IsEn_Us } = data;
|
||||
this.IsEn_Us = IsEn_Us
|
||||
this.getAgreement(Id)
|
||||
this.visible = true
|
||||
},
|
||||
|
|
@ -54,4 +57,9 @@ export default {
|
|||
::v-deep .el-dialog__body {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
.content {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -8,7 +8,6 @@
|
|||
<CommonTemplate v-if="activeTab === '4' && item.value == activeTab" />
|
||||
<SignatureTemplate v-if="activeTab === '5' && item.value == activeTab" />
|
||||
<ToolsTemplate v-if="activeTab === '0' && item.value == activeTab" />
|
||||
<AgreementTemplate v-if="activeTab === '6' && item.value == activeTab" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<!-- 预览 -->
|
||||
|
|
@ -29,7 +28,6 @@ import EmailTemplate from './components/EmailTemplate'
|
|||
import CommonTemplate from './components/CommonTemplate'
|
||||
import SignatureTemplate from './components/SignatureTemplate'
|
||||
import ToolsTemplate from './components/ToolsTemplate'
|
||||
import AgreementTemplate from './components/AgreementTemplate'
|
||||
import VueOfficeDocx from '@vue-office/docx'
|
||||
import '@vue-office/docx/lib/index.css'
|
||||
import VueOfficeExcel from '@vue-office/excel'
|
||||
|
|
@ -46,8 +44,7 @@ export default {
|
|||
VueOfficeDocx,
|
||||
VueOfficeExcel,
|
||||
PreviewFile,
|
||||
ToolsTemplate,
|
||||
AgreementTemplate
|
||||
ToolsTemplate
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -2,34 +2,59 @@
|
|||
<el-form ref="sysAgreementFrom" v-loading="loading" :model="form" label-width="140px" size="small" :rules="rules"
|
||||
class="upload-temporary-file">
|
||||
<div class="base-dialog-body">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:UserAgreementTypeEnum')" prop="UserAgreementTypeEnum">
|
||||
<el-select v-model="form.UserAgreementTypeEnum" style="width: 50%" size="small" filterable>
|
||||
<el-option v-for="item of $d.UserAgreementType" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileName')" prop="FileName">
|
||||
<el-input v-model="form.FileName" clearable style="width: 50%" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileVersion')" prop="FileVersion">
|
||||
<el-input v-model="form.FileVersion" clearable style="width: 50%" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:agreement:table:UpdateDate')" prop="UpdateDate">
|
||||
<el-date-picker v-model="form.UpdateDate" type="datetime"
|
||||
:placeholder="$t('trials:seletctedReviews:table:selectionTime')" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd HH:mm:ss" clearable style="width: 50%;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:agreement:table:EffectiveDate')" prop="EffectiveDate">
|
||||
<el-date-picker v-model="form.EffectiveDate" type="datetime"
|
||||
:placeholder="$t('trials:seletctedReviews:table:selectionTime')" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd HH:mm:ss" clearable style="width: 50%;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:UserAgreementTypeEnum')" prop="UserAgreementTypeEnum"
|
||||
style="width: 48%">
|
||||
<el-select v-model="form.UserAgreementTypeEnum" style="width: 100%" size="small" filterable>
|
||||
<el-option v-for="item of $d.UserAgreementType" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileName')" prop="FileName" style="width: 48%">
|
||||
<el-input v-model="form.FileName" clearable style="width: 100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileVersion')" prop="FileVersion" style="width: 48%">
|
||||
<el-input v-model="form.FileVersion" clearable style="width: 100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:UpdateDate')" prop="UpdateDate" style="width: 48%">
|
||||
<el-date-picker v-model="form.UpdateDate" type="datetime"
|
||||
:placeholder="$t('trials:seletctedReviews:table:selectionTime')" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd HH:mm:ss" clearable style="width: 100%;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('dictionary:agreement:table:EffectiveDate')" prop="EffectiveDate" style="width: 48%">
|
||||
<el-date-picker v-model="form.EffectiveDate" type="datetime"
|
||||
:placeholder="$t('trials:seletctedReviews:table:selectionTime')" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd HH:mm:ss" clearable style="width: 100%;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileContent')" prop="FileContent">
|
||||
<div class="html_temp">
|
||||
<prism-editor class="my-editor" v-model="form.FileContent" :highlight="highlighter" :line-numbers="true"
|
||||
style="width: 50%;max-height: 300px;"></prism-editor>
|
||||
<div v-html="form.FileContent" style="width: 45%;"></div>
|
||||
style="width: 50%;max-height: 350px;"></prism-editor>
|
||||
<div v-html="form.FileContent" style="width: 45%;" class="content"></div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:agreement:table:FileContentEn')" prop="FileEnContent">
|
||||
<div class="html_temp">
|
||||
<prism-editor class="my-editor" v-model="form.FileEnContent" :highlight="highlighter" :line-numbers="true"
|
||||
style="width: 50%;max-height: 350px;"></prism-editor>
|
||||
<div v-html="form.FileEnContent" style="width: 45%;" class="content"></div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
|
|
@ -71,7 +96,8 @@ export default {
|
|||
UserAgreementTypeEnum: '',
|
||||
FileName: '',
|
||||
FileVersion: null,
|
||||
FileContent: '',
|
||||
FileContent: '\n\n\n\n',
|
||||
FileEnContent: `\n\n\n\n`,
|
||||
UpdateDate: '',
|
||||
EffectiveDate: '',
|
||||
},
|
||||
|
|
@ -88,6 +114,9 @@ export default {
|
|||
FileContent: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] },
|
||||
],
|
||||
FileEnContent: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] },
|
||||
],
|
||||
UpdateDate: [
|
||||
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] },
|
||||
],
|
||||
|
|
@ -136,15 +165,20 @@ export default {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.html_temp {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
min-height: 300px;
|
||||
width: 100%;
|
||||
|
||||
.my-editor {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content {
|
||||
max-height: 350px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -155,7 +155,7 @@ const searchDataDefault = () => {
|
|||
}
|
||||
}
|
||||
export default {
|
||||
name: 'AgreementTemplate',
|
||||
name: 'Agreement',
|
||||
components: { BaseContainer, Pagination, TemplateForm },
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -196,7 +196,8 @@ export default {
|
|||
},
|
||||
view(row) {
|
||||
this.$AGR({
|
||||
Id: row.Id
|
||||
Id: row.Id,
|
||||
IsEn_Us: this.isEN
|
||||
})
|
||||
},
|
||||
changeTimeList(key) {
|
||||
|
|
@ -6,68 +6,45 @@
|
|||
<qc-questions v-if="activeTab == 'qc'" />
|
||||
</el-tab-pane>
|
||||
<!-- 阅片标准配置 -->
|
||||
<el-tab-pane
|
||||
:label="$t('dictionary:template:tab:criterionsConfig')"
|
||||
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="$t('dictionary:template:tab:clinicalDataConfig')"
|
||||
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="$t('dictionary:template:tab:medicalConfig')"
|
||||
name="medicalAudit"
|
||||
>
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:medicalConfig')" name="medicalAudit">
|
||||
<medical-audit v-if="activeTab == 'medicalAudit'" />
|
||||
</el-tab-pane>
|
||||
<!-- DICOM字段匿名化配置 -->
|
||||
<el-tab-pane
|
||||
:label="$t('dictionary:template:tab:dicomTagConfig')"
|
||||
name="anonymization"
|
||||
>
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:dicomTagConfig')" name="anonymization">
|
||||
<Anonymization v-if="activeTab == 'anonymization'" />
|
||||
</el-tab-pane>
|
||||
<!-- DICOM字段新增配置 -->
|
||||
<el-tab-pane
|
||||
:label="$t('dictionary:template:tab:dicomTagAddConfig')"
|
||||
name="increasefields"
|
||||
>
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:dicomTagAddConfig')" name="increasefields">
|
||||
<IncreaseFields v-if="activeTab == 'increasefields'" />
|
||||
</el-tab-pane>
|
||||
<!-- 邮件管理 -->
|
||||
<el-tab-pane
|
||||
:label="$t('dictionary:template:tab:emailConfig')"
|
||||
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="$t('dictionary:template:tab:signConfig')"
|
||||
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="$t('dictionary:template:tab:browserConfig')"
|
||||
name="browser"
|
||||
>
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:browserConfig')" name="browser">
|
||||
<Browser v-if="activeTab == 'browser'" />
|
||||
</el-tab-pane>
|
||||
<!-- 文件记录 -->
|
||||
<el-tab-pane
|
||||
:label="$t('dictionary:template:tab:fileConfig')"
|
||||
name="file"
|
||||
>
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:fileConfig')" name="file">
|
||||
<File v-if="activeTab == 'file'" />
|
||||
</el-tab-pane>
|
||||
<!-- 用户协议 -->
|
||||
<el-tab-pane :label="$t('dictionary:template:tab:agreement')" name="agreement">
|
||||
<Agreement v-if="activeTab == 'agreement'" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -82,6 +59,7 @@ import Email from './email/index.vue'
|
|||
import Sign from './sign/index.vue'
|
||||
import Browser from './browser/index.vue'
|
||||
import File from './file/index.vue'
|
||||
import Agreement from './agreement/index.vue'
|
||||
export default {
|
||||
name: 'Questions',
|
||||
components: {
|
||||
|
|
@ -95,6 +73,7 @@ export default {
|
|||
MedicalAudit,
|
||||
Browser,
|
||||
File,
|
||||
Agreement
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -122,16 +101,18 @@ export default {
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.el-tabs__header {
|
||||
height: 40px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.el-tabs__content {
|
||||
flex: 1;
|
||||
|
||||
.el-tab-pane {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
|||
|
|
@ -297,7 +297,8 @@ export default {
|
|||
let find = this.Agreement.find(item => item.IsCurrentVersion && item.UserAgreementTypeEnum === type)
|
||||
if (!find) return this.$confirm(this.$t('login:message:noAgreement').replace('xxx', this.$fd('UserAgreementType', type)))
|
||||
this.$AGR({
|
||||
Id: find.Id
|
||||
Id: find.Id,
|
||||
IsEn_Us: this.$i18n.locale !== 'zh'
|
||||
})
|
||||
},
|
||||
getAgreementList() {
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ export default {
|
|||
'FileVersion',
|
||||
'UserAgreementId',
|
||||
],
|
||||
IsEn_Us: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -82,6 +83,7 @@ export default {
|
|||
let obj = JSON.parse(this.JsonObj)
|
||||
let curData = []
|
||||
Object.keys(obj).forEach((key) => {
|
||||
if (key === 'IsEn_Us') this.IsEn_Us = obj[key]
|
||||
if (this.curKeys.includes(key)) {
|
||||
let o = {
|
||||
key: this.$t(`system:loginLog:form:${key}`),
|
||||
|
|
@ -103,7 +105,8 @@ export default {
|
|||
methods: {
|
||||
view(row) {
|
||||
this.$AGR({
|
||||
Id: row.value
|
||||
Id: row.value,
|
||||
IsEn_Us: this.IsEn_Us
|
||||
})
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue