From 5a5861a0e8fdf216bb75220790654a3920d492c5 Mon Sep 17 00:00:00 2001 From: linshui <9517545+linshuinew@user.noreply.gitee.com> Date: Sat, 4 May 2024 10:14:04 +0000 Subject: [PATCH 1/7] =?UTF-8?q?update=20docker=5Fenv/web/DockerfileBuild.?= =?UTF-8?q?=20=E6=9B=B4=E6=96=B0=E6=B7=98=E5=AE=9Dnpmurl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: linshui <9517545+linshuinew@user.noreply.gitee.com> --- docker_env/web/DockerfileBuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker_env/web/DockerfileBuild b/docker_env/web/DockerfileBuild index 284221c..1f725ca 100644 --- a/docker_env/web/DockerfileBuild +++ b/docker_env/web/DockerfileBuild @@ -1,4 +1,4 @@ FROM node:16.19-alpine WORKDIR / COPY ./web/package.json . -RUN yarn install --registry=https://registry.npm.taobao.org +RUN yarn install --registry=https://registry.npmmirror.com From 1dbdc816af27920061d77b6ebc503cc99f7a725d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=BD=E5=A5=87=E5=AE=9D=E5=AE=9D?= Date: Mon, 27 May 2024 16:30:31 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A5=E5=8F=A3=E6=89=B9=E9=87=8F=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/menu_button.py | 27 ++++++++++++++++++- .../menu/components/MenuButtonCom/api.ts | 9 +++++++ .../menu/components/MenuButtonCom/crud.tsx | 18 +++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/backend/dvadmin/system/views/menu_button.py b/backend/dvadmin/system/views/menu_button.py index 2a6c742..a845606 100644 --- a/backend/dvadmin/system/views/menu_button.py +++ b/backend/dvadmin/system/views/menu_button.py @@ -80,4 +80,29 @@ class MenuButtonViewSet(CustomModelViewSet): else: role_id = request.user.role.values_list('id', flat=True) queryset = RoleMenuButtonPermission.objects.filter(role__in=role_id).values_list('menu_button__value',flat=True).distinct() - return DetailResponse(data=queryset) \ No newline at end of file + return DetailResponse(data=queryset) + + @action(methods=['post'], detail=False, permission_classes=[IsAuthenticated]) + def batch_create(self, request, *args, **kwargs): + """ + 批量创建菜单“增删改查查”权限 + 创建的数据来源于菜单,需要规范创建菜单参数 + value:菜单的component_name:method + api:菜单的web_path增加'/api/'前缀,并根据method增加{id} + """ + menu_obj = Menu.objects.filter(id=request.data['menu']).first() + result_list = [ + {'menu': menu_obj.id, 'name': '新增', 'value': f'{menu_obj.component_name}:Create', 'api': f'/api/{menu_obj.web_path}/', + 'method': 0}, + {'menu': menu_obj.id, 'name': '删除', 'value': f'{menu_obj.component_name}:Delete', 'api': f'/api/{menu_obj.web_path}/{{id}}/', + 'method': 3}, + {'menu': menu_obj.id, 'name': '修改', 'value': f'{menu_obj.component_name}:Update', 'api': f'/api/{menu_obj.web_path}/{{id}}/', + 'method': 2}, + {'menu': menu_obj.id, 'name': '查询', 'value': f'{menu_obj.component_name}:Search', 'api': f'/api/{menu_obj.web_path}/', + 'method': 0}, + {'menu': menu_obj.id, 'name': '详情', 'value': f'{menu_obj.component_name}:Retrieve', 'api': f'/api/{menu_obj.web_path}/{{id}}/', + 'method': 0}] + serializer = self.get_serializer(data=result_list, many=True) + serializer.is_valid(raise_exception=True) + serializer.save() + return SuccessResponse(serializer.data, msg="批量创建成功") diff --git a/web/src/views/system/menu/components/MenuButtonCom/api.ts b/web/src/views/system/menu/components/MenuButtonCom/api.ts index bc473fc..d91f920 100644 --- a/web/src/views/system/menu/components/MenuButtonCom/api.ts +++ b/web/src/views/system/menu/components/MenuButtonCom/api.ts @@ -39,3 +39,12 @@ export function DelObj(id: DelReq) { data: { id }, }); } + +export function BatchAdd(obj: AddReq) { + return request({ + url: apiPrefix + 'batch_create/', + method: 'post', + data: obj, + }); +} + diff --git a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx index c1a7a1f..908cf2a 100644 --- a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx +++ b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx @@ -2,6 +2,8 @@ import {AddReq, DelReq, EditReq, dict, CreateCrudOptionsRet, CreateCrudOptionsPr import * as api from './api'; import {auth} from '/@/utils/authFunction' import {request} from '/@/utils/service'; +import { successNotification } from '/@/utils/message'; +import { ElMessage } from 'element-plus'; //此处为crudOptions配置 export const createCrudOptions = function ({crudExpose, context}: CreateCrudOptionsProps): CreateCrudOptionsRet { const pageRequest = async () => { @@ -40,6 +42,22 @@ export const createCrudOptions = function ({crudExpose, context}: CreateCrudOpti add: { show: auth('btn:Create') }, + batchAdd: { + show: true, + type: 'primary', + text: '批量生成', + click: async () => { + if (context!.selectOptions.value.id == undefined) { + ElMessage.error('请选择菜单'); + return; + } + const result = await api.BatchAdd({ menu: context!.selectOptions.value.id }); + if (result.code == 2000) { + successNotification(result.msg); + crudExpose.doRefresh(); + } + }, + }, }, }, rowHandle: { From bee0d672b398ca327cd2ba14c6015b3a5825a982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=BD=E5=A5=87=E5=AE=9D=E5=AE=9D?= Date: Tue, 28 May 2024 11:52:56 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=B9=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/menu_button.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/dvadmin/system/views/menu_button.py b/backend/dvadmin/system/views/menu_button.py index a845606..14e2627 100644 --- a/backend/dvadmin/system/views/menu_button.py +++ b/backend/dvadmin/system/views/menu_button.py @@ -93,7 +93,7 @@ class MenuButtonViewSet(CustomModelViewSet): menu_obj = Menu.objects.filter(id=request.data['menu']).first() result_list = [ {'menu': menu_obj.id, 'name': '新增', 'value': f'{menu_obj.component_name}:Create', 'api': f'/api/{menu_obj.web_path}/', - 'method': 0}, + 'method': 1}, {'menu': menu_obj.id, 'name': '删除', 'value': f'{menu_obj.component_name}:Delete', 'api': f'/api/{menu_obj.web_path}/{{id}}/', 'method': 3}, {'menu': menu_obj.id, 'name': '修改', 'value': f'{menu_obj.component_name}:Update', 'api': f'/api/{menu_obj.web_path}/{{id}}/', From 1e38f73829249faf474c83ef12d09d9550240d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=B6=9B?= <1537080775@qq.com> Date: Tue, 28 May 2024 15:23:15 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat(muzili20240528):=20=E4=BF=AE=E6=94=B9c?= =?UTF-8?q?olumnPermission=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在权限列表设置列表不可见,默认不显示,但在前端还是可以通过列控制选择出来, 因此在columnPermission函数中增加了列表可见判断条件:“如果列表可见的false,则禁止在列设置中选择” --- web/src/utils/columnPermission.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/src/utils/columnPermission.ts b/web/src/utils/columnPermission.ts index e35030d..4a9d9f1 100644 --- a/web/src/utils/columnPermission.ts +++ b/web/src/utils/columnPermission.ts @@ -47,6 +47,8 @@ export const handleColumnPermission = async (func: Function, crudOptions: any,ex continue } else if(item.field_name === col) { columns[col].column.show = item['is_query'] + // 如果列表不可见,则禁止在列设置中选择 + if(!item['is_query'])columns[col].column.columnSetDisabled = true columns[col].addForm = { show: item['is_create'] } From 00fc9cdad415c3ddddac55401e333c2e5c45d68a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E9=A3=8E=E5=8D=97=E9=87=8C?= Date: Fri, 31 May 2024 04:15:05 +0000 Subject: [PATCH 5/7] =?UTF-8?q?=E5=88=97=E5=AD=97=E6=AE=B5=E6=9D=83?= =?UTF-8?q?=E9=99=90=E2=86=92=E8=87=AA=E5=8A=A8=E5=8C=B9=E9=85=8D=E2=86=92?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0model=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 北风南里 --- .../menu/components/MenuFieldCom/index.vue | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/web/src/views/system/menu/components/MenuFieldCom/index.vue b/web/src/views/system/menu/components/MenuFieldCom/index.vue index ec3822b..435ce3d 100644 --- a/web/src/views/system/menu/components/MenuFieldCom/index.vue +++ b/web/src/views/system/menu/components/MenuFieldCom/index.vue @@ -4,8 +4,15 @@
已选择:{{ props.model }}
+ +
-
+ +
{{ item.app + '--' + item.title + '(' + item.key + ')' }} @@ -29,7 +36,7 @@