邮件管理批量编辑
parent
18b0ec2042
commit
ce2a0d9936
|
@ -67,13 +67,18 @@
|
||||||
<el-button type="primary" @click="handleAdd">
|
<el-button type="primary" @click="handleAdd">
|
||||||
{{ $t('common:button:new') }}
|
{{ $t('common:button:new') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button type="primary" @click="openDrawer" :disabled="multipleSelection.length <= 0">
|
||||||
|
{{ $t('trials:emailManageCfg:button:batchAudit') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<!-- 受试者列表 -->
|
<!-- 受试者列表 -->
|
||||||
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 45 }" :data="list" stripe height="100" style="width: 100%"
|
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 45 }" :data="list" stripe height="100" style="width: 100%"
|
||||||
@sort-change="handleSortByColumn">
|
@sort-change="handleSortByColumn" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="index" width="40" />
|
<!-- <el-table-column type="index" width="40" /> -->
|
||||||
|
<el-table-column type="selection" width="55">
|
||||||
|
</el-table-column>
|
||||||
<!-- Code -->
|
<!-- Code -->
|
||||||
<el-table-column prop="Code" :label="$t('trials:emailManageCfg:title:code')" sortable="custom"
|
<el-table-column prop="Code" :label="$t('trials:emailManageCfg:title:code')" sortable="custom"
|
||||||
show-overflow-tooltip min-width="100" />
|
show-overflow-tooltip min-width="100" />
|
||||||
|
@ -249,12 +254,76 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-drawer :title="$t('trials:emailManageCfg:title:audit')" :visible.sync="drawer" direction="rtl" size="80%">
|
||||||
|
<!-- <div style="width: 800px">
|
||||||
|
<el-form label-width="100px" @submit.native.prevent size="small" :inline="true" class="demo-form-inline">
|
||||||
|
<el-form-item :label="$t('il8n:search:keyword')">
|
||||||
|
<el-input v-model="key" @input="keyChange" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('il8n:search:state')">
|
||||||
|
<el-select v-model="State" clearable filterable @change="handleStateChange">
|
||||||
|
<el-option v-for="item of $d.InternationalizationKeyState"
|
||||||
|
:key="'InternationalizationKeyState' + item.value" :label="item.label" :value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div> -->
|
||||||
|
<el-table :data="tableData" v-adaptive="{ bottomOffset: 50 }" height="100" style="width: 100%"
|
||||||
|
@sort-change="handleSortByColumnDrawer">
|
||||||
|
<!-- Code -->
|
||||||
|
<el-table-column prop="Code" :label="$t('trials:emailManageCfg:title:code')" sortable="custom"
|
||||||
|
show-overflow-tooltip min-width="100" />
|
||||||
|
<el-table-column v-if="isDistinguishCriteria" prop="TrialReadingCriterionId"
|
||||||
|
:label="$t('trials:reviewTrack:table:criterionName')" show-overflow-tooltip sortable="custom" min-width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('CriterionType', scope.row.CriterionTypeEnum) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 邮件主题(中文) -->
|
||||||
|
<el-table-column prop="EmailTopicCN" :label="$t('trials:emailManageCfg:table:EmailTopicCN')" sortable="custom"
|
||||||
|
show-overflow-tooltip min-width="160">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-model="scope.row.EmailTopicCN" @input="
|
||||||
|
(e) => {
|
||||||
|
$set(scope.row, 'EmailTopicCN', e)
|
||||||
|
}
|
||||||
|
" size="mini"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 邮件主题(英文) -->
|
||||||
|
<el-table-column prop="EmailTopic" :label="$t('trials:emailManageCfg:table:EmailTopic')" sortable="custom"
|
||||||
|
show-overflow-tooltip min-width="160">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-model="scope.row.EmailTopic" @input="
|
||||||
|
(e) => {
|
||||||
|
$set(scope.row, 'EmailTopic', e)
|
||||||
|
}
|
||||||
|
" size="mini"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 业务层级 -->
|
||||||
|
<el-table-column prop="BusinessLevelEnum" :label="$t('dictionary:email:label:businessLevel')" sortable="custom"
|
||||||
|
show-overflow-tooltip min-width="150">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('BusinessLevel', scope.row.BusinessLevelEnum) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div style="text-align: right; padding-top: 10px; padding-right: 10px">
|
||||||
|
<el-button size="mini" @click="drawer = false">{{ $t('common:button:cancel') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button size="mini" type="primary" @click="handleSave">{{
|
||||||
|
$t('common:button:save')
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
getEmailNoticeConfigList,
|
getEmailNoticeConfigList,
|
||||||
deleteEmailNoticeConfig,
|
deleteEmailNoticeConfig,
|
||||||
|
batchUpdateEmail
|
||||||
} from '@/api/dictionary'
|
} from '@/api/dictionary'
|
||||||
import { GetEmailNoticeConfigList_Export } from '@/api/export'
|
import { GetEmailNoticeConfigList_Export } from '@/api/export'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
|
@ -308,6 +377,9 @@ export default {
|
||||||
previewVisible: false,
|
previewVisible: false,
|
||||||
previewHTML: null,
|
previewHTML: null,
|
||||||
previewHTMLEN: null,
|
previewHTMLEN: null,
|
||||||
|
multipleSelection: [],
|
||||||
|
drawer: false,
|
||||||
|
tableData: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -325,6 +397,50 @@ export default {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async handleSave() {
|
||||||
|
try {
|
||||||
|
let arr = []
|
||||||
|
this.tableData.forEach(item => {
|
||||||
|
let obj = {
|
||||||
|
EmailTopic: item.EmailTopic,
|
||||||
|
EmailTopicCN: item.EmailTopicCN,
|
||||||
|
Id: item.Id
|
||||||
|
}
|
||||||
|
arr.push(obj)
|
||||||
|
})
|
||||||
|
this.drawer = false
|
||||||
|
let res = await batchUpdateEmail(arr)
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.$message.success(this.$t('trials:emailManageCfg:message:auditSuccess'))
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 排序
|
||||||
|
handleSortByColumnDrawer(column) {
|
||||||
|
if (column.order === 'ascending') {
|
||||||
|
this.tableData.sort((a, b) =>
|
||||||
|
a[column.prop].localeCompare(b[column.prop])
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
this.tableData.sort((a, b) =>
|
||||||
|
b[column.prop].localeCompare(a[column.prop])
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openDrawer() {
|
||||||
|
this.tableData = []
|
||||||
|
this.multipleSelection.forEach(item => {
|
||||||
|
let obj = Object.assign({}, item)
|
||||||
|
this.tableData.push(obj)
|
||||||
|
})
|
||||||
|
this.drawer = true
|
||||||
|
},
|
||||||
|
handleSelectionChange(val) {
|
||||||
|
this.multipleSelection = val;
|
||||||
|
},
|
||||||
// 获取受试者列表
|
// 获取受试者列表
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
Loading…
Reference in New Issue