Commit 94dc8a183b0aa7e5cf1ac18367b32b015640472f

Authored by xp.Huang
2 parents 6d9b6617 1f09a16e

Merge branch 'ft' into 'main'

fix:[DEFECT-319] 修复消息模板启用批量删除问题

See merge request huang/yun-teng-iot-front!188
... ... @@ -58,7 +58,7 @@
58 58 });
59 59
60 60 const [register, { validate, resetFields, setFieldsValue }] = useForm({
61   - labelWidth: 80,
  61 + labelWidth: 100,
62 62 schemas: CoapSchemas,
63 63 actionColOptions: {
64 64 span: 14,
... ...
1 1 <template>
2 2 <div>
3   - <BasicTable @register="registerTable">
  3 + <BasicTable
  4 + @selection-change="useSelectionChange"
  5 + :rowSelection="{ type: 'checkbox' }"
  6 + @register="registerTable"
  7 + >
4 8 <template #toolbar>
5 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 12 </a-button>
9 13 </template>
... ... @@ -44,8 +48,7 @@
44 48 </div>
45 49 </template>
46 50 <script lang="ts">
47   - import { defineComponent } from 'vue';
48   -
  51 + import { defineComponent, ref } from 'vue';
49 52 import { BasicTable, TableAction, useTable } from '/@/components/Table';
50 53 import { useDrawer } from '/@/components/Drawer';
51 54 import TemplateDrawer from './TemplateDrawer.vue';
... ... @@ -57,21 +60,21 @@
57 60 import SendSms from '/@/views/message/template/SendSms.vue';
58 61 import { MessageEnum } from '/@/enums/messageEnum';
59 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 65 export default defineComponent({
63 66 name: 'MessageTemplateManagement',
64 67 components: { SendSms, SendEmail, BasicTable, TemplateDrawer, TableAction },
65 68 setup() {
  69 + let selectedRowKeys: any = [];
  70 + const disabled = ref(true);
  71 + const { createMessage } = useMessage();
66 72 const [registerModal, { openModal: openModal }] = useModal();
67 73 const [registerMailModal, { openModal: openMailModal }] = useModal();
68 74 const go = useGo();
69 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 78 title: '消息模板列表',
76 79 api: messageTemplatePage,
77 80 columns,
... ... @@ -79,6 +82,7 @@
79 82 labelWidth: 120,
80 83 schemas: searchFormSchema,
81 84 },
  85 + rowKey: 'id',
82 86 useSearchForm: true,
83 87 showTableSetting: true,
84 88 bordered: true,
... ... @@ -90,7 +94,6 @@
90 94 slots: { customRender: 'action' },
91 95 fixed: 'right',
92 96 },
93   - ...selectionOptions,
94 97 });
95 98
96 99 function handleCreate() {
... ... @@ -132,6 +135,42 @@
132 135 function goConfig() {
133 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 174 return {
136 175 registerTable,
137 176 registerDrawer,
... ... @@ -142,7 +181,8 @@
142 181 handleSuccess,
143 182 handleModal,
144 183 goConfig,
145   - hasBatchDelete,
  184 + useSelectionChange,
  185 + disabled,
146 186 handleDeleteOrBatchDelete,
147 187 };
148 188 },
... ...
... ... @@ -5,6 +5,7 @@
5 5 :rowSelection="{ type: 'checkbox' }"
6 6 @register="registerTable"
7 7 v-show="isStatus === 0"
  8 + :clickToRowSelect="false"
8 9 >
9 10 <template #toolbar>
10 11 <a-button type="primary" @click="handleCreate"> 新增转换脚本 </a-button>
... ...