Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b000788

Browse files
JavaLionLigitee-org
authored andcommitted
!222 发布 5.4.1-2.4.1 小步迭代修复问题
Merge pull request !222 from 疯狂的狮子Li/dev
2 parents 2dc094c + 62f7d39 commit b000788

File tree

12 files changed

+78
-48
lines changed

12 files changed

+78
-48
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package",
33
"name": "ruoyi-vue-plus",
4-
"version": "5.4.0-2.4.0",
4+
"version": "5.4.1-2.4.1",
55
"description": "RuoYi-Vue-Plus多租户管理系统",
66
"author": "LionLi",
77
"license": "MIT",

src/components/Process/flowChart.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const iframeUrl = ref('');
2121
const baseUrl = import.meta.env.VITE_APP_BASE_API;
2222
2323
onMounted(async () => {
24-
const url = baseUrl + `/warm-flow-ui/index.html?id=${props.insId}&type=FlowChart`;
24+
const url = baseUrl + `/warm-flow-ui/index.html?id=${props.insId}&type=FlowChart&t=${Date.now()}`;
2525
iframeUrl.value = url + '&Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID;
2626
});
2727
</script>

src/components/Process/submitVerify.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ const emits = defineEmits(['submitCallback', 'cancelCallback']);
273273
/** 办理流程 */
274274
const handleCompleteTask = async () => {
275275
form.value.taskId = taskId.value;
276-
form.value.taskVariables = props.taskVariables;
276+
form.value.variables = props.taskVariables;
277277
let verify = false;
278278
if (buttonObj.value.pop && nestNodeList.value && nestNodeList.value.length > 0) {
279279
nestNodeList.value.forEach((e) => {

src/layout/components/AppMain.vue

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
<template>
22
<section class="app-main">
33
<router-view v-slot="{ Component, route }">
4-
<transition v-if="!route.meta.noCache" :enter-active-class="animate" mode="out-in">
5-
<keep-alive v-if="!route.meta.noCache" :include="tagsViewStore.cachedViews">
4+
<transition :enter-active-class="animate" mode="out-in">
5+
<keep-alive :include="tagsViewStore.cachedViews">
66
<component :is="Component" v-if="!route.meta.link" :key="route.path" />
77
</keep-alive>
88
</transition>
9-
<transition v-if="route.meta.noCache" :enter-active-class="animate" mode="out-in">
10-
<component :is="Component" v-if="!route.meta.link && route.meta.noCache" :key="route.path" />
11-
</transition>
129
</router-view>
1310
<iframe-toggle />
1411
</section>

src/views/demo/demo/index.vue

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,6 @@
44
<div v-show="showSearch" class="mb-[10px]">
55
<el-card shadow="hover">
66
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
7-
<el-form-item label="部门id" prop="deptId">
8-
<el-input v-model="queryParams.deptId" placeholder="请输入部门id" clearable @keyup.enter="handleQuery" />
9-
</el-form-item>
10-
<el-form-item label="用户id" prop="userId">
11-
<el-input v-model="queryParams.userId" placeholder="请输入用户id" clearable @keyup.enter="handleQuery" />
12-
</el-form-item>
13-
<el-form-item label="排序号" prop="orderNum">
14-
<el-input v-model="queryParams.orderNum" placeholder="请输入排序号" clearable @keyup.enter="handleQuery" />
15-
</el-form-item>
167
<el-form-item label="key键" prop="testKey">
178
<el-input v-model="queryParams.testKey" placeholder="请输入key键" clearable @keyup.enter="handleQuery" />
189
</el-form-item>

src/views/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
* 部署方式 Docker 容器编排 一键部署业务集群<br />
3434
* 国际化 SpringMessage Spring标准国际化方案<br />
3535
</p>
36-
<p><b>当前版本:</b> <span>v5.4.0</span></p>
36+
<p><b>当前版本:</b> <span>v5.4.1</span></p>
3737
<p>
3838
<el-tag type="danger">&yen;免费开源</el-tag>
3939
</p>
@@ -77,7 +77,7 @@
7777
* 分布式监控 Prometheus、Grafana 全方位性能监控<br />
7878
* 其余与 Vue 版本一致<br />
7979
</p>
80-
<p><b>当前版本:</b> <span>v2.4.0</span></p>
80+
<p><b>当前版本:</b> <span>v2.4.1</span></p>
8181
<p>
8282
<el-tag type="danger">&yen;免费开源</el-tag>
8383
</p>

src/views/system/menu/index.vue

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@
2727
<el-col :span="1.5">
2828
<el-button v-hasPermi="['system:menu:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增 </el-button>
2929
</el-col>
30-
<el-col :span="1.5">
31-
<el-button type="info" plain icon="Sort" @click="handleToggleExpandAll">展开/折叠</el-button>
32-
</el-col>
3330
<el-col :span="1.5">
3431
<el-button type="danger" plain icon="Delete" @click="handleCascadeDelete" :loading="deleteLoading">级联删除</el-button>
3532
</el-col>
@@ -44,7 +41,9 @@
4441
row-key="menuId"
4542
border
4643
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
47-
:default-expand-all="isExpandAll"
44+
:default-expand-all="false"
45+
lazy
46+
:load="getChildrenList"
4847
>
4948
<el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
5049
<el-table-column prop="icon" label="图标" align="center" width="100">
@@ -299,10 +298,11 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
299298
const { sys_show_hide, sys_normal_disable } = toRefs<any>(proxy?.useDict('sys_show_hide', 'sys_normal_disable'));
300299
301300
const menuList = ref<MenuVO[]>([]);
301+
const menuChildrenListMap = ref({});
302+
const menuExpandMap = ref({});
302303
const loading = ref(true);
303304
const showSearch = ref(true);
304305
const menuOptions = ref<MenuOptionsType[]>([]);
305-
const isExpandAll = ref(false);
306306
307307
const dialog = reactive<DialogOption>({
308308
visible: false,
@@ -340,14 +340,62 @@ const data = reactive<PageData<MenuForm, MenuQuery>>({
340340
const menuTableRef = ref<ElTableInstance>();
341341
342342
const { queryParams, form, rules } = toRefs<PageData<MenuForm, MenuQuery>>(data);
343+
344+
/** 获取子菜单列表 */
345+
const getChildrenList = async (row: any, treeNode: unknown, resolve: (data: any[]) => void) => {
346+
menuExpandMap.value[row.menuId] = { row, treeNode, resolve };
347+
const children = menuChildrenListMap.value[row.menuId] || [];
348+
// 菜单的子菜单清空后关闭展开
349+
if (children.length == 0) {
350+
// fix: 处理当菜单只有一个子菜单并被删除,需要将父菜单的展开状态关闭
351+
menuTableRef.value?.updateKeyChildren(row.menuId, children);
352+
}
353+
resolve(children);
354+
};
355+
356+
/** 刷新展开的菜单数据 */
357+
const refreshLoadTree = (parentId: string | number) => {
358+
if (menuExpandMap.value[parentId]) {
359+
const { row, treeNode, resolve } = menuExpandMap.value[parentId];
360+
if (row) {
361+
getChildrenList(row, treeNode, resolve);
362+
if (row.parentId) {
363+
const grandpaMenu = menuExpandMap.value[row.parentId];
364+
getChildrenList(grandpaMenu.row, grandpaMenu.treeNode, grandpaMenu.resolve);
365+
}
366+
}
367+
}
368+
};
369+
370+
/** 重新加载所有已展开的菜单的数据 */
371+
const refreshAllExpandMenuData = () => {
372+
for (const menuId in menuExpandMap.value) {
373+
refreshLoadTree(menuId);
374+
}
375+
};
376+
343377
/** 查询菜单列表 */
344378
const getList = async () => {
345379
loading.value = true;
346380
const res = await listMenu(queryParams.value);
347-
const data = proxy?.handleTree<MenuVO>(res.data, 'menuId');
348-
if (data) {
349-
menuList.value = data;
381+
382+
const tempMap = {};
383+
// 存储 父菜单:子菜单列表
384+
for (const menu of res.data) {
385+
const parentId = menu.parentId;
386+
if (!tempMap[parentId]) {
387+
tempMap[parentId] = [];
388+
}
389+
tempMap[parentId].push(menu);
350390
}
391+
// 设置有没有子菜单
392+
for (const menu of res.data) {
393+
menu['hasChildren'] = tempMap[menu.menuId]?.length > 0;
394+
}
395+
menuChildrenListMap.value = tempMap;
396+
menuList.value = tempMap[0] || [];
397+
// 根据新数据重新加载子菜单数据
398+
refreshAllExpandMenuData();
351399
loading.value = false;
352400
};
353401
/** 查询菜单下拉树结构 */
@@ -386,18 +434,6 @@ const handleAdd = (row?: MenuVO) => {
386434
dialog.visible = true;
387435
dialog.title = '添加菜单';
388436
};
389-
/** 展开/折叠操作 */
390-
const handleToggleExpandAll = () => {
391-
isExpandAll.value = !isExpandAll.value;
392-
toggleExpandAll(menuList.value, isExpandAll.value);
393-
};
394-
/** 展开/折叠所有 */
395-
const toggleExpandAll = (data: MenuVO[], status: boolean) => {
396-
data.forEach((item: MenuVO) => {
397-
menuTableRef.value?.toggleRowExpansion(item, status);
398-
if (item.children && item.children.length > 0) toggleExpandAll(item.children, status);
399-
});
400-
};
401437
/** 修改按钮操作 */
402438
const handleUpdate = async (row: MenuVO) => {
403439
reset();

src/views/system/tenantPackage/index.vue

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ import {
108108
updateTenantPackage,
109109
changePackageStatus
110110
} from '@/api/system/tenantPackage';
111-
import { treeselect as menuTreeselect, tenantPackageMenuTreeselect } from '@/api/system/menu';
111+
import { tenantPackageMenuTreeselect } from '@/api/system/menu';
112112
import { TenantPkgForm, TenantPkgQuery, TenantPkgVO } from '@/api/system/tenantPackage/types';
113113
import { MenuTreeOption } from '@/api/system/menu/types';
114114
import to from 'await-to-js';
@@ -158,12 +158,6 @@ const data = reactive<PageData<TenantPkgForm, TenantPkgQuery>>({
158158
159159
const { queryParams, form, rules } = toRefs(data);
160160
161-
/** 查询菜单树结构 */
162-
const getMenuTreeselect = async () => {
163-
const { data } = await menuTreeselect();
164-
menuOptions.value = data;
165-
};
166-
167161
// 所有菜单节点数据
168162
const getMenuAllCheckedKeys = (): any => {
169163
// 目前被选中的菜单节点
@@ -265,9 +259,9 @@ const handleCheckedTreeConnect = (value: CheckboxValueType, type: string) => {
265259
};
266260
267261
/** 新增按钮操作 */
268-
const handleAdd = () => {
262+
const handleAdd = async () => {
269263
reset();
270-
getMenuTreeselect();
264+
await getPackageMenuTreeselect(0);
271265
dialog.visible = true;
272266
dialog.title = '添加租户套餐';
273267
};

src/views/workflow/processInstance/index.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,9 @@ const openUserSelect = () => {
405405
//确认选择申请人
406406
const userSelectCallBack = (data: UserVO[]) => {
407407
userSelectCount.value = 0;
408+
selectUserIds.value = [];
409+
queryParams.value.createByIds = [];
410+
408411
if (data && data.length > 0) {
409412
userSelectCount.value = data.length;
410413
selectUserIds.value = data.map((item) => item.userId);

src/views/workflow/task/allTaskWaiting.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ const openUserSelect = () => {
242242
//确认选择申请人
243243
const userSelectCallBack = (data: UserVO[]) => {
244244
userSelectCount.value = 0;
245+
selectUserIds.value = [];
246+
queryParams.value.createByIds = [];
247+
245248
if (data && data.length > 0) {
246249
userSelectCount.value = data.length;
247250
selectUserIds.value = data.map((item) => item.userId);

0 commit comments

Comments
 (0)