提交 6db3f5e1 authored 作者: 闫鹏's avatar 闫鹏

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

Yp dev 查看合并请求 !46
...@@ -88,7 +88,7 @@ export function getIndustryCountByYear(sanTypeId) { ...@@ -88,7 +88,7 @@ export function getIndustryCountByYear(sanTypeId) {
* domains: string[] * domains: string[]
* }>} * }>}
*/ */
export function getCountDomainByYear(isRule, startYear = "2020", endYear = new Date().getFullYear()) { export function getCountDomainByYear(isRule, startYear = "2020", endYear = String(new Date().getFullYear())) {
return request200( return request200(
request({ request({
method: "POST", method: "POST",
...@@ -162,6 +162,30 @@ export function getOrganizationInfo(sanTypeId = 1) { ...@@ -162,6 +162,30 @@ export function getOrganizationInfo(sanTypeId = 1) {
); );
} }
/**
* 风险信号
*/
export function getRiskSignal(moduleId = "0103") {
return request200(
request({
method: "GET",
url: `/api/commonFeature/riskSignal/${moduleId}`
})
);
}
/**
* 社交媒体
*/
export function getSocialMediaInfo(moduleId = "0103") {
return request200(
request({
method: "GET",
url: `/api/commonFeature/remarks/${moduleId}`
})
);
}
/** /**
* 查询重点人物 * 查询重点人物
* @returns {Promise<{ * @returns {Promise<{
...@@ -527,9 +551,10 @@ export function getCountSanTypeByTime(startTime) { ...@@ -527,9 +551,10 @@ export function getCountSanTypeByTime(startTime) {
return request200( return request200(
request({ request({
method: "GET", method: "GET",
url: "/api/entitiesDataCount/countSanTypeByTime", // url: "/api/entitiesDataCount/countSanTypeByTime",
url: "/api/entitiesDataInfo/getTypeDistribution",
params: { params: {
startTime sanctionDate: startTime || "2025-11-11"
} }
}) })
); );
......
...@@ -62,5 +62,6 @@ function setActiveIndex(item) { ...@@ -62,5 +62,6 @@ function setActiveIndex(item) {
display: flex; display: flex;
gap: 8px; gap: 8px;
overflow-x: auto; overflow-x: auto;
flex-wrap: wrap;
} }
</style> </style>
<template> <template>
<div class="influencePanel2"> <div class="influencePanel2">
<CardCustom title="涉及行业" :style="{ width: '480px', height: '860px' }"> <CardCustom title="涉及行业" :style="{ width: '500px', height: '860px' }">
<div class="subPanel1"> <div class="subPanel1">
<div class="chartsWrap"> <div class="chartsWrap">
<Echarts :option="horizontalBarOptions" height="100%"></Echarts> <Echarts :option="horizontalBarOptions" height="100%"></Echarts>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<ButtonList :list="buttonList" :active-id="activeButtonId" @click="setActiveButtonId"></ButtonList> <ButtonList :list="buttonList" :active-id="activeButtonId" @click="setActiveButtonId"></ButtonList>
</div> </div>
<div class="listWrap"> <div class="listWrap">
<div class="item" v-for="(item, index) in listData" :key="index"> <div class="item" v-for="(item, index) in listData" :key="index" @click="handleEttClick(item)">
<div class="index" :class="{ isTopTen: index < 10 }">{{ index + 1 }}</div> <div class="index" :class="{ isTopTen: index < 10 }">{{ index + 1 }}</div>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
<div class="icon" :class="{ iconUp: item.isUp, iconDown: !item.isUp }"></div> <div class="icon" :class="{ iconUp: item.isUp, iconDown: !item.isUp }"></div>
...@@ -78,8 +78,9 @@ import ButtonList from "@/components/buttonList/buttonList.vue"; ...@@ -78,8 +78,9 @@ import ButtonList from "@/components/buttonList/buttonList.vue";
import Fishbone from "./fishbone.vue"; import Fishbone from "./fishbone.vue";
import { getHorizontalBarChart2 } from "../../utils/charts"; import { getHorizontalBarChart2 } from "../../utils/charts";
import { getDomainDistribution, getChainEntities } from "@/api/exportControl"; import { getDomainDistribution, getChainEntities } from "@/api/exportControl";
import { useRoute } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const route = useRoute(); const route = useRoute();
const router = useRouter();
const buttonList = ref([]); const buttonList = ref([]);
const activeButtonId = ref(buttonList.value[0]?.id || 1); const activeButtonId = ref(buttonList.value[0]?.id || 1);
const setActiveButtonId = id => { const setActiveButtonId = id => {
...@@ -141,6 +142,15 @@ const listData = ref([ ...@@ -141,6 +142,15 @@ const listData = ref([
]); ]);
const horizontalBarOptions = shallowRef({}); const horizontalBarOptions = shallowRef({});
const handleEttClick = item => {
const route = router.resolve({
path: "/companyPages",
query: {
id: item.id
}
});
window.open(route.href, "_blank");
};
// 获取领域分布数据并更新图表 // 获取领域分布数据并更新图表
const fetchDomainDistribution = async () => { const fetchDomainDistribution = async () => {
try { try {
...@@ -181,6 +191,7 @@ const fetchChainEntities = async () => { ...@@ -181,6 +191,7 @@ const fetchChainEntities = async () => {
console.log("data data", data); console.log("data data", data);
// 更新 listData // 更新 listData
listData.value = data.map(item => ({ listData.value = data.map(item => ({
...item,
name: item.orgNameZh, name: item.orgNameZh,
isUp: item.isUp isUp: item.isUp
})); }));
...@@ -367,6 +378,8 @@ watch(() => activeButtonId.value, fetchChainEntities); ...@@ -367,6 +378,8 @@ watch(() => activeButtonId.value, fetchChainEntities);
flex-direction: column; flex-direction: column;
.chartsWrap { .chartsWrap {
height: 200px; height: 200px;
display: flex;
// flex: 1;
border: 1px solid rgba(234, 236, 238, 1); border: 1px solid rgba(234, 236, 238, 1);
border-radius: 4px; border-radius: 4px;
background: rgba(247, 248, 249, 1); background: rgba(247, 248, 249, 1);
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<div class="subPanel4"> <div class="subPanel4">
<div class="listWrap"> <div class="listWrap">
<div class="item" v-for="(item, index) in subPanel4" :key="index"> <div class="item" v-for="(item, index) in subPanel4" :key="index">
<div class="name">{{ item.name }}</div> <div class="name" @click="handleOrgClick(item)">{{ item.name }}</div>
<div class="tags"> <div class="tags">
<div <div
class="tagItem" class="tagItem"
...@@ -94,8 +94,9 @@ import { getBarChart, getLineChart } from "../../utils/charts"; ...@@ -94,8 +94,9 @@ import { getBarChart, getLineChart } from "../../utils/charts";
import Hint from "./hint.vue"; 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 } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const route = useRoute(); const route = useRoute();
const router = useRouter();
const line1Option = shallowRef({}); const line1Option = shallowRef({});
const bar2Option = shallowRef({}); const bar2Option = shallowRef({});
...@@ -111,6 +112,7 @@ const fetchKeyEntityList = async (date = "2025-11-11", keyword = "") => { ...@@ -111,6 +112,7 @@ const fetchKeyEntityList = async (date = "2025-11-11", keyword = "") => {
const name = item.orgNameZh || item.orgName || "未知实体"; const name = item.orgNameZh || item.orgName || "未知实体";
return { return {
...item,
name, name,
tags: item.domainList || [] tags: item.domainList || []
}; };
...@@ -261,7 +263,7 @@ const typeOptions = [ ...@@ -261,7 +263,7 @@ const typeOptions = [
} }
]; ];
const domainValue = ref(domainOptions[0].value); const domainValue = ref(domainOptions[0].value);
const typeValue = ref(typeOptions[0].value); const typeValue = ref(typeOptions[1].value);
const bar1Option = shallowRef({}); const bar1Option = shallowRef({});
const bar1DataIsEmpty = ref(false); const bar1DataIsEmpty = ref(false);
watch( watch(
...@@ -338,6 +340,17 @@ watch( ...@@ -338,6 +340,17 @@ watch(
const handleDomainChange = async domain => { const handleDomainChange = async domain => {
await fetchKeyEntityList(route.query.startTime, value3.value, domain); await fetchKeyEntityList(route.query.startTime, value3.value, domain);
}; };
const handleOrgClick = item => {
console.log(item);
const route = router.resolve({
path: "/companyPages",
query: {
id: item.id
}
});
window.open(route.href, "_blank");
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -389,6 +402,7 @@ const handleDomainChange = async domain => { ...@@ -389,6 +402,7 @@ const handleDomainChange = async domain => {
overflow: hidden; overflow: hidden;
margin-right: 11px; margin-right: 11px;
text-overflow: ellipsis; text-overflow: ellipsis;
cursor: pointer;
} }
.tags { .tags {
display: flex; display: flex;
......
...@@ -45,13 +45,13 @@ ...@@ -45,13 +45,13 @@
<div class="subPanel4"> <div class="subPanel4">
<div class="listWrap"> <div class="listWrap">
<div class="item" v-for="(item, index) in subPanel4" :key="index"> <div class="item" v-for="(item, index) in subPanel4" :key="index">
<div class="name">{{ item.name }}</div> <div class="name" @click="handleOrgClick(item)">{{ item.name }}</div>
<div class="infoWrap"> <div class="infoWrap">
<div class="shizhi">{{ item.shizhi }}</div> <div class="shizhi">{{ item.shizhi }}</div>
<div class="address">{{ item.address }}</div> <div class="address">{{ item.address }}</div>
<div class="hangye">{{ item.hangye }}</div> <div class="hangye">{{ item.hangye }}</div>
<div class="type">{{ item.type }}</div> <div class="type">{{ item.type }}</div>
<div class="detail">查看详情</div> <div class="detail" @click="handleOrgClick(item)">查看详情</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -73,8 +73,9 @@ import { getBarChart, getLineChart } from "../../utils/charts"; ...@@ -73,8 +73,9 @@ import { getBarChart, getLineChart } from "../../utils/charts";
import _ from "lodash"; 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 } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const route = useRoute(); const route = useRoute();
const router = useRouter();
const options = [ const options = [
{ {
value: "1", value: "1",
...@@ -147,6 +148,7 @@ const fetchKeyListedEntityList = async (keyword = "") => { ...@@ -147,6 +148,7 @@ const fetchKeyListedEntityList = async (keyword = "") => {
const type = item.orgType || "企业"; const type = item.orgType || "企业";
return { return {
...item,
name, name,
shizhi: `市值:${marketValue}`, shizhi: `市值:${marketValue}`,
address: `地址:${address}`, address: `地址:${address}`,
...@@ -229,12 +231,12 @@ const fetchEntityMarketValue = async () => { ...@@ -229,12 +231,12 @@ const fetchEntityMarketValue = async () => {
// 按日期排序 // 按日期排序
const sortedData = data const sortedData = data
.sort((a, b) => { .sort((a, b) => {
return new Date(a.name) - new Date(b.name); return new Date(a.year) - new Date(b.year);
}) })
.filter((item, idx) => idx % 3 === 0); .filter((item, idx) => idx % 3 === 0);
// 提取 x 轴数据(日期) // 提取 x 轴数据(日期)
const xAxisData = sortedData.map(item => item.name); const xAxisData = sortedData.map(item => item.year);
// 提取 y 轴数据(市值数据) // 提取 y 轴数据(市值数据)
const seriesData = sortedData.map(item => item.count); const seriesData = sortedData.map(item => item.count);
...@@ -258,12 +260,12 @@ const fetchSanStrength = async () => { ...@@ -258,12 +260,12 @@ const fetchSanStrength = async () => {
// 按日期排序 // 按日期排序
const sortedData = data const sortedData = data
.sort((a, b) => { .sort((a, b) => {
return new Date(a.name) - new Date(b.name); return new Date(a.year) - new Date(b.year);
}) })
.filter((item, idx) => idx % 3 === 0); .filter((item, idx) => idx % 3 === 0);
// 提取 x 轴数据(日期) // 提取 x 轴数据(日期)
const xAxisData = sortedData.map(item => item.name); const xAxisData = sortedData.map(item => item.year);
// 提取 y 轴数据(市值数据) // 提取 y 轴数据(市值数据)
const seriesData = sortedData.map(item => item.count); const seriesData = sortedData.map(item => item.count);
...@@ -310,6 +312,17 @@ watch( ...@@ -310,6 +312,17 @@ watch(
await fetchKeyListedEntityList(newVal); await fetchKeyListedEntityList(newVal);
}, 300) }, 300)
); );
const handleOrgClick = item => {
console.log(item);
const route = router.resolve({
path: "/companyPages",
query: {
id: item.id
}
});
window.open(route.href, "_blank");
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -359,6 +372,7 @@ watch( ...@@ -359,6 +372,7 @@ watch(
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
line-height: 24px; line-height: 24px;
cursor: pointer;
} }
.infoWrap { .infoWrap {
display: flex; display: flex;
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</CardCustom> </CardCustom>
</div> </div>
<div class="row"> <div class="row">
<CardCustom title="历制裁涉及领域数" :style="{ width: '798px', height: '422px' }"> <CardCustom title="历制裁涉及领域数" :style="{ width: '798px', height: '422px' }">
<div class="subPanel3"> <div class="subPanel3">
<div class="chartsWrap" :style="{ paddingBottom: '10px' }"> <div class="chartsWrap" :style="{ paddingBottom: '10px' }">
<Echarts :option="bar2Option" height="100%"></Echarts> <Echarts :option="bar2Option" height="100%"></Echarts>
......
<template> <template>
<div class="panel4Wrap"> <div class="panel4Wrap">
<div class="row"> <div class="row">
<CardCustom title="新增实体领域分布情况" :style="{ width: '798px', height: '422px' }"> <CardCustom title="新增实体类别分布情况" :style="{ width: '798px', height: '422px' }">
<div class="subPanel1"> <div class="subPanel1">
<div class="chartsWrap" :style="{ paddingBottom: '10px' }"> <div class="chartsWrap" :style="{ paddingBottom: '10px' }">
<Echarts :option="pie1Option" height="100%"></Echarts> <Echarts :option="pie1Option" height="100%"></Echarts>
...@@ -66,7 +66,7 @@ onMounted(async () => { ...@@ -66,7 +66,7 @@ onMounted(async () => {
pie1Option.value = getPieOption1( pie1Option.value = getPieOption1(
_.map(countSanTypeByTimeData ?? [], item => { _.map(countSanTypeByTimeData ?? [], item => {
return { return {
name: item?.type, name: item?.name,
value: item?.count value: item?.count
}; };
}) })
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</CardCustom> </CardCustom>
<CardCustom title="重点人物" :style="{ width: '600px', height: '284px' }"> <CardCustom title="重点人物" :style="{ width: '600px', height: '284px' }">
<div class="panel2"> <div class="panel2">
<div class="item" v-for="(item, index) in personLis" :key="index"> <div class="item" v-for="(item, index) in personLis" :key="index" @click="handlePerClick(item)">
<img :src="item.img" alt="" class="img" /> <img :src="item.img" alt="" class="img" />
<div class="infoWrap"> <div class="infoWrap">
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
...@@ -76,13 +76,13 @@ ...@@ -76,13 +76,13 @@
<CardCustom title="实体清单列表" :style="{ width: '984px', height: '678px' }"> <CardCustom title="实体清单列表" :style="{ width: '984px', height: '678px' }">
<template #right> <template #right>
<el-checkbox v-model="panel5IsChecked" label="只看中国实体" size="large" :style="{ marginRight: '15px' }" /> <el-checkbox v-model="panel5IsChecked" label="只看中国实体" size="large" :style="{ marginRight: '15px' }" />
<ButtonList <!-- <ButtonList
:list="panel5ButtonList" :list="panel5ButtonList"
:gap="8" :gap="8"
:active-id="panel5ButtonAcitveID" :active-id="panel5ButtonAcitveID"
@click="panel5SetButtonAcitveID" @click="panel5SetButtonAcitveID"
:style="{ marginRight: '15px' }" :style="{ marginRight: '15px' }"
></ButtonList> ></ButtonList> -->
</template> </template>
<div class="panel5"> <div class="panel5">
<div class="hintWrap"> <div class="hintWrap">
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
> >
<el-table-column prop="name" label="实体清单" min-width="180"> <el-table-column prop="name" label="实体清单" min-width="180">
<template #default="{ row }"> <template #default="{ row }">
<div style="font-weight: 500" class="name"> <div style="font-weight: 500" class="name" @click="handleOrgClick(row)">
<img v-if="row.img" :src="row.img" alt="" class="img" /> <img v-if="row.img" :src="row.img" alt="" class="img" />
<div v-else class="imgUndefined"> <div v-else class="imgUndefined">
{{ row.name?.match(/[\u4e00-\u9fa5a-zA-Z0-9]/)?.[0] }} {{ row.name?.match(/[\u4e00-\u9fa5a-zA-Z0-9]/)?.[0] }}
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="time" label="制裁时间" width="120" align="center"> <el-table-column prop="time" label="制裁时间" width="150" align="center">
<template #default="{ row }"> <template #default="{ row }">
{{ row.time }} {{ row.time }}
</template> </template>
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="subCompany" label="50%规则子企业" min-width="140" align="left"> <el-table-column prop="subCompany" label="50%规则子企业" min-width="140" align="center">
<template #default="{ row }"> <template #default="{ row }">
<span class="subCompany"> <span class="subCompany">
{{ row.subCompany }} {{ row.subCompany }}
...@@ -206,9 +206,10 @@ import { ...@@ -206,9 +206,10 @@ import {
} from "@/api/exportControl"; } from "@/api/exportControl";
import _ from "lodash"; import _ from "lodash";
import { useRoute } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { formatAnyDateToChinese } from "../../utils"; import { formatAnyDateToChinese } from "../../utils";
const route = useRoute(); const route = useRoute();
const router = useRouter();
const organizationInfo = shallowRef({}); const organizationInfo = shallowRef({});
const personLis = shallowRef([ const personLis = shallowRef([
// { // {
...@@ -254,6 +255,17 @@ const sanReasonSelect = shallowRef([ ...@@ -254,6 +255,17 @@ const sanReasonSelect = shallowRef([
} }
]); ]);
const handlePerClick = item => {
console.log(item);
const route = router.resolve({
path: "/characterPage",
query: {
type: item.type || [1, 2, 3][Math.floor(Math.random() * 3)]
}
});
window.open(route.href, "_blank");
};
const panel5IsChecked = ref(true); const panel5IsChecked = ref(true);
const selectEntitiesList = shallowRef([]); const selectEntitiesList = shallowRef([]);
...@@ -285,7 +297,7 @@ onMounted(async () => { ...@@ -285,7 +297,7 @@ onMounted(async () => {
enName: item.enName, enName: item.enName,
position: item.position, position: item.position,
party: item.party, party: item.party,
img: item.avatarUrl img: item.imageUrl
}; };
}); });
sanReasonSelect.value = _.map(sanReasonSelectData, item => { sanReasonSelect.value = _.map(sanReasonSelectData, item => {
...@@ -509,6 +521,16 @@ const panel6 = ref([ ...@@ -509,6 +521,16 @@ const panel6 = ref([
desc: '美国将对华关税从34%提升至84%(总税率104%),中方同步对美商品加征同等税率,并暂停进口美国影片、限制留学合作。特朗普政府通过"基准关税+对等关税+额外加征"策略施压,引发全球供应链震荡。' desc: '美国将对华关税从34%提升至84%(总税率104%),中方同步对美商品加征同等税率,并暂停进口美国影片、限制留学合作。特朗普政府通过"基准关税+对等关税+额外加征"策略施压,引发全球供应链震荡。'
} }
]); ]);
const handleOrgClick = item => {
console.log(item);
const route = router.resolve({
path: "/companyPages",
query: {
id: item.id
}
});
window.open(route.href, "_blank");
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -585,6 +607,7 @@ const panel6 = ref([ ...@@ -585,6 +607,7 @@ const panel6 = ref([
background: rgba(231, 243, 255, 0.5); background: rgba(231, 243, 255, 0.5);
display: flex; display: flex;
align-items: center; align-items: center;
cursor: pointer;
.img { .img {
width: 70px; width: 70px;
height: 70px; height: 70px;
...@@ -769,6 +792,7 @@ const panel6 = ref([ ...@@ -769,6 +792,7 @@ const panel6 = ref([
.name { .name {
display: flex; display: flex;
align-items: center; align-items: center;
cursor: pointer;
.img { .img {
width: 40px; width: 40px;
height: 40px; height: 40px;
......
<template> <template>
<div class="message-bubble"> <div class="message-bubble">
<div class="avatar-container"> <div class="avatar-container" @click="handleClick">
<img :src="avatar" :alt="name" class="avatar" /> <img :src="avatar" :alt="name" class="avatar" />
</div> </div>
<div class="bubble-container"> <div class="bubble-container">
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<span class="name">{{ name }}</span> <span class="name">{{ name }}</span>
<span class="meta">{{ time }} · {{ source }}</span> <span class="meta">{{ time }} · {{ source }}</span>
</div> </div>
<div class="bubble-content"> <div class="bubble-content" @click="handleInfoClick">
{{ content }} {{ content }}
</div> </div>
<div class="triangle"></div> <div class="triangle"></div>
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
</template> </template>
<script setup> <script setup>
const emit = defineEmits(["click"]);
defineProps({ defineProps({
avatar: { avatar: {
type: String, type: String,
...@@ -42,6 +43,13 @@ defineProps({ ...@@ -42,6 +43,13 @@ defineProps({
"埃隆·马斯克在强力支持我竞选总统之前,早就知道我强烈反对‘电动汽车强制令’。这太荒谬了,这一直是我竞选活动的主要部分。电动汽车没问题,但不应该强迫每个人都拥有一辆。埃隆获得的补贴可能远远超过历史上任何一个人。如果没有补贴,埃隆可能不得不关门大吉,回到南非老家。" "埃隆·马斯克在强力支持我竞选总统之前,早就知道我强烈反对‘电动汽车强制令’。这太荒谬了,这一直是我竞选活动的主要部分。电动汽车没问题,但不应该强迫每个人都拥有一辆。埃隆获得的补贴可能远远超过历史上任何一个人。如果没有补贴,埃隆可能不得不关门大吉,回到南非老家。"
} }
}); });
const handleClick = () => {
emit("click");
};
const handleInfoClick = () => {
emit("info-click");
};
</script> </script>
<style scoped> <style scoped>
...@@ -54,6 +62,8 @@ defineProps({ ...@@ -54,6 +62,8 @@ defineProps({
.avatar-container { .avatar-container {
flex-shrink: 0; flex-shrink: 0;
flex-grow: 0;
flex: 0;
margin-right: 12px; margin-right: 12px;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论