对接数据

master
夜笙歌 6 months ago
parent 8ff6836337
commit b668b16a5f

@ -19,6 +19,7 @@
"js-cookie": "^3.0.5",
"less": "^4.2.0",
"less-loader": "5.0.0",
"swiper": "^11.1.15",
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},

@ -0,0 +1,25 @@
import request from '@/utils/request'
export function getPortalConfigTypeList(query) {
return request({
url: '/portal/portal/getPortalConfigTypeList',
method: 'get',
params: query
})
}
export function getCaseCenterCaseInfos(query) {
return request({
url: '/portal/portal/getCaseCenterCaseInfos',
method: 'get',
params: query
})
}
export function getCaseCenterCaseInfo(query) {
return request({
url: '/portal/portal/getCaseCenterCaseInfo/' + query,
method: 'get',
})
}

@ -0,0 +1,18 @@
import request from '@/utils/request'
export function getAboutUsInfo(query) {
return request({
url: '/portal/portal/getAboutUsInfo',
method: 'get',
params: query
})
}
export function getAboutUsInfoDetails(query) {
return request({
url: '/portal/portal/getAboutUsInfoDetails',
method: 'get',
params: query
})
}

@ -7,6 +7,7 @@ import router from './router'
import 'element-ui/lib/theme-chalk/index.css';
import 'animate.css'
import AMapLoader from "@amap/amap-jsapi-loader";
import 'swiper/css/bundle';
Vue.config.productionTip = false
Vue.use(ElementUI);

@ -9,26 +9,25 @@
<el-button type="primary" class="bannerBtn">免费体验</el-button>
<div class="tabs">
<div class="content">
<div class="tab active">智慧电网</div>
<div class="tab">智慧工业</div>
<div class="tab">智慧农业</div>
<div v-for="(i,k) in tabsList" @click="checkTabs(i,k)" :class="`tab ${tabsActive === k ? 'active':''}`">
{{ i.configTypeName }}
</div>
</div>
</div>
</div>
<div class="list">
<div v-for="i in 4">
<div v-if="i%2 === 1" class="item1">
<div v-for="(i,k) in contentList">
<div v-if="k%2 === 1" class="item1">
<div class="left">
<div class="itemTitle">智慧变电站</div>
<div class="itemTitle">{{ i.caseInfoTitle }}</div>
<div class="itemInfo">
针对变配电场景下高压场/GIS组合电器变压器电容电抗蛋避雷器高压开关柜隔离开关等电气设备采用不同的手段进行监测系统可对实时监测的数据进行智能化多维度分机和诊断评估设备运行状态捕捉设备运行中的异常通过对采集的设备图像温度环境参数等进行分析使用户可以
{{ i.caseInfoDesc }}
</div>
</div>
<div class="right">
<el-image
style="width: 100%; height: 100%;"
:src="banner"
:src="i.caseInfoPic"
fit="contain"></el-image>
</div>
<div class="view">
@ -67,6 +66,7 @@
import banner from '@/assets/image/banner.png'
import ContactUs from '@/components/contactUs'
import Copyright from '@/components/copyright'
import {getCaseCenterCaseInfos, getPortalConfigTypeList} from "@/api/casesAndClients";
export default {
name: 'IOT',
@ -76,7 +76,40 @@ export default {
},
data() {
return {
banner
banner,
tabsList: [],
tabsActive: 0,
contentList: [],
configTypeId: 0,
}
},
mounted() {
this.getData()
},
methods: {
checkTabs(i, k) {
this.tabsActive = k
this.configTypeId = i.configTypeId
this.getContentList(i.configTypeId)
},
getContentList(id) {
getCaseCenterCaseInfos({
configTypeId: id
}).then(e => {
this.contentList = e.data.sort((a, b) => a.productInfoOrder - b.productInfoOrder)
console.log(this.contentList)
})
},
getData() {
getPortalConfigTypeList({
parentId: 8,
pageNum: 1,
pageSize: 10
}).then(e => {
this.tabsList = e.rows
this.configTypeId = e.rows?.[0]?.configTypeId
this.getContentList(e.rows?.[0]?.configTypeId)
})
}
}
}

@ -6,17 +6,16 @@
</TitleGroup>
<div class="content">
<div class="left">
<div class="contentTitle">海威物联</div>
<div class="contentTitle">{{ data.usInfoDetailTitle }}</div>
<div class="contentSubTitle">HIGHWAY IOT</div>
<div class="contentInfo">
作为轮胎用RFID电子标签相关4项IS0国际标准与国家标准的制定者公司具备全球最先进的RFID智能轮胎整体解决方案包括系列化轮胎用RFID电子标签产品RFID轮胎生产配套自动化设备RFID轮胎应用信息化管理系统及数据平台同时公司大力推进基于RFID传感边缘采集计算数据传输等技术的工业互联网解决方案在轮胎产业链中的深入应用为轮胎生产管理仓储物流销售跟踪车队管理轮胎翻新等环节提供一站式解决方案所有核心技术及产品均具有自主知识产权
<br/>公司承担山东省科技型中小企业创新能力提升工程项目青岛市第四批人才特区人才计划等各级政府项目;主要研发成果获技术发明一等奖专利金奖等多项省部级科学技术奖励
{{ data.usInfoDetailDesc }}
</div>
</div>
<div class="right">
<el-image
style="width: 100%;height: 100%"
:src="banner"
:src="data.usInfoDetailPic"
fit="contain"></el-image>
</div>
</div>
@ -27,21 +26,34 @@
import banner from '@/assets/image/banner.png'
import TitleGroup from "@/components/TitleGroup";
import wlw from "@/assets/icon/wlw.png";
import {getAboutUsInfoDetails} from "@/api/contactUs";
let map = null
export default {
name: 'PlatformIntroduction',
props:['aboutUsInfoId'],
components: {
TitleGroup
},
data() {
return {
banner
banner,
data:{}
}
},
mounted() {
this.getData()
},
methods: {}
methods: {
getData(){
getAboutUsInfoDetails({
aboutUsInfoId:this.aboutUsInfoId
}).then(e=>{
console.log(e)
this.data = e.data[0]
})
}
}
}
</script>
@ -89,6 +101,8 @@ export default {
top: 34.6%;
width: 78%;
left: 50%;
height: 11vw;
overflow: hidden;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
letter-spacing: 2.5px;

@ -1,41 +1,97 @@
<template>
<div>
<div class="title">ENTERPRISE QUALIFICATION</div>
<div class="subTitle">企业资质</div>
<div class="bg">
<div class="list1">
<div class="item">国家级专精特新小巨人企业</div>
<div class="item">国家高新技术企业</div>
<div class="item">青岛市专精特新中小企业</div>
<div class="item">青岛市雏鹰企业</div>
<div class="item">科技型中小企业</div>
<div class="item">青岛市百千万工程千帆企业</div>
<div class="item">获批山东省中小企业创新能力提升工程项目</div>
</div>
<div class="list2">
<div class="item">获批青岛第四批人才特区人才项目</div>
<div class="item">第四届创业齐鲁 共赢未来高层次人才创业大赛创业企业类优胜奖</div>
<div class="item">第十届中国创新创业大赛青岛赛区二等奖</div>
<div class="item">第十一届LT中国物流技术奖-创新应用奖</div>
<div class="item">通过ISO 9001质量管理体系认证</div>
<div class="item">轮胎用RFID电子标签产品获得ROSH认证</div>
<div class="item">轮胎用RFID电子标签自动化设备通过CE认证</div>
</div>
</div>
<div>
<div class="title">ENTERPRISE QUALIFICATION</div>
<div class="subTitle">企业资质</div>
<div class="bg">
<div class="list1" ref="list1">
<div class="item" v-for="i in cardList1">{{ i.usInfoDetailTitle }}</div>
</div>
<div class="list2" ref="list2">
<div class="item" v-for="i in cardList2">{{ i.usInfoDetailTitle }}</div>
</div>
</div>
<div class="carousel">
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="i in imgList">
<el-image
style="width: 100%;height: 100%"
:src="i.usInfoDetailPic"
fit="contain"></el-image>
</div>
</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
</div>
</template>
<script>
import banner from '@/assets/image/banner.png'
import Swiper from 'swiper';
import {Navigation, Autoplay} from 'swiper/modules'
import {getAboutUsInfoDetails} from "@/api/contactUs";
Swiper.use([Navigation, Autoplay])
export default {
name: 'ProductCenter',
data() {
return {
banner,
name: 'ProductCenter',
props: ['aboutUsInfoId'],
data() {
return {
banner,
imgList: [],
cardList1: [],
cardList2: []
}
},
methods: {
async getData() {
await getAboutUsInfoDetails({
aboutUsInfoId: this.aboutUsInfoId
}).then(e => {
console.log(e)
this.imgList = e.data.filter(v => v.usInfoDetailPic)
let list = e.data.filter(v => v.usInfoDetailTitle)
let cardList = list.filter((v, k) => v.usInfoDetailTitle.length <= 25)
let longList = list.filter((v, k) => v.usInfoDetailTitle.length > 25)
this.cardList1 = cardList.filter((v, k) => k % 2 === 0)
this.cardList2 = cardList.filter((v, k) => k % 2 === 1)
if(this.cardList1.length<=this.cardList2.length){
this.cardList1 = this.cardList1.concat(longList.filter((v, k) => k % 2 === 0))
this.cardList2 = this.cardList2.concat(longList.filter((v, k) => k % 2 === 1))
}else{
this.cardList1 = this.cardList1.concat(longList.filter((v, k) => k % 2 === 1))
this.cardList2 = this.cardList2.concat(longList.filter((v, k) => k % 2 === 0))
}
this.$nextTick(()=>{
console.log(this.$refs.list1.offsetHeight)
console.log(this.$refs.list2.offsetHeight)
let height = (Math.max(this.$refs.list1.offsetHeight,this.$refs.list2.offsetHeight) - 2.2 * (window.innerWidth/100)) + 'px'
this.$refs.list1.style.height = height
this.$refs.list2.style.height = height
})
})
},
methods: {}
initSwiper() {
const swiper = new Swiper(".mySwiper", {
slidesPerView: 4,
spaceBetween: 30,
loop: true,
autoplay: true,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
}
},
async mounted() {
await this.getData()
await this.$nextTick()
this.initSwiper()
}
}
</script>
@ -79,7 +135,6 @@ export default {
top: 100%;
left: 50%;
width: 24.8vw;
height: 20.8vw;
border-radius: 5px;
background-color: #fff;
transform: translate(calc(-100% - 2vw), -9.5vw);
@ -91,15 +146,17 @@ export default {
top: 100%;
left: 50%;
width: 24.8vw;
height: 20.8vw;
border-radius: 5px;
background-color: #fff;
transform: translate(2vw, -9.5vw);
}
.list1,.list2{
.list1, .list2 {
text-align: left;
padding: 1.1vw 2.1vw ;
.item{
padding: 1.1vw 2.1vw;
height: auto;
.item {
width: 100%;
line-height: 2.5vw;
font-size: 1vw;
@ -108,4 +165,18 @@ export default {
}
}
.carousel {
width: 62vw;
margin: 32vw auto 0 auto;
position: relative;
.swiper {
width: 58vw;
margin: 0 auto;
}
}
.swiper-slide {
height: 30vw;
}
</style>

@ -8,28 +8,30 @@
<div class="bannerInfo">青岛海威物联科技有限公司致力于工业物联网软硬件系统研发生产和销售提供感知互联的工业化联网整体解决方案</div>
<div class="tabs">
<div class="content">
<div @click="checkTabs(1)" :class="`tab ${tabsActive === 1 ? 'active':''}`">公司简介</div>
<div @click="checkTabs(2)" :class="`tab ${tabsActive === 2 ? 'active':''}`">企业资质</div>
<div @click="checkTabs(3)" :class="`tab ${tabsActive === 3 ? 'active':''}`">团队风貌</div>
<div @click="checkTabs(4)" :class="`tab ${tabsActive === 4 ? 'active':''}`">联系我们</div>
<div @click="checkTabs(k)" :class="`tab ${tabsActive === k ? 'active':''}`" v-for="(i,k) in tabsList">
{{ i.aboutUsInfoTitle }}
</div>
</div>
</div>
</div>
<CompanyProfile class="companyProfile"/>
<EnterpriseQualification class="enterpriseQualification"/>
<TeamStyle class="teamStyle"/>
<div v-for="i in tabsList">
<CompanyProfile class="companyProfile" v-if="i.aboutUsInfoType === '2'" :aboutUsInfoId="i.aboutUsInfoId"/>
<EnterpriseQualification class="enterpriseQualification" v-if="i.aboutUsInfoType === '3'"
:aboutUsInfoId="i.aboutUsInfoId"/>
<TeamStyle class="teamStyle" v-if="i.aboutUsInfoType === '4'" :aboutUsInfoId="i.aboutUsInfoId"/>
</div>
<ContactUs class="contactUs"/>
<Copyright class="copyright"/>
</div>
</template>
<script>
import banner from '@/assets/image/banner.png'
import CompanyProfile from './companyProfile'
import EnterpriseQualification from './enterpriseQualification'
import TeamStyle from './teamStyle'
import ContactUs from '@/components/contactUs'
import Copyright from '@/components/copyright'
import {getAboutUsInfo} from "@/api/contactUs";
export default {
name: 'ContactUs1',
@ -42,13 +44,25 @@ export default {
},
data() {
return {
banner,
tabsActive: 1,
banner: '',
bannerTitle: '',
tabsActive: 0,
tabsList: [],
}
},
mounted() {
this.getData()
},
methods: {
checkTabs(e) {
this.tabsActive = e
},
getData() {
getAboutUsInfo().then(e => {
this.banner = e.data?.[0]?.aboutUsInfoPic
this.bannerTitle = e.data?.[0]?.aboutUsInfoDesc
this.tabsList = e.data.slice(1, e.data.length)
})
}
}
}
@ -120,13 +134,13 @@ export default {
.companyProfile {
width: 100%;
}
.enterpriseQualification{
.enterpriseQualification {
width: 100%;
position: relative;
height: 50vw;
}
.teamStyle{
.teamStyle {
width: 100%;
}

@ -1,94 +1,22 @@
<template>
<div>
<TitleGroup>
<template slot="title">HIGH FREQUENCY RFID</template>
<template slot="subTitle">高频RFID产品系列</template>
<template slot="title">{{ data.productInfoEtitle }}</template>
<template slot="subTitle">{{ data.productInfoCtitle }}</template>
</TitleGroup>
<div class="tabs">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane name="1" label="高频RFID读头">
<el-tab-pane :name="`${k}`" :label="i.productInfoDetailTitle" v-for="(i,k) in data.hwProductInfoDetailList">
<transition name="fade">
<div v-if="activeName === '1'" style="position:relative;">
<div v-if="activeName === `${k}`" style="position:relative;">
<div class="content">
<div class="left">
<div class="itemTitle">产品型号</div>
<div class="itemTitle">{{ i.productInfoDetailDesc }}</div>
<div class="itemCode">HW-RFR-050-B-003-B1204S</div>
<div class="image">
<el-image
style="width: 100%; height: 100%"
:src="banner"
fit="contain"></el-image>
</div>
</div>
<div class="right">
<div class="infos" v-for="i in 7">
<div class="infoTitle">射频协议</div>
<div class="infoNum">符合ISO/IEC 13.56MHZ</div>
</div>
</div>
</div>
</div>
</transition>
</el-tab-pane>
<el-tab-pane name="2" label="高频RFID一体机">
<transition name="fade">
<div v-if="activeName === '2'" style="position:relative;">
<div class="content">
<div class="left">
<div class="itemTitle">产品型号</div>
<div class="itemCode">HW-RFR-050-B-003-B1204S</div>
<div class="image">
<el-image
style="width: 100%; height: 100%"
:src="banner"
fit="contain"></el-image>
</div>
</div>
<div class="right">
<div class="infos" v-for="i in 7">
<div class="infoTitle">射频协议</div>
<div class="infoNum">符合ISO/IEC 13.56MHZ</div>
</div>
</div>
</div>
</div>
</transition>
</el-tab-pane>
<el-tab-pane name="3" label="协议网关">
<transition name="fade">
<div v-if="activeName === '3'" style="position:relative;">
<div class="content">
<div class="left">
<div class="itemTitle">产品型号</div>
<div class="itemCode">HW-RFR-050-B-003-B1204S</div>
<div class="image">
<el-image
style="width: 100%; height: 100%"
:src="banner"
fit="contain"></el-image>
</div>
</div>
<div class="right">
<div class="infos" v-for="i in 7">
<div class="infoTitle">射频协议</div>
<div class="infoNum">符合ISO/IEC 13.56MHZ</div>
</div>
</div>
</div>
</div>
</transition>
</el-tab-pane>
<el-tab-pane name="4" label="高频RFID圆环标签">
<transition name="fade">
<div v-if="activeName === '4'" style="position:relative;">
<div class="content">
<div class="left">
<div class="itemTitle">产品型号</div>
<div class="itemCode">HW-RFR-050-B-003-B1204S</div>
<div class="image">
<el-image
style="width: 100%; height: 100%"
:src="banner"
:src="i.productInfoDetailPic"
fit="contain"></el-image>
</div>
</div>
@ -113,13 +41,14 @@ import banner from '@/assets/image/banner.png'
export default {
name: 'HighFrequencyRFID',
props:['data'],
components: {
TitleGroup
},
data() {
return {
banner,
activeName: '1'
activeName: '0'
}
},
methods: {}

@ -1,24 +1,24 @@
<template>
<div>
<TitleGroup>
<template slot="title">ULTRA HIGH FREQUENCY RFID</template>
<template slot="subTitle">超高频RFID产品系列</template>
<template slot="title">{{ data.productInfoEtitle }}</template>
<template slot="subTitle">{{ data.productInfoCtitle }}</template>
</TitleGroup>
<div class="tabs">
<el-tabs v-model="activeName">
<el-tab-pane name="1" label="RFID读写器">
<el-tab-pane :name="`${k}`" :label="i.productInfoDetailTitle" v-for="(i,k) in data.hwProductInfoDetailList">
<transition name="fade">
<div v-if="activeName === '1'" style="position:relative;">
<div v-if="activeName === `${k}`" style="position:relative;">
<div class="content">
<div class="contentInfo">
读写器产品包含一体式读写器车载读写器四通道读写器各尺寸读写器天线等一系列产品具备丰富的通讯接口和公用的软件接口平台具有稳定性强性价比高易开发易部署等特点
{{ i.productInfoDetailDesc }}
</div>
<div class="list">
<div class="item" v-for=" i in 8">
<div class="image">
<el-image
style="width: 100%; height: 100%;"
:src="banner"
:src="i.productInfoDetailPic"
fit="contain"></el-image>
</div>
<div class="info">
@ -30,30 +30,6 @@
</div>
</transition>
</el-tab-pane>
<el-tab-pane name="2" label="RFID标签">
<transition name="fade">
<div v-if="activeName === '2'" style="position:relative;">
<div class="content">
<div class="left">
<div class="itemTitle">产品型号</div>
<div class="itemCode">HW-RFR-050-B-003-B1204S</div>
<div class="image">
<el-image
style="width: 100%; height: 100%"
:src="banner"
fit="contain"></el-image>
</div>
</div>
<div class="right">
<div class="infos" v-for="i in 7">
<div class="infoTitle">射频协议</div>
<div class="infoNum">符合ISO/IEC 13.56MHZ</div>
</div>
</div>
</div>
</div>
</transition>
</el-tab-pane>
</el-tabs>
</div>
</div>
@ -65,6 +41,7 @@ import banner from '@/assets/image/banner.png'
export default {
name: 'HighFrequencyRFID',
props:['data'],
components: {
TitleGroup
},

Loading…
Cancel
Save