Browse Source

成果展示跳转地图,种都移风小调整

master
mk 2 years ago
parent
commit
92569778d5
  1. 2
      .env.development
  2. 2
      .env.production
  3. BIN
      public/video/1.mp4
  4. 8
      src/main.js
  5. 1
      src/store/modules/map.js
  6. 13
      src/style/transition.scss
  7. 2
      src/views/next/layout/screen-bottom.vue
  8. 160
      src/views/next/screen-content-left/home-left/index.vue
  9. 29
      src/views/next/screen-content-left/index.vue
  10. 31
      src/views/next/screen-content-left/zdyf-left/index.vue
  11. 54
      src/views/next/screen-content-map/cpt/zdyf-map.vue
  12. 42
      src/views/next/screen-content-map/index.vue
  13. 75
      src/views/next/screen-content-right/zdyf-right/index.vue

2
.env.development

@ -4,4 +4,4 @@ NODE_ENV=development
VUE_APP_MAP_URL='/json'
VUE_APP_PLAYER_URL='/js/h5player/'
# 锦水印象宣传视频地址
VUE_APP_VIDEO_URL='/video/jinshui.mp4'
VUE_APP_VIDEO_URL='/video/'

2
.env.production

@ -2,4 +2,4 @@ NODE_ENV=production
VUE_APP_MAP_URL='/jinshui-screen/json'
VUE_APP_PLAYER_URL='/jinshui-screen/js/h5player/'
VUE_APP_VIDEO_URL='/jinshui-screen/video/jinshui.mp4'
VUE_APP_VIDEO_URL='/jinshui-screen/video/'

BIN
public/video/1.mp4

Binary file not shown.

8
src/main.js

@ -14,7 +14,7 @@ import scroll from 'vue-seamless-scroll'; //滚动
Moment.locale("zh-cn");
Vue.prototype.$moment = Moment;
Vue.prototype.$echarts = echarts
Vue.prototype.$EventBus = new Vue()
// if (process.env.NODE_ENV === 'development') {
// (() => import('element-ui/lib/theme-chalk/index.css'))()
// }
@ -24,11 +24,7 @@ Vue.use(scroll)
Vue.config.productionTip = false
// 高德地图安全密钥配置
window._AMapSecurityConfig = {
// securityJsCode: '0294e9342fd4b5158458cbda2fa8892f'
securityJsCode: 'cecf7b19cf98f1e41a6c739be89146fc'
}
new Vue({
router,
store,

1
src/store/modules/map.js

@ -17,7 +17,6 @@ export default {
state.communityId = communityId
},
set_nav (state, navId){
console.log(navId);
state.navId = navId
}
},

13
src/style/transition.scss

@ -32,4 +32,17 @@
.fade-transform-leave-to {
opacity: 0;
transform: translateX(30px);
}
.slide-transform-leave-active,
.slide-transform-enter-active {
transition: all .5s;
}
.slide-transform-enter {
transform: translateX(460px);
}
.slide-transform-leave-to {
transform: translateX(-460px);
}

2
src/views/next/layout/screen-bottom.vue

@ -18,7 +18,7 @@ import { mapActions } from 'vuex'
export default {
data() {
return {
active: 'zdyf',
active: 'sy',
navList: [
{
imgSrc: require('@/assets/images/home/hsyf.png'),

160
src/views/next/screen-content-left/home-left/index.vue

@ -1,20 +1,160 @@
<template>
<div class=''></div>
<div>
<div class='card' style="height: 292px;">
<screen-title>
<div slot="left" class="screen-title-left">移风简介</div>
</screen-title>
<!-- -->
<div class="card-item-yfjj">
<!-- <transition name="slide-transform"> -->
<!-- <section v-if="currentIndex == 0"> -->
<img src="@/assets/images/kyll/garden.png" alt="">
<p>移风店镇位于即墨区西北部青岛市版图的中心位置地处威海烟台潍坊2小时经济圈内距机场18公里高铁站21公里毗邻沈海济青和青新高速交通优势明显
</p>
<p> 青岛(移风)国际蔬菜花卉种子产业园即墨农业高新技术开发区均落于境内将打造全国重要的蔬菜花卉种子研发和繁育中心成为全国种业男广州北青岛格局承载地
</p>
<!-- </section> -->
<!-- <video v-if="currentIndex == 1" :src="videoUrl" style="width: 100%; height: 100%;"
:controls="true" width="100%" height="100%" @play="handelVideoPlay"
@pause="handelVideoPause"></video> -->
<!-- </transition> -->
<!-- <transition name="slide-transform">
</transition> -->
</div>
</div>
<div class='card' style="margin-top: 8px;height: 266px;">
<screen-title>
<div slot="left" class="screen-title-left">红色移风</div>
</screen-title>
<!-- <div class="card-item-hsyf">
<div class="item">
<img src="@/assets/images/index/yfys1.png" alt="">
<div class="right">
<div class="top">战略优势</div>
<div class="center yellow"><span class="num">3</span> </div>
<div class="bot">中央1号文件</div>
</div>
</div>
<div class="item">
<img src="@/assets/images/index/yfys2.png" alt="">
<div class="right">
<div class="top">自然优势</div>
<div class="center green">北纬 <span class="num">36°</span></div>
<div class="bot">黄金育种地带</div>
</div>
</div>
<div class="item">
<img src="@/assets/images/index/yfys3.png" alt="">
<div class="right">
<div class="top">区位优势</div>
<div class="center violet"><span class="num">1</span> 小时</div>
<div class="bot">交通辐射圈</div>
</div>
</div>
<div class="item">
<img src="@/assets/images/index/yfys4.png" alt="">
<div class="right">
<div class="top">产业优势</div>
<div class="center blue"><span class="num">5.2</span> 亿元</div>
<div class="bot">种子年销售额</div>
</div>
</div>
</div> -->
</div>
<div class='card m-top12' style="height: 318px;">
<screen-title>
<div slot="left" class="screen-title-left">种都移风</div>
</screen-title>
<div class="card-item-zdyf">
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {};
export default {
data() {
return {
videoUrl: process.env.VUE_APP_VIDEO_URL + '1.mp4',
videoStatus: '',
intervalId: null,
currentIndex: 0
};
},
created() {
},
mounted() {
this.intervalId = setInterval(() => {
this.switchBox();
}, 3000); // 2
},
created() {},
methods: {},
components:{},
computed:{},
watch: {},
beforeDestroy() {
clearInterval(this.intervalId); //
},
methods: {
switchBox() {
if (this.currentIndex === 0) {
this.currentIndex = 1;
} else if (this.currentIndex === 1 && this.videoStatus != 'play') {
this.currentIndex = 0;
}
},
handelVideoPlay() {
this.videoStatus = 'play'
},
handelVideoPause() {
this.videoStatus = 'pause'
}
},
components: {},
computed: {},
watch: {},
}
</script>
<style lang="scss" scoped>
.card {
width: 100%;
display: flex;
flex-direction: column;
&-item-yfjj {
padding: 0 15px 15px;
width: 100%;
height: 100%;
flex: 1;
box-sizing: border-box;
p {
text-indent: 2rem;
margin-top: 0px;
color: #BDCEEA;
}
img {
float: right;
shape-outside: inherit;
margin: 0 0 0 13px;
width: 200px;
height: 126px;
}
}
}
.box {
width: 100px;
height: 100px;
background-color: lightblue;
margin: 10px;
display: inline-block;
transition: transform 0.5s ease-in-out;
}
.active {
transform: scale(1.2);
/* 放大效果,可根据需求调整 */
}
</style>

29
src/views/next/screen-content-left/index.vue

@ -1,13 +1,9 @@
<template>
<div class="screen-content-left">
<div class="rest-content">
<div class="">
<transition name="fade-transform">
<component :is="currentCom"></component>
</transition>
</div>
</div>
</div>
<transition name="fade-transform">
<component :is="currentCom"></component>
</transition>
</div>
</template>
<script>
@ -18,9 +14,9 @@ import homeLeft from './home-left'
import szyfLeft from './szyf-left'
export default {
name: 'screen-content-left',
data () {
data() {
return {
}
},
components: {
@ -31,7 +27,7 @@ export default {
},
computed: {
...mapGetters(['scale', 'navId',]),
currentCom () {
currentCom() {
if (this.navId === 'hsyf') {
return hsyfLeft
} else if (this.navId === 'zdyf') {
@ -40,11 +36,11 @@ export default {
return homeLeft
} else if (this.navId === 'szyf') {
return szyfLeft
}
}
}
},
methods: {
}
}
</script>
@ -59,12 +55,5 @@ export default {
z-index: 20;
box-sizing: border-box;
padding: 40px 0px 20px;
.rest-content {
width: 100%;
height: calc(100% - 30px - 30px);
border-radius:10px;
padding: 10px;
box-sizing: border-box;
}
}
</style>

31
src/views/next/screen-content-left/zdyf-left/index.vue

@ -56,13 +56,19 @@
</screen-title>
<div class="card-item-yfcj">
<div class="card-item-yfcj-1"
style="color: #7AFAFF; top: 10px; left: 50%;transform: translate(-60px);">省级农业产业强镇</div>
<div class="card-item-yfcj-2" style="color: #FFE17A; top: 68px; left: 49px;">省级乡村振兴集中推进区</div>
<div class="card-item-yfcj-3" style="color: #FF5027; top: 66px; left: 59%;">省级现代农业产业园</div>
<div class="card-item-yfcj-4" style="color: #1FCD54; top: 134px; left: 14%;">省级农业产业强镇</div>
<div class="card-item-yfcj-5" style="color: #FFFC27; top: 127px; left: 64%;">省数字乡村试点乡镇</div>
style="color: #7AFAFF; top: 10px; left: 15%">省级农业产业强镇</div>
<div class="card-item-yfcj-2" style="color: #FFE17A; top: 66px; left: 49px;">省级乡村振兴集中推进区</div>
<div class="card-item-yfcj-3" style="color: #FF5027; top: 20px; left: 59%;">省级现代农业产业园</div>
<div class="card-item-yfcj-4" style="color: #1FCD54; top:120px; left: 14%;">省级农业产业强镇</div>
<div class="card-item-yfcj-5" style="color: #FFFC27; top: 80px; left: 64%;">省数字乡村试点乡镇</div>
<div class="card-item-yfcj-6"
style="color: #FF8F4C; bottom: 40px; left: 50%;transform: translate(-60px);">中国淘宝小镇
style="color: #FF8F4C; top: 130px; left: 64%;">中国淘宝小镇
</div>
<div class="card-item-yfcj-7"
style="color: #cd8eee; top: 160px; left: 15%;">年产蔬菜约60万吨占全区总量的40%
</div>
<div class="card-item-yfcj-8"
style="color: #50aeff; top: 170px; left: 60%;">年产粮食10万吨占全区总量的25%
</div>
</div>
</div>
@ -181,7 +187,9 @@ export default {
&-3,
&-4,
&-5,
&-6 {
&-6,
&-7,
&-8{
position: absolute;
background: url('~@/assets/images/index/yfcjkuang.png') no-repeat 50% 50%;
background-size: 100% 100%;
@ -196,6 +204,15 @@ export default {
font-size: 63px;
}
}
&-8{
width: 140px;
text-indent: 2;
}
&-7{
width: 150px;
text-indent: 2;
}
}
}

54
src/views/next/screen-content-map/cpt/zdyf-map.vue

@ -24,7 +24,6 @@ import { Scene, PolygonLayer, LineLayer, ImageLayer } from "@antv/l7";
import { GaodeMap } from "@antv/l7-maps";
import yifengJson from './yifeng.json';
import chinaMap from "./chinaMap.vue"
let myMap;
let scene;
let circleLayerSmall;
@ -91,21 +90,38 @@ export default {
mapType: ''
};
},
created() { },
created() {
},
mounted() {
window._AMapSecurityConfig = {
securityJsCode: "92ea2c965c6cf1ba7ee3a8fe01449ef2",
};
let that = this
this.$nextTick(() => {
this.$EventBus.$on("switcMapType", (data) => {
that.switcMapType(data)
});
})
},
methods: {
toProvince({ fileName: name }) {
switcMapType(type) {
let that = this
if (type === 'polygon') {
this.mapFlag = 'Amap'
if (!myMap) {
that.init(type)
} else {
this.initPolygonLayer()
}
}
},
toProvince() {
this.mapFlag = 'Amap'
setTimeout(() => {
this.init()
}, 1000)
},
init() {
init(type) {
if (!yifengJson) return false;
myMap = new GaodeMap({
pitch: 40.24716321414439,
@ -130,12 +146,16 @@ export default {
map: myMap,
});
scene.on("loaded", () => {
this.initCircle()
if (!type) {
this.initCircle()
} else {
this.initPolygonLayer()
}
// this.initText()
});
scene.on("click", (feature) => {
console.log(feature);
// console.log(feature);
});
},
initCircle() {
@ -192,6 +212,9 @@ export default {
if (roadLayer) {
scene.removeLayer(roadLayer);
}
if (circleLayerSmall) {
scene.removeLayer(circleLayerSmall);
}
this.mapType = 'polygon'
const { darkStyle } = this;
let styleConfig = darkStyle;
@ -279,15 +302,17 @@ export default {
height: 58px;
z-index: 10;
}
.map-legeng{
.map-legeng {
position: absolute;
top: 686px;
left: 554px;
transform: translate(-50%);
width: 140px;
height: 220px;
z-index: 10;
z-index: 10;
}
.bg_img {
background: url('~@/assets/images/map/echartsBg.png');
background-size: 100% 100%;
@ -337,14 +362,19 @@ export default {
}
&::after {
content: "";
content: "黄金育种带";
display: block;
width: 550px;
height: 2px;
font-size: 22px;
padding-bottom: 12px;
height: 24px;
color: rgb(254, 221, 0);
text-align: center;
line-height: 24px;
border-bottom: 2px rgb(254, 221, 0) dashed;
position: absolute;
right: 83px;
top: 69px;
top: 34px;
}
}

42
src/views/next/screen-content-map/index.vue

@ -1,23 +1,16 @@
<template>
<div class="screen-content-map">
<hsyfIframe v-if="navId === 'hsyf'"/>
<szyfImg v-if="navId === 'szyf'"/>
<homeMap v-if="navId === 'sy'"/>
<zdyfMap v-if="navId === 'zdyf'"/>
<component :is="currentCom"></component>
</div>
</div></template>
<script>
import { getCommunityDetail } from 'api/screen-content-left'
import { mapGetters, mapActions } from 'vuex'
import Bus from 'utils/eventBus'
import { numAnimation } from 'utils/common'
import hsyfIframe from './cpt/hsyf-iframe.vue'
import szyfImg from './cpt/szyf-img.vue'
import homeMap from './cpt/home-map.vue'
import zdyfMap from './cpt/zdyf-map.vue'
export default {
name: 'screen-content-map',
data() {
@ -25,7 +18,18 @@ export default {
}
},
computed: {
...mapGetters(['scale', 'navId',])
...mapGetters(['scale', 'navId',]),
currentCom () {
if (this.navId === 'hsyf') {
return hsyfIframe
} else if (this.navId === 'zdyf') {
return zdyfMap
} else if (this.navId === 'sy') {
return homeMap
} else if (this.navId === 'szyf') {
return szyfImg
}
}
},
components: { hsyfIframe, szyfImg, homeMap, zdyfMap },
watch: {
@ -41,11 +45,9 @@ export default {
}
},
created() {
// Bus.$off('drowDownToGrid', this.drowDownToGrid.bind(this))
// Bus.$on('drowDownToGrid', this.drowDownToGrid.bind(this))
},
mounted() {
this.initMap()
},
beforeDestroy() {
},
@ -56,27 +58,13 @@ export default {
showGlobalDialog: 'showGlobalDialog'
}),
initMap() {
// Promise.all([
// this.getCommunityDistrict(),
// this.getCommunityGeoPolygon(),
// this.getCommunityGeoLine(),
// this.getGridGeoPolygon()]).then(([communityJSON, communityGeoJson, communityGeoLineJson, gridGeoJson]) => {
// return new AMapLocaClass({
// domId: 'amap-container',
// communityJSON,
// communityGeoJson,
// gridGeoJson
// })
// })
},
changMap() {
this.show3D = true
console.log(this);
},
changMapS() {
this.show3D = false
this.initMap()
},
}
}

75
src/views/next/screen-content-right/zdyf-right/index.vue

@ -4,8 +4,8 @@
<screen-title>
<div slot="left" class="screen-title-left">成果展示</div>
</screen-title>
<div style="padding: 16px;box-sizing: border-box;width: 100%;height: 100%;"> <img
src="@/assets/images/material/cgzs.png" alt=""></div>
<div style="padding: 16px;box-sizing: border-box;width: 100%;height: 100%; cursor: pointer;"
@click="handelClickJumpMap"> <img src="@/assets/images/material/cgzs.png" alt=""></div>
</div>
<div class='card m-top12'>
<screen-title>
@ -23,7 +23,8 @@
<div class="scroll-box">
<div class="scroll-item" v-for="(item, index) in kyllList"
:key="'kyll' + index">
<img :src="require(`../../../../assets/images/kyll/${item.id}.jpg`)" />
<img
:src="require(`../../../../assets/images/kyll/${item.id}.jpg`)" />
<div class="nameAndPosition"><span>{{ item.name
}}</span><span>{{ item.position }}</span> </div>
</div>
@ -43,12 +44,9 @@
<div class="scroll-box">
<div class="scroll-item" v-for="(item, index) in yfwlList"
:key="'dyfc' + index">
<div class="img">
<img
:src="require(`../../../../assets/images/yfwl/${index + 1}.jpg`)" />
</div>
<div class="nameAndcontent">
<div>{{ item.name }}</div>
<div>所属省份{{item.city}}</div>
<div>{{ item.content }}</div>
</div>
</div>
@ -140,20 +138,44 @@ export default {
],
yfwlList: [
{
name: '板栗种植业与培训技术公司',
content: '主导核心产品:种植、育苗、剪裁,根据板栗的地理分布、栽培条件、品种类群及坚硬程度'
name: '安微福斯特种苗有限公司',
city:'安微',
content: '辣椒、甜椒、番茄、西瓜、南瓜。'
},
{
name: '广西子龙种业有限公司',
city:'广西',
content: '豇豆、辣椒、瓜类、大小白菜、生菜、菠菜、韭菜等。'
},
{
name: '上海源怡种苗股份有限公司',
city:'上海',
content: '花卉种苗。'
},
{
name: '上海惠和种业有限公司',
city:'上海',
content: '葱蒜类、瓜类、根茎类、茄果类。'
},
{
name: '坂田种苗(苏州)有限公司',
city:'江苏',
content: '叶菜和果菜;花卉。'
},
{
name: '浩丰大棚',
content: '主导核心产品:西红柿、黄瓜、西兰花、菠菜、冬瓜、芹菜、豆角、茄子等。'
name: '长沙百奥云数据科技有限公司',
city:'湖南',
content: '育种服务。'
},
{
name: '小蜗牛牧场',
content: '主导核心产品:葡萄、草莓、蓝莓的采摘项目。'
name: '山东种业集团有限公司',
city:'山东',
content: '大田作物、果蔬。'
},
{
name: '小蜗牛牧场',
content: '主导核心产品:葡萄、草莓、蓝莓的采摘项目。'
name: '青岛农兴种业科技有限公司',
city:'山东',
content: '鲜食花生。'
}
]
};
@ -166,6 +188,9 @@ export default {
handelClickGarden() {
this.dialogVisibleGarden = true
},
handelClickJumpMap() {
this.$EventBus.$emit('switcMapType', 'polygon')
},
},
components: {
zdyfRightTalents
@ -265,11 +290,13 @@ export default {
.scroll-item {
display: flex;
margin-top: 2px;
background: rgba(71,132,237,0.28);
padding: 8px 11px;
box-sizing: border-box;
.nameAndcontent {
margin-left: 10px;
>:nth-child(2) {
>:nth-child(2),>:nth-child(3) {
font-size: 14px;
color: #BDCEEA;
display: -webkit-box;
@ -284,16 +311,7 @@ export default {
}
}
.img {
padding: 5px;
border: 1px solid #9FCCFF;
img {
width: 130px;
height: 60px;
}
}
}
}
}
@ -318,4 +336,5 @@ export default {
.paragraph {
text-indent: 2em;
}</style>
}
</style>

Loading…
Cancel
Save