index.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. <template>
  2. <div id="index">
  3. <div class="w_0100">
  4. <div class="w_1200">
  5. <div class="technicalmain">
  6. <div class="infoleft">
  7. <div class="lefttop"><span class="title"> |</span> 专题研讨<a class="more">MORE</a></div>
  8. <ul class="infoleftInfo">
  9. <li v-for="(item, index) in zhuantiList" :key="index">
  10. <p>{{ item.publish_time }}</p>
  11. <p>
  12. <span class="textOver">{{ item.title }}</span>
  13. <span>{{ item.content }}</span>
  14. </p>
  15. </li>
  16. </ul>
  17. </div>
  18. <div class="infoRight">
  19. <div class="lefttop"><span class="title"> |</span> 技术问答<a class="more">MORE</a></div>
  20. <ul class="infoRightInfo">
  21. <li v-for="(item, index) in jishuList" :key="index">
  22. <p>
  23. <span class="textOver">{{ item.title }}</span
  24. ><span>{{ item.publish_time }}</span>
  25. </p>
  26. </li>
  27. </ul>
  28. </div>
  29. <div class="downInfoleftList">
  30. <div class="lefttop"><span class="title"> |</span>行业研究<a class="more">MORE</a></div>
  31. <ul class="downInfoListInfo">
  32. <li v-for="(item, index) in hangyeList" :key="index">
  33. <p>
  34. <span class="textOver">{{ item.title }}</span
  35. ><span>{{ item.publish_time }}</span>
  36. </p>
  37. </li>
  38. </ul>
  39. </div>
  40. <div class="downInfoRightList">
  41. <div class="lefttop"><span class="title"> |</span>教育培训<a class="more">MORE</a></div>
  42. <ul class="downInfoListInfo">
  43. <li v-for="(item, index) in jiaoyuList" :key="index">
  44. <p>{{ item.publish_time }}</p>
  45. <p>
  46. <span class="textOver">{{ item.title }}</span>
  47. <span>{{ item.content }}</span>
  48. </p>
  49. </li>
  50. </ul>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import _ from 'lodash';
  59. import { mapState, createNamespacedHelpers } from 'vuex';
  60. const { mapActions: news } = createNamespacedHelpers('news');
  61. export default {
  62. name: 'index',
  63. props: {},
  64. components: {},
  65. data: () => {
  66. return {
  67. zhuantiList: [
  68. {
  69. date: '2020-02-02',
  70. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  71. brief:
  72. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  73. },
  74. {
  75. date: '2020-02-02',
  76. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  77. brief:
  78. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  79. },
  80. {
  81. date: '2020-02-02',
  82. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  83. brief:
  84. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  85. },
  86. {
  87. date: '2020-02-02',
  88. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  89. brief:
  90. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  91. },
  92. {
  93. date: '2020-02-02',
  94. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  95. brief:
  96. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  97. },
  98. ],
  99. jishuList: [
  100. {
  101. title: '标题',
  102. date: '2020-02-02',
  103. },
  104. {
  105. title: '标题',
  106. date: '2020-02-02',
  107. },
  108. {
  109. title: '标题',
  110. date: '2020-02-02',
  111. },
  112. {
  113. title: '标题',
  114. date: '2020-02-02',
  115. },
  116. {
  117. title: '标题',
  118. date: '2020-02-02',
  119. },
  120. {
  121. title: '标题',
  122. date: '2020-02-02',
  123. },
  124. {
  125. title: '标题',
  126. date: '2020-02-02',
  127. },
  128. {
  129. title: '标题',
  130. date: '2020-02-02',
  131. },
  132. {
  133. title: '标题',
  134. date: '2020-02-02',
  135. },
  136. {
  137. title: '标题',
  138. date: '2020-02-02',
  139. },
  140. {
  141. title: '标题',
  142. date: '2020-02-02',
  143. },
  144. {
  145. title: '标题',
  146. date: '2020-02-02',
  147. },
  148. ],
  149. hangyeList: [
  150. {
  151. title: '标题',
  152. date: '2020-02-02',
  153. },
  154. {
  155. title: '标题',
  156. date: '2020-02-02',
  157. },
  158. {
  159. title: '标题',
  160. date: '2020-02-02',
  161. },
  162. {
  163. title: '标题',
  164. date: '2020-02-02',
  165. },
  166. {
  167. title: '标题',
  168. date: '2020-02-02',
  169. },
  170. {
  171. title: '标题',
  172. date: '2020-02-02',
  173. },
  174. {
  175. title: '标题',
  176. date: '2020-02-02',
  177. },
  178. {
  179. title: '标题',
  180. date: '2020-02-02',
  181. },
  182. {
  183. title: '标题',
  184. date: '2020-02-02',
  185. },
  186. {
  187. title: '标题',
  188. date: '2020-02-02',
  189. },
  190. {
  191. title: '标题',
  192. date: '2020-02-02',
  193. },
  194. {
  195. title: '标题',
  196. date: '2020-02-02',
  197. },
  198. ],
  199. jiaoyuList: [
  200. {
  201. date: '2020-02-02',
  202. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  203. brief:
  204. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  205. },
  206. {
  207. date: '2020-02-02',
  208. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  209. brief:
  210. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  211. },
  212. {
  213. date: '2020-02-02',
  214. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  215. brief:
  216. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  217. },
  218. {
  219. date: '2020-02-02',
  220. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  221. brief:
  222. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  223. },
  224. {
  225. date: '2020-02-02',
  226. title: '标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题',
  227. brief:
  228. '信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介信息简介',
  229. },
  230. ],
  231. };
  232. },
  233. created() {
  234. this.searchInfo();
  235. },
  236. methods: {
  237. ...news(['query']),
  238. async searchInfo() {
  239. let res = await this.query({ skip: 0, limit: 4, column_name: '专题研讨' });
  240. if (this.$checkRes(res)) this.$set(this, `zhuantiList`, res.data);
  241. res = await this.query({ skip: 0, limit: 4, column_name: '技术问答' });
  242. if (this.$checkRes(res)) this.$set(this, `jishuList`, res.data);
  243. res = await this.query({ skip: 0, limit: 4, column_name: '行业研究' });
  244. if (this.$checkRes(res)) this.$set(this, `hangyeList`, res.data);
  245. res = await this.query({ skip: 0, limit: 4, column_name: '教育培训' });
  246. if (this.$checkRes(res)) this.$set(this, `jiaoyuList`, res.data);
  247. },
  248. },
  249. computed: {
  250. ...mapState(['user']),
  251. pageTitle() {
  252. return `${this.$route.meta.title}`;
  253. },
  254. },
  255. metaInfo() {
  256. return { title: this.$route.meta.title };
  257. },
  258. };
  259. </script>
  260. <style lang="less" scoped>
  261. .infoleft {
  262. width: 589px;
  263. float: left;
  264. margin: 10px 0 10px 2px;
  265. min-height: 585px;
  266. box-shadow: 0 0 10px #2d64b3;
  267. overflow: hidden;
  268. }
  269. .infoleft .lefttop {
  270. font-size: 18px;
  271. width: 96%;
  272. height: 41px;
  273. line-height: 35px;
  274. border-bottom: 1px solid #e5e5e5;
  275. position: relative;
  276. bottom: 1px;
  277. margin: 10px 10px 10px 10px;
  278. }
  279. .infoleft .lefttop .more {
  280. float: right;
  281. font-size: 16px;
  282. }
  283. .infoleftInfo {
  284. padding: 0 10px;
  285. }
  286. .infoleftInfo li {
  287. float: left;
  288. width: 100%;
  289. border-bottom: 1px dashed #ccc;
  290. padding: 15px 0 15px 0;
  291. height: 71px;
  292. }
  293. .infoleftInfo li:hover p:last-child span:first-child {
  294. -webkit-transform: translateY(-3px);
  295. -ms-transform: translateY(-3px);
  296. transform: translateY(-3px);
  297. -webkit-box-shadow: 0 0 6px #999;
  298. box-shadow: 0 0 6px #999;
  299. -webkit-transition: all 0.5s ease-out;
  300. transition: all 0.5s ease-out;
  301. color: #005293;
  302. cursor: pointer;
  303. }
  304. .infoleftInfo li p:first-child {
  305. float: left;
  306. width: 17%;
  307. font-size: 15px;
  308. background: #044b79;
  309. text-align: center;
  310. color: #fff;
  311. font-weight: bold;
  312. padding: 4px 0px;
  313. }
  314. .infoleftInfo li p:last-child {
  315. float: left;
  316. width: 80%;
  317. padding: 0 0 0 15px;
  318. }
  319. .infoleftInfo li p:last-child span:first-child {
  320. float: left;
  321. width: 100%;
  322. font-size: 18px;
  323. }
  324. .infoleftInfo li p:last-child span:last-child {
  325. float: left;
  326. width: 100%;
  327. font-size: 16px;
  328. overflow: hidden;
  329. text-overflow: ellipsis;
  330. -webkit-line-clamp: 2;
  331. word-break: break-all;
  332. display: -webkit-box;
  333. -webkit-box-orient: vertical;
  334. margin: 5px 0 0 0;
  335. color: #666;
  336. }
  337. .infoRight {
  338. width: 589px;
  339. float: right;
  340. margin: 10px 0 10px 2px;
  341. height: 585px;
  342. box-shadow: 0 0 10px #2d64b3;
  343. overflow: hidden;
  344. }
  345. .infoRight .lefttop {
  346. font-size: 18px;
  347. width: 96%;
  348. height: 41px;
  349. line-height: 35px;
  350. border-bottom: 1px solid #e5e5e5;
  351. position: relative;
  352. bottom: 1px;
  353. margin: 10px 10px 10px 10px;
  354. }
  355. .infoRight .lefttop .more {
  356. float: right;
  357. font-size: 16px;
  358. }
  359. .infoRightInfo {
  360. padding: 0 10px;
  361. }
  362. .infoRightInfo li {
  363. float: left;
  364. width: 100%;
  365. padding: 6px 0;
  366. }
  367. .infoRightInfo li:nth-child(6) {
  368. border-bottom: 1px solid #ccc;
  369. padding: 0 0 17px 0;
  370. }
  371. .infoRightInfo li:nth-child(7) {
  372. padding: 11px 0 0 0;
  373. }
  374. .infoRightInfo li:hover p span:first-child {
  375. -webkit-transform: translateY(-3px);
  376. -ms-transform: translateY(-3px);
  377. transform: translateY(-3px);
  378. -webkit-box-shadow: 0 0 6px #999;
  379. box-shadow: 0 0 6px #999;
  380. -webkit-transition: all 0.5s ease-out;
  381. transition: all 0.5s ease-out;
  382. color: #005293;
  383. cursor: pointer;
  384. }
  385. .infoRightInfo li p {
  386. font-size: 18px;
  387. }
  388. .infoRightInfo li p span:first-child {
  389. display: inline-block;
  390. width: 80%;
  391. }
  392. .infoRightInfo li p span:last-child {
  393. display: inline-block;
  394. width: 20%;
  395. text-align: center;
  396. font-size: 16px;
  397. }
  398. .downInfoleftList {
  399. width: 570px;
  400. float: left;
  401. margin: 10px 0 10px 2px;
  402. height: 585px;
  403. box-shadow: 0 0 10px #2d64b3;
  404. overflow: hidden;
  405. }
  406. .downInfoleftList .lefttop {
  407. font-size: 18px;
  408. width: 96%;
  409. height: 41px;
  410. line-height: 35px;
  411. border-bottom: 1px solid #e5e5e5;
  412. position: relative;
  413. bottom: 1px;
  414. margin: 10px 10px 10px 10px;
  415. }
  416. .downInfoleftList .lefttop .more {
  417. float: right;
  418. font-size: 16px;
  419. }
  420. .downInfoleftList {
  421. padding: 0 10px;
  422. }
  423. .downInfoleftList li {
  424. float: left;
  425. width: 100%;
  426. padding: 6px 0;
  427. }
  428. .downInfoleftList li:nth-child(6) {
  429. border-bottom: 1px solid #ccc;
  430. padding: 0 0 17px 0;
  431. }
  432. .downInfoleftList li:nth-child(7) {
  433. margin: 11px 0 0px 0;
  434. }
  435. .downInfoleftList li:hover p span:first-child {
  436. -webkit-transform: translateY(-3px);
  437. -ms-transform: translateY(-3px);
  438. transform: translateY(-3px);
  439. -webkit-box-shadow: 0 0 6px #999;
  440. box-shadow: 0 0 6px #999;
  441. -webkit-transition: all 0.5s ease-out;
  442. transition: all 0.5s ease-out;
  443. color: #005293;
  444. cursor: pointer;
  445. }
  446. .downInfoleftList li p {
  447. font-size: 18px;
  448. }
  449. .downInfoleftList li p span:first-child {
  450. display: inline-block;
  451. width: 80%;
  452. }
  453. .downInfoleftList li p span:last-child {
  454. display: inline-block;
  455. width: 20%;
  456. text-align: center;
  457. font-size: 16px;
  458. }
  459. .downInfoRightList {
  460. width: 589px;
  461. float: right;
  462. margin: 10px 0 10px 2px;
  463. min-height: 585px;
  464. box-shadow: 0 0 10px #2d64b3;
  465. overflow: hidden;
  466. }
  467. .downInfoRightList .lefttop {
  468. font-size: 18px;
  469. width: 96%;
  470. height: 41px;
  471. line-height: 35px;
  472. border-bottom: 1px solid #e5e5e5;
  473. position: relative;
  474. bottom: 1px;
  475. margin: 10px 10px 10px 10px;
  476. }
  477. .downInfoRightList .lefttop .more {
  478. float: right;
  479. font-size: 16px;
  480. }
  481. .downInfoRightList .downInfoListInfo {
  482. padding: 0 10px;
  483. }
  484. .downInfoRightList .downInfoListInfo li {
  485. float: left;
  486. width: 100%;
  487. border-bottom: 1px dashed #ccc;
  488. padding: 15px 0 15px 0;
  489. }
  490. .downInfoRightList .downInfoListInfo li:hover p:last-child span:first-child {
  491. -webkit-transform: translateY(-3px);
  492. -ms-transform: translateY(-3px);
  493. transform: translateY(-3px);
  494. -webkit-box-shadow: 0 0 6px #999;
  495. box-shadow: 0 0 6px #999;
  496. -webkit-transition: all 0.5s ease-out;
  497. transition: all 0.5s ease-out;
  498. color: #005293;
  499. cursor: pointer;
  500. }
  501. .downInfoRightList .downInfoListInfo li p:first-child {
  502. float: left;
  503. width: 17%;
  504. font-size: 15px;
  505. background: #044b79;
  506. text-align: center;
  507. color: #fff;
  508. font-weight: bold;
  509. padding: 4px 0px;
  510. }
  511. .downInfoRightList .downInfoListInfo li p:last-child {
  512. float: left;
  513. width: 80%;
  514. padding: 0 0 0 15px;
  515. }
  516. .downInfoRightList .downInfoListInfo li p:last-child span:first-child {
  517. float: left;
  518. width: 100%;
  519. font-size: 18px;
  520. }
  521. .downInfoRightList .downInfoListInfo li p:last-child span:last-child {
  522. float: left;
  523. width: 100%;
  524. font-size: 16px;
  525. overflow: hidden;
  526. text-overflow: ellipsis;
  527. -webkit-line-clamp: 2;
  528. word-break: break-all;
  529. display: -webkit-box;
  530. -webkit-box-orient: vertical;
  531. margin: 5px 0 0 0;
  532. color: #666;
  533. }
  534. </style>