status:判断加载文字和是否继续进行加载
partData:传给table显示的数据
allData:总数据
const tableMore = {
status: 0,
text: ['加载更多...', '拼命加载中!', '收起']
}
const isMore = (status,partData,allData) => {
let partLength = partData.length
let allLength = allData.length
let partLengthMore = partLength+10
let obj = {}
if(status == 0){
if(partLength != allLength.length){
tableMore.status = 1
// this.$set(tableMore,'status',1)
if(partLengthMore <= allLength){
if(partLengthMore < allLength){
tableMore.status = 0
}else if(partLengthMore = allLength){
tableMore.status = 2
}
partData = partData.concat(allData.slice(partLength,partLengthMore))
}else{
partData = partData.concat(allData.slice(partLength,allLength))
tableMore.status = 2
}
}else{
tableMore.status = 2
}
}else if(status == 2){
partData = allData.slice(0,10)
tableMore.status = 0
}
obj = {
status:tableMore.status,
text:tableMore.text[tableMore.status],
data:partData
}
// console.log(obj);
return obj
}
export {
isMore
}
index.vue文件
<text @tap="rainTableIsMore(tableMore.status)">{{tableMore.text}}</text>
import { isMore } from '@/utils/application/isMore.js'
export default{
data(){
return {
tableMore:{
status:0,
text:'',
},
rainTableData:[],
rainfall2:[],
}
},
methods:{
getRainSection(data){
rainSection(data).then(res=>{
if(res.status == 200){
this.rainTableData = res.data
let obj =isMore(0,this.rainfall2,res.data)
this.changeRainfallTableData(obj)
}
})
},
rainTableIsMore(val){
let obj = isMore(val,this.rainfall2,this.rainTableData)
this.changeRainfallTableData(obj)
},
changeRainfallTableData(obj){
this.tableMore.status = obj.status
this.tableMore.text = obj.text
this.rainfall2 = Object.assign([],obj.data)
},
}