yyzone
Version:
yyzone vue components and utils
61 lines • 1.68 kB
JavaScript
import Load from '../../../base/page/'
import Message from '../../../base/message/'
import Scroller from '../../../base/scroller'
import { t } from '../../../../locale/'
export default {
inject: ['root'],
props: {
keyword: {
type: String,
default: ''
}
},
data() {
return {
list: [],
loading: false,
hasMore: true,
page: 1,
size: 10,
}
},
watch: {
'root.value': function() { // 每次重新打开保证滚动条是在顶部
this.$refs.scroller.scrollTop = 0
}
},
computed: {
isAllChecked() {
return this.list.length && this.list.every(data => data.checked)
}
},
components: {
Load,
Scroller
},
methods: {
handleChecked(checked, data) {
if(checked && 1 + this.root.selectedCount > this.root.limit && this.root.limit != 1) {
Message.warning(t('selectMember.maximum'))
return false
}
data.checked = checked
this.$emit('handleSelected', data)
return true
},
handleError(params) {
if(!params) {
this.loading = false
this.hasMore = true
}
params && (params.expand = false)
params && (params.loading = false)
params && (params.children = params.children || [])
},
handleSelectAll(checked) {
return this.list.every(data => {
return this.handleChecked(checked, data);
})
}
}
}