feat: permissions

This commit is contained in:
JaguarJack
2022-12-07 19:28:57 +08:00
parent a1d9468a91
commit 8c537e6656
45 changed files with 1030 additions and 372 deletions

View File

@@ -1,5 +1,5 @@
import http from '/admin/support/http'
import { ref, unref } from 'vue'
import { ref, unref, watch } from 'vue'
import { Code } from '/admin/enum/app'
import Message from '/admin/support/message'
import { FormInstance } from 'element-plus'
@@ -64,5 +64,13 @@ export function useCreate(path: string, id: string | number | null = null, _form
.then(() => {})
}
return { formData, loading, form, submitForm, isClose, beforeCreate, beforeUpdate }
const close = (func: Function) => {
watch(isClose, function (value) {
if (value && isFunction(func)) {
func()
}
})
}
return { formData, loading, form, submitForm, close, beforeCreate, beforeUpdate }
}

View File

@@ -1,19 +1,24 @@
import http from '/admin/support/http'
import { Code } from '/admin/assets/enum/app'
import Message from '/admin/support/message'
import { ref } from 'vue'
import { ref, watch } from 'vue'
import { isFunction } from '/admin/support/helper'
export function useEnabled() {
const success = ref(false)
const isSuccess = ref(false)
const loading = ref<boolean>(false)
const afterEnabled = ref()
function enabled(path: string, id: string | number, data: object = {}) {
loading.value = true
http
.put(path + '/enable/' + id, data)
.then(r => {
if (r.data.code === Code.SUCCESS) {
success.value = true
isSuccess.value = true
Message.success(r.data.message)
if (isFunction(afterEnabled.value)) {
afterEnabled.value()
}
} else {
Message.error(r.data.message)
}
@@ -23,5 +28,12 @@ export function useEnabled() {
})
}
return { enabled, success, loading }
const success = (func: Function) => {
watch(isSuccess, function () {
isSuccess.value = false
func()
})
}
return { enabled, success, loading, afterEnabled }
}

View File

@@ -0,0 +1,21 @@
import { ref } from 'vue'
import { t } from '/admin/support/helper'
const visible = ref<boolean>(false)
const id = ref(null)
const title = ref<string>('')
export function useOpen() {
const open = (primary: any) => {
console.log(primary)
title.value = primary ? t('system.edit') : t('system.add')
id.value = primary
visible.value = true
}
const close = (func: Function) => {
visible.value = false
func()
}
return { open, close, title, visible, id }
}

View File

@@ -1,14 +1,26 @@
import http from '/admin/support/http'
import { Ref, ref } from 'vue'
import { isFunction } from '../../support/helper'
export function useShow(path: string, id: string | number) {
return new Promise((resolve, reject) => {
http
.get(path + '/' + id)
.then(response => {
resolve(response.data)
})
.catch(e => {
reject(e)
})
const loading = ref<boolean>(true)
const data = ref<object>()
// 后置钩子
const afterShow = ref()
export function useShow(path: string, id: string | number, fillData: null | Ref = null) {
http.get(path + '/' + id).then(r => {
loading.value = false
data.value = r.data.data
if (fillData) {
fillData.value = r.data.data
if (isFunction(afterShow.value)) {
afterShow.value(fillData)
}
}
})
return { data, loading, afterShow }
}