Giter VIP home page Giter VIP logo

weapp-vue-eggjs-shop-demo's Introduction

weapp-vue-eggjs-shop-demo

📣 这么*气且又臭又长的名字将来可能会改 😂😂

商城、商店批发或零售,pc管理端 + 微信小程序 + 后端服务

您的 星星 ⭐⭐ 建议 👊👊

是我编码动力 😘😘

请您不要客气 ✌️✌️

点赞一定用力 👍👍

呦呦呦...(作者可能受了点刺激...)

技术栈

📣 列了一大堆,搞得好像都用的很好似的 😅😅

微信小程序:uni-app

pc前端:vue2 + vuex + vue-router + vue-cli3 + element-ui + ES6

后端:node + egg.js + ES6

号外号外

更新日志

📣 后端的代码之后会细化整理一下,目前只是大概调通了接口,看代码的时候也希望大家有自己的想法,也希望得到你们的建议

📣 以后更新内容和注意事项都会放到release里面,之前的commit权当测试,如果遇到报错,还请大家从第一个版本v1.0.0重新初始化,之后会迭代更新

📣 暂时不做仓储功能,此项目的初衷并不想做成一个通用的软件,而是学习和交流,所以不做太多复杂的业务逻辑,更多的是技术上的拓展

界面与接口

📣 暂时放在这嘚瑟一会,以后关进release 🙈🙉

小程序

✔ 登录     ✔ 首页获取类别和商品列表     ✔ 获取商家运费方案     ✔ 获取收货时间列表     ✔ 获取用户订单分页列表     ✔ 获取订单详情     ✔ 创建订单     ✔ 取消订单     ✔ 线下支付订单     ✔ 自动取消订单     ✔ 确认收货     ✘ 在线支付     ✔ 获取用户地址列表     ✔ 获取用户默认地址     ✔ 设置用户默认地址     ✔ 删除用户选中地址     ✔ 获取用户指定地址     ✔ 新增用户地址     ✔ 编辑用户地址     ✔ 获取商家信息    

pc管理端

公共

✔ 登录     ✔ 注销     ✔ 修改密码     ✔ 消息全部标记已读     ✔ 消息预览     ✔ 消息分页查询    

管理员

✔ 新增商家     ✔ 编辑商家     ✔ 获取商家     ✔ 获取商家分页列表    

商家

✔ 首页     ✔ 获取账号信息     ✔ 编辑账号信息     ✔ 新增商品类别     ✔ 编辑商品类别     ✔ 删除商品类别     ✔ 获取商品类别分页列表     ✔ 获取商品类别下拉列表     ✔ 获取商品类别     ✔ 获取商品分页列表     ✔ 获取商品     ✔ 新增商品     ✔ 编辑商品     ✔ 上架商品     ✔ 下架商品     ✔ 新增运费方案     ✔ 编辑运费方案     ✔ 删除运费方案     ✔ 获取运费方案分页列表     ✔ 获取运费方案     ✔ 新增送货时间     ✔ 编辑送货时间     ✔ 删除送货时间     ✔ 获取送货时间分页列表     ✔ 获取送货时间     ✔ 获取订货单分页列表     ✔ 完成订货单     ✔ 配送订货单     ✔ 获取订货单    

计划...赶不上变化?

📣 净整一些...有用的 🙈🙉

进行中

  • 对代码写法更细致的完善、整理、改进(主要后端代码)

未来

  • 停止维护(你说气人不)

已完成

✔ 订单过期自动取消     ✔ 多tab操作     ✔ 记录接口调用,切换tab判断是否获取最新数据     ✔ 表格条件查询     ✔ 表格排序     ✔ 首页统计     ✔ scss全局变量     ✔ 全局过滤器     ✔ 升级Sequelize版本,优化模型定义     ✔ 提供线下支付方式     ✔ 订单消息推送     ✔ 提供线下支付方式     ✔ 小程序用uni-app重构    

开发与部署文档

📣 这也叫文档?你过来我保证不打死你 🔨🔨

部分界面截图

📣 *气的chrome主题,需要的email我 🙈🙉

目录结构

📣 简洁大方,秀外慧中 🙈🙉

.
├── _resource   // 其他资源
├── mobile_uni-app // 暂时只支持微信小程序,后面重构客户模块(uni-app)
├── pc_vue     // pc管理端(vue)
├── server_eggjs // 服务端(eggjs)
├── LICENSE   // 证书
└── README.md  // 我就是我 是颜色不一样的烟火

非常感谢以下开源项目或作者:

📣 有本事你用他们呀 🙈🙉

vuejs | axios | ElemeFE | vue-cookie | vue2-transitions | nodejs | egg | ESLint | mysql | sequelize | lodash | fecha | node-uuid | vuescroll | Vue-Socket.io | uni-app | ColorUI

License

📣 也就装逼用 🙈🙉

MIT

Copyright (c) 2018-present, ruiyong-lee

weapp-vue-eggjs-shop-demo's People

Contributors

dependabot[bot] avatar ruiyong-lee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weapp-vue-eggjs-shop-demo's Issues

两个建议

  1. 将verifyToken放在next()前面:
// app-server/app/middleware/auth.js

await ctx.verifyToken(); //先验证token,再进行下一个中间件
await next();
  1. 推荐userUuid挂在到ctx上
// app-server/app/extend/content.js

if (userUuid !== verifyResult.message.userUuid) {
      this.verifyFail(401, '用户 UUID 与 Token 不一致');
      return false;
}
this.userUuid = verifyResult.message.userUuid;
this.userName= verifyResult.message.userName;
return true;

项目的jwt的token鉴权是不是没做完啊?

我看了下jwt鉴权token这块的功能,好像只有在路由白名单里的路由才能通过,好像没有去获取请求中的token去做鉴权啊。(不知道是不是哪里看漏了)
文件路径:app>extend>context.js>verifyToken()

带了 DEMO 没有找到 模型关联的部分

例如 BelongsTo

const Player = this.sequelize.define('player', {/* attributes */});
const Team  = this.sequelize.define('team', {/* attributes */});

Player.belongsTo(Team); // 将向 Player 添加一个 teamId 属性以保存 Team 的主键值

代码来自 https://github.com/demopark/sequelize-docs-Zh-CN

在你的demo中,我没找到 模型关联的部分。 或者是我没发现,你能给我指出一下在哪里么

关于 schema 目录

你好, 我初次接触 Egg.js 准备根据你们的 demo 进行学习

有个问题

schema 目录下 有非常多的 关于 数据库 表 字段 的 描述文件
如 :

module.exports = app => {
  const { STRING, BIGINT, DATE, UUIDV1 } = app.Sequelize;

  return {
    uuid: {
      type: STRING(38),
      allowNull: false,
      primaryKey: true,
      defaultValue: UUIDV1,
    },
    userName: {
      type: STRING(32),
      allowNull: false,
    },
    modifiedUserName: {
      type: STRING(76),
      allowNull: false,
    },
```

这些文件都是 手写的吗

如何同步数据库

如果我修改了 schema 后, 如何同步到数据库呢
我再次运行 npm run db:up

会提示
No migrations were executed, database schema was already up to date.

    "db:init": "npx sequelize migration:generate --name",
    "db:up": "npx sequelize db:migrate",
    "db:down": "npx sequelize db:migrate:undo",
    "db:down-all": "npx sequelize db:migrate:undo:all"

多语言要怎么设计

现在是前端层面的静态文案,还有数据库里的数据也要能支持多语言,需要怎么设计呢

小程序和商家怎么绑定

你好,
小程序里说用下面的UUID来绑定商家,但是我在web上的商家没有找到对应的值,请教一下,这个怎么弄的吗?现在我打开微信小程序,就是提示该应用未绑定商家。
MERCHANT_UUID: 'cff9c960-1ead-11e9-a89c-591ecd71c270', //根据不同商家手动配置

关于jwt

能不能简单的给我说一下 JWT 的使用过程呢

关于readme

建议readme里加上安装依赖,启动的一些步骤啥的

一处bug望看一下

async saveNew() {
const { ctx } = this;
try {
const rule = {
merchant: "object",
};
ctx.validate(rule);
const uuid = await ctx.service.user.merchant.saveNew(ctx.request.body);
this.success(uuid);
} catch (err) {
const { fields = {}, name } = err;
if (name === "SequelizeUniqueConstraintError") {
this.fail(ctx.UNIQUE_CODE, 账号:${fields.userName} 的商家已存在);
} else {
throw new Error(err);
}
}
}

在这段代码中如果抓取err且确实抓取到Unique的错误,确实会报(账号:undefined 的商家已存在)的错误.
可是在后续更换一个账号名去再次注册,且保证账号名是唯一的前提,依旧会报(账号:undefined 的商家已存在)的错误.
if (name === "SequelizeUniqueConstraintError") {} 应该是不能用这种方式去捕获错误吧?

cool

thanks for your demo , i am a newer for the vue&&eggjs but i am very like to learn the these web-world's things. i am game-programer by the way .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.