9 changed files with 363 additions and 185 deletions
-
12src/api/admin/index.ts
-
31src/components/admin/MainWrapper.vue
-
97src/components/blogs/HomePage.vue
-
7src/router/admin.ts
-
71src/services/admin/classtic.ts
-
56src/stores/index.ts
-
14src/views/admin/ClassticManageView.vue
-
236src/views/admin/CommonLinkManageView.vue
-
24src/views/admin/classticmanage/ClassticFormView.vue
@ -1,71 +0,0 @@ |
|||||
import { get, remove, put, post } from "@/tools/request" |
|
||||
import { reactive, ref } from "vue"; |
|
||||
import type { classticInterface, classticFormInterface } from "@/api/admin/classtic" |
|
||||
import { classticStore } from "@/stores"; |
|
||||
const { searchValue, classticForm } = classticStore() |
|
||||
|
|
||||
const classticlist = ref<classticInterface[]>([]) |
|
||||
const classticOneData = ref({ |
|
||||
header: "", |
|
||||
text: "", |
|
||||
descr: "" |
|
||||
}) |
|
||||
|
|
||||
const classticSearch = async () => { |
|
||||
try { |
|
||||
const response = await get( |
|
||||
"/classtics/list/search", |
|
||||
{ header: searchValue.title } |
|
||||
) |
|
||||
if (response) { |
|
||||
classticlist.value = response.data.data.map((items: any, index: any) => ({ |
|
||||
key: (index + 1).toString(), |
|
||||
id: items.id, |
|
||||
header: items.header, |
|
||||
text: items.text, |
|
||||
descr: items.descr |
|
||||
})) |
|
||||
} else { |
|
||||
console.log("classtic request is nulll") |
|
||||
} |
|
||||
} catch (error) { |
|
||||
console.log("classtic request is error") |
|
||||
} |
|
||||
} |
|
||||
const onSubmit = async (id?: any) => { |
|
||||
if (id) { |
|
||||
await put(`/classtics/update/${id}`, classticForm) |
|
||||
await classticList() |
|
||||
} else { |
|
||||
await post("/classtics/add", classticForm) |
|
||||
await classticList() |
|
||||
} |
|
||||
} |
|
||||
const classticDel = async (id: any) => { |
|
||||
try { |
|
||||
if (id) { |
|
||||
await remove(`/classtics/delete/${id}`) |
|
||||
await classticList() |
|
||||
} else { |
|
||||
console.log("id is null") |
|
||||
} |
|
||||
} catch (error) { |
|
||||
console.log("request is error") |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
const classticOne = async (id: any) => { |
|
||||
try { |
|
||||
const response=await get(`classtics/list/search/${id}`) |
|
||||
if (response) { |
|
||||
classticOneData.value=response.data.data; |
|
||||
} else { |
|
||||
console.log("classtic one data is null") |
|
||||
} |
|
||||
} catch (error) { |
|
||||
console.log("classtic one data is error") |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
export { classticlist, classticForm, classticOneData, classticList, classticSearch, classticDel, onSubmit, classticOne } |
|
@ -0,0 +1,236 @@ |
|||||
|
<template> |
||||
|
<div class="content"> |
||||
|
<div class="search"> |
||||
|
<a-space> |
||||
|
<a-input v-model:value="searchlist.linktext" placeholder="链接名称" /> |
||||
|
</a-space> |
||||
|
<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-form ref="formRef" :model="addList" name="basic" :label-col="{ span: 4, offset: 2 }" |
||||
|
:wrapper-col="{ span: 16 }"> |
||||
|
<a-form-item label="链接名称" name="linktext" :rules="[{ required: true, message: '请输入链接名称!' }]"> |
||||
|
<a-input v-model:value="addList.linktext" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="链接地址" name="linkurl" :rules="[{ required: true, message: '请输入链接地址!' }]"> |
||||
|
<a-input v-model:value="addList.linkurl" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="备注" name="descr" :rules="[{ required: true, message: '请输入备注!' }]"> |
||||
|
<a-input v-model:value="addList.descr" /> |
||||
|
</a-form-item> |
||||
|
</a-form> |
||||
|
</a-modal> |
||||
|
</a-space> |
||||
|
</div> |
||||
|
<div class="table"> |
||||
|
<a-table bordered :data-source="comlinklist" :columns="columns"> |
||||
|
<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" 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="linktext" |
||||
|
:rules="[{ required: true, message: '请修改链接名称!' }]"> |
||||
|
<a-input v-model:value="editList.linktext" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="链接地址" name="linkurl" |
||||
|
:rules="[{ required: true, message: '请修改链接地址!' }]"> |
||||
|
<a-input v-model:value="editList.linkurl" /> |
||||
|
</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> |
||||
|
</a-table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script setup lang='ts'> |
||||
|
import { onMounted, reactive, ref } from 'vue'; |
||||
|
import { comLinkStore } from "@/stores/index" |
||||
|
import type { comLinkInterface } from "@/api/admin/classtic" |
||||
|
import { get, post, remove, put } from '@/tools/request'; |
||||
|
const { delControl, addControl, editControl } = comLinkStore() |
||||
|
const comlinklist = ref<comLinkInterface[]>([]) |
||||
|
const searchlist = reactive({ |
||||
|
linktext: "" |
||||
|
}) |
||||
|
const addList = ref({ |
||||
|
linktext: "", |
||||
|
linkurl: "", |
||||
|
descr: "" |
||||
|
}) |
||||
|
|
||||
|
const editList = ref({ |
||||
|
linktext: "", |
||||
|
linkurl: "", |
||||
|
descr: "" |
||||
|
}) |
||||
|
const comLinkList = async () => { |
||||
|
try { |
||||
|
await get("/comlinks/list").then(response => { |
||||
|
if (response) { |
||||
|
comlinklist.value = response.data.data.map((item: any, index: any) => ({ |
||||
|
key: (index + 1).toString(), |
||||
|
id: item.id, |
||||
|
linktext: item.linktext, |
||||
|
linkurl: item.linkurl, |
||||
|
descr: item.descr |
||||
|
})); |
||||
|
} else { |
||||
|
console.log("the interface request data does not exist!") |
||||
|
} |
||||
|
}) |
||||
|
} catch (error) { |
||||
|
console.error("Failed to fetch data", error); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const search = async () => { |
||||
|
try { |
||||
|
await get( |
||||
|
"/comlinks/list/search", |
||||
|
{ linktext: searchlist.linktext } |
||||
|
).then(response => { |
||||
|
if (response) { |
||||
|
comlinklist.value = response.data.data.map((items: any, index: any) => ({ |
||||
|
key: (index + 1).toString(), |
||||
|
id: items.id, |
||||
|
linktext: items.linktext, |
||||
|
linkurl: items.linkurl, |
||||
|
descr: items.descr |
||||
|
})) |
||||
|
} else { |
||||
|
console.log("the interface request data does not exist!") |
||||
|
} |
||||
|
}) |
||||
|
} catch (error) { |
||||
|
console.log("interface request exception") |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const addModal = () => { |
||||
|
addControl.title = "新增" |
||||
|
addControl.open = true; |
||||
|
}; |
||||
|
const formRef = ref(); |
||||
|
const add = async () => { |
||||
|
try { |
||||
|
await post( |
||||
|
"/comlinks/add", |
||||
|
addList.value |
||||
|
) |
||||
|
comLinkList() |
||||
|
addControl.open = false |
||||
|
formRef.value.resetFields(); |
||||
|
} catch (error) { |
||||
|
console.log("interface request exception") |
||||
|
} |
||||
|
} |
||||
|
const delModal = (id: any) => { |
||||
|
delControl.ids = id |
||||
|
delControl.open = true |
||||
|
}; |
||||
|
// 删除 |
||||
|
const del = async (id: any) => { |
||||
|
id = delControl.ids |
||||
|
try { |
||||
|
if (id) { |
||||
|
await remove( |
||||
|
`/comlinks/delete/${id}` |
||||
|
) |
||||
|
comLinkList() |
||||
|
} else { |
||||
|
console.log("id do not exist!") |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.log("interface request exception") |
||||
|
} |
||||
|
|
||||
|
delControl.open = false |
||||
|
} |
||||
|
|
||||
|
const editModal = (id: any) => { |
||||
|
editControl.ids = id |
||||
|
editControl.title = "编辑" |
||||
|
editControl.open = true |
||||
|
get( |
||||
|
`/comlinks/list/search/${id}` |
||||
|
).then(response => { |
||||
|
editList.value = response.data.data |
||||
|
}) |
||||
|
} |
||||
|
const edit = async (id: any) => { |
||||
|
id = editControl.ids |
||||
|
try { |
||||
|
if (id) { |
||||
|
await put( |
||||
|
`/comlinks/update/${id}`, |
||||
|
editList.value |
||||
|
) |
||||
|
editControl.open = false |
||||
|
formRef.value.resetFields() |
||||
|
comLinkList() |
||||
|
} else { |
||||
|
console.log("id do not exist!") |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.log("interface request exception") |
||||
|
} |
||||
|
} |
||||
|
// 获取列表 |
||||
|
onMounted(async () => { |
||||
|
comLinkList() |
||||
|
}); |
||||
|
const columns = [ |
||||
|
{ |
||||
|
title: '序号', |
||||
|
dataIndex: 'key', |
||||
|
width: '5%', |
||||
|
}, |
||||
|
{ |
||||
|
title: '链接名称', |
||||
|
dataIndex: 'linktext', |
||||
|
width: '20%', |
||||
|
}, |
||||
|
{ |
||||
|
title: '连接地址', |
||||
|
dataIndex: 'linkurl', |
||||
|
}, |
||||
|
{ |
||||
|
title: '备注', |
||||
|
dataIndex: 'descr', |
||||
|
}, |
||||
|
{ |
||||
|
title: '操作', |
||||
|
dataIndex: 'operation', |
||||
|
}, |
||||
|
]; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.content { |
||||
|
padding: 24px 24px 0 24px; |
||||
|
} |
||||
|
|
||||
|
.search { |
||||
|
margin: 0 0 24px 0; |
||||
|
} |
||||
|
</style> |
@ -1,24 +0,0 @@ |
|||||
<template> |
|
||||
|
|
||||
</template> |
|
||||
|
|
||||
<script setup lang='ts'> |
|
||||
import { ref } from "vue"; |
|
||||
import { classticStore } from "@/stores/index" |
|
||||
import { onSubmit } from "@/services/admin/classtic" |
|
||||
const { modalForm, classticForm } = classticStore() |
|
||||
const formRef = ref(); |
|
||||
const submit = () => { |
|
||||
if (modalForm.ids) { |
|
||||
onSubmit(modalForm.ids) |
|
||||
} else { |
|
||||
onSubmit() |
|
||||
} |
|
||||
formRef.value.resetFields(); |
|
||||
modalForm.open = false |
|
||||
|
|
||||
|
|
||||
}; |
|
||||
</script> |
|
||||
|
|
||||
<style></style> |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue