- TP6+VUE框架开源商城源码,支持公众号、小程序、H5同步
CRMEB商城打通版 v3.0发布 CRMEB商城系统是基于ThinkPhp6.0+Vue+EasyWeChat 开发的一套新零售移动电商系统。可实现微信公众号和小程序商城数据同步,带积分、优惠券、秒杀、会员等级、分销等功能,前后端全部开源,更是一套方便二次开发的框架。 最近发布的最新版本是 v3.0版本,后台框架从TP5升级到TP6,用户体验和系统性能都获得了更大提升! CRMEB v3.0主要升级功能有: 1、新增手机浏览器访问的独立H5版本 2、基础框架无缝升级至TP6.0 3、支持队列、长链接、定时任务 4、优化事件机制,不侵入原有代码完成对功能的扩展 5、全新的移动端框架,更好的页面效果和用户体验 6、前后端分离,API接口,二次开发更高效 7、新增手机端订单管理功能 CRMEB技术亮点 1、后台应用form-builder PHP快速生成现代化表单; 2、前端以Vue + RequireJS模块化开发; 3、PHPExcel数据导出,导出表格更加美观,可视; 4、EasyWeChat部署微信开发,微信接入更加快捷,简单; 5、后台应用ECharts实现完善的数据统计和分析; 6、内部预留事件钩子,方面用户二次开发; 7、后台多任务窗口化操作界面; 8、内置强大灵活的权限管理; 9、内置组合数据,系统配置,管理碎片化数据; 10、客户端完善的交互效果和动画; 11、对接公众号和小程序,并且数据同步; 12、内置客服系统; 13、高频数据缓存; 14、数据备份和恢复; 15、前后端分离 16、一键安装; CRMEB商城功能 1、商品管理:能够对商品的状态分类管理 (出售中、待上架、库存中、已售馨、库存警戒、回收站)、添加产品、添加商品分类等功能 2、会员系统:站内会员的管理 (发放优惠劵、发通知、发图文消息、增加余额、会员行为详情)、站内通知 、微信端用户管理 (微信用 户的管理、分组、行为观察、添加标签) 等功能 3、营销活动:能够管理优惠的发放和制作、用户积分的统计使用情况、秒杀产品的管理等(商业版带拼团、砍价活动) 4、财务统计:能够对用户的消费、充值、返佣的记录 5、订单管理:能够完成用户的订单管理(发货、订单详情、修改订单、订单备注、订单记录、订单退款) 、售后服务 (评论的回复与删除) 6、分销系统:后台有分销统计管理,分销可以设置人人分销和指定人分销,也可以自己稍微开发一下修改规则,例如下单后成为分销等 7、数据统计图表统计分析(财务统计、产品统计、会员统计、营销统计、分销统计、交易统计等) 8、系统设置:能够完成管理员对网站的商品资料(添加大类、添加小类、商品添加、属性快速生成、商品审查)、商品交易(外理订单、发货查询)、会员管理(会员审查)、操作管理(管理员添加、管理员审查、管理员退出)、系统配置、后台通知等功能 9、内容管理:管理文章分类 (添加分类、删除分类、修改分类) 、 管理文章 10、系统维护:查看系统日志、文件变动效验、刷新网站缓存、在线更新系统、清除数据、文件管理等功能 11、权限管理:可以创建不同身份,不同管理员,同一个管理员可以拥有多重身份,权限可以控制到每一个控制器函数,例如:张三 1.可以控制他可以查看产品,但不能编辑产品; 2.可以添加产品,但不能删除产品; 3.可以查看用户但不能给用户发信息、加积分、开通分销等等; 。。。灵活应用,权限想怎么配就怎么配 系统开源无加密,非常适合开发者用来二开使用;源码注释清晰,带有详细的帮助文档 免费源码下载地址:https://github.crmeb.net/u/gitee 系统帮助文档:https://help.crmeb.net/crmeb QQ技术交流群:710729856 演示地址:http://demo26.crmeb.net [图片] 扫码查看前端演示 CRMEB系统主要特性 开源无加密:源码开源无加密,有详细的代码注释,有完整系统手册… TP6框架:使用最新的 ThinkPHP 6.0框架开发 前端采用Vue CLI框架:前端使用Vue CLI框架nodejs打包,页面加载更流畅,用户体验更好 标准接口:标准接口、前后端分离,二次开发更方便 支持队列:降低流量高峰,解除耦合,高可用 长连接:减少CPU及内存使用及网络堵塞,减少请求响应时长 无缝事件机制:行为扩展更方便,方便二次开发 后台快速生成表单:后台应用form-builder 无需写页面快速增删改查 数据表格导出:PHPExcel数据导出,导出表格更加美观可视; 数据统计分析:后台使用ECharts图表统计,实现用户、产品、订单、资金等统计分析 强大的后台权限管理:后台多种角色、多重身份权限管理,权限可以控制到每一步操作 一件安装:自动检查系统环境一键安装 免费源码下载地址:https://github.crmeb.net/u/gitee 系统帮助文档:https://help.crmeb.net/crmeb QQ技术交流群:710729856 演示地址:http://demo26.crmeb.net
2019-10-18 - 基于小程序·云开发的HTTPAPI实现图片上传功能
基于HTTPAPI实现内容管理的图片上传功能 目前基于小程序·云开发可以快速的实现无服务器的小程序快速开发。但是小程序开发工具自带的管理工具,并不方便进行内容管理。因此为了更高效的管理小程序,需要开发后台管理工具,以方便在电脑端进行内容管理。基于此,会陆续连载更新基于小程序·云开发HTTPAPI进行后台管理工具相关开发的一些经验文章。 前端:elment-admin 后端:node.js koa 前端使用elment-ui el-upload组件实现上传功能 对于elment-admin以及elment-ui不熟悉的请自行去官网学习。 elment-admin是基于elment-ui组件构建的后台管理系统UI,功能强大,方便快速构建后台管理系统。 elment-admin:https://github.com/PanJiaChen/vue-element-admin elment-ui:https://element.eleme.io/#/zh-CN/guide/design [代码]<template> <div class="dashboard-container"> <div> <el-upload class="upload-demo" action="http://localhost:3000/upload/imgs" :before-upload="beforeUploadFile" > <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> </div> </div> </template> [代码] 后端基于node koa的后端图片上传功能代码: 学习技术的最好方法就是官方文档,因此要想熟练的使用httpapi构建小程序的后端管理系统,就必须先熟悉官方文档。 小程序官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html 要想使用Httpapi去实现图片上传功能,我们需要先获取访问请求中的参数access_token。access_token获取的官方文档内容: [图片] 通过官方文档可知,传递参数appid和secret,发送请求到文档中的地址,可以获取access_token数据。 access_token获取,存储以及定时更新的相关代码如下: [代码]const rp = require('request-promise') const fs = require('fs') //引用文件操作函数 const path = require('path') //引入文件路径函数 //获取文件的绝对路径 const filePath = path.resolve(__dirname, './access_token.json') //小程序的APPID和Secret const APPID = '小程序的APPID' const Secret = '小程序的Secret' //获取Token的URL const URL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${Secret}` //从小程序端获取Token函数 const updateAccessToken = async () => { const resStr = await rp(URL) //将字符串类型转为对象 const res = JSON.parse(resStr) if (res.access_token) { //写入文件 fs.writeFileSync(filePath, JSON.stringify({ access_token: res.access_token, //从小程序服务器获取的token createTime: new Date() //获取token时,对应的时间 })) } else { //如果文件不存在,则重新调用获取token函数,重新执行写入 await updateAccessToken() } } //查询Token函数返回给响应的函数去调用云函数 const getAccessToken = async () => { try { //读取文件 const readRes = fs.readFileSync(filePath, 'utf8') const readObj = JSON.parse(readRes) //获取access_token.json中的createtime的时间 const createTime = new Date(readObj.createTime).getTime() //获取当前时间 const nowTime = new Date().getTime() //判断Token的失效是否大于2小时,如果大于2小时则需要重新获取Token,然后在读取Token数据 if ((nowTime - createTime) / 1000 / 60 / 60 >= 2) { await updateAccessToken() await getAccessToken() } //返回Token数据 return readObj.access_token } catch (error) { //如果access_token文件不存在,则读取报错,此时需要重新从服务器获取token数据,再读取token数据 await updateAccessToken() await getAccessToken() } } //定时更新Token setInterval(async () => { await updateAccessToken() }, (7200 - 300) * 1000) module.exports = getAccessToken; [代码] 获取文件上传链接 从官方文档可知,传递access_token和env参数,访问文档中的请求地址,获取上传文件所需的参数数据。 [图片] 从官方文档可知,返回的上传数据中包含如下内容: authorization字段 token字段 cos_file_id字段 url字段 上传文件到云存储。 按照官方文档,访问返回的url字段的链接,并传递相关参数,将图片上传到云存储。 [图片] 图片上传功能的代码如下: [代码]const rp = require('request-promise') const fs = require('fs') //引用文件操作函数 const getAccessToken = require('./getAccessToken') const cloudStorage = { // 1、请求地址 async upload(ctx){ console.log(1,ctx) const ACCESS_TOKEN = await getAccessToken() const file = ctx.request.files.file const path = `test/${Date.now()}-${Math.random()}-${file.name}` var options = { method: 'POST', uri: `https://api.weixin.qq.com/tcb/uploadfile?access_token=${ACCESS_TOKEN}`, body: { env: 'miniprogram-dev-y7a0a', path, }, json: true // Automatically stringifies the body to JSON }; //请求返回的参数 const info = await rp(options) .then(res => { // POST succeeded... return res }) .catch(err => { // POST failed... console.log(err) }); // 2、上传文件到云存储 const params ={ method: 'POST', uri:info.url, header:{ 'content-type':'multipart/form-data' }, formData:{ key:path, Signature:info.authorization, 'x-cos-security-token':info.token, 'x-cos-meta-fileid':info.cos_file_id, file:fs.createReadStream(file.path) }, json: true // Automatically stringifies the body to JSON } await rp(params) return info.file_id } } module.exports=cloudStorage; [代码] 后续会陆续更新相关技术文章,来帮助大家快速熟悉和使用小程序·云开发实现小程序的快速开发,以及基于HTTPAPI实现小程序后端管理系统的开发。
2019-10-11