Browse Source

样式修改

master
aBin 5 years ago
parent
commit
c26c7f5bbd
  1. 1
      src/common/platform.styl
  2. 1
      src/components/PlatformList/PlatformList.vue
  3. 4
      src/views/About/Children/Organ.vue
  4. 10
      src/views/IncubationPlatform/Children/place/EntitySpace.vue
  5. 60
      src/views/NewPlatform/Children/Core.vue
  6. 215
      src/views/NewPlatform/Children/Service.vue
  7. 6
      src/views/NewPlatform/Children/ShareChild/Institute.vue

1
src/common/platform.styl

@ -91,6 +91,7 @@
color: #000; color: #000;
} }
.bottom-content { .bottom-content {
position: relative;
float: right; float: right;
margin: 100px 0; margin: 100px 0;
width: 79%; width: 79%;

1
src/components/PlatformList/PlatformList.vue

@ -190,6 +190,7 @@ export default {
params: { params: {
id: item.id, id: item.id,
direction: item.direction, direction: item.direction,
name: item.name,
}, },
}); });
} else if (this.listState === 1) { } else if (this.listState === 1) {

4
src/views/About/Children/Organ.vue

@ -36,9 +36,7 @@ export default {
//[] //[]
name: '绿谷公司', name: '绿谷公司',
children: [ children: [
{ { name: '行政事业部' },
name: '行政事业部',
},
{ {
name: '创新事业部', name: '创新事业部',
children: [ children: [

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

@ -46,7 +46,7 @@
食品检测食用菌肠道微生物等方面的科学实验检验检测小试中试等技术服务与科研成果转化 食品检测食用菌肠道微生物等方面的科学实验检验检测小试中试等技术服务与科研成果转化
</div> </div>
<div class="center-img"> <div class="center-img">
<img src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210120/158ee9ec4e7d410f9e598a90b4d35268.png" /> <img src="https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210120/eb472126971a47438a3227df967ed2cb.png" />
</div> </div>
</div> </div>
<!-- 中试基地 --> <!-- 中试基地 -->
@ -260,14 +260,11 @@ export default {
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
opacity: 1; opacity: 1;
overflow: hidden; overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
} }
.ent-mainBusiness { .ent-mainBusiness {
position: absolute; position: absolute;
left: 35%; left: 60%;
width: 20%; width: 20%;
height: 24px; height: 24px;
top: 50%; top: 50%;
@ -279,9 +276,6 @@ export default {
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
opacity: 1; opacity: 1;
overflow: hidden; overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
} }
.reg-box { .reg-box {

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

@ -31,6 +31,9 @@
</div> </div>
<div class="bottom-content"> <div class="bottom-content">
<div :style="{ height: '500px' }" id="treeChart"></div> <div :style="{ height: '500px' }" id="treeChart"></div>
<div class="absolute-box" style="top: 2.5%" v-if="showDiv">科技资源共享服务平台</div>
<div class="absolute-box" style="top: 35%" v-if="showDiv">知识产权与技术转移转化服务平台</div>
<div class="absolute-box" style="top: 67.5%" v-if="showDiv">知识培训服务平台</div>
</div> </div>
</div> </div>
<!-- <div class="partner-box"> <!-- <div class="partner-box">
@ -79,6 +82,7 @@ export default {
{ name: '创新平台', url: '/NewPlatform/NewCore' }, { name: '创新平台', url: '/NewPlatform/NewCore' },
{ name: '协同创新中心', url: '' }, { name: '协同创新中心', url: '' },
], ],
showDiv: true,
list: [], list: [],
treedata: [ treedata: [
{ {
@ -87,6 +91,7 @@ export default {
children: [ children: [
{ {
name: '功能食品协同创新平台', name: '功能食品协同创新平台',
collapsed: false,
children: [ children: [
{ name: '功能食品资源开发' }, { name: '功能食品资源开发' },
{ name: '营养健康功能因子分再鉴定及作用机制探究' }, { name: '营养健康功能因子分再鉴定及作用机制探究' },
@ -96,24 +101,24 @@ export default {
}, },
{ {
name: '现代医药协同创新平台', name: '现代医药协同创新平台',
collapsed: false,
children: [ children: [
{ name: '中医药与天然药物资源开发利用' }, { name: '中医药与天然药物资源开发利用' },
{ name: '医药生物技术' }, { name: '医药生物先进技术' },
{ name: '新药研发' }, { name: '新药研发' },
{ name: '药理药效研究与安全评价' }, { name: '药理药效研究与安全评价' },
], ],
}, },
{ {
name: '生物医学工程协同创新平台', name: '生物医学工程协同创新平台',
collapsed: false,
children: [{ name: '生物信息技术' }, { name: '生物医学工程研发' }, { name: '生物力学和生物材料' }], children: [{ name: '生物信息技术' }, { name: '生物医学工程研发' }, { name: '生物力学和生物材料' }],
}, },
{ {
name: '数字健康开发协同创新平台', name: '数字健康开发协同创新平台',
children: [{ name: '健康医疗大数据挖掘与分析' }, { name: '基于纳米传感器的医疗健康' }, { name: '传染病预测预鉴数字技术' }], collapsed: false,
children: [{ name: '生物医学成像与图像处理' }, { name: '传染病预测预警数字技术' }],
}, },
{ name: '科技资源共享服务平台' },
{ name: '知识产权与技术转移转化服务平台' },
{ name: '创新服务' },
], ],
}, },
], ],
@ -126,6 +131,8 @@ export default {
showChart() { showChart() {
// domecharts // domecharts
var myChart = this.$echarts.init(document.getElementById('treeChart')); var myChart = this.$echarts.init(document.getElementById('treeChart'));
//
myChart.on('click', this.clickFun);
// //
var option = { var option = {
tooltip: { tooltip: {
@ -160,6 +167,25 @@ export default {
// 使 // 使
myChart.setOption(option); myChart.setOption(option);
}, },
clickFun(param) {
if (typeof param.seriesIndex == 'undefined') {
return;
}
if (param.type == 'click') {
// console.log(param);
for (let i = 0; i < this.treedata[0].children.length; i++) {
if (param.data.name === this.treedata[0].children[i].name) {
this.treedata[0].children[i].collapsed = !this.treedata[0].children[i].collapsed;
if (this.treedata[0].children[i].collapsed) {
this.showDiv = false;
return;
} else {
this.showDiv = true;
}
}
}
}
},
}, },
}; };
</script> </script>
@ -168,4 +194,26 @@ export default {
.inner { .inner {
margin: 10px auto 15px; margin: 10px auto 15px;
} }
.absolute-box {
position: absolute;
right: 0;
height: 30%;
// border: 1px solid #ccc;
border-radius: 10px;
box-shadow: 0 0 6px rgba(19, 172, 196, 0.6);
width: 70px;
padding: 4px;
align-items: center;
text-align: center;
font-size: 14px;
display: flex;
justify-content: center;
}
@media only screen and (max-width: 1400px) {
.absolute-box {
right: -70px;
}
}
</style> </style>

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

@ -8,35 +8,80 @@
<div class="flow-path"> <div class="flow-path">
<div class="flow-title">服务流程</div> <div class="flow-title">服务流程</div>
<div class="flow-content"> <div class="flow-content">
<img src="~assets/image.png" style="width:100%" /> <img src="~assets/image.png" style="width: 100%" />
</div> </div>
</div> </div>
<div class="inner d-flex flex-wrap" style="margin: 60px auto"> <div class="inner d-flex flex-wrap" style="margin: 60px auto">
<div <div :class="(index + 1) % 4 === 0 ? 'margin-0' : ''" :key="index" class="item-box mb-8" v-for="(item, index) in list">
: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%; border: 1px solid #ccc" /> <img :src="item.picUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p class="font-24 my-4">{{ item.name }}</p> <p class="font-24 my-4">
<span @click="showModal(item.id)" style="cursor: pointer">{{ item.name }}</span>
</p>
<p class="font-16 my-4 textColor line-height-30 item-content">{{ item.intro }}</p> <p class="font-16 my-4 textColor line-height-30 item-content">{{ item.intro }}</p>
<p <!-- <p
@click="jump(item.id)" @click="jump(item.id)"
class="font-16 baseColor" class="font-16 baseColor"
style="text-align: right; cursor: pointer" style="text-align: right; cursor: pointer"
>了解更多</p> >了解更多</p> -->
</div> </div>
</div> </div>
<a-modal :confirm-loading="confirmLoading" 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 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="项目信息简述" required>
<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="上传附件">
<a-upload :action="action" :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> </div>
</template> </template>
<script> <script>
import { mapMutations } from 'vuex'; import { mapMutations, mapState, mapActions } from 'vuex';
import { selService } from 'config/api'; import { selService, serviceApply, upload } from 'config/api';
import Banner from 'components/Banner/Banner.vue'; import Banner from 'components/Banner/Banner.vue';
import HNav from './../components/HNav.vue'; import HNav from './../components/HNav.vue';
import BreadCrumb from 'components/BreadCrumb/BreadCrumb.vue'; import BreadCrumb from 'components/BreadCrumb/BreadCrumb.vue';
const formItemLayout = {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
};
const formTailLayout = {
labelCol: { span: 6 },
wrapperCol: { span: 18, offset: 6 },
};
export default { export default {
name: 'Service', name: 'Service',
components: { HNav, Banner, BreadCrumb }, components: { HNav, Banner, BreadCrumb },
@ -54,13 +99,46 @@ export default {
current: 1, current: 1,
pageSize: 8, pageSize: 8,
total: 0, 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: '请输入正确的手机号' },
],
typeData: {
type: 0,
Id: '',
},
}; };
}, },
computed: mapState('user', ['picCode']),
created() { created() {
this.getService(); this.getService();
}, },
methods: { methods: {
...mapMutations('home', ['setServiceArr']), ...mapMutations('home', ['setServiceArr', 'getUserSer']),
...mapActions('user', ['sendCode', 'sendPicCode']),
// //
async getService() { async getService() {
try { try {
@ -84,6 +162,117 @@ export default {
params: { id }, params: { id },
}); });
}, },
//
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.describe) {
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();
},
fileChange(info) {
this.fileList = info.fileList;
},
}, },
}; };
</script> </script>

6
src/views/NewPlatform/Children/ShareChild/Institute.vue

@ -6,7 +6,7 @@
</div> </div>
<banner :show-page="showPage" /> <banner :show-page="showPage" />
<div class="inner ins-box"> <div class="inner ins-box">
<p class="font-bold-24 item-title">研究院介绍</p> <p class="font-bold-24 item-title">{{ shareName }}</p>
<div>{{ direction }}</div> <div>{{ direction }}</div>
<p class="font-bold-24 item-title" v-if="list[0]">设备列表</p> <p class="font-bold-24 item-title" v-if="list[0]">设备列表</p>
<div class="d-flex flex-wrap" v-if="list[0]"> <div class="d-flex flex-wrap" v-if="list[0]">
@ -100,6 +100,7 @@ export default {
obj: null, obj: null,
list: [], list: [],
direction: '', direction: '',
shareName: '',
}; };
}, },
computed: mapState('home', ['LabId']), computed: mapState('home', ['LabId']),
@ -113,6 +114,9 @@ export default {
if (this.$route.params.direction) { if (this.$route.params.direction) {
this.direction = this.$route.params.direction; this.direction = this.$route.params.direction;
} }
if (this.$route.params.name) {
this.shareName = this.$route.params.name;
}
this.getData(); this.getData();
this.getTeam(); this.getTeam();
}, },

Loading…
Cancel
Save