首页 > 其他分享 >03.前后端分离中台框架 zhontai 项目代码生成器的使用

03.前后端分离中台框架 zhontai 项目代码生成器的使用

时间:2023-08-22 19:34:27浏览次数:52  
标签:代码生成 03 admin dev 生成 视图 test zhontai

zhontai 项目

基于 .Net7.x + Vue 等技术的前后端分离后台权限管理系统,想你所想的开发理念,希望减少工作量,帮助大家实现快速开发

后端地址:https://github.com/zhontai/Admin.Core
前端地址:https://github.com/zhontai/admin.ui.plus

本文主要介绍使用第三方的可视化代码生成器生成前后台代码

后端生成

  • 代码仓库 https://github.com/share36/Admin.Core.Dev
  • 在 ZhonTai.Host 添加对 ZhonTai.Admin.Dev 的项目引用
  • 修改 ZhonTai.Host 项目 Config\appconfig.json 配置
    • assemblyNames:[... "ZhonTai.Admin.Dev" ]
    • swagger节点projects增加项 [...{"name":"代码生成","code":"dev","version":"v0.0.1","description":""}]
  • 已经在开发环境对CodeGenService忽略权限,前端直接显示代码生成不需要加到数据库中
    #if DEBUG
    [AllowAnonymous]
    #endif
    public partial class CodeGenService{}
    
  • 后端生成器配置图片说明
    后端生成器配置一图说明

前端生成

  • 代码仓库 https://github.com/share36/admin.ui.plus.dev

  • 复制 gen/gen-dev-api.js 到项目,添加package.json命令:"gen:dev:api": "node ./gen/gen-dev-api",执行npm run gen:dev:api生成dev模块接口定义

  • 将src/views/dev添加到项目src/views文件夹

  • 修改/src/router/route.ts,将生成器节点添加到 '/example' 即可

    [
          {
            path: '/dev',
            name: 'dev',
            redirect: '/dev/codegen',
            meta: {
              title: '生成器',
              isLink: '',
              isHide: false,
              isKeepAlive: true,
              isAffix: false,
              isIframe: false,
              roles: ['admin'],
              icon: 'iconfont icon-zujian',
            },
            children: [
              {
                path: '/dev/codegen',
                name: '/dev/codegen',
                component: () => import('/@/views/dev/codegen/index.vue'),
                meta: {
                  title: '代码生成',
                  isLink: '',
                  isHide: false,
                  isKeepAlive: true,
                  isAffix: false,
                  isIframe: false,
                  roles: ['admin'],
                  icon: 'iconfont icon-zujian',
                },
              }]
          },
          //...{path: '/example',...}
    ]
    
  • 配置api+模型生成
    生成器配置

  • 配置路由
    配置路由

因为框架有些更新改动,未做适配会存在一些报错,解决即可,已经提PR了,可以根据需要查看pr或我的主页获取代码

生成器使用

配置就绪,项目就可以丝滑的运行起来了

  • 可以直接创建数据表,再生成代码,亦可以根据已有的数据库表来生成

  • 创建完成后,在列表右侧下拉按钮 生成代码 即可

  • 生成菜单数据的前置操作,正常需要手动添加视图及权限分组,再生成菜单

    • 新建视图
      • 视图名称:代码测试
      • 上级视图:平台管理
    • 新建权限分组
      • 上级分组:平台管理
      • 名称:代码测试
      • 路由地址:/platform/test
      • 重定向:/platform/test/index
  • 生成菜单

    • 点击生成菜单数据
    • 将会在[视图管理]页面下生成
      • 测试管理 视图命名:admin/test 视图地址:admin/test/index
      • 这里生成的是会加载到vue-router,地址如果有下划线,横杠等特殊符号需要自己修改
    • 将会在[权限管理]页生成
      测试管理 菜单 路由地址:/admin/test 视图地址:admin/test/index  路由命名:admin/test
      这个测试页因为是生成到平台管理模块所以才需要修改,因为平台模块的key是platform,
      打开后左侧导航会无法正确定位,所以需要修改下生成的权限菜单项
      将路由地址修改为:/platform/test/index
      将路由名称修改为:platform/test/index
  • 生成结果示例
    生成结果示例

生成结果示例

结语

至此,对于zhontai的框架使用产出了三篇文章,框架上手还是比较简单,有了代码生成器也可以快速开发;目前得知作者也在弄微服务的框架,表示期待,默默点赞,觉得有用的也可以去zhontai/Admin.Core点个Star,希望后来者可以少踩一些坑吧。
目前准备使用框架来整个管理系统,等我边踩坑边记录吧,后面有空再分享。

标签:代码生成,03,admin,dev,生成,视图,test,zhontai
From: https://www.cnblogs.com/morang/p/zhontai_admin_core_book_03.html

相关文章

  • P3403 跳楼机
    题目大意有四个操作,上升\(x\),\(y\),\(z\)层楼,和回到第一层楼,问从第一层楼开始最多可到达多少层楼。思路因为交换操作顺序不会改变结果,所以我们可以考虑只进行操作\(2,3\),我们可以分别算出楼层模\(x\)为\(i\)能达到的最小楼层,那么把这些楼层加上若干个\(x\)都是可达到的......
  • The body might complete normally, causing 'null' to be returned, but the return
    你收到的警告信息表明onRefresh回调函数的代码体可能会在没有返回值的情况下正常完成,但是onRefresh的返回类型是Future<void>,这是一个不可为空的类型。要解决这个警告,你可以在onRefresh回调函数中明确返回一个Future<void>。你可以使用async关键字,并返回Future.value()......
  • CFgym103260K-Rectangle Painting
    前言断续地调了一天一夜,终于做出来了!题目链接-RectanglePainting大概就是:给\(n\)个集合\(S_i\),两种操作,1{[l,r],x}lr向\(S_l\)到\(S_r\)插入\(x\)2lr询问\(\max\limits_{i=l}^r\{\text{mex}(S_i)\}\)。但是强制在线!\(1\len,l,r\le2\times10^5,1\le......
  • AGC032 A-D题解
    A最后一次插入的数的值与位置一定相同考虑倒着做每次从左往右扫一遍当遇到a[i]==i时将此数删除并跳出B当n为5时构造出的图如下(图形编辑器(csacademy.com))那么我们猜想当n为奇数时将n与其他点连边i与除了n-i的其他点连边证明:n的邻接点的编号之和为(n......
  • \1146 - Table 'performance_schema.session_variables' doesn't exist
    Mysql无法正常连接: 错误原因:NavicatPremium:\1146-Table'performance_schema.session_variables'doesn'texist解决办法[root@zookeeper1usr]#mysql_upgrade-uroot-p--forceEnterpassword:   错误原因:未设置远程连接:grantallprivilegeson*.*to'ro......
  • 0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) SQL注入+sudo提权
    0×03Vulnhub靶机渗透总结之KIOPTRIX:LEVEL1.2(#3)......
  • Halcon 深度学习的例子错误set_deep_ocr_param (DeepOcrHandle, 'device', DLDevice)
    set_deep_ocr_param(DeepOcrHandle,'device',DLDevice)这句话报错设置的设备不对。解决办法是:注释掉这句代码在第27行代码:create_deep_ocr([],[],DeepOcrHandle)下面加上这句:set_suitable_device_in_ocr_handle(DeepOcrHandle)就可以解决问题。......
  • iwebsec-xss 03 DOM型xss
    01、题目分析DOM型比较与存储型不一样的是,存储型是将js代码存放在数据库中,而dom型是在客户端插入恶意代码,不涉及后端02、xss查看前端代码可以发现,有一个domxss函数,这段代码的作用是获取id为"input"的元素的值,并将其设置为id为"output"的元素的innerHTML属性所以直接在输入框......
  • 采用增强型 HotRod™封装 LMQ66420MC3RXBRQ1、LMR36503MSC5RPERQ1 汽车类降压转换器
    一、LMQ66420MC3RXBRQ1器件介绍:LMQ66420-Q1是具有集成旁路和自举电容器的业界超小型36V、2A同步直流/直流降压转换器,采用增强型HotRod™QFN封装。该易于使用的转换器支持1V(3.3V)至36V的宽输入电压范围(启动后或运行后),并支持高达42V的瞬态电压。该器件专为满足常开型汽车应......
  • 箱讯【货运险】上线!费率低至0.03%,投保即返现金红包
    相比传统线下高达万分之六、万分之八、千分之一的货运保险费率,【箱讯货运险】在线投保费率仅需万分之三!线下货运险投保流程复杂,手续繁琐,进度缓慢,耗费太多时间和精力!另外,费率高,还容易出现保单延迟,无法赔付的情况。箱讯AnyCase【货运保险】在线投保服务正式上线啦!携手四大知名保险公......