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 | }; | ... | ... |