提交 c74240b3 authored 作者: huhuiqing's avatar huhuiqing

政令原文

上级 95e38d06
...@@ -64,6 +64,13 @@ export function getDecreeSummary(params) { ...@@ -64,6 +64,13 @@ export function getDecreeSummary(params) {
/** /**
* @param {id} * @param {id}
*/ */
// export function getDecreeReport(params) {
// return request({
// method: 'GET',
// url: `/api/administrativeOrderInfo/contentUrl/${params.id}`,
// })
// }
export function getDecreeReport(params) { export function getDecreeReport(params) {
return request({ return request({
method: 'GET', method: 'GET',
......
...@@ -3315,7 +3315,7 @@ onMounted(async () => { ...@@ -3315,7 +3315,7 @@ onMounted(async () => {
gap: 16px; gap: 16px;
.left { .left {
width: 300px; width: 360px;
// height: 666px; // height: 666px;
box-shadow: 0px 0px 15px 0px rgba(60, 87, 126, 0.2); box-shadow: 0px 0px 15px 0px rgba(60, 87, 126, 0.2);
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
...@@ -3578,4 +3578,20 @@ onMounted(async () => { ...@@ -3578,4 +3578,20 @@ onMounted(async () => {
:deep(.el-input__wrapper.is-focus) { :deep(.el-input__wrapper.is-focus) {
box-shadow: none !important; box-shadow: none !important;
} }
:deep(.el-checkbox__label) {
color: rgba(95, 101, 108, 1);
font-family: Source Han Sans CN;
font-style: Regular;
font-size: 16px;
font-weight: 400;
line-height: 24px;
letter-spacing: 0px;
text-align: justify;
}
:deep(.el-checkbox__input.is-checked+.el-checkbox__label) {
color: rgba(95, 101, 108, 1);
}
</style> </style>
...@@ -33,14 +33,15 @@ ...@@ -33,14 +33,15 @@
{{ "政令原文" }} {{ "政令原文" }}
</div> </div>
<div class="report-main"> <div class="report-main">
<div class="left"> <div v-if="!reportData.length" class="noContent">{{ "暂无数据" }}</div>
<div v-if="!reportUrl" class="noContent">{{ "中文原文暂无数据" }}</div> <template v-else>
<iframe v-else :src="reportUrl" style="border: none" width="100%" height="100%"> </iframe> <div v-for="(item, index) in reportData" :key="index" class="content-row">
</div> <!-- 左侧:英文 -->
<div class="right"> <div class="content-en">{{ item.contentEn }}</div>
<div v-if="!reportUrlEn" class="noContent">{{ "英文原文暂无数据" }}</div> <!-- 右侧:中文 -->
<iframe v-else :src="reportUrlEn" style="border: none" width="100%" height="100%"> </iframe> <div class="content-cn">{{ item.content }}</div>
</div> </div>
</template>
</div> </div>
</div> </div>
</div> </div>
...@@ -50,14 +51,13 @@ ...@@ -50,14 +51,13 @@
<script setup> <script setup>
import { ref, onMounted } from "vue"; import { ref, onMounted } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { getDecreeSummary } from "@/api/decree/introduction"; import { getDecreeSummary } from "@/api/decree/introduction";
import { getDecreeReport } from "@/api/decree/introduction"; import { getDecreeReport } from "@/api/decree/introduction";
const route = useRoute(); const route = useRoute();
const reportUrl = ref(""); // 修改为数组存储分段数据
const reportUrlEn = ref(""); const reportData = ref([]);
const summaryInfo = ref({}); const summaryInfo = ref({});
...@@ -72,10 +72,10 @@ const handleGetSummary = async () => { ...@@ -72,10 +72,10 @@ const handleGetSummary = async () => {
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
summaryInfo.value = res.data; summaryInfo.value = res.data;
} }
} catch (error) {} } catch (error) { }
}; };
// 获取报告原文 // 获取报告原文 - 修改为获取分段数组
const handleGetReport = async () => { const handleGetReport = async () => {
const params = { const params = {
id: route.query.id id: route.query.id
...@@ -85,10 +85,10 @@ const handleGetReport = async () => { ...@@ -85,10 +85,10 @@ const handleGetReport = async () => {
const res = await getDecreeReport(params); const res = await getDecreeReport(params);
console.log("报告原文", res); console.log("报告原文", res);
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
reportUrl.value = res.data.content; // 假设后端返回的是数组格式,如果返回的是对象包含数组,请改为 res.data.list
reportUrlEn.value = res.data.contentEn; reportData.value = res.data || [];
} }
} catch (error) {} } catch (error) { }
}; };
onMounted(() => { onMounted(() => {
...@@ -106,6 +106,7 @@ onMounted(() => { ...@@ -106,6 +106,7 @@ onMounted(() => {
.layout-main { .layout-main {
width: 100%; width: 100%;
.layout-main-header { .layout-main-header {
height: 120px; height: 120px;
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
...@@ -119,26 +120,32 @@ onMounted(() => { ...@@ -119,26 +120,32 @@ onMounted(() => {
border-top: 1px solid rgba(234, 236, 238, 1); border-top: 1px solid rgba(234, 236, 238, 1);
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
.layout-main-header-left-box { .layout-main-header-left-box {
width: 1100px; width: 1100px;
margin-left: 160px; margin-left: 160px;
margin-top: 13px; margin-top: 13px;
.left-box-top { .left-box-top {
height: 64px; height: 64px;
display: flex; display: flex;
.icon { .icon {
width: 122px; width: 122px;
height: 64px; height: 64px;
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.info { .info {
width: 700px; width: 700px;
margin-left: 9px; margin-left: 9px;
.info-box1 { .info-box1 {
width: 700px; width: 700px;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
...@@ -153,6 +160,7 @@ onMounted(() => { ...@@ -153,6 +160,7 @@ onMounted(() => {
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.info-box2 { .info-box2 {
margin-top: 5px; margin-top: 5px;
height: 22px; height: 22px;
...@@ -166,21 +174,25 @@ onMounted(() => { ...@@ -166,21 +174,25 @@ onMounted(() => {
text-align: left; text-align: left;
display: flex; display: flex;
margin-left: -10px; margin-left: -10px;
.info-box2-item { .info-box2-item {
padding: 0 10px; padding: 0 10px;
} }
.item1 { .item1 {
width: 100px; width: 100px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.item2 { .item2 {
width: 180px; width: 180px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.item3 { .item3 {
width: 420px; width: 420px;
overflow: hidden; overflow: hidden;
...@@ -190,25 +202,30 @@ onMounted(() => { ...@@ -190,25 +202,30 @@ onMounted(() => {
} }
} }
} }
.left-box-bottom { .left-box-bottom {
display: flex; display: flex;
height: 40px; height: 40px;
margin-top: 21px; margin-top: 21px;
.left-box-bottom-item { .left-box-bottom-item {
display: flex; display: flex;
margin-right: 32px; margin-right: 32px;
margin-top: 3px; margin-top: 3px;
height: 35px; height: 35px;
cursor: pointer; cursor: pointer;
.icon { .icon {
margin-top: 4px; margin-top: 4px;
width: 16px; width: 16px;
height: 16px; height: 16px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.name { .name {
height: 24px; height: 24px;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
...@@ -220,20 +237,24 @@ onMounted(() => { ...@@ -220,20 +237,24 @@ onMounted(() => {
text-align: left; text-align: left;
margin-left: 3px; margin-left: 3px;
} }
.nameActive { .nameActive {
color: var(--color-main-active); color: var(--color-main-active);
font-weight: 700; font-weight: 700;
} }
} }
.leftBoxBottomItemActive { .leftBoxBottomItemActive {
border-bottom: 3px solid var(--color-main-active); border-bottom: 3px solid var(--color-main-active);
} }
} }
} }
.layout-main-header-right-box { .layout-main-header-right-box {
width: 300px; width: 300px;
margin-right: 150px; margin-right: 150px;
margin-top: 19px; margin-top: 19px;
.right-box-top { .right-box-top {
.time { .time {
height: 24px; height: 24px;
...@@ -246,6 +267,7 @@ onMounted(() => { ...@@ -246,6 +267,7 @@ onMounted(() => {
letter-spacing: 0px; letter-spacing: 0px;
text-align: right; text-align: right;
} }
.name { .name {
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
...@@ -258,12 +280,14 @@ onMounted(() => { ...@@ -258,12 +280,14 @@ onMounted(() => {
text-align: right; text-align: right;
} }
} }
.right-box-bottom { .right-box-bottom {
margin-top: 24px; margin-top: 24px;
text-align: right; text-align: right;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
gap: 8px; gap: 8px;
.btn { .btn {
width: 120px; width: 120px;
height: 36px; height: 36px;
...@@ -276,14 +300,17 @@ onMounted(() => { ...@@ -276,14 +300,17 @@ onMounted(() => {
gap: 8px; gap: 8px;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text { .text {
width: 64px; width: 64px;
height: 24px; height: 24px;
...@@ -297,6 +324,7 @@ onMounted(() => { ...@@ -297,6 +324,7 @@ onMounted(() => {
text-align: left; text-align: left;
} }
} }
.btn-active { .btn-active {
width: 120px; width: 120px;
height: 36px; height: 36px;
...@@ -307,14 +335,17 @@ onMounted(() => { ...@@ -307,14 +335,17 @@ onMounted(() => {
align-items: center; align-items: center;
gap: 8px; gap: 8px;
cursor: pointer; cursor: pointer;
.icon-active { .icon-active {
width: 16px; width: 16px;
height: 16px; height: 16px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text-active { .text-active {
width: 64px; width: 64px;
height: 24px; height: 24px;
...@@ -331,16 +362,18 @@ onMounted(() => { ...@@ -331,16 +362,18 @@ onMounted(() => {
} }
} }
} }
.layout-main-center { .layout-main-center {
.report-box { .report-box {
margin: 0 auto; margin: 0 auto;
width: 1600px; width: 1600px;
height: 926px; height: 926px;
background: rgba(248, 249, 250, 1); background: rgba(248, 249, 250, 1);
.report-header { .report-header {
height: 80px; height: 80px;
line-height: 80px; line-height: 80px;
padding-left: 20px; padding-left: 69px;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-style: Bold; font-style: Bold;
...@@ -349,39 +382,68 @@ onMounted(() => { ...@@ -349,39 +382,68 @@ onMounted(() => {
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
} }
.report-main { .report-main {
width: 1600px; width: 1600px;
margin: 0 auto; margin-top: 24px;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
padding: 0 69px; padding: 24px 69px;
display: flex;
height: calc(100% - 100px); height: calc(100% - 100px);
justify-content: space-between; overflow-y: auto; // 改为单一滚动容器,天然同步
.left {
width: 800px; // 滚动条样式
&::-webkit-scrollbar {
display: none;
}
&::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 4px;
}
&::-webkit-scrollbar-track {
background: #f1f1f1;
}
.noContent { .noContent {
height: 100px; height: 100%;
line-height: 100px; display: flex;
text-align: center; align-items: center;
justify-content: center;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-style: Regular; font-style: Regular;
font-size: 20px; font-size: 20px;
font-weight: 400; font-weight: 400;
} }
.content-row {
display: flex;
width: 100%;
min-height: 100px;
// border-bottom: 1px solid rgba(234, 236, 238, 1);
align-items: stretch; // 默认stretch,确保左右等高,头部对齐
&:last-child {
border-bottom: none;
} }
.right {
.content-en,
.content-cn {
width: 800px; width: 800px;
.noContent { padding: 24px 30px;
height: 100px; box-sizing: border-box;
line-height: 100px; font-size: 16px;
text-align: center; line-height: 1.8;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-style: Regular; text-align: justify;
font-size: 20px; white-space: pre-wrap; // 保留换行格式
font-weight: 400; }
.content-en {
// border-right: 1px solid rgba(234, 236, 238, 1); // 中间分隔线
} }
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论