Merge branch 'master' of gitee.com:zhijiantianya/ruoyi-vue-pro into master
Signed-off-by: xingyu <xingyu4j@vip.qq.com>
This commit is contained in:
commit
020535ab3a
@ -253,7 +253,7 @@ create table product_sku
|
|||||||
collate utf8mb4_general_ci;
|
collate utf8mb4_general_ci;
|
||||||
|
|
||||||
|
|
||||||
---Market-Banner管理SQL
|
-- Market-Banner管理SQL
|
||||||
drop table if exists market_banner;
|
drop table if exists market_banner;
|
||||||
CREATE TABLE `market_banner` (
|
CREATE TABLE `market_banner` (
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Banner编号',
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Banner编号',
|
||||||
@ -273,7 +273,7 @@ CREATE TABLE `market_banner` (
|
|||||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='Banner管理';
|
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='Banner管理';
|
||||||
-- 菜单 SQL
|
-- 菜单 SQL
|
||||||
INSERT INTO `system_menu`(`id`,`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`)
|
INSERT INTO `system_menu`(`id`,`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`)
|
||||||
VALUES (2002, 'Banner管理', '', 2, 1, 2000, 'brand', '', 'mall/market/banner/index', 0);
|
VALUES (2026, 'Banner管理', '', 2, 1, 2000, 'brand', '', 'mall/market/banner/index', 0);
|
||||||
-- 按钮父菜单ID
|
-- 按钮父菜单ID
|
||||||
SELECT @parentId := LAST_INSERT_ID();
|
SELECT @parentId := LAST_INSERT_ID();
|
||||||
-- 按钮 SQL
|
-- 按钮 SQL
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
<yunpian-java-sdk.version>1.2.7</yunpian-java-sdk.version>
|
<yunpian-java-sdk.version>1.2.7</yunpian-java-sdk.version>
|
||||||
<justauth.version>1.4.0</justauth.version>
|
<justauth.version>1.4.0</justauth.version>
|
||||||
<jimureport.version>1.5.2</jimureport.version>
|
<jimureport.version>1.5.2</jimureport.version>
|
||||||
|
<xercesImpl.version>2.12.0</xercesImpl.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
@ -577,6 +578,11 @@
|
|||||||
<artifactId>jimureport-spring-boot-starter</artifactId>
|
<artifactId>jimureport-spring-boot-starter</artifactId>
|
||||||
<version>${jimureport.version}</version>
|
<version>${jimureport.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>xerces</groupId>
|
||||||
|
<artifactId>xercesImpl</artifactId>
|
||||||
|
<version>${xercesImpl.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
@ -154,12 +154,12 @@ public class CodegenServiceImpl implements CodegenService {
|
|||||||
// 构建 CodegenColumnDO 数组,只同步新增的字段
|
// 构建 CodegenColumnDO 数组,只同步新增的字段
|
||||||
List<CodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId);
|
List<CodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId);
|
||||||
Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, CodegenColumnDO::getColumnName);
|
Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, CodegenColumnDO::getColumnName);
|
||||||
// 移除已经存在的字段
|
|
||||||
tableFields.removeIf(column -> codegenColumnNames.contains(column.getColumnName()));
|
|
||||||
// 计算需要删除的字段
|
// 计算需要删除的字段
|
||||||
Set<String> tableFieldNames = CollectionUtils.convertSet(tableFields, TableField::getName);
|
Set<String> tableFieldNames = CollectionUtils.convertSet(tableFields, TableField::getName);
|
||||||
Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !tableFieldNames.contains(column.getColumnName()))
|
Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !tableFieldNames.contains(column.getColumnName()))
|
||||||
.map(CodegenColumnDO::getId).collect(Collectors.toSet());
|
.map(CodegenColumnDO::getId).collect(Collectors.toSet());
|
||||||
|
// 移除已经存在的字段
|
||||||
|
tableFields.removeIf(column -> codegenColumnNames.contains(column.getColumnName()));
|
||||||
if (CollUtil.isEmpty(tableFields) && CollUtil.isEmpty(deleteColumnIds)) {
|
if (CollUtil.isEmpty(tableFields) && CollUtil.isEmpty(deleteColumnIds)) {
|
||||||
throw exception(CODEGEN_SYNC_NONE_CHANGE);
|
throw exception(CODEGEN_SYNC_NONE_CHANGE);
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@
|
|||||||
@pagination="getList"/>
|
@pagination="getList"/>
|
||||||
|
|
||||||
<!-- 对话框(添加 / 修改) -->
|
<!-- 对话框(添加 / 修改) -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
#foreach($column in $columns)
|
#foreach($column in $columns)
|
||||||
#if ($column.createOperation || $column.updateOperation)
|
#if ($column.createOperation || $column.updateOperation)
|
||||||
|
@ -68,6 +68,11 @@
|
|||||||
<groupId>org.jeecgframework.jimureport</groupId>
|
<groupId>org.jeecgframework.jimureport</groupId>
|
||||||
<artifactId>jimureport-spring-boot-starter</artifactId>
|
<artifactId>jimureport-spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- 单独依赖升级版本,解决低版本validator失败问题 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>xerces</groupId>
|
||||||
|
<artifactId>xercesImpl</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -50,7 +50,12 @@ public class ProjectReactor {
|
|||||||
String projectBaseDirNew = projectBaseDir + "-new"; // 一键改名后,“新”项目所在的目录
|
String projectBaseDirNew = projectBaseDir + "-new"; // 一键改名后,“新”项目所在的目录
|
||||||
log.info("[main][检测新项目目录 ({})是否存在]", projectBaseDirNew);
|
log.info("[main][检测新项目目录 ({})是否存在]", projectBaseDirNew);
|
||||||
if (FileUtil.exist(projectBaseDirNew)) {
|
if (FileUtil.exist(projectBaseDirNew)) {
|
||||||
log.info("[main][新项目目录检测 ({})已存在,请更改新的目录,程序退出]", projectBaseDirNew);
|
log.error("[main][新项目目录检测 ({})已存在,请更改新的目录!程序退出]", projectBaseDirNew);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 如果新目录中存在 PACKAGE_NAME,ARTIFACT_ID 等关键字,路径会被替换,导致生成的文件不在预期目录
|
||||||
|
if (StrUtil.containsAny(projectBaseDirNew, PACKAGE_NAME, ARTIFACT_ID, StrUtil.upperFirst(ARTIFACT_ID))) {
|
||||||
|
log.error("[main][新项目目录检测 ({}) 存在冲突名称「{}」或者「{}」,请更改新的目录!程序退出]", projectBaseDirNew, PACKAGE_NAME, ARTIFACT_ID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("[main][完成新项目目录检测,新项目路径地址 ({})]", projectBaseDirNew);
|
log.info("[main][完成新项目目录检测,新项目路径地址 ({})]", projectBaseDirNew);
|
||||||
|
@ -71,6 +71,16 @@
|
|||||||
padding: 10px 20px 0;
|
padding: 10px 20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-dialog{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
max-width: calc(100% - 30px);
|
||||||
|
max-height: calc(100% - 70px);
|
||||||
|
.el-dialog__body {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.el-table {
|
.el-table {
|
||||||
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
|
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
|
||||||
th {
|
th {
|
||||||
|
@ -70,6 +70,10 @@ console.log(request)
|
|||||||
Vue.prototype.$axios = request
|
Vue.prototype.$axios = request
|
||||||
import '@/styles/index.scss'
|
import '@/styles/index.scss'
|
||||||
|
|
||||||
|
// 默认点击背景不关闭弹窗
|
||||||
|
import ElementUI from 'element-ui'
|
||||||
|
ElementUI.Dialog.props.closeOnClickModal.default = false
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If you don't want to use mock-server
|
* If you don't want to use mock-server
|
||||||
* you want to use MockJs for mock api
|
* you want to use MockJs for mock api
|
||||||
|
@ -1,13 +1,32 @@
|
|||||||
/**
|
/**
|
||||||
* 将服务端返回的 fields 字符串数组,解析成 JSON 数组
|
* 将服务端返回的 fields 字符串数组,解析成 JSON 数组
|
||||||
|
* 如果指定了 variables 参数可对表单进行初始化
|
||||||
*
|
*
|
||||||
* @param fields JSON 字符串数组
|
* @param fields JSON 字符串数组
|
||||||
|
* @param variables Object 表单初始值
|
||||||
* @returns {*[]} JSON 数组
|
* @returns {*[]} JSON 数组
|
||||||
*/
|
*/
|
||||||
export function decodeFields(fields) {
|
export function decodeFields(fields, variables) {
|
||||||
const drawingList = []
|
const drawingList = (fields || []).map(json => {
|
||||||
fields.forEach(item => {
|
const item = JSON.parse(json)
|
||||||
drawingList.push(JSON.parse(item))
|
|
||||||
|
if (typeof variables === 'undefined' ) return item
|
||||||
|
|
||||||
|
const setDefault = (item, variables) => {
|
||||||
|
if (typeof variables[item.__vModel__] !== 'undefined') {
|
||||||
|
item.__config__.defaultValue = variables[item.__vModel__]
|
||||||
|
}
|
||||||
|
if (item.__config__.children && item.__config__.children.length) {
|
||||||
|
item.__config__.children.forEach(child => {
|
||||||
|
setDefault(child, variables)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setDefault(item, variables)
|
||||||
|
|
||||||
|
return item
|
||||||
})
|
})
|
||||||
|
|
||||||
return drawingList
|
return drawingList
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ import {
|
|||||||
inputComponents, selectComponents, layoutComponents, formConf
|
inputComponents, selectComponents, layoutComponents, formConf
|
||||||
} from '@/components/generator/config'
|
} from '@/components/generator/config'
|
||||||
import {
|
import {
|
||||||
exportDefault, beautifierConf, isNumberStr, titleCase, deepClone, isObjectObject
|
exportDefault, beautifierConf, isNumberStr, titleCase, deepClone
|
||||||
} from '@/utils/index'
|
} from '@/utils/index'
|
||||||
import {
|
import {
|
||||||
makeUpHtml, vueTemplate, vueScript, cssStyle
|
makeUpHtml, vueTemplate, vueScript, cssStyle
|
||||||
@ -272,7 +272,7 @@ export default {
|
|||||||
arr.reduce((pre, item, i) => {
|
arr.reduce((pre, item, i) => {
|
||||||
if (arr.length === i + 1) {
|
if (arr.length === i + 1) {
|
||||||
pre[item] = data
|
pre[item] = data
|
||||||
} else if (!isObjectObject(pre[item])) {
|
} else if (pre[item]===undefined) {
|
||||||
pre[item] = {}
|
pre[item] = {}
|
||||||
}
|
}
|
||||||
return pre[item]
|
return pre[item]
|
||||||
@ -300,7 +300,7 @@ export default {
|
|||||||
url
|
url
|
||||||
}).then(resp => {
|
}).then(resp => {
|
||||||
this.setLoading(component, false)
|
this.setLoading(component, false)
|
||||||
this.setRespData(component, resp.data)
|
this.setRespData(component, resp)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user