Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.vue 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. <template>
  2. <view class="content">
  3. <view v-if="1">
  4. <view class="title_name">2023年04月12日黔通智联ETC事业部全国发行日报表</view>
  5. <view class="table_wrap" >
  6. <t-table>
  7. <t-tr font-size="12">
  8. <t-td >车型</t-td>
  9. <t-td>记账副卡当日开卡数</t-td>
  10. <t-td>记账卡累计发卡数</t-td>
  11. </t-tr>
  12. <t-tr v-for="item in tableList" :key="item.id" fontSize="12">
  13. <t-td >{{ item.cars }}</t-td>
  14. <t-td>{{ item.carToday }}</t-td>
  15. <t-td>{{ item.carAll }}</t-td>
  16. </t-tr>
  17. </t-table>
  18. </view>
  19. <view class="change_type"><uni-data-select v-model="selectTypeValue" :localdata="typeRange" @change="changeType" :clear="false"></uni-data-select></view>
  20. <view v-if="isShow === 0">
  21. <view class="title title_pie">&nbsp;&nbsp;饼状图<view class="choice_item1"><uni-data-select v-model="selectPieValue" :localdata="pieRange" @change="changePie" :clear="false"></uni-data-select></view></view>
  22. <view class="charts-box">
  23. <qiun-data-charts type="pie" :opts="opts" :chartData="pieData" />
  24. </view>
  25. </view>
  26. <view v-else-if="isShow === 1">
  27. <view class="title">&nbsp;&nbsp;折线图</view>
  28. <view class="charts-box">
  29. <qiun-data-charts type="line" :opts="optsLine" :chartData="lineData" :ontouch="true"/>
  30. </view>
  31. </view>
  32. <view v-else>
  33. <view class="title title_pie">&nbsp;&nbsp;柱状图<view class="choice_item"><uni-data-select v-model="selectColValue" :localdata="colRange" @change="changeCol" :clear="false"></uni-data-select></view></view>
  34. <view class="charts-box">
  35. <qiun-data-charts type="column" :opts="optsCol" :chartData="chartData" :ontouch="true"/>
  36. </view>
  37. </view>
  38. </view>
  39. <view v-else>暂无数据统计信息</view>
  40. </view>
  41. </template>
  42. <script>
  43. import * as IFCODE from "@/utils/network/api.js";
  44. import { request } from "@/utils/network/request.js";
  45. const tools = require("../../../static/etcUtil/tools.js");
  46. // 表格
  47. import tTable from "@/components/t-table/t-table.vue"
  48. import tTh from '@/components/t-table/t-th.vue'
  49. import tTr from '@/components/t-table/t-tr.vue'
  50. import tTd from '@/components/t-table/t-td.vue'
  51. export default {
  52. data() {
  53. return {
  54. isShow:0,
  55. pieData:{},
  56. chartData: {},
  57. lineData:{},
  58. tableList: [{
  59. cars: '客车',
  60. carToday: '121314',
  61. carAll: '19',
  62. },
  63. {
  64. cars: '货车',
  65. carToday: '121314',
  66. carAll: '19',
  67. },
  68. {
  69. cars: '合计',
  70. carToday: '121314',
  71. carAll: '19',
  72. }],
  73. opts:{
  74. fontSize:11,
  75. },
  76. optsLine:{
  77. fontSize:11,
  78. enableScroll: true,
  79. xAxis: {
  80. disableGrid: true,
  81. scrollShow: true,
  82. itemCount: 3
  83. },
  84. extra: {
  85. line: {
  86. type: "straight",
  87. width: 2,
  88. activeType: "hollow"
  89. }
  90. }
  91. },
  92. optsCol:{
  93. fontSize:11,
  94. enableScroll: true,
  95. xAxis: {
  96. disableGrid: true,
  97. scrollShow: true,
  98. itemCount: 3.5
  99. },
  100. yAxis: {
  101. data: [
  102. {
  103. min: 0
  104. }
  105. ]
  106. },
  107. extra: {
  108. column: {
  109. type: "group",
  110. width: 25,
  111. }
  112. }
  113. },
  114. selectPieValue:0,
  115. pieRange: [
  116. { value: 0, text: "记账卡合计" },
  117. { value: 1, text: "储值卡合计" },
  118. { value: 2, text: "ETC卡合计" },
  119. ],
  120. pieDataAll:[[{"name":"当日开户数","value":50},{"name":"当月开户数","value":30},{"name":"当年累积开户数","value":20},{"name":"总计开户数","value":18},{"name":"当日注销","value":8},{"name":"当年注销数","value":18},{"name":"总计注销数","value":8}],
  121. [{"name":"当日开户数","value":500},{"name":"当月开户数","value":30},{"name":"当年累积开户数","value":20},{"name":"总计开户数","value":18},{"name":"当日注销","value":8},{"name":"当年注销数","value":18},{"name":"总计注销数","value":8}],
  122. [{"name":"当日开户数","value":1000},{"name":"当月开户数","value":30},{"name":"当年累积开户数","value":20},{"name":"总计开户数","value":18},{"name":"当日注销","value":8},{"name":"当年注销数","value":18},{"name":"总计注销数","value":8}]],
  123. lineData:{
  124. xData:["当日开户数","当月开户数","当年累积开户数","总计开户数","当日注销","当年注销数","总计注销数"],
  125. yData:[
  126. {
  127. name: "贵阳银行",
  128. data: [35,8,25,37,4,20,12]
  129. },
  130. {
  131. name: "工商银行",
  132. data: [70,40,65,100,44,68,90]
  133. },
  134. {
  135. name: "农信社",
  136. data: [100,80,95,150,112,132,78]
  137. }
  138. ]
  139. },
  140. selectColValue:0,
  141. colRange:[
  142. { value: 0, text: "贵阳银行" },
  143. { value: 1, text: "工商银行" },
  144. { value: 2, text: "农信社" },
  145. { value: 3, text: "建设银行" },
  146. { value: 4, text: "农业银行" },
  147. { value: 5, text: "世纪恒通" },
  148. { value: 6, text: "金润" },
  149. { value: 7, text: "黔通智联" },
  150. { value: 8, text: "诺德" },
  151. { value: 9, text: "易路通达" },
  152. { value: 10, text: "无线感测" },
  153. { value: 11, text: "路路帮" },
  154. { value: 12, text: "自营网点" },
  155. { value: 13, text: "其他渠道" },
  156. ],
  157. colData:{
  158. xData:["当日开户数","当月开户数","当年累积开户数","总计开户数","当日注销","当年注销数","总计注销数"],
  159. yData:{
  160. 0:{
  161. name: "贵阳银行",
  162. data: [35,36,31,33,13,34,9]
  163. },
  164. 1:{
  165. name: "工商银行",
  166. data: [55,36,31,33,13,34,9]
  167. },
  168. 2:{
  169. name: "农信社",
  170. data: [55,36,31,33,13,34,9]
  171. },
  172. }
  173. },
  174. selectTypeValue:0,
  175. typeRange: [
  176. { value: 0, text: "饼状图" },
  177. { value: 1, text: "折线图" },
  178. { value: 2, text: "柱状图" },
  179. ],
  180. };
  181. },
  182. components: {
  183. tTable,
  184. tTh,
  185. tTr,
  186. tTd,
  187. },
  188. onShow() {
  189. this.reqPie(); //饼状图数据请求
  190. this.getLineData(this.lineData); //折线图
  191. this.getColumnData(this.colData.xData,this.colData.yData[0]); //柱状图
  192. },
  193. methods: {
  194. getPieData(data) {
  195. //模拟从服务器获取数据时的延时
  196. setTimeout(() => {
  197. //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
  198. let res = {
  199. series: [
  200. {
  201. data: data
  202. }
  203. ]
  204. };
  205. this.pieData = JSON.parse(JSON.stringify(res));
  206. }, 500);
  207. },
  208. getColumnData(xData,yData) {
  209. //模拟从服务器获取数据时的延时
  210. setTimeout(() => {
  211. let res = {
  212. categories:xData ,
  213. series: [yData]
  214. };
  215. this.chartData = JSON.parse(JSON.stringify(res));
  216. }, 500);
  217. },
  218. getLineData(data) {
  219. //模拟从服务器获取数据时的延时
  220. setTimeout(() => {
  221. //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
  222. let res = {
  223. categories: data.xData,
  224. series: data.yData
  225. };
  226. this.lineData = JSON.parse(JSON.stringify(res));
  227. }, 500);
  228. },
  229. selectitem(index, item) {
  230. console.log(item)
  231. if (index >= 0) {
  232. this.tval = item.value;
  233. } else {
  234. this.tval = ""
  235. }
  236. },
  237. //饼状图改变
  238. changePie(e) {
  239. this.getPieData(this.pieDataAll[e]);
  240. console.log("e:",e, this.pieDataAll);
  241. },
  242. // 柱状图改变
  243. changeCol(e){
  244. this.getColumnData(this.colData.xData,this.colData.yData[e]);
  245. },
  246. // 改变类型
  247. changeType(e){
  248. console.log("changeType", e);
  249. this.isShow=e;
  250. },
  251. reqPie(){
  252. tools.showLoadingAlert("加载中");
  253. // let options = {
  254. // type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  255. // data: {
  256. // Status: "0",
  257. // random: cmdRandNum, //5202192509222239
  258. // obuSerailNo: obu.obuId, //5202192509551922
  259. // fileData: getFileData(),
  260. // orderId: fileDataStrings.orderId,
  261. // }, //请求参数
  262. // method: "POST", //提交方式(默认POST)
  263. // showLoading: true, //是否显示加载中(默认显示)
  264. // };
  265. //调用方式
  266. // request(IFCODE.modifyObuVehicleInfo, options)
  267. // .then((res) => {
  268. tools.hideLoadingAlert();
  269. // const datas = stringToJson(res.bizContent);
  270. this.getPieData(this.pieDataAll[0]); //饼状图
  271. // })
  272. },
  273. }
  274. };
  275. </script>
  276. <style scoped>
  277. .content{
  278. /* background-color: #EEF7F7; */
  279. background-color: white;
  280. overflow: hidden;
  281. }
  282. .charts-box {
  283. width: 100%;
  284. height: 300px;
  285. }
  286. .title{
  287. border-left: 10rpx solid rgb(24, 144, 255);
  288. font-size: 32rpx;
  289. margin: 6px 10px;
  290. border-radius: 8rpx;
  291. }
  292. .table_wrap{
  293. font-size: 14rpx;
  294. margin: 40rpx auto;
  295. width: 700rpx;
  296. height:auto
  297. }
  298. t-tr t-td:nth-child(1){
  299. width: 20% !important;
  300. }
  301. t-tr t-td:nth-child(2){
  302. width: 43% !important;
  303. }
  304. t-tr t-td:nth-child(3){
  305. width: 37% !important;
  306. }
  307. .uni-stat__select{
  308. width: 40% !important;
  309. }
  310. .title_pie{
  311. display: flex;
  312. justify-content: space-between;
  313. align-items: center;
  314. }
  315. .uni-select{
  316. font-size: 13px !important;
  317. height: 30px !important;
  318. }
  319. .change_type{
  320. width: 30% !important;
  321. margin-left: 40rpx;
  322. margin-bottom: 40rpx;
  323. }
  324. .title_name{
  325. width: 95%;
  326. font-weight: 600;
  327. text-align: center;
  328. margin: auto;
  329. }
  330. .choice_item{
  331. width: 30%;
  332. }
  333. .choice_item1{
  334. width: 35%;
  335. }
  336. </style>