Commit 29c9a2a669c4309014e383b7d3e37a6a96ac81fb
Merge branch 'ft' into 'main'
fix:[DEFECT-314] 修复告警联系人删除提示问题 See merge request huang/yun-teng-iot-front!185
Showing
4 changed files
with
81 additions
and
33 deletions
... | ... | @@ -127,18 +127,14 @@ |
127 | 127 | await deleteAlarmContact([record.id]); |
128 | 128 | createMessage.success('删除联系人成功'); |
129 | 129 | handleSuccess(); |
130 | - } catch (e) { | |
131 | - createMessage.error('删除失败'); | |
132 | - } | |
130 | + } catch (e) {} | |
133 | 131 | } else { |
134 | 132 | try { |
135 | 133 | await deleteAlarmContact(selectedRowIds.value); |
136 | 134 | createMessage.success('批量删除联系人成功'); |
137 | 135 | selectedRowIds.value = []; |
138 | 136 | handleSuccess(); |
139 | - } catch (e) { | |
140 | - createMessage.info('删除失败'); | |
141 | - } | |
137 | + } catch (e) {} | |
142 | 138 | } |
143 | 139 | }; |
144 | 140 | ... | ... |
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | </div> |
75 | 75 | </template> |
76 | 76 | <script lang="ts"> |
77 | - import { defineComponent, ref, nextTick, onUnmounted } from 'vue'; | |
77 | + import { defineComponent, ref, nextTick, onUnmounted, reactive } 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'; |
... | ... | @@ -93,7 +93,7 @@ |
93 | 93 | components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, TableImg }, |
94 | 94 | setup() { |
95 | 95 | const deviceDetailRef = ref(null); |
96 | - let selectedRowKeys: any = []; | |
96 | + let selectedRowKeys: any = reactive([]); | |
97 | 97 | const getPathUrl = ref(''); |
98 | 98 | const getPathUrlName = ref(''); |
99 | 99 | const disabled = ref(true); |
... | ... | @@ -227,22 +227,30 @@ |
227 | 227 | }, 10); |
228 | 228 | } |
229 | 229 | const useSelectionChange = () => { |
230 | - selectedRowKeys = getSelectRows(); | |
231 | - if (selectedRowKeys.length > 0) { | |
232 | - disabled.value = false; | |
230 | + let getRows = getSelectRows(); | |
231 | + const isJudge = getRows.map((m) => m.default); | |
232 | + if (isJudge.includes(true)) { | |
233 | + disabled.value = true; | |
233 | 234 | } else { |
235 | + disabled.value = false; | |
236 | + } | |
237 | + if (isJudge.length === 0) { | |
234 | 238 | disabled.value = true; |
235 | 239 | } |
236 | - }; | |
237 | - async function handleTableDel() { | |
238 | - selectedRowKeys = selectedRowKeys | |
239 | - .filter((f: any) => f.default !== true) | |
240 | - .map((m: any) => m.id); | |
241 | - await deviceConfigDelete(selectedRowKeys); | |
242 | - createMessage.success('删除成功'); | |
243 | - handleSuccess(); | |
244 | 240 | selectedRowKeys.length = 0; |
245 | - } | |
241 | + selectedRowKeys = getRows.filter((f) => f.default !== true).map((m) => m.id); | |
242 | + }; | |
243 | + const handleTableDel = () => { | |
244 | + deviceConfigDelete(selectedRowKeys) | |
245 | + .then((res) => { | |
246 | + createMessage.success('删除成功'); | |
247 | + selectedRowKeys.length = 0; | |
248 | + handleSuccess(); | |
249 | + }) | |
250 | + .catch((e) => { | |
251 | + selectedRowKeys.length = 0; | |
252 | + }); | |
253 | + }; | |
246 | 254 | |
247 | 255 | function handleDelete(record: Recordable) { |
248 | 256 | let ids = [record.id]; | ... | ... |
1 | 1 | <template> |
2 | 2 | <div> |
3 | - <BasicTable @register="registerTable"> | |
3 | + <BasicTable | |
4 | + :rowSelection="{ type: 'checkbox' }" | |
5 | + @selection-change="useSelectionChange" | |
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="isStatus"> | |
7 | 11 | 批量删除 |
8 | 12 | </a-button> |
9 | 13 | </template> |
... | ... | @@ -33,24 +37,25 @@ |
33 | 37 | </div> |
34 | 38 | </template> |
35 | 39 | <script lang="ts"> |
36 | - import { defineComponent } from 'vue'; | |
40 | + import { defineComponent, ref } from 'vue'; | |
37 | 41 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
38 | 42 | import { delRole, getRoleListByPage } from '/@/api/system/system'; |
39 | 43 | import { useDrawer } from '/@/components/Drawer'; |
40 | 44 | import RoleDrawer from './RoleDrawer.vue'; |
41 | 45 | import { columns, searchFormSchema } from './role.data'; |
42 | 46 | import { RoleEnum } from '/@/enums/roleEnum'; |
43 | - import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; | |
47 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
48 | + | |
44 | 49 | export default defineComponent({ |
45 | 50 | name: 'RoleManagement', |
46 | 51 | components: { BasicTable, RoleDrawer, TableAction }, |
47 | 52 | setup() { |
53 | + const { createMessage } = useMessage(); | |
48 | 54 | const [registerDrawer, { openDrawer }] = useDrawer(); |
49 | - const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( | |
50 | - delRole, | |
51 | - handleSuccess | |
52 | - ); | |
53 | - const [registerTable, { reload }] = useTable({ | |
55 | + const isStatus = ref(true); | |
56 | + let selectArray: any = []; | |
57 | + | |
58 | + const [registerTable, { reload, getSelectRows }] = useTable({ | |
54 | 59 | title: '角色列表', |
55 | 60 | api: getRoleListByPage, |
56 | 61 | columns, |
... | ... | @@ -69,7 +74,6 @@ |
69 | 74 | slots: { customRender: 'action' }, |
70 | 75 | fixed: 'right', |
71 | 76 | }, |
72 | - ...selectionOptions, | |
73 | 77 | }); |
74 | 78 | |
75 | 79 | function handleCreate() { |
... | ... | @@ -88,6 +92,41 @@ |
88 | 92 | reload(); |
89 | 93 | } |
90 | 94 | |
95 | + const useSelectionChange = () => { | |
96 | + let getRows = getSelectRows(); | |
97 | + const isJudge = getRows.map((m) => m.roleType); | |
98 | + if (isJudge.includes('SYS_ADMIN')) { | |
99 | + isStatus.value = true; | |
100 | + } else { | |
101 | + isStatus.value = false; | |
102 | + } | |
103 | + if (isJudge.length === 0) { | |
104 | + isStatus.value = true; | |
105 | + } | |
106 | + selectArray = getRows.filter((f) => f.status !== 'SYS_ADMIN').map((m) => m.id); | |
107 | + }; | |
108 | + | |
109 | + const handleDeleteOrBatchDelete = async (record: Recordable | null) => { | |
110 | + if (record) { | |
111 | + try { | |
112 | + await delRole([record.id]); | |
113 | + createMessage.success('删除成功'); | |
114 | + handleSuccess(); | |
115 | + } catch (e: any) {} | |
116 | + } else { | |
117 | + try { | |
118 | + await delRole(selectArray); | |
119 | + createMessage.success('批量删除成功'); | |
120 | + handleSuccess(); | |
121 | + selectArray.length = 0; | |
122 | + } catch (e: any) { | |
123 | + selectArray.length = 0; | |
124 | + } finally { | |
125 | + selectArray.length = 0; | |
126 | + } | |
127 | + } | |
128 | + }; | |
129 | + | |
91 | 130 | return { |
92 | 131 | registerTable, |
93 | 132 | registerDrawer, |
... | ... | @@ -95,8 +134,9 @@ |
95 | 134 | handleEdit, |
96 | 135 | handleSuccess, |
97 | 136 | RoleEnum, |
98 | - hasBatchDelete, | |
99 | 137 | handleDeleteOrBatchDelete, |
138 | + isStatus, | |
139 | + useSelectionChange, | |
100 | 140 | }; |
101 | 141 | }, |
102 | 142 | }); | ... | ... |
... | ... | @@ -111,9 +111,13 @@ |
111 | 111 | } |
112 | 112 | const useSelectionChange = () => { |
113 | 113 | selectedRowKeys = getSelectRows(); |
114 | - if (selectedRowKeys.length !== 0) { | |
115 | - disabled.value = false; | |
114 | + let isJudge = selectedRowKeys.map((m: any) => m.default); | |
115 | + if (isJudge.includes(true)) { | |
116 | + disabled.value = true; | |
116 | 117 | } else { |
118 | + disabled.value = false; | |
119 | + } | |
120 | + if (isJudge.length === 0) { | |
117 | 121 | disabled.value = true; |
118 | 122 | } |
119 | 123 | }; | ... | ... |