Browse Source

更新内容

master
lucky 5 years ago
parent
commit
d57288c100
  1. BIN
      src/assets/banner.png
  2. BIN
      src/assets/banner01.png
  3. BIN
      src/assets/banner02.png
  4. BIN
      src/assets/image.png
  5. BIN
      src/assets/join-space.png
  6. 5
      src/common/portrait.styl
  7. 60
      src/components/HeadNav/HeadNav.vue
  8. 2
      src/components/Rotation/Rotation.vue
  9. 2
      src/store/modules/home/state.js
  10. 6
      src/views/Activity/ActDetails.vue
  11. 19
      src/views/Activity/Activity.vue
  12. 316
      src/views/Activity/components/Enroll.vue
  13. 10
      src/views/FirstPage/FirstPage.vue
  14. 5
      src/views/IncubationPlatform/Children/Incubator.vue
  15. 4
      src/views/IncubationPlatform/Children/MakerSpace.vue
  16. 2
      src/views/IncubationPlatform/Children/Services.vue
  17. 9
      src/views/IncubationPlatform/components/AddModel.vue
  18. 2
      src/views/Industry/Children/Serve.vue
  19. 2
      src/views/Industry/Children/Union.vue
  20. 41
      src/views/NewPlatform/Children/AchDet.vue
  21. 2
      src/views/NewPlatform/Children/Platform.vue
  22. 2
      src/views/NewPlatform/Children/Service.vue
  23. 17
      src/views/NewPlatform/Children/ShareChild/InsDet.vue
  24. 9
      src/views/Policy/components/PolicyList.vue

BIN
src/assets/banner.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 KiB

BIN
src/assets/banner01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

BIN
src/assets/banner02.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

BIN
src/assets/image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
src/assets/join-space.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

5
src/common/portrait.styl

@ -69,6 +69,11 @@
padding-right: 24px;
}
.px-10{
padding-left: 40px;
padding-right: 40px;
}
.py-1{
padding-top: 4px;
padding-bottom: 4px;

60
src/components/HeadNav/HeadNav.vue

@ -1,7 +1,7 @@
<template>
<div class="head">
<div class="white d-flex flex-row flex-nowrap px-10 align-center">
<img @click="jumUrl('/')" alt class="logo-img" src="@/assets/logo.png" style="cursor: pointer" />
<div class="li-box">
<div class="flex-1 ml-8">
<a-dropdown
:disabled="item.children.length > 0 ? false : true"
:key="a"
@ -24,22 +24,23 @@
</a-menu>
</a-dropdown>
</div>
<a-icon class="icon-head" style="right: 150px" type="search" />
<div class="d-flex flex-nowrap align-center">
<a-icon class="icon-head pointer icon-head-right" type="search" />
<a-tooltip placement="bottom">
<template slot="title">
<span>点击查看购物车</span>
</template>
<a-icon
@click="$router.push('/Cart')"
class="icon-head baseColor"
style="right: 100px"
class="baseColor icon-head icon-head-right pointer"
type="shopping-cart"
/>
</a-tooltip>
<router-link tag="span" to="/login">
<a-icon class="icon-head" style="right: 50px" type="user" />
<a-icon class="icon-head pointer" style="right: 50px" type="user" />
</router-link>
</div>
</div>
</template>
<script>
@ -202,32 +203,43 @@ export default {
height: 80px;
width: 100%;
background: white;
position: relative;
}
.icon-head {
font-size: 24px;
position: absolute;
top: 28px;
cursor: pointer;
}
.li-box {
line-height: 80px;
position: absolute;
height: 80px;
top: 0;
left: 250px;
// position: relative;
}
.list-down {
margin-right: 20px;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
}
.logo-img {
height: 50px;
margin-top: 15px;
margin-left: 48px;
}
.icon-head {
font-size: 24px;
}
.icon-head-right {
margin-right: 32px;
}
@media only screen and (max-width: 1400px) {
.list-down {
margin-right: 18px;
font-size: 14px;
}
.logo-img {
height: 44px;
}
.icon-head {
font-size: 24px;
}
.icon-head-right {
margin-right: 24px;
}
}
</style>

2
src/components/Rotation/Rotation.vue

@ -14,7 +14,7 @@ import { queryRotation } from 'config/api';
export default {
data() {
return {
time: 3000,
time: 10000,
lists: [],
};
},

2
src/store/modules/home/state.js

@ -33,7 +33,7 @@ const state = {
},
achCurrent: 1, // 知识产权与技术转移转化服务平台-成果列表页数
achId: 0, // 知识产权与技术转移转化服务平台-成果详情页Id
listState: 0, // 科技资源开放共享服务平台-列表展示数据(0:实验室,1:仪器//默认0, 2:研究院,3:产品)
listState: 0, // 科技资源开放共享服务平台-列表展示数据(0:成果,1:仪器//默认0, 2:研究院,3:产品)
shareCurrent: 1, // 科技资源开放共享服务平台-列表当前处于第几页
labList: [], // 科技资源开放共享服务平台-实验室所选类型
LabIpt: {

6
src/views/Activity/ActDetails.vue

@ -19,7 +19,11 @@
</span>
</div>
<div class="policy-content" v-dompurify-html="actDetail.content"></div>
<enroll :fnval="actDetail.activityId" style="margin: 50px 25px" />
<enroll
:activityId="actDetail.activityId"
:actName="actDetail.title"
style="margin: 50px 25px"
/>
</div>
</div>
</template>

19
src/views/Activity/Activity.vue

@ -37,8 +37,11 @@
<span class="source">地点{{ item.address }}</span>
</p>
<p class="original">
<enroll :fnval="item.activityId" v-if="item.closeTime < nowData" />
<a-button disabled v-else>报名已结束</a-button>
<a-button
disabled
v-if="item.closeTime && Date.parse(item.closeTime) < Date.parse(nowData)"
>报名已结束</a-button>
<enroll :fnval="item.activityId" v-else />
</p>
</div>
</div>
@ -172,6 +175,18 @@ export default {
this.setActDetail(item);
this.$router.push('/ActDetails');
},
//
formatDate() {
var date = new Date('2020-04-07 18:08:58');
//
var time1 = date.getTime();
var time2 = date.valueOf();
var time3 = Date.parse(date);
console.log(time1); //1586254138000
console.log(time2); //1586254138000
console.log(time3); //1586254138000
},
},
};
</script>

316
src/views/Activity/components/Enroll.vue

@ -1,26 +1,332 @@
<template>
<div>
<a-button type="primary" @click="showModal">立即报名</a-button>
<a-button @click="showModal" type="primary">立即报名</a-button>
<a-modal
:confirm-loading="confirmLoading"
:title="title"
:visible="visible"
@cancel="handleCancel"
@ok="handleOk"
width="50%"
>
<a-form :form="form">
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="活动名称"
>
<a-input :value="actName" disabled />
</a-form-item>
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="申请单位"
required
>
<a-input placeholder="请输入申请单位..." v-model.trim="platform.companyName" />
</a-form-item>
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
class="mb-3"
label="参加人员"
required
>
<div :key="index" class="d-flex flex-nowrap mb-3" v-for="(item,index) in people">
<a-input
@change="changePerson($event,'name',index)"
class="flex-1 mr-3"
placeholder="姓名"
v-model.trim="item.name"
/>
<a-input
@change="changePerson($event,'duties',index)"
class="flex-1 mr-3"
placeholder="职称"
v-model.trim="item.duties"
/>
<a-input
@change="changePerson($event,'positional',index)"
class="flex-1"
placeholder="职务"
v-model.trim="item.positional"
/>
</div>
</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>
</a-modal>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex';
import { apply } from 'config/api';
const formItemLayout = {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
};
const formTailLayout = {
labelCol: { span: 6 },
wrapperCol: { span: 18, offset: 6 },
};
export default {
name: 'Enroll',
props: {
fnval: {
activityId: {
type: Number,
default: 0,
},
actName: {
type: String,
default: '',
},
},
data() {
return {};
return {
form: this.$form.createForm(this, { name: 'submit' }),
visible: false,
title: '活动报名',
formItemLayout,
formTailLayout,
confirmLoading: false,
//
people: [
{
name: '',
duties: '',
positional: '',
},
],
platform: {
companyName: '', //
manName: '', //
tel: '', //
code: '', //
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: '请输入正确的手机号' },
],
};
},
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']),
changePerson(e, type, index) {
if (this.people[index].name && this.people[index].positional && this.people[index].duties) {
const a = { name: '', positional: '', duties: '' };
this.people.push(a);
}
},
//
showModal() {
console.log(this.fnval);
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.companyName) {
this.$message.error('请输入申请单位');
} else if (!this.people[0].name || !this.people[0].positional || !this.people[0].duties) {
this.$message.error('请至少输入一名参加人员');
} else if (!this.platform.tel) {
this.$message.error('请输入联系电话');
} else if (!this.platform.code) {
this.$message.error('请输入验证码');
} else {
if (this.platform.isTel) {
this.subMitAdd();
} else {
this.$message.error('请输入正确的联系电话');
}
}
},
//
async subMitAdd() {
this.confirmLoading = true;
try {
const { activityId, platform, people } = this;
people.forEach(item => {
item.activityId = activityId;
});
const params = {
param: {
activityId,
code: platform.code,
companyName: platform.companyName,
contactName: platform.manName,
contactPhone: platform.tel,
peoples: people,
},
};
console.log('params: ', params);
const res = await apply(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.$message.success('申请成功');
this.visible = false;
this.confirmLoading = false;
for (let key in this.platform) {
this.platform[key] = '';
}
this.platform.isTel = false;
} else {
throw msg;
this.confirmLoading = false;
}
} catch (error) {
this.$message.error(error);
this.confirmLoading = false;
}
},
//
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();
},
},
};
</script>
<style lang="stylus" scoped></style>
<style lang="stylus" scoped>
.must-color {
color: red;
}
.code_img {
height: 32px;
width: 120px;
}
</style>

10
src/views/FirstPage/FirstPage.vue

@ -89,16 +89,10 @@ export default {
},
{
id: '07',
firstName: '知识培训服务平台',
secondName: '',
firstName: '知识培训与科技人才',
secondName: '服务平台',
url: '/NewPlatform/NewService',
},
{
id: '08',
firstName: '知识培训服务平台',
secondName: '',
url: '/Knowledge',
},
],
lists: [
{

5
src/views/IncubationPlatform/Children/Incubator.vue

@ -5,7 +5,10 @@
<div class="inner">
<bread-crumb :arr="arr" />
<div class="white pa-5 my-5">
<rich-text :title="title" />
<!-- <rich-text :title="title" /> -->
<div class="words-content">
<img src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/fhcs.png" />
</div>
</div>
</div>
</div>

4
src/views/IncubationPlatform/Children/MakerSpace.vue

@ -1,6 +1,8 @@
<template>
<div>
<banner :show-page="showPage" @click="openModel()" class="pointer" />
<div @click="openModel()">
<banner :show-page="showPage" class="pointer" />
</div>
<h-nav />
<div class="inner">
<bread-crumb :arr="arr" />

2
src/views/IncubationPlatform/Children/Services.vue

@ -8,7 +8,7 @@
<div class="flow-path">
<div class="flow-title">服务流程</div>
<div class="flow-content">
<img src="~assets/image.jpeg" style="width:100%" />
<img src="~assets/image.png" style="width:100%" />
</div>
</div>
<div class="inner d-flex flex-wrap">

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

@ -1,6 +1,12 @@
<template>
<div>
<img @click="showModal" class="fill-width fill-height pointer" src="~assets/join-space.png" />
<img
@click="showModal"
class="fill-width fill-height pointer"
src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/logo/join-space.png"
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"
@ -126,6 +132,7 @@ export default {
form: this.$form.createForm(this, { name: 'submit' }),
visible: false,
title: '申请加入',
str: '申请加入',
formItemLayout,
formTailLayout,
confirmLoading: false,

2
src/views/Industry/Children/Serve.vue

@ -8,7 +8,7 @@
<div class="flow-path">
<div class="flow-title">服务流程</div>
<div class="flow-content">
<img src="~assets/image.jpeg" style="width:100%" />
<img src="~assets/image.png" style="width:100%" />
</div>
</div>
<div class="inner d-flex flex-wrap" style="margin: 60px auto">

2
src/views/Industry/Children/Union.vue

@ -5,7 +5,7 @@
<bread-crumb :arr="arr" />
</div>
<div class="top-box">
<div class="top-title">创新挑战</div>
<div class="top-title">产业创新联盟</div>
<div class="top-content">
山西绿谷生物科技股份有限公司立足功能食品生物医药和大健康产业聚焦创新聚力孵化聚合产业
致力建设集创新链孵化链和产业链为一体产学研协同多学科交叉大中小企业融通

41
src/views/NewPlatform/Children/AchDet.vue

@ -1,11 +1,11 @@
<template>
<div class="inner equ-box">
<div class="equ-info d-flex">
<img :src="obj.img" />
<div class="equ-info-box">
<img :src="obj.visitLocation" />
<div class="equ-info-box mb-5">
<p class="equ-name">{{ obj.name }}</p>
<div class="d-flex flex-wrap">
<div style="width: 200px" class="equ-info-left">
<div class="equ-info-left" style="width: 200px">
<p>成果名字</p>
<p>学科分类</p>
<p>联系人</p>
@ -16,16 +16,38 @@
</div>
<div style="width: 500px">
<p>{{ obj.name }}</p>
<p>{{ obj.classification }}</p>
<p>{{ obj.classification === 0 ? '中医药学' : '' }}</p>
<p>
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsName }}</span>
<span :key="index" v-for="(item, index) in obj.selPeoList">{{ item.contactsName }}</span>
</p>
<p>
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsPhone }}</span>
<span :key="index" v-for="(item, index) in obj.selPeoList">{{ item.contactsPhone }}</span>
</p>
<p>
{{ obj.layout === 0 ? '产权转让' :
obj.layout === 1 ? '资金入股' :
obj.layout === 2 ? '技术入股' :
obj.layout === 3 ? '合作开发' :
obj.layout === 0 ? '技术服务' : '其他'}}
</p>
<p>
{{ obj.performance === 0 ? '国际标准' :
obj.performance === 1 ? '国家标准' :
obj.performance === 2 ? '行业标准' :
obj.performance === 3 ? '地方标准' :
obj.performance === 4 ? '企业标准' :
obj.performance === 5 ? '新技术' :
obj.performance === 6 ? '新工艺' :
obj.performance === 7 ? '新产品' :
obj.performance === 8 ? '新材料' :
obj.performance === 9 ? '新装备' :
obj.performance === 10 ? '农业、生物新品种' :
obj.performance === 11 ? '矿产新品种' : '其他应用技术'}}
</p>
<p>
{{ obj.stage === 0 ? '初期阶段' :
obj.stage === 1 ? '中期阶段' : '成熟应用阶段' }}
</p>
<p>{{ obj.layout }}</p>
<p>{{ obj.performance }}</p>
<p>{{ obj.stage }}</p>
</div>
</div>
<div class="equ-btn">
@ -90,7 +112,6 @@ export default {
}
.equ-info {
height: 300px;
border-bottom: 1px solid rgba(0, 0, 0, 0.14901960784313725);
position: relative;

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

@ -62,7 +62,7 @@ export default {
url: '/NewPlatform/Transfer',
},
{
title: '创新服务',
title: '知识培训与科技人才服务平台',
content: '技术培训、管理培训、知识讲座',
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/f5fb570cfd7547279138a591818325e0.jpg',
url: '/NewPlatform/Develop',

2
src/views/NewPlatform/Children/Service.vue

@ -8,7 +8,7 @@
<div class="flow-path">
<div class="flow-title">服务流程</div>
<div class="flow-content">
<img src="~assets/image.jpeg" style="width:100%" />
<img src="~assets/image.png" style="width:100%" />
</div>
</div>
<div class="inner d-flex flex-wrap" style="margin: 60px auto">

17
src/views/NewPlatform/Children/ShareChild/InsDet.vue

@ -22,10 +22,16 @@
<p>{{ obj.specifications }}</p>
<p>{{ obj.performance }}</p>
<p>
<span :key="index" v-for="(item, index) in obj.selPeoList">{{ item.contactsName }}</span>
<span :key="index" v-for="(item, index) in obj.selPeoList">
{{ item.contactsName }}
<span v-if="index !== obj.selPeoList.length-1"></span>
</span>
</p>
<p>
<span :key="index" v-for="(item, index) in obj.selPeoList">{{ item.contactsPhone }}</span>
<span :key="index" v-for="(item, index) in obj.selPeoList">
{{ item.contactsPhone }}
<span v-if="index !== obj.selPeoList.length-1"></span>
</span>
</p>
</div>
</div>
@ -39,7 +45,10 @@
<p>{{ obj.companyname }}</p>
<p>{{ obj.identifier }}</p>
<p>
<span :key="index" v-for="(item, index) in obj.selPeoList">{{ item.contactsName }}</span>
<span :key="index" v-for="(item, index) in obj.selPeoList">
{{ item.contactsName }}
<span v-if="index !== obj.selPeoList.length-1"></span>
</span>
</p>
</div>
</div>
@ -165,6 +174,7 @@ export default {
opacity: 1;
p {
height: 24px;
margin-bottom: 6px;
}
}
@ -177,6 +187,7 @@ export default {
opacity: 1;
p {
height: 24px;
margin-bottom: 6px;
}
}

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

@ -9,9 +9,10 @@
<div class="search-list">
<!-- <search-list @iptCon="getInput" /> -->
<span>
<a-checkbox :checked="pStatus.bw - 0 === 1" @click="changeStatus('bw')">部委</a-checkbox>
<a-checkbox :checked="pStatus.sx - 0 === 1" @click="changeStatus('sx')">山西</a-checkbox>
<a-checkbox :checked="pStatus.zg - 0 === 1" @click="changeStatus('zg')">山西转型综改示范区</a-checkbox>
<a-checkbox :checked="pStatus.bw - 0 === 1" @click="changeStatus('bw')">国家</a-checkbox>
<a-checkbox :checked="pStatus.sx - 0 === 1" @click="changeStatus('sx')">山西省</a-checkbox>
<a-checkbox :checked="pStatus.zg - 0 === 1" @click="changeStatus('zg')">山西省综改区</a-checkbox>
<a-checkbox :checked="pStatus.ty - 0 === 1" @click="changeStatus('ty')">太原市</a-checkbox>
</span>
<a-input-group class="search" compact>
<a-select
@ -86,6 +87,7 @@ export default {
bw: 0,
sx: 0,
zg: 0,
ty: 0,
value: 1, // value
code: 'title', // code
policyText: ['标题', '地区', '发布部门'], //
@ -120,6 +122,7 @@ export default {
pageSize: 5,
sx: this.policyStatus.sx,
zg: this.policyStatus.zg,
ty: this.policyStatus.ty,
},
};
const res = await selLikePolicy(params);

Loading…
Cancel
Save