Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
42a597b4
提交
42a597b4
authored
8月 26, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(app.vue): 修复:水印遮挡鼠标交互拖拽导致移动端页面无法滚动
上级
30458fc0
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
112 行增加
和
88 行删除
+112
-88
App.vue
src/App.vue
+0
-7
index.scss
src/assets/styles/index.scss
+1
-0
vant.scss
src/assets/styles/vant.scss
+4
-0
variables.module.scss
src/assets/styles/variables.module.scss
+2
-0
index.js
src/router/index.js
+72
-77
permission.js
src/store/modules/permission.js
+0
-1
index.vue
src/views/mobile/views/promotion/plan/index/index.vue
+7
-0
index.vue
src/views/system/menu/index.vue
+26
-3
没有找到文件。
src/App.vue
浏览文件 @
42a597b4
...
...
@@ -52,11 +52,4 @@ onMounted(() => {
<
style
scoped
lang=
"scss"
>
.wm-class
{
position
:
fixed
!
important
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
}
</
style
>
src/assets/styles/index.scss
浏览文件 @
42a597b4
...
...
@@ -5,6 +5,7 @@
@import
'./sidebar.scss'
;
@import
'./btn.scss'
;
@import
'./ruoyi.scss'
;
@import
'./vant.scss'
;
@import
'./font-size.scss'
;
body
{
...
...
src/assets/styles/vant.scss
0 → 100644
浏览文件 @
42a597b4
.van-floating-bubble
{
background
:
var
(
--
main-color
)
!
important
;
}
\ No newline at end of file
src/assets/styles/variables.module.scss
浏览文件 @
42a597b4
...
...
@@ -15,6 +15,7 @@ $menuText: #bfcbd9;
$menuActiveText
:
#409eff
;
$menuBg
:
#304156
;
$menuHover
:
#263445
;
$mainColor
:
#f12528
;
// 浅色主题theme-light
$menuLightBg
:
#ffffff
;
...
...
@@ -73,6 +74,7 @@ $--color-info: #909399;
--sidebar-bg
:
#{
$menuBg
}
;
--sidebar-text
:
#{
$menuText
}
;
--menu-hover
:
#{
$menuHover
}
;
--main-color
:
#{
$mainColor
}
;
--navbar-bg
:
#ffffff
;
--navbar-text
:
#303133
;
...
...
src/router/index.js
浏览文件 @
42a597b4
...
...
@@ -24,28 +24,24 @@ import { isMobile } from '@/utils'
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
}
*/
// 使用的路由
export
let
constantRoutes
=
[]
export
const
publicRoutes
=
[
{
path
:
'/report/jmreport/view/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
},
{
path
:
'/report/jmreport/index/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
},
{
path
:
'/report/jmreport/shareView/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
}
]
// PC端 公共路由
// 使用的公共静态路由
export
let
constantRoutes
=
[{
path
:
'/report/jmreport/view/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
},
{
path
:
'/report/jmreport/index/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
},
{
path
:
'/report/jmreport/shareView/:id'
,
component
:
()
=>
import
(
'@/views/jimureport/entry.vue'
),
hidden
:
true
}]
// PC端 静态路由
export
const
constantPCRoutes
=
[
...
publicRoutes
,
{
path
:
'/redirect'
,
component
:
Layout
,
...
...
@@ -106,62 +102,6 @@ export const constantPCRoutes = [
name
:
'logistics'
}
]
// 移动端 公共路由
export
const
constantMobileRoutes
=
[
...
publicRoutes
,
{
path
:
'/login'
,
component
:
()
=>
import
(
'@/views/login'
),
hidden
:
true
},
{
path
:
'/'
,
redirect
:
'/m'
},
{
path
:
'/m'
,
redirect
:
'/m/menu'
,
component
:
()
=>
import
(
'@/views/mobile/index'
),
hidden
:
true
,
children
:
[
// 菜单页
{
path
:
'menu'
,
component
:
()
=>
import
(
'@/views/mobile/views/menu'
),
name
:
'm_menu'
,
},
// 促销计划
{
path
:
'promotion_plan'
,
// 列表
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/index'
),
name
:
'm_promotion_plan'
,
meta
:
{
keepAlive
:
true
}
// 标记该路由需要缓存
},
{
path
:
'promotion_plan_detail/:planId'
,
// 详情
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/detail'
),
name
:
'm_promotion_detail'
,
},
{
path
:
'promotion_plan_editing/:planId?'
,
// 增改
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/editing'
),
name
:
'm_promotion_editing'
,
},
// 稽查
{
path
:
'examine/:examineId'
,
component
:
()
=>
import
(
'@/views/mobile/views/examine'
),
name
:
'm_promotion_examine'
,
}
]
},
// 物流信息页面
{
path
:
'/logistics'
,
component
:
()
=>
import
(
'@/views/mobile/views/other/logistics'
),
name
:
'logistics'
}
]
// PC端 动态路由,基于用户权限动态去加载(一级的是靠网页里配置动态请求的,二级路由页面)
export
const
dynamicRoutes
=
[
{
...
...
@@ -235,6 +175,61 @@ export const dynamicRoutes = [
]
}
]
// 移动端 静态路由
export
const
constantMobileRoutes
=
[
{
path
:
'/login'
,
component
:
()
=>
import
(
'@/views/login'
),
hidden
:
true
},
{
path
:
'/'
,
redirect
:
'/m'
},
{
path
:
'/m'
,
redirect
:
'/m/menu'
,
component
:
()
=>
import
(
'@/views/mobile/index'
),
hidden
:
true
,
children
:
[
// 菜单页
{
path
:
'menu'
,
component
:
()
=>
import
(
'@/views/mobile/views/menu'
),
name
:
'm_menu'
,
},
// 促销计划
{
path
:
'promotion_plan'
,
// 列表
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/index'
),
name
:
'm_promotion_plan'
,
meta
:
{
keepAlive
:
true
}
// 标记该路由需要缓存
},
{
path
:
'promotion_plan_detail/:planId'
,
// 详情
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/detail'
),
name
:
'm_promotion_detail'
,
},
{
path
:
'promotion_plan_editing/:planId?'
,
// 增改
component
:
()
=>
import
(
'@/views/mobile/views/promotion/plan/editing'
),
name
:
'm_promotion_editing'
,
},
// 稽查
{
path
:
'examine/:examineId'
,
component
:
()
=>
import
(
'@/views/mobile/views/examine'
),
name
:
'm_promotion_examine'
,
}
]
},
// 物流信息页面
{
path
:
'/logistics'
,
component
:
()
=>
import
(
'@/views/mobile/views/other/logistics'
),
name
:
'logistics'
}
]
const
router
=
createRouter
({
// 路由模式:createWebHashHistory,createWebHistory
...
...
src/store/modules/permission.js
浏览文件 @
42a597b4
...
...
@@ -61,7 +61,6 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
const
userStore
=
useUserStore
()
const
isAdmin
=
userStore
.
roles
.
includes
(
'admin'
)
// 管理员
return
asyncRouterMap
.
filter
(
route
=>
{
// 非管理员过滤掉需要管理员权限的路由
if
(
!
isAdmin
&&
route
.
name
===
'Menu'
)
{
...
...
src/views/mobile/views/promotion/plan/index/index.vue
浏览文件 @
42a597b4
...
...
@@ -334,6 +334,13 @@ const addNewPlan = () => {
background
:
#
f5f5f5
;
min
-
height
:
100
vh
;
/* 头部返回按钮 */
::
v
-
deep
(.
van
-
nav
-
bar
)
{
.
van
-
icon
,
.
van
-
nav
-
bar__text
{
color
:
var
(
--
main
-
color
);
}
}
.
van
-
pull
-
refresh
{
/* 并列选择身上的类名 */
...
...
src/views/system/menu/index.vue
浏览文件 @
42a597b4
...
...
@@ -122,7 +122,8 @@
<el-dialog
:title=
"title"
v-model=
"open"
append-to-body
draggable
overflow
>
draggable
overflow
>
<el-form
ref=
"menuRef"
:model=
"form"
:rules=
"rules"
...
...
@@ -311,6 +312,27 @@
</el-radio-group>
</el-form-item>
</el-col>
<!-- 设置第一层菜单属于哪个系统的(系统链路中心/勤策/...) -->
<el-col
:span=
"12"
v-if=
"form.menuType == 'M'"
>
<el-form-item
prop=
"belongSys"
>
<
template
#
label
>
<span>
<el-tooltip
content=
"选择本菜单在哪个系统生效"
placement=
"top"
>
<el-icon><question-filled
/></el-icon>
</el-tooltip>
所属系统
</span>
</
template
>
<el-select
v-model=
"form.belongSys"
>
<el-option
v-for=
"dict in menu_system"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
v-if=
"form.menuType != 'F'"
>
<el-form-item>
...
...
@@ -369,7 +391,7 @@
import
IconSelect
from
"@/components/IconSelect"
;
const
{
proxy
}
=
getCurrentInstance
();
const
{
sys_show_hide
,
sys_normal_disable
}
=
proxy
.
useDict
(
"sys_show_hide"
,
"sys_normal_disable
"
);
const
{
sys_show_hide
,
sys_normal_disable
,
menu_system
}
=
proxy
.
useDict
(
"sys_show_hide"
,
"sys_normal_disable"
,
"menu_system
"
);
const
menuList
=
ref
([]);
const
open
=
ref
(
false
);
...
...
@@ -390,7 +412,8 @@
rules
:
{
menuName
:
[{
required
:
true
,
message
:
"菜单名称不能为空"
,
trigger
:
"blur"
}],
orderNum
:
[{
required
:
true
,
message
:
"菜单顺序不能为空"
,
trigger
:
"blur"
}],
path
:
[{
required
:
true
,
message
:
"路由地址不能为空"
,
trigger
:
"blur"
}]
path
:
[{
required
:
true
,
message
:
"路由地址不能为空"
,
trigger
:
"blur"
}],
belongSys
:
[{
required
:
true
,
message
:
"所属系统不能为空"
,
trigger
:
"blur"
}]
},
});
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论