This commit is contained in:
wangchen147 2023-11-25 17:40:50 +08:00
parent 36967076d4
commit a0c9a04155
1366 changed files with 58386 additions and 70209 deletions

4
.gitignore vendored
View File

@ -16,3 +16,7 @@ bin-release/
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties` # Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
# should NOT be excluded as they contain compiler settings and other important # should NOT be excluded as they contain compiler settings and other important
# information for Eclipse / Flash Builder. # information for Eclipse / Flash Builder.
/.idea
/upgrade
niucloud/public/.htaccess

36
README.en.md Normal file
View File

@ -0,0 +1,36 @@
# niucloud-admin
#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -1,35 +1,9 @@
![输入图片说明](https://www.niucloud.com/img/readme/%E9%A1%B6%E9%83%A8%E5%B9%BF%E5%91%8A1.jpg) ![输入图片说明](https://www.niucloud.com/img/readme/%E9%A1%B6%E9%83%A8%E5%B9%BF%E5%91%8A1.jpg)
### niucloud-admin是什么
niucloud-admin是一款快速开发通用管理后台框架前端采用最新的技术栈Vite+TypeScript+Vue3+ElementPlus最流行技术架构后台结合PHP8、Java SDK、Python等主流后端语言搭建内置集成用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、Api模块一系列开箱即用功能是一款快速可以开发企业级应用的软件系统。
### niucloud-admin采用的技术亮点
:point_up: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond:
:small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond:
<br>
如果对您有帮助,您可以点右上角 “ **Star** ” 收藏一下 ,获取第一时间更新,谢谢!
<br>
:point_up: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond:
:small_blue_diamond: :small_orange_diamond: :small_blue_diamond: :small_blue_diamond: :small_orange_diamond: :small_blue_diamond:
<br>
### niucloud-admin介绍
niucloud-admin是一款快速开发SaaS通用管理系统后台框架前端采用最新的技术栈Vite+TypeScript+Vue3+ElementPlus最流行技术架构后台结合PHP8、Java SDK、Python等主流后端语言搭建内置集成Saas多站点、多租户套餐、用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、支付宝小程序、Api模块一系列开箱即用功能是一款快速可以开发企业级应用的软件系统。
### 产品特性说明
1.niucloud-admin 软件开发框架内置各种基础功能可大量节省SaaS系统开发周期快速完成交付。
2.Saas架构底层设计支持单端模式开发部署支持Saas多站点多用户多租户模式研发支持无限账号无需重复部署安装高效管理多个用户多个应用。
3.插件设计的管理机制,支持第三方开发者参与开发各种功能插件,独特的软件插件架构设计,支持多插件并存,即便二次开发之后,也不会影响与主框架同步无缝升级。
4.内置集成Saas多站点、多租户套餐、用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、支付宝小程序、Api模块一系列开箱即用功能是一款快速可以开发企业级应用的软件系统。
5.框架支持在线更新,可统一管理主框架及各种插件的在线安装,在线更新。
6.niucloud-admin是一款真正的二次开发神器
### 技术说明
- 后台php采用thinkphp6+php8+mysql,支持composer快速安装扩展支持redis缓存以及消息队列支持多语言设计开发同时开发采用严格的restful的api设计开发。 - 后台php采用thinkphp6+php8+mysql,支持composer快速安装扩展支持redis缓存以及消息队列支持多语言设计开发同时开发采用严格的restful的api设计开发。
@ -55,48 +29,25 @@ niucloud-admin是一款快速开发SaaS通用管理系统后台框架前端
- 手机端使用uniapp 同时使用uview页面展示可以开发出丰富的手机样式同时不需要专门学习小程序app等开发语言只需要通过uniapp编译就可以。 - 手机端使用uniapp 同时使用uview页面展示可以开发出丰富的手机样式同时不需要专门学习小程序app等开发语言只需要通过uniapp编译就可以。
### 操作指南
### 官网地址 [官网地址](https://www.niucloud.com)
https://www.niucloud.com | [服务市场](https://www.niucloud.com)
### 应用市场 | [使用手册](https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336)
https://www.niucloud.com | [二开手册](https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336)
### 使用手册 | [API接口手册](https://www.niucloud.com/apidoc.html)
https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336 | [论坛地址](https://www.niucloud.com/bbs)
### 二开手册
https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336
### API接口手册
https://www.niucloud.com/apidoc.html
### 论坛地址
https://www.niucloud.com/bbs
### 演示地址 ### 演示地址
- 电脑端演示网址:[<a href='https://demo.niucloud.com/web/s2/' target="_blank"> 查看 </a>] - 站点后台演示网址:[<a href='https://demo.niucloud.com/site/' target="_blank"> 查看 </a>]
<a href='https://demo.niucloud.com/web/s2/' target="_blank">https://demo.niucloud.com/web/s2/</a> 账号:自行注册 <a href='https://demo.niucloud.com/site/' target="_blank">https://demo.niucloud.com/site/ 账号test 密码123456
- 站点后台演示网址:[<a href='https://demo.niucloud.com/site/login' target="_blank"> 查看 </a>] - 平台后台演示网址:[<a href='https://demo.niucloud.com/admin/' target="_blank"> 查看 </a>]
<a href='https://demo.niucloud.com/site/login' target="_blank">https://demo.niucloud.com/site/login</a> 账号test 密码123456 <a href='https://demo.niucloud.com/admin/' target="_blank">https://demo.niucloud.com/admin/ 账号admin 密码123456
- 平台后台演示网址:[<a href='https://demo.niucloud.com/admin/login' target="_blank"> 查看 </a>]
<a href='https://demo.niucloud.com/admin/login' target="_blank">https://demo.niucloud.com/admin/login</a> 账号admin 密码123456
- 前端演示二维码
![输入图片说明](https://www.niucloud.com/img/readme/%E6%BC%94%E7%A4%BA%E5%89%8D%E7%AB%AF-new.png)
环境要求<br/>
php 8.0 <br/> mysql5.6及以上 <br/> 启用redis <br/> Nignx/Apache
![输入图片说明](https://www.niucloud.com/img/readme/%E6%B7%BB%E5%8A%A0%E5%AE%A2%E6%9C%8D-old.png)
扫描下方二维码加入niucloud-admin开发者交流群
![输入图片说明](https://www.niucloud.com/img/readme/%E5%BC%80%E5%8F%91%E8%80%85%E4%BA%A4%E6%B5%81%E7%BE%A4.png)
### 开源使用须知 ### 开源使用须知
1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用; 1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;
2.本框架应用源代码所有权和著作权归niucloud官方所有基于niucloud-admin框架开发的应用所有权和著作权归应用开发商所有。但必须声明是基于niucloud-admin框架开发请自觉遵守否则产生的一切任何后果责任由侵权者自负; 2.本框架应用源代码所有权和著作权归niucloud官方所有基于niucloud-admin框架开发的应用所有权和著作权归应用开发商所有。但必须明确声明是基于niucloud-admin框架开发请自觉遵守否则产生的一切任何后果责任由侵权者自负;
3.禁止修改框架代码并再次发布框架衍生版等与niucloud-admin框架产生恶意竞争或对抗的行为; 3.禁止修改框架代码并再次发布框架衍生版等与niucloud-admin框架产生恶意竞争或对抗的行为;
@ -106,8 +57,14 @@ php 8.0 <br/> mysql5.6及以上 <br/> 启用redis <br/> Nignx/A
6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。 6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。
### 版权信息 ### 版权信息
版权所有Copyright 2015-2035 niucloud-admin 版权所有 版权所有Copyright © 2015-2030 niucloud-admin 版权所有
All rights reserved。 All rights reserved。
杭州牛之云科技有限公司 提供技术支持 杭州数字云动科技有限公司
杭州牛之云科技有限公司
提供技术支持

View File

@ -1,3 +0,0 @@
{
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
}

View File

@ -2,4 +2,5 @@
export {} export {}
declare global { declare global {
const ElMessage: typeof import('element-plus/es')['ElMessage'] const ElMessage: typeof import('element-plus/es')['ElMessage']
const ElNotification: typeof import('element-plus/es')['ElNotification']
} }

View File

@ -18,6 +18,7 @@ declare module '@vue/runtime-core' {
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard'] ElCard: typeof import('element-plus/es')['ElCard']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']
ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
@ -46,6 +47,7 @@ declare module '@vue/runtime-core' {
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
@ -67,6 +69,7 @@ declare module '@vue/runtime-core' {
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree'] ElTree: typeof import('element-plus/es')['ElTree']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']
HeatMap: typeof import('./src/components/heat-map/index.vue')['default'] HeatMap: typeof import('./src/components/heat-map/index.vue')['default']
Icon: typeof import('./src/components/icon/index.vue')['default'] Icon: typeof import('./src/components/icon/index.vue')['default']

View File

@ -9,6 +9,7 @@
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.0.10", "@element-plus/icons-vue": "^2.0.10",
"@highlightjs/vue-plugin": "^2.1.0",
"@vueuse/core": "^9.12.0", "@vueuse/core": "^9.12.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
@ -855,6 +856,15 @@
"@floating-ui/core": "^1.1.0" "@floating-ui/core": "^1.1.0"
} }
}, },
"node_modules/@highlightjs/vue-plugin": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/@highlightjs/vue-plugin/-/vue-plugin-2.1.0.tgz",
"integrity": "sha512-E+bmk4ncca+hBEYRV2a+1aIzIV0VSY/e5ArjpuSN9IO7wBJrzUE2u4ESCwrbQD7sAy+jWQjkV5qCCWgc+pu7CQ==",
"peerDependencies": {
"highlight.js": "^11.0.1",
"vue": "^3"
}
},
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.11.8", "version": "0.11.8",
"resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@ -3922,6 +3932,15 @@
"he": "bin/he" "he": "bin/he"
} }
}, },
"node_modules/highlight.js": {
"version": "11.9.0",
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
"peer": true,
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/hls.js": { "node_modules/hls.js": {
"version": "1.3.4", "version": "1.3.4",
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz", "resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz",
@ -7065,6 +7084,12 @@
"@floating-ui/core": "^1.1.0" "@floating-ui/core": "^1.1.0"
} }
}, },
"@highlightjs/vue-plugin": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/@highlightjs/vue-plugin/-/vue-plugin-2.1.0.tgz",
"integrity": "sha512-E+bmk4ncca+hBEYRV2a+1aIzIV0VSY/e5ArjpuSN9IO7wBJrzUE2u4ESCwrbQD7sAy+jWQjkV5qCCWgc+pu7CQ==",
"requires": {}
},
"@humanwhocodes/config-array": { "@humanwhocodes/config-array": {
"version": "0.11.8", "version": "0.11.8",
"resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@ -9533,6 +9558,12 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true "dev": true
}, },
"highlight.js": {
"version": "11.9.0",
"resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz",
"integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
"peer": true
},
"hls.js": { "hls.js": {
"version": "1.3.4", "version": "1.3.4",
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz", "resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz",

View File

@ -10,6 +10,7 @@
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.0.10", "@element-plus/icons-vue": "^2.0.10",
"@highlightjs/vue-plugin": "^2.1.0",
"@vueuse/core": "^9.12.0", "@vueuse/core": "^9.12.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",

View File

@ -24,7 +24,7 @@ const toggleDark = useToggle(useDark())
watch(route, () => { watch(route, () => {
useAppStore().$patch(state => { useAppStore().$patch(state => {
state.route = route.meta.view || route.path state.route = route
}) })
}, { immediate: true }) }, { immediate: true })

View File

@ -1,62 +0,0 @@
import request from '@/utils/request'
/**
*
* @returns
*/
export function getAddonLocal(params: Record<string, any>) {
return request.get('addon/local', params, {showSuccessMessage: true})
}
/**
*
* @returns
*/
export function getAddonDetial(id: number) {
return request.get(`addon/${id}`)
}
/**
*
* @param params
* @returns
*/
export function installAddon(params: Record<string, any>) {
return request.post(`addon/install/${params.addon}`, params)
}
/**
*
* @param params
* @returns
*/
export function uninstallAddon(params: Record<string, any>) {
return request.post(`addon/uninstall/${params.addon}`, params, {showSuccessMessage: true})
}
/**
*
* @param addon
* @returns
*/
export function preInstallCheck(addon: string) {
return request.get(`addon/install/check/${addon}`, {timeout: 30 * 1000})
}
/**
*
* @param addon
* @param key
* @returns
*/
export function getAddonInstallTaskState(addon: string, key: string) {
return request.get(`addon/install/${addon}/status/${key}`)
}
/**
*
* @param addon
*/
export function executeInstall(addon: string) {
return request.post(`addon/install/execute/${addon}`, {})
}

View File

@ -1,102 +0,0 @@
import request from '@/utils/request'
/***************************************************** 文章表 ****************************************************/
/**
*
* @param params
* @returns
*/
export function getArticleList(params: Record<string, any>) {
return request.get(`article/article`, {params})
}
/**
*
* @param id id
* @returns
*/
export function getArticleInfo(id: number) {
return request.get(`article/article/${id}`);
}
/**
*
* @param params
* @returns
*/
export function addArticle(params: Record<string, any>) {
return request.post('article/article', params, {showSuccessMessage: true})
}
/**
*
* @param params
*/
export function editArticle(params: Record<string, any>) {
return request.put(`article/article/${params.id}`, params, {showSuccessMessage: true})
}
/**
*
* @param id
* @returns
*/
export function deleteArticle(id: number) {
return request.delete(`article/article/${id}`, {showSuccessMessage: true})
}
/***************************************************** 文章分类管理 ****************************************************/
/**
*
* @param params
* @returns
*/
export function getArticleCategoryList(params: Record<string, any>) {
return request.get(`article/category`, {params})
}
/**
*
* @param params
* @returns
*/
export function getArticleCategoryAll(params: Record<string, any>) {
return request.get(`article/category/all`, params)
}
/**
*
* @param category_id
*/
export function getArticleCategoryInfo(category_id: number) {
return request.get(`article/category/${category_id}`);
}
/**
*
* @param params
* @returns
*/
export function addArticleCategory(params: Record<string, any>) {
return request.post('article/category', params, {showSuccessMessage: true})
}
/**
*
* @param params
* @returns
*/
export function editArticleCategory(params: Record<string, any>) {
return request.put(`article/category/${params.category_id}`, params, {showSuccessMessage: true})
}
/**
*
* @param category_id
*/
export function deleteArticleCategory(category_id: number) {
return request.delete(`article/category/${category_id}`, {showSuccessMessage: true});
}

View File

@ -1,70 +0,0 @@
import request from '@/utils/request'
/***************************************************** 代码生成 ****************************************************/
/**
*
* @param params
* @returns
*/
export function getGenerateTableList(params: Record<string, any>) {
return request.get(`generator/generator`, {params})
}
/**
*
* @param id id
* @returns
*/
export function getGenerateTableInfo(id: number) {
return request.get(`generator/generator/${id}`);
}
/**
*
* @param params
* @returns
*/
export function addGenerateTable(params: Record<string, any>) {
return request.post('generator/generator', params, {showSuccessMessage: true})
}
/**
*
* @param params
*/
export function editGenerateTable(params: Record<string, any>) {
return request.put(`generator/generator/${params.id}`, params, {showSuccessMessage: true})
}
/**
*
* @param id
* @returns
*/
export function deleteGenerateTable(id: number) {
return request.delete(`generator/generator/${id}`, {showSuccessMessage: true})
}
/**
*
* @param params
* @returns
*/
export function generateCreate(params: Record<string, any>) {
return request.post(`generator/download`, params)
}
/**
*
*/
export function generateTable() {
return request.get(`generator/table`)
}
/**
*
*/
export function getSystem() {
return request.get(`sys/system`)
}

View File

@ -0,0 +1,92 @@
import request from '@/utils/request'
/**
*
* @returns
*/
export function getAddonLocal(params: Record<string, any>) {
return request.get('addon/local', params, {showSuccessMessage: true})
}
/**
*
* @returns
*/
export function getAddonDetial(id: number) {
return request.get(`addon/${id}`)
}
/**
*
* @param params
* @returns
*/
export function installAddon(params: Record<string, any>) {
return request.post(`addon/install/${params.addon}`, params)
}
/**
*
* @param params
* @returns
*/
export function cloudInstallAddon(params: Record<string, any>) {
return request.post(`addon/cloudinstall/${params.addon}`, params, { timeout: 60 * 1000 })
}
/**
*
* @param params
* @returns
*/
export function uninstallAddon(params: Record<string, any>) {
return request.post(`addon/uninstall/${params.addon}`, params, { showSuccessMessage: true })
}
/**
*
* @param addon
* @returns
*/
export function preInstallCheck(addon: string) {
return request.get(`addon/install/check/${addon}`, { timeout: 30 * 1000 })
}
/**
*
* @returns
*/
export function getAddonInstalltask() {
return request.get('addon/installtask')
}
/**
*
* @param addon
* @returns
*/
export function getAddonCloudInstallLog(addon: string) {
return request.get(`addon/cloudinstall/${addon}`)
}
/**
*
* @param addon
* @returns
*/
export function preUninstallCheck(addon: string) {
return request.get(`addon/uninstall/check/${addon}`, { timeout: 30 * 1000 })
}
/**
*
* @param addon
* @returns
*/
export function cancelInstall(addon: string) {
return request.put(`addon/install/cancel/${addon}`, {}, { showErrorMessage: false })
}
export function getInstalledAddonList() {
return request.get('addon/list/install')
}

View File

@ -13,8 +13,8 @@ export function login(params: Record<string, any>, app_type: string) {
* *
* @returns * @returns
*/ */
export function getAuthMenus() { export function getAuthMenus(params: Record<string, any>) {
return request.get('auth/authmenu') return request.get('auth/authmenu', {params})
} }
/** /**
@ -32,3 +32,10 @@ export function getSiteInfo() {
export function getLoginConfig() { export function getLoginConfig() {
return request.get('login/config') return request.get('login/config')
} }
/**
*
*/
export function getVersions() {
return request.get(`sys/info`)
}

81
admin/src/app/api/dict.ts Normal file
View File

@ -0,0 +1,81 @@
import request from '@/utils/request'
/**
*
* @param params
* @returns
*/
export function getDictList(params: Record<string, any>) {
return request.get(`dict/dict`, {params})
}
/**
*
* @param id id
* @returns
*/
export function getDictInfo(id: number) {
return request.get(`dict/dict/${id}`);
}
/**
*
* @param params
* @returns
*/
export function addDict(params: Record<string, any>) {
return request.post('dict/dict', params, { showErrorMessage: true, showSuccessMessage: true })
}
/**
*
* @param params
* @returns
*/
export function addDictData(params: Record<string, any>) {
return request.put(`dict/dict/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
}
/**
*
* @param params
* @returns
*/
export function editDict(params: Record<string, any>) {
return request.put(`dict/dict/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
}
/**
*
* @param id
* @returns
*/
export function deleteDict(id: number) {
return request.delete(`dict/dict/${id}`, { showErrorMessage: true, showSuccessMessage: true })
}
/**
*
* @param id
* @param params
* @returns
*/
export function setDictData(id:number,params: Record<string, any>) {
return request.put(`dict/dictionary/${id}`, params, { showErrorMessage: true,showSuccessMessage: true })
}
/**
*
* @returns
*/
export function getDictAll() {
return request.get(`dict/all`)
}
/**
*
* @param type
* @returns
*/
export function useDictionary(type: string) {
return request.get(`dict/dictionary/type/${type}`)
}

View File

@ -0,0 +1,5 @@
import request from '@/utils/request'
export function getHomeSite(params: Record<string, any>) {
return request.get(`home/site`, { params })
}

View File

@ -4,7 +4,7 @@ import request from '@/utils/request'
* *
*/ */
export function getAuthinfo() { export function getAuthinfo() {
return request.get('niucloud/authinfo') return request.get('niucloud/authinfo', { showErrorMessage: false })
} }
/** /**

View File

@ -77,8 +77,8 @@ export function getSiteGroupList(params: Record<string, any>) {
* *
* @param site_id * @param site_id
*/ */
export function getSiteGroupInfo(site_id: number) { export function getSiteGroupInfo(groupId: number) {
return request.get(`site/group/${site_id}`); return request.get(`site/group/${groupId}`);
} }
/** /**
@ -234,3 +234,11 @@ export function getAccountStat() {
export function getAccountType() { export function getAccountType() {
return request.get(`site/account/type`) return request.get(`site/account/type`)
} }
/**
*
* @returns
*/
export function getSiteAddons() {
return request.get('site/addons')
}

View File

@ -112,6 +112,22 @@ export function deleteMenu(menu_key: string) {
return request.delete(`sys/menu/${menu_key}`, { showSuccessMessage: true }) return request.delete(`sys/menu/${menu_key}`, { showSuccessMessage: true })
} }
/**
*
*
*/
export function getSystemMenu() {
return request.get(`sys/menu/system_menu`)
}
/**
*
*
*/
export function getAddonMenu(key: any) {
return request.get(`sys/menu/addon_menu/${key}`)
}
/***************************************************** 站点菜单 ****************************************************/ /***************************************************** 站点菜单 ****************************************************/
/** /**
@ -276,6 +292,14 @@ export function getIconList(params: Record<string, any>) {
return request.get(`sys/attachment/icon`, { params }) return request.get(`sys/attachment/icon`, { params })
} }
/**
* evn
* @param params
* @returns
*/
export function getEnv() {
return request.get(`sys/env`)
}
/***************************************************** 地址管理 ****************************************************/ /***************************************************** 地址管理 ****************************************************/
/** /**
@ -621,3 +645,17 @@ export function payAuditRefuse(params: Record<string, any>) {
export function getPayDetail(id: number) { export function getPayDetail(id: number) {
return request.get(`pay/detail/${id}`) return request.get(`pay/detail/${id}`)
} }
/**
*
*/
export function getAddonList() {
return request.get(`app/getAddonList`)
}
/**
*
*/
export function getWapIndexList(params: Record<string, any>) {
return request.get('sys/config/wap_index', { params })
}

177
admin/src/app/api/tools.ts Normal file
View File

@ -0,0 +1,177 @@
import request from '@/utils/request'
/***************************************************** 插件开发 ****************************************************/
/**
*
* @returns
*/
export function getAddonDevelop(params: Record<string, any>) {
return request.get(`addon_develop`, {params});
}
/**
*
* @returns
*/
export function getAddontype() {
return request.get(`addontype`);
}
/**
*
* @returns
*/
export function getAddonDevelopInfo(key: any) {
return request.get(`addon_develop/${key}`)
}
/**
* key是否存在
* @returns
*/
export function getAddonDevelopCheck(key: any) {
return request.get(`addon_develop/check/${key}`)
}
/**
*
* @param key
* @param params
* @returns
*/
export function addAddonDevelop(key: any, params: Record<string, any>) {
return request.post(`addon_develop/${key}`, params)
}
/**
*
* @param key
* @param params
* @returns
*/
export function editAddonDevelop(key: any, params: Record<string, any>) {
return request.put(`addon_develop/${key}`, params)
}
/**
*
* @param key
* @returns
*/
export function deleteAddonDevelop(key: any) {
return request.delete(`addon_develop/${key}`, {showSuccessMessage: true})
}
/**
*
* @returns
*/
export function addonDevelopBuild(key: any) {
return request.post(`addon_develop/build/${key}`)
}
/**
*
* @returns
*/
export function addonDevelopDownload(key: any) {
return request.post(`addon_develop/download/${key}`, {}, {"responseType": "blob"})
}
/***************************************************** 代码生成 ****************************************************/
/**
*
* @param params
* @returns
*/
export function getGenerateTableList(params: Record<string, any>) {
return request.get(`generator/generator`, {params})
}
/**
*
* @param id id
* @returns
*/
export function getGenerateTableInfo(id: number) {
return request.get(`generator/generator/${id}`);
}
/**
*
* @param params
* @returns
*/
export function addGenerateTable(params: Record<string, any>) {
return request.post('generator/generator', params, {showSuccessMessage: true})
}
/**
*
* @param params
*/
export function editGenerateTable(params: Record<string, any>) {
return request.put(`generator/generator/${params.id}`, params, {showSuccessMessage: true})
}
/**
*
* @param id
* @returns
*/
export function deleteGenerateTable(id: number) {
return request.delete(`generator/generator/${id}`, {showSuccessMessage: true})
}
/**
*
* @param params
* @returns
*/
export function generateCreate(params: Record<string, any>) {
return request.post(`generator/download`, params)
}
/**
*
* @param id
* @returns
*/
export function generatePreview(id: number) {
return request.get(`generator/preview/${id}`)
}
/**
*
*/
export function generateTable() {
return request.get(`generator/table`)
}
/**
*
*/
export function getSystem() {
return request.get(`sys/system`)
}
/**
*
*/
export function getGeneratorAllModel(params: any) {
return request.get(`generator/all_model`, {params})
}
/**
*
*/
export function getGeneratorTableColumn(params: any) {
return request.get(`generator/table_column`, {params})
}
/**
*
*/
export function generatorCheckFile(params: Record<string, any>) {
return request.get(`generator/check_file`, {params})
}

View File

@ -39,3 +39,20 @@ export function editUser(params: Record<string, any>) {
return request.put(`user/user/${params.uid}`, params, { showSuccessMessage: true }) return request.put(`user/user/${params.uid}`, params, { showSuccessMessage: true })
} }
/**
*
* @param params
* @returns
*/
export function getAllUserList(params: Record<string, any>) {
return request.get(`user/user_all`, { params })
}
/**
*
* @param username
* @returns
*/
export function checkUsernameIsExist(username: string) {
return request.get(`user/isexist`, { params: { username } })
}

View File

@ -33,6 +33,40 @@ export function getTemplateList() {
export function getBatchAcquisition(params: Record<string, any>) { export function getBatchAcquisition(params: Record<string, any>) {
return request.put('weapp/template/sync', params, { showSuccessMessage: true }) return request.put('weapp/template/sync', params, { showSuccessMessage: true })
} }
/**
*
* @param params
* @returns
*/
export function setWeappVersion(params: Record<string, any>) {
return request.post('weapp/version', params, { showSuccessMessage: true })
}
/**
*
* @returns
*/
export function getWeappPreview() {
return request.get('weapp/preview')
}
/**
*
* @param params
* @returns
*/
export function getWeappVersionList(params: Record<string, any>) {
return request.get('weapp/version', { params })
}
/**
*
* @param key
* @returns
*/
export function getWeappUploadLog(key: string) {
return request.get(`weapp/upload/${key}`)
}
/***************************************************** 管理端 ****************************************************/ /***************************************************** 管理端 ****************************************************/
@ -65,7 +99,7 @@ export function getVersionList(params: Record<string, any>) {
/** /**
* *
* @param params * @param id
* @returns * @returns
*/ */
export function getVersionInfo(id: string) { export function getVersionInfo(id: string) {
@ -83,18 +117,9 @@ export function editVersion(params: Record<string, any>) {
/** /**
* *
* @param params * @param id
* @returns * @returns
*/ */
export function deleteVersion(id: string) { export function deleteVersion(id: string) {
return request.delete(`applet/version/${id}`) return request.delete(`applet/version/${id}`)
} }
/**
*
* @param params
* @returns
*/
export function versionDown(id: string) {
return request.get(`applet/version/download/${id}`, { "responseType": "blob" })
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

View File

Before

Width:  |  Height:  |  Size: 907 B

After

Width:  |  Height:  |  Size: 907 B

View File

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 544 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 455 B

After

Width:  |  Height:  |  Size: 455 B

View File

Before

Width:  |  Height:  |  Size: 843 B

After

Width:  |  Height:  |  Size: 843 B

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 655 KiB

After

Width:  |  Height:  |  Size: 655 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 673 B

View File

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 605 B

View File

Before

Width:  |  Height:  |  Size: 392 B

After

Width:  |  Height:  |  Size: 392 B

View File

Before

Width:  |  Height:  |  Size: 897 B

After

Width:  |  Height:  |  Size: 897 B

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 773 B

View File

Before

Width:  |  Height:  |  Size: 550 B

After

Width:  |  Height:  |  Size: 550 B

View File

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

Before

Width:  |  Height:  |  Size: 157 B

After

Width:  |  Height:  |  Size: 157 B

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Some files were not shown because too many files have changed in this diff Show More