mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-09-17 19:06:39 +08:00
【v3.0.1】1、【新增】tomcat访问日志accessslog 最大保存天数;2、【新增】获取登录结果信息接口返回 Token;3、【新增】员工列表、表单 新增超级管理员标识;4、【优化】移除dev环境swagger用户名和密码;5、【优化】成功返回消息内容改为"操作成功";6、【优化】代码下载zip文件名改为 下划线,eg:t_apply_code.zip;7、【优化】Service代码生成自动Import;8、【优化】AdminInterpter 拦截器中对超级管理员放行;9、【优化】优化重复提交RepeatSubmitAspect;10、【优化】修改其他bug
This commit is contained in:
parent
27dffd9919
commit
1723f2514f
@ -109,6 +109,11 @@ public class AdminInterceptor implements HandlerInterceptor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果是超级管理员的话,不需要校验权限
|
||||||
|
if(requestEmployee.getAdministratorFlag()){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
SaStrategy.instance.checkMethodAnnotation.accept(method);
|
SaStrategy.instance.checkMethodAnnotation.accept(method);
|
||||||
|
|
||||||
} catch (SaTokenException e) {
|
} catch (SaTokenException e) {
|
||||||
|
@ -24,7 +24,7 @@ public class ResponseDTO<T> {
|
|||||||
|
|
||||||
public static final int OK_CODE = 0;
|
public static final int OK_CODE = 0;
|
||||||
|
|
||||||
public static final String OK_MSG = "success";
|
public static final String OK_MSG = "操作成功";
|
||||||
|
|
||||||
@Schema(description = "返回码")
|
@Schema(description = "返回码")
|
||||||
private Integer code;
|
private Integer code;
|
||||||
|
@ -87,7 +87,7 @@ public class CodeGeneratorController extends SupportBaseController {
|
|||||||
ResponseDTO<byte[]> download = codeGeneratorService.download(tableName);
|
ResponseDTO<byte[]> download = codeGeneratorService.download(tableName);
|
||||||
|
|
||||||
if (download.getOk()) {
|
if (download.getOk()) {
|
||||||
SmartResponseUtil.setDownloadFileHeader(response, tableName + "-code.zip", (long) download.getData().length);
|
SmartResponseUtil.setDownloadFileHeader(response, tableName + "_code.zip", (long) download.getData().length);
|
||||||
response.getOutputStream().write(download.getData());
|
response.getOutputStream().write(download.getData());
|
||||||
} else {
|
} else {
|
||||||
SmartResponseUtil.write(response, download);
|
SmartResponseUtil.write(response, download);
|
||||||
|
@ -55,22 +55,15 @@ public class RepeatSubmitAspect {
|
|||||||
if (StringUtils.isEmpty(ticket)) {
|
if (StringUtils.isEmpty(ticket)) {
|
||||||
return point.proceed();
|
return point.proceed();
|
||||||
}
|
}
|
||||||
Long timeStamp = this.repeatSubmitTicket.getTicketTimestamp(ticket);
|
Long lastRequestTime = this.repeatSubmitTicket.getTicketTimestamp(ticket);
|
||||||
if (timeStamp != null) {
|
if (lastRequestTime != null) {
|
||||||
Method method = ((MethodSignature) point.getSignature()).getMethod();
|
Method method = ((MethodSignature) point.getSignature()).getMethod();
|
||||||
RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class);
|
RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class);
|
||||||
|
|
||||||
// 说明注解去掉了
|
|
||||||
if (annotation != null) {
|
|
||||||
return point.proceed();
|
|
||||||
}
|
|
||||||
|
|
||||||
int interval = Math.min(annotation.value(), RepeatSubmit.MAX_INTERVAL);
|
int interval = Math.min(annotation.value(), RepeatSubmit.MAX_INTERVAL);
|
||||||
if (System.currentTimeMillis() < timeStamp + interval) {
|
if (System.currentTimeMillis() < lastRequestTime + interval) {
|
||||||
// 提交频繁
|
// 提交频繁
|
||||||
return ResponseDTO.error(UserErrorCode.REPEAT_SUBMIT);
|
return ResponseDTO.error(UserErrorCode.REPEAT_SUBMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Object obj = null;
|
Object obj = null;
|
||||||
try {
|
try {
|
||||||
@ -80,8 +73,6 @@ public class RepeatSubmitAspect {
|
|||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
log.error("", throwable);
|
log.error("", throwable);
|
||||||
throw throwable;
|
throw throwable;
|
||||||
} finally {
|
|
||||||
this.repeatSubmitTicket.removeTicket(ticket);
|
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import net.lab1024.sa.base.common.domain.ResponseDTO;
|
|||||||
import net.lab1024.sa.base.common.domain.PageResult;
|
import net.lab1024.sa.base.common.domain.PageResult;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@ -62,9 +62,9 @@ server:
|
|||||||
basedir: ${project.log-directory}/tomcat-logs
|
basedir: ${project.log-directory}/tomcat-logs
|
||||||
accesslog:
|
accesslog:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
max-days: 7
|
||||||
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
||||||
|
|
||||||
|
|
||||||
# 文件上传 配置
|
# 文件上传 配置
|
||||||
file:
|
file:
|
||||||
storage:
|
storage:
|
||||||
@ -81,7 +81,6 @@ file:
|
|||||||
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/
|
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/
|
||||||
private-url-expire-seconds: 3600
|
private-url-expire-seconds: 3600
|
||||||
|
|
||||||
|
|
||||||
# open api配置
|
# open api配置
|
||||||
springdoc:
|
springdoc:
|
||||||
swagger-ui:
|
swagger-ui:
|
||||||
@ -93,7 +92,7 @@ springdoc:
|
|||||||
knife4j:
|
knife4j:
|
||||||
enable: true
|
enable: true
|
||||||
basic:
|
basic:
|
||||||
enable: true
|
enable: false
|
||||||
username: api # Basic认证用户名
|
username: api # Basic认证用户名
|
||||||
password: 1024 # Basic认证密码
|
password: 1024 # Basic认证密码
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ server:
|
|||||||
basedir: ${project.log-directory}/tomcat-logs
|
basedir: ${project.log-directory}/tomcat-logs
|
||||||
accesslog:
|
accesslog:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
max-days: 7
|
||||||
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ server:
|
|||||||
basedir: ${project.log-directory}/tomcat-logs
|
basedir: ${project.log-directory}/tomcat-logs
|
||||||
accesslog:
|
accesslog:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
max-days: 30
|
||||||
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ server:
|
|||||||
basedir: ${project.log-directory}/tomcat-logs
|
basedir: ${project.log-directory}/tomcat-logs
|
||||||
accesslog:
|
accesslog:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
max-days: 7
|
||||||
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
pattern: "%t %{X-Forwarded-For}i %a %r %s (%D ms) %I (%B byte)"
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,11 +6,12 @@
|
|||||||
* @Copyright 1024创新实验室
|
* @Copyright 1024创新实验室
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<a-modal title="更新日志" width="700px" :open="visibleFlag" @close="onClose" >
|
<a-modal title="更新日志" width="700px" :open="visibleFlag" @cancel="onClose">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<pre>{{ content }}</pre>
|
<pre>{{ content }}</pre>
|
||||||
<div v-if="link">链接:<a :href="link" target="_blank">{{ link }}</a></div>
|
<div v-if="link">
|
||||||
|
链接:<a :href="link" target="_blank">{{ link }}</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@ -18,7 +19,6 @@
|
|||||||
<a-button type="primary" @click="onClose">关闭</a-button>
|
<a-button type="primary" @click="onClose">关闭</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -16,6 +16,8 @@
|
|||||||
@close="onClose"
|
@close="onClose"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
>
|
>
|
||||||
|
<a-alert message="超管需要直接在数据库表 t_employee修改哦" type="error" closable />
|
||||||
|
<br />
|
||||||
<a-form ref="formRef" :model="form" :rules="rules" layout="vertical">
|
<a-form ref="formRef" :model="form" :rules="rules" layout="vertical">
|
||||||
<a-form-item label="姓名" name="actualName">
|
<a-form-item label="姓名" name="actualName">
|
||||||
<a-input v-model:value.trim="form.actualName" placeholder="请输入姓名" />
|
<a-input v-model:value.trim="form.actualName" placeholder="请输入姓名" />
|
||||||
@ -63,7 +65,7 @@
|
|||||||
import { GENDER_ENUM } from '/@/constants/common-const';
|
import { GENDER_ENUM } from '/@/constants/common-const';
|
||||||
import { regular } from '/@/constants/regular-const';
|
import { regular } from '/@/constants/regular-const';
|
||||||
import { SmartLoading } from '/@/components/framework/smart-loading';
|
import { SmartLoading } from '/@/components/framework/smart-loading';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
// ----------------------- 以下是字段定义 emits props ---------------------
|
// ----------------------- 以下是字段定义 emits props ---------------------
|
||||||
const departmentTreeSelect = ref();
|
const departmentTreeSelect = ref();
|
||||||
// emit
|
// emit
|
||||||
|
@ -57,6 +57,9 @@
|
|||||||
bordered
|
bordered
|
||||||
>
|
>
|
||||||
<template #bodyCell="{ text, record, index, column }">
|
<template #bodyCell="{ text, record, index, column }">
|
||||||
|
<template v-if="column.dataIndex === 'administratorFlag'">
|
||||||
|
<a-tag color="error" v-if="text">超管</a-tag>
|
||||||
|
</template>
|
||||||
<template v-if="column.dataIndex === 'disabledFlag'">
|
<template v-if="column.dataIndex === 'disabledFlag'">
|
||||||
<a-tag :color="text ? 'error' : 'processing'">{{ text ? '禁用' : '启用' }}</a-tag>
|
<a-tag :color="text ? 'error' : 'processing'">{{ text ? '禁用' : '启用' }}</a-tag>
|
||||||
</template>
|
</template>
|
||||||
@ -152,6 +155,11 @@
|
|||||||
dataIndex: 'loginName',
|
dataIndex: 'loginName',
|
||||||
width: 100,
|
width: 100,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '超管',
|
||||||
|
dataIndex: 'administratorFlag',
|
||||||
|
width: 60,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '状态',
|
title: '状态',
|
||||||
dataIndex: 'disabledFlag',
|
dataIndex: 'disabledFlag',
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a-button class="button-style" type="primary" @click="updateDataScope" v-privilege="'system:role:dataScope:update'"> 保存 </a-button>
|
<a-button class="button-style" type="primary" @click="updateDataScope" v-privilege="'system:role:dataScope:update'"> 保存 </a-button>
|
||||||
<a-button class="button-style" @click="getDataScope" > 刷新 </a-button>
|
<a-button class="button-style" @click="getDataScope"> 刷新 </a-button>
|
||||||
</div>
|
</div>
|
||||||
<a-row class="header">
|
<a-row class="header">
|
||||||
<a-col class="tab-margin" :span="4">业务单据</a-col>
|
<a-col class="tab-margin" :span="4">业务单据</a-col>
|
||||||
@ -107,7 +107,7 @@
|
|||||||
roleId: selectRoleId.value,
|
roleId: selectRoleId.value,
|
||||||
dataScopeItemList: selectedDataScopeList.value.filter((e) => !_.isUndefined(e.viewType)),
|
dataScopeItemList: selectedDataScopeList.value.filter((e) => !_.isUndefined(e.viewType)),
|
||||||
};
|
};
|
||||||
await roleApi.updateRoleDataScopeList(data);
|
await roleApi.updateDataScope(data);
|
||||||
message.success('保存成功');
|
message.success('保存成功');
|
||||||
getDataScope();
|
getDataScope();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
VITE_APP_TITLE='SmartH5 预发布环境(Pre)'
|
VITE_APP_TITLE='SmartH5 预发布环境(Pre)'
|
||||||
VITE_APP_API_URL='https://preview.smartadmin.vip/smart-admin-api'
|
VITE_APP_API_URL='https://app.smartadmin.vip/smart-app-api'
|
22463
smart-app/package-lock.json
generated
22463
smart-app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -15,4 +15,8 @@
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '@/uni_modules/uni-scss/index.scss';
|
@import '@/uni_modules/uni-scss/index.scss';
|
||||||
|
/* 设置基准字体大小为16px */
|
||||||
|
body {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -74,6 +74,9 @@
|
|||||||
:deep(.uni-card__header) {
|
:deep(.uni-card__header) {
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
:deep(.uni-card .uni-card__header .uni-card__header-content .uni-card__header-content-title) {
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
:deep(.uni-list-item__container) {
|
:deep(.uni-list-item__container) {
|
||||||
padding: 16rpx 20rpx;
|
padding: 16rpx 20rpx;
|
||||||
}
|
}
|
||||||
@ -81,10 +84,13 @@
|
|||||||
background: linear-gradient(180deg, #e8f4ff, #f8fcff);
|
background: linear-gradient(180deg, #e8f4ff, #f8fcff);
|
||||||
}
|
}
|
||||||
:deep(.uni-card__header-extra) {
|
:deep(.uni-card__header-extra) {
|
||||||
font-size: 24rpx;
|
font-size: 30rpx;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #1a9aff;
|
color: #1a9aff;
|
||||||
}
|
}
|
||||||
|
:deep(.uni-list-item__content-title) {
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -93,10 +93,15 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 3px 4px 0 rgba(24, 144, 255, 0.06);
|
box-shadow: 0 3px 4px 0 rgba(24, 144, 255, 0.06);
|
||||||
padding: 0 10rpx;
|
padding: 0 10rpx;
|
||||||
|
:deep(.uni-list-item__content-title) {
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
:deep(.uni-list-item__extra-text) {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
.icon {
|
.icon {
|
||||||
width: 42rpx;
|
width: 56rpx;
|
||||||
height: 42rpx;
|
height: 56rpx;
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,23 +54,23 @@
|
|||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: 0px 3px 4px 0px rgba(24, 144, 255, 0.06);
|
box-shadow: 0px 3px 4px 0px rgba(24, 144, 255, 0.06);
|
||||||
backdrop-filter: blur(5.98px);
|
backdrop-filter: blur(5.98px);
|
||||||
padding: 20px 15px;
|
padding: 40rpx 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.user-icon {
|
.user-icon {
|
||||||
width: 58px;
|
width: 120rpx;
|
||||||
height: 58px;
|
height: 120rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border-radius: 29px;
|
border-radius: 60rpx;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
.user-image {
|
.user-image {
|
||||||
width: 54px;
|
width: 108rpx;
|
||||||
height: 54px;
|
height: 108rpx;
|
||||||
border-radius: 27px;
|
border-radius: 54rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.user-info {
|
.user-info {
|
||||||
@ -78,30 +78,30 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin: 5px auto 0 12px;
|
margin: 10rpx auto 0 24rpx;
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
.user-name {
|
.user-name {
|
||||||
height: 25px;
|
height: 50rpx;
|
||||||
font-size: 18px;
|
font-size: 40rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #323333;
|
color: #323333;
|
||||||
}
|
}
|
||||||
.user-phone {
|
.user-phone {
|
||||||
margin-top: 4px;
|
margin-top: 8rpx;
|
||||||
height: 20px;
|
height: 40rpx;
|
||||||
font-size: 14px;
|
font-size: 30rpx;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #777777;
|
color: #777777;
|
||||||
line-height: 20px;
|
line-height: 40rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.vip-flag {
|
.vip-flag {
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
width: 83px;
|
width: 170rpx;
|
||||||
height: 29px;
|
height: 60rpx;
|
||||||
margin: 3px 0 0 auto;
|
margin: 6rpx 0 0 auto;
|
||||||
image {
|
image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -63,23 +63,21 @@
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.user-info-box {
|
.user-info-box {
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
padding: 32px 12px 15px;
|
padding: 60rpx 24rpx 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.user-icon {
|
.user-icon {
|
||||||
width: 58px;
|
|
||||||
height: 58px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border-radius: 29px;
|
border-radius: 60rpx;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
.user-image {
|
.user-image {
|
||||||
width: 54px;
|
width: 120rpx;
|
||||||
height: 54px;
|
height: 120rpx;
|
||||||
border-radius: 27px;
|
border-radius: 54rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.user-info {
|
.user-info {
|
||||||
@ -87,23 +85,23 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin: 5px auto 0 12px;
|
margin: 10rpx auto 0 24rpx;
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
.user-name {
|
.user-name {
|
||||||
height: 25px;
|
height: 50rpx;
|
||||||
font-size: 18px;
|
font-size: 40rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #323333;
|
color: #323333;
|
||||||
}
|
}
|
||||||
.user-phone {
|
.user-phone {
|
||||||
margin-top: 4px;
|
margin-top: 8rpx;
|
||||||
height: 20px;
|
height: 40rpx;
|
||||||
font-size: 14px;
|
font-size: 30rpx;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #777777;
|
color: #777777;
|
||||||
line-height: 20px;
|
line-height: 40rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -163,8 +161,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
font-size: 14px;
|
font-size: 30rpx;
|
||||||
margin-top: 5px;
|
margin-top: 10rpx;
|
||||||
}
|
}
|
||||||
.grid-item-box {
|
.grid-item-box {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@ -172,6 +170,6 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 15px 0;
|
padding: 30rpx 0;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -112,8 +112,6 @@ $collapse-bg-color: #F3F6FB; // 折叠面板二级背景颜色
|
|||||||
// 颜色 ------------------- end -------------
|
// 颜色 ------------------- end -------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 样式 ------------------- begin -------------
|
// 样式 ------------------- begin -------------
|
||||||
// 这里导出的样式在APP端无效,APP端不要再引用了
|
// 这里导出的样式在APP端无效,APP端不要再引用了
|
||||||
:export {
|
:export {
|
||||||
|
Loading…
Reference in New Issue
Block a user