提交 75af5d0f authored 作者: yanpeng's avatar yanpeng

Merge branch 'pre' of http://8.140.26.4:10003/caijian/risk-monitor into yp-dev

流水线 #503 已通过 于阶段
in 1 分 59 秒
...@@ -16,3 +16,35 @@ export function getPageQuery(data) { ...@@ -16,3 +16,35 @@ export function getPageQuery(data) {
data: data data: data
}) })
} }
/** 风险信号详情(GET /api/riskSignal/getRiskSignalInfoById/{id}) */
export function getRiskSignalInfoById(id) {
return request({
method: "GET",
url: `/api/riskSignal/getRiskSignalInfoById/${id}`
});
}
/** 确定风险:更新处理状态(GET /api/riskSignal/UpdateStatu/{id}) */
export function updateRiskSignalStatus(id) {
return request({
method: "GET",
url: `/api/riskSignal/UpdateStatu/${id}`
});
}
/** 风险类型字典(GET /api/riskSignal/getRiskTypes) */
export function getRiskTypes() {
return request({
method: "GET",
url: `/api/riskSignal/getRiskTypes`
});
}
/** 风险来源国家字典(GET /api/riskSignal/listRiskCountry) */
export function listRiskCountry() {
return request({
method: "GET",
url: `/api/riskSignal/listRiskCountry`
});
}
...@@ -26,13 +26,12 @@ export function getNewReport() { ...@@ -26,13 +26,12 @@ export function getNewReport() {
}) })
} }
// 风险信号 // 风险信号(统一走通用接口 /api/commonFeature/riskSignal/{moduleId})
export function getThinkTankRiskSignal() { export function getThinkTankRiskSignal(moduleId = "0102") {
return request({ return request({
method: 'GET', method: "GET",
url: `/api/thinkTankOverview/riskSignal`, url: `/api/commonFeature/riskSignal/${moduleId}`,
});
})
} }
/** /**
......
...@@ -196,6 +196,14 @@ ...@@ -196,6 +196,14 @@
border-radius: 20px; border-radius: 20px;
} }
.risk-signal-detail-dialog .risk-signal-detail-dialog__directions {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.risk-signal-detail-dialog .risk-signal-detail-dialog__body { .risk-signal-detail-dialog .risk-signal-detail-dialog__body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -224,6 +232,52 @@ ...@@ -224,6 +232,52 @@
margin-right: 6px; margin-right: 6px;
} }
.risk-signal-detail-dialog .risk-signal-detail-dialog__read-indicator {
position: absolute;
right: 115px;
top: 50%;
transform: translateY(-50%);
display: inline-flex;
align-items: center;
gap: 8px;
}
.risk-signal-detail-dialog .risk-signal-detail-dialog__header-badge-close {
width: 16px;
height: 16px;
border-radius: 8px;
background-color: rgba(206, 79, 81, 1);
color: rgba(255, 255, 255, 1);
display: inline-flex;
align-items: center;
justify-content: center;
}
.risk-signal-detail-dialog .risk-signal-detail-dialog__header-badge-close svg {
width: 12px;
height: 12px;
}
.risk-signal-detail-dialog .risk-signal-detail-dialog__header-badge-close svg path {
fill: rgba(255, 255, 255, 1) !important;
stroke: rgba(255, 255, 255, 1) !important;
}
.risk-signal-detail-dialog .risk-signal-detail-dialog__header-badge-read {
width: 16px;
height: 16px;
display: block;
}
.risk-signal-detail-dialog .read {
font-family: "Source Han Sans CN", sans-serif;
font-weight: 400;
font-size: 16px;
line-height: 24px;
letter-spacing: 0;
color: rgb(95, 101, 108);
}
.risk-signal-detail-dialog .header-icon img { .risk-signal-detail-dialog .header-icon img {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -311,7 +365,13 @@ ...@@ -311,7 +365,13 @@
margin-top: 24px; margin-top: 24px;
padding-left: 12px; padding-left: 12px;
padding-right: 12px; padding-right: 12px;
height: 310px; height: 360px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 14;
line-clamp: 14;
overflow: hidden;
text-overflow: ellipsis;
} }
.risk-signal-detail-dialog .risk-signal-detail-dialog__desc-p { .risk-signal-detail-dialog .risk-signal-detail-dialog__desc-p {
...@@ -327,3 +387,11 @@ ...@@ -327,3 +387,11 @@
flex-wrap: wrap; flex-wrap: wrap;
gap: 8px; gap: 8px;
} }
/* 详情请求中 v-loading 遮罩区域(与列表一致有足够高度以便居中) */
.risk-signal-detail-dialog .risk-signal-detail-dialog__main {
position: relative;
width: 100%;
min-height: 480px;
box-sizing: border-box;
}
差异被折叠。
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
class="risk-signals-item" class="risk-signals-item"
v-for="(item, index) in warningList" v-for="(item, index) in warningList"
:key="item.signalId || item.billId || index" :key="item.signalId || item.billId || index"
@click="handleRiskSignalItemToManage" @click="handleRiskSignalItemToManage(item)"
:class="{ highlighted: item.eventType === highlightedEventType }" :class="{ highlighted: item.eventType === highlightedEventType }"
> >
<div <div
...@@ -115,7 +115,13 @@ ...@@ -115,7 +115,13 @@
</div> </div>
</div> </div>
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
</template> </template>
...@@ -292,8 +298,10 @@ const handleSwithCurNews = name => { ...@@ -292,8 +298,10 @@ const handleSwithCurNews = name => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
:key="item.signalId != null ? String(item.signalId) : 'risk-' + index" :key="item.signalId != null ? String(item.signalId) : 'risk-' + index"
@mouseenter="onMouseEnter(item, index)" @mouseenter="onMouseEnter(item, index)"
@mouseleave="onMouseLeave" @mouseleave="onMouseLeave"
@click.stop="handleRiskSignalRowToManage" @click.stop
:class="['risk-signals-item', { 'risk-signals-item-hightLight': riskSignalActiveIndex === index }]" :class="['risk-signals-item', { 'risk-signals-item-hightLight': riskSignalActiveIndex === index }]"
> >
<div class="item-left" :class="{ <div class="item-left" :class="{
...@@ -125,7 +125,6 @@ ...@@ -125,7 +125,6 @@
</div> </div>
</div> </div>
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" />
</div> </div>
</template> </template>
...@@ -136,7 +135,6 @@ import WaveBall from "./WaveBall.vue"; ...@@ -136,7 +135,6 @@ import WaveBall from "./WaveBall.vue";
import { getLatestRiskUpdates, getLatestRisks } from "@/api/zmOverview/risk/index.js"; import { getLatestRiskUpdates, getLatestRisks } from "@/api/zmOverview/risk/index.js";
import router from "@/router/index"; import router from "@/router/index";
import { navigateToViewRiskSignal } from "@/utils/riskSignalOverviewNavigate"; import { navigateToViewRiskSignal } from "@/utils/riskSignalOverviewNavigate";
import RiskSignalOverviewDetailDialog from "@/components/base/RiskSignalOverviewDetailDialog/index.vue";
import icon1 from "./icon/title-1.svg"; import icon1 from "./icon/title-1.svg";
import icon2 from "./icon/title-2.svg"; import icon2 from "./icon/title-2.svg";
import icon3 from "./icon/title-3.svg"; import icon3 from "./icon/title-3.svg";
...@@ -654,11 +652,7 @@ const filteredHotNewsList = computed(() => { ...@@ -654,11 +652,7 @@ const filteredHotNewsList = computed(() => {
return hotNewsList.value.filter(newsItem => newsItem.signalId === currentHoveredSignalId.value); return hotNewsList.value.filter(newsItem => newsItem.signalId === currentHoveredSignalId.value);
}); });
const isRiskOverviewDetailOpen = ref(false); // 首页风险信号不弹详情弹窗
const handleRiskSignalRowToManage = () => {
isRiskOverviewDetailOpen.value = true;
};
const handleToRiskManage = () => { const handleToRiskManage = () => {
navigateToViewRiskSignal(router); navigateToViewRiskSignal(router);
......
...@@ -238,7 +238,13 @@ ...@@ -238,7 +238,13 @@
<DivideHeader id="position4" class="divide4" :titleText="'资源库'"></DivideHeader> <DivideHeader id="position4" class="divide4" :titleText="'资源库'"></DivideHeader>
<ResourceLibrarySection :on-click-to-detail="handleClickToDetailO" :on-after-page-change="handlePageChange" /> <ResourceLibrarySection :on-click-to-detail="handleClickToDetailO" :on-after-page-change="handlePageChange" />
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
</div> </div>
</template> </template>
...@@ -469,8 +475,10 @@ const handleClickToDetailO = item => { ...@@ -469,8 +475,10 @@ const handleClickToDetailO = item => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -113,7 +113,13 @@ ...@@ -113,7 +113,13 @@
<RiskSignal :list="riskSignals" @more-click="handleToMoreRiskSignal" postDate="time" name="content" <RiskSignal :list="riskSignals" @more-click="handleToMoreRiskSignal" postDate="time" name="content"
riskLevel="title" @item-click="handleRiskSignalItemToManage" /> riskLevel="title" @item-click="handleRiskSignalItemToManage" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="content"
post-date-field="time"
risk-level-field="title"
/>
</div> </div>
</template> </template>
...@@ -214,8 +220,10 @@ const handleToRiskDetail = (item) => { ...@@ -214,8 +220,10 @@ const handleToRiskDetail = (item) => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -403,7 +403,13 @@ ...@@ -403,7 +403,13 @@
</div> </div>
</div> </div>
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
</template> </template>
...@@ -496,7 +502,10 @@ const onNavigateTo = () => { ...@@ -496,7 +502,10 @@ const onNavigateTo = () => {
// 查看更多风险信号 // 查看更多风险信号
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const handleRiskSignalItemToManage = () => { const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -721,7 +721,13 @@ ...@@ -721,7 +721,13 @@
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</template> </template>
<script setup> <script setup>
...@@ -830,9 +836,10 @@ const handleToPosi = id => { ...@@ -830,9 +836,10 @@ const handleToPosi = id => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
// 风险信号:概览写死详情弹窗 const handleToRiskSignalDetail = (item) => {
const handleToRiskSignalDetail = () => { riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -544,7 +544,13 @@ ...@@ -544,7 +544,13 @@
</custom-container> </custom-container>
</el-col> </el-col>
</el-row> </el-row>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="title"
post-date-field="time"
risk-level-field="status"
/>
</div> </div>
</div> </div>
</template> </template>
...@@ -635,8 +641,10 @@ const messageList = ref([ ...@@ -635,8 +641,10 @@ const messageList = ref([
} }
]); ]);
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleToRiskSignalDetail = () => { const handleToRiskSignalDetail = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -688,7 +688,13 @@ ...@@ -688,7 +688,13 @@
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</template> </template>
<script setup> <script setup>
...@@ -807,9 +813,10 @@ const handleToPosi = id => { ...@@ -807,9 +813,10 @@ const handleToPosi = id => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
// 风险信号:概览写死详情弹窗 const handleToRiskSignalDetail = (item) => {
const handleToRiskSignalDetail = () => { riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
...@@ -1529,7 +1536,7 @@ const strengthLabels = { ...@@ -1529,7 +1536,7 @@ const strengthLabels = {
// 获取风险信号数据 // 获取风险信号数据
const fetchRiskSignals = async () => { const fetchRiskSignals = async () => {
try { try {
const data = await getRiskSignal(); const data = await getRiskSignal("0109");
if (data && Array.isArray(data)) { if (data && Array.isArray(data)) {
console.log(data); console.log(data);
warningList.value = data.map(item => ({ warningList.value = data.map(item => ({
...@@ -1549,7 +1556,7 @@ const fetchRiskSignals = async () => { ...@@ -1549,7 +1556,7 @@ const fetchRiskSignals = async () => {
// 添加获取社交媒体信息的方法 // 添加获取社交媒体信息的方法
const fetchSocialMediaInfo = async () => { const fetchSocialMediaInfo = async () => {
try { try {
const data = await getSocialMediaInfo(); const data = await getSocialMediaInfo("0109");
if (data && Array.isArray(data)) { if (data && Array.isArray(data)) {
// console.log(data); // console.log(data);
socialMediaList.value = data.map(item => ({ socialMediaList.value = data.map(item => ({
...@@ -1570,7 +1577,7 @@ const fetchSocialMediaInfo = async () => { ...@@ -1570,7 +1577,7 @@ const fetchSocialMediaInfo = async () => {
// 添加获取新闻资讯的方法 // 添加获取新闻资讯的方法
const fetchNewsInfo = async () => { const fetchNewsInfo = async () => {
try { try {
const data = await getNewsInfo(); const data = await getNewsInfo("0109");
if (data && Array.isArray(data)) { if (data && Array.isArray(data)) {
newsList.value = data.map(item => ({ newsList.value = data.map(item => ({
...item, ...item,
......
...@@ -75,7 +75,12 @@ ...@@ -75,7 +75,12 @@
</div> </div>
<div class="item-header-divider" /> <div class="item-header-divider" />
<div class="warning-wrap"> <div class="warning-wrap">
<div v-for="(item, index) in warningList" :key="index" class="waring-item" @click="handleRiskSignalItemClick"> <div
v-for="(item, index) in warningList"
:key="item.title + '-' + item.time + '-' + index"
class="waring-item"
@click="handleRiskSignalItemClick(item)"
>
<div class="waring-row"> <div class="waring-row">
<div class="waring-status" :style="{ <div class="waring-status" :style="{
color: item.status === 0 ? '#CE4F51' : item.status === 1 ? '#FA8C16' : '#52C41A', color: item.status === 0 ? '#CE4F51' : item.status === 1 ? '#FA8C16' : '#52C41A',
...@@ -114,7 +119,13 @@ ...@@ -114,7 +119,13 @@
<AdvantagesAnalysis /> <AdvantagesAnalysis />
<div style="width: 100%;height: 100px;"></div> <div style="width: 100%;height: 100px;"></div>
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="title"
post-date-field="time"
risk-level-field="riskLevel"
/>
</div> </div>
</template> </template>
...@@ -224,8 +235,15 @@ const warningList = ref([ ...@@ -224,8 +235,15 @@ const warningList = ref([
]); ]);
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemClick = () => { const mapRiskOverviewRowFromStatus = (item) => ({
...item,
riskLevel: item.status === 0 ? "特别重大" : item.status === 1 ? "重大风险" : "一般风险"
});
const handleRiskSignalItemClick = (item) => {
riskOverviewDetailRow.value = mapRiskOverviewRowFromStatus(item);
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -147,7 +147,13 @@ ...@@ -147,7 +147,13 @@
</div> --> </div> -->
<RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" <RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage"
riskLevel="signalLevel" postDate="signalTime" name="signalTitle" /> riskLevel="signalLevel" postDate="signalTime" name="signalTitle" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
<DivideHeader id="position2" class="divide2" :titleText="'资讯要闻'"></DivideHeader> <DivideHeader id="position2" class="divide2" :titleText="'资讯要闻'"></DivideHeader>
<div class="center-center"> <div class="center-center">
...@@ -518,8 +524,10 @@ const handleClickToDetail = university => { ...@@ -518,8 +524,10 @@ const handleClickToDetail = university => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -59,7 +59,13 @@ ...@@ -59,7 +59,13 @@
</overviewMainBox> </overviewMainBox>
</div> </div>
<RiskSignal :list="box2Data" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" postDate="signalTime" name="signalTitle" riskLevel="signalLevel" /> <RiskSignal :list="box2Data" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" postDate="signalTime" name="signalTitle" riskLevel="signalLevel" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
<DivideHeader id="position2" class="divide-header" :titleText="'资讯要闻'"></DivideHeader> <DivideHeader id="position2" class="divide-header" :titleText="'资讯要闻'"></DivideHeader>
...@@ -1007,7 +1013,10 @@ const handleFetchSurveyList = async () => { ...@@ -1007,7 +1013,10 @@ const handleFetchSurveyList = async () => {
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const handleRiskSignalItemToManage = () => { const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -112,7 +112,12 @@ ...@@ -112,7 +112,12 @@
</div> </div>
<div class="item-header-divider"></div> <div class="item-header-divider"></div>
<div style="padding: 30px 23px; height: 400px"> <div style="padding: 30px 23px; height: 400px">
<div class="waring-item" v-for="(item, index) in warningList" :key="index" @click="handleRiskSignalItemClick"> <div
class="waring-item"
v-for="(item, index) in warningList"
:key="item.title + '-' + item.time + '-' + index"
@click="handleRiskSignalItemClick(item)"
>
<div style="display: flex; height: 47px"> <div style="display: flex; height: 47px">
<div <div
class="waring-status" class="waring-status"
...@@ -195,7 +200,13 @@ ...@@ -195,7 +200,13 @@
<strengthComparison /> <strengthComparison />
</div> </div>
</div> </div>
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="title"
post-date-field="time"
risk-level-field="riskLevel"
/>
</div> </div>
</template> </template>
...@@ -227,8 +238,15 @@ const handleToSearch = () => { ...@@ -227,8 +238,15 @@ const handleToSearch = () => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemClick = () => { const mapRiskOverviewRowFromStatus = (item) => ({
...item,
riskLevel: item.status === 0 ? "特别重大" : item.status === 1 ? "重大风险" : "一般风险"
});
const handleRiskSignalItemClick = (item) => {
riskOverviewDetailRow.value = mapRiskOverviewRowFromStatus(item);
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -71,7 +71,13 @@ ...@@ -71,7 +71,13 @@
</div> --> </div> -->
<RiskSignal :list="list" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" <RiskSignal :list="list" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage"
riskLevel="signalLevel" postDate="signalTime" name="signalTitle" /> riskLevel="signalLevel" postDate="signalTime" name="signalTitle" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
</template> </template>
...@@ -198,8 +204,10 @@ const handleToRiskDetail = (item) => { ...@@ -198,8 +204,10 @@ const handleToRiskDetail = (item) => {
// }; // };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -92,7 +92,13 @@ ...@@ -92,7 +92,13 @@
</div> --> </div> -->
<RiskSignal :list="list" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" <RiskSignal :list="list" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage"
postDate="signalTime" name="signalTitle" riskLevel="signalLevel" /> postDate="signalTime" name="signalTitle" riskLevel="signalLevel" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
</template> </template>
...@@ -128,8 +134,10 @@ const formatDate = (dateStr) => { ...@@ -128,8 +134,10 @@ const formatDate = (dateStr) => {
return `${y}${m}${d}日`; return `${y}${m}${d}日`;
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -157,7 +157,13 @@ ...@@ -157,7 +157,13 @@
<RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage" <RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" @item-click="handleRiskSignalItemToManage"
postDate="signalTime" name="signalTitle" riskLevel="signalLevel" /> postDate="signalTime" name="signalTitle" riskLevel="signalLevel" />
<RiskSignalOverviewDetailDialog v-model="isRiskOverviewDetailOpen" /> <RiskSignalOverviewDetailDialog
v-model="isRiskOverviewDetailOpen"
:row="riskOverviewDetailRow"
name-field="signalTitle"
post-date-field="signalTime"
risk-level-field="signalLevel"
/>
</div> </div>
<DivideHeader id="position2" class="divide-header" :titleText="'言论动态'" v-if="false"></DivideHeader> <DivideHeader id="position2" class="divide-header" :titleText="'言论动态'" v-if="false"></DivideHeader>
<div class="center-center"> <div class="center-center">
...@@ -824,8 +830,10 @@ const handleClickCate = cate => { ...@@ -824,8 +830,10 @@ const handleClickCate = cate => {
}; };
const isRiskOverviewDetailOpen = ref(false); const isRiskOverviewDetailOpen = ref(false);
const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => { const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskOverviewDetailOpen.value = true; isRiskOverviewDetailOpen.value = true;
}; };
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</div> </div>
</div> </div>
<div class="time-tab-pane"> <div class="time-tab-pane">
<TimeTabPane @time-click="handleTimeClick" /> <TimeTabPane :activeTime="'近一年'" @time-click="handleTimeClick" />
</div> </div>
</div> </div>
<div class="all-item"> <div class="all-item">
...@@ -129,7 +129,7 @@ const sortedCardList = computed(() => { ...@@ -129,7 +129,7 @@ const sortedCardList = computed(() => {
const currentPage = ref(1) const currentPage = ref(1)
const pageSize = ref(15) const pageSize = ref(15)
const total = ref(0) const total = ref(0)
const timePeriod = ref("WEEK") const timePeriod = ref("YEAR")
const handleTimeClick = item => { const handleTimeClick = item => {
const time = item?.time const time = item?.time
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</div> </div>
</div> </div>
<div class="time-tab-pane"> <div class="time-tab-pane">
<TimeTabPane @time-click="handleTimeClick" /> <TimeTabPane :activeTime="'近一年'" @time-click="handleTimeClick" />
</div> </div>
</div> </div>
<div class="home-main-header-card-box"> <div class="home-main-header-card-box">
...@@ -211,7 +211,12 @@ ...@@ -211,7 +211,12 @@
<RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" postDate="time" name="title" <RiskSignal :list="warningList" @more-click="handleToMoreRiskSignal" postDate="time" name="title"
@item-click="handleRiskSignalItemToManage" /> @item-click="handleRiskSignalItemToManage" />
<RiskSignalOverviewDetailDialog v-model="isRiskDetailVisible" /> <RiskSignalOverviewDetailDialog
v-model="isRiskDetailVisible"
:row="riskOverviewDetailRow"
name-field="title"
post-date-field="time"
/>
</div> </div>
<DivideHeader id="position2" class="divide-header" :titleText="'资讯要闻'"></DivideHeader> <DivideHeader id="position2" class="divide-header" :titleText="'资讯要闻'"></DivideHeader>
<div class="center-center"> <div class="center-center">
...@@ -574,7 +579,7 @@ const goToAllThinkTank = () => { ...@@ -574,7 +579,7 @@ const goToAllThinkTank = () => {
// 替换为你的实际路由路径 // 替换为你的实际路由路径
routerTo.push('/thinkTank/allThinkTank'); routerTo.push('/thinkTank/allThinkTank');
}; };
const timePeriod = ref("WEEK") const timePeriod = ref("YEAR")
const handleTimeClick = item => { const handleTimeClick = item => {
const time = item?.time const time = item?.time
...@@ -802,15 +807,15 @@ const warningList = ref([ ...@@ -802,15 +807,15 @@ const warningList = ref([
// 获取智库风险信号 // 获取智库风险信号
const handleGetThinkTankRiskSignal = async () => { const handleGetThinkTankRiskSignal = async () => {
try { try {
const res = await getThinkTankRiskSignal(); const res = await getThinkTankRiskSignal("0102");
console.log("智库风险信号", res); console.log("智库风险信号", res);
if (res.code === 200) { if (res.code === 200) {
warningList.value = res.data.map(item => { warningList.value = res.data.map(item => {
return { return {
title: item.name, title: item.signalTitle,
time: item.times, time: item.signalTime,
id: item.reportId, id: item.signalId,
status: item.riskLevel || "暂无数据" status: item.signalLevel || "暂无数据"
}; };
}); });
} }
...@@ -2139,8 +2144,10 @@ const handleClick = tank => { ...@@ -2139,8 +2144,10 @@ const handleClick = tank => {
// router.push({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } }) // router.push({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } })
}; };
// 风险信号 item:当前页弹窗(内容与样式与风险信号管理页 dialog 一致,写死展示) const riskOverviewDetailRow = ref(null);
const handleRiskSignalItemToManage = () => {
const handleRiskSignalItemToManage = (item) => {
riskOverviewDetailRow.value = item ?? null;
isRiskDetailVisible.value = true; isRiskDetailVisible.value = true;
}; };
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论