Browse Source

红色移风

master
mk 2 years ago
parent
commit
f7bf9b550b
  1. 7
      public/index.html
  2. 1
      public/js/echarts-gl.min.js
  3. 0
      src/assets/images/common/dto.png
  4. 0
      src/assets/images/common/echarts-header.png
  5. 0
      src/assets/images/common/peiBg.png
  6. BIN
      src/assets/images/material/微信图片_20240115132856.png
  7. BIN
      src/assets/images/material/微信图片_20240115132901.jpg
  8. BIN
      src/assets/images/material/微信图片_20240115132905.jpg
  9. BIN
      src/assets/images/material/微信图片_20240115132908.jpg
  10. BIN
      src/assets/images/material/微信图片_20240115132918.jpg
  11. BIN
      src/assets/images/material/微信图片_20240115132921.jpg
  12. BIN
      src/assets/images/resource/djhd/1.jpg
  13. BIN
      src/assets/images/resource/djhd/2.jpg
  14. BIN
      src/assets/images/resource/djhd/3.jpg
  15. BIN
      src/assets/images/resource/dyfc/1.jpg
  16. BIN
      src/assets/images/resource/dyfc/2.jpg
  17. BIN
      src/assets/images/resource/dyfc/3.jpg
  18. BIN
      src/assets/images/resource/zbfc/1.jpg
  19. BIN
      src/assets/images/resource/zbfc/2.jpg
  20. BIN
      src/assets/images/resource/zbfc/3.jpg
  21. BIN
      src/assets/images/resource/zbfc/4.jpg
  22. BIN
      src/assets/images/resource/zbfc/5.jpg
  23. BIN
      src/assets/images/红色移风_slices/by.png
  24. BIN
      src/assets/images/红色移风_slices/顶端.png
  25. 2
      src/store/modules/map.js
  26. 13
      src/style/page.scss
  27. 2
      src/views/next/dialog-module/zdyf-right/kyll/garden.vue
  28. 4
      src/views/next/index.vue
  29. 2
      src/views/next/layout/screen-bottom.vue
  30. 13
      src/views/next/layout/screen-header.vue
  31. 2
      src/views/next/screen-content-left/home-left/index.vue
  32. 881
      src/views/next/screen-content-left/hsyf-left/index.vue
  33. 12
      src/views/next/screen-content-left/zdyf-left/index.vue
  34. 22
      src/views/next/screen-content-map/cpt/hsyf-iframe.vue
  35. 1
      src/views/next/screen-content-map/cpt/zdyf-map.vue
  36. 161
      src/views/next/screen-content-right/hsyf-right/index.vue
  37. 19
      src/views/next/screen-content-right/zdyf-right/index.vue

7
public/index.html

@ -15,16 +15,19 @@
<!-- built files will be auto injected -->
<script src="./js/gcoord.global.js"></script>
<script src="./js/h5player/h5player.min.js"></script>
<script src="./js/echarts4.min.js"></script>
<script src="./js/echarts-gl.min.js"></script>
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" /> -->
<link rel="stylesheet" href="./css/animate.min-4.1.1.css">
<% if (process.env.NODE_ENV === 'development') { %>
<script src="./js/echarts4.min.js"></script>
<% } %>
<% if (process.env.NODE_ENV === 'production') { %>
<!-- <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> -->
<script src="./js/vue-2.6.10.js"></script>
<script src="./js/element-ui-2.15.13.js"></script>
<script src="./js/echarts4.min.js"></script>
<% } %>
</body>
</html>

1
public/js/echarts-gl.min.js

File diff suppressed because one or more lines are too long

0
src/assets/images/红色移风_slices/点.png → src/assets/images/common/dto.png

Before

Width:  |  Height:  |  Size: 958 B

After

Width:  |  Height:  |  Size: 958 B

0
src/assets/images/红色移风_slices/箭头.png → src/assets/images/common/echarts-header.png

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 426 B

0
src/assets/images/红色移风_slices/光圈.png → src/assets/images/common/peiBg.png

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

BIN
src/assets/images/material/微信图片_20240115132856.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 MiB

BIN
src/assets/images/material/微信图片_20240115132901.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

BIN
src/assets/images/material/微信图片_20240115132905.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

BIN
src/assets/images/material/微信图片_20240115132908.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

BIN
src/assets/images/material/微信图片_20240115132918.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

BIN
src/assets/images/material/微信图片_20240115132921.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

BIN
src/assets/images/resource/djhd/1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
src/assets/images/resource/djhd/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
src/assets/images/resource/djhd/3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
src/assets/images/resource/dyfc/1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
src/assets/images/resource/dyfc/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
src/assets/images/resource/dyfc/3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
src/assets/images/resource/zbfc/1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
src/assets/images/resource/zbfc/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
src/assets/images/resource/zbfc/3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
src/assets/images/resource/zbfc/4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
src/assets/images/resource/zbfc/5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
src/assets/images/红色移风_slices/by.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

BIN
src/assets/images/红色移风_slices/顶端.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

2
src/store/modules/map.js

@ -4,7 +4,7 @@ export default {
streetId: '12121212121212ab', // 锦水街道id 1215437824174608386
communityId: '', // 社区id
gridId: '', // 网格id
navId:'sy'//选中nav
navId:'hsyf'//选中nav
},
mutations: {
set_mapLevel (state, mapLevel) {

13
src/style/page.scss

@ -18,6 +18,19 @@ img {
top: -6px;
// text-shadow: 0px -2px 20px rgb(0, 2, 41, 0.55);
}
.screen-title-right{
font-size: 14px;
color: #90B1DC;
padding: 2px 8px;
box-sizing: border-box;
width: -moz-fit-content;
width: fit-content;
cursor: pointer;
border: 1px solid #11649E;
border-radius: 2px;
margin-right: 3px;
font-family: normal;
}
.card{
background: url("~@/assets/images/common/cardBg.png") no-repeat;
background-size: 100% 100%;

2
src/views/next/dialog-module/zdyf-right/kyll/garden.vue

@ -15,7 +15,7 @@
<div class="header"><img src="@/assets/images/common/title-small.png" alt=""
style="width: 20px;height: 20px;">基本情况
</div>
<img src="@/assets/images/kyll/garden.png" alt=""
<img src="@/assets/images/resource/kyll/garden.png" alt=""
style=" float: left;shape-outside: inherit;margin:0 20px 0 0px;width: 360px;height:273px;">
<p class="paragraph">
青岛大沽河流域国家农业科技园由即墨农业高新区和青岛生物高新科技产业园合并于2021年3月正式挂牌成立园区是以大沽河流域为核心覆盖青岛带动周边辐射全国的国家级农业科技园区园区分为东西两区西区位于即墨区移风店镇占地360亩以蔬菜花果栽培和种苗繁育为主东区位于即墨区段泊岚镇占地1373亩以畜牧业生物高新产业为主东西两区的优势互补形成了以大沽河流域为核心的农业综合体园区以科技兴农强农惠民为己任聚人才搭平台引项目为目标以创新发展为灵魂以技术孵化为手段大力发展现代高效农业培育一批高精尖农业企业促进种业技术自立自强种源自主可控使园区建设成为知名的国家级农业科技园区

4
src/views/next/index.vue

@ -10,7 +10,7 @@
<div class="top-border"></div>
<ScreenHeader />
<ScreenBottom />
<ScreenBottom v-if="navId != 'whyf'"/>
<ScreenContent />
<ScreenContentLeft />
<ScreenContentRight />
@ -47,7 +47,7 @@ export default {
}
},
computed: {
...mapGetters(['scale'])
...mapGetters(['scale','navId'])
},
components: {
ScreenHeader,

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

@ -1,5 +1,5 @@
<template>
<div class='screen-bottm'>
<div class='screen-bottm' >
<div class="nav">
<div :class="{ 'item': true, 'active': active === item.id }" v-for="(item, index) in navList"
@click="handelCLickNav(item, index)">

13
src/views/next/layout/screen-header.vue

@ -9,6 +9,7 @@
</template>
<script>
import { mapGetters, mapActions } from 'vuex'
export default {
name: 'screen-header',
data() {
@ -28,7 +29,14 @@ export default {
};
pollTime();
},
computed: {
...mapGetters(['navId'])
},
methods: {
...mapActions({
set_nav: 'SET_NAV',
}),
computeCurrentTime() {
let year = new Intl.DateTimeFormat('zh-CN-u-ca-chinese', { dateStyle: 'full' }).format(new Date());
this.showYearZh = '农历' + year.match(/年(.+)星期/)[1];
@ -37,7 +45,12 @@ export default {
this.showTime = this.$moment().format("LT");
},
handelClearMap(){
if(this.navId == 'whyf'){
this.set_nav('sy')
}else{
this.$EventBus.$emit('clearMap','Emap')
}
},
}
}

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

@ -7,7 +7,7 @@
<div class="card-item-yfjj">
<!-- <transition name="slide-transform"> -->
<!-- <section v-if="currentIndex == 0"> -->
<img src="@/assets/images/kyll/garden.png" alt="">
<img src="@/assets/images/resource/kyll/garden.png" alt="">
<p>移风店镇位于即墨区西北部青岛市版图的中心位置地处威海烟台潍坊2小时经济圈内距机场18公里高铁站21公里毗邻沈海济青和青新高速交通优势明显
</p>
<p> 青岛(移风)国际蔬菜花卉种子产业园即墨农业高新技术开发区均落于境内将打造全国重要的蔬菜花卉种子研发和繁育中心成为全国种业南广州北青岛格局承载地

881
src/views/next/screen-content-left/hsyf-left/index.vue

@ -1,22 +1,65 @@
<template>
<div>
<div class='card h292' >
<div class='card h292'>
<screen-title>
<div slot="left" class="screen-title-left">组织建设</div>
<div slot="right" class="screen-title-right">组织架构</div>
</screen-title>
<div class="card-item-zzjs">
<div class="top">
<div class="item" v-for="(item, index) in agencyList" :key="index">
<div class="num">{{ item.num }}</div>
<div class="agency">{{ item.agency }}</div>
</div>
</div>
<div class="bot">
<div class="item" v-for="(item, index) in typeList" :key="index">
<img :src="item.imgSrc" alt="">
<div class="num">{{ item.num }}</div>
<div class="agency">{{ item.type }}</div>
</div>
</div>
</div>
</div>
<div class='card h292' style="margin-top: 8px;">
<screen-title>
<div slot="left" class="screen-title-left">党员分析</div>
</screen-title>
<div class="card-item-dyfx">
<div class="pei">
<div class="echarts-header">
<img src="@/assets/images/common/dto.png" alt="" class="dto">
<span>年龄统计</span>
<div></div>
<img src="@/assets/images/common/echarts-header.png" alt="">
</div>
<div id="charts" style="width: 100%; height:100%; z-index: 10;"></div>
<div class="buttomCharts"></div>
</div>
<div class="bar">
<div class="echarts-header">
<img src="@/assets/images/common/dto.png" alt="" class="dto">
<span>各新村党员统计</span>
<div></div>
<img src="@/assets/images/common/echarts-header.png" alt="">
</div>
<div id="chartsBar" style="width: 100%; height:100%; z-index: 10;"></div>
</div>
</div>
</div>
<div class='card h292 m-top12'>
<screen-title>
<div slot="left" class="screen-title-left">党员风采</div>
</screen-title>
<div class="card-item-zdyf">
<div class="card-item-dyfc">
<div class="item" v-for="(item, index) in partList" :key="index">
<img :src="item.imgSrc" alt="">
<div class="name">{{ item.name }}</div>
<div class="unit">{{ item.unit }}</div>
<div class="title">{{ item.title }}</div>
</div>
</div>
</div>
</div>
@ -26,17 +69,658 @@
export default {
data() {
return {
agencyList: [
{ num: 11, agency: '党委' },
{ num: 97, agency: '党支部' },
{ num: 235, agency: '党小组' },
{ num: 3496, agency: '党员' },
],
typeList: [
{
imgSrc: require('@/assets/images/icon/wmfw.png'),
type: '为民服务',
num: 12,
},
{
imgSrc: require('@/assets/images/icon/ztdr.png'),
type: '主题党日',
num: 36,
}, {
imgSrc: require('@/assets/images/icon/ljgj.png'),
type: '联建共建',
num: 14,
}
],
partList: [
{
name: '徐法佑',
unit: '徐家沟村人',
title: '丹心一片风华百年带着两个兵,敢挡一个团',
imgSrc: require('@/assets/images/resource/dyfc/1.jpg')
},
{
name: '傅祖聪',
unit: '移风中学',
title: '培桃育李四十三载乐善好施奉献一生',
imgSrc: require('@/assets/images/resource/dyfc/2.jpg')
},
{
name: '朱爱香',
unit: '太平庄村人',
title: '一座大棚撑起新型农民致富梦',
imgSrc: require('@/assets/images/resource/dyfc/3.jpg')
}
],
peiOption: null,
optionData: [
{
name: '20-40岁',//
value: 19,//
itemStyle: {//
color: 'rgba(227,235,45,1)'
}
}, {
name: '40-60岁',//
value: 13,
itemStyle: {
color: 'rgba(19,141,255,1)',
}
}, {
name: '60-80岁',//绿
value: 15,
itemStyle: {
color: 'rgba(253, 112, 0, 1)'
}
},
{
name: '80岁以上',//
value: 16,
itemStyle: {
color: 'rgba(21, 214, 131, 1)'
}
},
],
barOption: null,
optionDataB: [
{
name: '移风村',
value: 1242,
},
{
name: '上泊新村',
value: 986,
},
{
name: '河流新村',
value: 744,
},
{
name: '滨河村',
value: 653,
}, {
name: '大坝新村',
value: 498,
},
]
};
},
created() {
},
mounted() {
this.$nextTick(function () {
this.initChart();
this.initBar()
});
},
beforeDestroy() {
},
methods: {
initChart() {
//3d
let myChart = echarts.init(document.getElementById('charts'));
// option ; getPie3D(01)
this.peiOption = this.getPie3D(this.optionData, 0.75);
//
myChart.setOption(this.peiOption);
//
this.bindListen(myChart);
},
initBar() {
let myChart = echarts.init(document.getElementById('chartsBar'));
this.barOption = this.getBar(this.optionDataB)
myChart.setOption(this.barOption)
},
getBar(data) {
let symbolData = data.map(item => ({
symbolPosition: 'end',
value: item.value
}))
let arrByKey = data.map(item => (item.value))
let option = {
// backgroundColor: '#000000',
grid: {
top: 10,
bottom: -.5,
// right: 0,
left: 0,
},
xAxis: {
show: false
},
yAxis: [{
triggerEvent: true,
show: true,
inverse: true,
data: symbolData,
axisLine: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
}, {
triggerEvent: true,
show: true,
inverse: true,
data: arrByKey,
axisLine: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
interval: 0,
shadowOffsetX: '-50px',
color: ['#DBE9FF'],
align: 'right',
verticalAlign: 'bottom',
// lineHeight: 40,
fontSize: 14,
formatter: function (value, index) {
// return (data[index].value / data[index].sum) * 100
return value
},
}
}],
series: [
{
name: 'XXX',
type: 'pictorialBar',
symbol: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAs1JREFUOE+9lE1vW0UUhp8zc+/1zY0dV6RuZJSFoWWLWoVNEQh3hRTBBsGCX8COv5Bkyc9gw6IVSyR2zQLRbgKCtpFABiRkKQK11MT2te/HzCE3cUxaHJVKiJFmMdKZR+/5eoX/+Mjz8lR1/kdE9On//wpYQXZA3trFdLsniN2j2wW/c/TYFvGn4GcCt1XNO3vY1Q3sEtjBQ4xTdFLim21cH1wX3Knac4GVqltgrvUI3AWieo0oNwTTCcYkiPUUbsrUXiT/FsoPjtRW0IXACrYLtgMBA+IsIjEFsZZEccB6KG4tK/1PQRD+aFeYtiEXcCwCVrA9CF6E0A9ZOhxRD2ss24C6VX+tZvRdS5Wy+8xF0e00ZTRpkb0G5RPAWfdkf5+g1SI69CReqGtEI/SshYF/PTb+fYHLpXIn1+ATl/FdCqPJr2QbG5TzlM/C7CVqTlmu1airpxHCS5G4t0OrmwKrpeebTOXTrLRfNWo8/H1M+sca2Q2Rsur0cQ1nQPv9b9SSZRJ1NAQuBOpejY2+FwpvVnG553YmwS3vuK/KILWMGo+ZdDrkMhudU6Dp9QhHF1mqe+o4WlHo34iN/9AYrgKPCidfZGq/zOGXWBjmlmE6Ji3WyDc4SXeu8KaqXe8TNVdYijNWg7DYTKx8JMLLzmsv9/L51AdfO+HAFIwaCUMZk/ZPYNUMPjnYqmr7EKUHx7V7JQ6Kj63IDQcPslJvFhreUxgUGWPxjJqGyQ9t8u4OXrb/hv1DYbtOzZXF5UYkm6WynKvcdWp7UpKVhjSyjBkw7XQomA3ywl1W1eMaNq8QPn5EM7K0vOIy4dB5vC/IkiFTrpCd3YpFxnLclGpft8Dc6RO+EBOEFjMdY1dWYFpS/plR0qZ4ul7nAuduAuYSmATMQR+5vo7fA/8z+H3Qs65ynu3Nd/nU5yqb2ppFV9a0BbrI954JfF6j/d+AfwETJFsk0SzcoQAAAABJRU5ErkJggg==',
symbolSize: [10, 2, 10, 2],
symbolRotate : 45,
symbolOffset: [5, 0],
z: 12,
itemStyle: {
normal: {
color: '#cde0ef',
// image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAs1JREFUOE+9lE1vW0UUhp8zc+/1zY0dV6RuZJSFoWWLWoVNEQh3hRTBBsGCX8COv5Bkyc9gw6IVSyR2zQLRbgKCtpFABiRkKQK11MT2te/HzCE3cUxaHJVKiJFmMdKZR+/5eoX/+Mjz8lR1/kdE9On//wpYQXZA3trFdLsniN2j2wW/c/TYFvGn4GcCt1XNO3vY1Q3sEtjBQ4xTdFLim21cH1wX3Knac4GVqltgrvUI3AWieo0oNwTTCcYkiPUUbsrUXiT/FsoPjtRW0IXACrYLtgMBA+IsIjEFsZZEccB6KG4tK/1PQRD+aFeYtiEXcCwCVrA9CF6E0A9ZOhxRD2ss24C6VX+tZvRdS5Wy+8xF0e00ZTRpkb0G5RPAWfdkf5+g1SI69CReqGtEI/SshYF/PTb+fYHLpXIn1+ATl/FdCqPJr2QbG5TzlM/C7CVqTlmu1airpxHCS5G4t0OrmwKrpeebTOXTrLRfNWo8/H1M+sca2Q2Rsur0cQ1nQPv9b9SSZRJ1NAQuBOpejY2+FwpvVnG553YmwS3vuK/KILWMGo+ZdDrkMhudU6Dp9QhHF1mqe+o4WlHo34iN/9AYrgKPCidfZGq/zOGXWBjmlmE6Ji3WyDc4SXeu8KaqXe8TNVdYijNWg7DYTKx8JMLLzmsv9/L51AdfO+HAFIwaCUMZk/ZPYNUMPjnYqmr7EKUHx7V7JQ6Kj63IDQcPslJvFhreUxgUGWPxjJqGyQ9t8u4OXrb/hv1DYbtOzZXF5UYkm6WynKvcdWp7UpKVhjSyjBkw7XQomA3ywl1W1eMaNq8QPn5EM7K0vOIy4dB5vC/IkiFTrpCd3YpFxnLclGpft8Dc6RO+EBOEFjMdY1dWYFpS/plR0qZ4ul7nAuduAuYSmATMQR+5vo7fA/8z+H3Qs65ynu3Nd/nU5yqb2ppFV9a0BbrI954JfF6j/d+AfwETJFsk0SzcoQAAAABJRU5ErkJggg==',
}
},
data: symbolData
},
{
name: '条',
type: 'bar',
showBackground: true,
barBorderRadius: 30,
yAxisIndex: 0,
data: data,
barWidth: 5,
// align: left,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
1,
0,
[{
offset: 0,
color: '#1f4889'
},
{
offset: 1,
color: '#2caffd'
}
],
false
),
// barBorderRadius: 10
},
// color: '#A71A2B',
// barBorderRadius: 4,
},
label: {
normal: {
color: '#DBE9FF',
show: true,
position: [0, '-15px'],
textStyle: {
fontSize: 14
},
formatter: function (a, b) {
return a.name
}
}
}
}]
};
return option
},
// series-surface.parametricEquation
getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, h) {
//
let midRatio = (startRatio + endRatio) / 2;
let startRadian = startRatio * Math.PI * 2;
let endRadian = endRatio * Math.PI * 2;
let midRadian = midRatio * Math.PI * 2;
//
if (startRatio === 0 && endRatio === 1) {
isSelected = false;
}
// / k 1/3
k = typeof k !== 'undefined' ? k : 1 / 3;
// x y 0
let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
// 1
let hoverRate = isHovered ? 1.05 : 1;
//
return {
u: {
min: -Math.PI,
max: Math.PI * 3,
step: Math.PI / 32
},
v: {
min: 0,
max: Math.PI * 2,
step: Math.PI / 20
},
x: function (u, v) {
if (u < startRadian) {
return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
if (u > endRadian) {
return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
},
y: function (u, v) {
if (u < startRadian) {
return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
if (u > endRadian) {
return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
},
z: function (u, v) {
if (u < -Math.PI * 0.5) {
return Math.sin(u);
}
if (u > Math.PI * 2.5) {
return Math.sin(u) * h * .1;
}
return Math.sin(v) > 0 ? 1 * h * .1 : -1;
}
};
},
getPie3D(pieData, internalDiameterRatio) {
let that = this;
let series = [];
let sumValue = 0;
let startValue = 0;
let endValue = 0;
let legendData = [];
let legendBfb = [];
let k = 1 - internalDiameterRatio;
pieData.sort((a, b) => {
return (b.value - a.value);
});
// series-surface()
for (let i = 0; i < pieData.length; i++) {
sumValue += pieData[i].value;
let seriesItem = {
//
name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
type: 'surface',
//
parametric: true,
//线
wireframe: {
show: false
},
pieData: pieData[i],
pieStatus: {
selected: false,
hovered: false,
k: k
},
//()
// center: ['50%', '100%']
};
//
if (typeof pieData[i].itemStyle != 'undefined') {
let itemStyle = {};
typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
seriesItem.itemStyle = itemStyle;
}
series.push(seriesItem);
}
// 使 sumValue getParametricEquation
// series-surface series-surface.parametricEquation
legendData = [];
legendBfb = [];
for (let i = 0; i < series.length; i++) {
endValue = startValue + series[i].pieData.value;
series[i].pieData.startRatio = startValue / sumValue;
series[i].pieData.endRatio = endValue / sumValue;
series[i].parametricEquation = this.getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio,
false, false, k, series[i].pieData.value);
startValue = endValue;
let bfb = that.fomatFloat(series[i].pieData.value / sumValue, 4);
legendData.push({
name: series[i].name,
value: bfb
});
legendBfb.push({
name: series[i].name,
value: bfb
});
}
//()
let boxHeight = this.getHeight3D(series, 13);//3d/
// legendDataseries
let option = {
//
legend: {
data: legendData,
//
orient: 'horizontal',
left: 10,
top: 140,
//
itemGap: 15,
textStyle: {
color: '#A1E2FF',
},
show: true,
icon: "vertical",
//
// formatter: function (name) {
// var target;
// for (var i = 0, l = pieData.length; i < l; i++) {
// if (pieData[i].name == name) {
// target = pieData[i].value;
// }
// }
// return `${name}: ${target}`;
// }
//
// formatter: function(param) {
// let item = legendBfb.filter(item => item.name == param)[0];
// let bfs = that.fomatFloat(item.value * 100, 2) + "%";
// console.log(item.name)
// return `${item.name} :${bfs}`;
// }
},
//( )
tooltip: {
formatter: params => {
if (params.seriesName !== 'mouseoutSeries' && params.seriesName !== 'pie2d') {
let bfb = ((option.series[params.seriesIndex].pieData.endRatio - option.series[params.seriesIndex].pieData.startRatio) *
100).toFixed(2);
return `${params.seriesName}<br/>` +
`<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>` +
`${bfb}`;
}
}
},
//
xAxis3D: {
min: -1,
max: 1
},
yAxis3D: {
min: -1,
max: 1
},
zAxis3D: {
min: -1,
max: 1
},
// legend:{
// bottom:20,
// // left: '-15%',
// textStyle: {
// color: '#fff !important'
// }
// },
//
grid3D: {
show: false,
boxHeight: boxHeight, //
//
top: '-20.5%',
left: '',
viewControl: { //3d
alpha: 25, //( )
distance: 190,//zoom()
rotateSensitivity: 0, //0
zoomSensitivity: 0, //0
panSensitivity: 0, //0
autoRotate: false //
}
},
series: series
};
return option;
},
getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, h) {
//
let midRatio = (startRatio + endRatio) / 2;
let startRadian = startRatio * Math.PI * 2;
let endRadian = endRatio * Math.PI * 2;
let midRadian = midRatio * Math.PI * 2;
//
if (startRatio === 0 && endRatio === 1) {
isSelected = false;
}
// / k 1/3
k = typeof k !== 'undefined' ? k : 1 / 3;
// x y 0
let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
// 1
let hoverRate = isHovered ? 1.05 : 1;
//
return {
u: {
min: -Math.PI,
max: Math.PI * 3,
step: Math.PI / 32
},
v: {
min: 0,
max: Math.PI * 2,
step: Math.PI / 20
},
x: function (u, v) {
if (u < startRadian) {
return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
if (u > endRadian) {
return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
},
y: function (u, v) {
if (u < startRadian) {
return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
if (u > endRadian) {
return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
}
return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
},
z: function (u, v) {
if (u < -Math.PI * 0.5) {
return Math.sin(u);
}
if (u > Math.PI * 2.5) {
return Math.sin(u) * h * .1;
}
return Math.sin(v) > 0 ? 1 * h * .1 : -1;
}
};
},
fomatFloat(num, n) {
var f = parseFloat(num);
if (isNaN(f)) {
return false;
}
f = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); // n
var s = f.toString();
var rs = s.indexOf('.');
//0
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + n) {
s += '0';
}
return s;
},
bindListen(myChart) {
let that = this;
let selectedIndex = '';
let hoveredIndex = '';
//
myChart.on('click', function (params) {
// option.series
let isSelected = !that.peiOption.series[params.seriesIndex].pieStatus.selected;
let isHovered = that.peiOption.series[params.seriesIndex].pieStatus.hovered;
let k = that.peiOption.series[params.seriesIndex].pieStatus.k;
let startRatio = that.peiOption.series[params.seriesIndex].pieData.startRatio;
let endRatio = that.peiOption.series[params.seriesIndex].pieData.endRatio;
// option
if (selectedIndex !== '' && selectedIndex !== params.seriesIndex) {
that.peiOption.series[selectedIndex].parametricEquation = that.getParametricEquation(that.peiOption.series[
selectedIndex].pieData
.startRatio, that.peiOption.series[selectedIndex].pieData.endRatio, false, false, k, that.peiOption.series[
selectedIndex].pieData
.value);
that.peiOption.series[selectedIndex].pieStatus.selected = false;
}
// / option
that.peiOption.series[params.seriesIndex].parametricEquation = that.getParametricEquation(startRatio, endRatio,
isSelected,
isHovered, k, that.peiOption.series[params.seriesIndex].pieData.value);
that.peiOption.series[params.seriesIndex].pieStatus.selected = isSelected;
// seriesIndex
isSelected ? selectedIndex = params.seriesIndex : null;
// 使 option
myChart.setOption(that.peiOption);
});
// mouseover
myChart.on('mouseover', function (params) {
//
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
// mouseover
if (hoveredIndex === params.seriesIndex) {
return;
//
} else {
// option
if (hoveredIndex !== '') {
// option.series false
isSelected = that.peiOption.series[hoveredIndex].pieStatus.selected;
isHovered = false;
startRatio = that.peiOption.series[hoveredIndex].pieData.startRatio;
endRatio = that.peiOption.series[hoveredIndex].pieData.endRatio;
k = that.peiOption.series[hoveredIndex].pieStatus.k;
// option
that.peiOption.series[hoveredIndex].parametricEquation = that.getParametricEquation(startRatio, endRatio,
isSelected,
isHovered, k, that.peiOption.series[hoveredIndex].pieData.value);
that.peiOption.series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
hoveredIndex = '';
}
// mouseover option
if (params.seriesName !== 'mouseoutSeries' && params.seriesName !== 'pie2d') {
// option.series true
isSelected = that.peiOption.series[params.seriesIndex].pieStatus.selected;
isHovered = true;
startRatio = that.peiOption.series[params.seriesIndex].pieData.startRatio;
endRatio = that.peiOption.series[params.seriesIndex].pieData.endRatio;
k = that.peiOption.series[params.seriesIndex].pieStatus.k;
// option
that.peiOption.series[params.seriesIndex].parametricEquation = that.getParametricEquation(startRatio, endRatio,
isSelected, isHovered, k, that.peiOption.series[params.seriesIndex].pieData.value + 5);
that.peiOption.series[params.seriesIndex].pieStatus.hovered = isHovered;
// seriesIndex
hoveredIndex = params.seriesIndex;
}
// 使 option
myChart.setOption(that.peiOption);
}
});
// bug
myChart.on('globalout', function () {
//
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
if (hoveredIndex !== '') {
// option.series true
isSelected = that.peiOption.series[hoveredIndex].pieStatus.selected;
isHovered = false;
k = that.peiOption.series[hoveredIndex].pieStatus.k;
startRatio = that.peiOption.series[hoveredIndex].pieData.startRatio;
endRatio = that.peiOption.series[hoveredIndex].pieData.endRatio;
// option
that.peiOption.series[hoveredIndex].parametricEquation = that.getParametricEquation(startRatio, endRatio,
isSelected,
isHovered, k, that.peiOption.series[hoveredIndex].pieData.value);
that.peiOption.series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
hoveredIndex = '';
}
// 使 option
myChart.setOption(that.peiOption);
});
},
//3d
getHeight3D(series, height) {
series.sort((a, b) => {
return (b.pieData.value - a.pieData.value);
})
return height * 15 / series[0].pieData.value;
},
},
components: {},
computed: {},
@ -50,6 +734,191 @@ export default {
display: flex;
flex-direction: column;
&-item-zzjs {
display: flex;
flex-direction: column;
padding: 25px 25px 30px 20px;
box-sizing: border-box;
.top {
display: flex;
justify-content: space-between;
padding: 0 10px;
:nth-child(1)>.agency::after {
background: #E60000;
}
:nth-child(2)>.agency::after {
background: #FF6305;
}
:nth-child(3)>.agency::after {
background: #FFB505;
}
:nth-child(4)>.agency::after {
background: #FFF605;
}
>.item {
display: flex;
flex-direction: column;
.num {
font-family: pangmenzhengdao;
font-size: 20px;
}
.agency {
font-size: 14px;
color: #ACBBD4;
position: relative;
&::after {
content: '';
width: 6px;
height: 6px;
border-radius: 50%;
position: absolute;
left: -10px;
top: 7px;
}
}
}
}
.bot {
flex: 1;
display: flex;
justify-content: space-around;
.item {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 120px;
height: 100px;
}
.num {
font-family: pangmenzhengdao;
color: #EBF2FA;
text-shadow: 0 0 10px #fff;
font-size: 22px;
}
}
}
}
&-item-dyfx {
display: flex;
padding: 16px;
flex: 1;
.pei,
.bar {
.echarts-header {
display: flex;
align-items: center;
:nth-child(1) {
width: 18px;
height: 18px;
margin-right: 8px;
}
:nth-child(2) {}
:nth-child(3) {
flex: 1;
height: 1px;
border-top: 2px dotted #2E8BBD;
margin: 0 3px;
}
:nth-child(4) {
width: 12px;
height: 12px;
}
}
}
.pei {
width: 47%;
display: flex;
flex-direction: column;
margin-right: 50px;
.buttomCharts {
background: center top url('~@/assets/images/common/peiBg.png') no-repeat;
background-size: 100% 100%;
height: 91px;
width: 202px;
position: absolute;
top: 453px;
left: 16px;
}
}
.bar {
flex: 1;
}
}
&-item-dyfc {
display: flex;
padding: 16px 16px 21px 16px;
box-sizing: border-box;
.item {
display: flex;
flex-direction: column;
border: 1px solid #77A5D8;
padding: 5px;
box-sizing: border-box;
margin-right: 4px;
img {
width: 130px;
height: 80px;
}
.name {
margin: 11px 0 8px 0;
padding-left: 12px;
position: relative;
&::after {
content: '';
width: 4px;
height: 4px;
border-radius: 4px;
background: #6BEAC6;
position: absolute;
left: 2px;
top: 10px;
}
}
.unit {
font-size: 12px;
padding: 0 5px;
color: #BDCEEA;
margin-bottom: 9px;
}
.title {
font-size: 14px;
padding: 0 5px;
color: #DBE9FF;
}
}
}
}
</style>

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

@ -237,18 +237,6 @@ export default {
color: #D4E7FF;
}
.screen-title-right {
font-size: 14px;
color: #90B1DC;
padding: 2px 8px;
box-sizing: border-box;
width: fit-content;
cursor: pointer;
border: 1px solid #11649E;
border-radius: 2px;
font-family: normal;
}
@keyframes rotate {
from {
transform: rotate(0deg);

22
src/views/next/screen-content-map/cpt/hsyf-iframe.vue

@ -1,5 +1,8 @@
<template>
<div class=''>2222</div>
<div style="width: 100%; height: 100%;">
<div class='bg_img'>
</div>
</div>
</template>
<script>
@ -7,14 +10,23 @@ export default {
data() {
return {};
},
created() {},
created() { },
methods: {},
components:{},
computed:{},
components: {},
computed: {},
watch: {},
}
</script>
<style lang="scss" scoped>
.bg_img {
background: url('~@/assets/images/map/echartsBg.png');
background-size: 100% 100%;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
</style>

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

@ -123,6 +123,7 @@ export default {
}),
async switcMapType(type) {
if (type === 'Emap') {
this.mapType = null;
this.mapFlag = 'Emap';
scene.destroy();
myMap = null;

161
src/views/next/screen-content-right/hsyf-right/index.vue

@ -1,22 +1,47 @@
<template>
<div>
<div class='card h292' >
<div class='card h292'>
<screen-title>
<div slot="left" class="screen-title-left">党建活动</div>
</screen-title>
<div class="card-item-djhd">
<div class="item" v-for="(item, index) in activityList" :key="index">
<img :src="item.imgSrc" alt="">
<section>
<span>{{ item.title }}</span>
<span>{{ item.unit }}</span>
</section>
</div>
</div>
</div>
<div class='card h292' style="margin-top: 8px;">
<screen-title>
<div slot="left" class="screen-title-left">支部风采</div>
</screen-title>
<div class="card-item-zbfc">
<el-carousel :interval="0" type="card" height="160px" >
<el-carousel-item v-for="item in imgList" :key="item">
<img :src="item" alt="">
</el-carousel-item>
</el-carousel>
<div class="tabs">
<img src="@/assets/images/common/carousel-left.png" alt="">
上泊村为村民发放政法宣传资料
<img src="@/assets/images/common/carousel-right.png" alt="">
</div>
</div>
</div>
<div class='card h292 m-top12'>
<screen-title>
<div slot="left" class="screen-title-left">党务公开</div>
</screen-title>
<div class="card-item-zdyf">
<div class="card-item-dwgk">
<div class="item" v-for="(item, index) in policyList" :key="index">
<div class="unit">{{ item.unit }}</div>
<div class="title">{{ item.title }}</div>
<div class="time">{{ item.time }}</div>
</div>
</div>
</div>
</div>
@ -26,7 +51,57 @@
export default {
data() {
return {
activityList: [
{
imgSrc: require('@/assets/images/resource/djhd/1.jpg'),
title: '“奋斗新征程,基层谱新篇”乡村振兴宣传月服务活动',
unit: '移风村党支部'
},
{
imgSrc: require('@/assets/images/resource/djhd/2.jpg'),
title: '集体学习 “研究部署学习宣传贯彻党的二十大精神 ”',
unit: '移风村党支部'
},
{
imgSrc: require('@/assets/images/resource/djhd/3.jpg'),
title: '以“主题党日+为民办事”为平台,组织广大党员积极投身宣传活动',
unit: '移风村党支部'
}
],
imgList: [
require('@/assets/images/resource/zbfc/1.jpg'),
require('@/assets/images/resource/zbfc/2.jpg'),
require('@/assets/images/resource/zbfc/3.jpg'),
require('@/assets/images/resource/zbfc/4.jpg'),
require('@/assets/images/resource/zbfc/5.jpg'),
],
policyList: [
{
unit: '中共青岛市...',
title: '关于公开基层党委在新···',
time: '2024-01-02'
},
{
unit: '中共青岛市...',
title: '即墨区水利局2023年国···',
time: '2023-12-01'
},
{
unit: '中共青岛市...',
title: '青岛市即墨区人民政府···',
time: '2023-09-22'
},
{
unit: '中共青岛市...',
title: '青岛市卫生健康委员会···',
time: '2023-09-13'
},
{
unit: '中共青岛市...',
title: '农业局关于印发《即墨···',
time: '2023-05-06'
}
]
};
},
created() {
@ -50,6 +125,84 @@ export default {
display: flex;
flex-direction: column;
&-item-djhd {
padding: 16px;
box-sizing: border-box;
display: flex;
flex-direction: column;
>.item {
margin-bottom: 4px;
img {
width: 120px;
height: 68px;
margin-right: 16px;
}
section {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
>:nth-child(2) {
color: #BDCEEA;
font-size: 14px;
}
}
}
}
&-item-zbfc {
padding: 16px;
box-sizing: border-box;
.tabs {
display: flex;
align-items: center;
justify-content: center;
margin-top: 21px;
background: linear-gradient(to left, #ecf5fd00 0%, #0e5eaa 50%, #ecf5fd00 100%);
img {
width: 42px;
height: 42px;
}
}
}
&-item-dwgk {
display: flex;
flex-direction: column;
padding: 16px;
>.item {
display: flex;
height: 44px;
align-items: center;
padding: 13px 9px;
box-sizing: border-box;
justify-content: space-between;
.time {
font-size: 14px;
color: #BCD0F0;
}
&:nth-child(odd) {
background: rgb(44, 103, 208, .46);
}
}
}
}
::v-deep .el-carousel__indicators {
display: none;
}
::v-deep.el-carousel__item--card {
width: 250px;
height: 160px;
}
</style>

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

@ -24,7 +24,7 @@
<div class="scroll-item" v-for="(item, index) in kyllList"
:key="'kyll' + index">
<img
:src="require(`../../../../assets/images/kyll/${item.id}.jpg`)" />
:src="require(`@/assets/images/resource/kyll/${item.id}.jpg`)" />
<div class="nameAndPosition"><span>{{ item.name
}}</span><span>{{ item.position }}</span> </div>
</div>
@ -293,23 +293,6 @@ export default {
}
}
.screen-title-right {
display: flex;
>span {
margin-left: 5px;
font-size: 14px;
color: #90B1DC;
padding: 2px 8px;
box-sizing: border-box;
width: fit-content;
cursor: pointer;
border: 1px solid #11649E;
border-radius: 2px;
font-family: normal;
}
}
.paragraph {
text-indent: 2em;
}</style>

Loading…
Cancel
Save