Browse Source

维基创新挑战,创业学院功能,以及其他界面样式修改

master
aBin 4 years ago
parent
commit
dc6d33c62e
  1. 16339
      package-lock.json
  2. 4
      src/App.vue
  3. BIN
      src/assets/fwcs01.png
  4. BIN
      src/assets/创新.png
  5. BIN
      src/assets/合作.png
  6. BIN
      src/assets/机遇.png
  7. BIN
      src/assets/竞争.png
  8. 2
      src/components/Banner/Banner.vue
  9. 34
      src/components/FooterPage/FooterPage.vue
  10. 120
      src/components/HeadNav/HeadNav.vue
  11. 4
      src/components/Introduce/ContactMap.vue
  12. 115
      src/components/Introduce/FicHatch.vue
  13. 4
      src/components/Rotation/Rotation.vue
  14. 17
      src/config/api.js
  15. 10
      src/router/index.js
  16. 102
      src/views/Business/Business.vue
  17. 144
      src/views/Business/components/SearchBox.vue
  18. 46
      src/views/Challenge/Children/Notice.vue
  19. 108
      src/views/Challenge/Children/Release.vue
  20. 38
      src/views/Challenge/Children/Solicitation.vue
  21. 218
      src/views/Challenge/Children/components/Publish.vue
  22. 56
      src/views/Challenge/Children/components/SearchBox.vue
  23. 141
      src/views/Challenge/Children/components/Unveiling.vue
  24. 10
      src/views/Challenge/components/LeftNav.vue
  25. 26
      src/views/Develop/Develop.vue
  26. 21
      src/views/Develop/components/AddModel.vue
  27. 73
      src/views/FirstPage/FirstPage.vue
  28. 120
      src/views/Hatch/Children/Epoch.vue
  29. 191
      src/views/Hatch/Children/Space.vue
  30. 7
      src/views/Hatch/Hatch.vue
  31. 78
      src/views/Hatch/components/LeftNav.vue
  32. 41
      src/views/Policy/components/PolicyList.vue
  33. 6
      src/views/ServiceMarket/Children/InnovativeService.vue
  34. 25
      src/views/ServiceMarket/Children/Institute.vue

16339
package-lock.json

File diff suppressed because it is too large

4
src/App.vue

@ -58,13 +58,13 @@ body,
}
body {
background: #f5f5f5 !important;
padding-top: 80px;
padding-top: 60px;
}
body::-webkit-scrollbar {
width: 0;
}
.head-nav {
height: 80px;
height: 60px;
width: 100%;
top: 0;
background: white;

BIN
src/assets/fwcs01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
src/assets/创新.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
src/assets/合作.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
src/assets/机遇.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
src/assets/竞争.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

2
src/components/Banner/Banner.vue

@ -13,7 +13,7 @@
<template>
<div class="head">
<a-carousel :autoplay="false">
<a-carousel :autoplay="false" v-if="bannerLists.length > 0">
<div :key="item.id" v-for="item in bannerLists">
<img :src="item.url" alt />
<div id="banner-box"></div>

34
src/components/FooterPage/FooterPage.vue

@ -5,46 +5,28 @@
<div class="box">
<img class="pic" src="~assets/logo_bottom.png" />
</div>
<div class="box flex-1 d-flex flex-column" style="padding-left: 13%;">
<div class="box flex-1 d-flex flex-column" style="padding-left: 13%">
<div class="title">发现</div>
<span
:key="find.id"
@click="$router.push(find.path)"
class="pointer"
v-for="find in finds"
>{{ find.name }}</span>
<span :key="find.id" @click="$router.push(find.path)" class="pointer" v-for="find in finds">{{ find.name }}</span>
</div>
<div class="box flex-1 d-flex flex-column">
<div class="title">资讯</div>
<span
:key="item.id"
@click="$router.push(item.path)"
class="pointer"
v-for="item in news"
>{{ item.name }}</span>
<span :key="item.id" @click="$router.push(item.path)" class="pointer" v-for="item in news">{{ item.name }}</span>
</div>
<div class="box flex-1 d-flex flex-column">
<div class="title">联系我们</div>
<span
:key="arr.id"
@click="$router.push(arr.path)"
class="pointer"
v-for="arr in arrs"
>{{ arr.name }}</span>
<div class="font-bold-24 mt-3" style="font-style: italic;">18003513318</div>
<span :key="arr.id" @click="$router.push(arr.path)" class="pointer" v-for="arr in arrs">{{ arr.name }}</span>
<div class="font-bold-24 mt-3" style="font-style: italic">18003513318</div>
</div>
<div class="box">
<img
class="pic"
src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/lvgu.jpg"
/>
<img class="pic" src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/lvgu.jpg" />
</div>
</div>
</div>
<div class="xian"></div>
<div class="font-12 align-center text">
Copyright © 2020 The Project by
<span style="color:#2E54EA">CCSENS</span>. All Rights Reserved
<span style="color: #2e54ea">CCSENS</span>. All Rights Reserved
</div>
</div>
</template>
@ -56,7 +38,7 @@ export default {
str: '头部导航栏',
finds: [
{ id: 1, name: '创新挑战', path: '/Challenge/Solicitation' },
{ id: 2, name: '服务超市', path: '/ServiceMarket/Institute' },
{ id: 2, name: '创新研究院', path: '/ServiceMarket/Institute' },
{ id: 3, name: '孵化平台', path: '/Hatch/Space' },
{ id: 4, name: '学习平台', path: '/Study' },
],

120
src/components/HeadNav/HeadNav.vue

@ -1,8 +1,9 @@
<template>
<div class="white d-flex flex-row flex-nowrap px-10 align-center">
<div class="head d-flex flex-row flex-nowrap px-10 align-center">
<img @click="jumUrl('/')" alt class="logo-img" src="@/assets/logo.png" style="cursor: pointer" />
<div class="flex-1 ml-8">
<a-dropdown
:class="actPath - 1 === a ? 'list-act' : ''"
:disabled="item.children && item.children.length > 0 ? false : true"
:key="a"
class="list-down"
@ -13,40 +14,27 @@
<a-icon type="down" v-show="item.children && item.children.length > 0" />
</a>
<a-menu slot="overlay">
<a-menu-item
:key="b"
class="px-6 py-3"
style="text-align: center"
v-for="(con, b) in item.children"
>
<a-menu-item :key="b" class="px-6 py-3" style="text-align: center" v-for="(con, b) in item.children">
<a @click="jumUrl(con.url)">{{ con.title }}</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</div>
<div class="d-flex flex-nowrap align-center">
<div class="d-flex flex-column justify-center" style="position:relative">
<a-icon
@mouseover="showSearch = true"
class="icon-head pointer icon-head-right"
type="search"
v-show="!showSearch"
/>
<div class="d-flex flex-column justify-center" style="position: relative">
<a-icon @mouseover="showSearch = true" class="icon-head pointer icon-head-right" type="search" v-show="!showSearch" />
<a-input-group
class="icon-head-right d-flex flex-nowrap"
compact
style="position: absolute;right:0;z-index:9;width: 156px;"
style="position: absolute; right: 0; z-index: 9; width: 156px"
v-show="showSearch"
>
<a-select @change="changeCode" style="width: 120px;">
<a-select @change="changeCode" style="width: 120px">
<a-select-option value="1">政策</a-select-option>
<a-select-option value="2">活动</a-select-option>
<a-select-option value="3">学习</a-select-option>
</a-select>
<a-button
icon="search"
style="width: 36px;color: #d9d9d9 !important; border-color: #d9d9d9 !important;"
></a-button>
<a-button icon="search" style="width: 36px; color: #d9d9d9 !important; border-color: #d9d9d9 !important"></a-button>
<!-- <a-input-search class="flex-1" placeholder="请输入..." style="width: 150px" /> -->
<!-- @search="getPolicy" -->
</a-input-group>
@ -56,11 +44,7 @@
<template slot="title">
<span>点击查看购物车</span>
</template>
<a-icon
@click="$router.push('/Cart')"
class="baseColor icon-head icon-head-right pointer"
type="shopping-cart"
/>
<a-icon @click="$router.push('/Cart')" class="baseColor icon-head icon-head-right pointer" type="shopping-cart" />
</a-tooltip>
<router-link tag="span" to="/login">
<a-icon class="icon-head pointer" style="right: 50px" type="user" />
@ -81,7 +65,7 @@ export default {
url: '/Policy',
},
{
name: '服务超市',
name: '创新研究院',
url: '/ServiceMarket/Institute',
children: [
{
@ -100,20 +84,28 @@ export default {
},
{
name: '孵化平台',
url: '/Hatch/Space',
url: '/Hatch/Epoch',
children: [
{
title: '创时代孵化器',
url: '/Hatch/Epoch',
},
{
title: '高新众创空间',
url: '/Hatch/Space',
},
{
title: '数智创时代业孵化器',
title: '数智创时代业孵化器',
url: '/Hatch/Incubator',
},
{
title: '虚拟孵化器',
title: '线上孵化器',
url: '/Hatch/Fictitious',
},
{
title: '创新创业服务',
url: '/Hatch/Service',
},
{
title: '创业导师',
url: '/Hatch/Tutor',
@ -122,10 +114,6 @@ export default {
title: '合作伙伴',
url: '/Hatch/Partner',
},
{
title: '创业服务',
url: '/Hatch/Service',
},
],
},
{
@ -158,10 +146,10 @@ export default {
name: '创业学院',
url: '/Business',
},
{
name: '学习平台',
url: '/Study',
},
// {
// name: '',
// url: '/Study',
// },
{
name: '关于我们',
url: '/About/Introduce',
@ -190,8 +178,35 @@ export default {
},
],
showSearch: false,
actPath: 0,
};
},
watch: {
$route(to, from) {
const toDepth = to.fullPath.split('/');
if (toDepth[1] === 'Policy') {
this.actPath = 1;
} else if (toDepth[1] === 'ServiceMarket') {
this.actPath = 2;
} else if (toDepth[1] === 'Hatch') {
this.actPath = 3;
} else if (toDepth[1] === 'Develop') {
this.actPath = 4;
} else if (toDepth[1] === 'Activity') {
this.actPath = 5;
} else if (toDepth[1] === 'Challenge') {
this.actPath = 6;
} else if (toDepth[1] === 'Business') {
this.actPath = 7;
} else if (toDepth[1] === 'About') {
this.actPath = 8;
} else if (toDepth[1] === 'ContactUs') {
this.actPath = 9;
} else {
this.actPath = 0;
}
},
},
methods: {
jumUrl(url) {
if (this.$route.path !== url) {
@ -216,7 +231,7 @@ export default {
<style lang="stylus" scoped>
.head {
height: 80px;
height: 60px;
width: 100%;
background: white;
// position: relative;
@ -224,10 +239,18 @@ export default {
.list-down {
margin-right: 20px;
font-size: 16px;
font-size: 18px;
color: rgba(0, 0, 0, 0.65);
}
.list-down:hover {
color: #007CC1;
}
.list-act {
color: #007CC1 !important;
}
.logo-img {
height: 50px;
}
@ -258,4 +281,23 @@ export default {
margin-right: 24px;
}
}
@media only screen and (max-width: 1100px) {
.list-down {
margin-right: 10px;
font-size: 12px;
}
.logo-img {
height: 44px;
}
.icon-head {
font-size: 24px;
}
.icon-head-right {
margin-right: 24px;
}
}
</style>

4
src/components/Introduce/ContactMap.vue

@ -30,10 +30,10 @@ export default {
var point = new BMap.Point(112.561731, 37.789483);
map.centerAndZoom(point, 18);
var marker = new BMap.Marker(point); //
// marker.setTitle('西');
// marker.setTitle('西');
map.addOverlay(marker); //
var content = '<table>';
content = content + '<tr><td> 山西创时代业孵化器有限公司</td></tr>';
content = content + '<tr><td> 山西创时代业孵化器有限公司</td></tr>';
content = content + '<tr><td></td></tr>';
content = content + '<tr><td> 山西综改示范区太原学府园区发展路15号中绿大厦503室</td></tr>';
content += '</table>';

115
src/components/Introduce/FicHatch.vue

@ -2,43 +2,86 @@
<div class="white">
<div class="top-bg">
<div class="words-content">
<p class="words-title">
<span v-if="typeNum === 2">数智创世代企业孵化器</span>
<span v-if="typeNum === 3">虚拟孵化器</span>
</p>
<p class="con-con">
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</p>
<p class="words-title">加入流程</p>
<p class="con-con">
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</p>
<div style="text-align: center; padding-bottom: 40px">
<img
v-if="typeNum === 2"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/ac9e829e39404303beba994937e831a8.png"
alt=""
/>
<img
v-if="typeNum === 3"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/608254ebb11d4f68b50558a28713f0c4.png"
alt=""
/>
<!-- <span v-if="typeNum === 2">数智创世代专业孵化器</span>
<span v-if="typeNum === 3">虚拟孵化器</span> -->
</div>
<div v-if="typeNum === 2" class="con-con">
<p style="text-indent: 2em">
数智创时代科技企业孵化器于2019年初开始建设运营拥有经验丰富管理服务人员和专家导师团队
并与第三方专业机构建立了长期的合作关系面向科技型中小企业创业者提供科技信息科技金融知识产权科技咨询等全链条的服务
</p>
<p style="text-indent: 2em">
公司围绕创客和企业创新创业需求通过产学研等多方合作集聚整合政策技术资金商务法务等各类创新创业资源要素公司组建了从事企业服务工作多年
具备丰富的运营经验的管理服务人员并聘请成功企业家高级职称技术人员大学兼职人员组建创业孵化导师团队围绕创客和企业的技术难点和技术瓶颈开展技术服务
并与第三方专业机构建立了长期的合作关系发挥其专业特长共同为企业提供专业的服务
</p>
<p style="text-indent: 2em">
数智创时代科技企业孵化器顺应大众创业万众创新的时代需求,立足新一轮科技革命和产业变革发展趋势
开放协作互利共精准服务赋能创新为宗旨通过集聚整合和优化配置创新创业资源要素目标是打造全链条创新创业解化生态平台
为科技型中小企业提供低成本便利化全要素专业化创新创业服务平台  
</p>
<div>
<span style="font-size: 18px; color: rgba(0, 0, 0, 0.85); font-weight: bold">打造高水平运营服务团队</span><br />
<p style="text-indent: 2em; margin-top: 10px">
不断充实双创人才队伍加强培训学习和实践不断提升运营服务团队的日常运营管理能力创业服务能力和企业管理能力
强化创业导师建设协调创业资源帮助创业者和入驻企业解决发展过程中遇到的问题
</p>
</div>
<div>
<span style="font-size: 18px; color: rgba(0, 0, 0, 0.85); font-weight: bold">抓好孵化器入驻企业服务</span><br />
<p style="text-indent: 2em; margin-top: 10px">
不断完善孵化器的工作空间网络空间社交空间和资源共享空间等软硬件设施建设打造实现低成本便利化全要素
开放式运营的数智创时代科技企业孵化器加强宣传推介切实抓好解化器空间内的企业入驻利用各种资源提高场地入驻率和入驻企业的质量
</p>
</div>
<div>
<span style="font-size: 18px; color: rgba(0, 0, 0, 0.85); font-weight: bold">全面推进孵化器提档升级</span><br />
<p style="text-indent: 2em; margin-top: 10px">
在现有工作基础上加强政策研究学习对照山西省科技局山西转型综改示范区对科技企业解化器的政策要求和现有孵化器的建设
加强日常工作完善孵化器建设提升服务水平不断推进空间载体的提档升级将本孵化器打造成我省一流
标杆的以新一代信息技术为主导的科技企业解化器
</p>
</div>
</div>
<div v-if="typeNum === 3" class="con-con">
<p style="text-indent: 2em">
线上孵化器是利用互联网+孵化服务通过移动端和客户端实现在线上完成孵化器招商运营为创业者提供各种与创业关系密切的活动
线上孵化器主要为创业者之间创业者与导师之间创业者和投资人之间初创企业和成熟企业之间搭建业务或资本合作的桥梁
线上孵化器扩大了资源范围降低了运营成本提升了运营效率是未来产业发展的方向
</p>
</div>
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/ce395331ef204be8b0d570222224f3f4.png" alt="" />
</div>
<img
v-if="typeNum === 2"
style="width: 100%; margin-bottom: 40px"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/dfd10e80c7024b50b08faef64705a8ea.png"
/>
<img
v-if="typeNum === 3"
style="width: 100%; margin-bottom: 40px"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210318/8a7245d9386c4f8b8135d3f2cfec6efb.png"
/>
</div>
<!-- <a-button class="btn" type="primary">立即加入</a-button> -->
<add-model :value="typeNum" class="btn" style="height: 32px" />
<!-- <add-model :value="typeNum" class="btn" style="height: 32px" /> -->
</div>
<div>
<p class="words-title">
<span>入驻企业名录</span>
</p>
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/64d5cdec92ca41c7b06712a906c9c466.png" alt="" />
</div>
<div class="d-flex flex-wrap" style="padding: 0 25px 80px 25px; position: relative">
<div :class="(index + 1) % 4 === 0 ? 'mr0' : ''" :key="index" class="ent-box" v-for="(item, index) in lists">
<div :style="{ background: colorList[index] }" class="ent-img-box">
@ -61,11 +104,11 @@
</template>
<script>
import AddModel from './../../views/Hatch/Children/components/AddModel.vue';
// import AddModel from './../../views/Hatch/Children/components/AddModel.vue';
import SettledModel from './SettledModel.vue';
export default {
name: 'FicHatch',
components: { AddModel, SettledModel },
components: { SettledModel },
props: {
typeNum: {
type: Number,
@ -127,7 +170,7 @@ export default {
}
.words-title {
font-size: 20px;
font-size: 22px;
font-weight: bold;
color: rgba(0, 0, 0, 0.85);
text-align: center;

4
src/components/Rotation/Rotation.vue

@ -42,13 +42,13 @@ export default {
<style lang="stylus">
.head {
background: white;
max-height: 350px;
max-height: 300px;
overflow: hidden;
position: relative;
}
.img-box {
height: 350px;
height: auto;
width: 100%;
img {

17
src/config/api.js

@ -18,7 +18,7 @@ const service = `${wiki}/service`; // 服务相关接口
const user = `${wiki}/user`; // 用户相关接口
const product = `${wiki}/product`; // 产品相关接口
const tutorRelated = `${wiki}/tutorRelated`; // 导师相关接口
const releaseTheList = `${wiki}/releaseTheList`; // 创新挑战相关接口
// websocket基础地址
export const WS_BASE_URL = msgUrl;
@ -115,3 +115,18 @@ export const selTeacher = () => axios.post(`${tutorRelated}/selTeacher`);
// 入驻企业申请
export const Settled = params => axios.post(`${wiki}/place/apply`, params);
// 创新挑战发榜功能
export const addTelease = params => axios.post(`${releaseTheList}/addTelease`, params);
// 创新挑战查询发榜
export const selTelease = params => axios.post(`${releaseTheList}/selTelease`, params);
// 创新挑战揭榜功能
export const addUnveiling = params => axios.post(`${releaseTheList}/addUnveiling`, params);
// 创新挑战揭榜成功列表查询
export const selfulUnveilingList = params => axios.post(`${releaseTheList}/selfulUnveilingList`, params);
// 创业学院内容查询
export const back = params => axios.post(`${wiki}/academy/query/back`, params);

10
src/router/index.js

@ -156,7 +156,7 @@ const routes = [
name: 'PolicyDetails',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Policy/PolicyDetails.vue'),
},
// 服务超市
// 创新研究院
{
path: '/ServiceMarket/Institute',
name: 'ServiceMarket',
@ -186,10 +186,16 @@ const routes = [
},
// 孵化平台
{
path: '/Hatch/Space',
path: '/Hatch/Epoch',
name: 'Hatch',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Hatch/Hatch.vue'),
children: [
{
// 高新众创空间
path: '/Hatch/Epoch',
name: 'Epoch',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Hatch/Children/Epoch.vue'),
},
{
// 高新众创空间
path: '/Hatch/Space',

102
src/views/Business/Business.vue

@ -1,16 +1,20 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-14 11:30:53
* @LastEditors: wally
* @LastEditTime: 2021-01-15 21:38:47
-->
<template>
<div>
<banner :show-page="71" />
<div class="inner content-box" style="margin-top: 50px; margin-bottom: 50px">
<div :key="index" v-for="(item, index) in list">
<div class="d-flex justify-space-between" v-if="index % 2 === 0">
<search-box @getData="getData" class="inner" />
<div class="inner content-box" style="padding-bottom: 80px">
<div class="d-flex flex-wrap" style="margin-top: 50px; margin-bottom: 50px">
<div :key="index" v-for="(item, index) in list" style="width: 30%" :class="(index + 2) % 3 === 0 ? 'mg' : ''">
<div style="height: 500px">
<video v-if="item.type !== 3" :poster="item.picUrl" class="fill-height" controls style="width: 100%; height: 300px">
<source :src="item.contentUrl" type="video/mp4" />
<source :src="item.contentUrl" type="video/ogg" />
</video>
<img v-else :src="item.picUrl" style="width: 100%; height: 300px; cursor: pointer" @click="openPage(item.contentUrl)" alt="" />
<p class="introduce-title">{{ item.title }}</p>
<p class="introduce-content">{{ item.intro }}</p>
</div>
<!-- <div class="d-flex justify-space-between" v-if="index % 2 === 0">
<div class="introduce-box" style="width: 50% !important">
<p class="introduce-title">{{ item.title }}</p>
<p class="introduce-content">{{ item.content }}</p>
@ -30,6 +34,7 @@
<p class="introduce-title">{{ item.title }}</p>
<p class="introduce-content">{{ item.content }}</p>
</div>
</div> -->
</div>
</div>
<a-pagination
@ -48,51 +53,78 @@
<script>
import Banner from 'components/Banner/Banner.vue';
import SearchBox from './components/SearchBox.vue';
import { back } from 'config/api';
export default {
name: 'Introduce',
components: { Banner },
components: { Banner, SearchBox },
data() {
return {
title: '创业学院',
list: [
{
title: '山西维基智汇科技有限公司',
content:
'研究院的介绍包含研究院,公司架构,和各中心的介绍。' +
'各中心介绍包含科创体系与科创能力咨询服务中心、知识产权与技术转移咨询服务中心、' +
'数字化转型咨询服务中心、科技信息咨询服务中心、科创战略协同研究中心、' +
'山西奥依工业设计咨询服务中心;研究院的介绍包含研究院,公司架构,和各中心的介绍。',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
videoUr: 'https://www.sxwikionline.com/greenvalley/01.mp4',
},
{
title: '山西维基智汇科技有限公司',
content:
'各中心介绍包含科创体系与科创能力咨询服务中心、' +
'知识产权与技术转移咨询服务中心、数字化转型咨询服务中心、科技信息咨询服务中心、' +
'科创战略协同研究中心、山西奥依工业设计咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/4f9b898da25e48d3b73b47345ed14a9a.jpg',
videoUr: 'https://www.sxwikionline.com/greenvalley/02.mp4',
},
],
list: [],
current: 1,
pageSize: 2,
pageSize: 9,
total: 10,
typeNum: '',
bannerNum: '',
titleText: '',
};
},
created() {
this.getData();
},
methods: {
onShowSizeChange(current, size) {
console.log(current, size);
this.current = current;
this.getData();
},
async getData(getParam) {
try {
if (getParam) {
this.typeNum = getParam.typeNum;
this.bannerNum = getParam.bannerNum;
this.titleText = getParam.titleText;
}
const params = {
param: {
banner: this.bannerNum,
type: this.typeNum,
title: this.titleText,
pageNum: this.current,
pageSize: this.pageSize,
},
};
const res = await back(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.total = parseInt(data.total);
this.list = data.list;
} else {
this.$message.error('查询失败');
}
} catch (error) {
this.$message.error(error);
}
},
openPage(url) {
window.open(url);
},
},
};
</script>
<style lang="stylus" scoped>
.mg {
margin: 0 5%;
}
.pagination {
margin-top: 48px;
text-align: right;
}
video {
width: 100%;
// object-fit: fill;
}
</style>

144
src/views/Business/components/SearchBox.vue

@ -0,0 +1,144 @@
<template>
<div class="search-list">
<span style="font-size: 16px; color: rgba(0, 0, 0, 0.85)">栏目</span>
<!-- <a-select allow-clear style="width: 120px" @change="handleChange">
<a-select-option v-for="(item, index) in bannerList" :key="index" :value="index + 1"> {{ item }} </a-select-option>
</a-select> -->
<span
class="ban-style"
:class="bannerNum === index + 1 ? 'ban-act' : ''"
@click="onClick(index)"
v-for="(item, index) in bannerList"
:key="index"
>
{{ item }}
</span>
<br />
<span style="font-size: 16px; color: rgba(0, 0, 0, 0.85)">类型</span>
<span
class="ban-style"
:class="typeNum === index + 1 ? 'ban-act' : ''"
@click="onClick1(index)"
v-for="(item, index) in typeList"
:key="index + 10"
>
{{ item }}
</span>
<br />
<span style="font-size: 16px; color: rgba(0, 0, 0, 0.85)">时间</span>
<span
class="ban-style"
:class="timeNum === index + 1 ? 'ban-act' : ''"
@click="onClick2(index)"
v-for="(item, index) in timeList"
:key="item"
>
{{ item }}
</span>
<a-input placeholder="搜索标题..." class="search-ipt" allow-clear style="width: 30%" v-model="titleText" />
<a-button class="search-btn" type="primary" @click="submit">搜索</a-button>
</div>
</template>
<script>
export default {
data() {
return {
typeList: ['视频', '音频', '文档', '全部'],
typeNum: 0,
bannerList: ['栏目1', '栏目2', '栏目3', '全部'],
bannerNum: 0,
titleText: '',
timeList: ['近七天', '近一个月', '近一年', '全部'],
timeNum: 0,
};
},
methods: {
submit() {
// console.log(this.getParam);
const getParam = {
typeNum: this.typeNum,
bannerNum: this.bannerNum,
titleText: this.titleText,
};
this.$emit('getData', getParam);
},
handleChange(e) {
if (e) {
this.bannerNum = e;
} else {
this.bannerNum = '';
}
},
handleChange1(e) {
if (e) {
this.typeNum = e;
} else {
this.typeNum = '';
}
},
onClick1(index) {
if (index + 1 === this.typeNum) {
this.typeNum = 0;
} else {
this.typeNum = index + 1;
}
},
onClick(index) {
if (index + 1 === this.bannerNum) {
this.bannerNum = 0;
} else {
this.bannerNum = index + 1;
}
},
onClick2(index) {
if (index + 1 === this.timeNum) {
this.timeNum = 0;
} else {
this.timeNum = index + 1;
}
},
},
};
</script>
<style lang="stylus" scoped>
.search-list {
position: relative;
height: 108px;
line-height: 36px;
// background: #fff;
box-shadow: 0 0 4px #ccc;
border-radius: 4px;
padding: 0 24px;
position: relative;
margin: 40px auto;
}
.search-btn {
position: absolute;
right: 19px;
height: 34px;
top: 38px;
width: 80px;
font-size: 16px;
// color: white !important;
// background-color: #0195DA !important;
// border-color: #0195DA !important;
}
.ban-style {
margin-left: 10px;
cursor: pointer;
}
.ban-act {
color: #E77816;
}
.search-ipt {
position: absolute;
right: 100px;
top: 39px;
}
</style>

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

@ -3,24 +3,23 @@
<div class="search-background">
<div class="d-flex">
<div class="flex-3 flex-wrap">
<span class="ins-title">技术领域</span>
<span
<span class="ins-title">所属领域</span>
<!-- <span
:class="item.isActive ? 'act-color' : ''"
:key="index"
@click="choose(index)"
class="ins-name"
v-for="(item, index) in list"
>{{ item.name }}</span>
>
{{ item.name }}
</span> -->
<a-input style="width: 30%; margin: auto 0" allow-clear v-model="servics" />
<a-button type="primary" style="margin: auto 0">搜索</a-button>
</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>
@ -42,6 +41,7 @@
</template>
<script>
import { selfulUnveilingList } from 'config/api';
export default {
name: 'Notice',
data() {
@ -101,8 +101,12 @@ export default {
time: '2020-11-20',
},
],
servics: '',
};
},
created() {
// this.getData();
},
methods: {
choose(index) {
const that = this;
@ -117,9 +121,31 @@ export default {
// }
// this.setAchList(this.achList);
},
async getData() {
try {
const params = {
param: {
servics: this.servics,
pageNum: this.current,
pageSize: this.pageSize,
},
};
const res = await selfulUnveilingList(params);
const { code, msg, data } = res.data;
if (code === 200) {
// this.lists = data;
console.log(data);
} else {
this.$message.error('查询失败');
}
} catch (error) {
this.$message.error(error);
}
},
//
onShowSizeChange(current, size) {
this.current = current;
this.getData();
},
},
};
@ -133,7 +159,7 @@ export default {
.search-background {
background: rgba(0, 0, 0, 0.02);
border: 1px solid rgba(0, 0, 0, 0.06);
height: auto;
height: 44px;
padding: 0 20px;
margin-bottom: 40px;
line-height: 44px;

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

@ -1,18 +1,15 @@
<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"
>
<search-box @getData="getData" />
<div class="d-flex flex-wrap" v-if="lists.length > 0">
<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>
<a-button class="pro-btn" type="primary">揭榜</a-button>
<p class="pro-time">时间{{ item.deadline }}</p>
<unveiling :pro-id="item.id" class="pro-btn" type="primary" />
</div>
</div>
<a-empty v-else />
<div>
<a-pagination
:current="current"
@ -29,8 +26,12 @@
</template>
<script>
import SearchBox from './components/SearchBox.vue';
import Unveiling from './components/Unveiling.vue';
import { selTelease } from 'config/api';
export default {
name: 'Release',
components: { SearchBox, Unveiling },
data() {
return {
title: '项目发布',
@ -60,59 +61,47 @@ export default {
isActive: false,
},
],
lists: [
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
{
title: '需求标题',
content:
'需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容需求内容求内容需求内容求内容需求内容',
time: '2020-11-20',
},
],
lists: [],
companyName: '',
address: '',
dataTitle: '',
serviccs: '',
};
},
created() {
this.getData();
},
methods: {
async getData(getParam) {
try {
if (getParam) {
this.companyName = getParam.companyName;
this.address = getParam.address;
this.dataTitle = getParam.dataTitle;
this.serviccs = getParam.serviccs;
}
const params = {
param: {
companyName: this.companyName,
address: this.address,
title: this.dataTitle,
serviccs: this.serviccs,
pageNum: this.current,
pageSize: 8,
},
};
const res = await selTelease(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.lists = data.list;
this.total = parseInt(data.total);
} else {
console.log(msg);
}
} catch (error) {
console.log(error);
}
},
choose(index) {
const that = this;
// that.achList = [];
@ -129,6 +118,7 @@ export default {
//
onShowSizeChange(current, size) {
this.current = current;
this.getData();
},
},
};

38
src/views/Challenge/Children/Solicitation.vue

@ -1,36 +1,30 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-14 12:20:06
* @LastEditors: wally
* @LastEditTime: 2021-01-15 21:47:40
-->
<template>
<div class="white">
<div class="words-content">
<p class="words-title">需求征集</p>
<p class="con-con">
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</p>
<p class="words-title">征集流程</p>
<p class="con-con">
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/5893b5b4478247afbddccfc00ad53397.png" alt="" />
</div>
<p class="con-con" style="text-align: center">
公司为更好为创客和企业提供服务提供需求平台支持发布企业的各类需求让孵化器和外部资源为您排忧解难
</p>
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/48ad5b19f79244eb8b3a94d0c5d90a8e.png" alt="" />
</div>
<img
style="width: 100%"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/a6b844ca47cf4b6db3d76d9d1247a622.png"
alt=""
/>
</div>
<a-button class="btn" type="primary">我要发榜</a-button>
<publish class="btn" type="primary" />
</div>
</template>
<script>
import Publish from './components/Publish.vue';
export default {
name: 'Solicitation',
components: { Publish },
data() {
return {
title: '需求征集',

218
src/views/Challenge/Children/components/Publish.vue

@ -0,0 +1,218 @@
<template>
<div>
<a-button @click="showModal" type="primary">我要发榜</a-button>
<a-modal :confirm-loading="confirmLoading" :title="title" :visible="visible" @cancel="handleCancel" @ok="handleOk" width="50%">
<a-form :form="form">
<!-- 需求名称 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="需求名称">
<a-input placeholder="请输入需求名称..." v-model.trim="platform.needName" />
</a-form-item>
<!-- 技术领域 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="技术领域">
<a-input placeholder="请输入技术领域..." v-model.trim="platform.technicalField" />
</a-form-item>
<!-- 需求截止时间 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="需求截止时间">
<a-date-picker @change="changeNeedTime" style="width: 100%" />
</a-form-item>
<!-- 需求类别 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="需求类别">
<a-checkbox-group @change="onChange" class="line-height-30">
<a-checkbox value="1">技术研发关键核心技术</a-checkbox>
<a-checkbox value="2">产品研发产品升级新产品研发</a-checkbox>
<a-checkbox value="3">技术改造设备研发生产条件</a-checkbox>
<a-checkbox value="4">技术配套技术产品等配套合作</a-checkbox>
</a-checkbox-group>
</a-form-item>
<!-- 需求内容 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="需求内容">
<quill-editor
:options="editorOption"
@blur="onEditorBlur($event)"
@change="onEditorChange($event)"
@focus="onEditorFocus($event)"
class="editor-box"
ref="myQuillEditor"
v-model="needContent"
></quill-editor>
</a-form-item>
<!-- 现有基础 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" class="mb-3" label="现有基础">
<a-textarea
placeholder="(已经开展的工作、所处阶段、投入资金和人力、仪器 设备、生产条件等)"
style="min-height: 100px"
v-model.trim="platform.basics"
/>
</a-form-item>
</a-form>
</a-modal>
</div>
</template>
<script>
import { quillEditor } from 'vue-quill-editor'; //
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css';
const formItemLayout = {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
};
const formTailLayout = {
labelCol: { span: 6 },
wrapperCol: { span: 18, offset: 6 },
};
const toolbarOptions = [
['bold', 'italic', 'underline', 'strike'], //线线
['blockquote', 'code-block'], //
[{ header: 1 }, { header: 2 }], // 12
[{ list: 'ordered' }, { list: 'bullet' }], //
[{ script: 'sub' }, { script: 'super' }], //
[{ indent: '-1' }, { indent: '+1' }], //
[{ direction: 'rtl' }], //
// [{ size: ['small', false, 'large', 'huge'] }], //
// [{ header: [1, 2, 3, 4, 5, 6, false] }], //
[{ color: [] }, { background: [] }], //
// [{ font: [] }], //
[{ align: [] }], //
['clean'], //
['image', 'video'], //
];
export default {
name: 'Enroll',
components: { quillEditor },
data() {
return {
form: this.$form.createForm(this, { name: 'submit' }),
visible: false,
title: '发榜',
formItemLayout,
formTailLayout,
confirmLoading: false,
needContent: ``,
editorOption: {
placeholder: '在这里输入...',
modules: {
toolbar: {
container: toolbarOptions, //
handlers: {
image: function(value) {
if (value) {
alert('自定义图片');
} else {
this.quill.format('image', false);
}
},
video: function(value) {
if (value) {
alert('自定义视频');
} else {
this.quill.format('image', false);
}
},
},
},
},
},
platform: {
needName: '',
technicalField: '',
basics: '',
type: [],
buildTime: '',
},
};
},
methods: {
//
changeNeedTime(date, dateString) {
this.platform.buildTime = this.$moment(date).format('YYYY-MM-DD HH:mm:ss');
// console.log(this.$moment(date).unix(), dateString);
},
onEditorReady(editor) {
//
},
onEditorBlur() {}, //
onEditorFocus() {}, //
onEditorChange() {
//
// console.log(this.content);
},
onChange(e) {
this.platform.type = e;
},
//
fileChange(info) {
console.log(info);
// this.fileList = info.fileList;
// if (info.file.status === 'done') {
// this.files = [];
// this.files = info.fileList[0].response.data[0].id;
// console.log(this.files);
// }
},
//
showModal() {
this.visible = true;
},
//
handleCancel(e) {
this.visible = false;
},
//
handleOk() {
console.log(this.needContent);
// this.subMitAdd();
},
//
async subMitAdd() {
this.confirmLoading = true;
try {
// const params = { param: {} };
// const res = await apply(params);
// const { code, msg, data } = res.data;
// if (code === 200) {
// this.$message.success('');
// this.visible = false;
// this.confirmLoading = false;
// for (let key in this.platform) {
// this.platform[key] = '';
// }
// this.platform.isTel = false;
// } else {
// throw msg;
// this.confirmLoading = false;
// }
} catch (error) {
this.$message.error(error);
this.confirmLoading = false;
}
},
},
};
</script>
<style lang="stylus" scoped>
.must-color {
color: red;
}
.code_img {
height: 32px;
width: 120px;
}
.ql-editor {
min-height: 600px;
max-height: 800px;
}
.editor-box >>> .ql-editor {
min-height: 150px;
}
</style>

56
src/views/Challenge/Children/components/SearchBox.vue

@ -0,0 +1,56 @@
<template>
<div class="search-list">
<span>发榜单位</span> <a-input style="width: 20%" v-model="getParam.companyName" /> <span>单位地址</span>
<a-input style="width: 20%" v-model="getParam.address" /><br />
<span>发榜标题</span> <a-input style="width: 20%" v-model="getParam.dataTitle" /> <span>所属领域</span>
<a-input style="width: 20%" v-model="getParam.serviccs" />
<a-button class="search-btn" type="primary" @click="submit">搜索</a-button>
</div>
</template>
<script>
export default {
data() {
return {
getParam: {
companyName: '',
address: '',
dataTitle: '',
serviccs: '',
},
};
},
methods: {
submit() {
// console.log(this.getParam);
this.$emit('getData', this.getParam);
},
},
};
</script>
<style lang="stylus" scoped>
.search-list {
position: relative;
height: 80px;
line-height: 40px;
background: #fff;
box-shadow: 0 0 10px #ccc;
border-radius: 4px;
padding: 0 24px;
position: relative;
margin-bottom: 10px;
}
.search-btn {
position: absolute;
right: 4px;
height: 72px;
top: 4px;
width: 116.5px;
font-size: 18px;
// color: white !important;
// background-color: #0195DA !important;
// border-color: #0195DA !important;
}
</style>

141
src/views/Challenge/Children/components/Unveiling.vue

@ -0,0 +1,141 @@
<template>
<div>
<a-button style="width: 80px" type="primary" @click="showModal">揭榜</a-button>
<a-modal title="揭榜" :visible="visible" width="50%" :confirm-loading="confirmLoading" @ok="handleOk" @cancel="handleCancel">
<a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 16 }">
<a-form-item label="揭榜人姓名" required>
<a-input v-model="setData.accepterName" placeholder="请输入揭榜人姓名" />
</a-form-item>
<a-form-item label="手机号" required>
<a-input @change="changePhone" placeholder="请输入手机号" type="tel" v-decorator="['setData.phone', { rules: phoneRules }]" />
</a-form-item>
<a-form-item label="图片验证码" required>
<div class="d-flex flex-nowrap">
<a-input placeholder="图片验证码" type="number" v-model="codeNum" />
<img :src="picCode.imageBase64" @click="changePicCode" class="code_img ml-2" v-if="picCode && picCode.imageBase64" />
<a-button @click="changePicCode" class="code_img ml-2" size="small" v-else>获取验证码</a-button>
</div>
</a-form-item>
<a-form-item label="短信验证码">
<div class="d-flex flex-nowrap">
<a-input placeholder="请输入验证码" @change="changeCode" type="number" v-decorator="['credential', { rules: codeRules }]" />
<a-button class="ml-2" disabled type="primary" v-if="showInterval">重新发送 {{ interval }}</a-button>
<a-button :disabled="setData.phone && setData.phone.length !== 11" @click="getCode" class="ml-2" type="primary" v-else>
获取验证码
</a-button>
</div>
</a-form-item>
<a-form-item label="揭榜单位" required>
<a-input v-model="setData.unit" placeholder="请输入揭榜单位" />
</a-form-item>
<a-form-item label="方案简述" required>
<a-textarea v-model="setData.planIntro" placeholder="请输入方案简述" />
</a-form-item>
<a-form-item label="揭榜时间">
<a-date-picker format="YYYY-MM-DD HH:mm:ss" show-time @ok="changeTime" />
</a-form-item>
</a-form>
</a-modal>
</div>
</template>
<script>
import { mapActions, mapState } from 'vuex';
import { addUnveiling } from 'config/api';
import mixin from 'views/User/mixin';
export default {
name: 'Unveiling',
mixins: [mixin],
props: {
proId: {
type: Number,
default: null,
},
},
data() {
return {
formLayout: 'horizontal',
form: this.$form.createForm(this, { name: '揭榜' }),
visible: false,
confirmLoading: false,
codeNum: '', //
setData: {
accepterName: '', //
phone: '', //
unit: '', //
planIntro: '', //
time: '', //
},
};
},
computed: mapState('user', ['picCode']),
methods: {
...mapActions('user', ['sendCode', 'sendPicCode']),
showModal() {
this.visible = true;
},
handleCancel(e) {
this.visible = false;
},
changePhone(e) {
this.setData.phone = e.target.value;
},
//
async getCode() {
try {
const params = {
phone: this.setData.phone,
verificationCodeId: this.picCode.verificationCodeId,
verificationCodeValue: this.codeNum,
};
await this.sendCode(params);
this.getCodeInterval();
} catch (error) {
throw new Error(`SignIn.vue method getCode: ${error}`);
}
},
changeCode(e) {
this.setData.codeNum = e.target.value;
},
//
changePicCode() {
this.sendPicCode();
},
async handleOk(e) {
try {
this.confirmLoading = true;
const params = {
param: {
billboardId: this.proId,
accepterName: this.setData.accepterName,
phone: this.setData.phone,
code: this.setData.codeNum,
unit: this.setData.unit,
planIntro: this.setData.planIntro,
times: this.setData.time,
},
};
const res = await addUnveiling(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.$message.success('揭榜信息提交成功');
for (let key in this.setData) {
this.setData[key] = '';
}
} else {
this.$message.error('提交失败');
}
} catch (error) {
this.$message.error(error);
}
this.visible = false;
this.confirmLoading = false;
},
changeTime(e) {
this.setData.time = this.$moment(e._d).format('YYYY-MM-DD HH:mm:ss');
},
},
};
</script>

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

@ -13,7 +13,9 @@
@click="jump(item.url, index)"
class="d-flex flex-column justify-center"
v-for="(item, index) in list"
>{{ item.title }}</div>
>
{{ item.title }}
</div>
</div>
</template>
@ -26,15 +28,15 @@ export default {
activeNum: 0,
list: [
{
title: '需求征集',
title: '我要发榜',
url: '/Challenge/Solicitation',
},
{
title: '项目发布',
title: '我要揭榜',
url: '/Challenge/Release',
},
{
title: '结果公示',
title: '揭榜成功',
url: '/Challenge/Notice',
},
],

26
src/views/Develop/Develop.vue

@ -9,9 +9,11 @@
<template>
<div>
<banner :show-page="41" />
<div class="inner" style="padding: 0 25px; padding-bottom: 50px">
<!-- <p class="dev-title">维基数智</p> -->
<!-- <banner :show-page="41" /> -->
<div style="padding: 0 25px; padding-bottom: 50px; width: 68%; margin: auto">
<div style="width: 100%; margin: 0 auto; text-align: center; padding-top: 40px">
<img src="~assets/fwcs01.png" />
</div>
<div class="dev-content line-height-30 mt-8">
<div>
传控科技成立于2015年8月由资深电子产品工程师携自动化和计算机专业相关同仁创立
@ -31,8 +33,11 @@
<!-- <a-button class="dev-btn" type="primary">项目合作</a-button> -->
<add-model class="dev-btn" />
</div>
<div style="width: 100%; margin: 0 auto; text-align: center">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/5c00e85ee93941eea4992b3d130d4a4c.png" alt="" />
</div>
</div>
<div class="inner dev-img-box d-flex flex-wrap" style="margin-top: 40px !important; margin-bottom: 40px !important">
<div class="dev-img-box d-flex flex-wrap" style="width: 68%; margin: 40px auto !important">
<div :key="index" class="d-flex pic-box" style="width: 50%" v-for="(item, index) in lists">
<img :src="item.url" @click="showProfile = true" style="width: 100%; cursor: pointer" />
<div class="txt pa-5">
@ -41,6 +46,7 @@
</div>
</div>
</div>
<a-modal :footer="null" :visible="showProfile" @cancel="handleCancel" @ok="handleCancel" title="XX项目介绍" width="50%">
<p class="line-height-30">
公司采取理事会经理层事业部组织架构公司理事会组成按理事会章程执行经理层设总经理 1 副总经理 2-3 各事业部设部长 1
@ -64,31 +70,31 @@
</template>
<script>
import Banner from 'components/Banner/Banner.vue';
// import Banner from 'components/Banner/Banner.vue';
import AddModel from './components/AddModel.vue';
export default {
name: 'Activity',
components: { Banner, AddModel },
components: { AddModel },
data() {
return {
lists: [
{
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210114/01.png',
url: 'https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/c9b3ba008caf4ad7b8cbd7f5df639fa5.jpg',
txt: '打造统筹管理事和时间的轻量级老板工具',
title: 'PT pro老板工具',
},
{
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210114/02.png',
url: 'https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/dd75f29ec2be42f1afd98a28bd413bf9.jpg',
txt: '采集设备参数,配合智能匹配算法,动态调节设备配置,挖掘机器的最大潜能。',
title: '智能选矿',
},
{
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210114/03.png',
url: 'https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/d4c1e23596ee4dbab5bf267b9b801b1c.jpg',
txt: '自动无干扰地记录急救流程各时间节点,最大限度降低记录工作对急救过程产生干扰和延误,达到实时监控抢救流程',
title: '智慧胸痛卒中中心绿道管理平台',
},
{
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210114/04.png',
url: 'https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/00084b3a1ebe495983a4ebc7602b456a.jpg',
txt: '应用于数字医疗行业的测评平台,可满足各类线上、线下认知测评功能',
title: '认知评测云平台HT pro',
},

21
src/views/Develop/components/AddModel.vue

@ -1,6 +1,6 @@
<template>
<div>
<a-button @click="showModal" style="height: 100%; width: 100%; font-size: 28px" type="primary">{{ str }}</a-button>
<a-button @click="showModal" style="float: right" type="primary">{{ str }}</a-button>
<a-modal :confirm-loading="confirmLoading" :title="title" :visible="visible" @cancel="handleCancel" @ok="handleOk" width="50%">
<a-form :form="form">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="公司名称">
@ -12,7 +12,13 @@
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="联系电话" required>
<a-input @change="changePhone" placeholder="请输入联系电话.." type="tel" v-decorator="['tel', { rules: phoneRules }]" />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="图片验证码" required>
<a-form-item
v-if="user.phone !== platform.tel"
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="图片验证码"
required
>
<div class="d-flex flex-nowrap">
<a-input placeholder="图片验证码" type="number" v-model="codeNum" />
<img :src="picCode.imageBase64" @click="changePicCode" class="code_img ml-2" v-if="picCode && picCode.imageBase64" />
@ -20,7 +26,13 @@
<!-- <a-input v-decorator="['account', { rules: rules.account }]" /> -->
</div>
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="短信验证码" required>
<a-form-item
v-if="user.phone !== platform.tel"
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="短信验证码"
required
>
<div class="d-flex flex-nowrap">
<a-input placeholder="请输入验证码" type="number" v-model="platform.code" />
<a-button class="code_img ml-2" disabled type="primary" v-if="showInterval">重新发送 {{ interval }}</a-button>
@ -74,6 +86,7 @@ export default {
val: 0,
isTel: false,
},
userPhone: '',
codeRules: [
{ required: true, message: '请输入验证码' },
{ min: 4, max: 4, message: '请输入4位短信验证码' },
@ -87,7 +100,7 @@ export default {
],
};
},
computed: mapState('user', ['picCode']),
computed: mapState('user', ['picCode', 'user']),
async created() {
this.sendPicCode();
await this.getUserSer();

73
src/views/FirstPage/FirstPage.vue

@ -6,38 +6,33 @@
<template>
<div>
<rotation />
<div class="white py-10">
<div class="inner">
<div class="white py-5">
<div style="width: 68%; margin: 0 auto">
<div class="d-flex flex-nowrap justify-space-around">
<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 :key="item.id" @click="$router.push(item.path)" class="d-flex flex-column align-center pointer" v-for="item in arr1">
<img style="width: 102px" :src="item.url" />
<span class="font-24 textColor mt-4">{{ item.name }}</span>
</div>
</div>
</div>
</div>
<div class="inner">
<div style="width: 68%; margin: 16px auto">
<!-- floor2 -->
<div class="d-flex flex-nowrap justify-space-around">
<div class="d-flex flex-nowrap justify-space-between" style="height: auto !important">
<div
:key="item.id"
@click="$router.push(item.path)"
class="d-flex flex-column align-center mr-2 pointer"
class="adapt-box 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>
<img class="adapt-img" style="width: 100%" :src="item.url" />
<div class="font-24 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 pointer">行业资讯</div>
<div class="d-flex flex-column" style="margin-top: 20px">
<div style="background: #13acc4" class="new-title font-bold-30 white--text pointer">行业资讯</div>
<div class="py-8 white">
<div
:key="index"
@ -46,16 +41,11 @@
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 * 1000).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 @click="$router.push('/ItInformation')" class="font-16 pointer px-6 pt-3" style="text-align: right; color: #007cc1">
查看更多>>
</div>
<div
@click="$router.push('/ItInformation')"
class="font-16 pointer px-6 pt-3"
style="text-align: right;color:#007cc1"
>查看更多>></div>
</div>
</div>
<!-- 创业学院 -->
@ -92,7 +82,7 @@ export default {
},
{
id: 3,
name: '服务超市',
name: '创新研究院',
url: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/index03.png',
path: '/ServiceMarket/Institute',
},
@ -151,8 +141,8 @@ export default {
.title {
width: 100%;
text-align: center;
height: 129px;
line-height: 129px;
height: 60px;
line-height: 60px;
}
.new-title {
@ -173,4 +163,29 @@ export default {
width: 30%;
text-align: right;
}
.adapt-img {
height: 240px;
}
.adapt-box {
height: 300px;
}
@media only screen and (max-width: 1500px) {
.adapt-box {
height: 260px;
}
.adapt-img {
height: 200px !important;
}
}
@media only screen and (max-width: 1200px) {
.adapt-box {
height: 220px;
}
.adapt-img {
height: 160px !important;
}
}
</style>

120
src/views/Hatch/Children/Epoch.vue

@ -0,0 +1,120 @@
<template>
<div style="padding: 0 25px">
<div style="padding-bottom: 80px; position: relative">
<div class="words-content">
<p class="words-title">创时代孵化器介绍</p>
<div class="con-con">
<div class="d-flex justify-space-between">
<img src="@/assets/创新.png" style="width: 20%; height: 100%" alt="" />
<img src="@/assets/竞争.png" style="width: 15%; height: 100%" alt="" />
<img src="@/assets/机遇.png" style="width: 20%; height: 100%" alt="" />
<img src="@/assets/合作.png" style="width: 15%; height: 100%" alt="" />
</div>
<p style="text-indent: 2em; margin-top: 40px">
山西创时代企业孵化器有限公司2017年成立位于山西综改示范区太原学府园区现运营1个省级众创空间,1个专业化科技企业孵化器
双创平台建筑面积1万平方米,孵化企业200余家2020年认定为省级小微企业创新创业基地省级中小企业公共服务平台
</p>
<p style="text-indent: 2em">
公司拥有50多人的专业服务团队,专职服务人员20多人,其中高级职称3人硕士2人本科以上学历8人兼职服务导师和专家30余人
专业涉及信息技术新材料生物医药建筑科技等领域重点在发展战略规划人才技术对接科技项目申报创业咨询培训技术转移转化
知识产权运营等方面提供专业服务和解决方案
</p>
<p style="text-indent: 2em">
公司立足山西综改区,面向太原市及全省科技型中小微企业,整合社会各类专业资源,提供一站式的科技孵化服务与创新创业服务
</p>
</div>
</div>
</div>
<div>
<div class="content-box">
<div :key="index" @click="jumpUrl(index)" style="cursor: pointer" v-for="(item, index) in list">
<div class="d-flex justify-space-between" v-if="index % 2 === 0">
<img :src="item.imgUrl" style="width: 48%" />
<div class="introduce-box" style="width: 52% !important">
<div class="introduce-title">{{ item.title }}</div>
<div class="introduce-content">{{ item.content }}</div>
</div>
</div>
<div class="d-flex justify-space-between" v-else>
<div class="introduce-box" style="width: 52% !important">
<div class="introduce-title">{{ item.title }}</div>
<div class="introduce-content">{{ item.content }}</div>
</div>
<img :src="item.imgUrl" style="width: 48%" />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Epoch',
data() {
return {
list: [
{
title: '高薪众创空间',
content:
'研究院的介绍包含研究院,公司架构,和各中心的介绍。' +
'各中心介绍包含科创体系与科创能力咨询服务中心、知识产权与技术转移咨询服务中心、' +
'数字化转型咨询服务中心、科技信息咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/zckj02.png',
},
{
title: '数智创世代企业孵化器',
content:
'研究院的介绍包含研究院,公司架构,和各中心的介绍。' +
'各中心介绍包含科创体系与科创能力咨询服务中心、知识产权与技术转移咨询服务中心、' +
'数字化转型咨询服务中心、科技信息咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/zckj01.png',
},
{
title: '虚拟孵化器',
content:
'各中心介绍包含科创体系与科创能力咨询服务中心、' +
'知识产权与技术转移咨询服务中心、数字化转型咨询服务中心、科技信息咨询服务中心、' +
'科创战略协同研究中心、山西奥依工业设计咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/zckj02.png',
},
],
};
},
methods: {
jumpUrl(index) {
if (index === 0) {
this.$router.push('/Hatch/Incubator');
} else {
this.$router.push('/Hatch/Fictitious');
}
},
},
};
</script>
<style lang="stylus" scoped>
.introduce-title {
font-size: 24px !important;
color: #007CC1 !important;
margin-bottom: 20px;
margin-top: 0 !important;
}
.words-title {
font-size: 32px;
font-weight: bold;
color: rgba(0, 0, 0, 0.85);
text-align: center;
margin-bottom: 40px;
}
.con-con {
font-size: 16px;
margin-bottom: 40px;
}
.btn {
position: absolute;
right: 25px;
}
</style>

191
src/views/Hatch/Children/Space.vue

@ -16,36 +16,60 @@
<div style="padding: 0 25px">
<div style="padding-bottom: 80px; position: relative">
<div class="words-content">
<p class="words-title">高新众创空间介绍</p>
<p class="con-con">
研究院的介绍包含研究院公司架构和各中心的介绍各中心介绍包含科创体系与科创能力咨询服务中心
知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心
山西奥依工业设计咨询服务中心研究院的介绍包含研究院公司架构和各中心的介绍
各中心介绍包含科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心
科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</p>
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/fba99c12bb4c4aef8b7b2a9a584a7145.png" alt="" />
</div>
<div class="con-con">
<p style="text-indent: 2em">
山西创时代企业孵化器有限公司2017年12月成立主要从事科技型中小企业服务 位于太原高新区高新置业大厦A座
</p>
<p style="text-indent: 2em">
公司租用高新置业配套楼3000多平米场地配备1000兆宽带拥有高科创时代和高科众创时代两个公共服务平台现有服务人员15名
专业涉及企业管理机电公路环保农学财务法律等方面
</p>
<p style="text-indent: 2em">
面向科技型成长型创新型中小微企业通过提供科技信息创业信息服务创新创投服务等综合性全链条的专业服务提高中小微企业成功率和成长速度
服务特色主要有免费的创业信息服务及时的创业政策解读专业的创业导师指导多样的创客交流活动高效的线上服务平台优质的合作服务资源
</p>
<p style="text-indent: 2em">
自成立以来累计举办10余次创业培训活动内容涉及到高新技术企业申报知识产权申报税收筹划科技厅项目申报创新券辅导等累计为50多家次企业提供免费的信息服务
</p>
<p style="text-indent: 2em">
2018年2月聘请专家学者企业家等6人担任创业导师累计为10多位创业者中小企业提供服务与知识产权服务机构合作
累计为10多家企业提供专利申报软件著作权申请商标设计及注册等服务至2018年3月底与5家机构签订战略合作协议并与多家机构达成合作意向更好的为中小微企业服务
</p>
</div>
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/ce395331ef204be8b0d570222224f3f4.png" alt="" />
</div>
<img
style="width: 100%; margin-bottom: 40px"
src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/dfd10e80c7024b50b08faef64705a8ea.png"
/>
</div>
<!-- <a-button class="btn" type="primary">申请加入</a-button> -->
<add-model :value="1" class="btn" style="height: 32px" />
</div>
<div>
<div class="content-box">
<div :key="index" @click="jumpUrl(index)" style="cursor: pointer" v-for="(item, index) in list">
<div class="d-flex justify-space-between" v-if="index % 2 === 0">
<img :src="item.imgUrl" style="width: 48%" />
<div class="introduce-box" style="width: 52% !important">
<div class="introduce-title">{{ item.title }}</div>
<div class="introduce-content">{{ item.content }}</div>
</div>
</div>
<div class="d-flex justify-space-between" v-else>
<div class="introduce-box" style="width: 52% !important">
<div class="introduce-title">{{ item.title }}</div>
<div class="introduce-content">{{ item.content }}</div>
</div>
<img :src="item.imgUrl" style="width: 48%" />
<div style="text-align: center; padding-bottom: 40px">
<img src="https://www.sxwikionline.com/gateway/wiki/uploads/upload/20210317/64d5cdec92ca41c7b06712a906c9c466.png" alt="" />
</div>
<div class="d-flex flex-wrap" style="padding: 0 25px 80px 25px; position: relative">
<div :class="(index + 1) % 4 === 0 ? 'mr0' : ''" :key="index" class="ent-box" v-for="(item, index) in lists">
<div :style="{ background: colorList[index] }" class="ent-img-box">
<img :src="item.logoUrl" class="ent-img" />
</div>
<p class="ent-title">
<span style="border-bottom: 2px solid #007cc1; padding-bottom: 4px">{{ item.name }}</span>
</p>
<p class="ent-des">{{ item.description }}</p>
<p class="ent-man">
<span class="ent-lf">联系人{{ item.man }}</span>
<span class="ent-rh">联系电话{{ item.tel }}</span>
</p>
</div>
<!-- <a-button class="btn" style="bottom: 20px" type="primary">入驻企业注册</a-button> -->
<settled-model class="btn" style="bottom: 20px" :type-num="placeType" />
</div>
</div>
</div>
@ -58,24 +82,37 @@ export default {
components: { AddModel },
data() {
return {
list: [
lists: [
{
description: '系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍...',
name: '测试公司1',
logoUrl: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2816433753,267880517&fm=26&gp=0.jpg',
man: '张三',
tel: '15000000000',
},
{
description: '系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍...',
name: '测试公司1',
logoUrl: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2816433753,267880517&fm=26&gp=0.jpg',
man: '张三',
tel: '15000000000',
},
{
title: '数智创世代企业孵化器',
content:
'研究院的介绍包含研究院,公司架构,和各中心的介绍。' +
'各中心介绍包含科创体系与科创能力咨询服务中心、知识产权与技术转移咨询服务中心、' +
'数字化转型咨询服务中心、科技信息咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/zckj01.png',
description: '系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍...',
name: '测试公司1',
logoUrl: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2816433753,267880517&fm=26&gp=0.jpg',
man: '张三',
tel: '15000000000',
},
{
title: '虚拟孵化器',
content:
'各中心介绍包含科创体系与科创能力咨询服务中心、' +
'知识产权与技术转移咨询服务中心、数字化转型咨询服务中心、科技信息咨询服务中心、' +
'科创战略协同研究中心、山西奥依工业设计咨询服务中心',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/zckj02.png',
description: '系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍系统创新中心介绍...',
name: '测试公司1',
logoUrl: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2816433753,267880517&fm=26&gp=0.jpg',
man: '张三',
tel: '15000000000',
},
],
colorList: ['rgba(19, 172, 196, 0.3)', 'rgba(19,96,196,0.3)', 'rgba(162,19,196,0.3)', 'rgba(19,196,72,0.3)'],
};
},
methods: {
@ -99,7 +136,7 @@ export default {
}
.words-title {
font-size: 20px;
font-size: 22px;
font-weight: bold;
color: rgba(0, 0, 0, 0.85);
text-align: center;
@ -114,4 +151,84 @@ export default {
position: absolute;
right: 25px;
}
.top-bg {
padding: 40px 25px 100px 25px !important;
position: relative;
}
.words-title {
font-size: 22px;
font-weight: bold;
color: rgba(0, 0, 0, 0.85);
text-align: center;
margin-bottom: 40px;
}
.con-con {
margin-bottom: 40px;
}
.btn {
position: absolute;
right: 25px;
}
.ent-box {
width: 22%;
margin-right: 4%;
min-height: 300px;
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
.ent-img-box {
height: 140px;
// background: ;
text-align: center;
line-height: 140px;
}
.ent-img {
height: 100px;
width: 100px;
border-radius: 50%;
}
.ent-title {
text-align: center;
margin-top: 14px;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
}
.ent-des {
padding: 0 8px;
font-size: 15px;
color: rgba(0, 0, 0, 0.65);
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.ent-man {
overflow: hidden;
color: rgba(0, 0, 0, 0.45);
font-size: 12px;
padding: 0 8px;
}
.ent-lf {
float: left;
}
.ent-rh {
float: right;
}
@media only screen and (max-width: 1600px) {
.ent-rh {
float: left;
}
}
</style>

7
src/views/Hatch/Hatch.vue

@ -1,10 +1,3 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-14 17:28:38
* @LastEditors: wally
* @LastEditTime: 2021-01-15 21:28:46
-->
<template>
<div>
<banner :show-page="showPage" />

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

@ -7,14 +7,23 @@
-->
<template>
<div class="nav-box">
<div
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
:key="index"
@click="jump(item.url, index)"
class="d-flex flex-column justify-center"
v-for="(item, index) in list"
>
{{ item.title }}
<div v-for="(item, index) in list" :key="index">
<div
v-if="index !== 0"
:class="activeNum === index ? 'nav-item-active' : 'nav-item'"
@click="jump(item.url, index)"
class="d-flex flex-column justify-center"
v-dompurify-html="item.title"
>
<!-- {{ item.title }} -->
</div>
<div
v-else
class="d-flex flex-column justify-center nav-title"
:class="activeNum === index ? 'nav-item-active' : ''"
@click="jump(item.url, index)"
v-dompurify-html="item.title"
></div>
</div>
</div>
</template>
@ -27,18 +36,26 @@ export default {
str: '导航条',
activeNum: 0,
list: [
{
title: '创时代孵化器',
url: '/Hatch/Epoch',
},
{
title: '高新众创空间',
url: '/Hatch/Space',
},
{
title: '数智创时代业孵化器',
title: '数智创时代' + '<br />' + '专业孵化器',
url: '/Hatch/Incubator',
},
{
title: '虚拟孵化器',
title: '线上孵化器',
url: '/Hatch/Fictitious',
},
{
title: '创新创业服务',
url: '/Hatch/Service',
},
{
title: '创业导师',
url: '/Hatch/Tutor',
@ -47,42 +64,42 @@ export default {
title: '合作伙伴',
url: '/Hatch/Partner',
},
{
title: '创业服务',
url: '/Hatch/Service',
},
],
};
},
watch: {
$route(to, from) {
// console.log(from.path,to.path);
if (to.path === '/Hatch/Incubator') {
if (to.path === '/Hatch/Space') {
this.activeNum = 1;
} else if (to.path === '/Hatch/Fictitious') {
} else if (to.path === '/Hatch/Incubator') {
this.activeNum = 2;
} else if (to.path === '/Hatch/Tutor') {
} else if (to.path === '/Hatch/Fictitious') {
this.activeNum = 3;
} else if (to.path === '/Hatch/Tutor') {
this.activeNum = 5;
} else if (to.path === '/Hatch/Partner') {
this.activeNum = 4;
this.activeNum = 6;
} else if (to.path === '/Hatch/Service') {
this.activeNum = 5;
this.activeNum = 4;
} else {
this.activeNum = 0;
}
},
},
created() {
if (this.$route.fullPath === '/Hatch/Incubator') {
if (this.$route.fullPath === '/Hatch/Space') {
this.activeNum = 1;
} else if (this.$route.fullPath === '/Hatch/Fictitious') {
} else if (this.$route.fullPath === '/Hatch/Incubator') {
this.activeNum = 2;
} else if (this.$route.fullPath === '/Hatch/Tutor') {
} else if (this.$route.fullPath === '/Hatch/Fictitious') {
this.activeNum = 3;
} else if (this.$route.fullPath === '/Hatch/Tutor') {
this.activeNum = 5;
} else if (this.$route.fullPath === '/Hatch/Partner') {
this.activeNum = 4;
this.activeNum = 6;
} else if (this.$route.fullPath === '/Hatch/Service') {
this.activeNum = 5;
this.activeNum = 4;
} else {
this.activeNum = 0;
}
@ -100,4 +117,15 @@ export default {
};
</script>
<style scoped lang="stylus"></style>
<style scoped lang="stylus">
.nav-title {
height: 80px;
// line-height: 80px;
cursor: pointer;
background: #fff;
font-size: 24px;
margin: 0 4px 6px 0;
text-align: center;
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
</style>

41
src/views/Policy/components/PolicyList.vue

@ -11,26 +11,16 @@
<span>
<a-checkbox :checked="pStatus.bw - 0 === 1" @click="changeStatus('bw')">国家</a-checkbox>
<a-checkbox :checked="pStatus.sx - 0 === 1" @click="changeStatus('sx')">山西省</a-checkbox>
<a-checkbox :checked="pStatus.zg - 0 === 1" @click="changeStatus('zg')">山西省综改区</a-checkbox>
<a-checkbox :checked="pStatus.ty - 0 === 1" @click="changeStatus('ty')">太原市</a-checkbox>
<a-checkbox :checked="pStatus.zg - 0 === 1" @click="changeStatus('zg')">山西省综改区</a-checkbox>
</span>
<a-input-group class="search" compact>
<a-select
@change="changeCode"
style="width: 120px; height: 40px"
v-model="pStatus.policyText[pStatus.value - 1]"
>
<a-select @change="changeCode" style="width: 120px; height: 40px" v-model="pStatus.policyText[pStatus.value - 1]">
<a-select-option value="1">标题</a-select-option>
<a-select-option value="2">地区</a-select-option>
<a-select-option value="3">发布部门</a-select-option>
</a-select>
<a-input-search
@search="getPolicy"
enter-button="搜索"
placeholder="请输入..."
style="width: 76.2%"
v-model="pStatus.iptCon"
/>
<a-input-search @search="getPolicy" enter-button="搜索" placeholder="请输入..." style="width: 76.2%" v-model="pStatus.iptCon" />
</a-input-group>
</div>
<div class="policy-box d-flex flex-wrap flex-row">
@ -38,11 +28,8 @@
<p @click="LookSource(item.id)" class="item-title pointer">{{ item.title }}</p>
<p @click="LookSource(item.id)" class="item-content pointer">{{ item.intro }}</p>
<!-- <p class="item-content" v-html="item.content"></p> -->
<p>
<span
@click="openWin(item.titleUrl)"
class="baseColor source"
>来源{{ item.publishDepartName }}</span>
<p class="original1">
<span @click="openWin(item.titleUrl)" class="baseColor source">来源{{ item.publishDepartName }}</span>
<span class="time">{{ item.publishTime }}</span>
</p>
<p class="original baseColor">
@ -111,7 +98,7 @@ export default {
code: this.policyStatus.code,
input: this.policyStatus.iptCon,
pageNum: this.current,
pageSize: 6,
pageSize: 20,
sx: this.policyStatus.sx,
zg: this.policyStatus.zg,
ty: this.policyStatus.ty,
@ -211,7 +198,7 @@ export default {
color: rgba(0, 0, 0, 0.65);
font-family: Microsoft YaHei;
font-weight: bold;
-webkit-line-clamp: 1;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
@ -223,7 +210,7 @@ export default {
font-family: Microsoft YaHei;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
@ -259,6 +246,18 @@ export default {
}
}
.original1 {
position: absolute;
left: 25px;
bottom: 25px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 22px;
opacity: 1;
margin-bottom: 0;
}
.pagination {
margin-top: 68px;
text-align: right;

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

@ -6,7 +6,7 @@
<div :key="index" v-for="(item, index) in list">
<div class="d-flex flex-nowrap justify-space-between">
<div class="d-flex flex-column justify-center py-3">
<img :src="item.picUrl" style="width: 330px;height:173px" />
<img :src="item.picUrl" style="width: 330px; height: 173px" />
</div>
<div class="flex-1 flex-column pa-3">
<p class="font-bold-22">{{ item.name }}</p>
@ -17,7 +17,7 @@
<add-shopping :service-id="item.id" :type-data="typeData" />
<intention-model :service-id="item.id" :type-data="typeData" class="mr-3" />
</div>
<a-divider v-if="index !== (list.length - 1)" />
<a-divider v-if="index !== list.length - 1" />
</div>
</div>
</div>
@ -36,7 +36,7 @@ export default {
components: { LeftNav, IntentionModel, AddShopping },
data() {
return {
title: '服务超市-科技创新服务',
title: '创新研究院-科技创新服务',
list: [],
typeData: {
type: 0,

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

@ -29,12 +29,12 @@
<img src="~assets/fwcs02.png" />
</div>
<div>
<div
class="font-16 textColor line-height-36"
>研究院下没六个咨询服务中心和一个专家委员会科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心</div>
<div
class="font-16 textColor line-height-36"
>以中心为主体以团队为单元以平台为支撑围绕创新创业发展需求整合各类优质资源打造全链条一体化开放式创新创业新生态</div>
<div class="font-16 textColor line-height-36">
研究院下没六个咨询服务中心和一个专家委员会科创体系与科创能力咨询服务中心知识产权与技术转移咨询服务中心数字化转型咨询服务中心科技信息咨询服务中心科创战略协同研究中心山西奥依工业设计咨询服务中心
</div>
<div class="font-16 textColor line-height-36">
以中心为主体以团队为单元以平台为支撑围绕创新创业发展需求整合各类优质资源打造全链条一体化开放式创新创业新生态
</div>
<div :style="{ height: '500px' }" id="treeChart"></div>
</div>
</div>
@ -52,24 +52,19 @@
</div>
<div class="inner pb-10">
<div v-if="partners && partners.length > 0">
<div :key="i" v-for="(list,i) in partners">
<div
class="d-flex flex-row flex-wrap"
v-if="list.backendSearchList && list.backendSearchList.length > 0"
>
<div :key="i" v-for="(list, i) in partners">
<div class="d-flex flex-row flex-wrap" v-if="list.backendSearchList && list.backendSearchList.length > 0">
<div
:class="(index + 1) % 3 === 0 ? 'mr0' : ''"
:key="index"
class="pic-box pb-10"
v-for="(item,index) in list.backendSearchList"
v-for="(item, index) in list.backendSearchList"
>
<div class="pic d-flex align-center justify-center">
<img :src="item.logoUrl" class="fill-width fill-height" />
<span class="font-bold-18 white--text">{{ item.name }}</span>
</div>
<div
class="pic-introduce d-flex justify-start flex-column pa-3 px-5"
>{{ item.description }}</div>
<div class="pic-introduce d-flex justify-start flex-column pa-3 px-5">{{ item.description }}</div>
</div>
</div>
</div>

Loading…
Cancel
Save