diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
index fb10ed6..7435ae7 100644
--- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
+++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -157,6 +157,23 @@
+#elseif($column.htmlType == "checkbox" && "" != $dictType)
+
+
+
+ {{dict.dictLabel}}
+
+
+
+#elseif($column.htmlType == "checkbox" && $dictType)
+
+
+ 请选择字典生成
+
+
#elseif($column.htmlType == "radio" && "" != $dictType)
@@ -312,7 +329,7 @@ export default {
#end
// $comment字典翻译
${column.javaField}Format(row, column) {
- return this.selectDictLabel(this.${column.javaField}Options, row.${column.javaField});
+ return this.selectDictLabel#if($column.htmlType == "checkbox")s#end(this.${column.javaField}Options, row.${column.javaField});
},
#end
#end
@@ -328,6 +345,9 @@ export default {
#if($column.htmlType == "radio")
$column.javaField: "0"#if($velocityCount != $columns.size()),#end
+#elseif($column.htmlType == "checkbox")
+ $column.javaField: []#if($velocityCount != $columns.size()),#end
+
#else
$column.javaField: undefined#if($velocityCount != $columns.size()),#end
@@ -361,6 +381,11 @@ export default {
}
get${BusinessName}(row.${pkColumn.javaField}).then(response => {
this.form = response.data;
+#foreach ($column in $columns)
+#if($column.htmlType == "checkbox")
+ this.form.$column.javaField = this.form.${column.javaField}.split(",");
+#end
+#end
this.open = true;
this.title = "修改${functionName}";
});
@@ -369,6 +394,11 @@ export default {
submitForm: function() {
this.#[[$]]#refs["form"].validate(valid => {
if (valid) {
+#foreach ($column in $columns)
+#if($column.htmlType == "checkbox")
+ this.form.$column.javaField = this.form.${column.javaField}.join(",");
+#end
+#end
if (this.form.${pkColumn.javaField} != undefined) {
update${BusinessName}(this.form).then(response => {
if (response.code === 200) {
diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
index 0b64a0c..df2890e 100644
--- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
+++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -185,6 +185,23 @@
+#elseif($column.htmlType == "checkbox" && "" != $dictType)
+
+
+
+ {{dict.dictLabel}}
+
+
+
+#elseif($column.htmlType == "checkbox" && $dictType)
+
+
+ 请选择字典生成
+
+
#elseif($column.htmlType == "radio" && "" != $dictType)
@@ -326,7 +343,7 @@ export default {
#end
// $comment字典翻译
${column.javaField}Format(row, column) {
- return this.selectDictLabel(this.${column.javaField}Options, row.${column.javaField});
+ return this.selectDictLabel#if($column.htmlType == "checkbox")s#end(this.${column.javaField}Options, row.${column.javaField});
},
#end
#end
@@ -342,6 +359,9 @@ export default {
#if($column.htmlType == "radio")
$column.javaField: "0"#if($velocityCount != $columns.size()),#end
+#elseif($column.htmlType == "checkbox")
+ $column.javaField: []#if($velocityCount != $columns.size()),#end
+
#else
$column.javaField: undefined#if($velocityCount != $columns.size()),#end
@@ -378,6 +398,11 @@ export default {
const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids
get${BusinessName}(${pkColumn.javaField}).then(response => {
this.form = response.data;
+#foreach ($column in $columns)
+#if($column.htmlType == "checkbox")
+ this.form.$column.javaField = this.form.${column.javaField}.split(",");
+#end
+#end
this.open = true;
this.title = "修改${functionName}";
});
@@ -386,6 +411,11 @@ export default {
submitForm: function() {
this.#[[$]]#refs["form"].validate(valid => {
if (valid) {
+#foreach ($column in $columns)
+#if($column.htmlType == "checkbox")
+ this.form.$column.javaField = this.form.${column.javaField}.join(",");
+#end
+#end
if (this.form.${pkColumn.javaField} != undefined) {
update${BusinessName}(this.form).then(response => {
if (response.code === 200) {
diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js
index c2834bf..7a28b51 100644
--- a/ruoyi-ui/src/main.js
+++ b/ruoyi-ui/src/main.js
@@ -18,7 +18,7 @@ import './assets/icons' // icon
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
-import { parseTime, resetForm, addDateRange, selectDictLabel, download, handleTree } from "@/utils/ruoyi";
+import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
import Pagination from "@/components/Pagination";
// 全局方法挂载
@@ -28,6 +28,7 @@ Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
+Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js
index decad41..23879aa 100644
--- a/ruoyi-ui/src/utils/ruoyi.js
+++ b/ruoyi-ui/src/utils/ruoyi.js
@@ -77,6 +77,21 @@ export function selectDictLabel(datas, value) {
return actions.join('');
}
+// 回显数据字典(字符串数组)
+export function selectDictLabels(datas, value, separator) {
+ var actions = [];
+ var currentSeparator = undefined === separator ? "," : separator;
+ var temp = value.split(currentSeparator);
+ Object.keys(value.split(currentSeparator)).some((val) => {
+ Object.keys(datas).some((key) => {
+ if (datas[key].dictValue == ('' + temp[val])) {
+ actions.push(datas[key].dictLabel + currentSeparator);
+ }
+ })
+ })
+ return actions.join('').substring(0, actions.join('').length - 1);
+}
+
// 通用下载方法
export function download(fileName) {
window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
@@ -98,10 +113,10 @@ export function sprintf(str) {
// 转换字符串,undefined,null等转化为""
export function praseStrEmpty(str) {
- if (!str || str == "undefined" || str == "null") {
- return "";
- }
- return str;
+ if (!str || str == "undefined" || str == "null") {
+ return "";
+ }
+ return str;
}
/**
@@ -120,15 +135,15 @@ export function handleTree(data, id, parentId, children, rootId) {
//对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
//循环所有项
- const treeData = cloneData.filter(father => {
- let branchArr = cloneData.filter(child => {
- //返回每一项的子级数组
- return father[id] === child[parentId]
- });
- branchArr.length > 0 ? father.children = branchArr : '';
- //返回第一层
- return father[parentId] === rootId;
+ const treeData = cloneData.filter(father => {
+ let branchArr = cloneData.filter(child => {
+ //返回每一项的子级数组
+ return father[id] === child[parentId]
+ });
+ branchArr.length > 0 ? father.children = branchArr : '';
+ //返回第一层
+ return father[parentId] === rootId;
});
return treeData != '' ? treeData : data;
- }
-
+}
+
diff --git a/sql/ry_20200629.sql b/sql/ry_20200723.sql
similarity index 98%
rename from sql/ry_20200629.sql
rename to sql/ry_20200723.sql
index 7c8e8c8..727ac6c 100644
--- a/sql/ry_20200629.sql
+++ b/sql/ry_20200723.sql
@@ -120,7 +120,7 @@ create table sys_role (
-- ----------------------------
-- 初始化-角色信息表数据
-- ----------------------------
-insert into sys_role values('1', '系统管理员', 'admin', 1, 1, '0', '0', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '系统管理员');
+insert into sys_role values('1', '超级管理员', 'admin', 1, 1, '0', '0', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '超级管理员');
insert into sys_role values('2', '普通角色', 'common', 2, 2, '0', '0', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '普通角色');