|
|
|
@ -9,7 +9,7 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script lang="ts" setup> |
|
|
|
<script lang="tsx" setup> |
|
|
|
import { |
|
|
|
useSmartTable, |
|
|
|
SmartTable, |
|
|
|
@ -19,10 +19,13 @@ |
|
|
|
import { useModal } from '@/components/Modal'; |
|
|
|
import { useI18n } from '@/hooks/web/useI18n'; |
|
|
|
import { useSizeSetting } from '@/hooks/setting/UseSizeSetting'; |
|
|
|
import { Textarea } from 'ant-design-vue'; |
|
|
|
|
|
|
|
import { getSearchFormSchemas, getTableColumns } from './SysExceptionListView.config'; |
|
|
|
import { listApi } from './SysExceptionListView.api'; |
|
|
|
import { listApi, markResolvedApi } from './SysExceptionListView.api'; |
|
|
|
import ExceptionDetailModal from './components/ExceptionDetailModal.vue'; |
|
|
|
import { createConfirm, successMessage, warnMessage } from '@/utils/message/SystemNotice'; |
|
|
|
import { ref, unref } from 'vue'; |
|
|
|
|
|
|
|
const { t } = useI18n(); |
|
|
|
const { getTableSize } = useSizeSetting(); |
|
|
|
@ -40,7 +43,42 @@ |
|
|
|
|
|
|
|
const [registerModal, { openModal }] = useModal(); |
|
|
|
|
|
|
|
const [registerTable] = useSmartTable({ |
|
|
|
const resolvedMessageRef = ref(''); |
|
|
|
/** |
|
|
|
* 标记已处理 |
|
|
|
*/ |
|
|
|
const handlerMarkResolved = () => { |
|
|
|
const selectRows = getCheckboxRecords(); |
|
|
|
console.log(selectRows); |
|
|
|
if (selectRows.length === 0) { |
|
|
|
warnMessage(t('system.views.exception.message.noSelect')); |
|
|
|
return false; |
|
|
|
} |
|
|
|
resolvedMessageRef.value = ''; |
|
|
|
createConfirm({ |
|
|
|
iconType: 'warning', |
|
|
|
title: t('system.views.exception.button.markResolved'), |
|
|
|
content: () => { |
|
|
|
return ( |
|
|
|
<Textarea |
|
|
|
rows={4} |
|
|
|
v-model={[resolvedMessageRef.value, 'value']} |
|
|
|
placeholder={t('system.views.exception.validate.resolvedMessage')} |
|
|
|
/> |
|
|
|
); |
|
|
|
}, |
|
|
|
onOk: async () => { |
|
|
|
await markResolvedApi({ |
|
|
|
resolvedMessage: unref(resolvedMessageRef), |
|
|
|
exceptionIdList: selectRows.map((item) => item.id), |
|
|
|
}); |
|
|
|
successMessage(t('system.views.exception.message.resolvedSuccess')); |
|
|
|
query(); |
|
|
|
}, |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
const [registerTable, { getCheckboxRecords, query }] = useSmartTable({ |
|
|
|
id: 'smart-system-tool-exception', |
|
|
|
customConfig: { storage: true }, |
|
|
|
border: true, |
|
|
|
@ -63,6 +101,17 @@ |
|
|
|
refresh: true, |
|
|
|
zoom: true, |
|
|
|
column: { columnOrder: true }, |
|
|
|
buttons: [ |
|
|
|
{ |
|
|
|
name: t('system.views.exception.button.markResolved'), |
|
|
|
customRender: 'ant', |
|
|
|
props: { |
|
|
|
type: 'primary', |
|
|
|
preIcon: 'ant-design:check-outlined', |
|
|
|
onClick: handlerMarkResolved, |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
sortConfig: { |
|
|
|
remote: true, |
|
|
|
|