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/system/dict/data.vue | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 6 deletions(-)
diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue
index 4b5dd29..aa3849a 100644
--- a/ruoyi-ui/src/views/system/dict/data.vue
+++ b/ruoyi-ui/src/views/system/dict/data.vue
@@ -86,10 +86,19 @@
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典编码" align="center" prop="dictCode" />
- <el-table-column label="字典标签" align="center" prop="dictLabel" />
+ <el-table-column label="字典标签" align="center" prop="dictLabel">
+ <template slot-scope="scope">
+ <span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{scope.row.dictLabel}}</span>
+ <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{scope.row.dictLabel}}</el-tag>
+ </template>
+ </el-table-column>
<el-table-column label="字典键值" align="center" prop="dictValue" />
<el-table-column label="字典排序" align="center" prop="dictSort" />
- <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
+ <el-table-column label="状态" align="center" prop="status">
+ <template slot-scope="scope">
+ <dict-tag :options="statusOptions" :value="scope.row.status"/>
+ </template>
+ </el-table-column>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
@@ -136,8 +145,21 @@
<el-form-item label="数据键值" prop="dictValue">
<el-input v-model="form.dictValue" placeholder="请输入数据键值" />
</el-form-item>
+ <el-form-item label="样式属性" prop="cssClass">
+ <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
+ </el-form-item>
<el-form-item label="显示排序" prop="dictSort">
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
+ </el-form-item>
+ <el-form-item label="回显样式" prop="listClass">
+ <el-select v-model="form.listClass">
+ <el-option
+ v-for="item in listClassOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ ></el-option>
+ </el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
@@ -190,6 +212,33 @@
title: "",
// 是否显示弹出层
open: false,
+ // 数据标签回显样式
+ listClassOptions: [
+ {
+ value: "default",
+ label: "默认"
+ },
+ {
+ value: "primary",
+ label: "主要"
+ },
+ {
+ value: "success",
+ label: "成功"
+ },
+ {
+ value: "info",
+ label: "信息"
+ },
+ {
+ value: "warning",
+ label: "警告"
+ },
+ {
+ value: "danger",
+ label: "危险"
+ }
+ ],
// 状态数据字典
statusOptions: [],
// 类型数据字典
@@ -250,10 +299,6 @@
this.loading = false;
});
},
- // 数据状态字典翻译
- statusFormat(row, column) {
- return this.selectDictLabel(this.statusOptions, row.status);
- },
// 取消按钮
cancel() {
this.open = false;
@@ -265,6 +310,8 @@
dictCode: undefined,
dictLabel: undefined,
dictValue: undefined,
+ cssClass: undefined,
+ listClass: 'default',
dictSort: 0,
status: "0",
remark: undefined
--
Gitblit v1.9.2