feat: share to group

Cette révision appartient à :
lejianwen
2025-04-14 19:09:25 +08:00
Parent 24c480b2b7
révision 68bbcf17b0
2 fichiers modifiés avec 98 ajouts et 21 suppressions
+52 -8
Voir le fichier
@@ -59,13 +59,20 @@ export function useRepositories (api_type = 'my') {
{ label: T('ReadWrite'), value: 2 },
{ label: T('FullControl'), value: 3 },
])
const TYPE_U = 1
const TYPE_G = 2
const types = computed(_ => [
{ label: T('Group'), value: TYPE_G },
{ label: T('User'), value: TYPE_U },
])
const formVisible = ref(false)
const formData = reactive({
id: 0,
collection_id: null,
type: 1,
type: TYPE_U,
rule: 1,
g_id: null,
u_id: null,
to_id: null,
user_id: null,
})
@@ -76,28 +83,60 @@ export function useRepositories (api_type = 'my') {
Object.keys(formData).forEach(key => {
formData[key] = row[key]
})
if (row.type === TYPE_U) {
formData.u_id = row.to_id
formData.g_id = users.value.find(u => u.id === row.to_id)?.group_id
} else {
formData.g_id = row.to_id
formData.u_id = null
}
}
const toAdd = () => {
//初始化formData
formData.id = 0
formData.type = TYPE_U
formData.rule = 1
formData.g_id = null
formData.u_id = null
formVisible.value = true
}
const submit = async () => {
const api = formData.id ? apis[api_type].update : apis[api_type].create
const res = await api(formData).catch(_ => false)
const form = {
...formData,
}
form.to_id = form.type === TYPE_G ? form.g_id : form.u_id
const res = await api(form).catch(_ => false)
if (res) {
ElMessage.success(T('OperationSuccess'))
formVisible.value = false
getList()
}
}
const groupUsersList = ref([])
const groups = ref([])
const users = ref([])
const getGroupUsers = async () => {
const res = await groupUsers({ user_id: formData.user_id }).catch(_ => false)
const res = await groupUsers().catch(_ => false)
if (res) {
groupUsersList.value = res.data
groups.value = res.data.groups.map(item => {
if (!item.children) {
item.children = []
}
res.data.users.map(u => {
if (item.id === u.group_id) {
item.children.push(u)
}
})
return item
})
users.value = res.data.users
}
}
const changeGId = () => {
formData.u_id = null
}
return {
listRes,
listQuery,
@@ -110,7 +149,12 @@ export function useRepositories (api_type = 'my') {
toAdd,
submit,
rules,
groupUsersList,
types,
groups,
users,
getGroupUsers,
TYPE_G,
TYPE_U,
changeGId,
}
}