Browse Source

关于我们、创新社区、创业社区、产业社区

master
xuesinan 4 years ago
parent
commit
8bbfadeb88
  1. 16958
      package-lock.json
  2. BIN
      src/assets/about/organize.jpg
  3. BIN
      src/assets/about/title1.jpg
  4. BIN
      src/assets/about/title2.jpg
  5. BIN
      src/assets/about/title3.jpg
  6. BIN
      src/assets/about/title4.jpg
  7. BIN
      src/assets/about/title5.jpg
  8. BIN
      src/assets/banner/banner1.png
  9. BIN
      src/assets/banner/banner2.png
  10. BIN
      src/assets/banner/banner3.png
  11. BIN
      src/assets/newPlatform/bg.jpg
  12. BIN
      src/assets/newPlatform/newPlatform1.jpg
  13. BIN
      src/assets/newPlatform/newPlatform2.jpg
  14. 9
      src/components/HeadNav/HeadNav.vue
  15. 30
      src/router/index.js
  16. 259
      src/views/About/Children/Index.vue
  17. 770
      src/views/IncubationPlatform/Children/Index.vue
  18. 664
      src/views/Industry/Children/Index.vue
  19. 494
      src/views/NewPlatform/Children/Index.vue
  20. 142
      yarn.lock

16958
package-lock.json

File diff suppressed because it is too large

BIN
src/assets/about/organize.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
src/assets/about/title1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
src/assets/about/title2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
src/assets/about/title3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
src/assets/about/title4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
src/assets/about/title5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
src/assets/banner/banner1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

BIN
src/assets/banner/banner2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

BIN
src/assets/banner/banner3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
src/assets/newPlatform/bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
src/assets/newPlatform/newPlatform1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
src/assets/newPlatform/newPlatform2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

9
src/components/HeadNav/HeadNav.vue

@ -46,7 +46,7 @@ export default {
list: [ list: [
{ {
name: '关于我们', name: '关于我们',
url: '/About/Introduce', url: '/About/Index',
children: [ children: [
{ {
title: '公司介绍', title: '公司介绍',
@ -73,6 +73,7 @@ export default {
}, },
{ {
name: '创新社区', name: '创新社区',
url: '/NewPlatform/Index',
children: [ children: [
{ {
title: '协同创新中心', title: '协同创新中心',
@ -91,11 +92,10 @@ export default {
url: '/NewPlatform/Community', url: '/NewPlatform/Community',
}, },
], ],
url: '/NewPlatform/NewCore',
}, },
{ {
name: '创业社区', name: '创业社区',
url: '/IncubationPlatform/MakerSpace', url: '/IncubationPlatform/Index',
children: [ children: [
{ {
title: '众创空间', title: '众创空间',
@ -117,6 +117,7 @@ export default {
}, },
{ {
name: '产业社区', name: '产业社区',
url: '/Industry/Index',
children: [ children: [
{ {
title: '产业创新联盟', title: '产业创新联盟',
@ -139,7 +140,6 @@ export default {
url: '/Industry/Enterprise', url: '/Industry/Enterprise',
}, },
], ],
url: '/Industry/Union',
}, },
{ {
name: '创业学院', name: '创业学院',
@ -222,6 +222,7 @@ export default {
methods: { methods: {
jumUrl(url, index) { jumUrl(url, index) {
console.log('--------', url, index);
if (this.$route.path !== url) { if (this.$route.path !== url) {
this.$router.push(url); this.$router.push(url);
} }

30
src/router/index.js

@ -1,6 +1,6 @@
import Home from 'views/FirstPages/FirstPage.vue';
import Vue from 'vue'; import Vue from 'vue';
import VueRouter from 'vue-router'; import VueRouter from 'vue-router';
import Home from 'views/FirstPages/FirstPage.vue';
// import Homes from 'views/FirstPages/FirstPages.vue'; // import Homes from 'views/FirstPages/FirstPages.vue';
Vue.use(VueRouter); Vue.use(VueRouter);
@ -38,10 +38,15 @@ const routes = [
}, },
// 关于我们界面 // 关于我们界面
{ {
path: '/About/Introduce', path: '/About/Index',
name: 'About', name: 'About',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/About/About.vue'), component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/About/About.vue'),
children: [ children: [
{
path: '/About/Index',
name: 'Index',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/About/Children/Index.vue'),
},
{ {
path: '/About/Introduce', path: '/About/Introduce',
name: 'Introduce', name: 'Introduce',
@ -138,10 +143,15 @@ const routes = [
}, },
// 创新平台 // 创新平台
{ {
path: '/NewPlatform/NewCore', path: '/NewPlatform/Index',
name: 'NewPlatform', name: 'NewPlatform',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/NewPlatform.vue'), component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/NewPlatform.vue'),
children: [ children: [
{
path: '/NewPlatform/Index',
name: 'Index',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/Index.vue'),
},
{ {
path: '/NewPlatform/NewCore', path: '/NewPlatform/NewCore',
name: 'Core', name: 'Core',
@ -207,10 +217,15 @@ const routes = [
}, },
// 孵化平台 // 孵化平台
{ {
path: '/IncubationPlatform/MakerSpace', path: '/IncubationPlatform/Index',
name: 'IncubationPlatform', name: 'IncubationPlatform',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/IncubationPlatform/IncubationPlatform.vue'), component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/IncubationPlatform/IncubationPlatform.vue'),
children: [ children: [
{
path: '/IncubationPlatform/Index',
name: 'Index',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/IncubationPlatform/Children/Index.vue'),
},
// 众创空间 // 众创空间
{ {
path: '/IncubationPlatform/MakerSpace', path: '/IncubationPlatform/MakerSpace',
@ -318,10 +333,15 @@ const routes = [
}, },
{ {
// 产业平台 // 产业平台
path: '/Industry/Union', path: '/Industry/Index',
name: 'Industry', name: 'Industry',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Industry/Industry.vue'), component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Industry/Industry.vue'),
children: [ children: [
{
path: '/Industry/Index',
name: 'Index',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/Industry/Children/Index.vue'),
},
{ {
path: '/Industry/Union', path: '/Industry/Union',
name: 'Union', name: 'Union',

259
src/views/About/Children/Index.vue

@ -0,0 +1,259 @@
<template>
<div>
<div class="nav-box d-flex">
<div :class="activeNum === 0 ? 'nav-box-active' : ''" @click="jump(0)"><a href="#about">关于我们</a></div>
<div :class="activeNum === 1 ? 'nav-box-active' : ''" @click="jump(1)"><a href="#organize">组织结构</a></div>
<div :class="activeNum === 2 ? 'nav-box-active' : ''" @click="jump(2)"><a href="#partner">合作伙伴</a></div>
<div :class="activeNum === 3 ? 'nav-box-active' : ''" @click="jump(3)"><a href="#contact">加入我们</a></div>
</div>
<a name="about">
<div class="banner-box">
<a-carousel :autoplay-speed="time" autoplay>
<div class="img-box">
<img src="~assets/banner/banner1.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner2.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner3.png" />
</div>
</a-carousel>
<!-- 文字内容 -->
<div class="banner-con">
<h1 class="about-title">关于我们</h1>
<div class="about-font">
山西绿谷生物科技有限公司由山西智汇协同创新研究院有限公司山西省生物研究院有限公司天娇红农业科技有限公司
微动互联北京科技有限公司和山西力德福科技有限公司共同出资组建公司立足功能食品生物医药和数字健康产业聚焦创新聚力孵化聚合产业致力构建全链条一体化线上线下一体化开放式创新创业平台培育打造新型创新创业综合体促进特色新兴产业集群化发展
</div>
</div>
</div>
</a>
<!-- 组织架构 -->
<a name="organize">
<div class="organize-box bg-gray text-center">
<div class="title w-1400"><img src="~assets/about/title1.jpg" /></div>
<div class="w-1400"><img src="~assets/about/organize.jpg" /></div>
</div>
</a>
<!-- 合作伙伴 -->
<a name="partner">
<div class="partner-box text-center">
<div class="title w-1400"><img src="~assets/about/title2.jpg" /></div>
<div class="w-1400">
<a-carousel :autoplay-speed="time" autoplay>
<div class="partner-flex" v-for="(item, index) in lists" :key="index">
<div class="partner-item" style="display: inline-block !important" v-for="(v, k) in item" :key="k">
<div class="partner-item-img" style="display: inline-block !important">
<img style="display: inline-block !important" :src="v.logoUrl" />
</div>
<p>{{ v.name }}</p>
</div>
</div>
</a-carousel>
</div>
</div>
</a>
<!-- 加入我们 -->
<a name="contact">
<div class="contact-box bg-gray text-center">
<div class="title w-1400">
<img src="~assets/about/title3.jpg" />
<model class="mt-8" />
</div>
<div class="w-1400" style="text-align: left">
<contact />
</div>
</div>
</a>
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
// import HNav from './components/HNav.vue';
import Contact from 'components/Introduce/ContactUs.vue';
import Model from 'components/Introduce/Model.vue';
export default {
name: 'About',
components: { Contact, Model },
data() {
return {
time: 10000,
lists: [],
activeNum: -1,
};
},
computed: mapState('home', ['partners']),
async created() {
this.setPartners([]);
const params = {
param: {
pageNum: 1,
type: 1,
typeOfPlatform: 2,
},
};
await this.getFrontSearchCompany(params);
this.lists = [];
let arr = [];
this.partners.forEach(item => {
item.backendSearchList.forEach(value => {
arr.push(value);
});
});
let len = Math.ceil(arr.length / 10);
for (let j = 0; j < len; j++) {
let arr_len = [];
for (let i = 0; i < arr.length; i++) {
if (Math.floor(i / 10) === j) {
arr_len.push(arr[i]);
}
}
this.lists.push(arr_len);
}
},
methods: {
...mapMutations('home', ['setPartners']),
...mapActions('home', ['getFrontSearchCompany']),
jump(i) {
this.activeNum = i;
},
},
};
</script>
<style lang="stylus" scoped>
.bg-gray {
background-color: #F5F5F5;
}
.w-1400 {
display: inline-block;
width: 1400px;
margin: 0 auto;
}
.text-center {
text-align: center;
}
.nav-box {
position: fixed;
top: 70px;
width: 100%;
z-index: 99;
a {
color: unset;
}
}
.img-box {
// height: 380px;
width: 100%;
img {
height: 100%;
width: 100%;
}
}
.banner-box {
position: relative;
.banner-con {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 1200px;
.about-title {
color: white;
font-size: 55px;
font-weight: 600;
}
.about-font {
color: white;
font-size: 20px;
line-height: 40px;
}
}
}
.organize-box {
padding: 60px 0;
.title {
margin-bottom: 50px;
text-align: left;
}
}
.partner-box {
padding: 60px 0;
.title {
margin-bottom: 30px;
text-align: left;
}
.partner-flex {
text-align: left;
.partner-item {
margin: 20px 0;
width: 20%;
text-align: center;
.partner-item-img {
margin-bottom: 20px;
width: 120px;
height: 120px;
text-align: center;
line-height: 120px;
}
img {
max-width: 100%;
max-height: 100%;
}
p {
font-size: 20px;
}
}
}
}
.contact-box {
padding: 60px 0;
.title {
margin-bottom: 50px;
display: flex;
justify-content: space-between;
align-items: center;
}
}
</style>

770
src/views/IncubationPlatform/Children/Index.vue

@ -0,0 +1,770 @@
<template>
<div>
<div class="nav-box d-flex">
<div :class="activeNum === 0 ? 'nav-box-active' : ''" @click="changeIndex(0)"><a href="#mao1">众创空间</a></div>
<div :class="activeNum === 2 ? 'nav-box-active' : ''" @click="changeIndex(2)"><a href="#mao3">创业服务</a></div>
<div :class="activeNum === 3 ? 'nav-box-active' : ''" @click="changeIndex(3)"><a href="#mao4">合作伙伴</a></div>
</div>
<a name="mao1">
<div class="banner-box">
<a-carousel :autoplay-speed="time" autoplay>
<div class="img-box">
<img src="~assets/banner/banner1.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner2.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner3.png" />
</div>
</a-carousel>
<!-- 文字内容 -->
<div class="banner-con">
<h1 class="about-title">众创空间介绍</h1>
<div class="about-font">
分为线下实体众创空间与线上虚拟众创空间重点面向功能食品生物医药和大健康产业领域科技型中小微企业
创客和创新创业团队开展创业孵化培育高新技术企业促进科技成果转化和产业集聚发展
目前空间已引入科创咨询专业服务机构并与多家第三方专业机构建立战略合作
聘请创业导师30余名服务领域涵盖专业技术企业管理科创咨询财务税务法务咨询等可随时为入孵企业提供针对性一对一创业辅导服务
</div>
</div>
</div>
</a>
<div class="intro-box bg-gray text-center">
<div class="intro-con w-1500">
<div @click="jump('/IncubationPlatform/MakerSpace/EntitySpace')">
<p class="title">实体空间</p>
<div class="split"></div>
<div class="con">
<p>实体空间由孵化场所公共实验室中试基地部分组成</p>
<p>
孵化场所分为运营办公区公共空间区独立空间区和开放办公区公共空间区包括路演厅(项目路演知识培训产品展示等多项功能)会议室洽谈室第三空间(创业咖啡)开放空间区按功能食品生物医药数字健康领域进行分区设置
</p>
</div>
</div>
<div @click="jump('/IncubationPlatform/MakerSpace/VirtualSpace')">
<p class="title">虚拟空间</p>
<div class="split"></div>
<div class="con">
<p>
虚拟众创空间主要面向非入驻实体空间从事功能食品生物医药和大健康产业相关研发服务和生产的企业
虚拟众创空间依托绿谷数字化平台进行建设入驻企业可享受实体众创空间的各种创新创业服务参加相关创新创业活动
</p>
</div>
</div>
</div>
<div class="intro-bg">
<img src="~assets/newPlatform/bg.jpg" />
</div>
</div>
<!-- 创新服务 -->
<a name="mao3">
<div class="service-box bg-gray text-center">
<div class="title w-1500"><img src="~assets/about/title4.jpg" /></div>
<div class="service-flow">
<div class="flow-path" style="padding: 15px 9%">
<div class="flow-title" style="top: 30%">服务流程</div>
<div class="flow-content">
<img src="~assets/image.png" style="width: 100%" />
</div>
</div>
</div>
<div class="w-1500">
<div class="inner d-flex flex-wrap" style="margin: 20px auto">
<div
:class="(index + 1) % 4 === 0 ? 'margin-0' : ''"
:key="index"
class="item-box pointer d-flex flex-column"
style="position: relative"
v-for="(item, index) in serviceList"
>
<img
:src="item.picUrl"
:title="item.intro"
@click="showModal(item.id)"
style="height: 220px; width: 100%; border: 1px solid #ccc"
/>
<p @click="showModal(item.id)" class="font-24 my-2 text-center">{{ item.name }}</p>
<div class="font-16 textColor item-intro mb-2" v-if="item.intro.length > 45">
{{ item.intro.slice(0, 45) }}
<a-button @click="showIntro(index)" class="font-16 baseColor" style="height: 20px; float: right; padding: 0px" type="link">
more
<a-icon style="font-size: 12px" type="right" />
</a-button>
</div>
<div class="font-16 textColor item-intro" v-if="item.intro.length <= 45">
<p>{{ item.intro }}</p>
</div>
</div>
</div>
</div>
</div>
</a>
<a name="mao4">
<div class="partner-box text-center">
<div class="title w-1500">
<img src="~assets/about/title2.jpg" />
<div class="partner-type">
<div
class="partner-type-item"
:class="currType === index ? 'active-item' : ''"
v-for="(item, index) in listType"
:key="index"
@click="changeType(index)"
>
{{ item }}
</div>
</div>
</div>
<div class="w-1500">
<div class="partner-flex" v-show="currType === index" v-for="(item, index) in lists" :key="index">
<div class="partner-item" style="display: inline-block !important" v-for="(v, k) in item" :key="k">
<div class="partner-item-img" style="display: inline-block !important">
<img style="display: inline-block !important" :src="v.logoUrl" />
</div>
<p>{{ v.name }}</p>
</div>
</div>
</div>
</div>
</a>
<div class="bg-gray" style="height: 200px"></div>
<a-modal :footer="null" v-model="showModelIntro">
<p class="mt-3">{{ modelIntro }}</p>
</a-modal>
<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>
<a-modal :confirm-loading="confirmLoading" :visible="visible" @cancel="handleCancel" @ok="handleOk" title="技术需求" width="50%">
<a-form :form="form">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="公司名称">
<a-input placeholder="请输入公司名称..." v-model.trim="platform.companyName" />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="联系人" required>
<a-input placeholder="请输入联系人..." v-model.trim="platform.manName" />
</a-form-item>
<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>
<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>
<!-- <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>
<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>
<a-button :disabled="platform.isTel === false" @click="getCode" class="code_img ml-2" type="primary" v-else
>获取验证码</a-button
>
</div>
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="需求描述">
<a-textarea placeholder="请输入需求描述..." style="height: 120px" v-model.trim="platform.describe" />
</a-form-item>
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="上传附件"
v-show="typeData.type === 0"
>
<a-upload
:action="action"
:before-upload="beforeUpload"
:default-file-list="fileList"
@change="fileChange"
list-type="picture"
name="files"
>
<a-button> <a-icon type="upload" />点击上传附件 </a-button>
</a-upload>
</a-form-item>
</a-form>
</a-modal>
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
import { selService, serviceApply, upload } from 'config/api';
const formItemLayout = {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
};
const formTailLayout = {
labelCol: { span: 6 },
wrapperCol: { span: 18, offset: 6 },
};
export default {
name: 'IncubationPlatform',
data() {
return {
time: 10000,
activeNum: 0,
listType: [],
lists: [],
currType: 0,
serviceList: [],
showModelIntro: false,
modelIntro: '',
current: 1,
pageSize: 8,
total: 0,
form: this.$form.createForm(this, { name: 'submit' }),
action: upload,
fileList: [],
visible: false,
formItemLayout,
formTailLayout,
confirmLoading: false,
platform: {
companyName: '', //
manName: '', //
tel: '', //
describe: '', //
code: '', //
files: [], // Id
isTel: false,
},
codeRules: [
{ required: true, message: '请输入验证码' },
{ min: 4, max: 4, message: '请输入4位短信验证码' },
],
codeNum: '',
showInterval: false,
codeTimer: null,
interval: 120, //
phoneRules: [
{ required: true, pattern: new RegExp(/^[1][3,4,5,6,7,8,9][0-9]{9}$/), whitespace: true, message: '请输入正确的手机号' },
],
showList: ['查看全部', '查看全部', '查看全部', '查看全部', '查看全部', '查看全部', '查看全部', '查看全部'],
typeData: {
type: 0,
id: '',
},
};
},
computed: {
...mapState('home', ['partners']),
...mapState('user', ['picCode']),
},
async created() {
this.getService();
this.sendPicCode();
await this.getUserSer();
if (this.userSer) {
if (this.userSer.name) {
this.platform.manName = this.userSer.name;
}
if (this.userSer.phone) {
this.platform.tel = this.userSer.phone;
}
if (this.userSer.companyName) {
this.platform.companyName = this.userSer.companyName;
}
}
this.setPartners([]);
const params = {
param: {
pageNum: 1,
type: 1,
typeOfPlatform: 2,
},
};
await this.getFrontSearchCompany(params);
this.lists = [];
this.listType = [];
this.partners.forEach(item => {
this.lists.push(item.backendSearchList);
if (item.typeOfTech === 0 && this.listType.indexOf('高校') === -1) {
this.listType.push('高校');
}
if (item.typeOfTech === 1 && this.listType.indexOf('院所') === -1) {
this.listType.push('院所');
}
if (item.typeOfTech === 2 && this.listType.indexOf('企业') === -1) {
this.listType.push('企业');
}
});
},
methods: {
// ...mapMutations('home', ['setServiceArr']),
...mapMutations('home', ['setPartners']),
...mapActions('user', ['sendCode', 'sendPicCode']),
...mapActions('home', ['getFrontSearchCompany', 'getUserSer']),
//
onShowSizeChange(current, size) {
this.current = current;
},
showIntro(index) {
this.showModelIntro = true;
this.modelIntro = this.serviceList[index].intro;
},
//
async getService() {
try {
const params = { param: { serviceType: 2 } };
const res = await selService(params);
const { code, data, msg } = res.data;
if (code === 200) {
this.serviceList = data;
}
} catch (error) {
// console.log(data);
}
},
jump(url) {
this.$router.push(url);
},
//
showModal(id) {
this.typeData.id = id;
this.visible = true;
},
//
handleCancel(e) {
this.visible = false;
},
//
changePhone(e) {
this.platform.tel = e.target.value;
this.platform.isTel = /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(this.platform.tel);
},
//
handleOk() {
if (!this.platform.manName) {
this.$message.error('请输入联系人');
} else if (!this.platform.tel) {
this.$message.error('请输入联系电话');
} else if (!this.platform.code) {
this.$message.error('请输入验证码');
} else {
if (this.platform.isTel) {
for (var i = 0; i < this.fileList.length; i++) {
this.platform.files = this.platform.files.concat(this.fileList[i].response.data[0].id);
}
this.subMitAdd();
// console.log(this.platform.files);
} else {
this.$message.error('请输入正确的联系电话');
}
}
},
//
async subMitAdd() {
this.confirmLoading = true;
try {
const params = {
param: {
code: this.platform.code,
companyName: this.platform.companyName,
contactName: this.platform.manName,
contactPhone: this.platform.tel,
description: this.platform.describe,
filesId: this.platform.files,
serviceId: this.typeData.id,
type: this.typeData.type,
},
};
const res = await serviceApply(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;
}
},
//
async getCode() {
// console.log(111);
try {
const params = {
phone: this.platform.tel,
verificationCodeId: this.picCode.verificationCodeId,
verificationCodeValue: this.codeNum,
};
await this.sendCode(params);
this.getCodeInterval();
} catch (error) {
// throw new Error(`SignIn.vue method getCode: ${error}`);
// console.log(error);
}
},
//
getCodeInterval() {
this.showInterval = true;
this.codeTimer = setInterval(() => {
if (this.interval === 0) {
clearInterval(this.codeTimer);
this.codeTimer = null;
this.showInterval = false;
this.interval = 120;
return;
}
this.interval = this.interval - 1;
}, 1000);
},
//
changePicCode() {
this.sendPicCode();
},
beforeUpload(file) {
return new Promise((resolve, reject) => {
const isLt5M = file.size / 1024 / 1024 < 5;
if (!isLt5M) {
this.$message.warning('上传附件大小不能超过5m!');
return reject(false);
}
return resolve(true);
});
},
fileChange(info) {
this.fileList = info.fileList;
},
changeIndex(i) {
this.activeNum = i;
},
changeType(i) {
this.currType = i;
},
},
};
</script>
<style lang="stylus" scoped>
a {
color: unset;
}
.wrap {
width: 1260px;
min-height: 1037px;
margin: 80px auto 28px auto;
overflow: hidden;
opacity: 1;
}
.bg-gray {
background-color: #F5F5F5;
}
.w-1500 {
display: inline-block;
width: 1500px;
margin: 0 auto;
}
.text-center {
text-align: center;
}
.nav-box {
position: fixed;
top: 70px;
width: 100%;
z-index: 99;
a {
color: unset;
}
}
.img-box {
// height: 380px;
width: 100%;
img {
height: 100%;
width: 100%;
}
}
.banner-box {
position: relative;
.banner-con {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 1200px;
.about-title {
color: white;
font-size: 80px;
font-weight: 600;
}
.about-font {
color: white;
font-size: 20px;
line-height: 40px;
}
}
}
.intro-box {
position: relative;
padding: 95px 0 50px;
width: 100%;
height: 700px;
.intro-bg {
position: absolute;
bottom: 50px;
}
.intro-con {
position: relative;
z-index: 9;
display: flex;
justify-content: space-between;
> div {
padding: 80px 60px 0;
width: 700px;
height: 400px;
background-color: rgba(19, 172, 196, 0.8);
text-align: left;
color: white;
.title {
font-size: 32px;
line-height: 1;
margin: 0;
}
.split {
margin: 20px 0;
display: inline-block;
width: 74px;
height: 1px;
background-color: #fff;
}
.con p {
font-size: 16px;
line-height: 40px;
margin: 0;
letter-spacing: 1px;
}
}
}
}
.service-box {
padding: 60px 0;
.title {
text-align: left;
}
.service-flow {
margin: 50px 0;
}
}
.partner-box {
padding: 60px 0;
.title {
margin-bottom: 30px;
text-align: left;
display: flex;
justify-content: space-between;
align-items: center;
.partner-type {
display: flex;
align-items: center;
}
.partner-type-item {
margin-left: 40px;
width: 112px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
color: #717879;
background-color: #EBF8FA;
}
.partner-type-item.active-item {
color: white;
background-color: #13ACC4;
}
}
.partner-flex {
text-align: left;
display: flex;
align-items: center;
flex-wrap: wrap;
.partner-item {
margin: 20px 0;
padding: 10px 0;
margin-right: 40px;
width: calc(((100% - 160px) / 5));
text-align: center;
border: 1px solid #D9D9D9;
border-radius: 5px;
&:nth-child(5n) {
margin-right: 0;
}
.partner-item-img {
margin-bottom: 15px;
width: 80px;
height: 80px;
text-align: center;
line-height: 80px;
}
img {
max-width: 100%;
max-height: 100%;
}
p {
font-size: 16px;
color: #000;
margin: 0;
}
}
}
}
.contact-box {
padding: 60px 0;
.title {
margin-bottom: 50px;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.inner {
width: 100%;
margin: 10px auto 15px;
}
.content-box {
padding: 0 !important;
width: 30%;
height: auto !important;
margin: 50px 0;
cursor: pointer;
position: relative;
img {
width: 100%;
}
}
.con-title {
position: absolute;
bottom: 23px;
color: #ffffff;
font-size: 1.6rem;
text-align: center;
width: 100%;
background-image: linear-gradient(rgba(#545454, 0), rgba(0, 0, 0, 0.6));
}
@media only screen and (max-width: 1650px) {
.con-title {
font-size: 1.3rem;
}
}
.con-con {
background: white;
box-shadow: 0 0 6px #ccc;
height: 26%;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
}
.item-box {
position: relative;
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

664
src/views/Industry/Children/Index.vue

@ -0,0 +1,664 @@
<template>
<div>
<div class="nav-box d-flex">
<div :class="activeNum === 0 ? 'nav-box-active' : ''" @click="changeIndex(0)"><a href="#mao1">产业创新联盟</a></div>
<div :class="activeNum === 2 ? 'nav-box-active' : ''" @click="changeIndex(2)"><a href="#mao3">产业服务</a></div>
<div :class="activeNum === 3 ? 'nav-box-active' : ''" @click="changeIndex(3)"><a href="#mao4">合作伙伴</a></div>
</div>
<a name="mao1">
<div class="banner-box">
<a-carousel :autoplay-speed="time" autoplay>
<div class="img-box">
<img src="~assets/banner/banner1.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner2.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner3.png" />
</div>
</a-carousel>
<!-- 文字内容 -->
<div class="banner-con">
<h1 class="about-title">产业创新联盟</h1>
<div class="about-font">
面向众创空间入孵企业组织开展市场开发品牌建设产业对接投融资等产业化服务;
聚焦前沿交叉新兴产业领域优化整合平台资源组建产业技术创新战略联盟和协同创新联合体培育发展衍生企业构建众创空间孵化器加速器产业园创业孵化链促进大中小企业融通发展
</div>
</div>
</div>
</a>
<!-- 产业服务 -->
<a name="mao3">
<div class="service-box bg-gray text-center">
<div class="title w-1500"><img src="~assets/about/title5.jpg" /></div>
<div class="service-flow">
<div class="flow-path" style="padding: 15px 9%">
<div class="flow-title" style="top: 30%">服务流程</div>
<div class="flow-content">
<img src="~assets/image.png" style="width: 100%" />
</div>
</div>
</div>
<div class="w-1500">
<div class="inner d-flex flex-wrap" style="margin: 20px auto">
<div :class="(index + 1) % 3 === 0 ? 'margin-0' : ''" :key="index" class="item-box mb-8" v-for="(item, index) in serviceList">
<img :src="item.picUrl" @click="showModal(item.id)" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p @click="showModal(item.id)" class="font-24 my-4 text-center">
<span>{{ item.name }}</span>
</p>
<div class="font-16 textColor item-intro mb-2" v-if="item.intro.length > 45">
{{ item.intro.slice(0, 45) }}
<a-button @click="showIntro(index)" class="font-16 baseColor" style="height: 20px; float: right; padding: 0px" type="link">
more
<a-icon style="font-size: 12px" type="right" />
</a-button>
</div>
<div class="font-16 textColor item-intro" v-if="item.intro.length <= 45">
<p>{{ item.intro }}</p>
</div>
</div>
</div>
</div>
</div>
</a>
<a name="mao4">
<div class="partner-box text-center">
<div class="title w-1500">
<img src="~assets/about/title2.jpg" />
<div class="partner-type">
<div
class="partner-type-item"
:class="currType === index ? 'active-item' : ''"
v-for="(item, index) in listType"
:key="index"
@click="changeType(index)"
>
{{ item }}
</div>
</div>
</div>
<div class="w-1500">
<div class="partner-flex" v-show="currType === index" v-for="(item, index) in lists" :key="index">
<div class="partner-item" style="display: inline-block !important" v-for="(v, k) in item" :key="k">
<div class="partner-item-img" style="display: inline-block !important">
<img style="display: inline-block !important" :src="v.logoUrl" />
</div>
<p>{{ v.name }}</p>
</div>
</div>
</div>
</div>
</a>
<div class="bg-gray" style="height: 200px"></div>
<a-modal :footer="null" v-model="showModelIntro">
<p class="mt-3">{{ modelIntro }}</p>
</a-modal>
<a-modal :confirm-loading="confirmLoading" :visible="visible" @cancel="handleCancel" @ok="handleOk" title="技术需求" width="50%">
<a-form :form="form">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="公司名称">
<a-input placeholder="请输入公司名称..." v-model.trim="platform.companyName" />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="联系人" required>
<a-input placeholder="请输入联系人..." v-model.trim="platform.manName" />
</a-form-item>
<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>
<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>
<!-- <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>
<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>
<a-button :disabled="platform.isTel === false" @click="getCode" class="code_img ml-2" type="primary" v-else
>获取验证码</a-button
>
</div>
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="需求描述">
<a-textarea placeholder="请输入需求描述..." style="height: 120px" v-model.trim="platform.describe" />
</a-form-item>
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="上传附件"
v-show="typeData.type === 0"
>
<a-upload
:action="action"
:before-upload="beforeUpload"
:default-file-list="fileList"
@change="fileChange"
list-type="picture"
name="files"
>
<a-button> <a-icon type="upload" />点击上传附件 </a-button>
</a-upload>
</a-form-item>
</a-form>
</a-modal>
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
import { selService, serviceApply, upload } from 'config/api';
const formItemLayout = {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
};
const formTailLayout = {
labelCol: { span: 6 },
wrapperCol: { span: 18, offset: 6 },
};
export default {
name: 'Industry',
data() {
return {
time: 10000,
activeNum: 0, //
listType: [], //
lists: [], //
currType: 0, //
serviceList: [], //
showModelIntro: false,
modelIntro: '',
form: this.$form.createForm(this, { name: 'submit' }),
action: upload,
fileList: [],
visible: false,
formItemLayout,
formTailLayout,
confirmLoading: false,
platform: {
companyName: '', //
manName: '', //
tel: '', //
describe: '', //
code: '', //
files: [], // Id
isTel: false,
},
codeRules: [
{ required: true, message: '请输入验证码' },
{ min: 4, max: 4, message: '请输入4位短信验证码' },
],
codeNum: '',
showInterval: false,
codeTimer: null,
interval: 120, //
phoneRules: [
{ required: true, pattern: new RegExp(/^[1][3,4,5,6,7,8,9][0-9]{9}$/), whitespace: true, message: '请输入正确的手机号' },
],
typeData: {
type: 0,
id: '',
},
};
},
computed: {
...mapState('home', ['partners']),
...mapState('user', ['picCode']),
},
async created() {
this.getService();
this.sendPicCode();
await this.getUserSer();
if (this.userSer) {
if (this.userSer.name) {
this.platform.manName = this.userSer.name;
}
if (this.userSer.phone) {
this.platform.tel = this.userSer.phone;
}
if (this.userSer.companyName) {
this.platform.companyName = this.userSer.companyName;
}
}
this.setPartners([]);
const params = {
param: {
pageNum: 1,
type: 1,
typeOfPlatform: 2,
},
};
await this.getFrontSearchCompany(params);
this.lists = [];
this.listType = [];
this.partners.forEach(item => {
this.lists.push(item.backendSearchList);
if (item.typeOfTech === 0 && this.listType.indexOf('高校') === -1) {
this.listType.push('高校');
}
if (item.typeOfTech === 1 && this.listType.indexOf('院所') === -1) {
this.listType.push('院所');
}
if (item.typeOfTech === 2 && this.listType.indexOf('企业') === -1) {
this.listType.push('企业');
}
});
},
methods: {
// ...mapMutations('home', ['setServiceArr']),
...mapMutations('home', ['setPartners']),
...mapActions('user', ['sendCode', 'sendPicCode']),
...mapActions('home', ['getUserSer', 'getFrontSearchCompany']),
showIntro(index) {
this.showModelIntro = true;
this.modelIntro = this.serviceList[index].intro;
},
//
async getService() {
try {
const params = { param: { serviceType: 3 } };
const res = await selService(params);
const { code, data, msg } = res.data;
if (code === 200) {
this.serviceList = data;
}
} catch (error) {
// console.log(data);
}
},
jump(url) {
this.$router.push(url);
},
//
showModal(id) {
this.typeData.id = id;
this.visible = true;
},
//
handleCancel(e) {
this.visible = false;
},
//
changePhone(e) {
this.platform.tel = e.target.value;
this.platform.isTel = /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(this.platform.tel);
},
//
handleOk() {
if (!this.platform.manName) {
this.$message.error('请输入联系人');
} else if (!this.platform.tel) {
this.$message.error('请输入联系电话');
} else if (!this.platform.code) {
this.$message.error('请输入验证码');
} else {
if (this.platform.isTel) {
for (var i = 0; i < this.fileList.length; i++) {
this.platform.files = this.platform.files.concat(this.fileList[i].response.data[0].id);
}
this.subMitAdd();
// console.log(this.platform.files);
} else {
this.$message.error('请输入正确的联系电话');
}
}
},
//
async subMitAdd() {
this.confirmLoading = true;
try {
const params = {
param: {
code: this.platform.code,
companyName: this.platform.companyName,
contactName: this.platform.manName,
contactPhone: this.platform.tel,
description: this.platform.describe,
filesId: this.platform.files,
serviceId: this.typeData.Id,
type: this.typeData.type,
},
};
const res = await serviceApply(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;
}
},
//
async getCode() {
// console.log(111);
try {
const params = {
phone: this.platform.tel,
verificationCodeId: this.picCode.verificationCodeId,
verificationCodeValue: this.codeNum,
};
await this.sendCode(params);
this.getCodeInterval();
} catch (error) {
throw new Error(`Serve.vue method getCode: ${error}`);
// console.log(error);
}
},
//
getCodeInterval() {
this.showInterval = true;
this.codeTimer = setInterval(() => {
if (this.interval === 0) {
clearInterval(this.codeTimer);
this.codeTimer = null;
this.showInterval = false;
this.interval = 120;
return;
}
this.interval = this.interval - 1;
}, 1000);
},
//
changePicCode() {
this.sendPicCode();
},
beforeUpload(file) {
return new Promise((resolve, reject) => {
const isLt5M = file.size / 1024 / 1024 < 5;
if (!isLt5M) {
this.$message.warning('上传附件大小不能超过5m!');
return reject(false);
}
return resolve(true);
});
},
fileChange(info) {
this.fileList = info.fileList;
},
changeIndex(i) {
this.activeNum = i;
},
changeType(i) {
this.currType = i;
},
},
};
</script>
<style lang="stylus" scoped>
.wrap {
width: 1260px;
min-height: 1037px;
margin: 80px auto 28px auto;
overflow: hidden;
opacity: 1;
}
.bg-gray {
background-color: #F5F5F5;
}
.w-1500 {
display: inline-block;
width: 1500px;
margin: 0 auto;
}
.text-center {
text-align: center;
}
.nav-box {
position: fixed;
top: 70px;
width: 100%;
z-index: 99;
a {
color: unset;
}
}
.img-box {
// height: 380px;
width: 100%;
img {
height: 100%;
width: 100%;
}
}
.banner-box {
position: relative;
.banner-con {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 1200px;
.about-title {
color: white;
font-size: 80px;
font-weight: 600;
}
.about-font {
color: white;
font-size: 20px;
line-height: 40px;
}
}
}
.service-box {
padding: 60px 0;
.title {
text-align: left;
}
.service-flow {
margin: 50px 0;
}
}
.partner-box {
padding: 60px 0;
.title {
margin-bottom: 30px;
text-align: left;
display: flex;
justify-content: space-between;
align-items: center;
.partner-type {
display: flex;
align-items: center;
}
.partner-type-item {
margin-left: 40px;
width: 112px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
color: #717879;
background-color: #EBF8FA;
}
.partner-type-item.active-item {
color: white;
background-color: #13ACC4;
}
}
.partner-flex {
text-align: left;
display: flex;
align-items: center;
flex-wrap: wrap;
.partner-item {
margin: 20px 0;
padding: 10px 0;
margin-right: 40px;
width: calc(((100% - 160px) / 5));
text-align: center;
border: 1px solid #D9D9D9;
border-radius: 5px;
&:nth-child(5n) {
margin-right: 0;
}
.partner-item-img {
margin-bottom: 15px;
width: 80px;
height: 80px;
text-align: center;
line-height: 80px;
}
img {
max-width: 100%;
max-height: 100%;
}
p {
font-size: 16px;
color: #000;
margin: 0;
}
}
}
}
.contact-box {
padding: 60px 0;
.title {
margin-bottom: 50px;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.inner {
width: 100%;
margin: 10px auto 15px;
}
.content-box {
padding: 0 !important;
width: 30%;
height: auto !important;
margin: 50px 0;
cursor: pointer;
position: relative;
img {
width: 100%;
}
}
.con-title {
position: absolute;
bottom: 23px;
color: #ffffff;
font-size: 1.6rem;
text-align: center;
width: 100%;
background-image: linear-gradient(rgba(#545454, 0), rgba(0, 0, 0, 0.6));
}
@media only screen and (max-width: 1650px) {
.con-title {
font-size: 1.3rem;
}
}
.con-con {
background: white;
box-shadow: 0 0 6px #ccc;
height: 26%;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
}
.item-box {
position: relative;
width: 26%;
margin-right: 11%;
border-radius: 4px;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

494
src/views/NewPlatform/Children/Index.vue

@ -0,0 +1,494 @@
<template>
<div>
<div class="nav-box d-flex">
<div :class="activeNum === 0 ? 'nav-box-active' : ''" @click="changeIndex(0)"><a href="#mao1">研究院介绍</a></div>
<div :class="activeNum === 1 ? 'nav-box-active' : ''" @click="changeIndex(1)"><a href="#mao2">创新资源平台</a></div>
<div :class="activeNum === 2 ? 'nav-box-active' : ''" @click="changeIndex(2)"><a href="#mao3">创新服务</a></div>
<div :class="activeNum === 3 ? 'nav-box-active' : ''" @click="changeIndex(3)"><a href="#mao4">合作伙伴</a></div>
</div>
<a name="mao1">
<div class="banner-box">
<a-carousel :autoplay-speed="time" autoplay>
<div class="img-box">
<img src="~assets/banner/banner1.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner2.png" />
</div>
<div class="img-box">
<img src="~assets/banner/banner3.png" />
</div>
</a-carousel>
<!-- 文字内容 -->
<div class="banner-con">
<h1 class="about-title">研究院</h1>
<div class="about-font">
围绕功能食品生物医药和数字健康产业领域创新事业部搭建产学研用协同学科交叉融合资源开放共享的科技创新平台
实现从科学到技术的转移转化促进重大基础研究成果产业化打造企业的技术创新中心为科技型中小微企业发展提供全链条一体化科技创新服务
增强以科技创新为核心的企业竞争力推动企业高质量发展发挥更加重要作用
<p>依托新型研发机构和技术创新中心搭建科技开放共享平台技术转移转化平台科技人才团队平台</p>
</div>
</div>
</div>
</a>
<!-- 创新资源平台 -->
<a name="mao2">
<div class="organize-box bg-gray text-center">
<div class="title w-1500"><img src="~assets/newPlatform/newPlatform1.jpg" /></div>
<div class="w-1500">
<div class="inner d-flex flex-nowrap justify-space-between">
<div :key="index" @click="jump(item.url)" class="content-box" v-for="(item, index) in list">
<img :src="item.imgUrl" />
<div class="con-title">{{ item.title }}</div>
<div class="con-con">{{ item.content }}</div>
</div>
</div>
</div>
</div>
</a>
<!-- 创新服务 -->
<a name="mao3">
<div class="service-box bg-gray text-center">
<div class="title w-1500"><img src="~assets/newPlatform/newPlatform2.jpg" /></div>
<div class="service-flow">
<div class="flow-path" style="padding: 15px 9%">
<div class="flow-title" style="top: 30%">服务流程</div>
<div class="flow-content">
<img src="~assets/image.png" style="width: 100%" />
</div>
</div>
</div>
<div class="w-1500">
<div class="inner d-flex flex-wrap" style="margin: 20px auto">
<div
:class="(index + 1) % 4 === 0 ? 'margin-0' : ''"
:key="index"
class="item-box mb-8 pointer"
v-for="(item, index) in serviceList"
>
<img :src="item.picUrl" @click="showModal(item.id)" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p class="font-24 my-4" style="text-align: center">
<span>{{ item.name }}</span>
</p>
<div class="font-16 textColor item-intro mb-2" v-if="item.intro === null ? false : item.intro.length > 45">
{{ item.intro.slice(0, 45) }}
<a-button @click="showIntro(index)" class="font-16 baseColor" style="height: 20px; float: right; padding: 0px" type="link">
more
<a-icon style="font-size: 12px" type="right" />
</a-button>
</div>
<div class="font-16 textColor item-intro" v-if="item.intro === null ? false : item.intro.length <= 45">
<p>{{ item.intro }}</p>
</div>
</div>
</div>
</div>
</div>
</a>
<!-- 合作伙伴 -->
<a name="mao4">
<div class="partner-box text-center">
<div class="title w-1500">
<img src="~assets/about/title2.jpg" />
<div class="partner-type">
<div
class="partner-type-item"
:class="currType === index ? 'active-item' : ''"
v-for="(item, index) in listType"
:key="index"
@click="changeType(index)"
>
{{ item }}
</div>
</div>
</div>
<div class="w-1500">
<div class="partner-flex" v-show="currType === index" v-for="(item, index) in lists" :key="index">
<div class="partner-item" style="display: inline-block !important" v-for="(v, k) in item" :key="k">
<div class="partner-item-img" style="display: inline-block !important">
<img style="display: inline-block !important" :src="v.logoUrl" />
</div>
<p>{{ v.name }}</p>
</div>
</div>
</div>
</div>
</a>
<div class="bg-gray" style="height: 200px"></div>
<service-demand :model-intro="modelIntro" ref="child" />
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
import { selService } from 'config/api';
import ServiceDemand from 'components/ServiceDemand/ServiceDemand.vue';
export default {
name: 'NewPlatform',
components: { ServiceDemand },
data() {
return {
time: 10000,
listType: [],
lists: [],
activeNum: 0,
list: [
{
title: '科技资源开放共享服务平台',
content: '研发试验、检验检测、资源共享',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210120/ccf39757579647cd975ddaebfc571d93.png',
url: '/NewPlatform/Share',
},
{
title: '知识产权与技术转移转化服务平台',
content: '知识产权、成果转化、技术转移',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/4f9b898da25e48d3b73b47345ed14a9a.jpg',
url: '/NewPlatform/Transfer',
},
{
title: '知识培训与科技人才服务平台',
content: '技术培训、管理培训、知识讲座',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/f5fb570cfd7547279138a591818325e0.jpg',
url: '/NewPlatform/Develop',
},
],
serviceList: [],
modelIntro: '',
currType: 0,
};
},
computed: mapState('home', ['partners']),
async created() {
this.getService();
this.setPartners([]);
const params = {
param: {
pageNum: 1,
type: 1,
typeOfPlatform: 2,
},
};
await this.getFrontSearchCompany(params);
this.lists = [];
this.listType = [];
this.partners.forEach(item => {
this.lists.push(item.backendSearchList);
if (item.typeOfTech === 0 && this.listType.indexOf('高校') === -1) {
this.listType.push('高校');
}
if (item.typeOfTech === 1 && this.listType.indexOf('院所') === -1) {
this.listType.push('院所');
}
if (item.typeOfTech === 2 && this.listType.indexOf('企业') === -1) {
this.listType.push('企业');
}
});
},
methods: {
// ...mapMutations('home', ['setServiceArr']),
...mapMutations('home', ['setPartners']),
...mapActions('home', ['getFrontSearchCompany']),
showIntro(index) {
this.$refs.child.showModel();
this.modelIntro = this.serviceList[index].intro;
},
//
async getService() {
try {
const params = { param: { serviceType: 1 } };
const res = await selService(params);
const { code, data, msg } = res.data;
if (code === 200) {
this.serviceList = data;
}
} catch (error) {
// console.log(data);
}
},
jump(url) {
this.$router.push(url);
},
//
// jumpService(id) {
// this.setServiceArr([]);
// this.setServiceArr(this.arr);
// this.$router.push({
// path: '/NewPlatform/ServiceDet',
// name: 'ServiceDet',
// params: { id },
// });
// },
//
showModal(id) {
this.$refs.child.setTypeDataId(id);
},
changeIndex(i) {
this.activeNum = i;
},
changeType(i) {
this.currType = i;
},
},
};
</script>
<style lang="stylus" scoped>
a {
color: unset;
}
.wrap {
width: 1260px;
min-height: 1037px;
margin: 80px auto 28px auto;
overflow: hidden;
opacity: 1;
}
.bg-gray {
background-color: #F5F5F5;
}
.w-1500 {
display: inline-block;
width: 1500px;
margin: 0 auto;
}
.text-center {
text-align: center;
}
.nav-box {
position: fixed;
top: 70px;
width: 100%;
z-index: 99;
a {
color: unset;
}
}
.img-box {
// height: 380px;
width: 100%;
img {
height: 100%;
width: 100%;
}
}
.banner-box {
position: relative;
.banner-con {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 1200px;
.about-title {
color: white;
font-size: 80px;
font-weight: 600;
}
.about-font {
color: white;
font-size: 20px;
line-height: 40px;
}
}
}
.organize-box {
padding: 60px 0;
.title {
text-align: left;
}
}
.service-box {
padding: 20px 0 60px;
.title {
text-align: left;
}
.service-flow {
margin: 50px 0;
}
}
.partner-box {
padding: 60px 0;
.title {
margin-bottom: 30px;
text-align: left;
display: flex;
justify-content: space-between;
align-items: center;
.partner-type {
display: flex;
align-items: center;
}
.partner-type-item {
margin-left: 40px;
width: 112px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
color: #717879;
background-color: #EBF8FA;
}
.partner-type-item.active-item {
color: white;
background-color: #13ACC4;
}
}
.partner-flex {
text-align: left;
display: flex;
align-items: center;
flex-wrap: wrap;
.partner-item {
margin: 20px 0;
padding: 10px 0;
margin-right: 40px;
width: calc(((100% - 160px) / 5));
text-align: center;
border: 1px solid #D9D9D9;
border-radius: 5px;
&:nth-child(5n) {
margin-right: 0;
}
.partner-item-img {
margin-bottom: 15px;
width: 80px;
height: 80px;
text-align: center;
line-height: 80px;
}
img {
max-width: 100%;
max-height: 100%;
}
p {
font-size: 16px;
color: #000;
margin: 0;
}
}
}
}
.contact-box {
padding: 60px 0;
.title {
margin-bottom: 50px;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.inner {
width: 100%;
margin: 10px auto 15px;
}
.content-box {
padding: 0 !important;
width: 30%;
height: auto !important;
margin: 50px 0;
cursor: pointer;
position: relative;
img {
width: 100%;
}
}
.con-title {
position: absolute;
bottom: 23px;
color: #ffffff;
font-size: 1.6rem;
text-align: center;
width: 100%;
background-image: linear-gradient(rgba(#545454, 0), rgba(0, 0, 0, 0.6));
}
@media only screen and (max-width: 1650px) {
.con-title {
font-size: 1.3rem;
}
}
.con-con {
background: white;
box-shadow: 0 0 6px #ccc;
height: 26%;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
}
.item-box {
position: relative;
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

142
yarn.lock

@ -17,7 +17,7 @@
"@ant-design/colors" "^3.1.0" "@ant-design/colors" "^3.1.0"
"babel-runtime" "^6.26.0" "babel-runtime" "^6.26.0"
"@ant-design/icons@^2.1.1": "@ant-design/icons@^2.0.0", "@ant-design/icons@^2.1.1":
"integrity" "sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=" "integrity" "sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko="
"resolved" "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz?cache=0&sync_timestamp=1605268034416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-2.1.1.tgz" "resolved" "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz?cache=0&sync_timestamp=1605268034416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-2.1.1.tgz"
"version" "2.1.1" "version" "2.1.1"
@ -34,7 +34,7 @@
"resolved" "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.5.tgz?cache=0&sync_timestamp=1604441336656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.5.tgz" "resolved" "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.5.tgz?cache=0&sync_timestamp=1604441336656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.5.tgz"
"version" "7.12.5" "version" "7.12.5"
"@babel/core@^7.11.0": "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.0":
"integrity" "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=" "integrity" "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg="
"resolved" "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz" "resolved" "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz"
"version" "7.12.3" "version" "7.12.3"
@ -1305,7 +1305,7 @@
"resolved" "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.8.tgz?cache=0&sync_timestamp=1603102336555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.8.tgz" "resolved" "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.8.tgz?cache=0&sync_timestamp=1603102336555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.8.tgz"
"version" "4.5.8" "version" "4.5.8"
"@vue/cli-service@~4.5.0": "@vue/cli-service@^3.0.0 || ^4.0.0-0", "@vue/cli-service@~4.5.0":
"integrity" "sha1-n+WLx8d8USHqu5QPgOBsGNqxI+o=" "integrity" "sha1-n+WLx8d8USHqu5QPgOBsGNqxI+o="
"resolved" "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.8.tgz?cache=0&sync_timestamp=1603104099608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.8.tgz" "resolved" "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.8.tgz?cache=0&sync_timestamp=1603104099608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.8.tgz"
"version" "4.5.8" "version" "4.5.8"
@ -1359,7 +1359,6 @@
"thread-loader" "^2.1.3" "thread-loader" "^2.1.3"
"url-loader" "^2.2.0" "url-loader" "^2.2.0"
"vue-loader" "^15.9.2" "vue-loader" "^15.9.2"
"vue-loader-v16" "npm:vue-loader@^16.0.0-beta.7"
"vue-style-loader" "^4.1.2" "vue-style-loader" "^4.1.2"
"webpack" "^4.0.0" "webpack" "^4.0.0"
"webpack-bundle-analyzer" "^3.8.0" "webpack-bundle-analyzer" "^3.8.0"
@ -1398,9 +1397,10 @@
"merge-source-map" "^1.1.0" "merge-source-map" "^1.1.0"
"postcss" "^7.0.14" "postcss" "^7.0.14"
"postcss-selector-parser" "^6.0.2" "postcss-selector-parser" "^6.0.2"
"prettier" "^1.18.2"
"source-map" "~0.6.1" "source-map" "~0.6.1"
"vue-template-es2015-compiler" "^1.9.0" "vue-template-es2015-compiler" "^1.9.0"
optionalDependencies:
"prettier" "^1.18.2"
"@vue/eslint-config-prettier@^6.0.0": "@vue/eslint-config-prettier@^6.0.0":
"integrity" "sha1-rVkSswj0rkaEWOAqKwXbC50kZwA=" "integrity" "sha1-rVkSswj0rkaEWOAqKwXbC50kZwA="
@ -1592,7 +1592,7 @@
"resolved" "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235826369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz" "resolved" "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235826369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz"
"version" "7.2.0" "version" "7.2.0"
"acorn@^6.4.1": "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^6.4.1":
"integrity" "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=" "integrity" "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY="
"resolved" "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz" "resolved" "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz"
"version" "6.4.2" "version" "6.4.2"
@ -1645,7 +1645,7 @@
"co" "^4.6.0" "co" "^4.6.0"
"json-stable-stringify" "^1.0.1" "json-stable-stringify" "^1.0.1"
"ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.3", "ajv@^6.12.4", "ajv@^6.12.5": "ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.3", "ajv@^6.12.4", "ajv@^6.12.5", "ajv@^6.9.1", "ajv@>=5.0.0":
"integrity" "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=" "integrity" "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ="
"resolved" "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz" "resolved" "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz"
"version" "6.12.6" "version" "6.12.6"
@ -1717,8 +1717,8 @@
"color-convert" "^2.0.1" "color-convert" "^2.0.1"
"ansi-styles@^4.1.0": "ansi-styles@^4.1.0":
"integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" "integrity" "sha1-7dgDYornHATIWuegkG7a00tkiTc="
"resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" "resolved" "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995778321&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz"
"version" "4.3.0" "version" "4.3.0"
dependencies: dependencies:
"color-convert" "^2.0.1" "color-convert" "^2.0.1"
@ -2103,13 +2103,6 @@
"resolved" "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz" "resolved" "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"
"version" "2.1.0" "version" "2.1.0"
"bindings@^1.5.0":
"integrity" "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8="
"resolved" "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz"
"version" "1.5.0"
dependencies:
"file-uri-to-path" "1.0.0"
"bluebird@^3.1.1", "bluebird@^3.5.0", "bluebird@^3.5.5": "bluebird@^3.1.1", "bluebird@^3.5.0", "bluebird@^3.5.5":
"integrity" "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" "integrity" "sha1-nyKcFb4nJFT/qXOs4NvueaGww28="
"resolved" "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz" "resolved" "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz"
@ -2563,8 +2556,8 @@
"supports-color" "^7.1.0" "supports-color" "^7.1.0"
"chalk@^4.1.0": "chalk@^4.1.0":
"integrity" "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==" "integrity" "sha1-ThSHCmGNni7dl92DRf2dncMVZGo="
"resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" "resolved" "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz"
"version" "4.1.0" "version" "4.1.0"
dependencies: dependencies:
"ansi-styles" "^4.1.0" "ansi-styles" "^4.1.0"
@ -2588,7 +2581,6 @@
"anymatch" "^2.0.0" "anymatch" "^2.0.0"
"async-each" "^1.0.1" "async-each" "^1.0.1"
"braces" "^2.3.2" "braces" "^2.3.2"
"fsevents" "^1.2.7"
"glob-parent" "^3.1.0" "glob-parent" "^3.1.0"
"inherits" "^2.0.3" "inherits" "^2.0.3"
"is-binary-path" "^1.0.0" "is-binary-path" "^1.0.0"
@ -2607,7 +2599,6 @@
dependencies: dependencies:
"anymatch" "~3.1.1" "anymatch" "~3.1.1"
"braces" "~3.0.2" "braces" "~3.0.2"
"fsevents" "~2.1.2"
"glob-parent" "~5.1.0" "glob-parent" "~5.1.0"
"is-binary-path" "~2.1.0" "is-binary-path" "~2.1.0"
"is-glob" "~4.0.1" "is-glob" "~4.0.1"
@ -2785,8 +2776,8 @@
"color-name" "1.1.3" "color-name" "1.1.3"
"color-convert@^2.0.1": "color-convert@^2.0.1":
"integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" "integrity" "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM="
"resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" "resolved" "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz"
"version" "2.0.1" "version" "2.0.1"
dependencies: dependencies:
"color-name" "~1.1.4" "color-name" "~1.1.4"
@ -2797,8 +2788,8 @@
"version" "1.1.3" "version" "1.1.3"
"color-name@~1.1.4": "color-name@~1.1.4":
"integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity" "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI="
"resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" "resolved" "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz"
"version" "1.1.4" "version" "1.1.4"
"color-string@^1.5.4": "color-string@^1.5.4":
@ -3133,6 +3124,24 @@
"postcss" "^7.0.1" "postcss" "^7.0.1"
"timsort" "^0.3.0" "timsort" "^0.3.0"
"css-loader@*", "css-loader@^5.0.1":
"integrity" "sha1-nk3g1mNqYmalhb0JALQiyFU50l8="
"resolved" "https://registry.npm.taobao.org/css-loader/download/css-loader-5.0.1.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-5.0.1.tgz"
"version" "5.0.1"
dependencies:
"camelcase" "^6.2.0"
"cssesc" "^3.0.0"
"icss-utils" "^5.0.0"
"loader-utils" "^2.0.0"
"postcss" "^8.1.4"
"postcss-modules-extract-imports" "^3.0.0"
"postcss-modules-local-by-default" "^4.0.0"
"postcss-modules-scope" "^3.0.0"
"postcss-modules-values" "^4.0.0"
"postcss-value-parser" "^4.1.0"
"schema-utils" "^3.0.0"
"semver" "^7.3.2"
"css-loader@^3.5.3": "css-loader@^3.5.3":
"integrity" "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=" "integrity" "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU="
"resolved" "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz" "resolved" "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz"
@ -3152,24 +3161,6 @@
"schema-utils" "^2.7.0" "schema-utils" "^2.7.0"
"semver" "^6.3.0" "semver" "^6.3.0"
"css-loader@^5.0.1":
"integrity" "sha1-nk3g1mNqYmalhb0JALQiyFU50l8="
"resolved" "https://registry.npm.taobao.org/css-loader/download/css-loader-5.0.1.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-5.0.1.tgz"
"version" "5.0.1"
dependencies:
"camelcase" "^6.2.0"
"cssesc" "^3.0.0"
"icss-utils" "^5.0.0"
"loader-utils" "^2.0.0"
"postcss" "^8.1.4"
"postcss-modules-extract-imports" "^3.0.0"
"postcss-modules-local-by-default" "^4.0.0"
"postcss-modules-scope" "^3.0.0"
"postcss-modules-values" "^4.0.0"
"postcss-value-parser" "^4.1.0"
"schema-utils" "^3.0.0"
"semver" "^7.3.2"
"css-parse@~2.0.0": "css-parse@~2.0.0":
"integrity" "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=" "integrity" "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q="
"resolved" "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz" "resolved" "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz"
@ -3887,7 +3878,7 @@
"object-hash" "^1.1.4" "object-hash" "^1.1.4"
"rimraf" "^2.6.1" "rimraf" "^2.6.1"
"eslint-plugin-prettier@^3.1.3": "eslint-plugin-prettier@^3.1.0", "eslint-plugin-prettier@^3.1.3":
"integrity" "sha1-Foq0MVTi6lfbmSos0JfIKBcfdcI=" "integrity" "sha1-Foq0MVTi6lfbmSos0JfIKBcfdcI="
"resolved" "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.1.4.tgz" "resolved" "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.1.4.tgz"
"version" "3.1.4" "version" "3.1.4"
@ -3931,7 +3922,7 @@
"resolved" "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1597435347526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz" "resolved" "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1597435347526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"
"version" "1.3.0" "version" "1.3.0"
"eslint@^6.7.2": "eslint@^5.0.0 || ^6.0.0", "eslint@^6.7.2", "eslint@>= 1.6.0 < 7.0.0", "eslint@>= 4.12.1", "eslint@>= 5.0.0", "eslint@>=1.6.0 <7.0.0", "eslint@>=3.14.1", "eslint@>=5.0.0":
"integrity" "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=" "integrity" "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s="
"resolved" "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.8.0.tgz" "resolved" "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.8.0.tgz"
"version" "6.8.0" "version" "6.8.0"
@ -4271,7 +4262,7 @@
dependencies: dependencies:
"flat-cache" "^2.0.1" "flat-cache" "^2.0.1"
"file-loader@^4.2.0": "file-loader@*", "file-loader@^4.2.0":
"integrity" "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=" "integrity" "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8="
"resolved" "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816876316&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz" "resolved" "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816876316&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz"
"version" "4.3.0" "version" "4.3.0"
@ -4513,19 +4504,6 @@
"resolved" "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz" "resolved" "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz"
"version" "1.0.0" "version" "1.0.0"
"fsevents@^1.2.7":
"integrity" "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg="
"resolved" "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1604593376153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz"
"version" "1.2.13"
dependencies:
"bindings" "^1.5.0"
"nan" "^2.12.1"
"fsevents@~2.1.2":
"integrity" "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4="
"resolved" "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1604593376153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz"
"version" "2.1.3"
"function-bind@^1.1.1": "function-bind@^1.1.1":
"integrity" "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" "integrity" "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
"resolved" "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz" "resolved" "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz"
@ -4739,8 +4717,8 @@
"version" "3.0.0" "version" "3.0.0"
"has-flag@^4.0.0": "has-flag@^4.0.0":
"integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" "integrity" "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="
"resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" "resolved" "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"
"version" "4.0.0" "version" "4.0.0"
"has-symbols@^1.0.1": "has-symbols@^1.0.1":
@ -4915,7 +4893,7 @@
"resolved" "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz" "resolved" "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz"
"version" "3.1.0" "version" "3.1.0"
"html-webpack-plugin@^3.2.0": "html-webpack-plugin@^3.2.0", "html-webpack-plugin@>=2.26.0":
"integrity" "sha1-sBq71yOsqqeze2r0SS69oD2d03s=" "integrity" "sha1-sBq71yOsqqeze2r0SS69oD2d03s="
"resolved" "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz" "resolved" "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz"
"version" "3.2.0" "version" "3.2.0"
@ -5671,7 +5649,7 @@
"integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss="
"resolved" "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161933968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz" "resolved" "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161933968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"
"version" "4.0.0" "version" "4.0.0"
dependencies: optionalDependencies:
"graceful-fs" "^4.1.6" "graceful-fs" "^4.1.6"
"jsonify@~0.0.0": "jsonify@~0.0.0":
@ -5761,11 +5739,11 @@
"loader-utils" "^1.1.0" "loader-utils" "^1.1.0"
"pify" "^3.0.0" "pify" "^3.0.0"
"less@^2.7.3": "less@^2.3.1 || ^3.0.0", "less@^2.7.3":
"integrity" "sha1-zBJg9RyQCp7A2R+2mYE54CUHtjs=" "integrity" "sha1-zBJg9RyQCp7A2R+2mYE54CUHtjs="
"resolved" "https://registry.npm.taobao.org/less/download/less-2.7.3.tgz?cache=0&sync_timestamp=1601388895510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-2.7.3.tgz" "resolved" "https://registry.npm.taobao.org/less/download/less-2.7.3.tgz?cache=0&sync_timestamp=1601388895510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-2.7.3.tgz"
"version" "2.7.3" "version" "2.7.3"
dependencies: optionalDependencies:
"errno" "^0.1.1" "errno" "^0.1.1"
"graceful-fs" "^4.1.2" "graceful-fs" "^4.1.2"
"image-size" "~0.5.0" "image-size" "~0.5.0"
@ -5774,10 +5752,6 @@
"promise" "^7.1.1" "promise" "^7.1.1"
"request" "2.81.0" "request" "2.81.0"
"source-map" "^0.5.3" "source-map" "^0.5.3"
optionalDependencies:
"mime" "^1.2.11"
"promise" "^7.1.1"
"request" "2.81.0"
"levn@^0.3.0", "levn@~0.3.0": "levn@^0.3.0", "levn@~0.3.0":
"integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4="
@ -6365,11 +6339,6 @@
"object-assign" "^4.0.1" "object-assign" "^4.0.1"
"thenify-all" "^1.0.0" "thenify-all" "^1.0.0"
"nan@^2.12.1":
"integrity" "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk="
"resolved" "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591646310&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz"
"version" "2.14.2"
"nanoid@^3.1.16": "nanoid@^3.1.16":
"integrity" "sha1-sh8KfQMRlvr3UxTXxl02NSvu72Q=" "integrity" "sha1-sh8KfQMRlvr3UxTXxl02NSvu72Q="
"resolved" "https://registry.npm.taobao.org/nanoid/download/nanoid-3.1.16.tgz?cache=0&sync_timestamp=1603674859824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanoid%2Fdownload%2Fnanoid-3.1.16.tgz" "resolved" "https://registry.npm.taobao.org/nanoid/download/nanoid-3.1.16.tgz?cache=0&sync_timestamp=1603674859824&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanoid%2Fdownload%2Fnanoid-3.1.16.tgz"
@ -7423,7 +7392,7 @@
"source-map" "^0.5.6" "source-map" "^0.5.6"
"supports-color" "^3.2.3" "supports-color" "^3.2.3"
"postcss@^7.0.0", "postcss@^7.0.1", "postcss@^7.0.14", "postcss@^7.0.27", "postcss@^7.0.32", "postcss@^7.0.5", "postcss@^7.0.6": "postcss@^7.0.0", "postcss@^7.0.1", "postcss@^7.0.14", "postcss@^7.0.27", "postcss@^7.0.32", "postcss@^7.0.5", "postcss@^7.0.6", "postcss@^8.1.0":
"integrity" "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=" "integrity" "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ="
"resolved" "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1605023930750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz" "resolved" "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1605023930750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz"
"version" "7.0.35" "version" "7.0.35"
@ -7497,7 +7466,7 @@
dependencies: dependencies:
"fast-diff" "^1.1.2" "fast-diff" "^1.1.2"
"prettier@^1.18.2", "prettier@^1.19.1": "prettier@^1.18.2", "prettier@^1.19.1", "prettier@>= 1.13.0", "prettier@>=1.13.0":
"integrity" "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=" "integrity" "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s="
"resolved" "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1600215497530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz" "resolved" "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1600215497530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz"
"version" "1.19.1" "version" "1.19.1"
@ -8120,7 +8089,7 @@
"schema-utils" "^2.6.1" "schema-utils" "^2.6.1"
"semver" "^6.3.0" "semver" "^6.3.0"
"sass@^1.26.5": "sass@^1.26.5", "sass@^1.3.0":
"integrity" "sha1-7E4YQsFG2OqSWMKMFBuMK3xqt/E=" "integrity" "sha1-7E4YQsFG2OqSWMKMFBuMK3xqt/E="
"resolved" "https://registry.npm.taobao.org/sass/download/sass-1.29.0.tgz?cache=0&sync_timestamp=1604536483628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass%2Fdownload%2Fsass-1.29.0.tgz" "resolved" "https://registry.npm.taobao.org/sass/download/sass-1.29.0.tgz?cache=0&sync_timestamp=1604536483628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass%2Fdownload%2Fsass-1.29.0.tgz"
"version" "1.29.0" "version" "1.29.0"
@ -8817,7 +8786,7 @@
"lodash.clonedeep" "^4.5.0" "lodash.clonedeep" "^4.5.0"
"when" "~3.6.x" "when" "~3.6.x"
"stylus@^0.54.8": "stylus@^0.54.5", "stylus@>=0.52.4":
"integrity" "sha1-PaPmWWa8Vnp7BEv+DuzmU+CZ0Uc=" "integrity" "sha1-PaPmWWa8Vnp7BEv+DuzmU+CZ0Uc="
"resolved" "https://registry.npm.taobao.org/stylus/download/stylus-0.54.8.tgz?cache=0&sync_timestamp=1594899882272&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylus%2Fdownload%2Fstylus-0.54.8.tgz" "resolved" "https://registry.npm.taobao.org/stylus/download/stylus-0.54.8.tgz?cache=0&sync_timestamp=1594899882272&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylus%2Fdownload%2Fstylus-0.54.8.tgz"
"version" "0.54.8" "version" "0.54.8"
@ -8865,8 +8834,8 @@
"has-flag" "^4.0.0" "has-flag" "^4.0.0"
"supports-color@^7.1.0": "supports-color@^7.1.0":
"integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" "integrity" "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo="
"resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" "resolved" "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz"
"version" "7.2.0" "version" "7.2.0"
dependencies: dependencies:
"has-flag" "^4.0.0" "has-flag" "^4.0.0"
@ -9505,9 +9474,9 @@
"version" "2.3.4" "version" "2.3.4"
"vue-loader-v16@npm:vue-loader@^16.0.0-beta.7": "vue-loader-v16@npm:vue-loader@^16.0.0-beta.7":
"integrity" "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==" "integrity" "sha1-CcTgcSRmiZ40uZpoZSTxkWX7KJI="
"resolved" "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz" "resolved" "https://registry.nlark.com/vue-loader/download/vue-loader-16.5.0.tgz"
"version" "16.1.2" "version" "16.5.0"
dependencies: dependencies:
"chalk" "^4.1.0" "chalk" "^4.1.0"
"hash-sum" "^2.0.0" "hash-sum" "^2.0.0"
@ -9550,7 +9519,7 @@
"hash-sum" "^1.0.2" "hash-sum" "^1.0.2"
"loader-utils" "^1.0.2" "loader-utils" "^1.0.2"
"vue-template-compiler@^2.6.11": "vue-template-compiler@^2.0.0", "vue-template-compiler@^2.6.11", "vue-template-compiler@>=2.5.0", "vue-template-compiler@>=2.6.0":
"integrity" "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=" "integrity" "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4="
"resolved" "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927307972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz" "resolved" "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927307972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz"
"version" "2.6.12" "version" "2.6.12"
@ -9563,7 +9532,7 @@
"resolved" "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz" "resolved" "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz"
"version" "1.9.1" "version" "1.9.1"
"vue@^2.6.11": "vue@^2 || ^3.0.0-0", "vue@^2.0.0", "vue@^2.1.8", "vue@^2.6.11", "vue@>=2.5.0", "vue@>=2.6.0":
"integrity" "sha1-9evU+mvShpQD4pqJau1JBEVskSM=" "integrity" "sha1-9evU+mvShpQD4pqJau1JBEVskSM="
"resolved" "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz" "resolved" "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz"
"version" "2.6.12" "version" "2.6.12"
@ -9592,11 +9561,10 @@
"resolved" "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz" "resolved" "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz"
"version" "1.7.5" "version" "1.7.5"
dependencies: dependencies:
"chokidar" "^3.4.1"
"graceful-fs" "^4.1.2" "graceful-fs" "^4.1.2"
"neo-async" "^2.5.0" "neo-async" "^2.5.0"
"watchpack-chokidar2" "^2.0.1"
optionalDependencies: optionalDependencies:
"chokidar" "^3.4.1"
"watchpack-chokidar2" "^2.0.1" "watchpack-chokidar2" "^2.0.1"
"wbuf@^1.1.0", "wbuf@^1.7.3": "wbuf@^1.1.0", "wbuf@^1.7.3":
@ -9713,7 +9681,7 @@
"source-list-map" "^2.0.0" "source-list-map" "^2.0.0"
"source-map" "~0.6.1" "source-map" "~0.6.1"
"webpack@^4.0.0": "webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.27.0 || ^5.0.0", "webpack@^4.36.0 || ^5.0.0", "webpack@^4.4.0", "webpack@>=2", "webpack@>=2.0.0 <5.0.0", "webpack@>=4.0.0":
"integrity" "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=" "integrity" "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I="
"resolved" "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz" "resolved" "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz"
"version" "4.44.2" "version" "4.44.2"

Loading…
Cancel
Save