美文网首页
tooltip formatter 绑定事件

tooltip formatter 绑定事件

作者: 糖醋里脊120625 | 来源:发表于2020-06-24 17:07 被阅读0次
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=320, user-scalable=no, initial-scale=1.0, maximum-scale=1.3, minimum-scale=1.0">
        <!-- 启用360浏览器的极速模式(webkit) -->
        <meta name="renderer" content="webkit">
        <!-- 避免IE使用兼容模式 -->
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
        <meta name="HandheldFriendly" content="true">
        <!-- 微软的老式浏览器 -->
        <meta name="MobileOptimized" content="320">
        <!-- uc强制竖屏 -->
        <meta name="screen-orientation" content="portrait">
        <!-- QQ强制竖屏 -->
        <meta name="x5-orientation" content="portrait">
        <!-- UC强制全屏 -->
        <meta name="full-screen" content="yes">
        <!-- QQ强制全屏 -->
        <meta name="x5-fullscreen" content="true">
        <!-- UC应用模式 -->
        <meta name="browsermode" content="application">
        <!-- QQ应用模式 -->
        <meta name="x5-page-mode" content="app">
        <!--https请求http-->
        <!--<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">-->
        <title>资产管理</title>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.0/lib/index.css">
        <link rel="stylesheet" href="css/public.css" />
        <link rel="stylesheet" href="./css/same.css" />

        <script src="js/vue.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/vant@2.0/lib/vant.min.js"></script>
        <script src="https://unpkg.com/vue-resource@1.5.1/dist/vue-resource.js"></script>

        <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
        <script src="https://www.html5tricks.com/demo/echarts-html5-canvas-map/js/china.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/v-charts/lib/index.min.js"></script>
    </head>
    <style>
        #app{
            background: #E1E1E1;
        }
        .apptop{
            width: 100%;
            margin:auto;
            height: 72px;
            position: relative;
            top: 20px;
            
        }
        .apptop span{
            display: block;
            font-size: 14px;
            text-align: center;
            color: white;
        }
        .apptop h4{
            display: block;
            font-size: 30px;
            text-align: center;
            font-weight: bolder;
            color: white;
            padding-top: 3px;
        }
        .chinesehome {
            width: 100%;
            margin: 10px auto auto 0px;
            height: 330px;
        }
        .homecon{
            background: url(img/bg.png) no-repeat top center;
            width: 100%;
        }
        .maintongji{
            border-radius:6px ;
            background: white;
            width: 95%;
            margin-left: auto;
            margin-right: auto;
            position: relative;
            margin-top: 50px;
        }
        .conpart{
            background: white;
            position: relative;
            margin-top: 20px;
            padding-bottom: 50px;
        }
        .conpartend{
            background: white;
            position: relative;
            margin-top: 20px;
        }
        .conall{
            position: relative;
            width: 90%;
            margin: auto;
            border-radius: 8px;
            font-size: 14px;
            border: 1px solid #e1e1e1;
            top: 20px;
            clear: both;
            overflow: hidden;
        }
        .conall .conitem span{
            display: block;
            width: 50%;
            float: left;
            text-align: center;
            height: 38px;
            line-height: 38px;
        }
        .conheard span{
            background: #F1F1F1!important;
            color: black;
            font-weight: bold;
        }
        .conend{
            font-size: 14px;
            width: 90%;
            margin: auto;
            box-sizing: border-box;
            padding: 12px 0px 24px 0px;
        }
        .conend p{
            font-weight: bold;
            color: black;
            border-left: 4px solid #3682FF;
            width: 72px;
            text-align: center;
            height: 20px;
            line-height: 20px;
        }
        .conend span{
            display: block;
            margin: 10px 0px;
            color: #28282D;
            font-weight: bold;
        }
        .endpart img{
            display: block;
            width: 30px;
            float: left;
        }
        .endpart{
            overflow: hidden;
            clear: both;
        }
        #specialLook{
            pointer-events: all;
        }
        .conitem{
            clear: both;
            overflow: hidden;
        }
    </style>
    <body>
        <div id="app">
            <div class="homecon">
                <div class="apptop">
                    <span>资产总数(个)</span>
                    <h4>{{viewdata.total}}</h4>
                </div>
                <div class="maintongji">
                    <div class="chinesehome" id="chinese"></div>
                </div>
                <div class="conpart">
                    <div class="conall">
                        <div class="conitem conheard"><span>设备类型</span><span>设备数量</span></div>
                        <div v-if="equipdata.length==0" style="text-align: center;padding: 60px 0px 20px;">暂无数据</div>
                        <div class="conitem" v-for="item in equipdata" @click="clickitem(item)">
                            <span>{{item.assetTypeName}}</span><span>{{item.deviceCount}}</span>
                        </div>
                    </div>
                </div>
                
                <div class="conpartend">
                    <div class="conend">
                        <p>资产分类</p>
                        <div class="endpart">
                            <span>拓扑结构图</span>
                            <div>
                                <img src="img/ppt.png" />
                                <img style="margin-left: 40px;" src="img/world.png" />
                                <img style="margin-left: 40px;" src="img/video.png" />
                            </div>
                        </div>
                        <div class="endpart">
                            <span>机构结构图</span>
                            <div>
                                <img  src="img/pdf.png" />
                                <img style="margin-left: 40px;" src="img/exal.png" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
    <script>
        var doc = document,
            rootEl = doc.documentElement;
        var app = new Vue({
            el: "#app",
            data() {
                return {
                    equipdata:[],
                    province:"",
                    viewtime:0,
                    viewdata:'',
                    viewtoken:"",
                    showtime: false,
                    viewcount: "全部",
                    api: "http://test.it188.com/client-service/app/",
                    mydata: [],
                    gettime:[],
                    timerang:[
                        {name:'全部',id:0},
                        {name:'今日',id:1},
                        {name:'本周',id:2},
                        {name:'本月',id:3},
                        {name:'近六个月',id:4},
                        {name:'近一年',id:5},
                    ],
                    citydata:[],
                    
                }
            },
            methods: {
                drawmyMap( mycitydata) {
                    var that = this;
                    var moredata=[];
                    var newcitydata = mycitydata.map((item,index)=>{
                        if(item.name.indexOf('市') !== -1){
                            item.name = item.name.substring(0, item.name.length - 1);
                        }if(item.name.indexOf('省') !== -1){
                            item.name = item.name.substring(0, item.name.length - 1);
                        }if(item.name.indexOf('自治区') !== -1){
                            item.name = item.name.substring(0, item.name.length - 3);
                        }
                        if(item.name.indexOf('港澳台') !== -1){
                            moredata = [{name:"香港",value:item.value},{name:"澳门",value:item.value},{name:"台湾",value:item.value}]
                        }
                      return item
                    })
                    newcitydata = moredata.concat(newcitydata)
                    //console.log(newcitydata)
                    var myChartContainer = document.getElementById('chinese');
                    var myChartChina = echarts.init(myChartContainer);
                    // 绘制图表
                    var optionMap = {
                    tooltip: {
                        trigger: 'item',
                        triggerOn: 'click',   //触发方式
                        enterable: true, // 鼠标可移入tooltip中
                        formatter:function (params) {
                            that.domore(params.data.name);
                            let url = "https://www.baidu.com/";
                            var goToUrl = url + '?province='+params.data.name;
                            var viewdata =params.data;
                            var html = '';
                            html+=
                            '省份:'+viewdata.name+'<br>'+
                            '资产:'+viewdata.value +'<br>'+
                            '<div style="width: 100%; height: 1px;background:white!important; margin: 10px 0px;"></div>'+
'<span id="specialLook" onclick="lookVideoGo(\'' +viewdata.name +'\')" style="pointer-events: all;color:white" >查看详情&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;〉</span>'+'<br>'
                                //lookVideoGo按钮触发函数 ,注意传递参数引号规则
                            return html;

                        }
                    },
                        legend: {
                            orient: 'horizontal',
                            x: 'center',
                            y: 'bottom',
                            data: ['iphone3', 'iphone4', 'iphone5']
                        },
                        visualMap: {
                            show: true,
                            x: 'center',
                            y: 'bottom',
                            orient: "horizontal", //图例排列方向
                            textGap:2,  
                            splitList: 
                            [
                                {start: 500,end: 1000},
                                {start: 100,end: 500},
                                {start: 50,end: 100},
                                {start: 0,end: 50},
                            ],
                            color: ['#5475f5', '#9feaa5', '#85daef', '#74e2ca', ]
                        },
                        selectedMode: 'single',
                        series: [{
                            name: '数据',
                            type: 'map',
                            mapType: 'china',
                            roam: true,
                            showLegendSymbol: false,
                            type: 'map',
                            mapType: 'china',
                            aspectScale: 0.9, //长宽比
                            zoom: 1.4,
                            roam: false,
                            label: {
                                normal: {
                                    show: false //省份名称  
                                },
                                emphasis: {
                                    show: true
                                }
                            },
                            data: newcitydata //数据
                        }]
                    }
                    myChartChina.setOption(optionMap);
                    window.onresize = function() {
                        resizeMyChartContainer();
                        myChartChina.resize();
                    }
                },
                
                timeclick() {
                    this.showtime = !this.showtime
                },
                clickitem(val){
                    alert(val.catalogId)
                },
                domore(valcity){
                    this.equipdata=[];
                    this.province= valcity;
                    this.gettypedata()
                },
                gettypedata(){
                    this.$http.get(
                        ''+ this.api + 'saMssItem/selectDeviceCountByCatalog?province='+this.province, 
                        {headers: {'X-Auth-Token':this.viewtoken}},
                        {emulateJSON: true}
                    )
                    .then(function(res) {
                        if (res.body.code == 200) {
                            this.equipdata= res.body.data.voSet
                            //console.log(res.body.data)
                        }
                    }, function(err) {
                        console.log(err);
                    });
                },
                getlist() {
                    const toast = this.$toast.loading({
                      duration: 0, // 持续展示 toast
                      forbidClick: true,
                      message: '加载数据中...',
                    });
                    this.$http.get(
                        ''+ this.api + 'saMssItem/selectDeviceCount', 
                        {headers: {'X-Auth-Token':this.viewtoken}},
                        {emulateJSON: true}
                    )
                    .then(function(res) {
                        if (res.body.code == 200) {
                            toast.clear();
                            this.viewdata = res.body.data
                            this.drawmyMap(res.body.data.rsList);
                            //console.log(res.body.data)
                        }
                    }, function(err) {
                        console.log(err);
                    });
                }
            },
            created() {
                //处理链接拼接出的token
                //  http://127.0.0.1:8848/newone/index.html?viewtoken=934cd108-74fc-45c8-a393-6f1a9aea2584
                var params = [], h;
                var hash = window.location.href.slice(window.location.href.indexOf("?") + 1).split('&');
                for (var i = 0; i < hash.length; i++) {
                    h = hash[i].split("=");
                    params.push(h[0]);
                    params[h[0]] = h[1];
                }
                this.viewtoken = params.viewtoken;
            },
            mounted(e) {
                this.getlist();
                this.gettypedata()
            }
        });
    </script>
    <script>
         function lookVideoGo(val){
                alert(val)
          }
    </script>
</html>

相关文章

网友评论

      本文标题:tooltip formatter 绑定事件

      本文链接:https://www.haomeiwen.com/subject/pztdfktx.html