
rsa 加密(已经做成js 可以随便使用)默认支持大数据分块加密,支持私玥加密,公玥解密-公玥加密,私玥解密.
基于jsencrypt 的修改.
直接引用 import RSAEncrypt from '@/common/rsa.js';
中文大数据加密需要把数据转换位base64
var rsa=new RSA();
//生成私玥
var pri=rsa.Key.private();
//生成公玥
var pub=rsa.Key.public();
//待加密的数据,中文base64之后的.自己base64解码后就是原始数据,这里已经超过512了.
var estr="IOi/kOihjOWIsHByb21pc2UoKS50aGVu77yM5Y+R546w5pivcHJvbWlzZeWvueixoe+8jOaOqOWIsOW+ruS7u+WKoemYn+WIl+S4rQ0KDQomIzE4Mzsg5omn6KGMY29uc29sZS5sb2coJiMzOTtlbmQgYXN5bmMmIzM5OykNCg0KJiMxODM7IHRlc3Qx5aSW6Z2i55qE5ZCM5q2l5Luj56CB5omn6KGM57uT5p2f5ZCO77yM5Zue5YiwdGVzdDHkuK3vvIxjb25zb2xlLmxvZyhhd2FpdCB0ZXN0MigpKeaJp+ihjOWujOaIkOWQjui/lOWbnlByb21pc2UgeyZsdDtyZXNvbHZlZCZndDs6ICJyZXR1cm4gdGVzdDIgdmFsdWUife+8jOaYr3Byb21pc2Xlr7nosaHvvIzmjqjliLDlvq7ku7vliqHpmJ/liJfkuK0NCg0KJiMxODM7IOatpOaXtuesrOS4gOS4quWuj+S7u+WKoee7k+adn++8jOaJp+ihjOaJgOacieeahOW+ruS7u+WKoe+8jOWboOS4uuW+ruS7u+WKoemYn+WIl+WFiOi/m+WFiOWHuu+8jOaJgOS7peWFiOaJp+ihjGNvbnNvbGUubG9nKCYjMzk7cHJvbWlzZTImIzM5OynvvIzlkI7miafooYxjb25zb2xlLmxvZygmIzM5O3JldHVybiB0ZXN0MiB2YWx1ZSYjMzk7KQ0KDQomIzE4Mzsg5omn6KGMdGVzdDLlrozmiJDlkI7vvIzlkI7pnaLnmoTku6PnoIHkuI3lho3pmLvloZ7vvIzmiafooYxjb25zb2xlLmxvZygmIzM5O2VuZCB0ZXN0MSYjMzk7KTsNCg0KJiMxODM7IOaJp+ihjOS4i+S4quWuj+S7u+WKoe+8jOWNs+aJp+ihjGNvbnNvbGUubG9nKCYjMzk7c2V0VGltZW91dCYjMzk7KTsNCg0K6KGl5YWF5LiL5pyJ5YWz5a6P5Lu75Yqh5ZKM5b6u5Lu75Yqh55qE55+l6K+G";
//私玥加密
console.log("私玥加密");
var ec=rsa.encrypt.private(estr,pri);
console.log(ec);
//公玥解密
console.log("公玥解密");
var dc=rsa.decrypt.public(ec,pub);
console.log(dc);
//公玥加密
console.log("公玥加密");
var ecp=rsa.encrypt.public(estr,pub);
console.log(ecp);
//私玥解密
console.log("私玥解密");
var dcp=rsa.decrypt.private(ecp,pri);
console.log(dcp);
附近里面2个js 一个rsa.js 可以直接使用.
另一个是 修改过后的jsencrypt.js
导入到 common文件夹 引入 rsa.js 就OK
欢迎技术交流.
基于jsencrypt 的修改.
直接引用 import RSAEncrypt from '@/common/rsa.js';
中文大数据加密需要把数据转换位base64
var rsa=new RSA();
//生成私玥
var pri=rsa.Key.private();
//生成公玥
var pub=rsa.Key.public();
//待加密的数据,中文base64之后的.自己base64解码后就是原始数据,这里已经超过512了.
var estr="IOi/kOihjOWIsHByb21pc2UoKS50aGVu77yM5Y+R546w5pivcHJvbWlzZeWvueixoe+8jOaOqOWIsOW+ruS7u+WKoemYn+WIl+S4rQ0KDQomIzE4Mzsg5omn6KGMY29uc29sZS5sb2coJiMzOTtlbmQgYXN5bmMmIzM5OykNCg0KJiMxODM7IHRlc3Qx5aSW6Z2i55qE5ZCM5q2l5Luj56CB5omn6KGM57uT5p2f5ZCO77yM5Zue5YiwdGVzdDHkuK3vvIxjb25zb2xlLmxvZyhhd2FpdCB0ZXN0MigpKeaJp+ihjOWujOaIkOWQjui/lOWbnlByb21pc2UgeyZsdDtyZXNvbHZlZCZndDs6ICJyZXR1cm4gdGVzdDIgdmFsdWUife+8jOaYr3Byb21pc2Xlr7nosaHvvIzmjqjliLDlvq7ku7vliqHpmJ/liJfkuK0NCg0KJiMxODM7IOatpOaXtuesrOS4gOS4quWuj+S7u+WKoee7k+adn++8jOaJp+ihjOaJgOacieeahOW+ruS7u+WKoe+8jOWboOS4uuW+ruS7u+WKoemYn+WIl+WFiOi/m+WFiOWHuu+8jOaJgOS7peWFiOaJp+ihjGNvbnNvbGUubG9nKCYjMzk7cHJvbWlzZTImIzM5OynvvIzlkI7miafooYxjb25zb2xlLmxvZygmIzM5O3JldHVybiB0ZXN0MiB2YWx1ZSYjMzk7KQ0KDQomIzE4Mzsg5omn6KGMdGVzdDLlrozmiJDlkI7vvIzlkI7pnaLnmoTku6PnoIHkuI3lho3pmLvloZ7vvIzmiafooYxjb25zb2xlLmxvZygmIzM5O2VuZCB0ZXN0MSYjMzk7KTsNCg0KJiMxODM7IOaJp+ihjOS4i+S4quWuj+S7u+WKoe+8jOWNs+aJp+ihjGNvbnNvbGUubG9nKCYjMzk7c2V0VGltZW91dCYjMzk7KTsNCg0K6KGl5YWF5LiL5pyJ5YWz5a6P5Lu75Yqh5ZKM5b6u5Lu75Yqh55qE55+l6K+G";
//私玥加密
console.log("私玥加密");
var ec=rsa.encrypt.private(estr,pri);
console.log(ec);
//公玥解密
console.log("公玥解密");
var dc=rsa.decrypt.public(ec,pub);
console.log(dc);
//公玥加密
console.log("公玥加密");
var ecp=rsa.encrypt.public(estr,pub);
console.log(ecp);
//私玥解密
console.log("私玥解密");
var dcp=rsa.decrypt.private(ecp,pri);
console.log(dcp);
附近里面2个js 一个rsa.js 可以直接使用.
另一个是 修改过后的jsencrypt.js
导入到 common文件夹 引入 rsa.js 就OK
欢迎技术交流.
收起阅读 »
uni-app如何支持npm分包
一、背景
我们美家移动端业务使用uni-app
实现一码多端,目前上线了APP(包括Android和ios),微信小程序、百度小程序和H5。
从去年6月份以来,随着业务的快速发展,从最初单一产品线,不断孵化出包括逛逛美家、美家工作台APP、美家旺铺、美家直播Live、智能名片多个比较庞大的产品体系。之间存在大量可复用的模块、组件和页面,于是搭建npm
私有仓库,目前接近50
个包,接近400
个版本,周下载量接近140
次,接下来会加快节奏,将更多公共资源整合进来。
uni-app项目引入npm包(即使是分包页面引入),打包微信小程序后,都会统一编译到小程序根目录的 node-modules
文件夹。其中,我们有个自主开发的直播模块,打包后,接近1M
大小,多个项目引入后,导致主包过大,如果粗暴将node-modules设为分包,会影响主包的其他页面。咨询uni-app相关开发人员,得到的回复是:确实不支持npm分包,处理起来会比较复杂,暂时也没有支持计划。为了满足业务需要,只能自力更生!
二、思路
将需要分包的npm包复制一份到分包目录,改成相对路径引入,这样打包之后,引入的npm包就会在分包里面。很明显,这种事情不能靠手工去处理。uni-app底层是通过webpack
打包,可以通过开发插件解决问题。想到两种方案:
-
添加JSON配置文件,手动维护
需要分包的npm包和引用文件路径
的映射关系,分包页面通过相对路径引入npm包,在webpack
解析模块前,比如beforeRun
阶段,根据配置,将npm包自动copy到引用文件所在的目录。 -
DSL阶段
:约定一种引入分包的import
语法。AST
阶段:添加Babel模块解析器解析分包语法,再将解析的npm包copy到引用文件所在目录,同时模块路径改成相对路径。
三、对比
- 方案1,配置繁琐,而且引用和配置存在松散耦合关系,随着项目的不断迭代,容易导致JSON配置文件越来越臃肿和冗余,不好维护。
- 方案2,语法层控制,不存在松散耦合,是否需要分包,切换语法就好,添加删除引入,不需要修改配置,不会出现历史包袱问题。
四、实现
本着约定大于配置
的原则,最终我们采用方案2。
约定
分包import
语法:
import module from "subpack:module"
模块解析器
基于babel-plugin-module-resolver模块解析插件进行扩展。
1.安装依赖
npm install babel-plugin-module-resolver --save-dev
2.配置babel.config.js
1、通过cli构建的项目:在项目根目录下。
2、通过HBuilderX创建的项目:安装目录下HBuilderX/plugins/uniapp-cli/babel.config.js
const fs = require('fs-extra');
const path = require("path");
const plugins = [
["module-resolver", {
"root": ["./"],
resolvePath(sourcePath, currentFile, opts) {
// 解析模块路径
const [scope,pakageName] = sourcePath.split(":");
// 判断是否为分包模块
if(scope == "subpack"){
// 如果是,将npm包copy到当前引入文件所在目录
fs.copySync(`./node_modules/${pakageName}/`, `${path.dirname(currentFile)}/${pakageName}`);
// 改成相对路径引用
sourcePath = `./${pakageName}`
}
return sourcePath;
}
}]
]
...
五、写在最后
通过上述方案,暂时可以满足我们目前的业务需求。还存在两个问题:
- 通过HBuilderX创建的项目,根目录配置
babel.config.js
无效,需要去安装目录下手动配置,版本升级,会被覆盖。 - 约定分包引入的npm包,其引入的npm包,是否需要一起做分包处理,目前我们是没做的,还在权衡。
如果大家有其他思路,欢迎一起沟通讨论。最后感谢一下优秀的Dcloud团队
!
一、背景
我们美家移动端业务使用uni-app
实现一码多端,目前上线了APP(包括Android和ios),微信小程序、百度小程序和H5。
从去年6月份以来,随着业务的快速发展,从最初单一产品线,不断孵化出包括逛逛美家、美家工作台APP、美家旺铺、美家直播Live、智能名片多个比较庞大的产品体系。之间存在大量可复用的模块、组件和页面,于是搭建npm
私有仓库,目前接近50
个包,接近400
个版本,周下载量接近140
次,接下来会加快节奏,将更多公共资源整合进来。
uni-app项目引入npm包(即使是分包页面引入),打包微信小程序后,都会统一编译到小程序根目录的 node-modules
文件夹。其中,我们有个自主开发的直播模块,打包后,接近1M
大小,多个项目引入后,导致主包过大,如果粗暴将node-modules设为分包,会影响主包的其他页面。咨询uni-app相关开发人员,得到的回复是:确实不支持npm分包,处理起来会比较复杂,暂时也没有支持计划。为了满足业务需要,只能自力更生!
二、思路
将需要分包的npm包复制一份到分包目录,改成相对路径引入,这样打包之后,引入的npm包就会在分包里面。很明显,这种事情不能靠手工去处理。uni-app底层是通过webpack
打包,可以通过开发插件解决问题。想到两种方案:
-
添加JSON配置文件,手动维护
需要分包的npm包和引用文件路径
的映射关系,分包页面通过相对路径引入npm包,在webpack
解析模块前,比如beforeRun
阶段,根据配置,将npm包自动copy到引用文件所在的目录。 -
DSL阶段
:约定一种引入分包的import
语法。AST
阶段:添加Babel模块解析器解析分包语法,再将解析的npm包copy到引用文件所在目录,同时模块路径改成相对路径。
三、对比
- 方案1,配置繁琐,而且引用和配置存在松散耦合关系,随着项目的不断迭代,容易导致JSON配置文件越来越臃肿和冗余,不好维护。
- 方案2,语法层控制,不存在松散耦合,是否需要分包,切换语法就好,添加删除引入,不需要修改配置,不会出现历史包袱问题。
四、实现
本着约定大于配置
的原则,最终我们采用方案2。
约定
分包import
语法:
import module from "subpack:module"
模块解析器
基于babel-plugin-module-resolver模块解析插件进行扩展。
1.安装依赖
npm install babel-plugin-module-resolver --save-dev
2.配置babel.config.js
1、通过cli构建的项目:在项目根目录下。
2、通过HBuilderX创建的项目:安装目录下HBuilderX/plugins/uniapp-cli/babel.config.js
const fs = require('fs-extra');
const path = require("path");
const plugins = [
["module-resolver", {
"root": ["./"],
resolvePath(sourcePath, currentFile, opts) {
// 解析模块路径
const [scope,pakageName] = sourcePath.split(":");
// 判断是否为分包模块
if(scope == "subpack"){
// 如果是,将npm包copy到当前引入文件所在目录
fs.copySync(`./node_modules/${pakageName}/`, `${path.dirname(currentFile)}/${pakageName}`);
// 改成相对路径引用
sourcePath = `./${pakageName}`
}
return sourcePath;
}
}]
]
...
五、写在最后
通过上述方案,暂时可以满足我们目前的业务需求。还存在两个问题:
- 通过HBuilderX创建的项目,根目录配置
babel.config.js
无效,需要去安装目录下手动配置,版本升级,会被覆盖。 - 约定分包引入的npm包,其引入的npm包,是否需要一起做分包处理,目前我们是没做的,还在权衡。
如果大家有其他思路,欢迎一起沟通讨论。最后感谢一下优秀的Dcloud团队
!

gin-vue-admin基于vue和gin框架的快速后台管理系统脚手架 让你的开发如虎添翼
项目文档
在线文档 : https://www.gin-vue-admin.com/
- 前端UI框架:element-ui
- 后台框架:gin
1. 基本介绍
1.1 项目介绍
测试用户名:admin
测试密码:123456
Gin-vue-admin是一个基于vue和gin开发的全栈前后端分离的后台管理系统,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。
1.2 贡献指南
Hi! 首先感谢你使用 gin-vue-admin。
Gin-vue-admin 是一套为后台管理平台准备的一整套前后端分离架构式的开源框架,旨在快速搭建后台管理系统。
Gin-vue-admin 的成长离不开大家的支持,如果你愿意为 gin-vue-admin 贡献代码或提供建议,请阅读以下内容。
1.2.1 Issue 规范
-
issue 仅用于提交 Bug 或 Feature 以及设计相关的内容,其它内容可能会被直接关闭。如果你在使用时产生了疑问,请到 Slack 或 Gitter 里咨询。
-
在提交 issue 之前,请搜索相关内容是否已被提出。
1.2.2 Pull Request 规范
-
请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
-
commit 信息要以
[文件名]: 描述信息
的形式填写,例如README.md: fix xxx bug
。 -
<font color=red>确保 PR 是提交到
develop
分支,而不是master
分支。</font> -
如果是修复 bug,请在 PR 中给出描述信息。
-
合并代码需要两名维护人员参与:一人进行 review 后 approve,另一人再次 review,通过后即可合并。
1.3 版本列表
-
master: 2.0, 用于生产环境
-
develop: 2.0, 用于测试环境
-
gin-vue-admin_v2.0_dev (v2.0 不再兼容 v1.0)
-
gin-vue-admin_v1.0_stable (v1.0停止维护)
-
gin-vue-admin_v1.0_dev (v1.0停止维护)
2. 使用说明
- node版本 > v8.6.0
- golang版本 >= v1.11
- IDE推荐:Goland
- 各位在clone项目以后,把db文件导入自己创建的库后,最好前往七牛云申请自己的空间地址。
- gormv2版本初始化数据库可以利用批量创建功能,这里已经写好初始化代码,需要在main.go内打开 initialize.Data() 的注释即可
- 替换掉项目中的七牛云公钥,私钥,仓名和默认url地址,以免发生测试文件数据错乱
使用docker-compose体验本项目
- 安装 docker-compose 官方文档
# 在Linux安装 # 1.1 运行此命令以下载Docker Compose的当前稳定版本 sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 1.2 将可执行权限应用于二进制文件 sudo chmod +x /usr/local/bin/docker-compose
# 使用Python的pip安装 pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
- 使用 Docker Desktop
- Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows
- Mac: https://hub.docker.com/editions/community/docker-ce-desktop-mac/
- 使用git克隆本项目
-
git clone https://github.com/flipped-aurora/gin-vue-admin.git
-
-
使用docker-compose up一键启动启动项目
-
# 使用docker-compose启动四个容器 docker-compose up # 如果您修改了某些配置选项,可以使用此命令重新打包镜像 docker-compose up --build # 使用docker-compose 后台启动 docker-compose up -d
-
web项目预览 http://127.0.0.1:8888/admin
-
swagger文档 http://127.0.0.1:8888/swagger/index.html
-
2.1 web端
# clone the project
git clone https://github.com/piexlmax/gin-vue-admin.git
# enter the project directory
cd web
# install dependency
npm install
# develop
npm run serve
2.2 server端
# 使用 go.mod
# 安装go依赖包
go list (go mod tidy)
# 编译
go build
2.3 swagger自动化API文档
2.3.1 安装 swagger
(1)可以翻墙
go get -u github.com/swaggo/swag/cmd/swag
(2)无法翻墙
由于国内没法安装 go.org/x 包下面的东西,推荐使用 goproxy.io
如果您使用的 Go 版本是 1.13 及以上(推荐)
# 启用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 环境变量
go env -w GOPROXY=https://goproxy.io,direct
# 执行
go get -g -v github.com/swaggo/swag/cmd/swag
# 到GOPATH的/src/github.com/swaggo/swag/cmd/swag路径下执行
go install
2.3.2 生成API文档
cd server
swag init
执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8888/swagger/index.html,即可查看swagger文档
3. 技术选型
- 前端:用基于
vue
的Element-UI
构建基础页面。 - 后端:用
Gin
快速搭建基础restful风格API,Gin
是一个go语言编写的Web框架。 - 数据库:采用
MySql
(5.6.44)版本,使用gorm
实现对数据库的基本操作,已添加对sqlite数据库的支持。 - 缓存:使用
Redis
实现记录当前活跃用户的jwt
令牌并实现多点登录限制。 - API文档:使用
Swagger
构建自动化文档。 - 配置文件:使用
fsnotify
和viper
实现yaml
格式的配置文件。 - 日志:使用
go-logging
实现日志记录。
4. 项目架构
4.1 系统架构图
4.2 前端详细设计图 (提供者:<a href="https://github.com/baobeisuper">baobeisuper</a>)
4.3 目录结构
├─server (后端文件夹)
│ ├─api (API)
│ ├─config (配置包)
│ ├─core (內核)
│ ├─db (数据库脚本)
│ ├─docs (swagger文档目录)
│ ├─global (全局对象)
│ ├─initialiaze (初始化)
│ ├─middleware (中间件)
│ ├─model (结构体层)
│ ├─resource (资源)
│ ├─router (路由)
│ ├─service (服务)
│ └─utils (公共功能)
└─web (前端文件)
├─public (发布模板)
└─src (源码包)
├─api (向后台发送ajax的封装层)
├─assets (静态文件)
├─components(组件)
├─router (前端路由)
├─store (vuex 状态管理仓)
├─style (通用样式文件)
├─utils (前端工具库)
└─view (前端页面)
5. 主要功能
- 权限管理:基于
jwt
和casbin
实现的权限管理 - 文件上传下载:实现基于七牛云的文件上传操作(为了方便大家测试,我公开了自己的七牛测试号的各种重要token,恳请大家不要乱传东西)
- 分页封装:前端使用mixins封装分页,分页方法调用mixins即可
- 用户管理:系统管理员分配用户角色和角色权限。
- 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。
- 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。
- api管理:不同用户可调用的api接口的权限不同。
- 配置管理:配置文件可前台修改(测试环境不开放此功能)。
- 富文本编辑器:MarkDown编辑器功能嵌入。
- 条件搜索:增加条件搜索示例。
- restful示例:可以参考用户管理模块中的示例API。
前端文件参考: src\view\superAdmin\api\api.vue 后台文件参考: model\dnModel\api.go
- 多点登录限制:需要在
config.yaml
中把system
中的useMultipoint
修改为true(需要自行配置Redis和Config中的Redis参数,测试阶段,有bug请及时反馈)。 - 分片长传:提供文件分片上传和大文件分片上传功能示例。
- 表单生成器:表单生成器借助 @form-generator。
- 代码生成器:后台基础逻辑以及简单curd的代码生成器。
6. 计划任务
- [ ] 导入,导出Excel
- [ ] Echart图表支持
- [ ] 工作流,任务交接功能开发
- [ ] 单独前端使用模式以及数据模拟
7. 知识库
7.1 团队博客
https://www.yuque.com/flipped-aurora
内有前端框架教学视频。如果觉得项目对您有所帮助可以添加我的个人微信:shouzi_1994,欢迎您提出宝贵的需求。
7.2 教学视频
(1)环境搭建
Bilibili:https://www.bilibili.com/video/BV1Fg4y187Bw/ (v1.0版本视频,v2.0操作相同目录不同)
(2)模板使用
Bilibili:https://www.bilibili.com/video/BV16K4y1r7BD/ (v1.0版本视频,v2.0操作相同目录不同)
(3)2.0目录以及开发体验
Bilibili:https://www.bilibili.com/video/BV1aV411d7Gm#reply2831798461
(4)golang基础教学视频录制中...
https://space.bilibili.com/322210472/channel/detail?cid=108884
8. 捐赠
如果你觉得这个项目对你有帮助,你可以请作者喝饮料 :tropical_drink: 点我
9. 商用注意事项
如果您将此项目用于商业用途,请遵守Apache2.0协议并保留作者技术支持声明。
项目文档
在线文档 : https://www.gin-vue-admin.com/
- 前端UI框架:element-ui
- 后台框架:gin
1. 基本介绍
1.1 项目介绍
测试用户名:admin
测试密码:123456
Gin-vue-admin是一个基于vue和gin开发的全栈前后端分离的后台管理系统,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。
1.2 贡献指南
Hi! 首先感谢你使用 gin-vue-admin。
Gin-vue-admin 是一套为后台管理平台准备的一整套前后端分离架构式的开源框架,旨在快速搭建后台管理系统。
Gin-vue-admin 的成长离不开大家的支持,如果你愿意为 gin-vue-admin 贡献代码或提供建议,请阅读以下内容。
1.2.1 Issue 规范
-
issue 仅用于提交 Bug 或 Feature 以及设计相关的内容,其它内容可能会被直接关闭。如果你在使用时产生了疑问,请到 Slack 或 Gitter 里咨询。
-
在提交 issue 之前,请搜索相关内容是否已被提出。
1.2.2 Pull Request 规范
-
请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
-
commit 信息要以
[文件名]: 描述信息
的形式填写,例如README.md: fix xxx bug
。 -
<font color=red>确保 PR 是提交到
develop
分支,而不是master
分支。</font> -
如果是修复 bug,请在 PR 中给出描述信息。
-
合并代码需要两名维护人员参与:一人进行 review 后 approve,另一人再次 review,通过后即可合并。
1.3 版本列表
-
master: 2.0, 用于生产环境
-
develop: 2.0, 用于测试环境
-
gin-vue-admin_v2.0_dev (v2.0 不再兼容 v1.0)
-
gin-vue-admin_v1.0_stable (v1.0停止维护)
-
gin-vue-admin_v1.0_dev (v1.0停止维护)
2. 使用说明
- node版本 > v8.6.0
- golang版本 >= v1.11
- IDE推荐:Goland
- 各位在clone项目以后,把db文件导入自己创建的库后,最好前往七牛云申请自己的空间地址。
- gormv2版本初始化数据库可以利用批量创建功能,这里已经写好初始化代码,需要在main.go内打开 initialize.Data() 的注释即可
- 替换掉项目中的七牛云公钥,私钥,仓名和默认url地址,以免发生测试文件数据错乱
使用docker-compose体验本项目
- 安装 docker-compose 官方文档
# 在Linux安装 # 1.1 运行此命令以下载Docker Compose的当前稳定版本 sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 1.2 将可执行权限应用于二进制文件 sudo chmod +x /usr/local/bin/docker-compose
# 使用Python的pip安装 pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
- 使用 Docker Desktop
- Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows
- Mac: https://hub.docker.com/editions/community/docker-ce-desktop-mac/
- 使用git克隆本项目
-
git clone https://github.com/flipped-aurora/gin-vue-admin.git
-
-
使用docker-compose up一键启动启动项目
-
# 使用docker-compose启动四个容器 docker-compose up # 如果您修改了某些配置选项,可以使用此命令重新打包镜像 docker-compose up --build # 使用docker-compose 后台启动 docker-compose up -d
-
web项目预览 http://127.0.0.1:8888/admin
-
swagger文档 http://127.0.0.1:8888/swagger/index.html
-
2.1 web端
# clone the project
git clone https://github.com/piexlmax/gin-vue-admin.git
# enter the project directory
cd web
# install dependency
npm install
# develop
npm run serve
2.2 server端
# 使用 go.mod
# 安装go依赖包
go list (go mod tidy)
# 编译
go build
2.3 swagger自动化API文档
2.3.1 安装 swagger
(1)可以翻墙
go get -u github.com/swaggo/swag/cmd/swag
(2)无法翻墙
由于国内没法安装 go.org/x 包下面的东西,推荐使用 goproxy.io
如果您使用的 Go 版本是 1.13 及以上(推荐)
# 启用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 环境变量
go env -w GOPROXY=https://goproxy.io,direct
# 执行
go get -g -v github.com/swaggo/swag/cmd/swag
# 到GOPATH的/src/github.com/swaggo/swag/cmd/swag路径下执行
go install
2.3.2 生成API文档
cd server
swag init
执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8888/swagger/index.html,即可查看swagger文档
3. 技术选型
- 前端:用基于
vue
的Element-UI
构建基础页面。 - 后端:用
Gin
快速搭建基础restful风格API,Gin
是一个go语言编写的Web框架。 - 数据库:采用
MySql
(5.6.44)版本,使用gorm
实现对数据库的基本操作,已添加对sqlite数据库的支持。 - 缓存:使用
Redis
实现记录当前活跃用户的jwt
令牌并实现多点登录限制。 - API文档:使用
Swagger
构建自动化文档。 - 配置文件:使用
fsnotify
和viper
实现yaml
格式的配置文件。 - 日志:使用
go-logging
实现日志记录。
4. 项目架构
4.1 系统架构图
4.2 前端详细设计图 (提供者:<a href="https://github.com/baobeisuper">baobeisuper</a>)
4.3 目录结构
├─server (后端文件夹)
│ ├─api (API)
│ ├─config (配置包)
│ ├─core (內核)
│ ├─db (数据库脚本)
│ ├─docs (swagger文档目录)
│ ├─global (全局对象)
│ ├─initialiaze (初始化)
│ ├─middleware (中间件)
│ ├─model (结构体层)
│ ├─resource (资源)
│ ├─router (路由)
│ ├─service (服务)
│ └─utils (公共功能)
└─web (前端文件)
├─public (发布模板)
└─src (源码包)
├─api (向后台发送ajax的封装层)
├─assets (静态文件)
├─components(组件)
├─router (前端路由)
├─store (vuex 状态管理仓)
├─style (通用样式文件)
├─utils (前端工具库)
└─view (前端页面)
5. 主要功能
- 权限管理:基于
jwt
和casbin
实现的权限管理 - 文件上传下载:实现基于七牛云的文件上传操作(为了方便大家测试,我公开了自己的七牛测试号的各种重要token,恳请大家不要乱传东西)
- 分页封装:前端使用mixins封装分页,分页方法调用mixins即可
- 用户管理:系统管理员分配用户角色和角色权限。
- 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。
- 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。
- api管理:不同用户可调用的api接口的权限不同。
- 配置管理:配置文件可前台修改(测试环境不开放此功能)。
- 富文本编辑器:MarkDown编辑器功能嵌入。
- 条件搜索:增加条件搜索示例。
- restful示例:可以参考用户管理模块中的示例API。
前端文件参考: src\view\superAdmin\api\api.vue 后台文件参考: model\dnModel\api.go
- 多点登录限制:需要在
config.yaml
中把system
中的useMultipoint
修改为true(需要自行配置Redis和Config中的Redis参数,测试阶段,有bug请及时反馈)。 - 分片长传:提供文件分片上传和大文件分片上传功能示例。
- 表单生成器:表单生成器借助 @form-generator。
- 代码生成器:后台基础逻辑以及简单curd的代码生成器。
6. 计划任务
- [ ] 导入,导出Excel
- [ ] Echart图表支持
- [ ] 工作流,任务交接功能开发
- [ ] 单独前端使用模式以及数据模拟
7. 知识库
7.1 团队博客
https://www.yuque.com/flipped-aurora
内有前端框架教学视频。如果觉得项目对您有所帮助可以添加我的个人微信:shouzi_1994,欢迎您提出宝贵的需求。
7.2 教学视频
(1)环境搭建
Bilibili:https://www.bilibili.com/video/BV1Fg4y187Bw/ (v1.0版本视频,v2.0操作相同目录不同)
(2)模板使用
Bilibili:https://www.bilibili.com/video/BV16K4y1r7BD/ (v1.0版本视频,v2.0操作相同目录不同)
(3)2.0目录以及开发体验
Bilibili:https://www.bilibili.com/video/BV1aV411d7Gm#reply2831798461
(4)golang基础教学视频录制中...
https://space.bilibili.com/322210472/channel/detail?cid=108884
8. 捐赠
如果你觉得这个项目对你有帮助,你可以请作者喝饮料 :tropical_drink: 点我
9. 商用注意事项
如果您将此项目用于商业用途,请遵守Apache2.0协议并保留作者技术支持声明。
收起阅读 »
有谁知道吗?uniapp云打包之后接口请求不成功aa11
11dd有谁知道吗?uniapp云打包之后接口请求不成功dd11
11dd有谁知道吗?uniapp云打包之后接口请求不成功dd11

有谁知道吗?uniapp云打包之后接口请求不成功aa11
11dd有谁知道吗?uniapp云打包之后接口请求不成功dd11
11dd有谁知道吗?uniapp云打包之后接口请求不成功dd11

<语法提示库>、<uniapp-cli依赖包node_modules全更新>、< Browserslist:caniuse-lite is outdated>
HBuilderX 更新脚手架(uniapp-cli)依赖包node_modules
目录路径 HBuilderX\plugins\uniapp-cli\
进入uniapp-cli目录下,删除node_modules
和package-lock.json
文件,执行命令$ npm install
替换旧版本软件路径下的文件(建议删除原node_modules文件夹):
HBuilderX\plugins\uniapp-cli\node_modules
HBuilderX\plugins\uniapp-cli\package.json
HBuilderX\plugins\uniapp-cli\package-lock.json
刷新,退出重新启动生效。
HBuilderX语法提示库
目录路径 HBuilderX\plugins\
外网HX自动下载语法提示库,下载完成后,进入路径HBuilderX\plugins\
,拷贝 ls 和 jre
文件夹备用
进入旧版本软件路径 HBuilderX\plugins\
,粘贴 ls 和 jre
文件夹,刷新重启即可。
另还有个 nodeserver
文件夹,也可以按照上述方法同时拷贝至目录
HBuilderX 更新脚手架(uniapp-cli)依赖包node_modules
目录路径 HBuilderX\plugins\uniapp-cli\
进入uniapp-cli目录下,删除node_modules
和package-lock.json
文件,执行命令$ npm install
替换旧版本软件路径下的文件(建议删除原node_modules文件夹):
HBuilderX\plugins\uniapp-cli\node_modules
HBuilderX\plugins\uniapp-cli\package.json
HBuilderX\plugins\uniapp-cli\package-lock.json
刷新,退出重新启动生效。
HBuilderX语法提示库
目录路径 HBuilderX\plugins\
外网HX自动下载语法提示库,下载完成后,进入路径HBuilderX\plugins\
,拷贝 ls 和 jre
文件夹备用
进入旧版本软件路径 HBuilderX\plugins\
,粘贴 ls 和 jre
文件夹,刷新重启即可。
另还有个 nodeserver
文件夹,也可以按照上述方法同时拷贝至目录

unipush解决华为、小米、魅族收不到厂商推送的问题
1.保证厂商推送设置AppID,AppKey,AppSecret正确
2.在uniapp程序入口加入以下代码:
var pinf = plus.push.getClientInfo();
var cid = pinf.clientid;//客户端标识
console.log('cid=='+cid)
plus.push.addEventListener("receive", function(msg) {
if ( msg.aps ) { // Apple APNS message
//APNS下发的消息,应用在前台
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
} else if ( msg.type != "receive" ) { // 特殊payload标识本地创建的消息
//本地创建的消息,通常不需要处理
//注意:不要在这种情况下再此调用plus.push.createMessage,从而引起循环创建本地消息
} else {
//接收到在线透传消息
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
// }
}, false );
plus.push.addEventListener("click", function(msg) {
//todo
}, false );
};
3.在unipush发送透传消息
1.保证厂商推送设置AppID,AppKey,AppSecret正确
2.在uniapp程序入口加入以下代码:
var pinf = plus.push.getClientInfo();
var cid = pinf.clientid;//客户端标识
console.log('cid=='+cid)
plus.push.addEventListener("receive", function(msg) {
if ( msg.aps ) { // Apple APNS message
//APNS下发的消息,应用在前台
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
} else if ( msg.type != "receive" ) { // 特殊payload标识本地创建的消息
//本地创建的消息,通常不需要处理
//注意:不要在这种情况下再此调用plus.push.createMessage,从而引起循环创建本地消息
} else {
//接收到在线透传消息
plus.push.createMessage(msg.content, msg.payload, {title: msg.title});
// }
}, false );
plus.push.addEventListener("click", function(msg) {
//todo
}, false );
};
3.在unipush发送透传消息
收起阅读 »
插件大赛2020评奖结果揭晓,这些优秀的插件你都用起来了吗?
2020年插件大赛圆满结束。
感谢各位插件作者,为提升中国开发者的开发效率,又贡献了大量优秀的轮子。
本次大赛,参赛作品琳琅满目,前端、云端、HBuilderX插件均涌现优秀作品。
我们还注意到,很多大厂或开发者服务原厂入驻插件市场,为开发者提供了官方优质插件。
由于参赛优质插件较多,为感谢和激励插件作者,DCloud官方扩充了奖品设置:
- 二等奖由原定的5名改为6名
- 三等奖奖品由 uniCloud代金券 改为 DCloud代金券。后者除了可用于uniCloud,还可用于付费打包、短信充值等其他DCloud的付费业务。
本次插件大赛的奖品由DCloud、腾讯云、阿里云分别发放。优秀的插件可以多重领奖。
获奖名单:
特等奖
奖品:5万元插件包销 + 旗舰手机1部(iphone 11 或 华为mate pro 5G 2选1)+ 插件市场置顶推荐1个月 + HBuilderX预置
名额:1名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
国云商城 云端一体电商系统 | MixR(享受包销) | https://ext.dcloud.net.cn/plugin?id=2413 |
备注:本插件上线一个月,销售额过万。请各位插件作者务必重视uniCloud云端一体插件销售带来的巨大机会。
一等奖
奖品:3万元插件包销 + 旗舰手机1部(iphone 11 或 华为mate pro 5G 2选1)+ 插件市场置顶推荐半个月 + HBuilderX预置
名额:2名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
discus!Q | 腾讯云 | https://ext.dcloud.net.cn/plugin?id=2336 |
uViewUI | uViewUI | https://ext.dcloud.net.cn/plugin?id=1593 |
二等奖
奖品:1万元插件包销 + 极客外设1台(HHKB 机械键盘 或 小米 34寸曲面显示器 2选1)+ 插件市场置顶推荐1个星期
名额:6名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
支付宝扫码原生插件 | 支付宝mPaas团队 | https://ext.dcloud.net.cn/plugin?id=2636 |
彩虹屁老婆 HBuilderX编程伴侣插件 | ezshine | https://ext.dcloud.net.cn/plugin?id=2157 |
baseCloud 云开发全栈快速开发框架 | BaseCloud | https://ext.dcloud.net.cn/plugin?id=2481 |
云上商城 | 军军 (享受包销) | https://ext.dcloud.net.cn/plugin?id=1989 |
coolAdmin | COOL团队 (享受包销) | https://ext.dcloud.net.cn/plugin?id=2444 |
基于unipush的云端一体IM | 林举 (享受包销) | https://ext.dcloud.net.cn/plugin?id=2670 |
三等奖
奖品:800元DCloud代金券 + 小米13.5寸液晶小黑板
名额:10名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
小程序转uni-app的HBuilderX插件 | 375890534@qq.com | https://ext.dcloud.net.cn/plugin?id=2656 |
翻译插件 HBuilderX插件,翻译各种语言,还可将中文翻译为英文或拼音变量,支持驼峰等各种设置 | cloverXV | https://ext.dcloud.net.cn/plugin?id=2070 |
APP信息管理系统 基于uniCloud的APP运营工具:灰度更新;审核中隐藏模块,审核后显示模块;APP系统参数设置 | wenjun | https://ext.dcloud.net.cn/plugin?id=2657 |
腾讯云插件 uniCloud调用各种腾讯云能力,包括内容安全、AI识别等 | 腾讯云 | https://ext.dcloud.net.cn/plugin?id=2139 |
Parser富文本插件 连nvue都支持的全端富文本插件 | Jyf | https://ext.dcloud.net.cn/plugin?id=805 |
unify 含nvue的全端UI库 | deng.qi.chang@qq.com | https://ext.dcloud.net.cn/plugin?id=2251 |
mypUI 含nvue的全端UI库 | 语文数学天才 | https://ext.dcloud.net.cn/plugin?id=2190 |
扫码自动识别快递单号 | 1076217653@qq.com | https://ext.dcloud.net.cn/plugin?id=2660 |
农场果园种菜偷菜uniCloud版 | ezshine | https://ext.dcloud.net.cn/plugin?id=2626 |
VK云函数路由模式uniCloud开发框架 | 370725567@qq.com | https://ext.dcloud.net.cn/plugin?id=2204 |
贡献奖
奖品:uni-app纪念马克杯 或 uni-app T恤 或 HBuilderX加长鼠标垫 3选1
名额:32名
DCloud获奖插件作者须知
- 请及时在社区的个人设置中完善资料补充邮寄地址电话等信息。
- 如奖品涉及选项,请发邮件到 bd@dcloud.io,标题为插件大赛奖品选择。请使用插件作者身份对应的邮箱账户发送,在内容中说明你选择的具体奖品。
- 二等奖中的HHKB键盘,可自选黑色白色、有刻无刻,如无特别备注,将随机发放。
- 贡献奖中的杯子、鼠标垫、t恤,开发者发邮件的说明为意向说明。因为这些DCloud定制纪念品是提前做好的,不是中奖者申报选择后才开始定制的。官方尽量满足中奖者的选择倾向,但在极端情况下,如32个人全都选择杯子,可能杯子库存不足,此时将改为随机发送。
协办方及赞助方奖品分配方案
腾讯云、阿里云大力支持本次大赛,给插件作者提供丰富奖励。
腾讯云云开发提供的奖品,分配方案如下:
- 特等奖、一等奖、二等奖、三等奖获奖者,均将获得100元腾讯云代金券(满200-100),可购买适用产品OCR、人脸识别、图像处理、云直播、云点播、云开发。领取方式:使用插件市场绑定的邮箱,发邮件到 service@dcloud.io,邮件中说明获奖插件名称、插件作者自己的腾讯云账号,腾讯云后续会将代金券下发到对应账号中。
- 如下插件将获得腾讯云云开发公众号推荐宣传:国云商城、扫码自动识别快递单号
阿里云提供的奖品分配方案如下:
阿里云提供的奖品,分配方案如下:
- 阿里云开发者社区cherry机械键盘1个,获奖者:
- 阿里云开发者社区电脑双肩包3个,获奖者:
- 阿里云开发者社区定制鼠标垫15个
- 阿里云开发者社区文化T恤衫 15件
- 为所有插件获奖者提供阿里云移动研发平台EMAS产品代金券,明细如下,领取方式:获奖作者使用插件市场绑定的邮箱,发邮件到 service@dcloud.io,邮件中说明获奖插件名称、插件作者自己的阿里云账号,阿里云后续会将代金券下发到对应账号中。
奖项 | 获奖人数 | 代金券设置 | 代金券金额合计 | 使用规则 |
---|---|---|---|---|
特等奖 | 1 | 2000 | 2000 | 参见使用规则 |
一等奖 | 2 | 1000 | 2000 | |
二等奖 | 5 | 500 | 2500 | |
三等奖 | 10 | 200 | 2000 | |
贡献奖 | 32 | 100 | 3200 | |
合计 | 50人 | 11700元 |
更新邮寄地址信息或发送选择奖品的邮件,时间最晚不超过9月15日,过期将视为放弃领奖。
已获奖作者请耐心等待,收集齐全作者快递信息后官方会统一快递奖品。
结语
没有参赛或中奖的开发者不要气馁,DCloud接下来还将推出其他扶持uniCloud插件和HBuilderX插件的方式。
同时欢迎业内其他开发者服务公司与DCloud联合举办插件大赛。
期待各位插件作者再接再厉,为广大提供更好的轮子!
也请各位开发者,多多支持优秀的插件作者,多购买或赞赏他们的插件。
2020年插件大赛圆满结束。
感谢各位插件作者,为提升中国开发者的开发效率,又贡献了大量优秀的轮子。
本次大赛,参赛作品琳琅满目,前端、云端、HBuilderX插件均涌现优秀作品。
我们还注意到,很多大厂或开发者服务原厂入驻插件市场,为开发者提供了官方优质插件。
由于参赛优质插件较多,为感谢和激励插件作者,DCloud官方扩充了奖品设置:
- 二等奖由原定的5名改为6名
- 三等奖奖品由 uniCloud代金券 改为 DCloud代金券。后者除了可用于uniCloud,还可用于付费打包、短信充值等其他DCloud的付费业务。
本次插件大赛的奖品由DCloud、腾讯云、阿里云分别发放。优秀的插件可以多重领奖。
获奖名单:
特等奖
奖品:5万元插件包销 + 旗舰手机1部(iphone 11 或 华为mate pro 5G 2选1)+ 插件市场置顶推荐1个月 + HBuilderX预置
名额:1名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
国云商城 云端一体电商系统 | MixR(享受包销) | https://ext.dcloud.net.cn/plugin?id=2413 |
备注:本插件上线一个月,销售额过万。请各位插件作者务必重视uniCloud云端一体插件销售带来的巨大机会。
一等奖
奖品:3万元插件包销 + 旗舰手机1部(iphone 11 或 华为mate pro 5G 2选1)+ 插件市场置顶推荐半个月 + HBuilderX预置
名额:2名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
discus!Q | 腾讯云 | https://ext.dcloud.net.cn/plugin?id=2336 |
uViewUI | uViewUI | https://ext.dcloud.net.cn/plugin?id=1593 |
二等奖
奖品:1万元插件包销 + 极客外设1台(HHKB 机械键盘 或 小米 34寸曲面显示器 2选1)+ 插件市场置顶推荐1个星期
名额:6名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
支付宝扫码原生插件 | 支付宝mPaas团队 | https://ext.dcloud.net.cn/plugin?id=2636 |
彩虹屁老婆 HBuilderX编程伴侣插件 | ezshine | https://ext.dcloud.net.cn/plugin?id=2157 |
baseCloud 云开发全栈快速开发框架 | BaseCloud | https://ext.dcloud.net.cn/plugin?id=2481 |
云上商城 | 军军 (享受包销) | https://ext.dcloud.net.cn/plugin?id=1989 |
coolAdmin | COOL团队 (享受包销) | https://ext.dcloud.net.cn/plugin?id=2444 |
基于unipush的云端一体IM | 林举 (享受包销) | https://ext.dcloud.net.cn/plugin?id=2670 |
三等奖
奖品:800元DCloud代金券 + 小米13.5寸液晶小黑板
名额:10名
插件名称 | 作者名称 | 插件市场地址 |
---|---|---|
小程序转uni-app的HBuilderX插件 | 375890534@qq.com | https://ext.dcloud.net.cn/plugin?id=2656 |
翻译插件 HBuilderX插件,翻译各种语言,还可将中文翻译为英文或拼音变量,支持驼峰等各种设置 | cloverXV | https://ext.dcloud.net.cn/plugin?id=2070 |
APP信息管理系统 基于uniCloud的APP运营工具:灰度更新;审核中隐藏模块,审核后显示模块;APP系统参数设置 | wenjun | https://ext.dcloud.net.cn/plugin?id=2657 |
腾讯云插件 uniCloud调用各种腾讯云能力,包括内容安全、AI识别等 | 腾讯云 | https://ext.dcloud.net.cn/plugin?id=2139 |
Parser富文本插件 连nvue都支持的全端富文本插件 | Jyf | https://ext.dcloud.net.cn/plugin?id=805 |
unify 含nvue的全端UI库 | deng.qi.chang@qq.com | https://ext.dcloud.net.cn/plugin?id=2251 |
mypUI 含nvue的全端UI库 | 语文数学天才 | https://ext.dcloud.net.cn/plugin?id=2190 |
扫码自动识别快递单号 | 1076217653@qq.com | https://ext.dcloud.net.cn/plugin?id=2660 |
农场果园种菜偷菜uniCloud版 | ezshine | https://ext.dcloud.net.cn/plugin?id=2626 |
VK云函数路由模式uniCloud开发框架 | 370725567@qq.com | https://ext.dcloud.net.cn/plugin?id=2204 |
贡献奖
奖品:uni-app纪念马克杯 或 uni-app T恤 或 HBuilderX加长鼠标垫 3选1
名额:32名
DCloud获奖插件作者须知
- 请及时在社区的个人设置中完善资料补充邮寄地址电话等信息。
- 如奖品涉及选项,请发邮件到 bd@dcloud.io,标题为插件大赛奖品选择。请使用插件作者身份对应的邮箱账户发送,在内容中说明你选择的具体奖品。
- 二等奖中的HHKB键盘,可自选黑色白色、有刻无刻,如无特别备注,将随机发放。
- 贡献奖中的杯子、鼠标垫、t恤,开发者发邮件的说明为意向说明。因为这些DCloud定制纪念品是提前做好的,不是中奖者申报选择后才开始定制的。官方尽量满足中奖者的选择倾向,但在极端情况下,如32个人全都选择杯子,可能杯子库存不足,此时将改为随机发送。
协办方及赞助方奖品分配方案
腾讯云、阿里云大力支持本次大赛,给插件作者提供丰富奖励。
腾讯云云开发提供的奖品,分配方案如下:
- 特等奖、一等奖、二等奖、三等奖获奖者,均将获得100元腾讯云代金券(满200-100),可购买适用产品OCR、人脸识别、图像处理、云直播、云点播、云开发。领取方式:使用插件市场绑定的邮箱,发邮件到 service@dcloud.io,邮件中说明获奖插件名称、插件作者自己的腾讯云账号,腾讯云后续会将代金券下发到对应账号中。
- 如下插件将获得腾讯云云开发公众号推荐宣传:国云商城、扫码自动识别快递单号
阿里云提供的奖品分配方案如下:
阿里云提供的奖品,分配方案如下:
- 阿里云开发者社区cherry机械键盘1个,获奖者:
- 阿里云开发者社区电脑双肩包3个,获奖者:
- 阿里云开发者社区定制鼠标垫15个
- 阿里云开发者社区文化T恤衫 15件
- 为所有插件获奖者提供阿里云移动研发平台EMAS产品代金券,明细如下,领取方式:获奖作者使用插件市场绑定的邮箱,发邮件到 service@dcloud.io,邮件中说明获奖插件名称、插件作者自己的阿里云账号,阿里云后续会将代金券下发到对应账号中。
奖项 | 获奖人数 | 代金券设置 | 代金券金额合计 | 使用规则 |
---|---|---|---|---|
特等奖 | 1 | 2000 | 2000 | 参见使用规则 |
一等奖 | 2 | 1000 | 2000 | |
二等奖 | 5 | 500 | 2500 | |
三等奖 | 10 | 200 | 2000 | |
贡献奖 | 32 | 100 | 3200 | |
合计 | 50人 | 11700元 |
更新邮寄地址信息或发送选择奖品的邮件,时间最晚不超过9月15日,过期将视为放弃领奖。
已获奖作者请耐心等待,收集齐全作者快递信息后官方会统一快递奖品。
结语
没有参赛或中奖的开发者不要气馁,DCloud接下来还将推出其他扶持uniCloud插件和HBuilderX插件的方式。
同时欢迎业内其他开发者服务公司与DCloud联合举办插件大赛。
期待各位插件作者再接再厉,为广大提供更好的轮子!
也请各位开发者,多多支持优秀的插件作者,多购买或赞赏他们的插件。
收起阅读 »
【经验分享】mac电脑hbuilderX用wifi连接安卓设备调试
- 安装
a.mac终端执行: brew cask install android-platform-tools
b. 如果电脑没有homebrew安装会出错,先安装homebrew;mac终端执行:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 然后继续安装a
c. 运行adb mac终端执行:adb devices - 打开hbuilderx 运行->运行到手机模拟器->ADB路径设置
a. 设置为你的adb路径,mac默认会安装到/Users/linju/Library/Android/sdk/platform-tools/adb 其中【linju】替换成你的mac登录名称 直接填写即可 - 查看移动设备IP地址和端口
a. 先将数据线与电脑连接,运行终端 adb devices 可以得到比如
List of devices attached
(设备号) device
再获取手机wifi局域网IP地址: adb shell netstat 得到:192.168.1.108
b. 先别拔掉数据线执行 adb tcpip 6666(默认端口 5555)
c. 接下来可以把数据线拔掉,输入adb connect 192.168.1.108:6666 (注:ip地址和端口号改成你自己在步骤3-a得到的 ) - 大功告成
可能遇到的问题
-
mac版 命令行执行adb命令报错“zsh: command not found: adb”
链接:https://www.jianshu.com/p/42b7ff51d7c4 -
执行第二条 提示:Error: Unknown command: cask
解决方法homebrew 从 2.5.11 后,cask 就取消了。不加cask 重新执行
brew install android-platform-tools
- 安装
a.mac终端执行: brew cask install android-platform-tools
b. 如果电脑没有homebrew安装会出错,先安装homebrew;mac终端执行:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 然后继续安装a
c. 运行adb mac终端执行:adb devices - 打开hbuilderx 运行->运行到手机模拟器->ADB路径设置
a. 设置为你的adb路径,mac默认会安装到/Users/linju/Library/Android/sdk/platform-tools/adb 其中【linju】替换成你的mac登录名称 直接填写即可 - 查看移动设备IP地址和端口
a. 先将数据线与电脑连接,运行终端 adb devices 可以得到比如
List of devices attached
(设备号) device
再获取手机wifi局域网IP地址: adb shell netstat 得到:192.168.1.108
b. 先别拔掉数据线执行 adb tcpip 6666(默认端口 5555)
c. 接下来可以把数据线拔掉,输入adb connect 192.168.1.108:6666 (注:ip地址和端口号改成你自己在步骤3-a得到的 ) - 大功告成
可能遇到的问题
-
mac版 命令行执行adb命令报错“zsh: command not found: adb”
链接:https://www.jianshu.com/p/42b7ff51d7c4 -
执行第二条 提示:Error: Unknown command: cask
解决方法homebrew 从 2.5.11 后,cask 就取消了。不加cask 重新执行
brew install android-platform-tools

H5超链接APP安卓软件 web-view返回原生体验
目前支持的平台
- 安卓APP
- IOS
使用说明
本插件是APP空壳,内嵌网页,几乎接近原生APP用户体验。欢迎下载体验
支持设置自己的网站体验功能了,欢迎下载体验!
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/link-profile.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-profile.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/unicorn-link/link-home.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-home.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/unicorn-link/link-community.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-community.jpg) no-repeat 0 0/100% 100%;">
</p>
交流方式
- WX:cqcq8080
- QQ:534780006
下载体验链接
-
百度网盘下载链接
hi,这是我用百度网盘分享的文件~复制这段内容打开「百度网盘」APP即可获取。
链接:https://pan.baidu.com/s/1bCwIFRxTD_x5xFJ2u6p06Q?pwd=U1Af
提取码:U1Af -
或者使用手机浏览器扫码下载体验
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/download.png" alt="" width="200" height="250" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/download.png) no-repeat 0 0/100% 100%;">
</p>
微信扫码在线购买源码
源码价格:一口价50元
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/unicorn-shop.jpg" alt="扫一扫,微信购买源码" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/unicorn-shop.jpg) no-repeat 0 0/100% 100%;">
</p>
关于我们
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/public/logo-square-narrow-border.jpg" alt="元咏科技" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/logo-square-narrow-border.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/public/qrcode_for_unicornext.jpg" alt="元咏插件库,扫一扫直接体验UnicornExt" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/qrcode_for_unicornext.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/public/qrcode_for_gzh.jpg" alt="元咏科技公众号,扫一扫获取更多项目惊喜!!!" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/qrcode_for_gzh.jpg) no-repeat 0 0/100% 100%;">
</p>
目前支持的平台
- 安卓APP
- IOS
使用说明
本插件是APP空壳,内嵌网页,几乎接近原生APP用户体验。欢迎下载体验
支持设置自己的网站体验功能了,欢迎下载体验!
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/link-profile.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-profile.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/unicorn-link/link-home.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-home.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/unicorn-link/link-community.jpg" width="200" height="400" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/link-community.jpg) no-repeat 0 0/100% 100%;">
</p>
交流方式
- WX:cqcq8080
- QQ:534780006
下载体验链接
-
百度网盘下载链接
hi,这是我用百度网盘分享的文件~复制这段内容打开「百度网盘」APP即可获取。
链接:https://pan.baidu.com/s/1bCwIFRxTD_x5xFJ2u6p06Q?pwd=U1Af
提取码:U1Af -
或者使用手机浏览器扫码下载体验
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/download.png" alt="" width="200" height="250" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/download.png) no-repeat 0 0/100% 100%;">
</p>
微信扫码在线购买源码
源码价格:一口价50元
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/unicorn-link/unicorn-shop.jpg" alt="扫一扫,微信购买源码" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/unicorn-link/unicorn-shop.jpg) no-repeat 0 0/100% 100%;">
</p>
关于我们
<p style="display: flex;align-items: center;justify-content: space-around;">
<img src="http://file.quanzz1314.top/public/logo-square-narrow-border.jpg" alt="元咏科技" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/logo-square-narrow-border.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/public/qrcode_for_unicornext.jpg" alt="元咏插件库,扫一扫直接体验UnicornExt" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/qrcode_for_unicornext.jpg) no-repeat 0 0/100% 100%;">
<img src="http://file.quanzz1314.top/public/qrcode_for_gzh.jpg" alt="元咏科技公众号,扫一扫获取更多项目惊喜!!!" width="200" height="200" style="background: url(https://static-17eac32a-903b-4d39-b2da-7c2a616b1416.bspapp.com/public/qrcode_for_gzh.jpg) no-repeat 0 0/100% 100%;">
</p>

BaseCloud悬赏征集业务模块插件作品
悬赏任务介绍
BaseCloud生态建设,需要大家的共同参与。为促进业务模块的丰富和完善,提高开发者效率,特在此长期以悬赏任务方式征集业务模块插件作品, 评选结束后,优秀作品将作为免费模块开源,供开发者集成使用,优秀的作品将获得任务悬赏奖励,同时被收录至BaseCloud官方文档中, 在这个具有历史意义的新世界中永远留下你的署名。参与悬赏任务的作者,可按悬赏任务设计要求,自行设计业务模块, 设计完成后发布至DCloud插件市场,发布时标题应与悬赏任务标题一致,待任务截止后评选优秀作品,每个任务仅评选一名获奖作品。
评选依据: 1.符合业务模块功能设计要求,无明显bug; 2.代码规范,接口路径、文件、数据集合命名以base-开头,具体可参考APP更新业务模块代码规范。 3.前端样式类使用BaseCloud样式类库完成,服务端基于BaseCloud完成,管理端基于BaseCloud管理后台完成。
项目简介
BaseCloud是一套基于uniapp、uniCloud、uni-id的全栈开发框架,不依赖任何第三方框架,极度精简轻巧。
在开发前端界面时,除了适配移动端外,它对PC端也做了良好的适配;
在开发云函数时,它可以为您提供拦截器配置、路由管理、分页、列表、单数据快速查询等功能。除此之外,对于一些业务开发中的常用函数也已做好封装,拿来即用。
在BaseCloud的初始化项目模板中,为您实现了贯穿前后端的业务模块:管理员登录、用户管理、菜单管理、角色与权限管理、操作日志、系统参数配置等项目通用的基础后台管理功能,这一切全都基于云函数开发。
项目价值
基于BaseCloud的快速开发UI样式库,可以快速拼装前端界面,高还原度实现设计图效果,兼顾高效与灵活。
基于BaseCloud的云函数公用模块,你可以轻松实现单云函数、多云函数的路由管理、请求拦截管理与权限控制、常用业务函数快速开发。
基于BaseCloud的客户端缓存管理机制,你可以大幅度减少应用的云函数重复调用请求,未来云函数开始计费后,至少节省应用50%的流量费用。
基于BaseCloud的管理后台项目模板,你可以快速初始化一套自带用户、菜单、角色、权限、操作日志、系统参数管理的管理后台项目,在此基础上开始你的项目开发。
当然,这一切都只是刚刚开始,未来我们会基于BaseCloud推出更多贯穿前后端的业务模板,只要您的项目是基于BaseCloud框架,所有的业务模板拿来即用,5分钟快速集成到项目内,无需重复开发前端和后端。
对于开发者而言,基于BaseCloud的全栈快速开发框架,你可以封装自己的贯穿前后端的业务模块,发布到付费业务模块插件市场。
对于企业而言,基于BaseCloud的全栈快速开发框架,无需再费心招募不同工种不同技术栈的工程师,您只需要找到熟悉BaseCloud的工程师,让他们各自独立负责一个业务模块。 未来基于BaseCloud的项目,将会被拆分成几十个甚至上百个独立的模块,每个模块由一个工程师从前端到后端全链路负责,而他只需要懂一门开发语言:javascript,熟悉一个框架:BaseCloud。 项目交付后,您更无须担心后期维护与迭代更新,基于BaseCloud统一的开发规范,您可以很轻松找到随时能够接管您的项目的工程师。
悬赏任务介绍
BaseCloud生态建设,需要大家的共同参与。为促进业务模块的丰富和完善,提高开发者效率,特在此长期以悬赏任务方式征集业务模块插件作品, 评选结束后,优秀作品将作为免费模块开源,供开发者集成使用,优秀的作品将获得任务悬赏奖励,同时被收录至BaseCloud官方文档中, 在这个具有历史意义的新世界中永远留下你的署名。参与悬赏任务的作者,可按悬赏任务设计要求,自行设计业务模块, 设计完成后发布至DCloud插件市场,发布时标题应与悬赏任务标题一致,待任务截止后评选优秀作品,每个任务仅评选一名获奖作品。
评选依据: 1.符合业务模块功能设计要求,无明显bug; 2.代码规范,接口路径、文件、数据集合命名以base-开头,具体可参考APP更新业务模块代码规范。 3.前端样式类使用BaseCloud样式类库完成,服务端基于BaseCloud完成,管理端基于BaseCloud管理后台完成。
项目简介
BaseCloud是一套基于uniapp、uniCloud、uni-id的全栈开发框架,不依赖任何第三方框架,极度精简轻巧。
在开发前端界面时,除了适配移动端外,它对PC端也做了良好的适配;
在开发云函数时,它可以为您提供拦截器配置、路由管理、分页、列表、单数据快速查询等功能。除此之外,对于一些业务开发中的常用函数也已做好封装,拿来即用。
在BaseCloud的初始化项目模板中,为您实现了贯穿前后端的业务模块:管理员登录、用户管理、菜单管理、角色与权限管理、操作日志、系统参数配置等项目通用的基础后台管理功能,这一切全都基于云函数开发。
项目价值
基于BaseCloud的快速开发UI样式库,可以快速拼装前端界面,高还原度实现设计图效果,兼顾高效与灵活。
基于BaseCloud的云函数公用模块,你可以轻松实现单云函数、多云函数的路由管理、请求拦截管理与权限控制、常用业务函数快速开发。
基于BaseCloud的客户端缓存管理机制,你可以大幅度减少应用的云函数重复调用请求,未来云函数开始计费后,至少节省应用50%的流量费用。
基于BaseCloud的管理后台项目模板,你可以快速初始化一套自带用户、菜单、角色、权限、操作日志、系统参数管理的管理后台项目,在此基础上开始你的项目开发。
当然,这一切都只是刚刚开始,未来我们会基于BaseCloud推出更多贯穿前后端的业务模板,只要您的项目是基于BaseCloud框架,所有的业务模板拿来即用,5分钟快速集成到项目内,无需重复开发前端和后端。
对于开发者而言,基于BaseCloud的全栈快速开发框架,你可以封装自己的贯穿前后端的业务模块,发布到付费业务模块插件市场。
对于企业而言,基于BaseCloud的全栈快速开发框架,无需再费心招募不同工种不同技术栈的工程师,您只需要找到熟悉BaseCloud的工程师,让他们各自独立负责一个业务模块。 未来基于BaseCloud的项目,将会被拆分成几十个甚至上百个独立的模块,每个模块由一个工程师从前端到后端全链路负责,而他只需要懂一门开发语言:javascript,熟悉一个框架:BaseCloud。 项目交付后,您更无须担心后期维护与迭代更新,基于BaseCloud统一的开发规范,您可以很轻松找到随时能够接管您的项目的工程师。