From 77a7cac830f2dd240cfd59751fd6cb7293050b65 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 03 六月 2021 10:11:07 +0800 Subject: [PATCH] 同步 dev --- ruoyi-ui/src/views/demo/demo/index.vue | 13 + ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 13 + ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java | 8 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 11 - ruoyi-ui/src/views/system/menu/index.vue | 2 README.md | 7 /dev/null | 361 --------------------------------------------- ruoyi-ui/src/views/tool/build/RightPanel.vue | 2 ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm | 13 + sql/test.sql | 4 ruoyi-admin/src/main/resources/application-prod.yml | 2 ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java | 4 ruoyi-ui/src/views/demo/tree/index.vue | 13 + ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java | 1 LICENSE | 4 ruoyi-admin/src/main/resources/application-dev.yml | 2 16 files changed, 70 insertions(+), 390 deletions(-) diff --git a/LICENSE b/LICENSE index 8564f29..32b3071 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2018 RuoYi +Copyright (c) 2019 RuoYi-Vue-Plus Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in @@ -17,4 +17,4 @@ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 7aac0bf..b877e68 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ ## 骞冲彴绠�浠� +[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) +[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE) +[ 鍩轰簬 RuoYi-Vue 闆嗘垚 Mybatis-Plus Lombok Hutool 绛変究鎹峰紑鍙戝伐鍏� 閫傞厤閲嶅啓鐩稿叧涓氬姟 渚夸簬寮�鍙� 瀹氭湡涓� RuoYi-Vue 鍚屾 * 鍓嶇寮�鍙戞鏋� Vue銆丒lement UI @@ -19,7 +22,7 @@ ### 渚濊禆鏀瑰姩 -* ORM妗嗘灦 浣跨敤 Mybatis-Plus 3.4.2 绠�鍖朇RUD (涓嶆敮鎸佷富瀛愯〃) +* ORM妗嗘灦 浣跨敤 Mybatis-Plus 绠�鍖朇RUD (涓嶆敮鎸佷富瀛愯〃) * Bean绠�鍖� 浣跨敤 Lombok 绠�鍖� get set toString 绛夌瓑 * 瀹瑰櫒鏀瑰姩 Tomcat 鏀逛负 骞跺彂鎬ц兘鏇村ソ鐨� undertow * 鍒嗛〉绉婚櫎 pagehelper 鏀逛负 Mybatis-Plus 鍒嗛〉 @@ -49,7 +52,7 @@ ## 鍏虫敞浣滆��(鎵爜璇峰娉�: "鍔犵兢") - +![浣滆�呭浘鐗嘳(https://images.gitee.com/uploads/images/2021/0508/235345_5503356a_1766278.jpeg) ## 鎹愮尞浣滆�� 浣滆�呬负鍏艰亴鍋氬紑婧�,骞虫椂杩橀渶瑕佸伐浣�,濡傛灉甯埌浜嗘偍鍙互璇蜂綔鑰呭悆涓洅楗� diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 71e5b6f..eb54d9c 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -81,7 +81,7 @@ # 鍗曡妭鐐归厤缃� singleServerConfig: # 瀹㈡埛绔悕绉� - clientName: ${ruoyi-vue-plus.name} + clientName: ${ruoyi.name} # 鏈�灏忕┖闂茶繛鎺ユ暟 connectionMinimumIdleSize: 32 # 杩炴帴姹犲ぇ灏� diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index eba8a89..2ebdcbd 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -81,7 +81,7 @@ # 鍗曡妭鐐归厤缃� singleServerConfig: # 瀹㈡埛绔悕绉� - clientName: ${ruoyi-vue-plus.name} + clientName: ${ruoyi.name} # 鏈�灏忕┖闂茶繛鎺ユ暟 connectionMinimumIdleSize: 32 # 杩炴帴姹犲ぇ灏� diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index 9b37921..317b92e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -13,7 +13,7 @@ /** * web灞傞�氱敤鏁版嵁澶勭悊 - * + * * @author ruoyi */ public class BaseController @@ -39,7 +39,7 @@ /** * 鍝嶅簲杩斿洖缁撴灉 - * + * * @param rows 褰卞搷琛屾暟 * @return 鎿嶄綔缁撴灉 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index 6c4c239..3c8bc92 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -96,8 +96,12 @@ * @param collection 澶氫釜瀵硅薄 * @return */ - public long deleteObject(final Collection collection) { - return redissonClient.getKeys().delete(Arrays.toString(collection.toArray())); + public void deleteObject(final Collection collection) { + RBatch batch = redissonClient.createBatch(); + collection.forEach(t->{ + batch.getBucket(t.toString()).deleteAsync(); + }); + batch.execute(); } /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java index d918a48..94dcf45 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -95,6 +95,7 @@ } finally { + IOUtils.closeQuietly(in); IOUtils.closeQuietly(baos); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 383f4b6..830dbe5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -8,6 +8,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.framework.web.service.TokenService; import org.aspectj.lang.JoinPoint; @@ -159,7 +160,6 @@ } } - @SuppressWarnings("unchecked") private static void putDataScope(JoinPoint joinPoint, String sql) { Object params = joinPoint.getArgs()[0]; if (Validator.isNotNull(params)) { @@ -167,13 +167,8 @@ BaseEntity baseEntity = (BaseEntity) params; baseEntity.getParams().put(DATA_SCOPE, sql); } else { - try { - Method getParams = params.getClass().getDeclaredMethod("getParams"); - Map<String, Object> invoke = (Map<String, Object>) getParams.invoke(params); - invoke.put(DATA_SCOPE, sql); - } catch (Exception e) { - // 鏂规硶鏈壘鍒� 涓嶅鐞� - } + Map<String, Object> invoke = ReflectUtils.invokeGetter(params, "params"); + invoke.put(DATA_SCOPE, sql); } } } 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 969dba8..f1247ab 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 @@ -247,7 +247,7 @@ #end </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -302,6 +302,8 @@ }, data() { return { + //鎸夐挳loading + buttonLoading: false, // 閬僵灞� loading: true, // 鏄剧ず鎼滅储鏉′欢 @@ -480,12 +482,14 @@ }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.loading = true; this.reset(); this.getTreeselect(); if (row != null) { this.form.${treeParentCode} = row.${treeCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { + this.loading = false; this.form = response.data; #foreach ($column in $columns) #if($column.htmlType == "checkbox") @@ -500,6 +504,7 @@ submitForm() { this.#[[$]]#refs["form"].validate(valid => { if (valid) { + this.buttonLoading = true; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.join(","); @@ -507,12 +512,14 @@ #end if (this.form.${pkColumn.javaField} != null) { update${BusinessName}(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); } else { add${BusinessName}(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); @@ -527,9 +534,11 @@ confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" - }).then(function() { + }).then(() => { + this.loading = true; return del${BusinessName}(row.${pkColumn.javaField}); }).then(() => { + this.loading = false; this.getList(); this.msgSuccess("鍒犻櫎鎴愬姛"); }) 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 b384ba5..9f58575 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -301,7 +301,7 @@ #end </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -353,6 +353,8 @@ }, data() { return { + //鎸夐挳loading + buttonLoading: false, // 閬僵灞� loading: true, // 瀵煎嚭閬僵灞� @@ -534,9 +536,11 @@ }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.loading = true; this.reset(); const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids get${BusinessName}(${pkColumn.javaField}).then(response => { + this.loading = false; this.form = response.data; #foreach ($column in $columns) #if($column.htmlType == "checkbox") @@ -554,6 +558,7 @@ submitForm() { this.#[[$]]#refs["form"].validate(valid => { if (valid) { + this.buttonLoading = true; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.join(","); @@ -564,12 +569,14 @@ #end if (this.form.${pkColumn.javaField} != null) { update${BusinessName}(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); } else { add${BusinessName}(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); @@ -585,9 +592,11 @@ confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" - }).then(function() { + }).then(() => { + this.loading = true; return del${BusinessName}(${pkColumn.javaField}s); }).then(() => { + this.loading = false; this.getList(); this.msgSuccess("鍒犻櫎鎴愬姛"); }) diff --git a/ruoyi-ui/src/views/demo/demo/index.vue b/ruoyi-ui/src/views/demo/demo/index.vue index b831ad9..48fa368 100644 --- a/ruoyi-ui/src/views/demo/demo/index.vue +++ b/ruoyi-ui/src/views/demo/demo/index.vue @@ -152,7 +152,7 @@ </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -168,6 +168,8 @@ }, data() { return { + //鎸夐挳loading + buttonLoading: false, // 閬僵灞� loading: true, // 瀵煎嚭閬僵灞� @@ -277,9 +279,11 @@ }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.loading = true; this.reset(); const id = row.id || this.ids getDemo(id).then(response => { + this.loading = false; this.form = response.data; this.open = true; this.title = "淇敼娴嬭瘯鍗曡〃"; @@ -289,14 +293,17 @@ submitForm() { this.$refs["form"].validate(valid => { if (valid) { + this.buttonLoading = true; if (this.form.id != null) { updateDemo(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); } else { addDemo(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); @@ -312,9 +319,11 @@ confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" - }).then(function() { + }).then(() => { + this.loading = true; return delDemo(ids); }).then(() => { + this.loading = false; this.getList(); this.msgSuccess("鍒犻櫎鎴愬姛"); }) diff --git a/ruoyi-ui/src/views/demo/test/index.vue b/ruoyi-ui/src/views/demo/test/index.vue deleted file mode 100644 index 897e54e..0000000 --- a/ruoyi-ui/src/views/demo/test/index.vue +++ /dev/null @@ -1,361 +0,0 @@ -<template> - <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="key閿�" prop="testKey"> - <el-input - v-model="queryParams.testKey" - placeholder="璇疯緭鍏ey閿�" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍊�" prop="value"> - <el-input - v-model="queryParams.value" - placeholder="璇疯緭鍏ュ��" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鐗堟湰" prop="version"> - <el-input - v-model="queryParams.version" - placeholder="璇疯緭鍏ョ増鏈�" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿"> - <el-date-picker - v-model="daterangeCreateTime" - size="small" - style="width: 240px" - value-format="yyyy-MM-dd" - type="daterange" - range-separator="-" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - ></el-date-picker> - </el-form-item> - <el-form-item label="鍒犻櫎鏍囧織" prop="deleted"> - <el-input - v-model="queryParams.deleted" - placeholder="璇疯緭鍏ュ垹闄ゆ爣蹇�" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鐖秈d" prop="parentId"> - <el-input - v-model="queryParams.parentId" - placeholder="璇疯緭鍏ョ埗id" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鎺掑簭鍙�" prop="orderNum"> - <el-input - v-model="queryParams.orderNum" - placeholder="璇疯緭鍏ユ帓搴忓彿" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['demo:test:add']" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['demo:test:edit']" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['demo:test:remove']" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['demo:test:export']" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" :data="testList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="涓婚敭" align="center" prop="id" v-if="false"/> - <el-table-column label="key閿�" align="center" prop="testKey" /> - <el-table-column label="鍊�" align="center" prop="value" /> - <el-table-column label="鐗堟湰" align="center" prop="version" /> - <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"> - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> - </template> - </el-table-column> - <el-table-column label="鍒犻櫎鏍囧織" align="center" prop="deleted" /> - <el-table-column label="鐖秈d" align="center" prop="parentId" /> - <el-table-column label="鎺掑簭鍙�" align="center" prop="orderNum" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['demo:test:edit']" - >淇敼</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['demo:test:remove']" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - - <!-- 娣诲姞鎴栦慨鏀规祴璇曞璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="key閿�" prop="testKey"> - <el-input v-model="form.testKey" placeholder="璇疯緭鍏ey閿�" /> - </el-form-item> - <el-form-item label="鍊�" prop="value"> - <el-input v-model="form.value" placeholder="璇疯緭鍏ュ��" /> - </el-form-item> - <el-form-item label="鐗堟湰" prop="version"> - <el-input v-model="form.version" placeholder="璇疯緭鍏ョ増鏈�" /> - </el-form-item> - <el-form-item label="鍒犻櫎鏍囧織" prop="deleted"> - <el-input v-model="form.deleted" placeholder="璇疯緭鍏ュ垹闄ゆ爣蹇�" /> - </el-form-item> - <el-form-item label="鐖秈d" prop="parentId"> - <el-input v-model="form.parentId" placeholder="璇疯緭鍏ョ埗id" /> - </el-form-item> - <el-form-item label="鎺掑簭鍙�" prop="orderNum"> - <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ帓搴忓彿" /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> - </div> -</template> - -<script> -import { listTest, getTest, delTest, addTest, updateTest, exportTest } from "@/api/demo/test"; - -export default { - name: "Test", - components: { - }, - data() { - return { - // 閬僵灞� - loading: true, - // 閫変腑鏁扮粍 - ids: [], - // 闈炲崟涓鐢� - single: true, - // 闈炲涓鐢� - multiple: true, - // 鏄剧ず鎼滅储鏉′欢 - showSearch: true, - // 鎬绘潯鏁� - total: 0, - // 娴嬭瘯琛ㄦ牸鏁版嵁 - testList: [], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, - // 鍒涘缓鏃堕棿鏃堕棿鑼冨洿 - daterangeCreateTime: [], - // 鏌ヨ鍙傛暟 - queryParams: { - pageNum: 1, - pageSize: 10, - testKey: undefined, - value: undefined, - version: undefined, - createTime: undefined, - deleted: undefined, - parentId: undefined, - orderNum: undefined - }, - // 琛ㄥ崟鍙傛暟 - form: {}, - // 琛ㄥ崟鏍¢獙 - rules: { - } - }; - }, - created() { - this.getList(); - }, - methods: { - /** 鏌ヨ娴嬭瘯鍒楄〃 */ - getList() { - this.loading = true; - this.queryParams.params = {}; - if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { - this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; - this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; - } - listTest(this.queryParams).then(response => { - this.testList = response.rows; - this.total = response.total; - this.loading = false; - }); - }, - // 鍙栨秷鎸夐挳 - cancel() { - this.open = false; - this.reset(); - }, - // 琛ㄥ崟閲嶇疆 - reset() { - this.form = { - id: undefined, - testKey: undefined, - value: undefined, - version: undefined, - createTime: undefined, - deleted: undefined, - parentId: undefined, - orderNum: undefined - }; - this.resetForm("form"); - }, - /** 鎼滅储鎸夐挳鎿嶄綔 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 閲嶇疆鎸夐挳鎿嶄綔 */ - resetQuery() { - this.daterangeCreateTime = []; - this.resetForm("queryForm"); - this.handleQuery(); - }, - // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { - this.ids = selection.map(item => item.id) - this.single = selection.length!==1 - this.multiple = !selection.length - }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "娣诲姞娴嬭瘯"; - }, - /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { - this.reset(); - const id = row.id || this.ids - getTest(id).then(response => { - this.form = response.data; - this.open = true; - this.title = "淇敼娴嬭瘯"; - }); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - this.$refs["form"].validate(valid => { - if (valid) { - if (this.form.id != null) { - updateTest(this.form).then(response => { - this.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - addTest(this.form).then(response => { - this.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - const ids = row.id || this.ids; - this.$confirm('鏄惁纭鍒犻櫎娴嬭瘯缂栧彿涓�"' + ids + '"鐨勬暟鎹」?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(function() { - return delTest(ids); - }).then(() => { - this.getList(); - this.msgSuccess("鍒犻櫎鎴愬姛"); - }) - }, - /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - const queryParams = this.queryParams; - this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夋祴璇曟暟鎹」?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(function() { - return exportTest(queryParams); - }).then(response => { - this.download(response.msg); - }) - } - } -}; -</script> diff --git a/ruoyi-ui/src/views/demo/tree/index.vue b/ruoyi-ui/src/views/demo/tree/index.vue index ddf7677..afe96c4 100644 --- a/ruoyi-ui/src/views/demo/tree/index.vue +++ b/ruoyi-ui/src/views/demo/tree/index.vue @@ -102,7 +102,7 @@ </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -121,6 +121,8 @@ }, data() { return { + //鎸夐挳loading + buttonLoading: false, // 閬僵灞� loading: true, // 鏄剧ず鎼滅储鏉′欢 @@ -233,12 +235,14 @@ }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.loading = true; this.reset(); this.getTreeselect(); if (row != null) { this.form.parentId = row.id; } getTree(row.id).then(response => { + this.loading = false; this.form = response.data; this.open = true; this.title = "淇敼娴嬭瘯鏍戣〃"; @@ -248,14 +252,17 @@ submitForm() { this.$refs["form"].validate(valid => { if (valid) { + this.buttonLoading = true; if (this.form.id != null) { updateTree(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); } else { addTree(this.form).then(response => { + this.buttonLoading = false; this.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); @@ -270,9 +277,11 @@ confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" - }).then(function() { + }).then(() => { + this.loading = true; return delTree(row.id); }).then(() => { + this.loading = false; this.getList(); this.msgSuccess("鍒犻櫎鎴愬姛"); }) diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index 094a706..8d2137a 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -163,7 +163,7 @@ </el-col> <el-col :span="12"> <el-form-item v-if="form.menuType != 'M'" label="鏉冮檺鏍囪瘑"> - <el-input v-model="form.perms" placeholder="璇锋潈闄愭爣璇�" maxlength="50" /> + <el-input v-model="form.perms" placeholder="璇锋潈闄愭爣璇�" maxlength="100" /> </el-form-item> </el-col> <el-col :span="12"> diff --git a/ruoyi-ui/src/views/tool/build/RightPanel.vue b/ruoyi-ui/src/views/tool/build/RightPanel.vue index 1acdc57..88013a5 100644 --- a/ruoyi-ui/src/views/tool/build/RightPanel.vue +++ b/ruoyi-ui/src/views/tool/build/RightPanel.vue @@ -573,6 +573,7 @@ <script> import { isArray } from 'util' +import draggable from 'vuedraggable' import TreeNodeDialog from './TreeNodeDialog' import { isNumberStr } from '@/utils/index' import IconsDialog from './IconsDialog' @@ -595,6 +596,7 @@ export default { components: { + draggable, TreeNodeDialog, IconsDialog }, diff --git a/sql/test.sql b/sql/test.sql index b7003ce2..601360a 100644 --- a/sql/test.sql +++ b/sql/test.sql @@ -12,7 +12,7 @@ create_by varchar(64) NULL DEFAULT NULL COMMENT '鍒涘缓浜�', update_time datetime(0) NULL DEFAULT NULL COMMENT '鏇存柊鏃堕棿', update_by varchar(64) NULL DEFAULT NULL COMMENT '鏇存柊浜�', - del_flag int(0) NULL DEFAULT NULL COMMENT '鍒犻櫎鏍囧織', + del_flag int(0) NULL DEFAULT 0 COMMENT '鍒犻櫎鏍囧織', PRIMARY KEY (id) USING BTREE ) ENGINE = InnoDB COMMENT = '娴嬭瘯鍗曡〃'; @@ -29,7 +29,7 @@ create_by varchar(64) NULL DEFAULT NULL COMMENT '鍒涘缓浜�', update_time datetime(0) NULL DEFAULT NULL COMMENT '鏇存柊鏃堕棿', update_by varchar(64) NULL DEFAULT NULL COMMENT '鏇存柊浜�', - del_flag int(0) NULL DEFAULT NULL COMMENT '鍒犻櫎鏍囧織', + del_flag int(0) NULL DEFAULT 0 COMMENT '鍒犻櫎鏍囧織', PRIMARY KEY (id) USING BTREE ) ENGINE = InnoDB COMMENT = '娴嬭瘯鏍戣〃'; -- Gitblit v1.9.3