总结之页面数据渲染与数据结构设计(一)

不念不忘少年蓝@ 2022-12-23 07:05 145阅读 0赞

通用需求

1、图表渲染如下
在这里插入图片描述

页面数据结构大概分为3种(1、单数据月份图,2、饼状图、3多数据月份图)

饼状图前端数据渲染结构如下:

  1. var pieData =[
  2. {value: 20, name: '已拜访'},
  3. {value: 10, name: '未拜访'},
  4. {value: 60, name: '在谈'}
  5. ]

这个结构SQL查询相对而言方便
直接使用SQL构造结构即可

  1. SELECT '已拜访' AS name, count(*) AS value FROM c_discuss_node UNION SELECT '已洽谈' AS name, count(*) AS value FROM c_area_discuss_node UNION SELECT '区市县已洽谈' AS name, count(*) AS value FROM c_sign_node

单数据月份图前端数据渲染结构如下:

  1. var lineData = [
  2. {value: 0, name: '1月'},{value: 0, name: '2月'},{value: 0, name: '3月'},
  3. {value: 0, name: '4月'},{value: 0, name: '5月'},{value: 0, name: '6月'},
  4. {value: 0, name: '7月'},{value: 0, name: '8月'},{value: 0, name: '9月'},
  5. {value: 0, name: '10月'},{value: 0, name: '11月'},{value: 0, name: '12月'},
  6. ]

要求查询12月的相关数据
SQL来实现12月份数据(有可能部分月份为0)太繁琐、太耗性能还要按月份排序

可以先查出对应月份的数值,在前端处理数据结构
SQL如下:

  1. SELECT a.name,count(*) as value FROM
  2. (SELECT id, CONCAT(MONTH(createTime),'') as name FROM c_sign_node where YEAR( createTime ) = YEAR( NOW() )
  3. ) a GROUP BY a.name

前端处理代码

  1. var lineData = [
  2. {value: 0, name: '1月'},{value: 0, name: '2月'},{value: 0, name: '3月'},
  3. {value: 0, name: '4月'},{value: 0, name: '5月'},{value: 0, name: '6月'},
  4. {value: 0, name: '7月'},{value: 0, name: '8月'},{value: 0, name: '9月'},
  5. {value: 0, name: '10月'},{value: 0, name: '11月'},{value: 0, name: '12月'},
  6. ]
  7. $.ajax({
  8. type: 'post',
  9. url: '${base}/merchantsTask/countTableData.json',
  10. async: false,
  11. success: function (result) {
  12. $.each(result.obj,function(i,item) {
  13. lineData[item.name-1].value= item.value
  14. // i+item.name = item.value;
  15. });
  16. }
  17. });

多数据月份图前端数据渲染结构如下

  1. var bar2data ={
  2. legend:['已签约数', '已洽谈量'],
  3. xAxis: ['1月', '2月', '3月', '4月', '5月',"6月","7月","8月","9月","10月","11月","12月"],
  4. data1: [50, 32, 31, 54, 62,40],
  5. data2: [20, 42, 31, 84, 90,90],
  6. }

相关实现同上

前端代码

  1. var arr1 = [0,0,0,0,0,0,0,0,0,0,0,0]
  2. var arr2 = [0,0,0,0,0,0,0,0,0,0,0,0]
  3. $.ajax({
  4. type: 'post',
  5. url: '${base}/merchantsTask/discussNodeData.json',
  6. async: false,
  7. success: function (result) {
  8. $.each(result.obj,function(i,item) {
  9. arr1[item.name-1] = item.value
  10. // i+item.name = item.value;
  11. });
  12. }
  13. });
  14. $.ajax({
  15. type: 'post',
  16. url: '${base}/merchantsTask/signNodeData.json',
  17. async: false,
  18. success: function (result) {
  19. $.each(result.obj,function(i,item) {
  20. arr2[item.name-1] = item.value
  21. // i+item.name = item.value;
  22. });
  23. }
  24. });
  25. var bar2data ={
  26. legend:['已签约数', '已洽谈量'],
  27. xAxis: ['1月', '2月', '3月', '4月', '5月',"6月","7月","8月","9月","10月","11月","12月"],
  28. data1: arr1,
  29. data2: arr2,
  30. }```

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读

    相关 大话数据结构----总结

    1.逻辑结构与物理结构 按照视点的不同,我们把数据结构分为逻辑结构和物理结构。 逻辑结构: 逻辑结构是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种: