[Update] 继续优化select2组件

This commit is contained in:
ibuler
2020-05-22 15:59:23 +08:00
parent ae00c1c71c
commit b32bb59c70
3 changed files with 40 additions and 33 deletions

View File

@@ -133,7 +133,6 @@ export default {
field = this.generateFieldByName(name, field)
field = this.generateFieldByOther(field, fieldMeta)
field = Object.assign(field, this.fieldsMeta[name] || {})
console.log(field)
_.set(field, 'attrs.error', '')
return field
},

View File

@@ -88,38 +88,9 @@ export default {
hasMore: true,
pageSize: defaultPageSize
}
const defaultMakeParams = (params) => {
const page = params.page || 1
const offset = (page - 1) * params.pageSize
const p = {
offset: offset,
limit: params.pageSize
}
params = Object.assign(params, p)
delete params['page']
delete params['pageSize']
return params
}
const defaultProcessResults = (data) => {
let results = data.results
results = results.map((item) => {
return { label: item.name, value: item.id }
})
const more = !!data.next
const total = data.count
return { results: results, pagination: more, total: total }
}
const defaultAjax = {
url: '',
pageSize: defaultPageSize,
makeParams: defaultMakeParams,
processResults: defaultProcessResults
}
const iAjax = Object.assign(defaultAjax, this.ajax, this.url ? { url: this.url } : {})
return {
loading: false,
initialized: false,
iAjax: iAjax,
iValue: this.value ? this.value : [],
defaultParams: _.cloneDeep(defaultParams),
params: _.cloneDeep(defaultParams),
@@ -130,12 +101,47 @@ export default {
computed: {
optionsValues() {
return this.iOptions.map((v) => v.value)
},
iAjax() {
const defaultPageSize = 10
const defaultMakeParams = (params) => {
const page = params.page || 1
const offset = (page - 1) * params.pageSize
const p = {
offset: offset,
limit: params.pageSize
}
params = Object.assign(params, p)
delete params['page']
delete params['pageSize']
return params
}
const defaultProcessResults = (data) => {
let results = data.results
results = results.map((item) => {
return { label: item.name, value: item.id }
})
const more = !!data.next
const total = data.count
return { results: results, pagination: more, total: total }
}
const defaultAjax = {
url: '',
pageSize: defaultPageSize,
makeParams: defaultMakeParams,
processResults: defaultProcessResults
}
return Object.assign(defaultAjax, this.ajax, this.url ? { url: this.url } : {})
}
},
watch: {
url(newValue, oldValue) {
// url(newValue, oldValue) {
// this.$log.debug('Select url changed: ', oldValue, ' => ', newValue)
// this.iAjax.url = newValue
// this.refresh()
// },
iAjax(newValue, oldValue) {
this.$log.debug('Select url changed: ', oldValue, ' => ', newValue)
this.iAjax.url = newValue
this.refresh()
}
},

View File

@@ -46,7 +46,9 @@ export default {
groups: {
el: {
multiple: true,
url: '/api/v1/users/groups/',
ajax: {
url: '/api/v1/users/groups/'
},
value: []
}
}