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

“update”

......@@ -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({
// 路由守卫 - 设置页面标题
router.beforeEach((to, from, next) => {
if (to.meta.title) {
// document.title = `${to.meta.title} - Think Tank`
document.title = to.meta.title
}
next();
});
......
......@@ -4,7 +4,7 @@ import companyPages from "@/views/companyPages/index.vue";
const companyPagesRoutes = [
// 智库系统的主要路由
{
path: "/companyPages:id",
path: "/companyPages/:id",
name: "companyPages",
component: companyPages,
meta: {
......@@ -14,4 +14,4 @@ const companyPagesRoutes = [
]
export default companyPagesRoutes
\ No newline at end of file
export default companyPagesRoutes
\ No newline at end of file
......@@ -192,17 +192,17 @@
</div>
</div>
<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-header">
<div class="inner-box-title">
{{ "大而美法案涉险通过参议院表决,众议院将继续..." }}
{{ bill.news?.newsTitle }}
</div>
<div class="inner-box-time">{{ "1小时前" }}</div>
<div class="inner-box-time">{{ bill.news?.newsTime.replace('T', ' ') }}</div>
</div>
<div class="inner-box-content">
{{
"三名美国共和党众议员(2025年7月21日)致函几家美国科技巨头公司的负责人,询问他们是否已经采取了充分的安全保障措施以有效解..."
bill.news?.newsContent
}}
</div>
</div>
......@@ -841,11 +841,7 @@ const formatMessageTime = timeStr => {
// 跳转人物主页
const handleClcikToCharacter = async (id) => {
window.sessionStorage.setItem("memberId", id);
const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList"));
console.log("personTypeList", personTypeList);
let type = 0;
let personTypeName = "";
......
......@@ -30,9 +30,12 @@
</template>
<script setup>
import { ref, computed } from 'vue';
import { ref, onMounted } from 'vue';
import Timeline from './Timeline.vue';
import process from './process.vue';
import { useRouter } from "vue-router";
import { getSanctionList } from "@/api/companyPages/index.js";
const router = useRouter();
const sanctionTimeData = ref([
{
"title": "初步限制与“实体清单”",
......@@ -60,6 +63,24 @@ const sanctionTimeData = ref([
"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>
<style scoped>
......
......@@ -15,13 +15,13 @@
<div class="node" :style="leftOffset(i)">
<!-- 圆环 -->
<div class="dot" :class="linePos(i, flip)" :style="{
marginTop: linePos(i, flip) === 'down' ? '-5px' : '35px'
marginTop: linePos(i, flip) === 'down' ? '-5px' : '-5px'
}"></div>
<div class="time" :style="{
marginTop: linePos(i, flip) === 'down' ? '-50px' : '10px'
}" v-if="type === 'normal'">
{{ item.time }}
{{ item.sanctionDate }}
</div>
<!-- 卡片:放到线右侧 -->
<div class="card" :class="[cardPos(i, flip), 'right-side']" @click="$emit('click-card', item)" :style="{
......@@ -31,7 +31,7 @@
<div class="time" :style="{
marginLeft: 0
}" v-if="type !== 'normal'">
{{ item.time }}
{{ item.sanctionDate }}
</div>
<div class="title">
{{ item.title }}
......
......@@ -67,14 +67,14 @@
class="content ai-content"
v-html="renderMarkdown(message.content)"
></div>
<div v-if="message.raw_data" class="answer-title">完整实体列表</div>
<div v-if="message.raw_data" class="content row-content">
<div v-if="message.raw_data?.length" class="answer-title">完整实体列表</div>
<div v-if="message.raw_data?.length" class="content row-content">
<div class="row-header">
<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.industry }}</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-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?.industry }}</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>
<div class="row-main">
<div
......@@ -644,7 +644,7 @@ const handleBillChat = async question => {
}
}
if (data.detail.error) {
if (data.detail && data.detail.error) {
console.log(data.detail.error.message);
// ElMessage.error(data.detail.error.message);
isCurAnswerMessage.value = true;
......
......@@ -121,7 +121,7 @@ import { ref, onMounted } from "vue";
import router from "@/router";
import { useRoute } from "vue-router";
import { search } from "@/api/comprehensiveSearch/index";
import { getPersonSummaryInfo } from "@/api/common/index";
import Img1 from "./assets/images/img1.png";
import Img2 from "./assets/images/img2.png";
import Img3 from "./assets/images/img3.png";
......@@ -167,10 +167,10 @@ const tabList = ref([
name: "新闻",
id: 8
},
{
name: "社媒",
id: 9
}
// {
// name: "社媒",
// id: 9
// }
]);
const activeTabId = ref(0);
......@@ -304,7 +304,58 @@ const handleSearch = async () => {
} 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;
switch (item.typeStr) {
case "法案":
......
......@@ -246,8 +246,12 @@ const handleMouseMove = event => {
};
const handleToBillDetail = item => {
window.sessionStorage.setItem("billId", item.billId);
const route = router.resolve("/billLayout");
const route = router.resolve({
path: "/billLayout",
query: {
billId: item.billId
}
});
window.open(route.href, "_blank");
};
......
......@@ -156,8 +156,8 @@ const horizontalBarOptions = shallowRef({});
const handleEttClick = item => {
const route = router.resolve({
path: "/companyPages",
query: {
name: "companyPages",
params: {
id: item.id
}
});
......
......@@ -342,8 +342,8 @@ const handleDomainChange = async domain => {
const handleOrgClick = item => {
console.log(item);
const route = router.resolve({
path: "/companyPages",
query: {
name: "companyPages",
params: {
id: item.id
}
});
......
......@@ -305,8 +305,8 @@ watch(
const handleOrgClick = item => {
console.log(item);
const route = router.resolve({
path: "/companyPages",
query: {
name: "companyPages",
params: {
id: item.id
}
});
......
......@@ -411,8 +411,8 @@ const handleOrgClick = item => {
console.log(item);
if (item.entityType != 2) return;
const route = router.resolve({
path: "/companyPages",
query: {
name: "companyPages",
params: {
id: item.id
}
});
......
......@@ -71,7 +71,7 @@
</div>
</div>
<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="point">
<img src="@/assets/images/dot.png" alt="" />
......@@ -314,7 +314,17 @@ const box2Data = ref([
// 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 () => {
try {
const res = await getThinkTankReportPolicyAction(router.currentRoute._value.params.id);
......
......@@ -15,6 +15,15 @@ export default defineConfig({
resolvers: [ElementPlusResolver()],
}),
],
build: {
// minify: 'terser',
terserOptions: {
compress: {
drop_console: true, // 移除所有 console.*
drop_debugger: true, // 移除 debugger
},
},
},
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论