index.vue 38 KB

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