Merge remote-tracking branch 'origin/fix-bug-202303' into fix-bug-202303

This commit is contained in:
tianwenbo
2023-03-16 09:06:49 +08:00
10 changed files with 46 additions and 16 deletions
@@ -19,7 +19,7 @@ public class ImportExcelUtil {
} }
public static Result imporReturnRes(int errorLines, int successLines, List<String> errorMessage){ public static Result<JSONObject> imporReturnRes(int errorLines, int successLines, List<String> errorMessage){
if (errorLines == 0) { if (errorLines == 0) {
return Result.OK("" + successLines + "行数据全部导入成功!"); return Result.OK("" + successLines + "行数据全部导入成功!");
} else { } else {
@@ -16,7 +16,7 @@ import java.util.regex.Pattern;
@Slf4j @Slf4j
public class ReflectHelper { public class ReflectHelper {
private Class cls; private Class<?> cls;
/** /**
* 传过来的对象 * 传过来的对象
@@ -108,7 +108,7 @@ public class HttpUtils {
* @param request * @param request
* @return * @return
*/ */
public static Map getAllRequestParam(final HttpServletRequest request) throws IOException { public static Map<String,String> getAllRequestParam(final HttpServletRequest request) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream())); BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String str; String str;
@@ -1,5 +1,6 @@
package com.jero.modules.quartz.controller; package com.jero.modules.quartz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -222,7 +223,7 @@ public class QuartzJobController {
*/ */
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST) // @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel") @PostMapping("/importExcel")
public Result<T> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException { public Result<JSONObject> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 错误信息 // 错误信息
@@ -22,7 +22,6 @@ import com.jero.modules.system.service.ISysUserDepartService;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
@@ -338,7 +337,7 @@ public class SysDepartController {
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST) // @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel") @PostMapping("/importExcel")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) @CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<T> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<JSONObject> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<String> errorMessageList = new ArrayList<>(); List<String> errorMessageList = new ArrayList<>();
List<SysDepart> listSysDeparts = null; List<SysDepart> listSysDeparts = null;
@@ -1,6 +1,7 @@
package com.jero.modules.system.controller; package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -468,7 +469,7 @@ public class SysDictController {
@PostMapping(value = "/importExcel") @PostMapping(value = "/importExcel")
public Result<T> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<JSONObject> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -526,7 +526,7 @@ public class SysUserController {
@RequiresPermissions("sys:user:import") @RequiresPermissions("sys:user:import")
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST) // @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel") @PostMapping("/importExcel")
public Result<T> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException { public Result<JSONObject> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 错误信息 // 错误信息
@@ -109,7 +109,7 @@ public class ${entityName}Controller extends JeroController<${entityName}, I${en
/** /**
* 通过id删除 * 通过id删除
* *
* @param id * @param map
* @return * @return
*/ */
@AutoLog(value = "${tableVo.ftlDescription}-通过id删除") @AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
@@ -69,9 +69,11 @@
<#if query_field_no gt 1> </#if><a-col :xl="10" :lg="11" :md="12" :sm="24"> <#if query_field_no gt 1> </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
<#if query_field_no gt 1> </#if><a-form-item label="${po.filedComment}"> <#if query_field_no gt 1> </#if><a-form-item label="${po.filedComment}">
<#if po.classType=='date'> <#if po.classType=='date'>
<#if query_field_no gt 1> <a-range-picker format="YYYY-MM-DD" :placeholder="['请选择开始日期', '请选择结束日期']" v-model="queryParam.${po.fieldName}Range" @ok="${po.fieldName}OnOk"/> <#assign date_flag=true>
<#if query_field_no gt 1> </#if><a-range-picker format="YYYY-MM-DD" :placeholder="['请选择开始日期', '请选择结束日期']" v-model="queryParam.${po.fieldName}Range" @change="${po.fieldName}Change"/>
<#elseif po.classType=='datetime'> <#elseif po.classType=='datetime'>
<#if query_field_no gt 1> <a-range-picker :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss" :placeholder="['请选择开始时间', '请选择结束时间']" v-model="queryParam.${po.fieldName}Range" @ok="${po.fieldName}OnOk"/> <#assign date_flag=true>
<#if query_field_no gt 1> </#if><a-range-picker :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss" :placeholder="['请选择开始时间', '请选择结束时间']" v-model="queryParam.${po.fieldName}Range" @change="${po.fieldName}Change"/>
<#else> <#else>
<#if query_field_no gt 1> </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input> <#if query_field_no gt 1> </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
<#if query_field_no gt 1> </#if><span class="query-group-split-cust"></span> <#if query_field_no gt 1> </#if><span class="query-group-split-cust"></span>
@@ -227,6 +229,9 @@ import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
<#if list_need_pca> <#if list_need_pca>
import Area from '@/components/_util/Area' import Area from '@/components/_util/Area'
</#if> </#if>
<#if date_flag>
import { filterObj } from '@/utils/util'
</#if>
export default { export default {
name: '${entityName}List', name: '${entityName}List',
@@ -404,12 +409,36 @@ export default {
}, },
<#list columns as po> <#list columns as po>
<#if po.classType=='datetime' || po.classType=='date'> <#if po.classType=='datetime' || po.classType=='date'>
${po.fieldName}OnOk () { // 范围查询需要处理查询参数
this.queryParam.${po.fieldName}_begin = this.queryParam.${po.fieldName}Range[0] ${po.fieldName}Change (value, valueString) {
this.queryParam.${po.fieldName}_end = this.queryParam.${po.fieldName}Range[1] if (valueString && valueString.length > 0) {
this.queryParam.${po.fieldName}_begin = valueString[0]
this.queryParam.${po.fieldName}_end = valueString[1]
}
}, },
</#if> </#if>
</#list> </#list>
<#if date_flag>
getQueryParams () {
// 获取查询条件
const sqp = {}
if (this.superQueryParams) {
sqp.superQueryParams = encodeURI(this.superQueryParams)
sqp.superQueryMatchType = this.superQueryMatchType
}
const param = JSON.parse(JSON.stringify(Object.assign(sqp, this.queryParam, this.isorter, this.filters)))
param.field = this.getQueryField()
param.pageNo = this.ipagination.current
param.pageSize = this.ipagination.pageSize
<#list columns as po>
<#if po.classType=='datetime' || po.classType=='date'>
// 范围查询需要吧range的属性去掉
delete param.${po.fieldName}Range
</#if>
</#list>
return filterObj(param)
},
</#if>
getSuperFieldList () { getSuperFieldList () {
<#include "/common/utils.ftl"> <#include "/common/utils.ftl">
const fieldList = [] const fieldList = []
@@ -41,7 +41,7 @@ installAllCell(VXETable)
// 添加事件拦截器 event.clearActived // 添加事件拦截器 event.clearActived
// 比如点击了某个组件的弹出层面板之后,此时被激活单元格不应该被自动关闭,通过返回 false 可以阻止默认的行为。 // 比如点击了某个组件的弹出层面板之后,此时被激活单元格不应该被自动关闭,通过返回 false 可以阻止默认的行为。
VXETable.interceptor.add('event.clearActived', function (params, event, target) { VXETable.interceptor.add('event.clearActived', function (params) {
// 获取组件增强 // 获取组件增强
const col = params.column.params || {} const col = params.column.params || {}
const interceptor = getEnhancedMixins(col.$type, 'interceptor') const interceptor = getEnhancedMixins(col.$type, 'interceptor')
@@ -51,7 +51,7 @@ VXETable.interceptor.add('event.clearActived', function (params, event, target)
return false return false
} }
// 此处判断一下event是否存在,防止后续内容报错 // 此处判断一下event是否存在,防止后续内容报错
const path = event ? getEventPath(event) : [] const path = params.$event ? getEventPath(params.$event) : []
for (const p of path) { for (const p of path) {
let className = p.className || '' let className = p.className || ''
className = typeof className === 'string' ? className : className.toString() className = typeof className === 'string' ? className : className.toString()