Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
8b627b15
提交
8b627b15
authored
3月 25, 2026
作者:
朱政
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into zz-dev
上级
2ad8e183
4352ddab
全部展开
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
271 行增加
和
233 行删除
+271
-233
package-lock.json
package-lock.json
+0
-0
company.js
src/router/modules/company.js
+7
-0
setChart.js
src/utils/setChart.js
+22
-0
index.vue
src/views/bill/billHome/index.vue
+22
-10
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+77
-126
index.vue
src/views/dataLibrary/components/ChartHeader/index.vue
+0
-0
influencePanel2.vue
...ews/exportControl/analysis/components/influencePanel2.vue
+10
-7
panel1.vue
src/views/exportControl/analysis/components/panel1.vue
+10
-7
panel2.vue
src/views/exportControl/analysis/components/panel2.vue
+10
-7
overview.vue
src/views/exportControl/analysis/content/overview.vue
+10
-7
index.vue
src/views/exportControl/index.vue
+36
-27
RuleSubsidiaryDialog.vue
...ionsOverview/components/listPage/RuleSubsidiaryDialog.vue
+14
-13
index.vue
...omponents/sanctionsOverview/components/listPage/index.vue
+36
-20
index.vue
...rol/v2.0EntityList/components/sanctionsOverview/index.vue
+8
-3
index.vue
...v2.0SingleSanction/components/sanctionsOverview/index.vue
+9
-6
没有找到文件。
package-lock.json
浏览文件 @
8b627b15
差异被折叠。
点击展开。
src/router/modules/company.js
浏览文件 @
8b627b15
//企业主页
import
{
useGotoPage
}
from
"../common.js"
;
const
companyPages
=
()
=>
import
(
'@/views/companyPages/index.vue'
)
const
companyPages2
=
()
=>
import
(
'@/views/companyPages2/index.vue'
)
...
...
@@ -28,4 +29,9 @@ const companyPagesRoutes = [
]
export
function
useGotoCompanyPages
()
{
const
gotoPage
=
useGotoPage
();
return
(
id
,
isNewTabs
=
true
)
=>
gotoPage
(
"/companyPages/"
+
id
,
{},
isNewTabs
)
}
export
default
companyPagesRoutes
\ No newline at end of file
src/utils/setChart.js
浏览文件 @
8b627b15
...
...
@@ -17,7 +17,29 @@ const setChart = (option, chartId, allowClick, selectParam) => {
// 判断点击的是否为饼图的数据项
if
(
params
.
componentType
===
'series'
&&
params
.
seriesType
===
'pie'
)
{
console
.
log
(
'点击的扇形名称:'
,
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
({
path
:
"/dataLibrary/countryBill"
,
query
:
selectParam
...
...
src/views/bill/billHome/index.vue
浏览文件 @
8b627b15
...
...
@@ -867,13 +867,19 @@ const handleBox7Data = async () => {
return
(
b
.
value
??
0
)
-
(
a
.
value
??
0
);
});
const
selectParam
=
{
moduleType
:
'国会法案'
,
key
:
'议院委员会'
,
selectedDate
:
box7selectetedTime
.
value
,
}
const
box7Chart
=
getDoublePieChart
(
data1
,
data2
);
setChart
(
box7Chart
,
"box7Chart"
);
setChart
(
box7Chart
,
"box7Chart"
,
true
,
selectParam
);
box7AiData
.
value
=
{
inner
:
data1
,
outer
:
data2
};
}
else
{
// 接口异常(如500)时,清空图表数据以避免报错或显示错误信息
box7HasData
.
value
=
false
;
setChart
({},
"box7Chart"
);
setChart
({},
"box7Chart"
,
true
,
selectParam
);
box7AiData
.
value
=
{
inner
:
[],
outer
:
[]
};
}
}
catch
(
error
)
{
...
...
@@ -987,11 +993,9 @@ const handleBox9Data = async () => {
);
const
selectParam
=
{
moduleType
:
'国会法案'
,
proposedDateStart
:
box9selectetedTime
.
value
,
selectedDate
:
box9selectetedTime
.
value
,
status
:
box9LegislativeStatus
.
value
===
'提出法案'
?
0
:
1
,
isInvolveCn
:
1
}
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
,
true
,
selectParam
);
}
...
...
@@ -1168,9 +1172,17 @@ const handleBox8Data = async () => {
box8HasData
.
value
=
true
;
box8Summary
.
value
=
countMap
.
get
(
"完成立法"
)
||
0
;
box8StageList
.
value
=
stages
;
const
selectParam
=
{
moduleType
:
'国会法案'
,
key
:
'领域'
,
selectedDate
:
box8selectetedTime
.
value
,
isInvolveCn
:
1
}
await
nextTick
();
const
box8Chart
=
getBox8ChartOption
(
stages
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
,
true
,
selectParam
);
}
else
{
const
data
=
box8MockDataByYear
[
box8selectetedTime
.
value
];
if
(
data
&&
data
.
stages
&&
data
.
stages
.
length
>
0
)
{
...
...
@@ -1179,12 +1191,12 @@ const handleBox8Data = async () => {
box8StageList
.
value
=
data
.
stages
;
await
nextTick
();
const
box8Chart
=
getBox8ChartOption
(
data
.
stages
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
,
true
,
selectParam
);
}
else
{
box8HasData
.
value
=
false
;
box8Summary
.
value
=
0
;
box8StageList
.
value
=
[];
setChart
({},
"box8Chart"
);
setChart
({},
"box8Chart"
,
true
,
selectParam
);
}
}
}
catch
(
error
)
{
...
...
@@ -1196,12 +1208,12 @@ const handleBox8Data = async () => {
box8StageList
.
value
=
data
.
stages
;
await
nextTick
();
const
box8Chart
=
getBox8ChartOption
(
data
.
stages
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
);
box8ChartInstance
=
setChart
(
box8Chart
,
"box8Chart"
,
true
,
selectParam
);
}
else
{
box8HasData
.
value
=
false
;
box8Summary
.
value
=
0
;
box8StageList
.
value
=
[];
setChart
({},
"box8Chart"
);
setChart
({},
"box8Chart"
,
true
,
selectParam
);
}
}
};
...
...
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
8b627b15
...
...
@@ -23,7 +23,7 @@
</div>
<div
class=
"check-box-right"
>
<el-checkbox
v-model=
"isInvolveCn"
class=
"involve-checkbox"
@
change=
"handleInvolveCnChange"
>
{{
'只看涉华
委员会
'
}}
{{
'只看涉华
法案
'
}}
</el-checkbox>
</div>
</div>
...
...
@@ -217,6 +217,7 @@ const staticsDemensionList = ref([
}
,
])
// 当前维度下的图表列表
const
curChartTypeList
=
computed
(()
=>
{
let
arr
=
staticsDemensionList
.
value
.
filter
(
item
=>
item
.
active
)
return
arr
[
0
].
chartTypeList
...
...
@@ -225,6 +226,7 @@ const curChartTypeList = computed(() => {
// 当前维度
const
curDemension
=
ref
(
'提案时间'
)
// 点击维度item
const
handleClickDemensionItem
=
(
val
)
=>
{
activeChart
.
value
=
''
staticsDemensionList
.
value
.
forEach
(
item
=>
{
...
...
@@ -257,25 +259,25 @@ const timeList = ref([
// 激活的标签列表
const
activeTagList
=
computed
(()
=>
{
const
arr
=
[]
if
(
selectedArea
.
value
&&
selectedArea
!==
'全部领域'
)
{
if
(
selectedArea
.
value
&&
selectedArea
.
value
!==
'全部领域'
)
{
arr
.
push
(
selectedArea
.
value
)
}
if
(
selectedDate
.
value
)
{
arr
.
push
(
selectedDate
.
value
)
}
if
(
selectedParty
.
value
&&
selectedParty
!==
'全部党派'
)
{
if
(
selectedParty
.
value
&&
selectedParty
.
value
!==
'全部党派'
)
{
arr
.
push
(
selectedParty
.
value
)
}
if
(
selectedCongress
.
value
&&
selectedCongress
!==
'全部议院'
)
{
if
(
selectedCongress
.
value
&&
selectedCongress
.
value
!==
'全部议院'
)
{
arr
.
push
(
selectedCongress
.
value
)
}
if
(
selectedOrg
.
value
&&
selectedOrg
!==
'全部委员会'
)
{
if
(
selectedOrg
.
value
&&
selectedOrg
.
value
!==
'全部委员会'
)
{
arr
.
push
(
selectedOrg
.
value
)
}
if
(
selectedmember
.
value
&&
selectedmember
!==
'全部议员'
)
{
if
(
selectedmember
.
value
&&
selectedmember
.
value
!==
'全部议员'
)
{
arr
.
push
(
selectedmember
.
value
)
}
if
(
selectedStauts
.
value
&&
selectedStauts
!==
'全部阶段'
)
{
if
(
selectedStauts
.
value
&&
selectedStauts
.
value
!==
'全部阶段'
)
{
arr
.
push
(
selectedStauts
.
value
)
}
if
(
isInvolveCn
.
value
)
{
...
...
@@ -298,67 +300,6 @@ const handleSwitchActiveChart = val => {
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
({
title
:
[
{
...
...
@@ -425,9 +366,9 @@ const operationList = ref([
}
,
])
// 领域
//
科技
领域
const
areaPlaceHolder
=
ref
(
'请选择领域'
)
const
selectedArea
=
ref
(
''
)
const
selectedArea
=
ref
(
'
全部领域
'
)
const
areaList
=
ref
([
{
name
:
'全部领域'
,
...
...
@@ -494,7 +435,6 @@ const areaList = ref([
id
:
'其他'
}
,
])
const
handleSelectArea
=
(
value
)
=>
{
selectedArea
.
value
=
value
}
...
...
@@ -529,9 +469,8 @@ const dateList = ref([
}
,
])
const
customTime
=
ref
(
''
)
// 自定义时间
const
handleCustomDate
=
value
=>
{
console
.
log
(
'value'
,
value
);
//
console.log('value', value);
customTime
.
value
=
value
}
...
...
@@ -539,8 +478,12 @@ const handleSelectDate = (value) => {
selectedDate
.
value
=
value
}
//
党派列表
//
所属党派
const
partyList
=
ref
([
{
name
:
'全部党派'
,
id
:
'全部党派'
}
,
{
name
:
'共和党'
,
id
:
'共和党'
...
...
@@ -554,8 +497,7 @@ const partyList = ref([
id
:
'其他'
}
,
])
const
selectedParty
=
ref
(
''
)
const
selectedParty
=
ref
(
'全部党派'
)
const
partyPlaceHolder
=
ref
(
'请选择党派'
)
const
handleSelectParty
=
value
=>
{
...
...
@@ -564,6 +506,10 @@ const handleSelectParty = value => {
// 议院列表
const
congressList
=
ref
([
{
name
:
'全部议院'
,
id
:
'全部议院'
}
,
{
name
:
'众议院'
,
id
:
'众议院'
...
...
@@ -573,45 +519,15 @@ const congressList = ref([
id
:
'参议院'
}
])
const
selectedCongress
=
ref
(
''
)
const
selectedCongress
=
ref
(
'全部议院'
)
const
congressPlaceHolder
=
ref
(
'请选择议院'
)
const
handleSelectCongress
=
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
selectedOrg
=
ref
(
''
)
const
orgList
=
ref
([])
const
selectedOrg
=
ref
(
'全部委员会'
)
const
orgPlaceHolder
=
ref
(
'请选择委员会'
)
const
handleSelectOrg
=
value
=>
{
...
...
@@ -630,6 +546,7 @@ const handleGetOrgList = async () => {
id
:
item
.
departmentName
}
}
)
orgList
.
value
=
[{
name
:
'全部委员会'
,
id
:
'全部委员会'
}
,
...
orgList
.
value
]
}
}
catch
(
error
)
{
...
...
@@ -639,12 +556,9 @@ const handleGetOrgList = async () => {
}
// 提出议员
const
memberList
=
ref
([
])
const
selectedmember
=
ref
(
''
)
const
memberList
=
ref
([])
const
selectedmember
=
ref
(
'全部议员'
)
const
memberPlaceHolder
=
ref
(
'请选择议员'
)
const
handleSelectMember
=
value
=>
{
selectedmember
.
value
=
value
}
...
...
@@ -661,6 +575,7 @@ const handleGetMemberList = async () => {
id
:
item
.
memberName
}
}
)
memberList
.
value
=
[{
name
:
'全部议员'
,
id
:
'全部议员'
}
,
...
memberList
.
value
]
}
}
catch
(
error
)
{
...
...
@@ -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
handleSwitchFolderAll
=
()
=>
{
...
...
@@ -683,8 +626,6 @@ const tableRef = ref(null)
const
tableData
=
ref
([
])
const
releaseTimeList
=
ref
([
{
label
:
"按发布时间倒序"
,
...
...
@@ -721,15 +662,16 @@ const fetchTableData = async () => {
size
:
pageSize
.
value
,
keyword
:
''
,
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
,
proposedDateEnd
:
null
,
affiliation
:
selectedParty
.
value
?
selectedParty
.
value
:
null
,
originChamber
:
selectedCongress
.
value
?
selectedCongress
.
value
:
null
,
originDepart
:
selectedOrg
.
value
?
selectedOrg
.
value
:
null
,
sponsorPersonName
:
selectedmember
.
value
?
selectedmember
.
value
:
null
,
affiliation
:
selectedParty
.
value
===
'全部党派'
?
null
:
selectedParty
.
value
,
originChamber
:
selectedCongress
.
value
===
'全部议院'
?
null
:
selectedCongress
.
value
,
originDepart
:
selectedOrg
.
value
===
'全部委员会'
?
null
:
selectedOrg
.
value
,
sponsorPersonName
:
selectedmember
.
value
===
'全部议员'
?
null
:
selectedmember
.
value
,
status
:
selectedStauts
.
value
===
'通过'
?
1
:
0
,
sleStatus
:
isInvolveCn
?
1
:
0
sleStatus
:
isInvolveCn
?
1
:
0
,
description
:
isSort
.
value
?
0
:
1
// 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
}
try
{
const
res
=
await
search
(
params
)
...
...
@@ -892,13 +834,22 @@ watch(tableData, () => {
// 当前图表数据
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
()
=>
{
handleGetOrgList
()
handleGetMemberList
()
selectedArea
.
value
=
route
.
query
.
domains
?
JSON
.
parse
(
route
.
query
.
domains
)[
0
]
:
''
selectedDate
.
value
=
route
.
query
.
proposedDateStart
,
isInvolveCn
.
value
=
route
.
query
.
isInvolveCn
?
true
:
false
selectedStauts
.
value
=
route
.
query
.
status
===
'1'
?
'通过'
:
'提出'
initParam
()
// 初始化
await
fetchTableData
()
...
...
src/views/dataLibrary/components/ChartHeader/index.vue
浏览文件 @
8b627b15
src/views/exportControl/analysis/components/influencePanel2.vue
浏览文件 @
8b627b15
...
...
@@ -91,6 +91,8 @@ import Fishbone from "./fishbone.vue";
import
{
getHorizontalBarChart2
}
from
"../../utils/charts"
;
import
{
getDomainDistribution
,
getChainEntities
,
getChainInfoByDomainId
,
getCnEntityOnChain
}
from
"@/api/exportControl"
;
import
{
useRoute
,
useRouter
}
from
"vue-router"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
buttonList
=
ref
([]);
...
...
@@ -155,13 +157,14 @@ const listData = ref([
const
horizontalBarOptions
=
shallowRef
({
}
);
const
handleEttClick
=
item
=>
{
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve(
{
// name: "companyPages",
// params:
{
// id: item.id
//
}
//
}
);
// window.open(route.href, "_blank");
gotoCompanyPages
(
item
.
id
);
}
;
// 处理点击事件
const
handleChainClick
=
async
chainId
=>
{
}
;
...
...
src/views/exportControl/analysis/components/panel1.vue
浏览文件 @
8b627b15
...
...
@@ -95,6 +95,8 @@ import Hint from "./hint.vue";
import
{
getEntitiesChangeCount
,
getEntitiesGrowthTrend
,
getEntitiesUpdateCount
,
getKeyEntityList
}
from
"@/api/exportControl"
;
import
_
from
"lodash"
;
import
{
useRoute
,
useRouter
}
from
"vue-router"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
line1Option
=
shallowRef
({});
...
...
@@ -341,13 +343,14 @@ const handleDomainChange = async domain => {
const
handleOrgClick
=
item
=>
{
console
.
log
(
item
);
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
gotoCompanyPages
(
item
.
id
);
};
</
script
>
...
...
src/views/exportControl/analysis/components/panel2.vue
浏览文件 @
8b627b15
...
...
@@ -74,6 +74,8 @@ import _ from "lodash";
import
Hint
from
"./hint.vue"
;
import
{
getEntityFinancing
,
getEntityMarketValue
,
getKeyListedEntityList
,
getSanStrength
}
from
"@/api/exportControl"
;
import
{
useRoute
,
useRouter
}
from
"vue-router"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
value3
=
ref
(
""
);
...
...
@@ -304,13 +306,14 @@ watch(
const
handleOrgClick
=
item
=>
{
console
.
log
(
item
);
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
gotoCompanyPages
(
item
.
id
);
};
</
script
>
...
...
src/views/exportControl/analysis/content/overview.vue
浏览文件 @
8b627b15
...
...
@@ -200,6 +200,8 @@ import {
import
_
from
"lodash"
;
import
{
useRoute
,
useRouter
}
from
"vue-router"
;
import
{
formatAnyDateToChinese
}
from
"../../utils"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
route
=
useRoute
();
const
router
=
useRouter
();
const
organizationInfo
=
shallowRef
({});
...
...
@@ -406,13 +408,14 @@ const panel5TypeMap = {
const
handleOrgClick
=
item
=>
{
console
.
log
(
item
);
if
(
item
.
entityType
!=
2
)
return
;
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
gotoCompanyPages
(
item
.
id
);
};
// 处理"查看更多"点击事件
...
...
src/views/exportControl/index.vue
浏览文件 @
8b627b15
...
...
@@ -65,7 +65,7 @@
:subtitle=
"item.nameAbbr"
:description=
"item.description"
:quantity=
"item.postCount"
unit=
"
次
"
unit=
"
个
"
:color=
"infoListColor[index]"
@
click=
"handleToEntityListNoId(item)"
/>
...
...
@@ -715,6 +715,10 @@ import { ElMessage, ElMessageBox } from "element-plus";
import
{
DArrowRight
,
Warning
,
Search
}
from
"@element-plus/icons-vue"
;
import
EChart
from
"@/components/Chart/index.vue"
;
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"
;
...
...
@@ -868,14 +872,15 @@ const handleCompClick = item => {
// console.log("item", item);
// if (item.entityType != 2) return;
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
,
sanTypeId
:
item
.
sanTypeId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
gotoCompanyPages
(
item
.
entityId
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.id,
// sanTypeId: item.sanTypeId
// }
// });
// window.open(route.href, "_blank");
};
const
tagsType
=
[
"primary"
,
"success"
,
"warning"
,
"danger"
];
...
...
@@ -1075,14 +1080,15 @@ const processYearDomainCountData = yearDomainCountData => {
const
handleEntityClick
=
item
=>
{
console
.
log
(
"item"
,
item
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
||
item
.
entityNameZh
);
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
// startTime: item.startTime,
id
:
item
.
entityId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
gotoCompanyPages
(
item
.
entityId
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// // startTime: item.startTime,
// id: item.entityId
// }
// });
// window.open(route.href, "_blank");
};
const
carouselRef
=
ref
(
null
);
...
...
@@ -1717,7 +1723,8 @@ const handleSanc = item => {
const
route
=
router
.
resolve
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
id
id
:
item
.
id
,
sanTypeId
:
activeResourceTabItem
.
value
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
...
...
@@ -1737,14 +1744,15 @@ const handleToMoreNews = () => {
const
handleNewsInfoClick
=
item
=>
{
console
.
log
(
"点击了社交媒体消息的更多信息:"
,
item
);
const
route
=
router
.
resolve
({
path
:
"/newsAnalysis"
,
query
:
{
newsId
:
item
.
newsId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
// 应该跳转至哪儿???
// const route = router.resolve({
// path: "/newsAnalysis",
// query: {
// newsId: item.newsId
// }
// });
// window.open(route.href, "_blank");
gotoNewsDetail
(
item
.
newsId
);
};
// 切换当前出口管制政策
...
...
@@ -2324,7 +2332,8 @@ const handleMediaClick = item => {
overflow-y
:
auto
;
.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%
);
background-size
:
100%
100%
;
position
:
absolute
;
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/listPage/RuleSubsidiaryDialog.vue
浏览文件 @
8b627b15
...
...
@@ -82,7 +82,8 @@ import { ref, computed, watch } from "vue";
import
router
from
"@/router"
;
import
{
Close
}
from
"@element-plus/icons-vue"
;
import
defaultIcon
from
"@/assets/icons/default-icon1.png"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
props
=
defineProps
({
modelValue
:
{
type
:
Boolean
,
...
...
@@ -119,9 +120,9 @@ const tableData = computed(() => {
...
item
,
name
:
item
.
orgName
,
domains
:
item
.
techDomains
||
[],
equityRatio
:
item
.
equityRatio
?
(
item
.
equityRatio
*
100
).
toFixed
(
2
)
+
'%'
:
'--'
,
location
:
'--'
,
revenue
:
item
.
revenue
||
'--'
equityRatio
:
item
.
equityRatio
?
(
item
.
equityRatio
*
100
).
toFixed
(
2
)
+
"%"
:
"--"
,
location
:
"--"
,
revenue
:
item
.
revenue
||
"--"
}));
});
...
...
@@ -154,16 +155,16 @@ const getTagStyle = tag => {
// 跳转公司详情页
const
handleCompClick
=
item
=>
{
console
.
log
(
"item"
,
item
);
window
.
sessionStorage
.
setItem
(
'curTabName'
,
item
.
entityNameZh
||
item
.
entityName
)
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
entityNameZh
||
item
.
entityName
);
gotoCompanyPages
(
item
.
id
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
};
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/listPage/index.vue
浏览文件 @
8b627b15
<
template
>
<div>
<div
class=
"list-page"
>
<div
class=
"search-box"
>
<el-input
v-model=
"searchKeyword"
class=
"search-input"
placeholder=
"搜索实体"
:suffix-icon=
"Search"
/>
...
...
@@ -92,8 +93,8 @@
<CommonPrompt
:content=
"row.entityNameZh || row.entityName"
style=
"flex: 1; overflow: hidden"
/>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"涉及领域"
min-width=
"150"
>
</el-table-column>
<el-table-column
label=
"涉及领域"
min-width=
"150"
>
<
template
#
default=
"{ row }"
>
<div
class=
"domain-cell"
>
<el-tag
v-for=
"tag in row.techDomains"
:key=
"tag"
class=
"domain-tag"
effect=
"plain"
...
...
@@ -102,9 +103,9 @@
</el-tag>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"startTime"
label=
"制裁时间"
width=
"140"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
label=
"50%规则子企业"
min-width=
"280"
show-overflow-tooltip
align=
"right"
>
</el-table-column>
<el-table-column
prop=
"startTime"
label=
"制裁时间"
width=
"140"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
label=
"50%规则子企业"
min-width=
"280"
show-overflow-tooltip
align=
"right"
>
<
template
#
default=
"{ row }"
>
<div
class=
"rule-cell"
v-if=
"row.ruleOrgCount > 0"
>
<div
class=
"rule-text"
:title=
"row.ruleOrgList?.[0]?.orgName || ''"
>
...
...
@@ -114,14 +115,14 @@
row
.
ruleOrgCount
}}
家 >
</el-link>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"tight-footer"
>
</el-table-column>
</el-table>
</div>
<div
class=
"tight-footer"
>
<div
class=
"total-text"
>
共 {{ total }} 项
</div>
<el-pagination
:current-page=
"currentPage"
v-model:page-size=
"pageSize"
:total=
"total"
layout=
"prev, pager, next"
prev-text=
"<"
next-text=
">"
@
current-change=
"handleCurrentChange"
/>
</div>
-->
</div>
-->
<AnalysisBox
title=
"实体清单"
:showAllBtn=
"false"
>
<
template
#
header-btn
>
<div
class=
"stats"
>
...
...
@@ -172,14 +173,24 @@
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"startTime"
label=
"制裁时间"
width=
"140"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"startTime"
label=
"制裁时间"
width=
"140"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
label=
"50%规则子企业"
min-width=
"280"
show-overflow-tooltip
align=
"right"
>
<
template
#
default=
"{ row }"
>
<div
class=
"rule-cell"
v-if=
"row.ruleOrgCount > 0"
>
<div
class=
"rule-text"
:title=
"row.ruleOrgList?.[0]?.orgName || ''"
>
{{
row
.
ruleOrgList
?.[
0
]?.
orgName
||
""
}}
...等
</div>
<el-link
class=
"rule-link"
type=
"primary"
:underline=
"false"
@
click=
"handleRuleClick(row)"
<el-link
class=
"rule-link"
type=
"primary"
:underline=
"false"
@
click=
"handleRuleClick(row)"
>
{{
row
.
ruleOrgCount
}}
家 >
</el-link
>
</div>
...
...
@@ -209,6 +220,7 @@
:total-count=
"currentRuleCount"
:data-list=
"currentRuleList"
/>
</div>
</template>
<
script
setup
>
...
...
@@ -219,20 +231,22 @@ import defaultIcon from "../../../../../assets/icons/default-avatar.png";
import
RuleSubsidiaryDialog
from
"./RuleSubsidiaryDialog.vue"
;
import
{
getExportControlList
,
get50PercentEntityCount
}
from
"@/api/exportControlV2.0.js"
;
import
CommonPrompt
from
"@/views/exportControl/commonPrompt/index.vue"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
router
=
useRouter
();
// 跳转公司详情页
const
handleCompClick
=
item
=>
{
console
.
log
(
"item"
,
item
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
entityNameZh
||
item
.
entityName
);
const
route
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
entityId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve({
// name: "companyPages",
// params: {
// id: item.entityId
// }
// });
// window.open(route.href, "_blank");
gotoCompanyPages
(
item
.
entityId
);
};
const
searchKeyword
=
ref
(
""
);
...
...
@@ -516,6 +530,8 @@ watch(customDateRange, () => {
:deep
(
.el-input__wrapper
)
{
padding
:
0
11px
;
border
:
1px
solid
rgba
(
170
,
173
,
177
,
1
);
background-color
:
#fff
;
}
:deep
(
.el-input__inner
)
{
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/index.vue
浏览文件 @
8b627b15
...
...
@@ -6,7 +6,7 @@
:key=
"index"
class=
"tab-item"
:class=
"
{ active: index === activeIndex }"
@click="
activeIndex = index
"
@click="
handleClickTab(index)
"
>
{{
item
}}
<span
v-if=
"index === activeIndex"
class=
"arrow"
></span>
...
...
@@ -14,10 +14,10 @@
</div>
<div
class=
"content-box"
>
<introductionPage
v-show=
"activeIndex ==
=
1"
v-show=
"activeIndex == 1"
@
update-entity-info=
"data => $emit('update-entity-info', data)"
></introductionPage>
<listPage
v-show=
"activeIndex ==
=
0"
></listPage>
<listPage
v-show=
"activeIndex == 0"
></listPage>
</div>
</div>
</
template
>
...
...
@@ -31,6 +31,11 @@ const emit = defineEmits(["update-entity-info"]);
const
activeTab
=
ref
([
"实体清单列表"
,
"实体清单简介"
]);
const
activeIndex
=
ref
(
0
);
const
handleClickTab
=
index
=>
{
console
.
log
(
index
);
activeIndex
.
value
=
index
;
};
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/views/exportControl/v2.0SingleSanction/components/sanctionsOverview/index.vue
浏览文件 @
8b627b15
...
...
@@ -38,9 +38,7 @@
<div
class=
"info-row"
>
<div
class=
"label"
>
制裁领域:
</div>
<div
class=
"value tags"
>
<span
class=
"tag"
v-for=
"(domain, index) in formattedData.domains"
:key=
"index"
>
{{
domain
}}
</span>
<AreaTag
v-for=
"(domain, index) in formattedData.domains"
:key=
"index"
:tagName=
"domain"
/>
</div>
</div>
</div>
...
...
@@ -116,7 +114,7 @@
<el-input
v-model=
"searchKeyword"
placeholder=
"搜索实体"
style=
"width: 150px"
style=
"width: 150px
; border: 1px solid rgba(170, 173, 177, 0.4); border-radius: 5px
"
:suffix-icon=
"Search"
/>
</div>
...
...
@@ -219,6 +217,7 @@
import
{
ref
,
defineProps
,
computed
,
onMounted
,
watch
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
}
from
"element-plus"
;
import
AreaTag
from
"@/components/base/AreaTag/index.vue"
;
import
{
DArrowRight
,
Search
}
from
"@element-plus/icons-vue"
;
import
{
debounce
}
from
"lodash"
;
import
title
from
"../../assets/title.png"
;
...
...
@@ -232,6 +231,9 @@ import {
import
RuleSubsidiaryDialog
from
"../../../v2.0EntityList/components/sanctionsOverview/components/listPage/RuleSubsidiaryDialog.vue"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useGotoCompanyPages
}
from
"@/router/modules/company"
;
const
gotoCompanyPages
=
useGotoCompanyPages
();
const
route
=
useRoute
();
// 跳转公司详情页
const
handleCompClick
=
item
=>
{
...
...
@@ -240,8 +242,9 @@ const handleCompClick = item => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
curRoute
=
router
.
resolve
({
name
:
"companyPages"
,
params
:
{
id
:
item
.
entityId
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
gotoCompanyPages
(
item
.
entityId
);
// const curRoute = router.resolve({ name: "companyPages", params: { id: item.entityId } });
// window.open(curRoute.href, "_blank");
};
// 跳转发布机构详情页
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论