diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java index 700a88dcc..8af1257df 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java @@ -65,8 +65,8 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper // xss过滤 json = HtmlUtil.cleanHtmlTag(json).trim(); - - final ByteArrayInputStream bis = IoUtil.toStream(json, StandardCharsets.UTF_8); + byte[] jsonBytes = json.getBytes(StandardCharsets.UTF_8); + final ByteArrayInputStream bis = IoUtil.toStream(jsonBytes); return new ServletInputStream() { @Override @@ -81,6 +81,12 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper return true; } + @Override + public int available() throws IOException + { + return jsonBytes.length; + } + @Override public void setReadListener(ReadListener readListener) { @@ -104,4 +110,4 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper String header = super.getHeader(HttpHeaders.CONTENT_TYPE); return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); } -} +} \ No newline at end of file diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js index 8b5b6cf22..a10fbe6b0 100644 --- a/ruoyi-ui/src/api/login.js +++ b/ruoyi-ui/src/api/login.js @@ -47,6 +47,7 @@ export function logout() { export function getCodeImg() { return request({ url: '/captchaImage', - method: 'get' + method: 'get', + timeout: 20000 }) -} +} \ No newline at end of file diff --git a/ruoyi-ui/src/components/DictTag/index.vue b/ruoyi-ui/src/components/DictTag/index.vue index 477941502..542c6edd8 100644 --- a/ruoyi-ui/src/components/DictTag/index.vue +++ b/ruoyi-ui/src/components/DictTag/index.vue @@ -31,12 +31,12 @@ export default { type: Array, default: null, }, - value: [String, Array], + value: [Number, String, Array], }, computed: { values() { - if (this.value) { - return Array.isArray(this.value) ? this.value : [this.value]; + if (this.value !== null && typeof this.value !== 'undefined') { + return Array.isArray(this.value) ? this.value : [String(this.value)]; } else { return []; } diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js index b426a313b..68fb6bbca 100644 --- a/ruoyi-ui/src/utils/ruoyi.js +++ b/ruoyi-ui/src/utils/ruoyi.js @@ -18,7 +18,7 @@ export function parseTime(time, pattern) { if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { time = parseInt(time) } else if (typeof time === 'string') { - time = time.replace(new RegExp(/-/gm), '/'); + time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm),''); } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000