tuanshiwei-web/components/AppMessage.vue

317 lines
9.2 KiB
Vue
Raw Permalink Normal View History

2025-05-24 09:12:30 +08:00
<template>
<!-- PC端布局 -->
<div class="flex justify-between w-full h-full" >
<!-- 左边导航栏 -->
<!-- 右边内容栏 -->
<div class="rightcon">
<div class="flex top_search ">
<div style="width: 572px;height: 69px;margin-left: 415px;">
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
</div>
<div class="inputform">
<input v-model="inputSearch" class="contactInput w-full md:w-[337px]"
type="text" placeholder="请输入搜索关键字" />
2025-05-30 16:36:00 +08:00
<div class="search_rinput" @click="toSearch">
2025-05-24 09:12:30 +08:00
<img src="/img/index/hmsearch.png" alt="">
</div>
</div>
</div>
<div class="me_top">
<div class="me_col"></div>
<div class="me_tit">信息公开</div>
<div class="me_col"></div>
</div>
<div class="re_box">
<div class="re_box_item" v-for="(item,index) in MesList" :key="index" @click="openUrl(item.id)">
2025-05-24 09:12:30 +08:00
<div class="re_title one-line-ellipsis">
<div class="dian"></div>
<span>{{ item.title }}</span>
</div>
<div class="re_date">
<div class="shu"></div>
<div class="right_tex">
<span class="span1">{{item.release_time_text.slice(8,10)}}</span>
<span class="span2">{{item.release_time_text.slice(0,7)}}</span>
</div>
</div>
</div>
</div>
<!-- 分页 -->
<div class="flex flex-row justify-center pages_tsw" style="margin-top: 20px;">
<n-pagination v-model:page="page" :page-sizes="[6]" :item-count="total" size="medium"
@update:page="getPageList" show-quick-jumper>
<template #goto>
到第
</template>
<template #prefix="{ itemCount}">
{{ itemCount }}
</template>
</n-pagination>
</div>
<!-- 右分享 -->
<!-- <div style="position: absolute;top: 300px;right:36px;" class="flex flex-col fiximg">
<img :src="`/img/index/douyin.png`" alt="">
<img :src="`/img/index/wb.png`" alt="">
<img :src="`/img/index/wx.png`" alt="">
<img :src="`/img/index/blbl.png`" alt="">
</div> -->
<!-- 底部鼠标 -->
<div style="position: absolute;bottom: 30px;right:30px;">
<img :src="`/img/index/hmouse.png`" alt="">
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { NPagination } from 'naive-ui'
2025-05-29 14:42:01 +08:00
import {defineEmits} from 'vue'
2025-05-24 09:12:30 +08:00
import $api from '@/service/webRequest'
2025-05-29 14:42:01 +08:00
import emitter from '@/plugins/emitter'
2025-05-24 09:12:30 +08:00
const inputSearch = ref('');
const MesList = ref([]);
const page = ref(1);
const total = ref(0);
2025-05-29 14:42:01 +08:00
const detailId = ref(null);
2025-05-24 09:12:30 +08:00
// 信息公开
onMounted(() => {
getMesList();
})
2025-05-29 14:42:01 +08:00
const emit = defineEmits(['toSwpe'])
2025-05-24 09:12:30 +08:00
const getPageList = async () => {
page.value = page.value;
getMesList();
}
const getMesList = async () => {
const res = await $api.post('/api/home.information/index',
{
limit:6,
page:page.value
}
)
total.value = res.data.data.count;
MesList.value = res.data.data.list;
}
2025-05-30 16:36:00 +08:00
const toSearch =() => {
// emit('toSwpe',9);
// emitter.emit('inputSea', {
// keywords:inputSearch.value,
// type: 2,
// });
window.open(`/search_info?type=2&keywords=${inputSearch.value}`)
}
const openUrl = (id: number) => {
window.open(`/info/${id}?type=2`)
2025-05-30 16:36:00 +08:00
}
2025-05-29 14:42:01 +08:00
//跳转详情
// const gotoDetail = (id: number) => {
2025-05-29 14:42:01 +08:00
// detailId.value = {
// id: id,
// type: '2'
// };
// localStorage.setItem('detailId', JSON.stringify(detailId.value));
// emit('toSwpe',6)
// emitter.emit('detailId', detailId.value);
// }
2025-05-24 09:12:30 +08:00
</script>
<style lang="scss" scoped>
@import '@/assets/index.scss';
/* pc端样式 */
.rightcon{
2025-05-30 14:30:11 +08:00
width:100%;
height:100%;
2025-05-24 09:12:30 +08:00
background-image: url('/img/message/xxgk.png');
background-size: 100% 100%;
.fiximg{
img{
margin-bottom: 20px;
}
}
}
.top_search{
margin-top: 50px;
height: 70px;
justify-content: space-between;
align-items: center;
}
.inputform {
position: relative;
width: 340px;
margin-right: 319px;
}
.contactInput {
width: 337px;
height: 50px;
background: #FFFFFF;
border-radius: 8px;
border: 1px solid #DEE4E8;
padding-left: 15px;
}
.contactInput::placeholder {
color: #999999;
}
.contactInput:focus {
outline: none;
}
.search_rinput{
width: 68px;
height: 50px;
background: #E6E6E6;
border-radius: 0px 8px 8px 0px;
position: absolute;
top: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
}
.me_top{
width: 100%;
height: 40px;
// margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
margin-top: 30px;
.me_tit{
font-family: Microsoft YaHei;
font-weight: bold;
font-size: 36px;
color: #4E3C3C;
margin: 0 30px;
}
.me_col{
width: 78px;
height: 3px;
background: #348CDD;
}
}
.re_box{
width: 1200px;
height: 600px;
margin: 0 auto;
margin-top:40px;
padding-left: 60px;
display: flex;
flex-wrap: wrap;
// flex-direction: column;
// justify-content: space-between;
align-items: center;
.re_box_item{
width: 1200px;
height: 90px;
background: #FFFFFF;
border: 1px solid #EEF7FF;
padding: 20px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
.re_title{
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #323232;
display: flex;
align-items: center;
.dian{
width: 10px;
height: 10px;
background: #3B90DF;
border-radius: 50%;
margin-right: 15px;
}
}
.re_date{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 14px;
color: #368BDB;
display: flex;
justify-content: space-between;
align-items: center;
.shu{
background: #EEEEEE;
width: 1px;height: 50px;
margin-right: 20px;
}
.right_tex{
display: flex;
flex-direction: column;
width: 80px;
text-align: center;
.span1{
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 22px;
2025-05-24 09:12:30 +08:00
color: #378EDF;
}
.span2{
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 16px;
color: #378EDF;
}
}
}
&:hover{
background-image: url('/img/message/listbgxx.png');
background-size: 100% 100%;
cursor: pointer;
.re_date{
.shu{
background: #FFFFFF;
}
}
}
}
}
.pages_tsw{
:deep(.n-pagination .n-pagination-item:not(.n-pagination-item--disabled).n-pagination-item--active) {
color: #ffffff;
background-color: #388FDF;
border: 1px solid #388FDF;
}
:deep(.n-pagination .n-pagination-item:not(.n-pagination-item--disabled):hover.n-pagination-item--button) {
color: #999999;
}
:deep(.n-pagination .n-pagination-item:not(.n-pagination-item--disabled):hover) {
color: #388FDF;
// border: 1px solid #388FDF;
}
:deep(.n-pagination .n-pagination-item--active:hover) {
color: #ffffff !important;
// border: 1px solid #388FDF;
}
:deep(.n-pagination .n-pagination-item) {
border: none;
width: 42px;
height: 30px;
font-size: 18px;
background: #FFFFFF;
}
:deep(.n-pagination-quick-jumper){
&:after {
content: '页'
}
}
}
</style>