0.0.3
4
.gitignore
vendored
@ -16,3 +16,7 @@ bin-release/
|
||||
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
|
||||
# should NOT be excluded as they contain compiler settings and other important
|
||||
# information for Eclipse / Flash Builder.
|
||||
|
||||
/.idea
|
||||
/upgrade
|
||||
niucloud/public/.htaccess
|
||||
|
||||
36
README.en.md
Normal 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/)
|
||||
183
README.md
@ -1,113 +1,70 @@
|
||||

|
||||
|
||||
|
||||
|
||||
: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设计开发。
|
||||
|
||||
- 后台前后端分离采用element-plus、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发。
|
||||
|
||||
- 手机端采用uniapp前后端分离,同时使用uview、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发,可以灵活编译成h5,微信小程序,支付宝小程序,抖音小程序等使用场景。
|
||||
|
||||
- niucloud-admin采用多租户的saas系统设计,能够提供企业级软件服务运营 ,同时满足用户多站点,多商户,多门店等系统开发需求。
|
||||
|
||||
- niucloud-admin结合当前市面上很多框架结构不规范,导致基础结构不稳定等情况,严格定义了分层设计的开发规范,同时api接口严格采用restful的开发规范,能够满足大型业务系统或者微服务的开发需求。
|
||||
|
||||
- niucloud-admin前端以及后端采用严格的多语言开发规范,包括前端展示,api接口返回,数据验证,错误返回等全部使用多语言设计规范,使开发者能够真生意义上实现多语言的开发需求。
|
||||
|
||||
- niucloud-admin已经搭建好常规系统的开发底层,具体的底层功能包括:管理员管理,权限管理,网站设置,计划任务管理,素材管理,会员管理,会员账户管理,微信公众号以及小程序管理,支付管理,第三方登录管理,消息管理,短信管理,文章管理,前端装修等全面的基础功能,这样开发者不需要开发基础的结构而专心开发业务。
|
||||
|
||||
- niucloud-admin系统内置支持微信/支付宝支付,微信公众号/小程序/短信消息管理,阿里云/腾讯云短信,七牛云/阿里云存储等基础的功能扩展,后续会根据实际业务不断扩展基础组件。
|
||||
|
||||
- niucloud-admin结合系统结构特点专门开发了代码生成器,这样开发者根据数据表就可以一键生成基础的业务代码,包括:后台php业务代码以及对应的前端vue代码。
|
||||
|
||||
- 前端采用标准的element-plus,开发者不需要详细了解前端,只需要用标准的element组件就可以。
|
||||
|
||||
- 手机端设计开发了自定义装修,同时提供了基础的开发组件,方便开发者设计开发手机自定义页面装修的开发需求。
|
||||
|
||||
- 手机端使用uniapp ,同时使用uview页面展示,可以开发出丰富的手机样式,同时不需要专门学习小程序,app等开发语言,只需要通过uniapp编译就可以。
|
||||
|
||||
|
||||
### 官网地址
|
||||
https://www.niucloud.com
|
||||
### 应用市场
|
||||
https://www.niucloud.com
|
||||
### 使用手册
|
||||
https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336
|
||||
### 二开手册
|
||||
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/web/s2/' target="_blank">https://demo.niucloud.com/web/s2/</a> 账号:自行注册
|
||||
- 站点后台演示网址:[<a href='https://demo.niucloud.com/site/login' 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/login' target="_blank"> 查看 </a>]
|
||||
<a href='https://demo.niucloud.com/admin/login' target="_blank">https://demo.niucloud.com/admin/login</a> 账号:admin 密码:123456
|
||||
|
||||
|
||||
- 前端演示二维码
|
||||
|
||||

|
||||
|
||||
|
||||
环境要求<br/>
|
||||
php 8.0 <br/> mysql5.6及以上 <br/> 启用redis <br/> Nignx/Apache
|
||||
|
||||
|
||||

|
||||
扫描下方二维码加入niucloud-admin开发者交流群
|
||||

|
||||
|
||||
|
||||
### 开源使用须知
|
||||
|
||||
1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;
|
||||
|
||||
2.本框架应用源代码所有权和著作权归niucloud官方所有,基于niucloud-admin框架开发的应用,所有权和著作权归应用开发商所有。但必须声明是基于niucloud-admin框架开发,请自觉遵守,否则产生的一切任何后果责任由侵权者自负;
|
||||
|
||||
3.禁止修改框架代码并再次发布框架衍生版等与niucloud-admin框架产生恶意竞争或对抗的行为;
|
||||
|
||||
4.本框架源码全部开源;包括前端,后端,无任何加密;
|
||||
|
||||
5.商用请仔细审查代码和漏洞,不得用于任一国家许可范围之外的商业应用,产生的一切任何后果责任自负;
|
||||
|
||||
6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。
|
||||
|
||||
### 版权信息
|
||||
版权所有Copyright 2015-2035 niucloud-admin 版权所有
|
||||
All rights reserved。
|
||||
|
||||
杭州牛之云科技有限公司 提供技术支持
|
||||

|
||||
|
||||
### niucloud-admin是什么?
|
||||
niucloud-admin是一款快速开发通用管理后台框架,前端采用最新的技术栈Vite+TypeScript+Vue3+ElementPlus最流行技术架构,后台结合PHP8、Java SDK、Python等主流后端语言搭建,内置集成用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、Api模块一系列开箱即用功能,是一款快速可以开发企业级应用的软件系统。
|
||||
|
||||
### niucloud-admin采用的技术亮点
|
||||
|
||||
- 后台php采用thinkphp6+php8+mysql,支持composer快速安装扩展,支持redis缓存以及消息队列,支持多语言设计开发,同时开发采用严格的restful的api设计开发。
|
||||
|
||||
- 后台前后端分离采用element-plus、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发。
|
||||
|
||||
- 手机端采用uniapp前后端分离,同时使用uview、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发,可以灵活编译成h5,微信小程序,支付宝小程序,抖音小程序等使用场景。
|
||||
|
||||
- niucloud-admin采用多租户的saas系统设计,能够提供企业级软件服务运营 ,同时满足用户多站点,多商户,多门店等系统开发需求。
|
||||
|
||||
- niucloud-admin结合当前市面上很多框架结构不规范,导致基础结构不稳定等情况,严格定义了分层设计的开发规范,同时api接口严格采用restful的开发规范,能够满足大型业务系统或者微服务的开发需求。
|
||||
|
||||
- niucloud-admin前端以及后端采用严格的多语言开发规范,包括前端展示,api接口返回,数据验证,错误返回等全部使用多语言设计规范,使开发者能够真生意义上实现多语言的开发需求。
|
||||
|
||||
- niucloud-admin已经搭建好常规系统的开发底层,具体的底层功能包括:管理员管理,权限管理,网站设置,计划任务管理,素材管理,会员管理,会员账户管理,微信公众号以及小程序管理,支付管理,第三方登录管理,消息管理,短信管理,文章管理,前端装修等全面的基础功能,这样开发者不需要开发基础的结构而专心开发业务。
|
||||
|
||||
- niucloud-admin系统内置支持微信/支付宝支付,微信公众号/小程序/短信消息管理,阿里云/腾讯云短信,七牛云/阿里云存储等基础的功能扩展,后续会根据实际业务不断扩展基础组件。
|
||||
|
||||
- niucloud-admin结合系统结构特点专门开发了代码生成器,这样开发者根据数据表就可以一键生成基础的业务代码,包括:后台php业务代码以及对应的前端vue代码。
|
||||
|
||||
- 前端采用标准的element-plus,开发者不需要详细了解前端,只需要用标准的element组件就可以。
|
||||
|
||||
- 手机端设计开发了自定义装修,同时提供了基础的开发组件,方便开发者设计开发手机自定义页面装修的开发需求。
|
||||
|
||||
- 手机端使用uniapp ,同时使用uview页面展示,可以开发出丰富的手机样式,同时不需要专门学习小程序,app等开发语言,只需要通过uniapp编译就可以。
|
||||
|
||||
### 操作指南
|
||||
[官网地址](https://www.niucloud.com)
|
||||
| [服务市场](https://www.niucloud.com)
|
||||
| [使用手册](https://www.kancloud.cn/niucloud/niucloud-admin-develop/3153336)
|
||||
| [二开手册](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/site/' target="_blank"> 查看 </a>]
|
||||
<a href='https://demo.niucloud.com/site/' target="_blank">https://demo.niucloud.com/site/ 账号:test 密码:123456
|
||||
- 平台后台演示网址:[<a href='https://demo.niucloud.com/admin/' target="_blank"> 查看 </a>]
|
||||
<a href='https://demo.niucloud.com/admin/' target="_blank">https://demo.niucloud.com/admin/ 账号:admin 密码:123456
|
||||
|
||||
### 开源使用须知
|
||||
|
||||
1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;
|
||||
|
||||
2.本框架应用源代码所有权和著作权归niucloud官方所有,基于niucloud-admin框架开发的应用,所有权和著作权归应用开发商所有。但必须明确声明是基于niucloud-admin框架开发,请自觉遵守,否则产生的一切任何后果责任由侵权者自负;
|
||||
|
||||
3.禁止修改框架代码并再次发布框架衍生版等与niucloud-admin框架产生恶意竞争或对抗的行为;
|
||||
|
||||
4.本框架源码全部开源;包括前端,后端,无任何加密;
|
||||
|
||||
5.商用请仔细审查代码和漏洞,不得用于任一国家许可范围之外的商业应用,产生的一切任何后果责任自负;
|
||||
|
||||
6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。
|
||||
|
||||
|
||||
|
||||
### 版权信息
|
||||
版权所有Copyright © 2015-2030 niucloud-admin 版权所有
|
||||
|
||||
All rights reserved。
|
||||
|
||||
杭州数字云动科技有限公司
|
||||
杭州牛之云科技有限公司
|
||||
|
||||
提供技术支持
|
||||
@ -1,6 +1,6 @@
|
||||
NODE_ENV = 'development'
|
||||
|
||||
# api请求地址
|
||||
# api请求地址
|
||||
VITE_APP_BASE_URL='/adminapi/'
|
||||
|
||||
# 图片服务器地址
|
||||
@ -10,4 +10,4 @@ VITE_IMG_DOMAIN=''
|
||||
VITE_REQUEST_HEADER_TOKEN_KEY='token'
|
||||
|
||||
# 请求时header中站点的参数名
|
||||
VITE_REQUEST_HEADER_SITEID_KEY='site-id'
|
||||
VITE_REQUEST_HEADER_SITEID_KEY='site-id'
|
||||
|
||||
3
admin/.vscode/extensions.json
vendored
@ -1,3 +0,0 @@
|
||||
{
|
||||
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
||||
}
|
||||
1
admin/auto-imports.d.ts
vendored
@ -2,4 +2,5 @@
|
||||
export {}
|
||||
declare global {
|
||||
const ElMessage: typeof import('element-plus/es')['ElMessage']
|
||||
const ElNotification: typeof import('element-plus/es')['ElNotification']
|
||||
}
|
||||
|
||||
3
admin/components.d.ts
vendored
@ -18,6 +18,7 @@ declare module '@vue/runtime-core' {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
||||
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
||||
@ -46,6 +47,7 @@ declare module '@vue/runtime-core' {
|
||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
@ -67,6 +69,7 @@ declare module '@vue/runtime-core' {
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTree: typeof import('element-plus/es')['ElTree']
|
||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
HeatMap: typeof import('./src/components/heat-map/index.vue')['default']
|
||||
Icon: typeof import('./src/components/icon/index.vue')['default']
|
||||
|
||||
31
admin/package-lock.json
generated
@ -9,6 +9,7 @@
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.10",
|
||||
"@highlightjs/vue-plugin": "^2.1.0",
|
||||
"@vueuse/core": "^9.12.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
@ -855,6 +856,15 @@
|
||||
"@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": {
|
||||
"version": "0.11.8",
|
||||
"resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
|
||||
@ -3922,6 +3932,15 @@
|
||||
"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": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz",
|
||||
@ -7065,6 +7084,12 @@
|
||||
"@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": {
|
||||
"version": "0.11.8",
|
||||
"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==",
|
||||
"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": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.3.4.tgz",
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.10",
|
||||
"@highlightjs/vue-plugin": "^2.1.0",
|
||||
"@vueuse/core": "^9.12.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
@ -50,4 +51,4 @@
|
||||
"vite": "^4.1.0",
|
||||
"vue-tsc": "^1.0.24"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -24,7 +24,7 @@ const toggleDark = useToggle(useDark())
|
||||
|
||||
watch(route, () => {
|
||||
useAppStore().$patch(state => {
|
||||
state.route = route.meta.view || route.path
|
||||
state.route = route
|
||||
})
|
||||
}, { immediate: true })
|
||||
|
||||
|
||||
@ -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}`, {})
|
||||
}
|
||||
@ -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});
|
||||
}
|
||||
@ -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`)
|
||||
}
|
||||
92
admin/src/app/api/addon.ts
Normal 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')
|
||||
}
|
||||
@ -13,8 +13,8 @@ export function login(params: Record<string, any>, app_type: string) {
|
||||
* 获取登录用户权限
|
||||
* @returns
|
||||
*/
|
||||
export function getAuthMenus() {
|
||||
return request.get('auth/authmenu')
|
||||
export function getAuthMenus(params: Record<string, any>) {
|
||||
return request.get('auth/authmenu', {params})
|
||||
}
|
||||
|
||||
/**
|
||||
@ -31,4 +31,11 @@ export function getSiteInfo() {
|
||||
*/
|
||||
export function getLoginConfig() {
|
||||
return request.get('login/config')
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前版本信息
|
||||
*/
|
||||
export function getVersions() {
|
||||
return request.get(`sys/info`)
|
||||
}
|
||||
81
admin/src/app/api/dict.ts
Normal 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}`)
|
||||
}
|
||||
|
||||
5
admin/src/app/api/home.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getHomeSite(params: Record<string, any>) {
|
||||
return request.get(`home/site`, { params })
|
||||
}
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
* 获取授权信息
|
||||
*/
|
||||
export function getAuthinfo() {
|
||||
return request.get('niucloud/authinfo')
|
||||
return request.get('niucloud/authinfo', { showErrorMessage: false })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,4 +47,4 @@ export function getModuleVersion() {
|
||||
*/
|
||||
export function downloadVersion(addon) {
|
||||
return request.post(`addon/download/${addon}`, {}, {showSuccessMessage: true})
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,7 @@ import request from '@/utils/request'
|
||||
* @returns
|
||||
*/
|
||||
export function getSiteList(params: Record<string, any>) {
|
||||
return request.get(`site/site`, {params})
|
||||
return request.get(`site/site`, { params })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -27,7 +27,7 @@ export function getSiteInfo(site_id: number) {
|
||||
* @returns
|
||||
*/
|
||||
export function addSite(params: Record<string, any>) {
|
||||
return request.post('site/site', params, {showSuccessMessage: true})
|
||||
return request.post('site/site', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -35,7 +35,7 @@ export function addSite(params: Record<string, any>) {
|
||||
* @param params
|
||||
*/
|
||||
export function editSite(params: Record<string, any>) {
|
||||
return request.put(`site/site/${params.site_id}`, params, {showSuccessMessage: true})
|
||||
return request.put(`site/site/${params.site_id}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -43,7 +43,7 @@ export function editSite(params: Record<string, any>) {
|
||||
* @param params
|
||||
*/
|
||||
export function closeSite(params: Record<string, any>) {
|
||||
return request.put(`site/closesite/${params.site_id}`, params, {showSuccessMessage: true})
|
||||
return request.put(`site/closesite/${params.site_id}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,7 +51,7 @@ export function closeSite(params: Record<string, any>) {
|
||||
* @param params
|
||||
*/
|
||||
export function openSite(params: Record<string, any>) {
|
||||
return request.put(`site/opensite/${params.site_id}`, params, {showSuccessMessage: true})
|
||||
return request.put(`site/opensite/${params.site_id}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,15 +70,15 @@ export function getStatusList() {
|
||||
* @returns
|
||||
*/
|
||||
export function getSiteGroupList(params: Record<string, any>) {
|
||||
return request.get(`site/group`, {params})
|
||||
return request.get(`site/group`, { params })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取站点分组详情
|
||||
* @param site_id
|
||||
*/
|
||||
export function getSiteGroupInfo(site_id: number) {
|
||||
return request.get(`site/group/${site_id}`);
|
||||
export function getSiteGroupInfo(groupId: number) {
|
||||
return request.get(`site/group/${groupId}`);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -87,7 +87,7 @@ export function getSiteGroupInfo(site_id: number) {
|
||||
* @returns
|
||||
*/
|
||||
export function addSiteGroup(params: Record<string, any>) {
|
||||
return request.post('site/group', params, {showSuccessMessage: true})
|
||||
return request.post('site/group', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,7 +95,7 @@ export function addSiteGroup(params: Record<string, any>) {
|
||||
* @param params
|
||||
*/
|
||||
export function editSiteGroup(params: Record<string, any>) {
|
||||
return request.put(`site/group/${params.group_id}`, params, {showSuccessMessage: true})
|
||||
return request.put(`site/group/${params.group_id}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +103,7 @@ export function editSiteGroup(params: Record<string, any>) {
|
||||
* @param group_id
|
||||
*/
|
||||
export function deleteSiteGroup(group_id: number) {
|
||||
return request.delete(`site/group/${group_id}`, {showSuccessMessage: true});
|
||||
return request.delete(`site/group/${group_id}`, { showSuccessMessage: true });
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,7 +123,7 @@ export function getSiteGroupAll(params: Record<string, any>) {
|
||||
* @returns
|
||||
*/
|
||||
export function getUserList(params: Record<string, any>) {
|
||||
return request.get(`site/user`, {params})
|
||||
return request.get(`site/user`, { params })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -140,7 +140,7 @@ export function getUserInfo(uid: number) {
|
||||
* @returns
|
||||
*/
|
||||
export function addUser(params: Record<string, any>) {
|
||||
return request.post('site/user', params, {showSuccessMessage: true})
|
||||
return request.post('site/user', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -148,7 +148,7 @@ export function addUser(params: Record<string, any>) {
|
||||
* @param params
|
||||
*/
|
||||
export function editUser(params: Record<string, any>) {
|
||||
return request.put(`site/user/${params.uid}`, params, {showSuccessMessage: true})
|
||||
return request.put(`site/user/${params.uid}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -157,7 +157,7 @@ export function editUser(params: Record<string, any>) {
|
||||
* @returns
|
||||
*/
|
||||
export function deleteUser(uid: number) {
|
||||
return request.delete(`site/user/${uid}`, {showSuccessMessage: true})
|
||||
return request.delete(`site/user/${uid}`, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
|
||||
@ -189,7 +189,7 @@ export function unlockUser(uid: number) {
|
||||
* @returns
|
||||
*/
|
||||
export function getLogList(params: Record<string, any>) {
|
||||
return request.get(`site/log`, {params})
|
||||
return request.get(`site/log`, { params })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -208,7 +208,7 @@ export function getLogInfo(id: number) {
|
||||
* @returns
|
||||
*/
|
||||
export function getAccountList(params: Record<string, any>) {
|
||||
return request.get(`site/account`, {params})
|
||||
return request.get(`site/account`, { params })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -233,4 +233,12 @@ export function getAccountStat() {
|
||||
*/
|
||||
export function getAccountType() {
|
||||
return request.get(`site/account/type`)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取站点应用
|
||||
* @returns
|
||||
*/
|
||||
export function getSiteAddons() {
|
||||
return request.get('site/addons')
|
||||
}
|
||||
@ -112,6 +112,22 @@ export function deleteMenu(menu_key: string) {
|
||||
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 })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取evn
|
||||
* @param params
|
||||
* @returns
|
||||
*/
|
||||
export function getEnv() {
|
||||
return request.get(`sys/env`)
|
||||
}
|
||||
/***************************************************** 地址管理 ****************************************************/
|
||||
|
||||
/**
|
||||
@ -578,7 +602,7 @@ export function setIndexList(params: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 获取布局
|
||||
* @returns
|
||||
* @returns
|
||||
*/
|
||||
export function getLayouts() {
|
||||
return request.get('sys/layout')
|
||||
@ -586,7 +610,7 @@ export function getLayouts() {
|
||||
|
||||
/**
|
||||
* 设置布局
|
||||
* @returns
|
||||
* @returns
|
||||
*/
|
||||
export function setLayout(key: string) {
|
||||
return request.put('sys/layout', { key }, { showSuccessMessage: true })
|
||||
@ -601,7 +625,7 @@ export function getPayAuditList(params: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 支付审核通过
|
||||
* @returns
|
||||
* @returns
|
||||
*/
|
||||
export function payAuditPass(outTradeNo: string) {
|
||||
return request.put(`pay/pass/${outTradeNo}`, {}, { showSuccessMessage: true })
|
||||
@ -609,7 +633,7 @@ export function payAuditPass(outTradeNo: string) {
|
||||
|
||||
/**
|
||||
* 支付审核拒绝
|
||||
* @returns
|
||||
* @returns
|
||||
*/
|
||||
export function payAuditRefuse(params: Record<string, any>) {
|
||||
return request.put(`pay/refuse/${params.out_trade_no}`, params, { showSuccessMessage: true })
|
||||
@ -621,3 +645,17 @@ export function payAuditRefuse(params: Record<string, any>) {
|
||||
export function getPayDetail(id: number) {
|
||||
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
@ -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})
|
||||
}
|
||||
@ -39,3 +39,20 @@ export function editUser(params: Record<string, any>) {
|
||||
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 } })
|
||||
}
|
||||
@ -14,7 +14,7 @@ export function getWeappConfig() {
|
||||
* @returns
|
||||
*/
|
||||
export function setWeappConfig(params: Record<string, any>) {
|
||||
return request.put('weapp/config', params, {showSuccessMessage: true})
|
||||
return request.put('weapp/config', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -31,7 +31,41 @@ export function getTemplateList() {
|
||||
* @returns
|
||||
*/
|
||||
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}`)
|
||||
}
|
||||
|
||||
/***************************************************** 管理端 ****************************************************/
|
||||
@ -42,7 +76,7 @@ export function getBatchAcquisition(params: Record<string, any>) {
|
||||
* @returns
|
||||
*/
|
||||
export function uploadVersion(params: Record<string, any>) {
|
||||
return request.put('applet/upload', params, {showSuccessMessage: true})
|
||||
return request.put('applet/upload', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,7 +85,7 @@ export function uploadVersion(params: Record<string, any>) {
|
||||
* @returns
|
||||
*/
|
||||
export function addVersion(params: Record<string, any>) {
|
||||
return request.post('applet/version', params, {showSuccessMessage: true})
|
||||
return request.post('applet/version', params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
@ -60,12 +94,12 @@ export function addVersion(params: Record<string, any>) {
|
||||
* @returns
|
||||
*/
|
||||
export function getVersionList(params: Record<string, any>) {
|
||||
return request.get('applet/version', {params})
|
||||
return request.get('applet/version', { params })
|
||||
}
|
||||
|
||||
/**
|
||||
* 版本详情
|
||||
* @param params
|
||||
* @param id
|
||||
* @returns
|
||||
*/
|
||||
export function getVersionInfo(id: string) {
|
||||
@ -78,23 +112,14 @@ export function getVersionInfo(id: string) {
|
||||
* @returns
|
||||
*/
|
||||
export function editVersion(params: Record<string, any>) {
|
||||
return request.put(`applet/version/${params.id}`, params, {showSuccessMessage: true})
|
||||
return request.put(`applet/version/${params.id}`, params, { showSuccessMessage: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* 版本删除
|
||||
* @param params
|
||||
* @param id
|
||||
* @returns
|
||||
*/
|
||||
export function deleteVersion(id: string) {
|
||||
return request.delete(`applet/version/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 版本下载
|
||||
* @param params
|
||||
* @returns
|
||||
*/
|
||||
export function versionDown(id: string) {
|
||||
return request.get(`applet/version/download/${id}`, { "responseType": "blob" })
|
||||
}
|
||||
BIN
admin/src/app/assets/images/SaaS.png
Normal file
|
After Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 907 B |
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 455 B |
|
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
BIN
admin/src/app/assets/images/category_default.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 655 KiB After Width: | Height: | Size: 655 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
BIN
admin/src/app/assets/images/diy/notice/style_01.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 673 B |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 392 B |
|
Before Width: | Height: | Size: 897 B After Width: | Height: | Size: 897 B |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
admin/src/app/assets/images/index/app1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
admin/src/app/assets/images/index/app_default.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
admin/src/app/assets/images/index/apply_empty.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
admin/src/app/assets/images/index/auth1.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 773 B |
|
Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 550 B |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 157 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
admin/src/app/assets/images/index/new_site1.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
admin/src/app/assets/images/index/overview.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
admin/src/app/assets/images/index/site1.png
Normal file
|
After Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
admin/src/app/assets/images/index/site_class1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
BIN
admin/src/app/assets/images/one_type.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
admin/src/app/assets/images/setting/QRcode.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
admin/src/app/assets/images/setting/alipay1.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
admin/src/app/assets/images/setting/alipay2.png
Normal file
|
After Width: | Height: | Size: 81 KiB |