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,18 +127,14 @@ | ||
127 | await deleteAlarmContact([record.id]); | 127 | await deleteAlarmContact([record.id]); |
128 | createMessage.success('删除联系人成功'); | 128 | createMessage.success('删除联系人成功'); |
129 | handleSuccess(); | 129 | handleSuccess(); |
130 | - } catch (e) { | ||
131 | - createMessage.error('删除失败'); | ||
132 | - } | 130 | + } catch (e) {} |
133 | } else { | 131 | } else { |
134 | try { | 132 | try { |
135 | await deleteAlarmContact(selectedRowIds.value); | 133 | await deleteAlarmContact(selectedRowIds.value); |
136 | createMessage.success('批量删除联系人成功'); | 134 | createMessage.success('批量删除联系人成功'); |
137 | selectedRowIds.value = []; | 135 | selectedRowIds.value = []; |
138 | handleSuccess(); | 136 | handleSuccess(); |
139 | - } catch (e) { | ||
140 | - createMessage.info('删除失败'); | ||
141 | - } | 137 | + } catch (e) {} |
142 | } | 138 | } |
143 | }; | 139 | }; |
144 | 140 |
@@ -74,7 +74,7 @@ | @@ -74,7 +74,7 @@ | ||
74 | </div> | 74 | </div> |
75 | </template> | 75 | </template> |
76 | <script lang="ts"> | 76 | <script lang="ts"> |
77 | - import { defineComponent, ref, nextTick, onUnmounted } from 'vue'; | 77 | + import { defineComponent, ref, nextTick, onUnmounted, reactive } from 'vue'; |
78 | import { BasicTable, TableImg, useTable, TableAction, BasicColumn } from '/@/components/Table'; | 78 | import { BasicTable, TableImg, useTable, TableAction, BasicColumn } from '/@/components/Table'; |
79 | import { columns, searchFormSchema } from './device.profile.data'; | 79 | import { columns, searchFormSchema } from './device.profile.data'; |
80 | import { useMessage } from '/@/hooks/web/useMessage'; | 80 | import { useMessage } from '/@/hooks/web/useMessage'; |
@@ -93,7 +93,7 @@ | @@ -93,7 +93,7 @@ | ||
93 | components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, TableImg }, | 93 | components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, TableImg }, |
94 | setup() { | 94 | setup() { |
95 | const deviceDetailRef = ref(null); | 95 | const deviceDetailRef = ref(null); |
96 | - let selectedRowKeys: any = []; | 96 | + let selectedRowKeys: any = reactive([]); |
97 | const getPathUrl = ref(''); | 97 | const getPathUrl = ref(''); |
98 | const getPathUrlName = ref(''); | 98 | const getPathUrlName = ref(''); |
99 | const disabled = ref(true); | 99 | const disabled = ref(true); |
@@ -227,22 +227,30 @@ | @@ -227,22 +227,30 @@ | ||
227 | }, 10); | 227 | }, 10); |
228 | } | 228 | } |
229 | const useSelectionChange = () => { | 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 | } else { | 234 | } else { |
235 | + disabled.value = false; | ||
236 | + } | ||
237 | + if (isJudge.length === 0) { | ||
234 | disabled.value = true; | 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 | selectedRowKeys.length = 0; | 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 | function handleDelete(record: Recordable) { | 255 | function handleDelete(record: Recordable) { |
248 | let ids = [record.id]; | 256 | let ids = [record.id]; |
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | - <BasicTable @register="registerTable"> | 3 | + <BasicTable |
4 | + :rowSelection="{ type: 'checkbox' }" | ||
5 | + @selection-change="useSelectionChange" | ||
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="isStatus"> |
7 | 批量删除 | 11 | 批量删除 |
8 | </a-button> | 12 | </a-button> |
9 | </template> | 13 | </template> |
@@ -33,24 +37,25 @@ | @@ -33,24 +37,25 @@ | ||
33 | </div> | 37 | </div> |
34 | </template> | 38 | </template> |
35 | <script lang="ts"> | 39 | <script lang="ts"> |
36 | - import { defineComponent } from 'vue'; | 40 | + import { defineComponent, ref } from 'vue'; |
37 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; | 41 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
38 | import { delRole, getRoleListByPage } from '/@/api/system/system'; | 42 | import { delRole, getRoleListByPage } from '/@/api/system/system'; |
39 | import { useDrawer } from '/@/components/Drawer'; | 43 | import { useDrawer } from '/@/components/Drawer'; |
40 | import RoleDrawer from './RoleDrawer.vue'; | 44 | import RoleDrawer from './RoleDrawer.vue'; |
41 | import { columns, searchFormSchema } from './role.data'; | 45 | import { columns, searchFormSchema } from './role.data'; |
42 | import { RoleEnum } from '/@/enums/roleEnum'; | 46 | import { RoleEnum } from '/@/enums/roleEnum'; |
43 | - import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; | 47 | + import { useMessage } from '/@/hooks/web/useMessage'; |
48 | + | ||
44 | export default defineComponent({ | 49 | export default defineComponent({ |
45 | name: 'RoleManagement', | 50 | name: 'RoleManagement', |
46 | components: { BasicTable, RoleDrawer, TableAction }, | 51 | components: { BasicTable, RoleDrawer, TableAction }, |
47 | setup() { | 52 | setup() { |
53 | + const { createMessage } = useMessage(); | ||
48 | const [registerDrawer, { openDrawer }] = useDrawer(); | 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 | title: '角色列表', | 59 | title: '角色列表', |
55 | api: getRoleListByPage, | 60 | api: getRoleListByPage, |
56 | columns, | 61 | columns, |
@@ -69,7 +74,6 @@ | @@ -69,7 +74,6 @@ | ||
69 | slots: { customRender: 'action' }, | 74 | slots: { customRender: 'action' }, |
70 | fixed: 'right', | 75 | fixed: 'right', |
71 | }, | 76 | }, |
72 | - ...selectionOptions, | ||
73 | }); | 77 | }); |
74 | 78 | ||
75 | function handleCreate() { | 79 | function handleCreate() { |
@@ -88,6 +92,41 @@ | @@ -88,6 +92,41 @@ | ||
88 | reload(); | 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 | return { | 130 | return { |
92 | registerTable, | 131 | registerTable, |
93 | registerDrawer, | 132 | registerDrawer, |
@@ -95,8 +134,9 @@ | @@ -95,8 +134,9 @@ | ||
95 | handleEdit, | 134 | handleEdit, |
96 | handleSuccess, | 135 | handleSuccess, |
97 | RoleEnum, | 136 | RoleEnum, |
98 | - hasBatchDelete, | ||
99 | handleDeleteOrBatchDelete, | 137 | handleDeleteOrBatchDelete, |
138 | + isStatus, | ||
139 | + useSelectionChange, | ||
100 | }; | 140 | }; |
101 | }, | 141 | }, |
102 | }); | 142 | }); |
@@ -111,9 +111,13 @@ | @@ -111,9 +111,13 @@ | ||
111 | } | 111 | } |
112 | const useSelectionChange = () => { | 112 | const useSelectionChange = () => { |
113 | selectedRowKeys = getSelectRows(); | 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 | } else { | 117 | } else { |
118 | + disabled.value = false; | ||
119 | + } | ||
120 | + if (isJudge.length === 0) { | ||
117 | disabled.value = true; | 121 | disabled.value = true; |
118 | } | 122 | } |
119 | }; | 123 | }; |