百色农校完成

This commit is contained in:
2025-05-08 11:13:53 +08:00
parent fa370af4fe
commit 1062d2d9f4
27 changed files with 216 additions and 93 deletions

View File

@@ -29,9 +29,12 @@ const config = useConfigInfo();
<Link /> <Link />
<!-- 版权信息 --> <!-- 版权信息 -->
<div class="w-full xl:w-screen-xl xl:px-0 px-4 w-full m-auto flex flex-col sm:justify-between justify-center items-center py-3 text-center text-sm"> <div class="w-full xl:w-screen-xl xl:px-0 px-4 w-full m-auto flex flex-col sm:justify-between justify-center items-center py-3 text-center text-sm">
<div class="my-4">
<el-avatar :src="config?.wxQrcode" shape="square" :size="100" />
</div>
<div class="text-gray-400 sm:gap-xs leading-7 flex flex-col sm:flex-row"> <div class="text-gray-400 sm:gap-xs leading-7 flex flex-col sm:flex-row">
<span>Copyright © {{ new Date().getFullYear() }} {{ config?.copyright }}</span> <span>Copyright © {{ new Date().getFullYear() }} {{ config?.copyright }}</span>
<nuxt-link to="https://beian.miit.gov.cn/" class="visited:text-gray-400 hover:text-gray-200" target="_blank"> <span>备案号{{ config?.icpNo }}</span></nuxt-link> <nuxt-link to="https://beian.miit.gov.cn/" target="_blank"> <span class="text-gray-400 visited:text-gray-400 hover:text-gray-200">备案号{{ config?.icpNo }}</span></nuxt-link>
</div> </div>
<div class="tools flex items-center opacity-80 hover:opacity-90 text-gray-300 text-xs mt-5"> <div class="tools flex items-center opacity-80 hover:opacity-90 text-gray-300 text-xs mt-5">
Powered by <a rel="nofollow" href="https://site.websoft.top" target="_blank" class="visited:text-gray-300 hover:text-gray-200 ml-1">·企业官网</a> Powered by <a rel="nofollow" href="https://site.websoft.top" target="_blank" class="visited:text-gray-300 hover:text-gray-200 ml-1">·企业官网</a>

View File

@@ -13,7 +13,7 @@
</div> </div>
</template> </template>
<div class="flex flex-col text-base"> <div class="flex flex-col text-base">
<p class="text-base text-gray-400 py-2 font-bold">扫一扫关注公众号</p> <p class="text-base text-[#83adf6ff] font-bold">扫一扫关注公众号</p>
<el-avatar :src="config.wxQrcode" shape="square" :size="120" /> <el-avatar :src="config.wxQrcode" shape="square" :size="120" />
</div> </div>
</div> </div>

View File

@@ -86,6 +86,7 @@ import {listCmsLangLog} from "~/api/cms/cmsLangLog";
const token = useToken(); const token = useToken();
const user = useUser(); const user = useUser();
const navigations = useMenu(); const navigations = useMenu();
const config = useConfigInfo();
const setting = useSetting(); const setting = useSetting();
const keywords = ref<string>(); const keywords = ref<string>();
const drawer = ref<boolean>(false); const drawer = ref<boolean>(false);

View File

@@ -15,11 +15,11 @@ const onSearch = () => {
<template> <template>
<div class="head-bg bg-blue-50 text-gray-400 px-2"> <div class="head-bg bg-blue-50 text-gray-400 px-2">
<div class=" flex justify-between items-center xl:w-screen-xl m-auto sm:px-0 w-full"> <div class=" flex justify-between items-center xl:w-screen-xl m-auto sm:px-0 w-full">
<span class="text-white">{{ config?.topWelcomeInfo }}</span> <span class="text-white text-sm">{{ config?.topWelcomeInfo }}</span>
<div class="lang flex justify-center text-center items-center"> <div class="lang flex justify-center text-center items-center">
<el-space size="large"> <el-space size="large">
<a :href="`/zh?spm=zh_CN`" class="text-xs flex items-center hidden-sm-and-down"><el-icon color="#fff" size="16"><Message /></el-icon><span class="text-white px-1">校长信箱</span></a> <a href="mailto:1145119853@qq.com" class="text-sm flex items-center hidden-sm-and-down"><el-icon color="#fff" size="16"><Message /></el-icon><span class="text-white px-1">校长信箱</span></a>
<a :href="`https://old.gxbsnx.com`" class="text-xs flex items-center hidden-sm-and-down"><el-icon color="#fff" size="16"><Message /></el-icon><span class="text-white px-1">旧版</span></a> <a :href="`https://www.gxbsnx.com`" class="text-sm flex items-center hidden-sm-and-down"><el-icon color="#fff" size="16"><Message /></el-icon><span class="text-white px-1">旧版</span></a>
<div class="search mx-5 hidden-sm-and-down"> <div class="search mx-5 hidden-sm-and-down">
<div class="fl"> <div class="fl">
<el-input v-model="keyword" :placeholder="`${$t('searchKeywords')}...`" :suffix-icon="Search" @change="onSearch" /> <el-input v-model="keyword" :placeholder="`${$t('searchKeywords')}...`" :suffix-icon="Search" @change="onSearch" />

View File

@@ -19,7 +19,7 @@ const props = withDefaults(
<div class="n-right fr"> <div class="n-right fr">
<h3><a :href="detail(item)" :title="item.title">{{ item.title }}</a></h3> <h3><a :href="detail(item)" :title="item.title">{{ item.title }}</a></h3>
<div v-html="item.comments" class="line-clamp-2"></div> <div v-html="item.comments" class="line-clamp-2"></div>
<div class="date">{{ $t('createTime') }}{{ dayjs(item.createTime).format('YYYY-MM-DD') }}</div> <div class="date">{{ $t('createTime') }}{{ dayjs(item.createTime).format('YYYY.MM.DD') }}</div>
<div class="n-more" ><a :href="detail(item)" >{{ $t('seeMore') }}>></a></div> <div class="n-more" ><a :href="detail(item)" >{{ $t('seeMore') }}>></a></div>
</div> </div>
</li> </li>

View File

@@ -1,19 +1,15 @@
<template> <template>
<div class="xl:w-screen-xl m-auto py-4 px-4 lg:px-0"> <div class="xl:w-screen-xl m-auto py-4 px-4 lg:px-0">
<div class="text-center flex flex-col items-center z-0 relative"> <div class="text-center flex justify-between items-center z-0 relative my-5">
<h2 class="text-4xl font-bold tracking-tight text-gray-800 dark:text-white"> <el-space class="text-3xl font-bold text-green-600 flex items-center"><el-icon><Tickets /></el-icon>百农新闻</el-space>
{{ '百农新闻' }} <nuxt-link to="/article/4151.html">
</h2> <span class="text-lg font-bold tracking-tight text-gray-800 hover:text-red-500 dark:text-white">{{ '进入新闻中心' }}</span>
<div class="sub-title"> </nuxt-link>
<p class="text-gray-400 text-sm dark:text-gray-400 py-3">
{{ 'BaiSe NongXiao News' }}
</p>
</div>
</div> </div>
<el-card shadow="hover"> <el-card shadow="hover">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :lg="10" :xs="24"> <el-col :lg="10" :xs="24">
<HotNewsCarousel /> <HotNewsCarousel v-if="imgList.length > 0" :data="imgList" />
</el-col> </el-col>
<el-col :lg="14" :xs="24" class="w-full h-auto"> <el-col :lg="14" :xs="24" class="w-full h-auto">
<template v-for="(item, index) in list" :key="index"> <template v-for="(item, index) in list" :key="index">
@@ -21,7 +17,7 @@
<div class="text-lg my-3 flex justify-between"> <div class="text-lg my-3 flex justify-between">
<span class="title text-gray-800 hover:text-green-700 text-sm lg:text-lg">{{ item.title }}</span> <span class="title text-gray-800 hover:text-green-700 text-sm lg:text-lg">{{ item.title }}</span>
<span class="text-gray-400 text-sm text-right w-[100px]">{{ <span class="text-gray-400 text-sm text-right w-[100px]">{{
dayjs(item.createTime).format('MM-DD') dayjs(item.createTime).format('YYYY.MM.DD')
}}</span> }}</span>
</div> </div>
</nuxt-link> </nuxt-link>
@@ -35,12 +31,17 @@
<script lang="ts" setup> <script lang="ts" setup>
import { navigateTo } from '#imports'; import { navigateTo } from '#imports';
import {
ArrowRight,
Tickets
} from '@element-plus/icons-vue'
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import type { CmsArticle } from '~/api/cms/cmsArticle/model'; import type { CmsArticle } from '~/api/cms/cmsArticle/model';
import { pageCmsArticle } from '~/api/cms/cmsArticle'; import { pageCmsArticle } from '~/api/cms/cmsArticle';
import HotNewsCarousel from '~/components/Index/HotNewsCarousel.vue'; import HotNewsCarousel from "~/components/Index/HotNewsCarousel.vue";
const list = ref<CmsArticle[]>([]); const list = ref<CmsArticle[]>([]);
const imgList = ref<CmsArticle[]>([]);
// 请求数据 // 请求数据
const reload = async () => { const reload = async () => {
@@ -51,6 +52,14 @@
}).then(res => { }).then(res => {
list.value = res?.list || []; list.value = res?.list || [];
}); });
pageCmsArticle({
recommend: 1,
limit: 5,
lang: getLang()
}).then(res => {
imgList.value = res?.list || [];
})
}; };
onMounted(() => { onMounted(() => {
reload(); reload();

View File

@@ -1,12 +1,11 @@
<template> <template>
<div style="margin-top: 210px;" class="w-full bg-white mb-3 hidden-sm-and-down" v-if="ad"> <div style="margin-top: 210px;" class="w-full bg-white mb-3 hidden-sm-and-down" v-if="ad">
<el-carousel :height="`${ad?.height || '500'}px`"> <el-carousel id="flash1" :height="`${ad?.height || '500'}px`">
<el-carousel-item v-for="(item,index) in ad?.imageList" :key="index"> <el-carousel-item v-for="(item,index) in ad?.imageList" :key="index">
<div class="item relative flex justify-center items-center"> <div class="item relative flex justify-center items-center">
<el-image :src="item.url" fit="fill" class="w-full" :style="`height: ${ad?.height}px;`" /> <el-image :src="item.url" fit="fill" class="w-full" :style="`height: ${ad?.height}px;`" />
<!-- fit: '' | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'--> <!-- fit: '' | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'-->
</div> </div>
{{ad.height}}==
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>

View File

@@ -0,0 +1,85 @@
<template>
<div v-if="list" style="margin-top: 210px;" class="w-full bg-white mb-3 hidden-sm-and-down">
<el-carousel id="flash1" :height="flashHeight + 'px'" :interval="2000">
<el-carousel-item v-for="(item,index) in list" :key="index">
<div class="item relative flex justify-center items-center">
<el-image :src="`${FILE_SERVER}${item.image}`" fit="fill" class="w-full" :style="`height: 300px;`" />
<!-- fit: '' | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'-->
</div>
</el-carousel-item>
</el-carousel>
</div>
<!-- 移动端 -->
<!-- <div class="sm:hidden w-full bg-white mt-[38px] mb-3 hidden-sm-and-up" v-if="ad">-->
<!-- <el-carousel indicator-position="none" height="200">-->
<!-- <el-carousel-item v-for="(item,index) in ad?.imageList" :key="index">-->
<!-- <el-image :src="item.url" />-->
<!-- </el-carousel-item>-->
<!-- </el-carousel>-->
<!-- </div>-->
</template>
<script setup lang="ts">
import type {CompanyParam} from "~/api/system/company/model";
import type {CmsAd} from "~/api/cms/cmsAd/model";
import {getCmsAd, pageCmsAd} from "~/api/cms/cmsAd";
import {pageCmsArticle} from "~/api/cms/cmsArticle";
import type {CmsArticle} from "~/api/cms/cmsArticle/model";
import {FILE_SERVER} from "~/config";
const props = withDefaults(
defineProps<{
config?: any;
list?: any[];
disabled?: boolean;
title?: string;
comments?: string;
}>(),
{
title: '卡片标题',
comments: '卡片描述'
}
);
const emit = defineEmits<{
(e: 'done'): void;
}>();
const isMobile = useIsMobile();
const list = ref<CmsArticle[]>([]);
const flashHeight = ref<number>(372)
// 搜索表单
const where = reactive<CompanyParam>({
keywords: ''
});
// 请求数据
const reload = async () => {
pageCmsArticle({
recommend: 1,
limit: 5,
lang: getLang()
}).then(res => {
list.value = res?.list || [];
})
if(isMobile.value){
flashHeight.value = 260;
}
}
watch(
() => props.config,
() => {
reload();
},
{immediate: true}
);
</script>
<style>
.hidden-sm-and-up .el-carousel{
height: 160px;
}
</style>

View File

@@ -33,7 +33,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" /> <el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,16 +1,20 @@
<template> <template>
<div class="xl:w-screen-xl m-auto py-4 px-4 sm:px-0"> <div class="xl:w-screen-xl m-auto py-4 px-4 sm:px-0">
<div class="text-center flex flex-col items-center z-0 relative"> <div class="text-center flex justify-between items-center z-0 relative my-5">
<h2 class="text-4xl font-bold tracking-tight text-gray-800 dark:text-white"> <el-space class="text-3xl font-bold text-green-600 flex items-center"><el-icon><CameraFilled /></el-icon>校园风光</el-space>
{{ title || '热点新闻' }} <nuxt-link :to="`/article/4145.html`" class="font-normal text-sm text-gray-400 flex items-center cursor-pointer">查看更多<el-icon><ArrowRight /></el-icon></nuxt-link>
</h2>
<div class="sub-title">
<p class="text-gray-400 text-sm dark:text-gray-400 py-3">
{{ comments || 'Unlimited Scenery' }}
</p>
</div> </div>
</div> <!-- <div class="text-center flex flex-col items-center z-0 relative">-->
<el-row :gutter="24" id="container" class="clearfix"> <!-- <nuxt-link to="/article/4145.html">-->
<!-- <span class="text-4xl font-bold tracking-tight text-gray-800 dark:text-white">{{ title }}</span>-->
<!-- </nuxt-link>-->
<!-- <div class="sub-title">-->
<!-- <p class="text-gray-400 text-sm dark:text-gray-400 py-3">-->
<!-- {{ comments || 'Unlimited Scenery' }}-->
<!-- </p>-->
<!-- </div>-->
<!-- </div>-->
<el-row :gutter="24" class="clearfix">
<el-col v-for="(item,index) in list" :key="index" :xs="12" :span="6" class="left mb-6"> <el-col v-for="(item,index) in list" :key="index" :xs="12" :span="6" class="left mb-6">
<el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer" @click="navigateTo(`/detail/${item.articleId}.html`)"> <el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer" @click="navigateTo(`/detail/${item.articleId}.html`)">
<el-image <el-image
@@ -31,7 +35,7 @@
<div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div> <div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div>
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>
@@ -52,6 +56,11 @@ import type {CmsArticle} from "~/api/cms/cmsArticle/model";
import {listCmsArticle, pageCmsArticle} from "~/api/cms/cmsArticle"; import {listCmsArticle, pageCmsArticle} from "~/api/cms/cmsArticle";
import type {CmsArticleParam} from "~/api/cms/cmsArticle/model"; import type {CmsArticleParam} from "~/api/cms/cmsArticle/model";
import {getImage} from "~/utils/common"; import {getImage} from "~/utils/common";
import {
ArrowRight,
Tickets,
CameraFilled
} from '@element-plus/icons-vue'
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{

View File

@@ -1,10 +1,12 @@
<template> <template>
<div class="lg:my-3 my-0 relative"> <div class="lg:my-3 my-0 relative">
<el-carousel :height="flashHeight + 'px'" indicator-position="none"> <el-carousel :height="flashHeight + 'px'" :interval="2000" motion-blur indicator-position="none">
<el-carousel-item v-for="(item,index) in list" :key="index"> <el-carousel-item v-for="(item,index) in data" :key="index">
<nuxt-link :to="`/detail/${item.articleId}.html`" class="item flex justify-center items-center"> <nuxt-link :to="`/detail/${item.articleId}.html`" class="item flex justify-center items-center">
<img :src="`${FILE_SERVER}${item.image}`" class="w-[500px] h-[380px]" /> <el-image :src="`${FILE_SERVER}${item.image}`" class="w-[500px] h-[380px]" />
<div class="absolute bottom-3 z-100 text-white font-bold px-4 line-clamp-1 text-sm lg:text-lg">{{ item.title }}</div> <div class="absolute bottom-0 z-100 w-[468px] bg-black opacity-80 font-bold px-4 line-clamp-1 text-sm lg:text-lg">
<span class="text-white">{{ item.title }}</span>
</div>
</nuxt-link> </nuxt-link>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
@@ -13,7 +15,6 @@
<script setup lang="ts"> <script setup lang="ts">
import type {CompanyParam} from "~/api/system/company/model"; import type {CompanyParam} from "~/api/system/company/model";
import {pageCmsArticle} from "~/api/cms/cmsArticle";
import type {CmsArticle} from "~/api/cms/cmsArticle/model"; import type {CmsArticle} from "~/api/cms/cmsArticle/model";
import {FILE_SERVER} from "~/config"; import {FILE_SERVER} from "~/config";
@@ -21,8 +22,7 @@ const isMobile = useIsMobile();
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
config?: any; data?: CmsArticle[];
list?: any[];
disabled?: boolean; disabled?: boolean;
title?: string; title?: string;
comments?: string; comments?: string;
@@ -36,7 +36,7 @@ const props = withDefaults(
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'done'): void; (e: 'done'): void;
}>(); }>();
const loading = ref(false);
const list = ref<CmsArticle[]>([]); const list = ref<CmsArticle[]>([]);
const flashHeight = ref<number>(372) const flashHeight = ref<number>(372)
@@ -47,20 +47,18 @@ const where = reactive<CompanyParam>({
// 请求数据 // 请求数据
const reload = async () => { const reload = async () => {
pageCmsArticle({ loading.value = true;
recommend: 1,
limit: 5,
lang: getLang()
}).then(res => {
list.value = res?.list || [];
})
if(isMobile.value){ if(isMobile.value){
flashHeight.value = 260; flashHeight.value = 260;
} }
setTimeout(() => {
list.value = props.data || [];
loading.value = false;
},500)
} }
watch( watch(
() => props.config, () => props.data,
() => { () => {
reload(); reload();
}, },

View File

@@ -1,14 +1,17 @@
<template> <template>
<div class="xl:w-screen-xl m-auto py-4 px-4 sm:px-0"> <div class="xl:w-screen-xl m-auto py-4 px-4 sm:px-0">
<div class="text-center flex flex-col items-center z-0 relative"> <!-- <div class="text-center flex flex-col items-center z-0 relative">-->
<h2 class="text-4xl font-bold tracking-tight text-gray-800 dark:text-white"> <!-- <h2 class="text-4xl font-bold tracking-tight text-gray-800 dark:text-white">-->
{{ title || '友情链接' }} <!-- {{ title || '友情链接' }}-->
</h2> <!-- </h2>-->
<div class="sub-title"> <!-- <div class="sub-title">-->
<p class="text-gray-400 text-sm dark:text-gray-400 py-3"> <!-- <p class="text-gray-400 text-sm dark:text-gray-400 py-3">-->
{{ comments || 'Link' }} <!-- {{ comments || 'Link' }}-->
</p> <!-- </p>-->
</div> <!-- </div>-->
<!-- </div>-->
<div class="text-center flex justify-between items-center z-0 relative my-5">
<el-space class="text-3xl font-bold text-green-600 flex items-center"><el-icon><Link /></el-icon>友情链接</el-space>
</div> </div>
<el-row id="container" :gutter="24" class="clearfix"> <el-row id="container" :gutter="24" class="clearfix">
<el-col v-for="(item,index) in list" :key="index" :sm="6" :xs="12" class="left mb-8 hidden-sm-and-down"> <el-col v-for="(item,index) in list" :key="index" :sm="6" :xs="12" class="left mb-8 hidden-sm-and-down">
@@ -47,7 +50,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import {navigateTo} from "#imports"; import {navigateTo} from "#imports";
import type {CmsWebsite, CmsWebsiteParam} from "~/api/cms/cmsWebsite/model"; import type {CmsWebsite, CmsWebsiteParam} from "~/api/cms/cmsWebsite/model";
import {pageCmsWebsiteAll} from "~/api/cms/cmsWebsite"; import {
ArrowRight,
Tickets,
Link
} from '@element-plus/icons-vue'
import {pageCmsLink} from "~/api/cms/cmsLink"; import {pageCmsLink} from "~/api/cms/cmsLink";
import type {CmsLink} from "~/api/cms/cmsLink/model"; import type {CmsLink} from "~/api/cms/cmsLink/model";

View File

@@ -4,8 +4,9 @@
<el-col :span="8" :xs="24"> <el-col :span="8" :xs="24">
<el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" > <el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" >
<template #header> <template #header>
<div class="text-lg font-medium"> <div class="text-lg font-medium flex items-center justify-between cursor-text">
招生就业 <el-space class="text-xl text-green-600 font-bold"><el-icon><Avatar /></el-icon>招生就业</el-space>
<nuxt-link :to="`/article/4155.html`" class="font-normal text-sm text-gray-400 flex items-center cursor-pointer">查看更多<el-icon><ArrowRight /></el-icon></nuxt-link>
</div> </div>
</template> </template>
<div class="px-5"> <div class="px-5">
@@ -13,7 +14,7 @@
<nuxt-link :to="`/detail/${item.articleId}.html`" class="item"> <nuxt-link :to="`/detail/${item.articleId}.html`" class="item">
<div class="text-lg my-3 flex justify-between"> <div class="text-lg my-3 flex justify-between">
<span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span> <span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span>
<span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('MM-DD') }}</span> <span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('YYYY.MM.DD') }}</span>
</div> </div>
</nuxt-link> </nuxt-link>
</template> </template>
@@ -23,8 +24,9 @@
<el-col :span="8" :xs="24"> <el-col :span="8" :xs="24">
<el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" > <el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" >
<template #header> <template #header>
<div class="text-lg font-medium"> <div class="text-lg font-medium flex items-center justify-between cursor-text">
通知公告 <el-space class="text-xl text-green-600 font-bold"><el-icon><BellFilled /></el-icon>通知公告</el-space>
<nuxt-link :to="`/article/4152.html`" class="font-normal text-sm text-gray-400 flex items-center cursor-pointer">查看更多<el-icon><ArrowRight /></el-icon></nuxt-link>
</div> </div>
</template> </template>
<div class="px-5"> <div class="px-5">
@@ -32,7 +34,7 @@
<nuxt-link :to="`/detail/${item.articleId}.html`" class="item"> <nuxt-link :to="`/detail/${item.articleId}.html`" class="item">
<div class="text-lg my-3 flex justify-between"> <div class="text-lg my-3 flex justify-between">
<span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span> <span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span>
<span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('MM-DD') }}</span> <span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('YYYY.MM.DD') }}</span>
</div> </div>
</nuxt-link> </nuxt-link>
</template> </template>
@@ -42,8 +44,9 @@
<el-col :span="8" :xs="24"> <el-col :span="8" :xs="24">
<el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" > <el-card shadow="hover" :body-style="{ padding: '0px' }" class=" hover:bg-gray-50 cursor-pointer mb-5" >
<template #header> <template #header>
<div class="text-lg font-medium"> <div class="text-lg font-medium flex items-center justify-between cursor-text">
教学教研 <el-space class="text-xl text-green-600 font-bold"><el-icon><Finished /></el-icon>教学教研</el-space>
<nuxt-link :to="`/article/4159.html`" class="font-normal text-sm text-gray-400 flex items-center cursor-pointer">查看更多<el-icon><ArrowRight /></el-icon></nuxt-link>
</div> </div>
</template> </template>
<div class="px-5"> <div class="px-5">
@@ -51,7 +54,7 @@
<nuxt-link :to="`/detail/${item.articleId}.html`" class="item"> <nuxt-link :to="`/detail/${item.articleId}.html`" class="item">
<div class="text-lg my-3 flex justify-between"> <div class="text-lg my-3 flex justify-between">
<span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span> <span class="title text-gray-800 hover:text-green-700 line-clamp-2 text-sm lg:text-lg">{{ item.title }}</span>
<span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('MM-DD') }}</span> <span class="text-gray-400 text-sm text-right w-[100px]">{{ dayjs(item.createTime).format('YYYY.MM.DD') }}</span>
</div> </div>
</nuxt-link> </nuxt-link>
</template> </template>
@@ -67,6 +70,14 @@
<script lang="ts" setup> <script lang="ts" setup>
import {navigateTo} from "#imports"; import {navigateTo} from "#imports";
import {
ArrowRight,
Tickets,
Avatar,
BellFilled,
Finished
} from '@element-plus/icons-vue'
import dayjs from "dayjs"; import dayjs from "dayjs";
import type {CmsArticle} from "~/api/cms/cmsArticle/model"; import type {CmsArticle} from "~/api/cms/cmsArticle/model";
import {listCmsArticle, pageCmsArticle} from "~/api/cms/cmsArticle"; import {listCmsArticle, pageCmsArticle} from "~/api/cms/cmsArticle";

View File

@@ -25,7 +25,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" /> <el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -28,7 +28,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" /> <el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -14,7 +14,7 @@
<h1 class="pt-5 text-3xl">{{ form.title }}</h1> <h1 class="pt-5 text-3xl">{{ form.title }}</h1>
<div class="flex items-center justify-between py-4"> <div class="flex items-center justify-between py-4">
<el-space class="text-gray-400" size="large"> <el-space class="text-gray-400" size="large">
<span>{{ $t('createTime') }}{{ dayjs(form.createTime).format('YYYY-MM-DD') }}</span> <span>{{ $t('createTime') }}{{ dayjs(form.createTime).format('YYYY.MM.DD') }}</span>
<span>{{ $t('author') }}{{ form.author }}</span> <span>{{ $t('author') }}{{ form.author }}</span>
<span>{{ $t('click') }}{{ getViews(form) }}</span> <span>{{ $t('click') }}{{ getViews(form) }}</span>
<span v-if="form.source">文章来源{{ form.source }}</span> <span v-if="form.source">文章来源{{ form.source }}</span>
@@ -62,12 +62,12 @@
<!-- 最近浏览 --> <!-- 最近浏览 -->
<CmsArticleRecently :data="form" type="article" /> <!-- <CmsArticleRecently :data="form" type="article" />-->
<!-- 相关产品和相关新闻 --> <!-- 相关产品和相关新闻 -->
<div class="relate_list"> <!-- <div class="relate_list">-->
<CmsProductRelated :data="form" /> <!-- <CmsProductRelated :data="form" />-->
<CmsArticleRelated :data="form" /> <!-- <CmsArticleRelated :data="form" />-->
</div> <!-- </div>-->
</el-page-header> </el-page-header>
</div> </div>

View File

@@ -28,7 +28,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" /> <el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -28,7 +28,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" /> <el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -14,7 +14,7 @@
<h1 class="pt-5 text-3xl text-center">{{ form.title }}</h1> <h1 class="pt-5 text-3xl text-center">{{ form.title }}</h1>
<div class="flex items-center justify-center py-4"> <div class="flex items-center justify-center py-4">
<el-space size="large" class="text-gray-400"> <el-space size="large" class="text-gray-400">
<span>{{ $t('createTime') }}{{ dayjs(form.createTime).format('YYYY-MM-DD') }}</span> <span>{{ $t('createTime') }}{{ dayjs(form.createTime).format('YYYY.MM.DD') }}</span>
<span v-if="form.author">{{ $t('author') }}{{ form.author }}</span> <span v-if="form.author">{{ $t('author') }}{{ form.author }}</span>
<span>{{ $t('click') }}{{ getViews(form) }}</span> <span>{{ $t('click') }}{{ getViews(form) }}</span>
<span v-if="form.source">文章来源{{ form.source }}</span> <span v-if="form.source">文章来源{{ form.source }}</span>
@@ -62,12 +62,12 @@
<!-- 最近浏览 --> <!-- 最近浏览 -->
<CmsArticleRecently :data="form" type="article" /> <!-- <CmsArticleRecently :data="form" type="article" />-->
<!-- 相关产品和相关新闻 --> <!-- 相关产品和相关新闻 -->
<div class="relate_list"> <!-- <div class="relate_list">-->
<CmsProductRelated :data="form" /> <!-- <CmsProductRelated :data="form" />-->
<CmsArticleRelated :data="form" /> <!-- <CmsArticleRelated :data="form" />-->
</div> <!-- </div>-->
</el-page-header> </el-page-header>
</div> </div>

View File

@@ -28,7 +28,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" /> <el-avatar v-if="item.avatar" size="small" :src="`${item.avatar}`" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -34,7 +34,7 @@
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
<el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" /> <el-avatar v-if="item.avatar" :src="`${item.avatar}`" size="small" />
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -30,7 +30,7 @@
<div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div> <div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div>
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -17,7 +17,7 @@
<div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div> <div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div>
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -17,7 +17,7 @@
<div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div> <div class="text-gray-400 gap-1 flex items-center"><el-icon><View /></el-icon><span>{{ getViews(item) }}</span></div>
</el-space> </el-space>
<div class="text-gray-400"> <div class="text-gray-400">
{{ dayjs(item.createTime).format('YYYY-MM-DD') }} {{ dayjs(item.createTime).format('YYYY.MM.DD') }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -30,7 +30,7 @@
<div class="n-right fr"> <div class="n-right fr">
<h3><a :href="detail(item)" target="_blank" :title="item.title" v-html="replaceKeywords(item.title)"></a></h3> <h3><a :href="detail(item)" target="_blank" :title="item.title" v-html="replaceKeywords(item.title)"></a></h3>
<div v-html="replaceKeywords(item.comments)" class="line-clamp-2"></div> <div v-html="replaceKeywords(item.comments)" class="line-clamp-2"></div>
<div class="date">{{ $t('createTime') }}{{ dayjs(item.createTime).format('YYYY-MM-DD') }}</div> <div class="date">{{ $t('createTime') }}{{ dayjs(item.createTime).format('YYYY.MM.DD') }}</div>
<div class="date">{{ $t('search.column') }}{{ item.categoryName }}</div> <div class="date">{{ $t('search.column') }}{{ item.categoryName }}</div>
<div class="n-more"><a :href="detail(item)">{{ $t('seeMore') }}>></a></div> <div class="n-more"><a :href="detail(item)">{{ $t('seeMore') }}>></a></div>
</div> </div>

View File

@@ -46,10 +46,10 @@
<!-- 相关产品和相关新闻 --> <!-- 相关产品和相关新闻 -->
<div class="relate_list"> <!-- <div class="relate_list">-->
<CmsProductRelated :data="form" /> <!-- <CmsProductRelated :data="form" />-->
<CmsArticleRelated :data="form" /> <!-- <CmsArticleRelated :data="form" />-->
</div> <!-- </div>-->
</div> </div>

View File

@@ -143,6 +143,7 @@ export function navTo(d?: any, path?: string,spm?: boolean){
* @param d * @param d
*/ */
export function detail(d?: any) { export function detail(d?: any) {
// console.log(d.detail,'9999999')
return navTo(d,`/${d?.detail}/${d?.articleId}.html`); return navTo(d,`/${d?.detail}/${d?.articleId}.html`);
} }