uni-admin使用及菜单显示不全的原因

656 阅读5分钟

uni-admin 框架,是基于 uni-app 和 uniCloud 的应用后台管理的开源框架。这篇笔记主要记录uni-admin的使用及菜单显示不全的原因、解决方法,为什么要共用云服务空间,关联项目。

  1. uni-admin使用步骤
  2. uni-admin左侧菜单显示不全的原因及解决方法
  3. uni-admin关联项目
    • uni-admin如何关联项目
    • 为什么uni-admin要与前端项目共用一个云服务空间
    • uni-admin与前端项目共用一个云服务空间后为什么要关联

image.png

使用步骤
  1. 去插件市场下载插件, 选择下载插件并导入HBuilderX
  2. 这时HBuilderX 提示新建uni-app项目,选择项目对应的云服务商,点击创建
  3. 这时HbuilderX 提示给项目绑定云服务空间,选择相应的云服务空间,点击下一步,进入部署云资源,
  4. 将初始化云函数、云数据库、DBschema都勾选,然后点击开始部署,
  5. 注册一个管理员账号,登录,进入主页

去插件市场下载插件, 选择下载插件并导入HBuilderX image.png

这时HBuilderX 提示新建uni-app项目,选择项目对应的云服务商(我用的是阿里云),点击创建 image.png

这时HbuilderX 提示给项目绑定云服务空间,选择相应的云服务空间,点击下一步,进入部署云资源, image.png

将初始化云函数、云数据库、DBschema都勾选,然后点击开始部署 image.png

image.png

如果一切顺利,应该没有报错,最后提示初始化完成,上传都成功

image.png

如果注册成功过,是不会出现注册管理员按钮的 image.png

注册管理员 image.png

成功界面 image.png

显示不全的原因

如下图,左侧菜单没有首页,系统管理

image.png

原因: 数据表没有初始化,或者数据初始化过程出现问题,导致无法查询opendb-admin-menus表,

这是没有正确初始化数据库的情况

image.png

image.png

根据报错提示,执行初始化云数据库上传,;如果还不行,建议把项目删掉重新走一次流程,确保数据表都初始化并上传成功 image.png

为什么一定要初始化数据库

我们看下左侧菜单组件, 位于windows/components/leftWindow.vue

<template>
	<scroll-view class="sidebar" scroll-y="true">
		<uni-data-menu ref="menu" :value="currentMenu" :staticMenu="staticMenu" collection="opendb-admin-menus"
			:page-size="500" :field="field" where="enable==true" orderby="sort asc" active-text-color="#409eff" @select="select">
		</uni-data-menu>
	</scroll-view>
</template>

image.png

请求的是collection="opendb-admin-menus"这个表的数据,所以一定要把表初始化

请求左侧菜单组件数据的接口,看初始化成功后的接口截图,返回的是我们想要的左侧菜单数据 image.png

关联项目

这里我们分为3小点介绍下

  1. 如何关联项目
  2. 为什么要用同一个云服务空间
  3. 用了同一个云服务空间为什么要关联项目
如何关联项目

在项目根目录blog_admin上右键,选择关联的项目,

image.png

关联了之后,管理admin项目uniCloud文件夹就不可以展开了,点击就会跳转到管理项目 image.png

关联了之后,原先的管理员就无法登录了,而且多了提示注册管理员

我这里提示资源耗尽(resource exhausted),因为我用的是免费版,每天读的资源使用量是500RU image.png

需要进入云控制台,先删掉原来的管理员,才可以注册 (我这里提示resource exhausted是我的资源原因,正常删掉管理员就可以重新注册了) image.png

image.png

第二天重新分配资源,重新试下,可以正常注册登录

image.png

昨天提示resource exhausted, 因为资源用完了 image.png

也可以先把云数据库关联其他项目的云空间,再注册管理员,这样就不用后期删管理员,重新注册

为什么要用同一个云服务空间

我们这个管理后台是作为博客项目的管理后台,然后我们和博客项目用的是同一个云空间(云数据库、云函数等等),为什么要用同一个云空间呢

1. 数据一致性与共享

关联博客项目的云空间后,uni-admin 可以直接访问和管理该项目的数据。例如,用户数据、文章信息、日志等,都存储在同一个云空间中。这样,后台管理系统和前台应用可以共享一套数据源,避免数据同步问题,提高一致性。

2. 统一权限与身份管理

共享云空间使 uni-admin 能够管理 博客项目的用户权限和身份验证。无论是在前端用户的权限管理,还是后台的管理员配置,共用云空间可以集中管理用户和角色,使权限控制更加方便和一致。(前后台项目用的都是uni-id-pages, 数据表名称都相同,所以可以轻易的集中管理,分配角色、权限等操作)

3. 简化开发与运维

通过共享同一个云空间,开发人员可以使用同样的云函数、数据库集合和存储资源,无需为不同项目维护多套云资源,降低了运维成本和复杂性。此外,云资源的配置和维护可以集中在一个地方进行管理。

如果不用同一个云空间,我们要不停的去切换云空间,多写一套代码逻辑查询另一个云空间数据,然后还要把2个云空间数据关联起来, 要么就把前台项目的数据同步到后台,产生数据冗余

为什么要关联项目

因为都操作的是同一个服务空间,那么admin项目和前台项目(被admin项目)可能建立相同的云函数,就会产生命名冲突,不好维护