diff --git a/src/components/blogs/header/NavigateMenu.vue b/src/components/blogs/header/NavigateMenu.vue index bd9b73a..58b644e 100644 --- a/src/components/blogs/header/NavigateMenu.vue +++ b/src/components/blogs/header/NavigateMenu.vue @@ -16,7 +16,7 @@ import { HomeOutlined, HighlightOutlined, ProfileOutlined, CameraOutlined, Userg import type { MenuProps } from 'ant-design-vue'; import { get } from '@/tools/request'; const props = defineProps(["items", "updateCarouselVisibility"]) -const { idShow,fetchHomePageList,setEmpty } = homePageStore() +const { idShow,fetchHomePageList } = homePageStore() const { show_menu } = toRefs(idShow) const store = useContentStore(); const searchValue = ref("") diff --git a/src/components/blogs/rightsite/TagCloud.vue b/src/components/blogs/rightsite/TagCloud.vue index ba794b6..249c6df 100644 --- a/src/components/blogs/rightsite/TagCloud.vue +++ b/src/components/blogs/rightsite/TagCloud.vue @@ -16,7 +16,7 @@ const labellist = ref<labelInterface[]>([]) const labelList = async () => { try { - await get("/labels/list").then(response => { + await get("/bloglabels/list").then(response => { if (response) { labellist.value = response.data.data; } diff --git a/src/stores/index.ts b/src/stores/index.ts index 87a7e97..ac6975e 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -1,6 +1,7 @@ import { reactive, ref } from 'vue' import { defineStore } from 'pinia' import type { homePageInterface } from '@/api' +import dayjs from 'dayjs'; import { get } from '@/tools/request' export const mainWrapperStore = defineStore("mainWrapper", () => { @@ -18,7 +19,11 @@ export const homePageStore = defineStore("homePage", () => { // const response = await get(`/statistics/searchtitle?title=${query}`); // homepagelist.value = response.data.data; get(`/statistics/searchtitle?title=${query}`).then(res => { - homepagelist.value = res.data.data; + homepagelist.value = res.data.data.map((items:any)=>({ + ...items, + create_at:dayjs(items.create_at).format('YYYY-MM-DD HH:mm:ss'), + update_at: dayjs(items.update_at).format('YYYY-MM-DD HH:mm:ss'), + })); if (res.data.data.length === 0) { isEmpty.value=true }else{ @@ -66,7 +71,7 @@ export const useContentStore = defineStore('content', () => { export const diaryStore = defineStore("diary", () => { const delControl = reactive({ open: false, - ids: "", + ids: null, title:"" }) diff --git a/src/views/admin/blogmanage/BlogManageView.vue b/src/views/admin/blogmanage/BlogManageView.vue index 65ca7e0..9ccdaad 100644 --- a/src/views/admin/blogmanage/BlogManageView.vue +++ b/src/views/admin/blogmanage/BlogManageView.vue @@ -244,7 +244,6 @@ const editModal = (id: any) => { formState.value = response.data.data }) - console.log(formControl.ids) } const onSubmit = () => { formRef.value diff --git a/src/views/admin/blogmanage/BlogTypeView.vue b/src/views/admin/blogmanage/BlogTypeView.vue index 1c2192a..32b53cf 100644 --- a/src/views/admin/blogmanage/BlogTypeView.vue +++ b/src/views/admin/blogmanage/BlogTypeView.vue @@ -168,7 +168,7 @@ const editModal = (id: any) => { editControl.title = "编辑" editControl.open = true get( - `/blogtypes/list/search/${id}` + `/blogtypes/search/${id}` ).then(response => { editList.value = response.data.data }) diff --git a/src/views/admin/diarymanage/DiaryManageView.vue b/src/views/admin/diarymanage/DiaryManageView.vue index 4d55d51..b18cc53 100644 --- a/src/views/admin/diarymanage/DiaryManageView.vue +++ b/src/views/admin/diarymanage/DiaryManageView.vue @@ -199,7 +199,7 @@ const editModal = (id: any) => { formControl.value.ids = id formControl.value.open = true get( - `/diarys/list/search/${id}` + `/diarys/search/${id}` ).then(response => { formState.value = response.data.data @@ -257,7 +257,6 @@ const diaryList = async () => { diarycontent: items.diarycontent, typename: items.typename, })) - console.log(`output->diarylist`, diarylist) } else { console.log("diarylist is not exits") } diff --git a/src/views/admin/diarymanage/DiaryTypeView.vue b/src/views/admin/diarymanage/DiaryTypeView.vue index e172323..0d02eb5 100644 --- a/src/views/admin/diarymanage/DiaryTypeView.vue +++ b/src/views/admin/diarymanage/DiaryTypeView.vue @@ -7,17 +7,32 @@ <a-space style="margin-left: 16px;"> <a-button @click="search">查询</a-button> <a-button type="primary" ghost @click="addModal">新增</a-button> - <a-modal v-model:open="addControl.open" :title="addControl.title" cancelText="取消" okText="确定" @ok="add"> + <a-modal v-model:open="addControl.open" :title="addControl.title" cancelText="取消" okText="确定" @ok="add" @cancel="unControl(addControl.title)"> <a-form ref="formRef" :model="addList" name="basic" :label-col="{ span: 4, offset: 2 }" :wrapper-col="{ span: 16 }"> <a-form-item label="类型名称" name="typename" :rules="[{ required: true, message: '请输入类型名称!' }]"> <a-input v-model:value="addList.typename" /> </a-form-item> - <a-form-item label="备注" name="descr" :rules="[{ required: true, message: '请输入备注!' }]"> + <a-form-item label="备注" name="descr" :rules="[{ required: false, message: '请输入备注!' }]"> <a-input v-model:value="addList.descr" /> </a-form-item> </a-form> </a-modal> + <a-modal v-model:open="editControl.open" :title="editControl.title" cancelText="取消" okText="确定" + @ok="edit" @cancel="unControl(editControl.title)"> + <a-form ref="formRef" :model="editList" name="basic" :label-col="{ span: 4, offset: 2 }" + :wrapper-col="{ span: 16 }"> + <a-form-item label="类型名称" name="typename" :rules="[{ required: true, message: '请修改类型名称!' }]"> + <a-input v-model:value="editList.typename" /> + </a-form-item> + <a-form-item label="备注" name="descr" :rules="[{ required: false, message: '请修改备注!' }]"> + <a-input v-model:value="editList.descr" /> + </a-form-item> + </a-form> + </a-modal> + <a-modal v-model:open="delControl.open" title="提示" ok-text="确认" cancel-text="取消" @ok="del" @cancel="unControl('删除')"> + <p>确认删除吗?</p> + </a-modal> </a-space> </div> <div class="table"> @@ -25,28 +40,9 @@ <template #bodyCell="{ column, record }"> <template v-if="column.dataIndex === 'operation'"> <a-space> - <div> - <a-button size="small" danger @click="delModal(record.id)">删除</a-button> - <a-modal v-model:open="delControl.open" title="提示" ok-text="确认" cancel-text="取消" - @ok="del"> - <p>确认删除吗?</p> - </a-modal> - </div> + <a-button size="small" danger @click="delModal(record.id)">删除</a-button> <a-button size="small" type="primary" ghost @click="editModal(record.id)">编辑</a-button> - <a-modal v-model:open="editControl.open" :title="editControl.title" cancelText="取消" - okText="确定" @ok="edit"> - <a-form ref="formRef" :model="editList" name="basic" :label-col="{ span: 4, offset: 2 }" - :wrapper-col="{ span: 16 }"> - <a-form-item label="类型名称" name="typename" - :rules="[{ required: true, message: '请修改类型名称!' }]"> - <a-input v-model:value="editList.typename" /> - </a-form-item> - <a-form-item label="备注" name="descr" - :rules="[{ required: true, message: '请修改备注!' }]"> - <a-input v-model:value="editList.descr" /> - </a-form-item> - </a-form> - </a-modal> + </a-space> </template> </template> @@ -58,6 +54,7 @@ <script setup lang='ts'> import { onMounted, reactive, ref } from 'vue'; import { typeStore } from "@/stores/index" +import { message } from 'ant-design-vue'; import type { typeInterface } from "@/api/admin" import { get, post, remove, put } from '@/tools/request'; const { delControl, addControl, editControl } = typeStore() @@ -69,6 +66,9 @@ const addList = ref({ typename: "", descr: "" }) +const unControl = (text: string) => { + message.warn(`取消${text}`) +} const editList = ref({ typename: "", @@ -96,7 +96,7 @@ const typeList = async () => { const search = async () => { try { await get( - "/types/list/search", + "/diarytypes/search", { typename: searchlist.typename } ).then(response => { if (response) { @@ -123,7 +123,7 @@ const formRef = ref(); const add = async () => { try { await post( - "/types/add", + "/diarytypes/add", addList.value ) typeList() @@ -143,7 +143,7 @@ const del = async (id: any) => { try { if (id) { await remove( - `/types/delete/${id}` + `/diarytypes/delete/${id}` ) typeList() } else { @@ -161,7 +161,7 @@ const editModal = (id: any) => { editControl.title = "编辑" editControl.open = true get( - `/types/list/search/${id}` + `/diarytypes/search/${id}` ).then(response => { editList.value = response.data.data }) @@ -171,7 +171,7 @@ const edit = async (id: any) => { try { if (id) { await put( - `/types/update/${id}`, + `/diarytypes/update/${id}`, editList.value ) editControl.open = false diff --git a/src/views/blog/HomePageView.vue b/src/views/blog/HomePageView.vue index 66bff1c..2dc3708 100644 --- a/src/views/blog/HomePageView.vue +++ b/src/views/blog/HomePageView.vue @@ -3,7 +3,7 @@ <div class="mainContent" v-for="article in displayedData"> <div class="blogs" v-if="article.blogtitle"> <a-badge-ribbon :text=article.typename color="black"> - <a-card hoverable> + <a-card hoverable> <h2>{{ article.blogtitle }}</h2> <div class="tag-group"> <a-tag color="#E6E6FA"> @@ -16,7 +16,7 @@ <template #icon> <component :is=iconComponents.YanJingLined /> </template> - {{ 111 }} + {{ article.readnum }} </a-tag> <a-tag color="#B0C4DE"> <template #icon> @@ -65,7 +65,7 @@ <template #icon> <component :is=iconComponents.YanJingLined /> </template> - {{ 1111 }} + {{ article.readnum }} </a-tag> <a-tag color="#B0C4DE"> <template #icon> @@ -112,7 +112,7 @@ import { onMounted, ref, watch } from 'vue'; import type { homePageInterface } from '@/api'; import iconComponents from "@/assets/index" -import { get } from '@/tools/request'; +import { get,put } from '@/tools/request'; import router from '@/router'; import { homePageStore } from '@/stores'; const homepageStore = homePageStore(); @@ -120,12 +120,19 @@ const randomColor = () => { const labelColor = ref(["processing", "success", "error", "warning", "magenta", "red", "volcano", "orange", "gold", "lime", "green", "cyan", "blue", "geekblue", "purple"]) return labelColor.value[Math.floor(Math.random() * labelColor.value.length)]; } - +const blogCount=async (id:any)=>{ + await put(`/blogs/update/${id}/readnum`) +} +const diaryCount=async (id:any)=>{ + await put(`/diarys/update/${id}/readnum`) +} const readMoreBlog = (id: any) => { router.push(`/blog/${id}`) + blogCount(id) } const readMoreDiary = (id: any) => { router.push(`/diary/${id}`) + diaryCount(id) } // const homepagelist = ref<homePageInterface[]>([]) const displayedData = ref<any[]>([]); // 存储当前显示的部分数据 diff --git a/src/views/blog/diarycontent/DiaryListView.vue b/src/views/blog/diarycontent/DiaryListView.vue index f544769..15914c4 100644 --- a/src/views/blog/diarycontent/DiaryListView.vue +++ b/src/views/blog/diarycontent/DiaryListView.vue @@ -61,7 +61,7 @@ import { onMounted, ref } from 'vue'; import iconComponents from '@/assets'; import dayjs from 'dayjs'; import type { diaryInterface } from '@/api/admin'; -import { get } from "@/tools/request" +import { get,put } from "@/tools/request" import { useContentStore } from "@/stores" import router from '@/router'; const store = useContentStore() @@ -75,6 +75,9 @@ const onShowSizeChange = (page: number) => { current.value = page; diaryList(page, pageSizeRef.value) }; +const diaryCount=async (id:any)=>{ + await put(`/diarys/update/${id}/readnum`) +} const diarylist = ref<diaryInterface[]>([]) const diaryList = async (page: number, pageSize: number) => { try { @@ -83,7 +86,7 @@ const diaryList = async (page: number, pageSize: number) => { page_size: pageSize, }); diarylist.value = response.data.data.diarys.map((items: any, index: number) => ({ - id: (index+1).toString(), + id: items.id, key: items.key, diarytitle: items.diarytitle, diarycontent: items.diarycontent, @@ -109,6 +112,7 @@ const diaryList = async (page: number, pageSize: number) => { const readMore = (id: any) => { router.push(`/diary/${id}`) + diaryCount(id) } onMounted(() => {