mirror of https://github.com/Requarks/wiki.git
3 changed files with 101 additions and 2 deletions
Unified View
Diff Options
-
12client/components/admin/admin-groups-edit.vue
-
82client/components/common/user-search.vue
-
9client/graph/common-users-query-search.gql
@ -0,0 +1,82 @@ |
|||||
|
<template lang="pug"> |
||||
|
v-dialog(v-model='dialogOpen', max-width='650') |
||||
|
v-card |
||||
|
.dialog-header Search User |
||||
|
v-card-text |
||||
|
v-select( |
||||
|
:items='items' |
||||
|
:loading='searchLoading' |
||||
|
:search-input.sync='search' |
||||
|
autocomplete |
||||
|
autofocus |
||||
|
cache-items |
||||
|
chips |
||||
|
clearable |
||||
|
hide-details |
||||
|
item-text='name', |
||||
|
item-value='id', |
||||
|
label='Search users...' |
||||
|
light |
||||
|
multiple |
||||
|
v-model='selectedItems' |
||||
|
) |
||||
|
v-card-actions |
||||
|
v-spacer |
||||
|
v-btn(flat, @click='close', :disabled='loading') Cancel |
||||
|
v-btn(color='primary', dark, @click='setUser', :loading='loading', :disabled='loading') |
||||
|
v-icon(left) assignment_ind |
||||
|
span Select User |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import searchUsersQuery from 'gql/common-users-query-search.gql' |
||||
|
|
||||
|
export default { |
||||
|
props: { |
||||
|
value: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
loading: false, |
||||
|
searchLoading: false, |
||||
|
search: '', |
||||
|
items: [], |
||||
|
selectedItems: [] |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dialogOpen: { |
||||
|
get() { return this.value }, |
||||
|
set(value) { this.$emit('input', value) } |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
close() { |
||||
|
this.$emit('input', false) |
||||
|
}, |
||||
|
setUser() { |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
apollo: { |
||||
|
items: { |
||||
|
query: searchUsersQuery, |
||||
|
variables() { |
||||
|
return { |
||||
|
search: this.search |
||||
|
} |
||||
|
}, |
||||
|
skip() { |
||||
|
return !this.search || this.search.length < 2 |
||||
|
}, |
||||
|
update: (data) => data.upsells.segments, |
||||
|
watchLoading (isLoading) { |
||||
|
this.searchLoading = isLoading |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,9 @@ |
|||||
|
query ($query: String!) { |
||||
|
users { |
||||
|
search(query:$query) { |
||||
|
id |
||||
|
name |
||||
|
email |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save