Detail.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696
  1. <template>
  2. <view class="contentike">
  3. <view class="fixed" style="color: #FFFDEF;">
  4. <cu-custom bgColor="bg-gradual-sisBlack" :isBack="true">
  5. <block slot="backText"><view style="height: 80rpx;line-height: 80rpx;color: silver;">返回</view></block>
  6. <block slot="content">
  7. <view style="color: silver;">{{ address }}</view>
  8. </block>
  9. </cu-custom>
  10. </view>
  11. <view class="threeTarget" v-show="targetdetail_visable.targetdetail_target">
  12. <view class="target">
  13. <view class="target_zi">指标</view>
  14. <view class="target_dianLiang">{{targetName}}</view>
  15. </view>
  16. <view class="target">
  17. <view style="font-size: 16px;margin-top: -7px;">数值</view>
  18. <view class="target_count">{{ targetdetail.targetdetail_target }}</view>
  19. </view>
  20. <view class="target">
  21. <view style="font-size: 16px;margin-top: -7px;">单位</view>
  22. <view class="target_danWei">{{targetUnit}}</view>
  23. </view>
  24. </view>
  25. <view class="qiun-charts">
  26. <view class="speedPowerDiagram">24小时指标曲线图</view>
  27. <canvas canvas-id="canvasLineA" id="canvasLineA" class="charts" @touchstart="touchLineA"></canvas>
  28. </view>
  29. <view class="qiun-columnCharts">
  30. <view class="sevenDayColunm">7天指标柱状图</view>
  31. <canvas canvas-id="canvasColumn" id="canvasColumn" class="charts" @touchstart="touchColumn"></canvas>
  32. </view>
  33. </view>
  34. </template>
  35. <script>
  36. import uCharts from '../../components/tools/u-charts/u-charts.js';
  37. import res from '../../common/data.json';
  38. var _self;
  39. var canvaLineA;
  40. var canvaColumn = null;
  41. export default {
  42. data() {
  43. let data = {
  44. targetName:"日发电量",
  45. targetUnit:"万kwh",
  46. pointKey:"HB_GD_KBF_JS_P4_L19_220_CI0136",
  47. targetdetail_visable: { targetdetail_target: true, targetdetail_curve: true, targetdetail_histogram: true},
  48. targetdetail: { targetdetail_target: '', targetdetail_curve: '', targetdetail_histogram: ''},
  49. socketTask_targetdetail_target:"",
  50. socketTask_targetdetail_curve:"",
  51. socketTask_targetdetail_histogram:"",
  52. cWidth: '',
  53. cHeight: '',
  54. pixelRatio: 1,
  55. serverData: '',
  56. address: '',
  57. }
  58. return data;
  59. },
  60. created: function() {
  61. this.address = this.getWindPowerStationNameToSessionStorage();
  62. this.windPowerStationId = uni.getStorageSync('windPowerStationId');
  63. this.targetdetail_target();
  64. this.targetdetail_curve();
  65. this.targetdetail_histogram();
  66. },
  67. onShow() {
  68. this.windPowerStationId = uni.getStorageSync('windPowerStationId');
  69. this.address = this.getWindPowerStationNameToSessionStorage();
  70. this.hideModals();
  71. },
  72. onLoad() {
  73. _self = this;
  74. this.cWidth = uni.upx2px(750);
  75. this.cHeight = uni.upx2px(400);
  76. this.getColumnServerData();
  77. this.getLineServerData();
  78. },
  79. onReady() {},
  80. computed:{
  81. backStageIp:function(){
  82. return this.$store.state.wholeSituationBackStageIp;
  83. }, backStagePort:function(){
  84. return this.$store.state.wholeSituationBackStagePort;
  85. },windpowerstationNameToId:function(){
  86. return this.$store.state.windpowerstationNameToId;
  87. }
  88. },
  89. methods: {
  90. targetInformation(pointKey,callTargetName,callTargetUnit){
  91. this.address = this.getWindPowerStationNameToSessionStorage();
  92. this.windPowerStationId = uni.getStorageSync('windPowerStationId');
  93. this.pointKey = pointKey;
  94. this.targetName = callTargetName;
  95. this.targetUnit = callTargetUnit;
  96. this.targetdetail_target();
  97. this.targetdetail_curve();
  98. this.targetdetail_histogram();
  99. },async targetdetail_target() {
  100. let ip;
  101. uni.request({
  102. url:'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/targetdetail_target?pointKey='+this.pointKey,
  103. success: (res) => {
  104. ip = res.data;
  105. }
  106. });
  107. let _this = this;
  108. // 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
  109. this.socketTask_targetdetail_target = uni.connectSocket({
  110. // 【非常重要】必须确保你的服务器是成功的,如果是手机测试千万别使用ws://127.0.0.1:9099【特别容易犯的错误】
  111. url: 'ws://'+this.backStageIp+':'+this.backStagePort+'/websocket/pageNumber_8/functionNumber_1',
  112. success(data) {
  113. console.log('websocket连接成功');
  114. }
  115. });
  116. // 消息的发送和接收必须在正常连接打开中,才能发送或接收【否则会失败】
  117. this.socketTask_targetdetail_target.onOpen(res => {
  118. console.log('WebSocket连接正常打开中...!');
  119. this.is_open_socket = true;
  120. // 注:只有连接正常打开中 ,才能正常收到消息
  121. this.socketTask_targetdetail_target.onMessage(res => {
  122. //console.log("收到服务器内容:" + res.data);
  123. _this.targetdetail.targetdetail_target =JSON.parse(res.data)[ip];
  124. //console.log(_this.targetdetail.targetdetail_target);
  125. });
  126. });
  127. // 这里仅是事件监听【如果socket关闭了会执行】
  128. this.socketTask_targetdetail_target.onClose(() => {
  129. uni.request({
  130. url: 'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/close_targetdetail_target?pointKey='+this.pointKey,
  131. success: (res) => {
  132. }
  133. });
  134. })
  135. },
  136. targetdetail_curve() {
  137. let ip;
  138. uni.request({
  139. url: 'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/targetdetail_curve?pointKey='+this.pointKey,
  140. success: (res) => {
  141. ip = res.data;
  142. }
  143. });
  144. let _this = this;
  145. // 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
  146. this.socketTask_targetdetail_curve = uni.connectSocket({
  147. // 【非常重要】必须确保你的服务器是成功的,如果是手机测试千万别使用ws://127.0.0.1:9099【特别容易犯的错误】
  148. url: 'ws://'+this.backStageIp+':'+this.backStagePort+'/websocket/pageNumber_8/functionNumber_2',
  149. success(data) {
  150. console.log('websocket连接成功');
  151. }
  152. });
  153. // 消息的发送和接收必须在正常连接打开中,才能发送或接收【否则会失败】
  154. this.socketTask_targetdetail_curve.onOpen(res => {
  155. console.log('WebSocket连接正常打开中...!');
  156. this.is_open_socket = true;
  157. // 注:只有连接正常打开中 ,才能正常收到消息
  158. this.socketTask_targetdetail_curve.onMessage(res => {
  159. //console.log("收到服务器内容:" + res.data);
  160. _this.targetdetail.targetdetail_curve = JSON.parse(res.data)[ip];
  161. let LineA = {
  162. categories: [
  163. '17:26',
  164. '18:56',
  165. '19:56',
  166. '20:56',
  167. '21:56',
  168. '22:56',
  169. '23:56',
  170. '00:56',
  171. '01:56',
  172. '02:56',
  173. '03:56',
  174. '04:56',
  175. '05:56',
  176. '06:56',
  177. '07:56',
  178. '08:56',
  179. '09:56',
  180. '10:56',
  181. '11:56',
  182. '12:56',
  183. '13:56',
  184. '14:56',
  185. '15:56',
  186. '16:56',
  187. '17:56 '
  188. ],
  189. series: [
  190. {
  191. name: '功率',
  192. data: [17, 21, 19, 22, 20.2, 19.1, 22.4, 23.8, 21.5, 22.9, 19.2, 22.4, 18.7, 22.1, 21.4, 22.7, 18.4, 18.4, 21.8, 22.5, 22.9, 19.8, 22.7, 23, 22.8],
  193. color: '#4A80B1',
  194. textColor: '#FFFFFF',
  195. textSize: this.seriesTextSize,
  196. format: val => {
  197. return val + 'kwh';
  198. },
  199. index: 0,
  200. legendShape: 'circle'
  201. }
  202. ]
  203. };
  204. LineA.categories=[];
  205. LineA.series[0].data=[];
  206. LineA.series[0].name=this.targetName;
  207. for(var i=0;i<_this.targetdetail.targetdetail_curve.length;i++){
  208. _this.targetdetail.targetdetail_curve[i].pointTime = new Date(_this.targetdetail.targetdetail_curve[i].pointTime*1000).Format("MM/dd");
  209. LineA.categories.push(_this.targetdetail.targetdetail_curve[i].pointTime);
  210. LineA.series[0].data.push(_this.targetdetail.targetdetail_curve[i].pointValueInDouble);
  211. }
  212. this.showLineA('canvasLineA', LineA);
  213. });
  214. });
  215. // 这里仅是事件监听【如果socket关闭了会执行】
  216. this.socketTask_targetdetail_curve.onClose(() => {
  217. uni.request({
  218. url: 'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/close_targetdetail_curve?pointKey='+this.pointKey,
  219. success: (res) => {
  220. }
  221. });
  222. })
  223. },
  224. targetdetail_histogram() {
  225. Date.prototype.Format = function(fmt) {
  226. var o = {
  227. "M+": this.getMonth() + 1, //月份
  228. "d+": this.getDate(), //日
  229. "h+": this.getHours(), //小时
  230. "m+": this.getMinutes(), //分
  231. "s+": this.getSeconds(), //秒
  232. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  233. "S": this.getMilliseconds() //毫秒
  234. };
  235. if(/(y+)/.test(fmt))
  236. fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  237. for(var k in o)
  238. if(new RegExp("(" + k + ")").test(fmt))
  239. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  240. return fmt;
  241. };
  242. let ip;
  243. uni.request({
  244. url: 'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/targetdetail_histogram?pointKey='+this.pointKey,
  245. success: (res) => {
  246. ip = res.data;
  247. }
  248. });
  249. let _this = this;
  250. // 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
  251. this.socketTask_targetdetail_histogram = uni.connectSocket({
  252. // 【非常重要】必须确保你的服务器是成功的,如果是手机测试千万别使用ws://127.0.0.1:9099【特别容易犯的错误】
  253. url: 'ws://'+this.backStageIp+':'+this.backStagePort+'/websocket/pageNumber_8/functionNumber_3',
  254. success(data) {
  255. console.log('websocket连接成功');
  256. }
  257. });
  258. // 消息的发送和接收必须在正常连接打开中,才能发送或接收【否则会失败】
  259. this.socketTask_targetdetail_histogram.onOpen(res => {
  260. console.log('WebSocket连接正常打开中...!');
  261. this.is_open_socket = true;
  262. // 注:只有连接正常打开中 ,才能正常收到消息
  263. this.socketTask_targetdetail_histogram.onMessage(res => {
  264. //console.log("收到服务器内容:" + res.data);
  265. _this.targetdetail.targetdetail_histogram = JSON.parse(res.data)[ip];
  266. let Column = {
  267. "categories": ["04/11","04/12", "04/13", "04/14", "04/15", "04/16", "04/17"],
  268. "series": [{
  269. "name": "发电量",
  270. "data": [],
  271. "color": "#29C35A"
  272. }]
  273. };
  274. Column.categories=[];
  275. Column.series[0].data=[];
  276. Column.series[0].name=this.targetName;
  277. for(var i=0;i<_this.targetdetail.targetdetail_histogram.length;i++){
  278. _this.targetdetail.targetdetail_histogram[i].pointTime = new Date(_this.targetdetail.targetdetail_histogram[i].pointTime*1000).Format("MM/dd");
  279. Column.categories.push(_this.targetdetail.targetdetail_histogram[i].pointTime);
  280. Column.series[0].data.push(_this.targetdetail.targetdetail_histogram[i].pointValueInDouble);
  281. }
  282. //这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
  283. _self.showColumn('canvasColumn', Column);
  284. });
  285. });
  286. // 这里仅是事件监听【如果socket关闭了会执行】
  287. this.socketTask_targetdetail_histogram.onClose(() => {
  288. uni.request({
  289. url: 'http://'+this.backStageIp+':'+this.backStagePort+'/targetdetail/close_targetdetail_histogram?pointKey='+this.pointKey,
  290. success: (res) => {
  291. }
  292. });
  293. });
  294. },pushWindPowerStationNameToSessionStorage(windpowerstationName) {
  295. uni.setStorageSync('windpowerstationName', windpowerstationName);
  296. //sessionStorage.setItem('windpowerstationName', windpowerstationName);
  297. //alert("v"+ sessionStorage.getItem("windpowerstationName"));
  298. //this.common.goback('/pages/index/Index');
  299. },
  300. getWindPowerStationNameToSessionStorage() {
  301. uni.getStorageSync('windpowerstationName');
  302. return uni.getStorageSync('windpowerstationName');
  303. },
  304. getLineServerData() {
  305. // 折线图
  306. let LineA = {
  307. categories: [
  308. '17:26',
  309. '18:56',
  310. '19:56',
  311. '20:56',
  312. '21:56',
  313. '22:56',
  314. '23:56',
  315. '00:56',
  316. '01:56',
  317. '02:56',
  318. '03:56',
  319. '04:56',
  320. '05:56',
  321. '06:56',
  322. '07:56',
  323. '08:56',
  324. '09:56',
  325. '10:56',
  326. '11:56',
  327. '12:56',
  328. '13:56',
  329. '14:56',
  330. '15:56',
  331. '16:56',
  332. '17:56 '
  333. ],
  334. series: [
  335. {
  336. name: '功率',
  337. data: [17, 21, 19, 22, 20.2, 19.1, 22.4, 23.8, 21.5, 22.9, 19.2, 22.4, 18.7, 22.1, 21.4, 22.7, 18.4, 18.4, 21.8, 22.5, 22.9, 19.8, 22.7, 23, 22.8],
  338. color: '#4A80B1',
  339. textColor: '#FFFFFF',
  340. textSize: this.seriesTextSize,
  341. format: val => {
  342. return val + 'kwh';
  343. },
  344. index: 0,
  345. legendShape: 'circle'
  346. }
  347. ]
  348. };
  349. this.showLineA('canvasLineA', LineA);
  350. },
  351. showLineA(canvasId, chartData) {
  352. canvaLineA = new uCharts({
  353. $this: _self,
  354. canvasId: canvasId,
  355. type: 'line',
  356. fontSize: 11,
  357. legend: {
  358. show: true,
  359. position: 'top',
  360. float: 'right',
  361. fontColor: 'silver',
  362. itemGap: '4'
  363. },
  364. dataLabel: false,
  365. dataPointShape: false,
  366. background: '#FFFFFF',
  367. pixelRatio: _self.pixelRatio,
  368. categories: chartData.categories,
  369. series: chartData.series,
  370. animation: true,
  371. xAxis: {
  372. type: 'grid',
  373. gridColor: 'silver',
  374. fontColor: 'silver',
  375. gridType: 'solid',
  376. gridColor: '#2E2E2E',
  377. axisLineColor: '#2E2E2E',
  378. labelCount: '3'
  379. // itemCount:"3"
  380. },
  381. yAxis: {
  382. data: [
  383. {
  384. type: 'value',
  385. fontColor: 'silver',
  386. disabled: false, //y轴轴线
  387. min: 0,
  388. max: 40,
  389. position: 'left',
  390. axisLineColor: '#2E2E2E',
  391. title: ' 功率:(kw/h)',
  392. titleFontColor: 'silver'
  393. },
  394. {
  395. fontColor: 'silver',
  396. disabled: false, //y轴轴线
  397. min: 0,
  398. max: 40,
  399. position: 'right',
  400. axisLineColor: '#2E2E2E',
  401. title: '功率:(kwh)',
  402. titleFontColor: 'silver'
  403. }
  404. ],
  405. gridColor: '#2E2E2E',
  406. splitNumber: 4,
  407. gridType: 'solid',
  408. dashLength: 8,
  409. showTitle: 'true',
  410. format: val => {
  411. return val.toFixed(0) + '元';
  412. }
  413. },
  414. width: _self.cWidth * _self.pixelRatio,
  415. height: _self.cHeight * _self.pixelRatio,
  416. extra: {
  417. line: {
  418. type: 'line',
  419. width: '1'
  420. }
  421. }
  422. });
  423. },
  424. touchLineA(e) {
  425. canvaLineA.showToolTip(e, {
  426. format: function(item, category) {
  427. return category + ' ' + item.name + ':' + item.data;
  428. }
  429. });
  430. },
  431. moveLineA(e) {
  432. canvaLineA.scroll(e);
  433. },
  434. getColumnServerData() {
  435. let Column = {
  436. "categories": [],
  437. "series": [{
  438. "name": "发电量",
  439. "data": [],
  440. "color": "#29C35A"
  441. }]
  442. };
  443. //这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
  444. _self.showColumn('canvasColumn', Column);
  445. },
  446. showColumn(canvasId, chartData) {
  447. canvaColumn = new uCharts({
  448. $this: _self,
  449. canvasId: canvasId,
  450. type: 'column',
  451. legend: {
  452. show: true,
  453. fontSize: 12,
  454. padding: 5,
  455. fontColor: 'silver',
  456. itemGap: '4',
  457. // margin:0,
  458. position: 'top',
  459. float: 'right'
  460. },
  461. fontSize: 11,
  462. background: '#242424',
  463. pixelRatio: _self.pixelRatio,
  464. animation: true,
  465. categories: chartData.categories,
  466. series: chartData.series,
  467. xAxis: {
  468. // disabled:true,
  469. rotateLabel: true,
  470. disableGrid: true,
  471. axisLineColor: '#2D2D2D',
  472. fontColor: '#ffffff'
  473. // gridColor:'#2D2D2D',
  474. },
  475. yAxis: {
  476. showTitle: true,
  477. // disableGrid:true,
  478. gridType: 'solid',
  479. dashLength: 8,
  480. gridColor: '#2D2D2D',
  481. splitNumber: 5,
  482. min: 0,
  483. max: 40,
  484. data: [
  485. {
  486. min: 0,
  487. max: 40,
  488. position: 'left',
  489. axisLine: false,
  490. fontColor: 'silver',
  491. // title: '7天功率柱状图',
  492. title: ' 功率:(kw/h)',
  493. titleFontColor: 'silver',
  494. // title: '功率(kw/h)',
  495. // titleFontColor: '#FFFFFF',
  496. titleFontSize: 11,
  497. format: val => {
  498. return val.toFixed(0) + '';
  499. }
  500. }
  501. ]
  502. },
  503. dataLabel: true,
  504. width: _self.cWidth * _self.pixelRatio,
  505. height: _self.cHeight * _self.pixelRatio,
  506. extra: {
  507. column: {
  508. type: 'group',
  509. // width: _self.cWidth * _self.pixelRatio * 0.45 / chartData.categories.length
  510. width: 12,
  511. lineStyle: {
  512. width: 5
  513. }
  514. }
  515. }
  516. });
  517. },
  518. goToIndex() {
  519. uni.switchTab({
  520. url: '/pages/index/Index'
  521. });
  522. },
  523. touchColumn(e) {
  524. canvaColumn.showToolTip(e, {
  525. format: function(item, category) {
  526. if (typeof item.data === 'object') {
  527. return category + ' ' + item.name + ':' + item.data.value;
  528. } else {
  529. return category + ' ' + item.name + ':' + item.data;
  530. }
  531. }
  532. });
  533. }
  534. }
  535. };
  536. </script>
  537. <style>
  538. @font-face {
  539. font-family: '方正兰亭细黑_GBK';
  540. src: url(../../static/方正兰亭细黑_GBK.TTF);
  541. }
  542. page {
  543. /* background-color: #FFFFFF; */
  544. font-family: '方正兰亭细黑_GBK';
  545. background-color: #1f1f1f;
  546. color: silver;
  547. font-size: 14px;
  548. }
  549. body {
  550. background: #1f1f1f;
  551. font-family: '方正兰亭细黑_GBK';
  552. font-size: 14px;
  553. color: silver;
  554. }
  555. .addressName {
  556. /* width: 100%; */
  557. /* background-color: white; */
  558. /* width: 126px; */
  559. height: 80rpx;
  560. line-height: 80rpx;
  561. margin-left: 40%;
  562. color: silver;
  563. font-size: 18px;
  564. }
  565. .target_dianLiang {
  566. margin-top: 15px;
  567. font-size: 16px;
  568. font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', STHeiti, 'Microsoft Yahei', Tahoma, Simsun, sans-serif;
  569. }
  570. .target_count {
  571. margin-top: 15px;
  572. font-size: 16px;
  573. font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', STHeiti, 'Microsoft Yahei', Tahoma, Simsun, sans-serif;
  574. }
  575. .target_danWei {
  576. margin-top: 15px;
  577. font-size: 16px;
  578. font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', STHeiti, 'Microsoft Yahei', Tahoma, Simsun, sans-serif;
  579. }
  580. .threeTarget {
  581. width: 100%;
  582. height: 120px;
  583. background-color: #242424;
  584. display: -webkit-flex;
  585. display: flex;
  586. justify-content: space-around;
  587. float: left;
  588. }
  589. .target {
  590. width: 28%;
  591. height: 78px;
  592. background: -webkit-linear-gradient(top, rgba(159, 131, 111, 0.1) 0%, rgba(193, 94, 21, 0.2) 100%);
  593. border-radius: 5px;
  594. float: left;
  595. margin-top: 20px;
  596. text-align: center;
  597. color: silver;
  598. padding-top: 20px;
  599. font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', STHeiti, 'Microsoft Yahei', Tahoma, Simsun, sans-serif;
  600. }
  601. .target_zi {
  602. font-size: 16px;
  603. text-align: center;
  604. margin-top: -7px;
  605. }
  606. .speedPowerDiagram {
  607. width: 100px;
  608. height: 30px;
  609. user-select: text;
  610. -webkit-user-select: text;
  611. -moz-user-select: text;
  612. -ms-user-select: text;
  613. color: silver;
  614. float: left;
  615. margin-top: 18px;
  616. margin-left: 9px;
  617. font-size: 11px;
  618. }
  619. .qiun-charts {
  620. width: 750upx;
  621. height: 400upx;
  622. margin-top: 140px;
  623. background-color: #242424;
  624. }
  625. .charts {
  626. width: 750upx;
  627. height: 400upx;
  628. }
  629. .qiun-columnCharts {
  630. width: 750upx;
  631. height: 400upx;
  632. margin-top: 20px;
  633. background-color: #242424;
  634. }
  635. .sevenDayColunm {
  636. width: 100px;
  637. height: 30px;
  638. user-select: text;
  639. -webkit-user-select: text;
  640. -moz-user-select: text;
  641. -ms-user-select: text;
  642. color: silver;
  643. float: left;
  644. margin-top: 18px;
  645. margin-left: 10px;
  646. font-size: 11px;
  647. }
  648. </style>