Files
boursecu_admin/src/utils/confirmModal.ts
T

96 lines
2.3 KiB
TypeScript
Raw Normal View History

2026-01-24 17:45:54 +03:30
import { Modal } from 'ant-design-vue'
import { createVNode } from 'vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue'
import { deleteUser } from '@/api/user'
import { message } from 'ant-design-vue/es'
//todo
export async function confirmDeleteItem(
type: string,
id: number,
functionDelete: (id: number) => Promise<any>,
refreshTable: () => void
) {
Modal.confirm({
title: `آیا از حذف ${type} اطمینان دارید؟`,
icon: createVNode(ExclamationCircleOutlined),
okText: 'تایید',
okType: 'danger',
centered: true,
cancelText: 'انصراف',
async onOk() {
// console.log('OK');
// await deleteItem(id)
// loading.value = true
// table?.value?.spinTable(true)
// @ts-ignore
try {
await functionDelete(id)
refreshTable()
console.log('finall')
message.success('با موفقیت حذف شد')
} catch (e) {
console.error(e)
// message.error('خطا در حذف')
}
// setTimeout(Math.random() > 0.5 ? resolve : reject, 1000)
// table?.value?.fetch()
// loading.value = false
// table?.value?.spinTable(false)
},
onCancel() {
console.log('Cancel')
}
})
}
export async function confirmActOnApi(
title: string,
item: any,
functionApi: (item: any) => Promise<any>,
refreshTable?: () => void
) {
Modal.confirm({
title: title,
icon: createVNode(ExclamationCircleOutlined),
okText: 'تایید',
okType: 'danger',
centered: true,
cancelText: 'انصراف',
async onOk() {
// console.log('OK');
// await deleteItem(id)
// loading.value = true
// table?.value?.spinTable(true)
// @ts-ignore
try {
console.log('sasas')
await functionApi(item)
if (refreshTable) {
refreshTable()
}
// console.log('finall')
message.success('با موفقیت انجام شد')
Modal.destroyAll()
} catch (e) {
console.error(e)
// message.error('خطا در حذف')
}
// setTimeout(Math.random() > 0.5 ? resolve : reject, 1000)
// table?.value?.fetch()
// loading.value = false
// table?.value?.spinTable(false)
},
onCancel() {
console.log('Cancel')
Modal.destroyAll()
}
})
}