1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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 }
- }
|