提交 38eebf77 authored 作者: yanpeng's avatar yanpeng

Merge branch 'master' into yp-dev

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