irc_web/src/views/dictionary/template/email/index.vue

150 lines
3.7 KiB
Vue

<template>
<box-content>
<el-tabs v-model="activeTab" type="border-card">
<!-- 通用 -->
<el-tab-pane :label="$t('trials:emailManageCfg:title:commom')" name="0">
<EmailList
v-if="activeTab === '0'"
:is-distinguish-criteria="false"
:is-system-level="0"
></EmailList>
</el-tab-pane>
<!-- 标准相关 -->
<el-tab-pane
:label="$t('trials:emailManageCfg:title:criterions')"
name="1"
>
<EmailList
v-if="activeTab === '1'"
:is-distinguish-criteria="true"
:is-system-level="0"
></EmailList>
</el-tab-pane>
<!-- 系统相关 -->
<el-tab-pane :label="$t('trials:emailManageCfg:title:system')" name="2">
<EmailList
v-if="activeTab === '2'"
:is-distinguish-criteria="false"
:is-system-level="1"
></EmailList>
</el-tab-pane>
<!-- 系统相关-分角色 -->
<el-tab-pane :label="$t('trials:emailManageCfg:title:systemDisRole')" name="3">
<EmailList
v-if="activeTab === '3'"
:is-distinguish-criteria="false"
:is-system-level="2"
></EmailList>
</el-tab-pane>
</el-tabs>
</box-content>
</template>
<script>
import {
getEmailNoticeConfigList,
deleteEmailNoticeConfig,
} from "@/api/dictionary";
import BoxContent from "@/components/BoxContent";
import Pagination from "@/components/Pagination";
import EmailList from "./components/EmailList";
const searchDataDefault = () => {
return {
IsReturnRequired: "",
IsUrgent: "",
IsEnable: "",
PageIndex: 1,
PageSize: 20,
};
};
export default {
name: "EmailListIndex",
components: { BoxContent, Pagination, EmailList },
data() {
return {
activeTab: "0",
searchData: searchDataDefault(),
loading: false,
list: [],
total: 0,
rowData: {},
title: "",
editVisible: false,
attachmentVisible: false,
};
},
mounted() {
this.getList();
},
methods: {
// 获取受试者列表
getList() {
this.loading = true;
getEmailNoticeConfigList(this.searchData)
.then((res) => {
this.loading = false;
this.list = res.Result.CurrentPageData;
this.total = res.Result.TotalCount;
})
.catch(() => {
this.loading = false;
});
},
// 新增
handleAdd() {
this.rowData = {};
this.title = "新增";
this.editVisible = true;
},
// 编辑
handleEdit(row) {
this.rowData = { ...row };
this.title = "编辑";
this.editVisible = true;
},
// 删除
handleDelete(row) {
this.$confirm(this.$t("trials:staffResearch:message:confirmDel"), {
type: "warning",
distinguishCancelAndClose: true,
}).then(() => {
deleteEmailNoticeConfig(row.Id).then((res) => {
if (res.IsSuccess) {
this.getList();
this.$message.success("删除成功!");
}
});
});
},
handleDetail(row) {
this.rowData = { ...row };
this.attachmentVisible = true;
},
// 查询
handleSearch() {
this.searchData.PageIndex = 1;
this.getList();
},
// 重置
handleReset() {
this.searchData = searchDataDefault();
this.getList();
},
// 排序
handleSortByColumn(column) {
if (column.order === "ascending") {
this.searchData.Asc = true;
} else {
this.searchData.Asc = false;
}
this.searchData.SortField = column.prop;
this.searchData.PageIndex = 1;
this.getList();
},
// 关闭新增、编辑框
closeDialog() {
this.editVisible = false;
},
},
};
</script>