|
|
@@ -59,13 +59,20 @@ export function useRepositories (api_type = 'my') {
|
|
59
|
59
|
{ label: T('ReadWrite'), value: 2 },
|
|
60
|
60
|
{ label: T('FullControl'), value: 3 },
|
|
61
|
61
|
])
|
|
62
|
|
-
|
|
|
62
|
+ const TYPE_U = 1
|
|
|
63
|
+ const TYPE_G = 2
|
|
|
64
|
+ const types = computed(_ => [
|
|
|
65
|
+ { label: T('Group'), value: TYPE_G },
|
|
|
66
|
+ { label: T('User'), value: TYPE_U },
|
|
|
67
|
+ ])
|
|
63
|
68
|
const formVisible = ref(false)
|
|
64
|
69
|
const formData = reactive({
|
|
65
|
70
|
id: 0,
|
|
66
|
71
|
collection_id: null,
|
|
67
|
|
- type: 1,
|
|
|
72
|
+ type: TYPE_U,
|
|
68
|
73
|
rule: 1,
|
|
|
74
|
+ g_id: null,
|
|
|
75
|
+ u_id: null,
|
|
69
|
76
|
to_id: null,
|
|
70
|
77
|
user_id: null,
|
|
71
|
78
|
})
|
|
|
@@ -76,28 +83,60 @@ export function useRepositories (api_type = 'my') {
|
|
76
|
83
|
Object.keys(formData).forEach(key => {
|
|
77
|
84
|
formData[key] = row[key]
|
|
78
|
85
|
})
|
|
79
|
|
-
|
|
|
86
|
+ if (row.type === TYPE_U) {
|
|
|
87
|
+ formData.u_id = row.to_id
|
|
|
88
|
+ formData.g_id = users.value.find(u => u.id === row.to_id)?.group_id
|
|
|
89
|
+ } else {
|
|
|
90
|
+ formData.g_id = row.to_id
|
|
|
91
|
+ formData.u_id = null
|
|
|
92
|
+ }
|
|
80
|
93
|
}
|
|
81
|
94
|
const toAdd = () => {
|
|
|
95
|
+ //初始化formData
|
|
|
96
|
+ formData.id = 0
|
|
|
97
|
+ formData.type = TYPE_U
|
|
|
98
|
+ formData.rule = 1
|
|
|
99
|
+ formData.g_id = null
|
|
|
100
|
+ formData.u_id = null
|
|
|
101
|
+
|
|
82
|
102
|
formVisible.value = true
|
|
83
|
103
|
|
|
84
|
104
|
}
|
|
85
|
105
|
const submit = async () => {
|
|
86
|
106
|
const api = formData.id ? apis[api_type].update : apis[api_type].create
|
|
87
|
|
- const res = await api(formData).catch(_ => false)
|
|
|
107
|
+ const form = {
|
|
|
108
|
+ ...formData,
|
|
|
109
|
+ }
|
|
|
110
|
+ form.to_id = form.type === TYPE_G ? form.g_id : form.u_id
|
|
|
111
|
+ const res = await api(form).catch(_ => false)
|
|
88
|
112
|
if (res) {
|
|
89
|
113
|
ElMessage.success(T('OperationSuccess'))
|
|
90
|
114
|
formVisible.value = false
|
|
91
|
115
|
getList()
|
|
92
|
116
|
}
|
|
93
|
117
|
}
|
|
94
|
|
- const groupUsersList = ref([])
|
|
|
118
|
+ const groups = ref([])
|
|
|
119
|
+ const users = ref([])
|
|
95
|
120
|
const getGroupUsers = async () => {
|
|
96
|
|
- const res = await groupUsers({ user_id: formData.user_id }).catch(_ => false)
|
|
|
121
|
+ const res = await groupUsers().catch(_ => false)
|
|
97
|
122
|
if (res) {
|
|
98
|
|
- groupUsersList.value = res.data
|
|
|
123
|
+ groups.value = res.data.groups.map(item => {
|
|
|
124
|
+ if (!item.children) {
|
|
|
125
|
+ item.children = []
|
|
|
126
|
+ }
|
|
|
127
|
+ res.data.users.map(u => {
|
|
|
128
|
+ if (item.id === u.group_id) {
|
|
|
129
|
+ item.children.push(u)
|
|
|
130
|
+ }
|
|
|
131
|
+ })
|
|
|
132
|
+ return item
|
|
|
133
|
+ })
|
|
|
134
|
+ users.value = res.data.users
|
|
99
|
135
|
}
|
|
100
|
136
|
}
|
|
|
137
|
+ const changeGId = () => {
|
|
|
138
|
+ formData.u_id = null
|
|
|
139
|
+ }
|
|
101
|
140
|
return {
|
|
102
|
141
|
listRes,
|
|
103
|
142
|
listQuery,
|
|
|
@@ -110,7 +149,12 @@ export function useRepositories (api_type = 'my') {
|
|
110
|
149
|
toAdd,
|
|
111
|
150
|
submit,
|
|
112
|
151
|
rules,
|
|
113
|
|
- groupUsersList,
|
|
|
152
|
+ types,
|
|
|
153
|
+ groups,
|
|
|
154
|
+ users,
|
|
114
|
155
|
getGroupUsers,
|
|
|
156
|
+ TYPE_G,
|
|
|
157
|
+ TYPE_U,
|
|
|
158
|
+ changeGId,
|
|
115
|
159
|
}
|
|
116
|
160
|
}
|