index.vue 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426
  1. <template>
  2. <view>
  3. <uni-collapse class="uni-flex">
  4. <uni-collapse-item title="常用操作">
  5. <uni-grid :column="4" :square="false" :highlight="false">
  6. <uni-grid-item>
  7. <view class="grid-item-box pointer" @click="toSign1">
  8. <image class="img" mode="aspectFit" src="/static/icon/qianzhengshenqing.svg" ></image>
  9. <text class="text">签证申请单</text>
  10. </view>
  11. </uni-grid-item>
  12. <uni-grid-item>
  13. <view class="grid-item-box pointer" @click="toSign2">
  14. <image class="img" mode="aspectFit" src="/static/icon/qianzheng.svg" ></image>
  15. <text class="text">待审签证单</text>
  16. </view>
  17. </uni-grid-item>
  18. <uni-grid-item>
  19. <navigator url="../template/GetMaterialIns/GetMaterialIns">
  20. <view class="grid-item-box pointer">
  21. <image class="img" mode="aspectFit" src="/static/icon/in.svg" ></image>
  22. <text class="text">入库单</text>
  23. </view>
  24. </navigator>
  25. </uni-grid-item>
  26. <uni-grid-item>
  27. <view class="grid-item-box pointer" @click="selectProject">
  28. <image class="img" mode="aspectFit" src="/static/icon/select.svg" />
  29. <text class="text">选择项目</text>
  30. </view>
  31. </uni-grid-item>
  32. </uni-grid>
  33. <uni-grid :column="4" :square="false" :highlight="false">
  34. <uni-grid-item>
  35. <navigator url="../template/GetMaterialOuts/GetMaterialOuts">
  36. <view class="grid-item-box pointer">
  37. <image class="img" mode="aspectFit" src="/static/icon/lingliao.svg" />
  38. <text class="text">领料单</text>
  39. </view>
  40. </navigator>
  41. </uni-grid-item>
  42. <uni-grid-item>
  43. <navigator url="../template/GetSafeQualityCheckDTOs/GetSafeQualityCheckDTOs?type=0">
  44. <view class="grid-item-box pointer">
  45. <image class="img" mode="aspectFit" src="/static/icon/quality.svg" />
  46. <text class="text">质量检查</text>
  47. </view>
  48. </navigator>
  49. </uni-grid-item>
  50. <uni-grid-item>
  51. <navigator url="../template/GetSafeQualityCheckDTOs/GetSafeQualityCheckDTOs?type=1">
  52. <view class="grid-item-box pointer">
  53. <image class="img" mode="aspectFit" src="/static/icon/safe.svg" />
  54. <text class="text">安全检查</text>
  55. </view>
  56. </navigator>
  57. </uni-grid-item>
  58. <uni-grid-item>
  59. <navigator url="../template/GetPmProgressDTOs/GetPmProgressDTOs">
  60. <view class="grid-item-box pointer">
  61. <image class="img" mode="aspectFit" src="/static/icon/progress.svg" />
  62. <text class="text">进度填报</text>
  63. </view>
  64. </navigator>
  65. </uni-grid-item>
  66. </uni-grid>
  67. <uni-grid :column="4" :square="false" :highlight="false">
  68. <uni-grid-item>
  69. <navigator url="../template/GetSafeQualityCheckDTOs/GetSafeQualityCheckDTOs?type=2">
  70. <view class="grid-item-box pointer">
  71. <image class="img" mode="aspectFit" src="/static/icon/material.svg" />
  72. <text class="text">材料检查</text>
  73. </view>
  74. </navigator>
  75. </uni-grid-item>
  76. <uni-grid-item>
  77. <navigator url="/pages/template/requisitionlist/requisitionlist?type=1">
  78. <view class="grid-item-box pointer">
  79. <image class="img" mode="aspectFit" src="/static/icon/change.svg" />
  80. <text class="text">变更申请单</text>
  81. </view>
  82. </navigator>
  83. </uni-grid-item>
  84. <uni-grid-item>
  85. <navigator url="../template/GetDesignChangesList/GetDesignChangesList">
  86. <view class="grid-item-box pointer">
  87. <image class="img" mode="aspectFit" src="/static/icon/audit.svg" />
  88. <text class="text">待审变更</text>
  89. </view>
  90. </navigator>
  91. </uni-grid-item>
  92. <uni-grid-item>
  93. <view class="grid-item-box pointer" @click="logout">
  94. <image class="img" mode="aspectFit" src="/static/icon/logout.svg" />
  95. <text class="text">登出</text>
  96. </view>
  97. </uni-grid-item>
  98. </uni-grid>
  99. </uni-collapse-item>
  100. </uni-collapse>
  101. <view class="qiun-columns">
  102. <view class="qiun-padding" style="font-size: 32rpx;">
  103. <text>{{tips}}</text>
  104. </view>
  105. <view v-for="(item2,index2) in talk">
  106. <view class="qiun-bg-white qiun-title-bar qiun-common-mt">
  107. <view class="qiun-title-dot-light">
  108. <i class="fa fa-minus marginRight" aria-hidden="true" ref='qi_title' v-if="item2.isCollapse" @click='collapse(item2,index2)'></i>
  109. <i class="fa fa-plus marginRight" aria-hidden="true" ref='qi_title' v-else @click='collapse(item2,index2)'></i>
  110. 项目({{item2.progressName}})进度图</view>
  111. </view>
  112. <view class="line"></view>
  113. <view ref='qi_content' class="space" v-show="item2.isCollapse">
  114. <!-- 工作项开始///////////////////////////////// -->
  115. <view v-for="(item,index) in item2.progressList" :key="index">
  116. <view class="space height30">
  117. <!-- 折叠标记 -->
  118. <i class="fa fa-minus marginRight" aria-hidden="true" ref='qi_title' v-if="item.isCollapse" @click='collapse1(item2,index2,item,index)'></i>
  119. <i class="fa fa-plus marginRight" aria-hidden="true" ref='qi_title' v-else @click='collapse1(item2,index2,item,index)'></i>
  120. <!-- 圆点标记 -->
  121. <i class="fa fa-circle red marginRight" aria-hidden="true" v-if="item.alertState==3" title="未按期完成"></i>
  122. <i class="fa fa-circle orange marginRight" aria-hidden="true" title="即将到期预警" v-else-if="item.alertState==2"></i>
  123. <i class="fa fa-circle green marginRight" aria-hidden="true" title="正常" v-else></i>
  124. {{item.nodeName}}
  125. <i class="fa fa-flag marginLeft red" aria-hidden="true" v-if="item.isCompanyKey==1" title="集团关键节点"></i>
  126. </view>
  127. <view class="space" v-show="item.isCollapse">
  128. <view class="line" ></view>
  129. <view class="height30">{{item.plannedStartDate}}--{{item.plannedFinishDate}} 工期:{{item.duration}}</view>
  130. <view class="height30 progress-box">
  131. <progress :percent="item.completePercent" show-info stroke-width="3" />
  132. </view>
  133. <view class="height30">{{item.status==1?'进行中':item.status==4?'已完成':'未开始'}}
  134. <navigator :url="'../template/GetpmProgressReportDTOs/GetpmProgressReportDTOs?progressNodeId='+item.progressNodeId" class="blue right">看进度报告</navigator>
  135. </view>
  136. </view>
  137. <view class="line"></view>
  138. </view>
  139. <!-- 工作项结束///////////////////////////////// -->
  140. </view>
  141. </view>
  142. <view class="qiun-title-bar" style="background-color: #E5FDC3;">
  143. <view class="qiun-title-dot-light">质量图</view>
  144. </view>
  145. <view class="qiun-charts" style="background-color: #E5FDC3;">
  146. <!--#ifdef MP-ALIPAY -->
  147. <canvas canvas-id="canvasColumn" id="canvasColumn" class="charts" style="background-color: #E5FDC3;" :width="cWidth*pixelRatio"
  148. :height="cHeight*pixelRatio" :style="{'width':cWidth+'px','height':cHeight+'px'}" @touchstart="touchIt($event,'canvasColumn')"></canvas>
  149. <!--#endif-->
  150. <!--#ifndef MP-ALIPAY -->
  151. <canvas canvas-id="canvasColumn" id="canvasColumn" class="charts" style="background-color: #E5FDC3;" @touchstart="touchIt($event,'canvasColumn')"></canvas>
  152. <!--#endif-->
  153. </view>
  154. <view class="qiun-bg-white qiun-title-bar qiun-common-mt">
  155. <view class="qiun-title-dot-light">安全图</view>
  156. </view>
  157. <view class="qiun-charts">
  158. <!--#ifdef MP-ALIPAY -->
  159. <canvas canvas-id="canvasMix" id="canvasMix" class="charts" :width="cWidth*pixelRatio" :height="cHeight*pixelRatio"
  160. :style="{'width':cWidth+'px','height':cHeight+'px'}" disable-scroll=true @touchstart="touchMix" @touchmove="moveMix"
  161. @touchend="touchEndMix"></canvas>
  162. <!--#endif-->
  163. <!--#ifndef MP-ALIPAY -->
  164. <canvas canvas-id="canvasMix" id="canvasMix" class="charts" disable-scroll=true @touchstart="touchMix" @touchmove="moveMix"
  165. @touchend="touchEndMix"></canvas>
  166. <!--#endif-->
  167. </view>
  168. </view>
  169. <page-foot :isShow="true" :showIndex="0"></page-foot>
  170. </view>
  171. </template>
  172. <script>
  173. import uCharts from '@/components/u-charts/u-charts.js';
  174. import {
  175. GetPmProgressItemAndReports
  176. } from "@/common/api/ProgressApi.js";
  177. import {
  178. showImage
  179. } from "@/common/api/commonApi.js";
  180. var startX, startY;
  181. var endPos = {},
  182. isScrolling;
  183. var _self;
  184. var canvasObj = {};
  185. export default {
  186. data() {
  187. return {
  188. href: '',
  189. state: this.$store.state,
  190. cWidth: '',
  191. cHeight: '',
  192. cWidth2: '', //横屏图表
  193. cHeight2: '', //横屏图表
  194. cWidth3: '', //圆弧进度图
  195. cHeight3: '', //圆弧进度图
  196. arcbarWidth: '', //圆弧进度图,进度条宽度,此设置可使各端宽度一致
  197. gaugeWidth: '', //仪表盘宽度,此设置可使各端宽度一致
  198. tips: '',
  199. pixelRatio: 1,
  200. serverData: '',
  201. itemCount: 30, //x轴单屏数据密度
  202. sliderMax: 50,
  203. //进度图表
  204. talk: []
  205. }
  206. },
  207. onLoad() {
  208. console.info("首页1");
  209. //判断登录是否超时,若超时,则跳转到登录界面
  210. this.$util.persistLogin(this);
  211. _self = this;
  212. //#ifdef MP-ALIPAY
  213. uni.getSystemInfo({
  214. success: function(res) {
  215. if (res.pixelRatio > 1) {
  216. //正常这里给2就行,如果pixelRatio=3性能会降低一点
  217. //_self.pixelRatio =res.pixelRatio;
  218. _self.pixelRatio = 2;
  219. }
  220. }
  221. });
  222. //#endif
  223. this.cWidth = uni.upx2px(750);
  224. this.cHeight = uni.upx2px(500);
  225. this.cWidth2 = uni.upx2px(700);
  226. this.cHeight2 = uni.upx2px(1100);
  227. this.cWidth3 = uni.upx2px(250);
  228. this.cHeight3 = uni.upx2px(250);
  229. this.arcbarWidth = uni.upx2px(24);
  230. this.gaugeWidth = uni.upx2px(30);
  231. },
  232. onReady() {
  233. this.getServerData();
  234. },
  235. created() {
  236. this.getList();
  237. },
  238. methods: {
  239. toSign1() {
  240. uni.navigateTo({
  241. url: '/pages/template/requisitionlist/requisitionlist?type=0'
  242. });
  243. },
  244. toSign2() {
  245. uni.navigateTo({
  246. url: '/pages/template/GetVises/GetVises'
  247. });
  248. },
  249. preventhuadong() {
  250. },
  251. getList() {
  252. let _this = this;
  253. let projectCode = _this.$util.getState(_this, 'projectCode');
  254. let userCode=_this.$util.getState(_this, 'userCode');
  255. GetPmProgressItemAndReports(projectCode,userCode).then(res => {
  256. console.info('GetPmProgressItemAndReports', res);
  257. if (res) {
  258. if (res.length > 0) {
  259. res.forEach(function(item, index, arr) {
  260. _this.talk.push(item);
  261. });
  262. console.info('talk', _this.talk);
  263. //console.info('talk1',_this.talk.progressList.length);
  264. }
  265. }
  266. });
  267. },
  268. collapse(item2,index2){ /* 折叠或展开*/
  269. console.info('collapse');
  270. let that=this;
  271. if(item2.isCollapse){
  272. item2.isCollapse=false;
  273. }
  274. else{
  275. item2.isCollapse=true;
  276. }
  277. console.info(item2);
  278. that.$set(that.talk,index2,item2);
  279. // let talk=this.talk;
  280. // talk.forEach(function(item,index,array){
  281. // that.$set(that.talk,index,item);
  282. // });
  283. },
  284. collapse1(item2,index2,item,index){
  285. console.info('collapse1');
  286. let that=this;
  287. if(item.isCollapse){
  288. item.isCollapse=false;
  289. }
  290. else{
  291. item.isCollapse=true;
  292. }
  293. console.info(item2);
  294. that.$set(that.talk,index2,item2);
  295. },
  296. logout() {
  297. console.info("logout");
  298. this.$store.commit('setIsLogin', false);
  299. this.$store.commit('setUser', null);
  300. this.$store.commit('setToken', '');
  301. this.$store.commit('setName', '');
  302. this.$store.commit('setRoles', '');
  303. uni.navigateTo({
  304. url: "/"
  305. });
  306. },
  307. /* 选择项目 */
  308. selectProject() {
  309. uni.navigateTo({
  310. url: '/pages/SelectProject/SelectProject'
  311. });
  312. },
  313. /* 图表 start*/
  314. getServerData() {
  315. uni.showLoading({
  316. title: "正在加载数据..."
  317. })
  318. uni.request({
  319. url: 'https://unidemo.dcloud.net.cn/hello-uniapp-ucharts-data.json',
  320. data: {},
  321. success: function(res) {
  322. _self.fillData(res.data);
  323. },
  324. fail: () => {
  325. _self.tips = "网络错误,小程序端请检查合法域名";
  326. },
  327. complete() {
  328. uni.hideLoading();
  329. }
  330. });
  331. },
  332. fillData(data) {
  333. this.serverData = data;
  334. this.tips = data.tips;
  335. this.sliderMax = data.Candle.categories.length;
  336. let Column = {
  337. categories: [],
  338. series: []
  339. };
  340. let ColumnMeter = {
  341. categories: [],
  342. series: []
  343. };
  344. let LineA = {
  345. categories: [],
  346. series: []
  347. };
  348. let LineB = {
  349. categories: [],
  350. series: []
  351. };
  352. let Area = {
  353. categories: [],
  354. series: []
  355. };
  356. let Pie = {
  357. series: []
  358. };
  359. let Ring = {
  360. series: []
  361. };
  362. let Funnel = {
  363. series: []
  364. };
  365. let Radar = {
  366. categories: [],
  367. series: []
  368. };
  369. let Arcbar1 = {
  370. series: []
  371. };
  372. let Arcbar2 = {
  373. series: []
  374. };
  375. let Arcbar3 = {
  376. series: []
  377. };
  378. let Gauge = {
  379. categories: [],
  380. series: []
  381. };
  382. let Candle = {
  383. categories: [],
  384. series: []
  385. };
  386. let Mix = {
  387. categories: [],
  388. series: []
  389. };
  390. //这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
  391. Column.categories = data.Column.categories;
  392. //这里的series数据是后台做好的,如果您的数据没有和前面我注释掉的格式一样,请自行拼接数据
  393. Column.series = data.Column.series;
  394. ColumnMeter.categories = data.ColumnMeter.categories;
  395. //这里的series数据,如果为Meter,series[0]定义为外层数据,series[1]定义为内层数据
  396. ColumnMeter.series = data.ColumnMeter.series;
  397. LineA.categories = data.LineA.categories;
  398. LineA.series = data.LineA.series;
  399. LineB.categories = data.LineB.categories;
  400. LineB.series = data.LineB.series;
  401. Area.categories = data.Area.categories;
  402. Area.series = data.Area.series;
  403. Pie.series = data.Pie.series;
  404. Ring.series = data.Ring.series;
  405. Funnel.series = data.Pie.series;
  406. //自定义文案示例,需设置format字段
  407. for (let i = 0; i < Ring.series.length; i++) {
  408. Ring.series[i].format = () => {
  409. return Ring.series[i].name + Ring.series[i].data
  410. };
  411. }
  412. Radar.categories = data.Radar.categories;
  413. Radar.series = data.Radar.series;
  414. Arcbar1.series = data.Arcbar1.series;
  415. Arcbar2.series = data.Arcbar2.series;
  416. Arcbar3.series = data.Arcbar3.series;
  417. Gauge.categories = data.Gauge.categories;
  418. Gauge.series = data.Gauge.series;
  419. Candle.categories = data.Candle.categories;
  420. Candle.series = data.Candle.series;
  421. Mix.categories = data.Mix.categories;
  422. Mix.series = data.Mix.series;
  423. this.showColumn("canvasColumn", Column);
  424. this.showColumnMeter("canvasColumnMeter", ColumnMeter);
  425. this.showLineA("canvasLineA", LineA);
  426. this.showLineB("canvasLineB", LineB);
  427. this.showArea("canvasArea", Area);
  428. this.showPie("canvasPie", Pie);
  429. this.showRing("canvasRing", Ring);
  430. this.showFunnel("canvasFunnel", Funnel);
  431. this.showRadar("canvasRadar", Radar);
  432. this.showArcbar("canvasArcbar1", Arcbar1);
  433. this.showArcbar2("canvasArcbar2", Arcbar2);
  434. this.showArcbar3("canvasArcbar3", Arcbar3);
  435. this.showGauge("canvasGauge", Gauge);
  436. this.showCandle("canvasCandle", Candle);
  437. this.showMix("canvasMix", Mix);
  438. },
  439. showColumn(canvasId, chartData) {
  440. canvasObj[canvasId] = new uCharts({
  441. $this: _self,
  442. canvasId: canvasId,
  443. type: 'column',
  444. padding: [15, 15, 0, 15],
  445. legend: {
  446. show: true,
  447. padding: 5,
  448. lineHeight: 11,
  449. margin: 0,
  450. },
  451. fontSize: 11,
  452. background: '#FFFFFF',
  453. pixelRatio: _self.pixelRatio,
  454. animation: false,
  455. categories: chartData.categories,
  456. series: chartData.series,
  457. xAxis: {
  458. disableGrid: true,
  459. },
  460. yAxis: {
  461. format: (val) => {
  462. return val.toFixed(0) + '元'
  463. }
  464. },
  465. dataLabel: true,
  466. width: _self.cWidth * _self.pixelRatio,
  467. height: _self.cHeight * _self.pixelRatio,
  468. extra: {
  469. column: {
  470. type: 'group',
  471. width: _self.cWidth * _self.pixelRatio * 0.45 / chartData.categories.length
  472. }
  473. }
  474. });
  475. },
  476. showColumnMeter(canvasId, chartData) {
  477. canvasObj[canvasId] = new uCharts({
  478. $this: _self,
  479. canvasId: canvasId,
  480. type: 'column',
  481. padding: [15, 15, 0, 15],
  482. legend: {
  483. show: true,
  484. padding: 5,
  485. lineHeight: 11,
  486. margin: 0,
  487. },
  488. fontSize: 11,
  489. background: '#FFFFFF',
  490. pixelRatio: _self.pixelRatio,
  491. animation: false,
  492. categories: chartData.categories,
  493. series: chartData.series,
  494. xAxis: {
  495. disableGrid: true,
  496. },
  497. yAxis: {
  498. //disabled:true
  499. },
  500. dataLabel: true,
  501. width: _self.cWidth * _self.pixelRatio,
  502. height: _self.cHeight * _self.pixelRatio,
  503. extra: {
  504. column: {
  505. type: 'meter',
  506. width: _self.cWidth * _self.pixelRatio * 0.45 / chartData.categories.length,
  507. meter: {
  508. border: 4,
  509. fillColor: '#E5FDC3'
  510. }
  511. }
  512. }
  513. });
  514. },
  515. showLineA(canvasId, chartData) {
  516. canvasObj[canvasId] = new uCharts({
  517. $this: _self,
  518. canvasId: canvasId,
  519. type: 'line',
  520. fontSize: 11,
  521. padding: [15, 15, 0, 15],
  522. legend: {
  523. show: true,
  524. padding: 5,
  525. lineHeight: 11,
  526. margin: 5,
  527. },
  528. dataLabel: false,
  529. dataPointShape: false,
  530. background: '#FFFFFF',
  531. pixelRatio: _self.pixelRatio,
  532. categories: chartData.categories,
  533. series: chartData.series,
  534. animation: false,
  535. enableScroll: true, //开启图表拖拽功能
  536. xAxis: {
  537. disableGrid: false,
  538. type: 'grid',
  539. gridType: 'dash',
  540. itemCount: 4,
  541. scrollShow: true,
  542. scrollAlign: 'left',
  543. //scrollBackgroundColor:'#F7F7FF',//可不填写,配合enableScroll图表拖拽功能使用,X轴滚动条背景颜色,默认为 #EFEBEF
  544. //scrollColor:'#DEE7F7',//可不填写,配合enableScroll图表拖拽功能使用,X轴滚动条颜色,默认为 #A6A6A6
  545. },
  546. yAxis: {
  547. //disabled:true
  548. gridType: 'dash',
  549. splitNumber: 8,
  550. min: 10,
  551. max: 180,
  552. format: (val) => {
  553. return val.toFixed(0) + '元'
  554. } //如不写此方法,Y轴刻度默认保留两位小数
  555. },
  556. width: _self.cWidth * _self.pixelRatio,
  557. height: _self.cHeight * _self.pixelRatio,
  558. dataLabel: true,
  559. dataPointShape: true,
  560. extra: {
  561. lineStyle: 'straight'
  562. },
  563. });
  564. },
  565. showLineB(canvasId, chartData) {
  566. canvasObj[canvasId] = new uCharts({
  567. $this: _self,
  568. canvasId: canvasId,
  569. type: 'line',
  570. fontSize: 11,
  571. padding: [15, 15, 0, 15],
  572. legend: {
  573. show: true,
  574. padding: 5,
  575. lineHeight: 11,
  576. margin: 5,
  577. },
  578. background: '#FFFFFF',
  579. pixelRatio: _self.pixelRatio,
  580. rotate: true, //开启图表横屏
  581. // #ifdef MP-ALIPAY
  582. rotateLock: true, //百度及支付宝需要锁定旋转
  583. // #endif
  584. categories: chartData.categories,
  585. animation: false,
  586. series: chartData.series,
  587. xAxis: {
  588. disableGrid: true,
  589. },
  590. yAxis: {
  591. //disabled:true
  592. },
  593. width: _self.cWidth2 * _self.pixelRatio,
  594. height: _self.cHeight2 * _self.pixelRatio,
  595. dataLabel: true,
  596. dataPointShape: true,
  597. extra: {
  598. lineStyle: 'curve'
  599. },
  600. });
  601. },
  602. showArea(canvasId, chartData) {
  603. canvasObj[canvasId] = new uCharts({
  604. $this: _self,
  605. canvasId: canvasId,
  606. type: 'area',
  607. fontSize: 11,
  608. padding: [0, 15, 10, 15],
  609. legend: {
  610. show: true,
  611. position: 'top',
  612. float: 'center',
  613. itemGap: 30,
  614. padding: 5,
  615. lineHeight: 18,
  616. margin: 0,
  617. },
  618. dataLabel: false,
  619. dataPointShape: true,
  620. background: '#FFFFFF',
  621. pixelRatio: _self.pixelRatio,
  622. categories: chartData.categories,
  623. series: chartData.series,
  624. animation: false,
  625. xAxis: {
  626. type: 'grid',
  627. gridColor: '#CCCCCC',
  628. gridType: 'dash',
  629. dashLength: 8,
  630. boundaryGap: 'justify' //两端不留白配置
  631. },
  632. yAxis: {
  633. gridType: 'dash',
  634. gridColor: '#CCCCCC',
  635. dashLength: 8,
  636. splitNumber: 5,
  637. },
  638. width: _self.cWidth * _self.pixelRatio,
  639. height: _self.cHeight * _self.pixelRatio,
  640. extra: {
  641. area: {
  642. type: 'curve',
  643. opacity: 0.2,
  644. addLine: true,
  645. width: 2
  646. }
  647. }
  648. });
  649. },
  650. showPie(canvasId, chartData) {
  651. canvasObj[canvasId] = new uCharts({
  652. $this: _self,
  653. canvasId: canvasId,
  654. type: 'pie',
  655. fontSize: 11,
  656. padding: [15, 15, 0, 15],
  657. legend: {
  658. show: true,
  659. padding: 5,
  660. lineHeight: 11,
  661. margin: 0,
  662. },
  663. background: '#FFFFFF',
  664. pixelRatio: _self.pixelRatio,
  665. series: chartData.series,
  666. animation: false,
  667. width: _self.cWidth * _self.pixelRatio,
  668. height: _self.cHeight * _self.pixelRatio,
  669. dataLabel: true,
  670. extra: {
  671. pie: {
  672. lableWidth: 15
  673. }
  674. },
  675. });
  676. },
  677. showRing(canvasId, chartData) {
  678. canvasObj[canvasId] = new uCharts({
  679. $this: _self,
  680. canvasId: canvasId,
  681. type: 'ring',
  682. fontSize: 11,
  683. padding: [5, 5, 5, 5],
  684. legend: {
  685. show: true,
  686. position: 'right',
  687. float: 'center',
  688. itemGap: 10,
  689. padding: 5,
  690. lineHeight: 26,
  691. margin: 5,
  692. //backgroundColor:'rgba(41,198,90,0.2)',
  693. //borderColor :'rgba(41,198,90,0.5)',
  694. borderWidth: 1
  695. },
  696. title: {
  697. name: '70%',
  698. color: '#7cb5ec',
  699. fontSize: 25 * _self.pixelRatio,
  700. },
  701. subtitle: {
  702. name: '收益率',
  703. color: '#666666',
  704. fontSize: 15 * _self.pixelRatio,
  705. },
  706. extra: {
  707. pie: {
  708. lableWidth: 15,
  709. ringWidth: 40 * _self.pixelRatio, //圆环的宽度
  710. offsetAngle: 0 //圆环的角度
  711. }
  712. },
  713. background: '#FFFFFF',
  714. pixelRatio: _self.pixelRatio,
  715. series: chartData.series,
  716. animation: false,
  717. width: _self.cWidth * _self.pixelRatio,
  718. height: _self.cHeight * _self.pixelRatio,
  719. disablePieStroke: true,
  720. dataLabel: true,
  721. });
  722. },
  723. showFunnel(canvasId, chartData) {
  724. canvasObj[canvasId] = new uCharts({
  725. $this: _self,
  726. canvasId: canvasId,
  727. type: 'funnel',
  728. fontSize: 11,
  729. padding: [15, 15, 0, 15],
  730. legend: {
  731. show: true,
  732. padding: 5,
  733. lineHeight: 11,
  734. margin: 0,
  735. },
  736. background: '#FFFFFF',
  737. pixelRatio: _self.pixelRatio,
  738. series: chartData.series,
  739. animation: false,
  740. width: _self.cWidth * _self.pixelRatio,
  741. height: _self.cHeight * _self.pixelRatio,
  742. dataLabel: true,
  743. extra: {
  744. funnel: {
  745. border: true,
  746. borderWidth: 2,
  747. borderColor: '#FFFFFF'
  748. }
  749. },
  750. });
  751. },
  752. showRadar(canvasId, chartData) {
  753. canvasObj[canvasId] = new uCharts({
  754. $this: _self,
  755. canvasId: canvasId,
  756. type: 'radar',
  757. fontSize: 11,
  758. padding: [15, 15, 0, 15],
  759. legend: {
  760. show: true,
  761. padding: 5,
  762. lineHeight: 11,
  763. margin: 0,
  764. },
  765. background: '#FFFFFF',
  766. pixelRatio: _self.pixelRatio,
  767. animation: false,
  768. dataLabel: true,
  769. categories: chartData.categories,
  770. series: chartData.series,
  771. width: _self.cWidth * _self.pixelRatio,
  772. height: _self.cHeight * _self.pixelRatio,
  773. extra: {
  774. radar: {
  775. max: 200 //雷达数值的最大值
  776. }
  777. }
  778. });
  779. },
  780. showArcbar(canvasId, chartData) {
  781. new uCharts({
  782. $this: _self,
  783. canvasId: canvasId,
  784. type: 'arcbar',
  785. fontSize: 11,
  786. title: {
  787. name: Math.round(chartData.series[0].data * 100) + '%',
  788. color: chartData.series[0].color,
  789. fontSize: 25 * _self.pixelRatio
  790. },
  791. subtitle: {
  792. name: chartData.series[0].name,
  793. color: '#666666',
  794. fontSize: 15 * _self.pixelRatio
  795. },
  796. extra: {
  797. arcbar: {
  798. type: 'default',
  799. width: _self.arcbarWidth * _self.pixelRatio, //圆弧的宽度
  800. }
  801. },
  802. background: '#FFFFFF',
  803. pixelRatio: _self.pixelRatio,
  804. series: chartData.series,
  805. animation: false,
  806. width: _self.cWidth3 * _self.pixelRatio,
  807. height: _self.cHeight3 * _self.pixelRatio,
  808. dataLabel: true,
  809. });
  810. },
  811. showArcbar2(canvasId, chartData) {
  812. new uCharts({
  813. $this: _self,
  814. canvasId: canvasId,
  815. type: 'arcbar',
  816. fontSize: 11,
  817. title: {
  818. name: Math.round(chartData.series[0].data * 100) + '%',
  819. color: chartData.series[0].color,
  820. fontSize: 25 * _self.pixelRatio
  821. },
  822. subtitle: {
  823. name: chartData.series[0].name,
  824. color: '#666666',
  825. fontSize: 15 * _self.pixelRatio
  826. },
  827. extra: {
  828. arcbar: {
  829. type: 'default',
  830. width: _self.arcbarWidth * _self.pixelRatio, //圆弧的宽度
  831. backgroundColor: '#ffe3e8',
  832. startAngle: 1.25,
  833. endAngle: 0.75
  834. }
  835. },
  836. background: '#FFFFFF',
  837. pixelRatio: _self.pixelRatio,
  838. series: chartData.series,
  839. animation: false,
  840. width: _self.cWidth3 * _self.pixelRatio,
  841. height: _self.cHeight3 * _self.pixelRatio,
  842. dataLabel: true,
  843. });
  844. },
  845. showArcbar3(canvasId, chartData) {
  846. new uCharts({
  847. $this: _self,
  848. canvasId: canvasId,
  849. type: 'arcbar',
  850. fontSize: 11,
  851. title: {
  852. name: Math.round(chartData.series[0].data * 100) + '%',
  853. color: chartData.series[0].color,
  854. fontSize: 25 * _self.pixelRatio
  855. },
  856. subtitle: {
  857. name: chartData.series[0].name,
  858. color: '#666666',
  859. fontSize: 15 * _self.pixelRatio
  860. },
  861. extra: {
  862. arcbar: {
  863. type: 'circle', //整圆类型进度条图
  864. width: _self.arcbarWidth * _self.pixelRatio, //圆弧的宽度
  865. startAngle: 0.5 //整圆类型只需配置起始角度即可
  866. }
  867. },
  868. background: '#FFFFFF',
  869. pixelRatio: _self.pixelRatio,
  870. series: chartData.series,
  871. animation: false,
  872. width: _self.cWidth3 * _self.pixelRatio,
  873. height: _self.cHeight3 * _self.pixelRatio,
  874. dataLabel: true,
  875. });
  876. },
  877. showGauge(canvasId, chartData) {
  878. canvasObj[canvasId] = new uCharts({
  879. $this: _self,
  880. canvasId: canvasId,
  881. type: 'gauge',
  882. fontSize: 11,
  883. title: {
  884. name: Math.round(chartData.series[0].data * 100) + '%',
  885. color: chartData.categories[1].color,
  886. fontSize: 25 * _self.pixelRatio,
  887. offsetY: 50 * _self.pixelRatio, //新增参数,自定义调整Y轴文案距离
  888. },
  889. subtitle: {
  890. name: chartData.series[0].name,
  891. color: '#666666',
  892. fontSize: 15 * _self.pixelRatio,
  893. offsetY: -50 * _self.pixelRatio, //新增参数,自定义调整Y轴文案距离
  894. },
  895. extra: {
  896. gauge: {
  897. type: 'default',
  898. width: _self.gaugeWidth * _self.pixelRatio, //仪表盘背景的宽度
  899. startAngle: 0.75,
  900. endAngle: 0.25,
  901. startNumber: 0,
  902. endNumber: 100,
  903. splitLine: {
  904. fixRadius: 0,
  905. splitNumber: 10,
  906. width: _self.gaugeWidth * _self.pixelRatio, //仪表盘背景的宽度
  907. color: '#FFFFFF',
  908. childNumber: 5,
  909. childWidth: _self.gaugeWidth * 0.4 * _self.pixelRatio, //仪表盘背景的宽度
  910. },
  911. pointer: {
  912. width: _self.gaugeWidth * 0.8 * _self.pixelRatio, //指针宽度
  913. color: 'auto'
  914. }
  915. }
  916. },
  917. background: '#FFFFFF',
  918. pixelRatio: _self.pixelRatio,
  919. categories: chartData.categories,
  920. series: chartData.series,
  921. animation: true,
  922. width: _self.cWidth * _self.pixelRatio,
  923. height: _self.cHeight * _self.pixelRatio,
  924. dataLabel: true,
  925. });
  926. },
  927. changeGaugeData() {
  928. let series = [{
  929. name: "完成率",
  930. data: Math.random()
  931. }]; //这里是随机数据,生产环境请从服务器获取,注意series数据类型为数组
  932. //这里我借用之前的categories数据,判断一下新数据的title.color,没有写死在程序里,以便于自定义
  933. let newTitleColor;
  934. for (let i = 0; i < _self.serverData.Gauge.categories.length; i++) {
  935. if (series[0].data <= _self.serverData.Gauge.categories[i].value) {
  936. newTitleColor = _self.serverData.Gauge.categories[i].color;
  937. break;
  938. }
  939. }
  940. canvasObj['canvasGauge'].updateData({
  941. series: series, //这里给了新数值
  942. categories: _self.serverData.Gauge.categories,
  943. title: {
  944. name: Math.round(series[0].data * 100) + '%',
  945. color: newTitleColor,
  946. fontSize: 25 * _self.pixelRatio,
  947. offsetY: 50 * _self.pixelRatio, //新增参数,自定义调整Y轴文案距离
  948. },
  949. subtitle: {
  950. name: '更新数据',
  951. color: '#666666',
  952. fontSize: 15 * _self.pixelRatio,
  953. offsetY: -50 * _self.pixelRatio, //新增参数,自定义调整Y轴文案距离
  954. }
  955. });
  956. },
  957. showCandle(canvasId, chartData) {
  958. canvasObj[canvasId] = new uCharts({
  959. $this: _self,
  960. canvasId: canvasId,
  961. type: 'candle',
  962. fontSize: 11,
  963. padding: [15, 15, 0, 15],
  964. legend: {
  965. show: true,
  966. padding: 5,
  967. lineHeight: 11,
  968. margin: 8,
  969. },
  970. background: '#FFFFFF',
  971. pixelRatio: _self.pixelRatio,
  972. enableMarkLine: true,
  973. /***需要开启标记线***/
  974. categories: chartData.categories,
  975. series: chartData.series,
  976. animation: true,
  977. enableScroll: true, //开启图表拖拽功能
  978. xAxis: {
  979. disableGrid: true, //不绘制X轴网格线
  980. labelCount: 4, //X轴文案数量
  981. //type:'grid',
  982. //gridType:'dash',
  983. itemCount: _self.itemCount, //可不填写,配合enableScroll图表拖拽功能使用,x轴单屏显示数据的数量,默认为5个
  984. scrollShow: true, //新增是否显示滚动条,默认false
  985. scrollAlign: 'right',
  986. //scrollBackgroundColor:'#F7F7FF',//可不填写,配合enableScroll图表拖拽功能使用,X轴滚动条背景颜色,默认为 #EFEBEF
  987. //scrollColor:'#DEE7F7',//可不填写,配合enableScroll图表拖拽功能使用,X轴滚动条颜色,默认为 #A6A6A6
  988. },
  989. yAxis: {
  990. //disabled:true
  991. gridType: 'dash',
  992. splitNumber: 5,
  993. format: (val) => {
  994. return val.toFixed(0)
  995. }
  996. },
  997. width: _self.cWidth * _self.pixelRatio,
  998. height: _self.cHeight * _self.pixelRatio,
  999. dataLabel: false,
  1000. dataPointShape: true,
  1001. extra: {
  1002. candle: {
  1003. color: {
  1004. upLine: '#f04864',
  1005. upFill: '#f04864',
  1006. downLine: '#2fc25b',
  1007. downFill: '#2fc25b'
  1008. },
  1009. average: {
  1010. show: true,
  1011. name: ['MA5', 'MA10', 'MA30'],
  1012. day: [5, 10, 20],
  1013. color: ['#1890ff', '#2fc25b', '#facc14']
  1014. }
  1015. },
  1016. tooltip: {
  1017. bgColor: '#000000',
  1018. bgOpacity: 0.7,
  1019. gridType: 'dash',
  1020. dashLength: 5,
  1021. gridColor: '#1890ff',
  1022. fontColor: '#FFFFFF',
  1023. horizentalLine: true,
  1024. xAxisLabel: true,
  1025. yAxisLabel: true,
  1026. labelBgColor: '#DFE8FF',
  1027. labelBgOpacity: 0.95,
  1028. labelAlign: 'left',
  1029. labelFontColor: '#666666'
  1030. },
  1031. markLine: {
  1032. type: 'dash',
  1033. dashLength: 5,
  1034. data: [{
  1035. value: 2150,
  1036. lineColor: '#f04864',
  1037. showLabel: true
  1038. }, {
  1039. value: 2350,
  1040. lineColor: '#f04864',
  1041. showLabel: true
  1042. }]
  1043. }
  1044. }
  1045. });
  1046. },
  1047. touchCandle(e) {
  1048. canvasObj['canvasCandle'].scrollStart(e);
  1049. },
  1050. moveCandle(e) {
  1051. canvasObj['canvasCandle'].scroll(e);
  1052. },
  1053. touchEndCandle(e) {
  1054. canvasObj['canvasCandle'].scrollEnd(e);
  1055. //下面是toolTip事件,如果滚动后不需要显示,可不填写
  1056. canvasObj['canvasCandle'].showToolTip(e, {
  1057. format: function(item, category) {
  1058. return category + ' ' + item.name + ':' + item.data
  1059. }
  1060. });
  1061. },
  1062. changeData() {
  1063. canvasObj['canvasColumn'].updateData({
  1064. series: _self.serverData.ColumnB.series,
  1065. categories: _self.serverData.ColumnB.categories
  1066. });
  1067. },
  1068. touchLineA(e) {
  1069. canvasObj['canvasLineA'].scrollStart(e);
  1070. },
  1071. moveLineA(e) {
  1072. canvasObj['canvasLineA'].scroll(e);
  1073. },
  1074. touchEndLineA(e) {
  1075. canvasObj['canvasLineA'].scrollEnd(e);
  1076. //下面是toolTip事件,如果滚动后不需要显示,可不填写
  1077. canvasObj['canvasLineA'].showToolTip(e, {
  1078. format: function(item, category) {
  1079. return category + ' ' + item.name + ':' + item.data
  1080. }
  1081. });
  1082. },
  1083. showMix(canvasId, chartData) {
  1084. canvasObj[canvasId] = new uCharts({
  1085. $this: _self,
  1086. canvasId: canvasId,
  1087. type: 'mix',
  1088. fontSize: 11,
  1089. padding: [15, 15, 0, 15],
  1090. legend: {
  1091. show: true,
  1092. padding: 5,
  1093. lineHeight: 11,
  1094. margin: 6,
  1095. },
  1096. background: '#FFFFFF',
  1097. pixelRatio: _self.pixelRatio,
  1098. categories: chartData.categories,
  1099. series: chartData.series,
  1100. animation: false,
  1101. enableScroll: true, //开启图表拖拽功能
  1102. xAxis: {
  1103. disableGrid: false,
  1104. type: 'grid',
  1105. gridType: 'dash',
  1106. itemCount: 4,
  1107. scrollShow: true,
  1108. scrollAlign: 'left',
  1109. },
  1110. yAxis: {
  1111. gridType: 'dash',
  1112. dashLength: 4,
  1113. splitNumber: 5,
  1114. min: 10,
  1115. max: 180,
  1116. format: (val) => {
  1117. return val.toFixed(0)
  1118. }
  1119. },
  1120. width: _self.cWidth * _self.pixelRatio,
  1121. height: _self.cHeight * _self.pixelRatio,
  1122. dataLabel: true,
  1123. dataPointShape: true,
  1124. extra: {
  1125. column: {
  1126. width: 20 * _self.pixelRatio
  1127. },
  1128. tooltip: {
  1129. bgColor: '#000000',
  1130. bgOpacity: 0.7,
  1131. gridType: 'dash',
  1132. dashLength: 8,
  1133. gridColor: '#1890ff',
  1134. fontColor: '#FFFFFF',
  1135. horizentalLine: true,
  1136. xAxisLabel: true,
  1137. yAxisLabel: true,
  1138. labelBgColor: '#DFE8FF',
  1139. labelBgOpacity: 0.95,
  1140. labelAlign: 'left',
  1141. labelFontColor: '#666666'
  1142. }
  1143. },
  1144. });
  1145. },
  1146. touchMix(e) {
  1147. canvasObj['canvasMix'].scrollStart(e);
  1148. },
  1149. moveMix(e) {
  1150. canvasObj['canvasMix'].scroll(e);
  1151. },
  1152. touchEndMix(e) {
  1153. canvasObj['canvasMix'].scrollEnd(e);
  1154. canvasObj['canvasMix'].touchLegend(e);
  1155. //下面是toolTip事件,如果滚动后不需要显示,可不填写
  1156. canvasObj['canvasMix'].showToolTip(e, {
  1157. format: function(item, category) {
  1158. return category + ' ' + item.name + ':' + item.data
  1159. }
  1160. });
  1161. },
  1162. touchIt(e, id) {
  1163. canvasObj[id].touchLegend(e, {
  1164. animation: false
  1165. });
  1166. canvasObj[id].showToolTip(e, {
  1167. format: function(item, category) {
  1168. if (typeof item.data === 'object') {
  1169. return category + ' ' + item.name + ':' + item.data.value
  1170. } else {
  1171. return category + ' ' + item.name + ':' + item.data
  1172. }
  1173. }
  1174. });
  1175. },
  1176. touchPie(e, id) {
  1177. canvasObj[id].showToolTip(e, {
  1178. format: function(item) {
  1179. return item.name + ':' + item.data
  1180. }
  1181. });
  1182. },
  1183. /* 图表end */
  1184. }
  1185. }
  1186. </script>
  1187. <style scoped>
  1188. uni-view {
  1189. font-size: 15px;
  1190. }
  1191. .uni-row {
  1192. height: 40px;
  1193. }
  1194. .uni-row-column {
  1195. float: left;
  1196. width: 150rpx;
  1197. height: 40px;
  1198. }
  1199. .grid-item-box {
  1200. flex: 1;
  1201. /* #ifndef APP-NVUE */
  1202. display: flex;
  1203. /* #endif */
  1204. flex-direction: column;
  1205. align-items: center;
  1206. justify-content: center;
  1207. padding: 15px 0;
  1208. }
  1209. .qiun-padding {
  1210. padding: 2%;
  1211. width: 96%;
  1212. }
  1213. .qiun-wrap {
  1214. display: flex;
  1215. flex-wrap: wrap;
  1216. }
  1217. .qiun-rows {
  1218. display: flex;
  1219. flex-direction: row !important;
  1220. }
  1221. .qiun-columns {
  1222. display: flex;
  1223. flex-direction: column !important;
  1224. }
  1225. .qiun-common-mt {
  1226. margin-top: 10rpx;
  1227. }
  1228. .qiun-bg-white {
  1229. background: #FFFFFF;
  1230. }
  1231. .qiun-title-bar {
  1232. width: 96%;
  1233. padding: 10rpx 2%;
  1234. flex-wrap: nowrap;
  1235. }
  1236. .qiun-title-dot-light {
  1237. border-left: 10rpx solid #0ea391;
  1238. padding-left: 10rpx;
  1239. font-size: 32rpx;
  1240. color: #000000
  1241. }
  1242. /* 通用样式 */
  1243. .qiun-charts {
  1244. width: 750rpx;
  1245. height: 500rpx;
  1246. background-color: #FFFFFF;
  1247. }
  1248. .qiun-charts1 {
  1249. width: 750rpx;
  1250. height: auto;
  1251. padding: 5px 10px;
  1252. background-color: #FFFFFF;
  1253. }
  1254. .charts {
  1255. width: 750rpx;
  1256. height: 500rpx;
  1257. background-color: #FFFFFF;
  1258. }
  1259. /* 横屏样式 */
  1260. .qiun-charts-rotate {
  1261. width: 700rpx;
  1262. height: 1100rpx;
  1263. background-color: #FFFFFF;
  1264. padding: 25rpx;
  1265. }
  1266. .charts-rotate {
  1267. width: 700rpx;
  1268. height: 1100rpx;
  1269. background-color: #FFFFFF;
  1270. }
  1271. /* 圆弧进度样式 */
  1272. .qiun-charts3 {
  1273. width: 750rpx;
  1274. height: 250rpx;
  1275. background-color: #FFFFFF;
  1276. position: relative;
  1277. }
  1278. .charts3 {
  1279. position: absolute;
  1280. width: 250rpx;
  1281. height: 250rpx;
  1282. background-color: #FFFFFF;
  1283. }
  1284. .qiun-tip {
  1285. display: block;
  1286. width: auto;
  1287. overflow: hidden;
  1288. padding: 15rpx;
  1289. height: 30rpx;
  1290. line-height: 30rpx;
  1291. margin: 10rpx;
  1292. background: #ff9933;
  1293. font-size: 30rpx;
  1294. border-radius: 8rpx;
  1295. justify-content: center;
  1296. text-align: center;
  1297. border: 1px solid #dc7004;
  1298. color: #FFFFFF;
  1299. }
  1300. .gree {
  1301. color: #09BB07;
  1302. }
  1303. .orange {
  1304. color: orange;
  1305. }
  1306. .gray {
  1307. color: #E0E0E0;
  1308. }
  1309. /* 进度图表css */
  1310. .space{
  1311. margin-left:20px;
  1312. }
  1313. .height30{
  1314. display: block;
  1315. padding-top:5px;
  1316. padding-bottom: 5px;
  1317. /* height: 30px; */
  1318. height: auto;
  1319. max-height: 45px;
  1320. /* -webkit-line-clamp: 2; */
  1321. }
  1322. .line{
  1323. border-bottom: 3px solid #F2F6FC;
  1324. }
  1325. .marginRight{
  1326. margin-right:15px;
  1327. cursor: pointer;
  1328. }
  1329. .marginLeft{
  1330. margin-left: 15px;
  1331. }
  1332. .red{
  1333. color:#FF3333;
  1334. }
  1335. .green{
  1336. color:#1AAD19;
  1337. }
  1338. .blue{
  1339. color:#0000ff;
  1340. }
  1341. .lef{
  1342. float:left;
  1343. }
  1344. .right{
  1345. float: right;
  1346. padding-right: 15px;
  1347. }
  1348. .awesomeIcon{
  1349. font-size:20px;
  1350. padding:8px 5px;
  1351. }
  1352. .img{
  1353. width: 40px;
  1354. height:40px;
  1355. }
  1356. </style>