提交 d509b3b8 authored 作者: huhuiqing's avatar huhuiqing

Merge branch 'master' of http://8.140.26.4:10003/caijian/risk-monitor into dev_hhq

import request from "@/api/request.js";
// 图表解读(流式)
/**
* @param {text}
*/
export function getChartAnalysis(data) {
return request({
method: 'POST',
url: `/aiAnalysis/chart_interpretation`,
data,
})
}
\ No newline at end of file
import request from "@/api/request.js";
// 规则限制-首页统计接口
export function getStatCount() {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/statCount`
})
}
// 规则限制-查询最新动态接口
export function getLatestUpdates() {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getLatestUpdates`
})
}
// 规则限制-风险信号
export function getRiskSignal(params) {
return request({
method: 'GET',
url: `/api/commonFeature/riskSignal/${params}`
})
}
// 规则限制-查询新闻资讯
export function getNews(params) {
return request({
method: 'GET',
url: `/api/commonFeature/news/${params}`
})
}
// 规则限制-查询社交媒体
export function getRemarks(params) {
return request({
method: 'GET',
url: `/api/commonFeature/remarks/${params}`
})
}
// 规则限制-限制领域分布情况
/**
* @param {Object} params
* @param {string} params.year
* @header token
*/
export function getAreaDistribution(params) {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getAreaDistribution`,
params
})
}
// 规则限制-受限实体数量变化趋势
/**
* @param {Object} params
* @param {Integer} params.year
* @param {String} params.type
* @header token
*/
export function getEntityChangeTrend(params) {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getEntityChangeTrend`,
params
})
}
// 规则限制-规则限制政令列表查询接口
/**
* @param {Object} params
* @param {Integer} params.currentPage
* @param {Integer} params.pageSize
* @param {List<String>} params.years
* @param {List<String>} params.areas
* @param {String} params.keywords
* @param {String} params.sortField
* @param {String} params.sortOrder
* @header token
*/
export function getRuleLimitList(params) {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getRuleLimitList`,
params
})
}
// 规则限制-排华科技联盟列表接口
/**
* @param {Object} params
* @param {Integer} params.currentPage
* @param {Integer} params.pageSize
* @param {List<String>} params.years
* @param {List<String>} params.countries
* @param {List<String>} params.areas
* @param {String} params.keywords
* @param {String} params.sortField
* @param {String} params.sortOrder
* @header token
*/
export function getACTAList(params) {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getACTAList`,
params
})
}
export function getAcTAAllcountry() {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getACTAAllCountry/`
})
}
// 规则限制-规则限制基本详情
export function getSanctionOverview(params) {
return request({
method: 'GET',
url: `/api/ruleLimitInfo/getSanctionOverview/${params}`
})
}
// 实体清单-制裁概况-获取发布机构机构动态
/**
* @param {Object} data
* @param {string} data.orgId
* @header token
*/
export function getPublishOrgInfo(data) {
return request({
method: 'POST',
url: `/api/organization/relate/news`,
data,
})
}
\ No newline at end of file
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
import ZMGame from "@/views/ZMGame/index.vue"; import ZMGame from "@/views/ZMGame/index.vue";
const ZMGameRoutes = [ const ZMGameRoutes = [
//创新主体
{ {
path: "/ZMGame", path: "/ZMGame",
name: "ZMGame", name: "ZMGame",
......
...@@ -2,10 +2,9 @@ ...@@ -2,10 +2,9 @@
import ZMOverview from "@/views/ZMOverView/index.vue"; import ZMOverview from "@/views/ZMOverView/index.vue";
const ZMOverviewRoutes = [ const ZMOverviewRoutes = [
//创新主体
{ {
path: "/ZMOerView", path: "/ZMOverView",
name: "ZMOerView", name: "ZMOverView",
component: ZMOverview, component: ZMOverview,
meta: { meta: {
title: "ZM博弈概览" title: "ZM博弈概览"
...@@ -14,4 +13,4 @@ const ZMOverviewRoutes = [ ...@@ -14,4 +13,4 @@ const ZMOverviewRoutes = [
] ]
export default ZMOverviewRoutes export default ZMOverviewRoutes
\ No newline at end of file
<!--科技要闻-->
<template>
<div class="content-wrapper">
全领域
</div>
</template>
<script setup>
import { onMounted, ref, computed } from "vue";
</script>
<style lang="scss" scoped>
.content-wrapper {
width: 1666px;
height: 2132px;
}
</style>
const getWordCloudChart = (data) => {
const option = {
grid: {
left: 0,
top: 0,
right: 0,
bottom: 0,
},
series: [
{
type: "wordCloud",
width: '80%',
height: '80%',
shape: "rect", //
// 其他形状你可以使用形状路径
// 或者自定义路径
// shape: 'circle' // 圆形(默认)
// shape: 'rect' // 矩形
// shape: 'roundRect' // 圆角矩形
// shape: 'triangle' // 三角形
// shape: 'diamond' // 菱形
// shape: 'pentagon' // 五边形
// shape: 'star' // 星形
// shape: 'cardioid' // 心形
gridSize: 15, // 网格大小,影响词间距。
sizeRange: [10, 30], // 定义词云中文字大小的范围
rotationRange: [0, 0],
rotationStep: 15,
drawOutOfBound: false, // 是否超出画布
// 字体
textStyle: {
// normal: {
// color: function () {
// return 'rgb(' + [
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160)
// ].join(',') + ')';
// }
// },
color: function () {
let colors = [
"rgba(189, 33, 33, 1)",
"rgba(232, 151, 21, 1)",
"rgba(220, 190, 68, 1)",
"rgba(96, 58, 186, 1)",
"rgba(32, 121, 69, 1)",
"rgba(22, 119, 255, 1)",
];
return colors[parseInt(Math.random() * colors.length)];
},
emphasis: {
shadowBlur: 5,
shadowColor: "#333",
},
},
// 设置词云数据
data: data,
},
],
}
return option
}
export default getWordCloudChart
\ No newline at end of file
<!--科技要闻-->
<template>
<div class="content-wrapper">
全联盟
</div>
</template>
<script setup>
import { onMounted, ref, computed } from "vue";
</script>
<style lang="scss" scoped>
.content-wrapper {
width: 1666px;
height: 2132px;
}
</style>
<!--科技要闻--> <!--科技要闻-->
<template> <template>
<div class="content-wrapper"> <div class="content-wrapper">
美对华四全打压 <div class="main-nav">
<div
v-for="item in navList"
:key="item.name"
class="nav-item"
:class="{ active: activeNav === item.name }"
@click="handleNavClick(item.name)"
>
<div class="item-content">
<img v-if="activeNav === item.name" :src="right" class="active-icon" alt="" />
<span>{{ item.name }}</span>
</div>
<img v-if="activeNav === item.name" :src="background" class="active-bg" alt="" />
</div>
</div>
<!-- 切换不同的组件 -->
<AllGovernment v-if="activeNav === '全政府'" />
<AddDomain v-if="activeNav === '全领域'" />
<AllUnion v-if="activeNav === '全联盟'" />
<AllElement v-if="activeNav === '全要素'" />
</div> </div>
</template> </template>
<script setup> <script setup>
import { onMounted, ref, computed } from "vue"; import { onMounted, ref, computed } from "vue";
import right from "./assets/right.png";
import background from "./assets/background.png";
// 组件引入
import AllGovernment from "./components/allGovernment/index.vue";
import AddDomain from "./components/addDomain/index.vue";
import AllUnion from "./components/allUnion/index.vue";
import AllElement from "./components/allElement/index.vue";
const navList = ref([{ name: "全政府" }, { name: "全领域" }, { name: "全联盟" }, { name: "全要素" }]);
const activeNav = ref("全政府");
const handleNavClick = name => {
activeNav.value = name;
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content-wrapper { .content-wrapper {
width: 100%; // width: 1601px;
height: 2203px; width: 1666px;
height: 2203px;
margin: 0 auto;
.main-nav {
width: 1601px;
height: 55px;
margin: 0 auto;
padding: 4px 5px;
display: flex;
align-items: center;
border-radius: 10px;
background-color: rgba(255, 255, 255, 0.65);
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
box-sizing: border-box;
gap: 8px;
margin-bottom: 16px;
.nav-item {
flex: 1;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
position: relative;
// transition: all 0.3s;
.item-content {
display: flex;
align-items: center;
z-index: 1;
.active-icon {
width: 18px;
height: 18px;
margin-right: 8px;
}
span {
font-family: "YouSheBiaoTiHei";
font-size: 24px;
font-weight: 400;
line-height: 31px;
color: rgb(59, 65, 75);
}
}
.active-bg {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 400px;
height: 60px;
z-index: 0;
}
&.active {
background-color: rgba(246, 250, 255, 1);
border: 1px solid rgba(174, 214, 255, 1);
border-radius: 10px;
span {
color: rgb(5, 95, 194);
}
}
}
}
} }
</style> </style>
...@@ -286,7 +286,7 @@ onMounted(() => { ...@@ -286,7 +286,7 @@ onMounted(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.content-wrapper { .content-wrapper {
width: 100%; width: 100%;
height: 100%; // height: 100%;
.policy-monitoring { .policy-monitoring {
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
......
...@@ -299,9 +299,10 @@ ...@@ -299,9 +299,10 @@
{{ news.newsDate ? news.newsDate.slice(5) : "" }} - {{ news.newsOrg }} {{ news.newsDate ? news.newsDate.slice(5) : "" }} - {{ news.newsOrg }}
</div> </div>
</div> </div>
<CommonPrompt :content="news.newsContent"> <div class="right-footer">{{ news.newsContent }}</div>
<!-- <CommonPrompt :content="news.newsContent">
<div class="right-footer">{{ news.newsContent }}</div> <div class="right-footer">{{ news.newsContent }}</div>
</CommonPrompt> </CommonPrompt> -->
</div> </div>
</div> </div>
</div> </div>
...@@ -597,7 +598,7 @@ ...@@ -597,7 +598,7 @@
<el-checkbox class="filter-checkbox" label="全部领域"> 全部领域 </el-checkbox> <el-checkbox class="filter-checkbox" label="全部领域"> 全部领域 </el-checkbox>
<el-checkbox <el-checkbox
v-for="(area, index) in cateKuList" v-for="(area, index) in cateKuList"
:key="area.id" :key="index"
:label="area.id" :label="area.id"
class="filter-checkbox" class="filter-checkbox"
> >
...@@ -615,7 +616,7 @@ ...@@ -615,7 +616,7 @@
<el-checkbox-group class="checkbox-group" v-model="activeDpList" @change="handleDpChange"> <el-checkbox-group class="checkbox-group" v-model="activeDpList" @change="handleDpChange">
<el-checkbox <el-checkbox
v-for="(dp, index) in dpList" v-for="(dp, index) in dpList"
:key="dp.id" :key="index"
:label="dp.id" :label="dp.id"
class="filter-checkbox" class="filter-checkbox"
> >
...@@ -633,7 +634,7 @@ ...@@ -633,7 +634,7 @@
<el-checkbox-group class="checkbox-group" v-model="activeYyList" @change="handleYyChange"> <el-checkbox-group class="checkbox-group" v-model="activeYyList" @change="handleYyChange">
<el-checkbox <el-checkbox
v-for="(yy, index) in yyList" v-for="(yy, index) in yyList"
:key="yy.id" :key="index"
:label="yy.id" :label="yy.id"
class="filter-checkbox" class="filter-checkbox"
> >
...@@ -652,7 +653,7 @@ ...@@ -652,7 +653,7 @@
<el-checkbox-group class="checkbox-group" v-model="activePubTime" @change="handlePubTimeChange"> <el-checkbox-group class="checkbox-group" v-model="activePubTime" @change="handlePubTimeChange">
<el-checkbox <el-checkbox
v-for="(time, index) in pubTime" v-for="(time, index) in pubTime"
:key="time.id" :key="index"
:label="time.id" :label="time.id"
class="filter-checkbox" class="filter-checkbox"
> >
...@@ -2936,7 +2937,7 @@ onUnmounted(() => { ...@@ -2936,7 +2937,7 @@ onUnmounted(() => {
justify-content: flex-end; justify-content: flex-end;
} }
.box7-main { .box7-main {
height: 380px; height: 390px;
} }
} }
.box8 { .box8 {
......
...@@ -6,7 +6,7 @@ const getDoublePieChart = (data1, data2) => { ...@@ -6,7 +6,7 @@ const getDoublePieChart = (data1, data2) => {
series: [ series: [
{ {
type: 'pie', type: 'pie',
radius: [45, 88], radius: [35, 78],
// height: '100%', // height: '100%',
left: 'center', left: 'center',
// width: '100%', // width: '100%',
...@@ -32,7 +32,7 @@ const getDoublePieChart = (data1, data2) => { ...@@ -32,7 +32,7 @@ const getDoublePieChart = (data1, data2) => {
}, },
{ {
type: 'pie', type: 'pie',
radius: [90, 120], radius: [80, 110],
height: '100%', height: '100%',
left: 'center', left: 'center',
width: '98%', width: '98%',
...@@ -45,18 +45,20 @@ const getDoublePieChart = (data1, data2) => { ...@@ -45,18 +45,20 @@ const getDoublePieChart = (data1, data2) => {
formatter: '{name|{b}}\n{time|{c} 条 {d}%}', formatter: '{name|{b}}\n{time|{c} 条 {d}%}',
minMargin: 5, minMargin: 5,
edgeDistance: 10, edgeDistance: 10,
lineHeight: 24, lineHeight: 20,
rich: { rich: {
name: { name: {
color: 'rgba(59, 65, 75, 1)', color: 'rgba(59, 65, 75, 1)',
fontFamily: 'Microsoft YaHei', fontFamily: 'Microsoft YaHei',
fontSize: 16, fontSize: 14,
fontWeight: 'bold', fontWeight: 'bold',
padding: [10,0,10,0]
}, },
time: { time: {
fontSize: 16, fontSize: 14,
fontFamily: 'Microsoft YaHei', fontFamily: 'Microsoft YaHei',
color: '#rgba(95, 101, 108, 1)' color: '#rgba(95, 101, 108, 1)',
padding: [10,0,10,0]
} }
} }
}, },
......
...@@ -17,18 +17,20 @@ const getPieChart = (data, colorList) => { ...@@ -17,18 +17,20 @@ const getPieChart = (data, colorList) => {
formatter: '{name|{b}}\n{time|{c} 条 {d}%}', formatter: '{name|{b}}\n{time|{c} 条 {d}%}',
minMargin: 5, minMargin: 5,
edgeDistance: 10, edgeDistance: 10,
lineHeight: 25, lineHeight: 22,
rich: { rich: {
name: { name: {
color: 'rgba(59, 65, 75, 1)', color: 'rgba(59, 65, 75, 1)',
fontFamily: 'Microsoft YaHei', fontFamily: 'Microsoft YaHei',
fontSize: 16, fontSize: 16,
fontWeight: 'bold', fontWeight: 'bold',
padding: [10, 0, 10, 0]
}, },
time: { time: {
fontSize: 16, fontSize: 16,
fontFamily: 'Microsoft YaHei', fontFamily: 'Microsoft YaHei',
color: '#rgba(95, 101, 108, 1)' color: '#rgba(95, 101, 108, 1)',
padding: [10, 0, 10, 0]
} }
} }
...@@ -36,10 +38,10 @@ const getPieChart = (data, colorList) => { ...@@ -36,10 +38,10 @@ const getPieChart = (data, colorList) => {
labelLine: { labelLine: {
length: 15, length: 15,
length2: 0, length2: 0,
maxSurfaceAngle: 80 maxSurfaceAngle: 88
}, },
labelLayout: function (params) { labelLayout: function (params) {
const isLeft = params.labelRect.x < params.viewWidth / 2; const isLeft = params.labelRect.x < 556 / 2;
const points = params.labelLinePoints; const points = params.labelLinePoints;
// Update the end point. // Update the end point.
points[2][0] = isLeft points[2][0] = isLeft
......
...@@ -106,7 +106,8 @@ const getMainDataList = async () => { ...@@ -106,7 +106,8 @@ const getMainDataList = async () => {
params.sortOrder = value.value; params.sortOrder = value.value;
} }
try { try {
console.log('----params getMainDataList', params)
const res = await getCoopRestrictionList(params); const res = await getCoopRestrictionList(params);
if (res && res.code === 200) { if (res && res.code === 200) {
mainDataList.value = (res.data.content || []).map(item => ({ mainDataList.value = (res.data.content || []).map(item => ({
......
...@@ -16,7 +16,7 @@ const getPieChart = (data) => { ...@@ -16,7 +16,7 @@ const getPieChart = (data) => {
formatter: '{name|{b}}\n{time|{d}%}', formatter: '{name|{b}}\n{time|{d}%}',
minMargin: 5, minMargin: 5,
edgeDistance: 10, edgeDistance: 10,
lineHeight: 24, lineHeight: 22,
rich: { rich: {
name: { name: {
color: 'rgba(59, 65, 75, 1)', color: 'rgba(59, 65, 75, 1)',
...@@ -27,7 +27,7 @@ const getPieChart = (data) => { ...@@ -27,7 +27,7 @@ const getPieChart = (data) => {
time: { time: {
fontSize: 16, fontSize: 16,
fontFamily: 'Microsoft YaHei', fontFamily: 'Microsoft YaHei',
color: '#rgba(95, 101, 108, 1)' color: '#rgba(95, 101, 108, 1)',
} }
} }
}, },
......
...@@ -161,26 +161,26 @@ ...@@ -161,26 +161,26 @@
@click="handlePerClick(item)" @click="handlePerClick(item)"
> >
<img :src="item.imageUrl" alt /> <img :src="item.imageUrl" alt />
<div class="person-info"> <div class="person-info">
<el-tooltip <el-tooltip
effect="dark" effect="dark"
:content="item.name" :content="item.name"
popper-class="common-prompt-popper" popper-class="common-prompt-popper"
placement="top" placement="top"
:show-after="500" :show-after="500"
> >
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
</el-tooltip> </el-tooltip>
<el-tooltip <el-tooltip
effect="dark" effect="dark"
:content="item.position" :content="item.position"
popper-class="common-prompt-popper" popper-class="common-prompt-popper"
placement="top" placement="top"
:show-after="500" :show-after="500"
> >
<div class="title1">{{ item.position }}</div> <div class="title1">{{ item.position }}</div>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
</div> </div>
...@@ -916,10 +916,10 @@ onMounted(() => { ...@@ -916,10 +916,10 @@ onMounted(() => {
flex-shrink: 0; flex-shrink: 0;
} }
.person-info { .person-info {
width: calc(100% - 48px - 8px); width: calc(100% - 48px - 8px);
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; /* 防止文本换行 */ white-space: nowrap; /* 防止文本换行 */
.name { .name {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
</template> </template>
<script setup> <script setup>
import { ref, defineProps, defineEmits, computed, watch } from "vue"; import { ref, computed, watch } from "vue";
import router from "@/router"; import router from "@/router";
import { Close } from "@element-plus/icons-vue"; import { Close } from "@element-plus/icons-vue";
import defaultIcon from "@/assets/icons/default-icon1.png"; import defaultIcon from "@/assets/icons/default-icon1.png";
......
...@@ -620,13 +620,13 @@ ...@@ -620,13 +620,13 @@
<div class="item-right-header"> <div class="item-right-header">
<div class="tag" :class="{tag1: item.SORTCODE === '337', tag2: item.SORTCODE === '301', tag3: item.SORTCODE === '232' }">{{ item.SORTCODE }}</div> <div class="tag" :class="{tag1: item.SORTCODE === '337', tag2: item.SORTCODE === '301', tag3: item.SORTCODE === '232' }">{{ item.SORTCODE }}</div>
<div class="title">{{ item.SEARCHNAME }}</div> <div class="title">{{ item.SEARCHNAME }}</div>
<div class="status"> <div class="status" v-if="item.CASESTATUS">
<div class="status-icon"></div> <div class="status-icon"></div>
<div class="status-text">{{ item.CASESTATUS }}</div> <div class="status-text">{{ item.CASESTATUS }}</div>
</div> </div>
</div> </div>
<div class="item-right-content"> <div class="item-right-content" v-if="item.CONTENT">
{{ item.content }} {{ item.CONTENT }}
</div> </div>
<div class="item-right-footer"> <div class="item-right-footer">
<div class="area-box" v-for="(val, idx) in item.searchArea" :key="idx"> <div class="area-box" v-for="(val, idx) in item.searchArea" :key="idx">
...@@ -1600,9 +1600,6 @@ const handleGetSurveyList = async () => { ...@@ -1600,9 +1600,6 @@ const handleGetSurveyList = async () => {
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
totalDiscussNum.value = res.data.totalElements; totalDiscussNum.value = res.data.totalElements;
surveyInfoList.value = res.data.content; surveyInfoList.value = res.data.content;
surveyInfoList.value.forEach(item => {
item.SORTIMAGEURL = `http://${item.SORTIMAGEURL}`
})
} else { } else {
surveyInfoList.value = []; surveyInfoList.value = [];
} }
...@@ -3179,7 +3176,8 @@ onMounted(async () => { ...@@ -3179,7 +3176,8 @@ onMounted(async () => {
border-bottom: 1px solid rgba(230, 231, 232, 1); border-bottom: 1px solid rgba(230, 231, 232, 1);
// height: 780px; // height: 780px;
.item { .item {
height: 154px; // height: 154px;
min-height: 94px;
display: flex; display: flex;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
...@@ -3199,17 +3197,21 @@ onMounted(async () => { ...@@ -3199,17 +3197,21 @@ onMounted(async () => {
} }
.item-center { .item-center {
width: 30px; width: 30px;
height: 154px; // height: 154px;
.icon { .icon {
width: 30px; width: 30px;
height: 30px; height: 30px;
border-radius: 15px; border-radius: 15px;
background: orange; img{
width: 100%;
height: 100%;
}
} }
.line { .line {
margin-left: 14px; margin-left: 14px;
width: 2px; width: 2px;
height: 124px; min-height: 64px;
max-height: 124px;
border-radius: 1.5px; border-radius: 1.5px;
background: rgba(234, 236, 238, 1); background: rgba(234, 236, 238, 1);
} }
...@@ -3261,13 +3263,17 @@ onMounted(async () => { ...@@ -3261,13 +3263,17 @@ onMounted(async () => {
line-height: 26px; line-height: 26px;
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.status { .status {
margin-left: 9px; margin-left: 9px;
display: flex; display: flex;
width: 76px; width: 76px;
height: 24px; height: 24px;
justify-content: space-between; justify-content: flex-end;
gap: 5px;
align-items: center; align-items: center;
.status-icon { .status-icon {
width: 4px; width: 4px;
...@@ -3323,16 +3329,23 @@ onMounted(async () => { ...@@ -3323,16 +3329,23 @@ onMounted(async () => {
} }
.flag-box { .flag-box {
display: flex; display: flex;
position: relative;
.flag { .flag {
width: 24px; width: 24px;
height: 24px; height: 24px;
border-radius: 12px; border-radius: 12px;
border: 2px solid #fff;
overflow: hidden; overflow: hidden;
position: absolute;
img{ img{
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
:nth-child(1) {
left: 18px;
z-index: 99;
}
} }
} }
} }
......
...@@ -54,24 +54,19 @@ const getBarChart = (nameList, valueList) => { ...@@ -54,24 +54,19 @@ const getBarChart = (nameList, valueList) => {
}, },
barWidth: 20, barWidth: 20,
markPoint: { markPoint: {
symbol: 'circle', // symbol: 'circle',
symbolSize: 0, // symbolSize: 0,
data: (function () { data: (function () {
const data = []; const data = [];
nameList.forEach((item, index) => { nameList.forEach((item, index) => {
data.push({ data.push({
name: 'icon', name: 'icon',
// value: '',
xAxis: index, xAxis: index,
yAxis: valueList[index], yAxis: valueList[index],
symbol: `image://${item.img}`, symbol: `image://${item.img}`,
symbolSize: [20, 20], symbolSize: [20, 20],
symbolOffset: [0, 10], symbolOffset: [0, 10],
// itemStyle: { symbolCircle: 10
// borderRadius: 10, // 设置为圆形
// borderColor: '#fff',
// borderWidth: 2
// }
}); });
}); });
return data; return data;
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论