schoolMore.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. <template>
  2. <div id="schoolMore">
  3. <el-row style="width: 1200px; min-width: 1200px;">
  4. <el-col :span="24" class="main">
  5. <el-col :span="24" class="one">
  6. <div class="w_1200">
  7. <el-col :span="20" class="left">
  8. <el-col :span="24" class="leftone">
  9. <span>科技成果展洽会</span>
  10. <span>欢迎您</span>
  11. </el-col>
  12. <el-col :span="24" class="lefttwo">
  13. SCIENTIFIC AND TECHNOLOGICAL ACHIEVEEMENTS EXHIBITION
  14. </el-col>
  15. </el-col>
  16. <el-col :span="4" class="right">
  17. <el-link :underline="false">帮助中心</el-link>
  18. </el-col>
  19. </div>
  20. </el-col>
  21. <el-col :span="24" class="two">
  22. <div class="w_1200">
  23. <el-col :span="24" class="twotop">
  24. <el-col :span="18" class="left">
  25. <p>{{ dockInfo.title }}</p>
  26. <el-image :src="two1"></el-image>
  27. </el-col>
  28. <el-col :span="6" class="right">
  29. <el-image :src="two2"></el-image>
  30. <p>{{ dockInfo.start_time }}</p>
  31. <p>距离展会结束还有</p>
  32. <p>{{ djs }}</p>
  33. </el-col>
  34. </el-col>
  35. <el-col :span="24" class="twocen">
  36. <el-col :span="15" class="left"> <span>主办单位:</span>{{ dockInfo.sponsor }} </el-col>
  37. <el-col :span="8" class="right">
  38. <el-button class="btn1" @click="$router.push({ path: '/halltwo/directTwo', query: { id: dockInfo.id } })">返回展会进行页</el-button>
  39. <el-button class="btn2" @click="$router.push({ path: '/halltwo/detail', query: { dock_id: dockInfo.id } })">进入展会总结页</el-button>
  40. </el-col>
  41. </el-col>
  42. </div>
  43. </el-col>
  44. <el-col :span="24" class="three">
  45. <div class="w_1200">
  46. <el-col :span="24" class="threeinfo">
  47. <p class="title">高校院所</p>
  48. <el-col :span="24" class="list">
  49. <el-col :span="4" class="shool" v-for="(item, index) in list2" :key="index">
  50. <el-col :span="24" class="img">
  51. <el-image :src="item.url" class="specail"></el-image>
  52. <p class="name">{{ item.name }}</p>
  53. </el-col>
  54. <el-col :span="24" class="dj">
  55. <el-col :span="12" class="btn">
  56. <el-button type="primary" size="mini">对接</el-button>
  57. </el-col>
  58. <el-col
  59. :span="12"
  60. class="see"
  61. @click.native="$router.push({ path: '/halltwo/shoolDetail', query: { name: item.name, dock_id: dockInfo.id } })"
  62. >
  63. <span>查看院校项目</span>
  64. </el-col>
  65. </el-col>
  66. </el-col>
  67. <el-col class="page1" :span="24">
  68. <el-pagination
  69. @current-change="handleCurrentChange"
  70. :current-page="currentPage"
  71. layout="total, prev, pager, next, jumper"
  72. :total="total"
  73. :page-size="pageSize"
  74. >
  75. </el-pagination>
  76. </el-col>
  77. </el-col>
  78. </el-col>
  79. </div>
  80. </el-col>
  81. <el-col :span="24" class="four">
  82. <div class="w_1200">
  83. <el-col :span="24" class="info">
  84. <el-col :span="8" class="left">
  85. <h1>专家咨询:</h1>
  86. <p>工作日:08:30~17:00</p>
  87. <p>咨询电话:</p>
  88. <p>0431-81666508</p>
  89. </el-col>
  90. <el-col :span="8" class="left">
  91. <h1>业务联系:</h1>
  92. <p>长春中科北斗工程技术有限公司</p>
  93. <p>联系人:刘经理</p>
  94. <p>电话:18604328977</p>
  95. <p>邮箱:18889898@qq.com</p>
  96. </el-col>
  97. <el-col :span="8" class="left right">
  98. <h1>活动帮微信:</h1>
  99. <el-image :src="erweima" style="width:132px;height:132px;"></el-image>
  100. </el-col>
  101. </el-col>
  102. </div>
  103. </el-col>
  104. </el-col>
  105. <div class="pz_down">
  106. <live-foot></live-foot>
  107. </div>
  108. </el-row>
  109. </div>
  110. </template>
  111. <script>
  112. import liveFoot from '@/layout/live/foot.vue';
  113. import { mapState, createNamespacedHelpers } from 'vuex';
  114. const { mapActions: dock } = createNamespacedHelpers('dock');
  115. import { schoolList } from '@/util/school.js';
  116. var moment = require('moment');
  117. export default {
  118. metaInfo() {
  119. return { title: this.$route.meta.title };
  120. },
  121. name: 'schoolMore',
  122. props: {},
  123. components: {
  124. liveFoot,
  125. },
  126. data: function() {
  127. return {
  128. two1: require('@a/sy_04.png'),
  129. two2: require('@a/dock2.png'),
  130. // 展會詳情
  131. dockInfo: {},
  132. // 指导单位
  133. erweima: require('@a/二维码.jpg'),
  134. // 倒计时
  135. djs: '',
  136. schoolList: schoolList,
  137. pageSize: 15,
  138. total: 0,
  139. currentPage: 1,
  140. origin: [],
  141. list2: [],
  142. };
  143. },
  144. async created() {
  145. await this.searchInfo();
  146. },
  147. methods: {
  148. ...dock({ dockQuery: 'query', dockFetch: 'fetch', goodsquery: 'goodsquery' }),
  149. async searchInfo() {
  150. // 查询展会详情
  151. if (this.dock_id) {
  152. let res = await this.dockFetch(this.dock_id);
  153. if (this.$checkRes(res)) {
  154. this.$set(this, `dockInfo`, res.data);
  155. }
  156. //学校列表
  157. this.total = this.schoolList.length;
  158. }
  159. },
  160. seachtime() {
  161. // 倒计时
  162. this.timer = setInterval(() => {
  163. this.setTime(this.dockInfo.start_time);
  164. }, 1000);
  165. },
  166. // 倒计时
  167. setTime(end) {
  168. let now = moment().format('YYYY-MM-DD HH:mm:ss');
  169. // let now = moment().format('2020-11-20 08:00:00');
  170. if (end == now) {
  171. clearInterval(this.timer);
  172. this.$set(this, `djs`, '展会开始');
  173. } else {
  174. let sec = moment(end).diff(now, 'seconds');
  175. let day = _.floor(sec / 60 / 60 / 24);
  176. let hour = _.floor(Math.abs(day * 24 - sec / 60 / 60));
  177. let dayhour = day * 24;
  178. let minute = _.floor(Math.abs(day * 24 * 60 + hour * 60 - sec / 60));
  179. let second = _.floor(Math.abs(day * 24 * 60 * 60 + hour * 60 * 60 + minute * 60 - sec));
  180. let str = `${hour + dayhour}小时${minute}分${second}秒`;
  181. this.$set(this, `djs`, str);
  182. }
  183. },
  184. searchPage(page = 1) {
  185. this.$set(this, `list2`, this.origin[page - 1]);
  186. },
  187. handleCurrentChange(currentPage) {
  188. this.searchPage(currentPage);
  189. },
  190. },
  191. computed: {
  192. ...mapState(['user']),
  193. dock_id() {
  194. return this.$route.query.dock_id;
  195. },
  196. name() {
  197. return this.$route.query.name;
  198. },
  199. },
  200. watch: {
  201. schoolList: {
  202. immediate: true,
  203. deep: true,
  204. handler(val) {
  205. if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
  206. this.searchPage();
  207. },
  208. },
  209. dockInfo: {
  210. immediate: true,
  211. deep: true,
  212. handler(val) {
  213. this.seachtime();
  214. },
  215. },
  216. },
  217. };
  218. </script>
  219. <style lang="less" scoped>
  220. .main {
  221. .one {
  222. height: 100px;
  223. .left {
  224. height: 100px;
  225. .leftone {
  226. margin: 15px 0 0 0;
  227. span:nth-child(1) {
  228. font-size: 35px;
  229. color: #535353;
  230. font-weight: bold;
  231. font-family: cursive;
  232. }
  233. span:nth-child(2) {
  234. font-size: 15px;
  235. padding: 0 10px;
  236. color: #535353;
  237. }
  238. }
  239. .lefttwo {
  240. font-size: 12px;
  241. color: #535353;
  242. }
  243. }
  244. .right {
  245. height: 100px;
  246. line-height: 100px;
  247. text-align: right;
  248. }
  249. }
  250. .two {
  251. height: 610px;
  252. background: url('~@/assets/bj1.jpg');
  253. padding: 20px 0;
  254. .twotop {
  255. margin: 0 0 10px 0;
  256. .left {
  257. height: 357px;
  258. margin: 0 10px 0 0;
  259. background: url('~@/assets/dock1.png');
  260. p {
  261. float: left;
  262. width: 79%;
  263. font-size: 43px;
  264. color: #fff;
  265. font-weight: bold;
  266. padding: 13% 0 0 20px;
  267. }
  268. .el-image {
  269. float: left;
  270. width: 153px;
  271. height: 94px;
  272. margin: 4% 0 0 0;
  273. }
  274. }
  275. .right {
  276. background-color: #ffffff;
  277. width: 24%;
  278. height: 357px;
  279. text-align: center;
  280. padding: 0 10px;
  281. .el-image {
  282. width: 120px;
  283. height: 48px;
  284. margin: 50px 0 0px 0;
  285. }
  286. p:nth-child(2) {
  287. font-size: 18px;
  288. margin: 30px 0 5px 0;
  289. }
  290. p:nth-child(3) {
  291. font-size: 22px;
  292. font-weight: bold;
  293. margin-bottom: 30px;
  294. }
  295. p:nth-child(4) {
  296. background: #f5f5f5;
  297. padding: 20px 0px;
  298. border-radius: 5px;
  299. font-size: 30px;
  300. }
  301. }
  302. .right:hover {
  303. cursor: pointer;
  304. p:nth-child(3) {
  305. color: #535353;
  306. }
  307. }
  308. }
  309. .twocen {
  310. height: 130px;
  311. overflow: hidden;
  312. line-height: 130px;
  313. background-color: #fff;
  314. margin: 0 0 35px 0;
  315. .left {
  316. font-size: 18px;
  317. margin: 0 0 0 30px;
  318. span {
  319. font-size: 22px;
  320. font-weight: bold;
  321. }
  322. }
  323. .right {
  324. .btn1 {
  325. font-size: 16px;
  326. color: #fff;
  327. background: red;
  328. border: none;
  329. font-weight: bold;
  330. }
  331. .btn2 {
  332. font-size: 16px;
  333. color: #ff0000;
  334. border: 1px solid #ff0000;
  335. font-weight: bold;
  336. }
  337. }
  338. }
  339. }
  340. .three {
  341. min-height: 500px;
  342. overflow: hidden;
  343. position: relative;
  344. top: -50px;
  345. z-index: 999;
  346. .threeinfo {
  347. min-height: 500px;
  348. overflow: hidden;
  349. background-color: #fff;
  350. box-shadow: 0 5px 15px rgba(33, 82, 203, 0.35);
  351. padding: 30px;
  352. .title {
  353. font-family: '微软雅黑';
  354. font-weight: 400;
  355. font-size: 26px;
  356. }
  357. .list {
  358. margin: 50px 0 40px 0;
  359. .shool {
  360. width: 204px;
  361. margin: 0px 30px 30px 0px;
  362. .img {
  363. // height: 175px;
  364. border: 1px solid #c6c6c6;
  365. text-align: center;
  366. cursor: pointer;
  367. .name {
  368. font-size: 14px;
  369. color: #2152cb;
  370. text-align: center;
  371. line-height: 30px;
  372. }
  373. }
  374. .dj {
  375. margin-top: 10px;
  376. .see {
  377. text-align: right;
  378. cursor: pointer;
  379. span {
  380. display: inline-block;
  381. height: 28px;
  382. line-height: 28px;
  383. font-size: 14px;
  384. }
  385. }
  386. }
  387. }
  388. .shool:hover .img {
  389. box-shadow: 0 0 10px rgba(127, 126, 126, 0.3);
  390. }
  391. .shool:nth-child(5n) {
  392. margin-right: 0px;
  393. }
  394. .page1 {
  395. text-align: center;
  396. margin-top: 10px;
  397. }
  398. }
  399. }
  400. }
  401. .four {
  402. border-top: 2px solid #305798;
  403. height: 250px;
  404. .info {
  405. .left {
  406. h1 {
  407. padding: 15px 0;
  408. font-weight: bold;
  409. color: #4d4d4d;
  410. }
  411. p {
  412. font-size: 16px;
  413. color: #4d4d4d;
  414. padding: 5px 0;
  415. }
  416. }
  417. .right {
  418. text-align: center;
  419. }
  420. }
  421. }
  422. }
  423. /deep/.specail .el-image__inner {
  424. vertical-align: middle;
  425. /* margin: 10px auto; */
  426. height: 125px;
  427. width: auto;
  428. margin: 10px auto;
  429. }
  430. </style>