mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-24 20:47:17 +00:00
[Update] 继续优化select2组件
This commit is contained in:
@@ -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
|
||||
},
|
||||
|
@@ -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()
|
||||
}
|
||||
},
|
||||
|
@@ -46,7 +46,9 @@ export default {
|
||||
groups: {
|
||||
el: {
|
||||
multiple: true,
|
||||
url: '/api/v1/users/groups/',
|
||||
ajax: {
|
||||
url: '/api/v1/users/groups/'
|
||||
},
|
||||
value: []
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user