调试frontend
This commit is contained in:
@@ -16,14 +16,11 @@ export function getFrontMenus() {
|
||||
* @param {Object} frontMenuData 前端导航数据
|
||||
* @returns {Promise}
|
||||
*/
|
||||
export function createFrontMenu(formData, options = {}) {
|
||||
export function createFrontMenu(formData) {
|
||||
return request({
|
||||
url: "/backend/createfrontmenu",
|
||||
url: "/backend/frontmenus",
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -35,7 +32,7 @@ export function createFrontMenu(formData, options = {}) {
|
||||
*/
|
||||
export function editFrontMenu(id, frontMenuData) {
|
||||
return request({
|
||||
url: `/backend/editfrontmenu/${id}`,
|
||||
url: `/backend/frontmenus/${id}`,
|
||||
method: "post",
|
||||
data: frontMenuData,
|
||||
});
|
||||
@@ -48,7 +45,7 @@ export function editFrontMenu(id, frontMenuData) {
|
||||
*/
|
||||
export function deleteFrontMenu(id) {
|
||||
return request({
|
||||
url: `/backend/deletefrontmenu/${id}`,
|
||||
url: `/backend/frontmenus/${id}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 错误提示 -->
|
||||
<div v-else-if="hasError" class="error-container">
|
||||
<div v-else-if="hasError && list.length === 0" class="error-container">
|
||||
<el-icon class="error-icon"><Warning /></el-icon>
|
||||
<div class="error-text">{{ errorMsg }}</div>
|
||||
<el-button size="small" @click="fetchMenus">重新加载</el-button>
|
||||
@@ -289,13 +289,40 @@ const processMenus = (menus) => {
|
||||
}));
|
||||
};
|
||||
|
||||
const list = computed(() => {
|
||||
const menuData = menuStore.menus;
|
||||
if (!menuData || menuData.length === 0) {
|
||||
return [];
|
||||
}
|
||||
const fixedCmsMenu = {
|
||||
id: -200,
|
||||
path: "/apps/cms",
|
||||
title: "文章中心",
|
||||
icon: "Document",
|
||||
order: -200,
|
||||
children: [
|
||||
{
|
||||
id: -201,
|
||||
path: "/apps/cms/articles",
|
||||
title: "文章管理",
|
||||
icon: "Document",
|
||||
order: 1,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: -202,
|
||||
path: "/apps/cms/articles/category",
|
||||
title: "文章分类",
|
||||
icon: "Folder",
|
||||
order: 2,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
const allMenus = processMenus(menuData);
|
||||
const mergeFixedCmsMenu = (menus) => {
|
||||
const hasCmsMenu = menus.some((menu) => menu.path === fixedCmsMenu.path);
|
||||
return hasCmsMenu ? menus : [fixedCmsMenu, ...menus];
|
||||
};
|
||||
|
||||
const list = computed(() => {
|
||||
const menuData = menuStore.menus || [];
|
||||
const allMenus = processMenus(mergeFixedCmsMenu(menuData));
|
||||
|
||||
const sortMenusRecursively = (menus) => {
|
||||
menus.forEach((menu) => {
|
||||
|
||||
@@ -3,6 +3,19 @@ import { convertMenusToRoutes } from "./dynamicRoutes";
|
||||
|
||||
// 静态子路由:需要在 Main 框架内显示的页面
|
||||
const staticMainChildren = [
|
||||
// CMS 文章中心是系统内置功能,不依赖数据库菜单配置。
|
||||
{
|
||||
path: "/apps/cms/articles",
|
||||
name: "CmsArticles",
|
||||
component: () => import("@/views/apps/cms/articles/index.vue"),
|
||||
meta: { requiresAuth: true, title: "文章管理", modulePath: "/apps/cms" }
|
||||
},
|
||||
{
|
||||
path: "/apps/cms/articles/category",
|
||||
name: "CmsArticleCategories",
|
||||
component: () => import("@/views/apps/cms/articles/category.vue"),
|
||||
meta: { requiresAuth: true, title: "文章分类", modulePath: "/apps/cms" }
|
||||
},
|
||||
{
|
||||
path: "/user/userProfile",
|
||||
name: "userProfile",
|
||||
@@ -90,6 +103,8 @@ export async function loadAndAddDynamicRoutes() {
|
||||
routesLoadingPromise = null;
|
||||
return Promise.resolve();
|
||||
} else {
|
||||
// 即使权限菜单为空,也要注册内置文章中心路由。
|
||||
addDynamicRoutes([]);
|
||||
dynamicRoutesAdded = true;
|
||||
routesLoadingPromise = null;
|
||||
return Promise.resolve();
|
||||
|
||||
@@ -156,6 +156,11 @@ function toggleExpand(category) {
|
||||
}
|
||||
|
||||
function handleDelete(category) {
|
||||
if (Number(category.tid) === 0 || category.is_global === true) {
|
||||
ElMessage.warning("全局分类不可删除");
|
||||
return;
|
||||
}
|
||||
|
||||
ElMessageBox.confirm(`确定要删除分类\"${category.label}\"吗?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
|
||||
@@ -53,9 +53,18 @@
|
||||
<el-button type="text" title="添加子分类" @click.stop="$emit('add-child', item)">
|
||||
<el-icon><Plus /></el-icon>
|
||||
</el-button>
|
||||
<el-button type="text" class="danger" title="删除" @click.stop="$emit('delete', item)">
|
||||
<el-button
|
||||
v-if="item.tid !== 0"
|
||||
type="text"
|
||||
class="danger"
|
||||
title="删除"
|
||||
@click.stop="$emit('delete', item)"
|
||||
>
|
||||
<el-icon><Delete /></el-icon>
|
||||
</el-button>
|
||||
<el-tag v-else type="info" size="small" title="全局分类不可删除">
|
||||
全局
|
||||
</el-tag>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user