保存
This commit is contained in:
parent
e0abba1a94
commit
6d292944da
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="aboutid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350x;">
|
<div style="width: 350x;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -28,7 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div :class="['lef_boxitem2', { 'active': cateid == item.id }]" v-for="(item, index) in newsListtyp"
|
<div :class="['lef_boxitem2', { 'active': cateid == item.id }]" v-for="(item, index) in newsListtyp"
|
||||||
:key="index" @click="getMesList(item.id, 1)">
|
:key="index" @click="getMesList(item.id, 1)">
|
||||||
<div class="lef_boxitem2_title">{{ item.name }}</div>
|
<div class="lef_boxitem2_title">{{ item.tabtitle }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rig_box">
|
<div class="rig_box">
|
||||||
@ -38,17 +38,16 @@
|
|||||||
<img :src="`/img/key.png`" style="width: 22px;height: 22px;">
|
<img :src="`/img/key.png`" style="width: 22px;height: 22px;">
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 18px;color: #323232;margin-left: 10px;">当前位置:首页 > 关于我们 > <span
|
<div style="font-size: 18px;color: #323232;margin-left: 10px;">当前位置:首页 > 关于我们 > <span
|
||||||
style="color: #3B90DF;">{{newsListtyp.find(item => item.id == cateid)?.name
|
style="color: #3B90DF;">{{newsListtyp.find(item => item.id == cateid)?.tabtitle
|
||||||
}}</span></div>
|
}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="background-color: #ffffff;width: 100%;padding: 18px;">
|
<div style="background-color: #ffffff;width: 100%;padding: 18px;">
|
||||||
<div
|
<div
|
||||||
style="font-weight: bold;font-size: 32px;color: #393939;text-align: center;padding: 25px 0px 25px 0;">
|
style="font-weight: bold;font-size: 32px;color: #393939;text-align: center;padding: 25px 0px 25px 0;">{{ info.title }}</div>
|
||||||
团市委的主要职责</div>
|
|
||||||
<div style="width: 100%;height: 3px;border-top: 1px dashed #BBBBBB;"></div>
|
<div style="width: 100%;height: 3px;border-top: 1px dashed #BBBBBB;"></div>
|
||||||
<div
|
<div
|
||||||
style="color: #999999;font-weight: 400;font-size: 16px;line-height: 25px;white-space: pre-line;">
|
style="color: #999999;font-weight: 400;font-size: 16px;line-height: 25px;white-space: pre-line;">
|
||||||
<div v-html="ldbz"></div>
|
<div v-html="info.content"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -79,136 +78,49 @@ import $api from '@/service/webRequest'
|
|||||||
import emitter from '@/plugins/emitter'
|
import emitter from '@/plugins/emitter'
|
||||||
const inputSearch = ref('');
|
const inputSearch = ref('');
|
||||||
const MesList = 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 page = ref(1);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const cateid = ref(1);
|
const cateid = ref(0);
|
||||||
const detailId = ref(null);
|
const detailId = ref(null);
|
||||||
|
|
||||||
const ldbz = ref(`思想引领:筑牢青年理想信念根基
|
const ldbz = ref('')
|
||||||
政治引领
|
|
||||||
组织青年学习党的理论、方针政策,特别是习近平新时代中国特色社会主义思想,开展主题教育活动(如“青年大学习”“青马工程”),引导青年坚定“四个自信”,增强“两个维护”的自觉性。
|
|
||||||
价值观培育
|
|
||||||
弘扬社会主义核心价值观,通过榜样宣传、红色教育、网络思政等方式,引导青年树立正确的人生观、价值观。例如开展“青年五四奖章”“优秀共青团员”评选,宣传青年典型事迹。
|
|
||||||
意识形态阵地建设
|
|
||||||
加强青年网络舆论引导,管理团属新媒体平台(如微信公众号、微博、短视频账号),传播正能量,抵制错误思潮,维护网络空间清朗。
|
|
||||||
二、组织建设:夯实团的基层基础
|
|
||||||
团组织覆盖与规范化
|
|
||||||
推动团的基层组织向新兴领域延伸(如非公企业、社会组织、互联网行业等),完善“智慧团建”系统,加强团员档案管理和组织关系转接。
|
|
||||||
团员发展与教育
|
|
||||||
严格团员发展程序,优化团员结构,开展团员意识教育,落实“三会两制一课”制度,增强团组织凝聚力和战斗力。
|
|
||||||
团干部队伍建设
|
|
||||||
选拔培养优秀团干部,组织专题培训、挂职锻炼,提升团干部的政治素养和业务能力,打造忠诚、干净、担当的骨干队伍。
|
|
||||||
三、服务青年:解决青年急难愁盼问题
|
|
||||||
就业创业支持
|
|
||||||
联合人社部门、企业开展“千校万岗”招聘会、职业技能培训;搭建青年创业孵化基地,提供政策咨询、资金扶持(如“青创贷”)。
|
|
||||||
婚恋与家庭服务
|
|
||||||
举办青年联谊活动,搭建婚恋交友平台;关注青年育儿需求,推动普惠性托育服务。
|
|
||||||
心理健康与法律援助
|
|
||||||
开通12355青少年服务热线,提供心理咨询、法律咨询和权益维护服务,帮助青年缓解压力、应对困境。
|
|
||||||
四、维护青年权益:当好青年利益代言人
|
|
||||||
政策倡导与落实
|
|
||||||
推动《中长期青年发展规划》在地方落地,参与制定青年发展相关政策,保障青年在教育、就业、住房等领域的合法权益。
|
|
||||||
权益保护机制
|
|
||||||
建立青少年权益代表制度,介入校园欺凌、劳动纠纷等案件;联合公检法司部门开展“法治进校园”“模拟法庭”等活动,提升青年法律意识。
|
|
||||||
特殊群体关爱
|
|
||||||
重点帮扶困境青少年(如留守儿童、残疾青年、失业青年),实施“希望工程”“阳光助学”等项目,提供物质帮扶和精神关怀。
|
|
||||||
五、志愿服务与社会动员
|
|
||||||
品牌志愿服务项目
|
|
||||||
组织青年参与大型赛会服务(如马拉松、博览会)、社区治理、生态环保(“河小青”护河行动)、助老助残等志愿活动。
|
|
||||||
应急响应与公益行动
|
|
||||||
在自然灾害、公共卫生事件中组建青年突击队,开展物资调配、心理疏导等应急服务;发起公益募捐,支援弱势群体。
|
|
||||||
志愿服务体系建设
|
|
||||||
完善志愿者注册、培训、激励机制,推广“志愿汇”平台,推动志愿服务常态化、专业化。
|
|
||||||
六、创新创业与人才培养
|
|
||||||
青年创新创业扶持
|
|
||||||
举办“创青春”创业大赛、青创论坛,对接风险投资和创业导师;推动高校与企业共建产学研合作平台。
|
|
||||||
技能提升与职业发展
|
|
||||||
开展“青年岗位能手”评选、职业技能竞赛,组织青年参与“工匠精神”培育计划,助力青年职业成长。
|
|
||||||
青年人才引进与留用
|
|
||||||
配合地方人才政策,吸引高校毕业生返乡就业;为高层次青年人才提供政策咨询、生活保障等配套服务。
|
|
||||||
七、对外交流与协同合作
|
|
||||||
青年交流项目
|
|
||||||
组织与国内外青年团体的互访活动(如“国际青年领袖对话”),促进文化交流与经验共享。
|
|
||||||
区域协同与资源整合
|
|
||||||
联动工会、妇联、科协等群团组织,整合社会资源服务青年;与高校、企业共建实践基地。
|
|
||||||
港澳台青年工作
|
|
||||||
开展港澳台青年夏令营、实习计划,增进国家认同,推动融合发展。
|
|
||||||
八、桥梁纽带作用:传达青年声音
|
|
||||||
青年诉求调研与反馈
|
|
||||||
定期开展青年发展状况调查,形成报告提交党委政府,推动青年关切问题纳入政策议程。
|
|
||||||
参政议政渠道建设
|
|
||||||
推荐优秀青年担任人大代表、政协委员,组织“共青团与人大代表、政协委员面对面”活动,畅通青年政治参与渠道。
|
|
||||||
|
|
||||||
巴黎奥运赛场上,我国体育健儿奋勇争先,取得境外参赛最好成绩,彰显了青年一代的昂扬向上、自信阳光。海军、空军喜庆75岁生日,人民子弟兵展现新风貌。面对洪涝、台风等自然灾害,广大党员干部冲锋在前,大家众志成城、守望相助。无数劳动者、建设者、创业者,都在为梦想拼搏。我为国家勋章和国家荣誉称号获得者颁奖,光荣属于他们,也属于每一个挺膺担当的奋斗者。
|
|
||||||
|
|
||||||
当今世界变乱交织,中国作为负责任大国,积极推动全球治理变革,深化全球南方团结合作。我们推进高质量共建“一带一路”走深走实,成功举办中非合作论坛北京峰会,在上合、金砖、亚太经合组织、二十国集团等双边多边场合,鲜明提出中国主张,为维护世界和平稳定注入更多正能量。
|
|
||||||
|
|
||||||
我们隆重庆祝新中国成立75周年,深情回望共和国的沧桑巨变。从五千多年中华文明的传承中一路走来,“中国”二字镌刻在“何尊”底部,更铭刻在每个华夏儿女心中。党的二十届三中全会胜利召开,吹响进一步全面深化改革的号角。我们乘着改革开放的时代大潮阔步前行,中国式现代化必将在改革开放中开辟更加广阔的前景。
|
|
||||||
|
|
||||||
2025年,我们将全面完成“十四五”规划。要实施更加积极有为的政策,聚精会神抓好高质量发展,推动高水平科技自立自强,保持经济社会发展良好势头。当前经济运行面临一些新情况,有外部环境不确定性的挑战,有新旧动能转换的压力,但这些经过努力是可以克服的。我们从来都是在风雨洗礼中成长、在历经考验中壮大,大家要充满信心。
|
|
||||||
|
|
||||||
家事国事天下事,让人民过上幸福生活是头等大事。家家户户都盼着孩子能有好的教育,老人能有好的养老服务,年轻人能有更多发展机会。这些朴实的愿望,就是对美好生活的向往。我们要一起努力,不断提升社会建设和治理水平,持续营造和谐包容的氛围,把老百姓身边的大事小情解决好,让大家笑容更多、心里更暖。
|
|
||||||
|
|
||||||
在澳门回归祖国25周年之际,我再到濠江之畔,新发展新变化令人欣喜。我们将坚定不移贯彻“一国两制”方针,保持香港、澳门长期繁荣稳定。两岸同胞一家亲,谁也无法割断我们的血脉亲情,谁也不能阻挡祖国统一的历史大势!
|
|
||||||
|
|
||||||
世界百年变局加速演进,需要以宽广胸襟超越隔阂冲突,以博大情怀关照人类命运。中国愿同各国一道,做友好合作的践行者、文明互鉴的推动者、构建人类命运共同体的参与者,共同开创世界的美好未来。
|
|
||||||
|
|
||||||
梦虽遥,追则能达;愿虽艰,持则可圆。中国式现代化的新征程上,每一个人都是主角,每一份付出都弥足珍贵,每一束光芒都熠熠生辉。
|
|
||||||
|
|
||||||
河山添锦绣,星光映万家。让我们满怀希望,迎接新的一年。祝祖国时和岁丰、繁荣昌盛!祝大家所愿皆所成,多喜乐、长安宁。`)
|
|
||||||
|
|
||||||
// 信息公开
|
// 信息公开
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
//getMesList();
|
//getMesList();
|
||||||
//getNewstypeList();
|
getNewstypeList(1);
|
||||||
})
|
})
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('aboutid');
|
||||||
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 3);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 1);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
const emit = defineEmits(['toSwpe'])
|
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 = () => {
|
const toSearch = () => {
|
||||||
// emit('toSwpe',9);
|
|
||||||
// emitter.emit('inputSea', {
|
|
||||||
// keywords:inputSearch.value,
|
|
||||||
// type: 1,
|
|
||||||
// });
|
|
||||||
window.open(`/search_info?type=1&keywords=${inputSearch.value}`)
|
window.open(`/search_info?type=1&keywords=${inputSearch.value}`)
|
||||||
}
|
}
|
||||||
const getPageList = async () => {
|
const info=ref({});
|
||||||
page.value = page.value;
|
const getMesList=async(id:number)=>{
|
||||||
getMesList();
|
cateid.value=id;
|
||||||
}
|
info.value=newsListtyp.value.find(item=>item.id==id);
|
||||||
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',
|
|
||||||
{
|
|
||||||
cate_id: cateid.value,
|
|
||||||
limit: 7,
|
|
||||||
page: page.value,
|
|
||||||
isnews: 1
|
|
||||||
}
|
|
||||||
)
|
|
||||||
total.value = res.data.data.count;
|
|
||||||
MesList.value = res.data.data.list;
|
|
||||||
}
|
}
|
||||||
const getNewstypeList = async () => {
|
const getNewstypeList = async () => {
|
||||||
const res = await $api.get('/api/home.news/cate?isnews=1')
|
const res = await $api.get(`/api/index/about_us`)
|
||||||
newsListtyp.value = res.data.data.list;
|
newsListtyp.value = res.data.data.list;
|
||||||
|
cateid.value=res.data.data.list[0].id;
|
||||||
|
info.value=res.data.data.list[0];
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -348,6 +260,7 @@ const getNewstypeList = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.rig_box {
|
.rig_box {
|
||||||
|
width: 100%;
|
||||||
.re_box {
|
.re_box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="contid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350px;">
|
<div style="width: 350px;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -93,7 +93,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { nextTick, ref } from 'vue'
|
import { defineEmits } from 'vue'
|
||||||
import $api from '@/service/webRequest'
|
import $api from '@/service/webRequest'
|
||||||
const inputSearch = ref('');
|
const inputSearch = ref('');
|
||||||
// 表单数据
|
// 表单数据
|
||||||
@ -122,6 +122,16 @@ const getLiuyanList = async () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getLiuyanList();
|
getLiuyanList();
|
||||||
})
|
})
|
||||||
|
const emit = defineEmits(['toSwpe'])
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('contid');
|
||||||
|
console.log(home.scrollTop);
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 6);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
// 表单方法
|
// 表单方法
|
||||||
const submitForm = () => {
|
const submitForm = () => {
|
||||||
console.log(formData);
|
console.log(formData);
|
||||||
|
@ -9,38 +9,7 @@
|
|||||||
<div class="b1" style="padding: 0;">
|
<div class="b1" style="padding: 0;">
|
||||||
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
|
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
|
||||||
<option value="0">省级共青团网站</option>
|
<option value="0">省级共青团网站</option>
|
||||||
<option value="http://www.bjyouth.gov.cn/">北京</option>
|
<option v-for="item in s_list" :value="item.url">{{ item.title }}</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>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -49,11 +18,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<div class="b1" style="padding: 0;">
|
<div class="b1" style="padding: 0;">
|
||||||
<select style="width: 100%;height: 41px;padding-left:15px;">
|
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
|
||||||
<option value="1">各地共青团网站</option>
|
<option value="0">各地共青团网站</option>
|
||||||
<option value="2">各地共青团网站</option>
|
<option v-for="item in d_list" :value="item.url">{{ item.title }}</option>
|
||||||
<option value="3">各地共青团网站</option>
|
|
||||||
<option value="4">各地共青团网站</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -62,11 +29,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<div class="b1" style="padding: 0;">
|
<div class="b1" style="padding: 0;">
|
||||||
<select style="width: 100%;height: 41px;padding-left:15px;">
|
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
|
||||||
<option value="1">其他</option>
|
<option value="0">其他</option>
|
||||||
<option value="2">其他</option>
|
<option v-for="item in q_list" :value="item.url">{{ item.title }}</option>
|
||||||
<option value="3">其他</option>
|
|
||||||
<option value="4">其他</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -75,11 +40,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<div class="b1" style="padding: 0;">
|
<div class="b1" style="padding: 0;">
|
||||||
<select style="width: 100%;height: 41px;padding-left:15px;">
|
<select @change="getSelect" style="width: 100%;height: 41px;padding-left:15px;">
|
||||||
<option value="1">办公入口</option>
|
<option value="0">办公入口</option>
|
||||||
<option value="2">办公入口</option>
|
<option v-for="item in b_list" :value="item.url">{{ item.title }}</option>
|
||||||
<option value="3">办公入口</option>
|
|
||||||
<option value="4">办公入口</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -172,15 +135,31 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
const selectValue = ref(false);
|
import { useStore } from '~/store'
|
||||||
|
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
const getSelect = (event: Event) => {
|
const getSelect = (event: Event) => {
|
||||||
var url = event.target.value;
|
const target = event.target as HTMLSelectElement;
|
||||||
if (url == 0) {
|
var url = target.value;
|
||||||
|
if (url == '0') {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
window.open(url);
|
window.open(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用store中的分类数据
|
||||||
|
const s_list = computed(() => store.s_list);
|
||||||
|
const d_list = computed(() => store.d_list);
|
||||||
|
const q_list = computed(() => store.q_list);
|
||||||
|
const b_list = computed(() => store.b_list);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// 调用store中的方法获取友情链接数据
|
||||||
|
store.getFriendshipLinks();
|
||||||
|
})
|
||||||
|
|
||||||
const openT = () => {
|
const openT = () => {
|
||||||
window.open('https://www.gov.cn/');
|
window.open('https://www.gov.cn/');
|
||||||
}
|
}
|
||||||
|
@ -310,17 +310,17 @@ const swiperOptionsimgs = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
const hmScroll = () => {
|
const hmScroll = () => {
|
||||||
// let home = document.getElementById('homeid');
|
let home = document.getElementById('homeid');
|
||||||
// if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
// setTimeout(function () {
|
setTimeout(function () {
|
||||||
// emit('toSwpe', 2);
|
emit('toSwpe', 2);
|
||||||
// }, 500);
|
}, 500);
|
||||||
// }
|
}
|
||||||
// if (home.scrollTop == 0) {
|
if (home.scrollTop == 0) {
|
||||||
// setTimeout(function () {
|
setTimeout(function () {
|
||||||
// emit('toSwpe', 0);
|
emit('toSwpe', 0);
|
||||||
// }, 500);
|
}, 500);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
const toSearch = () => {
|
const toSearch = () => {
|
||||||
// emit('toSwpe',9);
|
// emit('toSwpe',9);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="luoyangid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350px;">
|
<div style="width: 350px;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -108,6 +108,19 @@ onMounted(() => {
|
|||||||
//getMesList();
|
//getMesList();
|
||||||
getNewstypeList();
|
getNewstypeList();
|
||||||
})
|
})
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('luoyangid');
|
||||||
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 5);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 3);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
const emit = defineEmits(['toSwpe'])
|
const emit = defineEmits(['toSwpe'])
|
||||||
|
|
||||||
//搜索
|
//搜索
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="msgid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350px;">
|
<div style="width: 350px;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -90,14 +90,27 @@ const MesList = ref([]);
|
|||||||
const newsListtyp = ref([]);
|
const newsListtyp = ref([]);
|
||||||
const page = ref(1);
|
const page = ref(1);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const cateid = ref(null);
|
const cateid = ref(0);
|
||||||
const detailId = ref(null);
|
const detailId = ref(null);
|
||||||
|
|
||||||
// 信息公开
|
// 信息公开
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// getMesList();
|
// getMesList();
|
||||||
// getNewstypeList();
|
getNewstypeList();
|
||||||
})
|
})
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('msgid');
|
||||||
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 7);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 5);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
const emit = defineEmits(['toSwpe'])
|
const emit = defineEmits(['toSwpe'])
|
||||||
|
|
||||||
//跳转详情
|
//跳转详情
|
||||||
@ -125,15 +138,14 @@ const toSearch = () => {
|
|||||||
}
|
}
|
||||||
const getPageList = async () => {
|
const getPageList = async () => {
|
||||||
page.value = page.value;
|
page.value = page.value;
|
||||||
getMesList();
|
getMesList(cateid.value);
|
||||||
}
|
}
|
||||||
const getMesList = async (id: number, pagecru: number) => {
|
const getMesList = async (id: number) => {
|
||||||
cateid.value = id ? id : cateid.value;
|
cateid.value = id;
|
||||||
page.value = pagecru ? pagecru : page.value;
|
const res = await $api.post('/api/home.information/index',
|
||||||
const res = await $api.post('/api/home.news/index',
|
|
||||||
{
|
{
|
||||||
cate_id: cateid.value,
|
cate_id: cateid.value,
|
||||||
limit: 9,
|
limit: 7,
|
||||||
page: page.value,
|
page: page.value,
|
||||||
isnews: 1
|
isnews: 1
|
||||||
}
|
}
|
||||||
@ -142,8 +154,9 @@ const getMesList = async (id: number, pagecru: number) => {
|
|||||||
MesList.value = res.data.data.list;
|
MesList.value = res.data.data.list;
|
||||||
}
|
}
|
||||||
const getNewstypeList = async () => {
|
const getNewstypeList = async () => {
|
||||||
const res = await $api.get('/api/home.news/cate?isnews=1')
|
const res = await $api.get('/api/home.information/cate')
|
||||||
newsListtyp.value = res.data.data.list;
|
newsListtyp.value = res.data.data.list;
|
||||||
|
getMesList(res.data.data.list[0].id);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="newsid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350px;">
|
<div style="width: 350px;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -101,7 +101,19 @@ onMounted(() => {
|
|||||||
getNewstypeList();
|
getNewstypeList();
|
||||||
})
|
})
|
||||||
const emit = defineEmits(['toSwpe'])
|
const emit = defineEmits(['toSwpe'])
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('newsid');
|
||||||
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 4);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 2);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
//跳转详情
|
//跳转详情
|
||||||
const openUrl = (id: number) => {
|
const openUrl = (id: number) => {
|
||||||
window.open(`/info/${id}?type=1`)
|
window.open(`/info/${id}?type=1`)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="flex justify-between w-full h-full">
|
<div class="flex justify-between w-full h-full">
|
||||||
<!-- 左边导航栏 -->
|
<!-- 左边导航栏 -->
|
||||||
<!-- 右边内容栏 -->
|
<!-- 右边内容栏 -->
|
||||||
<div class="rightcon">
|
<div class="rightcon" id="regid" @scroll="hmScroll">
|
||||||
<div class="flex top_search ">
|
<div class="flex top_search ">
|
||||||
<div style="width: 350px;">
|
<div style="width: 350px;">
|
||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%;height: 100%;object-fit: cover;">
|
||||||
@ -146,6 +146,19 @@ onMounted(() => {
|
|||||||
getYwList();
|
getYwList();
|
||||||
//getNewstypeList();
|
//getNewstypeList();
|
||||||
})
|
})
|
||||||
|
const hmScroll = () => {
|
||||||
|
let home = document.getElementById('regid');
|
||||||
|
if (home.scrollTop + home.clientHeight >= home.scrollHeight) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe',6);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
if (home.scrollTop == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
emit('toSwpe', 4);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
const fwImg = ref([]);
|
const fwImg = ref([]);
|
||||||
//服务青年轮播图
|
//服务青年轮播图
|
||||||
const getFwImg = async () => {
|
const getFwImg = async () => {
|
||||||
|
@ -53,8 +53,8 @@
|
|||||||
<AppAboutdel></AppAboutdel>
|
<AppAboutdel></AppAboutdel>
|
||||||
</swiper-slide> -->
|
</swiper-slide> -->
|
||||||
<!-- 留言板 -->
|
<!-- 留言板 -->
|
||||||
<swiper-slide @toSwpe="toswiper">
|
<swiper-slide >
|
||||||
<AppContactUs></AppContactUs>
|
<AppContactUs @toSwpe="toswiper"></AppContactUs>
|
||||||
</swiper-slide>
|
</swiper-slide>
|
||||||
<!-- 搜索详情 -->
|
<!-- 搜索详情 -->
|
||||||
<!-- <swiper-slide :show="isSearch" id="searchid">
|
<!-- <swiper-slide :show="isSearch" id="searchid">
|
||||||
@ -158,9 +158,11 @@ const onSwiperNews = (swiper: any) => {
|
|||||||
// isMeassage.value = false;
|
// isMeassage.value = false;
|
||||||
// console.log(newsSwiper);
|
// console.log(newsSwiper);
|
||||||
swiper_exp.value = swiper.realIndex;
|
swiper_exp.value = swiper.realIndex;
|
||||||
|
// newsSwiper.mousewheel.disable();
|
||||||
|
// newsSwiper.allowTouchMove = true;// 开启拖动
|
||||||
newsSwiper.mousewheel.disable();
|
newsSwiper.mousewheel.disable();
|
||||||
newsSwiper.allowTouchMove = true;// 开启拖动
|
newsSwiper.allowTouchMove = true;// 开启拖动
|
||||||
// if (swiper.realIndex == 1 || swiper.realIndex == 5 || swiper.realIndex == 2 || swiper.realIndex == 3 || swiper.realIndex == 4 || swiper.realIndex == 6) {
|
// if (swiper.realIndex == 1) {
|
||||||
// newsSwiper.mousewheel.disable();
|
// newsSwiper.mousewheel.disable();
|
||||||
// newsSwiper.allowTouchMove = true;// 开启拖动
|
// newsSwiper.allowTouchMove = true;// 开启拖动
|
||||||
// }
|
// }
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%; height: 100%; object-fit: cover" />
|
<img :src="`/img/index/dlogo.png`" alt="" style="width: 100%; height: 100%; object-fit: cover" />
|
||||||
</div>
|
</div>
|
||||||
<div class="inputform">
|
<div class="inputform">
|
||||||
<input v-model="inputSearch" class="contactInput w-full md:w-[337px]" type="text"
|
<input v-model="keywords" class="contactInput w-full md:w-[337px]" type="text"
|
||||||
placeholder="请输入搜索关键字" />
|
placeholder="请输入搜索关键字" />
|
||||||
<div class="search_rinput">
|
<div class="search_rinput" @click="getNewsdetail()">
|
||||||
<img src="/img/index/hmsearch.png" alt="" />
|
<img src="/img/index/hmsearch.png" alt="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -115,6 +115,7 @@ const detailId = ref(null);
|
|||||||
const datas = ref(null);
|
const datas = ref(null);
|
||||||
const keywords = ref(route.query.keywords)
|
const keywords = ref(route.query.keywords)
|
||||||
const types = ref(route.query.type)
|
const types = ref(route.query.type)
|
||||||
|
const inputSearch=ref('');
|
||||||
// emitter.on('inputSea', (data) => {
|
// emitter.on('inputSea', (data) => {
|
||||||
// console.log(data,111111)
|
// console.log(data,111111)
|
||||||
// datas.value = data;
|
// datas.value = data;
|
||||||
@ -179,6 +180,7 @@ const gotoDetails = (id: number) => {
|
|||||||
|
|
||||||
// 新闻/百科/信息公开 搜索
|
// 新闻/百科/信息公开 搜索
|
||||||
const getNewsdetail = async () => {
|
const getNewsdetail = async () => {
|
||||||
|
console.log(types.value);
|
||||||
// 新闻
|
// 新闻
|
||||||
if (types.value == 1) {
|
if (types.value == 1) {
|
||||||
|
|
||||||
@ -186,9 +188,10 @@ const getNewsdetail = async () => {
|
|||||||
{
|
{
|
||||||
keywords:keywords.value,
|
keywords:keywords.value,
|
||||||
page:1,
|
page:1,
|
||||||
limit:30
|
limit:10
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
console.log(res.data.data.list);
|
||||||
Newsdetailist.value = res.data.data.list;
|
Newsdetailist.value = res.data.data.list;
|
||||||
}else if(types.value == 2){
|
}else if(types.value == 2){
|
||||||
//信息公开
|
//信息公开
|
||||||
|
@ -7,10 +7,19 @@ export const useStore = defineStore({
|
|||||||
tempApiData: {}, // 存储API返回的临时数据
|
tempApiData: {}, // 存储API返回的临时数据
|
||||||
serApiData: {}, // 存储API返回的临时数据
|
serApiData: {}, // 存储API返回的临时数据
|
||||||
isEnglish: 'zh', // 判断是否是英文
|
isEnglish: 'zh', // 判断是否是英文
|
||||||
|
// 友情链接相关状态
|
||||||
|
friendshipLinks: [], // 存储友情链接原始数据
|
||||||
|
isLinksLoaded: false, // 标识友情链接数据是否已加载
|
||||||
|
_friendshipLinksPromise: null as Promise<any> | null, // 私有Promise缓存
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
// 获取临时API数据的getter
|
// 获取临时API数据的getter
|
||||||
getTempApiData: state => state.tempApiData,
|
getTempApiData: state => state.tempApiData,
|
||||||
|
// 友情链接分类数据的getter
|
||||||
|
s_list: state => state.friendshipLinks.filter((item: any) => item.status == 1),
|
||||||
|
d_list: state => state.friendshipLinks.filter((item: any) => item.status == 2),
|
||||||
|
q_list: state => state.friendshipLinks.filter((item: any) => item.status == 3),
|
||||||
|
b_list: state => state.friendshipLinks.filter((item: any) => item.status == 4),
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
// 保存API返回的临时数据
|
// 保存API返回的临时数据
|
||||||
@ -28,6 +37,45 @@ export const useStore = defineStore({
|
|||||||
clearTempApiData() {
|
clearTempApiData() {
|
||||||
this.tempApiData = {}
|
this.tempApiData = {}
|
||||||
},
|
},
|
||||||
|
// 获取友情链接数据
|
||||||
|
async getFriendshipLinks() {
|
||||||
|
// 如果数据已经加载过,直接返回
|
||||||
|
if (this.isLinksLoaded) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果已经有正在进行的请求,直接返回该Promise
|
||||||
|
if (this._friendshipLinksPromise) {
|
||||||
|
return this._friendshipLinksPromise
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建新的Promise并缓存
|
||||||
|
this._friendshipLinksPromise = this._loadFriendshipLinks()
|
||||||
|
|
||||||
|
try {
|
||||||
|
await this._friendshipLinksPromise
|
||||||
|
} catch (error) {
|
||||||
|
// 如果请求失败,清除缓存的Promise,允许重新尝试
|
||||||
|
this._friendshipLinksPromise = null
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 私有方法:实际执行API调用
|
||||||
|
async _loadFriendshipLinks() {
|
||||||
|
try {
|
||||||
|
// 动态导入API模块
|
||||||
|
const { default: $api } = await import('@/service/webRequest')
|
||||||
|
const res = await $api.get('/api/index/friendship_link')
|
||||||
|
this.friendshipLinks = res.data.data.list
|
||||||
|
this.isLinksLoaded = true
|
||||||
|
console.log('友情链接数据已加载:', res.data.data)
|
||||||
|
return res.data.data
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取友情链接数据失败:', error)
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user