This commit is contained in:
wangchengming 2025-08-15 14:38:37 +08:00
parent 48d0a2301f
commit f1f65c2d47
11 changed files with 344 additions and 257 deletions

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="36px" height="36px" viewBox="0 0 36 36" enable-background="new 0 0 36 36" xml:space="preserve"> <image id="image0" width="36" height="36" x="0" y="0"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
AAB1MAAA6mAAADqYAAAXcJy6UTwAAAJqUExURQzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzsygzs
ygzsygzsygzsygzsygzsyv///7R4D+kAAADMdFJOUwAHFEWHuNfl6t3Ck1QaCjiY5Prx5uDu+KpK
EDGbmWREHwsJPV+My/yxRwEEaevAbBEeO0glXLKBEo/pejV1ptL9/vLZr38CYyCgyjwFfuHsnim9
IZEnmr4TF6WwFsYmLtX1q+dykiLHUngZuzRVxDoVWJ9hBpxrp0kdXfsrQ5D0v7MOdH1qNxsk77xO
udzbLAgM3zDw7fakwd6A92ZAbczDiqh7TPleUQNzaItB1rdlOa5ZbjMPS455V9o/0KlnrOKirYmD
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
RK5CYII=" />
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -106,8 +106,8 @@ function goHome() {
.jeecg-layout-header-logo {
height: 74px !important;
min-width: 192px;
padding: 0 10px;
width: 342px !important;
padding: 0 0 0 8px;
font-size: 14px;
}

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,14 @@
<template>
<div :class="`${prefixCls}- flex items-center `">
<Icon v-if="getIcon" :icon="getIcon" :size="36" :class="`${prefixCls}-wrapper__icon`" />
{{ getI18nName }}
<!-- <SvgIcon v-if="getIcon" :name="getIcon" :size="36" :class="`${prefixCls}-wrapper__icon`" /> -->
<div class="items-title">{{ getI18nName }}</div>
</div>
</template>
<script lang="ts">
import { computed, defineComponent } from 'vue';
// import SvgIcon from '/@/components/Icon/src/SvgIcon.vue';
import Icon from '/@/components/Icon/index';
import { useI18n } from '/@/hooks/web/useI18n';
import { useDesign } from '/@/hooks/web/useDesign';
@ -18,6 +19,7 @@ export default defineComponent({
name: 'MenuItemContent',
components: {
Icon,
// SvgIcon
},
props: contentProps,
setup(props) {
@ -33,3 +35,15 @@ export default defineComponent({
},
});
</script>
<style lang="less">
.items-center {
flex-direction: column;
justify-content: center;
height: 74px;
}
.items-title {
width: 100%;
height: 30px;
line-height: 30px;
}
</style>

View File

@ -32,7 +32,7 @@
.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
.ant-menu-submenu-active,
.ant-menu-submenu-title:hover {
color: #fff;
color: #00e9fe;
background-color: @top-menu-active-bg-color !important;
border: solid 1px rgba(5, 255, 184, 0.46);
}
@ -51,7 +51,7 @@
&.ant-menu-item-selected,
&.ant-menu-submenu-selected {
color: #fff;
color: #00e9fe;
background-color: @top-menu-active-bg-color !important;
border: solid 1px rgba(5, 255, 184, 0.46);
}
@ -59,11 +59,20 @@
.ant-menu-item,
.ant-menu-submenu {
font-family: MicrosoftYaHei;
font-size: 18px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 2px;
color: #0cecca;
height: 74px;
padding-inline: 30px ;
&.@{basic-menu-prefix-cls}-item__level1,
.ant-menu-submenu-title {
height: 74px; //@header-height;
line-height: 74px; //@header-height;
height: @header-height;
line-height: @header-height;
}
}
}

View File

@ -51,13 +51,13 @@ export default defineComponent({
position: relative;
flex: 1 1 auto;
min-height: 0;
margin-top: -56px;
padding-top: 103px;
// margin-top: -56px;
// padding-top: 103px;
margin-left: -1px;
background-image: url(../../../assets/images/main-bg.jpg);
background-size: 100% 100%;
background-repeat: no-repeat;
// background-image: url(../../../assets/images/main-bg.jpg);
// background-size: 100% 100%;
// background-repeat: no-repeat;
&.fixed {
width: 1200px;

View File

@ -262,7 +262,8 @@ export default defineComponent({
.anticon,
.truncate {
color: rgba(255, 255, 255, 1);
// color: rgba(255, 255, 255, 1);
color: #0cecca;
}
}

View File

@ -14,23 +14,23 @@
</template>
<script lang="ts">
import { defineComponent, computed, unref, ref } from 'vue';
import { Layout } from 'ant-design-vue';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import { defineComponent, computed, unref, ref } from 'vue';
import { Layout } from 'ant-design-vue';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import LayoutHeader from './header/index.vue';
import LayoutContent from './content/index.vue';
import LayoutSideBar from './sider/index.vue';
import LayoutMultipleHeader from './header/MultipleHeader.vue';
import LayoutHeader from './header/index.vue';
import LayoutContent from './content/index.vue';
import LayoutSideBar from './sider/index.vue';
import LayoutMultipleHeader from './header/MultipleHeader.vue';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
import { useLockPage } from '/@/hooks/web/useLockPage';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
import { useLockPage } from '/@/hooks/web/useLockPage';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useAppInject } from '/@/hooks/web/useAppInject';
export default defineComponent({
export default defineComponent({
name: 'DefaultLayout',
components: {
LayoutFeatures: createAsyncComponent(() => import('/@/layouts/default/feature/index.vue')),
@ -68,25 +68,31 @@
lockEvents,
};
},
});
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-default-layout';
@prefix-cls: ~'@{namespace}-default-layout';
.@{prefix-cls} {
.@{prefix-cls} {
display: flex;
width: 100%;
min-height: 100%;
background-color: @content-bg;
background-color: transparent; // @content-bg;
flex-direction: column;
> .ant-layout {
background-image: url(./../../assets/images/main-bg.jpg);
background-size: cover;
background-repeat: no-repeat;
>.ant-layout {
min-height: 100%;
background: transparent !important;
}
&-main {
width: 100%;
margin-left: 1px;
background: transparent !important;
}
}
}
</style>

View File

@ -20,7 +20,7 @@ const setting: ProjectConfig = {
showDarkModeToggle: true,
settingButtonPosition: SettingButtonPositionEnum.AUTO,
permissionMode: PermissionModeEnum.BACK,
permissionCacheType: CacheTypeEnum.LOCAL,
permissionCacheType: 1,
sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP,
themeColor: primaryColor,
themeMode: darkMode,
@ -34,7 +34,7 @@ const setting: ProjectConfig = {
bgColor: HEADER_PRESET_BG_COLOR_LIST[4],
fixed: true,
show: true,
theme: ThemeEnum.LIGHT,
theme: ThemeEnum.DARK,
useLockPage: false,
showFullScreen: false,
showDoc: false,
@ -49,18 +49,18 @@ const setting: ProjectConfig = {
canDrag: false,
show: true,
hidden: false,
menuWidth: 210,
mode: MenuModeEnum.HORIZONTAL,
type: MenuTypeEnum.TOP_MENU,
theme: ThemeEnum.LIGHT,
isThemeBright: false,
menuWidth: 290,
mode: MenuModeEnum.INLINE,
type: MenuTypeEnum.MIX,
theme: ThemeEnum.DARK,
isThemeBright: true,
topMenuAlign: "center",
trigger: TriggerEnum.NONE,
accordion: true,
closeMixSidebarOnChange: false,
mixSideTrigger: MixSidebarTriggerEnum.CLICK,
mixSideFixed: false,
split: false
split: true
},
multiTabsSetting: {
cache: false,
@ -69,7 +69,7 @@ const setting: ProjectConfig = {
showQuick: true,
showRedo: true,
showFold: true,
theme: TabsThemeEnum.CARD,
theme: TabsThemeEnum.SMOOTH
},
transitionSetting: {
enable: true,

View File

@ -1,5 +1,5 @@
<template>
<IndexChart v-if="indexStyle === 0"></IndexChart>
<!-- <IndexChart v-if="indexStyle === 0"></IndexChart>
<IndexDef v-if="indexStyle === 1"></IndexDef>
<IndexBdc v-if="indexStyle == 2"></IndexBdc>
<IndexTask v-if="indexStyle == 3"></IndexTask>
@ -11,7 +11,7 @@
<a-radio :value="2">业务统计</a-radio>
<a-radio :value="3">我的任务</a-radio>
</a-radio-group>
</div>
</div> -->
</template>
<script lang="ts" setup>
import { ref } from 'vue';

View File

@ -3,7 +3,7 @@ import { FormSchema } from '/@/components/Table';
import { h } from 'vue';
import { Icon } from '/@/components/Icon';
import { duplicateCheck } from '../user/user.api';
import { ajaxGetDictItems ,checkPermDuplication } from './menu.api';
import { ajaxGetDictItems, checkPermDuplication } from './menu.api';
import { render } from '/@/utils/common/renderUtils';
const isDir = (type) => type === 0;
@ -102,7 +102,7 @@ export const formSchema: FormSchema[] = [
},
]);
//update-begin---author:wangshuai ---date:20220729 for[VUEN-1834]只有一级菜单,才默认值,子菜单的时候,清空------------
if (isMenu(e) && !formModel.id && (formModel.component=='layouts/default/index' || formModel.component=='layouts/RouteView')) {
if (isMenu(e) && !formModel.id && (formModel.component == 'layouts/default/index' || formModel.component == 'layouts/RouteView')) {
formModel.component = '';
}
//update-end---author:wangshuai ---date:20220729 for[VUEN-1834]只有一级菜单,才默认值,子菜单的时候,清空------------
@ -144,8 +144,8 @@ export const formSchema: FormSchema[] = [
//update-begin-author:liusq date:2023-06-06 for: [issues/5008]子表数据权限设置不生效
ifShow: ({ values }) => !(values.component === ComponentTypes.IFrame && values.internalOrExternal),
//update-begin-author:zyf date:2022-11-02 for: 聚合路由允许路径重复
dynamicRules: ({ model, schema,values }) => {
return checkPermDuplication(model, schema, values.menuType !== 2?true:false);
dynamicRules: ({ model, schema, values }) => {
return checkPermDuplication(model, schema, values.menuType !== 2 ? true : false);
},
//update-end-author:zyf date:2022-11-02 for: 聚合路由允许路径重复
//update-end-author:liusq date:2022-06-06 for: [issues/5008]子表数据权限设置不生效
@ -157,7 +157,7 @@ export const formSchema: FormSchema[] = [
componentProps: {
placeholder: '请输入前端组件',
},
defaultValue:'layouts/default/index',
defaultValue: 'layouts/default/index',
required: true,
ifShow: ({ values }) => !isButton(values.menuType),
},
@ -255,6 +255,9 @@ export const formSchema: FormSchema[] = [
label: '菜单图标',
component: 'IconPicker',
ifShow: ({ values }) => !isButton(values.menuType),
// componentProps: {
// mode: 'svg',
// }
},
{
field: 'sortNo',