RuoYi
2020-07-23 5c6adb25fc3c114085e64f0c34bab3623c3e647a
代码生成支持复选框
已重命名1个文件
已修改4个文件
112 ■■■■ 文件已修改
ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/main.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/ruoyi.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/ry_20200723.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -157,6 +157,23 @@
            <el-option label="请选择字典生成" value="" />
          </el-select>
        </el-form-item>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
        <el-form-item label="${comment}">
          <el-checkbox-group v-model="form.${field}">
            <el-checkbox
              v-for="dict in ${field}Options"
              :key="dict.dictValue"
              :label="dict.dictValue">
              {{dict.dictLabel}}
            </el-checkbox>
          </el-checkbox-group>
        </el-form-item>
#elseif($column.htmlType == "checkbox" && $dictType)
        <el-form-item label="${comment}">
          <el-checkbox-group v-model="form.${field}">
            <el-checkbox>请选择字典生成</el-checkbox>
          </el-checkbox-group>
        </el-form-item>
#elseif($column.htmlType == "radio" && "" != $dictType)
        <el-form-item label="${comment}">
          <el-radio-group v-model="form.${field}">
@@ -312,7 +329,7 @@
#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
@@ -327,6 +344,9 @@
#foreach ($column in $columns)
#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 @@
      }
      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 @@
    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) {
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -185,6 +185,23 @@
            <el-option label="请选择字典生成" value="" />
          </el-select>
        </el-form-item>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
        <el-form-item label="${comment}">
          <el-checkbox-group v-model="form.${field}">
            <el-checkbox
              v-for="dict in ${field}Options"
              :key="dict.dictValue"
              :label="dict.dictValue">
              {{dict.dictLabel}}
            </el-checkbox>
          </el-checkbox-group>
        </el-form-item>
#elseif($column.htmlType == "checkbox" && $dictType)
        <el-form-item label="${comment}">
          <el-checkbox-group v-model="form.${field}">
            <el-checkbox>请选择字典生成</el-checkbox>
          </el-checkbox-group>
        </el-form-item>
#elseif($column.htmlType == "radio" && "" != $dictType)
        <el-form-item label="${comment}">
          <el-radio-group v-model="form.${field}">
@@ -326,7 +343,7 @@
#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
@@ -341,6 +358,9 @@
#foreach ($column in $columns)
#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 @@
      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 @@
    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) {
ruoyi-ui/src/main.js
@@ -18,7 +18,7 @@
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.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
ruoyi-ui/src/utils/ruoyi.js
@@ -77,6 +77,21 @@
    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 @@
// 转换字符串,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 @@
    //对源数据深度克隆
    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;
  }
}
sql/ry_20200723.sql
文件名从 sql/ry_20200629.sql 修改
@@ -120,7 +120,7 @@
-- ----------------------------
-- 初始化-角色信息表数据
-- ----------------------------
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', '普通角色');