mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-25 14:25:23 +00:00
[Update] 继续优化select2组件
This commit is contained in:
@@ -133,7 +133,6 @@ export default {
|
|||||||
field = this.generateFieldByName(name, field)
|
field = this.generateFieldByName(name, field)
|
||||||
field = this.generateFieldByOther(field, fieldMeta)
|
field = this.generateFieldByOther(field, fieldMeta)
|
||||||
field = Object.assign(field, this.fieldsMeta[name] || {})
|
field = Object.assign(field, this.fieldsMeta[name] || {})
|
||||||
console.log(field)
|
|
||||||
_.set(field, 'attrs.error', '')
|
_.set(field, 'attrs.error', '')
|
||||||
return field
|
return field
|
||||||
},
|
},
|
||||||
|
@@ -88,38 +88,9 @@ export default {
|
|||||||
hasMore: true,
|
hasMore: true,
|
||||||
pageSize: defaultPageSize
|
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 {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
initialized: false,
|
initialized: false,
|
||||||
iAjax: iAjax,
|
|
||||||
iValue: this.value ? this.value : [],
|
iValue: this.value ? this.value : [],
|
||||||
defaultParams: _.cloneDeep(defaultParams),
|
defaultParams: _.cloneDeep(defaultParams),
|
||||||
params: _.cloneDeep(defaultParams),
|
params: _.cloneDeep(defaultParams),
|
||||||
@@ -130,12 +101,47 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
optionsValues() {
|
optionsValues() {
|
||||||
return this.iOptions.map((v) => v.value)
|
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: {
|
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.$log.debug('Select url changed: ', oldValue, ' => ', newValue)
|
||||||
this.iAjax.url = newValue
|
|
||||||
this.refresh()
|
this.refresh()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@@ -46,7 +46,9 @@ export default {
|
|||||||
groups: {
|
groups: {
|
||||||
el: {
|
el: {
|
||||||
multiple: true,
|
multiple: true,
|
||||||
url: '/api/v1/users/groups/',
|
ajax: {
|
||||||
|
url: '/api/v1/users/groups/'
|
||||||
|
},
|
||||||
value: []
|
value: []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user