2022-05-23 echarts二次封装组件的使用说明(以柱状图表为示例)

二次封装组件的结构

页面 views

页面视图只提供

  • 读取数据的targetID
  • echart自定义组件引用(这里的组件是页面的所有可视内容)

示例如下:

<template>
  <AssetsLiabilities :requestParams="requestParams" title="中粮工科-资产负债"></AssetsLiabilities>
</template>

<script>
import AssetsLiabilities from '@/components/Pages/AssetsLiabilities/AssetsLiabilitiesPrimary' // echart自定义组件引用
export default {
  components: { AssetsLiabilities },
  data() {
    return {
      requestParams: ['zljt_ldzcyfldzczb','zljt_ljqkfxb','zljt_yxfz','zljt_zcqkb','zljt_rzcb','zljt_zcfzfx_kp'] // targetID
    }
  }
}
</script>
  1. 读取数据的targetID
  • 根据propsrequestParams变量传递过来的targetID读取对应echart图表数据
this.getObjFun1(requestParams[0]) // 流动资产与非流动资产占比
this.getObjFun2(requestParams[1]) // 两金情况分析表(单位:亿元)
this.getObjFun3(requestParams[2]) // 有息负债(单位:亿元)
this.getObjFun4(requestParams[3]) // 资产情况表(单位:亿元)
this.getObjFun5(requestParams[4]) // 融资成本(单位:亿元)
this.getCard(requestParams[5]) // 卡片数据
  1. echart自定义组件
  • 组件使用
<Card
  className="custome-card"
  height="50%"
  :isLoading="pageObj.part2.isLoading"
  :code="pageObj.part2.code"
  :useTitle="true"
  :titleInfo="{ title: pageObj.part2.title }"
  :useDetail="true"
  :goingId="pageObj.part2Data.goingId"
  :openPanel="() => {openDetail(pageObj.part2Data)}">
  <Bar
    :etype="7"
    :chartId="'Performance2'"
    :echartData="pageObj.part2">
  </Bar>
</Card>

Card组件
功能:包裹echart组件,提供echart组件的权限控制、宽高等样式属性、加载动画、标题(单位, 下钻)示例如下:

<Card
    className="custome-card"  # [可选项]
    :height="50%" # 高度 [必选项] 默认值为"100%" 注:height决定echart图表高度
    :code="pageObj.part2.code" # 提示信息 [可选项] 注:code != 0 && code != 1 时显示“没数据”提示信息,code===-1: 未获取到相关数据, code===2: 无权限! 其他code值:未知错误
    :useTitle="true" # Card的标题 [可选项] 默认值为:false 不显示
    :titleInfo="{ title: pageObj.part2.title, company: '' }" # [可选项] 标题内容(暂时只有标题、单位)
    :isLoading="pageObj.part2.isLoading" # 加载中 [可选项] 默认值为:false 不显示
    
    # 下钻图标,如下props用于 组件详情。 注:生效条件v-if="useDetail && goingId" 
    :useDetail="true" # userDetail 
    :goingId="pageObj.part2Data.goingId" 
    :openPanel="() => { openDetail(pageObj.part2Data) }"
    :classBoxName="xxx" # 附加给Card最外层的类名 :class="['card-component', classBoxName]" [可选项] 
    :contentStyle="xxx" # 附加给Card内容的类名 class="box" :style="contentStyle" [可选项] 
    :className="xxx" # 附加给加载中、提示信息的类名 :class="['card-content', className]" [可选项] 
    :top="0" # Card的绝对定位top
    :right="0" # Card的绝对定位right
    :bottom="0" # Card的绝对定位bottom
    :left="0" # Card的绝对定位left
    :contentStyle="">
  <自定义组件 /> # 如 <Bar />
</Card>

echart组件-Bar组件,示例如下:

日常写法示例:<Bar :etype="7" :chartId="'Performance2'" :echartData="pageObj.part2"></Bar> 说明:使用预定义option7为echart的预定义option类型,echartData指定图表数据
详细写法,示例如下:(区别:多了color、grid、label、legend、xAxis、yAxis、dataZoom这几项option的附加修改)

<Bar
    :etype="7" # 预定义option类型。默认值为: 1  [可选项]
    :chartId="'Performance2'" # [可选项]
    :echartData="pageObj.part2" # [必填项]
    :color="['#f00', '#0f0', '#00f']" # color [可选项]
    # 当您发现etype指定的option不能满足你的需求时,可使用如下(color、grid、label、legend、xAxis、yAxis、dataZoom)props属性来修改预定义option类型。
    :grid="[{top:0, right:0, bottom:0, left:0 }]" # grid [可选项]
    :label="{show:true, position:'top'}" # label [可选项]
    :legend="[{show:true, top:0, right:0, bottom:0, left:0, width:0, height:0, orient:'horizontal', textStyle:{ fontSize:'12px'}, itemGap:10, itemHeight:0, itemWidth:0, icon:'xxx', data:null }]" # legend [可选项]
    :xAxis="[{ type:'category', xData:null, axisLabel:{ fontSize:'13px', rotate:360, textStyle:'$', formatter: { showWords:true } } }]" # xAxis [可选项]
    :yAxis="[{ type:'value', scale:true, data:null, axisLabel:{ fontSize:'13px', textStyle:'' }, splitLine:{ splitLineType:'solid' } }]" # yAxis [可选项]
    :dataZoom="{ showNumber:100 }"> # dataZoom [可选项]

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

推荐阅读更多精彩内容