mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-09-17 19:06:39 +08:00
v3.16.0 【新增】优化代码生成 字典和文件预览;【新增】代码生成 菜单SQL;【新增】登录页面GIF炫酷图片;
This commit is contained in:
parent
1abe2ee05e
commit
ce0551696a
@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -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 net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author 1024创新实验室-主任:卓大
|
* @Author 1024创新实验室-主任:卓大
|
||||||
* @Date 2022/9/29 17:20:41
|
* @Date 2022/9/29 17:20:41
|
||||||
* @Wechat zhuoda1024
|
* @Wechat zhuoda1024
|
||||||
* @Email lab1024@163.com
|
* @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 {
|
public class ListVariableService extends CodeGenerateBaseVariableService {
|
||||||
@ -66,7 +65,7 @@ public class ListVariableService extends CodeGenerateBaseVariableService {
|
|||||||
// 表格列表
|
// 表格列表
|
||||||
List<Map<String, Object>> listVariable = new ArrayList<>();
|
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) {
|
for (CodeTableField tableField : tableFields) {
|
||||||
Map<String, Object> objectMap = BeanUtil.beanToMap(tableField);
|
Map<String, Object> objectMap = BeanUtil.beanToMap(tableField);
|
||||||
|
@ -22,12 +22,12 @@
|
|||||||
#end
|
#end
|
||||||
#if($field.queryTypeEnum == "Dict")
|
#if($field.queryTypeEnum == "Dict")
|
||||||
<a-form-item label="${field.label}" class="smart-query-form-item">
|
<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>
|
</a-form-item>
|
||||||
#end
|
#end
|
||||||
#if($field.queryTypeEnum == "Enum")
|
#if($field.queryTypeEnum == "Enum")
|
||||||
<a-form-item label="$codeGeneratorTool.removeEnumDesc(${field.label})" class="smart-query-form-item">
|
<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>
|
</a-form-item>
|
||||||
#end
|
#end
|
||||||
#if($field.queryTypeEnum == "Date")
|
#if($field.queryTypeEnum == "Date")
|
||||||
|
@ -31,4 +31,4 @@
|
|||||||
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
|
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -39,7 +39,7 @@ spring:
|
|||||||
host: smtp.163.com
|
host: smtp.163.com
|
||||||
port: 465
|
port: 465
|
||||||
username: lab1024@163.com
|
username: lab1024@163.com
|
||||||
password: LAB1024LAB
|
password: 1024lab
|
||||||
properties:
|
properties:
|
||||||
mail:
|
mail:
|
||||||
smtp:
|
smtp:
|
||||||
|
@ -31,4 +31,4 @@
|
|||||||
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
|
AND INSTR(`tables`.table_name,#{queryForm.tableNameKeywords})
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -79,7 +79,7 @@ server:
|
|||||||
# 文件上传 配置
|
# 文件上传 配置
|
||||||
file:
|
file:
|
||||||
storage:
|
storage:
|
||||||
mode: local
|
mode: cloud
|
||||||
local:
|
local:
|
||||||
upload-path: /home/smart_admin_v3/upload/ #文件上传目录
|
upload-path: /home/smart_admin_v3/upload/ #文件上传目录
|
||||||
url-prefix:
|
url-prefix:
|
||||||
@ -87,8 +87,8 @@ file:
|
|||||||
region: oss-cn-hangzhou
|
region: oss-cn-hangzhou
|
||||||
endpoint: oss-cn-hangzhou.aliyuncs.com
|
endpoint: oss-cn-hangzhou.aliyuncs.com
|
||||||
bucket-name: 1024lab-smart-admin
|
bucket-name: 1024lab-smart-admin
|
||||||
access-key:
|
access-key: LTAI5tDnZ1wHwFHWMUNWznK2
|
||||||
secret-key:
|
secret-key: 6tVJ9K2mbrDrcbBLIBRBzho13FZ52t
|
||||||
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
|
||||||
|
|
||||||
|
BIN
smart-admin-web-javascript/src/assets/images/login/login.gif
Normal file
BIN
smart-admin-web-javascript/src/assets/images/login/login.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 MiB |
@ -7,7 +7,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
.box-item {
|
.box-item {
|
||||||
width: 444px;
|
width: 460px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
&.desc {
|
&.desc {
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
<div class="box-item desc">
|
<div class="box-item desc">
|
||||||
<div class="welcome">
|
<div class="welcome">
|
||||||
<p>欢迎登录 SmartAdmin V3</p>
|
<p>欢迎登录 SmartAdmin V3</p>
|
||||||
<p class="sub-welcome">「高质量代码、简洁、安全」的开发平台</p>
|
<p class="sub-welcome">「高质量代码、简洁、高效、安全」的开发平台</p>
|
||||||
</div>
|
</div>
|
||||||
<img class="welcome-img" :src="leftBg2" />
|
<img class="welcome-img" :src="loginGif" />
|
||||||
</div>
|
</div>
|
||||||
<div class="box-item login">
|
<div class="box-item login">
|
||||||
<img class="login-qr" :src="loginQR" />
|
<img class="login-qr" :src="loginQR" />
|
||||||
@ -81,6 +81,7 @@
|
|||||||
import { useUserStore } from '/@/store/modules/system/user';
|
import { useUserStore } from '/@/store/modules/system/user';
|
||||||
import loginQR from '/@/assets/images/login/login-qr.png';
|
import loginQR from '/@/assets/images/login/login-qr.png';
|
||||||
import leftBg2 from '/@/assets/images/login/left-bg2.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 wechatIcon from '/@/assets/images/login/wechat-icon.png';
|
||||||
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
||||||
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/icons-vue": "^7.0.1",
|
"@ant-design/icons-vue": "^7.0.1",
|
||||||
"@wangeditor/editor": "5.1.14",
|
"@wangeditor-next/editor": "5.6.34",
|
||||||
"@wangeditor/editor-for-vue": "5.1.12",
|
"@wangeditor-next/editor-for-vue": "5.1.14",
|
||||||
"ant-design-vue": "4.2.5",
|
"ant-design-vue": "4.2.5",
|
||||||
"axios": "1.6.8",
|
"axios": "1.6.8",
|
||||||
"clipboard": "2.0.11",
|
"clipboard": "2.0.11",
|
||||||
|
BIN
smart-admin-web-typescript/src/assets/images/login/login.gif
Normal file
BIN
smart-admin-web-typescript/src/assets/images/login/login.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 MiB |
@ -25,7 +25,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="产地" name="place" class="smart-query-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>
|
||||||
|
|
||||||
<a-form-item label="商品状态" name="goodsStatus" class="smart-query-form-item">
|
<a-form-item label="商品状态" name="goodsStatus" class="smart-query-form-item">
|
||||||
@ -93,7 +93,7 @@
|
|||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="smart-table-setting-block">
|
<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>
|
</div>
|
||||||
</a-row>
|
</a-row>
|
||||||
<!---------- 表格操作行 end ----------->
|
<!---------- 表格操作行 end ----------->
|
||||||
@ -246,7 +246,7 @@
|
|||||||
resizable: true,
|
resizable: true,
|
||||||
filterOptions: {
|
filterOptions: {
|
||||||
type: 'dict-select',
|
type: 'dict-select',
|
||||||
dictCode: DICT_CODE_ENUM.GOODS_PLACE,
|
dictCode: DICT_CODE_ENUM.GOODS_PLACE || 'GOODS_PLACE',
|
||||||
},
|
},
|
||||||
width: 150,
|
width: 150,
|
||||||
},
|
},
|
||||||
|
@ -39,7 +39,16 @@
|
|||||||
<TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.SUPPORT.CONFIG" :refresh="ajaxQuery" />
|
<TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.SUPPORT.CONFIG" :refresh="ajaxQuery" />
|
||||||
</a-row>
|
</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 #bodyCell="{ record, index, column }">
|
||||||
<template v-if="column.dataIndex === 'seq'">
|
<template v-if="column.dataIndex === 'seq'">
|
||||||
{{ index + 1 }}
|
{{ index + 1 }}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
.box-item {
|
.box-item {
|
||||||
width: 444px;
|
width: 460px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
&.desc {
|
&.desc {
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
<div class="box-item desc">
|
<div class="box-item desc">
|
||||||
<div class="welcome">
|
<div class="welcome">
|
||||||
<p>欢迎登录 SmartAdmin V3</p>
|
<p>欢迎登录 SmartAdmin V3</p>
|
||||||
<p class="sub-welcome">「高质量代码、简洁、安全」的开发平台</p>
|
<p class="sub-welcome">「高质量代码、简洁、高效、安全」的开发平台</p>
|
||||||
</div>
|
</div>
|
||||||
<img class="welcome-img" :src="leftBg2" />
|
<img class="welcome-img" :src="loginGif" />
|
||||||
</div>
|
</div>
|
||||||
<div class="box-item login">
|
<div class="box-item login">
|
||||||
<img class="login-qr" :src="loginQR" />
|
<img class="login-qr" :src="loginQR" />
|
||||||
@ -81,6 +81,7 @@
|
|||||||
import { useUserStore } from '/@/store/modules/system/user';
|
import { useUserStore } from '/@/store/modules/system/user';
|
||||||
import loginQR from '/@/assets/images/login/login-qr.png';
|
import loginQR from '/@/assets/images/login/login-qr.png';
|
||||||
import leftBg2 from '/@/assets/images/login/left-bg2.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 wechatIcon from '/@/assets/images/login/wechat-icon.png';
|
||||||
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
||||||
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
||||||
|
Loading…
Reference in New Issue
Block a user