Browse Source

孵化平台部分界面

master
aBin 5 years ago
parent
commit
ae11cf2e5b
  1. BIN
      src/assets/teacher01.png
  2. BIN
      src/assets/teacher02.png
  3. 18
      src/common/platform.styl
  4. 44
      src/common/portrait.styl
  5. 14
      src/components/Banner/Banner.vue
  6. 4
      src/components/Introduce/PartnerShip.styl
  7. 11
      src/components/Introduce/Pter.vue
  8. 6
      src/router/index.js
  9. 2
      src/views/About/Children/Organ.vue
  10. 4
      src/views/About/Children/Partner.vue
  11. 9
      src/views/About/components/LeftNav.vue
  12. 15
      src/views/Challenge/Children/Notice.vue
  13. 11
      src/views/Challenge/Children/Release.vue
  14. 9
      src/views/Challenge/components/LeftNav.vue
  15. 22
      src/views/Develop/Develop.vue
  16. 91
      src/views/FirstPage/FirstPage.vue
  17. 16
      src/views/Hatch/Children/Partner.vue
  18. 133
      src/views/Hatch/Children/Service.vue
  19. 135
      src/views/Hatch/Children/Tutor.vue
  20. 31
      src/views/Hatch/Hatch.vue
  21. 9
      src/views/Hatch/components/LeftNav.vue
  22. 212
      src/views/ItInformation/ItInformation.vue
  23. 2
      src/views/ServiceMarket/Children/InnovativeService.vue
  24. 2
      src/views/ServiceMarket/Children/Institute.vue
  25. 2
      src/views/ServiceMarket/components/LeftNav.vue
  26. 105
      src/views/Study/StuDetails.vue
  27. 69
      src/views/Study/Study.vue

BIN
src/assets/teacher01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

BIN
src/assets/teacher02.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

18
src/common/platform.styl

@ -3,16 +3,26 @@
color: #000;
font-size: 18px;
font-weight: bold;
div {
.nav-item {
cursor: pointer;
height: 80px;
line-height: 80px;
background: #fff;
margin-bottom: 2px;
text-align: center
margin: 0 4px 6px 0;
text-align: center;
box-shadow: 0 3px 6px rgba(0,0,0,0.16);
}
.nav-item:hover{
color: #007CC1 !important;
}
}
.nav-box-active {
.nav-item-active {
cursor: pointer;
height: 80px;
line-height: 80px;
margin: 0 4px 6px 0;
text-align: center;
background: #007CC1 !important;
color: #fff !important;
}

44
src/common/portrait.styl

@ -23,6 +23,10 @@
padding: 20px;
}
.pa-10 {
padding: 40px;
}
.pb-3 {
padding-bottom: 12px;
}
@ -113,6 +117,42 @@
padding-bottom: 40px;
}
.pl-1{
padding-left: 4px;
}
.pl-2{
padding-left: 8px;
}
.pl-3{
padding-left: 12px;
}
.pr-1{
padding-right: 4px;
}
.pr-2{
padding-right: 8px;
}
.pr-3{
padding-right: 12px;
}
.pt-1{
padding-top: 4px;
}
.pt-2{
padding-top: 8px;
}
.pt-3{
padding-top: 12px;
}
// margin
.ma-2 {
margin: 8px;
@ -188,6 +228,10 @@
margin-top: 16px;
}
.mt-5{
margin-top: 20px;
}
.mt-8{
margin-top: 32px;
}

14
src/components/Banner/Banner.vue

@ -32,13 +32,13 @@ export default {
computed: mapState('home', ['bannerLists']),
mounted() {
window.addEventListener('scroll', this.handleScroll);
setTimeout(() => {
document.querySelector('#banner-box').scrollIntoView({
behavior: 'smooth', //
block: 'start', //
});
}, 1000);
// window.addEventListener('scroll', this.handleScroll);
// setTimeout(() => {
// document.querySelector('#banner-box').scrollIntoView({
// behavior: 'smooth', //
// block: 'start', //
// });
// }, 1000);
},
async created() {

4
src/components/Introduce/PartnerShip.styl

@ -39,9 +39,9 @@
}
.enterprise-box{
width: 26%;
width: 31.3%;
height: 382px;
margin-right: 11%;
margin-right: 3%;
position: relative;
padding: 0 16px;

11
src/components/Introduce/Pter.vue

@ -12,9 +12,12 @@
<p class="title-en">Partners</p>
</div>
<div class="partner-content-box d-flex flex-wrap">
<div v-for="(item, index) in lists" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'mr0' : ''">
{{ item }}
</div>
<div
:class="(index + 1) % 4 === 0 ? 'mr0' : ''"
:key="index"
class="item-box"
v-for="(item, index) in lists"
>{{ item }}</div>
</div>
</div>
</template>
@ -35,7 +38,7 @@ export default {
.partner-title-box {
height: 70px;
line-height: 34px;
margin: 0 0 40px 20px;
margin: 30px 0 30px 20px;
padding-left: 6px;
border-left: 6px solid #007CC1;
}

6
src/router/index.js

@ -223,6 +223,12 @@ const routes = [
},
],
},
// 行业资讯
{
path: '/ItInformation',
name: 'ItInformation',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/ItInformation/ItInformation.vue'),
},
];
const router = new VueRouter({

2
src/views/About/Children/Organ.vue

@ -1,6 +1,6 @@
<template>
<div>
<div class="white">
<div class="white pa-3">
<rich-text :title="title" />
</div>
</div>

4
src/views/About/Children/Partner.vue

@ -13,10 +13,6 @@ export default {
return {
title: '合作伙伴',
typeOfPlatform: '关于我们',
arr: [
{ name: '关于我们', url: '/About/Introduce' },
{ name: '合作伙伴', url: '' },
],
};
},
};

9
src/views/About/components/LeftNav.vue

@ -7,9 +7,12 @@
-->
<template>
<div class="nav-box">
<div :class="activeNum === index ? 'nav-box-active' : ''" :key="index" @click="jump(item.url, index)" v-for="(item, index) in list">
{{ item.title }}
</div>
<div
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
:key="index"
@click="jump(item.url, index)"
v-for="(item, index) in list"
>{{ item.title }}</div>
</div>
</template>

15
src/views/Challenge/Children/Notice.vue

@ -10,14 +10,17 @@
@click="choose(index)"
class="ins-name"
v-for="(item, index) in list"
>
{{ item.name }}
</span>
>{{ item.name }}</span>
</div>
</div>
</div>
<div class="d-flex flex-wrap">
<div :class="(index + 1) % 3 === 0 ? 'margin-0' : ''" :key="index" class="pro-box" v-for="(item, index) in lists">
<div
:class="(index + 1) % 3 === 0 ? 'margin-0' : ''"
:key="index"
class="pro-box"
v-for="(item, index) in lists"
>
<p class="pro-title">{{ item.title }}</p>
<p class="pro-content">{{ item.content }}</p>
<p class="pro-time">时间{{ item.time }}</p>
@ -163,8 +166,8 @@ export default {
}
.pro-box {
width: 26%;
margin-right: 11%;
width: 31.3%;
margin-right: 3%;
height: auto;
background: #FFFFFF;
padding: 24px 20px;

11
src/views/Challenge/Children/Release.vue

@ -1,7 +1,12 @@
<template>
<div>
<div class="d-flex flex-wrap">
<div :class="(index + 1) % 4 === 0 ? 'margin-0' : ''" :key="index" class="pro-box" v-for="(item, index) in lists">
<div
:class="(index + 1) % 4 === 0 ? 'margin-0' : ''"
:key="index"
class="pro-box"
v-for="(item, index) in lists"
>
<p class="pro-title">{{ item.title }}</p>
<p class="pro-content">{{ item.content }}</p>
<p class="pro-time">时间{{ item.time }}</p>
@ -171,8 +176,8 @@ export default {
}
.pro-box {
width: 20.5%;
margin-right: 6%;
width: 23.5%;
margin-right: 2%;
height: 300px;
background: #FFFFFF;
padding: 24px 20px;

9
src/views/Challenge/components/LeftNav.vue

@ -7,9 +7,12 @@
-->
<template>
<div class="nav-box">
<div :class="activeNum === index ? 'nav-box-active' : ''" :key="index" @click="jump(item.url, index)" v-for="(item, index) in list">
{{ item.title }}
</div>
<div
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
:key="index"
@click="jump(item.url, index)"
v-for="(item, index) in list"
>{{ item.title }}</div>
</div>
</template>

22
src/views/Develop/Develop.vue

@ -12,15 +12,25 @@
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心
数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</p>
<a-button type="primary" class="dev-btn">项目合作</a-button>
<a-button class="dev-btn" type="primary">项目合作</a-button>
</div>
<div class="inner dev-img-box d-flex flex-wrap" style="margin-top: 40px !important; margin-bottom: 40px !important">
<div v-for="(item, index) in lists" :key="index" class="d-flex" style="width: 50%">
<img :src="item" style="width: 100%; cursor: pointer" @click="showProfile = true" />
<div
class="inner dev-img-box d-flex flex-wrap"
style="margin-top: 40px !important; margin-bottom: 40px !important"
>
<div :key="index" class="d-flex" style="width: 50%" v-for="(item, index) in lists">
<img :src="item" @click="showProfile = true" style="width: 100%; cursor: pointer" />
</div>
</div>
<a-modal width="50%" :footer="null" title="XX项目介绍" :visible="showProfile" @cancel="handleCancel" @ok="handleCancel">
<p>
<a-modal
:footer="null"
:visible="showProfile"
@cancel="handleCancel"
@ok="handleCancel"
title="XX项目介绍"
width="50%"
>
<p class="line-height-30">
公司采取理事会经理层事业部组织架构公司理事会组成按理事会章程执行经理层设总经理 1 副总经理 2-3 各事业部设部长 1
副部长 1
公司以协同创新中心为引擎以创业孵化平台为基石以产业集聚发展为导向基于创新链孵化链和产业链进行整体布局下设行政事业部创新事业部孵化事业部和产业事业部

91
src/views/FirstPage/FirstPage.vue

@ -9,17 +9,14 @@
<div class="white py-10">
<div class="inner">
<div class="d-flex flex-nowrap justify-space-around">
<div class="d-flex flex-column align-center">
<img src="~assets/index01.png" />
<span class="font-26 textColor mt-8">创新政策</span>
</div>
<div class="d-flex flex-column align-center">
<img src="~assets/index02.png" />
<span class="font-26 textColor mt-8">创新政策</span>
</div>
<div class="d-flex flex-column align-center">
<img src="~assets/index03.png" />
<span class="font-26 textColor mt-8">创新政策</span>
<div
:key="item.id"
@click="$router.push(item.path)"
class="d-flex flex-column align-center pointer"
v-for="item in arr1"
>
<img :src="item.url" />
<span class="font-26 textColor mt-8">{{ item.name }}</span>
</div>
</div>
</div>
@ -28,22 +25,31 @@
<div class="inner">
<!-- floor2 -->
<div class="d-flex flex-nowrap justify-space-around">
<div class="d-flex flex-column align-center mr-2">
<img src="~assets/index04.png" />
<div class="font-26 textColor title grey">数智开发</div>
</div>
<div class="d-flex flex-column align-center ml-2">
<img src="~assets/index05.png" />
<div class="font-26 textColor title grey">创新挑战</div>
<div
:key="item.id"
@click="$router.push(item.path)"
class="d-flex flex-column align-center mr-2 pointer"
v-for="item in arr2"
>
<img :src="item.url" />
<div class="font-26 textColor title grey">{{ item.name }}</div>
</div>
</div>
<!-- 行业资讯 -->
<div class="d-flex flex-column" style="margin-top: 60px">
<div class="new-title base-bg font-bold-30 white--text">行业资讯</div>
<div class="new-title base-bg font-bold-30 white--text pointer">行业资讯</div>
<div class="py-8 white">
<div :key="index" class="font-20 d-flex flex-nowrap justify-start px-10 py-4" v-for="(list, index) in lists">
<div
:key="index"
@click="$router.push('/ItInformation')"
class="font-20 d-flex flex-nowrap justify-start px-10 py-4 pointer"
v-for="(list, index) in lists"
>
<div class="textColor new-txt">{{ list.title }}</div>
<div class="secondary new-time" v-if="list.time">{{ $moment(+list.time).format('YYYY-MM-DD') }}</div>
<div
class="secondary new-time"
v-if="list.time"
>{{ $moment(+list.time * 1000).format('YYYY-MM-DD') }}</div>
</div>
</div>
</div>
@ -57,7 +63,7 @@
</template>
<script>
import { mapState, mapActions } from 'vuex';
import { mapState, mapActions, mapMutations } from 'vuex';
import Rotation from 'components/Rotation/Rotation.vue';
import {} from 'config/api';
@ -66,6 +72,40 @@ export default {
data() {
return {
str: '',
arr1: [
{
id: 1,
name: '创新政策',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index01.png',
path: '/Policy',
},
{
id: 2,
name: '双创活动',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index02.png',
path: '/Activity',
},
{
id: 3,
name: '服务超市',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index03.png',
path: '/ServiceMarket/Institute',
},
],
arr2: [
{
id: 4,
name: '数智开发',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index04.png',
path: '/Develop',
},
{
id: 5,
name: '创新挑战',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index05.png',
path: '/Challenge/Solicitation',
},
],
lists: [],
};
},
@ -75,6 +115,7 @@ export default {
methods: {
...mapActions('home', ['getIndustryInfoList']),
...mapMutations('home', ['setActDetail']),
//
async getIndustryInfoLists() {
@ -87,6 +128,12 @@ export default {
const res = await this.getIndustryInfoList(params);
this.lists = res.list;
},
//
// jumpDetails(item) {
// this.setActDetail(item);
// this.$router.push('/ActDetails');
// },
},
};
</script>

16
src/views/Hatch/Children/Partner.vue

@ -1,11 +1,23 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-14 17:34:52
* @LastEditors: wally
* @LastEditTime: 2021-01-15 09:40:59
-->
<template>
<div>合作伙伴</div>
<div>
<pter />
</div>
</template>
<script>
// import Banner from 'components/Banner/Banner.vue';
import Pter from 'components/Introduce/Pter.vue';
export default {
name: 'Partner',
components: { Pter },
data() {
return {};
return { showPage: 11, title: '孵化平台', typeOfPlatform: '合作伙伴' };
},
};
</script>

133
src/views/Hatch/Children/Service.vue

@ -1,11 +1,140 @@
<template>
<div>创业服务</div>
<div>
<div class="d-flex flex-wrap flex-row pa-3 white">
<div
:class="(index + 1) % 2 === 0 ? 'ml' : 'mr'"
:key="index"
class="item-box d-flex flex-nowrap"
v-for="(item, index) in list"
>
<img :src="item.picUrl" />
<div class="flex-1 flex-column pl-3">
<div class="font-bold-22 py-3 item-title">{{ item.name }}</div>
<div class="font-16 my-3 textColor item-content">{{ item.intro }}</div>
<div
@click="jump(item.id)"
class="font-16 pointer"
style="text-align: right;color:#E77816"
>查看更多>></div>
</div>
</div>
</div>
<div class="inner">
<a-pagination
:current="current"
:page-size="pageSize"
:total="total"
@change="onShowSizeChange"
class="pagination"
show-less-items
show-quick-jumper
v-show="total > 8"
/>
</div>
</div>
</template>
<script>
import { mapMutations } from 'vuex';
import { selService } from 'config/api';
export default {
name: 'Service',
data() {
return {};
return {
title: '创业服务',
arr: [
{ name: '孵化平台', url: '' },
{ name: '创业服务', url: '/Hatch/Services' },
],
list: [],
current: 1,
pageSize: 8,
total: 0,
};
},
created() {
this.getService();
},
methods: {
...mapMutations('home', ['setServiceArr']),
//
onShowSizeChange(current, size) {
this.current = current;
},
//
async getService() {
try {
const params = { param: { serviceType: 2 } };
const res = await selService(params);
const { code, data, msg } = res.data;
if (code === 200) {
this.list = data;
}
} catch (error) {
console.log(data);
}
},
//
jump(id) {
console.log(id);
this.setServiceArr([]);
this.setServiceArr(this.arr);
this.$router.push({
path: '/NewPlatform/ServiceDet',
name: 'ServiceDet',
params: { id },
});
},
},
};
</script>
<style lang="stylus" scoped>
.pagination {
text-align: right;
}
.ml {
margin-left: 3%;
}
.mr {
margin-right: 3%;
}
.item-box {
width: 47%;
border-radius: 4px;
margin-bottom: 60px;
}
.item-box img {
width: 200px;
height: 192px;
border-radius: 15px;
}
.item-title {
border-bottom: 1px dashed #cfcfcf;
}
.item-content {
display: -webkit-box;
overflow: hidden;
white-space: normal !important;
text-overflow: ellipsis;
word-wrap: break-word;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
height: 75px;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

135
src/views/Hatch/Children/Tutor.vue

@ -1,11 +1,142 @@
<!--
Copyright (c) 2020.
author: song
email: 15235360226@163.com
-->
<template>
<div>创业导师</div>
<div class="pa-10 white" v-if="teachers && teachers.length > 0">
<div :key="teacher.categoryId" class="mb-4" v-for="teacher in teachers">
<p class="font-bold-20 title-color">{{ teacher.categoryName }}</p>
<div class="d-flex flex-wrap mb-10" v-if="teacher.services && teacher.services.length">
<div
:class="(index + 1) % 4 === 0 ? 'teacher-box1' : ''"
:key="index"
class="teacher-box font-24 mb-3"
v-for="(item, index) in teacher.services"
>
<div :class="index === 0 ? 'teacher-item-active' : ''" class="teacher-item font-24 mb-3">
<div class="font-26 teacher-title mb-5">{{ item.name }}</div>
<div class="font-14 teacher-txt">
会组成按理事会章程执行经理
层设总经理 1 会组成按理事
会章程执行经理层设总经理 1
名导师
</div>
<div class="d-flex flex-row justify-center py-5">
<span></span>
</div>
<div class="d-flex flex-row justify-center">
<img src="~assets/teacher01.png" v-if="index === 0" />
<img src="~assets/teacher02.png" v-else />
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
import { selTeacher } from 'config/api';
export default {
name: 'Tutor',
data() {
return {};
return {
title: '孵化平台-创业导师',
showPage: 44,
arr: [
{ name: '孵化平台', url: '/IncubationPlatform/MakerSpace' },
{ name: '创业导师', url: '' },
],
teachers: [],
};
},
created() {
this.handleTeacher();
},
methods: {
//
async handleTeacher() {
try {
const res = await selTeacher();
const { code, msg, data } = res.data;
if (code === 200) {
this.teachers = data;
for (let i = 0; i < this.teachers.length; i++) {
const element = this.teachers[i];
for (let j = 0; j < element.services.length; j++) {
for (let k = 0; k < element.services.length - j; k++) {
if (element.services[k].order > element.services[k + 1].order) {
let a = {};
a = element.services[k + 1].order;
element.services[k + 1].order = element.services[k].order;
element.services[k].order = a;
}
}
}
}
} else {
this.$message.error(msg);
}
} catch (error) {
this.$message.error(error);
}
},
},
};
</script>
<style lang="stylus" scoped>
.teacher-box {
width: 22%;
margin-right: 4%;
}
.teacher-box1 {
margin-right: 0;
}
.teacher-item {
width: 100%;
padding: 24px 12px 30px;
background: #f8f8f8;
color: rgba(80, 80, 80, 0.7);
text-align: center;
.teacher-title {
text-align: center;
color: rgba(80, 80, 80, 0.4);
}
.teacher-txt {
text-align: justify;
height: 105px;
overflow: hidden;
}
span {
display: inline-block;
width: 28px;
height: 3px;
background: #E77816;
}
}
.teacher-item-active {
background: #E77816;
color: #fff;
.teacher-title {
color: #fff;
}
span {
background: #fff;
}
}
</style>

31
src/views/Hatch/Hatch.vue

@ -1,6 +1,13 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-14 17:28:38
* @LastEditors: wally
* @LastEditTime: 2021-01-15 09:40:02
-->
<template>
<div>
<rotation />
<banner :show-page="showPage" />
<div class="inner" style="margin-top: 50px; margin-bottom: 100px">
<left-nav style="float: left" />
<div style="width: 83%; float: right">
@ -11,17 +18,35 @@
</template>
<script>
import Rotation from 'components/Rotation/Rotation.vue';
import Banner from 'components/Banner/Banner.vue';
import LeftNav from './components/LeftNav.vue';
export default {
name: 'Hatch',
components: { LeftNav, Rotation },
components: { Banner, LeftNav },
data() {
return {
title: '孵化平台',
arr: [{ name: '孵化平台', url: '' }],
showPage: 0,
};
},
created() {
if (this.$route.fullPath === '/Hatch/Incubator') {
this.showPage = 32;
} else if (this.$route.fullPath === '/Hatch/Fictitious') {
this.showPage = 33;
} else if (this.$route.fullPath === '/Hatch/Tutor') {
this.showPage = 34;
} else if (this.$route.fullPath === '/Hatch/Partner') {
this.showPage = 35;
} else if (this.$route.fullPath === '/Hatch/Service') {
this.showPage = 36;
} else {
this.showPage = 31;
}
},
};
</script>

9
src/views/Hatch/components/LeftNav.vue

@ -7,9 +7,12 @@
-->
<template>
<div class="nav-box">
<div :class="activeNum === index ? 'nav-box-active' : ''" :key="index" @click="jump(item.url, index)" v-for="(item, index) in list">
{{ item.title }}
</div>
<div
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
:key="index"
@click="jump(item.url, index)"
v-for="(item, index) in list"
>{{ item.title }}</div>
</div>
</template>

212
src/views/ItInformation/ItInformation.vue

@ -0,0 +1,212 @@
<!--
Copyright (c) 2020.
author: bin
email: binbin0314@126.com
-->
<template>
<div class="inner">
<div class="policy-box">
<div :key="index" class="policy-list" v-for="(item, index) in lists">
<div @click="jumpDetails(item)" class="date-box pointer" v-if="item.time">
<p class="date-mon">{{ monthEnglish[item.time.split('-')[1] - 1] }}.</p>
<p class="date-day">{{ item.time.split(' ')[0].split('-')[2] }}</p>
</div>
<p @click="jumpDetails(item)" class="item-title pointer">{{ item.title }}</p>
<p @click="jumpDetails(item)" class="item-content pointer">{{ item.content }}</p>
<p class="source-time">
<span class="source" v-if="item.time">时间{{ item.time }}</span>
<span class="source">地点{{ item.site }}</span>
</p>
</div>
</div>
<a-pagination
:current="current"
:page-size="pageSize"
:total="total"
@change="onShowSizeChange"
class="pagination"
show-less-items
show-quick-jumper
v-show="total > 5"
/>
</div>
</template>
<script>
import { mapState, mapMutations } from 'vuex';
import { industryInfo } from 'config/api';
export default {
name: 'ItInformation',
data() {
return {
lists: [],
total: 0,
pageSize: 5,
current: 1,
monthEnglish: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Spt', 'Oct', 'Nov', 'Dec'],
};
},
created() {
this.getData();
},
methods: {
...mapMutations('home', ['setActDetail']),
async getData() {
try {
const params = {
param: {
pageNum: this.current,
pageSize: this.pageSize,
},
};
const res = await industryInfo(params);
const { code, data, msg } = res.data;
if (code === 200) {
this.lists = data.list;
this.total = parseInt(data.total);
for (var i = 0; i < this.lists.length; i++) {
// this.lists[i].time = moment(this.lists[i].time).format('YYYY-MM-DD');
this.lists[i].time = this.$moment(parseInt(this.lists[i].time) * 1000).format('YYYY-MM-DD');
}
} else {
console.log(msg);
}
} catch (error) {
this.$message.error(error);
}
},
onShowSizeChange(current) {
this.current = current;
this.getData();
},
//
jumpDetails(item) {
this.setActDetail(item);
this.$router.push('/ActDetails');
},
},
};
</script>
<style scoped lang="stylus">
.inner {
margin: 40px auto;
}
.policy-box {
.policy-list {
position: relative;
width: 100%;
height: 238px;
overflow: hidden;
background: #fff;
box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
margin-top: 24px;
padding: 25px;
}
}
.item-title {
margin-left: 200px;
overflow: hidden;
display: -webkit-box;
font-size: 24px;
color: rgba(0, 0, 0, 0.65);
font-family: Microsoft YaHei;
font-weight: bold;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.item-content {
margin-left: 200px;
text-indent: 2em;
font-size: 16px;
color: rgba(0, 0, 0, 0.35);
line-height: 36px;
font-family: Microsoft YaHei;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.source {
cursor: pointer;
font-family: Microsoft YaHei;
font-weight: 400;
opacity: 1;
margin-right: 24px;
}
.time {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
color: rgba(0, 0, 0, 0.25);
opacity: 1;
}
.original {
position: absolute;
right: 25px;
bottom: 25px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 22px;
opacity: 1;
margin-bottom: 0;
span {
cursor: pointer;
}
}
.date-box {
height: 188px !important;
width: 188px !important;
position: absolute !important;
top: 0 !important;
// box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
text-align: center;
box-shadow: none !important;
padding: 25px;
margin-top: 24px;
p {
margin-bottom: 0 !important;
}
}
.date-mon {
font-size: 40px;
height: 40px;
line-height: 40px;
font-weight: 500;
color: #13ACC4;
}
.date-day {
font-size: 70px;
height: 80px;
line-height: 80px;
font-weight: bold;
color: #13ACC4;
}
.source-time {
margin-left: 200px;
position: absolute;
bottom: 26px;
margin-bottom: 0;
}
.pagination {
margin-top: 68px;
text-align: right;
}
</style>

2
src/views/ServiceMarket/Children/InnovativeService.vue

@ -2,7 +2,7 @@
<div class="d-flex flex-nowrap inner">
<left-nav />
<div class="flex-1">
<div class="content-box pa-3">
<div class="content-box fill-width pa-3">
<div
:key="index"
style="margin-bottom: 50px; cursor: pointer"

2
src/views/ServiceMarket/Children/Institute.vue

@ -192,7 +192,7 @@ export default {
.pic {
width: 100%;
height: 300px;
height: 230px;
position: relative;
span {

2
src/views/ServiceMarket/components/LeftNav.vue

@ -8,7 +8,7 @@
<template>
<div class="nav-box">
<div
:class="activeNum === index ? 'nav-box-active' : ''"
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
:key="index"
@click="jump(item.url, index)"
v-for="(item, index) in list"

105
src/views/Study/StuDetails.vue

@ -1,31 +1,45 @@
<template>
<div class="box">
<div>
<div class="policy-title">
<div class="inner">
<div class="d-flex flex-column">
<div class="font-24 title-color pa-5">
<span>{{ postDetail.title }}</span>
</div>
<div class="policy-info">
<span>
<div class="px-5 font-16 line-height-30" v-dompurify-html="postDetail.content"></div>
<div class="px-5 py-8 d-flex flex-row-reverse secondary">
<span class="ml-8">
时间
<span>{{ postDetail.createdTime }}</span>
</span>
<span style="margin-left: 60px"> 地点太原 </span>
<span>地点太原</span>
</div>
<div class="policy-content" v-dompurify-html="postDetail.content"></div>
</div>
<div class="coms-style">
<div class="coms-top">
<div :key="index" style="margin-top: 2em" v-for="(item, index) in coms">
<div class="px-3">
<a-divider />
</div>
<div class="fill-width px-3">
<div class="coms-top mt-8">
<div :key="index" class="my-8" v-for="(item, index) in coms">
<p style="color: #999">
<a-avatar :size="30" :src="item.avatarUrl" alt style="margin-top: -4px; margin-right: 4px" />
<a-avatar
:size="30"
:src="item.avatarUrl"
alt
style="margin-top: -4px; margin-right: 4px"
/>
<span style="margin-right: 10px">{{ item.userName }}</span>
<span class="coms-content">{{ item.content }}{{ item.content }}{{ item.content }}</span>
</p>
</div>
</div>
<div class="coms-btm">
<a-textarea placeholder="请输入内容..." style="height: 140px;min-height: 140px;max-height: 140px" v-model="comment" />
<a-button @click="sub" class="sub" type="primary">提交</a-button>
<div class="fill-width mt-8">
<a-textarea
placeholder="请输入内容..."
style="height: 140px;min-height: 140px;max-height: 140px"
v-model="comment"
/>
<div class="d-flex flex-row-reverse">
<a-button @click="sub" class="sub" type="primary">发表</a-button>
</div>
</div>
<!-- <div class="txtara">
<a-textarea placeholder="请输入..." :rows="4" v-model="comment" />
@ -95,73 +109,18 @@ export default {
</script>
<style lang="stylus" scoped>
.box {
width: 1260px;
position: relative;
.inner {
margin: 80px auto;
background: #fff;
min-height: 1037px;
overflow: hidden;
opacity: 1;
padding-bottom: 480px;
}
.back-btn {
width: 80px;
position: absolute;
right: 0;
}
.policy-title {
height: 120px;
font-size: 24px;
font-family: Microsoft YaHei;
font-weight: 400;
color: rgba(0, 0, 0, 0.85);
opacity: 1;
text-align: left;
display: flex;
align-items: center;
justify-content: left;
padding: 0 25px;
}
.policy-info {
position: absolute;
height: 76px;
line-height: 76px;
right: 25px;
bottom: 500px;
text-align: center;
}
.policy-content {
padding: 0 25px;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
font-weight: 400;
font-family: Microsoft YaHei;
}
.coms-style {
height: 480px;
padding: 25px 0;
border-top: 2px solid #ccc;
position: absolute;
bottom: 0;
width: 100%;
}
.coms-top {
height: 280px;
padding: 0 25px;
overflow: auto;
box-shadow: 0 0 5px #ccc;
}
.coms-btm {
margin-top: 20px;
padding: 0 10px;
// box-shadow: 0 0 5px #ccc;
}
.coms-content {
@ -169,8 +128,6 @@ export default {
}
.sub {
position: absolute;
right: 20px;
bottom: 20px;
margin: 20px 0 100px;
}
</style>

69
src/views/Study/Study.vue

@ -6,10 +6,9 @@
<template>
<div class="inner">
<div class="search-list">
<div class="d-flex flex-row-reverse mb-8">
<a-input-search
@search="searchData"
class="search"
enter-button="搜索"
placeholder="请输入..."
style="width: 381px"
@ -17,36 +16,22 @@
/>
</div>
<div :key="index" class="post" v-for="(item, index) in lists">
<div class="d-flex flex-nowrap">
<div class="d-flex flex-nowrap fill-height">
<img :src="item.visitLocation" alt class="post-img" v-if="item.visitLocation" />
<div>
<div class="post-content">
<div class="flex-1 flex-column">
<p class="post-title">{{ item.title }}</p>
<div class="con-con" v-dompurify-html="item.content"></div>
</div>
<p style="color: rgba(0, 0, 0, 0.45); line-height: 30px; margin: 0 0 0 30px !important; margin-left: 0 !important">
<div class="d-flex flex-nowrap secondary line-height-30 mt-8">
<span>{{ item.createdTime }}</span>
<span style="margin-left: 20px"> 地点太原 </span>
</p>
</div>
</div>
<p class="look-down baseColor">
<span @click="getDet(item.id, index)">
<span style="margin-left: 20px">地点太原</span>
<div class="flex-1"></div>
<span @click="getDet(item.id, index)" class="baseColor pointer">
查看详情
<a-icon type="arrow-right" />
</span>
</p>
<!-- <div class="comment">
<div :key="b" v-for="(a, b) in coms">
<p style="padding-left: 20px">
<a-avatar :size="20" :src="a.avatarUrl" style="margin-top: -4px" />
<span>{{ a.userName }}</span>
<span style="margin-left: 20px">{{ a.creatTime }}</span>
</p>
<p class="coms-con">{{ a.content }}</p>
</div>
</div> -->
</div>
</div>
</div>
<a-pagination
:current="comCurrent"
@ -145,7 +130,7 @@ export default {
}
.post-title {
// width: 165px;
width: 100%;
height: 26px;
font-size: 20px;
font-family: Microsoft YaHei;
@ -159,19 +144,6 @@ export default {
-webkit-box-orient: vertical;
}
.search-list {
height: 72px;
line-height: 72px;
padding: 0 24px;
position: relative;
}
.search {
position: absolute;
right: 0;
top: 20px;
}
.btn {
width: 75px;
height: 32px;
@ -185,7 +157,7 @@ export default {
padding: 25px;
position: relative;
overflow: hidden;
height: 270px;
height: 290px;
background: #fff;
border-bottom: 1px solid #ccc;
transition: all 0.25s;
@ -198,28 +170,15 @@ export default {
margin-right: 30px;
}
.post-content {
// margin-left: 30px;
overflow: hidden;
height: 180px;
text-indent: left;
}
.con-con {
max-height: 130px;
line-height: 30px;
height: 120px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
.look-down {
position: absolute;
right: 25px;
bottom: 10px;
cursor: pointer;
margin-bottom: 0;
}
.pagination {
margin-top: 48px;
text-align: right;

Loading…
Cancel
Save