zoukankan      html  css  js  c++  java
  • 每周总结终

    Echarts绘制图谱

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
        <link rel="stylesheet" type="text/css" href="resource/layui/css/layui.css" />
        <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0-rc.1/echarts.min.js"></script>
    
        <title>图谱</title>
        <style>
            .header-logo{font-family:BarbaraHand;font-size:40px;margin-top: 1px; color:#444647;text-align:center;position:absolute;left:900px}
            .head{
                 15%;
                background: #F0F7FC;
            }
    
            #money{
                 26%;
            }
    
        </style>
    </head>
    <body>
    <blockquote class="layui-elem-quote" style="border-left- 0px; margin-bottom:-29px;">
    
            <div class="layui-form">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label" style="line-height:36px; margin-left: -23px;margin-top: 1px">查询条件</label>
                        <div class="layui-input-inline" style="margin-top: 8px;">
                            <select name="name"   lay-search="">
                                <option value="南京师范大学印刷厂">南京师范大学印刷厂</option>
                                <option value="南京师范大学科技实业集团公司">南京师范大学科技实业集团公司</option>
                                <option value="江苏省房地产建筑装饰工程总公司">江苏省房地产建筑装饰工程总公司</option>
                                <option value="江苏金飞达电动工具有限公司">江苏金飞达电动工具有限公司</option>
                                <option value="江苏大方经营公司">江苏大方经营公司</option>
                                <option value="江苏省环本农场">江苏省环本农场</option>
                                <option value="江苏省消防工程公司">江苏省消防工程公司</option>
                                <option value="中国有色金属进出口江苏公司">中国有色金属进出口江苏公司</option>
                                <option value="江苏水利经济实业开发公司">江苏水利经济实业开发公司</option>
                                <option value="江苏远东国际船舶代理有限公司">江苏远东国际船舶代理有限公司</option>
                                <option value="江苏苏源新兴电建实业有限公司">江苏苏源新兴电建实业有限公司</option>
                                <option value="南京邮电大学电信工程公司">南京邮电大学电信工程公司</option>
                                <option value="江苏华隆兴进出口公司">江苏华隆兴进出口公司</option>
                            </select>
                        </div>
                        <label class="layui-form-label"><input type="button" class="layui-btn layui-btn-normal" value="查询" onclick="quick()"></label>
                        <label class="layui-form-label" ><a  class="header-logo">Mr.Zhang</a></label>
                    </div>
                </div>
            </div>
    </blockquote>
    
    <div class="layui-form">
        <table class="layui-table">
            <colgroup>
                <col width="150">
                <col width="150">
                <col width="200">
                <col>
            </colgroup>
            <tbody>
            <tr>
                <td class="head">法定代表人</td>
                <td colspan="3" id="person_intro">
                    <div>
                        <div class="name-show">
                            帅
                        </div>
                        <div class="name">
                            <a id="per-info" href="#">张大帅</a>
                            <div class="qy">
                                任职 <b class="num">全球</b> 家企业
                            </div>
                        </div>
                        <div class="clear"></div>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="head">注册资本</td>
                <td id="money">1千万亿</td>
                <td class="head">成立日期</td>
                <td id="begin_date">远古时期</td>
            </tr>
            <tr>
                <td class="head">经营状态</td>
                <td id="state">世界第一强</td>
                <td class="head">统一社会信用代码</td>
                <td id="social_flag">001</td>
            </tr>
            <tr>
                <td class="head">纳税人识别号</td>
                <td id="person_flag">101</td>
                <td class="head">注册号</td>
                <td id="sign_flag">adqwerewewt</td>
            </tr>
            <tr>
                <td class="head">组织机构代码</td>
                <td id="ori_flag">45qwe12014</td>
                <td class="head">公司类型</td>
                <td id="type">国企</td>
            </tr>
            <tr>
                <td class="head">人员规模</td>
                <td id="amount">100</td>
                <td class="head">营业期限</td>
                <td id="date">保密</td>
            </tr>
            <tr>
                <td class="head">登记机关</td>
                <td id="sign_ori">神州</td>
                <td class="head">核准日期</td>
                <td id="check_date">1.1</td>
            </tr>
            <tr>
                <td class="head">英文名</td>
                <td id="en_name">DaShuai</td>
                <td class="head">曾用名</td>
                <td id="pre_name">无</td>
            </tr>
            <tr>
                <td class="head">所属地区</td>
                <td id="province">无</td>
                <td class="head">所属行业</td>
                <td id="industry">all</td>
            </tr>
            <tr>
                <td class="head">企业地址</td>
                <td colspan="3" id="q_address">all</td>
            </tr>
            <tr>
                <td class="head">经营范围</td>
                <td colspan="3" id="s_area">all</td>
            </tr>
            </tbody>
        </table>
    </div>
    
    <div id="main" style=" 900px;height:400px;">股权结构</div>
    <div id="main2" style=" 1500px;height:800px;">投资族谱</div>
    <div id="main3" style=" 1500px;height:800px;">企业族谱</div>
    <div id="main4" style=" 900px;height:400px;">疑似关系</div>
    </body>
    <script src="resource/layui/layui.all.js"></script>
    </html>
    <script>
    
        function quick() {
            var name = $('select[name=name]').val();
            if (name == "") {
                alert("输入为空");
            }
            $.post(
                'Servlet'
                , {'method': 'scan', 'name': name}
                , function (o) {
                    var data = JSON.parse(o);
                    console.log(data[0].address);
                    if (data[0].begin_time == "NaT") {
                        bg = "未知日期"
                    } else {
                        bg = data[0].begin_time;
                    }
                    if (data[0].during == "NaT") {
                        end = "未知日期"
                    } else {
                        end = data[0].during;
                    }
                    $("#name").text(data[0].name);
                    $("#phone").text(data[0].phone);
                    $("#net").text(data[0].net);
                    $("#email").text(data[0].email);
                    $("#address").text(data[0].address);
                    $("#money").text(data[0].money);
                    $("#begin_date").text(data[0].begin_date);
                    $("#state").text(data[0].state);
                    $("#social_flag").text(data[0].social_flag);
                    $("#person_flag").text(data[0].person_flag);
                    $("#sign_flag").text(data[0].sign_flag);
                    $("#ori_flag").text(data[0].ori_flag);
                    $("#type").text(data[0].type);
                    $("#amount").text(data[0].amount);
                    $("#date").text(bg + " 至 " + end);
                    $("#sign_ori").text(data[0].sign_ori);
                    $("#check_date").text(data[0].check_date);
                    $("#en_name").text(data[0].en_name);
                    $("#pre_name").text(data[0].pre_name);
                    $("#province").text(data[0].province);
                    $("#industry").text(data[0].industry);
                    $("#q_address").text(data[0].address);
                    $("#s_area").text(data[0].s_area);
                    $(".name-show").text(data[0].head_person[0]);
                    $("#per-info").text(data[0].head_person);
                }
            )
    
            //获取数据
            $.getJSON("resource/json/"+name+".json",function (data) {
                //处理股权结构数据
                var pieData=[];
                var GQ=data.gqjg;
                console.log(GQ);
                for(i=0;i<GQ.data.length;i++){
                    pieData.push({
                        name:GQ.data[i].name,
                        value:GQ.data[i].money
                    })
                }
                GQJG(pieData);
                //投资图谱数据
                TZZP(data);
                QYTP(data);
                YSGX(data.ysgx);
            });
        }
    
        function GQJG(GQdata) {
            //股权结构
            var myChart = echarts.init(document.getElementById('main'));
            // 指定图表的配置项和数据
    
            option = {
                title: {
                    text: '股权结构',
                    left: 'center'
                },
                tooltip: {
                    trigger: 'item',
                    formatter: '{a} <br/>{b} : {c} ({d}%)'
                },
                legend: {
                    left: 'center',
                    top: 'bottom',
                    data: ['rose1', 'rose2', 'rose3', 'rose4', 'rose5', 'rose6', 'rose7', 'rose8']
                },
                toolbox: {
                    show: true,
                    feature: {
                        mark: {show: true},
                        dataView: {show: true, readOnly: false},
                        magicType: {
                            show: true,
                            type: ['pie', 'funnel']
                        },
                        restore: {show: true},
                        saveAsImage: {show: true}
                    }
                },
                series: [
                    {
                        name: '面积模式',
                        type: 'pie',
                        radius: [30, 110],
                        center: ['75%', '50%'],
                        roseType: 'area',
                        data: GQdata
                    }
                ]
            };
            myChart.setOption(option);
        }
    
        function TZZP(TZdata) {
    
            var treData1=[];
            var treData2=[];
            var TZ=TZdata.tzzp;
            for(i=0;i<TZ.dwtz.length;i++){
                treData1.push({
                    name: TZ.dwtz[i].company+":"+TZ.dwtz[i].percent,
                });
            }
            for(j=0;j<TZ.gd.length;j++){
                treData2.push({
                    name: TZ.gd[j].name+":"+TZ.gd[j].percent,
                });
            }
            var myChart2 = echarts.init(document.getElementById('main2'));
            option2 = {
                tooltip: {
                    trigger: 'item',
                    triggerOn: 'mousemove'
                },
                series:
                    {
                        type: 'tree',
                        data:[
                            {
                                name:TZdata.name,
                                children:[{
                                    name:'对外投资',
                                    children:treData1
                                },{
                                    name:'股东',
                                    children:treData2
                                }
                        ],
                        left: '2%',
                        right: '2%',
                        top: '20%',
                        bottom: '8%',
                        symbol: 'emptyCircle',
                        orient: 'BT',
                        expandAndCollapse: true,
                        label: {
                            position: 'bottom',
                            rotate: 90,
                            verticalAlign: 'middle',
                            align: 'right'
                        },
                        leaves: {
                            label: {
                                position: 'top',
                                rotate: 90,
                                verticalAlign: 'middle',
                                align: 'left'
                            }
                        },
                        animationDurationUpdate: 750
                    }
                ]
            }
            }
            myChart2.setOption(option2);
        }
    
        function QYTP(QYdata){
            var treData3=[];
            var treData4=[];
            var treData5=[];
            var QY=QYdata.qyzp;
            for(i=0;i<QY.dwtz.length;i++){
                treData3.push({
                    name: QY.dwtz[i].name,
                });
            }
            for(j=0;j<QY.gd.length;j++){
                treData4.push({
                    name: QY.gd[j].name,
                });
            }
            for(j=0;j<QY.gg.length;j++){
                treData5.push({
                    name: QY.gg[j].name,
                });
            }
            var myChart3 = echarts.init(document.getElementById('main3'));
            option3 = {
                tooltip: {
                    trigger: 'item',
                    triggerOn: 'mousemove'
                },
                series:
                    {
                        type: 'tree',
                        data:[
                            {
                                name:QYdata.name,
                                children:[{
                                    name:'对外投资',
                                    children:treData3
                                },{
                                    name:'股东',
                                    children:treData4
                                },{
                                    name:'高管',
                                    children:treData5
                                }
                                ],
                                left: '2%',
                                right: '2%',
                                top: '20%',
                                bottom: '8%',
                                symbol: 'emptyCircle',
                                orient: 'BT',
                                expandAndCollapse: true,
                                label: {
                                    position: 'bottom',
                                    rotate: 90,
                                    verticalAlign: 'middle',
                                    align: 'right'
                                },
                                leaves: {
                                    label: {
                                        position: 'top',
                                        rotate: 90,
                                        verticalAlign: 'middle',
                                        align: 'left'
                                    }
                                },
                                animationDurationUpdate: 750
                            }
                        ]
                    }
            }
            myChart3.setOption(option3);
    
        }
    
        function YSGX(data){
            var myChart4 = echarts.init(document.getElementById('main4'));
            var sourceCompany=$('select[name=name]').val();
            var ysData=[
                {
                    name: sourceCompany,
                    symbolSize: 60,
                    category: "源公司",
                    des:"-"
                }
            ];
            var ysLinks=[];
            var categories=[
                {
                    name:"源公司"
                },
                {
                    name: "投资公司"
                },
                {
                    name:"人员"
                }
            ];
            for(var i=0;i<data.length;i++){
                if(!isHasNode(ysData,data[i].from)){
                    ysData.push({
                        name: data[i].from,
                        symbolSize: 40,
                        category: "人员",
                        des:"任职"+(parseInt(data[i].num)+1)+"家公司"
                    })
                }
                if(!isHasNode(ysData,data[i].to)){
                    ysData.push({
                        name: data[i].to,
                        symbolSize: 40,
                        category: "投资公司",
                        des:"-"
                    });
                    ysLinks.push({
                        source: data[i].frdb,
                        target: data[i].to,
                        des:"法人代表",
                        name:"关系",
                        label: {
                            normal: {
                                show: true,
                                formatter:"法人代表"
                            }
                        }
                    });
                }
                ysLinks.push({
                    source: data[i].from,
                    target: data[i].to,
                    des:data[i].relation,
                    name:"关系",
                    label: {
                        normal: {
                            show: true,
                            formatter:data[i].relation
                        }
                    }
                });
    
            }
            option4 = {
                title: {
                    top: 'bottom',
                    left: 'right'
                },
                tooltip: {
                    show: true,
                    //对应json下nodes的des(详细描述)
                    formatter: function(rela) {
                        return rela.data.name + ":" + rela.data.des;
                    }
                },
                legend: [{
                    // selectedMode: 'single',
                    data: categories.map(function (a) {
                        return a.name;
                    })
                }],
                animation: true,
                series : [
                    {
                        name: '疑似关系',
                        type: 'graph',
                        layout: 'force',
                        categories: categories,
                        roam: true,
                        draggable: true,
                        label: {
                            position: 'right'
                        },
                        force: {
                            repulsion: 800
                        }
                    }
                ]
            };
            option4.series[0].data=ysData;
            option4.series[0].links=ysLinks;
            option4.series[0].categories=categories;
            option4.legend[0].data=categories.map(function(a) {
                return a.name;
            });
            myChart4.setOption(option4);
        }
    
        function isHasNode(data,name) {
            var flag=false;
            for(i=0;i<data.length;i++){
                if(data[i].name===name){
                    flag=true;
                    break;
                }
            }
            return flag;
        }
    
        function isPerson(p) {
            return p === 'p';
        }
    </script>
    

    通过对数据集处理,完成简单的关系判断

    平均学习2小时

    代码量800行

  • 相关阅读:
    [Apio2014]回文串
    省队集训day6 C
    省队集训day6 B
    省队集训Day3 light
    省队集训Day3 tree
    多串匹配
    ubuntu卸载福昕阅读器
    greenlet
    python multithread task_done
    mysql参数调优
  • 原文地址:https://www.cnblogs.com/2506236179zhw/p/14226970.html
Copyright © 2011-2022 走看看