v3.16.0 【新增】优化代码生成 字典和文件预览;【新增】代码生成 菜单SQL;【新增】登录页面GIF炫酷图片;

This commit is contained in:
zhuoda 2025-04-06 20:25:06 +08:00
parent 1abe2ee05e
commit ce0551696a
16 changed files with 34 additions and 23 deletions

View File

@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.io.OutputStream;
import java.io.StringWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;

View File

@ -13,14 +13,13 @@ import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeTableFi
import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author 1024创新实验室-主任:卓大
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
*/
public class ListVariableService extends CodeGenerateBaseVariableService {
@ -66,7 +65,7 @@ public class ListVariableService extends CodeGenerateBaseVariableService {
// 表格列表
List<Map<String, Object>> listVariable = new ArrayList<>();
// 过滤掉不显示的字段
List<CodeTableField> tableFields = form.getTableFields().stream().filter(CodeTableField::getShowFlag).collect(Collectors.toList());
List<CodeTableField> tableFields = form.getTableFields().stream().filter(CodeTableField::getShowFlag).toList();
for (CodeTableField tableField : tableFields) {
Map<String, Object> objectMap = BeanUtil.beanToMap(tableField);

View File

@ -22,12 +22,12 @@
#end
#if($field.queryTypeEnum == "Dict")
<a-form-item label="${field.label}" class="smart-query-form-item">
<DictSelect dict-code="DICT_CODE_ENUM.$!{field.dict} || '$!{field.dict}'" placeholder="${field.label}" v-model:value="queryForm.${field.fieldName}" width="${field.width}" />
<DictSelect dict-code="DICT_CODE_ENUM.$!{field.dict} || '$!{field.dict}'" placeholder="${field.label}" v-model:value="queryForm.${field.fieldName}" width="${field.width}" />
</a-form-item>
#end
#if($field.queryTypeEnum == "Enum")
<a-form-item label="$codeGeneratorTool.removeEnumDesc(${field.label})" class="smart-query-form-item">
<SmartEnumSelect width="${field.width}" v-model:value="queryForm.${field.fieldName}" enum-name="$!{field.frontEnumName}" placeholder="$codeGeneratorTool.removeEnumDesc(${field.label})"/>
<SmartEnumSelect width="${field.width}" v-model:value="queryForm.${field.fieldName}" enum-name="$!{field.frontEnumName}" placeholder="$codeGeneratorTool.removeEnumDesc(${field.label})"/>
</a-form-item>
#end
#if($field.queryTypeEnum == "Date")

View File

@ -31,4 +31,4 @@
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
</if>
</select>
</mapper>
</mapper>

View File

@ -39,7 +39,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
password: LAB1024LAB
password: 1024lab
properties:
mail:
smtp:

View File

@ -31,4 +31,4 @@
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
</if>
</select>
</mapper>
</mapper>

View File

@ -79,7 +79,7 @@ server:
# 文件上传 配置
file:
storage:
mode: local
mode: cloud
local:
upload-path: /home/smart_admin_v3/upload/ #文件上传目录
url-prefix:
@ -87,8 +87,8 @@ file:
region: oss-cn-hangzhou
endpoint: oss-cn-hangzhou.aliyuncs.com
bucket-name: 1024lab-smart-admin
access-key:
secret-key:
access-key: LTAI5tDnZ1wHwFHWMUNWznK2
secret-key: 6tVJ9K2mbrDrcbBLIBRBzho13FZ52t
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/
private-url-expire-seconds: 3600

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

View File

@ -7,7 +7,7 @@
align-items: center;
justify-content: center;
.box-item {
width: 444px;
width: 460px;
height: 600px;
&.desc {
background: #ffffff;

View File

@ -13,9 +13,9 @@
<div class="box-item desc">
<div class="welcome">
<p>欢迎登录 SmartAdmin V3</p>
<p class="sub-welcome">高质量代码简洁安全的开发平台</p>
<p class="sub-welcome">高质量代码简洁高效安全的开发平台</p>
</div>
<img class="welcome-img" :src="leftBg2" />
<img class="welcome-img" :src="loginGif" />
</div>
<div class="box-item login">
<img class="login-qr" :src="loginQR" />
@ -81,6 +81,7 @@
import { useUserStore } from '/@/store/modules/system/user';
import loginQR from '/@/assets/images/login/login-qr.png';
import leftBg2 from '/@/assets/images/login/left-bg2.png';
import loginGif from '/@/assets/images/login/login.gif';
import wechatIcon from '/@/assets/images/login/wechat-icon.png';
import aliIcon from '/@/assets/images/login/ali-icon.png';
import douyinIcon from '/@/assets/images/login/douyin-icon.png';

View File

@ -18,8 +18,8 @@
"type": "module",
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
"@wangeditor/editor": "5.1.14",
"@wangeditor/editor-for-vue": "5.1.12",
"@wangeditor-next/editor": "5.6.34",
"@wangeditor-next/editor-for-vue": "5.1.14",
"ant-design-vue": "4.2.5",
"axios": "1.6.8",
"clipboard": "2.0.11",

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

View File

@ -25,7 +25,7 @@
</a-form-item>
<a-form-item label="产地" name="place" class="smart-query-form-item">
<DictSelect :dictCode="DICT_CODE_ENUM.GOODS_PLACE" v-model:value="queryForm.place" width="120px" />
<DictSelect :dict-code="DICT_CODE_ENUM.GOODS_PLACE" v-model:value="queryForm.place" width="120px" />
</a-form-item>
<a-form-item label="商品状态" name="goodsStatus" class="smart-query-form-item">
@ -93,7 +93,7 @@
</a-button>
</div>
<div class="smart-table-setting-block">
<TableOperator v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.ERP.GOODS" :refresh="queryData"/>
<TableOperator v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.ERP.GOODS" :refresh="queryData" />
</div>
</a-row>
<!---------- 表格操作行 end ----------->
@ -246,7 +246,7 @@
resizable: true,
filterOptions: {
type: 'dict-select',
dictCode: DICT_CODE_ENUM.GOODS_PLACE,
dictCode: DICT_CODE_ENUM.GOODS_PLACE || 'GOODS_PLACE',
},
width: 150,
},

View File

@ -39,7 +39,16 @@
<TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.SUPPORT.CONFIG" :refresh="ajaxQuery" />
</a-row>
<a-table size="small" :scroll="{ x: 1000 }" :loading="tableLoading" bordered :dataSource="tableData" :columns="columns" rowKey="configId" :pagination="false">
<a-table
size="small"
:scroll="{ x: 1000 }"
:loading="tableLoading"
bordered
:dataSource="tableData"
:columns="columns"
rowKey="configId"
:pagination="false"
>
<template #bodyCell="{ record, index, column }">
<template v-if="column.dataIndex === 'seq'">
{{ index + 1 }}

View File

@ -7,7 +7,7 @@
align-items: center;
justify-content: center;
.box-item {
width: 444px;
width: 460px;
height: 600px;
&.desc {
background: #ffffff;

View File

@ -13,9 +13,9 @@
<div class="box-item desc">
<div class="welcome">
<p>欢迎登录 SmartAdmin V3</p>
<p class="sub-welcome">高质量代码简洁安全的开发平台</p>
<p class="sub-welcome">高质量代码简洁高效安全的开发平台</p>
</div>
<img class="welcome-img" :src="leftBg2" />
<img class="welcome-img" :src="loginGif" />
</div>
<div class="box-item login">
<img class="login-qr" :src="loginQR" />
@ -81,6 +81,7 @@
import { useUserStore } from '/@/store/modules/system/user';
import loginQR from '/@/assets/images/login/login-qr.png';
import leftBg2 from '/@/assets/images/login/left-bg2.png';
import loginGif from '/@/assets/images/login/login.gif';
import wechatIcon from '/@/assets/images/login/wechat-icon.png';
import aliIcon from '/@/assets/images/login/ali-icon.png';
import douyinIcon from '/@/assets/images/login/douyin-icon.png';