unicloud.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <view class="content">
  3. <qiun-title-bar title="统计的开始日期"/>
  4. <uni-datetime-picker type="date" v-model="startDate" start="2021-04-06" end="2021-06-05" return-type="string"></uni-datetime-picker>
  5. <qiun-title-bar title="统计的结束日期"/>
  6. <uni-datetime-picker type="date" v-model="endDate" start="2021-04-06" end="2021-06-05" return-type="string"></uni-datetime-picker>
  7. <qiun-title-bar title="新增用户趋势"/>
  8. <view class="charts-box">
  9. <!--
  10. datacom组件读取uniClinetDB示例
  11. 数据规范:
  12. 带有categories类型的图表定义如下
  13. group:为series分组的name
  14. text:为对应categories的字段,即x轴对应的数据
  15. value:为series的分组data的值
  16. 获取后组件会自动处理categories和series数据,无需手动拼接处理
  17. 注意事项:
  18. 1、如已传入chartData的categories,则优先使用chartData的categories
  19. 2、如返回数据中无分组字段group,否则图例会显示"默认分组",如下
  20. chartData={categories:["a","b","c"],series:[{name:"默认分组",data:[0,1,2]}]}
  21. 3、如果text在数据库中定义为enum类型,则需要传入textEnum来描述正确的text值
  22. 4、如果group在数据库中定义为enum类型,则需要传入groupEnum来描述正确的group值
  23. -->
  24. <qiun-data-charts
  25. class="charts-box"
  26. type="area"
  27. :opts="{xAxis:{disableGrid:true,labelCount:3},yAxis:{data:[{format:'yAxisDemo2'}]},extra:{area:{type: 'curve',gradient:true}}}"
  28. :eopts="{seriesTemplate:{areaStyle:{color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0, color: '#1890FF'}, {offset: 1, color: '#FFFFFF'}],global: false}},smooth:true}}"
  29. collection="qiun-charts-demo"
  30. field="register_date,status"
  31. :where="'register_date >= ' + new Date(startDate).getTime() + ' && register_date <= ' + new Date(endDate).getTime()"
  32. groupby="dateToString(add(new Date(0),register_date),'%Y-%m-%d','+0800') as text,status as group"
  33. group-field="count(*) as value"
  34. :groupEnum="[{text: '正常',value: 0},{text: '禁用',value: 1},{text: '审核中',value: 2},{text: '审核拒绝',value: 3}]"
  35. :startDate="startDate"
  36. :endDate="endDate"
  37. :echartsH5="true"
  38. />
  39. </view>
  40. <qiun-title-bar title="用户男女比例"/>
  41. <view class="charts-box">
  42. <!--
  43. 饼图类数据规范:
  44. value:代表具体数值
  45. text:代表value的描述
  46. 注意事项:
  47. 1、如果text在数据库中定义为enum类型,则需要传入textEnum来描述正确的text值
  48. -->
  49. <qiun-data-charts
  50. class="charts-box"
  51. type="pie"
  52. collection="qiun-charts-demo"
  53. field="register_date,gender"
  54. :where="'register_date >= ' + new Date(startDate).getTime() + ' && register_date <= ' + new Date(endDate).getTime()"
  55. groupby="gender as text"
  56. group-field="count(*) as value"
  57. :textEnum="[{value: 1,text: '男'},{value: 2,text: '女'}]"
  58. />
  59. </view>
  60. <qiun-title-bar title="销售额统计"/>
  61. <view class="charts-box">
  62. <qiun-data-charts
  63. class="charts-box"
  64. type="column"
  65. :opts="{xAxis:{disableGrid:true,labelCount:3},yAxis:{data:[{format:'yAxisDemo1'}]}}"
  66. collection="qiun-charts-demo"
  67. field="register_date,gender,total_fee"
  68. :where="'register_date >= ' + new Date(startDate).getTime() + ' && register_date <= ' + new Date(endDate).getTime()"
  69. groupby="dateToString(add(new Date(0),register_date),'%Y-%m-%d','+0800') as text"
  70. group-field="sum(total_fee) as value"
  71. :startDate="startDate"
  72. :endDate="endDate"
  73. />
  74. </view>
  75. </view>
  76. </template>
  77. <script>
  78. //下面是uCharts的配置文件及qiun-data-charts组件的公用中转参数,可以从本配置文件中获取uCharts实例、opts配置、format配置(APP端因采用renderjs无法从此配置文件获取uCharts实例)
  79. import uCharts from '@/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js';
  80. export default {
  81. data() {
  82. return {
  83. startDate: '2021-04-06',
  84. endDate: '2021-04-13',
  85. };
  86. },
  87. onLoad() {
  88. },
  89. methods: {
  90. getServerData() {
  91. },
  92. complete(e) {
  93. console.log(e);
  94. //uCharts.instance[e.id]代表当前的图表实例(除APP端,APP不可在组件外调用uCharts的实例)
  95. console.log(uCharts.instance[e.id]);
  96. }
  97. }
  98. };
  99. </script>
  100. <style>
  101. .content {
  102. display: flex;
  103. flex-direction: column;
  104. flex: 1;
  105. }
  106. .charts-box {
  107. width: 100%;
  108. height: 300px;
  109. }
  110. </style>