From 6b5dd4d2be69759a8a2452195d0fb0b0ef52e72a Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 28 七月 2021 16:04:59 +0800
Subject: [PATCH] 优化XSS跨站脚本过滤
---
ruoyi-ui/src/views/tool/gen/index.vue | 25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue
index bce449e..188b071 100644
--- a/ruoyi-ui/src/views/tool/gen/index.vue
+++ b/ruoyi-ui/src/views/tool/gen/index.vue
@@ -84,7 +84,7 @@
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="50" align="center">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
@@ -169,7 +169,7 @@
:name="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
:key="key"
>
- <highlightjs autodetect :code="value" />
+ <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre>
</el-tab-pane>
</el-tabs>
</el-dialog>
@@ -181,6 +181,14 @@
import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
import importTable from "./importTable";
import { downLoadZip } from "@/utils/zipdownload";
+import hljs from "highlight.js/lib/highlight";
+import "highlight.js/styles/github-gist.css";
+hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
+hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"));
+hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
+hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
+hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript"));
+hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));
export default {
name: "Gen",
@@ -275,7 +283,7 @@
return synchDb(tableName);
}).then(() => {
this.msgSuccess("同步成功");
- })
+ }).catch(() => {});
},
/** 打开导入表弹窗 */
openImportTable() {
@@ -294,6 +302,13 @@
this.preview.open = true;
});
},
+ /** 高亮显示 */
+ highlightedCode(code, key) {
+ const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm"));
+ var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length);
+ const result = hljs.highlight(language, code || "", true);
+ return result.value || ' ';
+ },
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.tableId);
@@ -304,7 +319,7 @@
/** 修改按钮操作 */
handleEditTable(row) {
const tableId = row.tableId || this.ids[0];
- this.$router.push("/gen/edit/" + tableId);
+ this.$router.push("/tool/gen-edit/index/" + tableId);
},
/** 删除按钮操作 */
handleDelete(row) {
@@ -318,7 +333,7 @@
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
- })
+ }).catch(() => {});
}
}
};
--
Gitblit v1.9.2