提交 1c9f29b9 authored 作者: 李智林's avatar 李智林

“update”

...@@ -83,3 +83,12 @@ export function getEnterprisPatentField(params) { ...@@ -83,3 +83,12 @@ export function getEnterprisPatentField(params) {
} }
//被制裁情况:事件
export function getSanctionList(params) {
return request({
method: 'GET',
url: `/api/enterprisePage/getSanctionList/${params}`,
})
}
...@@ -22,7 +22,7 @@ const router = createRouter({ ...@@ -22,7 +22,7 @@ const router = createRouter({
// 路由守卫 - 设置页面标题 // 路由守卫 - 设置页面标题
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
if (to.meta.title) { if (to.meta.title) {
// document.title = `${to.meta.title} - Think Tank` document.title = to.meta.title
} }
next(); next();
}); });
......
...@@ -4,7 +4,7 @@ import companyPages from "@/views/companyPages/index.vue"; ...@@ -4,7 +4,7 @@ import companyPages from "@/views/companyPages/index.vue";
const companyPagesRoutes = [ const companyPagesRoutes = [
// 智库系统的主要路由 // 智库系统的主要路由
{ {
path: "/companyPages:id", path: "/companyPages/:id",
name: "companyPages", name: "companyPages",
component: companyPages, component: companyPages,
meta: { meta: {
......
...@@ -192,17 +192,17 @@ ...@@ -192,17 +192,17 @@
</div> </div>
</div> </div>
<div class="box1-main-right"> <div class="box1-main-right">
<img src="./assets/images/box1-main-right-img.png" alt="" /> <img :src="bill.news?.newsImage" alt="" />
<div class="inner-box"> <div class="inner-box">
<div class="inner-box-header"> <div class="inner-box-header">
<div class="inner-box-title"> <div class="inner-box-title">
{{ "大而美法案涉险通过参议院表决,众议院将继续..." }} {{ bill.news?.newsTitle }}
</div> </div>
<div class="inner-box-time">{{ "1小时前" }}</div> <div class="inner-box-time">{{ bill.news?.newsTime.replace('T', ' ') }}</div>
</div> </div>
<div class="inner-box-content"> <div class="inner-box-content">
{{ {{
"三名美国共和党众议员(2025年7月21日)致函几家美国科技巨头公司的负责人,询问他们是否已经采取了充分的安全保障措施以有效解..." bill.news?.newsContent
}} }}
</div> </div>
</div> </div>
...@@ -841,11 +841,7 @@ const formatMessageTime = timeStr => { ...@@ -841,11 +841,7 @@ const formatMessageTime = timeStr => {
// 跳转人物主页 // 跳转人物主页
const handleClcikToCharacter = async (id) => { const handleClcikToCharacter = async (id) => {
window.sessionStorage.setItem("memberId", id);
const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList")); const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList"));
console.log("personTypeList", personTypeList);
let type = 0; let type = 0;
let personTypeName = ""; let personTypeName = "";
......
...@@ -30,9 +30,12 @@ ...@@ -30,9 +30,12 @@
</template> </template>
<script setup> <script setup>
import { ref, computed } from 'vue'; import { ref, onMounted } from 'vue';
import Timeline from './Timeline.vue'; import Timeline from './Timeline.vue';
import process from './process.vue'; import process from './process.vue';
import { useRouter } from "vue-router";
import { getSanctionList } from "@/api/companyPages/index.js";
const router = useRouter();
const sanctionTimeData = ref([ const sanctionTimeData = ref([
{ {
"title": "初步限制与“实体清单”", "title": "初步限制与“实体清单”",
...@@ -60,6 +63,24 @@ const sanctionTimeData = ref([ ...@@ -60,6 +63,24 @@ const sanctionTimeData = ref([
"time": "2025年10月" "time": "2025年10月"
} }
]) ])
// 获取制裁事件
const handleGetSanctionList = async () => {
try {
const res = await getSanctionList(router.currentRoute._value.params.id);
console.log("获取制裁事件", res);
if (res.code === 200 && res.data) {
sanctionTimeData.value = res.data
}
} catch (error) {
console.error("获取制裁事件error", error);
}
};
onMounted(async () => {
handleGetSanctionList()
});
</script> </script>
<style scoped> <style scoped>
......
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
<div class="node" :style="leftOffset(i)"> <div class="node" :style="leftOffset(i)">
<!-- 圆环 --> <!-- 圆环 -->
<div class="dot" :class="linePos(i, flip)" :style="{ <div class="dot" :class="linePos(i, flip)" :style="{
marginTop: linePos(i, flip) === 'down' ? '-5px' : '35px' marginTop: linePos(i, flip) === 'down' ? '-5px' : '-5px'
}"></div> }"></div>
<div class="time" :style="{ <div class="time" :style="{
marginTop: linePos(i, flip) === 'down' ? '-50px' : '10px' marginTop: linePos(i, flip) === 'down' ? '-50px' : '10px'
}" v-if="type === 'normal'"> }" v-if="type === 'normal'">
{{ item.time }} {{ item.sanctionDate }}
</div> </div>
<!-- 卡片:放到线右侧 --> <!-- 卡片:放到线右侧 -->
<div class="card" :class="[cardPos(i, flip), 'right-side']" @click="$emit('click-card', item)" :style="{ <div class="card" :class="[cardPos(i, flip), 'right-side']" @click="$emit('click-card', item)" :style="{
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="time" :style="{ <div class="time" :style="{
marginLeft: 0 marginLeft: 0
}" v-if="type !== 'normal'"> }" v-if="type !== 'normal'">
{{ item.time }} {{ item.sanctionDate }}
</div> </div>
<div class="title"> <div class="title">
{{ item.title }} {{ item.title }}
......
...@@ -67,14 +67,14 @@ ...@@ -67,14 +67,14 @@
class="content ai-content" class="content ai-content"
v-html="renderMarkdown(message.content)" v-html="renderMarkdown(message.content)"
></div> ></div>
<div v-if="message.raw_data" class="answer-title">完整实体列表</div> <div v-if="message.raw_data?.length" class="answer-title">完整实体列表</div>
<div v-if="message.raw_data" class="content row-content"> <div v-if="message.raw_data?.length" class="content row-content">
<div class="row-header"> <div class="row-header">
<div class="row-header-item1">{{ message.raw_data.columns.name_zhs }}</div> <div class="row-header-item1">{{ message.raw_data.columns?.name_zhs }}</div>
<div class="row-header-item">{{ message.raw_data.columns.date }}</div> <div class="row-header-item">{{ message.raw_data.columns?.date }}</div>
<div class="row-header-item">{{ message.raw_data.columns.industry }}</div> <div class="row-header-item">{{ message.raw_data.columns?.industry }}</div>
<div class="row-header-item">{{ message.raw_data.columns.category }}</div> <div class="row-header-item">{{ message.raw_data.columns?.category }}</div>
<div class="row-header-item2">{{ message.raw_data.columns.sanction_reason }}</div> <div class="row-header-item2">{{ message.raw_data.columns?.sanction_reason }}</div>
</div> </div>
<div class="row-main"> <div class="row-main">
<div <div
...@@ -644,7 +644,7 @@ const handleBillChat = async question => { ...@@ -644,7 +644,7 @@ const handleBillChat = async question => {
} }
} }
if (data.detail.error) { if (data.detail && data.detail.error) {
console.log(data.detail.error.message); console.log(data.detail.error.message);
// ElMessage.error(data.detail.error.message); // ElMessage.error(data.detail.error.message);
isCurAnswerMessage.value = true; isCurAnswerMessage.value = true;
......
...@@ -121,7 +121,7 @@ import { ref, onMounted } from "vue"; ...@@ -121,7 +121,7 @@ import { ref, onMounted } from "vue";
import router from "@/router"; import router from "@/router";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { search } from "@/api/comprehensiveSearch/index"; import { search } from "@/api/comprehensiveSearch/index";
import { getPersonSummaryInfo } from "@/api/common/index";
import Img1 from "./assets/images/img1.png"; import Img1 from "./assets/images/img1.png";
import Img2 from "./assets/images/img2.png"; import Img2 from "./assets/images/img2.png";
import Img3 from "./assets/images/img3.png"; import Img3 from "./assets/images/img3.png";
...@@ -167,10 +167,10 @@ const tabList = ref([ ...@@ -167,10 +167,10 @@ const tabList = ref([
name: "新闻", name: "新闻",
id: 8 id: 8
}, },
{ // {
name: "社媒", // name: "社媒",
id: 9 // id: 9
} // }
]); ]);
const activeTabId = ref(0); const activeTabId = ref(0);
...@@ -304,7 +304,58 @@ const handleSearch = async () => { ...@@ -304,7 +304,58 @@ const handleSearch = async () => {
} catch (error) {} } catch (error) {}
}; };
const handleToPage = item => { const handleToPage = async (item) => {
if(item.typeStr === '人物') {
const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList"));
let type = 0;
let personTypeName = "";
const params = {
personId: item.id
};
try {
const res = await getPersonSummaryInfo(params);
console.log("人物全局信息", res);
if (res.code === 200 && res.data) {
const arr = personTypeList.filter(item => {
return item.typeId === res.data.personType;
});
console.log("arr", arr);
if (arr && arr.length > 0) {
personTypeName = arr[0].typeName;
console.log("personTypeName", personTypeName);
if (personTypeName === "科技企业领袖") {
type = 1;
} else if (personTypeName === "国会议员") {
type = 2;
} else if (personTypeName === "智库研究人员") {
type = 3;
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
return;
}
const route = router.resolve({
path: "/characterPage",
query: {
type: type, // type=1为科技企业领袖,2为国会议员,3为智库研究人员
personId: id
}
});
window.open(route.href, "_blank");
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
return;
}
} else {
ElMessage.warning("获取人物全局信息错误");
return;
}
} catch (error) {}
}
let curRoute; let curRoute;
switch (item.typeStr) { switch (item.typeStr) {
case "法案": case "法案":
......
...@@ -246,8 +246,12 @@ const handleMouseMove = event => { ...@@ -246,8 +246,12 @@ const handleMouseMove = event => {
}; };
const handleToBillDetail = item => { const handleToBillDetail = item => {
window.sessionStorage.setItem("billId", item.billId); const route = router.resolve({
const route = router.resolve("/billLayout"); path: "/billLayout",
query: {
billId: item.billId
}
});
window.open(route.href, "_blank"); window.open(route.href, "_blank");
}; };
......
...@@ -156,8 +156,8 @@ const horizontalBarOptions = shallowRef({}); ...@@ -156,8 +156,8 @@ const horizontalBarOptions = shallowRef({});
const handleEttClick = item => { const handleEttClick = item => {
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
......
...@@ -342,8 +342,8 @@ const handleDomainChange = async domain => { ...@@ -342,8 +342,8 @@ const handleDomainChange = async domain => {
const handleOrgClick = item => { const handleOrgClick = item => {
console.log(item); console.log(item);
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
......
...@@ -305,8 +305,8 @@ watch( ...@@ -305,8 +305,8 @@ watch(
const handleOrgClick = item => { const handleOrgClick = item => {
console.log(item); console.log(item);
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
......
...@@ -411,8 +411,8 @@ const handleOrgClick = item => { ...@@ -411,8 +411,8 @@ const handleOrgClick = item => {
console.log(item); console.log(item);
if (item.entityType != 2) return; if (item.entityType != 2) return;
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
......
...@@ -82,17 +82,9 @@ ...@@ -82,17 +82,9 @@
</div> </div>
</div> </div>
<div class="home-main-header-footer-info"> <div class="home-main-header-footer-info">
<InfoCard <InfoCard v-for="(item, index) in infoList" :key="item.id" :title="item.nameZh" :subtitle="item.nameAbbr"
v-for="(item, index) in infoList" :description="item.description" :quantity="item.postCount" unit="次" :color="infoListColor[index]"
:key="item.id" @click="handleToEntityListNoId(item)" />
:title="item.nameZh"
:subtitle="item.nameAbbr"
:description="item.description"
:quantity="item.postCount"
unit="次"
:color="infoListColor[index]"
@click="handleToEntityListNoId(item)"
/>
</div> </div>
</div> </div>
...@@ -118,15 +110,8 @@ ...@@ -118,15 +110,8 @@
<img src="./assets/images/box1-right.png" alt="" /> <img src="./assets/images/box1-right.png" alt="" />
</div> </div>
</div> </div>
<el-carousel <el-carousel ref="carouselRef" height="350px" :autoplay="true" :interval="3000" arrow="never"
ref="carouselRef" indicator-position="none" @change="handleCarouselChange">
height="350px"
:autoplay="true"
:interval="3000"
arrow="never"
indicator-position="none"
@change="handleCarouselChange"
>
<el-carousel-item v-for="(item, index) in entitiesDataInfoList" :key="item.id + index"> <el-carousel-item v-for="(item, index) in entitiesDataInfoList" :key="item.id + index">
<div> <div>
<div class="box1-top"> <div class="box1-top">
...@@ -144,11 +129,8 @@ ...@@ -144,11 +129,8 @@
</div> </div>
<div class="box1-top-content-item"> <div class="box1-top-content-item">
<span class="box1-top-content-item-title">· 涉及领域:</span> <span class="box1-top-content-item-title">· 涉及领域:</span>
<div <div class="box1-top-content-item-tags" v-for="(domainItem, index) in item.domains"
class="box1-top-content-item-tags" :key="index">
v-for="(domainItem, index) in item.domains"
:key="index"
>
<el-tag :type="getTagType(domainItem)">{{ domainItem }}</el-tag> <el-tag :type="getTagType(domainItem)">{{ domainItem }}</el-tag>
</div> </div>
</div> </div>
...@@ -157,18 +139,10 @@ ...@@ -157,18 +139,10 @@
<div class="box1-bottom"> <div class="box1-bottom">
<div class="box1-bottom-title">· 涉及主要实体:</div> <div class="box1-bottom-title">· 涉及主要实体:</div>
<div class="box1-bottom-content"> <div class="box1-bottom-content">
<div <div class="box1-bottom-content-item" v-for="(ett, index) in item.sanEntities" :key="index"
class="box1-bottom-content-item" @click="handleEntityClick(ett)">
v-for="(ett, index) in item.sanEntities" <el-image v-if="ett.img" class="box1-bottom-content-item-img" :src="ett.img"
:key="index" alt=""></el-image>
@click="handleEntityClick(ett)"
>
<el-image
v-if="ett.img"
class="box1-bottom-content-item-img"
:src="ett.img"
alt=""
></el-image>
<div v-else class="box1-bottom-content-item-imgUndefined"> <div v-else class="box1-bottom-content-item-imgUndefined">
{{ {{
(ett.entityNameZh || ett.enName)?.match( (ett.entityNameZh || ett.enName)?.match(
...@@ -184,7 +158,9 @@ ...@@ -184,7 +158,9 @@
</div> </div>
<div class="box1-absolute"> <div class="box1-absolute">
<div class="box1-absolute-des"> <div class="box1-absolute-des">
<el-icon><Warning color="rgba(206, 79, 81, 1)" /></el-icon> <el-icon>
<Warning color="rgba(206, 79, 81, 1)" />
</el-icon>
<span>新增中国实体</span> <span>新增中国实体</span>
</div> </div>
<div class="box1-absolute-num">{{ item.cnEntityCount }}</div> <div class="box1-absolute-num">{{ item.cnEntityCount }}</div>
...@@ -197,23 +173,16 @@ ...@@ -197,23 +173,16 @@
</custom-container> </custom-container>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<custom-container <custom-container titleType="danger" title="风险信号" :headerNum="warningList.length" :titleIcon="dangerIcon"
titleType="danger" height="450px">
title="风险信号"
:headerNum="warningList.length"
:titleIcon="dangerIcon"
height="450px"
>
<template #default> <template #default>
<div class="box2-main"> <div class="box2-main">
<div class="box2-main-item" v-for="(item, index) in warningList" :key="index" @click="handleToRiskSignalDetail(item)"> <div class="box2-main-item" v-for="(item, index) in warningList" :key="index"
<div @click="handleToRiskSignalDetail(item)">
class="item-left" <div class="item-left" :class="{
:class="{
itemLeftStatus1: item.status === '一般风险', itemLeftStatus1: item.status === '一般风险',
itemLeftStatus2: item.status === '重大风险' itemLeftStatus2: item.status === '重大风险'
}" }">
>
{{ item.status }} {{ item.status }}
</div> </div>
<div class="item-right"> <div class="item-right">
...@@ -258,17 +227,9 @@ ...@@ -258,17 +227,9 @@
<custom-container title="社交媒体" :titleIcon="dialogIcon" height="450px"> <custom-container title="社交媒体" :titleIcon="dialogIcon" height="450px">
<template #default> <template #default>
<div class="dialog-list"> <div class="dialog-list">
<MessageBubble <MessageBubble v-for="(item, index) in socialMediaList" @click="handlePerClick(item)"
v-for="(item, index) in socialMediaList" @info-click="handleMediaClick(item)" :key="index" :avatar="item.avatar" :name="item.name"
@click="handlePerClick(item)" :time="item.time" :source="item.source" :content="item.content" />
@info-click="handleMediaClick(item)"
:key="index"
:avatar="item.avatar"
:name="item.name"
:time="item.time"
:source="item.source"
:content="item.content"
/>
<!-- <MessageBubble <!-- <MessageBubble
:avatar="customMessage.avatar" :avatar="customMessage.avatar"
:name="customMessage.name" :name="customMessage.name"
...@@ -320,19 +281,14 @@ ...@@ -320,19 +281,14 @@
<template #default="scope"> <template #default="scope">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span> <span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span>
<el-progress <el-progress :percentage="scope.row.percent * 100" :show-text="false"
:percentage="scope.row.percent * 100" :status="getStatus(scope.row.percent)" />
:show-text="false"
:status="getStatus(scope.row.percent)"
/>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重点领域" width="280" align="center"> <el-table-column label="重点领域" width="280" align="center">
<template #default="scope"> <template #default="scope">
<div <div style="display: flex; justify-content: center; align-items: center; gap: 5px">
style="display: flex; justify-content: center; align-items: center; gap: 5px"
>
<el-tag v-for="tag in scope.row.tags" :key="tag" :type="getTagType(tag)">{{ <el-tag v-for="tag in scope.row.tags" :key="tag" :type="getTagType(tag)">{{
tag tag
}}</el-tag> }}</el-tag>
...@@ -349,19 +305,14 @@ ...@@ -349,19 +305,14 @@
<template #default="scope"> <template #default="scope">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span> <span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span>
<el-progress <el-progress :percentage="scope.row.percent * 100" :show-text="false"
:percentage="scope.row.percent * 100" :status="getStatus(scope.row.percent)" />
:show-text="false"
:status="getStatus(scope.row.percent)"
/>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重点领域" width="280" align="center"> <el-table-column label="重点领域" width="280" align="center">
<template #default="scope"> <template #default="scope">
<div <div style="display: flex; justify-content: center; align-items: center; gap: 5px">
style="display: flex; justify-content: center; align-items: center; gap: 5px"
>
<el-tag v-for="tag in scope.row.tags" :key="tag" :type="getTagType(tag)">{{ <el-tag v-for="tag in scope.row.tags" :key="tag" :type="getTagType(tag)">{{
tag tag
}}</el-tag> }}</el-tag>
...@@ -378,11 +329,8 @@ ...@@ -378,11 +329,8 @@
<template #default="scope"> <template #default="scope">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span> <span style="margin-right: 10px; width: 40px">{{ scope.row.num }}</span>
<el-progress <el-progress :percentage="scope.row.percent * 100" :show-text="false"
:percentage="scope.row.percent * 100" :status="getStatus(scope.row.percent)" />
:show-text="false"
:status="getStatus(scope.row.percent)"
/>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -429,13 +377,9 @@ ...@@ -429,13 +377,9 @@
<el-row :gutter="20" style="width: 1600px; margin: 0 auto"> <el-row :gutter="20" style="width: 1600px; margin: 0 auto">
<CustomTitle id="position4" title="资源库" style="margin-top: 54px" /> <CustomTitle id="position4" title="资源库" style="margin-top: 54px" />
<div class="resource-tabs"> <div class="resource-tabs">
<div <div v-for="tab in resourceTabs" :key="tab.value" class="resource-tab-item"
v-for="tab in resourceTabs"
:key="tab.value"
class="resource-tab-item"
:class="{ active: activeResourceTab === tab.value, disabled: tab.disabled }" :class="{ active: activeResourceTab === tab.value, disabled: tab.disabled }"
@click="handleResourceTabClick(tab)" @click="handleResourceTabClick(tab)">
>
{{ tab.label }} {{ tab.label }}
</div> </div>
</div> </div>
...@@ -448,25 +392,15 @@ ...@@ -448,25 +392,15 @@
<div class="box4-item" v-for="(item, idx) in sanctionProcessList" :key="item.title"> <div class="box4-item" v-for="(item, idx) in sanctionProcessList" :key="item.title">
<div class="box4-item-left"> <div class="box4-item-left">
<el-image :src="dotIcon" alt="图片" class="box4-item-left-icon" /> <el-image :src="dotIcon" alt="图片" class="box4-item-left-icon" />
<div <div class="box4-item-left-line" v-if="idx + 1 != sanctionProcessList.length"></div>
class="box4-item-left-line"
v-if="idx + 1 != sanctionProcessList.length"
></div>
</div> </div>
<div class="box4-item-right"> <div class="box4-item-right">
<div class="box4-item-right-header" @click="handleSanc(item)"> <div class="box4-item-right-header" @click="handleSanc(item)">
<span class="box4-item-right-header-title" <span class="box4-item-right-header-title">{{ item.postDate }}{{ item.title }}</span>
>{{ item.postDate }}{{ item.title }}</span
>
<span class="box4-item-right-header-desc">{{ item.desc }}</span> <span class="box4-item-right-header-desc">{{ item.desc }}</span>
</div> </div>
<el-tooltip <el-tooltip effect="dark" :content="item.content" popper-class="common-prompt-popper"
effect="dark" placement="top" :show-after="500">
:content="item.content"
popper-class="common-prompt-popper"
placement="top"
:show-after="500"
>
<div class="box4-item-right-content"> <div class="box4-item-right-content">
{{ item.content }} {{ item.content }}
</div> </div>
...@@ -474,13 +408,11 @@ ...@@ -474,13 +408,11 @@
</div> </div>
</div> </div>
</div> </div>
<div <div class="box4-footer" :style="{ marginTop: sanctionProcessList.length > 0 ? '0px' : 'auto' }">
class="box4-footer" <el-button type="primary" link @click="handleGetMore">查看更多
:style="{ marginTop: sanctionProcessList.length > 0 ? '0px' : 'auto' }" <el-icon>
> <DArrowRight />
<el-button type="primary" link @click="handleGetMore" </el-icon>
>查看更多
<el-icon><DArrowRight /></el-icon>
</el-button> </el-button>
</div> </div>
</div> </div>
...@@ -494,15 +426,8 @@ ...@@ -494,15 +426,8 @@
</template> </template>
<template #default> <template #default>
<div class="box5"> <div class="box5">
<el-table <el-table :data="entitiesList" class="sanction-table" stripe empty-text="暂无数据" height="700px"
:data="entitiesList" header-row-class-name="table-header" row-class-name="table-row">
class="sanction-table"
stripe
empty-text="暂无数据"
height="700px"
header-row-class-name="table-header"
row-class-name="table-row"
>
<!-- <el-table-column prop="index" label="序号" width="80" align="center"> <!-- <el-table-column prop="index" label="序号" width="80" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.$index + 1 + (currentPage - 1) * pageSize }} {{ scope.$index + 1 + (currentPage - 1) * pageSize }}
...@@ -512,12 +437,8 @@ ...@@ -512,12 +437,8 @@
<el-table-column prop="name" label="实体名称" min-width="200"> <el-table-column prop="name" label="实体名称" min-width="200">
<template #default="scope"> <template #default="scope">
<div class="tableName" @click="handleCompClick(scope.row)"> <div class="tableName" @click="handleCompClick(scope.row)">
<el-image <el-image v-if="scope.row.img" class="box1-bottom-content-item-img" :src="scope.row.img"
v-if="scope.row.img" alt=""></el-image>
class="box1-bottom-content-item-img"
:src="scope.row.img"
alt=""
></el-image>
<div v-else class="box1-bottom-content-item-imgUndefined"> <div v-else class="box1-bottom-content-item-imgUndefined">
{{ {{
(scope.row.name || scope.row.enName)?.match( (scope.row.name || scope.row.enName)?.match(
...@@ -568,19 +489,13 @@ ...@@ -568,19 +489,13 @@
<el-table-column prop="revenue" label="50%规则子企业" width="280" align="right"> <el-table-column prop="revenue" label="50%规则子企业" width="280" align="right">
<template #default="scope"> <template #default="scope">
<div class="num-item" v-if="scope.row.ruleOrgCount > 0"> <div class="num-item" v-if="scope.row.ruleOrgCount > 0">
<div <div class="name-item" :class="[
class="name-item"
:class="[
'revenue-cell', 'revenue-cell',
scope.row.revenue === '无营收数据' ? 'no-revenue' : '' scope.row.revenue === '无营收数据' ? 'no-revenue' : ''
]" ]">
>
{{ scope.row.ruleOrgList[0].orgName }}...等 {{ scope.row.ruleOrgList[0].orgName }}...等
</div> </div>
<div <div style="width: 50px; color: #409eff; cursor: pointer" @click="handleOrgClick(scope.row)">
style="width: 50px; color: #409eff; cursor: pointer"
@click="handleOrgClick(scope.row)"
>
{{ scope.row.ruleOrgCount }}家> {{ scope.row.ruleOrgCount }}家>
</div> </div>
</div> </div>
...@@ -592,15 +507,8 @@ ...@@ -592,15 +507,8 @@
<!-- <div class="pagination-info"> <!-- <div class="pagination-info">
第{{ currentPage }}页,共{{ totalPages }}页 第{{ currentPage }}页,共{{ totalPages }}页
</div> --> </div> -->
<el-pagination <el-pagination v-model:current-page="currentPage" :page-size="pageSize" :total="total"
v-model:current-page="currentPage" :pager-count="5" layout="prev, pager, next" background @current-change="handlePageChange" />
:page-size="pageSize"
:total="total"
:pager-count="5"
layout="prev, pager, next"
background
@current-change="handlePageChange"
/>
</div> </div>
</div> </div>
</template> </template>
...@@ -665,6 +573,7 @@ ...@@ -665,6 +573,7 @@
</div> </div>
</div> </div>
<div class="right-footer"> <div class="right-footer">
<<<<<<< HEAD
<div class="total-count">{{ totalAll }}</div> <div class="total-count">{{ totalAll }}</div>
<el-pagination <el-pagination
v-model:current-page="currentPageAll" v-model:current-page="currentPageAll"
...@@ -674,6 +583,11 @@ ...@@ -674,6 +583,11 @@
background background
@current-change="handlePageChangeAll" @current-change="handlePageChangeAll"
/> />
=======
<div class="total-count">{{ totalAll }}项调查</div>
<el-pagination v-model:current-page="currentPageAll" :page-size="pageSizeAll" :total="totalAll"
layout="prev, pager, next" background @current-change="handlePageChangeAll" />
>>>>>>> bea204f6b0c426712984ef0245e831fffbbfef4d
</div> </div>
</div> </div>
</div> </div>
...@@ -686,12 +600,8 @@ ...@@ -686,12 +600,8 @@
<div class="dialog-title">50%规则子企业</div> <div class="dialog-title">50%规则子企业</div>
</template> </template>
<div class="dialog-ett-wrpper"> <div class="dialog-ett-wrpper">
<div <div class="box1-bottom-content-item" v-for="(ett, index) in currentOrgList" :key="index"
class="box1-bottom-content-item" @click="handleEntityClick(ett)">
v-for="(ett, index) in currentOrgList"
:key="index"
@click="handleEntityClick(ett)"
>
<el-image v-if="ett.img" class="box1-bottom-content-item-img" :src="ett.img" alt=""></el-image> <el-image v-if="ett.img" class="box1-bottom-content-item-img" :src="ett.img" alt=""></el-image>
<div v-else class="box1-bottom-content-item-imgUndefined"> <div v-else class="box1-bottom-content-item-imgUndefined">
{{ (ett.orgName || ett.enName)?.match(/[\u4e00-\u9fa5a-zA-Z0-9]/)?.[0] }} {{ (ett.orgName || ett.enName)?.match(/[\u4e00-\u9fa5a-zA-Z0-9]/)?.[0] }}
...@@ -846,8 +756,8 @@ const handleCompClick = item => { ...@@ -846,8 +756,8 @@ const handleCompClick = item => {
// console.log("item", item); // console.log("item", item);
// if (item.entityType != 2) return; // if (item.entityType != 2) return;
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
...@@ -1018,8 +928,8 @@ watch( ...@@ -1018,8 +928,8 @@ watch(
const handleEntityClick = item => { const handleEntityClick = item => {
console.log("item", item); console.log("item", item);
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
startTime: item.startTime, startTime: item.startTime,
id: item.id id: item.id
} }
...@@ -1313,7 +1223,7 @@ const fetchSanctionList = async () => { ...@@ -1313,7 +1223,7 @@ const fetchSanctionList = async () => {
}); });
totalAll.value = res.totalElements; totalAll.value = res.totalElements;
} }
} catch (error) {} } catch (error) { }
}; };
const handlePageChangeAll = val => { const handlePageChangeAll = val => {
...@@ -1480,7 +1390,7 @@ const fetchRiskSignals = async () => { ...@@ -1480,7 +1390,7 @@ const fetchRiskSignals = async () => {
time: item.signalTime, time: item.signalTime,
status: item.signalLevel, status: item.signalLevel,
id: item.signalId, id: item.signalId,
sanId:item.sanId sanId: item.sanId
})); }));
} }
} catch (err) { } catch (err) {
...@@ -1585,7 +1495,7 @@ const handleGetHylyList = async () => { ...@@ -1585,7 +1495,7 @@ const handleGetHylyList = async () => {
hylymc: "全部分类" hylymc: "全部分类"
}; };
categoryList.value = [obj, ...categoryList.value]; categoryList.value = [obj, ...categoryList.value];
} catch (error) {} } catch (error) { }
}; };
const chart1Data = ref({ const chart1Data = ref({
...@@ -1736,6 +1646,7 @@ const handleMediaClick = item => { ...@@ -1736,6 +1646,7 @@ const handleMediaClick = item => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
box-shadow: none; box-shadow: none;
} }
...@@ -1752,11 +1663,14 @@ const handleMediaClick = item => { ...@@ -1752,11 +1663,14 @@ const handleMediaClick = item => {
box-sizing: border-box; box-sizing: border-box;
padding-left: 160px; padding-left: 160px;
display: flex; display: flex;
.header-item { .header-item {
margin: 0 3px; margin: 0 3px;
} }
.back-item { .back-item {
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: #ccc; color: #ccc;
} }
...@@ -1768,6 +1682,7 @@ const handleMediaClick = item => { ...@@ -1768,6 +1682,7 @@ const handleMediaClick = item => {
flex-direction: column; flex-direction: column;
gap: 20px; gap: 20px;
position: relative; position: relative;
.box1-left-arrow { .box1-left-arrow {
position: absolute; position: absolute;
z-index: 9999; z-index: 9999;
...@@ -1780,15 +1695,18 @@ const handleMediaClick = item => { ...@@ -1780,15 +1695,18 @@ const handleMediaClick = item => {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
.icon { .icon {
width: 11px; width: 11px;
height: 18px; height: 18px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
} }
.box1-right-arrow { .box1-right-arrow {
position: absolute; position: absolute;
z-index: 9999; z-index: 9999;
...@@ -1801,15 +1719,18 @@ const handleMediaClick = item => { ...@@ -1801,15 +1719,18 @@ const handleMediaClick = item => {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
.icon { .icon {
width: 11px; width: 11px;
height: 18px; height: 18px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
} }
.box1-absolute { .box1-absolute {
position: absolute; position: absolute;
width: 240px; width: 240px;
...@@ -1823,6 +1744,7 @@ const handleMediaClick = item => { ...@@ -1823,6 +1744,7 @@ const handleMediaClick = item => {
padding-right: 50px; padding-right: 50px;
box-sizing: border-box; box-sizing: border-box;
background: linear-gradient(to right, rgba(206, 79, 81, 0), rgba(206, 79, 81, 0.3)); background: linear-gradient(to right, rgba(206, 79, 81, 0), rgba(206, 79, 81, 0.3));
&-des { &-des {
display: flex; display: flex;
gap: 5px; gap: 5px;
...@@ -1831,18 +1753,21 @@ const handleMediaClick = item => { ...@@ -1831,18 +1753,21 @@ const handleMediaClick = item => {
font-weight: 700; font-weight: 700;
color: rgba(206, 79, 81, 1); color: rgba(206, 79, 81, 1);
} }
&-num { &-num {
font-size: 32px; font-size: 32px;
font-weight: 700; font-weight: 700;
color: rgba(206, 79, 81, 1); color: rgba(206, 79, 81, 1);
} }
} }
.box1-top { .box1-top {
// display: flex; // display: flex;
// flex-direction: column; // flex-direction: column;
// gap: 10px; // gap: 10px;
padding-left: 30px; padding-left: 30px;
border-bottom: 1px solid rgba(234, 236, 238, 1); border-bottom: 1px solid rgba(234, 236, 238, 1);
&-title { &-title {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
...@@ -1850,14 +1775,17 @@ const handleMediaClick = item => { ...@@ -1850,14 +1775,17 @@ const handleMediaClick = item => {
margin-top: 10px; margin-top: 10px;
margin-bottom: 15px; margin-bottom: 15px;
} }
&-content { &-content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 10px; gap: 10px;
margin-bottom: 20px; margin-bottom: 20px;
&-item { &-item {
display: flex; display: flex;
gap: 5px; gap: 5px;
&-title { &-title {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
...@@ -1866,6 +1794,7 @@ const handleMediaClick = item => { ...@@ -1866,6 +1794,7 @@ const handleMediaClick = item => {
} }
} }
} }
.box1-bottom { .box1-bottom {
padding-left: 30px; padding-left: 30px;
...@@ -1875,6 +1804,7 @@ const handleMediaClick = item => { ...@@ -1875,6 +1804,7 @@ const handleMediaClick = item => {
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
margin-bottom: 15px; margin-bottom: 15px;
} }
&-content { &-content {
display: flex; display: flex;
gap: 15px; gap: 15px;
...@@ -1883,20 +1813,24 @@ const handleMediaClick = item => { ...@@ -1883,20 +1813,24 @@ const handleMediaClick = item => {
padding-left: 10px; padding-left: 10px;
height: 156px; height: 156px;
overflow: auto; overflow: auto;
&-item { &-item {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
width: 48%; /* 留出2%的间距 */ width: 48%;
/* 留出2%的间距 */
// margin-bottom: 6px; // margin-bottom: 6px;
box-sizing: border-box; box-sizing: border-box;
gap: 10px; gap: 10px;
cursor: pointer; cursor: pointer;
&-img { &-img {
width: 24px; width: 24px;
height: 24px; height: 24px;
flex-shrink: 0; flex-shrink: 0;
} }
&-imgUndefined { &-imgUndefined {
width: 24px; width: 24px;
height: 24px; height: 24px;
...@@ -1909,6 +1843,7 @@ const handleMediaClick = item => { ...@@ -1909,6 +1843,7 @@ const handleMediaClick = item => {
text-align: center; text-align: center;
border-radius: 12px; border-radius: 12px;
} }
&-txt { &-txt {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -1917,30 +1852,36 @@ const handleMediaClick = item => { ...@@ -1917,30 +1852,36 @@ const handleMediaClick = item => {
} }
} }
} }
.box1-right { .box1-right {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 10px; gap: 10px;
.box1-right-title { .box1-right-title {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: $base-color; color: $base-color;
} }
.box1-right-tags { .box1-right-tags {
display: flex; display: flex;
gap: 10px; gap: 10px;
} }
.box1-right-content { .box1-right-content {
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
line-height: 28px; line-height: 28px;
} }
.box1-right-footer { .box1-right-footer {
margin-top: auto; margin-top: auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.box1-right-footer-time { .box1-right-footer-time {
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
font-size: 14px; font-size: 14px;
...@@ -1953,6 +1894,7 @@ const handleMediaClick = item => { ...@@ -1953,6 +1894,7 @@ const handleMediaClick = item => {
.box2-main { .box2-main {
height: 320px; height: 320px;
overflow-y: auto; overflow-y: auto;
.box2-main-item { .box2-main-item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -1961,17 +1903,21 @@ const handleMediaClick = item => { ...@@ -1961,17 +1903,21 @@ const handleMediaClick = item => {
box-sizing: border-box; box-sizing: border-box;
padding-right: 3px; padding-right: 3px;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background: var(--color-bg-hover); background: var(--color-bg-hover);
} }
.itemLeftStatus1 { .itemLeftStatus1 {
color: rgba(82, 196, 26, 1) !important; color: rgba(82, 196, 26, 1) !important;
background: rgba(246, 255, 237, 1) !important; background: rgba(246, 255, 237, 1) !important;
} }
.itemLeftStatus2 { .itemLeftStatus2 {
color: rgba(250, 140, 22, 1) !important; color: rgba(250, 140, 22, 1) !important;
background: rgba(255, 247, 230, 1) !important; background: rgba(255, 247, 230, 1) !important;
} }
.item-left { .item-left {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -1989,6 +1935,7 @@ const handleMediaClick = item => { ...@@ -1989,6 +1935,7 @@ const handleMediaClick = item => {
text-align: center; text-align: center;
flex-shrink: 0; flex-shrink: 0;
} }
.item-right { .item-right {
margin-left: 13px; margin-left: 13px;
width: 100%; width: 100%;
...@@ -1998,6 +1945,7 @@ const handleMediaClick = item => { ...@@ -1998,6 +1945,7 @@ const handleMediaClick = item => {
gap: 8px; gap: 8px;
height: 47px; height: 47px;
border-bottom: 1px solid rgba(240, 242, 244, 1); border-bottom: 1px solid rgba(240, 242, 244, 1);
.text { .text {
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
line-height: 47px; line-height: 47px;
...@@ -2009,6 +1957,7 @@ const handleMediaClick = item => { ...@@ -2009,6 +1957,7 @@ const handleMediaClick = item => {
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.time { .time {
margin-left: 10px; margin-left: 10px;
line-height: 47px; line-height: 47px;
...@@ -2020,6 +1969,7 @@ const handleMediaClick = item => { ...@@ -2020,6 +1969,7 @@ const handleMediaClick = item => {
} }
} }
} }
.box2-footer { .box2-footer {
position: absolute; position: absolute;
left: 0; left: 0;
...@@ -2035,14 +1985,17 @@ const handleMediaClick = item => { ...@@ -2035,14 +1985,17 @@ const handleMediaClick = item => {
background: var(--color-main-active); background: var(--color-main-active);
margin: 0 auto; margin: 0 auto;
cursor: pointer; cursor: pointer;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text { .text {
margin-left: 8px; margin-left: 8px;
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
...@@ -2058,6 +2011,7 @@ const handleMediaClick = item => { ...@@ -2058,6 +2011,7 @@ const handleMediaClick = item => {
justify-content: center; justify-content: center;
// align-items: flex-start; // align-items: flex-start;
gap: 100px; gap: 100px;
.box3-content-title { .box3-content-title {
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
...@@ -2071,7 +2025,9 @@ const handleMediaClick = item => { ...@@ -2071,7 +2025,9 @@ const handleMediaClick = item => {
color: $base-color; color: $base-color;
margin-bottom: 15px; margin-bottom: 15px;
} }
.box3-content { .box3-content {
// flex: 1; // flex: 1;
.el-progress--line { .el-progress--line {
width: 82px; width: 82px;
...@@ -2088,20 +2044,24 @@ const handleMediaClick = item => { ...@@ -2088,20 +2044,24 @@ const handleMediaClick = item => {
padding-top: 16px; padding-top: 16px;
// padding-bottom: 50px; // padding-bottom: 50px;
position: relative; position: relative;
.box4-item { .box4-item {
display: flex; display: flex;
gap: 10px; gap: 10px;
align-items: flex-start; align-items: flex-start;
padding-bottom: 35px; padding-bottom: 35px;
position: relative; position: relative;
.box4-item-left { .box4-item-left {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.box4-item-left-icon { .box4-item-left-icon {
width: 10px; width: 10px;
height: 10px; height: 10px;
} }
.box4-item-left-line { .box4-item-left-line {
width: 1px; width: 1px;
height: 100%; height: 100%;
...@@ -2109,9 +2069,11 @@ const handleMediaClick = item => { ...@@ -2109,9 +2069,11 @@ const handleMediaClick = item => {
border-left: 1px solid rgba(10, 87, 166, 0.3); border-left: 1px solid rgba(10, 87, 166, 0.3);
} }
} }
.box4-item-right { .box4-item-right {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.box4-item-right-header { .box4-item-right-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -2121,17 +2083,20 @@ const handleMediaClick = item => { ...@@ -2121,17 +2083,20 @@ const handleMediaClick = item => {
top: -7.5px; top: -7.5px;
padding-bottom: 8px; padding-bottom: 8px;
cursor: pointer; cursor: pointer;
&-title { &-title {
font-size: 18px; font-size: 18px;
color: $base-color; color: $base-color;
font-weight: 700; font-weight: 700;
} }
&-desc { &-desc {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
} }
} }
.box4-item-right-content { .box4-item-right-content {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -2145,6 +2110,7 @@ const handleMediaClick = item => { ...@@ -2145,6 +2110,7 @@ const handleMediaClick = item => {
} }
} }
} }
.box4-footer { .box4-footer {
position: absolute; position: absolute;
// margin-top: auto; // margin-top: auto;
...@@ -2165,15 +2131,18 @@ const handleMediaClick = item => { ...@@ -2165,15 +2131,18 @@ const handleMediaClick = item => {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
:deep(.table-header) { :deep(.table-header) {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
} }
:deep(.table-row) { :deep(.table-row) {
height: 64px; height: 64px;
} }
.domain-tags { .domain-tags {
display: flex; display: flex;
gap: 8px; gap: 8px;
...@@ -2194,17 +2163,20 @@ const handleMediaClick = item => { ...@@ -2194,17 +2163,20 @@ const handleMediaClick = item => {
height: calc(100vh - 96px); height: calc(100vh - 96px);
position: relative; position: relative;
overflow-y: hidden; overflow-y: hidden;
.home-main { .home-main {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow-y: auto; overflow-y: auto;
background: url("./assets/images/background.png"); background: url("./assets/images/background.png");
background-size: 100% 100%; background-size: 100% 100%;
.home-main-header { .home-main-header {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
.home-main-header-center { .home-main-header-center {
margin-top: 51px; margin-top: 51px;
width: 960px; width: 960px;
...@@ -2216,9 +2188,11 @@ const handleMediaClick = item => { ...@@ -2216,9 +2188,11 @@ const handleMediaClick = item => {
padding: 1px; padding: 1px;
position: relative; position: relative;
border: 1px solid transparent; border: 1px solid transparent;
&:hover { &:hover {
border: 1px solid var(--color-main-active); border: 1px solid var(--color-main-active);
} }
.search { .search {
position: absolute; position: absolute;
right: -1px; right: -1px;
...@@ -2231,14 +2205,17 @@ const handleMediaClick = item => { ...@@ -2231,14 +2205,17 @@ const handleMediaClick = item => {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
.search-icon { .search-icon {
width: 18px; width: 18px;
height: 18px; height: 18px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.search-text { .search-text {
margin-left: 8px; margin-left: 8px;
height: 22px; height: 22px;
...@@ -2250,6 +2227,7 @@ const handleMediaClick = item => { ...@@ -2250,6 +2227,7 @@ const handleMediaClick = item => {
} }
} }
} }
.home-main-header-footer { .home-main-header-footer {
margin-top: 64px; margin-top: 64px;
width: 700px; width: 700px;
...@@ -2258,9 +2236,11 @@ const handleMediaClick = item => { ...@@ -2258,9 +2236,11 @@ const handleMediaClick = item => {
padding: 0 108px; padding: 0 108px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.home-main-header-footer-item { .home-main-header-footer-item {
padding: 0 10px; padding: 0 10px;
text-align: center; text-align: center;
.item-top { .item-top {
height: 22px; height: 22px;
color: rgba(20, 89, 187, 1); color: rgba(20, 89, 187, 1);
...@@ -2269,6 +2249,7 @@ const handleMediaClick = item => { ...@@ -2269,6 +2249,7 @@ const handleMediaClick = item => {
font-weight: 700; font-weight: 700;
line-height: 22px; line-height: 22px;
} }
.item-footer { .item-footer {
margin-top: 10px; margin-top: 10px;
height: 30px; height: 30px;
...@@ -2280,6 +2261,7 @@ const handleMediaClick = item => { ...@@ -2280,6 +2261,7 @@ const handleMediaClick = item => {
} }
} }
} }
.home-main-header-footer-link, .home-main-header-footer-link,
.home-main-header-footer-info { .home-main-header-footer-info {
width: 100%; width: 100%;
...@@ -2288,15 +2270,18 @@ const handleMediaClick = item => { ...@@ -2288,15 +2270,18 @@ const handleMediaClick = item => {
gap: 16px; gap: 16px;
padding: 30px 0; padding: 30px 0;
} }
.home-main-header-footer-info{
.home-main-header-footer-info {
margin-top: 34px; margin-top: 34px;
} }
.home-main-header-btn-box { .home-main-header-btn-box {
width: 688px; width: 688px;
margin: 0 auto; margin: 0 auto;
margin-top: 39px; margin-top: 39px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn { .btn {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -2309,9 +2294,11 @@ const handleMediaClick = item => { ...@@ -2309,9 +2294,11 @@ const handleMediaClick = item => {
background: #e7f3ff; background: #e7f3ff;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
&:hover { &:hover {
background: #cae3fc; background: #cae3fc;
} }
.btn-text { .btn-text {
width: 80px; width: 80px;
color: var(--color-main-active); color: var(--color-main-active);
...@@ -2322,12 +2309,14 @@ const handleMediaClick = item => { ...@@ -2322,12 +2309,14 @@ const handleMediaClick = item => {
margin-left: 36px; margin-left: 36px;
text-align: center; text-align: center;
} }
.btn-icon { .btn-icon {
position: absolute; position: absolute;
top: 16px; top: 16px;
right: 19px; right: 19px;
width: 6px; width: 6px;
height: 12px; height: 12px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -2336,12 +2325,15 @@ const handleMediaClick = item => { ...@@ -2336,12 +2325,15 @@ const handleMediaClick = item => {
} }
} }
} }
.home-main-center { .home-main-center {
margin-top: 34px; margin-top: 34px;
.center-top { .center-top {
height: 450px; height: 450px;
display: flex; display: flex;
gap: 20px; gap: 20px;
.box1 { .box1 {
display: flex; display: flex;
gap: 10px; gap: 10px;
...@@ -2352,17 +2344,21 @@ const handleMediaClick = item => { ...@@ -2352,17 +2344,21 @@ const handleMediaClick = item => {
border-bottom: 1px solid rgba(240, 242, 244, 1); border-bottom: 1px solid rgba(240, 242, 244, 1);
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.box1-header-left { .box1-header-left {
display: flex; display: flex;
.icon { .icon {
width: 18px; width: 18px;
height: 18px; height: 18px;
margin-top: 19px; margin-top: 19px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.title { .title {
height: 22px; height: 22px;
margin-left: 18px; margin-left: 18px;
...@@ -2374,6 +2370,7 @@ const handleMediaClick = item => { ...@@ -2374,6 +2370,7 @@ const handleMediaClick = item => {
line-height: 22px; line-height: 22px;
} }
} }
.box1-header-right { .box1-header-right {
margin-top: 19px; margin-top: 19px;
height: 16px; height: 16px;
...@@ -2385,14 +2382,17 @@ const handleMediaClick = item => { ...@@ -2385,14 +2382,17 @@ const handleMediaClick = item => {
cursor: pointer; cursor: pointer;
} }
} }
.box1-main { .box1-main {
display: flex; display: flex;
height: 354px; height: 354px;
margin-top: 22px; margin-top: 22px;
.box1-main-top { .box1-main-top {
height: 68px; height: 68px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.box1-main-top-left { .box1-main-top-left {
color: rgba(20, 89, 187, 1); color: rgba(20, 89, 187, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
...@@ -2402,9 +2402,11 @@ const handleMediaClick = item => { ...@@ -2402,9 +2402,11 @@ const handleMediaClick = item => {
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
} }
.box1-main-top-right { .box1-main-top-right {
margin-left: 20px; margin-left: 20px;
display: flex; display: flex;
.num { .num {
padding: 1px 8px; padding: 1px 8px;
height: 24px; height: 24px;
...@@ -2413,6 +2415,7 @@ const handleMediaClick = item => { ...@@ -2413,6 +2415,7 @@ const handleMediaClick = item => {
border-radius: 4px; border-radius: 4px;
background: rgba(230, 244, 255, 1); background: rgba(230, 244, 255, 1);
} }
.tag { .tag {
box-sizing: border-box; box-sizing: border-box;
border: 1px solid rgba(135, 232, 222, 1); border: 1px solid rgba(135, 232, 222, 1);
...@@ -2423,6 +2426,7 @@ const handleMediaClick = item => { ...@@ -2423,6 +2426,7 @@ const handleMediaClick = item => {
} }
} }
} }
.box2 { .box2 {
flex: 1; flex: 1;
padding-right: 20px; padding-right: 20px;
...@@ -2430,19 +2434,23 @@ const handleMediaClick = item => { ...@@ -2430,19 +2434,23 @@ const handleMediaClick = item => {
box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1); box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1);
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
position: relative; position: relative;
.box2-header { .box2-header {
height: 54px; height: 54px;
display: flex; display: flex;
.icon { .icon {
width: 24px; width: 24px;
height: 22px; height: 22px;
margin-left: 33px; margin-left: 33px;
margin-top: 18px; margin-top: 18px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text { .text {
margin-left: 22px; margin-left: 22px;
margin-top: 16px; margin-top: 16px;
...@@ -2453,6 +2461,7 @@ const handleMediaClick = item => { ...@@ -2453,6 +2461,7 @@ const handleMediaClick = item => {
font-weight: 700; font-weight: 700;
line-height: 22px; line-height: 22px;
} }
.num { .num {
width: 24px; width: 24px;
height: 16px; height: 16px;
...@@ -2466,6 +2475,7 @@ const handleMediaClick = item => { ...@@ -2466,6 +2475,7 @@ const handleMediaClick = item => {
border-radius: 100px; border-radius: 100px;
background: rgba(255, 77, 79, 1); background: rgba(255, 77, 79, 1);
} }
.more { .more {
margin-top: 19px; margin-top: 19px;
margin-left: 256px; margin-left: 256px;
...@@ -2476,22 +2486,27 @@ const handleMediaClick = item => { ...@@ -2476,22 +2486,27 @@ const handleMediaClick = item => {
line-height: 16px; line-height: 16px;
} }
} }
.box2-main { .box2-main {
height: 282px; height: 282px;
overflow-y: auto; overflow-y: auto;
.box2-main-item { .box2-main-item {
margin-left: 23px; margin-left: 23px;
height: 47px; height: 47px;
width: 464px; width: 464px;
display: flex; display: flex;
.itemLeftStatus1 { .itemLeftStatus1 {
color: rgba(82, 196, 26, 1) !important; color: rgba(82, 196, 26, 1) !important;
background: rgba(246, 255, 237, 1) !important; background: rgba(246, 255, 237, 1) !important;
} }
.itemLeftStatus2 { .itemLeftStatus2 {
color: rgba(250, 140, 22, 1) !important; color: rgba(250, 140, 22, 1) !important;
background: rgba(255, 247, 230, 1) !important; background: rgba(255, 247, 230, 1) !important;
} }
.item-left { .item-left {
margin-top: 4px; margin-top: 4px;
margin-left: 2px; margin-left: 2px;
...@@ -2508,6 +2523,7 @@ const handleMediaClick = item => { ...@@ -2508,6 +2523,7 @@ const handleMediaClick = item => {
padding: 6px 4px; padding: 6px 4px;
text-align: center; text-align: center;
} }
.item-right { .item-right {
margin-left: 13px; margin-left: 13px;
width: 408px; width: 408px;
...@@ -2515,6 +2531,7 @@ const handleMediaClick = item => { ...@@ -2515,6 +2531,7 @@ const handleMediaClick = item => {
border-top: 1px solid rgba(240, 242, 244, 1); border-top: 1px solid rgba(240, 242, 244, 1);
border-bottom: 1px solid rgba(240, 242, 244, 1); border-bottom: 1px solid rgba(240, 242, 244, 1);
display: flex; display: flex;
.text { .text {
width: 348px; width: 348px;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
...@@ -2523,6 +2540,7 @@ const handleMediaClick = item => { ...@@ -2523,6 +2540,7 @@ const handleMediaClick = item => {
font-weight: 400; font-weight: 400;
line-height: 47px; line-height: 47px;
} }
.time { .time {
margin-left: 10px; margin-left: 10px;
line-height: 47px; line-height: 47px;
...@@ -2534,6 +2552,7 @@ const handleMediaClick = item => { ...@@ -2534,6 +2552,7 @@ const handleMediaClick = item => {
} }
} }
} }
.box2-footer { .box2-footer {
position: absolute; position: absolute;
left: 26px; left: 26px;
...@@ -2547,14 +2566,17 @@ const handleMediaClick = item => { ...@@ -2547,14 +2566,17 @@ const handleMediaClick = item => {
border-radius: 6px; border-radius: 6px;
background: rgba(22, 119, 255, 1); background: rgba(22, 119, 255, 1);
cursor: pointer; cursor: pointer;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text { .text {
margin-left: 8px; margin-left: 8px;
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
...@@ -2566,15 +2588,18 @@ const handleMediaClick = item => { ...@@ -2566,15 +2588,18 @@ const handleMediaClick = item => {
} }
} }
} }
.center-footer { .center-footer {
margin-top: 21px; margin-top: 21px;
height: 450px; height: 450px;
display: flex; display: flex;
.box3 { .box3 {
width: 900px; width: 900px;
height: 450px; height: 450px;
box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1); box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1);
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
.box3-header { .box3-header {
height: 53px; height: 53px;
border-bottom: 1px solid rgba(240, 242, 244, 1); border-bottom: 1px solid rgba(240, 242, 244, 1);
...@@ -2582,17 +2607,21 @@ const handleMediaClick = item => { ...@@ -2582,17 +2607,21 @@ const handleMediaClick = item => {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 0 20px; padding: 0 20px;
.box3-header-left { .box3-header-left {
display: flex; display: flex;
.box3-header-icon { .box3-header-icon {
margin-top: 15px; margin-top: 15px;
width: 13px; width: 13px;
height: 13px; height: 13px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.box3-header-title { .box3-header-title {
margin-top: 16px; margin-top: 16px;
margin-left: 22px; margin-left: 22px;
...@@ -2604,17 +2633,20 @@ const handleMediaClick = item => { ...@@ -2604,17 +2633,20 @@ const handleMediaClick = item => {
line-height: 22px; line-height: 22px;
} }
} }
.box3-header-right { .box3-header-right {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
width: 178px; width: 178px;
height: 22px; height: 22px;
.right-box { .right-box {
display: flex; display: flex;
margin-top: 16px; margin-top: 16px;
width: 89px; width: 89px;
height: 22px; height: 22px;
justify-content: flex-end; justify-content: flex-end;
.icon1 { .icon1 {
margin-top: 5px; margin-top: 5px;
width: 12px; width: 12px;
...@@ -2622,6 +2654,7 @@ const handleMediaClick = item => { ...@@ -2622,6 +2654,7 @@ const handleMediaClick = item => {
border-radius: 6px; border-radius: 6px;
background: rgba(20, 89, 187, 1); background: rgba(20, 89, 187, 1);
} }
.icon2 { .icon2 {
margin-top: 5px; margin-top: 5px;
width: 12px; width: 12px;
...@@ -2629,6 +2662,7 @@ const handleMediaClick = item => { ...@@ -2629,6 +2662,7 @@ const handleMediaClick = item => {
border-radius: 6px; border-radius: 6px;
background: rgba(250, 140, 22, 1); background: rgba(250, 140, 22, 1);
} }
.text { .text {
margin-left: 5px; margin-left: 5px;
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
...@@ -2640,31 +2674,37 @@ const handleMediaClick = item => { ...@@ -2640,31 +2674,37 @@ const handleMediaClick = item => {
} }
} }
} }
.box3-main { .box3-main {
height: 397px; height: 397px;
} }
} }
.box4 { .box4 {
margin-left: 20px; margin-left: 20px;
width: 521px; width: 521px;
height: 450px; height: 450px;
box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1); box-shadow: 0px 0px 15px 0px rgba(22, 119, 255, 0.1);
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
.box4-header { .box4-header {
width: 452px; width: 452px;
margin: 0 auto; margin: 0 auto;
height: 53px; height: 53px;
border-bottom: 1px solid rgba(240, 242, 244, 1); border-bottom: 1px solid rgba(240, 242, 244, 1);
display: flex; display: flex;
.header-icon { .header-icon {
margin-top: 18px; margin-top: 18px;
width: 18px; width: 18px;
height: 18px; height: 18px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.header-title { .header-title {
margin-top: 16px; margin-top: 16px;
margin-left: 26px; margin-left: 26px;
...@@ -2676,22 +2716,27 @@ const handleMediaClick = item => { ...@@ -2676,22 +2716,27 @@ const handleMediaClick = item => {
line-height: 22px; line-height: 22px;
} }
} }
.box4-main { .box4-main {
width: 452px; width: 452px;
margin: 0 auto; margin: 0 auto;
margin-top: 8px; margin-top: 8px;
height: 360px; height: 360px;
overflow-y: auto; overflow-y: auto;
.box4-main-item { .box4-main-item {
margin-top: 6px; margin-top: 6px;
height: 30px; height: 30px;
display: flex; display: flex;
.leftStatus3 { .leftStatus3 {
color: rgba(255, 197, 61, 1) !important; color: rgba(255, 197, 61, 1) !important;
} }
.leftStatus2 { .leftStatus2 {
color: rgba(255, 169, 64, 1) !important; color: rgba(255, 169, 64, 1) !important;
} }
.left { .left {
width: 44px; width: 44px;
text-align: left; text-align: left;
...@@ -2701,6 +2746,7 @@ const handleMediaClick = item => { ...@@ -2701,6 +2746,7 @@ const handleMediaClick = item => {
line-height: 30px; line-height: 30px;
color: rgba(206, 79, 81, 1); color: rgba(206, 79, 81, 1);
} }
.center { .center {
width: 300px; width: 300px;
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
...@@ -2709,6 +2755,7 @@ const handleMediaClick = item => { ...@@ -2709,6 +2755,7 @@ const handleMediaClick = item => {
font-weight: 400; font-weight: 400;
line-height: 30px; line-height: 30px;
} }
.right { .right {
width: 108px; width: 108px;
color: rgba(132, 136, 142, 1); color: rgba(132, 136, 142, 1);
...@@ -2723,10 +2770,12 @@ const handleMediaClick = item => { ...@@ -2723,10 +2770,12 @@ const handleMediaClick = item => {
} }
} }
} }
.home-main-footer { .home-main-footer {
// width: 100%; // width: 100%;
height: 911px; height: 911px;
background: rgba(248, 249, 250, 1); background: rgba(248, 249, 250, 1);
.home-main-footer-header { .home-main-footer-header {
margin-top: 37px; margin-top: 37px;
margin-bottom: 36px; margin-bottom: 36px;
...@@ -2735,10 +2784,12 @@ const handleMediaClick = item => { ...@@ -2735,10 +2784,12 @@ const handleMediaClick = item => {
// background: orange; // background: orange;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn-box { .btn-box {
width: 1300px; width: 1300px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn { .btn {
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
...@@ -2749,32 +2800,38 @@ const handleMediaClick = item => { ...@@ -2749,32 +2800,38 @@ const handleMediaClick = item => {
border-radius: 21px; border-radius: 21px;
background: rgba(20, 89, 187, 0); background: rgba(20, 89, 187, 0);
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background: rgba(20, 89, 187, 0.1); background: rgba(20, 89, 187, 0.1);
} }
} }
.btnActive { .btnActive {
padding: 0 24px; padding: 0 24px;
border-radius: 21px; border-radius: 21px;
background: rgba(20, 89, 187, 1); background: rgba(20, 89, 187, 1);
color: #fff; color: #fff;
&:hover { &:hover {
color: #fff; color: #fff;
background: rgba(20, 89, 187, 1); background: rgba(20, 89, 187, 1);
} }
} }
} }
.select-box { .select-box {
height: 42px; height: 42px;
box-sizing: border-box; box-sizing: border-box;
padding: 5px 0; padding: 5px 0;
} }
} }
.home-main-footer-main { .home-main-footer-main {
width: 100%; width: 100%;
// background: orange; // background: orange;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
// justify-content: space-between; // justify-content: space-between;
// justify-content: center; // justify-content: center;
.main-item { .main-item {
...@@ -2784,6 +2841,7 @@ const handleMediaClick = item => { ...@@ -2784,6 +2841,7 @@ const handleMediaClick = item => {
background: #fff; background: #fff;
margin-bottom: 24px; margin-bottom: 24px;
margin-right: 25px; margin-right: 25px;
.main-item-box1 { .main-item-box1 {
margin-top: 20px; margin-top: 20px;
margin-left: 45px; margin-left: 45px;
...@@ -2797,6 +2855,7 @@ const handleMediaClick = item => { ...@@ -2797,6 +2855,7 @@ const handleMediaClick = item => {
height: 100%; height: 100%;
} }
} }
.main-item-box2 { .main-item-box2 {
margin-top: 26px; margin-top: 26px;
text-align: center; text-align: center;
...@@ -2807,6 +2866,7 @@ const handleMediaClick = item => { ...@@ -2807,6 +2866,7 @@ const handleMediaClick = item => {
font-weight: 700; font-weight: 700;
line-height: 30px; line-height: 30px;
} }
.main-item-box3 { .main-item-box3 {
text-align: center; text-align: center;
height: 30px; height: 30px;
...@@ -2821,6 +2881,7 @@ const handleMediaClick = item => { ...@@ -2821,6 +2881,7 @@ const handleMediaClick = item => {
} }
} }
} }
.tableName { .tableName {
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
...@@ -2851,6 +2912,7 @@ const handleMediaClick = item => { ...@@ -2851,6 +2912,7 @@ const handleMediaClick = item => {
.num-item { .num-item {
width: 280px; width: 280px;
display: flex; display: flex;
.name-item { .name-item {
width: 215px; width: 215px;
overflow: hidden; overflow: hidden;
...@@ -2858,6 +2920,7 @@ const handleMediaClick = item => { ...@@ -2858,6 +2920,7 @@ const handleMediaClick = item => {
white-space: nowrap; white-space: nowrap;
} }
} }
.dialog-title { .dialog-title {
text-align: center; text-align: center;
font-size: 24px; font-size: 24px;
...@@ -2866,11 +2929,13 @@ const handleMediaClick = item => { ...@@ -2866,11 +2929,13 @@ const handleMediaClick = item => {
padding-bottom: 10px; padding-bottom: 10px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.dialog-ett-wrpper { .dialog-ett-wrpper {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 10px; gap: 10px;
height: 500px; height: 500px;
.box1-bottom-content { .box1-bottom-content {
display: flex; display: flex;
gap: 15px; gap: 15px;
...@@ -2879,20 +2944,24 @@ const handleMediaClick = item => { ...@@ -2879,20 +2944,24 @@ const handleMediaClick = item => {
padding-left: 10px; padding-left: 10px;
height: 156px; height: 156px;
overflow: auto; overflow: auto;
&-item { &-item {
display: flex; display: flex;
// align-items: center; // align-items: center;
justify-content: flex-start; justify-content: flex-start;
width: 48%; /* 留出2%的间距 */ width: 48%;
/* 留出2%的间距 */
// margin-bottom: 6px; // margin-bottom: 6px;
box-sizing: border-box; box-sizing: border-box;
gap: 10px; gap: 10px;
cursor: pointer; cursor: pointer;
&-img { &-img {
width: 24px; width: 24px;
height: 24px; height: 24px;
flex-shrink: 0; flex-shrink: 0;
} }
&-imgUndefined { &-imgUndefined {
width: 24px; width: 24px;
height: 24px; height: 24px;
...@@ -2905,6 +2974,7 @@ const handleMediaClick = item => { ...@@ -2905,6 +2974,7 @@ const handleMediaClick = item => {
text-align: center; text-align: center;
border-radius: 12px; border-radius: 12px;
} }
&-txt { &-txt {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -2918,6 +2988,7 @@ const handleMediaClick = item => { ...@@ -2918,6 +2988,7 @@ const handleMediaClick = item => {
box-shadow: none; box-shadow: none;
border-radius: 10px; border-radius: 10px;
} }
:deep(.el-input__wrapper:hover) { :deep(.el-input__wrapper:hover) {
box-shadow: none !important; box-shadow: none !important;
} }
...@@ -2935,6 +3006,7 @@ const handleMediaClick = item => { ...@@ -2935,6 +3006,7 @@ const handleMediaClick = item => {
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
} }
:deep(.el-table tr) { :deep(.el-table tr) {
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
...@@ -2985,6 +3057,7 @@ const handleMediaClick = item => { ...@@ -2985,6 +3057,7 @@ const handleMediaClick = item => {
} }
} }
} }
.all-content { .all-content {
width: 100%; width: 100%;
height: auto; height: auto;
...@@ -2993,6 +3066,7 @@ const handleMediaClick = item => { ...@@ -2993,6 +3066,7 @@ const handleMediaClick = item => {
justify-content: space-between; justify-content: space-between;
// align-items: center; // align-items: center;
gap: 16px; gap: 16px;
.left { .left {
width: 360px; width: 360px;
height: auto; height: auto;
...@@ -3000,12 +3074,14 @@ const handleMediaClick = item => { ...@@ -3000,12 +3074,14 @@ const handleMediaClick = item => {
background: #fff; background: #fff;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
.title { .title {
width: 100%; width: 100%;
height: 56px; height: 56px;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 14px 12px 16px 0; padding: 14px 12px 16px 0;
.box { .box {
width: 8px; width: 8px;
height: 20px; height: 20px;
...@@ -3014,6 +3090,7 @@ const handleMediaClick = item => { ...@@ -3014,6 +3090,7 @@ const handleMediaClick = item => {
border-top-right-radius: 4px; border-top-right-radius: 4px;
margin-right: 14px; margin-right: 14px;
} }
.text { .text {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
...@@ -3022,20 +3099,24 @@ const handleMediaClick = item => { ...@@ -3022,20 +3099,24 @@ const handleMediaClick = item => {
color: rgb(5, 95, 194); color: rgb(5, 95, 194);
} }
} }
.left-main { .left-main {
width: 100%; width: 100%;
height: auto; height: auto;
padding-left: 24px; padding-left: 24px;
.checkbox-grid { .checkbox-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
row-gap: 16px; row-gap: 16px;
padding-bottom: 16px; padding-bottom: 16px;
} }
:deep(.el-checkbox) { :deep(.el-checkbox) {
margin-right: 0; margin-right: 0;
height: auto; height: auto;
} }
:deep(.el-checkbox__label) { :deep(.el-checkbox__label) {
font-size: 16px; font-size: 16px;
color: #666666; color: #666666;
...@@ -3043,6 +3124,7 @@ const handleMediaClick = item => { ...@@ -3043,6 +3124,7 @@ const handleMediaClick = item => {
} }
} }
} }
.right { .right {
width: 1224px; width: 1224px;
height: auto; height: auto;
...@@ -3050,17 +3132,20 @@ const handleMediaClick = item => { ...@@ -3050,17 +3132,20 @@ const handleMediaClick = item => {
border-radius: 4px; border-radius: 4px;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
.right-title { .right-title {
width: 100%; width: 100%;
height: 48px; height: 48px;
border-bottom: 1px solid rgb(234, 236, 238); border-bottom: 1px solid rgb(234, 236, 238);
display: flex; display: flex;
align-items: center; align-items: center;
img { img {
width: 22px; width: 22px;
height: 18px; height: 18px;
margin-left: 19px; margin-left: 19px;
} }
div { div {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
...@@ -3070,14 +3155,17 @@ const handleMediaClick = item => { ...@@ -3070,14 +3155,17 @@ const handleMediaClick = item => {
margin-left: 19px; margin-left: 19px;
} }
} }
.right-main { .right-main {
width: 100%; width: 100%;
height: auto; height: auto;
padding: 24px 35px 0 20px; padding: 24px 35px 0 20px;
.sanction-list { .sanction-list {
width: 1169px; width: 1169px;
padding: 0px 0 12px 0; padding: 0px 0 12px 0;
display: flex; display: flex;
// justify-content: flex-start; // justify-content: flex-start;
.time { .time {
width: 80px; width: 80px;
...@@ -3104,6 +3192,7 @@ const handleMediaClick = item => { ...@@ -3104,6 +3192,7 @@ const handleMediaClick = item => {
line-height: 24px; line-height: 24px;
} }
} }
img { img {
width: 30px; width: 30px;
height: 30px; height: 30px;
...@@ -3111,10 +3200,12 @@ const handleMediaClick = item => { ...@@ -3111,10 +3200,12 @@ const handleMediaClick = item => {
margin-top: 14px; margin-top: 14px;
margin-right: 16px; margin-right: 16px;
} }
.main { .main {
width: 1027px; width: 1027px;
padding-top: 14px; padding-top: 14px;
position: relative; position: relative;
.main-title { .main-title {
width: 800px; width: 800px;
font-size: 20px; font-size: 20px;
...@@ -3125,6 +3216,7 @@ const handleMediaClick = item => { ...@@ -3125,6 +3216,7 @@ const handleMediaClick = item => {
margin-bottom: 11px; margin-bottom: 11px;
cursor: pointer; cursor: pointer;
} }
.main-desc { .main-desc {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -3133,8 +3225,10 @@ const handleMediaClick = item => { ...@@ -3133,8 +3225,10 @@ const handleMediaClick = item => {
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
margin-bottom: 9px; margin-bottom: 9px;
} }
.tag-box { .tag-box {
display: flex; display: flex;
.tag-item { .tag-item {
padding: 1px 8px; padding: 1px 8px;
margin-right: 8px; margin-right: 8px;
...@@ -3147,6 +3241,7 @@ const handleMediaClick = item => { ...@@ -3147,6 +3241,7 @@ const handleMediaClick = item => {
background-color: rgba(231, 243, 255, 1); background-color: rgba(231, 243, 255, 1);
} }
} }
.count-tag { .count-tag {
position: absolute; position: absolute;
padding: 2px 8px; padding: 2px 8px;
...@@ -3163,6 +3258,7 @@ const handleMediaClick = item => { ...@@ -3163,6 +3258,7 @@ const handleMediaClick = item => {
} }
} }
} }
.right-footer { .right-footer {
width: 100%; width: 100%;
height: 73px; height: 73px;
......
...@@ -13,29 +13,27 @@ ...@@ -13,29 +13,27 @@
<div class="text">科技领域</div> <div class="text">科技领域</div>
</div> </div>
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox v-for="(item, index) in techFields" :key="index" v-model="item.checked" :label="item.label" @change="handleFilterChange(item, techFields, 'tech')" /> <el-checkbox v-for="(item, index) in techFields" :key="index" v-model="item.checked" :label="item.label"
@change="handleFilterChange(item, techFields, 'tech')" />
</div> </div>
<div class="title"> <div class="title">
<div class="box"></div> <div class="box"></div>
<div class="text">实体类型</div> <div class="text">实体类型</div>
</div> </div>
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox v-for="(item, index) in entityTypes" :key="index" v-model="item.checked" :label="item.label" @change="handleFilterChange(item, entityTypes, 'type')" /> <el-checkbox v-for="(item, index) in entityTypes" :key="index" v-model="item.checked" :label="item.label"
@change="handleFilterChange(item, entityTypes, 'type')" />
</div> </div>
<div class="title"> <div class="title">
<div class="box"></div> <div class="box"></div>
<div class="text">制裁时间</div> <div class="text">制裁时间</div>
</div> </div>
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox v-for="(item, index) in sanctionTimes" :key="index" v-model="item.checked" :label="item.label" @change="handleFilterChange(item, sanctionTimes, 'time')" /> <el-checkbox v-for="(item, index) in sanctionTimes" :key="index" v-model="item.checked" :label="item.label"
@change="handleFilterChange(item, sanctionTimes, 'time')" />
<div v-if="sanctionTimes.find(i => i.value === 'custom' && i.checked)" class="custom-date-picker"> <div v-if="sanctionTimes.find(i => i.value === 'custom' && i.checked)" class="custom-date-picker">
<el-date-picker <el-date-picker v-model="customDateRange" type="daterange" range-separator="-" start-placeholder="开始日期"
v-model="customDateRange" end-placeholder="结束日期" />
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -48,8 +46,8 @@ ...@@ -48,8 +46,8 @@
<div class="right-wrapper"> <div class="right-wrapper">
<div class="stats"> <div class="stats">
<div class="dot"></div> <div class="dot"></div>
<div class="count-text"><span class="highlight">{{ruleCount.totalCount}}</span></div> <div class="count-text"><span class="highlight">{{ ruleCount.totalCount }}</span></div>
<div class="rule-text">(50%规则涉及<span class="highlight">{{ruleCount.ruleCount}}</span>家)</div> <div class="rule-text">(50%规则涉及<span class="highlight">{{ ruleCount.ruleCount }}</span>家)</div>
</div> </div>
<div class="btn"> <div class="btn">
<img src="../../../../assets/下载按钮.png" alt="" /> <img src="../../../../assets/下载按钮.png" alt="" />
...@@ -58,21 +56,12 @@ ...@@ -58,21 +56,12 @@
</div> </div>
</div> </div>
<div class="right-table"> <div class="right-table">
<el-table <el-table :data="entityRows" table-layout="fixed" :row-class-name="tableRowClassName"
:data="entityRows" :header-cell-style="{ background: '#fff' }">
table-layout="fixed"
:row-class-name="tableRowClassName"
:header-cell-style="{ background: '#fff' }"
>
<el-table-column label="实体名称" min-width="200"> <el-table-column label="实体名称" min-width="200">
<template #default="{ row }"> <template #default="{ row }">
<div class="entity-name-cell" @click="handleCompClick(row)"> <div class="entity-name-cell" @click="handleCompClick(row)">
<el-image <el-image v-if="row.img" class="avatar" :src="row.img" alt=""></el-image>
v-if="row.img"
class="avatar"
:src="row.img"
alt=""
></el-image>
<div v-else class="avatar-undefined"> <div v-else class="avatar-undefined">
{{ {{
(row.entityNameZh || row.entityName)?.match( (row.entityNameZh || row.entityName)?.match(
...@@ -87,14 +76,8 @@ ...@@ -87,14 +76,8 @@
<el-table-column label="涉及领域" min-width="150"> <el-table-column label="涉及领域" min-width="150">
<template #default="{ row }"> <template #default="{ row }">
<div class="domain-cell"> <div class="domain-cell">
<el-tag <el-tag v-for="tag in row.techDomains" :key="tag" class="domain-tag" effect="plain"
v-for="tag in row.techDomains" :disable-transitions="true" :style="getTagStyle(tag)">
:key="tag"
class="domain-tag"
effect="plain"
:disable-transitions="true"
:style="getTagStyle(tag)"
>
{{ tag }} {{ tag }}
</el-tag> </el-tag>
</div> </div>
...@@ -107,7 +90,8 @@ ...@@ -107,7 +90,8 @@
<div class="rule-text" :title="row.ruleOrgList?.[0]?.orgName || ''"> <div class="rule-text" :title="row.ruleOrgList?.[0]?.orgName || ''">
{{ row.ruleOrgList?.[0]?.orgName || '' }}...等 {{ row.ruleOrgList?.[0]?.orgName || '' }}...等
</div> </div>
<el-link class="rule-link" type="primary" :underline="false" @click="handleRuleClick(row)">{{ row.ruleOrgCount }}家 ></el-link> <el-link class="rule-link" type="primary" :underline="false" @click="handleRuleClick(row)">{{
row.ruleOrgCount }}家 ></el-link>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -115,25 +99,14 @@ ...@@ -115,25 +99,14 @@
</div> </div>
<div class="tight-footer"> <div class="tight-footer">
<div class="total-text">共{{ total }}项</div> <div class="total-text">共{{ total }}项</div>
<el-pagination <el-pagination :current-page="currentPage" v-model:page-size="pageSize" :total="total"
:current-page="currentPage" layout="prev, pager, next" prev-text="<" next-text=">" @current-change="handleCurrentChange" />
v-model:page-size="pageSize"
:total="total"
layout="prev, pager, next"
prev-text="<"
next-text=">"
@current-change="handleCurrentChange"
/>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<RuleSubsidiaryDialog <RuleSubsidiaryDialog v-model="ruleDialogVisible" :company-name="currentRuleCompany" :total-count="currentRuleCount"
v-model="ruleDialogVisible" :data-list="currentRuleList" />
:company-name="currentRuleCompany"
:total-count="currentRuleCount"
:data-list="currentRuleList"
/>
</template> </template>
<script setup> <script setup>
...@@ -151,8 +124,8 @@ const router = useRouter(); ...@@ -151,8 +124,8 @@ const router = useRouter();
const handleCompClick = item => { const handleCompClick = item => {
console.log("item", item); console.log("item", item);
const route = router.resolve({ const route = router.resolve({
path: "/companyPages", name: "companyPages",
query: { params: {
id: item.id id: item.id
} }
}); });
...@@ -307,7 +280,7 @@ let abortController = null; ...@@ -307,7 +280,7 @@ let abortController = null;
const getExportControlListApi = async () => { const getExportControlListApi = async () => {
// 取消上一轮未完成的请求 // 取消上一轮未完成的请求
if (abortController) { if (abortController) {
try { abortController.abort(); } catch {} try { abortController.abort(); } catch { }
} }
abortController = new AbortController(); abortController = new AbortController();
isFetching.value = true; isFetching.value = true;
...@@ -416,22 +389,27 @@ watch(customDateRange, () => { ...@@ -416,22 +389,27 @@ watch(customDateRange, () => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.list-page { .list-page {
width: 1601px; width: 1601px;
padding-bottom: 50px; padding-bottom: 50px;
margin: 0 auto; margin: 0 auto;
padding-top: 16px; padding-top: 16px;
.search-box { .search-box {
margin-bottom: 16px; margin-bottom: 16px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.search-input { .search-input {
width: 388px; width: 388px;
height: 32px; height: 32px;
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
padding: 0 11px; padding: 0 11px;
} }
:deep(.el-input__inner) { :deep(.el-input__inner) {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -440,24 +418,29 @@ watch(customDateRange, () => { ...@@ -440,24 +418,29 @@ watch(customDateRange, () => {
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
} }
} }
.filters { .filters {
display: flex; display: flex;
align-items: center; align-items: center;
.el-checkbox { .el-checkbox {
margin-right: 20px; margin-right: 20px;
color: rgb(59, 65, 75); color: rgb(59, 65, 75);
} }
.time-select { .time-select {
width: 160px; width: 160px;
height: 32px; height: 32px;
} }
} }
} }
.main { .main {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
.left { .left {
padding-bottom: 20px; padding-bottom: 20px;
width: 388px; width: 388px;
...@@ -465,10 +448,12 @@ watch(customDateRange, () => { ...@@ -465,10 +448,12 @@ watch(customDateRange, () => {
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
.checkbox-group { .checkbox-group {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 0 0 0 24px; padding: 0 0 0 24px;
.el-checkbox { .el-checkbox {
width: 50%; width: 50%;
margin-right: 0; margin-right: 0;
...@@ -479,11 +464,13 @@ watch(customDateRange, () => { ...@@ -479,11 +464,13 @@ watch(customDateRange, () => {
line-height: 24px; line-height: 24px;
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
} }
.custom-date-picker { .custom-date-picker {
width: 100%; width: 100%;
margin-top: 8px; margin-top: 8px;
padding-right: 24px; padding-right: 24px;
box-sizing: border-box; box-sizing: border-box;
:deep(.el-date-editor) { :deep(.el-date-editor) {
width: 100%; width: 100%;
height: 32px; height: 32px;
...@@ -491,21 +478,26 @@ watch(customDateRange, () => { ...@@ -491,21 +478,26 @@ watch(customDateRange, () => {
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 4px; border-radius: 4px;
padding: 0 10px; padding: 0 10px;
&:hover { &:hover {
border-color: #c0c4cc; border-color: #c0c4cc;
} }
&.is-active { &.is-active {
border-color: #409eff; border-color: #409eff;
} }
.el-range-input { .el-range-input {
font-size: 14px; font-size: 14px;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
} }
.el-range-separator { .el-range-separator {
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
line-height: 30px; line-height: 30px;
} }
.el-input__icon { .el-input__icon {
line-height: 32px; line-height: 32px;
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
...@@ -514,12 +506,14 @@ watch(customDateRange, () => { ...@@ -514,12 +506,14 @@ watch(customDateRange, () => {
} }
} }
} }
.right { .right {
width: 1196px; width: 1196px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
.title { .title {
width: 100%; width: 100%;
height: 56px; height: 56px;
...@@ -528,9 +522,11 @@ watch(customDateRange, () => { ...@@ -528,9 +522,11 @@ watch(customDateRange, () => {
align-items: center; align-items: center;
padding: 14px 12px 16px 0; padding: 14px 12px 16px 0;
box-sizing: border-box; box-sizing: border-box;
.left-wrapper { .left-wrapper {
display: flex; display: flex;
align-items: center; align-items: center;
.box { .box {
width: 8px; width: 8px;
height: 20px; height: 20px;
...@@ -539,6 +535,7 @@ watch(customDateRange, () => { ...@@ -539,6 +535,7 @@ watch(customDateRange, () => {
border-top-right-radius: 4px; border-top-right-radius: 4px;
margin-right: 14px; margin-right: 14px;
} }
.text { .text {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
...@@ -547,13 +544,16 @@ watch(customDateRange, () => { ...@@ -547,13 +544,16 @@ watch(customDateRange, () => {
color: rgb(5, 95, 194); color: rgb(5, 95, 194);
} }
} }
.right-wrapper { .right-wrapper {
display: flex; display: flex;
align-items: center; align-items: center;
.stats { .stats {
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
.dot { .dot {
width: 8px; width: 8px;
height: 8px; height: 8px;
...@@ -561,50 +561,61 @@ watch(customDateRange, () => { ...@@ -561,50 +561,61 @@ watch(customDateRange, () => {
border-radius: 50%; border-radius: 50%;
margin-right: 8px; margin-right: 8px;
} }
.count-text { .count-text {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
color: #3b414b; color: #3b414b;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
margin-right: 16px; margin-right: 16px;
.highlight { .highlight {
color: #cd4246; color: #cd4246;
margin: 0 4px; margin: 0 4px;
} }
} }
.rule-text { .rule-text {
font-size: 14px; font-size: 14px;
color: #5f656c; color: #5f656c;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
.highlight { .highlight {
color: #cd4246; color: #cd4246;
} }
} }
} }
.btn { .btn {
width: 60px; width: 60px;
height: 28px; height: 28px;
img { img {
width: 28px; width: 28px;
height: 28px; height: 28px;
cursor: pointer; cursor: pointer;
} }
img:first-child { img:first-child {
margin-right: 4px; margin-right: 4px;
} }
} }
} }
} }
.right-table { .right-table {
padding: 5px 21px 0 21px; padding: 5px 21px 0 21px;
:deep(.el-table) { :deep(.el-table) {
--el-table-header-bg-color: #fff; --el-table-header-bg-color: #fff;
--el-table-border-color: transparent; --el-table-border-color: transparent;
--el-table-row-hover-bg-color: rgba(248, 249, 250, 1); --el-table-row-hover-bg-color: rgba(248, 249, 250, 1);
} }
:deep(.el-table__inner-wrapper::before) { :deep(.el-table__inner-wrapper::before) {
background-color: transparent; background-color: transparent;
} }
:deep(.el-table__header-wrapper th) { :deep(.el-table__header-wrapper th) {
height: 60px; height: 60px;
background-color: #fff; background-color: #fff;
...@@ -615,15 +626,19 @@ watch(customDateRange, () => { ...@@ -615,15 +626,19 @@ watch(customDateRange, () => {
border-bottom: 1px solid rgba(230, 231, 232, 1); border-bottom: 1px solid rgba(230, 231, 232, 1);
border-top: 1px solid rgba(230, 231, 232, 1); border-top: 1px solid rgba(230, 231, 232, 1);
} }
:deep(.el-table__header-wrapper .cell) { :deep(.el-table__header-wrapper .cell) {
line-height: 22px; line-height: 22px;
} }
:deep(.el-table__header-wrapper th:first-child .cell) { :deep(.el-table__header-wrapper th:first-child .cell) {
padding-left: 39px; padding-left: 39px;
} }
:deep(.el-table__row) { :deep(.el-table__row) {
height: 64px; height: 64px;
} }
:deep(.el-table__cell) { :deep(.el-table__cell) {
border-bottom: 0; border-bottom: 0;
font-size: 16px; font-size: 16px;
...@@ -631,21 +646,26 @@ watch(customDateRange, () => { ...@@ -631,21 +646,26 @@ watch(customDateRange, () => {
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
} }
:deep(.el-table__row .el-table__cell:first-child .cell) { :deep(.el-table__row .el-table__cell:first-child .cell) {
padding-left: 39px; padding-left: 39px;
} }
:deep(.odd-row td.el-table__cell) { :deep(.odd-row td.el-table__cell) {
background-color: rgba(248, 249, 250, 1); background-color: rgba(248, 249, 250, 1);
} }
.entity-name-cell { .entity-name-cell {
display: flex; display: flex;
align-items: center; align-items: center;
.avatar { .avatar {
width: 24px; width: 24px;
height: 24px; height: 24px;
margin-right: 8px; margin-right: 8px;
border-radius: 4px; border-radius: 4px;
} }
.avatar-undefined { .avatar-undefined {
width: 24px; width: 24px;
height: 24px; height: 24px;
...@@ -659,6 +679,7 @@ watch(customDateRange, () => { ...@@ -659,6 +679,7 @@ watch(customDateRange, () => {
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
} }
.name { .name {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
...@@ -668,10 +689,12 @@ watch(customDateRange, () => { ...@@ -668,10 +689,12 @@ watch(customDateRange, () => {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
.domain-cell { .domain-cell {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
:deep(.el-tag) { :deep(.el-tag) {
height: auto; height: auto;
padding: 2px 8px; padding: 2px 8px;
...@@ -683,16 +706,19 @@ watch(customDateRange, () => { ...@@ -683,16 +706,19 @@ watch(customDateRange, () => {
border: 1px solid; border: 1px solid;
} }
} }
.rule-cell { .rule-cell {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 12px; gap: 12px;
.rule-text { .rule-text {
flex: 1; flex: 1;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.rule-link { .rule-link {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
...@@ -702,6 +728,7 @@ watch(customDateRange, () => { ...@@ -702,6 +728,7 @@ watch(customDateRange, () => {
} }
} }
} }
.tight-footer { .tight-footer {
padding: 16px 24px; padding: 16px 24px;
display: flex; display: flex;
...@@ -768,12 +795,14 @@ watch(customDateRange, () => { ...@@ -768,12 +795,14 @@ watch(customDateRange, () => {
} }
} }
} }
.title { .title {
width: 100%; width: 100%;
height: 56px; height: 56px;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 14px 12px 16px 0; padding: 14px 12px 16px 0;
.box { .box {
width: 8px; width: 8px;
height: 16px; height: 16px;
...@@ -782,6 +811,7 @@ watch(customDateRange, () => { ...@@ -782,6 +811,7 @@ watch(customDateRange, () => {
border-top-right-radius: 4px; border-top-right-radius: 4px;
margin-right: 14px; margin-right: 14px;
} }
.text { .text {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
......
...@@ -45,32 +45,21 @@ ...@@ -45,32 +45,21 @@
<div class="info-row"> <div class="info-row">
<div class="label">制裁领域:</div> <div class="label">制裁领域:</div>
<div class="value tags"> <div class="value tags">
<span <span class="tag" v-for="(domain, index) in formattedData.domains" :key="index">{{ domain }}</span>
class="tag"
v-for="(domain, index) in formattedData.domains"
:key="index"
>{{ domain }}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="left-top-content"> <div class="left-top-content">
<div class="content-title">制裁实体分布:</div> <div class="content-title">制裁实体分布:</div>
<div class="distribution-list"> <div class="distribution-list">
<div <div class="list-item" v-for="(item, index) in entityDistribution" :key="index">
class="list-item"
v-for="(item, index) in entityDistribution"
:key="index"
>
<img :src="flag" alt="" class="flag"> <img :src="flag" alt="" class="flag">
<div class="country-name">{{ item.name }}</div> <div class="country-name">{{ item.name }}</div>
<div class="progress-bar-container"> <div class="progress-bar-container">
<div <div class="progress-bar" :style="{
class="progress-bar"
:style="{
width: item.width, width: item.width,
background: item.gradient background: item.gradient
}" }"></div>
></div>
</div> </div>
<div class="count" :class="{ 'highlight': index === 0 }">{{ item.count }}</div> <div class="count" :class="{ 'highlight': index === 0 }">{{ item.count }}</div>
</div> </div>
...@@ -88,11 +77,7 @@ ...@@ -88,11 +77,7 @@
</div> </div>
<div class="left-bottom-content"> <div class="left-bottom-content">
<div class="timeline-list"> <div class="timeline-list">
<div <div class="timeline-item" v-for="(item, index) in timelineData" :key="index">
class="timeline-item"
v-for="(item, index) in timelineData"
:key="index"
>
<div class="date-row"> <div class="date-row">
<div class="dot"></div> <div class="dot"></div>
<div class="date">{{ item.date }}</div> <div class="date">{{ item.date }}</div>
...@@ -101,7 +86,9 @@ ...@@ -101,7 +86,9 @@
</div> </div>
</div> </div>
<div class="view-more" v-if="hasMore" @click="loadMore"> <div class="view-more" v-if="hasMore" @click="loadMore">
查看更多 <el-icon class="icon-more"><DArrowRight /></el-icon> 查看更多 <el-icon class="icon-more">
<DArrowRight />
</el-icon>
</div> </div>
</div> </div>
</div> </div>
...@@ -128,12 +115,7 @@ ...@@ -128,12 +115,7 @@
<el-option label="全部领域" value="" /> <el-option label="全部领域" value="" />
<el-option v-for="item in domainOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in domainOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<el-input <el-input v-model="searchKeyword" placeholder="搜索实体" style="width: 150px" :suffix-icon="Search" />
v-model="searchKeyword"
placeholder="搜索实体"
style="width: 150px"
:suffix-icon="Search"
/>
</div> </div>
</div> </div>
<div class="stats-row"> <div class="stats-row">
...@@ -144,7 +126,8 @@ ...@@ -144,7 +126,8 @@
<div class="stats-info"> <div class="stats-info">
<div class="stat-item"> <div class="stat-item">
<span class="dot red"></span> <span class="dot red"></span>
<span class="text">新增 <span class="num red">{{ addCount }}</span> 家 (50%规则涉及<span class="num red">{{ addRuleCount }}</span>家)</span> <span class="text">新增 <span class="num red">{{ addCount }}</span> 家 (50%规则涉及<span class="num red">{{
addRuleCount }}</span>家)</span>
</div> </div>
<!-- <div class="stat-item"> <!-- <div class="stat-item">
<span class="dot green"></span> <span class="dot green"></span>
...@@ -156,10 +139,7 @@ ...@@ -156,10 +139,7 @@
<div class="right-content"> <div class="right-content">
<div class="sanction-group-list"> <div class="sanction-group-list">
<div class="sanction-group" v-for="(group, index) in sanctionList" :key="index"> <div class="sanction-group" v-for="(group, index) in sanctionList" :key="index">
<el-table <el-table :data="group.entities" style="width: 100%">
:data="group.entities"
style="width: 100%"
>
<el-table-column label="实体名称" min-width="280"> <el-table-column label="实体名称" min-width="280">
<template #default="scope"> <template #default="scope">
<div class="name-cell"> <div class="name-cell">
...@@ -171,13 +151,8 @@ ...@@ -171,13 +151,8 @@
</el-table-column> </el-table-column>
<el-table-column label="涉及领域" width="180" align="center"> <el-table-column label="涉及领域" width="180" align="center">
<template #default="scope"> <template #default="scope">
<span <span v-for="(item, index) in scope.row.fields" :key="index" class="tag" :style="getTagStyle(item)"
v-for="(item, index) in scope.row.fields" style="margin: 0 2px;">{{ item }}</span>
:key="index"
class="tag"
:style="getTagStyle(item)"
style="margin: 0 2px;"
>{{ item }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="location" label="上市地点" width="90" align="center" /> <el-table-column prop="location" label="上市地点" width="90" align="center" />
...@@ -185,7 +160,8 @@ ...@@ -185,7 +160,8 @@
<el-table-column prop="revenue" label="营收(亿元)" width="110" align="center" /> <el-table-column prop="revenue" label="营收(亿元)" width="110" align="center" />
<el-table-column label="50%规则子企业" width="180" align="center"> <el-table-column label="50%规则子企业" width="180" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.subsidiaryCount" class="subsidiary-link" @click="handleSubsidiaryClick(scope.row)"> <span v-if="scope.row.subsidiaryCount" class="subsidiary-link"
@click="handleSubsidiaryClick(scope.row)">
{{ scope.row.subsidiaryText }} <span class="blue-text">{{ scope.row.subsidiaryCount }}家 ></span> {{ scope.row.subsidiaryText }} <span class="blue-text">{{ scope.row.subsidiaryCount }}家 ></span>
</span> </span>
<span v-else>--</span> <span v-else>--</span>
...@@ -201,12 +177,8 @@ ...@@ -201,12 +177,8 @@
</div> </div>
</div> </div>
<!-- 50%规则子企业弹框 --> <!-- 50%规则子企业弹框 -->
<RuleSubsidiaryDialog <RuleSubsidiaryDialog v-model="subsidiaryDialogVisible" :company-name="currentSubsidiaryCompanyName"
v-model="subsidiaryDialogVisible" :total-count="currentSubsidiaryCount" :data-list="currentSubsidiaryList" />
:company-name="currentSubsidiaryCompanyName"
:total-count="currentSubsidiaryCount"
:data-list="currentSubsidiaryList"
/>
</div> </div>
</template> </template>
...@@ -223,14 +195,16 @@ import RuleSubsidiaryDialog from "../../../v2.0EntityList/components/sanctionsOv ...@@ -223,14 +195,16 @@ import RuleSubsidiaryDialog from "../../../v2.0EntityList/components/sanctionsOv
// 跳转公司详情页 // 跳转公司详情页
const handleCompClick = item => { const handleCompClick = item => {
console.log("item", item); // console.log("item", item);
const route = router.resolve({ // const route = router.resolve({
path: "/companyPages", // path: "/companyPages",
query: { // query: {
id: item.id // id: item.entityId
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
const curRoute = router.resolve({ name: "companyPages", params: { id: item.entityId } });
window.open(curRoute.href, "_blank");
}; };
// 跳转发布机构详情页 // 跳转发布机构详情页
...@@ -394,7 +368,7 @@ const props = defineProps({ ...@@ -394,7 +368,7 @@ const props = defineProps({
}); });
// 跳转到人物页 // 跳转到人物页
const handleClick = () => { const handleClick = () => {
const route = router.resolve({ const route = router.resolve({
path: "/characterPage", path: "/characterPage",
query: { query: {
// type: props.data.type, // type: props.data.type,
...@@ -534,11 +508,13 @@ onMounted(() => { ...@@ -534,11 +508,13 @@ onMounted(() => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.sanctions-overview { .sanctions-overview {
width: 1601px; width: 1601px;
margin: 0 auto; margin: 0 auto;
padding-top: 16px; padding-top: 16px;
padding-bottom: 50px; padding-bottom: 50px;
<<<<<<< HEAD
.main { .main {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -555,6 +531,28 @@ onMounted(() => { ...@@ -555,6 +531,28 @@ onMounted(() => {
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
margin-bottom: 16px; margin-bottom: 16px;
=======
.main {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
.left {
width: 520px;
height: 1119px;
.left-top {
width: 100%;
height: 582px;
padding-bottom: 20px;
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff;
margin-bottom: 16px;
>>>>>>> bea204f6b0c426712984ef0245e831fffbbfef4d
.left-top-title { .left-top-title {
padding: 22px 20px 22px 27px; padding: 22px 20px 22px 27px;
width: 100%; width: 100%;
...@@ -612,8 +610,28 @@ onMounted(() => { ...@@ -612,8 +610,28 @@ onMounted(() => {
&.tags { &.tags {
gap: 8px; gap: 8px;
<<<<<<< HEAD
flex-wrap: wrap; flex-wrap: wrap;
overflow: visible; overflow: visible;
=======
overflow-x: auto; // Allow horizontal scrolling
white-space: nowrap; // Prevent wrapping
padding-bottom: 4px; // Add some space for scrollbar
/* Custom Scrollbar */
&::-webkit-scrollbar {
height: 4px;
}
&::-webkit-scrollbar-thumb {
background: #ccc;
border-radius: 2px;
}
&::-webkit-scrollbar-track {
background: transparent;
}
>>>>>>> bea204f6b0c426712984ef0245e831fffbbfef4d
.tag { .tag {
padding: 1px 8px; padding: 1px 8px;
...@@ -628,11 +646,13 @@ onMounted(() => { ...@@ -628,11 +646,13 @@ onMounted(() => {
} }
} }
} }
.left-top-content { .left-top-content {
width: 100%; width: 100%;
height: 234px; height: 234px;
padding: 19px 29px 22px 27px; padding: 19px 29px 22px 27px;
overflow: auto; overflow: auto;
.content-title { .content-title {
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
...@@ -648,6 +668,7 @@ onMounted(() => { ...@@ -648,6 +668,7 @@ onMounted(() => {
flex-direction: column; flex-direction: column;
gap: 16px; gap: 16px;
overflow: auto; overflow: auto;
.list-item { .list-item {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -706,6 +727,7 @@ onMounted(() => { ...@@ -706,6 +727,7 @@ onMounted(() => {
} }
} }
} }
.left-bottom { .left-bottom {
width: 100%; width: 100%;
height: 521px; height: 521px;
...@@ -713,6 +735,7 @@ onMounted(() => { ...@@ -713,6 +735,7 @@ onMounted(() => {
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
.left-bottom-content { .left-bottom-content {
padding: 26px 30px 0 25px; padding: 26px 30px 0 25px;
height: calc(100% - 56px); // 减去标题高度 height: calc(100% - 56px); // 减去标题高度
...@@ -732,10 +755,12 @@ onMounted(() => { ...@@ -732,10 +755,12 @@ onMounted(() => {
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 6px; width: 6px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
background: #ccc; background: #ccc;
border-radius: 3px; border-radius: 3px;
} }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
background: transparent; background: transparent;
} }
...@@ -819,12 +844,14 @@ onMounted(() => { ...@@ -819,12 +844,14 @@ onMounted(() => {
} }
} }
} }
.right { .right {
width: 1064px; width: 1064px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
.right-title { .right-title {
width: 100%; width: 100%;
// height: 107px; // height: 107px;
...@@ -906,6 +933,7 @@ onMounted(() => { ...@@ -906,6 +933,7 @@ onMounted(() => {
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
line-height: 24px; line-height: 24px;
margin-right: 34px; margin-right: 34px;
.dot { .dot {
width: 8px; width: 8px;
height: 8px; height: 8px;
...@@ -915,6 +943,7 @@ onMounted(() => { ...@@ -915,6 +943,7 @@ onMounted(() => {
&.red { &.red {
background-color: rgb(206, 79, 81); background-color: rgb(206, 79, 81);
} }
&.green { &.green {
background-color: rgb(33, 129, 57); background-color: rgb(33, 129, 57);
} }
...@@ -926,11 +955,14 @@ onMounted(() => { ...@@ -926,11 +955,14 @@ onMounted(() => {
line-height: 24px; line-height: 24px;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
color: rgb(59, 65, 75); color: rgb(59, 65, 75);
.num { .num {
font-weight: 700; font-weight: 700;
&.red { &.red {
color: rgb(206, 79, 81); color: rgb(206, 79, 81);
} }
&.green { &.green {
color: rgb(33, 129, 57); color: rgb(33, 129, 57);
} }
...@@ -940,6 +972,7 @@ onMounted(() => { ...@@ -940,6 +972,7 @@ onMounted(() => {
} }
} }
} }
.right-content { .right-content {
padding: 0 20px 17px 20px; padding: 0 20px 17px 20px;
...@@ -964,9 +997,11 @@ onMounted(() => { ...@@ -964,9 +997,11 @@ onMounted(() => {
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
border-bottom: none; border-bottom: none;
} }
th:first-child { th:first-child {
border-top-left-radius: 8px; border-top-left-radius: 8px;
} }
th:last-child { th:last-child {
border-top-right-radius: 8px; border-top-right-radius: 8px;
} }
...@@ -976,9 +1011,11 @@ onMounted(() => { ...@@ -976,9 +1011,11 @@ onMounted(() => {
tr:nth-child(odd) td { tr:nth-child(odd) td {
background-color: rgba(248, 249, 250, 1); background-color: rgba(248, 249, 250, 1);
} }
tr:nth-child(even) td { tr:nth-child(even) td {
background-color: #fff; background-color: #fff;
} }
td { td {
height: 48px; height: 48px;
padding: 0; padding: 0;
...@@ -1054,12 +1091,14 @@ onMounted(() => { ...@@ -1054,12 +1091,14 @@ onMounted(() => {
} }
} }
} }
.title-com { .title-com {
width: 100%; width: 100%;
height: 56px; height: 56px;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 14px 12px 16px 0; padding: 14px 12px 16px 0;
.box { .box {
width: 8px; width: 8px;
height: 20px; height: 20px;
...@@ -1068,6 +1107,7 @@ onMounted(() => { ...@@ -1068,6 +1107,7 @@ onMounted(() => {
border-top-right-radius: 4px; border-top-right-radius: 4px;
margin-right: 14px; margin-right: 14px;
} }
.text { .text {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
...@@ -1075,15 +1115,18 @@ onMounted(() => { ...@@ -1075,15 +1115,18 @@ onMounted(() => {
line-height: 26px; line-height: 26px;
color: rgb(5, 95, 194); color: rgb(5, 95, 194);
} }
.btn { .btn {
width: 60px; width: 60px;
height: 28px; height: 28px;
margin-left: auto; margin-left: auto;
img { img {
width: 28px; width: 28px;
height: 28px; height: 28px;
cursor: pointer; cursor: pointer;
} }
img:first-child { img:first-child {
margin-right: 4px; margin-right: 4px;
} }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</div> </div>
</div> </div>
<div class="box2-main"> <div class="box2-main">
<div class="box2-item" v-for="(item, index) in box2Data" :key="index"> <div class="box2-item" v-for="(item, index) in box2Data" :key="index" @click="handleToNewsAnalysis(item)">
<div class="box2-item-left"> <div class="box2-item-left">
<div class="point"> <div class="point">
<img src="@/assets/images/dot.png" alt="" /> <img src="@/assets/images/dot.png" alt="" />
...@@ -314,7 +314,17 @@ const box2Data = ref([ ...@@ -314,7 +314,17 @@ const box2Data = ref([
// img: 1 // img: 1
// } // }
]); ]);
// 点击新闻条目,跳转到新闻分析页
const handleToNewsAnalysis = news => {
console.log(news)
const route = router.resolve({
path: "/newsAnalysis",
query: {
newsId: news.newsId
}
});
window.open(route.href, "_blank");
};
const handleGetThinkTankReportPolicyAction = async () => { const handleGetThinkTankReportPolicyAction = async () => {
try { try {
const res = await getThinkTankReportPolicyAction(router.currentRoute._value.params.id); const res = await getThinkTankReportPolicyAction(router.currentRoute._value.params.id);
......
...@@ -85,17 +85,12 @@ ...@@ -85,17 +85,12 @@
</el-popover> </el-popover>
<div class="tag-box"> <div class="tag-box">
<div <div class="tag" :class="{
class="tag"
:class="{
tag1: val.status === 1, tag1: val.status === 1,
tag2: val.status === 2, tag2: val.status === 2,
tag3: val.status === 3, tag3: val.status === 3,
tag4: val.status === 4 tag4: val.status === 4
}" }" v-for="(val, idx) in item.tagList" :key="idx">
v-for="(val, idx) in item.tagList"
:key="idx"
>
{{ val.industryName }} {{ val.industryName }}
</div> </div>
</div> </div>
...@@ -111,6 +106,16 @@ ...@@ -111,6 +106,16 @@
<DivideHeader id="position1" class="divide-header" :titleText="'最新动态'"></DivideHeader> <DivideHeader id="position1" class="divide-header" :titleText="'最新动态'"></DivideHeader>
<div class="center-top"> <div class="center-top">
<div class="box1"> <div class="box1">
<div class="box1-left" @click="handleSwithCurDecree('left')">
<div class="icon">
<img src="./assets/images/box1-left.png" alt="" />
</div>
</div>
<div class="box1-right" @click="handleSwithCurDecree('right')">
<div class="icon">
<img src="./assets/images/box1-right.png" alt="" />
</div>
</div>
<div class="box1-header"> <div class="box1-header">
<div class="box1-header-left"> <div class="box1-header-left">
<div class="icon"> <div class="icon">
...@@ -118,50 +123,38 @@ ...@@ -118,50 +123,38 @@
</div> </div>
<div class="title">{{ "智库发布" }}</div> <div class="title">{{ "智库发布" }}</div>
</div> </div>
<div class="box1-header-right" @click="toDetaile()">查看详情 ></div> <div class="box1-header-right" @click="handleClickToDetail">查看详情 ></div>
</div> </div>
<div style="display: flex"> <el-carousel ref="carouselRef" height="395px" :autoplay="true" :interval="3000" arrow="never"
<img indicator-position="none">
src="./assets/images/right-left-icon1.png" <el-carousel-item v-for="(itemData, indexData) in box1Data" :key="index">
alt=""
style="margin-top: 174px; width: 24px; height: 48px"
@click="changeBox1Data('previous')"
/>
<div class="box1-main"> <div class="box1-main">
<div class="box1-main-left"> <div class="box1-main-left">
<img :src="box1Data[box1DataIndex]?.imageUrl" alt="" /> <img :src="itemData?.imageUrl" alt="" />
</div> </div>
<div class="box1-main-right"> <div class="box1-main-right">
<div class="title">{{ box1Data[box1DataIndex]?.reportName }}</div> <div class="title">{{ itemData?.reportName }}</div>
<div class="tag-box"> <div class="tag-box">
<div <div class="tag" v-for="(item, index) in itemData?.industryVOList" :key="index">
class="tag"
v-for="(item, index) in box1Data[box1DataIndex]?.industryVOList"
:key="index"
>
{{ item.industryName }} {{ item.industryName }}
</div> </div>
</div> </div>
<div class="content">{{ box1Data[box1DataIndex]?.summary }}</div> <div class="content">{{ itemData?.summary }}</div>
<div class="box1-right-footer"> <div class="box1-right-footer">
<div class="time">{{ box1Data[box1DataIndex]?.time }}</div> <div class="time">{{ itemData?.time }}</div>
<div class="name"> <div class="name">
<div class="logo"> <div class="logo">
<img :src="box1Data[box1DataIndex]?.thinkTankImage" alt="" /> <img :src="itemData?.thinkTankImage" alt="" />
</div>
<div class="text">{{ box1Data[box1DataIndex]?.thinkTankName }}</div>
<div class="text">{{ box1Data[box1DataIndex]?.reportDate }}</div>
</div> </div>
<div class="text">{{ itemData?.thinkTankName }}</div>
<div class="text">{{ itemData?.reportDate }}</div>
</div> </div>
</div> </div>
</div> </div>
<img
src="./assets/images/right-left-icon2.png"
alt=""
style="margin-top: 174px; width: 24px; height: 48px"
@click="changeBox1Data('next')"
/>
</div> </div>
</el-carousel-item>
</el-carousel>
</div> </div>
<div class="box2"> <div class="box2">
<div class="box2-header"> <div class="box2-header">
...@@ -174,15 +167,13 @@ ...@@ -174,15 +167,13 @@
</div> </div>
</div> </div>
<div class="box2-main"> <div class="box2-main">
<div class="box2-main-item" v-for="(item, index) in warningList" :key="index"> <div class="box2-main-item" v-for="(item, index) in warningList" :key="index"
<div @click="handleClickToDetail()">
class="item-left" <div class="item-left" :class="{
:class="{
itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值', itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值',
itemLeftStatus2: item.status === '重大风险', itemLeftStatus2: item.status === '重大风险',
itemLeftStatus3: item.status === '特别重大' itemLeftStatus3: item.status === '特别重大'
}" }">
>
{{ item.status || "一般风险" }} {{ item.status || "一般风险" }}
</div> </div>
<div class="item-right"> <div class="item-right">
...@@ -219,12 +210,7 @@ ...@@ -219,12 +210,7 @@
</div> </div>
</div> </div>
<div class="box3-main"> <div class="box3-main">
<div <div class="box3-item" v-for="(news, index) in newsList" :key="index" @click="handleToNewsAnalysis(news)">
class="box3-item"
v-for="(news, index) in newsList"
:key="index"
@click="handleToNewsAnalysis(news)"
>
<div class="left"> <div class="left">
<img :src="news.newsImage !== null ? news.newsImage : defaultNewsIcon" /> <img :src="news.newsImage !== null ? news.newsImage : defaultNewsIcon" />
</div> </div>
...@@ -290,13 +276,8 @@ ...@@ -290,13 +276,8 @@
</div> </div>
<div class="box5-select-box"> <div class="box5-select-box">
<el-select v-model="box5selectetedMonths" placeholder="选择时间" style="width: 120px"> <el-select v-model="box5selectetedMonths" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box5MonthsList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box5MonthsList" @click="changeBox5Data(item.value)" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="changeBox5Data(item.value)"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -310,13 +291,8 @@ ...@@ -310,13 +291,8 @@
<div class="header-title">{{ "政策建议领域分布" }}</div> <div class="header-title">{{ "政策建议领域分布" }}</div>
<div class="box6-select-box"> <div class="box6-select-box">
<el-select v-model="box6selectetedYear" placeholder="选择时间" style="width: 120px"> <el-select v-model="box6selectetedYear" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box6YearList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box6YearList" @click="handleBox6()" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="handleBox6()"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -345,30 +321,21 @@ ...@@ -345,30 +321,21 @@
</div> </div>
<div class="box8-select-box"> <div class="box8-select-box">
<el-select v-model="box8selectetedYear" placeholder="选择时间" style="width: 120px"> <el-select v-model="box8selectetedYear" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box8YearList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box8YearList" @click="changeBox8Data(item.value)" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="changeBox8Data(item.value)"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="box8-main"> <div class="box8-main">
<div class="box8-item" v-for="(item, index) in box8Data" :key="index"> <div class="box8-item" v-for="(item, index) in box8Data" :key="index">
<div <div class="item-left"
class="item-left" :class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }">
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ index + 1 }} {{ index + 1 }}
</div> </div>
<!-- <el-popover effect="dark" :content="item.clause" placement="top-start"> <!-- <el-popover effect="dark" :content="item.clause" placement="top-start">
<template #reference> --> <template #reference> -->
<div <div class="item-center"
class="item-center" :class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }">
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ item.clause }} {{ item.clause }}
</div> </div>
<!-- </template> <!-- </template>
...@@ -385,13 +352,8 @@ ...@@ -385,13 +352,8 @@
<DivideHeader id="position4" class="divide-header" :titleText="'资源库'"></DivideHeader> <DivideHeader id="position4" class="divide-header" :titleText="'资源库'"></DivideHeader>
<div class="home-main-footer-header"> <div class="home-main-footer-header">
<div class="btn-box"> <div class="btn-box">
<div <div class="btn" :class="{ btnActive: activeCate === cate }" v-for="(cate, index) in categoryList"
class="btn" :key="index" @click="handleClickCate(cate)">
:class="{ btnActive: activeCate === cate }"
v-for="(cate, index) in categoryList"
:key="index"
@click="handleClickCate(cate)"
>
{{ cate }} {{ cate }}
</div> </div>
</div> </div>
...@@ -409,22 +371,12 @@ ...@@ -409,22 +371,12 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" class="all-checkbox"
v-model="checkAll" @change="handleCheckAllChange">
:indeterminate="isIndeterminate"
class="all-checkbox"
@change="handleCheckAllChange"
>
全部领域 全部领域
</el-checkbox> </el-checkbox>
<el-checkbox <el-checkbox v-for="research in areaList" :key="research.id" v-model="selectedAreaList"
v-for="research in areaList" :label="research.id" @change="handleCheckedAreaChange()" class="filter-checkbox">
:key="research.id"
v-model="selectedAreaList"
:label="research.id"
@change="handleCheckedAreaChange()"
class="filter-checkbox"
>
{{ research.name }} {{ research.name }}
</el-checkbox> </el-checkbox>
</div> </div>
...@@ -438,22 +390,13 @@ ...@@ -438,22 +390,13 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox <el-checkbox v-model="checkAllTime" class="all-checkbox" :indeterminate="isIndeterminateTime"
v-model="checkAllTime" @change="handleCheckAllChangeTime">
class="all-checkbox"
:indeterminate="isIndeterminateTime"
@change="handleCheckAllChangeTime"
>
全部时间 全部时间
</el-checkbox> </el-checkbox>
<el-checkbox-group v-model="selectedPubTimeList"> <el-checkbox-group v-model="selectedPubTimeList">
<el-checkbox <el-checkbox v-for="time in pubTimeList" :key="time.id" :label="time.id" class="filter-checkbox"
v-for="time in pubTimeList" @change="handleCheckedAreaChangeTime()">
:key="time.id"
:label="time.id"
class="filter-checkbox"
@change="handleCheckedAreaChangeTime()"
>
{{ time.name }} {{ time.name }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
...@@ -463,12 +406,8 @@ ...@@ -463,12 +406,8 @@
</div> </div>
<div class="right"> <div class="right">
<div class="card-box"> <div class="card-box">
<div <div class="footer-card" v-for="(item, index) in curFooterList" :key="index"
class="footer-card" @click="handleToReportDetail(item.id)">
v-for="(item, index) in curFooterList"
:key="index"
@click="handleToReportDetail(item.id)"
>
<div class="footer-card-top"> <div class="footer-card-top">
<img :src="item.imageUrl" alt="" /> <img :src="item.imageUrl" alt="" />
</div> </div>
...@@ -489,14 +428,8 @@ ...@@ -489,14 +428,8 @@
<div class="right-footer"> <div class="right-footer">
<div class="info">共{{ total }}项智库报告</div> <div class="info">共{{ total }}项智库报告</div>
<div class="page-box"> <div class="page-box">
<el-pagination <el-pagination :page-size="12" background layout="prev, pager, next" :total="total"
:page-size="12" @current-change="handleCurrentChange" :current-page="currentPage" />
background
layout="prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
:current-page="currentPage"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -664,6 +597,22 @@ function changeBox1Data(type) { ...@@ -664,6 +597,22 @@ function changeBox1Data(type) {
} }
} }
const carouselRef = ref(null);
// 点击查看详情
const handleClickToDetail = () => {
let activeIndex = 0;
if (carouselRef.value) {
activeIndex = carouselRef.value.activeIndex;
}
console.log("当前 Carousel 激活索引:", activeIndex);
const id = box1Data.value[activeIndex].id;
box1DataIndex.value = activeIndex
toDetaile()
};
const toDetaile = () => { const toDetaile = () => {
const route = router.resolve({ const route = router.resolve({
name: "ReportDetail", name: "ReportDetail",
...@@ -673,6 +622,16 @@ const toDetaile = () => { ...@@ -673,6 +622,16 @@ const toDetaile = () => {
}); });
window.open(route.href, "_blank"); window.open(route.href, "_blank");
}; };
// 切换当前智库
const handleSwithCurDecree = name => {
console.log(name, carouselRef.value)
if (name === "left") {
carouselRef.value.prev();
} else {
carouselRef.value.next();
}
};
// 风险信号 // 风险信号
const warningList = ref([ const warningList = ref([
{ {
...@@ -1542,7 +1501,7 @@ const handleClickPerson = async item => { ...@@ -1542,7 +1501,7 @@ const handleClickPerson = async item => {
ElMessage.warning("找不到当前人员的类型值!"); ElMessage.warning("找不到当前人员的类型值!");
return; return;
} }
} catch (error) {} } catch (error) { }
}; };
// 点击新闻条目,跳转到新闻分析页 // 点击新闻条目,跳转到新闻分析页
...@@ -1746,6 +1705,7 @@ onMounted(async () => { ...@@ -1746,6 +1705,7 @@ onMounted(async () => {
margin-top: 39px; margin-top: 39px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn { .btn {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -1758,9 +1718,11 @@ onMounted(async () => { ...@@ -1758,9 +1718,11 @@ onMounted(async () => {
background: #e7f3ff; background: #e7f3ff;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
&:hover { &:hover {
background: #cae3fc; background: #cae3fc;
} }
.btn-text { .btn-text {
width: 80px; width: 80px;
color: var(--color-main-active); color: var(--color-main-active);
...@@ -1771,12 +1733,14 @@ onMounted(async () => { ...@@ -1771,12 +1733,14 @@ onMounted(async () => {
margin-left: 36px; margin-left: 36px;
text-align: center; text-align: center;
} }
.btn-icon { .btn-icon {
position: absolute; position: absolute;
top: 16px; top: 16px;
right: 19px; right: 19px;
width: 6px; width: 6px;
height: 12px; height: 12px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -2021,6 +1985,7 @@ onMounted(async () => { ...@@ -2021,6 +1985,7 @@ onMounted(async () => {
width: 24px; width: 24px;
height: 48px; height: 48px;
cursor: pointer; cursor: pointer;
z-index: 10000;
img { img {
width: 100%; width: 100%;
......
...@@ -15,6 +15,15 @@ export default defineConfig({ ...@@ -15,6 +15,15 @@ export default defineConfig({
resolvers: [ElementPlusResolver()], resolvers: [ElementPlusResolver()],
}), }),
], ],
build: {
// minify: 'terser',
terserOptions: {
compress: {
drop_console: true, // 移除所有 console.*
drop_debugger: true, // 移除 debugger
},
},
},
resolve: { resolve: {
alias: { alias: {
'@': resolve(__dirname, 'src'), '@': resolve(__dirname, 'src'),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论