forked from TALL/check-work
15 changed files with 664 additions and 70 deletions
@ -1,24 +1,82 @@ |
|||
<template> |
|||
<div> |
|||
<rotation /> |
|||
<h-nav /> |
|||
{{ str }} |
|||
{{ str }} |
|||
{{ str }} |
|||
<div class="flow-path"> |
|||
<div class="flow-title">服务流程</div> |
|||
<div class="flow-content"> |
|||
您 <span class="login-color">注册、登录</span> 后通过直接申请或加入购物车进行申请服务, 直接申请后在个人中心查看, 加入 |
|||
<span class="login-color">购物车</span> 后可通过顶部菜单栏的购物车查看。 |
|||
</div> |
|||
</div> |
|||
<div class="inner d-flex flex-wrap"> |
|||
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''"> |
|||
<img :src="item.imgUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" /> |
|||
<p class="font-24 my-4">{{ item.name }}</p> |
|||
<p class="font-16 baseColor" style="text-align: right; cursor: pointer" @click="jump(item.id)">了解更多→</p> |
|||
</div> |
|||
</div> |
|||
<div class="inner"> |
|||
<a-pagination |
|||
:current="current" |
|||
:total="total" |
|||
:page-size="pageSize" |
|||
@change="onShowSizeChange" |
|||
class="pagination" |
|||
show-less-items |
|||
show-quick-jumper |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Rotation from 'components/Rotation/Rotation.vue'; |
|||
import HNav from './../components/HNav.vue'; |
|||
export default { |
|||
name: 'Service', |
|||
components: { HNav }, |
|||
components: { HNav, Rotation }, |
|||
data() { |
|||
return { |
|||
str: '这是服务界面', |
|||
list: [], |
|||
current: 1, |
|||
pageSize: 8, |
|||
total: 0, |
|||
}; |
|||
}, |
|||
methods: { |
|||
// 改变单当前页数 |
|||
onShowSizeChange(current, size) { |
|||
this.current = current; |
|||
}, |
|||
// 查看 服务 详情 |
|||
jump(id) { |
|||
console.log(id); |
|||
this.$router.push({ |
|||
path: '/NewPlatform/ServiceDet', |
|||
name: 'ServiceDet', |
|||
params: { id }, |
|||
}); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped></style> |
|||
<style lang="stylus" scoped> |
|||
.pagination { |
|||
margin: 40px 0; |
|||
text-align: right; |
|||
} |
|||
|
|||
.item-box { |
|||
width: 20.5%; |
|||
margin-right: 6%; |
|||
border-radius: 4px; |
|||
box-shadow: 6px 6px 6px #eee; |
|||
} |
|||
|
|||
.margin-0 { |
|||
margin-right: 0 !important; |
|||
} |
|||
</style> |
|||
|
@ -0,0 +1,23 @@ |
|||
<template> |
|||
<div> |
|||
<div class="inner service-box">服务详情页</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'ServiceDet', |
|||
data() { |
|||
return {}; |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped> |
|||
.service-box { |
|||
margin: 60px auto; |
|||
min-height: 400px; |
|||
padding: 20px; |
|||
background: #fff; |
|||
} |
|||
</style> |
@ -0,0 +1,140 @@ |
|||
<template> |
|||
<div class="inner equ-box"> |
|||
<div class="equ-info d-flex"> |
|||
<img :src="obj.img" alt="" /> |
|||
<div class="equ-info-box"> |
|||
<p class="equ-name">{{ obj.name }}</p> |
|||
<div class="d-flex flex-wrap"> |
|||
<div style="width: 200px" class="equ-info-left"> |
|||
<p>仪器名字:</p> |
|||
<p>制造商:</p> |
|||
<p>型号:</p> |
|||
<p>规格:</p> |
|||
<p>性能指标:</p> |
|||
<p>联系人:</p> |
|||
<p>联系方式:</p> |
|||
</div> |
|||
<div style="width: 500px"> |
|||
<p>{{ obj.name }}</p> |
|||
<p>{{ obj.manufactor }}</p> |
|||
<p>{{ obj.model }}</p> |
|||
<p>{{ obj.specifications }}</p> |
|||
<p>{{ obj.performance }}</p> |
|||
<p> |
|||
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsName }}、</span> |
|||
</p> |
|||
<p> |
|||
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsPhone }}、</span> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
<p class="equ-btn"> |
|||
<a-button style="margin-right: 20px">转化意向</a-button> |
|||
<a-button type="primary">加入购物车</a-button> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
<div class="content-box"> |
|||
<div v-dompurify-html="obj.purpose"></div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { selInstrumentMes } from 'config/api'; |
|||
export default { |
|||
name: 'InsDet', |
|||
data() { |
|||
return { |
|||
obj: {}, |
|||
id: 0, |
|||
}; |
|||
}, |
|||
created() { |
|||
this.id = this.$route.params.id; |
|||
this.getData(); |
|||
}, |
|||
methods: { |
|||
async getData() { |
|||
try { |
|||
const params = { param: { id: this.id } }; |
|||
const res = await selInstrumentMes(params); |
|||
const { code, data, msg } = res.data; |
|||
if (code === 200) { |
|||
console.log(data); |
|||
this.obj = data; |
|||
} |
|||
} catch (error) { |
|||
console.log(error); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped> |
|||
.equ-box { |
|||
background: #fff; |
|||
padding: 20px; |
|||
margin: 60px auto; |
|||
} |
|||
|
|||
.equ-info { |
|||
border-bottom: 1px solid rgba(0, 0, 0, 0.14901960784313725); |
|||
position: relative; |
|||
padding-bottom: 24px; |
|||
|
|||
img { |
|||
width: 300px; |
|||
height: 300px; |
|||
} |
|||
} |
|||
|
|||
.equ-name { |
|||
font-size: 24px; |
|||
font-family: Microsoft YaHei; |
|||
font-weight: bold; |
|||
line-height: 31px; |
|||
color: rgba(0, 0, 0, 0.85); |
|||
opacity: 1; |
|||
} |
|||
|
|||
.equ-info-box { |
|||
position: relative; |
|||
font-size: 16px; |
|||
margin-left: 20px; |
|||
height: 300px; |
|||
font-family: Microsoft YaHei; |
|||
font-weight: 400; |
|||
color: rgba(0, 0, 0, 0.65); |
|||
opacity: 1; |
|||
|
|||
p { |
|||
margin-bottom: 6px; |
|||
} |
|||
} |
|||
|
|||
.equ-info-left { |
|||
font-size: 16px; |
|||
font-family: Microsoft YaHei; |
|||
font-weight: 400; |
|||
color: rgba(0, 0, 0, 0.45); |
|||
opacity: 1; |
|||
|
|||
p { |
|||
margin-bottom: 6px; |
|||
} |
|||
} |
|||
|
|||
.equ-btn { |
|||
position: absolute; |
|||
bottom: 0; |
|||
} |
|||
|
|||
.content-box { |
|||
min-height: 400px; |
|||
padding: 20px; |
|||
font-size: 16px; |
|||
color: rgba(0, 0, 0, 0.65); |
|||
} |
|||
</style> |
@ -0,0 +1,209 @@ |
|||
<template> |
|||
<div> |
|||
<rotation /> |
|||
<h-nav /> |
|||
<div class="inner ins-box"> |
|||
<p class="font-bold-24 item-title">设备列表</p> |
|||
<div class="d-flex flex-wrap"> |
|||
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''"> |
|||
<img :src="item.imgUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" /> |
|||
<p class="font-24 my-4">{{ item.name }}</p> |
|||
<p class="font-16 baseColor item-more" @click="jump(item.id)">了解更多→</p> |
|||
</div> |
|||
</div> |
|||
<p class="font-bold-24 item-title">人才团队带头人情况</p> |
|||
<div class="d-flex"> |
|||
<div class="header-box" style="flex: 1"> |
|||
<p style="background: #11b7ce; color: #fff">姓名</p> |
|||
<p>性别</p> |
|||
<p>民族</p> |
|||
<p>出生年月</p> |
|||
<p>学历</p> |
|||
<p>职称</p> |
|||
<p>所学专业</p> |
|||
<p>从事专业</p> |
|||
<p>团队名称</p> |
|||
<p>工作单位</p> |
|||
<p>研究方向</p> |
|||
</div> |
|||
<div class="header-box" style="flex: 5; background: #fff"> |
|||
<p style="border-bottom: 1px solid #eee">{{ obj.name }}</p> |
|||
<p><span v-if="obj.gender - 0 === 1">男</span> <span v-else-if="obj.gender - 0 === 2">女</span></p> |
|||
<p>{{ obj.famousFamily }}</p> |
|||
<p>{{ obj.birthday }}</p> |
|||
<p>{{ obj.education }}</p> |
|||
<p>{{ obj.position }}</p> |
|||
<p>{{ obj.major }}</p> |
|||
<p>{{ obj.professional }}</p> |
|||
<p>{{ obj.teamName }}</p> |
|||
<p>{{ obj.workUnit }}</p> |
|||
<p>{{ obj.direction }}</p> |
|||
</div> |
|||
</div> |
|||
<p class="font-bold-24 item-title">团队成员信息</p> |
|||
<div style="background: #fff"> |
|||
<div class="d-flex"> |
|||
<div class="h-box" style="flex: 1">姓名</div> |
|||
<div class="h-box" style="flex: 1">性别</div> |
|||
<div class="h-box" style="flex: 1">所在单位</div> |
|||
<div class="h-box" style="flex: 1">出生年月</div> |
|||
<div class="h-box" style="flex: 1">学历学位</div> |
|||
<div class="h-box" style="flex: 1">职称职务</div> |
|||
<div class="h-box" style="flex: 1">研究方向</div> |
|||
</div> |
|||
<div class="d-flex" v-for="(item, index) in obj.teamMemberList" :key="index"> |
|||
<div class="con-box" style="flex: 1">{{ item.name }}</div> |
|||
<div class="con-box" style="flex: 1"> |
|||
<span v-if="item.gender - 0 === 1">男</span> |
|||
<span v-else-if="item.gender - 0 === 2">女</span> |
|||
</div> |
|||
<div class="con-box" style="flex: 1">???????????????</div> |
|||
<div class="con-box" style="flex: 1">{{ item.birthday }}</div> |
|||
<div class="con-box" style="flex: 1">{{ item.education }}</div> |
|||
<div class="con-box" style="flex: 1">{{ item.position }}</div> |
|||
<div class="con-box" style="flex: 1">{{ item.direction }}</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapMutations, mapState } from 'vuex'; |
|||
import { selInstrumentByRes, teamSearch } from 'config/api'; |
|||
import Rotation from 'components/Rotation/Rotation.vue'; |
|||
import HNav from './../../components/HNav.vue'; |
|||
export default { |
|||
name: 'Institute', |
|||
components: { Rotation, HNav }, |
|||
data() { |
|||
return { |
|||
id: 0, |
|||
obj: {}, |
|||
list: [], |
|||
}; |
|||
}, |
|||
computed: mapState('home', ['LabId']), |
|||
created() { |
|||
if (this.$route.params.id) { |
|||
this.setLabId(this.$route.params.id); |
|||
this.id = this.$route.params.id; |
|||
} else { |
|||
this.id = this.LabId; |
|||
} |
|||
this.getData(); |
|||
this.getTeam(); |
|||
}, |
|||
methods: { |
|||
...mapMutations('home', ['setLabId']), |
|||
|
|||
// 获取当前研究院(实验室)下的仪器列表 |
|||
async getData() { |
|||
try { |
|||
const params = { |
|||
param: { |
|||
id: this.id, |
|||
pageNum: 1, |
|||
pageSize: 6, |
|||
}, |
|||
}; |
|||
const res = await selInstrumentByRes(params); |
|||
const { code, msg, data } = res.data; |
|||
if (code === 200) { |
|||
this.list = data.list; |
|||
this.total = parseInt(data.total); |
|||
} |
|||
} catch (error) { |
|||
console.log(error); |
|||
} |
|||
}, |
|||
// 获取当前研究院(实验室)下的团队详情 |
|||
async getTeam() { |
|||
try { |
|||
const params = { param: { instituteId: this.id } }; |
|||
const res = await teamSearch(params); |
|||
const { code, msg, data } = res.data; |
|||
if (code === 200) { |
|||
this.obj = data[0]; |
|||
} |
|||
} catch (error) { |
|||
console.log(error); |
|||
} |
|||
}, |
|||
// 查看 研究院/仪器 详情 |
|||
jump(id) { |
|||
this.$router.push({ |
|||
path: '/NewPlatform/Share/InsDet', |
|||
name: 'InsDet', |
|||
params: { id }, |
|||
}); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped> |
|||
.ins-box { |
|||
min-height: 500px; |
|||
height: auto; |
|||
margin: 40px auto; |
|||
} |
|||
|
|||
.pagination { |
|||
margin: 40px 0; |
|||
text-align: right; |
|||
} |
|||
|
|||
.item-more { |
|||
right: 10px; |
|||
bottom: 0px; |
|||
cursor: pointer; |
|||
position: absolute; |
|||
} |
|||
|
|||
.item-box { |
|||
position: relative; |
|||
width: 20.5%; |
|||
margin-right: 6%; |
|||
border-radius: 4px; |
|||
padding-bottom: 40px; |
|||
box-shadow: 6px 6px 6px #eee; |
|||
} |
|||
|
|||
.margin-0 { |
|||
margin-right: 0 !important; |
|||
} |
|||
|
|||
.item-title { |
|||
color: rgba(0, 0, 0, 0.85); |
|||
margin-top: 60px; |
|||
} |
|||
|
|||
.header-box { |
|||
text-align: center; |
|||
|
|||
p { |
|||
font-size: 24px; |
|||
color: rgba(0, 0, 0, 0.66); |
|||
height: 56px; |
|||
line-height: 56px; |
|||
margin-bottom: 0 !important; |
|||
} |
|||
} |
|||
|
|||
.h-box { |
|||
text-align: center; |
|||
font-size: 22px; |
|||
color: #096DD9; |
|||
height: 56px; |
|||
line-height: 56px; |
|||
} |
|||
|
|||
.con-box { |
|||
text-align: center; |
|||
font-size: 18px; |
|||
height: 46px; |
|||
line-height: 46px; |
|||
color: rgba(112, 112, 112, 0.66); |
|||
} |
|||
</style> |
Loading…
Reference in new issue