'工作动态列表及详情页'

This commit is contained in:
HISENSE\liuyuxin6 2022-06-21 09:48:23 +08:00
parent 6edf4d50f9
commit 5977d85597
2 changed files with 196 additions and 58 deletions

View File

@ -1,12 +1,20 @@
<template> <template>
<div> <div class="work-dyn-detail-content">
<home-header></home-header> <home-header></home-header>
<div id="work-dyn-list"> <a-breadcrumb>
<a-breadcrumb-item>
<router-link to="/home">
门户首页
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>工作动态</a-breadcrumb-item>
</a-breadcrumb>
<div id="work-dyn-list" v-loading="loading">
<div class="name">{{ item.title }}</div> <div class="name">{{ item.title }}</div>
<div class="time">发布日期{{ item.createDate }}</div> <div class="time">发布日期{{ item.createDate }}</div>
<div class="detail-main-content">
<div v-if="item.note1" class="summary-content">摘要{{item.note1}}</div>
<a-image <a-image
width="100"
height="100"
alt="暂无图片" alt="暂无图片"
:src="item.imageUrl" :src="item.imageUrl"
:fallback="imgSrc" :fallback="imgSrc"
@ -14,52 +22,87 @@
<div class="text">{{ item.content }}</div> <div class="text">{{ item.content }}</div>
</div> </div>
</div> </div>
<home-footer></home-footer>
</div>
</template> </template>
<script setup> <script setup>
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import HomeFooter from '@/views/newHome/components/Footer'
import { ref } from 'vue' import { ref } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { workdynamicsDetails } from '@/api/home' import { workdynamicsDetails } from '@/api/home'
const router = useRouter() const router = useRouter()
const item = ref({}) const item = ref({})
const loading = ref(true)
const imgSrc = ref(require('@/assets/newHome/zw.png')) const imgSrc = ref(require('@/assets/newHome/zw.png'))
const id = router.currentRoute.value.query.id const id = router.currentRoute.value.query.id
workdynamicsDetails(id).then((res) => { workdynamicsDetails(id).then((res) => {
console.log('详情=================>', res.data.data) console.log('详情=================>', res.data.data)
item.value = res.data.data item.value = res.data.data
loading.value = false
}) })
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
#work-dyn-list { .work-dyn-detail-content {
.ant-breadcrumb{
margin: 90px auto 0;
padding: 5px 400px;
background-color: #f5f8fc; background-color: #f5f8fc;
}
#work-dyn-list {
background-color: #ffffff;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin: 90px auto 0; // margin: 90px auto 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; // flex-wrap: wrap;
align-items: center; // align-items: center;
padding: 0 400px; padding: 0 400px;
position: relative; position: relative;
margin-bottom: 40px;
.name { .name {
font-size: 32px; font-size: 24px;
font-weight: 600;
text-align: center; text-align: center;
color: #0558e1;
margin-top: 54px;
} }
:deep(.ant-image-img) { .time {
width: 200px; text-align: center;
margin-top: 10px; margin: 10px 0 24px;
} }
.text { .detail-main-content{
width: 1000px; border-top: 1px solid #c6c6c6;
margin-top: 20px; padding-top: 24px;
font-size: 16px;
line-height: 30px;
color: #212121;
.summary-content{
word-wrap: break-word; word-wrap: break-word;
text-indent: 32px; text-indent: 32px;
} }
.time { :deep(.ant-image){
margin-left: 70%; text-align: center;
margin: 16px 0;
position: relative;
left: 50%;
transform: translateX(-50%);
.ant-image-img{
max-width: 900px;
max-height: 590px;
}
}
// :deep(.ant-image-img) {
// width: 200px;
// margin-top: 10px;
// }
.text {
word-wrap: break-word;
text-indent: 32px;
}
}
} }
} }
</style> </style>

View File

@ -1,11 +1,40 @@
<template> <template>
<div> <div class="work-dyn-main-content">
<home-header></home-header> <home-header></home-header>
<a-breadcrumb>
<a-breadcrumb-item>
<router-link to="/home">
门户首页
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>工作动态</a-breadcrumb-item>
</a-breadcrumb>
<div id="work-dyn-list"> <div id="work-dyn-list">
<a-list item-layout="vertical" size="large" :data-source="listData"> <a-list item-layout="vertical" size="large" :data-source="listData">
<template #header>
<div class="total-num-content">
<div class="total-main-text"> <span class="num-text">{{total}}</span> 条信息</div>
<div class="index-page-text">当前第{{page}}</div>
</div>
</template>
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<a-list-item key="item.title"> <a-list-item key="item.title">
<template #extra> <a-list-item-meta :description="item.note1? `摘要:${item.note1 || ''}`: item.content">
<template #title>
<a class="title-content" @click="goToDetails(item.id)">{{ item.title }}</a>
</template>
<template #avatar>
<a-image
width="100"
height="100"
alt="暂无图片"
:src="item.imageUrl"
:fallback="imgSrc"
/>
</template>
</a-list-item-meta>
<div class="pulish-time">发布时间{{item.createDate}}</div>
<!-- <template #extra>
<a-image <a-image
width="100" width="100"
height="100" height="100"
@ -19,22 +48,25 @@
<a @click="goToDetails(item.id)">{{ item.title }}</a> <a @click="goToDetails(item.id)">{{ item.title }}</a>
</template> </template>
</a-list-item-meta> </a-list-item-meta>
{{ item.content }} {{ item.content }} -->
</a-list-item> </a-list-item>
</template> </template>
</a-list> </a-list>
<a-pagination <a-pagination
v-model:current="page" v-model:current="page"
:total="total" :total="total"
show-quick-jumper
show-less-items show-less-items
@change="getList" @change="getList"
/> />
</div> </div>
<home-footer></home-footer>
</div> </div>
</template> </template>
<script setup> <script setup>
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import HomeFooter from '@/views/newHome/components/Footer'
import { ref } from 'vue' import { ref } from 'vue'
import { gongZuoZhuangTai } from '@/api/home' import { gongZuoZhuangTai } from '@/api/home'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@ -65,17 +97,48 @@
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
#work-dyn-list { .work-dyn-main-content{
.ant-breadcrumb{
margin: 90px auto 0;
padding: 5px 400px;
background-color: #f5f8fc; background-color: #f5f8fc;
}
#work-dyn-list {
background-color: #ffffff;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin: 90px auto 0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; // align-items: center;
padding: 0 400px; padding: 0 400px;
flex-direction: column;
:deep(.ant-list-header){
border-bottom:none;
.total-num-content{
font-size: 14px;
color: #212121;
margin: 18px 0 10px;
border-bottom: 1px solid #dddee1;
height: 35px;
display: flex;
align-items: center;
.total-main-text{
flex: 1;
.num-text{
font-size: 18px;
color: #0058e1;
}
}
}
}
:deep(.ant-list-item) { :deep(.ant-list-item) {
width: 1000px; width: 1300px;
padding: 16px 0;
position: relative;
border-bottom: #dddee1 solid 1px;
.ant-list-item-main { .ant-list-item-main {
height: 140px; height: 140px;
overflow: hidden; overflow: hidden;
@ -88,13 +151,45 @@
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
margin-bottom: 16px;
.title-content {
font-size: 20px;
}
}
.ant-list-item-meta-description{
font-size: 14px;
color: rgba(33,33,33, 0.8);
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
.pulish-time{
position: absolute;
left: 196px;
bottom: 50px;
color: #212121;
} }
.ant-image-img { .ant-image-img {
width: 150px; width: 180px;
}
&:hover{
padding-left: 20px;
border: #0058e1 1px solid;
box-shadow: 0px 0px 20px rgba(0, 88, 225, 0.3);
width: 100%;
.pulish-time{
left: 216px;
}
} }
} }
.ant-pagination { .ant-pagination {
width: 100%; width: 100%;
margin: 20px 0;
}
} }
} }
</style> </style>