|
@@ -1,212 +1,245 @@
|
|
|
<template>
|
|
|
- <el-row class="news animate__animated animate__backInLeft">
|
|
|
- <el-col :span="24" class="top">
|
|
|
- <dividerIndex :info="{ title: '集团新闻', enTitle: 'GROUP NEWS' }" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="bottom">
|
|
|
- <el-col :span="6" class="left">
|
|
|
- <el-image class="images" :src="leftUrl"></el-image>
|
|
|
- </el-col>
|
|
|
- <el-col :span="18" class="right">
|
|
|
- <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
- <el-tab-pane label="党建天地" name="first">
|
|
|
- <el-row class="info animate__animated animate__backInLeft">
|
|
|
- <el-col :span="24" class="list" v-for="item in list" :key="item">
|
|
|
- <el-col :span="6" class="imgs">
|
|
|
- <el-image class="images" :src="item.url"></el-image>
|
|
|
- </el-col>
|
|
|
- <el-col :span="18" class="mess">
|
|
|
- <el-col :span="24" class="title textOver">{{ item.title
|
|
|
- }}</el-col>
|
|
|
- <el-col :span="24" class="brief">{{ item.brief }}</el-col>
|
|
|
- <el-col :span="24" class="date">{{ item.date }}</el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="政策法规" name="second">
|
|
|
- <el-row class="info animate__animated animate__backInRight">
|
|
|
- <el-col :span="24" class="list" v-for="item in list" :key="item">
|
|
|
- <el-col :span="6" class="imgs">
|
|
|
- <el-image class="images" :src="item.url"></el-image>
|
|
|
- </el-col>
|
|
|
- <el-col :span="18" class="mess">
|
|
|
- <el-col :span="24" class="title textOver">{{ item.title
|
|
|
- }}</el-col>
|
|
|
- <el-col :span="24" class="brief">{{ item.brief }}</el-col>
|
|
|
- <el-col :span="24" class="date">{{ item.date }}</el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="招标采购" name="third">
|
|
|
- <el-row class="info animate__animated animate__backInLeft">
|
|
|
- <el-col :span="24" class="list" v-for="item in list" :key="item">
|
|
|
- <el-col :span="6" class="imgs">
|
|
|
- <el-image class="images" :src="item.url"></el-image>
|
|
|
- </el-col>
|
|
|
- <el-col :span="18" class="mess">
|
|
|
- <el-col :span="24" class="title textOver">{{ item.title
|
|
|
- }}</el-col>
|
|
|
- <el-col :span="24" class="brief">{{ item.brief }}</el-col>
|
|
|
- <el-col :span="24" class="date">{{ item.date }}</el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="集团要闻" name="fourth">
|
|
|
- <el-row class="info animate__animated animate__backInRight">
|
|
|
- <el-col :span="24" class="list" v-for="item in list" :key="item">
|
|
|
- <el-col :span="6" class="imgs">
|
|
|
- <el-image class="images" :src="item.url"></el-image>
|
|
|
- </el-col>
|
|
|
- <el-col :span="18" class="mess">
|
|
|
- <el-col :span="24" class="title textOver">{{ item.title
|
|
|
- }}</el-col>
|
|
|
- <el-col :span="24" class="brief">{{ item.brief }}</el-col>
|
|
|
- <el-col :span="24" class="date">{{ item.date }}</el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <el-row class="news animate__animated animate__backInLeft">
|
|
|
+ <el-col :span="24" class="top">
|
|
|
+ <dividerIndex :info="{ title: '集团新闻', enTitle: 'GROUP NEWS' }" />
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="bottom">
|
|
|
+ <el-col :span="6" class="left">
|
|
|
+ <el-image class="images" :src="leftUrl"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="18" class="right">
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
+ <el-tab-pane label="党建天地" name="first">
|
|
|
+ <el-row class="info animate__animated animate__backInLeft">
|
|
|
+ <el-col :span="24" class="list" v-for="item in djtdList" :key="item">
|
|
|
+ <el-col :span="6" class="imgs">
|
|
|
+ <el-image class="images" :src="getProp(item, 'url')"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="18" class="mess">
|
|
|
+ <!-- item.ext.title -->
|
|
|
+ <el-col :span="24" class="title textOver">{{ getProp(item, 'title') }}</el-col>
|
|
|
+ <!-- item.txt.txt -->
|
|
|
+ <el-col :span="24" class="brief">{{ getProp(item, 'brief') }}</el-col>
|
|
|
+ <!-- item.ext.release_date -->
|
|
|
+ <el-col :span="24" class="date">{{ getProp(item, 'date') }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="政策法规" name="second">
|
|
|
+ <el-row class="info animate__animated animate__backInRight">
|
|
|
+ <el-col :span="24" class="list" v-for="item in zcfgList" :key="item">
|
|
|
+ <el-col :span="6" class="imgs">
|
|
|
+ <el-image class="images" :src="getProp(item, 'url')"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="18" class="mess">
|
|
|
+ <el-col :span="24" class="title textOver">{{ getProp(item, 'title') }}</el-col>
|
|
|
+ <el-col :span="24" class="brief">{{ getProp(item, 'brief') }}</el-col>
|
|
|
+ <el-col :span="24" class="date">{{ getProp(item, 'date') }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="招标采购" name="third">
|
|
|
+ <el-row class="info animate__animated animate__backInLeft">
|
|
|
+ <el-col :span="24" class="list" v-for="item in zbcgList" :key="item">
|
|
|
+ <el-col :span="6" class="imgs">
|
|
|
+ <el-image class="images" :src="getProp(item, 'url')"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="18" class="mess">
|
|
|
+ <el-col :span="24" class="title textOver">{{ getProp(item, 'title') }}</el-col>
|
|
|
+ <el-col :span="24" class="brief">{{ getProp(item, 'brief') }}</el-col>
|
|
|
+ <el-col :span="24" class="date">{{ getProp(item, 'date') }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="集团要闻" name="fourth">
|
|
|
+ <el-row class="info animate__animated animate__backInRight">
|
|
|
+ <el-col :span="24" class="list" v-for="item in jtxwList" :key="item">
|
|
|
+ <el-col :span="6" class="imgs">
|
|
|
+ <el-image class="images" :src="getProp(item, 'url')"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="18" class="mess">
|
|
|
+ <el-col :span="24" class="title textOver">{{ getProp(item, 'title') }}</el-col>
|
|
|
+ <el-col :span="24" class="brief">{{ getProp(item, 'brief') }}</el-col>
|
|
|
+ <el-col :span="24" class="date">{{ getProp(item, 'date') }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
defineOptions({ name: 'newsIndex' })
|
|
|
// 基础
|
|
|
-import { ref } from 'vue';
|
|
|
+import { ref, onMounted } from 'vue'
|
|
|
import type { TabsPaneContext } from 'element-plus'
|
|
|
+import { index } from '@/api/api'
|
|
|
|
|
|
import dividerIndex from '../../components/windows/dividerIndex.vue'
|
|
|
+import { cloneDeep, get } from 'lodash-es'
|
|
|
|
|
|
-const leftUrl = ref('/news1.png')
|
|
|
+const leftUrl = ref('news1.png')
|
|
|
|
|
|
const activeName = ref('first')
|
|
|
|
|
|
const list = ref([
|
|
|
- {
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- url: '/news2.png',
|
|
|
- brief: '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
- date: '2024-12-22'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- url: '/news3.png',
|
|
|
- brief: '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
- date: '2024-12-22'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- url: '/news4.png',
|
|
|
- brief: '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
- date: '2024-12-22'
|
|
|
- }
|
|
|
+ {
|
|
|
+ title:
|
|
|
+ '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ url: 'news2.png',
|
|
|
+ brief:
|
|
|
+ '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
+ date: '2024-12-22',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ url: 'news3.png',
|
|
|
+ brief:
|
|
|
+ '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
+ date: '2024-12-22',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ url: 'news4.png',
|
|
|
+ brief:
|
|
|
+ '1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通1月29日,集团召开2021年度安全生产委员会第一次全体(扩大)视频会议,会议由集团总经理王爽主持。会上,集团副总经理于懿通',
|
|
|
+ date: '2024-12-22',
|
|
|
+ },
|
|
|
])
|
|
|
+/**党建天地 */
|
|
|
+const djtdList: any = ref([])
|
|
|
+/**政策法规 */
|
|
|
+const zcfgList: any = ref([])
|
|
|
+/**招标采购 */
|
|
|
+const zbcgList: any = ref([])
|
|
|
+/**集团要闻 */
|
|
|
+const jtxwList: any = ref([])
|
|
|
|
|
|
/* 选项卡切换,换数据 */
|
|
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|
|
- console.log(tab, event)
|
|
|
+ console.log(tab, event)
|
|
|
+}
|
|
|
+onMounted(() => {
|
|
|
+ djtdList.value = list.value
|
|
|
+ zcfgList.value = list.value
|
|
|
+ zbcgList.value = list.value
|
|
|
+ jtxwList.value = list.value
|
|
|
+ init()
|
|
|
+})
|
|
|
+const init = async () => {
|
|
|
+ const result = await index.jtxw()
|
|
|
+ if (result.errcode == 0) {
|
|
|
+ if (get(result, 'data')) {
|
|
|
+ const allList = get(result, 'data')
|
|
|
+ if (get(allList, 'djtd', []).length > 0) djtdList.value = get(allList, 'djtd', [])
|
|
|
+ if (get(allList, 'zcfg', []).length > 0) zcfgList.value = get(allList, 'zcfg', [])
|
|
|
+ if (get(allList, 'zbcg', []).length > 0) zbcgList.value = get(allList, 'zbcg', [])
|
|
|
+ if (get(allList, 'jtyw', []).length > 0) jtxwList.value = get(allList, 'jtyw', [])
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+const getProp = (item: object, path: string) => {
|
|
|
+ return get(item, path)
|
|
|
}
|
|
|
-
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.news {
|
|
|
- .top {
|
|
|
- margin: 0 0 20px 0;
|
|
|
- }
|
|
|
+ .top {
|
|
|
+ margin: 0 0 20px 0;
|
|
|
+ }
|
|
|
|
|
|
- .bottom {
|
|
|
- display: flex;
|
|
|
- gap: 10px;
|
|
|
+ .bottom {
|
|
|
+ display: flex;
|
|
|
+ gap: 10px;
|
|
|
|
|
|
- .left {
|
|
|
- height: 400px;
|
|
|
+ .left {
|
|
|
+ height: 400px;
|
|
|
|
|
|
- .images {
|
|
|
- width: 100%;
|
|
|
- height: 400px;
|
|
|
- }
|
|
|
+ .images {
|
|
|
+ width: 100%;
|
|
|
+ height: 400px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .right {
|
|
|
+ max-width: 74%;
|
|
|
+ height: 400px;
|
|
|
+ overflow: hidden;
|
|
|
+ padding: 0 10px;
|
|
|
+ background-color: #ffffff;
|
|
|
+
|
|
|
+ .info {
|
|
|
+ .list {
|
|
|
+ display: flex;
|
|
|
+ margin: 0 0 10px 0;
|
|
|
+
|
|
|
+ .imgs {
|
|
|
+ .images {
|
|
|
+ width: 100%;
|
|
|
+ height: 106px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mess {
|
|
|
+ padding: 0 10px;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .title {
|
|
|
+ color: rgb(25, 25, 26);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 29px;
|
|
|
+ letter-spacing: 0px;
|
|
|
}
|
|
|
|
|
|
- .right {
|
|
|
- max-width: 74%;
|
|
|
- height: 400px;
|
|
|
- overflow: hidden;
|
|
|
- padding: 0 10px;
|
|
|
- background-color: #ffffff;
|
|
|
-
|
|
|
- .info {
|
|
|
- .list {
|
|
|
- display: flex;
|
|
|
- margin: 0 0 10px 0;
|
|
|
-
|
|
|
- .imgs {
|
|
|
- .images {
|
|
|
- width: 100%;
|
|
|
- height: 106px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .mess {
|
|
|
- padding: 0 10px;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .title {
|
|
|
- color: rgb(25, 25, 26);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 20px;
|
|
|
- font-weight: 500;
|
|
|
- line-height: 29px;
|
|
|
- letter-spacing: 0px;
|
|
|
- }
|
|
|
-
|
|
|
- .brief {
|
|
|
- color: rgb(102, 102, 102);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 20px;
|
|
|
- font-weight: 400;
|
|
|
- line-height: 29px;
|
|
|
- letter-spacing: 0px;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- -webkit-line-clamp: 2;
|
|
|
- word-break: break-all;
|
|
|
- display: -webkit-box;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .date {
|
|
|
- position: absolute;
|
|
|
- bottom: 0;
|
|
|
- color: rgb(153, 153, 153);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 500;
|
|
|
- line-height: 23px;
|
|
|
- letter-spacing: 0px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .list:last-child {
|
|
|
- margin: none;
|
|
|
- }
|
|
|
- }
|
|
|
+ .brief {
|
|
|
+ color: rgb(102, 102, 102);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 29px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
+ word-break: break-all;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
}
|
|
|
+
|
|
|
+ .date {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ color: rgb(153, 153, 153);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 23px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .list:last-child {
|
|
|
+ margin: none;
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
::v-deep(.el-tabs__nav-wrap:after) {
|
|
|
- background-color: transparent;
|
|
|
+ background-color: transparent;
|
|
|
}
|
|
|
|
|
|
::v-deep(.el-tabs__header) {
|
|
|
- margin: 0 0 10px 0;
|
|
|
+ margin: 0 0 10px 0;
|
|
|
}
|
|
|
</style>
|