irc_web/.svn/pristine/cd/cda605c1b64032d4a5aad1dba50...

230 lines
6.1 KiB
Plaintext

<template>
<div v-loading="loading" class="email-wrapper">
<el-collapse v-model="activeCollapse" class="setting-config">
<el-collapse-item title="发件箱配置" name="1">
<!-- 配置信息表单 -->
<el-form
ref="emailRulesForm"
v-loading="loading"
:model="form"
style="width:800px;"
:rules="rules"
label-width="160px"
size="small"
>
<el-form-item
label="发件箱账号"
prop="EmailFromEmail"
>
<el-input :disabled="!isEdit" v-model="form.EmailFromEmail"/>
</el-form-item>
<el-form-item
label="发件人"
prop="EmailFromName"
>
<el-input :disabled="!isEdit" v-model="form.EmailFromName"/>
</el-form-item>
<el-form-item
label="密码/授权码"
prop="EmailAuthorizationCode"
>
<el-input :disabled="!isEdit" v-model="form.EmailAuthorizationCode"/>
</el-form-item>
<el-form-item
label="SMTP服务器"
prop="EmailSMTPServerAddress"
>
<el-input :disabled="!isEdit" v-model="form.EmailSMTPServerAddress"/>
</el-form-item>
<el-form-item
label="SMTP端口"
prop="EmailSMTPServerPort"
>
<el-radio-group
:disabled="!isEdit"
v-model="form.EmailSMTPServerPort"
>
<el-radio
:label="465"
>
465
</el-radio>
<el-radio
:label="25"
>
25
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label-width="160px">
<el-button size="small" v-if="isEdit" @click="setTrialEmail" type="primary">
{{ $t('common:button:confirm') }}
</el-button>
<el-button size="small" v-else @click="isEdit = true" type="primary">
{{ $t('trials:trialCfg:button:update') }}
</el-button>
</el-form-item>
</el-form>
</el-collapse-item>
<el-collapse-item title="自动邮件模版" name="2">
<el-tabs v-model="activeTab" type="border-card">
<el-tab-pane
label="通用"
name="0"
>
<EmailList
ref="emailList"
v-if="activeTab === '0'"
:is-distinguish-criteria="false"
:is-edit="isEdit"
/>
</el-tab-pane>
<el-tab-pane
label="标准相关"
name="1"
>
<EmailList
ref="emailList"
v-if="activeTab === '1'"
:is-distinguish-criteria="true"
:is-edit="isEdit"
/>
</el-tab-pane>
</el-tabs>
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import EmailList from './components/EmailList'
import { getTrialCriterionList } from '@/api/trials/reading'
import { setTrialEmail, getTrialEmail } from '@/api/trials'
export default {
name: 'EmailManage',
components: {
EmailList
},
watch: {
activeTab(v) {
console.log(v)
}
},
data() {
return {
activeCollapse: ['1', '2'],
trialId: '',
activeTab: '0',
trialCriterionList: [],
loading: false,
isEdit: true,
form: {
EmailFromEmail: 'test@extimaging.com',
EmailFromName: 'Test_IRC',
EmailAuthorizationCode: 'SHzyyl2021',
EmailSMTPServerAddress: 'smtp.qiye.aliyun.com',
EmailSMTPServerPort: 465,
IsConfigureEmail: true
},
rules: {
EmailFromEmail: [{ required: true, message: this.$t('common:ruleMessage:specify')}],
EmailFromName: [{ required: true, message: this.$t('common:ruleMessage:specify')}],
EmailAuthorizationCode: [{ required: true, message: this.$t('common:ruleMessage:specify')}],
EmailSMTPServerAddress: [{ required: true, message: this.$t('common:ruleMessage:specify')}],
EmailSMTPServerPort: [{ required: true, message: this.$t('common:ruleMessage:select')}],
}
}
},
mounted() {
this.trialId = this.$route.query.trialId
this.getTrialEmail()
this.getTrialCriterionList()
},
methods: {
setTrialEmail() {
this.$refs['emailRulesForm'].validate((valid) => {
if (!valid) {
resolve(false)
} else {
this.form.TrialId = this.trialId
setTrialEmail(this.form).then(res => {
this.$message.success('保存成功')
this.isEdit = false
this.$refs['emailList'].getList()
})
}
})
},
getTrialEmail() {
getTrialEmail({
TrialId: this.trialId
}).then(res => {
if (res.Result.IsConfigureEmail) {
this.form = Object.assign(this.form, res.Result)
this.isEdit = false
}
})
},
getTrialCriterionList() {
this.loading = true
getTrialCriterionList(this.trialId).then(res => {
this.trialCriterionList = res.Result
// this.activeTab = this.trialCriterionList[0].TrialReadingCriterionId
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}
</script>
<style lang="scss">
.email-wrapper{
height: 100%;
background-color: #fff;
.el-tabs{
height: 100%;
display: flex;
flex-direction: column;
}
.el-tabs__header {
height: 40px;
margin-bottom:5px;
}
.el-tabs__content{
flex: 1;
.el-tab-pane{
height: 100%;
}
}
}
</style>
<style lang="scss" scoped>
.email-wrapper{
height: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
.content{
flex: 1;
overflow-y: auto;
}
>>>.el-collapse-item__header{
background:#e5ecef;
padding-left:10px;
}
>>>.el-collapse-item__content{
padding: 10px;
}
.bottom{
height: 50px;
display:flex;
align-items:center;
justify-content:center;
text-align: center;
border-top: 1px solid #e1e1e1;
}
}
</style>