Fixes CInputSelect prop type errors
This commit is contained in:
parent
32c79d2730
commit
7a2045d375
@ -45,6 +45,7 @@
|
||||
v-model="multipleSelected"
|
||||
:options="options"
|
||||
:get-option-key="getOptionKey"
|
||||
:get-option-label="getOptionLabel"
|
||||
:disabled="!module"
|
||||
:loading="processing"
|
||||
:clearable="false"
|
||||
@ -70,10 +71,9 @@
|
||||
ref="singleSelect"
|
||||
:options="options"
|
||||
:get-option-key="getOptionKey"
|
||||
:get-option-label="getOptionLabel"
|
||||
:disabled="!module"
|
||||
:loading="processing"
|
||||
option-value="recordID"
|
||||
option-text="label"
|
||||
:clearable="false"
|
||||
:filterable="false"
|
||||
:searchable="searchable"
|
||||
@ -98,10 +98,9 @@
|
||||
v-if="field.options.selectType === 'each'"
|
||||
:options="options"
|
||||
:get-option-key="getOptionKey"
|
||||
:get-option-label="getOptionLabel"
|
||||
:disabled="!module"
|
||||
:loading="processing"
|
||||
option-value="recordID"
|
||||
option-text="label"
|
||||
:clearable="false"
|
||||
:filterable="false"
|
||||
:searchable="searchable"
|
||||
@ -139,10 +138,9 @@
|
||||
v-model="selected"
|
||||
:options="options"
|
||||
:get-option-key="getOptionKey"
|
||||
:get-option-label="getOptionLabel"
|
||||
:disabled="!module"
|
||||
:loading="processing"
|
||||
option-value="recordID"
|
||||
option-text="label"
|
||||
:placeholder="placeholder"
|
||||
:filterable="false"
|
||||
:searchable="searchable"
|
||||
@ -295,10 +293,8 @@ export default {
|
||||
}),
|
||||
|
||||
getRecord (index = undefined) {
|
||||
const value = index !== undefined ? this.value[index] : this.value
|
||||
if (value) {
|
||||
return this.convert({ recordID: value })
|
||||
}
|
||||
const recordID = index !== undefined ? this.value[index] : this.value
|
||||
return (this.convert({ recordID }) || {}).value
|
||||
},
|
||||
|
||||
setRecord (event, index = undefined) {
|
||||
@ -506,10 +502,26 @@ export default {
|
||||
this.filter.pageCursor = next ? this.filter.nextPage : this.filter.prevPage
|
||||
},
|
||||
|
||||
getOptionKey ({ value }) {
|
||||
findRecord (recordID) {
|
||||
return this.options.find(r => r.value === recordID) || {}
|
||||
},
|
||||
|
||||
getOptionKey (v) {
|
||||
if (typeof v === 'string') {
|
||||
return v
|
||||
}
|
||||
const { value } = v || {}
|
||||
return value
|
||||
},
|
||||
|
||||
getOptionLabel (v) {
|
||||
if (typeof v === 'string') {
|
||||
return this.findRecord(v).label || v
|
||||
}
|
||||
const { label } = v || {}
|
||||
return label
|
||||
},
|
||||
|
||||
setDefaultValues () {
|
||||
this.processing = false
|
||||
this.query = ''
|
||||
|
||||
@ -95,7 +95,7 @@
|
||||
:options="options"
|
||||
:get-option-label="getOptionLabel"
|
||||
:get-option-key="getOptionKey"
|
||||
:value="getUserByIndex(ctx.index)"
|
||||
:value="getUserIDByIndex(ctx.index)"
|
||||
:clearable="false"
|
||||
:filterable="false"
|
||||
:selectable="option => option.selectable"
|
||||
@ -112,7 +112,7 @@
|
||||
@next="goToPage(true)"
|
||||
/>
|
||||
</c-input-select>
|
||||
<span v-else>{{ getOptionLabel(getUserByIndex(ctx.index)) }}</span>
|
||||
<span v-else>{{ getOptionLabel(getUserIDByIndex(ctx.index)) }}</span>
|
||||
</template>
|
||||
</multi>
|
||||
|
||||
@ -124,7 +124,7 @@
|
||||
:options="options"
|
||||
:get-option-label="getOptionLabel"
|
||||
:get-option-key="getOptionKey"
|
||||
:value="getUserByIndex()"
|
||||
:value="getUserIDByIndex()"
|
||||
:filterable="false"
|
||||
:selectable="option => option.selectable"
|
||||
:loading="processing"
|
||||
@ -268,11 +268,19 @@ export default {
|
||||
addUserToResolved: 'user/push',
|
||||
}),
|
||||
|
||||
getOptionKey ({ userID }) {
|
||||
return userID
|
||||
getOptionKey (user) {
|
||||
if (typeof user === 'string') {
|
||||
return user
|
||||
}
|
||||
return user.userID
|
||||
},
|
||||
|
||||
getOptionLabel ({ userID, email, name, username }) {
|
||||
getOptionLabel (user) {
|
||||
if (typeof user === 'string') {
|
||||
user = this.findByID(user)
|
||||
}
|
||||
|
||||
const { name, username, email, userID } = user || {}
|
||||
return name || username || email || `<@${userID}>`
|
||||
},
|
||||
|
||||
@ -295,7 +303,7 @@ export default {
|
||||
const { userID } = user
|
||||
if (this.field.isMulti) {
|
||||
if (index >= 0) {
|
||||
this.value[index] = userID
|
||||
this.value.splice(index, 1, userID)
|
||||
} else {
|
||||
// <0, assume we're appending
|
||||
this.value.push(userID)
|
||||
@ -316,11 +324,8 @@ export default {
|
||||
* Retrives user (via value) from record field
|
||||
* Handles single & multi value fields
|
||||
*/
|
||||
getUserByIndex (index = 0) {
|
||||
const userID = this.field.isMulti ? this.value[index] : this.value
|
||||
if (userID) {
|
||||
return this.findByID(userID) || {}
|
||||
}
|
||||
getUserIDByIndex (index = 0) {
|
||||
return this.field.isMulti ? this.value[index] : this.value
|
||||
},
|
||||
|
||||
search: debounce(function (query = '') {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user