vue框架,多个echart图表同时resize() 2022-03-29

vue框架,多个echart图表同时resize()

<script>
    var app = new Vue({
        el: '#app',
        data: {
            charts: [],//直接定义一个数组,存放初始化后的图标
        },
        computed: {},
        watch: {},
        beforeCreate () { },
        created () { },
        mounted () {
            this.getUrlData()
            this.setChart()
            window.addEventListener('resize', function () {//监听页面变化,循环resize(),data下charts里的图表实例
                for (let item of this.app.charts) {
                    item.resize()
                }
            })
        },
        destroyed () {
            window.removeEventListener('resize', function () { //移除监听
                for (let item of this.app.charts) {
                    item.resize()
                }
            })
        },
        methods: {
            getUrlData () {
                var mySwiper = new Swiper('#app', {
                    // speed: 300,
                    // autoplay: {
                    //     delay: 2000
                    // },
                    // loop: true, // 循环模式选项
                })

                //获取后台重定向过来的url的参数
                // this.agentcode = this.getQueryVariable('agentcode')

            },
            //获取后台通过url传过来的参数,要那个参数就在getQueryVariable("这里填上参数键");
            getQueryVariable (variable) {
                var query = window.location.search.substring(1)
                var vars = query.split('&')
                for (var i = 0; i < vars.length; i++) {
                    var pair = vars[i].split('=')
                    if (pair[0] == variable) {
                        return pair[1]
                    }
                }
                return false
            },

            setChart () {
                const chart2Option = {
                    color: [{
                        type: 'linear',
                        x: 0,
                        y: 1,
                        x2: 0,
                        y2: 0,
                        colorStops: [{
                            offset: 0, color: '#070250' // 0% 处的颜色
                        }, {
                            offset: 1, color: '#1FD7FA' // 100% 处的颜色
                        }],
                    }, {
                        type: 'linear',
                        x: 0,
                        y: 1,
                        x2: 0,
                        y2: 0,
                        colorStops: [{
                            offset: 0, color: '#070250' // 0% 处的颜色 070250
                        }, {
                            offset: 1, color: '#444FDE' // 100% 处的颜色 444FDE
                        }],
                    }],
                    textStyle: {
                        color: '#fff',
                        fontWeight: 'bold',

                    },

                    legend: {
                        show: false,
                    },
                    grid: {
                        show: false,
                        left: '0',
                        top: '0',
                        right: '0',
                        bottom: '45',
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'none'
                        },
                        formatter: function (params) {
                            return params[0].name + ': ' + params[0].value;
                        }
                    },
                    xAxis: {
                        data: ['山东', '内蒙古', '四川', '江苏', '陕西', '河南', '安徽', '云南', '北京', '广东', '河北', '青岛', '深圳'],
                        axisTick: { show: false },
                        axisLine: { show: false },
                        axisLabel: {
                            color: '#fff',
                            interval: 0,
                            fontWeight: 'lighter',
                            // fontSize: 10,
                            formatter: function (val) {
                                return val.split('').join('\n')
                            },
                        }
                    },
                    yAxis: {
                        splitLine: { show: false },
                        axisTick: { show: false },
                        axisLine: { show: false },
                        axisLabel: { show: false }
                    },

                    series: [
                        {
                            name: '标保',
                            type: 'bar',
                            data: [158, 203, 172, 158, 203, 172, 158, 203, 172, 158, 203, 172, 333],
                            barGap: '0',
                            label: {
                                show: true,
                                position: "top",
                                fontWeight: "bold",
                                color: '#fff',
                                formatter: '{c}',
                            },
                            colorBy: 'data',
                            barWidth: '10',
                        },
                    ]
                };
                this.initChart('chart2', chart2Option)
                const chart3Option = {
                    textStyle: {
                        color: '#fff',
                        fontWeight: 'bold',
                    },

                    legend: {
                        show: false
                    },
                    grid: {
                        show: false,
                        left: '25',
                        top: '0',
                        right: '20',
                        bottom: '20',
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'none'
                        },
                        formatter: function (params) {
                            return params[0].name + ': ' + params[0].value;
                        }
                    },
                    xAxis: {
                        data: ['2018年', '2019年', '2020年', '2021年', '2022年',],
                        axisTick: { show: true },
                        axisLine: { show: true },
                        axisLabel: {
                            color: '#fff'
                        }
                    },
                    yAxis: {
                        splitLine: { show: false },
                        axisTick: { show: false },
                        axisLine: { show: false },
                        axisLabel: { show: false }
                    },
                    color: ['#6911CC', '#7C34AD', '#90588D', '#A37B6F', '#BAA462'],
                    series: [
                        {
                            name: '山峰柱状图',
                            type: 'pictorialBar',
                            barCategoryGap: '-130%',
                            // symbol: 'path://M0,10 L10,10 L5,0 L0,10 z',
                            symbol: 'path://M0,10 L10,10 C5.5,10 5.5,5 5,0 C4.5,5 4.5,10 0,10 z',
                            itemStyle: {
                                opacity: 0.8,
                            },
                            data: [158, 203, 172, 159, 40],
                            colorBy: 'data',
                            label: {
                                show: true,
                                position: "top",
                                fontWeight: "bold",
                                color: '#fff',
                                formatter: '{c}亿',
                            }
                        },
                    ]
                };
                this.initChart('chart3', chart3Option)
            },
            initChart (id, option) {
                let chartDom = document.getElementById(id);
                let initChartDom = echarts.init(chartDom)
                option && initChartDom.setOption(option)
                this.charts.push(initChartDom)//把初始化后的图表存进data的charts里
            },
            getAgentInfoByCode () {
                const url = 'http://gddatainfo.hualife.cc/gdAdmin/operVisit/getAgentInfoByCode'
                const params = {
                    agentcode: this.agentcode,
                }
                const self = this
                const success = function (response) {
                    console.log(response)
                    if (response.status == 200) {
                        const agentDesc = response.data.data.agentDesc //用热情服务每一位客户,用真诚守护每一位客户  
                    } else {

                        console.log('出错了,状态码:' + response.status)
                    }
                }
                this.Http(url, params, success)
            },
            //axios请求数据封装
            Http (url, param, success) {
                vant.Toast.loading({
                    duration: 0, // 持续展示 toast
                    overlay: true,
                    forbidClick: true,
                    message: '正在加载...',
                    loadingType: 'spinner',
                })
                const paramdata = Qs.stringify(param)
                axios({
                    url: url,
                    method: 'post',
                    data: paramdata,
                })
                    .then(function (response) {
                        if (response.data.status == 200) {
                            success(response)
                            console.log('请求成功')
                        } else {
                            vant.Toast.fail('服务器出错')
                            console.log('服务器出错')
                        }
                    })
                    .catch(function (error) {
                        vant.Toast.fail('请检查网络')
                        console.log(error)
                    })
            },
        },
    })
</script>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354