1
|
<template>
|
1
|
<template>
|
2
|
<div>
|
2
|
<div>
|
3
|
- <BasicTable @register="registerTable">
|
3
|
+ <BasicTable
|
|
|
4
|
+ @selection-change="useSelectionChange"
|
|
|
5
|
+ :rowSelection="{ type: 'checkbox' }"
|
|
|
6
|
+ @register="registerTable"
|
|
|
7
|
+ >
|
4
|
<template #toolbar>
|
8
|
<template #toolbar>
|
5
|
<a-button type="primary" @click="handleCreate"> 新增消息模板 </a-button>
|
9
|
<a-button type="primary" @click="handleCreate"> 新增消息模板 </a-button>
|
6
|
- <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="hasBatchDelete">
|
10
|
+ <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="disabled">
|
7
|
批量删除
|
11
|
批量删除
|
8
|
</a-button>
|
12
|
</a-button>
|
9
|
</template>
|
13
|
</template>
|
|
@@ -44,8 +48,7 @@ |
|
@@ -44,8 +48,7 @@ |
44
|
</div>
|
48
|
</div>
|
45
|
</template>
|
49
|
</template>
|
46
|
<script lang="ts">
|
50
|
<script lang="ts">
|
47
|
- import { defineComponent } from 'vue';
|
|
|
48
|
-
|
51
|
+ import { defineComponent, ref } from 'vue';
|
49
|
import { BasicTable, TableAction, useTable } from '/@/components/Table';
|
52
|
import { BasicTable, TableAction, useTable } from '/@/components/Table';
|
50
|
import { useDrawer } from '/@/components/Drawer';
|
53
|
import { useDrawer } from '/@/components/Drawer';
|
51
|
import TemplateDrawer from './TemplateDrawer.vue';
|
54
|
import TemplateDrawer from './TemplateDrawer.vue';
|
|
@@ -57,21 +60,21 @@ |
|
@@ -57,21 +60,21 @@ |
57
|
import SendSms from '/@/views/message/template/SendSms.vue';
|
60
|
import SendSms from '/@/views/message/template/SendSms.vue';
|
58
|
import { MessageEnum } from '/@/enums/messageEnum';
|
61
|
import { MessageEnum } from '/@/enums/messageEnum';
|
59
|
import SendEmail from '/@/views/message/template/SendEmail.vue';
|
62
|
import SendEmail from '/@/views/message/template/SendEmail.vue';
|
60
|
- import { useBatchDelete } from '/@/hooks/web/useBatchDelete';
|
63
|
+ import { useMessage } from '/@/hooks/web/useMessage';
|
61
|
|
64
|
|
62
|
export default defineComponent({
|
65
|
export default defineComponent({
|
63
|
name: 'MessageTemplateManagement',
|
66
|
name: 'MessageTemplateManagement',
|
64
|
components: { SendSms, SendEmail, BasicTable, TemplateDrawer, TableAction },
|
67
|
components: { SendSms, SendEmail, BasicTable, TemplateDrawer, TableAction },
|
65
|
setup() {
|
68
|
setup() {
|
|
|
69
|
+ let selectedRowKeys: any = [];
|
|
|
70
|
+ const disabled = ref(true);
|
|
|
71
|
+ const { createMessage } = useMessage();
|
66
|
const [registerModal, { openModal: openModal }] = useModal();
|
72
|
const [registerModal, { openModal: openModal }] = useModal();
|
67
|
const [registerMailModal, { openModal: openMailModal }] = useModal();
|
73
|
const [registerMailModal, { openModal: openMailModal }] = useModal();
|
68
|
const go = useGo();
|
74
|
const go = useGo();
|
69
|
const [registerDrawer, { openDrawer }] = useDrawer();
|
75
|
const [registerDrawer, { openDrawer }] = useDrawer();
|
70
|
- const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete(
|
|
|
71
|
- deleteMessageTemplate,
|
|
|
72
|
- handleSuccess
|
|
|
73
|
- );
|
|
|
74
|
- const [registerTable, { reload }] = useTable({
|
76
|
+
|
|
|
77
|
+ const [registerTable, { reload, getSelectRows, getSelectRowKeys }] = useTable({
|
75
|
title: '消息模板列表',
|
78
|
title: '消息模板列表',
|
76
|
api: messageTemplatePage,
|
79
|
api: messageTemplatePage,
|
77
|
columns,
|
80
|
columns,
|
|
@@ -79,6 +82,7 @@ |
|
@@ -79,6 +82,7 @@ |
79
|
labelWidth: 120,
|
82
|
labelWidth: 120,
|
80
|
schemas: searchFormSchema,
|
83
|
schemas: searchFormSchema,
|
81
|
},
|
84
|
},
|
|
|
85
|
+ rowKey: 'id',
|
82
|
useSearchForm: true,
|
86
|
useSearchForm: true,
|
83
|
showTableSetting: true,
|
87
|
showTableSetting: true,
|
84
|
bordered: true,
|
88
|
bordered: true,
|
|
@@ -90,7 +94,6 @@ |
|
@@ -90,7 +94,6 @@ |
90
|
slots: { customRender: 'action' },
|
94
|
slots: { customRender: 'action' },
|
91
|
fixed: 'right',
|
95
|
fixed: 'right',
|
92
|
},
|
96
|
},
|
93
|
- ...selectionOptions,
|
|
|
94
|
});
|
97
|
});
|
95
|
|
98
|
|
96
|
function handleCreate() {
|
99
|
function handleCreate() {
|
|
@@ -132,6 +135,42 @@ |
|
@@ -132,6 +135,42 @@ |
132
|
function goConfig() {
|
135
|
function goConfig() {
|
133
|
go(PageEnum.MESSAGE_CONFIG);
|
136
|
go(PageEnum.MESSAGE_CONFIG);
|
134
|
}
|
137
|
}
|
|
|
138
|
+ const useSelectionChange = () => {
|
|
|
139
|
+ selectedRowKeys = getSelectRowKeys();
|
|
|
140
|
+ if (selectedRowKeys.length > 0) {
|
|
|
141
|
+ disabled.value = false;
|
|
|
142
|
+ }
|
|
|
143
|
+ const isJudge = getSelectRows().map((m) => m.status);
|
|
|
144
|
+ if (isJudge.includes(1)) {
|
|
|
145
|
+ disabled.value = true;
|
|
|
146
|
+ } else {
|
|
|
147
|
+ disabled.value = false;
|
|
|
148
|
+ }
|
|
|
149
|
+ if (isJudge.length === 0) {
|
|
|
150
|
+ disabled.value = true;
|
|
|
151
|
+ }
|
|
|
152
|
+ };
|
|
|
153
|
+ // 删除或批量删除
|
|
|
154
|
+ const handleDeleteOrBatchDelete = async (record: Recordable | null) => {
|
|
|
155
|
+ if (record) {
|
|
|
156
|
+ try {
|
|
|
157
|
+ await deleteMessageTemplate([record.id]);
|
|
|
158
|
+ createMessage.success('删除成功');
|
|
|
159
|
+ handleSuccess();
|
|
|
160
|
+ } catch (e: any) {}
|
|
|
161
|
+ } else {
|
|
|
162
|
+ try {
|
|
|
163
|
+ await deleteMessageTemplate(selectedRowKeys);
|
|
|
164
|
+ createMessage.success('批量删除成功');
|
|
|
165
|
+ handleSuccess();
|
|
|
166
|
+ selectedRowKeys.length = 0;
|
|
|
167
|
+ } catch (e: any) {
|
|
|
168
|
+ selectedRowKeys.length = 0;
|
|
|
169
|
+ } finally {
|
|
|
170
|
+ selectedRowKeys.length = 0;
|
|
|
171
|
+ }
|
|
|
172
|
+ }
|
|
|
173
|
+ };
|
135
|
return {
|
174
|
return {
|
136
|
registerTable,
|
175
|
registerTable,
|
137
|
registerDrawer,
|
176
|
registerDrawer,
|
|
@@ -142,7 +181,8 @@ |
|
@@ -142,7 +181,8 @@ |
142
|
handleSuccess,
|
181
|
handleSuccess,
|
143
|
handleModal,
|
182
|
handleModal,
|
144
|
goConfig,
|
183
|
goConfig,
|
145
|
- hasBatchDelete,
|
184
|
+ useSelectionChange,
|
|
|
185
|
+ disabled,
|
146
|
handleDeleteOrBatchDelete,
|
186
|
handleDeleteOrBatchDelete,
|
147
|
};
|
187
|
};
|
148
|
},
|
188
|
},
|