|
|
@@ -0,0 +1,119 @@
|
|
|
+<template>
|
|
|
+ <div style="background-color: #f0f2f5" class="dark:bg-dark-900">
|
|
|
+ <BasicTable @register="registerTable" class="dark:bg-dark-900">
|
|
|
+ <template #toolbar>
|
|
|
+ <!-- <Authority value="api:yt:smsLog:export">
|
|
|
+ <a-button type="primary" @click="handleCreate"> 导出 </a-button>
|
|
|
+ </Authority> -->
|
|
|
+ <Authority value="api:yt:smsLog:delete">
|
|
|
+ <Popconfirm
|
|
|
+ title="您确定要批量删除数据"
|
|
|
+ ok-text="确定"
|
|
|
+ cancel-text="取消"
|
|
|
+ @confirm="handleDeleteOrBatchDelete(null)"
|
|
|
+ >
|
|
|
+ <a-button type="primary" color="error" :disabled="hasBatchDelete"> 批量删除 </a-button>
|
|
|
+ </Popconfirm>
|
|
|
+ </Authority>
|
|
|
+ </template>
|
|
|
+ <template #remark="{ record }">
|
|
|
+ <Tooltip :title="record.remark">
|
|
|
+ <div class="truncate w-full">{{ record.remark }}</div>
|
|
|
+ </Tooltip>
|
|
|
+ </template>
|
|
|
+ <template #action="{ record }">
|
|
|
+ <TableAction
|
|
|
+ :actions="[
|
|
|
+ {
|
|
|
+ label: '查看',
|
|
|
+ auth: 'api:yt:smsLog:get',
|
|
|
+ icon: 'ant-design:fund-view-outlined',
|
|
|
+ onClick: handleModal.bind(null, record),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '删除',
|
|
|
+ auth: 'api:yt:smsLog:delete',
|
|
|
+ icon: 'ant-design:delete-outlined',
|
|
|
+ color: 'error',
|
|
|
+ popConfirm: {
|
|
|
+ title: '是否确认删除',
|
|
|
+ confirm: handleDeleteOrBatchDelete.bind(null, record),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </BasicTable>
|
|
|
+ <EmailDetail @register="registerModal" />
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts">
|
|
|
+ import { defineComponent, nextTick } from 'vue';
|
|
|
+ import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
|
+ import { columns, searchFormSchema } from './email.data';
|
|
|
+ import { mailLogPage, deleteMailLog } from '/@/api/message/records';
|
|
|
+ import { useModal } from '/@/components/Modal';
|
|
|
+ import EmailDetail from './EmailDetail.vue';
|
|
|
+ import { useBatchDelete } from '/@/hooks/web/useBatchDelete';
|
|
|
+ import { Authority } from '/@/components/Authority';
|
|
|
+ import { Popconfirm, Tooltip } from 'ant-design-vue';
|
|
|
+
|
|
|
+ export default defineComponent({
|
|
|
+ name: 'EmailLog',
|
|
|
+ components: { EmailDetail, BasicTable, TableAction, Authority, Popconfirm, Tooltip },
|
|
|
+ setup() {
|
|
|
+ const [registerModal, { openModal }] = useModal();
|
|
|
+ const [registerTable, { reload, setProps }] = useTable({
|
|
|
+ title: '邮件发送列表',
|
|
|
+ api: mailLogPage,
|
|
|
+ columns,
|
|
|
+ formConfig: {
|
|
|
+ labelWidth: 120,
|
|
|
+ schemas: searchFormSchema,
|
|
|
+ fieldMapToTime: [['sendTime', ['startTime', 'endTime'], 'YYYY-MM-DD HH:mm:ss']],
|
|
|
+ },
|
|
|
+ useSearchForm: true,
|
|
|
+ showTableSetting: true,
|
|
|
+ bordered: true,
|
|
|
+ showIndexColumn: false,
|
|
|
+ actionColumn: {
|
|
|
+ width: 200,
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ slots: { customRender: 'action' },
|
|
|
+ fixed: 'right',
|
|
|
+ },
|
|
|
+ });
|
|
|
+ const { hasBatchDelete, selectionOptions, handleDeleteOrBatchDelete } = useBatchDelete(
|
|
|
+ deleteMailLog,
|
|
|
+ handleSuccess,
|
|
|
+ setProps
|
|
|
+ );
|
|
|
+ nextTick(() => {
|
|
|
+ setProps(selectionOptions);
|
|
|
+ });
|
|
|
+
|
|
|
+ function handleCreate() {}
|
|
|
+
|
|
|
+ function handleModal(record: Recordable) {
|
|
|
+ openModal(true, {
|
|
|
+ record,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleSuccess() {
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ registerTable,
|
|
|
+ registerModal,
|
|
|
+ handleCreate,
|
|
|
+ hasBatchDelete,
|
|
|
+ handleDeleteOrBatchDelete,
|
|
|
+ handleModal,
|
|
|
+ handleSuccess,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ });
|
|
|
+</script>
|