zoukankan      html  css  js  c++  java
  • 小程序建网络组图拓扑Topo

    js

    import * as echarts from '../../../../components/ec-canvas/echarts.js';
    let chart = null;
    const app  = getApp();
    Page({

      data: {
        tabs: [
          {
            key: 'tab1',
            title: '合同关系',
          },
          {
            key: 'tab2',
            title: '从众关系',
          },
        ],
        type: '0',
        customer:{},//客户信息
        treeData:{}
      },
      //tab切换
      onTabsChange(e) {

        const { key } = e.detail
        const index = this.data.tabs.map((n) => n.key).indexOf(key)
        this.setData({
          key,
          type: index,

        });
        var customerNo=this.data.customer.customerNo;
        this.getTreeDate(this.data.type,customerNo);
      },

      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        if(options.customer){
          this.setData({
            customer:JSON.parse(options.customer)
          })
        }
        var type =0;
        var customerNo = this.data.customer.customerNo;
        console.log("customerNo",customerNo);
       this.getTreeDate(type,customerNo);
        console.log("tree data:begin ",this.data.treeData);
        this.initChart();
      },
     
      getTreeDate:function(type,customerNo){
        const that = this;
        wx.request({
          url: app.myGlobal.httpUrl+'crmTreeView/queryData.do?customerNo='+customerNo+'&type='+type,
          data:{customerNo:customerNo,type:type},
          success:function(res){
            console.log(res);
            if(res.statusCode==200 && res.data.code=='200' && res.data.value!=null){
              that.setData({
                treeData:res.data.value
              });
              console.log("that.data.treeData",that.data.treeData);
              that.initChart()
            }
          },fail:function(res){
            wx.showToast({
              title: '查询无'+(type==0?'合同':'从众')+'关系',
            })
          },complete:function(res){
            console.log("");
          }
        })
      },

      initChart() {
        const that = this;

        console.log("tree data:after", that.data.treeData);

        let data = that.data.treeData;
        if(!data){
          console.error("没有树的数据",data);
          wx.showToast({
            title: '没有查询到树的数据',
          })
          return ;
        }
        this.ecComponent = this.selectComponent('#mychart-dom-bar')
        this.ecComponent.init((canvas, width, height) => {
          let data = that.data.treeData;
          let id = data.id
          chart = echarts.init(canvas, null, {
             width,
            height: height
          });
          canvas.setChart(chart);
          let option = {
            tooltip: {
              show: true,
              trigger: 'item',
              triggerOn: 'click',
              formatter: function (params) {
                // console.log(params)
                return params.data.intro
              },
              position: function (pos, params, dom, rect, size) {
                // console.log(pos)
                // 鼠标在左侧时 tooltip 显示到右侧,鼠标在右侧时 tooltip 显示到左侧。
                var obj = { top: pos[1] + 3, right: size.viewSize[0] - pos[0] + 8 };
                if (params.data.id == id) {
                  obj = { top: pos[1] + 3, left: pos[0] + 8 };
                }
                return obj;
              }
            },
            series: [
              {
                type: 'tree',
                data: [data],
                top: '5%',
                left: '5%',
                bottom: '5%',
                right: '5%',
                symbolSize: 12,
                edgeShape: 'polyline', // 直线
                orient: 'vertical', //竖着

                label: {
                  position: 'right',
                  verticalAlign: 'bottom',
                  align: 'left',
                  fontSize: 12
                },

                leaves: {
                  label: {
                    position: 'left',
                    verticalAlign: 'bottom',
                    align: 'right',
                    fontSize: 12
                  }
                },

                expandAndCollapse: true,
                animationDuration: 550,
                animationDurationUpdate: 750
              }
            ]
          };
          chart.setOption(option);
          chart.on('click', function (params) {
            console.log(params)
          });
          return chart;
        })
      },

    })
     
     
    xml:
     
    <view class="page">
      <view class="page_bd">

        <wux-tabs wux-class="bordered" controlled current="{{ key }}" bindchange="onTabsChange">
          <block wx:for="{{ tabs }}" wx:key="key">
            <wux-tab key="{{ item.key }}" title="{{ item.title }}"></wux-tab>
          </block>
        </wux-tabs>

        <view class="hetong" wx:if="{{type==0}}">
          <view class="box" style="height: 1000rpx;border:none">
            <echart id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ treeData }}"></echart>
          </view>
        </view>

        <view class="conghzong" wx:if="{{type==1}}">
          <view class="box" style="height: 1000rpx;border:0">
            <echart id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ treeData }}"></echart>
          </view>
        </view>
      </view>

    </view>
     
     
    josn:
    {
      "navigationBarTitleText": "客户关系图",
      "usingComponents": {
        "echart": "/components/ec-canvas/ec-canvas",
        "wux-tabs": "/components/wux/tabs/index",
        "wux-tab": "/components/wux/tab/index"
      }
    }
     
     
    ---
    wcss
    /* pages/admin/client/treeView/treeView.wxss */
    /* .page_bd .wux-tabs {
      position: fixed;
      bottom: 10rpx;
      left: 0;
    } */
  • 相关阅读:
    win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)
    Windows下的Anaconda+OpenCV的环境配置
    视频检测人脸添加帽子完美方案
    OpenCV学习C++接口 Mat像素遍历详解
    [hadoop读书笔记] 第一章 初识 Hadoop
    [hadoop读书笔记]前言
    [hadoop读书笔记]译者序
    [Docker] Docker简介
    [sqoop1.99.6] 基于1.99.6版本的一个小例子
    [sqoop1.99.7] sqoop实例——数据ETL
  • 原文地址:https://www.cnblogs.com/gzhbk/p/13084816.html
Copyright © 2011-2022 走看看