提交 4352ddab authored 作者: 闫鹏's avatar 闫鹏

合并分支 'yp-dev' 到 'master'

Yp dev 查看合并请求 !216
差异被折叠。
...@@ -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);
...@@ -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>
......
<template> <template>
<div>
<div class="list-page"> <div class="list-page">
<div class="search-box"> <div class="search-box">
<el-input v-model="searchKeyword" class="search-input" placeholder="搜索实体" :suffix-icon="Search" /> <el-input v-model="searchKeyword" class="search-input" placeholder="搜索实体" :suffix-icon="Search" />
...@@ -92,8 +93,8 @@ ...@@ -92,8 +93,8 @@
<CommonPrompt :content="row.entityNameZh || row.entityName" style="flex: 1; overflow: hidden" /> <CommonPrompt :content="row.entityNameZh || row.entityName" style="flex: 1; overflow: hidden" />
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<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 v-for="tag in row.techDomains" :key="tag" class="domain-tag" effect="plain" <el-tag v-for="tag in row.techDomains" :key="tag" class="domain-tag" effect="plain"
...@@ -102,9 +103,9 @@ ...@@ -102,9 +103,9 @@
</el-tag> </el-tag>
</div> </div>
</template> </template>
</el-table-column> </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"> <el-table-column label="50%规则子企业" min-width="280" show-overflow-tooltip align="right">
<template #default="{ row }"> <template #default="{ row }">
<div class="rule-cell" v-if="row.ruleOrgCount > 0"> <div class="rule-cell" v-if="row.ruleOrgCount > 0">
<div class="rule-text" :title="row.ruleOrgList?.[0]?.orgName || ''"> <div class="rule-text" :title="row.ruleOrgList?.[0]?.orgName || ''">
...@@ -114,14 +115,14 @@ ...@@ -114,14 +115,14 @@
row.ruleOrgCount }}家 ></el-link> row.ruleOrgCount }}家 ></el-link>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div class="tight-footer"> <div class="tight-footer">
<div class="total-text">共 {{ total }} 项</div> <div class="total-text">共 {{ total }} 项</div>
<el-pagination :current-page="currentPage" v-model:page-size="pageSize" :total="total" layout="prev, pager, next" <el-pagination :current-page="currentPage" v-model:page-size="pageSize" :total="total" layout="prev, pager, next"
prev-text="<" next-text=">" @current-change="handleCurrentChange" /> prev-text="<" next-text=">" @current-change="handleCurrentChange" />
</div> --> </div> -->
<AnalysisBox title="实体清单" :showAllBtn="false"> <AnalysisBox title="实体清单" :showAllBtn="false">
<template #header-btn> <template #header-btn>
<div class="stats"> <div class="stats">
...@@ -172,14 +173,24 @@ ...@@ -172,14 +173,24 @@
</div> </div>
</template> </template>
</el-table-column> </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"> <el-table-column label="50%规则子企业" min-width="280" show-overflow-tooltip align="right">
<template #default="{ row }"> <template #default="{ row }">
<div class="rule-cell" v-if="row.ruleOrgCount > 0"> <div class="rule-cell" v-if="row.ruleOrgCount > 0">
<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)" <el-link
class="rule-link"
type="primary"
:underline="false"
@click="handleRuleClick(row)"
>{{ row.ruleOrgCount }}家 ></el-link >{{ row.ruleOrgCount }}家 ></el-link
> >
</div> </div>
...@@ -209,6 +220,7 @@ ...@@ -209,6 +220,7 @@
:total-count="currentRuleCount" :total-count="currentRuleCount"
:data-list="currentRuleList" :data-list="currentRuleList"
/> />
</div>
</template> </template>
<script setup> <script setup>
...@@ -219,20 +231,22 @@ import defaultIcon from "../../../../../assets/icons/default-avatar.png"; ...@@ -219,20 +231,22 @@ import defaultIcon from "../../../../../assets/icons/default-avatar.png";
import RuleSubsidiaryDialog from "./RuleSubsidiaryDialog.vue"; import RuleSubsidiaryDialog from "./RuleSubsidiaryDialog.vue";
import { getExportControlList, get50PercentEntityCount } from "@/api/exportControlV2.0.js"; import { getExportControlList, get50PercentEntityCount } from "@/api/exportControlV2.0.js";
import CommonPrompt from "@/views/exportControl/commonPrompt/index.vue"; import CommonPrompt from "@/views/exportControl/commonPrompt/index.vue";
import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const router = useRouter(); const router = useRouter();
// 跳转公司详情页 // 跳转公司详情页
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({ // const route = router.resolve({
name: "companyPages", // name: "companyPages",
params: { // params: {
id: item.entityId // id: item.entityId
} // }
}); // });
window.open(route.href, "_blank"); // window.open(route.href, "_blank");
gotoCompanyPages(item.entityId);
}; };
const searchKeyword = ref(""); const searchKeyword = ref("");
...@@ -516,6 +530,8 @@ watch(customDateRange, () => { ...@@ -516,6 +530,8 @@ watch(customDateRange, () => {
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
padding: 0 11px; padding: 0 11px;
border: 1px solid rgba(170, 173, 177, 1);
background-color: #fff;
} }
:deep(.el-input__inner) { :deep(.el-input__inner) {
......
...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论