项目邮件阅片标准修改
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-06-20 15:27:39 +08:00
parent 2a1dc4d2dd
commit 06167d4ff5
3 changed files with 185 additions and 645 deletions

View File

@ -5,81 +5,34 @@
<div class="search"> <div class="search">
<el-form :inline="true" size="mini" class="base-search-form"> <el-form :inline="true" size="mini" class="base-search-form">
<!-- 审核问题 --> <!-- 审核问题 -->
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:title:businessScenario')">
:label="$t('trials:emailManageCfg:title:businessScenario')" <el-select v-model="searchData.BusinessScenarioEnum" style="width: 150px">
> <el-option v-for="item of $d.Email_BusinessScenario" :key="item.value" :label="item.label"
<el-select :value="item.value" />
v-model="searchData.BusinessScenarioEnum"
style="width: 150px"
>
<el-option
v-for="item of $d.Email_BusinessScenario"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item style="margin-bottom: 10px" :label="$t('trials:emailManageCfg:table:BusinessModuleEnum')">
style="margin-bottom: 10px" <el-select v-model="searchData.BusinessModuleEnum" clearable style="width: 120px">
:label="$t('trials:emailManageCfg:table:BusinessModuleEnum')" <el-option v-for="item of $d.BusinessModule" :key="item.id" :label="item.label" :value="item.value" />
>
<el-select
v-model="searchData.BusinessModuleEnum"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.BusinessModule"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item v-if="isDistinguishCriteria" style="margin-bottom: 10px"
v-if="isDistinguishCriteria" :label="$t('trials:reviewTrack:table:criterionName')">
style="margin-bottom: 10px" <el-select v-model="searchData.CriterionTypeEnum" clearable style="width: 120px">
:label="$t('trials:reviewTrack:table:criterionName')" <el-option v-for="item of $d.CriterionType" :key="item.id" :label="item.label" :value="item.value" />
>
<el-select
v-model="searchData.CriterionTypeEnum"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.CriterionType"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:title:toUserTypeList')" prop="ToUserTypeList">
:label="$t('trials:emailManageCfg:title:toUserTypeList')"
prop="ToUserTypeList"
>
<el-select v-model="searchData.ToUserType" clearable class="mr"> <el-select v-model="searchData.ToUserType" clearable class="mr">
<el-option <el-option v-for="item of UserTypeList" :key="`ToUserTypeList${item.label}`" :label="item.label"
v-for="item of UserTypeList" :value="item.value" />
:key="`ToUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" prop="EmailUrgentEnum"
:label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" v-if="!isDistinguishCriteria">
prop="EmailUrgentEnum"
v-if="!isDistinguishCriteria"
>
<el-select v-model="searchData.EmailUrgentEnum" clearable class="mr"> <el-select v-model="searchData.EmailUrgentEnum" clearable class="mr">
<el-option <el-option v-for="item of $d.EmailUrgent" :key="`ToUserTypeList${item.label}`" :label="item.label"
v-for="item of $d.EmailUrgent" :value="item.value" />
:key="`ToUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -89,40 +42,19 @@
<el-button type="primary" @click="handleReset">{{ <el-button type="primary" @click="handleReset">{{
$t('common:button:reset') $t('common:button:reset')
}}</el-button> }}</el-button>
<el-button <el-button type="primary" @click="handleAdd" class="el-icon-plus" v-if="!isDistinguishCriteria && isShow">{{
type="primary" $t('trials:reviewTrack:button:addDefault') }}</el-button>
@click="handleAdd"
class="el-icon-plus"
v-if="!isDistinguishCriteria && isShow"
>{{ $t('trials:reviewTrack:button:addDefault') }}</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span style="margin-left: auto"> <span style="margin-left: auto">
<el-button <el-button type="primary" size="mini" :disabled="selectArr.length <= 0" @click="handleSubmit">
type="primary"
size="mini"
:disabled="selectArr.length <= 0"
@click="handleSubmit"
>
{{ $t('common:button:submit') }} {{ $t('common:button:submit') }}
</el-button> </el-button>
</span> </span>
</div> </div>
<el-table <el-table :data="list" stripe size="small" height="400" @selection-change="handleSelectChange">
:data="list" <el-table-column type="selection" align="left" :selectable="selectable" width="45" />
stripe
size="small"
height="400"
@selection-change="handleSelectChange"
>
<el-table-column
type="selection"
align="left"
:selectable="selectable"
width="45"
/>
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!-- Code --> <!-- Code -->
<!-- <el-table-column <!-- <el-table-column
@ -132,155 +64,89 @@
show-overflow-tooltip show-overflow-tooltip
width="100" width="100"
/> --> /> -->
<el-table-column <el-table-column v-if="isDistinguishCriteria" prop="CriterionTypeList"
v-if="isDistinguishCriteria" :label="$t('trials:reviewTrack:table:criterionName')" show-overflow-tooltip sortable="custom" width="120">
prop="TrialReadingCriterionId"
:label="$t('trials:reviewTrack:table:criterionName')"
show-overflow-tooltip
sortable="custom"
width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('CriterionType', scope.row.CriterionTypeEnum) }} {{scope.row.CriterionTypeList && scope.row.CriterionTypeList.length > 0 ?
scope.row.CriterionTypeList.map(item => { return $fd('CriterionType', item) }
).join(', ') : ''}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="$i18n.locale === 'zh'" prop="EmailTopicCN"
v-if="$i18n.locale === 'zh'" :label="$t('trials:emailManageCfg:table:EmailTopicCN')" sortable="custom" show-overflow-tooltip width="160" />
prop="EmailTopicCN" <el-table-column v-else prop="EmailTopic" :label="$t('trials:emailManageCfg:table:EmailTopic')" sortable="custom"
:label="$t('trials:emailManageCfg:table:EmailTopicCN')" show-overflow-tooltip width="160" />
sortable="custom" <el-table-column prop="BusinessModuleEnum" :label="$t('trials:emailManageCfg:table:BusinessModuleEnum')"
show-overflow-tooltip sortable="custom" show-overflow-tooltip width="100">
width="160"
/>
<el-table-column
v-else
prop="EmailTopic"
:label="$t('trials:emailManageCfg:table:EmailTopic')"
sortable="custom"
show-overflow-tooltip
width="160"
/>
<el-table-column
prop="BusinessModuleEnum"
:label="$t('trials:emailManageCfg:table:BusinessModuleEnum')"
sortable="custom"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('BusinessModule', scope.row.BusinessModuleEnum) }} {{ $fd('BusinessModule', scope.row.BusinessModuleEnum) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="BusinessScenarioEnum" :label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')"
prop="BusinessScenarioEnum" sortable="custom" show-overflow-tooltip width="130">
:label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')"
sortable="custom"
show-overflow-tooltip
width="130"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('Email_BusinessScenario', scope.row.BusinessScenarioEnum) }} {{ $fd('Email_BusinessScenario', scope.row.BusinessScenarioEnum) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 收件人 --> <!-- 收件人 -->
<el-table-column <el-table-column prop="ToUserTypeList" :label="$t('trials:emailManageCfg:title:toUserTypeList')"
prop="ToUserTypeList" show-overflow-tooltip width="100">
:label="$t('trials:emailManageCfg:title:toUserTypeList')"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.ToUserTypeList.length > 0 scope.row.ToUserTypeList.length > 0
? scope.row.ToUserTypeList.map((v) => $fd('UserType', v)).join( ? scope.row.ToUserTypeList.map((v) => $fd('UserType', v)).join(
'、' '、'
) )
: '' : ''
}} }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 抄送人 --> <!-- 抄送人 -->
<el-table-column <el-table-column prop="CopyUserTypeList" :label="$t('trials:emailManageCfg:title:copyUserTypeList')"
prop="CopyUserTypeList" show-overflow-tooltip width="100">
:label="$t('trials:emailManageCfg:title:copyUserTypeList')"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.CopyUserTypeList.length > 0 scope.row.CopyUserTypeList.length > 0
? scope.row.CopyUserTypeList.map((v) => $fd('UserType', v)).join( ? scope.row.CopyUserTypeList.map((v) => $fd('UserType', v)).join(
'、' '、'
) )
: '' : ''
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column :label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" sortable="custom"
:label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" show-overflow-tooltip width="100">
sortable="custom"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('EmailUrgent', scope.row.EmailUrgentEnum) }} {{ $fd('EmailUrgent', scope.row.EmailUrgentEnum) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="EmailCron" :label="$t('trials:emailManageCfg:table:EmailCron')" sortable="custom"
prop="EmailCron" show-overflow-tooltip width="160">
:label="$t('trials:emailManageCfg:table:EmailCron')"
sortable="custom"
show-overflow-tooltip
width="160"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ getEmailCron(scope.row.EmailCron) }}</span> <span>{{ getEmailCron(scope.row.EmailCron) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- 附件 --> <!-- 附件 -->
<el-table-column <el-table-column v-if="$i18n.locale === 'zh'" prop="AttachNameCN"
v-if="$i18n.locale === 'zh'" :label="$t('trials:emailManageCfg:title:fileName')" show-overflow-tooltip width="100">
prop="AttachNameCN"
:label="$t('trials:emailManageCfg:title:fileName')"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="scope.row.AttachCNPath" type="text" @click="handlePreview(scope.row.AttachCNPath)">
v-if="scope.row.AttachCNPath"
type="text"
@click="handlePreview(scope.row.AttachCNPath)"
>
{{ scope.row.AttachNameCN }} {{ scope.row.AttachNameCN }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<!-- 附件 --> <!-- 附件 -->
<el-table-column <el-table-column v-else prop="AttachName" :label="$t('trials:emailManageCfg:title:fileName')"
v-else show-overflow-tooltip width="100">
prop="AttachName"
:label="$t('trials:emailManageCfg:title:fileName')"
show-overflow-tooltip
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="scope.row.AttachPath" type="text" @click="handlePreview(scope.row.AttachPath)">
v-if="scope.row.AttachPath"
type="text"
@click="handlePreview(scope.row.AttachPath)"
>
{{ scope.row.AttachName }} {{ scope.row.AttachName }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<!-- 是否需要回执 --> <!-- 是否需要回执 -->
<el-table-column <el-table-column prop="IsReturnRequired" :label="$t('trials:emailManageCfg:title:isReturnRequired')"
prop="IsReturnRequired" show-overflow-tooltip sortable="custom" width="140">
:label="$t('trials:emailManageCfg:title:isReturnRequired')"
show-overflow-tooltip
sortable="custom"
width="140"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsReturnRequired" type="danger"> <el-tag v-if="scope.row.IsReturnRequired" type="danger">
{{ $fd('YesOrNo', scope.row.IsReturnRequired) }} {{ $fd('YesOrNo', scope.row.IsReturnRequired) }}
@ -291,13 +157,8 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 是否自动发送 --> <!-- 是否自动发送 -->
<el-table-column <el-table-column prop="IsAutoSend" :label="$t('trials:emailManageCfg:title:isAutoSend')" show-overflow-tooltip
prop="IsAutoSend" sortable="custom" width="160">
:label="$t('trials:emailManageCfg:title:isAutoSend')"
show-overflow-tooltip
sortable="custom"
width="160"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsAutoSend" type="danger"> <el-tag v-if="scope.row.IsAutoSend" type="danger">
{{ $fd('YesOrNo', scope.row.IsAutoSend) }} {{ $fd('YesOrNo', scope.row.IsAutoSend) }}
@ -307,13 +168,8 @@
}}</el-tag> }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="IsEnable" :label="$t('trials:emailManageCfg:table:IsEnable')" show-overflow-tooltip
prop="IsEnable" sortable="custom" width="160">
:label="$t('trials:emailManageCfg:table:IsEnable')"
show-overflow-tooltip
sortable="custom"
width="160"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsEnable" type="danger"> <el-tag v-if="scope.row.IsEnable" type="danger">
{{ $fd('YesOrNo', scope.row.IsEnable) }} {{ $fd('YesOrNo', scope.row.IsEnable) }}
@ -324,29 +180,14 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 更新时间 --> <!-- 更新时间 -->
<el-table-column <el-table-column prop="UpdateTime" :label="$t('trials:emailManageCfg:title:updateTime')" show-overflow-tooltip
prop="UpdateTime" sortable="custom" width="160" />
:label="$t('trials:emailManageCfg:title:updateTime')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<!-- 创建时间 --> <!-- 创建时间 -->
<el-table-column <el-table-column prop="CreateTime" :label="$t('trials:emailManageCfg:title:createTime')" show-overflow-tooltip
prop="CreateTime" sortable="custom" width="160" />
:label="$t('trials:emailManageCfg:title:createTime')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
</el-table> </el-table>
<Pagination <Pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
class="page" @pagination="getList" />
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</box-content> </box-content>
</template> </template>
<script> <script>

View File

@ -1,12 +1,5 @@
<template> <template>
<el-form <el-form ref="emailForm" v-loading="loading" :model="form" label-width="180px" size="small" :rules="rules">
ref="emailForm"
v-loading="loading"
:model="form"
label-width="180px"
size="small"
:rules="rules"
>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="Code" prop="Code"> <el-form-item label="Code" prop="Code">
@ -14,242 +7,111 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="$i18n.locale === 'zh'"> <el-col :span="12" v-if="$i18n.locale === 'zh'">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:EmailTopicCN')" prop="EmailTopicCN">
:label="$t('trials:emailManageCfg:table:EmailTopicCN')"
prop="EmailTopicCN"
>
<el-input style="width: 300px" disabled v-model="form.EmailTopicCN" /> <el-input style="width: 300px" disabled v-model="form.EmailTopicCN" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-else> <el-col :span="12" v-else>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:EmailTopic')" prop="EmailTopic">
:label="$t('trials:emailManageCfg:table:EmailTopic')"
prop="EmailTopic"
>
<el-input style="width: 300px" disabled v-model="form.EmailTopic" /> <el-input style="width: 300px" disabled v-model="form.EmailTopic" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')" prop="BusinessScenarioEnum">
:label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')" <el-select v-model="form.BusinessScenarioEnum" disabled clearable class="mr">
prop="BusinessScenarioEnum" <el-option v-for="item of $d.Email_BusinessScenario" :key="`BusinessScenarioEnum${item.label}`"
> :label="item.label" :value="item.value" />
<el-select
v-model="form.BusinessScenarioEnum"
disabled
clearable
class="mr"
>
<el-option
v-for="item of $d.Email_BusinessScenario"
:key="`BusinessScenarioEnum${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:ToUserTypeList')" prop="ToUserTypeList">
:label="$t('trials:emailManageCfg:table:ToUserTypeList')" <el-select v-model="form.ToUserTypeList" clearable multiple class="mr">
prop="ToUserTypeList" <el-option v-for="item of UserTypeList" :key="`ToUserTypeList${item.label}`" :label="item.label"
> :value="item.value" />
<el-select
v-model="form.ToUserTypeList"
clearable
multiple
class="mr"
>
<el-option
v-for="item of UserTypeList"
:key="`ToUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:CopyUserTypeList')" prop="CopyUserTypeList">
:label="$t('trials:emailManageCfg:table:CopyUserTypeList')" <el-select v-model="form.CopyUserTypeList" clearable multiple class="mr">
prop="CopyUserTypeList" <el-option v-for="item of UserTypeList" :key="`CopyUserTypeList${item.label}`" :label="item.label"
> :value="item.value" />
<el-select
v-model="form.CopyUserTypeList"
clearable
multiple
class="mr"
>
<el-option
v-for="item of UserTypeList"
:key="`CopyUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:blackUserIdList')" prop="blackUserIdList">
:label="$t('trials:emailManageCfg:table:blackUserIdList')" <el-select v-model="form.blackUserIdList" clearable multiple class="mr">
prop="blackUserIdList" <el-option v-for="item of UserList" :key="`blackUserIdList${item.UserName}`"
> :label="`${item.UserName}(${item.RealName})`" :value="item.UserId" />
<el-select
v-model="form.blackUserIdList"
clearable
multiple
class="mr"
>
<el-option
v-for="item of UserList"
:key="`blackUserIdList${item.UserName}`"
:label="`${item.UserName}(${item.RealName})`"
:value="item.UserId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" prop="EmailUrgentEnum">
:label="$t('trials:emailManageCfg:table:EmailUrgentEnum')" <el-select v-model="form.EmailUrgentEnum" disabled clearable class="mr">
prop="EmailUrgentEnum" <el-option v-for="item of $d.EmailUrgent" :key="`EmailUrgent${item.label}`" :label="item.label"
> :value="item.value" />
<el-select
v-model="form.EmailUrgentEnum"
disabled
clearable
class="mr"
>
<el-option
v-for="item of $d.EmailUrgent"
:key="`EmailUrgent${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:EmailCron')"
:label="$t('trials:emailManageCfg:table:EmailCron')" v-if="form.EmailUrgentEnum !== 1 && IntervalShow" prop="EmailCron">
v-if="form.EmailUrgentEnum !== 1 && IntervalShow" <el-input-number v-model="Interval" @change="handleIntervalChange" :min="1" :max="365"></el-input-number>
prop="EmailCron"
>
<el-input-number
v-model="Interval"
@change="handleIntervalChange"
:min="1"
:max="365"
></el-input-number>
<!-- <el-input style="width: 300px" readonly v-model="form.EmailCron" />--> <!-- <el-input style="width: 300px" readonly v-model="form.EmailCron" />-->
<!-- <el-button type="primary" @click="showDialog"> cron</el-button>--> <!-- <el-button type="primary" @click="showDialog"> cron</el-button>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:title:isReturnRequired')" prop="IsReturnRequired">
:label="$t('trials:emailManageCfg:title:isReturnRequired')"
prop="IsReturnRequired"
>
<el-radio-group v-model="form.IsReturnRequired"> <el-radio-group v-model="form.IsReturnRequired">
<el-radio <el-radio v-for="item of $d.YesOrNo" :label="item.value" :key="`IsReturnRequired${item.value}`">{{
v-for="item of $d.YesOrNo" item.label }}</el-radio>
:label="item.value"
:key="`IsReturnRequired${item.value}`"
>{{ item.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:IsAutoSend')" prop="IsAutoSend">
:label="$t('trials:emailManageCfg:table:IsAutoSend')"
prop="IsAutoSend"
>
<el-radio-group v-model="form.IsAutoSend"> <el-radio-group v-model="form.IsAutoSend">
<el-radio <el-radio v-for="item of $d.YesOrNo" :label="item.value" :key="`IsAutoSend${item.value}`">{{ item.label
v-for="item of $d.YesOrNo" }}</el-radio>
:label="item.value"
:key="`IsAutoSend${item.value}`"
>{{ item.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:IsEnable')" prop="IsEnable">
:label="$t('trials:emailManageCfg:table:IsEnable')"
prop="IsEnable"
>
<el-radio-group v-model="form.IsEnable"> <el-radio-group v-model="form.IsEnable">
<el-radio <el-radio v-for="item of $d.YesOrNo" :label="item.value" :key="`IsEnable${item.value}`">{{ item.label
v-for="item of $d.YesOrNo" }}</el-radio>
:label="item.value"
:key="`IsEnable${item.value}`"
>{{ item.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:CriterionTypeEnum')"
:label="$t('trials:emailManageCfg:table:CriterionTypeEnum')" v-if="form.CriterionTypeList && form.CriterionTypeList.length > 0" prop="CriterionTypeList">
v-if="form.CriterionTypeEnum && form.CriterionTypeEnum.length > 0" <el-select disabled v-model="form.CriterionTypeList" clearable class="mr" multiple>
prop="CriterionTypeEnum" <el-option v-for="item of $d.CriterionType" :key="`CriterionType${item.label}`" :label="item.label"
> :value="item.value" />
<el-select
disabled
v-model="form.CriterionTypeEnum"
clearable
class="mr"
>
<el-option
v-for="item of $d.CriterionType"
:key="`CriterionType${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="$i18n.locale === 'zh'"> <el-col :span="12" v-if="$i18n.locale === 'zh'">
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:fileListCN')" prop="IsEnable">
:label="$t('trials:emailManageCfg:table:fileListCN')" <el-upload class="upload-demo" action :before-upload="beforeUploadCN" :http-request="handleUploadFileCN"
prop="IsEnable" :on-preview="handlePreviewCN" :on-remove="handleRemoveFileCN" :show-file-list="true" :disabled="true"
> :limit="1" :file-list="fileListCN">
<el-upload
class="upload-demo"
action
:before-upload="beforeUploadCN"
:http-request="handleUploadFileCN"
:on-preview="handlePreviewCN"
:on-remove="handleRemoveFileCN"
:show-file-list="true"
:disabled="true"
:limit="1"
:file-list="fileListCN"
>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-else> <el-col :span="12" v-else>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:fileListEN')" prop="IsEnable">
:label="$t('trials:emailManageCfg:table:fileListEN')" <el-upload class="upload-demo" action :before-upload="beforeUploadEN" :http-request="handleUploadFileEN"
prop="IsEnable" :on-preview="handlePreviewEN" :on-remove="handleRemoveFileEN" :show-file-list="true" :disabled="true"
> :limit="1" :file-list="fileListEN">
<el-upload
class="upload-demo"
action
:before-upload="beforeUploadEN"
:http-request="handleUploadFileEN"
:on-preview="handlePreviewEN"
:on-remove="handleRemoveFileEN"
:show-file-list="true"
:disabled="true"
:limit="1"
:file-list="fileListEN"
>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -270,26 +132,14 @@
<!-- :autosize="{ minRows: 8, maxRows: 8}"--> <!-- :autosize="{ minRows: 8, maxRows: 8}"-->
<!-- />--> <!-- />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<div <div class="base-dialog-footer" style="text-align: right; margin-top: 10px; padding-bottom: 10px">
class="base-dialog-footer"
style="text-align: right; margin-top: 10px; padding-bottom: 10px"
>
<el-form-item style="text-align: right"> <el-form-item style="text-align: right">
<el-button size="small" type="primary" @click="handleSave"> <el-button size="small" type="primary" @click="handleSave">
{{ $t('common:button:save') }}</el-button {{ $t('common:button:save') }}</el-button>
>
</el-form-item> </el-form-item>
</div> </div>
<el-dialog <el-dialog append-to-body :title="$t('trials:emailManageCfg:button:generate')" :visible.sync="showCron">
append-to-body <vcrontab @hide="showCron = false" @fill="crontabFill" :expression="expression"></vcrontab>
:title="$t('trials:emailManageCfg:button:generate')"
:visible.sync="showCron"
>
<vcrontab
@hide="showCron = false"
@fill="crontabFill"
:expression="expression"
></vcrontab>
</el-dialog> </el-dialog>
</el-form> </el-form>
</template> </template>
@ -345,6 +195,7 @@ export default {
IsEnable: true, IsEnable: true,
IsAutoSend: true, IsAutoSend: true,
CriterionTypeEnum: null, CriterionTypeEnum: null,
CriterionTypeList: [],
FromEmail: '', FromEmail: '',
FromName: '', FromName: '',
AuthorizationCode: '', AuthorizationCode: '',

View File

@ -3,63 +3,30 @@
<template slot="search-container"> <template slot="search-container">
<el-form :inline="true" size="small"> <el-form :inline="true" size="small">
<!-- 业务场景 --> <!-- 业务场景 -->
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:title:businessScenario')">
:label="$t('trials:emailManageCfg:title:businessScenario')" <el-select v-model="searchData.BusinessScenarioEnum" style="width: 150px">
> <el-option v-for="item of $d.Email_BusinessScenario" :key="item.value" :label="item.label"
<el-select :value="item.value" />
v-model="searchData.BusinessScenarioEnum"
style="width: 150px"
>
<el-option
v-for="item of $d.Email_BusinessScenario"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item v-if="isDistinguishCriteria" style="margin-bottom: 10px"
v-if="isDistinguishCriteria" :label="$t('trials:reviewTrack:table:criterionName')">
style="margin-bottom: 10px" <el-select v-model="searchData.TrialReadingCriterionId" clearable style="width: 120px">
:label="$t('trials:reviewTrack:table:criterionName')" <el-option v-for="item of trialCriterionList"
> :key="'TrialReadingCriterionId' + item.TrialReadingCriterionId" :value="item.TrialReadingCriterionId"
<el-select :label="item.TrialReadingCriterionName" />
v-model="searchData.TrialReadingCriterionId"
clearable
style="width: 120px"
>
<el-option
v-for="item of trialCriterionList"
:key="'TrialReadingCriterionId' + item.TrialReadingCriterionId"
:value="item.TrialReadingCriterionId"
:label="item.TrialReadingCriterionName"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:title:toUserTypeList')" prop="ToUserTypeList">
:label="$t('trials:emailManageCfg:title:toUserTypeList')"
prop="ToUserTypeList"
>
<el-select v-model="searchData.ToUserType" clearable class="mr"> <el-select v-model="searchData.ToUserType" clearable class="mr">
<el-option <el-option v-for="item of UserTypeList" :key="`ToUserTypeList${item.label}`" :label="item.label"
v-for="item of UserTypeList" :value="item.value" />
:key="`ToUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('trials:emailManageCfg:table:IsEnable')" prop="IsEnable">
:label="$t('trials:emailManageCfg:table:IsEnable')"
prop="IsEnable"
>
<el-select v-model="searchData.IsEnable" clearable class="mr"> <el-select v-model="searchData.IsEnable" clearable class="mr">
<el-option <el-option v-for="item of $d.YesOrNo" :key="`ToUserTypeList${item.label}`" :label="item.label"
v-for="item of $d.YesOrNo" :value="item.value" />
:key="`ToUserTypeList${item.label}`"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -68,21 +35,11 @@
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button <el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<el-button <el-button v-if="hasPermi(['trials:trials-panel:setting:email-manage:edit'])" type="primary"
v-if="hasPermi(['trials:trials-panel:setting:email-manage:edit'])" icon="el-icon-plus" size="small" :disabled="isEdit" @click="handleAddDefault">
type="primary"
icon="el-icon-plus"
size="small"
:disabled="isEdit"
@click="handleAddDefault"
>
{{ $t('trials:emailManageCfg:button:Default') }} {{ $t('trials:emailManageCfg:button:Default') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -90,13 +47,7 @@
<!-- 自定义标准允许添加 --> <!-- 自定义标准允许添加 -->
</template> </template>
<template slot="main-container"> <template slot="main-container">
<el-table <el-table ref="emailList" v-loading="loading" :data="list" stripe @sort-change="handleSortChange">
ref="emailList"
v-loading="loading"
:data="list"
stripe
@sort-change="handleSortChange"
>
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!-- Code --> <!-- Code -->
<!-- <el-table-column <!-- <el-table-column
@ -106,63 +57,34 @@
show-overflow-tooltip show-overflow-tooltip
width="100" width="100"
/> --> /> -->
<el-table-column <el-table-column v-if="isDistinguishCriteria" prop="CriterionTypeList"
v-if="isDistinguishCriteria" :label="$t('trials:reviewTrack:table:criterionName')" show-overflow-tooltip sortable="custom" width="120">
prop="TrialReadingCriterionId"
:label="$t('trials:reviewTrack:table:criterionName')"
show-overflow-tooltip
sortable="custom"
width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.TrialCriterionName }} {{scope.row.CriterionTypeList && scope.row.CriterionTypeList.length > 0 ?
scope.row.CriterionTypeList.map(item => { return $fd('CriterionType', item) }
).join(', ') : ''}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="$i18n.locale === 'zh'" prop="EmailTopicCN"
v-if="$i18n.locale === 'zh'" :label="$t('trials:emailManageCfg:table:EmailTopicCN')" sortable="custom" show-overflow-tooltip
prop="EmailTopicCN" min-width="140" />
:label="$t('trials:emailManageCfg:table:EmailTopicCN')" <el-table-column v-else prop="EmailTopic" :label="$t('trials:emailManageCfg:table:EmailTopic')"
sortable="custom" sortable="custom" show-overflow-tooltip min-width="140" />
show-overflow-tooltip <el-table-column prop="BusinessModuleEnum" :label="$t('trials:emailManageCfg:table:BusinessModuleEnum')"
min-width="140" sortable="custom" show-overflow-tooltip min-width="100">
/>
<el-table-column
v-else
prop="EmailTopic"
:label="$t('trials:emailManageCfg:table:EmailTopic')"
sortable="custom"
show-overflow-tooltip
min-width="140"
/>
<el-table-column
prop="BusinessModuleEnum"
:label="$t('trials:emailManageCfg:table:BusinessModuleEnum')"
sortable="custom"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('BusinessModule', scope.row.BusinessModuleEnum) }} {{ $fd('BusinessModule', scope.row.BusinessModuleEnum) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="BusinessScenarioEnum" :label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')"
prop="BusinessScenarioEnum" sortable="custom" show-overflow-tooltip min-width="100">
:label="$t('trials:emailManageCfg:table:BusinessScenarioEnum')"
sortable="custom"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('Email_BusinessScenario', scope.row.BusinessScenarioEnum) }} {{ $fd('Email_BusinessScenario', scope.row.BusinessScenarioEnum) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 收件人 --> <!-- 收件人 -->
<el-table-column <el-table-column prop="ToUserTypeList" :label="$t('trials:emailManageCfg:title:toUserTypeList')"
prop="ToUserTypeList" show-overflow-tooltip min-width="100">
:label="$t('trials:emailManageCfg:title:toUserTypeList')"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.ToUserTypeNameList.length > 0 scope.row.ToUserTypeNameList.length > 0
@ -172,12 +94,8 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 抄送人 --> <!-- 抄送人 -->
<el-table-column <el-table-column prop="CopyUserTypeList" :label="$t('trials:emailManageCfg:title:copyUserTypeList')"
prop="CopyUserTypeList" show-overflow-tooltip min-width="100">
:label="$t('trials:emailManageCfg:title:copyUserTypeList')"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.CopyUserTypeNameList.length > 0 scope.row.CopyUserTypeNameList.length > 0
@ -204,36 +122,18 @@
<!-- width="160"--> <!-- width="160"-->
<!-- />--> <!-- />-->
<!-- 附件 --> <!-- 附件 -->
<el-table-column <el-table-column v-if="$i18n.locale === 'zh' && isDistinguishCriteria" prop="AttachNameCN"
v-if="$i18n.locale === 'zh' && isDistinguishCriteria" :label="$t('trials:emailManageCfg:title:fileName')" show-overflow-tooltip min-width="140">
prop="AttachNameCN"
:label="$t('trials:emailManageCfg:title:fileName')"
show-overflow-tooltip
min-width="140"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span v-if="scope.row.AttachCNPath" @click="handlePreview(scope.row.AttachCNPath)"
v-if="scope.row.AttachCNPath" style="cursor: pointer; color: #428bca">{{ scope.row.AttachNameCN }}</span>
@click="handlePreview(scope.row.AttachCNPath)"
style="cursor: pointer; color: #428bca"
>{{ scope.row.AttachNameCN }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="$i18n.locale === 'en' && isDistinguishCriteria" prop="AttachName"
v-if="$i18n.locale === 'en' && isDistinguishCriteria" :label="$t('trials:emailManageCfg:title:fileName')" show-overflow-tooltip min-width="140">
prop="AttachName"
:label="$t('trials:emailManageCfg:title:fileName')"
show-overflow-tooltip
min-width="140"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span v-if="scope.row.AttachPath" @click="handlePreview(scope.row.AttachPath)"
v-if="scope.row.AttachPath" style="cursor: pointer; color: #428bca">{{ scope.row.AttachName }}</span>
@click="handlePreview(scope.row.AttachPath)"
style="cursor: pointer; color: #428bca"
>{{ scope.row.AttachName }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<!-- 是否需要回执 --> <!-- 是否需要回执 -->
@ -267,13 +167,8 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
<!-- 是否启用 --> <!-- 是否启用 -->
<el-table-column <el-table-column prop="IsEnable" :label="$t('trials:emailManageCfg:table:IsEnable')" show-overflow-tooltip
prop="IsEnable" sortable="custom" min-width="90">
:label="$t('trials:emailManageCfg:table:IsEnable')"
show-overflow-tooltip
sortable="custom"
min-width="90"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsEnable" type="danger"> <el-tag v-if="scope.row.IsEnable" type="danger">
{{ $fd('YesOrNo', scope.row.IsEnable) }} {{ $fd('YesOrNo', scope.row.IsEnable) }}
@ -284,84 +179,37 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 更新时间 --> <!-- 更新时间 -->
<el-table-column <el-table-column prop="UpdateTime" :label="$t('trials:emailManageCfg:title:updateTime')" show-overflow-tooltip
prop="UpdateTime" sortable="custom" min-width="100" />
:label="$t('trials:emailManageCfg:title:updateTime')"
show-overflow-tooltip
sortable="custom"
min-width="100"
/>
<!-- 创建时间 --> <!-- 创建时间 -->
<el-table-column <el-table-column prop="CreateTime" :label="$t('trials:emailManageCfg:title:createTime')" show-overflow-tooltip
prop="CreateTime" sortable="custom" min-width="100" />
:label="$t('trials:emailManageCfg:title:createTime')"
show-overflow-tooltip
sortable="custom"
min-width="100"
/>
<el-table-column <el-table-column v-if="hasPermi(['trials:trials-panel:setting:email-manage:edit'])" width="120"
v-if="hasPermi(['trials:trials-panel:setting:email-manage:edit'])" :label="$t('common:action:action')" fixed="right">
width="120"
:label="$t('common:action:action')"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 编辑 --> <!-- 编辑 -->
<el-button <el-button icon="el-icon-edit-outline" circle :disabled="isEdit" :title="$t('common:button:edit')"
icon="el-icon-edit-outline" @click="handleEdit(scope.row)" />
circle
:disabled="isEdit"
:title="$t('common:button:edit')"
@click="handleEdit(scope.row)"
/>
<!-- 编辑 --> <!-- 编辑 -->
<el-button <el-button icon="el-icon-delete" circle :disabled="isEdit" :title="$t('common:button:delete')"
icon="el-icon-delete" @click="deleteTrialEmailNoticeConfig(scope.row)" />
circle
:disabled="isEdit"
:title="$t('common:button:delete')"
@click="deleteTrialEmailNoticeConfig(scope.row)"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 新增/编辑 --> <!-- 新增/编辑 -->
<el-dialog <el-dialog v-if="editDialog.visible" :visible.sync="editDialog.visible" :close-on-click-modal="false"
v-if="editDialog.visible" :title="editDialog.title" fullscreen custom-class="base-dialog-wrapper">
:visible.sync="editDialog.visible" <EmailForm :data="currentRow" :criterion-type="criterionType" :is-distinguish-criteria="isDistinguishCriteria"
:close-on-click-modal="false" :UserTypeList="UserTypeList" @closeDialog="closeDialog" @getList="getList" />
:title="editDialog.title"
fullscreen
custom-class="base-dialog-wrapper"
>
<EmailForm
:data="currentRow"
:criterion-type="criterionType"
:is-distinguish-criteria="isDistinguishCriteria"
:UserTypeList="UserTypeList"
@closeDialog="closeDialog"
@getList="getList"
/>
</el-dialog> </el-dialog>
<!-- 新增默认问题 --> <!-- 新增默认问题 -->
<el-dialog <el-dialog v-if="addVisible" :visible.sync="addVisible" width="1300px" :close-on-click-modal="false"
v-if="addVisible" custom-class="base-dialog-wrapper" :title="$t('trials:emailManageCfg:button:Default')">
:visible.sync="addVisible"
width="1300px"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
:title="$t('trials:emailManageCfg:button:Default')"
>
<div class="base-dialog-body"> <div class="base-dialog-body">
<DefaultQS <DefaultQS @getList="getList" :is-distinguish-criteria="isDistinguishCriteria" :isShow="isBtnShow"
@getList="getList" :UserTypeList="UserTypeList" @close="addVisible = false" />
:is-distinguish-criteria="isDistinguishCriteria"
:isShow="isBtnShow"
:UserTypeList="UserTypeList"
@close="addVisible = false"
/>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>