BI报表

一、路由设计

一级路由路径business_intelligent/
二级路径:以运营总览为例

// router.js
{
  path: business_intelligent/overvie,
  component: OverallPage,
  ToolbarStore,
  OverallStore,// 总充值与总消费柱状图
  PaymentStore,// 按需与预留柱状图
  PurchaseStore // 预留购买与消费柱状图
  CouponStore // 代金券赠送与消费
}


二、Store设计

每一个图或表格对应一个store,定义请求参数,将请求数据转换成图表可用的数据格式。接收用户输入的查询数据,重新计算请求参数并发起请求。

OverallStore extends BaseStore {
  @observable loading = false;
  @observable echartOption = { }; // echart画图直接使用的数据
  @observable overall_query = {}; // 用户选择时间段等参数
  // 请求参数
  @computed get overall_params () {
    ... this.overall_query;
    table: 'fact_sales_month_detail',
    dim_columns: [
      'month_id',
    ],
    data_columns: [
      'sale_amount',
      'sale_amount_day',
    ],
    group_by: [
      'month_id',
    ],
    sort_key: 'month_id',
    reverse: 0,
    condition: JSON.stringify({
      'month_id.range': filterMonth,
    }),
  }
 @action
 setEchart(resp, options) {
  // do parese response
  this.echartOption = {
    xAxis: {
      data: data.map(i => i.month_id),
    },
    yAxis: [{
      type: 'value',
      scale: true,
    }, {
      type: 'value',
      scale: true,
    }],
  }
 }
}


三、组件设计

页面结构:

<OverallPage>
  <Toolbar/>
  <Chart1/>
  <Chart2/>
  <Table3/>
  ...
</OverallPage>

Toorbar和OverallPage及其他众多Chart、Table的数据流动:


Toorbar组件中的ToolbarSotre收集用户输入的搜索参数,传递给各个Chart组件中的pageStore,pageStore触发fetch数据,然后组件重新渲染。


Table组件:

基本渲染步骤:设置columns,然后将它和store中的dataSource传进GridTable组件。
定制Td元素:通过columns传递小组件


可抽象的复用组件

  • 总览页面条形图


  • 消费总额概览


  • 完成率横向条形图


  • Top3


  • 悬浮框表格


  • 饼状图


  • 详细占比数据


  • 列表内比例图


  • Tap切换


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容

  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,967评论 0 12
  • 产品知识面考察 真题 例题分析 例题7.3 DAU代表 。 日用户点击量 月活跃用户数量 日活跃用户数量 网站...
    爱摄影的奥派阅读 12,338评论 4 46
  • 前言 标题为什么要加个问号,因为我自身阅读了很多关于所谓APP架构的文章、博客、资料等等,不论是cocopods组...
    莫寂岚阅读 238评论 0 0
  • 文/金刚葫芦妈 导读:二胎政策的放开使得所有与孩子相关的产业都备受瞩目,这里也包括孩子教育问题。“孔融让梨”是中国...
    兰菲阅读 955评论 10 7
  • 下午给班主任开了个会,因为学生类型比较多,情况又复杂,班主任都嚷着说,怎么乱七八糟的,看起来都不太高兴,可是现在做...
    qiyuma阅读 185评论 0 1