提交 1f206014 authored 作者: coderBryanFu's avatar coderBryanFu

fix:政令概览及详情

上级 158c484d
......@@ -640,7 +640,8 @@ body {
.right-btn {
position: absolute;
top: 132px;
// top: 132px;
top: 100px;
right: 0;
z-index: 10000000000000;
......
......@@ -17,10 +17,10 @@ export function getLatestDecree() {
}
// 风险信号
export function getDecreeRiskSignal() {
export function getDecreeRiskSignal(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/riskSignal`,
url: `/api/commonFeature/riskSignal/${params.moduleId}`,
})
}
......
......@@ -112,7 +112,7 @@ const handleToNewsAnalysis = (item, index) => {
}
.more {
width: 54px;
width: 45px;
height: 24px;
position: absolute;
top: 12px;
......@@ -141,7 +141,9 @@ const handleToNewsAnalysis = (item, index) => {
cursor: pointer;
&:hover {
background: var(--color-bg-hover);
.right-top .title {
text-decoration: underline;
color: rgb(5, 95, 194) !important;
font-weight: 700;
}
......
......@@ -164,7 +164,7 @@ function getOption() {
}));
const titles = months.map((month, index) => ({
text: `{month|${month.format('M月')}} {stats|共 ${monthStats[index].total} 项, 已落实 ${monthStats[index].resolved}}`,
text: `{month|${month.format('M月')}} {stats|共 ${monthStats[index].total} 项, 已落实 0}`,
left: `${gapPercent + index * (calendarWidthPercent + gapPercent)}%`,
top: 10,
textStyle: {
......
......@@ -282,7 +282,7 @@ function getOption() {
const titles = months.map((month, index) => ({
// text: `{month|${month.format('M月')}} {stats| ${monthStats[index].total} , 已落实 ${monthStats[index].resolved} 项}`,
text: index ===0 ?`{month|${month.format('M月')}} {stats| ${monthStats[index].total} , 已落实 ${monthStats[index].resolved} 项}`:` {month|${month.format('M月')}} {stats| ${monthStats[index].total} , 已落实 ${monthStats[index].resolved} 项}`,
text: index ===0 ?`{month|${month.format('M月')}} {stats| ${monthStats[index].total} , 已落实 0 项}`:` {month|${month.format('M月')}} {stats| ${monthStats[index].total} , 已落实 0 项}`,
left: `${gapPercent + index * (calendarWidthPercent + gapPercent)}%`,
top: 10,
textStyle: {
......
......@@ -115,13 +115,15 @@
{{ item.name }}
</div>
<div class="box1-main-right-info">
<div class="tag" :class="{
<!-- <div class="tag" :class="{
tag1: tag.status == 1,
tag2: tag.status == 2,
tag3: tag.status == 3
}" v-for="(tag, index) in item.industryList" :key="index">
{{ tag.industryName }}
</div>
</div> -->
<AreaTag v-for="(tag, index) in item.industryList" :key="index" :tagName="tag.industryName">
</AreaTag>
</div>
<div class="box1-main-right-center">
{{ item.describe }}
......@@ -183,13 +185,14 @@
<div class="text">{{ "查看更多" }}</div>
</div>
</div> -->
<RiskSignal :list="warningList" @item-click="handleClickToDetail" @more-click="handleToMoreRiskSignal">
<RiskSignal :list="warningList" @item-click="handleClickToDetail" @more-click="handleToMoreRiskSignal"
riskLevel="signalLevel" postDate="signalTime" name="signalTitle">
</RiskSignal>
</div>
<DivideHeader id="position2" class="divide2" :titleText="'资讯要闻'"></DivideHeader>
<div class="center-center">
<!-- <NewsList :newsList="newsList" @item-click="handleToNewsAnalysis" @more-click="handleToMoreNews" /> -->
<NewsList :list="newsList" />
<NewsList :newsList="newsList" @item-click="handleToNewsAnalysis" @more-click="handleToMoreNews" />
<!-- <NewsList :newsList="newsList" /> -->
<MessageBubble :messageList="messageList" @person-click="handleClickPerson" @info-click="handleGetMessage"
imageUrl="img" @more-click="handleToSocialDetail" />
</div>
......@@ -410,7 +413,7 @@
</template>
<script setup>
// import NewsList from "@/components/base/NewsList/index.vue";
import NewsList from "@/components/base/NewsList/index.vue";
import { onMounted, ref, computed, watch, nextTick } from "vue";
import router from "@/router";
import {
......@@ -426,6 +429,7 @@ import {
getDecreeTypeList
} from "@/api/decree/home";
import RiskSignal from "@/components/RiskSignal/RiskSignal.vue";
// import RiskSignal from "@/components/base/RiskSignal/index.vue";
import { getPersonSummaryInfo } from "@/api/common/index";
import { getNews, getSocialMedia } from "@/api/general/index";
import DivideHeader from "@/components/DivideHeader.vue";
......@@ -637,8 +641,11 @@ const warningList = ref([
// }
]);
const handlegetDecreeRiskSignal = async () => {
const params = {
moduleId: "0101"
};
try {
const res = await getDecreeRiskSignal();
const res = await getDecreeRiskSignal(params);
console.log("风险信号", res);
if (res.code === 200 && res.data) {
warningList.value = res.data;
......@@ -1760,6 +1767,7 @@ onMounted(async () => {
margin-top: 14px;
display: flex;
height: 24px;
gap: 8px;
.tag {
height: 24px;
......
import 'echarts-wordcloud';
const getWordCloudChart = (data) => {
const option = {
......
......@@ -4,19 +4,9 @@
<AnalysisBox title="相关政令关联分析" :showAllBtn="false">
<div class="box1-main">
<div class="left">
<el-empty
v-if="siderList.length === 0"
style="padding-top: 240px"
description="暂无数据"
:image-size="100"
/>
<div
class="left-item"
:class="{ leftItemActive: siderActiveIndex === index }"
v-for="(item, index) in siderList"
:key="index"
@click="handleClickSider(index)"
>
<el-empty v-if="siderList.length === 0" style="padding-top: 240px" description="暂无数据" :image-size="100" />
<div class="left-item" :class="{ leftItemActive: siderActiveIndex === index }"
v-for="(item, index) in siderList" :key="index" @click="handleClickSider(index)">
<div class="time">{{ item.time }}</div>
<div class="title">{{ item.title }}</div>
</div>
......@@ -25,7 +15,11 @@
<div class="right">
<div class="info-box">
<div class="info-left">
<img :src="decreeInfo.img" alt="" />
<img v-if="decreeInfo.img" :src="decreeInfo.img" alt="" />
<div v-else class="box1-main-left-img-mock">
<img class="img-mock-badge-img" src="./assets/icons/badge.png" />
<div class="img-mock-badge-title">{{ decreeInfo.eTotalTitle }}</div>
</div>
</div>
<div class="info-right">
<div class="info-item">
......@@ -34,11 +28,7 @@
<div class="item-right-text">
{{ decreeInfo.totalTitle }}
</div>
<div
class="item-right-icon"
v-if="decreeInfo.totalTitle"
@click="handleToDecreeDetail(decreeInfo)"
>
<div class="item-right-icon" v-if="decreeInfo.totalTitle" @click="handleToDecreeDetail(decreeInfo)">
<img src="./assets/icons/open-icon.png" alt="" />
</div>
</div>
......@@ -71,12 +61,8 @@
<div class="title">{{ "政令主要内容" }}</div>
</div>
<div class="list-main">
<el-empty
v-if="showList.length === 0"
style="padding-top: 150px"
description="暂无数据"
:image-size="100"
/>
<el-empty v-if="showList.length === 0" style="padding-top: 150px" description="暂无数据"
:image-size="100" />
<div class="list-item" v-for="(val, idx) in showList" :key="idx">
<div class="id">{{ idx + 1 }}</div>
<div class="title">{{ val.content }}</div>
......@@ -91,14 +77,8 @@
{{ `共 ${decreeInfo.list.length} 项` }}
</div>
<div class="footer-right">
<el-pagination
@current-change="handleCurrentChange"
:pageSize="pageSize"
:current-page="currentPage"
background
layout="prev, pager, next"
:total="decreeInfo.list.length"
/>
<el-pagination @current-change="handleCurrentChange" :pageSize="pageSize" :current-page="currentPage"
background layout="prev, pager, next" :total="decreeInfo.list.length" />
</div>
</div>
</div>
......@@ -181,7 +161,7 @@ const handleClickSider = async index => {
} else {
decreeInfo.value.list = [];
}
} catch (error) {}
} catch (error) { }
};
const decreeInfo = ref({
......@@ -240,7 +220,7 @@ const handleGetRelateOrder = async () => {
} else {
decreeInfo.value.list = [];
}
} catch (error) {}
} catch (error) { }
} else {
allData.value = [];
siderList.value = [];
......@@ -286,10 +266,12 @@ onMounted(() => {
.wrap {
height: 100%;
overflow: hidden;
.box-header {
height: 56px;
display: flex;
position: relative;
.header-left {
margin-top: 18px;
width: 8px;
......@@ -297,6 +279,7 @@ onMounted(() => {
border-radius: 0 4px 4px 0;
background: var(--color-main-active);
}
.title {
margin-left: 14px;
margin-top: 14px;
......@@ -307,15 +290,18 @@ onMounted(() => {
font-size: 20px;
font-weight: 700;
}
.header-btn-box {
position: absolute;
top: 14px;
right: 52px;
display: flex;
.btn {
margin-left: 8px;
}
}
.header-right {
position: absolute;
top: 14px;
......@@ -323,9 +309,11 @@ onMounted(() => {
height: 28px;
display: flex;
gap: 4px;
.icon {
width: 28px;
height: 28px;
img {
width: 100%;
height: 100%;
......@@ -333,18 +321,22 @@ onMounted(() => {
}
}
}
.box1 {
margin: 16px auto;
width: 1600px;
max-height: 898px;
min-height: 788px;
.box1-main {
display: flex;
margin-top: 5px;
margin-bottom: 10px;
.left {
margin-left: 21px;
width: 300px;
.left-item {
width: 300px;
height: 64px;
......@@ -355,9 +347,11 @@ onMounted(() => {
font-size: 18px;
font-weight: 400;
cursor: pointer;
&:hover {
background: rgba(246, 250, 255, 1);
}
.time {
width: 45px;
height: 24px;
......@@ -365,6 +359,7 @@ onMounted(() => {
margin-left: 18px;
margin-top: 20px;
}
.title {
width: 200px;
margin-left: 17px;
......@@ -381,10 +376,12 @@ onMounted(() => {
white-space: nowrap;
}
}
.leftItemActive {
color: var(--color-main-active);
font-weight: 700;
background: rgba(246, 250, 255, 1);
&::after {
position: relative;
content: "";
......@@ -396,8 +393,10 @@ onMounted(() => {
}
}
}
.right {
margin-left: 36px;
.info-box {
margin-left: 28px;
width: 1180px;
......@@ -406,24 +405,73 @@ onMounted(() => {
border: 1px solid rgba(231, 243, 255, 1);
background: rgba(246, 250, 255, 1);
display: flex;
.info-left {
width: 242px;
height: 136px;
margin-top: 25px;
margin-left: 28px;
img {
// width: 100%;
height: 100%;
}
.box1-main-left-img-mock {
width: 100%;
height: 100%;
border-radius: 4px;
background-color: #0b1932;
display: flex;
align-items: center;
flex-direction: column;
justify-content: space-around;
padding: 15px;
.img-mock-badge-img {
width: 50px;
height: 50px;
}
.img-mock-badge-title {
text-align: center;
font-size: 14px;
line-height: 20px;
color: #fff;
height: 40px;
display: -webkit-box;
/* 2. 设置排列方向为垂直 */
-webkit-box-orient: vertical;
/* 3. 设置显示的行数(这里设为2行) */
-webkit-line-clamp: 2;
/* 4. 处理溢出和换行 */
overflow: hidden;
text-overflow: ellipsis;
word-break: break-word;
}
// .img-mock-badge-org {
// text-align: center;
// font-size: 14px;
// color: #fff;
// }
}
}
.info-right {
margin-left: 20px;
margin-top: 22px;
.info-item {
display: flex;
min-height: 30px;
max-height: 60px;
margin-bottom: 8px;
.item-left {
// margin-top: 3px;
width: 100px;
......@@ -434,6 +482,7 @@ onMounted(() => {
font-weight: 700;
line-height: 24px;
}
.item-right {
width: 769px;
// height: 30px;
......@@ -443,8 +492,10 @@ onMounted(() => {
font-weight: 400;
line-height: 25px;
}
.item-right1 {
display: flex;
.item-right-text {
height: 30px;
color: var(--color-main-active);
......@@ -453,12 +504,14 @@ onMounted(() => {
font-weight: 700;
line-height: 30px;
}
.item-right-icon {
margin-left: 13px;
margin-top: 7px;
width: 16px;
height: 16px;
cursor: pointer;
img {
width: 100%;
height: 100%;
......@@ -468,22 +521,27 @@ onMounted(() => {
}
}
}
.list-box {
margin-left: 36px;
.list-header {
display: flex;
height: 56px;
border-bottom: 1px solid rgba(234, 236, 238, 1);
.icon {
margin-top: 21px;
margin-left: 17px;
width: 19px;
height: 19px;
img {
width: 100%;
height: 100%;
}
}
.title {
margin-top: 16px;
margin-left: 16px;
......@@ -495,11 +553,13 @@ onMounted(() => {
line-height: 30px;
}
}
.list-main {
min-height: 420px;
max-height: 540px;
overflow-x: hidden;
overflow-y: auto;
.list-item {
width: 1180px;
min-height: 65px;
......@@ -509,9 +569,11 @@ onMounted(() => {
border-bottom: 1px solid rgba(234, 236, 238, 1);
display: flex;
cursor: pointer;
&:hover {
background: var(--color-bg-hover);
}
.id {
width: 24px;
height: 24px;
......@@ -523,6 +585,7 @@ onMounted(() => {
line-height: 24px;
color: #0a57a6;
}
.title {
margin-left: 13px;
margin-top: 12px;
......@@ -535,10 +598,12 @@ onMounted(() => {
font-weight: 400;
line-height: 25px;
}
.open {
width: 16px;
height: 16px;
margin-top: 20px;
img {
width: 100%;
height: 100%;
......@@ -547,12 +612,14 @@ onMounted(() => {
}
}
}
.list-footer {
margin-left: 35px;
height: 32px;
margin-top: 10px;
display: flex;
justify-content: space-between;
.footer-left {
color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论