Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
93a7d351
提交
93a7d351
authored
3月 31, 2026
作者:
kxjia
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
http://47.97.51.208/root/zrch-risk-39
上级
8b5818ac
64b5de23
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
483 行增加
和
278 行删除
+483
-278
App.vue
zrch-risk-client-39/src/App.vue
+58
-74
color.css
zrch-risk-client-39/src/design/color.css
+29
-0
color.less
zrch-risk-client-39/src/design/color.less
+48
-58
index.less
zrch-risk-client-39/src/design/index.less
+32
-56
public.css
zrch-risk-client-39/src/design/public.css
+120
-0
public.less
zrch-risk-client-39/src/design/public.less
+70
-13
theme.css
zrch-risk-client-39/src/design/theme.css
+65
-0
theme.less
zrch-risk-client-39/src/design/theme.less
+35
-40
main.ts
zrch-risk-client-39/src/main.ts
+26
-37
没有找到文件。
zrch-risk-client-39/src/App.vue
浏览文件 @
93a7d351
...
...
@@ -7,9 +7,8 @@
</
template
>
<
script
lang=
"ts"
setup
>
import
{
watch
,
ref
}
from
'vue'
;
import
{
theme
}
from
'ant-design-vue'
;
import
{
ConfigProvider
}
from
'ant-design-vue'
;
import
{
ref
,
watchEffect
}
from
'vue'
;
import
{
ConfigProvider
,
theme
as
antdTheme
}
from
'ant-design-vue'
;
import
{
AppProvider
}
from
'/@/components/Application'
;
import
{
useTitle
}
from
'/@/hooks/web/useTitle'
;
import
{
useLocale
}
from
'/@/locales/useLocale'
;
...
...
@@ -18,87 +17,72 @@
import
{
ThemeEnum
}
from
'/@/enums/appEnum'
;
import
{
changeTheme
}
from
'/@/logics/theme/index'
;
const
appStore
=
useAppStore
();
// 解决日期时间国际化问题
import
'dayjs/locale/zh-cn'
;
// support Multi-language
const
appStore
=
useAppStore
();
const
{
getAntdLocale
}
=
useLocale
();
const
{
getDarkMode
}
=
useRootSetting
();
useTitle
();
/**
* 2024-04-07
* liaozhiyang
* 暗黑模式下默认文字白色,白天模式默认文字 #333
* */
const
modeAction
=
(
data
)
=>
{
if
(
data
.
token
)
{
if
(
getDarkMode
.
value
===
ThemeEnum
.
DARK
)
{
Object
.
assign
(
data
.
token
,
{
colorTextBase
:
'fff'
});
}
else
{
Object
.
assign
(
data
.
token
,
{
colorTextBase
:
'#333'
});
}
// 定义主题色 css 变量
if
(
data
.
token
.
colorPrimary
)
{
document
.
documentElement
.
style
.
setProperty
(
'--j-global-primary-color'
,
data
.
token
.
colorPrimary
);
}
// 主题配置(响应式)
const
appTheme
=
ref
<
any
>
({});
// 统一主题构建函数
const
buildTheme
=
()
=>
{
const
darkMode
=
getDarkMode
.
value
;
const
projectConfig
=
appStore
.
getProjectConfig
;
const
primary
=
projectConfig
.
themeColor
;
// 基础 token(亮色模式默认)
const
token
=
{
colorPrimary
:
primary
,
colorInfo
:
primary
,
wireframe
:
true
,
// 关闭线框模式,更现代(可按需配置)
fontSize
:
14
,
colorTextBase
:
'#333'
,
// 亮色模式文字颜色
colorSuccess
:
'#55D187'
,
colorWarning
:
'#EFBD47'
,
colorError
:
'#ED6F6F'
,
borderRadius
:
4
,
sizeStep
:
4
,
sizeUnit
:
4
,
fontFamily
:
'-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'
,
};
// 暗黑模式覆盖
if
(
darkMode
===
ThemeEnum
.
DARK
)
{
token
.
colorTextBase
=
'#fff'
;
// 暗黑模式文字颜色
}
// 算法(暗黑模式需要)
const
algorithm
=
darkMode
===
ThemeEnum
.
DARK
?
antdTheme
.
darkAlgorithm
:
undefined
;
const
theme
=
{
algorithm
,
token
,
};
// 更新响应式数据
appTheme
.
value
=
theme
;
// 设置 CSS 变量供全局使用
document
.
documentElement
.
style
.
setProperty
(
'--j-global-primary-color'
,
primary
);
// 调用原有主题变更逻辑(如需要)
if
(
import
.
meta
.
env
.
PROD
)
{
changeTheme
(
primary
);
}
};
// 代码逻辑说明: 【QQYUN-6366】升级到antd4.x
const
appTheme
:
any
=
ref
({});
const
{
getDarkMode
}
=
useRootSetting
();
watch
(
()
=>
getDarkMode
.
value
,
(
newValue
)
=>
{
delete
appTheme
.
value
.
algorithm
;
if
(
newValue
===
ThemeEnum
.
DARK
)
{
appTheme
.
value
.
algorithm
=
theme
.
darkAlgorithm
;
}
// 代码逻辑说明: 【QQYUN-8570】生产环境暗黑模式下主题色不生效
if
(
import
.
meta
.
env
.
PROD
)
{
changeTheme
(
appStore
.
getProjectConfig
.
themeColor
);
}
modeAction
(
appTheme
.
value
);
appTheme
.
value
=
{
...
appTheme
.
value
,
};
},
{
immediate
:
true
}
);
watch
(
appStore
.
getProjectConfig
,
(
newValue
)
=>
{
const
primary
=
newValue
.
themeColor
;
const
result
=
{
...
appTheme
.
value
,
...{
token
:
{
colorPrimary
:
primary
,
wireframe
:
true
,
fontSize
:
14
,
colorTextBase
:
'#333'
,
colorSuccess
:
'#55D187'
,
colorInfo
:
primary
,
borderRadius
:
4
,
sizeStep
:
4
,
sizeUnit
:
4
,
colorWarning
:
'#EFBD47'
,
colorError
:
'#ED6F6F'
,
fontFamily
:
'-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'
,
},
},
};
appTheme
.
value
=
result
;
modeAction
(
result
);
},
{
immediate
:
true
}
);
setTimeout
(()
=>
{
appStore
.
getProjectConfig
?.
themeColor
&&
changeTheme
(
appStore
.
getProjectConfig
.
themeColor
);
},
300
);
// 监听主题相关变化,自动重建主题
watchEffect
(()
=>
{
buildTheme
();
});
</
script
>
<
style
lang=
"less"
>
// 代码逻辑说明: 【QQYUN-5839】windi会影响到html2canvas绘制的图片样式
img {
...
...
zrch-risk-client-39/src/design/color.css
0 → 100644
浏览文件 @
93a7d351
html
{
--header-bg-color
:
#394664
;
--header-bg-hover-color
:
#273352
;
--header-active-menu-bg-color
:
#273352
;
--sider-dark-bg-color
:
#273352
;
--sider-dark-darken-bg-color
:
#273352
;
--sider-dark-lighten-bg-color
:
#273352
;
--sider-logo-bg-color
:
linear-gradient
(
180deg
,
#000000
,
#021d37
);
--layout-bg
:
#f0f2f5
;
--card-bg
:
#ffffff
;
--card-radius
:
8px
;
--page-padding
:
24px
;
--content-max-width
:
1400px
;
--header-height
:
64px
;
--text-primary
:
rgba
(
0
,
0
,
0
,
0.85
);
--text-secondary
:
rgba
(
0
,
0
,
0
,
0.65
);
--text-disabled
:
rgba
(
0
,
0
,
0
,
0.25
);
--text-border
:
#e5e7eb
;
--border-color
:
#e5e7eb
;
--border-radius-base
:
4px
;
}
[
data-theme
=
'dark'
]
{
--layout-bg
:
#141414
;
--card-bg
:
#1f1f1f
;
--text-primary
:
rgba
(
255
,
255
,
255
,
0.85
);
--text-secondary
:
rgba
(
255
,
255
,
255
,
0.65
);
--text-disabled
:
rgba
(
255
,
255
,
255
,
0.25
);
--border-color
:
#434343
;
}
zrch-risk-client-39/src/design/color.less
浏览文件 @
93a7d351
...
...
@@ -8,63 +8,72 @@ html {
--sider-dark-bg-color: #273352;
--sider-dark-darken-bg-color: #273352;
--sider-dark-lighten-bg-color: #273352;
--sider-logo-bg-color:linear-gradient(180deg, #000000, #021d37);
--sider-logo-bg-color: linear-gradient(180deg, #000000, #021d37);
// 新增通用布局变量
--layout-bg: #f0f2f5;
--card-bg: #ffffff;
--card-radius: 8px;
--page-padding: 24px;
--content-max-width: 1400px;
--header-height: 64px;
// 文字颜色
--text-primary: rgba(0, 0, 0, 0.85);
--text-secondary: rgba(0, 0, 0, 0.65);
--text-disabled: rgba(0, 0, 0, 0.25);
--text-border: #e5e7eb;
// 边框
--border-color: #e5e7eb;
--border-radius-base: 4px;
}
@white: #fff;
// 暗黑模式变量覆盖(由主题切换逻辑动态设置,此处保留变量定义)
[data-theme='dark'] {
--layout-bg: #141414;
--card-bg: #1f1f1f;
--text-primary: rgba(255, 255, 255, 0.85);
--text-secondary: rgba(255, 255, 255, 0.65);
--text-disabled: rgba(255, 255, 255, 0.25);
--border-color: #434343;
}
@white: #fff;
@content-bg: #f4f7f9;
// :export {
// name: "less";
// mainColor: @mainColor;
// fontSize: @fontSize;
// }
// 保持原有 Less 变量
@iconify-bg-color: #5551;
// =================================
// ==============border-color=======
// =================================
// primary color
@primary-color: #1890ff;
// Dark-dark
@border-color-dark: #b6b7b9;
// status colors
@success-color: #52c41a;
@warning-color: #faad14;
@error-color: #ff4d4f;
// Dark-light
// border-color
@border-color-base: #d9d9d9;
@border-color-dark: #b6b7b9;
@border-color-shallow-dark: #cececd;
// Light-dark
@border-color-light: @border-color-base;
// =================================
// ==============message==============
// =================================
// success-bg-color
// message 背景色
@success-background-color: #f1f9ec;
// info-bg-color
@info-background-color: #e8eff8;
// warn-bg-color
@warning-background-color: #fdf6ed;
// danger-bg-color
@danger-background-color: #fef0f0;
// =================================
// ==============Header=============
// =================================
// Header
@header-dark-bg-color: var(--header-bg-color);
@header-dark-bg-hover-color: var(--header-bg-hover-color);
@header-light-bg-hover-color: #f6f6f6;
@header-light-desc-color: #7c8087;
@header-light-bottom-border-color: #eee;
// top-menu
@top-menu-active-bg-color: var(--header-active-menu-bg-color);
// =================================
// ==============Menu============
// =================================
// let -menu
// Menu
@sider-logo-bg-color: var(--sider-logo-bg-color);
@sider-dark-bg-color: var(--sider-dark-bg-color);
@sider-dark-darken-bg-color: var(--sider-dark-darken-bg-color);
...
...
@@ -74,41 +83,24 @@ html {
@trigger-dark-hover-bg-color: rgba(255, 255, 255, 0.2);
@trigger-dark-bg-color: rgba(255, 255, 255, 0.1);
// =================================
// ==============tree============
// =================================
// tree item hover background
// tree
@tree-hover-background-color: #f5f7fa;
// tree item hover font color
@tree-hover-font-color: #f5f7fa;
// =================================
// ==============link============
// =================================
// link
@link-hover-color: @primary-color;
@link-active-color: darken(@primary-color, 10%);
// =================================
// ==============Text color-=============
// =================================
// Main text color
// text color
@text-color: rgba(0, 0, 0, 0.85);
@text-color-base: @text-color;
// Label color
@text-color-call-out: #606266;
// Auxiliary information color-dark
@text-color-help-dark: #909399;
// =================================
// ==============breadcrumb=========
// =================================
// breadcrumb
@breadcrumb-item-normal-color: #999;
// =================================
// ==============button=============
// =================================
// button
@button-primary-color: @primary-color;
@button-primary-hover-color: lighten(@primary-color, 5%);
@button-primary-active-color: darken(@primary-color, 5%);
...
...
@@ -133,8 +125,6 @@ html {
@button-cancel-color: @text-color-call-out;
@button-cancel-bg-color: @white;
@button-cancel-border-color: @border-color-shallow-dark;
// Mouse over
@button-cancel-hover-color: @primary-color;
@button-cancel-hover-bg-color: @white;
@button-cancel-hover-border-color: @primary-color;
zrch-risk-client-39/src/design/index.less
浏览文件 @
93a7d351
...
...
@@ -22,9 +22,8 @@ html,
body {
width: 100%;
height: 100%;
// body添加行高保持跟3.x一致
line-height: 1.5715;
&.color-weak {
filter: invert(80%);
}
...
...
@@ -35,7 +34,6 @@ body {
}
}
/* 【LOWCOD-2300】【vue3】online--online表单开发,下拉框位置靠下时,点开下拉框,整屏跳 */
body {
overflow: visible;
overflow-x: hidden;
...
...
@@ -50,25 +48,21 @@ span {
outline: none !important;
}
// 保持 和 windi 一样的全局样式,减少升级带来的影响
ul {
list-style: none;
margin: 0;
padding: 0;
}
img, video {
img,
video {
max-width: 100%;
height: auto;
}
// 保持 和 windi 一样的全局样式,减少升级带来的影响
//
update-begin--author:liaozhiyang---date:20230925---for:【issues/5407】字段信息校验是多行提示会被遮挡
//
vxe-table 样式调整(保留,若无需可删除)
.vxe-cell--valid-error-msg {
white-space: nowrap;
}
// update-end--author:liaozhiyang---date:20230925---for:【issues/5407】字段信息校验是多行提示会被遮挡
// update-begin--author:liaozhiyang---date:20231013---for:【QQYUN-5133】升级之后提示样式跟之前一致
.vxe-table .vxe-body--row:last-child .vxe-cell--valid-error-hint {
margin-top: auto;
}
...
...
@@ -81,25 +75,15 @@ img, video {
padding: 8px 12px !important;
color: #fff !important;
background-color: #f56c6c !important;
}
// update-end--author:liaozhiyang---date:20231013---for:【QQYUN-5133】升级之后提示样式跟之前一致
// update-begin--author:liaozhiyang---date:20231116---for:【QQYUN-7011】online表单多了一个蓝色的边框
// .vxe-table.vxe-table--render-default .vxe-body--column.col--selected {
// box-shadow: none;
// }
// update-end--author:liaozhiyang---date:20231116---for:【QQYUN-7011】online表单多了一个蓝色的边框
// update-begin--author:liaozhiyang---date:20240424---for:【issues/1175】解决vxetable鼠标hover之后title显示不对的问题
.vxe-cell {
pointer-events: none;
> * {
pointer-events: auto;
}
}
// update-end--author:liaozhiyang---date:20240424---for:【issues/1175】解决vxetable鼠标hover之后title显示不对的问题
//
update-begin--author:liaozhiyang---date:20240429---for:【QQYUN-9023】引导样式调整
//
intro.js 引导样式
.introjs-tooltipReferenceLayer {
.introjs-tooltip-title {
font-size: 15px;
...
...
@@ -124,18 +108,16 @@ img, video {
height: 4px;
}
.introjs-button {
padding: .2rem 0.5rem;
padding:
0
.2rem 0.5rem;
font-size: 13px;
}
}
// update-end--author:liaozhiyang---date:20240429---for:【QQYUN-9023】引导样式调整
// update-begin--author:liaozhiyang---date:20240605---for:【TV360X-857】online代码生成详情样式调整
// 详情表单效果(保留)
html[data-theme='light'] {
.jeecg-form-detail-effect {
*:not(.ant-select-selection-placeholder){
color: #606266!important;
*:not(.ant-select-selection-placeholder)
{
color: #606266
!important;
}
.ant-row label {
color: #797c81 !important;
...
...
@@ -146,38 +128,34 @@ html[data-theme='light'] {
.ant-input-affix-wrapper,
.ant-picker,
.ant-input-number {
// border: none !important;
// color: rgba(51, 51, 51, 0.25) !important;
color: #606266!important;
color: #606266 !important;
background-color: #f9f9fa !important;
}
a,
.anticon {
pointer-events: none;
cursor: text;
color: #606266!important;
color: #606266
!important;
&:hover {
background: transparent;
}
}
.ant-select.ant-select-disabled .ant-select-selection-item .ant-select-selection-item-content {
color: #606266!important;
color: #606266
!important;
}
.ant-select-selection-item {
color: #606266!important;
color: #606266
!important;
}
:where(.css-dev-only-do-not-override-dvamda).ant-picker .ant-picker-input >
input-disabled, :where(.css-dev-only-do-not-override-dvamda).ant-picker .ant-picker-input >
input[disabled] {
color: #606266!important;
:where(.css-dev-only-do-not-override-dvamda).ant-picker .ant-picker-input > input-disabled,
:where(.css-dev-only-do-not-override-dvamda).ant-picker .ant-picker-input >
input[disabled] {
color: #606266
!important;
}
.ant-select-selection-item {
border-color: #eee !important;
background-color: transparent !important;
}
//【QQYUN-13754】switch在禁用的方式下效果有问题:字体为黑色
.ant-switch-
disabled .ant-switch-inner-checked,.ant-switch-inner-unchecked
{
.ant-switch-disabled .ant-switch-inner-checked,
.ant-switch-
inner-unchecked
{
color: #fff !important;
}
}
...
...
@@ -187,8 +165,9 @@ html[data-theme='dark'] {
* {
color: #606266;
}
.ant-upload-text-icon, a {
color:rgba(255, 255, 255, 0.25) ;
.ant-upload-text-icon,
a {
color: rgba(255, 255, 255, 0.25);
}
.ant-select-selector,
.ant-btn,
...
...
@@ -198,13 +177,12 @@ html[data-theme='dark'] {
.ant-input-number {
background-color: transparent !important;
}
.ant-select-selection-item {
background-color: transparent !important;
}
// 暗黑模式下输入框等icon隐藏
.ant-
picker-suffix,.ant-
select-arrow {
content:
" "
;
.ant-picker-suffix,
.ant-select-arrow {
content:
' '
;
display: none;
}
}
...
...
@@ -235,7 +213,8 @@ html[data-theme='dark'] {
input {
border: none !important;
}
input, textarea {
input,
textarea {
user-select: auto;
cursor: text !important;
}
...
...
@@ -274,8 +253,9 @@ html[data-theme='dark'] {
.ant-upload {
pointer-events: none;
cursor: not-allowed;
.ant-upload-text,.anticon {
display: none;
.ant-upload-text,
.anticon {
display: none;
}
}
.ant-upload-list-item-done {
...
...
@@ -289,22 +269,19 @@ html[data-theme='dark'] {
}
}
}
// update-end--author:liaozhiyang---date:20240605---for:【TV360X-857】online代码生成详情样式调整
//
update-begin--author:wangshuai---date:20240611---for:【TV360X-1070】一对多内嵌,为什么多这一块,不从头对齐
.ant-table-wrapper .ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{
//
一对多内嵌表格样式调整
.ant-table-wrapper .ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table
{
margin-block: 0;
margin-inline: 0;
}
// update-end--author:wangshuai---date:20240611---for:【TV360X-1070】一对多内嵌,为什么多这一块,不从头对齐
//
单行文本溢出
省略号
//
通用
省略号
.ellipsis {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
// 两行省略
.ellipsis-2 {
display: -webkit-box;
overflow: hidden;
...
...
@@ -313,7 +290,6 @@ html[data-theme='dark'] {
-webkit-box-orient: vertical;
word-break: break-all;
}
// 三行省略
.ellipsis-3 {
display: -webkit-box;
overflow: hidden;
...
...
zrch-risk-client-39/src/design/public.css
0 → 100644
浏览文件 @
93a7d351
#app
{
width
:
100%
;
height
:
100%
;
}
.page-container
{
padding
:
var
(
--page-padding
,
24px
);
background
:
var
(
--layout-bg
,
#f0f2f5
);
min-height
:
calc
(
100vh
-
var
(
--header-height
,
64px
));
}
.search-section
{
background
:
var
(
--card-bg
,
#ffffff
);
padding
:
20px
24px
;
border-radius
:
var
(
--card-radius
,
8px
);
margin-bottom
:
16px
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.03
);
}
.action-section
{
background
:
var
(
--card-bg
,
#ffffff
);
padding
:
16px
24px
;
border-radius
:
var
(
--card-radius
,
8px
);
margin-bottom
:
16px
;
display
:
flex
;
gap
:
12px
;
align-items
:
center
;
flex-wrap
:
wrap
;
}
.table-card
{
background
:
var
(
--card-bg
,
#ffffff
);
padding
:
0
24px
24px
24px
;
border-radius
:
var
(
--card-radius
,
8px
);
}
.action-section
.ant-btn
{
margin-right
:
12px
;
}
.action-section
.ant-btn
:last-child
{
margin-right
:
0
;
}
.search-section
.ant-form-item
{
margin-bottom
:
0
;
}
.search-section
.ant-btn
{
margin-right
:
12px
;
}
::-webkit-scrollbar
{
width
:
7px
;
height
:
8px
;
}
::-webkit-scrollbar-track
{
background-color
:
rgba
(
0
,
0
,
0
,
0.05
);
}
::-webkit-scrollbar-thumb
{
background-color
:
rgba
(
144
,
147
,
153
,
0.3
);
border-radius
:
2px
;
box-shadow
:
inset
0
0
6px
rgba
(
0
,
0
,
0
,
0.2
);
}
::-webkit-scrollbar-thumb:hover
{
background-color
:
rgba
(
144
,
147
,
153
,
0.5
);
}
[
data-theme
=
'dark'
]
::-webkit-scrollbar-thumb:hover
{
background-color
:
#5e6063
;
}
#nprogress
{
pointer-events
:
none
;
}
#nprogress
.bar
{
position
:
fixed
;
top
:
0
;
left
:
0
;
z-index
:
99999
;
width
:
100%
;
height
:
2px
;
background-color
:
#1890ff
;
opacity
:
0.75
;
}
.j-table-operator
.ant-btn
{
margin
:
0
8px
8px
0
;
transition
:
margin
0s
;
}
.j-table-operator
>
.ant-btn
:last-of-type
{
margin
:
0
0
8px
0
;
}
.j-table-operator
.ant-btn-group
.ant-btn
,
.j-table-operator.ant-btn-group
.ant-btn
{
margin
:
0
;
transition
:
margin
0s
;
}
.j-table-operator
.ant-btn-group
>
.ant-btn
:last-of-type
,
.j-table-operator.ant-btn-group
>
.ant-btn
:last-of-type
{
margin
:
0
8px
8px
0
;
}
.j-box-bottom-button
{
height
:
28px
;
}
.j-box-bottom-button-float
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
border-top
:
1px
solid
#e8e8e8
;
padding
:
10px
16px
;
text-align
:
right
;
background
:
#fff
;
border-radius
:
0
0
2px
2px
;
}
.j-box-bottom-button-float
.ant-btn
{
margin-left
:
8px
;
}
.j-box-bottom-button.offset-20
.j-box-bottom-button-float
{
left
:
-20px
;
right
:
-20px
;
bottom
:
-20px
;
}
.ant-modal-body
{
padding
:
24px
!important
;
}
.ant-modal-footer
{
padding
:
16px
24px
!important
;
text-align
:
right
;
border-top
:
1px
solid
var
(
--border-color
,
#e5e7eb
);
}
zrch-risk-client-39/src/design/public.less
浏览文件 @
93a7d351
@primary-color: #1890ff;
#app {
width: 100%;
height: 100%;
}
// =================================
//
==============scrollbar==========
//
通用页面布局类
// =================================
.page-container {
padding: var(--page-padding, 24px);
background: var(--layout-bg, #f0f2f5);
min-height: calc(100vh - var(--header-height, 64px));
}
.search-section {
background: var(--card-bg, #ffffff);
padding: 20px 24px;
border-radius: var(--card-radius, 8px);
margin-bottom: 16px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.action-section {
background: var(--card-bg, #ffffff);
padding: 16px 24px;
border-radius: var(--card-radius, 8px);
margin-bottom: 16px;
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
}
.table-card {
background: var(--card-bg, #ffffff);
padding: 0 24px 24px 24px;
border-radius: var(--card-radius, 8px);
}
// 按钮间距(操作区域内)
.action-section .ant-btn {
margin-right: 12px;
&:last-child {
margin-right: 0;
}
}
// 查询表单样式
.search-section {
.ant-form-item {
margin-bottom: 0;
}
.ant-btn {
margin-right: 12px;
}
}
// =================================
// ==============scrollbar==========
// =================================
::-webkit-scrollbar {
width: 7px;
height: 8px;
}
// ::-webkit-scrollbar-track {
// background: transparent;
// }
::-webkit-scrollbar-track {
background-color: rgba(0, 0, 0, 0.05);
}
::-webkit-scrollbar-thumb {
// background: rgba(0, 0, 0, 0.6);
background-color: rgba(144, 147, 153, 0.3);
// background-color: rgba(144, 147, 153, 0.3);
border-radius: 2px;
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.2);
}
::-webkit-scrollbar-thumb:hover {
background-color:
@border-color-dark
;
background-color:
rgba(144, 147, 153, 0.5)
;
}
[data-theme='dark'] {
...
...
@@ -56,11 +103,10 @@
}
}
// =======================================
// ============
[sjl] 按钮组样式
==========
// =======================================
// =======================================
=
// ============
按钮组样式(保留原有类)
==========
// =======================================
=
.j-table-operator {
// Button按钮间距
.ant-btn {
margin: 0 8px 8px 0;
transition: margin 0s;
...
...
@@ -84,7 +130,7 @@
}
// ========================================
// ============
[sjl]
底部按钮样式 ==========
// ============ 底部按钮样式 ==========
// ========================================
.j-box-bottom-button {
height: 28px;
...
...
@@ -111,3 +157,14 @@
bottom: -20px;
}
}
// 弹窗内容区统一内边距
.ant-modal-body {
padding: 24px !important;
}
// 弹窗底部按钮区域,增加右边距和下边距
.ant-modal-footer {
padding: 16px 24px !important;
text-align: right;
border-top: 1px solid var(--border-color, #e5e7eb);
}
zrch-risk-client-39/src/design/theme.css
0 → 100644
浏览文件 @
93a7d351
.bg-white
{
background-color
:
#ffffff
!important
;
}
html
[
data-theme
=
'light'
]
body
{
color
:
var
(
--text-primary
,
rgba
(
0
,
0
,
0
,
0.65
));
}
html
[
data-theme
=
'light'
]
.text-secondary
{
color
:
var
(
--text-secondary
,
rgba
(
0
,
0
,
0
,
0.45
));
}
html
[
data-theme
=
'light'
]
.ant-table
{
color
:
var
(
--text-primary
,
rgba
(
0
,
0
,
0
,
0.65
));
}
html
[
data-theme
=
'light'
]
.ant-table
.ant-table-tbody
>
tr
:hover
>
td
{
background-color
:
#fafafa
;
}
html
[
data-theme
=
'light'
]
.ant-table
.ant-table-thead
>
tr
>
th
{
background-color
:
#fafafa
;
font-weight
:
500
;
}
html
[
data-theme
=
'light'
]
.ant-select-multiple
.ant-select-selection-item-content
{
color
:
var
(
--text-primary
,
rgba
(
0
,
0
,
0
,
0.65
));
}
html
[
data-theme
=
'light'
]
.ant-input-affix-wrapper
>
input
.ant-input
:not
([
disabled
])
{
color
:
var
(
--text-primary
,
rgba
(
0
,
0
,
0
,
0.65
));
}
html
[
data-theme
=
'light'
]
.ant-select-single.ant-select-show-arrow
.ant-select-selection-item
,
html
[
data-theme
=
'light'
]
.ant-select-single.ant-select-show-arrow
{
color
:
var
(
--text-primary
,
rgba
(
0
,
0
,
0
,
0.65
));
}
html
[
data-theme
=
'light'
]
.ant-alert-success
{
background-color
:
#f6ffed
;
border
:
1px
solid
#b7eb8f
;
}
html
[
data-theme
=
'light'
]
.ant-alert-error
{
background-color
:
#fff2f0
;
border
:
1px
solid
#ffccc7
;
}
html
[
data-theme
=
'light'
]
.ant-alert-warning
{
background-color
:
#fffbe6
;
border
:
1px
solid
#ffe58f
;
}
html
[
data-theme
=
'light'
]
:not
(
:root
)
:fullscreen::backdrop
{
background-color
:
#ffffff
!important
;
}
[
data-theme
=
'dark'
]
body
{
color
:
var
(
--text-primary
,
rgba
(
255
,
255
,
255
,
0.85
));
}
[
data-theme
=
'dark'
]
.text-secondary
{
color
:
var
(
--text-secondary
,
#8b949e
);
}
[
data-theme
=
'dark'
]
.ant-list
.ant-list-item
{
color
:
var
(
--text-primary
,
rgba
(
255
,
255
,
255
,
0.85
));
}
[
data-theme
=
'dark'
]
.ant-card-grid-hoverable
:hover
{
box-shadow
:
0
3px
6px
-4px
rgba
(
0
,
0
,
0
,
0.48
),
0
6px
16px
0
rgba
(
0
,
0
,
0
,
0.32
),
0
9px
28px
8px
rgba
(
0
,
0
,
0
,
0.2
);
}
[
data-theme
=
'dark'
]
.ant-card-grid
{
box-shadow
:
1px
0
0
0
#434343
,
0
1px
0
0
#434343
,
1px
1px
0
0
#434343
,
1px
0
0
0
#434343
inset
,
0
1px
0
0
#434343
inset
;
}
[
data-theme
=
'dark'
]
.ant-calendar-selected-day
.ant-calendar-date
{
color
:
rgba
(
0
,
0
,
0
,
0.8
);
}
[
data-theme
=
'dark'
]
.ant-select-tree
li
.ant-select-tree-node-content-wrapper.ant-select-tree-node-selected
{
color
:
rgba
(
0
,
0
,
0
,
0.9
);
}
zrch-risk-client-39/src/design/theme.less
浏览文件 @
93a7d351
.bg-white {
background-color:
@component-background
!important;
background-color:
#ffffff
!important;
}
html[data-theme='light'] {
// update-begin--author:liaozhiyang---date:20240407---for:【QQYUN-8774】给body加上打底的字体颜色
body{
color: rgba(0, 0, 0, 0.65);
body {
color: var(--text-primary, rgba(0, 0, 0, 0.65));
}
// update-end--author:liaozhiyang---date:20240407---for:【QQYUN-8774】给body加上打底的字体颜色
.text-secondary {
color:
rgba(0, 0, 0, 0.45
);
color:
var(--text-secondary, rgba(0, 0, 0, 0.45)
);
}
/*【美化】自定义table字体颜色*/
.ant-table {
color: rgba(0, 0, 0, 0.65);
color: var(--text-primary, rgba(0, 0, 0, 0.65));
.ant-table-tbody > tr:hover > td {
background-color: #fafafa;
}
.ant-table-thead > tr > th {
background-color: #fafafa;
font-weight: 500;
}
}
/*【美化】自定义table字体颜色*/
/*【美化】自定义form字体颜色*/
.ant-select-multiple .ant-select-selection-item-content {
color:
rgba(0, 0, 0, 0.65
);
color:
var(--text-primary, rgba(0, 0, 0, 0.65)
);
}
.ant-input-affix-wrapper > input.ant-input {
// update-begin--author:liaozhiyang---date:20240605---for:【TV360X-189】统一只读样式
&:not([disabled]) {
color: rgba(0, 0, 0, 0.65);
}
// update-end--author:liaozhiyang---date:20240605---for:【TV360X-189】统一只读样式
.ant-input-affix-wrapper > input.ant-input:not([disabled]) {
color: var(--text-primary, rgba(0, 0, 0, 0.65));
}
.ant-select-single.ant-select-show-arrow .ant-select-selection-item, .ant-select-single.ant-select-show-arrow {
color: rgba(0, 0, 0, 0.65);
.ant-select-single.ant-select-show-arrow .ant-select-selection-item,
.ant-select-single.ant-select-show-arrow {
color: var(--text-primary, rgba(0, 0, 0, 0.65));
}
/*【美化】自定义form字体颜色*/
.ant-alert-success {
background-color: #f6ffed;
border: 1px solid #b7eb8f;
}
.ant-alert-error {
background-color: #fff2f0;
border: 1px solid #ffccc7;
}
.ant-alert-warning {
background-color: #fffbe6;
border: 1px solid #ffe58f;
}
:not(:root):fullscreen::backdrop {
background-color:
@layout-body-background
!important;
background-color:
#ffffff
!important;
}
}
[data-theme='dark'] {
// update-begin--author:liaozhiyang---date:20240407---for:【QQYUN-8774】给body加上打底的字体颜色
body{
color: rgba(255, 255, 255, 0.85);
}
// update-end--author:liaozhiyang---date:20240407---for:【QQYUN-8774】给body加上打底的字体颜色
// update-begin--author:liaozhiyang---date:20240407---for:【QQYUN-8641】黑色主题-流程办理
.ant-list .ant-list-item {
color: rgba(255, 255, 255, 0.85);
body {
color: var(--text-primary, rgba(255, 255, 255, 0.85));
}
// update-end--author:liaozhiyang---date:20240407---for:【QQYUN-8641】黑色主题-流程办理
.text-secondary {
color: #8b949e;
color: var(--text-secondary, #8b949e);
}
.ant-list .ant-list-item {
color: var(--text-primary, rgba(255, 255, 255, 0.85));
}
.ant-card-grid-hoverable:hover {
box-shadow: 0 3px 6px -4px rgb(0 0 0 / 48%), 0 6px 16px 0 rgb(0 0 0 / 32%), 0 9px 28px 8px rgb(0 0 0 / 20%);
box-shadow:
0 3px 6px -4px rgb(0 0 0 / 48%),
0 6px 16px 0 rgb(0 0 0 / 32%),
0 9px 28px 8px rgb(0 0 0 / 20%);
}
.ant-card-grid {
box-shadow: 1px 0 0 0 #434343, 0 1px 0 0 #434343, 1px 1px 0 0 #434343, 1px 0 0 0 #434343 inset, 0 1px 0 0 #434343 inset;
box-shadow:
1px 0 0 0 #434343,
0 1px 0 0 #434343,
1px 1px 0 0 #434343,
1px 0 0 0 #434343 inset,
0 1px 0 0 #434343 inset;
}
.ant-calendar-selected-day .ant-calendar-date {
color: rgba(0, 0, 0, 0.8);
}
.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected {
color: rgba(0, 0, 0, 0.9);
}
...
...
zrch-risk-client-39/src/main.ts
浏览文件 @
93a7d351
import
type
{
MainAppProps
}
from
"#/main"
;
import
type
{
MainAppProps
}
from
'#/main'
;
import
'uno.css'
;
import
'/@/design/index.less'
;
import
'ant-design-vue/dist/reset.css'
;
...
...
@@ -14,14 +14,14 @@ import { setupRouterGuard } from '/@/router/guard';
import
{
setupStore
}
from
'/@/store'
;
import
{
setupGlobDirectives
}
from
'/@/directives'
;
import
{
setupI18n
}
from
'/@/locales/setupI18n'
;
import
{
setupElectron
}
from
"@/electron"
;
import
{
setupElectron
}
from
'@/electron'
;
import
{
registerGlobComp
}
from
'/@/components/registerGlobComp'
;
import
{
registerThirdComp
}
from
'/@/settings/registerThirdComp'
;
import
{
registerSuper
}
from
'/@/views/super/registerSuper'
;
import
{
useSso
}
from
'/@/hooks/web/useSso'
;
import
{
checkIsQiankunMicro
}
from
"/@/qiankun/micro"
;
import
{
autoUseQiankunMicro
}
from
"/@/qiankun/micro/qiankunMicro"
;
import
{
useAppStoreWithOut
}
from
"@/store/modules/app"
;
import
{
checkIsQiankunMicro
}
from
'/@/qiankun/micro'
;
import
{
autoUseQiankunMicro
}
from
'/@/qiankun/micro/qiankunMicro'
;
import
{
useAppStoreWithOut
}
from
'@/store/modules/app'
;
// 注册online模块lib
import
{
registerPackages
}
from
'/@/utils/monorepo/registerPackages'
;
...
...
@@ -29,14 +29,11 @@ import { registerPackages } from '/@/utils/monorepo/registerPackages';
// 程序入口
async
function
main
()
{
if
(
checkIsQiankunMicro
())
{
// 【JEECG作为乾坤子应用】以乾坤子应用模式启动
// await autoUseQiankunMicro(bootstrap)
await
autoUseQiankunMicro
(
bootstrap
)
// 乾坤子应用模式
await
autoUseQiankunMicro
(
bootstrap
);
}
else
{
// 获取参数
const
props
=
getMainAppProps
();
// 普通启动
await
bootstrap
(
props
)
await
bootstrap
(
props
);
}
}
...
...
@@ -45,7 +42,6 @@ main();
async
function
bootstrap
(
props
?:
MainAppProps
)
{
// 创建应用实例
const
app
=
createApp
(
App
);
// 【QQYUN-6329】
window
[
'JAppRootInstance'
]
=
app
;
// 创建路由
...
...
@@ -54,27 +50,27 @@ async function bootstrap(props?: MainAppProps) {
// 配置存储
setupStore
(
app
);
// 配置参数
// 配置
主应用
参数
setupProps
(
props
);
// 多语言配置
,异步情况:语言文件可以从服务器端获得
// 多语言配置
await
setupI18n
(
app
);
// 初始化内部系统配置
initAppConfigStore
();
// 注册外部模块路由
(注册online模块lib)
// 注册外部模块路由
registerPackages
(
app
);
// 注册全局组件
registerGlobComp
(
app
);
//CAS单点登录
//
CAS单点登录
await
useSso
().
ssoLogin
();
// 注册super应用路由
await
registerSuper
(
app
);
// 配置路由
setupRouter
(
app
);
...
...
@@ -91,17 +87,20 @@ async function bootstrap(props?: MainAppProps) {
await
registerThirdComp
(
app
);
// 配置electron
setupElectron
(
app
)
setupElectron
(
app
)
;
//
当路由准备好时再执行挂载( https://next.router.vuejs.org/api/#isready)
//
等待路由就绪
await
router
.
isReady
();
// 挂载应用
app
.
mount
(
getMountContainer
(
props
),
true
);
console
.
log
(
" vue3 app 加载完成!"
)
// 生产环境可移除此日志,或保留用于调试
if
(
import
.
meta
.
env
.
DEV
)
{
console
.
log
(
'vue3 app 加载完成!'
);
}
return
app
return
app
;
}
// 获取应用挂载容器
...
...
@@ -113,29 +112,19 @@ function getMountContainer(props?: MainAppProps) {
return
props
.
container
.
querySelector
(
id
)
??
id
;
}
// 获取主应用参数
// 获取主应用参数
(从 URL query 中读取)
function
getMainAppProps
():
MainAppProps
{
// 从 queryString 中获取
const
searchParams
=
new
URLSearchParams
(
window
.
location
.
search
);
// 隐藏侧边栏(菜单)
let
hideSider
=
searchParams
.
get
(
'hideSider'
)
===
'true'
;
// 隐藏顶部
let
hideHeader
=
searchParams
.
get
(
'hideHeader'
)
===
'true'
;
// 隐藏 多Tab 切换
let
hideMultiTabs
=
searchParams
.
get
(
'hideMultiTabs'
)
===
'true'
;
return
{
hideSider
,
hideHeader
,
hideMultiTabs
}
hideSider
:
searchParams
.
get
(
'hideSider'
)
===
'true'
,
hideHeader
:
searchParams
.
get
(
'hideHeader'
)
===
'true'
,
hideMultiTabs
:
searchParams
.
get
(
'hideMultiTabs'
)
===
'true'
,
}
;
}
// 配置主应用参数
function
setupProps
(
props
?:
MainAppProps
)
{
if
(
!
props
)
{
return
}
if
(
!
props
)
return
;
const
appStore
=
useAppStoreWithOut
();
appStore
.
setMainAppProps
(
props
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论