mirror of
https://github.com/jekip/naive-ui-admin.git
synced 2026-02-06 06:22:27 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a469f1aca | ||
|
|
3bd0d28e05 | ||
|
|
447bdcc355 | ||
|
|
8bf849b803 |
54
README.md
54
README.md
@@ -1,6 +1,6 @@
|
||||
## 🚀 简介
|
||||
|
||||
`Naive Ui Admin` 是一款 完全免费 且可商用的中后台解决方案,基于 🌟 `Vue3.0` 🌟、🚀 `Vite` 🚀、✨ [Naive UI](https://www.naiveui.com/) ✨ 和 🎉 `TypeScript` 🎉。
|
||||
`Naive Ui Admin` 是一款 完全免费 且可商用的中后台解决方案,基于 🌟 `Vue3.x` 🌟、🚀 `Vite` 🚀、✨ [Naive UI](https://www.naiveui.com/) ✨ 和 🎉 `TypeScript` 🎉。
|
||||
它融合了最新的前端技术栈,提炼了典型的业务模型和页面,包括二次封装组件、动态菜单、权限校验等功能,助力快速搭建企业级中后台项目
|
||||
|
||||
## 🌈 特性
|
||||
@@ -15,47 +15,42 @@
|
||||
|
||||
账号:admin,密码:123456(随意)
|
||||
|
||||
# 🚀 Naive Admin - 开箱即用的企业级前后端框架
|
||||
|
||||
> **✨ 多生态支持 · 多租户就绪 · 四年持续迭代**
|
||||
> 前端自由切换 Vue3 UI 库 | 后端支持 Java/PHP 单体与多租户架构
|
||||
> [官网直达](https://www.naiveadmin.com) | [更新日志](https://www.yuque.com/u5825/zaqu0e)
|
||||
## 🚀 Naive Admin - 开箱即用的企业级前后端框架 `商业版本`
|
||||
|
||||
> **✨ 多版本选择 · 四年持续迭代**
|
||||
> 配套前后端支持 Java/Php 语言,支持单体和微服务多租户架构
|
||||
> [详情→官网](https://www.naiveadmin.com) | [更新日志](https://www.yuque.com/u5825/zaqu0e)
|
||||
|
||||
---
|
||||
|
||||
## 🔥 为什么选择 NaiveAdmin 商业版?
|
||||
|
||||
`⏱️ 节省200+人日` · `🏆 千人+开发者信任` · `🚀 四年持续迭代`
|
||||
|
||||
> **"告别重复造轮子!"**
|
||||
> 全系列版本提供 **30+开箱即用组件** 与 **企业级业务模块**,让您专注核心业务创新!
|
||||
- **省时间**:内置丰富扩展组件与业务模板,不写一行样板代码即可开始业务开发
|
||||
- **经实战**:已落地电网、跨境 ERP、SaaS 等 30+ 场景
|
||||
- **可扩展**:插件式菜单 / 按钮 / 数据权限,新增业务模块「0 侵入」
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ 纯前端版本
|
||||
|
||||
| 版本 | 技术栈 | 设计特点 | 配套后端 | 预览 |
|
||||
|----------------|--------|------------------|----------------------------|----------------------------------------|
|
||||
| **Naive UI Plus** | Vu3、Ts | 全新设计语言 · 50+新增特性 | 支持Java/PHP | [立即体验](https://plus.naiveadmin.com) |
|
||||
| **Naive UI** | Vu3、Ts | 经典设计语言 · 30+新增特性 | 支持Java/PHP | [立即体验](https://pro.naiveadmin.com) |
|
||||
| **Arco Design** | Vu3、Ts | 智能设计体系 · 轻盈交互 | 支持Java | [立即体验](https://arco.naiveadmin.com) |
|
||||
| **Element Plus** | Vu3、Ts | 设计师友好 · 直观易用 | 支持Java | [立即体验](https://element.naiveadmin.com) |
|
||||
| **Antd Vue** | Vu3、Ts | 企业级设计规范 · 完备组件 | 否 | [立即体验](https://antd.naiveadmin.com) |
|
||||
| 版本 | 技术栈 | 配套后端 | 预览地址 |
|
||||
|-----|-------|---------|-------------|
|
||||
| **🆕 Naive UI Max** | Vu3 + Ts + NaiveUI | 否 | [https://max.naiveadmin.com](https://max.naiveadmin.com) |
|
||||
| **Naive UI Plus** | Vu3 + Ts + NaiveUI | 支持Java/PHP | [https://plus.naiveadmin.com](https://plus.naiveadmin.com) |
|
||||
|
||||
## 🔌 前后端版本
|
||||
|
||||
| 版本 | 技术栈 | 设计特点 | 预览 |
|
||||
|------|--------|----------|--------------------------------------------------------------|
|
||||
| **Naive UI Plus** | Vu3、Ts | 全新设计语言 · 50+新增特性 | [立即体验](https://plus-full.naiveadmin.com) |
|
||||
| **Arco Design** | Vu3、Ts | 智能设计体系 · 轻盈交互 |[立即体验](https://arco-full.naiveadmin.com) |
|
||||
| **Element Plus** | Vu3、Ts | 设计师友好 · 直观易用 | [立即体验](https://element-full.naiveadmin.com) |
|
||||
| 版本 | 技术栈 | 预览地址 |
|
||||
|------|------------------|--------------------------------------------------------------|
|
||||
| **🆕Naive UI Max** | Vu3 + Ts + NaiveUI | [https://max-full.naiveadmin.com](https://max-full.naiveadmin.com) |
|
||||
| **Naive UI Plus** | Vu3 + Ts + NaiveUI | [https://plus-full.naiveadmin.com](https://plus-full.naiveadmin.com) |
|
||||
|
||||
## 🏢 多租户版本
|
||||
|
||||
| 版本 | 技术栈 | 设计特点 | 适用场景 | 预览 |
|
||||
|--------------|---------------|-----------------------------|----------------|-------------------------------------------|
|
||||
| **Vue3** | Vu3、Ts、Java | 百家落地验证架构,免去试错成本,专为 Saas 化系统设计 | 构建企业级 Saas 化系统 | [立即体验](https://tenant.naiveadmin.com) |
|
||||
| **React** | React、Ts、Java | 百家落地验证架构,免去试错成本,专为 Saas 化系统设计 | 构建企业级 Saas 化系统 | [立即体验](https://compose.warden.vip) |
|
||||
| 版本 | 技术栈 | 适用场景 | 预览地址 |
|
||||
|-----------------------------|-----------------------------|----------------|-------------------------------------------|
|
||||
| **Vue3** | Vu3 + Ts + NaiveUI + Java | 构建企业级 Saas 化系统 | [https://tenant.naiveadmin.com](https://tenant.naiveadmin.com) |
|
||||
| **React** | React + Ts + Ant + Java | 构建企业级 Saas 化系统 | [https://compose.warden.vip](https://compose.warden.vip) |
|
||||
|
||||
|
||||
## 📚 文档
|
||||
@@ -153,14 +148,13 @@ pnpm build
|
||||
|
||||
## 💬 交流
|
||||
|
||||
有关 `Naive Ui Admin` 的使用或其他问题,欢迎加入我们的讨论群组或提出问题。
|
||||
有关 `Naive Ui Admin` 的使用或其他问题,可以加入讨论群交流问题
|
||||
|
||||
QQ1群:328347666 (已满)
|
||||
QQ2群:741353560
|
||||
|
||||
## 💖 赞助
|
||||
#### 如果您觉得这个项目对您有帮助,可以通过下面的链接为作者买一杯果汁,表示感谢!。
|
||||
|
||||

|
||||
#### 如果项目有帮到你,不妨请作者喝一杯咖啡吧!
|
||||
|
||||

|
||||
[Paypal Me](https://www.paypal.com/paypalme/majunping)
|
||||
|
||||
18
package.json
18
package.json
@@ -32,15 +32,15 @@
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"alova": "^3.3.4",
|
||||
"date-fns": "^2.30.0",
|
||||
"dayjs": "^1.11.13",
|
||||
"dayjs": "^1.11.18",
|
||||
"echarts": "^5.6.0",
|
||||
"element-resize-detector": "^1.2.4",
|
||||
"lodash-es": "^4.17.21",
|
||||
"mockjs": "^1.1.0",
|
||||
"naive-ui": "^2.42.0",
|
||||
"naive-ui": "^2.43.1",
|
||||
"pinia": "^2.3.1",
|
||||
"qs": "^6.14.0",
|
||||
"vue": "^3.5.18",
|
||||
"vue": "^3.5.21",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-types": "^4.2.1"
|
||||
},
|
||||
@@ -50,16 +50,16 @@
|
||||
"@faker-js/faker": "^9.9.0",
|
||||
"@types/lodash": "^4.17.20",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^18.19.122",
|
||||
"@types/node": "^18.19.126",
|
||||
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
||||
"@typescript-eslint/parser": "^5.62.0",
|
||||
"@vitejs/plugin-vue": "^3.2.0",
|
||||
"@vitejs/plugin-vue-jsx": "^2.1.1",
|
||||
"@vue/compiler-sfc": "^3.5.18",
|
||||
"@vue/compiler-sfc": "^3.5.21",
|
||||
"@vue/eslint-config-typescript": "^11.0.3",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"commitizen": "^4.3.1",
|
||||
"core-js": "^3.45.0",
|
||||
"core-js": "^3.45.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"dotenv": "^16.6.1",
|
||||
"eslint": "^8.57.1",
|
||||
@@ -72,7 +72,7 @@
|
||||
"gh-pages": "^4.0.0",
|
||||
"husky": "^8.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"less": "^4.4.0",
|
||||
"less": "^4.4.1",
|
||||
"less-loader": "^11.1.4",
|
||||
"lint-staged": "^13.3.0",
|
||||
"postcss": "^8.5.6",
|
||||
@@ -87,12 +87,12 @@
|
||||
"tailwindcss": "^3.4.17",
|
||||
"typescript": "^4.9.5",
|
||||
"unplugin-vue-components": "^0.22.12",
|
||||
"vite": "^5.4.19",
|
||||
"vite": "^5.4.20",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-html": "^3.2.2",
|
||||
"vite-plugin-style-import": "^2.0.0",
|
||||
"vue-demi": "^0.13.11",
|
||||
"vue-draggable-next": "^2.2.1",
|
||||
"vue-draggable-next": "^2.3.0",
|
||||
"vue-eslint-parser": "^9.4.3",
|
||||
"vuedraggable": "^4.1.0"
|
||||
},
|
||||
|
||||
1447
pnpm-lock.yaml
generated
1447
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,64 +1,70 @@
|
||||
<template>
|
||||
<n-card :bordered="false">
|
||||
<BasicForm @register="register" @submit="handleSubmit" @reset="handleReset">
|
||||
<template #statusSlot="{ model, field }">
|
||||
<n-input v-model:value="model[field]" />
|
||||
</template>
|
||||
</BasicForm>
|
||||
</n-card>
|
||||
<n-card :bordered="false" class="mt-3">
|
||||
<BasicTable
|
||||
:columns="columns"
|
||||
:request="loadDataTable"
|
||||
:row-key="(row:ListData) => row.id"
|
||||
ref="actionRef"
|
||||
:actionColumn="actionColumn"
|
||||
@update:checked-row-keys="onCheckedRow"
|
||||
:scroll-x="1090"
|
||||
:striped="true"
|
||||
>
|
||||
<template #tableTitle>
|
||||
<n-button type="primary" @click="addTable">
|
||||
<template #icon>
|
||||
<n-icon>
|
||||
<PlusOutlined />
|
||||
</n-icon>
|
||||
</template>
|
||||
新建
|
||||
</n-button>
|
||||
</template>
|
||||
|
||||
<template #toolbar> </template>
|
||||
</BasicTable>
|
||||
|
||||
<n-modal v-model:show="showModal" :show-icon="false" preset="dialog" title="新建">
|
||||
<n-form
|
||||
:model="formParams"
|
||||
:rules="rules"
|
||||
ref="formRef"
|
||||
label-placement="left"
|
||||
:label-width="80"
|
||||
class="py-4"
|
||||
<n-flex vertical>
|
||||
<n-card :bordered="false">
|
||||
<BasicForm @register="register" @submit="handleSubmit" @reset="handleReset">
|
||||
<template #statusSlot="{ model, field }">
|
||||
<n-input v-model:value="model[field]" />
|
||||
</template>
|
||||
</BasicForm>
|
||||
</n-card>
|
||||
<n-card :bordered="false">
|
||||
<BasicTable
|
||||
:columns="columns"
|
||||
:request="loadDataTable"
|
||||
:row-key="(row:ListData) => row.id"
|
||||
ref="actionRef"
|
||||
:actionColumn="actionColumn"
|
||||
@update:checked-row-keys="onCheckedRow"
|
||||
:scroll-x="1090"
|
||||
:striped="true"
|
||||
>
|
||||
<n-form-item label="名称" path="name">
|
||||
<n-input placeholder="请输入名称" v-model:value="formParams.name" />
|
||||
</n-form-item>
|
||||
<n-form-item label="地址" path="address">
|
||||
<n-input type="textarea" placeholder="请输入地址" v-model:value="formParams.address" />
|
||||
</n-form-item>
|
||||
<n-form-item label="日期" path="date">
|
||||
<n-date-picker type="datetime" placeholder="请选择日期" v-model:value="formParams.date" />
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
<template #tableTitle>
|
||||
<n-button type="primary" @click="addTable">
|
||||
<template #icon>
|
||||
<n-icon>
|
||||
<PlusOutlined />
|
||||
</n-icon>
|
||||
</template>
|
||||
新建
|
||||
</n-button>
|
||||
</template>
|
||||
|
||||
<template #action>
|
||||
<n-space>
|
||||
<n-button @click="() => (showModal = false)">取消</n-button>
|
||||
<n-button type="info" :loading="formBtnLoading" @click="confirmForm">确定</n-button>
|
||||
</n-space>
|
||||
</template>
|
||||
</n-modal>
|
||||
</n-card>
|
||||
<template #toolbar> </template>
|
||||
</BasicTable>
|
||||
|
||||
<n-modal v-model:show="showModal" :show-icon="false" preset="dialog" title="新建">
|
||||
<n-form
|
||||
:model="formParams"
|
||||
:rules="rules"
|
||||
ref="formRef"
|
||||
label-placement="left"
|
||||
:label-width="80"
|
||||
class="py-4"
|
||||
>
|
||||
<n-form-item label="名称" path="name">
|
||||
<n-input placeholder="请输入名称" v-model:value="formParams.name" />
|
||||
</n-form-item>
|
||||
<n-form-item label="地址" path="address">
|
||||
<n-input type="textarea" placeholder="请输入地址" v-model:value="formParams.address" />
|
||||
</n-form-item>
|
||||
<n-form-item label="日期" path="date">
|
||||
<n-date-picker
|
||||
type="datetime"
|
||||
placeholder="请选择日期"
|
||||
v-model:value="formParams.date"
|
||||
/>
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
|
||||
<template #action>
|
||||
<n-space>
|
||||
<n-button @click="() => (showModal = false)">取消</n-button>
|
||||
<n-button type="info" :loading="formBtnLoading" @click="confirmForm">确定</n-button>
|
||||
</n-space>
|
||||
</template>
|
||||
</n-modal>
|
||||
</n-card>
|
||||
</n-flex>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
Reference in New Issue
Block a user