提交本地代码

This commit is contained in:
wangchengming 2025-08-14 19:35:46 +08:00
parent a2bd03031d
commit 48d0a2301f
12 changed files with 477 additions and 374 deletions

2
.env
View File

@ -5,7 +5,7 @@ VITE_PORT = 3100
VITE_GLOB_APP_TITLE = JeecgBoot 企业级低代码平台
# 简称,此变量只能是字符/下划线
VITE_GLOB_APP_SHORT_NAME = JeecgBoot_Pro
VITE_GLOB_APP_SHORT_NAME = 放射性源项分析系统
# 单点登录服务端地址
VITE_GLOB_APP_CAS_BASE_URL=http://cas.test.com:8443/cas

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -11,15 +11,15 @@
</div>
</template>
<script lang="ts" setup>
import { computed, unref } from 'vue';
import { useGlobSetting } from '/@/hooks/setting';
import { useGo } from '/@/hooks/web/usePage';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
import { PageEnum } from '/@/enums/pageEnum';
import { useUserStore } from '/@/store/modules/user';
import { computed, unref } from 'vue';
import { useGlobSetting } from '/@/hooks/setting';
import { useGo } from '/@/hooks/web/usePage';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
import { PageEnum } from '/@/enums/pageEnum';
import { useUserStore } from '/@/store/modules/user';
const props = defineProps({
const props = defineProps({
/**
* The theme of the current parent component
*/
@ -32,41 +32,44 @@
* The title is also displayed when the menu is collapsed
*/
alwaysShowTitle: { type: Boolean },
});
});
const { prefixCls } = useDesign('app-logo');
const { getCollapsedShowTitle } = useMenuSetting();
const userStore = useUserStore();
const { title, shortTitle } = useGlobSetting();
const { prefixCls } = useDesign('app-logo');
const { getCollapsedShowTitle } = useMenuSetting();
const userStore = useUserStore();
const { title, shortTitle } = useGlobSetting();
console.log('shortTitle', shortTitle)
const go = useGo();
const go = useGo();
const getAppLogoClass = computed(() => [prefixCls, props.theme, { 'collapsed-show-title': unref(getCollapsedShowTitle) }]);
const getAppLogoClass = computed(() => [prefixCls, props.theme, { 'collapsed-show-title': unref(getCollapsedShowTitle) }]);
const getTitleClass = computed(() => [
const getTitleClass = computed(() => [
`${prefixCls}__title`,
{
'xs:opacity-0': !props.alwaysShowTitle,
},
]);
]);
function goHome() {
function goHome() {
go(userStore.getUserInfo.homePath || PageEnum.BASE_HOME);
}
}
</script>
<style lang="less" scoped>
@prefix-cls: ~'@{namespace}-app-logo';
@prefix-cls: ~'@{namespace}-app-logo';
.@{prefix-cls} {
.@{prefix-cls} {
display: flex;
align-items: center;
padding-left: 7px;
cursor: pointer;
transition: all 0.2s ease;
//
&.jeecg-layout-mix-sider-logo,&.jeecg-layout-menu-logo{
background:@sider-logo-bg-color;
&.jeecg-layout-mix-sider-logo,
&.jeecg-layout-menu-logo {
background: @sider-logo-bg-color;
}
// &.light {
// border-bottom: 1px solid @border-color-base;
// }
@ -89,5 +92,32 @@
transition: all 0.5s;
line-height: normal;
}
}
}
.jeecg-app-logo__title {
font-family: MicrosoftYaHei-Bold;
font-size: 24px;
font-weight: normal;
font-stretch: normal;
line-height: 43px;
letter-spacing: 2px;
color: #ffffff;
}
.jeecg-layout-header-logo {
height: 74px !important;
min-width: 192px;
padding: 0 10px;
font-size: 14px;
}
.jeecg-layout-header-logo img {
width: 60px;
height: 60px;
margin-right: 2px;
}
.jeecg-layout-header-logo:hover {
background-color: transparent !important;
}
</style>

View File

@ -788,4 +788,5 @@ export default [
'ant-design:zhihu-square-filled',
'ant-design:zoom-in-outlined',
'ant-design:zoom-out-outlined',
'ant-design:event-simulation'
];

View File

@ -1,19 +1,20 @@
<template>
<span :class="`${prefixCls}- flex items-center `">
<Icon v-if="getIcon" :icon="getIcon" :size="18" :class="`${prefixCls}-wrapper__icon mr-2`" />
<div :class="`${prefixCls}- flex items-center `">
<Icon v-if="getIcon" :icon="getIcon" :size="36" :class="`${prefixCls}-wrapper__icon`" />
{{ getI18nName }}
</span>
</div>
</template>
<script lang="ts">
import { computed, defineComponent } from 'vue';
import { computed, defineComponent } from 'vue';
import Icon from '/@/components/Icon/index';
import { useI18n } from '/@/hooks/web/useI18n';
import { useDesign } from '/@/hooks/web/useDesign';
import { contentProps } from '../props';
const { t } = useI18n();
import Icon from '/@/components/Icon/index';
import { useI18n } from '/@/hooks/web/useI18n';
import { useDesign } from '/@/hooks/web/useDesign';
import { contentProps } from '../props';
const { t } = useI18n();
export default defineComponent({
export default defineComponent({
name: 'MenuItemContent',
components: {
Icon,
@ -30,5 +31,5 @@
getIcon,
};
},
});
});
</script>

View File

@ -19,7 +19,8 @@
&.ant-menu-dark {
background-color: transparent;
// update-begin--author:liaozhiyang---date:20240407---for【QQYUN-8762】顶部菜单模式文字调整
color: rgba(255 ,255 ,255, 1);
color: rgba(255, 255, 255, 1);
// update-end--author:liaozhiyang---date:20240407---for【QQYUN-8762】顶部菜单模式文字调整
.ant-menu-submenu:hover,
.ant-menu-item-open,
@ -33,6 +34,7 @@
.ant-menu-submenu-title:hover {
color: #fff;
background-color: @top-menu-active-bg-color !important;
border: solid 1px rgba(5, 255, 184, 0.46);
}
.ant-menu-item:hover,
@ -41,6 +43,7 @@
.ant-menu-submenu-active,
.ant-menu-submenu-title:hover {
background-color: @top-menu-active-bg-color;
border: solid 1px rgba(5, 255, 184, 0.46);
}
.@{basic-menu-prefix-cls}-item__level1 {
@ -48,16 +51,19 @@
&.ant-menu-item-selected,
&.ant-menu-submenu-selected {
color: #fff;
background-color: @top-menu-active-bg-color !important;
border: solid 1px rgba(5, 255, 184, 0.46);
}
}
.ant-menu-item,
.ant-menu-submenu {
&.@{basic-menu-prefix-cls}-item__level1,
.ant-menu-submenu-title {
height: @header-height;
line-height: @header-height;
height: 74px; //@header-height;
line-height: 74px; //@header-height;
}
}
}

View File

@ -58,7 +58,7 @@ html {
@header-light-desc-color: #7c8087;
@header-light-bottom-border-color: #eee;
// top-menu
@top-menu-active-bg-color: var(--header-active-menu-bg-color);
@top-menu-active-bg-color: #2e6663; // var(--header-active-menu-bg-color);
// =================================
// ==============Menu============

View File

@ -14,7 +14,7 @@
// headers
// update-begin--author:liaozhiyang---date:20240407---for【QQYUN-8762】顶栏高度
@header-height: 60px;
@header-height: 89px;
// update-end--author:liaozhiyang---date:20240407---for【QQYUN-8762】顶栏高度
// logo width

View File

@ -7,15 +7,15 @@
</div>
</template>
<script lang="ts">
import { defineComponent, onMounted } from 'vue';
import PageLayout from '/@/layouts/page/index.vue';
import { useDesign } from '/@/hooks/web/useDesign';
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
import { useContentViewHeight } from './useContentViewHeight';
// import registerApps from '/@/qiankun';
import { useGlobSetting } from '/@/hooks/setting';
export default defineComponent({
import { defineComponent, onMounted } from 'vue';
import PageLayout from '/@/layouts/page/index.vue';
import { useDesign } from '/@/hooks/web/useDesign';
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
import { useContentViewHeight } from './useContentViewHeight';
// import registerApps from '/@/qiankun';
import { useGlobSetting } from '/@/hooks/setting';
export default defineComponent({
name: 'LayoutContent',
components: { PageLayout },
setup() {
@ -42,15 +42,22 @@
getPageLoading,
};
},
});
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-layout-content';
@prefix-cls: ~'@{namespace}-layout-content';
.@{prefix-cls} {
.@{prefix-cls} {
position: relative;
flex: 1 1 auto;
min-height: 0;
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;
&.fixed {
width: 1200px;
@ -62,5 +69,5 @@
top: 200px;
z-index: @page-loading-z-index;
}
}
}
</style>

View File

@ -1,17 +1,18 @@
<template>
<Header :class="getHeaderClass">
<div class="my-header">
<!-- left start -->
<div :class="`${prefixCls}-left`">
<!-- logo -->
<AppLogo v-if="getShowHeaderLogo || getIsMobile" :class="`${prefixCls}-logo`" :theme="getHeaderTheme" :style="getLogoWidth" />
<LayoutTrigger
v-if="(getShowContent && getShowHeaderTrigger && !getSplit && !getIsMixSidebar) || getIsMobile"
:theme="getHeaderTheme"
:sider="false"
/>
<AppLogo v-if="getShowHeaderLogo || getIsMobile" :class="`${prefixCls}-logo`" :theme="getHeaderTheme"
:style="getLogoWidth" />
<LayoutTrigger v-if="(getShowContent && getShowHeaderTrigger && !getSplit && !getIsMixSidebar) || getIsMobile"
:theme="getHeaderTheme" :sider="false" />
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
<!-- 欢迎语 -->
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> {{t('layout.header.welcomeIn')}} {{ title }} </span>
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile"
:class="[prefixCls, `${prefixCls}--${getHeaderTheme}`, 'headerIntroductionClass']">
{{ t('layout.header.welcomeIn') }} {{ title }} </span>
</div>
<!-- left end -->
@ -33,7 +34,8 @@
<LockScreen v-if="getUseLockPage" />
<AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" />
<AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false"
:class="`${prefixCls}-action__item`" />
<UserDropDown :theme="getHeaderTheme" />
@ -41,43 +43,44 @@
<!-- ai助手
<Aide></Aide> -->
</div>
</div>
</Header>
<LoginSelect ref="loginSelectRef" @success="loginSelectOk"></LoginSelect>
</template>
<script lang="ts">
import { defineComponent, unref, computed, ref, onMounted, toRaw } from 'vue';
import { useGlobSetting } from '/@/hooks/setting';
import { propTypes } from '/@/utils/propTypes';
import { defineComponent, unref, computed, ref, onMounted, toRaw } from 'vue';
import { useGlobSetting } from '/@/hooks/setting';
import { propTypes } from '/@/utils/propTypes';
import { Layout } from 'ant-design-vue';
import { AppLogo } from '/@/components/Application';
import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '../trigger/index.vue';
import { Layout } from 'ant-design-vue';
import { AppLogo } from '/@/components/Application';
import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '../trigger/index.vue';
import { AppSearch } from '/@/components/Application';
import { AppSearch } from '/@/components/Application';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { SettingButtonPositionEnum } from '/@/enums/appEnum';
import { AppLocalePicker } from '/@/components/Application';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { SettingButtonPositionEnum } from '/@/enums/appEnum';
import { AppLocalePicker } from '/@/components/Application';
import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction, LockScreen } from './components';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction, LockScreen } from './components';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import { useLocale } from '/@/locales/useLocale';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import { useLocale } from '/@/locales/useLocale';
import LoginSelect from '/@/views/sys/login/LoginSelect.vue';
import { useUserStore } from '/@/store/modules/user';
import { useI18n } from '/@/hooks/web/useI18n';
import Aide from "@/views/dashboard/ai/components/aide/index.vue"
const { t } = useI18n();
import LoginSelect from '/@/views/sys/login/LoginSelect.vue';
import { useUserStore } from '/@/store/modules/user';
import { useI18n } from '/@/hooks/web/useI18n';
import Aide from "@/views/dashboard/ai/components/aide/index.vue"
const { t } = useI18n();
export default defineComponent({
export default defineComponent({
name: 'LayoutHeader',
components: {
Header: Layout.Header,
@ -218,21 +221,26 @@
t
};
},
});
});
</script>
<style lang="less">
@import './index.less';
//update-begin---author:scott ---date:2022-09-30 for-----------
//
@prefix-cls: ~'@{namespace}-layout-header';
@import './index.less';
//update-begin---author:scott ---date:2022-09-30 for-----------
//
@prefix-cls: ~'@{namespace}-layout-header';
.ant-layout .@{prefix-cls} {
display: flex;
padding: 0 8px;
.ant-layout .@{prefix-cls} {
display: block;
// padding: 0 8px;
// update-begin--author:liaozhiyang---date:20240407---forQQYUN-8762
height: @header-height;
// margin-left: 1px !important;
// update-end--author:liaozhiyang---date:20240407---forQQYUN-8762
align-items: center;
// align-items: center;
background-image: url(../../../assets/images/nav-bg.png);
background-size: 100% 100%;
background-repeat: no-repeat;
.headerIntroductionClass {
margin-right: 4px;
@ -251,10 +259,60 @@
.headerIntroductionClass {
color: rgba(255, 255, 255, 1);
}
.anticon, .truncate {
.anticon,
.truncate {
color: rgba(255, 255, 255, 1);
}
}
//update-end---author:scott ---date::2022-09-30 for--------------
}
}
.jeecg-layout-header--dark {
background-color: transparent !important;
border-left: 0px solid #d9d9d9 !important;
}
.my-header {
display: flex;
padding: 0 8px;
// update-begin--author:liaozhiyang---date:20240407---forQQYUN-8762
height: 74px;
// update-end--author:liaozhiyang---date:20240407---forQQYUN-8762
align-items: center;
}
.jeecg-layout-header-action__item {
display: flex !important;
height: 74px !important;
padding: 0 2px;
font-size: 1.2em;
cursor: pointer;
align-items: center;
}
.jeecg-layout-header-action__item:hover {
background-color: transparent !important;
}
.jeecg-header-user-dropdown {
height: 74px !important;
padding: 0 0 0 10px;
padding-right: 10px;
overflow: hidden;
font-size: 12px;
cursor: pointer;
align-items: center;
}
.jeecg-basic-menu {
width: 100%;
height: 100%;
}
.jeecg-layout-header-action__item .ant-badge {
height: 74px !important;
line-height: 74px !important;
}
</style>