提交 8b627b15 authored 作者: 朱政's avatar 朱政

Merge branch 'master' into zz-dev

差异被折叠。
//企业主页 //企业主页
import { useGotoPage } from "../common.js";
const companyPages = () => import('@/views/companyPages/index.vue') const companyPages = () => import('@/views/companyPages/index.vue')
const companyPages2 = () => import('@/views/companyPages2/index.vue') const companyPages2 = () => import('@/views/companyPages2/index.vue')
...@@ -28,4 +29,9 @@ const companyPagesRoutes = [ ...@@ -28,4 +29,9 @@ const companyPagesRoutes = [
] ]
export function useGotoCompanyPages() {
const gotoPage = useGotoPage();
return (id, isNewTabs = true) => gotoPage("/companyPages/" + id, {}, isNewTabs)
}
export default companyPagesRoutes export default companyPagesRoutes
\ No newline at end of file
...@@ -17,7 +17,29 @@ const setChart = (option, chartId, allowClick, selectParam) => { ...@@ -17,7 +17,29 @@ const setChart = (option, chartId, allowClick, selectParam) => {
// 判断点击的是否为饼图的数据项 // 判断点击的是否为饼图的数据项
if (params.componentType === 'series' && params.seriesType === 'pie') { if (params.componentType === 'series' && params.seriesType === 'pie') {
console.log('点击的扇形名称:', params.name); console.log('点击的扇形名称:', params.name);
selectParam.domains = JSON.stringify([params.name]) if (selectParam.key === '领域') {
selectParam.domains = JSON.stringify([params.name])
} else if (selectParam.key === '议院委员会') {
if (params.name === '众议院' || params.name === '参议院') {
selectParam.selectedCongress = params.name
selectParam.selectedOrg = ''
} else {
selectParam.selectedOrg = params.name
selectParam.selectedCongress = ''
}
}
const route = router.resolve({
path: "/dataLibrary/countryBill",
query: selectParam
});
window.open(route.href, "_blank");
} else if (params.componentType === 'series' && params.seriesType === 'bar') {
if (params.name === '已立法') {
selectParam.selectedStauts = 1
} else {
selectParam.selectedStauts = 0
}
const route = router.resolve({ const route = router.resolve({
path: "/dataLibrary/countryBill", path: "/dataLibrary/countryBill",
query: selectParam query: selectParam
......
...@@ -866,14 +866,20 @@ const handleBox7Data = async () => { ...@@ -866,14 +866,20 @@ const handleBox7Data = async () => {
if (t1 !== t2) return t1 - t2; if (t1 !== t2) return t1 - t2;
return (b.value ?? 0) - (a.value ?? 0); return (b.value ?? 0) - (a.value ?? 0);
}); });
const selectParam = {
moduleType: '国会法案',
key: '议院委员会',
selectedDate: box7selectetedTime.value,
}
const box7Chart = getDoublePieChart(data1, data2); const box7Chart = getDoublePieChart(data1, data2);
setChart(box7Chart, "box7Chart"); setChart(box7Chart, "box7Chart", true, selectParam);
box7AiData.value = { inner: data1, outer: data2 }; box7AiData.value = { inner: data1, outer: data2 };
} else { } else {
// 接口异常(如500)时,清空图表数据以避免报错或显示错误信息 // 接口异常(如500)时,清空图表数据以避免报错或显示错误信息
box7HasData.value = false; box7HasData.value = false;
setChart({}, "box7Chart"); setChart({}, "box7Chart", true, selectParam);
box7AiData.value = { inner: [], outer: [] }; box7AiData.value = { inner: [], outer: [] };
} }
} catch (error) { } catch (error) {
...@@ -987,11 +993,9 @@ const handleBox9Data = async () => { ...@@ -987,11 +993,9 @@ const handleBox9Data = async () => {
); );
const selectParam = { const selectParam = {
moduleType: '国会法案', moduleType: '国会法案',
proposedDateStart: box9selectetedTime.value, selectedDate: box9selectetedTime.value,
status: box9LegislativeStatus.value === '提出法案' ? 0 : 1, status: box9LegislativeStatus.value === '提出法案' ? 0 : 1,
isInvolveCn: 1 isInvolveCn: 1
} }
box9ChartInstance = setChart(box9Chart, "box9Chart", true, selectParam); box9ChartInstance = setChart(box9Chart, "box9Chart", true, selectParam);
} }
...@@ -1168,9 +1172,17 @@ const handleBox8Data = async () => { ...@@ -1168,9 +1172,17 @@ const handleBox8Data = async () => {
box8HasData.value = true; box8HasData.value = true;
box8Summary.value = countMap.get("完成立法") || 0; box8Summary.value = countMap.get("完成立法") || 0;
box8StageList.value = stages; box8StageList.value = stages;
const selectParam = {
moduleType: '国会法案',
key: '领域',
selectedDate: box8selectetedTime.value,
isInvolveCn: 1
}
await nextTick(); await nextTick();
const box8Chart = getBox8ChartOption(stages); const box8Chart = getBox8ChartOption(stages);
box8ChartInstance = setChart(box8Chart, "box8Chart"); box8ChartInstance = setChart(box8Chart, "box8Chart", true, selectParam);
} else { } else {
const data = box8MockDataByYear[box8selectetedTime.value]; const data = box8MockDataByYear[box8selectetedTime.value];
if (data && data.stages && data.stages.length > 0) { if (data && data.stages && data.stages.length > 0) {
...@@ -1179,12 +1191,12 @@ const handleBox8Data = async () => { ...@@ -1179,12 +1191,12 @@ const handleBox8Data = async () => {
box8StageList.value = data.stages; box8StageList.value = data.stages;
await nextTick(); await nextTick();
const box8Chart = getBox8ChartOption(data.stages); const box8Chart = getBox8ChartOption(data.stages);
box8ChartInstance = setChart(box8Chart, "box8Chart"); box8ChartInstance = setChart(box8Chart, "box8Chart", true, selectParam);
} else { } else {
box8HasData.value = false; box8HasData.value = false;
box8Summary.value = 0; box8Summary.value = 0;
box8StageList.value = []; box8StageList.value = [];
setChart({}, "box8Chart"); setChart({}, "box8Chart", true, selectParam);
} }
} }
} catch (error) { } catch (error) {
...@@ -1196,12 +1208,12 @@ const handleBox8Data = async () => { ...@@ -1196,12 +1208,12 @@ const handleBox8Data = async () => {
box8StageList.value = data.stages; box8StageList.value = data.stages;
await nextTick(); await nextTick();
const box8Chart = getBox8ChartOption(data.stages); const box8Chart = getBox8ChartOption(data.stages);
box8ChartInstance = setChart(box8Chart, "box8Chart"); box8ChartInstance = setChart(box8Chart, "box8Chart" , true, selectParam);
} else { } else {
box8HasData.value = false; box8HasData.value = false;
box8Summary.value = 0; box8Summary.value = 0;
box8StageList.value = []; box8StageList.value = [];
setChart({}, "box8Chart"); setChart({}, "box8Chart", true, selectParam);
} }
} }
}; };
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</div> </div>
<div class="check-box-right"> <div class="check-box-right">
<el-checkbox v-model="isInvolveCn" class="involve-checkbox" @change="handleInvolveCnChange"> <el-checkbox v-model="isInvolveCn" class="involve-checkbox" @change="handleInvolveCnChange">
{{ '只看涉华委员会' }} {{ '只看涉华法案' }}
</el-checkbox> </el-checkbox>
</div> </div>
</div> </div>
...@@ -217,6 +217,7 @@ const staticsDemensionList = ref([ ...@@ -217,6 +217,7 @@ const staticsDemensionList = ref([
}, },
]) ])
// 当前维度下的图表列表
const curChartTypeList = computed(() => { const curChartTypeList = computed(() => {
let arr = staticsDemensionList.value.filter(item => item.active) let arr = staticsDemensionList.value.filter(item => item.active)
return arr[0].chartTypeList return arr[0].chartTypeList
...@@ -225,6 +226,7 @@ const curChartTypeList = computed(() => { ...@@ -225,6 +226,7 @@ const curChartTypeList = computed(() => {
// 当前维度 // 当前维度
const curDemension = ref('提案时间') const curDemension = ref('提案时间')
// 点击维度item
const handleClickDemensionItem = (val) => { const handleClickDemensionItem = (val) => {
activeChart.value = '' activeChart.value = ''
staticsDemensionList.value.forEach(item => { staticsDemensionList.value.forEach(item => {
...@@ -257,25 +259,25 @@ const timeList = ref([ ...@@ -257,25 +259,25 @@ const timeList = ref([
// 激活的标签列表 // 激活的标签列表
const activeTagList = computed(() => { const activeTagList = computed(() => {
const arr = [] const arr = []
if (selectedArea.value && selectedArea !== '全部领域') { if (selectedArea.value && selectedArea.value !== '全部领域') {
arr.push(selectedArea.value) arr.push(selectedArea.value)
} }
if (selectedDate.value) { if (selectedDate.value) {
arr.push(selectedDate.value) arr.push(selectedDate.value)
} }
if (selectedParty.value && selectedParty !== '全部党派') { if (selectedParty.value && selectedParty.value !== '全部党派') {
arr.push(selectedParty.value) arr.push(selectedParty.value)
} }
if (selectedCongress.value && selectedCongress !== '全部议院') { if (selectedCongress.value && selectedCongress.value !== '全部议院') {
arr.push(selectedCongress.value) arr.push(selectedCongress.value)
} }
if (selectedOrg.value && selectedOrg !== '全部委员会') { if (selectedOrg.value && selectedOrg.value !== '全部委员会') {
arr.push(selectedOrg.value) arr.push(selectedOrg.value)
} }
if (selectedmember.value && selectedmember !== '全部议员') { if (selectedmember.value && selectedmember.value !== '全部议员') {
arr.push(selectedmember.value) arr.push(selectedmember.value)
} }
if (selectedStauts.value && selectedStauts !== '全部阶段') { if (selectedStauts.value && selectedStauts.value !== '全部阶段') {
arr.push(selectedStauts.value) arr.push(selectedStauts.value)
} }
if (isInvolveCn.value) { if (isInvolveCn.value) {
...@@ -298,67 +300,6 @@ const handleSwitchActiveChart = val => { ...@@ -298,67 +300,6 @@ const handleSwitchActiveChart = val => {
activeChart.value = val.name activeChart.value = val.name
} }
const lineChartData = ref({
dataX: ['2025-08', '2025-09', '2025-10', '2025-11', '2025-12', '2026-01', '2026-02',],
dataY: [123, 51, 64, 72, 58, 69, 105]
})
const pieChartData = ref([
{
name: '核',
value: 24
},
{
name: '极地',
value: 24
},
{
name: '新材料',
value: 24
},
{
name: '深海',
value: 30
},
{
name: '海洋',
value: 31
},
{
name: '先进制造',
value: 31
},
{
name: '生物科技',
value: 32
},
{
name: '新能源',
value: 35
},
{
name: '集成电路',
value: 16
},
{
name: '新一代通信网络',
value: 55
},
{
name: '量子科技',
value: 33
},
{
name: '人工智能',
value: 55
}
])
const barChartData = ref({
dataX: ['2025-08', '2025-09', '2025-10', '2025-11', '2025-12', '2026-01', '2026-02',],
dataY: [123, 51, 64, 72, 58, 69, 105]
})
const radarChartData = ref({ const radarChartData = ref({
title: [ title: [
{ {
...@@ -425,9 +366,9 @@ const operationList = ref([ ...@@ -425,9 +366,9 @@ const operationList = ref([
}, },
]) ])
// 领域 // 科技领域
const areaPlaceHolder = ref('请选择领域') const areaPlaceHolder = ref('请选择领域')
const selectedArea = ref('') const selectedArea = ref('全部领域')
const areaList = ref([ const areaList = ref([
{ {
name: '全部领域', name: '全部领域',
...@@ -494,7 +435,6 @@ const areaList = ref([ ...@@ -494,7 +435,6 @@ const areaList = ref([
id: '其他' id: '其他'
}, },
]) ])
const handleSelectArea = (value) => { const handleSelectArea = (value) => {
selectedArea.value = value selectedArea.value = value
} }
...@@ -529,9 +469,8 @@ const dateList = ref([ ...@@ -529,9 +469,8 @@ const dateList = ref([
}, },
]) ])
const customTime = ref('') // 自定义时间 const customTime = ref('') // 自定义时间
const handleCustomDate = value => { const handleCustomDate = value => {
console.log('value', value); // console.log('value', value);
customTime.value = value customTime.value = value
} }
...@@ -539,8 +478,12 @@ const handleSelectDate = (value) => { ...@@ -539,8 +478,12 @@ const handleSelectDate = (value) => {
selectedDate.value = value selectedDate.value = value
} }
// 党派列表 // 所属党派
const partyList = ref([ const partyList = ref([
{
name: '全部党派',
id: '全部党派'
},
{ {
name: '共和党', name: '共和党',
id: '共和党' id: '共和党'
...@@ -554,8 +497,7 @@ const partyList = ref([ ...@@ -554,8 +497,7 @@ const partyList = ref([
id: '其他' id: '其他'
}, },
]) ])
const selectedParty = ref('全部党派')
const selectedParty = ref('')
const partyPlaceHolder = ref('请选择党派') const partyPlaceHolder = ref('请选择党派')
const handleSelectParty = value => { const handleSelectParty = value => {
...@@ -564,6 +506,10 @@ const handleSelectParty = value => { ...@@ -564,6 +506,10 @@ const handleSelectParty = value => {
// 议院列表 // 议院列表
const congressList = ref([ const congressList = ref([
{
name: '全部议院',
id: '全部议院'
},
{ {
name: '众议院', name: '众议院',
id: '众议院' id: '众议院'
...@@ -573,45 +519,15 @@ const congressList = ref([ ...@@ -573,45 +519,15 @@ const congressList = ref([
id: '参议院' id: '参议院'
} }
]) ])
const selectedCongress = ref('全部议院')
const selectedCongress = ref('')
const congressPlaceHolder = ref('请选择议院') const congressPlaceHolder = ref('请选择议院')
const handleSelectCongress = value => { const handleSelectCongress = value => {
selectedCongress.value = value selectedCongress.value = value
} }
// 议院列表
const statusList = ref([
{
name: '提出',
id: '0'
},
{
name: '通过',
id: '1'
}
])
const selectedStauts = ref('')
const statusPlaceHolder = ref('请选择立法阶段')
const handleSelectStauts = value => {
selectedStauts.value = value
}
// 是否涉华
const isInvolveCn = ref(true)
const handleInvolveCnChange = () => {
}
// 委员会 // 委员会
const orgList = ref([ const orgList = ref([])
const selectedOrg = ref('全部委员会')
])
const selectedOrg = ref('')
const orgPlaceHolder = ref('请选择委员会') const orgPlaceHolder = ref('请选择委员会')
const handleSelectOrg = value => { const handleSelectOrg = value => {
...@@ -630,6 +546,7 @@ const handleGetOrgList = async () => { ...@@ -630,6 +546,7 @@ const handleGetOrgList = async () => {
id: item.departmentName id: item.departmentName
} }
}) })
orgList.value = [{ name: '全部委员会', id: '全部委员会' }, ...orgList.value]
} }
} catch (error) { } catch (error) {
...@@ -639,12 +556,9 @@ const handleGetOrgList = async () => { ...@@ -639,12 +556,9 @@ const handleGetOrgList = async () => {
} }
// 提出议员 // 提出议员
const memberList = ref([ const memberList = ref([])
]) const selectedmember = ref('全部议员')
const selectedmember = ref('')
const memberPlaceHolder = ref('请选择议员') const memberPlaceHolder = ref('请选择议员')
const handleSelectMember = value => { const handleSelectMember = value => {
selectedmember.value = value selectedmember.value = value
} }
...@@ -661,6 +575,7 @@ const handleGetMemberList = async () => { ...@@ -661,6 +575,7 @@ const handleGetMemberList = async () => {
id: item.memberName id: item.memberName
} }
}) })
memberList.value = [{ name: '全部议员', id: '全部议员' }, ...memberList.value]
} }
} catch (error) { } catch (error) {
...@@ -669,6 +584,34 @@ const handleGetMemberList = async () => { ...@@ -669,6 +584,34 @@ const handleGetMemberList = async () => {
} }
} }
// 阶段列表
const statusList = ref([
{
name: '全部阶段',
id: '全部阶段'
},
{
name: '提出',
id: '0'
},
{
name: '通过',
id: '1'
}
])
const selectedStauts = ref('全部阶段')
const statusPlaceHolder = ref('请选择立法阶段')
const handleSelectStauts = value => {
selectedStauts.value = value
}
// 是否涉华
const isInvolveCn = ref(true)
const handleInvolveCnChange = () => {
}
// 展开全部 / 收起 // 展开全部 / 收起
const isFolderAll = ref(false) const isFolderAll = ref(false)
const handleSwitchFolderAll = () => { const handleSwitchFolderAll = () => {
...@@ -683,8 +626,6 @@ const tableRef = ref(null) ...@@ -683,8 +626,6 @@ const tableRef = ref(null)
const tableData = ref([ const tableData = ref([
]) ])
const releaseTimeList = ref([ const releaseTimeList = ref([
{ {
label: "按发布时间倒序", label: "按发布时间倒序",
...@@ -721,15 +662,16 @@ const fetchTableData = async () => { ...@@ -721,15 +662,16 @@ const fetchTableData = async () => {
size: pageSize.value, size: pageSize.value,
keyword: '', keyword: '',
type: 1, // type 1= 法案 2= 政令 3 =智库 4=智库报告 5=实体清单【制裁记录】 6= 人物 7= 机构 8=新闻 9= 社媒 type: 1, // type 1= 法案 2= 政令 3 =智库 4=智库报告 5=实体清单【制裁记录】 6= 人物 7= 机构 8=新闻 9= 社媒
domains: selectedArea.value ? [selectedArea.value] : null, domains: selectedArea.value === '全部领域' ? null : [selectedArea.value],
proposedDateStart: selectedDate.value ? selectedDate.value : null, proposedDateStart: selectedDate.value ? selectedDate.value : null,
proposedDateEnd: null, proposedDateEnd: null,
affiliation: selectedParty.value ? selectedParty.value : null, affiliation: selectedParty.value === '全部党派' ? null : selectedParty.value,
originChamber: selectedCongress.value ? selectedCongress.value : null, originChamber: selectedCongress.value === '全部议院' ? null : selectedCongress.value,
originDepart: selectedOrg.value ? selectedOrg.value : null, originDepart: selectedOrg.value === '全部委员会' ? null : selectedOrg.value,
sponsorPersonName: selectedmember.value ? selectedmember.value : null, sponsorPersonName: selectedmember.value === '全部议员' ? null : selectedmember.value,
status: selectedStauts.value === '通过' ? 1 : 0, status: selectedStauts.value === '通过' ? 1 : 0,
sleStatus: isInvolveCn ? 1 : 0 sleStatus: isInvolveCn ? 1 : 0,
description: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
} }
try { try {
const res = await search(params) const res = await search(params)
...@@ -892,13 +834,22 @@ watch(tableData, () => { ...@@ -892,13 +834,22 @@ watch(tableData, () => {
// 当前图表数据 // 当前图表数据
const curChartData = ref(null) const curChartData = ref(null)
// 跳转到当前页 初始化筛选条件
const initParam = () => {
selectedArea.value = route.query.domains ? JSON.parse(route.query.domains)[0] : '全部领域'
selectedDate.value = route.query.selectedDate,
isInvolveCn.value = route.query.isInvolveCn ? true : false
selectedStauts.value = route.query.status === '1' ? '通过' : '提出'
selectedCongress.value = route.query.selectedCongress ? route.query.selectedCongress : '全部议院'
selectedOrg.value = route.query.selectedOrg ? route.query.selectedOrg : '全部委员会'
}
onMounted(async () => { onMounted(async () => {
handleGetOrgList() handleGetOrgList()
handleGetMemberList() handleGetMemberList()
selectedArea.value = route.query.domains ? JSON.parse(route.query.domains)[0] : ''
selectedDate.value = route.query.proposedDateStart, initParam()
isInvolveCn.value = route.query.isInvolveCn ? true : false
selectedStauts.value = route.query.status === '1' ? '通过' : '提出'
// 初始化 // 初始化
await fetchTableData() await fetchTableData()
......
...@@ -39,7 +39,7 @@ const handleClickItem = (item) => { ...@@ -39,7 +39,7 @@ const handleClickItem = (item) => {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.left { .left {
display: flex; display: flex;
gap: 8px; gap: 8px;
......
...@@ -91,6 +91,8 @@ import Fishbone from "./fishbone.vue"; ...@@ -91,6 +91,8 @@ import Fishbone from "./fishbone.vue";
import { getHorizontalBarChart2 } from "../../utils/charts"; import { getHorizontalBarChart2 } from "../../utils/charts";
import { getDomainDistribution, getChainEntities, getChainInfoByDomainId, getCnEntityOnChain } from "@/api/exportControl"; import { getDomainDistribution, getChainEntities, getChainInfoByDomainId, getCnEntityOnChain } from "@/api/exportControl";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const buttonList = ref([]); const buttonList = ref([]);
...@@ -155,13 +157,14 @@ const listData = ref([ ...@@ -155,13 +157,14 @@ const listData = ref([
const horizontalBarOptions = shallowRef({}); const horizontalBarOptions = shallowRef({});
const handleEttClick = item => { const handleEttClick = item => {
const route = router.resolve({ // const route = router.resolve({
name: "companyPages", // name: "companyPages",
params: { // params: {
id: item.id // id: item.id
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoCompanyPages(item.id);
}; };
// 处理点击事件 // 处理点击事件
const handleChainClick = async chainId => {}; const handleChainClick = async chainId => {};
......
...@@ -95,6 +95,8 @@ import Hint from "./hint.vue"; ...@@ -95,6 +95,8 @@ import Hint from "./hint.vue";
import { getEntitiesChangeCount, getEntitiesGrowthTrend, getEntitiesUpdateCount, getKeyEntityList } from "@/api/exportControl"; import { getEntitiesChangeCount, getEntitiesGrowthTrend, getEntitiesUpdateCount, getKeyEntityList } from "@/api/exportControl";
import _ from "lodash"; import _ from "lodash";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const line1Option = shallowRef({}); const line1Option = shallowRef({});
...@@ -341,13 +343,14 @@ const handleDomainChange = async domain => { ...@@ -341,13 +343,14 @@ const handleDomainChange = async domain => {
const handleOrgClick = item => { const handleOrgClick = item => {
console.log(item); console.log(item);
const route = router.resolve({ // const route = router.resolve({
name: "companyPages", // name: "companyPages",
params: { // params: {
id: item.id // id: item.id
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoCompanyPages(item.id);
}; };
</script> </script>
......
...@@ -74,6 +74,8 @@ import _ from "lodash"; ...@@ -74,6 +74,8 @@ import _ from "lodash";
import Hint from "./hint.vue"; import Hint from "./hint.vue";
import { getEntityFinancing, getEntityMarketValue, getKeyListedEntityList, getSanStrength } from "@/api/exportControl"; import { getEntityFinancing, getEntityMarketValue, getKeyListedEntityList, getSanStrength } from "@/api/exportControl";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const value3 = ref(""); const value3 = ref("");
...@@ -304,13 +306,14 @@ watch( ...@@ -304,13 +306,14 @@ watch(
const handleOrgClick = item => { const handleOrgClick = item => {
console.log(item); console.log(item);
const route = router.resolve({ // const route = router.resolve({
name: "companyPages", // name: "companyPages",
params: { // params: {
id: item.id // id: item.id
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoCompanyPages(item.id);
}; };
</script> </script>
......
...@@ -200,6 +200,8 @@ import { ...@@ -200,6 +200,8 @@ import {
import _ from "lodash"; import _ from "lodash";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { formatAnyDateToChinese } from "../../utils"; import { formatAnyDateToChinese } from "../../utils";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const organizationInfo = shallowRef({}); const organizationInfo = shallowRef({});
...@@ -406,13 +408,14 @@ const panel5TypeMap = { ...@@ -406,13 +408,14 @@ const panel5TypeMap = {
const handleOrgClick = item => { 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({
name: "companyPages", // name: "companyPages",
params: { // params: {
id: item.id // id: item.id
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoCompanyPages(item.id);
}; };
// 处理"查看更多"点击事件 // 处理"查看更多"点击事件
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
:subtitle="item.nameAbbr" :subtitle="item.nameAbbr"
:description="item.description" :description="item.description"
:quantity="item.postCount" :quantity="item.postCount"
unit="" unit=""
:color="infoListColor[index]" :color="infoListColor[index]"
@click="handleToEntityListNoId(item)" @click="handleToEntityListNoId(item)"
/> />
...@@ -715,6 +715,10 @@ import { ElMessage, ElMessageBox } from "element-plus"; ...@@ -715,6 +715,10 @@ import { ElMessage, ElMessageBox } from "element-plus";
import { DArrowRight, Warning, Search } from "@element-plus/icons-vue"; import { DArrowRight, Warning, Search } from "@element-plus/icons-vue";
import EChart from "@/components/Chart/index.vue"; import EChart from "@/components/Chart/index.vue";
import { TAGTYPE } from "@/public/constant"; import { TAGTYPE } from "@/public/constant";
import { useGotoCompanyPages } from "@/router/modules/company";
import { useGotoNewsDetail } from "@/router/modules/news";
const gotoCompanyPages = useGotoCompanyPages();
const gotoNewsDetail = useGotoNewsDetail();
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
...@@ -868,14 +872,15 @@ const handleCompClick = item => { ...@@ -868,14 +872,15 @@ const handleCompClick = item => {
// console.log("item", item); // console.log("item", item);
// if (item.entityType != 2) return; // if (item.entityType != 2) return;
window.sessionStorage.setItem("curTabName", item.name); window.sessionStorage.setItem("curTabName", item.name);
const route = router.resolve({ gotoCompanyPages(item.entityId);
name: "companyPages", // const route = router.resolve({
params: { // name: "companyPages",
id: item.id, // params: {
sanTypeId: item.sanTypeId // id: item.id,
} // sanTypeId: item.sanTypeId
}); // }
window.open(route.href, "_blank"); // });
// window.open(route.href, "_blank");
}; };
const tagsType = ["primary", "success", "warning", "danger"]; const tagsType = ["primary", "success", "warning", "danger"];
...@@ -1075,14 +1080,15 @@ const processYearDomainCountData = yearDomainCountData => { ...@@ -1075,14 +1080,15 @@ const processYearDomainCountData = yearDomainCountData => {
const handleEntityClick = item => { const handleEntityClick = item => {
console.log("item", item); console.log("item", item);
window.sessionStorage.setItem("curTabName", item.name || item.entityNameZh); window.sessionStorage.setItem("curTabName", item.name || item.entityNameZh);
const route = router.resolve({ gotoCompanyPages(item.entityId);
name: "companyPages", // const route = router.resolve({
params: { // name: "companyPages",
// startTime: item.startTime, // params: {
id: item.entityId // // startTime: item.startTime,
} // id: item.entityId
}); // }
window.open(route.href, "_blank"); // });
// window.open(route.href, "_blank");
}; };
const carouselRef = ref(null); const carouselRef = ref(null);
...@@ -1353,8 +1359,8 @@ const fetchSanctionList = async () => { ...@@ -1353,8 +1359,8 @@ const fetchSanctionList = async () => {
const tags = Array.isArray(item.techDomains) const tags = Array.isArray(item.techDomains)
? item.techDomains ? item.techDomains
: item.techDomain : item.techDomain
? [item.techDomain] ? [item.techDomain]
: item.techDomainList || []; : item.techDomainList || [];
const fullTime = item.startTime const fullTime = item.startTime
? formatAnyDateToChinese(item.startTime) ? formatAnyDateToChinese(item.startTime)
...@@ -1384,8 +1390,8 @@ const fetchSanctionList = async () => { ...@@ -1384,8 +1390,8 @@ const fetchSanctionList = async () => {
countTag: item.cnEntityCount countTag: item.cnEntityCount
? `${item.cnEntityCount}家中国实体` ? `${item.cnEntityCount}家中国实体`
: item.ruleOrgCount : item.ruleOrgCount
? `${item.ruleOrgCount}家关联实体` ? `${item.ruleOrgCount}家关联实体`
: item.countTag || "" : item.countTag || ""
}; };
}); });
totalAll.value = res.totalElements; totalAll.value = res.totalElements;
...@@ -1717,7 +1723,8 @@ const handleSanc = item => { ...@@ -1717,7 +1723,8 @@ const handleSanc = item => {
const route = router.resolve({ const route = router.resolve({
path: "/exportControl/singleSanction", path: "/exportControl/singleSanction",
query: { query: {
id: item.id id: item.id,
sanTypeId: activeResourceTabItem.value.id
} }
}); });
window.open(route.href, "_blank"); window.open(route.href, "_blank");
...@@ -1737,14 +1744,15 @@ const handleToMoreNews = () => { ...@@ -1737,14 +1744,15 @@ const handleToMoreNews = () => {
const handleNewsInfoClick = item => { const handleNewsInfoClick = item => {
console.log("点击了社交媒体消息的更多信息:", item); console.log("点击了社交媒体消息的更多信息:", item);
// 应该跳转至哪儿???
const route = router.resolve({ // const route = router.resolve({
path: "/newsAnalysis", // path: "/newsAnalysis",
query: { // query: {
newsId: item.newsId // newsId: item.newsId
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoNewsDetail(item.newsId);
}; };
// 切换当前出口管制政策 // 切换当前出口管制政策
...@@ -2324,7 +2332,8 @@ const handleMediaClick = item => { ...@@ -2324,7 +2332,8 @@ const handleMediaClick = item => {
overflow-y: auto; overflow-y: auto;
.home-top-bg { .home-top-bg {
background: url("./assets/images/background.png"), background:
url("./assets/images/background.png"),
linear-gradient(180deg, rgba(229, 241, 254, 1) 0%, rgba(246, 251, 255, 0) 30%); linear-gradient(180deg, rgba(229, 241, 254, 1) 0%, rgba(246, 251, 255, 0) 30%);
background-size: 100% 100%; background-size: 100% 100%;
position: absolute; position: absolute;
......
...@@ -82,7 +82,8 @@ import { ref, computed, watch } from "vue"; ...@@ -82,7 +82,8 @@ import { ref, computed, watch } from "vue";
import router from "@/router"; import router from "@/router";
import { Close } from "@element-plus/icons-vue"; import { Close } from "@element-plus/icons-vue";
import defaultIcon from "@/assets/icons/default-icon1.png"; import defaultIcon from "@/assets/icons/default-icon1.png";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
type: Boolean, type: Boolean,
...@@ -119,9 +120,9 @@ const tableData = computed(() => { ...@@ -119,9 +120,9 @@ const tableData = computed(() => {
...item, ...item,
name: item.orgName, name: item.orgName,
domains: item.techDomains || [], domains: item.techDomains || [],
equityRatio: item.equityRatio ? (item.equityRatio * 100).toFixed(2) + '%' : '--', equityRatio: item.equityRatio ? (item.equityRatio * 100).toFixed(2) + "%" : "--",
location: '--', location: "--",
revenue: item.revenue || '--' revenue: item.revenue || "--"
})); }));
}); });
...@@ -154,16 +155,16 @@ const getTagStyle = tag => { ...@@ -154,16 +155,16 @@ const getTagStyle = tag => {
// 跳转公司详情页 // 跳转公司详情页
const handleCompClick = item => { const handleCompClick = item => {
console.log("item", item); console.log("item", item);
window.sessionStorage.setItem('curTabName', item.entityNameZh || item.entityName) window.sessionStorage.setItem("curTabName", item.entityNameZh || item.entityName);
const route = router.resolve({ gotoCompanyPages(item.id);
name: "companyPages", // const route = router.resolve({
params: { // name: "companyPages",
id: item.id // params: {
} // id: item.id
}); // }
window.open(route.href, "_blank"); // });
// window.open(route.href, "_blank");
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -363,4 +364,4 @@ const handleCompClick = item => { ...@@ -363,4 +364,4 @@ const handleCompClick = item => {
} }
} }
} }
</style> </style>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
:key="index" :key="index"
class="tab-item" class="tab-item"
:class="{ active: index === activeIndex }" :class="{ active: index === activeIndex }"
@click="activeIndex = index" @click="handleClickTab(index)"
> >
{{ item }} {{ item }}
<span v-if="index === activeIndex" class="arrow"></span> <span v-if="index === activeIndex" class="arrow"></span>
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
</div> </div>
<div class="content-box"> <div class="content-box">
<introductionPage <introductionPage
v-show="activeIndex === 1" v-show="activeIndex == 1"
@update-entity-info="data => $emit('update-entity-info', data)" @update-entity-info="data => $emit('update-entity-info', data)"
></introductionPage> ></introductionPage>
<listPage v-show="activeIndex === 0"></listPage> <listPage v-show="activeIndex == 0"></listPage>
</div> </div>
</div> </div>
</template> </template>
...@@ -31,6 +31,11 @@ const emit = defineEmits(["update-entity-info"]); ...@@ -31,6 +31,11 @@ const emit = defineEmits(["update-entity-info"]);
const activeTab = ref(["实体清单列表", "实体清单简介"]); const activeTab = ref(["实体清单列表", "实体清单简介"]);
const activeIndex = ref(0); const activeIndex = ref(0);
const handleClickTab = index => {
console.log(index);
activeIndex.value = index;
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
...@@ -38,9 +38,7 @@ ...@@ -38,9 +38,7 @@
<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 class="tag" v-for="(domain, index) in formattedData.domains" :key="index">{{ <AreaTag v-for="(domain, index) in formattedData.domains" :key="index" :tagName="domain" />
domain
}}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -116,7 +114,7 @@ ...@@ -116,7 +114,7 @@
<el-input <el-input
v-model="searchKeyword" v-model="searchKeyword"
placeholder="搜索实体" placeholder="搜索实体"
style="width: 150px" style="width: 150px; border: 1px solid rgba(170, 173, 177, 0.4); border-radius: 5px"
:suffix-icon="Search" :suffix-icon="Search"
/> />
</div> </div>
...@@ -219,6 +217,7 @@ ...@@ -219,6 +217,7 @@
import { ref, defineProps, computed, onMounted, watch } from "vue"; import { ref, defineProps, computed, onMounted, watch } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import AreaTag from "@/components/base/AreaTag/index.vue";
import { DArrowRight, Search } from "@element-plus/icons-vue"; import { DArrowRight, Search } from "@element-plus/icons-vue";
import { debounce } from "lodash"; import { debounce } from "lodash";
import title from "../../assets/title.png"; import title from "../../assets/title.png";
...@@ -232,6 +231,9 @@ import { ...@@ -232,6 +231,9 @@ import {
import RuleSubsidiaryDialog from "../../../v2.0EntityList/components/sanctionsOverview/components/listPage/RuleSubsidiaryDialog.vue"; import RuleSubsidiaryDialog from "../../../v2.0EntityList/components/sanctionsOverview/components/listPage/RuleSubsidiaryDialog.vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const route = useRoute(); const route = useRoute();
// 跳转公司详情页 // 跳转公司详情页
const handleCompClick = item => { const handleCompClick = item => {
...@@ -240,8 +242,9 @@ const handleCompClick = item => { ...@@ -240,8 +242,9 @@ const handleCompClick = item => {
return; return;
} }
window.sessionStorage.setItem("curTabName", item.name); window.sessionStorage.setItem("curTabName", item.name);
const curRoute = router.resolve({ name: "companyPages", params: { id: item.entityId } }); gotoCompanyPages(item.entityId);
window.open(curRoute.href, "_blank"); // const curRoute = router.resolve({ name: "companyPages", params: { id: item.entityId } });
// window.open(curRoute.href, "_blank");
}; };
// 跳转发布机构详情页 // 跳转发布机构详情页
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论