2022-07-28 vue 上滑加载更多

   

       

           

               

                   

               

                   

                       

                            公司名称

                   

                       

                            省份

                           

                       

                            承包模式

                           

                       

                            业务板块

                           

                       

       

                   

                       

                            项目数量:{{ totalCount }}

                       

                            只看项目

                   

                   

                       

                           

                               

                                   

                                   

                                        {{ statistics.all }}

                                   

                                        合同额汇总(亿元)

                               

                                   

                                   

                                        {{ statistics.tiredAmount }}

                                   

                                        开累完成额汇总(亿元)

                           

                               

                                   

                                   

                                        {{ statistics.yearAmount }}

                                   

                                        本年完成额汇总(亿元)

                               

                                   

                                   

                                        {{ statistics.monthAmount }}

                                   

                                        本月完成额汇总(亿元)

                           

                                :key="index +'infos'" >

                               

                                   

                                       

                                           

                                                {{ item.name }}

                                           

                                               

合同额

                                               

{{ item.amount }}

                                       

                                       

                                           

                                               

{{ item.tiredAmount }}

                                               

开累完成额(亿元)

                                           

                                           

                                               

{{ item.yearAmount }}

                                               

本年完成额(亿元)

                                           

                                           

                                               

{{ item.monthAmount }}

                                               

本月完成额(亿元)

                               

                                   

                                        区域

                                        :{{ item.module }}

                                   

                                        公司:{{ item.company }}

                                   

                                        承包模式

                                        :{{ item.module }}

                                   

                                        公司:{{ item.company }}

                                   

                                        业务板块

                                        :{{ item.module }}

                                   

                                        公司:{{ item.company }}

                                   

                                        公司

                                        :{{ item.company }}

               

                   

                       

                           

                           

                                无搜索结果


            @selfMethod="selfMethod"

            ref="groupCheck"

            class="checkStyle"

            :userInfo="userInfo"

        />

            @selfMethodTree="selfMethodTree"

            ref="groupTree"

            class="checkStyle"

            :treeInfo="treeInfo"

        />

       

import apifrom "table/api/crcckl/index";

import CheckComponentsfrom "table/views/custom/crcckl/components/CheckComponentsMobile";

import groupTreeMobilefrom "table/views/custom/crcckl/components/groupTreeMobile";

import commonMixinfrom "table/views/mixins";

import {debounce }from 'throttle-debounce'

import {Checkbox, CheckboxGroup}from 'element-ui'

export default {

name:"DrillDownDetails",

    mixins: [commonMixin],

    components:{

CheckComponents,

        groupTreeMobile,

        [Checkbox.name]: Checkbox,

        [CheckboxGroup.name]: CheckboxGroup

},

    data(){

return {

loadList:debounce(500, () => {

this.listLoad()

}),

            handleFilter:debounce(200, val => {

this.queryKeyword(val)

}),

            userInfo: {//右侧树开关

                isShow:false

            },

            treeInfo: {//左侧树开关

                isShow:false

            },

            disabled:false,

            keyValue:'',

            checked:true,

            loading:false, //loading加载

            currentPage:1, //当前页

            pageSize:20,  //每页条数

            totalCount:0,  //总数

            flag:true,

            code:'',      //树勾选code

            idPaths: [],    //组织信息

            statistics: {}, //汇总信息

            nodeList: [],  //列表信息

            showBtn:false, // 回到顶部,默认是false,就是隐藏起来

            timer:null      //计时器

        }

},

    watch: {

keyValue(value) {//搜索

            this.handleFilter(value)

},

        checked(value){// 勾选

            this.handleFilter(value)

}

},

    methods:{

/**

        * @Description: 滑动出现布尔值

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        handeleSliding(){

this.$nextTick(()=>{

let scrollWrap =document.getElementById('scrollWrap');

                let currentScrollTop = scrollWrap.scrollTop;

                if (currentScrollTop >250) {

this.showBtn =true;

                }else {

this.showBtn =false;

                }

})

},

        /**

        * @Description: 右侧分页切换信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        selfMethod(value){

this.disabled =false

            this.code = value

this.handleFilter()

this.handeleSliding()

},

        /**

        * @Description: 左侧公司勾选回调

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        selfMethodTree(value){

this.disabled =false

            this.idPaths = value

this.handleFilter()

this.handeleSliding()

},

        /**

        * @Description: 空数据处理

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        handlePublic() {

if (this.nodeList.length >0) {

this.flag =true

            }else {

this.flag =false

            }

},

        /**

        * @Description: 获取二级数据信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        init(){

const resolve = (res) => {

this.nodeList = res.data.recourds

this.statistics = res.data.statistics

                this.totalCount = res.data.totalCount

                this.handlePublic()

}

const reject = mes => { }

this.getinitdata({currentPage:1 }, resolve, reject)

this.$nextTick(() => {

if (document.getElementById('scrollWrap')) {

const selectWrap =document.getElementById('scrollWrap');

                    selectWrap.addEventListener('scroll', this.scrollLoadMore);

                }

});

        },

        /**

        * @Description: 获取二级数据滚动加载信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        scrollLoadMore() {

let scrollWrap =document.getElementById('scrollWrap');

            let currentScrollTop = scrollWrap.scrollTop;

            if (currentScrollTop >250) {

this.showBtn =true;

            }else {

this.showBtn =false;

            }

let currentOffsetHeight = scrollWrap.scrollHeight;

            let currentClientHeight = scrollWrap.clientHeight;

            if ((currentScrollTop + currentClientHeight >= currentOffsetHeight -100) && !this.loading) {

this.loadList()

}

},

        /**

        * @Description: 获取二级数据滚动加载信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        listLoad() {

if (this.nodeList.length

this.loading =true

                this.currentPage =this.currentPage +1

                const resolve = res => {

this.nodeList =this.nodeList.concat(res.data.recourds)

this.loading =false

                }

const reject = err => {

console.log(err)

}

this.getinitdata({currentPage:this.currentPage }, resolve, reject)

}

},

        /**

        * @Description: 获取二级数据搜索滚动加载信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        queryKeyword(val) {

this.loading =true

            const resolve = res => {

this.currentPage =1

                this.nodeList = res.data.recourds

this.statistics = res.data.statistics

                this.totalCount = res.data.totalCount

                this.handlePublic()

this.handeBackTop()

var then =this

                setTimeout(function () {

then.loading =false

                }, 500);

            }

const reject = err => {

console.log(err)

}

this.getinitdata({currentPage:1, key: val}, resolve, reject)

},

        /**

        * @Description: 获取二级数据列表信息

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        getinitdata(data, resolve, reject){

const querys = {

module:this.$route.query.type,

                name:this.keyValue,

                // virtual: this.checked ? 1 : 0,

                currentPage: data.currentPage ? data.currentPage :1,

                pageSize:this.pageSize

            }

if (this.checked){

querys.virtual =0

            }

if (this.idPaths.length){

querys.idPaths =this.idPaths

            }

if (this.code.length){

querys.code =this.code

            }

this.$post(api.getOrganizationFilterDataForMobile(this.rootId,this.companyId),querys).then((res) => {

resolve(res)

}).catch(rem => {

reject(rem)

})

},

        /**

        * @Description: 公司名称点击事件

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        handleCompanyName(){

this.disabled = !this.disabled

            this.userInfo.isShow =false

            this.treeInfo.isShow = !this.treeInfo.isShow

            this.$nextTick(()=>{

this.$refs.groupTree.keyValue =''

                this.$refs.groupTree.fetchOrgListForProduct()

this.$refs.groupTree.checkedArr =this.$refs.groupTree.ids

})

},

        /**

        * @Description: 区域点击事件

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        handleArea() {

this.disabled = !this.disabled

            this.treeInfo.isShow =false

            this.userInfo.isShow = !this.userInfo.isShow

            this.$nextTick(()=>{

this.$refs.groupCheck.keyValue =''

                this.$refs.groupCheck.initData()

})

},

        /**

        * @Description: 回到顶部

        * @param {type}

        * @return {type}

        * @author: sun-l

*/

        handeBackTop(){

clearInterval(this.timer);

            this.timer =setInterval(()=>{

let scrollWrap =document.getElementById('scrollWrap');

                let osTop = scrollWrap.scrollTop;

                let ispeed =Math.floor(-osTop /5);

                scrollWrap.scrollTop = osTop + ispeed;

                if(osTop ===0){

clearInterval(this.timer);

                }

},30)

}

},

    mounted() {

this.init()

},

    beforeDestroy() {

clearInterval(this.timer);

    }

}