index.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919
  1. function formatNumber(n) {
  2. const str = n.toString();
  3. return str[1] ? str : `0${str}`;
  4. }
  5. export function getNowDate() {
  6. var date = new Date();
  7. const year = date.getFullYear();
  8. const month = date.getMonth() + 1;
  9. const day = date.getDate();
  10. return `${year}${month}${day}`;
  11. }
  12. export function formatTime(date) {
  13. if (date.length <= 11) {
  14. date = date * 1000;
  15. }
  16. var date = new Date(date);
  17. const year = date.getFullYear();
  18. const month = date.getMonth() + 1;
  19. const day = date.getDate();
  20. const hour = date.getHours();
  21. return year + "/" + month + "/" + day;
  22. }
  23. export function formatTimeAnother(date) {
  24. var date = new Date(date * 1000);
  25. const year = date.getFullYear();
  26. const month = date.getMonth() + 1;
  27. const day = date.getDate();
  28. const hour = date.getHours();
  29. return year + "-" + month + "-" + day;
  30. }
  31. export function formatAllTime(date) {
  32. if (date.length <= 11) {
  33. date = date * 1000;
  34. }
  35. var date = new Date(date);
  36. const year = date.getFullYear();
  37. const month = date.getMonth() + 1;
  38. const day = date.getDate();
  39. const hour = date.getHours();
  40. const minutes = date.getMinutes();
  41. return year + "/" + month + "/" + day + " " + hour + ":" + minutes;
  42. }
  43. export function formatTimeForSeconds(date) {
  44. if (date.length <= 11) {
  45. date = date * 1000;
  46. }
  47. var date = new Date(date);
  48. const year = date.getFullYear();
  49. const month = date.getMonth() + 1;
  50. const day = date.getDate();
  51. const hour = date.getHours();
  52. const minute = date.getMinutes();
  53. return year + "/" + month + "/" + day + " " + hour + ":" + minute;
  54. }
  55. export function timestampTwoNum(timestamp) {
  56. var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  57. var Y = date.getFullYear() + ".";
  58. var M =
  59. (date.getMonth() + 1 < 10 ?
  60. "0" + (date.getMonth() + 1) :
  61. date.getMonth() + 1) + ".";
  62. // (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds())
  63. var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate());
  64. // var h = date.getHours() + ":";
  65. // var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) ;
  66. // var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
  67. return (Y + M + D);
  68. }
  69. export function formatValidityTime(date) {
  70. if (date.toString().length <= 11) {
  71. date = date * 1000;
  72. }
  73. var date = new Date(date);
  74. const year = date.getFullYear();
  75. const month = date.getMonth() + 1;
  76. const day = date.getDate();
  77. const hour = date.getHours();
  78. return year + "/" + month + "/" + day + " " + hour + "时";
  79. }
  80. export function formatBirthday(date) {
  81. var date = new Date(date * 1000);
  82. const year = date.getFullYear();
  83. const month = date.getMonth() + 1;
  84. const day = date.getDate();
  85. const hour = date.getHours();
  86. const t1 = [year, month, day].map(formatNumber).join("-");
  87. return `${t1}`;
  88. }
  89. // 专注力与放松力图表 小乌龟
  90. function getLineOption(lineData_att, lineData_med, lineData_amp) {
  91. const that = this;
  92. var option = {
  93. color: ["#FFB400", "#40FF31", "#D4327A"],
  94. legend: {
  95. data: ["Att(专注度)", "Med(放松度)", "Amp(和谐度)"],
  96. top: -5,
  97. left: 210,
  98. // left: 'center',
  99. orient: "horizontal",
  100. icon: "circle",
  101. itemWidth: 8,
  102. itemGap: 5,
  103. // 解决部分安卓手机图例字体显示太小的问题
  104. textStyle: {
  105. // fontWeight: 'bold',
  106. fontSize: 10,
  107. color: "#CFCFCF",
  108. },
  109. selectedMode: false,
  110. show: false,
  111. },
  112. grid: {
  113. left: 20,
  114. right: 20,
  115. bottom: 16,
  116. top: 16,
  117. // show:true,
  118. containLabel: true,
  119. zlevel: 1,
  120. },
  121. tooltip: {
  122. show: true,
  123. trigger: "axis",
  124. },
  125. yAxis: {
  126. x: "center",
  127. type: "value",
  128. splitLine: {
  129. lineStyle: {
  130. type: "dashed",
  131. },
  132. },
  133. axisLine: {
  134. lineStyle: {
  135. color: "#ccc",
  136. },
  137. show: false,
  138. },
  139. axisLabel: {
  140. color: "#ccc",
  141. },
  142. max: 100,
  143. // data: ["0", "20", "40", "60", "80", "100"]
  144. // show: false
  145. },
  146. xAxis: {
  147. type: "category",
  148. boundaryGap: false,
  149. splitLine: {
  150. lineStyle: {
  151. type: "dashed",
  152. },
  153. },
  154. axisLine: {
  155. lineStyle: {
  156. color: "#ccc",
  157. },
  158. },
  159. axisLabel: {
  160. color: "#ccc",
  161. },
  162. show: false,
  163. },
  164. series: [{
  165. name: "Att(专注度)",
  166. symbol: "none", //取消折点圆圈
  167. type: "line",
  168. smooth: true,
  169. data: lineData_att,
  170. },
  171. {
  172. name: "Med(放松度)",
  173. symbol: "none", //取消折点圆圈
  174. type: "line",
  175. smooth: true,
  176. data: lineData_med,
  177. },
  178. {
  179. name: "Amp(和谐度)",
  180. symbol: "none", //取消折点圆圈
  181. type: "line",
  182. smooth: true,
  183. data: lineData_amp,
  184. },
  185. ],
  186. animation: false,
  187. };
  188. return option;
  189. }
  190. // alpha beta
  191. function getABOption(lineData_alphaL, lineData_alphaH, lineData_betaL, lineData_betaH) {
  192. const that = this;
  193. var option = {
  194. color: ["#38FF49", "#00AD0E", "#0060F1", "#00CCFF"],
  195. legend: {
  196. data: ["alphaL", "alphaH", "betaL", "betaH"],
  197. top: -5,
  198. left: 210,
  199. // left: 'center',
  200. orient: "horizontal",
  201. icon: "circle",
  202. itemWidth: 8,
  203. itemGap: 5,
  204. // 解决部分安卓手机图例字体显示太小的问题
  205. textStyle: {
  206. // fontWeight: 'bold',
  207. fontSize: 10,
  208. color: "#CFCFCF",
  209. },
  210. selectedMode: false,
  211. show: false,
  212. },
  213. grid: {
  214. left: 20,
  215. right: 20,
  216. bottom: 16,
  217. top: 16,
  218. // show:true,
  219. containLabel: true,
  220. zlevel: 1,
  221. },
  222. tooltip: {
  223. show: true,
  224. trigger: "axis",
  225. },
  226. yAxis: {
  227. x: "center",
  228. type: "value",
  229. splitLine: {
  230. lineStyle: {
  231. type: "dashed",
  232. },
  233. },
  234. axisLine: {
  235. lineStyle: {
  236. color: "#ccc",
  237. },
  238. show: false,
  239. },
  240. axisLabel: {
  241. color: "#ccc",
  242. },
  243. // max: 100,
  244. // data: ["0", "20", "40", "60", "80", "100"]
  245. // show: false
  246. },
  247. xAxis: {
  248. type: "category",
  249. boundaryGap: false,
  250. splitLine: {
  251. lineStyle: {
  252. type: "dashed",
  253. },
  254. },
  255. axisLine: {
  256. lineStyle: {
  257. color: "#ccc",
  258. },
  259. },
  260. axisLabel: {
  261. color: "#ccc",
  262. },
  263. show: false,
  264. },
  265. series: [{
  266. name: "alphaL",
  267. symbol: "none", //取消折点圆圈
  268. type: "line",
  269. smooth: true,
  270. data: lineData_alphaL,
  271. },
  272. {
  273. name: "alphaH",
  274. symbol: "none", //取消折点圆圈
  275. type: "line",
  276. smooth: true,
  277. data: lineData_alphaH,
  278. },
  279. {
  280. name: "betaL",
  281. symbol: "none", //取消折点圆圈
  282. type: "line",
  283. smooth: true,
  284. data: lineData_betaL,
  285. },
  286. {
  287. name: "betaH",
  288. symbol: "none", //取消折点圆圈
  289. type: "line",
  290. smooth: true,
  291. data: lineData_betaH,
  292. },
  293. ],
  294. animation: false,
  295. };
  296. return option;
  297. }
  298. // delta theta
  299. function getDTOption(delta, theta) {
  300. const that = this;
  301. var option = {
  302. color: ["#FF77B3", "#FFE838"],
  303. legend: {
  304. data: ["Delta", "Theta"],
  305. top: -5,
  306. left: 210,
  307. // left: 'center',
  308. orient: "horizontal",
  309. icon: "circle",
  310. itemWidth: 8,
  311. itemGap: 5,
  312. // 解决部分安卓手机图例字体显示太小的问题
  313. textStyle: {
  314. // fontWeight: 'bold',
  315. fontSize: 10,
  316. color: "#CFCFCF",
  317. },
  318. selectedMode: false,
  319. show: false,
  320. },
  321. grid: {
  322. left: 20,
  323. right: 20,
  324. bottom: 16,
  325. top: 16,
  326. // show:true,
  327. containLabel: true,
  328. zlevel: 1,
  329. },
  330. tooltip: {
  331. show: true,
  332. trigger: "axis",
  333. },
  334. yAxis: {
  335. x: "center",
  336. type: "value",
  337. splitLine: {
  338. lineStyle: {
  339. type: "dashed",
  340. },
  341. },
  342. axisLine: {
  343. lineStyle: {
  344. color: "#ccc",
  345. },
  346. show: false,
  347. },
  348. axisLabel: {
  349. color: "#ccc",
  350. },
  351. // max: 100,
  352. // data: ["0", "20", "40", "60", "80", "100"]
  353. // show: false
  354. },
  355. xAxis: {
  356. type: "category",
  357. boundaryGap: false,
  358. splitLine: {
  359. lineStyle: {
  360. type: "dashed",
  361. },
  362. },
  363. axisLine: {
  364. lineStyle: {
  365. color: "#ccc",
  366. },
  367. },
  368. axisLabel: {
  369. color: "#ccc",
  370. },
  371. show: false,
  372. },
  373. series: [
  374. {
  375. name: "Delta",
  376. symbol: "none", //取消折点圆圈
  377. type: "line",
  378. smooth: true,
  379. data: delta,
  380. },
  381. {
  382. name: "Theta",
  383. symbol: "none", //取消折点圆圈
  384. type: "line",
  385. smooth: true,
  386. data: theta,
  387. },
  388. ],
  389. animation: false,
  390. };
  391. return option;
  392. }
  393. // 基本脑波图
  394. function getBaseOption(delta, theta, low_beta, high_beta, low_alpha, high_alpha) {
  395. const that = this;
  396. var option = {
  397. color: ["#FF77B3", "#FFE838", "#0060F1", "#00CCFF", "#38FF49", "#00AD0E"],
  398. legend: {
  399. data: ["Delta", "Theta", "Low_Beta", "High_Beta","Low_Alpha", "High_Alpha",],
  400. left: "center",
  401. bottom: 20,
  402. icon: "circle",
  403. itemWidth: 8,
  404. itemGap: 25,
  405. // 解决部分安卓手机图例字体显示太小的问题
  406. textStyle: {
  407. // fontWeight: 'bold',
  408. fontSize: 10,
  409. color: "#CFCFCF",
  410. },
  411. show: false,
  412. },
  413. grid: {
  414. left: 20,
  415. right: 20,
  416. bottom: 16,
  417. top: 16,
  418. // show:false,
  419. containLabel: true,
  420. },
  421. tooltip: {
  422. show: true,
  423. trigger: "axis",
  424. },
  425. yAxis: {
  426. x: "center",
  427. type: "value",
  428. splitLine: {
  429. lineStyle: {
  430. type: "dashed",
  431. },
  432. },
  433. axisLine: {
  434. lineStyle: {
  435. color: "#ccc",
  436. },
  437. show: false,
  438. },
  439. axisLabel: {
  440. color: "#ccc",
  441. },
  442. // max: 100,
  443. // data: ["0", "20", "40", "60", "80", "100"]
  444. // show: false
  445. },
  446. xAxis: {
  447. type: "category",
  448. boundaryGap: false,
  449. splitLine: {
  450. lineStyle: {
  451. type: "dashed",
  452. },
  453. },
  454. axisLine: {
  455. lineStyle: {
  456. color: "#ccc",
  457. },
  458. },
  459. axisLabel: {
  460. color: "#ccc",
  461. },
  462. show: false,
  463. },
  464. series: [{
  465. name: "Delta",
  466. symbol: "none", //取消折点圆圈
  467. type: "line",
  468. smooth: true,
  469. data: delta,
  470. },
  471. {
  472. name: "Theta",
  473. symbol: "none", //取消折点圆圈
  474. type: "line",
  475. smooth: true,
  476. data: theta,
  477. },
  478. {
  479. name: "Low_Beta",
  480. symbol: "none", //取消折点圆圈
  481. type: "line",
  482. smooth: true,
  483. data: low_beta,
  484. },
  485. {
  486. name: "High_Beta",
  487. symbol: "none", //取消折点圆圈
  488. type: "line",
  489. smooth: true,
  490. data: high_beta,
  491. },
  492. {
  493. name: "Low_Alpha",
  494. symbol: "none", //取消折点圆圈
  495. type: "line",
  496. smooth: true,
  497. data: low_alpha,
  498. },
  499. {
  500. name: "High_Alpha",
  501. symbol: "none", //取消折点圆圈
  502. type: "line",
  503. smooth: true,
  504. data: high_alpha,
  505. },
  506. ],
  507. animation: false,
  508. };
  509. return option;
  510. }
  511. export function formatSeconds(value) {
  512. var secondTime = parseInt(value); // 秒
  513. var minuteTime = 0; // 分
  514. var hourTime = 0; // 小时
  515. if (secondTime > 60) {
  516. //如果秒数大于60,将秒数转换成整数
  517. //获取分钟,除以60取整数,得到整数分钟
  518. minuteTime = parseInt(secondTime / 60);
  519. //获取秒数,秒数取佘,得到整数秒数
  520. secondTime = parseInt(secondTime % 60);
  521. //如果分钟大于60,将分钟转换成小时
  522. if (minuteTime > 60) {
  523. //获取小时,获取分钟除以60,得到整数小时
  524. hourTime = parseInt(minuteTime / 60);
  525. //获取小时后取佘的分,获取分钟除以60取佘的分
  526. minuteTime = parseInt(minuteTime % 60);
  527. }
  528. }
  529. var result = "" + parseInt(secondTime) + "秒";
  530. if (minuteTime > 0) {
  531. result = "" + parseInt(minuteTime) + "分" + result;
  532. }
  533. if (hourTime > 0) {
  534. result = "" + parseInt(hourTime) + "小时" + result;
  535. }
  536. return result;
  537. }
  538. //获取等级名称
  539. // function get_level_name($level_id) {
  540. // let $level = [
  541. // "普通用户",
  542. // "体验会员",
  543. // "黄金会员",
  544. // "白金会员",
  545. // "钻石会员",
  546. // "创客代理",
  547. // "区域代理",
  548. // "合伙人",
  549. // "店员",
  550. // "店长",
  551. // "老师",
  552. // ];
  553. // return $level[$level_id];
  554. // }
  555. export function cal_down_time($final_time) {
  556. let $today = new Date().getTime();
  557. let $differ = $final_time * 1000 - $today;
  558. //计算出相差天数
  559. var days = Math.floor($differ / (24 * 3600 * 1000));
  560. //计算出小时数
  561. var leave1 = $differ % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  562. var hours = Math.floor(leave1 / (3600 * 1000));
  563. //计算相差分钟数
  564. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  565. var minutes = Math.floor(leave2 / (60 * 1000));
  566. //计算相差秒数
  567. var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
  568. var seconds = Math.round(leave3 / 1000);
  569. return {
  570. differ: $differ,
  571. days,
  572. hours,
  573. minutes,
  574. seconds,
  575. };
  576. }
  577. export function getHightPieChartOption($params, $total) {
  578. let $option = {
  579. tooltip: {
  580. // trigger: 'item'
  581. show: false,
  582. },
  583. series: [{
  584. silent: true,
  585. name: "访问来源",
  586. type: "pie",
  587. radius: ["58%", "85%"],
  588. labelLine: {
  589. show: false,
  590. },
  591. data: [
  592. // {value: $params, name: '高专注占比'},
  593. // {value: Math.abs(100-$params), name: '直接访问'},
  594. {
  595. value: $params,
  596. name: '',
  597. itemStyle: {
  598. normal: {
  599. color: "#FFB72D",
  600. },
  601. },
  602. },
  603. {
  604. value: Math.abs($total - $params),
  605. name: '',
  606. itemStyle: {
  607. normal: {
  608. color: "#E6E6E6",
  609. },
  610. },
  611. },
  612. ]
  613. }]
  614. };
  615. return $option;
  616. }
  617. // 雷达图
  618. export function getRadarChartOption($params) {
  619. var i = -1;
  620. let $option = {
  621. tooltip: {},
  622. color: "#ffb72d",
  623. radar: {
  624. radius: "65%",
  625. indicator: [{
  626. name: "专注力平均值",
  627. max: 100
  628. },
  629. {
  630. name: "高专注指数",
  631. max: 100
  632. },
  633. {
  634. name: "专注唤醒效率",
  635. max: 100
  636. },
  637. {
  638. name: "整体和谐度",
  639. max: 100
  640. },
  641. {
  642. name: "专注力稳定度",
  643. max: 100
  644. },
  645. ],
  646. // 点击事件
  647. triggerEvent: true,
  648. splitArea: {
  649. show: true,
  650. areaStyle: {
  651. color: ["#FFFFFF", "#E6E6E6", "#FFFFFF", "#E6E6E6", "#FFFFFF"],
  652. // 图表背景网格的颜色
  653. }
  654. },
  655. axisLine: {
  656. lineStyle: {
  657. color: "#E6E6E6",
  658. },
  659. },
  660. name: {
  661. rich: {
  662. a: {
  663. color: '#333333',
  664. fontSize: 10,
  665. fontWeight: "400",
  666. fontFamily: "Microsoft YaHei",
  667. },
  668. b: {
  669. color: '#333333',
  670. align: 'center',
  671. padding: 5,
  672. fontSize: 10,
  673. }
  674. },
  675. formatter: (a, b) => {
  676. i++;
  677. return `{a|${a}}\n{b|${$params[i]}}`
  678. }
  679. }
  680. },
  681. series: [{
  682. silent: true,
  683. name: "预算 vs 开销(Budget vs spending)",
  684. type: "radar",
  685. color: "#5470c6",
  686. symbolSize: 3,
  687. data: [{
  688. value: $params,
  689. // name: '实际开销(Actual Spending)'
  690. name: "专注力要素分析数据",
  691. // areaStyle: {
  692. // color: "#FFB72D",
  693. // },
  694. },],
  695. },],
  696. };
  697. return $option;
  698. }
  699. //获取饼状图图属性
  700. export function getPieChartsOption($pie_datas) {
  701. let option = {
  702. series: [{
  703. silent: true,
  704. name: "访问来源",
  705. type: "pie",
  706. radius: ["45%", "70%"],
  707. avoidLabelOverlap: false,
  708. label: {
  709. show: false,
  710. position: "center",
  711. },
  712. // right: "40%",
  713. emphasis: {
  714. label: {
  715. show: true,
  716. fontSize: "30",
  717. fontWeight: "bold",
  718. },
  719. },
  720. labelLine: {
  721. show: false,
  722. },
  723. data: $pie_datas,
  724. },],
  725. };
  726. return option;
  727. }
  728. // 受干扰次数 getInterfereChartsOption 小乌龟
  729. export function getInterfereChartsOption(interfere_datas) {
  730. // console.log('干扰初始化', interfere_datas)
  731. if (interfere_datas) {
  732. let option = {
  733. color: '#23CC92',
  734. // 标题
  735. title: {
  736. // left: 1220,
  737. },
  738. // 提示
  739. tooltip: {
  740. trigger: "axis",
  741. axisPointer: {
  742. type: "shadow",
  743. },
  744. },
  745. grid: {
  746. top: 20,
  747. bottom: 20
  748. },
  749. // x轴数据显示
  750. xAxis: {
  751. type: 'category',
  752. boundaryGap: false,
  753. // data: ['0', '2', '4', '6', '8', '10', '12', '14', '16', '18', '20'],
  754. splitNumber: 11,
  755. },
  756. // y轴坐标显示
  757. yAxis: {
  758. color: '#23CC92',
  759. type: "value",
  760. splitNumber: 5,
  761. min: -100,
  762. max: 0,
  763. axisLabel: {
  764. formatter: '{value}',
  765. textStyle: {
  766. color: '#23CC92'
  767. }
  768. }
  769. },
  770. //数据配置项
  771. series: [{
  772. data: interfere_datas,
  773. type: "line",
  774. large: true,
  775. areaStyle: {}
  776. },],
  777. }
  778. return option
  779. }
  780. }
  781. // 能力调整 getAdjustmentChartsOption
  782. export function getAdjustmentChartsOption(interfere_datas) {
  783. // console.log('调整初始化', interfere_datas)
  784. if (interfere_datas) {
  785. let option = {
  786. color: '#F3A100',
  787. // 标题
  788. title: {
  789. // left: 1220,
  790. },
  791. grid: {
  792. top: 20,
  793. bottom: 20
  794. },
  795. // 提示
  796. tooltip: {
  797. trigger: "axis",
  798. axisPointer: {
  799. type: "shadow",
  800. },
  801. },
  802. // x轴数据显示
  803. xAxis: {
  804. type: 'category',
  805. boundaryGap: false,
  806. },
  807. // y轴坐标显示
  808. yAxis: {
  809. // x: "center",
  810. type: "value",
  811. splitNumber: 5,
  812. min: 0,
  813. max: 100,
  814. axisLabel: {
  815. formatter: '{value}',
  816. textStyle: {
  817. color: '#F3A100'
  818. }
  819. }
  820. },
  821. //数据配置项
  822. series: [{
  823. data: interfere_datas,
  824. type: "line",
  825. large: true,
  826. areaStyle: {}
  827. },],
  828. }
  829. return option
  830. }
  831. }
  832. // 时间戳转化成时间格式
  833. export function timestampToTimeS(timestamp) {
  834. var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  835. var Y = date.getFullYear() + "-";
  836. var M =
  837. (date.getMonth() + 1 < 10 ?
  838. "0" + (date.getMonth() + 1) :
  839. date.getMonth() + 1) + "-";
  840. var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  841. var h = date.getHours() + ":";
  842. var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
  843. var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
  844. return Y + M + D + h + m + s;
  845. }
  846. // 成绩记录干扰图表数据处理
  847. export function interfereAction($data) {
  848. if ($data) {
  849. let $interfereArr = []
  850. let $objData = {};
  851. // 自定义的对象 1200s 20分钟
  852. for (var i = 0; i < 1200; i++) {
  853. $objData[i] = 0;
  854. }
  855. var $newObj = Object.assign($objData, $data);
  856. // 对象转数组
  857. for (const key in $newObj) {
  858. $interfereArr.push($newObj[key]);
  859. }
  860. return $interfereArr
  861. } else {
  862. console.log("无数据", $data)
  863. }
  864. }
  865. export default {
  866. formatNumber,
  867. formatTime,
  868. getLineOption,
  869. getABOption,
  870. getDTOption,
  871. getBaseOption,
  872. // get_level_name,
  873. timestampToTimeS,
  874. interfereAction
  875. };