You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1281 lines
34 KiB
1281 lines
34 KiB
<template>
|
|
<div>
|
|
<div class="card h292">
|
|
<screen-title-red>
|
|
<div slot="left" class="screen-title-left">组织建设</div>
|
|
<div slot="right" class="screen-title-right" @click="handelClickOrg">
|
|
<span>组织架构</span>
|
|
</div>
|
|
</screen-title-red>
|
|
<div class="card-item-zzjs">
|
|
<div class="top">
|
|
<div class="item" v-for="(item, index) in typeList" :key="index">
|
|
<div class="imgBox">
|
|
<img :src="item.imgSrc" alt="" />
|
|
</div>
|
|
<div class="num">{{ item.num }}</div>
|
|
<div
|
|
class="agency"
|
|
style="color: #fbe9c5 !important; margin-top: 8px"
|
|
>
|
|
{{ item.type }}
|
|
</div>
|
|
<div class="bubbles">
|
|
<span
|
|
class="bubble"
|
|
v-for="(item, index) in bubbleList"
|
|
:key="index"
|
|
:style="{
|
|
'--w': item.w,
|
|
'--c': item.c,
|
|
'--x': item.x,
|
|
'--d':
|
|
parseInt(bubbleList.length / 2) +
|
|
1 -
|
|
Math.abs(index - parseInt(bubbleList.length / 2)),
|
|
}"
|
|
></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="bot">
|
|
<div class="bot-item">
|
|
<div>
|
|
<img :src="require('@/assets/images/icon/dyzxhRed.png')" />
|
|
</div>
|
|
<div class="bot-item-val">
|
|
<div class="bot-item-val-num">{{ 692 }}</div>
|
|
<div class="bot-item-val-title">党员中心户</div>
|
|
</div>
|
|
</div>
|
|
<div class="bot-item">
|
|
<div>
|
|
<img :src="require('@/assets/images/icon/dysRed.png')" />
|
|
</div>
|
|
<div class="bot-item-val">
|
|
<div class="bot-item-val-num">{{ 4127 }}</div>
|
|
<div class="bot-item-val-title">党员数</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card h292" style="margin-top: 8px">
|
|
<screen-title-red>
|
|
<div slot="left" class="screen-title-left">微网格</div>
|
|
</screen-title-red>
|
|
<div class="card-item-tag">
|
|
<!-- <p class="tag" v-for="(item, index) in tagList" :key="index">
|
|
<span class="tag-name">{{ item.name }}</span>
|
|
<span class="tag-value">{{ item.value }}</span>
|
|
</p> -->
|
|
<div class="wwgCenter">
|
|
<div class="wwgCenterZhuan"></div>
|
|
<div class="wwgCenterWjx"></div>
|
|
<div class="wwgCenterTitle">移风店镇</div>
|
|
</div>
|
|
<div class="wwgBot">
|
|
<div class="cundian" v-for="(item, index) in tagList" :key="index">
|
|
<div class="wwgdd">
|
|
<img :src="require('@/assets/images/common/wwgdd.png')" />
|
|
</div>
|
|
<div class="cunTitle">{{ item.name }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card h292 m-top12">
|
|
<screen-title-red>
|
|
<div slot="left" class="screen-title-left">党员分析</div>
|
|
</screen-title-red>
|
|
<div class="card-item-dyfx">
|
|
<div class="card-item-dyfx-left">
|
|
<div class="top-title">
|
|
<div>
|
|
<img :src="require('@/assets/images/icon/dyfxDian.png')" />
|
|
</div>
|
|
<div class="title-txt">移风共富</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content-left">
|
|
<div class="content-left-icon">
|
|
<img :src="require('@/assets/images/icon/gfgsIcon.png')" />
|
|
</div>
|
|
<div class="content-left-name">共富公司</div>
|
|
</div>
|
|
<div class="content-right">
|
|
<span class="content-right-num">4 </span>家
|
|
</div>
|
|
</div>
|
|
<div class="bottom-list">
|
|
<div
|
|
class="bottom-list-item"
|
|
v-for="(item, index) in yfgfList"
|
|
:key="item.companyName + index"
|
|
>
|
|
<span>{{ index + 1 }}</span> {{ item.companyName }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-item-dyfx-right">
|
|
<div class="top-title">
|
|
<div>
|
|
<img :src="require('@/assets/images/icon/dyfxDian.png')" />
|
|
</div>
|
|
<div class="title-txt">移风阵地</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content-left">
|
|
<div class="content-left-icon">
|
|
<img :src="require('@/assets/images/icon/gmdIcon.png')" />
|
|
</div>
|
|
<div class="content-left-name">观摩点</div>
|
|
</div>
|
|
<div class="content-right">
|
|
<span class="content-right-num">3 </span>处
|
|
</div>
|
|
</div>
|
|
<div class="bottom-list">
|
|
<div
|
|
class="bottom-list-item"
|
|
v-for="(item, index) in yfzdList"
|
|
:key="item.jdName + index"
|
|
>
|
|
<span class="bottom-list-item-span">{{ index + 1 }}</span
|
|
>{{ item.jdName }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapActions } from "vuex";
|
|
import { partyOrgCategoryAndQuantity } from "@/api/hsyf";
|
|
const RADIUS = 100; // 3d球的半径
|
|
const FALLLENGTH = 500;
|
|
let CX = null;
|
|
let CY = null;
|
|
|
|
class Tag {
|
|
constructor(el, x, y, z) {
|
|
this.el = el;
|
|
this.x = x;
|
|
this.y = y;
|
|
this.z = z;
|
|
}
|
|
|
|
move() {
|
|
const scale = FALLLENGTH / (FALLLENGTH - this.z);
|
|
const alpha = (this.z + RADIUS) / (3 * RADIUS);
|
|
const left = this.x + CX - this.el.offsetWidth / 2 + "px"; // 水平偏移
|
|
const top = this.y + CY - this.el.offsetHeight / 1 + "px"; // 竖直偏移
|
|
this.el.style.opacity = alpha;
|
|
this.el.style.zIndex = parseInt(scale * 100);
|
|
this.el.style.transform = `translate(${left},${top}) scale(${scale}) rotate(0deg)`; // 将rotate改为0度
|
|
}
|
|
}
|
|
export default {
|
|
data() {
|
|
return {
|
|
agencyList: [
|
|
{ num: 11, agency: "党委" },
|
|
{ num: 97, agency: "党支部" },
|
|
{ num: 235, agency: "党小组" },
|
|
{ num: 3496, agency: "党员" },
|
|
],
|
|
typeList: [
|
|
{
|
|
imgSrc: require("@/assets/images/icon/zdwRed.png"),
|
|
type: "镇党委",
|
|
num: 12,
|
|
},
|
|
{
|
|
imgSrc: require("@/assets/images/icon/xcdwRed.png"),
|
|
type: "新村党委",
|
|
num: 36,
|
|
},
|
|
{
|
|
imgSrc: require("@/assets/images/icon/zrcdzbRed.png"),
|
|
type: "自然村党支部",
|
|
num: 14,
|
|
},
|
|
{
|
|
imgSrc: require("@/assets/images/icon/wgdxzRed.png"),
|
|
type: "网格党小组",
|
|
num: 14,
|
|
},
|
|
],
|
|
|
|
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,
|
|
},
|
|
],
|
|
tagworpList: [
|
|
{
|
|
label: "上泊新村",
|
|
id: "1697533359860244481",
|
|
},
|
|
{
|
|
label: "滨河村",
|
|
id: "1704030137514287105",
|
|
},
|
|
{
|
|
label: "湍湾新村",
|
|
id: "1704036500462198786",
|
|
},
|
|
{
|
|
label: "七级村",
|
|
id: "1704313950756757506",
|
|
},
|
|
{
|
|
label: "沽河村",
|
|
id: "1704324481563582466",
|
|
},
|
|
{
|
|
label: "太祉庄村",
|
|
id: "1704327114084933633",
|
|
},
|
|
{
|
|
label: "河流新村",
|
|
id: "1704331366425518081",
|
|
},
|
|
{
|
|
label: "大坝新村",
|
|
id: "1704396342955696130",
|
|
},
|
|
{
|
|
label: "双塔村",
|
|
id: "1704331366425518081",
|
|
},
|
|
{
|
|
label: "移风村",
|
|
id: "1704331366425518081",
|
|
},
|
|
],
|
|
tagList: [
|
|
{
|
|
name: "上泊新村委员会",
|
|
id: "1697533359860244481",
|
|
},
|
|
{
|
|
name: "滨河村委员会",
|
|
id: "1704030137514287105",
|
|
},
|
|
{
|
|
name: "湍湾新村委员会",
|
|
id: "1704036500462198786",
|
|
},
|
|
{
|
|
name: "七级村委员会",
|
|
id: "1704313950756757506",
|
|
},
|
|
{
|
|
name: "沽河村委员会",
|
|
id: "1704324481563582466",
|
|
},
|
|
{
|
|
name: "太祉庄村委员会",
|
|
id: "1704327114084933633",
|
|
},
|
|
{
|
|
name: "河流新村委员会",
|
|
id: "1704331366425518081",
|
|
},
|
|
{
|
|
name: "大坝新村委员会",
|
|
id: "1704396342955696130",
|
|
},
|
|
{
|
|
name: "双塔村委员会",
|
|
id: "1704331366425518081",
|
|
},
|
|
{
|
|
name: "移风村委员会",
|
|
id: "1704331366425518081",
|
|
},
|
|
],
|
|
tempList: [],
|
|
bubbleList: [
|
|
{
|
|
w: 8,
|
|
x: 10,
|
|
},
|
|
{
|
|
w: 9,
|
|
x: 50,
|
|
},
|
|
{
|
|
w: 4,
|
|
x: 30,
|
|
},
|
|
{
|
|
w: 5,
|
|
x: 80,
|
|
},
|
|
{
|
|
w: 4,
|
|
x: 30,
|
|
},
|
|
{
|
|
w: 4,
|
|
x: 70,
|
|
},
|
|
{
|
|
w: 6,
|
|
x: 20,
|
|
},
|
|
{
|
|
w: 8,
|
|
x: 50,
|
|
},
|
|
{
|
|
w: 4,
|
|
x: 60,
|
|
},
|
|
{
|
|
w: 6,
|
|
x: 65,
|
|
},
|
|
],
|
|
yfgfList: [
|
|
{ companyName: "青岛益成河农业科技有限公司" },
|
|
{ companyName: "青岛滨源农产品有限公司" },
|
|
{ companyName: "青岛上泊建晟建设发展有限公司" },
|
|
{ companyName: "青岛圆可方诚工贸有限公司" },
|
|
],
|
|
yfzdList: [
|
|
{ jdName: "大欧鸟笼乡村记忆馆" },
|
|
{ jdName: "七彩田园" },
|
|
{ jdName: "中共即墨县委纪念馆" },
|
|
],
|
|
};
|
|
},
|
|
created() {
|
|
this.bubbleList.forEach((i, index) => {
|
|
this.$set(
|
|
i,
|
|
"c",
|
|
this.forArrayValue(["#00BABC", "#009FA4", "#00FFC0"], index)
|
|
);
|
|
});
|
|
this.getData();
|
|
},
|
|
mounted() {
|
|
this.$nextTick(function () {
|
|
this.initTag();
|
|
this.animate();
|
|
this.initBarAge();
|
|
this.initBar();
|
|
});
|
|
},
|
|
beforeDestroy() {},
|
|
methods: {
|
|
...mapActions({
|
|
// set_garden: 'SET_GARDEN',
|
|
set_organization: "SET_ORGANIZATION",
|
|
}),
|
|
getData() {
|
|
// fetch(
|
|
// "https://yifengdian-smps.elinkservice.cn/api/resi/partymember/yifengScreen/partyOrgCategoryAndQuantity"
|
|
// ).then((res) => {
|
|
// console.log('res::', res);
|
|
// });
|
|
partyOrgCategoryAndQuantity().then((res) => {
|
|
console.log("tongle?", res);
|
|
});
|
|
},
|
|
forArrayValue(array, sort) {
|
|
return array[sort % array.length];
|
|
},
|
|
handelClickOrg() {
|
|
this.set_organization(true);
|
|
},
|
|
|
|
initTag() {
|
|
const tags = document.querySelectorAll(".tag");
|
|
const wrap = document.querySelector(".card-item-tag");
|
|
const len = tags.length;
|
|
// let valueList = Array.from(new Set(this.tagList.map(i => i.value)));
|
|
// let min = Math.min(...valueList);
|
|
CX = wrap.offsetWidth / 2;
|
|
CY = wrap.offsetHeight / 2;
|
|
tags.forEach((i, index) => {
|
|
// let fontScale = this.tagList[index].value / min * 16;
|
|
// i.style.fontSize = fontScale > 30 ? '30px' : fontScale + 'px';
|
|
// i.style.color = colors[parseInt(Math.random() * 10)];
|
|
const k = -1 + (2 * (index + 1) - 1) / len;
|
|
const a = Math.acos(k);
|
|
const b = a * Math.sqrt(len * Math.PI);
|
|
const x = RADIUS * 1.15 * Math.sin(a) * Math.cos(b);
|
|
const y = RADIUS * Math.sin(a) * Math.sin(b);
|
|
const z = RADIUS * Math.cos(a);
|
|
const tag = new Tag(i, x, y, z);
|
|
this.tempList.push(tag);
|
|
});
|
|
},
|
|
rotateX() {
|
|
const angleX = Math.PI / 8000;
|
|
const cos = Math.cos(angleX);
|
|
const sin = Math.sin(angleX);
|
|
this.tempList.forEach((i) => {
|
|
const y1 = i.y * cos - i.z * sin;
|
|
const z1 = i.z * cos + i.y * sin;
|
|
i.y = y1;
|
|
i.z = z1;
|
|
});
|
|
},
|
|
rotateY() {
|
|
const angleY = Math.PI / 200;
|
|
const cos = Math.cos(angleY);
|
|
const sin = Math.sin(angleY);
|
|
this.tempList.forEach((i) => {
|
|
const x1 = i.x * cos - i.z * sin;
|
|
const z1 = i.z * cos + i.x * sin;
|
|
i.x = x1;
|
|
i.z = z1;
|
|
});
|
|
},
|
|
animate() {
|
|
this.rotateX();
|
|
this.rotateY();
|
|
this.tempList.forEach((i) => {
|
|
i.move();
|
|
});
|
|
requestAnimationFrame(this.animate);
|
|
},
|
|
initBarAge() {
|
|
// eslint-disable-next-line no-undef
|
|
const myChart = echarts.init(document.getElementById("charts"));
|
|
const option = {
|
|
grid: {
|
|
left: "2%",
|
|
right: "2%",
|
|
top: "15%",
|
|
bottom: "2%",
|
|
containLabel: true,
|
|
},
|
|
tooltip: {
|
|
trigger: "item",
|
|
formatter: function (params, ticket, callback) {
|
|
var res = params.name + " : " + params.value;
|
|
return res;
|
|
},
|
|
},
|
|
xAxis: {
|
|
type: "category",
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: "#174489",
|
|
width: "3",
|
|
},
|
|
},
|
|
axisTick: {
|
|
show: false,
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
color: "#BDCEEA",
|
|
fontSize: "10",
|
|
rotate: 45, // 旋转角度,单位为度
|
|
},
|
|
data: ["20-40岁", "40-60岁", "60-80岁", "80岁以上"],
|
|
},
|
|
|
|
yAxis: {
|
|
show: false,
|
|
},
|
|
series: [
|
|
{
|
|
name: "leftA",
|
|
type: "bar",
|
|
barWidth: 10,
|
|
itemStyle: {
|
|
normal: {
|
|
color: {
|
|
type: "linear",
|
|
x: 0,
|
|
y: 0,
|
|
x2: 0,
|
|
y2: 1,
|
|
colorStops: [
|
|
{ offset: 1, color: "rgb(83, 180, 255,0)" }, // 底部颜色
|
|
{ offset: 0, color: "#5098fb" }, // 顶部颜色
|
|
],
|
|
},
|
|
barBorderRadius: [0, 0, 0, 0],
|
|
},
|
|
},
|
|
data: [220, 182, 191, 234],
|
|
},
|
|
{
|
|
name: "rightA",
|
|
tooltip: {
|
|
show: false,
|
|
},
|
|
type: "bar",
|
|
barWidth: 10,
|
|
itemStyle: {
|
|
normal: {
|
|
color: {
|
|
type: "linear",
|
|
x: 0,
|
|
y: 0,
|
|
x2: 0,
|
|
y2: 1,
|
|
colorStops: [
|
|
{ offset: 1, color: "rgb(83, 180, 255,0)" }, // 底部颜色
|
|
{ offset: 0, color: "#207dfb" }, // 顶部颜色
|
|
],
|
|
},
|
|
barBorderRadius: [0, 0, 0, 0],
|
|
},
|
|
},
|
|
data: [220, 182, 191, 234],
|
|
barGap: 0,
|
|
},
|
|
{
|
|
name: "topA",
|
|
tooltip: {
|
|
show: false,
|
|
},
|
|
type: "pictorialBar",
|
|
itemStyle: {
|
|
normal: {
|
|
color: "#53b4ff",
|
|
// borderWidth: 1,
|
|
// borderColor: '#00183F',
|
|
opacity: "1",
|
|
shadowColor: "rgb(0,0,0,0.1)",
|
|
shadowOffsetX: "0.5",
|
|
shadowOffsetY: "0.5",
|
|
},
|
|
},
|
|
label: {
|
|
show: false,
|
|
color: "#04F9FD",
|
|
offset: [0, 0],
|
|
position: "top",
|
|
fontSize: "16",
|
|
fontWeight: "normal",
|
|
},
|
|
symbol: "diamond",
|
|
symbolRotate: 0,
|
|
symbolSize: ["25", "12"],
|
|
symbolOffset: ["0", "-8"],
|
|
symbolPosition: "end",
|
|
data: [220, 182, 191, 234],
|
|
z: 3,
|
|
},
|
|
],
|
|
};
|
|
myChart.setOption(option);
|
|
},
|
|
initBar() {
|
|
// eslint-disable-next-line no-undef
|
|
const myChart = echarts.init(document.getElementById("chartsBar"));
|
|
this.barOption = this.getBar(this.optionDataB);
|
|
myChart.setOption(this.barOption);
|
|
},
|
|
getBar(data) {
|
|
const symbolData = data.map((item) => ({
|
|
symbolPosition: "end",
|
|
value: item.value,
|
|
}));
|
|
const arrByKey = data.map((item) => item.value);
|
|
const option = {
|
|
// backgroundColor: '#000000',
|
|
grid: {
|
|
top: 10,
|
|
bottom: -0.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: {
|
|
// eslint-disable-next-line no-undef
|
|
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;
|
|
},
|
|
},
|
|
components: {},
|
|
computed: {},
|
|
watch: {},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import "~@/views/next/screen-content-left/hsyf-left/index.scss";
|
|
@keyframes spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
} /* 初始状态,角度为0度 */
|
|
100% {
|
|
transform: rotate(360deg);
|
|
} /* 结束状态,角度为360度 */
|
|
}
|
|
|
|
.card {
|
|
width: 100%;
|
|
background: url("~@/assets/images/common/cardBgRed.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
color: #fff;
|
|
@include flex(column);
|
|
|
|
&-item-zzjs {
|
|
@include flex(column);
|
|
padding: 32px 25px 30px 20px;
|
|
box-sizing: border-box;
|
|
// height: 100%;
|
|
|
|
// .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 {
|
|
// @include flex(column);
|
|
// position: relative;
|
|
|
|
// .num {
|
|
// font-family: pangmenzhengdao;
|
|
// font-size: 20px;
|
|
// position: relative;
|
|
// top: -14px;
|
|
// }
|
|
|
|
// .agency {
|
|
// font-size: 14px;
|
|
// color: #FBE9C5 !important;
|
|
// position: relative;
|
|
|
|
// &::after {
|
|
// content: "";
|
|
// width: 6px;
|
|
// height: 6px;
|
|
// border-radius: 50%;
|
|
// position: absolute;
|
|
// left: -10px;
|
|
// top: 7px;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
.top {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: space-around;
|
|
|
|
.item {
|
|
@include flex(column);
|
|
align-items: center;
|
|
// justify-content: space-around;
|
|
position: relative;
|
|
|
|
.imgBox {
|
|
width: 90px;
|
|
height: 66px;
|
|
background: url("~@/assets/images/common/iconBgRed.png") no-repeat !important;
|
|
background-size: 100% 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
img {
|
|
width: 36px;
|
|
height: 36px;
|
|
animation: moveUpDown 3s infinite linear;
|
|
}
|
|
}
|
|
|
|
.num {
|
|
font-family: pangmenzhengdao;
|
|
color: #ebf2fa;
|
|
text-shadow: 0 0 10px #ffc435;
|
|
font-size: 22px;
|
|
margin-top: -3px;
|
|
}
|
|
|
|
.bubbles {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 45%;
|
|
top: -15px;
|
|
left: 0;
|
|
z-index: -1;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.bubble {
|
|
position: absolute;
|
|
width: calc(1px * var(--w));
|
|
height: calc(1px * var(--w));
|
|
background: var(--c);
|
|
border-radius: 50%;
|
|
left: calc(50% - calc(1px * calc(var(--w) / 2)));
|
|
opacity: 0;
|
|
bottom: 10%;
|
|
animation: rise 3s infinite linear;
|
|
animation-delay: calc(600ms * var(--d));
|
|
}
|
|
|
|
@keyframes rise {
|
|
0% {
|
|
left: calc(50% - calc(1px * calc(var(--w) / 2)));
|
|
opacity: 0;
|
|
bottom: 10%;
|
|
}
|
|
|
|
50% {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
100% {
|
|
left: calc(1% * var(--x));
|
|
bottom: 90%;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes moveUpDown {
|
|
0% {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
50% {
|
|
transform: translateY(-15px);
|
|
}
|
|
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.bot {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
padding-top: 18px;
|
|
&-item {
|
|
width: 183px;
|
|
height: 60px;
|
|
background-image: linear-gradient(
|
|
to right,
|
|
rgba(255, 187, 123, 0.1),
|
|
rgba(255, 187, 123, 0)
|
|
);
|
|
display: flex;
|
|
&-val {
|
|
border-left: 1px solid #fef2d5;
|
|
margin-left: 4px;
|
|
margin-top: 12px;
|
|
padding-left: 16px;
|
|
height: 36px;
|
|
&-num {
|
|
font-family: PangMenZhengDao;
|
|
font-weight: 400;
|
|
font-size: 20px;
|
|
color: #ffffff;
|
|
line-height: 13px;
|
|
}
|
|
&-title {
|
|
font-family: PingFang SC;
|
|
font-weight: 500;
|
|
font-size: 14px;
|
|
color: #fbe9c5;
|
|
line-height: 14px;
|
|
padding-top: 10px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&-item-tag {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 395px;
|
|
padding-top: 8px;
|
|
|
|
.wwgCenter {
|
|
width: 142px;
|
|
height: 142px;
|
|
background: url("~@/assets/images/common/wwgBg.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
padding: 17px;
|
|
position: relative;
|
|
left: calc(50% - 86px);
|
|
.wwgCenterZhuan {
|
|
width: 142px;
|
|
height: 142px;
|
|
background: url("~@/assets/images/common/wwgzq.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
animation: spin 4s linear infinite;
|
|
}
|
|
.wwgCenterWjx {
|
|
width: 44px;
|
|
height: 42px;
|
|
background: url("~@/assets/images/common/wwgxx.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
position: relative;
|
|
top: -114px;
|
|
left: calc(50% - 22px);
|
|
}
|
|
.wwgCenterTitle {
|
|
// width: 75px;
|
|
height: 18px;
|
|
font-family: MF LangQian (Noncommercial);
|
|
font-weight: 400;
|
|
font-size: 18px;
|
|
color: #ffffff;
|
|
line-height: 24px;
|
|
position: relative;
|
|
top: -106px;
|
|
left: calc(50% - 36px);
|
|
}
|
|
}
|
|
.wwgBot {
|
|
width: 282px;
|
|
height: 72px;
|
|
background: url("~@/assets/images/common/wwgboty.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
position: relative;
|
|
top: -28px;
|
|
left: calc(50% - 141px);
|
|
.cundian {
|
|
position: absolute;
|
|
width: 280px;
|
|
display: flex;
|
|
.cunTitle {
|
|
font-size: 18px;
|
|
color: #fff2d9;
|
|
}
|
|
.wwgdd {
|
|
img {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
}
|
|
}
|
|
.cundian:nth-child(1) {
|
|
animation: dian1 8s linear infinite;
|
|
}
|
|
.cundian:nth-child(2) {
|
|
animation: dian2 8s linear infinite;
|
|
}
|
|
.cundian:nth-child(3) {
|
|
animation: dian3 8s linear infinite;
|
|
}
|
|
.cundian:nth-child(4) {
|
|
animation: dian4 8s linear infinite;
|
|
}
|
|
.cundian:nth-child(5) {
|
|
animation: dian5 12s linear infinite;
|
|
}
|
|
.cundian:nth-child(6) {
|
|
animation: dian6 12s linear infinite;
|
|
}
|
|
.cundian:nth-child(7) {
|
|
animation: dian7 12s linear infinite;
|
|
}
|
|
.cundian:nth-child(8) {
|
|
animation: dian8 12s linear infinite;
|
|
}
|
|
.cundian:nth-child(9) {
|
|
animation: dian9 12s linear infinite;
|
|
}
|
|
.cundian:nth-child(10) {
|
|
animation: dian10 12s linear infinite;
|
|
}
|
|
}
|
|
.tag {
|
|
opacity: 0;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
text-decoration: none;
|
|
font-size: 18px;
|
|
cursor: pointer;
|
|
will-change: transform;
|
|
color: #1dfbf6;
|
|
|
|
span {
|
|
display: inline-block;
|
|
}
|
|
|
|
.tag-value {
|
|
// opacity: 0;
|
|
// height: 35px;
|
|
// padding: 0 30px 0 20px;
|
|
// color: #f6f600;
|
|
// line-height: 35px;
|
|
// margin-left: 5px;
|
|
// visibility: middle;
|
|
// font-size: 14px;
|
|
// transition: all 0.2s;
|
|
// background: linear-gradient(90deg,
|
|
// rgba(216, 255, 0, 0.7) 0%,
|
|
// rgba(58, 51, 255, 0) 100%);
|
|
}
|
|
|
|
// &:hover {
|
|
// .tag-value {
|
|
// opacity: 1;
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
// &-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%;
|
|
// @include flex(column);
|
|
// margin-right: 50px;
|
|
// }
|
|
|
|
// .bar {
|
|
// flex: 1;
|
|
// }
|
|
// }
|
|
&-item-dyfx {
|
|
padding: 16px 20px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
&-left,
|
|
&-right {
|
|
width: 214px;
|
|
background: url("~@/assets/images/home/yfgfLeftBg.png") no-repeat;
|
|
background-size: 100% 14px;
|
|
background-position: center 58px;
|
|
.top-title {
|
|
width: 214px;
|
|
display: flex;
|
|
img {
|
|
width: 18px;
|
|
height: 18px;
|
|
margin-top: 2px;
|
|
}
|
|
.title-txt {
|
|
padding-left: 8px;
|
|
height: 16px;
|
|
font-family: PingFang SC;
|
|
font-weight: 500;
|
|
font-size: 16px;
|
|
color: #ffffff;
|
|
}
|
|
}
|
|
.content {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 15px 20px;
|
|
&-left {
|
|
display: flex;
|
|
&-icon {
|
|
width: 26px;
|
|
img {
|
|
width: 26px;
|
|
height: 26px;
|
|
}
|
|
}
|
|
&-name {
|
|
padding-left: 8px;
|
|
width: 90px;
|
|
height: 26px;
|
|
font-family: PingFang SC;
|
|
font-weight: bold;
|
|
font-size: 14px;
|
|
color: #ffffff;
|
|
line-height: 26px;
|
|
}
|
|
}
|
|
&-right {
|
|
font-weight: 500;
|
|
&-num {
|
|
height: 13px;
|
|
font-family: PangMenZhengDao;
|
|
font-weight: 400;
|
|
font-size: 20px;
|
|
color: #ffffff;
|
|
}
|
|
}
|
|
}
|
|
.bottom-list {
|
|
padding-top: 12px;
|
|
&-item {
|
|
margin-top: 3px;
|
|
&-span {
|
|
padding-left: 10px;
|
|
padding-right: 12px;
|
|
}
|
|
// width: 180px;
|
|
height: 30px;
|
|
font-family: PingFang SC;
|
|
font-weight: 500;
|
|
font-size: 14px;
|
|
color: #fbe9c5;
|
|
line-height: 30px;
|
|
border-bottom: 1px dashed #bb7053;
|
|
}
|
|
&-item:hover {
|
|
cursor: pointer;
|
|
color: #ffffff;
|
|
}
|
|
}
|
|
}
|
|
&-right {
|
|
width: 190px;
|
|
background: url("~@/assets/images/home/yfgfRightBg.png") no-repeat;
|
|
background-size: 100% 14px;
|
|
background-position: center 58px;
|
|
.top-title {
|
|
width: 190px;
|
|
}
|
|
.content {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 15px 20px;
|
|
&-left {
|
|
display: flex;
|
|
&-name {
|
|
width: 60px;
|
|
}
|
|
}
|
|
}
|
|
.bottom-list {
|
|
&-item {
|
|
width: 190px;
|
|
height: 29px;
|
|
background: rgba(187, 112, 83, 0.2);
|
|
border-radius: 2px;
|
|
border: 1px solid #bb7053;
|
|
}
|
|
&-item:hover {
|
|
cursor: pointer;
|
|
color: #ffffff;
|
|
background: url("~@/assets/images/home/gmdListBg.png") no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|