疯狂的狮子li
2020-08-19 5aeac1a8ae58d2ca55de64b13dd722f4d816f008
Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue

 Conflicts:
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
 ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
 ruoyi-ui/package.json
 ruoyi-ui/src/components/HeaderSearch/index.vue
 ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
 ruoyi-ui/src/utils/ruoyi.js
已修改10个文件
57 ■■■■■ 文件已修改
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/components/HeaderSearch/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/ruoyi.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -23,7 +23,7 @@
        <swagger.version>2.9.2</swagger.version>
        <kaptcha.version>2.3.2</kaptcha.version>
        <pagehelper.boot.version>1.2.5</pagehelper.boot.version>
        <fastjson.version>1.2.70</fastjson.version>
        <fastjson.version>1.2.73</fastjson.version>
        <oshi.version>3.9.1</oshi.version>
        <commons.io.version>2.5</commons.io.version>
        <commons.fileupload.version>1.3.3</commons.fileupload.version>
ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java
@@ -4,6 +4,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
/**
 * 自定义导出Excel数据注解
@@ -30,7 +31,7 @@
    public String dateFormat() default "";
    /**
     * 如果是字典类型,请设置字典的type值
     * 如果是字典类型,请设置字典的type值 (如: sys_user_sex)
     */
    public String dictType() default "";
@@ -45,6 +46,16 @@
    public String separator() default ",";
    /**
     * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
     */
    public int scale() default -1;
    /**
     * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
     */
    public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
    /**
     * 导出类型(0数字 1字符串)
     */
    public ColumnType cellType() default ColumnType.STRING;
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -8,6 +8,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -546,9 +547,13 @@
                {
                    cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator));
                }
                else if (StringUtils.isNotEmpty(dictType))
                else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value))
                {
                    cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator));
                }
                else if (value instanceof BigDecimal && -1 != attr.scale())
                {
                    cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString());
                }
                else
                {
@@ -896,7 +901,14 @@
                    }
                    else
                    {
                        val = new BigDecimal(val.toString()); // 浮点格式处理
                        if ((Double) val % 1 > 0)
                        {
                            val = new BigDecimal(val.toString());
                        }
                        else
                        {
                            val = new DecimalFormat("0").format(val);
                        }
                    }
                }
                else if (cell.getCellTypeEnum() == CellType.STRING)
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -88,7 +88,7 @@
    protected void configure(HttpSecurity httpSecurity) throws Exception
    {
        httpSecurity
                // CRSF禁用,因为不使用session
                // CSRF禁用,因为不使用session
                .csrf().disable()
                // 认证失败处理类
                .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -66,7 +66,7 @@
          v-hasPermi="['${moduleName}:${businessName}:add']"
        >新增</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table
@@ -140,7 +140,7 @@
          <el-input v-model="form.${field}" placeholder="请输入${comment}" />
        </el-form-item>
#elseif($column.htmlType == "select" && "" != $dictType)
        <el-form-item label="${comment}">
        <el-form-item label="${comment}" prop="${field}">
          <el-select v-model="form.${field}" placeholder="请选择${comment}">
            <el-option
              v-for="dict in ${field}Options"
@@ -152,7 +152,7 @@
          </el-select>
        </el-form-item>
#elseif($column.htmlType == "select" && $dictType)
        <el-form-item label="${comment}">
        <el-form-item label="${comment}" prop="${field}">
          <el-select v-model="form.${field}" placeholder="请选择${comment}">
            <el-option label="请选择字典生成" value="" />
          </el-select>
@@ -272,9 +272,8 @@
#else
#set($comment=$column.columnComment)
#end
#set($comment=$column.columnComment)
        $column.javaField: [
          { required: true, message: "$comment不能为空", trigger: "blur" }
          { required: true, message: "$comment不能为空", trigger: "#if($column.htmlType == "select")"change"#else"blur"#end" }
        ]#if($velocityCount != $columns.size()),#end
#end
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -169,7 +169,7 @@
          <el-input v-model="form.${field}" placeholder="请输入${comment}" />
        </el-form-item>
#elseif($column.htmlType == "select" && "" != $dictType)
        <el-form-item label="${comment}">
        <el-form-item label="${comment}" prop="${field}">
          <el-select v-model="form.${field}" placeholder="请选择${comment}">
            <el-option
              v-for="dict in ${field}Options"
@@ -181,7 +181,7 @@
          </el-select>
        </el-form-item>
#elseif($column.htmlType == "select" && $dictType)
        <el-form-item label="${comment}">
        <el-form-item label="${comment}" prop="${field}">
          <el-select v-model="form.${field}" placeholder="请选择${comment}">
            <el-option label="请选择字典生成" value="" />
          </el-select>
@@ -306,9 +306,8 @@
#else
#set($comment=$column.columnComment)
#end
#set($comment=$column.columnComment)
        $column.javaField: [
          { required: true, message: "$comment不能为空", trigger: "blur" }
          { required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end }
        ]#if($velocityCount != $columns.size()),#end
#end
ruoyi-ui/package.json
@@ -86,7 +86,7 @@
    "mockjs": "1.0.1-beta3",
    "plop": "2.3.0",
    "runjs": "4.3.2",
    "sass": "1.26.10",
    "node-sass": "4.14.1",
    "sass-loader": "8.0.2",
    "script-ext-html-webpack-plugin": "2.1.3",
    "script-loader": "0.7.2",
ruoyi-ui/src/components/HeaderSearch/index.vue
@@ -167,7 +167,7 @@
    display: inline-block;
    vertical-align: middle;
    ::v-deep .el-input__inner {
    /deep/ .el-input__inner {
      border-radius: 0;
      border: 0;
      padding-left: 0;
ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
@@ -82,7 +82,7 @@
  position: relative;
  overflow: hidden;
  width: 100%;
  ::v-deep {
  /deep/ {
    .el-scrollbar__bar {
      bottom: 0px;
    }
ruoyi-ui/src/utils/ruoyi.js
@@ -131,7 +131,7 @@
    id = id || 'id'
    parentId = parentId || 'parentId'
    children = children || 'children'
    rootId = rootId || 0
    rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
    //对源数据深度克隆
    const cloneData = JSON.parse(JSON.stringify(data))
    //循环所有项