Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

addChart后在数据符合规则的情况下无法在advice中展示 #140

Closed
hyqaimx opened this issue Mar 9, 2021 · 5 comments
Closed
Assignees

Comments

@hyqaimx
Copy link

hyqaimx commented Mar 9, 2021

如题,当我按照文档增加了一个图表类型后,当我用dataPropsToAdvices时,并没有获得对应的图表类型

@Esorakouki
Copy link
Contributor

你好 请问有相关代码或者提供一个片段链接(类似codepen)吗

@hyqaimx
Copy link
Author

hyqaimx commented Apr 9, 2021

你好 请问有相关代码或者提供一个片段链接(类似codepen)吗

代码类似是这样的

import React, { useEffect } from 'react';
import {
	CKBJson,
	addChart,
	ChartKnowledge,
	TransKnowledgeProps,
	Language,
} from '@antv/knowledge';
import {dataToDataProps, dataPropsToAdvices} from "@antv/chart-advisor";

const Test = () => {
  useEffect(() => {
    const newChart: ChartKnowledge = {
      id: 'liquid_diagram',
      name: 'Liquid Diagram',
      alias: ['Liquid Chart'],
      family: ['Others'],
      def: 'A liquid diagram is a infographic for presenting progress.',
      purpose: ['Comparison'],
      coord: [],
      category: ['Diagram'],
      shape: ['Lines'],
      dataPres: [{ minQty: 1, maxQty: 1, fieldConditions: ['Interval', "Discrete"] }],
      channel: ['Position'],
      recRate: 'Recommended',
    };
    
    const newChartZh: Record<Language, TransKnowledgeProps> = {
      'zh-CN': {
        name: '水波图',
        alias: ['水波球', '进度球'],
        def: '水波图是一种用球形容器和其中的水平线位置来表示进度的示意图。',
      },
      'en-US': {
        name: 'Liquid Diagram',
        alias: ['水波球', '进度球'],
        def: '水波图是一种用球形容器和其中的水平线位置来表示进度的示意图。',
      },
    };
    
    addChart(newChart, newChartZh);

    const allTypeData = CKBJson();
    console.log(allTypeData); // 此时是可以打印出增加的图表的;

    const data = [{value: 20}];
    const dataProps = dataToDataProps(data);
		const advices = dataPropsToAdvices(dataProps,{}, false);
    console.log(advices); // 但是推荐的列表里面并没有新增的chart
  }, [])

  return <div></div>
}

export default Test;

我认为是toAdvices的时候还是使用的addChart之前的知识库,所以导致没有获取到增加的图表。
希望能帮我解惑,谢谢

@Esorakouki
Copy link
Contributor

这个确实是缺陷:新增的图表没有进推荐的流程里。 感谢反馈!

@neoddish
Copy link
Member

@hyqaimx
一开始设计的时候,CKB 本身具有比较独立的应用能力:提供一套图表类型数据。addChart 基于这个场景设计,所以是比较独立的 api。由于在推荐流程中使用自定义 CKB 需要对推荐流程中的规则做相应定制化设置,门槛高流程繁琐,所以一直没有打通这两种能力。

不过非常感谢提出这个 issue!确实这两种能力的结合使用是一个明显的需求,也是非常直观容易联想到的组合,我们会重新设计一下相关能力,把他们打通。

@neoddish neoddish self-assigned this Mar 19, 2023
@neoddish
Copy link
Member

neoddish commented Apr 5, 2023

在 AVA v3 中,可以通过新的方式新增图表:https://ava.antv.antgroup.com/api/ckb/ckb#%E5%A2%9E%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9%89%E5%9B%BE%E8%A1%A8

关于让自定义图表加入标准规则的计算,3.0 中提供了解法,但是 3.1 中需要进一步简化方法。详见:#636

@neoddish neoddish closed this as completed Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants