From 5c6adb25fc3c114085e64f0c34bab3623c3e647a Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 23 Jul 2020 17:02:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=8D=E9=80=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/vm/vue/index-tree.vue.vm | 32 +++++++++++++- .../src/main/resources/vm/vue/index.vue.vm | 32 +++++++++++++- ruoyi-ui/src/main.js | 3 +- ruoyi-ui/src/utils/ruoyi.js | 43 +++++++++++++------ sql/{ry_20200629.sql => ry_20200723.sql} | 2 +- 5 files changed, 94 insertions(+), 18 deletions(-) rename sql/{ry_20200629.sql => ry_20200723.sql} (98%) 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', '普通角色');