对接接口

This commit is contained in:
王创世 2025-07-03 18:02:06 +08:00
parent c6e567215b
commit e0abba1a94
14 changed files with 214 additions and 129 deletions

View File

@ -4,14 +4,43 @@
<div class="text-wrapper_13 flex-row">
<div class="fly1s" style="margin-top: 40px;">
<div class="db-flex">
<div class="b1">中央人民政府</div>
<div class="b1" @click="openT()">中央人民政府</div>
<div style="display: flex;">
<div class="b1" style="padding: 0;">
<select style="width: 100%;height: 41px;padding-left:15px;">
<option value="1">省级共青团网站</option>
<option value="2">省级共青团网站</option>
<option value="3">省级共青团网站</option>
<option value="4">省级共青团网站</option>
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
<option value="0">省级共青团网站</option>
<option value="http://www.bjyouth.gov.cn/">北京</option>
<option value="http://www.youthtj.org.cn/">天津</option>
<option value="http://www.54heb.org.cn/">河北</option>
<option value="http://www.sxccyl.gov.cn/">山西</option>
<option value="http://www.nmyouth.org.cn/">内蒙古</option>
<option value="http://www.liaoninggqt.org.cn/">辽宁</option>
<option value="http://www.jl54.org/">吉林</option>
<option value="http://www.hljgqt.gov.cn/">黑龙江</option>
<option value="https://www.shyouth.net/html/1/index.html">上海</option>
<option value="http://www.jiangsugqt.org/">江苏</option>
<option value="https://www.zjgqt.org/">浙江</option>
<option value="http://www.ahyouth.org.cn/base/">安徽</option>
<option value="http://www.fjcyl.com/">福建</option>
<option value="http://www.jxyouth.org.cn/">江西</option>
<option value="http://www.sdyl.gov.cn/">山东</option>
<option value="http://www.hnyouth.org.cn/">河南</option>
<option value="http://www.hbgqt.org.cn/">湖北</option>
<option value="https://www.hngqt.org.cn/">湖南</option>
<option value="https://www.gdcyl.org/Index.html">广东</option>
<option value="http://www.gxgqt.org.cn/">广西</option>
<option value="http://www.hngqt.cn/">海南</option>
<option value="http://www.cqyl.org.cn/">重庆</option>
<option value="http://scgqt.gov.cn/home/">四川</option>
<option value="http://www.gzyouth.cn/">贵州</option>
<option value="http://www.yngqt.org.cn/">云南</option>
<option value="https://youth.xzdw.gov.cn/">西藏</option>
<option value="https://www.sxgqt.org.cn/">陕西</option>
<option value="https://www.gsgqt.gov.cn/">甘肃</option>
<option value="https://www.qhgqt.org.cn/index.html">青海</option>
<option value="https://www.nxgqt.org/">宁夏</option>
<option value="https://www.ts.cn/zxpd/zt3511/tw/index.html">新疆</option>
<option value="http://tw.xjbt.gov.cn/">新疆生产建设兵团</option>
</select>
</div>
<div>
@ -144,6 +173,17 @@
<script lang="ts" setup>
const selectValue = ref(false);
const getSelect = (event: Event) => {
var url = event.target.value;
if (url == 0) {
return;
}else{
window.open(url);
}
}
const openT = ()=>{
window.open('https://www.gov.cn/');
}
</script>
<style lang="scss" scoped>
@ -241,10 +281,12 @@ const selectValue = ref(false);
.db-flex {
gap: 10px;
}
.b1{
.b1 {
width: 180px;
}
.image_29{
.image_29 {
margin-right: 0px;
}
}

View File

@ -135,23 +135,8 @@
</div>
<div class="qn"
style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 20px;">
<div>
<img :src="`/img/home/1.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/2.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/3.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/4.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/5.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/6.png`" alt=""></img>
<div v-for="item in fwImg" @click="openWeb(item)">
<img :src="item.image" alt=""></img>
</div>
</div>
</div>
@ -345,6 +330,17 @@ const toSearch = () => {
// });
window.open(`/search_info?type=1&keywords=${inputSearch.value}`)
}
const openWeb = (item) =>{
//out in
if(item.type=='out'){
window.open(item.url);
}else{
window.open(`/info/${item.url}?type=1`)
}
console.log(item)
}
//
const toMore = (index:number) => {
emit('toSwpe', index);
@ -441,13 +437,19 @@ const getNewstypeList = async () => {
//
const getxsImg = async () => {
const res = await $api.get('/api/index/images?page=1&limit=3')
const res = await $api.get('/api/index/images?page=1&limit=9&status=1')
xsImg.value = res.data.data.list;
}
const fwImg = ref([]);
//
const getFwImg = async () => {
const res = await $api.get('/api/index/images?page=1&limit=9&status=2')
fwImg.value = res.data.data.list;
}
onMounted(() => {
window.addEventListener('scroll', hmScroll);
getxsImg();
getFwImg();
getNewstypeList();
})
const changeListIndex = async (id: number) => {

View File

@ -40,16 +40,15 @@
</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px;">
<div v-for="item in 9" class="ly_list" @mousemove="showCodeDo(item)"
<div v-for="item in MesList" class="ly_list" @mousemove="showCodeDo(item)"
@click="showCodeDo(item)">
<div>
<img class="ly_list_img" :src="`/img/d.png`">
<div class="ly_list_text">
洛阳市共青团:抖音</div>
<img class="ly_list_img" :src="item.image">
<div class="ly_list_text">{{item.title }}</div>
</div>
<div v-if="showCode == item"
style="display: flex;justify-content: center;align-items: center;position: absolute;bottom: 0;left: 0;right: 0;width: 100%;height:100%;background: rgba(0,0,0,0.5);">
<img class="ly_list_img_act" :src="`/img/dycode.jpg`">
<img class="ly_list_img_act" :src="item.qrimage">
</div>
</div>
</div>
@ -57,7 +56,17 @@
</div>
</div>
<div class="flex flex-row justify-center pages_tsw" style="margin-top: 20px;">
<n-pagination v-model:page="page" :page-sizes="[9]" :item-count="total" size="medium"
@update:page="getPageList" show-quick-jumper>
<template #goto>
到第
</template>
<template #prefix="{ itemCount }">
{{ itemCount }}
</template>
</n-pagination>
</div>
<AppFooter></AppFooter>
<!-- 右分享 -->
<!-- <div style="position: absolute;top: 300px;right:36px;" class="flex flex-col fiximg">
@ -81,7 +90,7 @@ import $api from '@/service/webRequest'
import emitter from '@/plugins/emitter'
const inputSearch = ref('');
const MesList = ref([]);
const newsListtyp = ref([{ id: 1, name: '市本级' }, { id: 2, name: '各县(区)' }, { id: 3, name: '市属高校' }, { id: 4, name: '市属企业' }, { id: 5, name: '其它' },]);
const newsListtyp = ref([]);
const page = ref(1);
const total = ref(0);
const cateid = ref(1);
@ -90,27 +99,17 @@ const showCode = ref(0);
const showCodeDo = (id: number) => {
showCode.value = id;
}
const getPageList = async () => {
page.value = page.value;
getMesList(cateid.value);
}
//
onMounted(() => {
//getMesList();
//getNewstypeList();
getNewstypeList();
})
const emit = defineEmits(['toSwpe'])
//
const openUrl = (id: number) => {
window.open(`/info/${id}?type=1`)
}
//
// const gotoDetail = (id: number) => {
// detailId.value = {
// id: id,
// type: '1'
// };
// localStorage.setItem('detailId', JSON.stringify(detailId.value));
// emit('toSwpe',6)
// emitter.emit('detailId', detailId.value);
// }
//
const toSearch = () => {
// emit('toSwpe',9);
@ -120,28 +119,24 @@ const toSearch = () => {
// });
window.open(`/search_info?type=1&keywords=${inputSearch.value}`)
}
const getPageList = async () => {
page.value = page.value;
getMesList();
}
const getMesList = async (id: number) => {
cateid.value = id;
//cateid.value = id ? id : cateid.value;
// page.value = pagecru ? pagecru : page.value;
// const res = await $api.post('/api/home.news/index',
// {
// cate_id: cateid.value,
// limit: 9,
// page: page.value,
// isnews: 1
// }
// )
// total.value = res.data.data.count;
// MesList.value = res.data.data.list;
const res = await $api.post('/api/home.media_matrix/index',
{
cate_id: cateid.value,
page: page.value,
limit:9
}
)
total.value = res.data.data.count;
MesList.value = res.data.data.list;
}
const getNewstypeList = async () => {
const res = await $api.get('/api/home.news/cate?isnews=1')
const res = await $api.get('/api/home.media_matrix/cate')
newsListtyp.value = res.data.data.list;
getMesList(res.data.data.list[0].id);
}
</script>
@ -287,6 +282,42 @@ const getNewstypeList = async () => {
margin: 0 auto;
}
.pages_tsw {
padding:30px 0px 0px 270px;
: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: '页'
}
}
}
@media (max-width: 1440px) {
.top_search {
width: 920px;

View File

@ -95,14 +95,14 @@ const detailId = ref(null);
//
onMounted(() => {
getMesList();
getNewstypeList();
// getMesList();
// getNewstypeList();
})
const emit = defineEmits(['toSwpe'])
//
const openUrl = (id: number) => {
window.open(`/info/${id}?type=1`)
window.open(`/info/${id}?type=2`)
}
//
// const gotoDetail = (id: number) => {

View File

@ -25,23 +25,8 @@
<div style="margin-top: 25px;">
<div class="qn"
style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 20px;">
<div>
<img :src="`/img/home/1.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/2.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/3.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/4.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/5.png`" alt=""></img>
</div>
<div>
<img :src="`/img/home/6.png`" alt=""></img>
<div style="cursor: pointer;" v-for="item in fwImg" @click="openWeb(item)">
<img :src="item.image" alt=""></img>
</div>
</div>
</div>
@ -69,17 +54,17 @@
</div>
</div>
<div style="width: 100%;height: 1px;background-color: #EEEEEE;"></div>
<div v-for="(item, index) in 7" :key="index">
<div class="re_box_item">
<div v-for="(item, index) in MesList" :key="index">
<div class="re_box_item" @click="openUrl(item.id)">
<div class="re_title">
<div class="flex align-center">
<div class="dian"></div>
<span class="one-line-ellipsis rm-span">习近平推进中习近平推进中国式现代化要继续把制造业搞好国式现代化要继续把制造业搞好</span>
<span class="one-line-ellipsis rm-span">{{ item.title }}</span>
</div>
<span class="one-line-ellipsis" style="color: #999999;">05-26</span>
<span class="one-line-ellipsis" style="color: #999999;">{{ item.release_time_text.slice(5, 10) }}</span>
</div>
</div>
<div v-if="index != 6"
<div v-if="index < MesList.length-1"
style="width: 95%;height: 1px;background-color: #EEEEEE;margin: 0 auto;"></div>
</div>
</div>
@ -102,16 +87,16 @@
</div>
</div>
<div style="width: 100%;height: 1px;background-color: #EEEEEE;"></div>
<div v-for="(item, index) in 7" :key="index">
<div class="re_box_item">
<div v-for="(item, index) in YwList" :key="index">
<div class="re_box_item" @click="openUrl(item.id)">
<div class="re_title">
<div class="flex align-center">
<div class="dian"></div>
<span class="one-line-ellipsis gw-span">中国共产主义青年团的性质是什么中国共产主义青年团的性质是什么?</span>
<span class="one-line-ellipsis gw-span">{{ item.title}}</span>
</div>
</div>
</div>
<div v-if="index != 6"
<div v-if="index < YwList.length-1"
style="width: 95%;height: 1px;background-color: #EEEEEE;margin: 0 auto;"></div>
</div>
</div>
@ -145,7 +130,7 @@ import $api from '@/service/webRequest'
import emitter from '@/plugins/emitter'
const inputSearch = ref('');
const MesList = ref([]);
const newsListtyp = ref([{ id: 1, name: '市本级' }, { id: 2, name: '各县(区)' }, { id: 3, name: '市属高校' }, { id: 4, name: '市属企业' }, { id: 5, name: '其它' },]);
const newsListtyp = ref([]);
const page = ref(1);
const total = ref(0);
const cateid = ref(1);
@ -156,9 +141,26 @@ const showCodeDo = (id: number) => {
}
//
onMounted(() => {
//getMesList();
getFwImg();
getMesList();
getYwList();
//getNewstypeList();
})
const fwImg = ref([]);
//
const getFwImg = async () => {
const res = await $api.get('/api/index/images?page=1&limit=9&status=2')
fwImg.value = res.data.data.list;
}
const openWeb = (item) =>{
//out in
if(item.type=='out'){
window.open(item.url);
}else{
window.open(`/info/${item.url}?type=1`)
}
console.log(item)
}
const emit = defineEmits(['toSwpe'])
const toMore = () => {
@ -167,7 +169,7 @@ const toMore = () => {
//
const openUrl = (id: number) => {
window.open(`/info/${id}?type=1`)
window.open(`/info/${id}?type=3`)
}
//
// const gotoDetail = (id: number) => {
@ -188,24 +190,26 @@ const toSearch = () => {
// });
window.open(`/search_info?type=1&keywords=${inputSearch.value}`)
}
const getPageList = async () => {
page.value = page.value;
getMesList();
const getMesList = async () => {
const res = await $api.post('/api/home.encyclopedia/index',
{
cate_id:'102',
limit: 7,
page: 1,
}
)
MesList.value = res.data.data.list;
}
const getMesList = async (id: number) => {
cateid.value = id;
//cateid.value = id ? id : cateid.value;
// page.value = pagecru ? pagecru : page.value;
// const res = await $api.post('/api/home.news/index',
// {
// cate_id: cateid.value,
// limit: 9,
// page: page.value,
// isnews: 1
// }
// )
// total.value = res.data.data.count;
// MesList.value = res.data.data.list;
const YwList =ref([]);
const getYwList = async () => {
const res = await $api.post('/api/home.encyclopedia/index',
{
cate_id:'103',
limit: 7,
page: 1,
}
)
YwList.value = res.data.data.list;
}
const getNewstypeList = async () => {
const res = await $api.get('/api/home.news/cate?isnews=1')

View File

@ -22,8 +22,14 @@
<div>
<img :src="`/img/key.png`" style="width: 22px;height: 22px;">
</div>
<div style="font-size: 18px;color: #323232;margin-left: 10px;">当前位置首页 > 团务百科 > <span
style="color: #3B90DF;">文章详情</span></div>
<div v-if="Newsdetail != null" style="font-size: 18px;color: #323232;margin-left: 10px;">
<div class='re_mian'>
<span>{{ title_left }}</span>
<span> > </span>
<span v-if="Newsdetail.cate != null">{{ Newsdetail.cate.name }}</span>
<span v-if="Newsdetail.cate != null"> > </span>
<span style="color: rgb(59, 144, 223);">文章详情</span></div>
</div>
</div>
</div>
<div class="News_box h-auto">
@ -32,8 +38,8 @@
<div class="re_box">
<div class="re_box_item" v-if="Newsdetail != null && Newsdetail.type == 1">
<div class='re_mian' v-if="Newsdetail.cate != null">{{ title_left + ' > ' +
Newsdetail.cate.name + ' > ' + '正文内容' }} </div>
<!-- <div class='re_mian' v-if="Newsdetail.cate != null">{{ title_left + ' > ' +
Newsdetail.cate.name + ' > ' + '正文内容' }} </div> -->
<div class="re_title">{{ Newsdetail.title }}</div>
<div class='flex justify-between re_rouse'>
<span>{{ Newsdetail.release_time_text }}</span>
@ -379,7 +385,6 @@ onMounted(() => {
font-weight: 500;
font-size: 28px;
color: #393939;
margin-top: 10px;
}
.re_content {

View File

@ -64,7 +64,7 @@
</div>
<div class="flex flex-row justify-center pages_tsw" style="margin-top: 20px;">
<n-pagination v-model:page="page" :page-sizes="[7]" :item-count="total" size="medium"
<n-pagination v-model:page="page" :page-sizes="[9]" :item-count="total" size="medium"
@update:page="getPageList" show-quick-jumper>
<template #goto>
到第
@ -101,19 +101,19 @@ const MesList = ref([]);
const newsListtyp = ref([]);
const page = ref(1);
const total = ref(0);
const cateid = ref(null);
const cateid = ref(0);
const detailId = ref(null);
//
onMounted(() => {
getMesList();
//getMesList();
getNewstypeList();
})
const emit = defineEmits(['toSwpe'])
//
const openUrl = (id: number) => {
window.open(`/info/${id}?type=1`)
window.open(`/info/${id}?type=3`)
}
//
// const gotoDetail = (id: number) => {
@ -136,12 +136,12 @@ const toSearch = () => {
}
const getPageList = async () => {
page.value = page.value;
getMesList();
getMesList(cateid.value);
}
const getMesList = async (id: number, pagecru: number) => {
cateid.value = id ? id : cateid.value;
page.value = pagecru ? pagecru : page.value;
const res = await $api.post('/api/home.news/index',
const getMesList = async (id: number) => {
cateid.value = id;
//page.value = pagecru ? pagecru : page.value;
const res = await $api.post('/api/home.encyclopedia/index',
{
cate_id: cateid.value,
limit: 9,
@ -153,8 +153,9 @@ const getMesList = async (id: number, pagecru: number) => {
MesList.value = res.data.data.list;
}
const getNewstypeList = async () => {
const res = await $api.get('/api/home.news/cate?isnews=1')
const res = await $api.get('/api/home.encyclopedia/cate')
newsListtyp.value = res.data.data.list;
getMesList(res.data.data.list[0].id);
}
</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB