找文章 / 找答案
  • 发帖数3
  • 粉丝0

此人很懒,什么也没有留下

    精选问答 更多内容

    [报错信息处理] 组件图表拖动到左侧,代码提示找不到getProps这个函数

    yhdata_1Jv09Unl玄铁二 显示全部楼层 发表于 2021-11-4 15:55:21 |阅读模式 打印 上一主题 下一主题
    回复

    使用道具 举报

    精彩评论3

    永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-11-4 15:57:10
    麻烦上传报错截图
    回复

    使用道具 举报

    yhdata_1Jv09Unl玄铁二 显示全部楼层 发表于 2021-11-4 16:04:59

    传了三个图麻烦看下,谢谢

    网页上组件已显示

    网页上组件已显示

    代码找不到第一个函数

    代码找不到第一个函数

    网页上提示的报错

    网页上提示的报错
    回复

    使用道具 举报

    yhdata_1Jv09Unl玄铁二 显示全部楼层 发表于 2021-11-4 16:17:15
    1. import {register} from 'yh-plugin-manager';
    2. import echarts from "echarts";

    3. const plugin = {
    4.    getProps: () => {
    5.      return [
    6.        {
    7.          group: "titleOption",
    8.          type: "string",
    9.          key: "title",
    10.          value: "漏斗图"
    11.        },
    12.        {
    13.          group: "titleOption",
    14.          type: "boolean",
    15.          key: "titleOption_visible",
    16.          value: true
    17.        },
    18.        {
    19.          group: "titleOption",
    20.          type: "font",
    21.          key: "titleFont",
    22.        },
    23.        {
    24.          group: "titleOption",
    25.          type: "combo",
    26.          key: "titlePosition",
    27.          value: "top",
    28.          option: ["top", "bottom"],
    29.        },
    30.        {
    31.          group: "legendOption",
    32.          type: "chartColor",
    33.          key: "chartColor"
    34.        },
    35.        {
    36.          group: "legendOption",
    37.          type: "boolean",
    38.          key: "legendOption_visible",
    39.          value: true
    40.        },
    41.        {
    42.          group: "legendOption",
    43.          type: "font",
    44.          key: "legendFont"
    45.        },
    46.        {
    47.          group: "legendOption",
    48.          type: "combo",
    49.          key: "legendPosition",
    50.          value: "right",
    51.          option: ["left", "top", "right", "bottom"],
    52.        },
    53.        {
    54.          group: "valueOption",
    55.          type: "boolean",
    56.          key: "valueOption_visible",
    57.          value: true
    58.        },
    59.        {
    60.          group: "valueOption",
    61.          type: "font",
    62.          key: "valueFont"
    63.        },
    64.        {
    65.          group: "valueOption",
    66.          type: "combo",
    67.          key: "valuePosition",
    68.          option: ["left", "right", "inside"],
    69.          value: "inside"
    70.        },
    71.      ];
    72.    },
    73.    getLocalView: (key) => {
    74.      const LocalSetting = {
    75.        "PluginName": {"zh_CN": "漏斗图\n1个维度\n1个度量", "en_US": "Funnel\n1 dimension\n1 measure", "ja_JP": "ファンネルチャート\n1次元\n1指標", "zh_TW": "漏斗圖\n1個維度\n1個度量"},
    76.        "title": {"zh_CN": "漏斗图", "en_US": "Funnel", "ja_JP": "ファンネルチャート", "zh_TW": "漏斗圖"},
    77.        "valueFont": {"zh_CN": "", "en_US": "", "ja_JP": "", "zh_TW": ""},
    78.        "legendFont": {"zh_CN": "", "en_US": "", "ja_JP": "", "zh_TW": ""},
    79.        "chartColor": {"zh_CN": "图例颜色", "en_US": "Legend Color", "ja_JP": "凡例の色", "zh_TW": "圖例顏色"},
    80.        "titlePosition": {"zh_CN": "位置", "en_US": "Position", "ja_JP": "位置", "zh_TW": "位置"},
    81.        "titleFont": {"zh_CN": "", "en_US": "", "ja_JP": "", "zh_TW": ""},
    82.        "titleOption": {"zh_CN": "标题选项", "en_US": "Title", "ja_JP": "タイトル", "zh_TW": "標題選項"},
    83.        "left": {"zh_CN": "左", "en_US": "Left", "ja_JP": "左", "zh_TW": "左"},
    84.        "top": {"zh_CN": "上", "en_US": "Top", "ja_JP": "上", "zh_TW": "上"},
    85.        "right": {"zh_CN": "右", "en_US": "Right", "ja_JP": "右", "zh_TW": "右"},
    86.        "bottom": {"zh_CN": "下", "en_US": "Bottom", "ja_JP": "下", "zh_TW": "下"},
    87.        "inside": {"zh_CN": "内部", "en_US": "Inside", "ja_JP": "内部", "zh_TW": "內部"},
    88.        "legendOption": {"zh_CN": "图例选项", "en_US": "Legent", "ja_JP": "凡例", "zh_TW": "圖例選項"},
    89.        "valueOption": {"zh_CN": "数值选项", "en_US": "Value", "ja_JP": "数値", "zh_TW": "數值選項"},
    90.        "legendPosition": {"zh_CN": "位置", "en_US": "Position", "ja_JP": "位置", "zh_TW": "位置"},
    91.        "valuePosition": {"zh_CN": "位置", "en_US": "Position", "ja_JP": "位置", "zh_TW": "位置"},
    92.      }

    93.      return LocalSetting[key];
    94.    },
    95.    getBindInfo: () => {
    96.      return {
    97.        xcolumns: [
    98.        {
    99.          index: 0,
    100.          isDim: true
    101.        }],
    102.        ycolumns: [
    103.        {
    104.          index: 0,
    105.          isDim: false
    106.        }]
    107.      };
    108.    },
    109.    render: (domName, props, grid = null, qinfo = null) => {
    110.       if(document.getElementById(domName) == null) {
    111.          return;
    112.       }

    113.       let funnel = echarts.init(document.getElementById(domName));
    114.       funnel.resize();

    115.       if(grid == null || grid.csize() < 2) {
    116.          funnel.dispose();
    117.          funnel = null;
    118.          return;
    119.       }

    120.       funnel.resize({
    121.          width: "auto",
    122.          height: "auto"
    123.       });
    124.       let option = {
    125.          toolbox: {
    126.             feature: {
    127.             }
    128.          },
    129.          legend: {
    130.             icon: 'rect'
    131.          },
    132.          cursor: "default",
    133.          calculable: true,
    134.          series: [
    135.          ]
    136.       };

    137.       let funnel0 = {
    138.          type:'funnel',
    139.          min: 0,
    140.          max: 100,
    141.          minSize: '0%',
    142.          maxSize: '100%',
    143.          sort: 'descending',
    144.          gap: 2,
    145.          label: {
    146.             normal: {
    147.                show: true,
    148.                position: 'inside'
    149.             },
    150.             emphasis: {
    151.                textStyle: {
    152.                   fontSize: 20
    153.                }
    154.             }
    155.          },
    156.          labelLine: {
    157.             normal: {
    158.                length: 10,
    159.                lineStyle: {
    160.                   width: 1,
    161.                   type: 'solid'
    162.                }
    163.             }
    164.          },
    165.          itemStyle: {
    166.             normal: {
    167.                borderColor: '#fff',
    168.                borderWidth: 1
    169.             }
    170.          }
    171.       };

    172.       if(props.chartColor) {
    173.         option.color = props.chartColor;
    174.       }

    175.       if(props.legendFont) {
    176.          let legendFont = props.legendFont;

    177.          option.legend.textStyle = {
    178.             color: legendFont.fontColor,
    179.             fontFamily: legendFont.fontFamily,
    180.             fontStyle: legendFont.fontStyle,
    181.             fontWeight: legendFont.fontWeight,
    182.             fontSize: legendFont.fontSize
    183.          };
    184.       }

    185.       //legend position.
    186.       switch(props.legendPosition) {
    187.       case "left":
    188.          option.legend.y = 'center';
    189.          option.legend.orient = 'vertical';
    190.          break;
    191.       case "top":
    192.          option.legend.left = "center";
    193.          option.legend.orient = 'horizontal';
    194.          break;
    195.       case "right":
    196.          option.legend.left = "auto";
    197.          option.legend.y = 'center';
    198.          option.legend.orient = 'vertical';
    199.          break;
    200.       case "bottom":
    201.          option.legend.left = "center";
    202.          option.legend.orient = 'horizontal';
    203.          break;
    204.       }

    205.       if(props.legendOption_visible != undefined) {
    206.          option.legend.show = props.legendOption_visible;
    207.       }

    208.       // legend page
    209.       option.legend.type = 'scroll';
    210.       option.legend.pageButtonItemGap = 0;
    211.       // texture in right of icon.
    212.       option.legend.align = 'left';


    213.      // graph bounds
    214.      let data = [];

    215.      for(let i = 1; i < grid.rsize(); i++) {
    216.        if(grid.get(i, 0) != null && grid.get(i, 1) != 0) {
    217.           data.push({value: Number(grid.get(i, 1)), name: grid.get(i, 0), value0: Number(grid.get(i, 1))});
    218.        }
    219.      }

    220.      let maxName = data[0].name;

    221.      for(let i = 1; i< data.length; i++) {
    222.         if(data[i].name.length > maxName.length) {
    223.            maxName = data[i].name;
    224.         }
    225.      }

    226.      data.sort(function(a, b) {
    227.        return b.value == a.value ? 0 : (b.value > a.value ? 1 : -1);
    228.      });

    229.      for(let i = 0; i < data.length; i++) {
    230.         data[i].value = data[i].value / data[0].value0 * 100;
    231.      }

    232.      funnel0.data = data;
    233.      option.series.push(funnel0);
    234.      funnel.off('legendselectchanged');
    235.      funnel.on('legendselectchanged', function (params) {
    236.         const result = [];
    237.         let view = qinfo.xcols[0].col.getView(false);

    238.         if(params.selected) {
    239.             for(let key in params.selected) {
    240.                params.selected[key] && result.push([{[view]: key}]);
    241.             }
    242.         }

    243.         props.filter(result);
    244.      });
    245.      funnel.setOption(option, true);
    246.    }
    247. }

    248. /**
    249. * The YHPluginManager register the user-customized plugin.
    250. */
    251. register(plugin);
    复制代码
    回复

    使用道具 举报

    高级模式
    您需要登录后才可以回帖 登录 | 免费注册

    • 官方微信

      欢迎关注永洪服务号!收费为0,价值无限

      扫码关注
    • 新浪微博

      让每位用户轻松挖掘数据价值!

      访问新浪微博
    • 智能客服
    50W

    会员等你来哦

    Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
    返回顶部