27 changed files with 771 additions and 213 deletions
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 705 B |
@ -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> |
|||
|
@ -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> |
|||
|
@ -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> |
|||
|
@ -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> |
Loading…
Reference in new issue