2023-01-12 10:42:32 +08:00

45 lines
1.1 KiB
TypeScript

import http from '/admin/support/http'
import { Code } from '/admin/enum/app'
import Message from '/admin/support/message'
import { ref, watch } from 'vue'
import { isFunction } from '/admin/support/helper'
export function useDestroy(confirm: string = '确认删除吗') {
const isDeleted = ref(false)
const beforeDestroy = ref()
// fetch list
function destroy(path: string, id: string | number) {
Message.confirm(confirm + '?', function () {
// before destroy
if (isFunction(beforeDestroy.value)) {
beforeDestroy.value()
}
http
.delete(path + '/' + id)
.then(r => {
if (r.data.code === Code.SUCCESS) {
Message.success(r.data.message)
isDeleted.value = true
} else {
Message.error(r.data.message)
}
})
.finally(() => {})
})
}
const deleted = (reset: Function) => {
watch(isDeleted, function (value) {
if (value) {
isDeleted.value = false
reset()
}
})
}
return { destroy, deleted }
}