index.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. //自调用函数
  2. (function() {
  3. // 1、页面一加载就要知道页面宽度计算
  4. var setFont = function() {
  5. // 因为要定义变量可能和别的变量相互冲突,污染,所有用自调用函数
  6. var html = document.documentElement; // 获取html
  7. // 获取宽度
  8. var width = html.clientWidth;
  9. // 判断
  10. if (width < 1024) width = 1024
  11. if (width > 1920) width = 1920
  12. // 设置html的基准值
  13. var fontSize = width / 80 + 'px';
  14. // 设置给html
  15. html.style.fontSize = fontSize;
  16. }
  17. setFont();
  18. // 2、页面改变的时候也需要设置
  19. // 尺寸改变事件
  20. window.onresize = function() {
  21. setFont();
  22. }
  23. })();
  24. $.get('https://linggong.jinjianghc.com/mainapp.php/screen/index', (res) => {
  25. init(res.data)
  26. })
  27. function init(data) {
  28. $('.broker_total').text(data.broker_total);
  29. $('.comjobs_total').text(data.comjobs_total);
  30. $('.company_total').text(data.company_total);
  31. $('.people_man').text(data.people_man);
  32. $('.people_total').text(data.people_total);
  33. $('.people_woman').text(data.people_woman);
  34. $('.train').text(data.train);
  35. $('.train_join').text(data.train_join);
  36. this.geo(data);
  37. this.monitor(data);
  38. this.pieAge(data);
  39. this.pie(data);
  40. this.userType(data);
  41. this.user(data);
  42. this.order(data);
  43. this.sale(data);
  44. this.gauge(data);
  45. this.province(data);
  46. }
  47. function geo(data) {
  48. let community = data.community;
  49. let other = 0;
  50. let max = 0; //最大人数
  51. community = community.map((item) => {
  52. if (item.name == '其他') {
  53. other += item.count;
  54. } else if (item.count > max) {
  55. max = item.count;
  56. }
  57. return {
  58. name: item.name,
  59. value: item.count
  60. };
  61. });
  62. community.push({
  63. name: '泉州出口加工区',
  64. value: 0
  65. });
  66. community.push({
  67. name: '安平开发区',
  68. value: 0
  69. });
  70. var myecharts = echarts.init($('.map .geo')[0])
  71. // $.get('https://geo.datav.aliyun.com/areas_v3/bound/350582.json', result => {
  72. $.get('js/350582.json', result => {
  73. // 注册 echarts 地图
  74. echarts.registerMap('jinjiang', result);
  75. var option = {
  76. backgroundColor: '#080a20',
  77. title: {
  78. text: '其他地区:' + other + ' (人)',
  79. // subtext: '其他地区:' + community[community.length - 1].count,
  80. left: 'left',
  81. textStyle: {
  82. color: '#ffffff'
  83. }
  84. },
  85. tooltip: {
  86. trigger: 'item',
  87. formatter: '{b}<br/>{c} (人)'
  88. },
  89. visualMap: {
  90. min: 0,
  91. max: max,
  92. text: ['多', '少'],
  93. realtime: true,
  94. calculable: true,
  95. color: '#fff',
  96. inRange: {
  97. color: ['#142957', '#0b1c2d']
  98. },
  99. textStyle: {
  100. color: '#fff'
  101. }
  102. },
  103. series: [{
  104. type: 'map',
  105. map: 'jinjiang',
  106. zoom: 1.2,
  107. roam: true,
  108. coordinateSystem: 'geo',
  109. // rippleEffect: {
  110. // brushType: 'stroke'
  111. // },
  112. symbolSize: function(val, params) {
  113. return 8;
  114. },
  115. label: {
  116. show: true,
  117. color: '#fff'
  118. },
  119. itemStyle: {
  120. normal: {
  121. areaColor: '#142957',
  122. borderColor: '#0692a4'
  123. }
  124. },
  125. emphasis: {
  126. areaColor: '#0b1c2d'
  127. },
  128. data: community,
  129. nameMap: {
  130. '晋江市经济开发区': '经济开发区'
  131. }
  132. }]
  133. };
  134. myecharts.setOption(option);
  135. })
  136. }
  137. function monitor(data) {
  138. //事件委托
  139. $('.monitor').on('click', ' a', function () {
  140. //点击当前的a 加类名 active 他的兄弟删除类名
  141. $(this).addClass('active').siblings().removeClass('active');
  142. //获取一一对应的下标
  143. var index = $(this).index();
  144. //选取content 然后狗日对应下标的 显示 当前的兄弟.content隐藏
  145. $('.content').eq(index).show().siblings('.content').hide();
  146. });
  147. //填充数据
  148. let comjobs = data.comjobs;
  149. var html = '';
  150. comjobs.hot.forEach(function(item) {
  151. html += `<div class="row">`;
  152. html += `<span class="col">${item.title}</span>`;
  153. html += `<span class="col">${item.worker.ftitle}</span>`;
  154. html += `<span class="col">${item.bwagall || '面谈'}</span>`;
  155. html += `<span class="icon-dot"></span>`;
  156. html += `</div>`;
  157. });
  158. //渲染
  159. $('.monitor .marquee.hot').html(html);
  160. html = '';
  161. comjobs.new.forEach(function(item) {
  162. html += `<div class="row">`;
  163. html += `<span class="col">${item.title}</span>`;
  164. html += `<span class="col">${item.company}</span>`;
  165. html += `<span class="col">${item.salary || '面谈'}</span>`;
  166. html += `<span class="icon-dot"></span>`;
  167. html += `</div>`;
  168. });
  169. //渲染
  170. $('.monitor .marquee.new').html(html);
  171. //滚动
  172. //原理:把marquee下面的子盒子都复制一遍 加入到marquee中
  173. // 然后动画向上滚动,滚动到一半重新开始滚动
  174. //因为选取的是两个marquee 所以要遍历
  175. // $('.monitor .marquee').each(function (index, dom) {
  176. // //将每个 的所有子级都复制一遍
  177. // var rows = $(dom).children().clone();
  178. // //再将新的到的加入原来的
  179. // $(dom).append(rows);
  180. // });
  181. }
  182. function pieAge(data) {
  183. let eduction = data.user_age;
  184. let unknown = 0;
  185. let total = 0;
  186. eduction.map((item, index) => {
  187. if (item.name == '其他') {
  188. unknown += item.count;
  189. eduction.splice(index, 1);
  190. } else {
  191. total += item.count;
  192. item.value = item.count;
  193. }
  194. return item;
  195. });
  196. console.log(eduction)
  197. $('.age-unknown').text(unknown);
  198. $('.age-total').text(total);
  199. var myechartAge = echarts.init($('.pie.age')[0]);
  200. option = {
  201. // 控制提示
  202. tooltip: {
  203. // 非轴图形,使用item的意思是放到数据对应图形上触发提示
  204. trigger: 'item',
  205. // 格式化提示内容:
  206. // a 代表图表名称 b 代表数据名称 c 代表数据 d代表 当前数据/总数据的比例
  207. formatter: "{a} <br/>{b} : {c} ({d}%)"
  208. },
  209. // 控制图表
  210. series: [{
  211. // 图表名称
  212. name: '年龄',
  213. // 图表类型
  214. type: 'pie',
  215. // 南丁格尔玫瑰图 有两个圆 内圆半径10% 外圆半径70%
  216. // 百分比基于 图表DOM容器的半径
  217. radius: ['10%', '70%'],
  218. // 图表中心位置 left 50% top 50% 距离图表DOM容器
  219. center: ['50%', '50%'],
  220. // 半径模式,另外一种是 area 面积模式
  221. roseType: 'radius',
  222. // 数据集 value 数据的值 name 数据的名称
  223. data: eduction,
  224. //文字调整
  225. label: {
  226. fontSize: 10
  227. },
  228. //引导线
  229. labelLine: {
  230. length: 8,
  231. length2: 10
  232. }
  233. }],
  234. color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff']
  235. };
  236. myechartAge.setOption(option);
  237. }
  238. function pie(data) {
  239. let eduction = data.eduction;
  240. let unknown = 0;
  241. let total = 0;
  242. eduction.map((item, index) => {
  243. if (item.name == '未知') {
  244. unknown += item.count;
  245. eduction.splice(index, 1);
  246. } else {
  247. total += item.count;
  248. item.value = item.count;
  249. }
  250. return item;
  251. });
  252. $('.edu-unknown').text(unknown);
  253. $('.edu-total').text(total);
  254. var myechart = echarts.init($('.pie.edu')[0]);
  255. option = {
  256. // 控制提示
  257. tooltip: {
  258. // 非轴图形,使用item的意思是放到数据对应图形上触发提示
  259. trigger: 'item',
  260. // 格式化提示内容:
  261. // a 代表图表名称 b 代表数据名称 c 代表数据 d代表 当前数据/总数据的比例
  262. formatter: "{a} <br/>{b} : {c} ({d}%)"
  263. },
  264. // 控制图表
  265. series: [{
  266. // 图表名称
  267. name: '学历',
  268. // 图表类型
  269. type: 'pie',
  270. // 南丁格尔玫瑰图 有两个圆 内圆半径10% 外圆半径70%
  271. // 百分比基于 图表DOM容器的半径
  272. radius: ['10%', '70%'],
  273. // 图表中心位置 left 50% top 50% 距离图表DOM容器
  274. center: ['50%', '50%'],
  275. // 半径模式,另外一种是 area 面积模式
  276. roseType: 'radius',
  277. // 数据集 value 数据的值 name 数据的名称
  278. data: eduction,
  279. //文字调整
  280. label: {
  281. fontSize: 10
  282. },
  283. //引导线
  284. labelLine: {
  285. length: 8,
  286. length2: 10
  287. }
  288. }],
  289. color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff']
  290. };
  291. myechart.setOption(option);
  292. }
  293. // 用户
  294. function userType(data) {
  295. let cate = data.type;
  296. let titleArr = [];
  297. let countArr = [];
  298. let total = 0;
  299. let count = cate.length;
  300. // 中间省略的数据 准备三项
  301. var hiddenItem = {
  302. name: '',
  303. value: 10,
  304. // 柱子颜色
  305. itemStyle: {
  306. color: '#254065'
  307. },
  308. // 鼠标经过柱子颜色
  309. emphasis: {
  310. itemStyle: {
  311. color: '#254065'
  312. }
  313. },
  314. // 工具提示隐藏
  315. tooltip: {
  316. extraCssText: 'opacity:0'
  317. }
  318. };
  319. let titleAttr = {
  320. 1: '按月',
  321. 2: '按时',
  322. 3: '按件',
  323. 4: '按项目',
  324. 5: '其他',
  325. }
  326. cate.forEach((item, index) => {
  327. if (index < 5 || index + 5 >= count) {
  328. titleArr.push(titleAttr[item.wtype])
  329. countArr.push(item.count)
  330. } else if (count > 10 && index == 5) {
  331. //随机三个
  332. let arr = []
  333. for (let i = 5; i < count - 5; i++) {
  334. arr.push(i)
  335. }
  336. let randomArr = [];
  337. while (randomArr.length < 3) {
  338. let temp = (Math.random() * arr.length) >> 0;
  339. randomArr.push(arr.splice(temp, 1)[0]);
  340. }
  341. randomArr.forEach((randomIndex) => {
  342. titleArr.push(titleAttr[cate[randomIndex].wtype])
  343. countArr.push(cate[randomIndex].count)
  344. })
  345. }
  346. total += item.count
  347. });
  348. $('.type-count').text(count)
  349. $('.type-total').text(total)
  350. option = {
  351. // 工具提示
  352. tooltip: {
  353. // 触发类型 经过轴触发axis 经过轴触发item
  354. trigger: 'item',
  355. // 轴触发提示才有效
  356. axisPointer: {
  357. // 默认为直线,可选为:'line' 线效果 | 'shadow' 阴影效果
  358. type: 'shadow'
  359. }
  360. },
  361. // 图表边界控制
  362. grid: {
  363. // 距离 上右下左 的距离
  364. left: '0',
  365. right: '3%',
  366. bottom: '3%',
  367. top: '5%',
  368. // 大小是否包含文本【类似于boxsizing】
  369. containLabel: true,
  370. //显示边框
  371. show: true,
  372. //边框颜色
  373. borderColor: 'rgba(0, 240, 255, 0.3)'
  374. },
  375. // 控制x轴
  376. xAxis: [{
  377. // 使用类目,必须有data属性
  378. type: 'category',
  379. // 使用 data 中的数据设为刻度文字
  380. data: titleArr,
  381. // 刻度设置
  382. axisTick: {
  383. // true意思:图形在刻度中间
  384. // false意思:图形在刻度之间
  385. alignWithLabel: false,
  386. show: false
  387. },
  388. //文字
  389. axisLabel: {
  390. color: '#4c9bfd'
  391. }
  392. }],
  393. // 控制y轴
  394. yAxis: [{
  395. // 使用数据的值设为刻度文字
  396. type: 'value',
  397. axisTick: {
  398. // true意思:图形在刻度中间
  399. // false意思:图形在刻度之间
  400. alignWithLabel: false,
  401. show: false
  402. },
  403. //文字
  404. axisLabel: {
  405. color: '#4c9bfd'
  406. },
  407. splitLine: {
  408. lineStyle: {
  409. color: 'rgba(0, 240, 255, 0.3)'
  410. }
  411. },
  412. }],
  413. // 控制x轴
  414. series: [
  415. {
  416. // series配置
  417. // 颜色
  418. itemStyle: {
  419. // 提供的工具函数生成渐变颜色
  420. color: new echarts.graphic.LinearGradient(
  421. // (x1,y2) 点到点 (x2,y2) 之间进行渐变
  422. 0, 0, 0, 1,
  423. [{
  424. offset: 0,
  425. color: '#00fffb'
  426. }, // 0 起始颜色
  427. {
  428. offset: 1,
  429. color: '#0061ce'
  430. } // 1 结束颜色
  431. ]
  432. )
  433. },
  434. // 图表数据名称
  435. name: '岗位统计',
  436. // 图表类型
  437. type: 'bar',
  438. // 柱子宽度
  439. barWidth: '60%',
  440. // 数据
  441. data: countArr
  442. }
  443. ]
  444. };
  445. var myechart = echarts.init($('.users .bar.type')[0]);
  446. myechart.setOption(option);
  447. }
  448. // 用户
  449. function user(data) {
  450. let cate = data.cate;
  451. let titleArr = [];
  452. let countArr = [];
  453. let total = 0;
  454. let count = cate.length;
  455. // 中间省略的数据 准备三项
  456. var hiddenItem = {
  457. name: '',
  458. value: 10,
  459. // 柱子颜色
  460. itemStyle: {
  461. color: '#254065'
  462. },
  463. // 鼠标经过柱子颜色
  464. emphasis: {
  465. itemStyle: {
  466. color: '#254065'
  467. }
  468. },
  469. // 工具提示隐藏
  470. tooltip: {
  471. extraCssText: 'opacity:0'
  472. }
  473. };
  474. cate.forEach((item, index) => {
  475. if (index < 5 || index + 5 >= count) {
  476. titleArr.push(item.title)
  477. countArr.push(item.count)
  478. } else if (count > 10 && index == 5) {
  479. //随机三个
  480. let arr = []
  481. for (let i = 5; i < count - 5; i++) {
  482. arr.push(i)
  483. }
  484. let randomArr = [];
  485. while (randomArr.length < 3) {
  486. let temp = (Math.random() * arr.length) >> 0;
  487. randomArr.push(arr.splice(temp, 1)[0]);
  488. }
  489. randomArr.forEach((randomIndex) => {
  490. titleArr.push(cate[randomIndex].title)
  491. countArr.push(cate[randomIndex].count)
  492. })
  493. }
  494. total += item.count
  495. });
  496. $('.cate-count').text(count)
  497. $('.cate-total').text(total)
  498. option = {
  499. // 工具提示
  500. tooltip: {
  501. // 触发类型 经过轴触发axis 经过轴触发item
  502. trigger: 'item',
  503. // 轴触发提示才有效
  504. axisPointer: {
  505. // 默认为直线,可选为:'line' 线效果 | 'shadow' 阴影效果
  506. type: 'shadow'
  507. }
  508. },
  509. // 图表边界控制
  510. grid: {
  511. // 距离 上右下左 的距离
  512. left: '0',
  513. right: '3%',
  514. bottom: '3%',
  515. top: '5%',
  516. // 大小是否包含文本【类似于boxsizing】
  517. containLabel: true,
  518. //显示边框
  519. show: true,
  520. //边框颜色
  521. borderColor: 'rgba(0, 240, 255, 0.3)'
  522. },
  523. // 控制x轴
  524. xAxis: [{
  525. // 使用类目,必须有data属性
  526. type: 'category',
  527. // 使用 data 中的数据设为刻度文字
  528. data: titleArr,
  529. // 刻度设置
  530. axisTick: {
  531. // true意思:图形在刻度中间
  532. // false意思:图形在刻度之间
  533. alignWithLabel: false,
  534. show: false
  535. },
  536. //文字
  537. axisLabel: {
  538. color: '#4c9bfd'
  539. }
  540. }],
  541. // 控制y轴
  542. yAxis: [{
  543. // 使用数据的值设为刻度文字
  544. type: 'value',
  545. axisTick: {
  546. // true意思:图形在刻度中间
  547. // false意思:图形在刻度之间
  548. alignWithLabel: false,
  549. show: false
  550. },
  551. //文字
  552. axisLabel: {
  553. color: '#4c9bfd'
  554. },
  555. splitLine: {
  556. lineStyle: {
  557. color: 'rgba(0, 240, 255, 0.3)'
  558. }
  559. },
  560. }],
  561. // 控制x轴
  562. series: [
  563. {
  564. // series配置
  565. // 颜色
  566. itemStyle: {
  567. // 提供的工具函数生成渐变颜色
  568. color: new echarts.graphic.LinearGradient(
  569. // (x1,y2) 点到点 (x2,y2) 之间进行渐变
  570. 0, 0, 0, 1,
  571. [{
  572. offset: 0,
  573. color: '#00fffb'
  574. }, // 0 起始颜色
  575. {
  576. offset: 1,
  577. color: '#0061ce'
  578. } // 1 结束颜色
  579. ]
  580. )
  581. },
  582. // 图表数据名称
  583. name: '岗位统计',
  584. // 图表类型
  585. type: 'bar',
  586. // 柱子宽度
  587. barWidth: '60%',
  588. // 数据
  589. data: countArr
  590. }
  591. ]
  592. };
  593. var myechart = echarts.init($('.users .bar.cate')[0]);
  594. myechart.setOption(option);
  595. }
  596. //订单
  597. function order(data) {
  598. var data = {
  599. day365: {
  600. orders: '20,301,987',
  601. amount: '99834'
  602. },
  603. day90: {
  604. orders: '301,987',
  605. amount: '9834'
  606. },
  607. day30: {
  608. orders: '1,987',
  609. amount: '3834'
  610. },
  611. day1: {
  612. orders: '987',
  613. amount: '834'
  614. }
  615. }
  616. //点击事件
  617. $('.order').on('click', '.filter a', function() {
  618. //点击之后加类名
  619. $(this).addClass('active').siblings().removeClass('active');
  620. // 先获取点击a的 data-key自定义属性
  621. var key = $(this).attr('data-key');
  622. //获取自定义属性
  623. // data{}==>data.shuxing data['shuxing]
  624. key = data[key]; //
  625. $('.order .item h4:eq(0)').text(key.orders);
  626. $('.order .item h4:eq(1)').text(key.amount);
  627. });
  628. //定时器
  629. var index = 0;
  630. var aclick = $('.order a');
  631. setInterval(function() {
  632. index++;
  633. if (index > 3) {
  634. index = 0;
  635. }
  636. //每san秒调用点击事件
  637. aclick.eq(index).click();
  638. }, 3000);
  639. }
  640. //销售
  641. function sale(data) {
  642. let user_month = data.user_month;
  643. let titleArr = [];
  644. let countArr = [];
  645. user_month.forEach((item, index) => {
  646. titleArr.push(item.name)
  647. countArr.push(item.count)
  648. });
  649. var option = {
  650. //鼠标提示工具
  651. tooltip: {
  652. trigger: 'axis'
  653. },
  654. xAxis: {
  655. // 类目类型
  656. type: 'category',
  657. // x轴刻度文字
  658. data: titleArr,
  659. axisTick: {
  660. show: false //去除刻度线
  661. },
  662. axisLabel: {
  663. color: '#4c9bfd' //文本颜色
  664. },
  665. axisLine: {
  666. show: false //去除轴线
  667. },
  668. boundaryGap: false //去除轴内间距
  669. },
  670. yAxis: {
  671. // 数据作为刻度文字
  672. type: 'value',
  673. axisTick: {
  674. show: false //去除刻度线
  675. },
  676. axisLabel: {
  677. color: '#4c9bfd' //文本颜色
  678. },
  679. axisLine: {
  680. show: false //去除轴线
  681. },
  682. boundaryGap: false //去除轴内间距
  683. },
  684. //图例组件
  685. legend: {
  686. textStyle: {
  687. color: '#4c9bfd' // 图例文字颜色
  688. },
  689. right: '10%' //距离右边10%
  690. },
  691. // 设置网格样式
  692. grid: {
  693. show: true, // 显示边框
  694. top: '20%',
  695. left: '3%',
  696. right: '4%',
  697. bottom: '3%',
  698. borderColor: '#012f4a', // 边框颜色
  699. containLabel: true // 包含刻度文字在内
  700. },
  701. series: [{
  702. name: '注册用户',
  703. // 数据
  704. data: countArr,
  705. // 图表类型
  706. type: 'line',
  707. // 圆滑连接
  708. smooth: true,
  709. itemStyle: {
  710. color: '#00f2f1' // 线颜色
  711. }
  712. }]
  713. };
  714. var myechart = echarts.init($('.line')[0]);
  715. myechart.setOption(option);
  716. //点击效果
  717. var data = {
  718. year: [
  719. [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
  720. [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
  721. ],
  722. quarter: [
  723. [23, 75, 12, 97, 21, 67, 98, 21, 43, 64, 76, 38],
  724. [43, 31, 65, 23, 78, 21, 82, 64, 43, 60, 19, 34]
  725. ],
  726. month: [
  727. [34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36],
  728. [56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98]
  729. ],
  730. week: [
  731. [43, 73, 62, 54, 91, 54, 84, 43, 86, 43, 54, 53],
  732. [32, 54, 34, 87, 32, 45, 62, 68, 93, 54, 54, 24]
  733. ]
  734. }
  735. $('.sales ').on('click', '.caption a', function() {
  736. $(this).addClass('active').siblings('a').removeClass('active');
  737. //option series data
  738. //获取自定义属性值
  739. var key = $(this).attr('data-type');
  740. //取出对应的值
  741. key = data[key];
  742. //将值设置到 图表中
  743. option.series[0].data = key[0];
  744. option.series[1].data = key[1];
  745. //再次调用才能在页面显示
  746. myechart.setOption(option);
  747. });
  748. //定时器
  749. var index = 0;
  750. var timer = setInterval(function() {
  751. index++;
  752. if (index > 4) {
  753. index = 0;
  754. };
  755. $('.sales .caption a').eq(index).click();
  756. }, 2000);
  757. }
  758. function gauge(data) {
  759. var option = {
  760. series: [{
  761. type: 'pie',
  762. radius: ['130%', '150%'], // 放大图形
  763. center: ['50%', '80%'], // 往下移动 套住75%文字
  764. label: {
  765. show: false,
  766. },
  767. startAngle: 180,
  768. hoverOffset: 0, // 鼠标经过不变大
  769. data: [{
  770. value: 100,
  771. itemStyle: { // 颜色渐变#00c9e0->#005fc1
  772. color: {
  773. type: 'linear',
  774. x: 0,
  775. y: 0,
  776. x2: 0,
  777. y2: 1,
  778. colorStops: [{
  779. offset: 0,
  780. color: '#00c9e0'
  781. },
  782. {
  783. offset: 1,
  784. color: '#005fc1'
  785. }
  786. ]
  787. }
  788. }
  789. },
  790. {
  791. value: 100,
  792. itemStyle: {
  793. color: '#12274d'
  794. }
  795. }, // 颜色#12274d
  796. {
  797. value: 200,
  798. itemStyle: {
  799. color: 'transparent'
  800. }
  801. } // 透明隐藏第三块区域
  802. ]
  803. }]
  804. };
  805. var myechart = echarts.init($('.gauge')[0]);
  806. myechart.setOption(option);
  807. }
  808. function province(data) {
  809. var data = [{
  810. name: '可爱多',
  811. num: '9,086'
  812. },
  813. {
  814. name: '娃哈哈',
  815. num: '8,341'
  816. },
  817. {
  818. name: '喜之郎',
  819. num: '7,407'
  820. },
  821. {
  822. name: '八喜',
  823. num: '6,080'
  824. },
  825. {
  826. name: '小洋人',
  827. num: '6,724'
  828. },
  829. {
  830. name: '好多鱼',
  831. num: '2,170'
  832. },
  833. ]
  834. $('.inner').on('mouseenter', '.sup li', function() {
  835. $(this).addClass('active').siblings().removeClass('active');
  836. //获取随机的值 sort方法 是给数组排序 a-b是从小到大
  837. //.5-随机0-1的数 可能为正可能为负 排序就会随机
  838. var radomData = data.sort(function(a, b) {
  839. return 0.5 - Math.random()
  840. });
  841. var html = '';
  842. radomData.forEach(function(item) {
  843. html +=
  844. `<li><span>${item.name}</span><span>${item.num} <s class="icon-up"></s></span></li>`;
  845. });
  846. //渲染
  847. $('.sub').html(html);
  848. });
  849. $('.province .sup li').eq(0).mouseenter();
  850. var index = 0;
  851. var timer = setInterval(() => {
  852. index++;
  853. if (index > 5) {
  854. index = 0;
  855. }
  856. $('.sup li').eq(index).mouseenter();
  857. }, 2000);
  858. }