Browse Source

样式修改

master
aBin 5 years ago
parent
commit
0a4825f069
  1. 16177
      package-lock.json
  2. 1
      src/common/platform.styl
  3. 2
      src/components/Banner/Banner.vue
  4. 414
      src/components/Introduce/SettledModel.vue
  5. 50
      src/components/PlatformList/PlatformList.vue
  6. 6
      src/config/api.js
  7. 9
      src/plugins/ant-design-vue.js
  8. 142
      src/views/IncubationPlatform/Children/place/EntitySpace.vue
  9. 147
      src/views/IncubationPlatform/Children/place/VirtualSpace.vue
  10. 98
      src/views/IncubationPlatform/components/AddModel.vue
  11. 15
      src/views/NewPlatform/Children/Core.vue
  12. 61
      src/views/NewPlatform/Children/Platform.vue
  13. 17937
      yarn.lock

16177
package-lock.json

File diff suppressed because it is too large

1
src/common/platform.styl

@ -17,7 +17,6 @@
.top-box {
overflow: hidden;
background: -webkit-linear-gradient(left, #6569FA , #13ACC4);
position: relative;
}
.top-title {

2
src/components/Banner/Banner.vue

@ -8,7 +8,7 @@
<div class="head">
<a-carousel :autoplay="false">
<div :key="item.id" v-for="item in bannerLists">
<img :src="item.url" alt />
<img :src="item.url" alt style="width: 100% !important" />
<div id="banner-box"></div>
</div>
</a-carousel>

414
src/components/Introduce/SettledModel.vue

@ -0,0 +1,414 @@
<template>
<div>
<a-button type="primary" @click="showModal"> 统计信息填报 </a-button>
<a-modal width="50%" :title="title" :visible="visible" :confirm-loading="confirmLoading" @ok="handleOk" @cancel="handleCancel">
<a-form :form="form" v-if="current === 0">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="公司名称" required>
<a-input v-model.trim="platform.company" placeholder="请输入公司名称..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="成立时间" required>
<!-- 时间选择器时间点 -->
<a-date-picker @change="changeBirthday" />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="法人代码" required>
<a-input v-model.trim="platform.legalPerson" placeholder="请输入法人代码..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="现注册地址" required>
<a-input v-model.trim="platform.registerSite" placeholder="请输入现注册地址..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="注册资金(单位:万)">
<a-input type="number" v-model.trim="platform.registerMoney" placeholder="请输入注册资金..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="员工人数">
<a-input type="number" v-model.trim="platform.staffCount" placeholder="请输入员工人数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="其中研发人数">
<a-input type="number" v-model.trim="platform.resarchStaff" placeholder="请输入研发人数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="大专以上人员">
<a-input type="number" v-model.trim="platform.juniorCollege" placeholder="请输入员工人数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="主营业务">
<a-input v-model.trim="platform.mainBusiness" placeholder="请输入主营业务..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="营业收入(单位:万)">
<a-input type="number" v-model.trim="platform.businessIncome" placeholder="请输入营业收入..." />
</a-form-item>
</a-form>
<a-form :form="form" v-if="current === 1">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="产品/技术阶段" required>
<!-- 单选 -->
<a-radio-group v-model="platform.productTech">
<a-radio :value="0" style="margin-right: 20px"> 创意阶段 </a-radio>
<a-radio :value="1" style="margin-right: 20px"> 研发阶段 </a-radio>
<a-radio :value="2" style="margin-right: 20px"> 转化阶段 </a-radio>
<a-radio :value="3" style="margin-right: 20px"> 原型样品 </a-radio>
<a-radio :value="4"> 产业化开发 </a-radio>
</a-radio-group>
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="申请专利数">
<a-input type="number" v-model.trim="platform.patentApply" placeholder="请输入申请专利数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="授权专利数">
<a-input type="number" v-model.trim="platform.patentGrented" placeholder="请输入授权专利数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="发明专利数">
<a-input type="number" v-model.trim="platform.patentInvent" placeholder="请输入发明专利数..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="软件著作权">
<a-input v-model.trim="platform.softwareRegister" placeholder="请输入软件著作权..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="动植物新品种">
<a-input v-model.trim="platform.plantKind" placeholder="请输入动植物新品种..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="集成电路布图设计">
<a-input v-model.trim="platform.electricDesign" placeholder="请输入集成电路布图设计..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="合作单位">
<a-input v-model.trim="platform.friendCompany" placeholder="请输入合作单位..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="上传附件">
<a-upload :action="action" :default-file-list="fileList" @change="fileChange" list-type="picture" name="files">
<p>1.营业执照复印件尚无注册的无需梯控</p>
<p>2.法定代表或授权代表身份证复印件</p>
<p>3.主导产品或技术简介</p>
<a-button> <a-icon type="upload" />点击上传附件 </a-button>
</a-upload>
</a-form-item>
</a-form>
<a-form :form="form" v-if="current === 2">
<!-- <a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="公司名称">
<a-input v-model.trim="platform.companyName" placeholder="请输入公司名称..." />
</a-form-item> -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="姓名" required>
<a-input v-model.trim="platform.manName" placeholder="请输入申请人姓名..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="性别" required>
<!-- 单选 -->
<a-radio-group v-model="platform.sex">
<a-radio :value="1" style="margin-right: 100px"> </a-radio>
<a-radio :value="0"> </a-radio>
</a-radio-group>
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="职务" required>
<a-input v-model.trim="platform.position" placeholder="请输入申请人职务..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="联系电话" required>
<a-input @change="changePhone" type="tel" v-decorator="['tel', { rules: phoneRules }]" placeholder="请输入联系电话.." />
</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-input @change="changeEamil" type="email" v-decorator="['email', { rules: emailRules }]" placeholder="请输入电子邮箱..." />
</a-form-item>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="身份证号" required>
<!-- 身份证号 -->
<a-input @change="changeIdCard" v-decorator="['idCard', { rules: idCardRules }]" placeholder="请输入身份证号..." />
</a-form-item>
</a-form>
<a-steps :current="current">
<a-step style="cursor: pointer" @click="current = 0">
<template slot="title">
<span v-if="current === 0">Waiting...</span>
<span v-else> 完成</span>
</template>
<span slot="description">企业基本信息</span>
</a-step>
<a-step style="cursor: pointer" @click="current = 1" :title="current > 1 ? '完成' : 'Waiting...'" description="企业详细信息" />
<a-step style="cursor: pointer" @click="current = 2" :title="current > 2 ? '完成' : 'Waiting...'" description="申请人基本信息" />
</a-steps>
</a-modal>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex';
import { Settled, 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: 'SettledModel',
props: {
typeNum: {
type: Number,
default: 1,
},
},
data() {
return {
form: this.$form.createForm(this, { name: 'submit' }),
visible: false,
current: 0,
action: upload,
fileList: [],
title: '入驻企业注册',
str: '申请加入',
formItemLayout,
formTailLayout,
confirmLoading: false,
platform: {
manName: '', //
sex: 1, // 01
position: '', //
tel: '', //
isTel: false,
email: '', //
isEmail: false,
code: '', //
idCard: '', //
isIdCard: false,
company: '', //
buildTime: 0, //
legalPerson: '', //
registerMoney: 0, //
staffCount: 0, //
resarchStaff: 0, //
juniorCollege: 0, //
mainBusiness: '', //
businessIncome: 0, //
registerSite: '', //
productTech: 0, //
patentApply: 0, //
patentGrented: 0, //
patentInvent: 0, //
softwareRegister: '', //
plantKind: '', //
electricDesign: '', //
friendCompany: '', //
files: [], // id
},
phoneRules: [
{ required: true, pattern: new RegExp(/^[1][3,4,5,6,7,8,9][0-9]{9}$/), whitespace: true, message: '请输入正确的手机号' },
],
codeRules: [
{ required: true, message: '请输入验证码' },
{ min: 4, max: 4, message: '请输入4位短信验证码' },
],
emailRules: [
{
pattern: new RegExp(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/),
whitespace: true,
message: '请输入正确的邮箱格式',
},
],
idCardRules: [
{
required: true,
pattern: new RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/),
whitespace: true,
message: '请输入身份证号',
},
],
codeNum: '',
showInterval: false,
codeTimer: null,
interval: 120, //
};
},
computed: mapState('user', ['picCode']),
async created() {
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;
}
}
},
methods: {
...mapActions('user', ['sendCode', 'sendPicCode']),
...mapActions('home', ['getUserSer']),
//
showModal() {
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);
},
//
changeEamil(e) {
this.platform.email = e.target.value;
this.platform.isEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(this.platform.email);
},
//
changeIdCard(e) {
this.platform.idCard = e.target.value;
this.platform.isIdCard = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(this.platform.idCard);
},
//
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();
},
//
changeBirthday(date, dateString) {
this.platform.buildTime = this.$moment(date).unix() * 1000;
// console.log(this.$moment(date).unix(), dateString);
},
//
handleOk() {
if (this.current !== 2) {
this.current++;
} else {
if (this.platform.company === '') {
this.$message.error('请输入公司名称');
} else if (this.platform.buildTime === 0) {
this.$message.error('请选择成立时间');
} else if (this.platform.legalPerson === '') {
this.$message.error('请输入法人代码');
} else if (this.platform.registerSite === '') {
this.$message.error('请输入现注册地址');
} else if (this.platform.manName === '') {
this.$message.error('请输入姓名');
} else if (this.platform.position === '') {
this.$message.error('请输入职务');
} else if (this.platform.isTel === false) {
this.$message.error('请输入联系电话');
} else if (this.platform.idCard === '') {
this.$message.error('请输入身份证号');
} else {
for (var i = 0; i < this.fileList.length; i++) {
this.platform.files = this.platform.files.concat(this.fileList[i].response.data[0].id);
}
this.addSettled();
}
}
},
async addSettled() {
this.confirmLoading = true;
try {
const params = {
param: {
buildTime: this.platform.buildTime,
businessIncome: this.platform.businessIncome,
company: this.platform.company,
electricDesign: this.platform.electricDesign,
email: this.platform.email,
fileList: this.platform.files,
friendCompany: this.platform.friendCompany,
gender: this.platform.sex,
idCard: this.platform.idCard,
juniorCollege: this.platform.juniorCollege,
legalPerson: this.platform.legalPerson,
mainBusiness: this.platform.mainBusiness,
name: this.platform.manName,
patentApply: this.platform.patentApply,
patentGrented: this.platform.patentGrented,
patentInvent: this.platform.patentInvent,
phone: this.platform.tel,
placeType: this.typeNum, // 0:1:
plantKind: this.platform.plantKind,
position: this.platform.position,
productTech: this.platform.productTech,
registerMoney: this.platform.registerMoney,
registerSite: this.platform.registerSite,
resarchStaff: this.platform.resarchStaff,
softwareRegister: this.platform.softwareRegister,
staffCount: this.platform.staffCount,
},
};
console.log(params);
const res = await Settled(params);
console.log(res);
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;
this.platform.isEmail = false;
this.platform.isIdCard = false;
} else {
throw msg;
console.log('失败1');
this.confirmLoading = false;
}
} catch (error) {
console.log('失败2');
this.$message.error(error);
this.confirmLoading = false;
}
},
fileChange(info) {
this.fileList = info.fileList;
},
},
};
</script>
<style lang="stylus" scoped>
.must-color {
color: red;
}
.code_img {
height: 32px;
width: 120px;
}
</style>

50
src/components/PlatformList/PlatformList.vue

@ -1,20 +1,11 @@
<template>
<div>
<div class="inner d-flex flex-wrap">
<div
:class="(index + 1) % 4 === 0 ? 'margin-0' : ''"
:key="index"
class="item-box mb-8"
v-for="(item, index) in list"
>
<img :src="item.picUrl" style="height: 220px; width: 100%" v-if="item.picUrl" />
<img :src="item.visitLocation" style="height: 220px; width: 100%" v-else />
<div :class="(index + 1) % 4 === 0 ? 'margin-0' : ''" :key="index" class="item-box mb-8" v-for="(item, index) in list">
<img :src="item.picUrl" class="con-img" v-if="item.picUrl" :title="item.name" />
<img :src="item.visitLocation" class="con-img" :title="item.name" v-else />
<p class="font-24 my-4 title">{{ item.name }}</p>
<p
@click="jump(item.id)"
class="font-16 baseColor"
style="text-align: right; cursor: pointer"
>了解更多</p>
<p @click="jump(item.id)" class="font-16 baseColor" style="text-align: right; cursor: pointer">了解更多</p>
</div>
</div>
<div class="inner">
@ -226,13 +217,44 @@ export default {
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
position: relative;
margin-bottom: 50px;
}
.title {
text-align: center;
position: absolute;
bottom: 0;
width: 100%;
color: rgba(0, 0, 0, 0.85);
font-size: 28px;
}
@media only screen and (max-width: 1900px) {
.title {
font-size: 24px;
}
}
@media only screen and (max-width: 1650px) {
.title {
text-align: center;
font-size: 20px;
}
}
@media only screen and (max-width: 1400px) {
.title {
font-size: 16px;
}
}
.margin-0 {
margin-right: 0 !important;
}
.con-img {
height: 100%;
width: 100%;
border: none;
}
</style>

6
src/config/api.js

@ -112,3 +112,9 @@ export const selProductMes = params => axios.post(`${product}/selProductMes`, pa
// 查询 创业导师
export const selTeacher = () => axios.post(`${tutorRelated}/selTeacher`);
// 入驻企业申请
export const Settled = params => axios.post(`${greenvalley}/place/apply`, params);
// 入驻企业名录查询
export const searchEnt = params => axios.post(`${greenvalley}/place/searchFront`, params);

9
src/plugins/ant-design-vue.js

@ -1,3 +1,10 @@
/*
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-13 17:21:29
* @LastEditors: wally
* @LastEditTime: 2021-01-19 10:29:05
*/
import Vue from 'vue';
import {
Pagination,
@ -31,6 +38,7 @@ import {
Layout,
Breadcrumb,
Tooltip,
Steps,
} from 'ant-design-vue';
import { ConfigProvider } from 'ant-design-vue';
Vue.component(ConfigProvider.name, ConfigProvider);
@ -63,6 +71,7 @@ Vue.use(Avatar);
Vue.use(Layout);
Vue.use(Breadcrumb);
Vue.use(Tooltip);
Vue.use(Steps);
Vue.prototype.$message = message;
Vue.prototype.$notification = notification;

142
src/views/IncubationPlatform/Children/place/EntitySpace.vue

@ -5,7 +5,11 @@
<bread-crumb :arr="arr" />
</div>
<div class="top-box">
<div class="top-title">实体众创空间</div>
<banner :show-page="49" />
<add-model class="add-mol" :value="2" style="height: 32px" />
<settled-model class="set-mol" :type-num="1" />
<!-- <div class="top-title">实体众创空间</div>
<div class="top-content">
山西绿谷生物科技股份有限公司立足功能食品生物医药和大健康产业聚焦创新聚力孵化聚合产业
致力建设集创新链孵化链和产业链为一体产学研协同多学科交叉大中小企业融通
@ -13,7 +17,7 @@
构筑专业化集群化园区化产业发展新模式和新业态公司秉持创新开放协同融合发展理
赋能健康中国筑梦绿色未来为愿景构建创新创业生态发展特色产业集群打造全链条一体化开放
式创新创业高地为使命大力推动建设共融共生共建 共创价值共同体
</div>
</div> -->
</div>
<!-- 孵化场所 -->
<div @click="$router.push('/IncubationPlatform/Incubator')" class="center-box c-box pointer">
@ -50,12 +54,17 @@
</div>
<div class="center-content d-flex flex-column">
<div>发酵工程中试基地位于山西维尔乳制品有限公司基地具有发酵乳制品等生产加工条件可提供微生物发酵实验及相关中试</div>
<div>超高压食品加工中试基地位于太原市小店区正阳街43号的山西力德福科技有限公司基地具有非热杀菌保鲜生产线超高压设备制造生产线及中试车间可提供超高压加工实验及相关中试和产业化服务</div>
<div>干果精深加工中试基地位于吕梁的交城天娇红农业科技有限公司 拥有300余万元的先进分析检测仪器设备及免洗干枣生产车间浓缩枣汁生产车间等生产加工条件可提供相关中试研究</div>
<div>
超高压食品加工中试基地位于太原市小店区正阳街43号的山西力德福科技有限公司基地具有非热杀菌保鲜生产线超高压设备制造生产线及中试车间可提供超高压加工实验及相关中试和产业化服务
</div>
<div>
干果精深加工中试基地位于吕梁的交城天娇红农业科技有限公司
拥有300余万元的先进分析检测仪器设备及免洗干枣生产车间浓缩枣汁生产车间等生产加工条件可提供相关中试研究
</div>
</div>
</div>
<!-- 加入流程 -->
<div class="center-box">
<!-- <div class="center-box">
<div class="center-title">
<div class="circular"></div>
<div style="margin-left: 40px">加入流程</div>
@ -79,9 +88,8 @@
</div>
</div>
</div>
<!-- <a-button class="center-btn" type="primary">申请加入</a-button> -->
<add-model :value="2" class="center-btn" style="height: 32px" />
</div>
</div> -->
<!-- 入驻企业名录 -->
<div class="center-box c-box" style="margin-bottom: 160px">
<div class="center-title">
@ -89,20 +97,14 @@
<div style="margin-left: 40px">入驻企业名录</div>
</div>
<div class="center-content">
<div class="d-flex flex-wrap">
<div
:class="(index + 1) % 3 === 0 ? 'margin-0' : ''"
:key="index"
class="ent-box"
v-for="(item, index) in lists"
>
<p class="ent-index">{{ index + 1 }}</p>
<span class="ent-name" style="margin-left: 50px">{{ item }}</span>
</div>
<div :key="index" class="ent-box" v-for="(item, index) in lists">
<p class="ent-index">{{ index + 1 }}</p>
<span class="ent-name" style="margin-left: 50px">{{ item.company }}</span>
<span class="ent-mainBusiness" style="margin-left: 50px">{{ item.mainBusiness }}</span>
</div>
</div>
<div class="reg-box">
<a-button class style="float: left" type="primary">入驻企业注册</a-button>
<!-- <div class="reg-box">
<settled-model style="float: left" :type-num="1" />
<a-pagination
:current="current"
:page-size="pageSize"
@ -113,7 +115,7 @@
show-quick-jumper
v-show="lists.length > 18"
/>
</div>
</div> -->
</div>
</div>
</template>
@ -122,9 +124,12 @@
import HNav from '../../components/HNav.vue';
import BreadCrumb from 'components/BreadCrumb/BreadCrumb.vue';
import AddModel from './../../components/AddModel.vue';
import SettledModel from 'components/Introduce/SettledModel.vue';
import Banner from 'components/Banner/Banner.vue';
import { searchEnt } from 'config/api';
export default {
name: 'EntitySpace',
components: { HNav, BreadCrumb, AddModel },
components: { HNav, BreadCrumb, AddModel, SettledModel, Banner },
data() {
return {
title: '实体众创空间',
@ -136,34 +141,32 @@ export default {
list: [],
pageSize: 18,
current: 1,
lists: [
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
],
lists: [],
};
},
created() {
this.searchEnt();
},
methods: {
//
onShowSizeChange(current, size) {
this.current = current;
},
async searchEnt() {
try {
const res = await searchEnt();
const { code, msg, data } = res.data;
if (code === 200) {
this.lists = data;
} else {
this.$message.error('查询失败');
}
} catch (error) {
this.$message.error('查询失败');
}
},
},
};
</script>
@ -210,7 +213,7 @@ export default {
}
.ent-box {
width: 26%;
width: 100%;
margin-right: 11%;
position: relative;
height: 56px;
@ -238,12 +241,41 @@ export default {
}
.ent-name {
font-size: 20px;
position: absolute;
left: 0;
width: 30%;
height: 24px;
top: 50%;
margin-top: -12px;
font-size: 22px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: rgba(0, 0, 0, 0.65);
opacity: 1;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.ent-mainBusiness {
position: absolute;
left: 35%;
width: 20%;
height: 24px;
top: 50%;
margin-top: -12px;
font-size: 22px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: rgba(0, 0, 0, 0.65);
opacity: 1;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.reg-box {
@ -271,4 +303,28 @@ export default {
}
}
}
.add-mol {
position: absolute;
bottom: 15%;
left: 20%;
}
.set-mol {
position: absolute;
bottom: 15%;
left: 28%;
}
@media only screen and (max-width: 1500px) {
.set-mol {
left: 30%;
}
}
@media only screen and (max-width: 950px) {
.set-mol {
left: 35%;
}
}
</style>

147
src/views/IncubationPlatform/Children/place/VirtualSpace.vue

@ -5,12 +5,11 @@
<bread-crumb :arr="arr" />
</div>
<div class="top-box">
<div class="top-title">虚拟众创空间</div>
<div
class="top-content"
>虚拟众创空间主要面向非入驻实体空间从事功能食品生物医药和大健康产业相关研发服务和生产的企业虚拟众创空间依托绿谷数字化平台进行建设入驻企业可享受实体众创空间的各种创新创业服务参加相关创新创业活动</div>
<banner :show-page="48" />
<add-model :value="3" class="add-mol" style="height: 32px" />
<settled-model class="set-mol" :type-num="0" />
</div>
<div class="center-box">
<!-- <div class="center-box">
<div class="center-title">
<div class="circular"></div>
<div style="margin-left: 40px">加入流程</div>
@ -34,40 +33,20 @@
</div>
</div>
</div>
<!-- <a-button class="center-btn" type="primary">申请加入</a-button> -->
<add-model :value="3" class="center-btn" style="height: 32px" />
</div>
</div> -->
<div class="center-box c-box" style="margin-bottom: 160px">
<div class="center-title">
<div class="circular"></div>
<div style="margin-left: 40px">入驻企业名录</div>
</div>
<div class="center-content">
<div class="d-flex flex-wrap">
<div
:class="(index + 1) % 3 === 0 ? 'margin-0' : ''"
:key="index"
class="ent-box"
v-for="(item, index) in lists"
>
<p class="ent-index">{{ index + 1 }}</p>
<span class="ent-name" style="margin-left: 50px">{{ item }}</span>
</div>
<div :key="index" class="ent-box" v-for="(item, index) in lists">
<p class="ent-index">{{ index + 1 }}</p>
<span class="ent-name" style="margin-left: 50px">{{ item.company }}</span>
<span class="ent-mainBusiness" style="margin-left: 50px">{{ item.mainBusiness }}</span>
</div>
</div>
<div class="reg-box">
<a-button class style="float: left" type="primary">入驻企业注册</a-button>
<a-pagination
:current="current"
:page-size="pageSize"
:total="lists.length"
@change="onShowSizeChange"
class="pagination"
show-less-items
show-quick-jumper
v-show="lists.length > 18"
/>
</div>
</div>
</div>
</template>
@ -76,9 +55,13 @@
import HNav from '../../components/HNav.vue';
import BreadCrumb from 'components/BreadCrumb/BreadCrumb.vue';
import AddModel from './../../components/AddModel.vue';
import SettledModel from 'components/Introduce/SettledModel.vue';
import Banner from 'components/Banner/Banner.vue';
import { searchEnt } from 'config/api';
export default {
name: 'VirtualSpace',
components: { HNav, BreadCrumb, AddModel },
components: { HNav, BreadCrumb, AddModel, SettledModel, Banner },
data() {
return {
title: '虚拟众创空间',
@ -90,34 +73,32 @@ export default {
list: [],
pageSize: 18,
current: 1,
lists: [
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
'XX企业',
],
lists: [],
};
},
created() {
this.searchEnt();
},
methods: {
//
onShowSizeChange(current, size) {
this.current = current;
},
async searchEnt() {
try {
const res = await searchEnt();
const { code, msg, data } = res.data;
if (code === 200) {
this.lists = data;
} else {
this.$message.error('查询失败');
}
} catch (error) {
this.$message.error('查询失败');
}
},
},
};
</script>
@ -164,7 +145,7 @@ export default {
}
.ent-box {
width: 26%;
width: 100%;
margin-right: 11%;
position: relative;
height: 56px;
@ -200,6 +181,44 @@ export default {
opacity: 1;
}
.ent-name {
position: absolute;
left: 0;
width: 30%;
height: 24px;
top: 50%;
margin-top: -12px;
font-size: 22px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: rgba(0, 0, 0, 0.65);
opacity: 1;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.ent-mainBusiness {
position: absolute;
left: 35%;
width: 20%;
height: 24px;
top: 50%;
margin-top: -12px;
font-size: 22px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: rgba(0, 0, 0, 0.65);
opacity: 1;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.reg-box {
position: absolute;
left: 26.2%;
@ -225,4 +244,28 @@ export default {
}
}
}
.add-mol {
position: absolute;
bottom: 15%;
left: 20%;
}
.set-mol {
position: absolute;
bottom: 15%;
left: 28%;
}
@media only screen and (max-width: 1500px) {
.set-mol {
left: 30%;
}
}
@media only screen and (max-width: 950px) {
.set-mol {
left: 35%;
}
}
</style>

98
src/views/IncubationPlatform/components/AddModel.vue

@ -7,101 +7,42 @@
v-if="value === 1"
/>
<a-button @click="showModal" style="height: 100%; width: 100%" type="primary" v-else>{{ str }}</a-button>
<a-modal
:confirm-loading="confirmLoading"
:title="title"
:visible="visible"
@cancel="handleCancel"
@ok="handleOk"
width="50%"
>
<p style="text-align: center" v-show="value !== 1">
<a-radio-group style="margin-bottom: 20px !important" v-model="value">
<a-modal :confirm-loading="confirmLoading" :title="title" :visible="visible" @cancel="handleCancel" @ok="handleOk" width="50%">
<p style="text-align: center" v-show="value === 1">
<a-radio-group style="margin-bottom: 20px !important" v-model="platform.val">
<a-radio :value="2" style="margin-right: 100px">实体空间</a-radio>
<a-radio :value="3">虚拟空间</a-radio>
</a-radio-group>
</p>
<a-form :form="form">
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="公司名称"
>
<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-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 :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 :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"
/>
<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
>
<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>
<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="合作信息简述"
required
>
<a-textarea
placeholder="请输入合作信息简述..."
style="height: 120px"
v-model.trim="platform.describe"
/>
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="合作信息简述" required>
<a-textarea placeholder="请输入合作信息简述..." style="height: 120px" v-model.trim="platform.describe" />
</a-form-item>
</a-form>
</a-modal>
@ -132,7 +73,7 @@ export default {
form: this.$form.createForm(this, { name: 'submit' }),
visible: false,
title: '申请加入',
str: '申请加入',
str: '加入我们',
formItemLayout,
formTailLayout,
confirmLoading: false,
@ -142,6 +83,7 @@ export default {
tel: '', //
describe: '', //
code: '', //
val: 0,
isTel: false,
},
codeRules: [
@ -199,6 +141,8 @@ export default {
this.$message.error('请输入验证码');
} else if (!this.platform.describe) {
this.$message.error('请输入项目信息简述');
} else if (!this.platform.val) {
this.$message.error('请选择孵化器');
} else {
if (this.platform.isTel) {
this.subMitAdd();
@ -218,7 +162,7 @@ export default {
contactName: this.platform.manName,
contactPhone: this.platform.tel,
description: this.platform.describe,
type: this.value,
type: this.platform.val,
},
};
const res = await JoinPlatform(params);

15
src/views/NewPlatform/Children/Core.vue

@ -5,7 +5,10 @@
<bread-crumb :arr="arr" />
</div>
<div class="top-box">
<div class="top-title">协同创新中心</div>
<div class="top-title">
协同创新中心
<new-model />
</div>
<div class="top-content">
<!-- <div class="white pa-5 my-5"> -->
<core-organ :title="title" />
@ -27,9 +30,9 @@
<div style="margin-left: 40px">中心架构</div>
</div>
<div class="bottom-content">
<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>
@ -42,7 +45,7 @@
<de-ent />
</div>
</div>-->
<div class="join-box">
<!-- <div class="join-box">
<div class="join-title">
<div class="circular"></div>
<div style="margin-left: 40px">申请加入</div>
@ -53,7 +56,7 @@
<new-model />
</div>
</div>
</div>
</div> -->
</div>
</template>

61
src/views/NewPlatform/Children/Platform.vue

@ -1,3 +1,10 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-01-13 17:21:29
* @LastEditors: wally
* @LastEditTime: 2021-01-19 11:16:22
-->
<template>
<div style="padding-bottom: 50px">
<banner :show-page="showPage" />
@ -5,14 +12,12 @@
<div class="inner">
<bread-crumb :arr="arr" />
</div>
<div class="content-box">
<div
:key="index"
@click="jump(item.url)"
style="margin-top: 50px; cursor: pointer"
v-for="(item, index) in list"
>
<div class="d-flex justify-space-between" v-if="index % 2 === 0">
<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 class="d-flex justify-space-between" v-if="index % 2 === 0">
<div class="introduce-box">
<p class="introduce-title">{{ item.title }}</p>
<p class="introduce-content">{{ item.content }}</p>
@ -25,7 +30,7 @@
<p class="introduce-title">{{ item.title }}</p>
<p class="introduce-content">{{ item.content }}</p>
</div>
</div>
</div> -->
</div>
</div>
</div>
@ -82,4 +87,42 @@ export default {
.inner {
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: 1rem;
}
}
.con-con {
background: white;
box-shadow: 0 0 6px #ccc;
height: 26%;
display: flex;
justify-content: center;
align-items: center;
}
</style>

17937
yarn.lock

File diff suppressed because it is too large
Loading…
Cancel
Save