diff --git a/web/src/router/backEnd.ts b/web/src/router/backEnd.ts index 3b40595..d933798 100644 --- a/web/src/router/backEnd.ts +++ b/web/src/router/backEnd.ts @@ -51,10 +51,8 @@ export async function initBackEndControlRoutes() { // https://gitee.com/lyt-top/vue-next-admin/issues/I64HVO if (res.data.length <= 0) return Promise.resolve(true); // 处理路由(component),替换 dynamicRoutes(/@/router/route)第一个顶级 children 的路由 - // const {frameIn,frameOut} = handleMenu(res.data) - // dynamicRoutes[0].children = await backEndComponent(frameIn); - const {frameInRoutes,frameOutRoutes} = await useFrontendMenuStore().getRouter() - dynamicRoutes[0].children = toRaw(frameInRoutes) + const {frameIn,frameOut} = handleMenu(res.data) + dynamicRoutes[0].children = await backEndComponent(frameIn); // 添加动态路由 await setAddRoute(); // 设置路由到 vuex routesList 中(已处理成多级嵌套路由)及缓存多级嵌套数组处理后的一维数组 @@ -96,8 +94,6 @@ export function setFilterMenuAndCacheTagsViewRoutes() { */ export function setCacheTagsViewRoutes() { const storesTagsView = useTagsViewRoutes(pinia); - // console.log("formatFlatteningRoutes(dynamicRoutes)",formatFlatteningRoutes(dynamicRoutes)) - // console.log("2222",formatTwoStageRoutes(formatFlatteningRoutes(dynamicRoutes))[0].children) storesTagsView.setTagsViewRoutes(formatTwoStageRoutes(formatFlatteningRoutes(dynamicRoutes))[0].children); } @@ -121,7 +117,6 @@ export function setFilterRouteEnd() { * @link 参考:https://next.router.vuejs.org/zh/api/#addroute */ export async function setAddRoute() { - // console.log("啦啦啦啦啦",setFilterRouteEnd()) await setFilterRouteEnd().forEach((route: RouteRecordRaw) => { router.addRoute(route); }); @@ -168,26 +163,24 @@ export function backEndComponent(routes: any) { } if(item.is_link){ // 对外链接的处理 - item.meta.isIframe = !item.is_iframe if(item.is_iframe){ - item.component = dynamicImport(dynamicViewsModules, 'layout/routerView/link') - }else { item.component = dynamicImport(dynamicViewsModules, 'layout/routerView/iframes') + }else { + item.component = dynamicImport(dynamicViewsModules, 'layout/routerView/link') } }else{ if(item.is_iframe){ - const iframeRoute:RouteRecordRaw = { - ...item - } - router.addRoute(iframeRoute) - item.meta.isLink = item.path - item.path = `${item.path}Link` - item.name = `${item.name}Link` - item.meta.isIframe = !item.is_iframe - item.meta.isKeepAlive = false - item.meta.isIframeOpen = true + // const iframeRoute:RouteRecordRaw = { + // ...item + // } + // router.addRoute(iframeRoute) + item.meta.isLink = item.link_url + // item.path = `${item.path}Link` + // item.name = `${item.name}Link` + // item.meta.isIframe = item.is_iframe + // item.meta.isKeepAlive = false + // item.meta.isIframeOpen = true item.component = dynamicImport(dynamicViewsModules, 'layout/routerView/link.vue') - } } item.children && backEndComponent(item.children); diff --git a/web/src/router/index.ts b/web/src/router/index.ts index 9bb05bb..3f564eb 100644 --- a/web/src/router/index.ts +++ b/web/src/router/index.ts @@ -117,11 +117,9 @@ router.beforeEach(async (to, from, next) => { if (isRequestRoutes) { // 后端控制路由:路由数据初始化,防止刷新时丢失 await initBackEndControlRoutes(); - // await setRouters() // 解决刷新时,一直跳 404 页面问题,关联问题 No match found for location with path 'xxx' // to.query 防止页面刷新时,普通路由带参数时,参数丢失。动态路由(xxx/:id/:name")isDynamic 无需处理 - // console.log("所有路由",router.getRoutes()) - // console.log(to.path) + next({ path: to.path, query: to.query }); } else { // https://gitee.com/lyt-top/vue-next-admin/issues/I5F1HP diff --git a/web/src/router/route.ts b/web/src/router/route.ts index 0e91baa..35df9f6 100644 --- a/web/src/router/route.ts +++ b/web/src/router/route.ts @@ -88,12 +88,12 @@ export const staticRoutes: Array = [ title: '登录', }, }, - // { - // path: '/demo', - // name: 'demo', - // component: () => import('/@/views/system/demo/index.vue'), - // meta: { - // title: 'message.router.personal' - // }, - // } + { + path: '/demo', + name: 'demo', + component: () => import('/@/views/system/demo/index.vue'), + meta: { + title: 'message.router.personal' + }, + } ]; diff --git a/web/src/settings.ts b/web/src/settings.ts index 5c2a477..552352a 100644 --- a/web/src/settings.ts +++ b/web/src/settings.ts @@ -9,7 +9,7 @@ import {getBaseURL} from '/@/utils/baseUrl'; import ui from '@fast-crud/ui-element'; import {request} from '/@/utils/service'; //扩展包 -import {FsExtendsEditor, FsExtendsUploader} from '@fast-crud/fast-extends'; +import {FsExtendsEditor, FsExtendsUploader,FsCropperUploader} from '@fast-crud/fast-extends'; import '@fast-crud/fast-extends/dist/style.css'; import {successNotification} from '/@/utils/message'; import XEUtils from "xe-utils"; @@ -114,8 +114,13 @@ export default { ...ret.data }; } - } + }, + valueBuilder(context){ + const {row,key} = context + return getBaseURL(row[key]) + } }) + setLogger({level: 'error'}); // 设置自动染色 const dictComponentList = ['dict-cascader', 'dict-checkbox', 'dict-radio', 'dict-select', 'dict-switch', 'dict-tree']; diff --git a/web/src/views/system/dept/components/DeptUserCom/crud.tsx b/web/src/views/system/dept/components/DeptUserCom/crud.tsx index d3fb883..8bb2b3c 100644 --- a/web/src/views/system/dept/components/DeptUserCom/crud.tsx +++ b/web/src/views/system/dept/components/DeptUserCom/crud.tsx @@ -13,12 +13,12 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp /** * 处理crud警告:Invalid prop: type check failed for prop "name". Expected String with value "2", got Number with value 2. */ - res.data.forEach((item: any) => { - item.dept = String(item.dept); - if (item.role && Array.isArray(item.role) && item.role.length > 0) { - item.role = item.role.map((r: number) => String(r)); - } - }); + // res.data.forEach((item: any) => { + // item.dept = String(item.dept); + // if (item.role && Array.isArray(item.role) && item.role.length > 0) { + // item.role = item.role.map((r: number) => String(r)); + // } + // }); return res; }; const editRequest = async ({ form, row }: EditReq) => { @@ -218,13 +218,6 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp url: '/api/system/dept/all_dept/', value: 'id', label: 'name', - getData: async ({ url }: { url: string }) => { - return request({ - url: url, - }).then((ret: any) => { - return ret.data; - }); - }, }), column: { minWidth: 150, //最小列宽 @@ -264,17 +257,6 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp url: '/api/system/role/', value: 'id', label: 'name', - getData: async ({ url }: { url: string }) => { - return request({ - url: url, - params: { - page: 1, - limit: 10, - }, - }).then((ret: any) => { - return ret.data; - }); - }, }), column: { minWidth: 100, //最小列宽 diff --git a/web/src/views/system/error/404.vue b/web/src/views/system/error/404.vue index 3a7ce22..746d7b6 100644 --- a/web/src/views/system/error/404.vue +++ b/web/src/views/system/error/404.vue @@ -13,7 +13,7 @@
diff --git a/web/src/views/system/error/img404.png b/web/src/views/system/error/img404.png new file mode 100644 index 0000000..dc48c75 Binary files /dev/null and b/web/src/views/system/error/img404.png differ diff --git a/web/src/views/system/menu/components/MenuFormCom/index.vue b/web/src/views/system/menu/components/MenuFormCom/index.vue index 491f4ce..5fa4aba 100644 --- a/web/src/views/system/menu/components/MenuFormCom/index.vue +++ b/web/src/views/system/menu/components/MenuFormCom/index.vue @@ -62,7 +62,7 @@ - + diff --git a/web/src/views/system/role/crud.tsx b/web/src/views/system/role/crud.tsx index 73ec6d3..7696cbf 100644 --- a/web/src/views/system/role/crud.tsx +++ b/web/src/views/system/role/crud.tsx @@ -151,6 +151,10 @@ export const createCrudOptions = function ({ placeholder: '输入权限标识', }, }, + valueBuilder(context){ + const {row,key} = context + return row[key] + } }, sort: { title: '排序', diff --git a/web/src/views/system/user/index.vue b/web/src/views/system/user/index.vue index a7c3835..b91b40f 100644 --- a/web/src/views/system/user/index.vue +++ b/web/src/views/system/user/index.vue @@ -1,59 +1,69 @@