提交 45af5214 authored 作者: 张伊明's avatar 张伊明

style 修改aipane和waringpane样式

fix 根据修改意见修改法案首页 fix 修改影响分析部分界面
上级 0892a0ac
...@@ -10,8 +10,7 @@ ...@@ -10,8 +10,7 @@
</div> </div>
<div <div
class="search-type-tab" class="search-type-tab"
:class="{ active: billSearchType === 'state' }" :class="{ active: billSearchType === 'state', 'is-disabled': true }"
@click="handleChangeBillSearchType('state')"
> >
州议会 州议会
</div> </div>
...@@ -206,6 +205,11 @@ const handleToPosi = id => { ...@@ -206,6 +205,11 @@ const handleToPosi = id => {
color: rgb(5, 95, 194); color: rgb(5, 95, 194);
border-color: rgb(255, 255, 255); border-color: rgb(255, 255, 255);
} }
.search-type-tab.is-disabled {
cursor: not-allowed;
opacity: 0.6;
}
} }
.search-main-with-tabs { .search-main-with-tabs {
......
...@@ -24,7 +24,8 @@ const props = defineProps({ ...@@ -24,7 +24,8 @@ const props = defineProps({
<style lang="scss"> <style lang="scss">
.ai-pane-wrapper { .ai-pane-wrapper {
width: 100%; width: 100%;
height: 156px; min-height: 156px;
height: auto;
background: var(--color-primary-2); background: var(--color-primary-2);
box-sizing: border-box; box-sizing: border-box;
padding: 12px 16px; padding: 12px 16px;
...@@ -57,18 +58,15 @@ const props = defineProps({ ...@@ -57,18 +58,15 @@ const props = defineProps({
.content { .content {
margin-top: 8px; margin-top: 8px;
width: 100%; width: 100%;
height: 90px; min-height: 90px;
height: auto;
box-sizing: border-box; box-sizing: border-box;
padding: 0 12px; padding: 0 12px;
color: var(--color-primary-100); color: var(--color-primary-100);
display: -webkit-box; display: block;
-webkit-line-clamp: 3; overflow: visible;
/* 控制显示的行数 */
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-word; word-break: break-word;
/* 防止长单词溢出 */ white-space: pre-wrap;
} }
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="warnning-pane-wrapper" :style="{ width: width ? width : '1600px', height: height ? height : '116px' }" <div class="warnning-pane-wrapper" :style="{ width: width ? width : '1600px', height: height ? height : 'auto', minHeight: height ? undefined : '116px' }"
:class="{ :class="{
level1: warnningLevel === '特别重大风险', level1: warnningLevel === '特别重大风险',
level2: warnningLevel === '重大风险', level2: warnningLevel === '重大风险',
...@@ -146,15 +146,12 @@ const handleClickPane = () => { ...@@ -146,15 +146,12 @@ const handleClickPane = () => {
.warnning-pane-content{ .warnning-pane-content{
width: calc(100% - 40px); width: calc(100% - 40px);
margin: 0 auto; margin: 0 auto;
height: 60px; margin-bottom: 16px;
display: -webkit-box; min-height: 60px;
/* 2. 设置内部布局方向为垂直 */ height: auto;
-webkit-box-orient: vertical; display: block;
/* 3. 限制显示的行数为 2 行 */ overflow: visible;
-webkit-line-clamp: 2; white-space: pre-wrap;
/* 4. 隐藏超出部分 */ word-break: break-word;
overflow: hidden;
/* 5. 设置文本溢出显示省略号 */
text-overflow: ellipsis;
} }
</style> </style>
\ No newline at end of file
...@@ -260,6 +260,7 @@ ...@@ -260,6 +260,7 @@
import { computed, onMounted, ref } from "vue"; import { computed, onMounted, ref } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { getHylyList, getPostOrgList, getPostMemberList, getBills, getBillsPerson, getBillsPersonRel, getBillsIsCnCommittee } from "@/api/bill/billHome"; import { getHylyList, getPostOrgList, getPostMemberList, getBills, getBillsPerson, getBillsPersonRel, getBillsIsCnCommittee } from "@/api/bill/billHome";
import { getPersonSummaryInfo } from "@/api/common/index";
import CommonPrompt from "../commonPrompt/index.vue"; import CommonPrompt from "../commonPrompt/index.vue";
import desc from "./assets/icons/icon-desc.png"; import desc from "./assets/icons/icon-desc.png";
import defaultAvatar from "@/assets/icons/default-icon1.png"; import defaultAvatar from "@/assets/icons/default-icon1.png";
...@@ -268,6 +269,7 @@ import zyyIcon from "@/assets/icons/zyy.png"; ...@@ -268,6 +269,7 @@ import zyyIcon from "@/assets/icons/zyy.png";
import cyyIcon from "@/assets/icons/cyy.png"; import cyyIcon from "@/assets/icons/cyy.png";
import ghdIcon from "@/assets/icons/ghd.png"; import ghdIcon from "@/assets/icons/ghd.png";
import mzdIcon from "@/assets/icons/mzd.png"; import mzdIcon from "@/assets/icons/mzd.png";
import { ElMessage } from "element-plus";
const router = useRouter(); const router = useRouter();
...@@ -405,16 +407,48 @@ const handleBillImageError = e => { ...@@ -405,16 +407,48 @@ const handleBillImageError = e => {
img.src = defaultBill; img.src = defaultBill;
}; };
const handleClickAvatar = member => { const handleClickAvatar = async member => {
if (!member?.id) return; if (!member?.id) return;
window.sessionStorage.setItem("curTabName", member.name || ""); const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList") || "[]");
const routeData = router.resolve({ let type = 0;
path: "/characterPage", let personTypeName = "";
query: { const params = {
personId: member.id personId: member.id
};
try {
const res = await getPersonSummaryInfo(params);
if (res.code === 200 && res.data) {
const arr = personTypeList.filter(item => item.typeId === res.data.personType);
if (arr && arr.length > 0) {
personTypeName = arr[0].typeName;
if (personTypeName === "科技企业领袖") {
type = 1;
} else if (personTypeName === "国会议员") {
type = 2;
} else if (personTypeName === "智库研究人员") {
type = 3;
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
return;
}
window.sessionStorage.setItem("curTabName", member.name || "");
const routeData = router.resolve({
path: "/characterPage",
query: {
type,
personId: member.id
}
});
window.open(routeData.href, "_blank");
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
}
} else {
ElMessage.warning("找不到当前人员的类型值!");
} }
}); } catch (error) {}
window.open(routeData.href, "_blank");
}; };
const getReversedProgress = progress => (Array.isArray(progress) ? [...progress].reverse() : []); const getReversedProgress = progress => (Array.isArray(progress) ? [...progress].reverse() : []);
......
<template> <template>
<div class="introduction-wrap"> <div class="introduction-wrap">
<WarningPane <WarningPane v-if="riskSignal" class="risk-signal-pane-top" :warnningLevel="riskSignal.riskLevel"
v-if="riskSignal" :warnningContent="riskSignal.riskContent" />
class="risk-signal-pane-top"
:warnningLevel="riskSignal.riskLevel"
:warnningContent="riskSignal.riskContent"
/>
<div class="introduction-wrap-content"> <div class="introduction-wrap-content">
<div class="introduction-wrap-left"> <div class="introduction-wrap-left">
<div class="introduction-wrap-left-box1"> <div class="introduction-wrap-left-box1">
<AnalysisBox title="基本信息" :showAllBtn="false"> <AnalysisBox title="基本信息" :showAllBtn="false">
<div class="box1-main"> <div class="box1-main">
<div class="box1-left"> <div class="box1-left">
<img :src="basicInfo.imageUrl || defaultBill" alt="" /> <img :src="basicInfo.imageUrl || defaultBill" alt="" />
</div> </div>
<div class="box1-right"> <div class="box1-right">
<div class="box1-right-item"> <div class="box1-right-item">
<div class="item-left">提案人:</div> <div class="item-left">提案人:</div>
<div class="item-right">{{ basicInfo.tarName }}</div> <div class="item-right">{{ basicInfo.tarName }}</div>
</div> </div>
<div class="box1-right-item"> <div class="box1-right-item">
<div class="item-left">提出时间:</div> <div class="item-left">提出时间:</div>
<div class="item-right">{{ basicInfo.introductionDate }}</div> <div class="item-right">{{ basicInfo.introductionDate }}</div>
</div>
<div class="box1-right-item">
<div class="item-left">相关领域:</div>
<div class="item-right1">
<AreaTag v-for="item in hylyList" :key="item" :tagName="item" />
</div> </div>
</div> <div class="box1-right-item">
<div class="box1-right-item"> <div class="item-left">相关领域:</div>
<div class="item-left">委员会报告:</div> <div class="item-right1">
<div class="item-right2" v-if="reportList.length"> <AreaTag v-for="item in hylyList" :key="item" :tagName="item" />
<div class="right2-item" v-for="(item, index) in reportList" :key="getReportKey(item, index)">
{{ item }}
</div> </div>
</div> </div>
</div> <div class="box1-right-item">
<div class="box1-right-item"> <div class="item-left">委员会报告:</div>
<div class="item-left">表决记录:</div> <div class="item-right2" v-if="reportList.length">
<div class="item-right3">{{ `全程共进行${basicInfo.votetotal}次唱名表决` }}</div> <div class="right2-item" v-for="(item, index) in reportList"
</div> :key="getReportKey(item, index)">
<div class="box1-right-item">
<div class="item-left">最近状态:</div>
<div class="item-right3">{{ basicInfo.status }}</div>
</div>
<div class="box1-right-item">
<div class="item-left">立案流程:</div>
<div class="item-right4">
<div
v-for="(item, index) in reversedStageList"
:key="getStageKey(item, index)"
class="step"
:style="{ zIndex: getStageZIndex(index) }"
>
<div class="step-box"
:class="{ 'step-box-active': index === stageActiveIndex }">
{{ item }} {{ item }}
</div> </div>
</div> </div>
</div> </div>
<div class="box1-right-item">
<div class="item-left">表决记录:</div>
<div class="item-right3">{{ `全程共进行${basicInfo.votetotal}次唱名表决` }}</div>
</div>
<div class="box1-right-item">
<div class="item-left">最近状态:</div>
<div class="item-right3">{{ basicInfo.status }}</div>
</div>
<div class="box1-right-item">
<div class="item-left">立案流程:</div>
<div class="item-right4">
<div v-for="(item, index) in reversedStageList" :key="getStageKey(item, index)"
class="step" :style="{ zIndex: getStageZIndex(index) }">
<div class="step-box"
:class="{ 'step-box-active': index === stageActiveIndex }">
{{ item }}
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </AnalysisBox>
</AnalysisBox> </div>
</div> <div class="introduction-wrap-left-box2">
<div class="introduction-wrap-left-box2"> <AnalysisBox title="法案进展" :showAllBtn="false">
<AnalysisBox title="法案进展" :showAllBtn="false"> <template #header-btn>
<template #header-btn> </template>
</template> <div class="box2-main">
<div class="box2-main"> <div class="box2-main-center">
<div class="box2-main-center"> <STimeline :dataList="timelineData" :mode="progressMode" :maxCount="5" />
<STimeline :dataList="timelineData" :mode="progressMode" :maxCount="5" /> </div>
</div> </div>
</div> </AnalysisBox>
</AnalysisBox> </div>
</div>
</div> </div>
<div class="introduction-wrap-right"> <div class="introduction-wrap-right">
<AnalysisBox title="提出人" :showAllBtn="false"> <AnalysisBox title="提出人" :showAllBtn="false">
...@@ -86,14 +79,16 @@ ...@@ -86,14 +79,16 @@
<div class="name-box"> <div class="name-box">
<div class="person-box"> <div class="person-box">
<div class="person-item" :class="{ nameItemActive: box3BtnActive === item.name }" <div class="person-item" :class="{ nameItemActive: box3BtnActive === item.name }"
@click="handleClcikBox3Btn(item.name, index)" v-for="(item, index) in personList" :key="index"> @click="handleClcikBox3Btn(item.name, index)"
v-for="(item, index) in personList" :key="index">
{{ item.name }} {{ item.name }}
</div> </div>
</div> </div>
</div> </div>
<div class="info-box"> <div class="info-box">
<div class="info-left"> <div class="info-left">
<img class="person-avatar" :src="curPerson.imageUrl || defaultAvatar" alt="" @click="handleClickAvatar(curPerson)" /> <img class="person-avatar" :src="curPerson.imageUrl || defaultAvatar" alt=""
@click="handleClickAvatar(curPerson)" />
<div class="usr-icon1"> <div class="usr-icon1">
<img src="./assets/images/usr-icon1.png" alt="" /> <img src="./assets/images/usr-icon1.png" alt="" />
</div> </div>
...@@ -102,7 +97,8 @@ ...@@ -102,7 +97,8 @@
</div> </div>
</div> </div>
<div class="info-right"> <div class="info-right">
<div class="info-right-title" @click="handleClickAvatar(curPerson)">{{ curPerson.name }}</div> <div class="info-right-title" @click="handleClickAvatar(curPerson)">{{
curPerson.name }}</div>
<div class="info-right-item"> <div class="info-right-item">
<div class="item-left">英文名:</div> <div class="item-left">英文名:</div>
<div class="item-right">{{ curPerson.ename }}</div> <div class="item-right">{{ curPerson.ename }}</div>
...@@ -123,7 +119,7 @@ ...@@ -123,7 +119,7 @@
</div> </div>
</div> </div>
<div class="right-main-box2" v-if="curPerson.tagList && curPerson.tagList.length"> <div class="right-main-box2" v-if="curPerson.tagList && curPerson.tagList.length">
<div class="tag-box status"v-for="(tag, index) in curPerson.tagList" :key="index"> <div class="tag-box status" v-for="(tag, index) in curPerson.tagList" :key="index">
{{ tag }} {{ tag }}
</div> </div>
</div> </div>
...@@ -159,23 +155,58 @@ import WordCloudMap from "./WordCloudMap.vue"; ...@@ -159,23 +155,58 @@ import WordCloudMap from "./WordCloudMap.vue";
import STimeline from "./STimeline.vue"; import STimeline from "./STimeline.vue";
import WarningPane from "@/components/base/WarningPane/index.vue"; import WarningPane from "@/components/base/WarningPane/index.vue";
import { getBillInfo, getBillPerson, getBillEvent, getBillDyqk } from "@/api/bill"; import { getBillInfo, getBillPerson, getBillEvent, getBillDyqk } from "@/api/bill";
import { getPersonSummaryInfo } from "@/api/common/index";
import defaultAvatar from "../assets/images/default-icon1.png"; import defaultAvatar from "../assets/images/default-icon1.png";
import defaultNew from "../assets/images/default-icon-news.png"; import defaultNew from "../assets/images/default-icon-news.png";
import defaultBill from "./assets/images/image1.png" import defaultBill from "./assets/images/image1.png"
import { ElMessage } from "element-plus";
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
// 跳转到人物页面 // 跳转到人物页面
const handleClickAvatar = item => { const handleClickAvatar = async item => {
window.sessionStorage.setItem('curTabName', item.name) if (!item?.id) return;
const routeData = router.resolve({ const personTypeList = JSON.parse(window.sessionStorage.getItem("personTypeList") || "[]");
path: "/characterPage", let type = 0;
query: { let personTypeName = "";
personId: item.id const params = {
personId: item.id
};
try {
const res = await getPersonSummaryInfo(params);
if (res.code === 200 && res.data) {
const arr = personTypeList.filter(val => val.typeId === res.data.personType);
if (arr && arr.length > 0) {
personTypeName = arr[0].typeName;
if (personTypeName === "科技企业领袖") {
type = 1;
} else if (personTypeName === "国会议员") {
type = 2;
} else if (personTypeName === "智库研究人员") {
type = 3;
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
return;
}
window.sessionStorage.setItem("curTabName", item.name || "");
const routeData = router.resolve({
path: "/characterPage",
query: {
type,
personId: item.id
}
});
window.open(routeData.href, "_blank");
} else {
personTypeName = "";
ElMessage.warning("找不到当前人员的类型值!");
}
} else {
ElMessage.warning("找不到当前人员的类型值!");
} }
}); } catch (error) {}
window.open(routeData.href, "_blank");
}; };
// 获取URL地址里面的billId // 获取URL地址里面的billId
const billId = ref(route.query.billId); const billId = ref(route.query.billId);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论