【vibe coding系列】0行代码编写,使用Go+Vue3+Flutter从0到1开发小绿书(二)

78 阅读4分钟

开始设计前端admin后台管理系统

在当前根目录执行npx create-vite@latest,创建admin的前端项目模版,选择vue3+ts

根据这个代码,分阶段实现admin,先实现登录成功的需求,然后请求权限和菜单,退出登录,不需要渲染菜单,ui框架使用arco,css使用less,不要tw,网络请求封装axios,使用env做变量控制,前端端口改成8091

浏览器访问后,点击F12按钮,发现报错,粘贴控制台的报错

Uncaught SyntaxError: The requested module '/node_modules/.vite/deps/vue-router.js?v=9d092c5b' does not provide an export named 'RouteRecordRaw' (at index.ts:1:42) inject.js:2

跑起来了,也能登录成功了。

继续进行中,后续~

可以 没问题了,按照最新的管理员的菜单,渲染出来登陆后的页面

继续接入"meta": {"component":的文件,按照前端规范你写好页面,我来手动更改对应的后端的 "component": 的对应的文件地址

错了错了 不要按照现在的配 你新的前端架构是views,你按照你的设计来着,我按照你的设计,我去更改数据库的文件

可以移除pages的文件夹吧 没必要套一层吧

我已经改了 你还没有按照动态meta.components渲染

为了简化配置长度,我可以只写views/management/rbac/PermissionManagement吗 后续react也可以公用这一套逻辑

至此 动态菜单渲染搞定~

前端刷新页面 应该根据userId请求getUserMenusTree 而不是getRoleMenus,因为一个人好多角色,后端接口已经做了聚合了,直接请求getUserMenusTree

修复bug 刷新请求了两次tree接口

更新后端的用户管理接口 我希望也要有增删查改,支持管理员手动新增用户

[GIN-debug] POST /api/v1/users --> alice/api/handler.(*UserHandler).CreateUser-fm (6 handlers)

[GIN-debug] GET /api/v1/users --> alice/api/handler.(*UserHandler).ListUsers-fm (6 handlers)

[GIN-debug] GET /api/v1/users/:id --> alice/api/handler.(*UserHandler).GetUser-fm (6 handlers)

panic: ':id' in new path '/api/v1/users/:id' conflicts with existing wildcard ':user_id' in existing prefix '/api/v1/users/:user_id'

goroutine 1 [running]:

github.com/gin-gonic/gin.(*node).addRoute(0x104a9fc39?, {0x1400003aab0, 0x11}, {0x14000570c30, 0x6, 0x6})

/Users/yusenlin/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/tree.go:247 +0x92c

github.com/gin-gonic/gin.(*Engine).addRoute(0x140001bd6c0, {0x104a9fc39, 0x3}, {0x1400003aab0, 0x11}, {0x14000570c30, 0x6, 0x6})

/Users/yusenlin/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:335 +0x200

github.com/gin-gonic/gin.(*RouterGroup).handle(0x14000394dc0, {0x104a9fc39, 0x3}, {0x104aa0751?, 0x0?}, {0x140004f7570, 0x2, 0x1042f2cfc?})

/Users/yusenlin/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/routergroup.go:89 +0x11c

github.com/gin-gonic/gin.(*RouterGroup).GET(...)

/Users/yusenlin/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/routergroup.go:117

修好了

下一步,开始第一个table的封装设计~待更新

根据菜单的增删差改接口 实现前端的菜单管理页面,封装arco的table,使用protable命名,封装思想是把form和table一起封装,根据前端的接口,column,动态渲染table和form,以及编辑弹窗,删除

[ProTable.vue:122 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'hideInTable')

at ProTable.vue:122:123

at Proxy.renderFnWithContext (runtime-core.esm-bundler.js:692:13)

at Proxy.render2 (table.js:1461:67)

at Proxy.render (table.js:1508:17)

at renderComponentRoot (runtime-core.esm-bundler.js:6566:16)

at ReactiveEffect.componentUpdateFn [as fn] (runtime-core.esm-bundler.js:5353:46)

at ReactiveEffect.run (reactivity.esm-bundler.js:237:19)

at setupRenderEffect (runtime-core.esm-bundler.js:5488:5)

at mountComponent (runtime-core.esm-bundler.js:5262:7)

at processComponent (runtime-core.esm-bundler.js:5214:9)](url)

修复bug 页面空白

没修好,继续粘贴bug

ProTable.vue:123 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'hideInTable') at ProTable.vue:123:121

写好了 有点丑 开始美化

优化登录页面的样式 背景希望是多色弥散叠加高斯模糊的效果,多色弥散的背景可以动起来,输入框和登录按钮垂直剧中

image.png

优化admin的布局代码 引入header并拆分组件,引入面包屑导航 侧边栏收起放在头部 隐藏默认的侧边栏的收起 icon全部使用icon-sets.iconify.design/solar/?suff…

table的封装增加一个刷新按钮 新增按钮 按钮不应该放在搜索区域 封装的样式逻辑参考 antd的protable组件

收起的时候 只显示icon logo区域如果没有logo 隐藏titile

修复page-body内容超过页面高度时,滑动的时候 左侧的侧边栏和顶部的header都会跟随滚动的bug

image.png

下一步开始app的开发