Files
boursecu_user/src/utils/useConfirm.ts
T
2026-01-18 13:01:46 +03:30

128 lines
3.1 KiB
TypeScript

import { Modal } from 'ant-design-vue'
import { createVNode } from 'vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue'
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,
id: number,
functionApi: (id: number) => 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 {
await functionApi(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 default async function baseConfirm(
title: string,
actionFunction: () => 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 {
await actionFunction()
// 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')
}
})
}