Commit a405b059b52ef2252bb75386fbcb1b2d790bb6ac
1 parent
6824f231
fix:[DEFECT-312,DEFECT-317,DEFECT-319,DEFECT-311],fix:修复设备分配删除问题,转换脚本启用删除问题,消息模板启用时删除问题,设备配置删除缓存问题
Showing
6 changed files
with
203 additions
and
74 deletions
... | ... | @@ -7,9 +7,9 @@ |
7 | 7 | ref="organizationIdTreeRef" |
8 | 8 | /> |
9 | 9 | <BasicTable |
10 | - @selection-change="useSelectionChange" | |
11 | 10 | @register="registerTable" |
12 | 11 | :searchInfo="searchInfo" |
12 | + @selection-change="useSelectionChange" | |
13 | 13 | :rowSelection="{ type: 'checkbox' }" |
14 | 14 | class="w-3/4 xl:w-4/5" |
15 | 15 | > |
... | ... | @@ -95,7 +95,7 @@ |
95 | 95 | const searchInfo = reactive<Recordable>({}); |
96 | 96 | const { organizationIdTreeRef, resetFn } = useResetOrganizationTree(searchInfo); |
97 | 97 | // 表格hooks |
98 | - const [registerTable, { reload, getSelectRows }] = useTable({ | |
98 | + const [registerTable, { reload, getSelectRows, getSelectRowKeys }] = useTable({ | |
99 | 99 | title: '告警配置列表', |
100 | 100 | api: queryAlarmConfig, |
101 | 101 | columns, |
... | ... | @@ -140,6 +140,10 @@ |
140 | 140 | } |
141 | 141 | }; |
142 | 142 | const useSelectionChange = () => { |
143 | + selectArray = getSelectRowKeys(); | |
144 | + if (selectArray.length > 0) { | |
145 | + hasBatchDelete.value = false; | |
146 | + } | |
143 | 147 | let getRows = getSelectRows(); |
144 | 148 | const isJudge = getRows.map((m) => m.status); |
145 | 149 | if (isJudge.length === 0) { |
... | ... | @@ -152,7 +156,6 @@ |
152 | 156 | } else if (!isJudge.includes(1) && isJudge.includes(0)) { |
153 | 157 | hasBatchDelete.value = false; |
154 | 158 | } |
155 | - selectArray = getRows.filter((f) => f.status !== 1).map((m) => m.id); | |
156 | 159 | }; |
157 | 160 | // 删除或批量删除 |
158 | 161 | const handleDeleteOrBatchDelete = async (record: Recordable | null) => { | ... | ... |
... | ... | @@ -6,14 +6,19 @@ |
6 | 6 | @select="handleSelect" |
7 | 7 | ref="organizationIdTreeRef" |
8 | 8 | /> |
9 | - <BasicTable @register="registerTable" class="w-5/6 xl:w-4/5"> | |
9 | + <BasicTable | |
10 | + @selection-change="useSelectionChange" | |
11 | + :rowSelection="{ type: 'checkbox' }" | |
12 | + @register="registerTable" | |
13 | + class="w-5/6 xl:w-4/5" | |
14 | + > | |
10 | 15 | <template #toolbar> |
11 | 16 | <a-button type="primary" @click="handleCreate" v-if="authBtn(role)"> 新增设备 </a-button> |
12 | 17 | <a-button |
13 | 18 | color="error" |
14 | 19 | v-if="authBtn(role)" |
15 | 20 | @click="handleDeleteOrBatchDelete(null)" |
16 | - :disabled="hasBatchDelete" | |
21 | + :disabled="disabled" | |
17 | 22 | > |
18 | 23 | 批量删除 |
19 | 24 | </a-button> |
... | ... | @@ -121,7 +126,7 @@ |
121 | 126 | </div> |
122 | 127 | </template> |
123 | 128 | <script lang="ts"> |
124 | - import { defineComponent, reactive } from 'vue'; | |
129 | + import { defineComponent, reactive, ref } from 'vue'; | |
125 | 130 | import { DeviceState, DeviceTypeEnum } from '/@/api/device/model/deviceModel'; |
126 | 131 | import { BasicTable, useTable, TableAction, TableImg } from '/@/components/Table'; |
127 | 132 | import { columns, searchFormSchema } from './config/device.data'; |
... | ... | @@ -137,16 +142,14 @@ |
137 | 142 | import { PageWrapper } from '/@/components/Page'; |
138 | 143 | import { useModal } from '/@/components/Modal'; |
139 | 144 | import { OrganizationIdTree, useResetOrganizationTree } from '/@/views/common/organizationIdTree'; |
140 | - | |
141 | 145 | import DeviceModal from './cpns/modal/DeviceModal.vue'; |
142 | 146 | import { useDrawer } from '/@/components/Drawer'; |
143 | 147 | import DeviceDetailDrawer from './cpns/modal/DeviceDetailDrawer.vue'; |
144 | 148 | import CustomerModal from './cpns/modal/CustomerModal.vue'; |
145 | - | |
149 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
146 | 150 | import { USER_INFO_KEY } from '/@/enums/cacheEnum'; |
147 | 151 | import { getAuthCache } from '/@/utils/auth'; |
148 | 152 | import { authBtn } from '/@/enums/roleEnum'; |
149 | - import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; | |
150 | 153 | |
151 | 154 | export default defineComponent({ |
152 | 155 | name: 'DeviceManagement', |
... | ... | @@ -162,17 +165,16 @@ |
162 | 165 | TableImg, |
163 | 166 | }, |
164 | 167 | setup(_) { |
168 | + const { createMessage } = useMessage(); | |
169 | + let selectedRowKeys: any = []; | |
170 | + const disabled = ref(true); | |
165 | 171 | const go = useGo(); |
166 | - const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( | |
167 | - deleteDevice, | |
168 | - handleSuccess | |
169 | - ); | |
170 | 172 | const searchInfo = reactive<Recordable>({}); |
171 | 173 | const { organizationIdTreeRef, resetFn } = useResetOrganizationTree(searchInfo); |
172 | 174 | const [registerModal, { openModal }] = useModal(); |
173 | 175 | const [registerCustomerModal, { openModal: openCustomerModal }] = useModal(); |
174 | 176 | const [registerDetailDrawer, { openDrawer }] = useDrawer(); |
175 | - const [registerTable, { reload }] = useTable({ | |
177 | + const [registerTable, { reload, getSelectRows, getSelectRowKeys }] = useTable({ | |
176 | 178 | title: '设备列表', |
177 | 179 | api: devicePage, |
178 | 180 | columns, |
... | ... | @@ -185,6 +187,7 @@ |
185 | 187 | showTableSetting: true, |
186 | 188 | bordered: true, |
187 | 189 | showIndexColumn: false, |
190 | + rowKey: 'id', | |
188 | 191 | searchInfo: searchInfo, |
189 | 192 | actionColumn: { |
190 | 193 | width: 300, |
... | ... | @@ -192,7 +195,6 @@ |
192 | 195 | slots: { customRender: 'action' }, |
193 | 196 | fixed: 'right', |
194 | 197 | }, |
195 | - ...selectionOptions, | |
196 | 198 | }); |
197 | 199 | |
198 | 200 | const userInfo: any = getAuthCache(USER_INFO_KEY); |
... | ... | @@ -241,6 +243,44 @@ |
241 | 243 | function goDeviceProfile(e) { |
242 | 244 | go(PageEnum.DEVICE_PROFILE + '?name=' + String(e)); |
243 | 245 | } |
246 | + const useSelectionChange = () => { | |
247 | + selectedRowKeys = getSelectRowKeys(); | |
248 | + if (selectedRowKeys.length > 0) { | |
249 | + disabled.value = false; | |
250 | + } | |
251 | + const isJudge = getSelectRows().map((m) => { | |
252 | + return { | |
253 | + status: m.customerId, | |
254 | + id: m.id, | |
255 | + }; | |
256 | + }); | |
257 | + isJudge.some((s) => { | |
258 | + if (s.status != undefined) { | |
259 | + disabled.value = true; | |
260 | + } | |
261 | + }); | |
262 | + }; | |
263 | + // 删除或批量删除 | |
264 | + const handleDeleteOrBatchDelete = async (record: Recordable | null) => { | |
265 | + if (record) { | |
266 | + try { | |
267 | + await deleteDevice([record.id]); | |
268 | + createMessage.success('删除成功'); | |
269 | + handleSuccess(); | |
270 | + } catch (e: any) {} | |
271 | + } else { | |
272 | + try { | |
273 | + await deleteDevice(selectedRowKeys); | |
274 | + createMessage.success('批量删除成功'); | |
275 | + handleSuccess(); | |
276 | + selectedRowKeys.length = 0; | |
277 | + } catch (e: any) { | |
278 | + selectedRowKeys.length = 0; | |
279 | + } finally { | |
280 | + selectedRowKeys.length = 0; | |
281 | + } | |
282 | + } | |
283 | + }; | |
244 | 284 | |
245 | 285 | return { |
246 | 286 | registerTable, |
... | ... | @@ -262,7 +302,8 @@ |
262 | 302 | authBtn, |
263 | 303 | role, |
264 | 304 | handleDeleteOrBatchDelete, |
265 | - hasBatchDelete, | |
305 | + disabled, | |
306 | + useSelectionChange, | |
266 | 307 | }; |
267 | 308 | }, |
268 | 309 | }); | ... | ... |
... | ... | @@ -2,8 +2,8 @@ |
2 | 2 | <div> |
3 | 3 | <BasicTable |
4 | 4 | class="devide-profiles" |
5 | - @selection-change="useSelectionChange" | |
6 | 5 | @register="registerTable" |
6 | + @selection-change="useSelectionChange" | |
7 | 7 | :rowSelection="{ type: 'checkbox' }" |
8 | 8 | > |
9 | 9 | <template #toolbar> |
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | </div> |
75 | 75 | </template> |
76 | 76 | <script lang="ts"> |
77 | - import { defineComponent, ref, nextTick, onUnmounted, reactive } from 'vue'; | |
77 | + import { defineComponent, ref, nextTick, onUnmounted } from 'vue'; | |
78 | 78 | import { BasicTable, TableImg, useTable, TableAction, BasicColumn } from '/@/components/Table'; |
79 | 79 | import { columns, searchFormSchema } from './device.profile.data'; |
80 | 80 | import { useMessage } from '/@/hooks/web/useMessage'; |
... | ... | @@ -92,8 +92,8 @@ |
92 | 92 | name: 'DeviceProfileManagement', |
93 | 93 | components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, TableImg }, |
94 | 94 | setup() { |
95 | + let selectedRowKeys: any = []; | |
95 | 96 | const deviceDetailRef = ref(null); |
96 | - let selectedRowKeys: any = reactive([]); | |
97 | 97 | const getPathUrl = ref(''); |
98 | 98 | const getPathUrlName = ref(''); |
99 | 99 | const disabled = ref(true); |
... | ... | @@ -103,29 +103,30 @@ |
103 | 103 | const { createMessage } = useMessage(); |
104 | 104 | const [registerModal, { openModal }] = useModal(); |
105 | 105 | const [registerModalDetail] = useModal(); |
106 | - const [registerTable, { reload, getSelectRows, setTableData, getForm }] = useTable({ | |
107 | - title: '设备配置列表', | |
108 | - clickToRowSelect: false, | |
109 | - api: deviceConfigGetQuery, | |
110 | - immediate: immediateStatus.value, | |
111 | - columns, | |
112 | - formConfig: { | |
113 | - labelWidth: 120, | |
114 | - schemas: searchFormSchema, | |
115 | - }, | |
116 | - rowKey: 'id', | |
117 | - useSearchForm: true, | |
118 | - showTableSetting: true, | |
119 | - bordered: true, | |
120 | - showIndexColumn: false, | |
121 | - actionColumn: { | |
122 | - width: 240, | |
123 | - title: '操作', | |
124 | - dataIndex: 'action', | |
125 | - slots: { customRender: 'action' }, | |
126 | - fixed: 'right', | |
127 | - }, | |
128 | - }); | |
106 | + const [registerTable, { reload, getSelectRows, setTableData, getForm, getSelectRowKeys }] = | |
107 | + useTable({ | |
108 | + title: '设备配置列表', | |
109 | + clickToRowSelect: false, | |
110 | + api: deviceConfigGetQuery, | |
111 | + immediate: immediateStatus.value, | |
112 | + columns, | |
113 | + formConfig: { | |
114 | + labelWidth: 120, | |
115 | + schemas: searchFormSchema, | |
116 | + }, | |
117 | + rowKey: 'id', | |
118 | + useSearchForm: true, | |
119 | + showTableSetting: true, | |
120 | + bordered: true, | |
121 | + showIndexColumn: false, | |
122 | + actionColumn: { | |
123 | + width: 240, | |
124 | + title: '操作', | |
125 | + dataIndex: 'action', | |
126 | + slots: { customRender: 'action' }, | |
127 | + fixed: 'right', | |
128 | + }, | |
129 | + }); | |
129 | 130 | |
130 | 131 | /** |
131 | 132 | *@param url,name |
... | ... | @@ -227,8 +228,11 @@ |
227 | 228 | }, 10); |
228 | 229 | } |
229 | 230 | const useSelectionChange = () => { |
230 | - let getRows = getSelectRows(); | |
231 | - const isJudge = getRows.map((m) => m.default); | |
231 | + selectedRowKeys = getSelectRowKeys(); | |
232 | + if (selectedRowKeys.length > 0) { | |
233 | + disabled.value = false; | |
234 | + } | |
235 | + const isJudge = getSelectRows().map((m) => m.default); | |
232 | 236 | if (isJudge.includes(true)) { |
233 | 237 | disabled.value = true; |
234 | 238 | } else { |
... | ... | @@ -237,19 +241,18 @@ |
237 | 241 | if (isJudge.length === 0) { |
238 | 242 | disabled.value = true; |
239 | 243 | } |
240 | - selectedRowKeys.length = 0; | |
241 | - selectedRowKeys = getRows.filter((f) => f.default !== true).map((m) => m.id); | |
242 | 244 | }; |
243 | 245 | const handleTableDel = () => { |
244 | 246 | deviceConfigDelete(selectedRowKeys) |
245 | - .then((res) => { | |
246 | - createMessage.success('删除成功'); | |
247 | - selectedRowKeys.length = 0; | |
247 | + .then(() => { | |
248 | + createMessage.success('删除设备配置成功'); | |
248 | 249 | handleSuccess(); |
250 | + selectedRowKeys.length = 0; | |
249 | 251 | }) |
250 | - .catch((e) => { | |
252 | + .catch(() => { | |
251 | 253 | selectedRowKeys.length = 0; |
252 | 254 | }); |
255 | + selectedRowKeys.length = 0; | |
253 | 256 | }; |
254 | 257 | |
255 | 258 | function handleDelete(record: Recordable) { | ... | ... |
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> |
... | ... | @@ -36,8 +40,7 @@ |
36 | 40 | </div> |
37 | 41 | </template> |
38 | 42 | <script lang="ts"> |
39 | - import { defineComponent, h } from 'vue'; | |
40 | - | |
43 | + import { defineComponent, h, ref } from 'vue'; | |
41 | 44 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
42 | 45 | import { messageConfigPage, deleteMessageConfig } from '/@/api/message/config'; |
43 | 46 | import { useDrawer } from '/@/components/Drawer'; |
... | ... | @@ -45,17 +48,18 @@ |
45 | 48 | import { columns, searchFormSchema } from './config.data'; |
46 | 49 | import { Modal } from 'ant-design-vue'; |
47 | 50 | import { JsonPreview } from '/@/components/CodeEditor'; |
48 | - import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; | |
51 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
52 | + | |
49 | 53 | export default defineComponent({ |
50 | 54 | name: 'MessageConfigManagement', |
51 | 55 | components: { BasicTable, ConfigDrawer, TableAction }, |
52 | 56 | setup() { |
57 | + let selectedRowKeys: any = []; | |
58 | + const disabled = ref(true); | |
59 | + const { createMessage } = useMessage(); | |
60 | + | |
53 | 61 | const [registerDrawer, { openDrawer }] = useDrawer(); |
54 | - const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( | |
55 | - deleteMessageConfig, | |
56 | - handleSuccess | |
57 | - ); | |
58 | - const [registerTable, { reload }] = useTable({ | |
62 | + const [registerTable, { reload, getSelectRows, getSelectRowKeys }] = useTable({ | |
59 | 63 | title: '消息配置列表', |
60 | 64 | api: messageConfigPage, |
61 | 65 | columns, |
... | ... | @@ -64,6 +68,7 @@ |
64 | 68 | schemas: searchFormSchema, |
65 | 69 | }, |
66 | 70 | useSearchForm: true, |
71 | + rowKey: 'id', | |
67 | 72 | showTableSetting: true, |
68 | 73 | bordered: true, |
69 | 74 | showIndexColumn: false, |
... | ... | @@ -74,7 +79,6 @@ |
74 | 79 | slots: { customRender: 'action' }, |
75 | 80 | fixed: 'right', |
76 | 81 | }, |
77 | - ...selectionOptions, | |
78 | 82 | }); |
79 | 83 | |
80 | 84 | function handleCreate() { |
... | ... | @@ -100,6 +104,43 @@ |
100 | 104 | content: h(JsonPreview, { data: JSON.parse(JSON.stringify(record.config)) }), |
101 | 105 | }); |
102 | 106 | } |
107 | + | |
108 | + const useSelectionChange = () => { | |
109 | + selectedRowKeys = getSelectRowKeys(); | |
110 | + if (selectedRowKeys.length > 0) { | |
111 | + disabled.value = false; | |
112 | + } | |
113 | + const isJudge = getSelectRows().map((m) => m.status); | |
114 | + if (isJudge.includes(1)) { | |
115 | + disabled.value = true; | |
116 | + } else { | |
117 | + disabled.value = false; | |
118 | + } | |
119 | + if (isJudge.length === 0) { | |
120 | + disabled.value = true; | |
121 | + } | |
122 | + }; | |
123 | + // 删除或批量删除 | |
124 | + const handleDeleteOrBatchDelete = async (record: Recordable | null) => { | |
125 | + if (record) { | |
126 | + try { | |
127 | + await deleteMessageConfig([record.id]); | |
128 | + createMessage.success('删除成功'); | |
129 | + handleSuccess(); | |
130 | + } catch (e: any) {} | |
131 | + } else { | |
132 | + try { | |
133 | + await deleteMessageConfig(selectedRowKeys); | |
134 | + createMessage.success('批量删除成功'); | |
135 | + handleSuccess(); | |
136 | + selectedRowKeys.length = 0; | |
137 | + } catch (e: any) { | |
138 | + selectedRowKeys.length = 0; | |
139 | + } finally { | |
140 | + selectedRowKeys.length = 0; | |
141 | + } | |
142 | + } | |
143 | + }; | |
103 | 144 | return { |
104 | 145 | registerTable, |
105 | 146 | registerDrawer, |
... | ... | @@ -107,8 +148,9 @@ |
107 | 148 | handleCreate, |
108 | 149 | handleEdit, |
109 | 150 | handleSuccess, |
110 | - hasBatchDelete, | |
151 | + disabled, | |
111 | 152 | handleDeleteOrBatchDelete, |
153 | + useSelectionChange, | |
112 | 154 | }; |
113 | 155 | }, |
114 | 156 | }); | ... | ... |
1 | 1 | <template> |
2 | 2 | <div> |
3 | - <BasicTable @register="registerTable" v-show="isStatus === 0"> | |
3 | + <BasicTable | |
4 | + @selection-change="useSelectionChange" | |
5 | + :rowSelection="{ type: 'checkbox' }" | |
6 | + @register="registerTable" | |
7 | + v-show="isStatus === 0" | |
8 | + > | |
4 | 9 | <template #toolbar> |
5 | 10 | <a-button type="primary" @click="handleCreate"> 新增转换脚本 </a-button> |
6 | - <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="hasBatchDelete"> | |
11 | + <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="disabled"> | |
7 | 12 | 批量删除 |
8 | 13 | </a-button> |
9 | 14 | </template> |
... | ... | @@ -43,20 +48,20 @@ |
43 | 48 | <script lang="ts" setup> |
44 | 49 | import { ref } from 'vue'; |
45 | 50 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
46 | - import { columns, searchFormSchema } from './config/config.data.ts'; | |
51 | + import { columns, searchFormSchema } from './config/config.data'; | |
47 | 52 | import { getConvertApi, deleteTransformApi } from '/@/api/device/TransformScriptApi'; |
48 | - import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; | |
49 | 53 | import { useDrawer } from '/@/components/Drawer/index'; |
50 | 54 | import ScriptDrawer from './cpns/ScriptDrawer.vue'; |
51 | 55 | import TestScript from './cpns/TestScript.vue'; |
56 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
57 | + | |
52 | 58 | const handleSuccess = () => { |
53 | 59 | reload(); |
54 | 60 | }; |
55 | - const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( | |
56 | - deleteTransformApi, | |
57 | - handleSuccess | |
58 | - ); | |
59 | - const [registerTable, { reload }] = useTable({ | |
61 | + const { createMessage } = useMessage(); | |
62 | + let selectedRowKeys: any = []; | |
63 | + const disabled = ref(true); | |
64 | + const [registerTable, { reload, getSelectRowKeys, getSelectRows }] = useTable({ | |
60 | 65 | api: getConvertApi, |
61 | 66 | title: '转换脚本列表', |
62 | 67 | columns, |
... | ... | @@ -68,6 +73,7 @@ |
68 | 73 | labelWidth: 100, |
69 | 74 | schemas: searchFormSchema, |
70 | 75 | }, |
76 | + rowKey: 'id', | |
71 | 77 | actionColumn: { |
72 | 78 | width: 180, |
73 | 79 | title: '操作', |
... | ... | @@ -75,9 +81,8 @@ |
75 | 81 | slots: { customRender: 'action' }, |
76 | 82 | fixed: 'right', |
77 | 83 | }, |
78 | - ...selectionOptions, | |
79 | 84 | }); |
80 | - const [registerDrawer, { openDrawer }] = useDrawer({}); | |
85 | + const [registerDrawer, { openDrawer }] = useDrawer(); | |
81 | 86 | |
82 | 87 | const isStatus = ref(0); |
83 | 88 | const testScriptRef = ref(); |
... | ... | @@ -102,4 +107,39 @@ |
102 | 107 | const handleEdit = (record: Recordable) => { |
103 | 108 | openDrawer(true, { isUpdate: true, record }); |
104 | 109 | }; |
110 | + const useSelectionChange = () => { | |
111 | + selectedRowKeys = getSelectRowKeys(); | |
112 | + if (selectedRowKeys.length > 0) { | |
113 | + disabled.value = false; | |
114 | + } | |
115 | + let getRows = getSelectRows(); | |
116 | + const isJudge = getRows.map((m) => m.status); | |
117 | + if (isJudge.length === 0) { | |
118 | + disabled.value = true; | |
119 | + } | |
120 | + if (isJudge.includes(1)) { | |
121 | + disabled.value = true; | |
122 | + } | |
123 | + }; | |
124 | + // 删除或批量删除 | |
125 | + const handleDeleteOrBatchDelete = async (record: Recordable | null) => { | |
126 | + if (record) { | |
127 | + try { | |
128 | + await deleteTransformApi([record.id]); | |
129 | + createMessage.success('删除成功'); | |
130 | + handleSuccess(); | |
131 | + } catch (e: any) {} | |
132 | + } else { | |
133 | + try { | |
134 | + await deleteTransformApi(selectedRowKeys); | |
135 | + createMessage.success('批量删除成功'); | |
136 | + handleSuccess(); | |
137 | + selectedRowKeys.length = 0; | |
138 | + } catch (e: any) { | |
139 | + selectedRowKeys.length = 0; | |
140 | + } finally { | |
141 | + selectedRowKeys.length = 0; | |
142 | + } | |
143 | + } | |
144 | + }; | |
105 | 145 | </script> | ... | ... |