Open-source project
jeecgboot/JeecgUniapp avatar
jeecgboot/JeecgUniapp

JeecgUniapp for Building a JeecgBoot Mobile Client

JeecgBoot配套APP移动解决方案,采用uniapp架构!一份代码多终端适配,同时支持APP、小程序、H5、鸿蒙!实现了与JeecgBoot平台完美对接,目前已经实现登录、用户信息、通讯录、公告、移动首页、九宫格等基础功能。

1,638 stars802 forksVueApache-2.0

At a glance

What is it?
JeecgUniapp is a Vue 3 and uni-app mobile frontend for JeecgBoot, aimed at teams that need one client codebase for H5, native apps, mini programs, and HarmonyOS. It includes authentication and token handling, organizational features, messaging, Online forms, and mobile dashboards, but its close coupling to the JeecgBoot backend makes that relationship the first adoption constraint.
Who is it for?
JeecgUniapp is a practical starting point for teams already using JeecgBoot and needing a feature-rich mobile client across several target platforms. It is less suitable for an unrelated backend, a standalone offline application, or teams unable to maintain Vue, uni-app, and platform-specific integrations.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 44 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

JeecgUniapp's Place in a JeecgBoot Deployment

JeecgUniapp solves the mobile-client side of a JeecgBoot deployment. The repository describes it as the companion app framework for the JeecgBoot low-code platform, not as a general-purpose starter with a mock backend. It is intended for frontend developers who want to connect mobile screens to existing JeecgBoot accounts, organizational data, announcements, forms, dashboards, and chat services.

The project targets H5, Android, iOS, mini programs, and HarmonyOS Next from a shared codebase. Its documented mobile features include login, user information, address books, system announcements, a mobile home page, nine-grid navigation, chat, Online forms, and dashboards. The framework layer also lists token handling, route interception, request interception, hot updates, and overwrite updates. These features make it closer to an application foundation than a UI component collection.

That focus also defines its boundary. The repository expects a JeecgBoot service at a configured API base URL. It does not present an independent authentication service, generic REST client, or offline synchronization layer. A team that only needs a lightweight web front end could end up carrying more framework and platform integration than necessary. Conversely, a team already standardized on JeecgBoot can start from conventions for login, users, departments, dictionary trees, navigation, and low-code forms rather than designing all of those concerns from scratch.

The Vue 3 Request and Application Flow

The current codebase uses uni-app with Vue 3, Vite, TypeScript, Wot-design-uni, Pinia, and UnoCSS. This stack places platform-facing page and component code inside the uni-app model, while Vite supplies the development and build toolchain. Pinia is included for application state, and the repository configuration exposes Vite plugins, page configuration, environment files, TypeScript settings, and UnoCSS configuration.

The clearest documented data flow begins at the environment layer. `VITE_SERVER_BASEURL` points to the full JeecgBoot backend address. The framework then connects login and token mechanisms to that service. The repository description also identifies route and request interceptors, which are conventional points for enforcing access rules and normalizing authenticated requests, although the README does not document their exact execution order or error-handling policy.

Low-code functionality is part of the mobile path rather than a separate admin tool. Online forms support list display, rendered forms, and data creation or modification. Dashboards and large-screen visualizations can be presented in the mobile client. This design reduces the amount of page code needed for common JeecgBoot-generated structures, but it also ties the renderer's assumptions to the backend's metadata and service conventions. The documentation does not describe a fallback for a custom backend that implements similar screens with different response fields.

Configuring and Starting the H5 Client

The README requires Node 18 or later and pnpm 7.3 or later. The `package.json` gives the corresponding engine constraints as Node `>=18` and pnpm `>=7.30`, so using the newer minimum avoids uncertainty. A `preinstall` script invokes `npx only-allow pnpm`, which means installation through another package manager is intentionally rejected.

First, edit `env/.env.development` and replace the default backend URL. Keep the `VITE_` prefix because the configuration file states that prefixed variables are exposed for external reading. This development configuration sets logging options as well as the required backend path.

javascript
NODE_ENV = 'development';
VITE_DELETE_CONSOLE = false;
VITE_SHOW_SOURCEMAP = true;
VITE_SERVER_BASEURL = 'http://localhost:8080/jeecg-boot';

Install the project dependencies with pnpm. The repository lockfile is `pnpm-lock.yaml`, and the package metadata explicitly restricts installation to pnpm.

bash
pnpm i

Start the H5 development server with the documented command.

bash
pnpm run dev

The package script maps `dev` to `uni`. The README calls this the H5 startup path, while additional scripts target app, Android, iOS, and individual mini-program platforms. The documentation does not state the default development port or describe what successful console output looks like, so neither should be assumed. For a first real check, open the client in the environment supported by the configured `HBuilderX` or development-server workflow, then confirm that the JeecgBoot login request reaches the configured service.

Cross-Platform Build Scripts and Native Constraints

JeecgUniapp's main technical premise is shared source across platforms, not identical native packaging behavior. The package scripts distinguish H5, generic app builds, Android, iOS, and numerous mini-program targets. The README specifically adds HarmonyOS Next support to the newer Vue 3 architecture, and the repository includes `harmony-configs/`.

A representative documented app command is shown below. It builds for the app target rather than starting the H5 development server.

bash
pnpm run build:app

Other available package scripts include `dev:app`, `dev:app-android`, `dev:app-ios`, `build:app-android`, `build:app-ios`, and mini-program targets such as Weixin, Alipay, Baidu, QQ, and Toutiao. These names confirm that target selection is part of the project's command model. They do not establish that every target is equally complete for every feature.

Platform APIs can still impose separate requirements. Camera scanning, geolocation, image upload, chat, updates, and native packaging may behave differently across H5, mini-program sandboxes, and operating systems. The README lists scanning and location examples, but it does not document permission declarations, store publishing steps, signing configuration, native SDK versions, or HarmonyOS packaging requirements. The claim of multi-terminal compatibility should therefore be evaluated per delivered target rather than inferred from the shared scripts alone. A successful H5 build does not confirm iOS packaging or HarmonyOS Next deployment readiness.

Online Forms, Dashboards, and Coupling to the Backend

The most distinctive functionality is mobile access to JeecgBoot's low-code output. Online forms include list presentation, form rendering, and operations for adding or changing data. Dashboard and large-screen support is aimed at viewing those outputs in a mobile layout. For an organization that generates forms through JeecgBoot, this can remove repeated implementation of common CRUD screens.

The trade-off is integration dependence. The front end is not described as a generic renderer for arbitrary OpenAPI definitions. Instead, its form and dashboard behavior is shaped by JeecgBoot conventions. Changing the backend URL alone may not be enough if authentication responses, dictionary sources, user fields, permissions, form metadata, or attachment services differ from the expected JeecgBoot implementation. The README does not publish an adapter interface or compatibility matrix for alternate backends.

There is also a distinction between displaying a low-code screen and implementing a mobile-only workflow. The documented feature set establishes support for list, add, modify, dashboard, and visualization presentation. It does not describe offline editing, conflict resolution, background synchronization, large attachment handling, or behavior under an unavailable network. JeecgUniapp is most directly aligned with an online client backed by functioning JeecgBoot services.

Maintenance, Versioning, and Apache-2.0 Licensing

The repository is not archived, and its last push was on 2026-09-09. That is recent enough to establish current repository activity, although activity alone does not guarantee compatibility with every platform or service version.

The README names version 3.9.0 with a release date of 2026-09-09, while the release list includes `v3.0.0last` on the same date and `v3.0.0` from 2025-03-10. This naming mismatch should be checked against the project's release documentation before automation pins a tag. The `package.json` version is `3.9.0`, which gives a more direct package-level version reference than the release labels.

The package includes an `uvm` script based on `npx @dcloudio/uvm@latest` and a `uvm-rm` script that invokes `node./scripts/postupgrade.js`. Those entries indicate a path for changing uni-app versions, but the README does not provide an upgrade procedure or compatibility matrix. Upgrades can involve Node, pnpm, uni-app tooling, TypeScript, generated platform projects, and JeecgBoot services. The pnpm lockfile and explicit engine versions therefore matter when planning a reproducible environment.

The repository is identified under the Apache-2.0 license. That designation indicates the project's published license, including its notice and condition framework. Teams still need to review the actual `LICENSE` file and dependency licenses for their intended distribution, especially when packaging native or mini-program builds.

When JeecgUniapp Is the Wrong Foundation

JeecgUniapp is the wrong choice when the application has no meaningful relationship to JeecgBoot. The bundled login, organizational features, dictionary-related components, Online forms, and dashboards all reflect that relationship. A product with unrelated identity rules, data models, and navigation could spend more effort removing platform assumptions than implementing its own screens.

It is also a questionable fit for a small H5-only internal page. The repository supports H5, but its broader value comes from application packaging, cross-platform scripts, mobile navigation, native-facing examples, and low-code integration. A simpler Vue application may be easier to own when only one browser target is required.

Offline operation is another unsupported assumption. The documentation does not describe offline data storage, synchronization, or conflict handling. Nor does it establish that every Online form operation works without a persistent connection. If mobile users must complete work during network loss, that requirement needs a separate design.

A real alternative is to build the client directly with Vue 3 and the target platform's established tooling, connecting to backend APIs through a team-owned data layer. That approach avoids JeecgUniapp's JeecgBoot coupling but requires recreating login, request policies, component conventions, navigation, forms, platform builds, and update handling. JeecgUniapp is the faster choice when its conventions match; a custom client gives more control when they do not.

Editorial conclusion

JeecgUniapp is a practical starting point for teams already using JeecgBoot and needing a feature-rich mobile client across several target platforms. It is less suitable for an unrelated backend, a standalone offline application, or teams unable to maintain Vue, uni-app, and platform-specific integrations. Before adoption, verify that the required JeecgBoot services, Online form metadata, authentication contract, and target-platform build setup match the intended deployment.

Frequently asked questions

What are the system requirements for running JeecgUniapp?

The README requires Node 18 or later and pnpm 7.3 or later. The stricter values in `package.json` are Node `>=18` and pnpm `>=7.30`.

How do I configure the JeecgBoot backend URL for JeecgUniapp?

Edit `env/.env.development` and replace the default value of `VITE_SERVER_BASEURL` with the full JeecgBoot API address. The file states that exposed variables must use the `VITE_` prefix.

Which platforms can JeecgUniapp target?

The README lists H5, Android, iOS, mini programs, and HarmonyOS Next. The package scripts also provide target-specific development and build commands.

Can JeecgUniapp edit Online forms and display dashboards on mobile?

The documented feature set includes Online form lists and rendering, adding and modifying data, mobile dashboards, and large-screen display. These functions are presented as part of the JeecgBoot integration.

Does JeecgUniapp support offline editing?

The README does not document offline editing, local synchronization, or conflict resolution. Its documented low-code features are described as mobile form and dashboard capabilities without an offline mode.

Official sources

  1. jeecgboot/JeecgUniapp on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/jeecgboot-jeecguniapp.svg)](https://hysenlabs.com/projects/jeecgboot-jeecguniapp)

Was this useful?