提交 18e60f50 authored 作者: 付康's avatar 付康

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

Zy dev 查看合并请求 !173
...@@ -321,6 +321,13 @@ body { ...@@ -321,6 +321,13 @@ body {
.el-popper[data-popper-placement^="top"] > .el-popper__arrow:before { .el-popper[data-popper-placement^="top"] > .el-popper__arrow:before {
display: none; display: none;
} }
/* 单行文本溢出隐藏显示省略号 */
.one-line-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -12,6 +12,18 @@ export function getDecreeBackground(params) { ...@@ -12,6 +12,18 @@ export function getDecreeBackground(params) {
}) })
} }
// 前序政令
/**
* @param {id}
*/
export function getDecreePrev(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/prev/${params.id}`,
params
})
}
// 相关事件 // 相关事件
/** /**
* @param { id } * @param { id }
...@@ -34,4 +46,28 @@ export function getDecreeDepend(params) { ...@@ -34,4 +46,28 @@ export function getDecreeDepend(params) {
url: `/api/administrativeOrderInfo/depend/${params.id}`, url: `/api/administrativeOrderInfo/depend/${params.id}`,
params params
}) })
}
// 主要指令
/**
* @param { id }
*/
export function getDecreeMainContent(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/mainContent/${params.id}`,
params
})
}
// 相关实体
/**
* @param { id }
*/
export function getDecreeRelatedEntity(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/relatedEntity/${params.id}`,
params
})
} }
\ No newline at end of file
import request from "@/api/request.js"; import request from "@/api/request.js";
// 获取相关政令
/**
* @param { id }
*/
export function getDecreeRelatedOrder(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/relatedOrder/${params.id}`,
params
})
}
// 根据政令ID获取领域公司信息 // 根据政令ID获取领域公司信息
/** /**
* @param {cRelated, id} * @param {cRelated, id}
......
...@@ -60,16 +60,17 @@ export function getDecreeSummary(params) { ...@@ -60,16 +60,17 @@ export function getDecreeSummary(params) {
}) })
} }
// 获取报告原文 // 获取风险信号
/** /**
* @param {id} * @param {id}
*/ */
// export function getDecreeReport(params) { export function getDecreeRiskSignal(params) {
// return request({ return request({
// method: 'GET', method: 'GET',
// url: `/api/administrativeOrderInfo/contentUrl/${params.id}`, url: `/api/administrativeOrderInfo/riskSignal/${params.id}`,
// }) params
// } })
}
export function getDecreeReport(params) { export function getDecreeReport(params) {
return request({ return request({
......
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
<div class="analysis-box-wrapper" :style="{ width: width ? width : '100%', height: height ? height : '100%' }"> <div class="analysis-box-wrapper" :style="{ width: width ? width : '100%', height: height ? height : '100%' }">
<div class="wrapper-header"> <div class="wrapper-header">
<div class="header-icon"></div> <div class="header-icon"></div>
<div class="header-title">{{ title }}</div> <div class="header-title">
<div v-if="title">{{ title }}</div>
<slot v-else name="custom-title"></slot>
</div>
<div class="header-btn" v-if="!showAllBtn"> <div class="header-btn" v-if="!showAllBtn">
<slot name="header-btn"></slot> <slot name="header-btn"></slot>
</div> </div>
...@@ -98,54 +101,51 @@ const emit = defineEmits(['save', 'download', 'collect']) ...@@ -98,54 +101,51 @@ const emit = defineEmits(['save', 'download', 'collect'])
.wrapper-header { .wrapper-header {
height: 45px; height: 45px;
display: flex; display: flex;
padding-right: 14px;
align-items: center;
box-sizing: border-box; box-sizing: border-box;
position: relative;
.header-icon { .header-icon {
margin-top: 18px;
width: 8px; width: 8px;
height: 20px; height: 20px;
background: var(--color-main-active); background: var(--color-main-active);
border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0;
margin-right: 14px;
} }
.header-title { .header-title {
margin-left: 14px; flex: auto;
margin-top: 14px; width: 20px;
height: 26px;
// color: var(--color-main-active); // color: var(--color-main-active);
// font-family: Source Han Sans CN; // font-family: Source Han Sans CN;
// font-size: 20px; // font-size: 20px;
// font-weight: 700; // font-weight: 700;
// line-height: 26px; // line-height: 26px;
// letter-spacing: 0px; // letter-spacing: 0px;
height: 26px; height: 100%;
color: var(--color-main-active); &>div {
font-family: Microsoft YaHei; height: 100%;
font-size: 20px; color: var(--color-main-active);
font-weight: 700; font-family: Microsoft YaHei;
line-height: 26px; font-size: 20px;
line-height: 45px;
font-weight: 700;
}
} }
.header-btn { // .header-btn {
position: absolute; // display: flex;
top: 14px; // justify-content: flex-end;
right: 84px; // gap: 8px;
// display: flex; // }
// justify-content: flex-end;
// gap: 8px;
}
.header-btn1 { // .header-btn1 {
position: absolute; // position: absolute;
top: 14px; // top: 14px;
right: 116px; // right: 116px;
} // }
.header-right { .header-right {
position: absolute;
top: 14px;
right: 14px;
height: 28px; height: 28px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
......
...@@ -4,6 +4,7 @@ const DecreeLayoutContainer = () => import('@/views/decree/decreeLayout/index.vu ...@@ -4,6 +4,7 @@ const DecreeLayoutContainer = () => import('@/views/decree/decreeLayout/index.vu
const DecreeOverviewLayout = () => import('@/views/decree/decreeLayout/overview/index.vue') const DecreeOverviewLayout = () => import('@/views/decree/decreeLayout/overview/index.vue')
const DecreeIntroduction = () => import('@/views/decree/decreeLayout/overview/introduction/index.vue') const DecreeIntroduction = () => import('@/views/decree/decreeLayout/overview/introduction/index.vue')
const DecreeBackground = () => import('@/views/decree/decreeLayout/overview/background/index.vue') const DecreeBackground = () => import('@/views/decree/decreeLayout/overview/background/index.vue')
const DecreeMeasures = () => import('@/views/decree/decreeLayout/overview/measures/index.vue')
const DecreeDeepDig = () => import('@/views/decree/decreeLayout/deepdig/index.vue') const DecreeDeepDig = () => import('@/views/decree/decreeLayout/deepdig/index.vue')
const DecreeInfluence = () => import('@/views/decree/decreeLayout/influence/index.vue') const DecreeInfluence = () => import('@/views/decree/decreeLayout/influence/index.vue')
const Institution = () => import('@/views/decree/institution/index.vue') const Institution = () => import('@/views/decree/institution/index.vue')
...@@ -50,7 +51,13 @@ const decreeRoutes = [ ...@@ -50,7 +51,13 @@ const decreeRoutes = [
name: "DecreeBackground", name: "DecreeBackground",
component: DecreeBackground, component: DecreeBackground,
// meta: { title: "政令背景" } // meta: { title: "政令背景" }
} },
{
path: "measures",
name: "DecreeMeasures",
component: DecreeMeasures,
// meta: { title: "政令举措" }
},
] ]
}, },
// 深度挖掘路由 // 深度挖掘路由
......
...@@ -19,14 +19,11 @@ ...@@ -19,14 +19,11 @@
<div class="info"> <div class="info">
<div class="info-box1">{{ summaryInfo.name }}</div> <div class="info-box1">{{ summaryInfo.name }}</div>
<div class="info-box2"> <div class="info-box2">
<div class="info-box2-item item1" v-if="summaryInfo.order"> <div class="info-box2-item item1">{{ summaryInfo.postDate }}</div>
{{ summaryInfo.order + " | " }} |
</div> <div class="info-box2-item item2">{{ summaryInfo.orgName }}</div>
|
<div class="info-box2-item item2" v-if="summaryInfo.orgName"> <div class="info-box2-item item3">{{ summaryInfo.ename }}</div>
{{ summaryInfo.orgName + " | " }}
</div>
<div class="info-box2-item item3" v-if="summaryInfo.ename">{{ summaryInfo.ename }}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -60,6 +57,12 @@ ...@@ -60,6 +57,12 @@
</div> </div>
<div class="text">{{ "政令原文" }}</div> <div class="text">{{ "政令原文" }}</div>
</div> </div>
<!-- <div class="btn" @click="handleToInstitution">
<div class="icon">
<img src="./assets/icons/link-icon.png" alt="" />
</div>
<div class="text">{{ "查看官网" }}</div>
</div> -->
<div class="btn-active" @click="handleAnalysisClick"> <div class="btn-active" @click="handleAnalysisClick">
<div class="icon-active"> <div class="icon-active">
<img src="./assets/icons/edit-icon.png" alt="" /> <img src="./assets/icons/edit-icon.png" alt="" />
...@@ -77,7 +80,7 @@ ...@@ -77,7 +80,7 @@
<router-view /> <router-view />
</div> </div>
</div> </div>
<div class="layout-report-box" v-if="activeName === '法案原文'"> <!-- <div class="layout-report-box" v-if="activeName === '法案原文'">
<div class="report-close" @click="handleSwitchActiveName('分析报告')"> <div class="report-close" @click="handleSwitchActiveName('分析报告')">
<img src="./assets/images/report-close-icon.png" alt="" /> <img src="./assets/images/report-close-icon.png" alt="" />
</div> </div>
...@@ -127,8 +130,8 @@ ...@@ -127,8 +130,8 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div> -->
<div class="report" v-if="isShowReport"> <!-- <div class="report" v-if="isShowReport">
<div class="report-close" @click="handleCloseReport"> <div class="report-close" @click="handleCloseReport">
<img src="@/assets/icons/close.png" alt="" /> <img src="@/assets/icons/close.png" alt="" />
</div> </div>
...@@ -145,7 +148,7 @@ ...@@ -145,7 +148,7 @@
<iframe v-else :src="reportUrlEn" style="border: none" width="100%" height="100%"> </iframe> <iframe v-else :src="reportUrlEn" style="border: none" width="100%" height="100%"> </iframe>
</div> </div>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
...@@ -170,30 +173,22 @@ const route = useRoute(); ...@@ -170,30 +173,22 @@ const route = useRoute();
const decreeId = ref(route.query.id); const decreeId = ref(route.query.id);
const isShowReport = ref(false); // const activeName = ref("分析报告");
const reportUrl = ref(""); // const handleSwitchActiveName = name => {
const reportUrlEn = ref(""); // activeName.value = name;
// };
const activeName = ref("分析报告"); // const curBill = ref("公法(2025年7月4日)");
// const billList = ref([
const summaryInfo = ref({}); // {
// label: "公法(2025年7月4日)",
const handleSwitchActiveName = name => { // value: "公法(2025年7月4日)"
activeName.value = name; // },
}; // {
// label: "公法(2025年7月2日)",
const curBill = ref("公法(2025年7月4日)"); // value: "公法(2025年7月2日)"
// }
const billList = ref([ // ]);
{
label: "公法(2025年7月4日)",
value: "公法(2025年7月4日)"
},
{
label: "公法(2025年7月2日)",
value: "公法(2025年7月2日)"
}
]);
const mainHeaderBtnList = ref([ const mainHeaderBtnList = ref([
{ {
...@@ -207,17 +202,16 @@ const mainHeaderBtnList = ref([ ...@@ -207,17 +202,16 @@ const mainHeaderBtnList = ref([
activeIcon: icon2Active, activeIcon: icon2Active,
name: "深度挖掘", name: "深度挖掘",
path: "/decreeLayout/deepDig" path: "/decreeLayout/deepDig"
} },
// { // {
// icon: icon3, // icon: icon3,
// activeIcon: icon3Active, // activeIcon: icon3Active,
// name: "影响分析", // name: "影响分析",
// path: "/decreeLayout/influence" // path: "/decreeLayout/influence"
// } // },
]); ]);
const activeTitle = ref("政令概况"); const activeTitle = ref("政令概况");
const handleClickMainHeaderBtn = item => { const handleClickMainHeaderBtn = item => {
activeTitle.value = item.name; activeTitle.value = item.name;
router.push({ router.push({
...@@ -229,12 +223,10 @@ const handleClickMainHeaderBtn = item => { ...@@ -229,12 +223,10 @@ const handleClickMainHeaderBtn = item => {
}; };
// 获取全局信息 // 获取全局信息
const summaryInfo = ref({});
const handleGetSummary = async () => { const handleGetSummary = async () => {
const params = {
id: route.query.id
};
try { try {
const res = await getDecreeSummary(params); const res = await getDecreeSummary({id: route.query.id});
console.log("全局信息", res); console.log("全局信息", res);
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
summaryInfo.value = res.data; summaryInfo.value = res.data;
...@@ -243,24 +235,24 @@ const handleGetSummary = async () => { ...@@ -243,24 +235,24 @@ const handleGetSummary = async () => {
}; };
// 获取报告原文 // 获取报告原文
const handleGetReport = async () => { // const reportUrl = ref("");
const params = { // const reportUrlEn = ref("");
id: route.query.id // const handleGetReport = async () => {
}; // try {
// const res = await getDecreeReport({id: route.query.id});
// console.log("报告原文", res);
// if (res.code === 200 && res.data) {
// reportUrl.value = res.data.content;
// reportUrlEn.value = res.data.contentEn;
// }
// } catch (error) {}
// };
try { // const isShowReport = ref(false);
const res = await getDecreeReport(params); // const handleCloseReport = () => {
console.log("报告原文", res); // isShowReport.value = false;
if (res.code === 200 && res.data) { // };
reportUrl.value = res.data.content;
reportUrlEn.value = res.data.contentEn;
}
} catch (error) {}
};
const handleCloseReport = () => {
isShowReport.value = false;
};
const handleShowReport = () => { const handleShowReport = () => {
const curRoute = router.resolve({ const curRoute = router.resolve({
path: "/decree/decreeOriginal", path: "/decree/decreeOriginal",
...@@ -271,6 +263,16 @@ const handleShowReport = () => { ...@@ -271,6 +263,16 @@ const handleShowReport = () => {
window.open(curRoute.href, "_blank"); window.open(curRoute.href, "_blank");
}; };
const handleToInstitution = () => {
// const curRoute = router.resolve({
// path: "/institution",
// query: {
// id: route.query.id
// }
// });
// window.open(curRoute.href, "_blank");
};
const handleAnalysisClick = () => { const handleAnalysisClick = () => {
router.push({ router.push({
path: "/writtingAsstaint", path: "/writtingAsstaint",
...@@ -284,14 +286,14 @@ const handleAnalysisClick = () => { ...@@ -284,14 +286,14 @@ const handleAnalysisClick = () => {
onMounted(() => { onMounted(() => {
handleGetSummary(); handleGetSummary();
console.log(route.path); console.log(route.path);
if (route.path === "/decreeLayout/overview/introduction" || route.path === "/decreeLayout/overview/background") { if (route.path === "/decreeLayout/overview/introduction" || route.path === "/decreeLayout/overview/background" || route.path === "/decreeLayout/overview/measures") {
activeTitle.value = "政令概况"; activeTitle.value = "政令概况";
} else if (route.path === "/decreeLayout/deepDig") { } else if (route.path === "/decreeLayout/deepDig") {
activeTitle.value = "深度挖掘"; activeTitle.value = "深度挖掘";
} else { } else if (route.path === "/decreeLayout/influence") {
activeTitle.value = "影响分析"; activeTitle.value = "影响分析";
} }
handleGetReport(); // handleGetReport();
}); });
</script> </script>
...@@ -370,11 +372,10 @@ onMounted(() => { ...@@ -370,11 +372,10 @@ onMounted(() => {
} }
.layout-main { .layout-main {
width: 100%; width: 100%;
overflow-y: auto; height: 100%;
display: flex;
flex-direction: column;
.header-main { .header-main {
position: sticky;
top: 0;
z-index: 1000;
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.05); box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.05);
...@@ -447,18 +448,6 @@ onMounted(() => { ...@@ -447,18 +448,6 @@ onMounted(() => {
.info-box2-item { .info-box2-item {
padding: 0 10px; padding: 0 10px;
} }
.item1 {
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.item2 {
max-width: 180px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.item3 { .item3 {
max-width: 420px; max-width: 420px;
overflow: hidden; overflow: hidden;
...@@ -509,7 +498,7 @@ onMounted(() => { ...@@ -509,7 +498,7 @@ onMounted(() => {
} }
} }
.layout-main-header-right-box { .layout-main-header-right-box {
width: 300px; width: 450px;
margin-top: 19px; margin-top: 19px;
.right-box-top { .right-box-top {
.time { .time {
...@@ -609,6 +598,9 @@ onMounted(() => { ...@@ -609,6 +598,9 @@ onMounted(() => {
} }
} }
.layout-main-center { .layout-main-center {
height: 20px;
flex: auto;
background-color: #f7f8f9;
} }
} }
.layout-report-box { .layout-report-box {
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论