diff --git a/modules/Permissions/Models/Permissions.php b/modules/Permissions/Models/Permissions.php
index 2130799..831a2a4 100644
--- a/modules/Permissions/Models/Permissions.php
+++ b/modules/Permissions/Models/Permissions.php
@@ -26,6 +26,7 @@ use Modules\Permissions\Enums\MenuType;
* @property $type
* @property $hidden
* @property $sort
+ * @property $active_menu
* @property $creator_id
* @property $created_at
* @property $updated_at
@@ -35,19 +36,19 @@ class Permissions extends Model
{
protected $table = 'permissions';
- protected $fillable = ['id', 'parent_id', 'permission_name', 'route', 'icon', 'module', 'permission_mark', 'component', 'redirect', 'keepalive', 'type', 'hidden', 'is_inner', 'sort', 'creator_id', 'created_at', 'updated_at', 'deleted_at'];
+ protected $fillable = ['id', 'parent_id', 'permission_name', 'route', 'icon', 'module', 'permission_mark', 'component', 'redirect', 'keepalive', 'type', 'hidden', 'active_menu', 'sort', 'creator_id', 'created_at', 'updated_at', 'deleted_at'];
/**
* @var array
*/
- protected array $fields = ['id','parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','hidden','is_inner','sort','created_at','updated_at'];
+ protected array $fields = ['id','parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','hidden','active_menu','sort','created_at','updated_at'];
protected bool $isPaginate = false;
/**
* @var array
*/
- protected array $form = ['parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','is_inner', 'hidden','sort'];
+ protected array $form = ['parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','active_menu', 'hidden','sort'];
/**
* @var array
diff --git a/modules/Permissions/database/migrations/2022_12_07_103318_create_permissions.php b/modules/Permissions/database/migrations/2022_12_07_103318_create_permissions.php
index e34eccd..709ce94 100644
--- a/modules/Permissions/database/migrations/2022_12_07_103318_create_permissions.php
+++ b/modules/Permissions/database/migrations/2022_12_07_103318_create_permissions.php
@@ -28,7 +28,6 @@ return new class () extends Migration {
$table->string('redirect')->nullable()->comment('跳转地址');
$table->tinyInteger('keepalive')->default(1)->comment('1 缓存 2 不缓存');
$table->tinyInteger('type')->default(1)->comment('1 目录 2 菜单 3 按钮');
- $table->tinyInteger('is_inner')->default(2)->comment('1 是 2 否');
$table->tinyInteger('hidden')->default(1)->comment('1 显示 2 隐藏');
$table->integer('sort')->default(1)->comment('排序');
$table->creatorId();
diff --git a/modules/Permissions/database/migrations/2023_03_01_142043_create_remove_is_inner.php b/modules/Permissions/database/migrations/2023_03_01_142043_create_remove_is_inner.php
new file mode 100644
index 0000000..c1a96e0
--- /dev/null
+++ b/modules/Permissions/database/migrations/2023_03_01_142043_create_remove_is_inner.php
@@ -0,0 +1,34 @@
+removeColumn('is_inner');
+ }
+
+ $table->string('active_menu')->default('')->comment('访问内页时,需要激活的菜单栏')->after('sort');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+
+ }
+};
diff --git a/modules/Permissions/views/permissions/form/create.vue b/modules/Permissions/views/permissions/form/create.vue
index ce5a531..083ffca 100644
--- a/modules/Permissions/views/permissions/form/create.vue
+++ b/modules/Permissions/views/permissions/form/create.vue
@@ -32,20 +32,6 @@
-
-
- {{ item.label }}
-
-
@@ -92,6 +78,16 @@
+
{{ $t('system.confirm') }}
@@ -115,6 +111,9 @@ const props = defineProps({
api: String,
})
+const activeMenuIntro =
+ '如果是访问内页的菜单路由,例如创建文章 create/post, 虽然它隶属于文章列表,但实际上并不会嵌套在文章列表路由里
而是单独的一个路由,并且是不显示在左侧菜单的。所以在访问它的时候,需要左侧菜单高亮,则需要设置该参数
'
+
const { formData, form, loading, submitForm, close, beforeCreate, beforeUpdate } = useCreate(props.api, props.primary)
// 选择 icon
@@ -128,13 +127,12 @@ const closeSelectIcon = () => {
const defaultSort = 1
const defaultKeepalive = 1
const defaultHidden = 1
-const defaultIsInner = 2
+
// 初始化
formData.value.sort = defaultSort
formData.value.keepalive = defaultKeepalive
formData.value.type = MenuType.TOP_TYPE
formData.value.hidden = defaultHidden
-formData.value.is_inner = defaultIsInner
// 默认目录
const isTop = ref(true)
diff --git a/resources/admin/components/breadcrumbs/index.vue b/resources/admin/components/breadcrumbs/index.vue
index 5c06a1d..174a6a8 100644
--- a/resources/admin/components/breadcrumbs/index.vue
+++ b/resources/admin/components/breadcrumbs/index.vue
@@ -19,9 +19,9 @@ const breadcrumbs = ref([])
// 监听当前路由的变化
watch(router.currentRoute, (newValue, oldValue) => {
- // 如果是内页,则不切换激活菜单
- if (newValue.meta.is_inner === undefined || !newValue.meta.is_inner) {
- appStore.setActiveMenu(newValue.path)
+ // 激活菜单
+ if (newValue.meta.active_menu) {
+ appStore.setActiveMenu(newValue.meta.active_menu)
}
getBreadcrumbs(newValue)
})
@@ -29,7 +29,12 @@ watch(router.currentRoute, (newValue, oldValue) => {
// get init breadcrumb
onMounted(() => {
if (router.currentRoute.value.path !== '/') {
- appStore.setActiveMenu(router.currentRoute.value.path)
+ // 如果是内页,并且设置激活菜单
+ if (router.currentRoute.value.meta.active_menu) {
+ appStore.setActiveMenu(router.currentRoute.value.meta.active_menu)
+ } else {
+ appStore.setActiveMenu(router.currentRoute.value.path)
+ }
}
getBreadcrumbs(router.currentRoute.value)
diff --git a/resources/admin/components/editor/index.vue b/resources/admin/components/editor/index.vue
index 6ca6c8b..fb7ce4f 100644
--- a/resources/admin/components/editor/index.vue
+++ b/resources/admin/components/editor/index.vue
@@ -1,103 +1,110 @@
-
-
-
+
+
+
diff --git a/resources/admin/stores/modules/user/permissions.ts b/resources/admin/stores/modules/user/permissions.ts
index bfdd044..5ce9131 100644
--- a/resources/admin/stores/modules/user/permissions.ts
+++ b/resources/admin/stores/modules/user/permissions.ts
@@ -138,7 +138,7 @@ export const usePermissionsStore = defineStore('PermissionsStore', {
name: permission.module + '_' + permission.permission_mark,
component: importComponent,
redirect: permission.redirect,
- meta: Object.assign({ title: permission.permission_name, icon: permission.icon, hidden: permission.hidden, is_inner: permission.is_inner }),
+ meta: Object.assign({ title: permission.permission_name, icon: permission.icon, hidden: permission.hidden, active_menu: permission.active_menu }),
})
// child menu
diff --git a/resources/admin/styles/theme/dark.scss b/resources/admin/styles/theme/dark.scss
index 313aee0..c78dfba 100644
--- a/resources/admin/styles/theme/dark.scss
+++ b/resources/admin/styles/theme/dark.scss
@@ -19,16 +19,12 @@ html.dark {
/* 自定义深色背景颜色 */
--el-bg-color: var(--sider-sub-menu-hover-bg-color);
-
--el-fill-color-blank: var(--sider-bg-color);
-
--el-bg-color-overlay: var(--sider-bg-color);
-
--header-bg-color: var(--sider-bg-color);
// border color
--el-border-color-lighter: #3b4253;
-
--el-fill-color-light: #161d31;
// side sub menu margin
diff --git a/resources/admin/support/http.ts b/resources/admin/support/http.ts
index eed7728..c63d3e3 100644
--- a/resources/admin/support/http.ts
+++ b/resources/admin/support/http.ts
@@ -141,6 +141,8 @@ class Http {
// set ajax request
this.headers['X-Requested-With'] = 'XMLHttpRequest'
+ // set dashboard request
+ this.headers['Request-from'] = 'Dashboard'
this.config.headers = this.headers
return this.config
diff --git a/resources/admin/types/Menu.ts b/resources/admin/types/Menu.ts
index c469940..e5a107e 100644
--- a/resources/admin/types/Menu.ts
+++ b/resources/admin/types/Menu.ts
@@ -14,7 +14,7 @@ export interface Meta {
keepalive?: boolean
- is_inner?: boolean
+ active_menu?: string
}
// @ts-ignore
diff --git a/resources/admin/types/Permission.ts b/resources/admin/types/Permission.ts
index 604a95d..e60a02b 100644
--- a/resources/admin/types/Permission.ts
+++ b/resources/admin/types/Permission.ts
@@ -11,5 +11,5 @@ export interface Permission {
redirect: string
keepAlive: boolean
hidden: boolean
- is_inner: boolean
+ active_menu: string
}