feat: 1. 本地化思源黑体的字体包并优先使用。
2. 添加权限映射表和全局查看权限的hook,便于路由控制不同权限按钮显示/隐藏。 3. 删除评查点分组的部分旧api方法。 4. 对接评查点分组接口,文档类型接口, 提示词管理接口, 入口模块管理的接口。 5. 优化角色权限管理的接口,完善不用地区的访问权限认证。 6. 优化主页交叉评查和设置的入口样式和布局。 7. 优化评查点分组,评查规则的功能权限校验。
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* 思源黑体(Source Han Sans)字体定义
|
||||
* 本地托管版本,支持 woff2/woff/otf 格式
|
||||
*/
|
||||
|
||||
/* 思源黑体 - 常规(Regular/Normal - 400) */
|
||||
@font-face {
|
||||
font-family: 'Source Han Sans SC';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap; /* 快速显示文本,字体加载完成后替换 */
|
||||
src: local('Source Han Sans SC Regular'),
|
||||
local('SourceHanSansSC-Regular'),
|
||||
url('/fonts/source-han-sans/SourceHanSansSC-Regular.otf') format('opentype');
|
||||
}
|
||||
|
||||
/* 思源黑体 - 中等(Medium - 500) */
|
||||
@font-face {
|
||||
font-family: 'Source Han Sans SC';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: local('Source Han Sans SC Medium'),
|
||||
local('SourceHanSansSC-Medium'),
|
||||
url('/fonts/source-han-sans/SourceHanSansSC-Medium.otf') format('opentype');
|
||||
}
|
||||
|
||||
/* 思源黑体 - 粗体(Bold - 700) */
|
||||
@font-face {
|
||||
font-family: 'Source Han Sans SC';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: local('Source Han Sans SC Bold'),
|
||||
local('SourceHanSansSC-Bold'),
|
||||
url('/fonts/source-han-sans/SourceHanSansSC-Bold.otf') format('opentype');
|
||||
}
|
||||
|
||||
/* 如果需要更多字重,可以继续添加:
|
||||
* - Light (300)
|
||||
* - ExtraLight (250)
|
||||
* - Heavy (900)
|
||||
*/
|
||||
@@ -107,6 +107,13 @@
|
||||
.document-type-new-page .checkbox-input {
|
||||
@apply mr-2 h-4 w-4 text-primary-600 border-gray-300 rounded;
|
||||
@apply focus:ring-primary-500 cursor-pointer;
|
||||
accent-color: #00684a;
|
||||
}
|
||||
|
||||
/* 复选框选中状态 */
|
||||
.document-type-new-page .checkbox-input:checked {
|
||||
background-color: #00684a;
|
||||
border-color: #00684a;
|
||||
}
|
||||
|
||||
.document-type-new-page .checkbox-label {
|
||||
|
||||
+62
-24
@@ -75,6 +75,7 @@
|
||||
|
||||
/* 主要内容区域 */
|
||||
.index-main-content {
|
||||
position: relative; /* 为绝对定位的管理入口提供定位上下文 */
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
@@ -113,17 +114,19 @@
|
||||
margin: 0;
|
||||
flex-shrink: 0; /* 防止被压缩 */
|
||||
}
|
||||
|
||||
|
||||
/* 模块网格容器 - 每行4个 */
|
||||
.modules-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap; /* 自动换行 */
|
||||
justify-content: center;
|
||||
align-content: flex-start; /* 内容从顶部开始排列 */
|
||||
gap: 2.5rem;
|
||||
flex: 1; /* 占据剩余空间 */
|
||||
overflow-y: auto; /* 超出高度时显示垂直滚动条 */
|
||||
overflow-x: hidden; /* 隐藏水平滚动条 */
|
||||
padding: 2rem 0 3rem 0; /* 上下留出一些空间 */
|
||||
padding: 2rem 0 3rem 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr); /* 每行固定4列 */
|
||||
gap: 2rem 2.5rem; /* 行间距2rem,列间距2.5rem */
|
||||
align-content: flex-start;
|
||||
max-width: 1200px; /* 限制最大宽度 */
|
||||
margin: 0 auto; /* 居中 */
|
||||
}
|
||||
|
||||
/* 滚动条样式优化 */
|
||||
@@ -153,8 +156,7 @@
|
||||
gap: 1.5rem;
|
||||
padding: 0 2rem;
|
||||
height: 136px;
|
||||
width: 290px;
|
||||
flex-shrink: 0; /* 防止卡片被压缩 */
|
||||
width: 100%; /* 适应grid列宽 */
|
||||
background: linear-gradient(180deg, #ebf1f7 0%, #ffffff 100%);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
||||
@@ -200,6 +202,33 @@
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.settings-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.5rem;
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.settings-button:hover {
|
||||
background-color: rgba(0, 104, 74, 0.05);
|
||||
color: #00684a;
|
||||
}
|
||||
|
||||
.settings-button i {
|
||||
font-size: 1.5rem;
|
||||
transition: transform 0.5s ease;
|
||||
}
|
||||
|
||||
.settings-button:hover i {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.logout-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -278,14 +307,12 @@
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
/* 模块容器改为纵向排列 */
|
||||
/* 模块容器改为单列 */
|
||||
.modules-container {
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap; /* 移动端不需要换行 */
|
||||
padding: 1.5rem 0 2rem 0;
|
||||
grid-template-columns: 1fr; /* 移动端单列 */
|
||||
gap: 1.25rem;
|
||||
align-items: center;
|
||||
overflow-y: auto; /* 移动端超出长度滚动显示 */
|
||||
padding: 1rem 0 2rem 0;
|
||||
max-width: 100%; /* 移除最大宽度限制 */
|
||||
}
|
||||
|
||||
/* 移动端滚动条样式 */
|
||||
@@ -296,11 +323,10 @@
|
||||
/* 模块卡片调整 */
|
||||
.module-card {
|
||||
width: 100%;
|
||||
max-width: 340px;
|
||||
max-width: 100%;
|
||||
height: 100px;
|
||||
padding: 0 1.5rem;
|
||||
gap: 1.25rem;
|
||||
flex-shrink: 0; /* 移动端也防止卡片被压缩 */
|
||||
}
|
||||
|
||||
.module-card img {
|
||||
@@ -312,6 +338,14 @@
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.settings-button {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
|
||||
.settings-button i {
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
|
||||
.logout-button {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
@@ -344,8 +378,13 @@
|
||||
height: 18vh; /* 超小屏幕标题区域更小 */
|
||||
}
|
||||
|
||||
/* 超小屏幕模块网格 */
|
||||
.modules-container {
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.module-card {
|
||||
max-width: 300px;
|
||||
max-width: 100%;
|
||||
height: 90px;
|
||||
padding: 0 1.25rem;
|
||||
gap: 1rem;
|
||||
@@ -359,10 +398,6 @@
|
||||
.module-name {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.modules-container {
|
||||
gap: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* 平板横屏 */
|
||||
@@ -376,13 +411,16 @@
|
||||
height: 22vh; /* 平板电脑标题区域高度 */
|
||||
}
|
||||
|
||||
/* 平板模块网格 - 每行3个 */
|
||||
.modules-container {
|
||||
gap: 2rem;
|
||||
padding: 1.5rem 0 2.5rem 0;
|
||||
grid-template-columns: repeat(3, 1fr); /* 平板每行3列 */
|
||||
gap: 1.75rem 2rem;
|
||||
max-width: 900px; /* 平板上稍窄一些 */
|
||||
}
|
||||
|
||||
.module-card {
|
||||
width: 260px;
|
||||
width: 100%;
|
||||
height: 120px;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user