twelve_2.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. <template>
  2. <myMain>
  3. <div class="hatch">
  4. <el-row>
  5. <el-col :span="24" class="animate__animated animate__backInRight" v-loading="loading">
  6. <div class="head">
  7. <div class="head_1">产学研用平台孵化大脑</div>
  8. <div class="head_2" id="showTime">{{ formattedTime }}</div>
  9. </div>
  10. <div class="center">
  11. <ul class="clearfix">
  12. <li>
  13. <div class="boxall">
  14. <div class="titleall">模块标题</div>
  15. <div class="list">
  16. <div class="list_1" v-for="i in listOne" :key="i.value">
  17. <h2>{{ i.value }}</h2>
  18. <span>{{ i.label }}</span>
  19. </div>
  20. </div>
  21. <div class="boxfoot"></div>
  22. </div>
  23. </li>
  24. <li>
  25. <div class="barnav">
  26. <div class="top">
  27. <div class="list" v-for="i in listTwo" :key="i.value">
  28. <div class="value">{{ i.value }}</div>
  29. </div>
  30. </div>
  31. <div class="top">
  32. <div class="list" v-for="i in listTwo" :key="i.value">
  33. <div class="label">{{ i.label }}</div>
  34. </div>
  35. </div>
  36. <div class="boxfoot"></div>
  37. </div>
  38. <div class="mapbox">
  39. <map1 class="map"></map1>
  40. </div>
  41. </li>
  42. <li>
  43. <div class="boxall">
  44. <div class="titleall">模块标题</div>
  45. <div class="list">
  46. <div class="list_1" v-for="i in listOne" :key="i.value">
  47. <h2>{{ i.value }}</h2>
  48. <span>{{ i.label }}</span>
  49. </div>
  50. </div>
  51. <div class="boxfoot"></div>
  52. </div>
  53. </li>
  54. </ul>
  55. <ul class="clearfix">
  56. <li>
  57. <div class="boxall">
  58. <div class="titleall">模块标题</div>
  59. <div class="list thr">
  60. <div class="list_1" v-for="i in listThr" :key="i.value">
  61. <h2>{{ i.value }}</h2>
  62. <span>{{ i.label }}</span>
  63. </div>
  64. </div>
  65. <div class="boxfoot"></div>
  66. </div>
  67. </li>
  68. <li></li>
  69. <li>
  70. <div class="boxall">
  71. <div class="titleall">优质企业</div>
  72. <div class="list four">
  73. <vue3-seamless-scroll
  74. :list="listFour"
  75. :hover="true"
  76. :step="0.2"
  77. :wheel="true"
  78. :isWatch="true"
  79. class="scroll"
  80. >
  81. <div class="wrap" v-for="(item, index) in listFour" :key="index">
  82. <div class="other">{{ item.name }}</div>
  83. <div class="other">{{ item.number }}人</div>
  84. <div class="other">{{ item.time }}</div>
  85. </div>
  86. </vue3-seamless-scroll>
  87. </div>
  88. <div class="boxfoot"></div>
  89. </div>
  90. </li>
  91. </ul>
  92. <ul class="clearfix" style="display: flex; justify-content: space-between">
  93. <li style="width: 49.5%">
  94. <div class="boxall">
  95. <div class="titleall">模块标题</div>
  96. <div class="five">
  97. <echarts1></echarts1>
  98. </div>
  99. <div class="boxfoot"></div>
  100. </div>
  101. </li>
  102. <li style="width: 49.5%">
  103. <div class="boxall">
  104. <div class="titleall">模块标题</div>
  105. <div class="six">
  106. <echarts2></echarts2>
  107. </div>
  108. <div class="boxfoot"></div>
  109. </div>
  110. </li>
  111. </ul>
  112. </div>
  113. </el-col>
  114. </el-row>
  115. <!-- <div class="copyright">
  116. 版权所有:Copyright©2007-2024 吉林省华欣数字科技股份有限公司 │ 吉ICP备14005689号
  117. </div> -->
  118. </div>
  119. </myMain>
  120. </template>
  121. <script setup>
  122. import myMain from './dataV/myMain.vue'
  123. import map1 from './path/map.vue'
  124. import echarts1 from './path/echarts1.vue'
  125. import echarts2 from './path/echarts2.vue'
  126. // 加载中
  127. const loading = ref(false)
  128. // 时间
  129. const formattedTime = ref('')
  130. const listOne = ref([
  131. { value: '1824', label: '华东地区' },
  132. { value: '1920', label: '华南地区' },
  133. { value: '19%', label: '华西地区' },
  134. { value: '1824', label: '华北地区' }
  135. ])
  136. const listTwo = ref([
  137. { value: '1942', label: '字段名称' },
  138. { value: '98612', label: '字段名称' },
  139. { value: '2091', label: '字段名称' }
  140. ])
  141. const listThr = ref([
  142. { value: '1942', label: '字段名称' },
  143. { value: '98612', label: '字段名称' },
  144. { value: '2091', label: '字段名称' },
  145. { value: '1942', label: '字段名称' },
  146. { value: '98612', label: '字段名称' },
  147. { value: '2091', label: '字段名称' },
  148. { value: '1942', label: '字段名称' },
  149. { value: '98612', label: '字段名称' },
  150. { value: '2091', label: '字段名称' }
  151. ])
  152. const listFour = ref([
  153. { name: '深圳腾讯科技有限公司', number: '100', time: '2023-4-22' },
  154. { name: '网易科技有限公司', number: '1万人以上', time: '2023-6-15' },
  155. { name: '百度科技有限公司', number: '1000', time: '2023-5-30' },
  156. { name: '汽车之家科技有限公司', number: '1000', time: '2023-7-12' },
  157. { name: '小米科技有限公司', number: '1000', time: '2023-5-14' },
  158. { name: '网易科技有限公司', number: '1万人以上', time: '2023-6-15' },
  159. { name: '百度科技有限公司', number: '1000', time: '2023-5-30' },
  160. { name: '汽车之家科技有限公司', number: '1000', time: '2023-7-12' },
  161. { name: '小米科技有限公司', number: '1000', time: '2023-5-14' }
  162. ])
  163. // 请求
  164. onMounted(async () => {
  165. loading.value = true
  166. await updateTime()
  167. loading.value = false
  168. })
  169. // 创建一个函数来格式化时间并更新状态
  170. const updateTime = () => {
  171. const now = new Date()
  172. const options = {
  173. year: 'numeric',
  174. month: '2-digit',
  175. day: '2-digit',
  176. hour: '2-digit',
  177. minute: '2-digit',
  178. second: '2-digit',
  179. hour12: false
  180. }
  181. formattedTime.value = now.toLocaleString('zh-CN', options)
  182. }
  183. const timer = setInterval(updateTime, 1000)
  184. onMounted(() => {
  185. timer // 开始计时器
  186. })
  187. onBeforeUnmount(() => {
  188. clearInterval(timer) // 组件卸载前清除计时器
  189. })
  190. </script>
  191. <style scoped lang="scss">
  192. .hatch {
  193. min-height: 100%;
  194. width: 100%;
  195. position: relative;
  196. background: url('./images/bg.jpg');
  197. background-size: 100% 100%;
  198. padding: 0px;
  199. margin: 0px;
  200. color: #222;
  201. font-family: '微软雅黑';
  202. cursor: default; /* 将鼠标样式更改为箭头 */
  203. @font-face {
  204. font-family: electronicFont;
  205. src: url(./font/DS-DIGIT.TTF);
  206. }
  207. a:hover {
  208. color: #06c;
  209. text-decoration: none !important;
  210. }
  211. .head {
  212. position: relative;
  213. height: 4.5rem;
  214. background: url('./images/head_bg.png') no-repeat center center;
  215. background-size: 100% 100%;
  216. .head_1 {
  217. color: #fff;
  218. text-align: center;
  219. font-size: 2.3rem;
  220. line-height: 2.3rem;
  221. margin: 1rem 0;
  222. }
  223. .head_2 {
  224. position: absolute;
  225. right: 1rem;
  226. top: 0.2rem;
  227. line-height: 1.5rem;
  228. color: rgba(255, 255, 255, 0.7);
  229. font-size: 1.5rem;
  230. padding-right: 0.5rem;
  231. font-family: electronicFont;
  232. }
  233. }
  234. .clearfix {
  235. display: flex;
  236. padding: 0 0.5rem;
  237. list-style-type: none;
  238. margin: 0.5rem 0;
  239. }
  240. .center {
  241. .titleall {
  242. font-size: 0.9rem;
  243. color: #fff;
  244. line-height: 0.9rem;
  245. padding: 0 0 0.7rem 0;
  246. border-bottom: 1px dotted rgba(255, 255, 255, 0.2);
  247. }
  248. .boxall {
  249. border: 1px solid rgba(25, 186, 139, 0.17);
  250. padding: 0.8rem;
  251. background: rgba(255, 255, 255, 0.04) url('./images/line.png');
  252. background-size: 100% auto;
  253. position: relative;
  254. z-index: 10;
  255. .list {
  256. display: flex;
  257. align-items: center;
  258. .list_1 {
  259. position: relative;
  260. width: 10rem;
  261. display: flex;
  262. flex-direction: column;
  263. align-items: center;
  264. h2 {
  265. margin: 0.8rem 0;
  266. font-size: 1.5rem;
  267. font-weight: bold;
  268. font-family: electronicFont;
  269. color: #46b8ff;
  270. }
  271. span {
  272. font-size: 1rem;
  273. color: #fff;
  274. opacity: 0.5;
  275. }
  276. }
  277. .list_1:before {
  278. position: absolute;
  279. content: '';
  280. height: 25%;
  281. width: 0.1rem;
  282. background: rgba(255, 255, 255, 0.1);
  283. right: 0;
  284. top: 25%;
  285. }
  286. .list_1:last-child:before {
  287. width: 0;
  288. }
  289. }
  290. .thr {
  291. flex-wrap: wrap;
  292. justify-content: center;
  293. .list_1 {
  294. width: 8rem;
  295. h2 {
  296. color: #2ad08a;
  297. }
  298. }
  299. .list_1:nth-child(3n):before {
  300. width: 0;
  301. }
  302. }
  303. .four {
  304. height: 13.2rem;
  305. overflow: hidden;
  306. .scroll {
  307. width: 100%;
  308. .wrap {
  309. display: flex;
  310. justify-content: space-between;
  311. border: 1px solid rgba(25, 186, 139, 0.17);
  312. padding: 0.2rem;
  313. margin: 0 0 0.5rem 0;
  314. .other:first-child {
  315. width: 40%;
  316. }
  317. .other {
  318. width: 30%;
  319. color: rgba(255, 255, 255, 0.6);
  320. text-align: center;
  321. text-overflow: ellipsis;
  322. white-space: nowrap;
  323. overflow: hidden;
  324. font-size: 0.8rem;
  325. }
  326. }
  327. }
  328. }
  329. .boxfoot {
  330. position: absolute;
  331. bottom: 0;
  332. width: 100%;
  333. left: 0;
  334. }
  335. }
  336. .boxall:before,
  337. .boxfoot:before {
  338. border-left: 2px solid #02a6b5;
  339. left: 0;
  340. }
  341. .boxall:before {
  342. position: absolute;
  343. width: 0.7rem;
  344. height: 0.7rem;
  345. content: '';
  346. border-top: 2px solid #02a6b5;
  347. top: 0;
  348. }
  349. .boxall:after,
  350. .boxfoot:after {
  351. border-right: 2px solid #02a6b5;
  352. right: 0;
  353. }
  354. .boxall:before,
  355. .boxall:after {
  356. position: absolute;
  357. width: 0.7rem;
  358. height: 0.7rem;
  359. content: '';
  360. border-top: 2px solid #02a6b5;
  361. top: 0;
  362. }
  363. .boxfoot:before,
  364. .boxfoot:after {
  365. position: absolute;
  366. width: 0.7rem;
  367. height: 0.7rem;
  368. content: '';
  369. border-bottom: 2px solid #02a6b5;
  370. bottom: 0;
  371. }
  372. .boxall:before,
  373. .boxfoot:before {
  374. border-left: 2px solid #02a6b5;
  375. left: 0;
  376. }
  377. .barnav {
  378. margin: 0 0.5rem;
  379. position: relative;
  380. background: hsla(225, 68%, 64%, 0.1);
  381. .top {
  382. display: flex;
  383. border: 1px solid rgba(25, 186, 139, 0.17);
  384. padding: 0.3rem;
  385. .list {
  386. width: 33%;
  387. text-align: center;
  388. .value {
  389. font-size: 2.5rem;
  390. color: #ffeb7b;
  391. padding: 0.5rem 0;
  392. font-family: Gotham, 'Helvetica Neue', Helvetica, Arial, 'sans-serif';
  393. font-weight: bold;
  394. font-family: electronicFont;
  395. }
  396. .label {
  397. font-size: 1rem;
  398. color: rgba(255, 255, 255, 0.7);
  399. }
  400. }
  401. }
  402. }
  403. .boxfoot {
  404. position: absolute;
  405. bottom: 0;
  406. width: 100%;
  407. left: 0;
  408. }
  409. .barnav:before,
  410. .boxfoot:before {
  411. border-left: 2px solid #02a6b5;
  412. left: 0;
  413. }
  414. .barnav:before {
  415. position: absolute;
  416. width: 0.7rem;
  417. height: 0.7rem;
  418. content: '';
  419. border-top: 2px solid #02a6b5;
  420. top: 0;
  421. }
  422. .barnav:after,
  423. .boxfoot:after {
  424. border-right: 2px solid #02a6b5;
  425. right: 0;
  426. }
  427. .barnav:before,
  428. .barnav:after {
  429. position: absolute;
  430. width: 0.7rem;
  431. height: 0.7rem;
  432. content: '';
  433. border-top: 2px solid #02a6b5;
  434. top: 0;
  435. }
  436. .boxfoot:before,
  437. .boxfoot:after {
  438. position: absolute;
  439. width: 0.7rem;
  440. height: 0.7rem;
  441. content: '';
  442. border-bottom: 2px solid #02a6b5;
  443. bottom: 0;
  444. }
  445. .barnav:before,
  446. .boxfoot:before {
  447. border-left: 2px solid #02a6b5;
  448. left: 0;
  449. }
  450. .map {
  451. position: absolute;
  452. top: 0;
  453. left: -4%;
  454. width: 100%;
  455. }
  456. }
  457. .center > ul > li {
  458. float: left;
  459. height: 100%;
  460. width: 30%;
  461. }
  462. .center > ul > li:nth-child(2) {
  463. width: 40%;
  464. }
  465. .copyright {
  466. position: absolute;
  467. bottom: 0.5rem;
  468. left: 0;
  469. text-align: center;
  470. color: rgba(255, 255, 255, 0.5);
  471. font-size: 0.7rem;
  472. width: 100%;
  473. }
  474. }
  475. </style>