terminalDataDialog.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  1. <template>
  2. <div class="c1" @mouseleave="leaveFun">
  3. <div style="display: flex;justify-content: center;width: 100%;flex-wrap: wrap">
  4. <div style="position: relative;height: 38px">
  5. <div class="overTitle">资源台账</div>
  6. <img src="@/assets/images/main/cont_title_bg.png" width="284" alt="" class="Img">
  7. </div>
  8. <div class="c1_bg">
  9. <div class="c1_title"></div>
  10. <div class="c1_body">
  11. <div style="display: flex;justify-content: center;align-items: center;margin-bottom: 10px">
  12. <img src="../../../assets/zhang/pubicCar/car.png" width="68" style="margin-right: 20px">
  13. <div class="carNum" style="color: rgba(0,255,255,0.3)">0</div>
  14. <div class="carNum" style="color: rgba(0,255,255,0.3)">0</div>
  15. <div class="carNum">2</div>
  16. <div class="carNum">8</div>
  17. <div class="carNum">2</div>
  18. <div class="carText">辆</div>
  19. </div>
  20. <div class="c1_titleText"></div>
  21. <div style="display: flex;justify-content: center;align-items: center;margin-bottom: 20px">
  22. <div class="carTypeNumBox" v-for="(it, index) in carTypeNum">
  23. <div style="display: flex;width: 100%;height: 25px">
  24. <img src="../../../assets/zhang/pubicCar/miniCar.png" width="18" style="object-fit: cover">
  25. <div style="color: white;font-size: 15px">{{ it.type }}</div>
  26. </div>
  27. <div style="width: 100%;height: 25px;color: #00FFFF;display: flex">
  28. <div style="font-size: 25px">{{ it.num }}</div>
  29. <div style="font-size: 10px;height: 100%;display: flex;align-items: end">辆</div>
  30. </div>
  31. </div>
  32. </div>
  33. <div style="display: flex;width: 100%;">
  34. <div style="width: 50%">
  35. <div class="c1_titleText_half1"></div>
  36. <div style="display: flex;align-items: center;margin-bottom: 10px;padding-left: 50px">
  37. <div style="height: 50px;margin-right: 15px" v-for="(it, index) in carUseNum">
  38. <div style="display: flex;width: 100%;height: 25px;align-items: center">
  39. <img src="../../../assets/zhang/pubicCar/miniCar.png" width="18" style="object-fit: cover">
  40. <div style="color: white;font-size: 13px">{{ it.type }}</div>
  41. </div>
  42. <div style="width: 100%;height: 25px;color: #00FFFF;display: flex">
  43. <div style="font-size: 25px">{{ it.num }}</div>
  44. <div style="font-size: 10px;height: 100%;display: flex;align-items: end">辆</div>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <div style="width: 50%">
  50. <div class="c1_titleText_half2"></div>
  51. <div style="display: flex;align-items: center;margin-bottom: 10px;padding-left: 50px">
  52. <div style="height: 50px;margin-right: 15px" v-for="(it, index) in carActivationNum">
  53. <div style="display: flex;width: 100%;height: 25px;align-items: center">
  54. <img src="../../../assets/zhang/pubicCar/miniCar.png" width="18" style="object-fit: cover">
  55. <div style="color: white;font-size: 13px">{{ it.type }}</div>
  56. </div>
  57. <div style="width: 100%;height: 25px;color: #00FFFF;display: flex">
  58. <div style="font-size: 25px">{{ it.num }}</div>
  59. <div style="font-size: 10px;height: 100%;display: flex;align-items: end">辆</div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div style="display: flex;width: 100%;flex-wrap: wrap;margin-top: 10px">
  67. <div style="width: 50%;margin-bottom: 10px">
  68. <div class="c1_title_half">
  69. <div style="position: absolute;left: 20px;top: -5px;">公务车编制数</div>
  70. </div>
  71. <div style="display: flex;align-items: center">
  72. <img src="../../../assets/zhang/public_car.png" width="58" style="margin: 10px 5px 0 33px">
  73. <div style="width: 108px;height: 24px;color: #00FFFF;font-size: 34px;margin-bottom: 10px">
  74. <span>5566</span>
  75. <span style="width: 15px;height: 24px;font-size: 14px;align-content: end">辆</span>
  76. </div>
  77. </div>
  78. </div>
  79. <div style="width: 50%;margin-bottom: 10px">
  80. <div class="c1_title_half">
  81. <div style="position: absolute;left: 20px;top: -5px;">公务车缺编率</div>
  82. </div>
  83. <div style="display: flex;align-items: center">
  84. <div style="position: relative">
  85. <img src="../../../assets/zhang/pubicCar/arcBlueEx.png" width="90" style="margin: 20px 5px 0 33px">
  86. <div style="position: absolute;color: #00FFFF;top: 5px;left: 55px;font-size: 34px">56<span style="font-size: 12px">%</span></div>
  87. </div>
  88. </div>
  89. </div>
  90. <div style="width: 50%;margin-bottom: 10px">
  91. <div class="c1_title_half">
  92. <div style="position: absolute;left: 20px;top: -5px;">公务车占编率</div>
  93. </div>
  94. <div style="display: flex;align-items: center">
  95. <div style="position: relative">
  96. <img src="../../../assets/zhang/pubicCar/arcBlueEx.png" width="90" style="margin: 20px 5px 0 33px">
  97. <div style="position: absolute;color: #00FFFF;top: 5px;left: 55px;font-size: 34px">56<span style="font-size: 12px">%</span></div>
  98. </div>
  99. </div>
  100. </div>
  101. <div style="width: 50%;margin-bottom: 10px">
  102. <div class="c1_title_half">
  103. <div style="position: absolute;left: 20px;top: -5px;">2025年度公务车车辆数</div>
  104. </div>
  105. <div style="display: flex;align-items: center;margin-bottom: 20px">
  106. <div style="position: relative" @click="chooseX">
  107. <img src="../../../assets/zhang/pubicCar/arcBlue.png" width="97" style="margin: 10px 5px 0 33px">
  108. <div style="position: absolute;width: 48px;color: #00FFFF;top: 5px;left: 55px;font-size: 12px;text-align: center">年度增加车辆数</div>
  109. </div>
  110. <div style="width: 108px;height: 24px;color: #00FFFF;font-size: 34px;margin-bottom: 20px">
  111. <span>56</span>
  112. <span style="width: 15px;height: 24px;font-size: 10px;align-content: end">万辆</span>
  113. </div>
  114. </div>
  115. <div style="display: flex;align-items: center">
  116. <div style="position: relative" @click="chooseY">
  117. <img src="../../../assets/zhang/pubicCar/arcOrange.png" width="97" style="margin: 10px 5px 0 33px">
  118. <div style="position: absolute;width: 48px;color: #FEC72F;top: 5px;left: 55px;font-size: 12px;text-align: center">年度减少车辆数</div>
  119. </div>
  120. <div style="width: 108px;height: 24px;color: #FEC72F;font-size: 34px;margin-bottom: 20px">
  121. <span>56</span>
  122. <span style="width: 15px;height: 24px;font-size: 10px;align-content: end">万辆</span>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. </template>
  131. <script>
  132. import LineChart from "@/components/Echarts/LineChart";
  133. import PieChart from "@/components/Echarts/PieChart";
  134. import BarChart from "@/components/Echarts/BarChart.vue";
  135. import echarts from "echarts";
  136. export default {
  137. name: "BuildingSaveDialog",
  138. components: {
  139. BarChart,
  140. PieChart,
  141. LineChart,
  142. },
  143. props: {},
  144. data() {
  145. return {
  146. carTypeNum:[
  147. {
  148. type: "商务车",
  149. num: 56
  150. },
  151. {
  152. type: "越野车",
  153. num: 56
  154. },
  155. {
  156. type: "小轿车",
  157. num: 56
  158. },
  159. {
  160. type: "小型客车",
  161. num: 56
  162. },
  163. {
  164. type: "大型客车",
  165. num: 56
  166. }
  167. ],
  168. carUseNum:[
  169. {
  170. type: "企业用车",
  171. num: 56
  172. },
  173. {
  174. type: "企业负责人用车",
  175. num: 56
  176. }
  177. ],
  178. carActivationNum:[
  179. {
  180. type: "燃油汽车",
  181. num: 56
  182. },
  183. {
  184. type: "新能源汽车",
  185. num: 56
  186. }
  187. ],
  188. //在线数
  189. pieData: [],
  190. catePieData: [
  191. { value: 40, name: "新能源汽车" },
  192. { value: 20, name: "燃油汽车" },
  193. ],
  194. totalPieData: [
  195. { value: 110, name: "商务车" },
  196. { value: 120, name: "越野车" },
  197. { value: 130, name: "小型客车" },
  198. { value: 140, name: "大型客车" },
  199. { value: 150, name: "小轿车" },
  200. ],
  201. catePieLegend: {
  202. orient: "vertical",
  203. top: 60,
  204. right: 23,
  205. itemWidth: 8, // 设置图例标记的宽度
  206. itemHeight: 8, // 设置图例标记的高度
  207. textStyle: {
  208. color: "#FFF",
  209. },
  210. },
  211. totalPieLegend: {
  212. top: 20,
  213. right: 10,
  214. itemWidth: 8,
  215. itemHeight: 8,
  216. orient: "vertical",
  217. textStyle: {
  218. color: "#FFF",
  219. },
  220. },
  221. pieLegend: {
  222. orient: "vertical",
  223. top: 50,
  224. right: 30,
  225. itemWidth: 8, // 设置图例标记的宽度
  226. itemHeight: 8, // 设置图例标记的高度
  227. textStyle: {
  228. color: "#FFF",
  229. },
  230. },
  231. pieCenter: ["27%", "50%"],
  232. totalCenter: ["30%", "50%"],
  233. catePieCenter: ["27%", "50%"],
  234. pieRadius: ["35%", "50%"],
  235. //各单位终端在线
  236. barData: [],
  237. barAxis: {},
  238. barYAxis: {},
  239. barLegend: {},
  240. personInOutBarData: [
  241. {
  242. name: "员工",
  243. type: "bar",
  244. itemStyle: {
  245. color: "#43DCDB",
  246. //barBorderRadius: [10, 10, 0, 0], // 统一设置四个角的圆角大小
  247. },
  248. barWidth: 10,
  249. data: [110, 120, 130, 140, 150, 160, 155, 145, 135, 125, 115, 15],
  250. },
  251. {
  252. name: "访客",
  253. type: "bar",
  254. itemStyle: {
  255. color: "#FFD296",
  256. //barBorderRadius: [10, 10, 0, 0], // 统一设置四个角的圆角大小
  257. },
  258. barWidth: 10,
  259. data: [10, 20, 30, 40, 50, 60, 55, 45, 35, 25, 15, 5],
  260. },
  261. ],
  262. personInOutBarAxis: {
  263. type: "category",
  264. data: [
  265. "01月",
  266. "02月",
  267. "03月",
  268. "04月",
  269. "05月",
  270. "06月",
  271. "07月",
  272. "08月",
  273. "09月",
  274. "10月",
  275. "11月",
  276. "12月",
  277. ],
  278. axisLabel: {
  279. color: "white", // 设置横坐标轴字体颜色为红色
  280. },
  281. axisLine: {
  282. show: true,
  283. lineStyle: {
  284. color: "#08595B",
  285. },
  286. },
  287. axisTick: {
  288. show: false,
  289. },
  290. splitArea: false,
  291. },
  292. personInOutBarYaxis: {
  293. type: "value",
  294. boundaryGap: [0, 0.01],
  295. name: "人",
  296. nameTextStyle: {
  297. color: "#fff",
  298. },
  299. axisLine: {
  300. show: false,
  301. },
  302. axisLabel: {
  303. color: "white", // 设置横坐标轴字体颜色为红色
  304. },
  305. splitLine: {
  306. show: false,
  307. },
  308. axisTick: {
  309. show: false,
  310. },
  311. splitArea: false,
  312. },
  313. personInOutBarLegend: {
  314. top: 0,
  315. orient: "horizontal",
  316. right: 0,
  317. itemWidth: 17, // 设置图例标记的宽度
  318. itemHeight: 10, // 设置图例标记的高度
  319. textStyle: {
  320. color: "#FFF",
  321. },
  322. },
  323. barGrid: {
  324. top: 30,
  325. left: "2%",
  326. right: "5%",
  327. containLabel: true,
  328. bottom: 0,
  329. },
  330. departmentPersonInOutBarData: [
  331. {
  332. name: "员工",
  333. type: "bar",
  334. itemStyle: {
  335. color: "#43DCDB",
  336. //barBorderRadius: [10, 10, 0, 0], // 统一设置四个角的圆角大小
  337. },
  338. barWidth: 10,
  339. data: [110, 150, 160, 135, 115, 15],
  340. },
  341. {
  342. name: "访客",
  343. type: "bar",
  344. itemStyle: {
  345. color: "#FFD296",
  346. //barBorderRadius: [10, 10, 0, 0], // 统一设置四个角的圆角大小
  347. },
  348. barWidth: 10,
  349. data: [10, 20, 30, 40, 50, 60, 55, 45, 35, 25, 15, 5],
  350. },
  351. ],
  352. departmentPersonInOutBarAxis: {
  353. type: "category",
  354. data: ["财务资产部", "离退休工作部", "后勤保障部", "物资管理部", "数字化工作部", "纪委办公室"],
  355. axisLabel: {
  356. color: "white", // 设置横坐标轴字体颜色为红色
  357. },
  358. axisLine: {
  359. show: true,
  360. lineStyle: {
  361. color: "#08595B",
  362. },
  363. },
  364. axisTick: {
  365. show: false,
  366. },
  367. splitArea: false,
  368. },
  369. departmentPersonInOutBarYaxis: {
  370. type: "value",
  371. boundaryGap: [0, 0.01],
  372. name: "人",
  373. nameTextStyle: {
  374. color: "#fff",
  375. },
  376. axisLine: {
  377. show: false,
  378. },
  379. axisLabel: {
  380. color: "white", // 设置横坐标轴字体颜色为红色
  381. },
  382. splitLine: {
  383. show: false,
  384. },
  385. axisTick: {
  386. show: false,
  387. },
  388. splitArea: false,
  389. },
  390. departmentPersonInOutBarLegend: {
  391. top: 0,
  392. orient: "horizontal",
  393. right: 0,
  394. itemWidth: 17, // 设置图例标记的宽度
  395. itemHeight: 10, // 设置图例标记的高度
  396. textStyle: {
  397. color: "#FFF",
  398. },
  399. },
  400. visitorDataList: [
  401. {
  402. name: "于俊",
  403. time: "2024 / 11 / 15 15:01",
  404. department: "财务资产部",
  405. },
  406. {
  407. name: "于俊",
  408. time: "2024 / 11 / 15 14:58",
  409. department: "财务资产部",
  410. },
  411. {
  412. name: "于俊",
  413. time: "2024 / 11 / 15 14:55",
  414. department: "财务资产部",
  415. },
  416. {
  417. name: "于俊",
  418. time: "2024 / 11 / 15 14:01",
  419. department: "财务资产部",
  420. },
  421. ],
  422. warningList: [
  423. {
  424. name: "国网太原供电公司",
  425. data1: 356,
  426. data2: 100,
  427. data3: 56,
  428. data4: 67,
  429. data5: 133,
  430. },
  431. {
  432. name: "国网临汾供电公司",
  433. data1: 324,
  434. data2: 80,
  435. data3: 95,
  436. data4: 63,
  437. data5: 86,
  438. },
  439. {
  440. name: "国网晋城供电公司",
  441. data1: 286,
  442. data2: 80,
  443. data3: 65,
  444. data4: 46,
  445. data5: 95,
  446. },
  447. {
  448. name: "国网长治供电公司",
  449. data1: 275,
  450. data2: 84,
  451. data3: 72,
  452. data4: 63,
  453. data5: 56,
  454. },
  455. {
  456. name: "国网运城供电公司",
  457. data1: 268,
  458. data2: 70,
  459. data3: 65,
  460. data4: 73,
  461. data5: 60,
  462. },
  463. ],
  464. };
  465. },
  466. created() {
  467. this.handlePie();
  468. this.handleBar();
  469. },
  470. destroyed() {},
  471. beforeDestroy() {},
  472. mounted() {},
  473. methods: {
  474. chooseX(){
  475. this.$emit('chooseX')
  476. },
  477. chooseY(){
  478. this.$emit('chooseY')
  479. },
  480. //实例化饼图
  481. handlePie() {
  482. this.pieData = [
  483. { value: 100, name: "离线数" },
  484. { value: 200, name: "在线数" },
  485. ];
  486. },
  487. //实例化柱状图
  488. handleBar() {
  489. this.barData = [
  490. {
  491. name: "总数",
  492. type: "bar",
  493. itemStyle: {
  494. color: "#43DCDB",
  495. },
  496. barWidth: 10,
  497. data: [320, 332, 201, 334, 390, 100],
  498. },
  499. {
  500. name: "离线数",
  501. type: "bar",
  502. itemStyle: {
  503. color: "#EAA553",
  504. },
  505. barWidth: 10,
  506. data: [220, 232, 301, 334, 190, 200],
  507. },
  508. {
  509. name: "在线数",
  510. type: "bar",
  511. itemStyle: {
  512. color: "#1B5CBB",
  513. },
  514. barWidth: 10,
  515. data: [120, 332, 101, 134, 290, 300],
  516. },
  517. ];
  518. this.barGrid = {
  519. top: 30,
  520. bottom: 0,
  521. left: "2%",
  522. right: "5%",
  523. containLabel: true,
  524. };
  525. this.barLegend = {
  526. right: 20,
  527. top: 0,
  528. itemWidth: 17, // 设置图例标记的宽度
  529. itemHeight: 10, // 设置图例标记的高度
  530. textStyle: {
  531. color: "#FFF",
  532. },
  533. };
  534. this.barAxis = {
  535. type: "category",
  536. data: [
  537. "国网太原供电公司",
  538. "国网运城供电公司",
  539. "国网临汾供电公司",
  540. "国网晋城供电公司",
  541. "国网吕梁供电公司",
  542. ],
  543. axisLabel: {
  544. color: "white", // 设置横坐标轴字体颜色为红色
  545. rotate:-50
  546. },
  547. axisLine: {
  548. lineStyle: {
  549. color: "#08595B",
  550. },
  551. },
  552. axisTick: {
  553. show: false,
  554. },
  555. splitArea: false,
  556. };
  557. this.barYAxis = {
  558. name: "数量(个)",
  559. nameTextStyle: {
  560. color: "#fff",
  561. padding: [0, 0, 0, 5],
  562. fontSize: 14,
  563. },
  564. axisLabel: {
  565. formatter: "{value}",
  566. color: "#FFF",
  567. },
  568. axisLine: {
  569. show: false,
  570. },
  571. axisTick: {
  572. show: false,
  573. },
  574. splitLine: {
  575. show: false,
  576. },
  577. splitArea: false,
  578. };
  579. },
  580. //鼠标移出
  581. leaveFun() {
  582. setTimeout(() => {
  583. this.$emit("closeDialog");
  584. }, 200);
  585. },
  586. preventDefault() {
  587. console.log(11);
  588. },
  589. },
  590. };
  591. </script>
  592. <style lang="scss" scoped>
  593. .c1 {
  594. width: 580px;
  595. height: 920px;
  596. padding-top: 19px;
  597. background: url("../../../assets/images/main/main_bg.png") no-repeat;
  598. background-size: cover;
  599. }
  600. .Img {
  601. width: 284px;
  602. height: 32px;
  603. }
  604. .c1_bg{
  605. width: 550px;
  606. height: 849px;
  607. background: url("../../../assets/images/main/components_long_bg.png") no-repeat;
  608. background-size: cover;
  609. margin-top: 4px;
  610. }
  611. .overTitle{
  612. width: 100%;
  613. top: -5px;
  614. color: white;
  615. font-family: 'PingFangSC';
  616. font-size: 20px;
  617. font-weight: 900;
  618. position: absolute;
  619. display: flex;
  620. align-items: center;
  621. justify-content: center;
  622. }
  623. .c1_title{
  624. width: 100%;
  625. height: 36px;
  626. background: url("../../../assets/images/main/title_pro_long.png") no-repeat;
  627. color: #00FFFF;
  628. margin: 20px 0 0 15px;
  629. position: relative;
  630. }
  631. .c1_title::after{
  632. content: '公务车实有数';
  633. position: absolute;
  634. left: 20px;
  635. top: -5px;
  636. }
  637. .carNum{
  638. width: 40px;
  639. height: 58px;
  640. margin-right: 3px;
  641. background: url("../../../assets/zhang/pubicCar/numBack.png") no-repeat;
  642. color: #00FFFF;
  643. font-size: 40px;
  644. display: flex;
  645. justify-content: center;
  646. align-items: center;
  647. font-style: oblique;
  648. }
  649. .carText{
  650. width: 40px;
  651. height: 58px;
  652. color: #00FFFF;
  653. font-size: 24px;
  654. margin-left: 3px;
  655. align-content: end;
  656. }
  657. .c1_titleText{
  658. width: 100%;
  659. height: 32px;
  660. margin-left: 35px;
  661. margin-bottom: 10px;
  662. background: url("../../../assets/zhang/pubicCar/titleBox.png") no-repeat;
  663. position: relative;
  664. }
  665. .c1_titleText::after{
  666. content: '车辆类型';
  667. position: absolute;
  668. color: #FFFFFF;
  669. font-size: 12px;
  670. left: 20px;
  671. top: 8px;
  672. }
  673. .carTypeNumBox{
  674. width: 95px;
  675. height: 50px;
  676. }
  677. .c1_titleText_half1{
  678. height: 32px;
  679. margin-left: 35px;
  680. margin-bottom: 10px;
  681. background: url("../../../assets/zhang/pubicCar/titleBox.png") no-repeat;
  682. position: relative;
  683. }
  684. .c1_titleText_half1::after{
  685. content: '车辆用途';
  686. position: absolute;
  687. color: #FFFFFF;
  688. font-size: 12px;
  689. left: 20px;
  690. top: 8px;
  691. }
  692. .c1_titleText_half2{
  693. height: 32px;
  694. margin-left: 35px;
  695. margin-bottom: 10px;
  696. background: url("../../../assets/zhang/pubicCar/titleBox.png") no-repeat;
  697. position: relative;
  698. }
  699. .c1_titleText_half2::after{
  700. content: '动力类型';
  701. position: absolute;
  702. color: #FFFFFF;
  703. font-size: 12px;
  704. left: 20px;
  705. top: 8px;
  706. }
  707. .c1_title_half{
  708. width: 100%;
  709. height: 36px;
  710. background: url("../../../assets/images/main/title_pro.png") no-repeat;
  711. color: #00FFFF;
  712. margin: 20px 0 0 15px;
  713. position: relative;
  714. }
  715. </style>