黑马商城后台vue: 黑马商城后台vue项目,后端包含node接口代码和mysql数据库前端用vue实现。 前端功能包含 1.用户登录、用户管理、角色管理、权限管理 2.商品管理、商品分类管理、订单管理 3.echarts大图统计

您所在的位置:网站首页 黑马商城网站 黑马商城后台vue: 黑马商城后台vue项目,后端包含node接口代码和mysql数据库前端用vue实现。 前端功能包含 1.用户登录、用户管理、角色管理、权限管理 2.商品管理、商品分类管理、订单管理 3.echarts大图统计

黑马商城后台vue: 黑马商城后台vue项目,后端包含node接口代码和mysql数据库前端用vue实现。 前端功能包含 1.用户登录、用户管理、角色管理、权限管理 2.商品管理、商品分类管理、订单管理 3.echarts大图统计

2023-10-16 17:16| 来源: 网络整理| 查看: 265

1. 电商管理后台 API 接口文档 1.1. API V1 接口说明

线上基准地址1:http://heima.9yuecloud.com:9988/api/private/v1/

线上基准地址2:http://node.aoaoxiong.top/api/private/v1/

商城后台线上地址:http://shop.aoaoxiong.top/

数据库权限

主机名或IP地址:111.67.201.134 端口:3306 用户名:shopdb 密码:12345678 数据库名:shopdb

服务端已开启 CORS 跨域支持

API V1 认证统一使用 Token 认证

需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌

使用 HTTP Status Code 标识状态

数据返回格式统一使用 JSON

1.1.1. 支持的请求方法 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。 HEAD:获取资源的元数据。 OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。 1.1.2. 通用返回状态说明 状态码 含义 说明 200 OK 请求成功 201 CREATED 创建成功 204 DELETED 删除成功 400 BAD REQUEST 请求的地址不存在或者包含不支持的参数 401 UNAUTHORIZED 未授权 403 FORBIDDEN 被禁止访问 404 NOT FOUND 请求的资源不存在 422 Unprocesable entity [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误 500 INTERNAL SERVER ERROR 内部错误 1.2. 登录 1.2.1. 登录验证接口 请求路径:login 请求方法:post 请求参数 参数名 参数说明 备注 username 用户名 不能为空 password 密码 不能为空 响应参数 参数名 参数说明 备注 id 用户 ID rid 用户角色 ID username 用户名 mobile 手机号 email 邮箱 token 令牌 基于 jwt 的令牌 响应数据 { "data": { "id": 500, "rid": 0, "username": "admin", "mobile": "123", "email": "[email protected]", "token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1MTI1NDQyOTksImV4cCI6MTUxMjYzMDY5OX0.eGrsrvwHm-tPsO9r_pxHIQ5i5L1kX9RX444uwnRGaIM" }, "meta": { "msg": "登录成功", "status": 200 } } 1.3. 用户管理 1.3.1. 用户数据列表 请求路径:users 请求方法:get 请求参数 参数名 参数说明 备注 query 查询参数 可以为空 pagenum 当前页码 不能为空 pagesize 每页显示条数 不能为空 响应参数 参数名 参数说明 备注 totalpage 总记录数 pagenum 当前页码 users 用户数据集合 响应数据 { "data": { "totalpage": 5, "pagenum": 4, "users": [ { "id": 25, "username": "tige117", "mobile": "18616358651", "type": 1, "email": "[email protected]", "create_time": "2017-11-09T20:36:26.000Z", "mg_state": true, // 当前用户的状态 "role_name": "炒鸡管理员" } ] }, "meta": { "msg": "获取成功", "status": 200 } } 1.3.2. 添加用户 请求路径:users 请求方法:post 请求参数 参数名 参数说明 备注 username 用户名称 不能为空 password 用户密码 不能为空 email 邮箱 可以为空 mobile 手机号 可以为空 响应参数 参数名 参数说明 备注 id 用户 ID rid 用户角色 ID username 用户名 mobile 手机号 email 邮箱 响应数据 { "data": { "id": 28, "username": "tige1200", "mobile": "test", "type": 1, "openid": "", "email": "[email protected]", "create_time": "2017-11-10T03:47:13.533Z", "modify_time": null, "is_delete": false, "is_active": false }, "meta": { "msg": "用户创建成功", "status": 201 } } 1.3.3. 修改用户状态 请求路径:users/:uId/state/:type 请求方法:put 请求参数 参数名 参数说明 备注 uId 用户 ID 不能为空携带在url中 type 用户状态 不能为空携带在url中,值为 true 或者 false 响应数据 { "data": { "id": 566, "rid": 30, "username": "admin", "mobile": "123456", "email": "[email protected]", "mg_state": 0 }, "meta": { "msg": "设置状态成功", "status": 200 } } 1.3.4. 根据 ID 查询用户信息 请求路径:users/:id 请求方法:get 请求参数 参数名 参数说明 备注 id 用户 ID 不能为空携带在url中 响应参数 参数名 参数说明 备注 id 用户 ID role_id 角色 ID mobile 手机号 email 邮箱 响应数据 { "data": { "id": 503, "username": "admin3", "role_id": 0, "mobile": "00000", "email": "[email protected]" }, "meta": { "msg": "查询成功", "status": 200 } } 1.3.5. 编辑用户提交 请求路径:users/:id 请求方法:put 请求参数 参数名 参数说明 备注 id 用户 id 不能为空 参数是url参数:id email 邮箱 可以为空 mobile 手机号 可以为空 响应参数 参数名 参数说明 备注 id 用户 ID role_id 角色 ID mobile 手机号 email 邮箱 响应数据 /* 200表示成功,500表示失败 */ { "data": { "id": 503, "username": "admin3", "role_id": 0, "mobile": "111", "email": "[email protected]" }, "meta": { "msg": "更新成功", "status": 200 } } 1.3.6. 删除单个用户 请求路径:users/:id 请求方法:delete 请求参数 参数名 参数说明 备注 id 用户 id 不能为空参数是url参数:id 响应参数 响应数据 { "data": null, "meta": { "msg": "删除成功", "status": 200 } } 1.3.7. 分配用户角色 请求路径:users/:id/role 请求方法:put 请求参数 参数名 参数说明 备注 id 用户 ID 不能为空参数是url参数:id rid 角色 id 不能为空参数body参数 响应参数 参数名 参数说明 备注 id 用户 ID role_id 角色 ID mobile 手机号 email 邮箱 响应数据 { "data": { "id": 508, "rid": "30", "username": "asdf1", "mobile": "123123", "email": "[email protected]" }, "meta": { "msg": "设置角色成功", "status": 200 } } 1.4. 权限管理 1.4.1. 所有权限列表 请求路径:rights/:type 请求方法:get 请求参数 参数名 参数说明 备注 type 类型 值 list 或 tree , list 列表显示权限, tree 树状显示权限,参数是url参数:type 响应参数 参数名 参数说明 备注 id 权限 ID authName 权限说明 level 权限层级 pid 权限父 ID path 对应访问路径 响应数据 type=list { "data": [ { "id": 101, "authName": "商品管理", "level": "0", "pid": 0, "path": null }, { "id": 102, "authName": "订单管理", "level": "0", "pid": 0, "path": null } ], "meta": { "msg": "获取权限列表成功", "status": 200 } }

type=tree

{ data: [ { id: 101, authName: '商品管理', path: null, pid: 0, children: [ { id: 104, authName: '商品列表', path: null, pid: 101, children: [ { id: 105, authName: '添加商品', path: null, pid: '104,101' } ] } ] } ], meta: { msg: '获取权限列表成功', status: 200 } } 1.4.2. 左侧菜单权限 请求路径:menus 请求方法:get 响应数据 { "data": { "id": 101, "authName": "商品管理", "path": null, "children": [ { "id": 104, "authName": "商品列表", "path": null, "children": [] } ] } "meta": { "msg": "获取菜单列表成功", "status": 200 } } 1.5. 角色管理 1.5.1. 角色列表

请求路径:roles

请求方法:get

响应数据说明

第一层为角色信息 第二层开始为权限说明,权限一共有 3 层权限 最后一层权限,不包含 children 属性

响应数据

{ "data": [ { "id": 30, "roleName": "主管", "roleDesc": "技术负责人", "children": [ { "id": 101, "authName": "商品管理", "path": null, "children": [ { "id": 104, "authName": "商品列表", "path": null, "children": [ { "id": 105, "authName": "添加商品", "path": null } ] } ] } ] } ], "meta": { "msg": "获取成功", "status": 200 } } 1.5.2. 添加角色 请求路径:roles 请求方法:post 请求参数 参数名 参数说明 备注 roleName 角色名称 不能为空 roleDesc 角色描述 可以为空 响应参数 参数名 参数说明 备注 roleId 角色 ID roleName 角色名称 roleDesc 角色描述 响应数据 { "data": { "roleId": 40, "roleName": "admin2", "roleDesc": "admin2Desc" }, "meta": { "msg": "创建成功", "status": 201 } } 1.5.3. 根据 ID 查询角色 请求路径:roles/:id 请求方法:get 请求参数 参数名 参数说明 备注 :id 角色 ID 不能为空携带在url中 响应参数 参数名 参数说明 备注 roleId 角色 ID roleName 角色名称 roleDesc 角色描述 响应数据 { "data": { "roleId": 31, "roleName": "测试角色", "roleDesc": "测试负责人" }, "meta": { "msg": "获取成功", "status": 200 } } 1.5.4. 编辑提交角色 请求路径:roles/:id 请求方法:put 请求参数 参数名 参数说明 备注 :id 角色 ID 不能为空携带在url中 roleName 角色名称 不能为空 roleDesc 角色描述 可以为空 响应数据 { "data": { "roleId": 31, "roleName": "测试角色", "roleDesc": "测试角色描述" }, "meta": { "msg": "获取成功", "status": 200 } } 1.5.5. 删除角色 请求路径:roles/:id 请求方法:delete 请求参数 参数名 参数说明 备注 :id 角色 ID 不能为空携带在url中 响应数据 { "data": null, "meta": { "msg": "删除成功", "status": 200 } } 1.5.6. 角色授权 请求路径:roles/:roleId/rights 请求方法:post 请求参数:通过 请求体 发送给后端 参数名 参数说明 备注 :roleId 角色 ID 不能为空携带在url中 rids 权限 ID 列表(字符串) 以 , 分割的权限 ID 列表(获取所有被选中、叶子节点的key和半选中节点的key, 包括 1,2,3级节点) 响应数据 { "data": null, "meta": { "msg": "更新成功", "status": 200 } } 1.5.7. 删除角色指定权限

请求路径:roles/:roleId/rights/:rightId

请求方法:delete

请求参数

参数名 参数说明 备注 :roleId 角色 ID 不能为空携带在url中 :rightId 权限 ID 不能为空携带在url中

响应数据说明

返回的data, 是当前角色下最新的权限数据

响应数据

{ "data": [ { "id": 101, "authName": "商品管理", "path": null, "children": [ { "id": 104, "authName": "商品列表", "path": null, "children": [ { "id": 105, "authName": "添加商品", "path": null }, { "id": 116, "authName": "修改", "path": null } ] } ] } ], "meta": { "msg": "取消权限成功", "status": 200 } } 1.6. 商品分类管理 1.6.1. 商品分类数据列表 请求路径:categories 请求方法:get 请求参数 参数名 参数说明 备注 type [1,2,3] 值:1,2,3 分别表示显示一层二层三层分类列表【可选参数】如果不传递,则默认获取所有级别的分类 pagenum 当前页码值 【可选参数】如果不传递,则默认获取所有分类 pagesize 每页显示多少条数据 【可选参数】如果不传递,则默认获取所有分类 响应参数 参数名 参数说明 备注 cat_id 分类 ID cat_name 分类名称 cat_pid 分类父 ID cat_level 分类当前层级 响应数据 { "data": [ { "cat_id": 1, "cat_name": "大家电", "cat_pid": 0, "cat_level": 0, "cat_deleted": false, "children": [ { "cat_id": 3, "cat_name": "电视", "cat_pid": 1, "cat_level": 1, "cat_deleted": false, "children": [ { "cat_id": 6, "cat_name": "曲面电视", "cat_pid": 3, "cat_level": 2, "cat_deleted": false }, { "cat_id": 7, "cat_name": "海信", "cat_pid": 3, "cat_level": 2, "cat_deleted": false } ] } ] } ], "meta": { "msg": "获取成功", "status": 200 } } 1.6.2. 添加分类 请求路径:categories 请求方法:post 请求参数 参数名 参数说明 备注 cat_pid 分类父 ID 不能为空,如果要添加1级分类,则父分类Id应该设置为 0 cat_name 分类名称 不能为空 cat_level 分类层级 不能为空,0表示一级分类;1表示二级分类;2表示三级分类 响应数据 { "data": { "cat_id": 62, "cat_name": "相框", "cat_pid": "1", "cat_level": "1" }, "meta": { "msg": "创建成功", "status": 201 } } 1.6.3. 根据 id 查询分类 请求路径:categories/:id 请求方法:get 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 响应数据 { "data": { "cat_id": 3, "cat_name": "厨卫电器", "cat_pid": 0, "cat_level": 0 }, "meta": { "msg": "获取成功", "status": 200 } } 1.6.4. 编辑提交分类 请求路径:categories/:id 请求方法:put 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 cat_name 分类名称 不能为空【此参数,放到请求体中】 响应数据 { "data": { "cat_id": 22, "cat_name": "自拍杆", "cat_pid": 7, "cat_level": 2 }, "meta": { "msg": "更新成功", "status": 200 } } 1.6.5. 删除分类 请求路径:categories/:id 请求方法:delete 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 响应数据 { "data": null, "meta": { "msg": "删除成功", "status": 200 } } 1.7. 分类参数管理 1.7.1. 参数列表 请求路径:categories/:id/attributes 请求方法:get 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 sel [only,many] 不能为空,通过 only 或 many 来获取分类静态参数还是动态参数 响应参数 参数名 参数说明 备注 attr_id 分类参数 ID attr_name 分类参数名称 cat_id 分类参数所属分类 attr_sel only:输入框(唯一) many:后台下拉列表/前台单选框 attr_write manual:手工录入 list:从列表选择 attr_vals 如果 attr_write:list,那么有值,该值以逗号分隔 响应数据 { "data": [ { "attr_id": 1, "attr_name": "cpu", "cat_id": 22, "attr_sel": "only", "attr_write": "manual", "attr_vals": "ffff" } ], "meta": { "msg": "获取成功", "status": 200 } } 1.7.2. 添加动态参数或者静态属性 请求路径:categories/:id/attributes 请求方法:post 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 attr_name 参数名称 不能为空 attr_sel [only,many] 不能为空 attr_vals 如果是 many 就需要填写值的选项,以逗号分隔 【可选参数】 响应数据 { "data": { "attr_id": 44, "attr_name": "测试参数", "cat_id": "1", "attr_sel": "many", "attr_write": "list", "attr_vals": "a,b,c" }, "meta": { "msg": "创建成功", "status": 201 } } 1.7.3. 删除参数 请求路径: categories/:id/attributes/:attrid 请求方法:delete 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 :attrid 参数 ID 不能为空携带在url中 响应数据 { "data": null, "meta": { "msg": "删除成功", "status": 200 } } 1.7.4. 根据 ID 查询参数 请求路径:categories/:id/attributes/:attrId 请求方法:get 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 :attrId 属性 ID 不能为空携带在url中 attr_sel [only,many] 不能为空 attr_vals 如果是 many 就需要填写值的选项,以逗号分隔 响应数据 { "data": { "attr_id": 1, "attr_name": "cpu", "cat_id": 22, "attr_sel": "only", "attr_write": "manual", "attr_vals": "ffff" }, "meta": { "msg": "获取成功", "status": 200 } } 1.7.5. 编辑提交参数 请求路径:categories/:id/attributes/:attrId 请求方法:put 请求参数 参数名 参数说明 备注 :id 分类 ID 不能为空携带在url中 :attrId 属性 ID 不能为空携带在url中 attr_name 新属性的名字 不能为空,携带在请求体中 attr_sel 属性的类型[many或only] 不能为空,携带在请求体中 attr_vals 参数的属性值 可选参数,携带在请求体中 响应数据 { "data": { "attr_id": 9, "attr_name": "测试更新", "cat_id": "43", "attr_sel": "only", "attr_write": "manual", "attr_vals": "abc" }, "meta": { "msg": "更新成功", "status": 200 } } 1.8. 商品管理 1.8.1. 商品列表数据 请求路径:goods 请求方法:get 请求参数 参数名 参数说明 备注 query 查询参数 可以为空 pagenum 当前页码 不能为空 pagesize 每页显示条数 不能为空 响应参数 参数名 参数说明 备注 total 总共商品条数 pagenum 当前商品页数 goods_id 商品 ID goods_name 商品名称 goods_price 价格 goods_number 数量 goods_weight 重量 不能为空 goods_state 商品状态 商品状态 0: 未通过 1: 审核中 2: 已审核 add_time 添加时间 upd_time 更新时间 hot_mumber 热销品数量 is_promote 是否是热销品 响应数据 { "data": { "total": 50, "pagenum": "1", "goods": [ { "goods_id": 144, "goods_name": "asfdsd", "goods_price": 1, "goods_number": 1, "goods_weight": 1, "goods_state": null, "add_time": 1512954923, "upd_time": 1512954923, "hot_mumber": 0, "is_promote": false } ] }, "meta": { "msg": "获取成功", "status": 200 } } 1.8.2. 添加商品 请求路径:goods 请求方法:post 请求参数 参数名 参数说明 备注 goods_name 商品名称 不能为空 goods_cat 以为','分割的分类列表 不能为空 goods_price 价格 不能为空 goods_number 数量 不能为空 goods_weight 重量 不能为空 goods_introduce 介绍 可以为空 pics 上传的图片临时路径(对象) 可以为空 attrs 商品的参数(数组),包含 动态参数 和 静态属性 可以为空 请求数据 { "goods_name":"test_goods_name2", "goods_cat": "1,2,3", "goods_price":20, "goods_number":30, "goods_weight":40, "goods_introduce":"abc", "pics":[ {"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"} ], "attrs":[ { "attr_id":15, "attr_value":"ddd" }, { "attr_id":15, "attr_value":"eee" } ] } 响应参数 参数名 参数说明 备注 total 总共商品条数 pagenum 当前商品页数 goods_id 商品 ID goods_cat 以为','分割的分类列表 goods_name 商品名称 goods_price 价格 goods_number 数量 goods_weight 重量 不能为空 goods_state 商品状态 商品状态 0: 未通过 1: 审核中 2: 已审核 add_time 添加时间 upd_time 更新时间 hot_mumber 热销品数量 is_promote 是否是热销品 pics 上传的图片临时路径(对象) pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 attrs 商品的参数(数组) goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, 响应数据 { "data": { "goods_id": 145, "goods_name": "test_goods_name2", "goods_price": 20, "cat_id": 1, "goods_number": 30, "goods_weight": 40, "goods_introduce": "abc", "goods_big_logo": "", "goods_small_logo": "", "goods_state": 1, "add_time": 1512962370, "upd_time": 1512962370, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 397, "goods_id": 145, "pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8", "pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8", "pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8" } ], "attrs": [ { "goods_id": 145, "attr_id": 15, "attr_value": "ddd", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" }, { "goods_id": 145, "attr_id": 15, "attr_value": "eee", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" } ] }, "meta": { "msg": "创建商品成功", "status": 201 } } 1.8.3. 根据 ID 查询商品 请求路径:goods/:id 请求方法:get 请求参数 参数名 参数说明 备注 id 商品 ID 不能为空携带在url中 响应参数 参数名 参数说明 备注 total 总共商品条数 pagenum 当前商品页数 goods_id 商品 ID goods_name 商品名称 goods_price 价格 goods_number 数量 goods_weight 重量 不能为空 goods_state 商品状态 商品状态 0: 未通过 1: 审核中 2: 已审核 add_time 添加时间 upd_time 更新时间 hot_mumber 热销品数量 is_promote 是否是热销品 pics 上传的图片临时路径(对象) pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 attrs 商品的参数(数组) goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, 响应数据 { "data": { "goods_id": 145, "goods_name": "test_goods_name2", "goods_price": 20, "goods_number": 30, "goods_weight": 40, "goods_introduce": "abc", "goods_big_logo": "", "goods_small_logo": "", "goods_state": 1, "add_time": 1512962370, "upd_time": 1512962370, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 397, "goods_id": 145, "pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8", "pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8", "pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8" } ], "attrs": [ { "goods_id": 145, "attr_id": 15, "attr_value": "ddd", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" }, { "goods_id": 145, "attr_id": 15, "attr_value": "eee", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" } ] }, "meta": { "msg": "创建商品成功", "status": 201 } } 1.8.4. 编辑提交商品 请求路径:goods/:id 请求方法:put 请求参数 参数名 参数说明 备注 id 商品 ID 不能为空携带在url中 goods_name 商品名称 不能为空 goods_price 价格 不能为空 goods_number 数量 不能为空 goods_weight 重量 不能为空 goods_introduce 介绍 可以为空 pics 上传的图片临时路径(对象) 可以为空 attrs 商品的参数(数组) 可以为空 请求数据 { "goods_name":"test_goods_name2", "goods_price":20, "goods_number":30, "goods_weight":40, "goods_introduce":"abc", "pics":[ {"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"} ], "attrs":[ { "attr_id":15, "attr_value":"ddd" }, { "attr_id":15, "attr_value":"eee" } ] } 响应参数 参数名 参数说明 备注 total 总共商品条数 pagenum 当前商品页数 goods_id 商品 ID goods_name 商品名称 goods_price 价格 goods_number 数量 goods_weight 重量 不能为空 goods_state 商品状态 商品状态 0: 未通过 1: 审核中 2: 已审核 add_time 添加时间 upd_time 更新时间 hot_mumber 热销品数量 is_promote 是否是热销品 pics 上传的图片临时路径(对象) pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 attrs 商品的参数(数组) goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, 响应数据 { "data": { "goods_id": 145, "goods_name": "test_goods_name2", "goods_price": 20, "goods_number": 30, "goods_weight": 40, "goods_introduce": "abc", "goods_big_logo": "", "goods_small_logo": "", "goods_state": 1, "add_time": 1512962370, "upd_time": 1512962370, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 397, "goods_id": 145, "pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8", "pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8", "pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8" } ], "attrs": [ { "goods_id": 145, "attr_id": 15, "attr_value": "ddd", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" }, { "goods_id": 145, "attr_id": 15, "attr_value": "eee", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" } ] }, "meta": { "msg": "创建商品成功", "status": 201 } } 1.8.5. 删除商品 请求路径:goods/:id 请求方法:delete 请求参数 参数名 参数说明 备注 id 商品 ID 不能为空携带在url中 响应数据 { "data": null, "meta": { "msg": "删除成功", "status": 200 } }

###同步商品图片

请求路径:goods/:id/pics 请求方法:put 请求参数 参数名 参数说明 备注 id 商品 ID 不能为空携带在url中 pics 商品图片集合 如果有 pics_id 字段会保留该图片,如果没有 pics_id 但是有 pic 字段就会新生成图片数据 请求数据 ;[ { pic: 'tmp_uploads/db28f6316835836e97653b5c75e418be.png' }, { pics_id: 397, goods_id: 145, pics_big: 'uploads/goodspics/big_30f08d52c551ecb447277eae232304b8', pics_mid: 'uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8', pics_sma: 'uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8' } ] 响应数据 { "data": { "goods_id": 96, "goods_name": "iphoneXX", "goods_price": 2, "goods_number": 22, "goods_weight": 22, "goods_introduce": null, "goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_state": 0, "is_del": "1", "add_time": 1510045904, "upd_time": 1512635159, "delete_time": 1512635159, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 383, "goods_id": 96, "pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg" } ], "attrs": [ { "goods_id": 96, "attr_id": 15, "attr_value": "eee", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" }, { "goods_id": 96, "attr_id": 15, "attr_value": "ddd", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" } ] }, "meta": { "msg": "更新成功", "status": 200 } }

###同步商品属性

请求路径:goods/:id/attributes 请求方法:put 请求参数 参数名 参数说明 备注 id 商品 ID 不能为空携带在url中 请求数据 ;[ { attr_id: 15, attr_value: 'ddd' }, { attr_id: 15, attr_value: 'eee' } ] 响应数据 { "data": { "goods_id": 96, "goods_name": "iphoneXX", "goods_price": 2, "goods_number": 22, "goods_weight": 22, "goods_introduce": null, "goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_state": 0, "is_del": "1", "add_time": 1510045904, "upd_time": 1512635159, "delete_time": 1512635159, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 383, "goods_id": 96, "pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg" } ], "attrs": [ { "goods_id": 96, "attr_id": 15, "attr_value": "eee", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" }, { "goods_id": 96, "attr_id": 15, "attr_value": "ddd", "add_price": null, "attr_name": "fffffff", "attr_sel": "many", "attr_write": "list", "attr_vals": "" } ] }, "meta": { "msg": "更新成功", "status": 200 } }

###商品图片处理必须安装 GraphicsMagick

linux apt-get install GraphicsMagick Mac OS X brew install GraphicsMagick Windows 点击下载 1.9. 图片上传 请求路径:upload 请求方法:post 请求参数 参数名 参数说明 备注 file 上传文件 响应数据 { "data": { "tmp_path": "tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png", "url": "http://127.0.0.1:8888tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png" }, "meta": { "msg": "上传成功", "status": 200 } } 1.10. 订单管理 1.10.1. 订单数据列表 请求路径:orders 请求方法:get 请求参数 参数名 参数说明 备注 query 查询参数 可以为空 pagenum 当前页码 不能为空 pagesize 每页显示条数 不能为空 user_id 用户 ID 可以为空 pay_status 支付状态 可以为空 is_send 是否发货 可以为空 order_fapiao_title ['个人','公司'] 可以为空 order_fapiao_company 公司名称 可以为空 order_fapiao_content 发票内容 可以为空 consignee_addr 发货地址 可以为空 响应数据 { "data": { "total": 1, "pagenum": "1", "goods": [ { "order_id": 47, "user_id": 133, "order_number": "itcast-59e7502d7993d", "order_price": 322, "order_pay": "1", "is_send": "是", "trade_no": "", "order_fapiao_title": "个人", "order_fapiao_company": "", "order_fapiao_content": "办公用品", "consignee_addr": "a:7:{s:6:\"cgn_id\";i:1;s:7:\"user_id\";i:133;s:8:\"cgn_name\";s:9:\"王二柱\";s:11:\"cgn_address\";s:51:\"北京市海淀区苏州街长远天地大厦305室\";s:7:\"cgn_tel\";s:11:\"13566771298\";s:8:\"cgn_code\";s:6:\"306810\";s:11:\"delete_time\";N;}", "pay_status": "1", "create_time": 1508331565, "update_time": 1508331565 } ] }, "meta": { "msg": "获取成功", "status": 200 } } 1.10.2. 修改订单状态 请求路径:orders/:id 请求方法:put 请求参数 参数名 参数说明 备注 id 订单 ID 不能为空携带在url中 is_send 订单是否发货 1:已经发货,0:未发货 order_pay 订单支付 支付方式 0 未支付 1 支付宝 2 微信 3 银行卡 order_price 订单价格 order_number 订单数量 pay_status 支付状态 订单状态: 0 未付款、1 已付款 请求数据说明 所有请求数据都是增量更新,如果参数不填写,就不会更新该字段 响应数据 { "data": { "order_id": 67, "user_id": 1, "order_number": "itcast-g7kmck71vjaujfgoi", "order_price": 20, "order_pay": "0", "is_send": "否", "trade_no": "", "order_fapiao_title": "个人", "order_fapiao_company": "", "order_fapiao_content": "", "consignee_addr": "", "pay_status": "0", "create_time": 1512533560, "update_time": 1512533560, "goods": [ { "id": 82, "order_id": 67, "goods_id": 96, "goods_price": 333, "goods_number": 2, "goods_total_price": 999 }, { "id": 83, "order_id": 67, "goods_id": 95, "goods_price": 666, "goods_number": 5, "goods_total_price": 999 } ] }, "meta": { "msg": "获取成功", "status": 200 } } 1.10.3. 查看订单详情 请求路径:orders/:id 请求方法:get 请求参数 参数名 参数说明 备注 id 订单 ID 不能为空携带在url中 响应数据 { "data": { "order_id": 67, "user_id": 1, "order_number": "itcast-g7kmck71vjaujfgoi", "order_price": 20, "order_pay": "0", "is_send": "否", "trade_no": "", "order_fapiao_title": "个人", "order_fapiao_company": "", "order_fapiao_content": "", "consignee_addr": "", "pay_status": "0", "create_time": 1512533560, "update_time": 1512533560, "goods": [ { "id": 82, "order_id": 67, "goods_id": 96, "goods_price": 333, "goods_number": 2, "goods_total_price": 999 }, { "id": 83, "order_id": 67, "goods_id": 95, "goods_price": 666, "goods_number": 5, "goods_total_price": 999 } ] }, "meta": { "msg": "获取成功", "status": 200 } } 1.10.4. 修改地址 省市区/县联动效果 - 结合ElementUI的 el-cascader 组件 1.10.5. 查看物流信息

请求路径:/kuaidi/:id

请求方法:get

供测试的物流单号:1106975712662

响应数据:

{ "data": [ { "time": "2018-05-10 09:39:00", "ftime": "2018-05-10 09:39:00", "context": "已签收,感谢使用顺丰,期待再次为您服务", "location": "" }, { "time": "2018-05-10 08:23:00", "ftime": "2018-05-10 08:23:00", "context": "[北京市]北京海淀育新小区营业点派件员 顺丰速运 95338正在为您派件", "location": "" }, { "time": "2018-05-10 07:32:00", "ftime": "2018-05-10 07:32:00", "context": "快件到达 [北京海淀育新小区营业点]", "location": "" }, { "time": "2018-05-10 02:03:00", "ftime": "2018-05-10 02:03:00", "context": "快件在[北京顺义集散中心]已装车,准备发往 [北京海淀育新小区营业点]", "location": "" }, { "time": "2018-05-09 23:05:00", "ftime": "2018-05-09 23:05:00", "context": "快件到达 [北京顺义集散中心]", "location": "" }, { "time": "2018-05-09 21:21:00", "ftime": "2018-05-09 21:21:00", "context": "快件在[北京宝胜营业点]已装车,准备发往 [北京顺义集散中心]", "location": "" }, { "time": "2018-05-09 13:07:00", "ftime": "2018-05-09 13:07:00", "context": "顺丰速运 已收取快件", "location": "" }, { "time": "2018-05-09 12:25:03", "ftime": "2018-05-09 12:25:03", "context": "卖家发货", "location": "" }, { "time": "2018-05-09 12:22:24", "ftime": "2018-05-09 12:22:24", "context": "您的订单将由HLA(北京海淀区清河中街店)门店安排发货。", "location": "" }, { "time": "2018-05-08 21:36:04", "ftime": "2018-05-08 21:36:04", "context": "商品已经下单", "location": "" } ], "meta": { "status": 200, "message": "获取物流信息成功!" } } 1.11. 数据统计 1.11.1. 基于时间统计的折线图

请求路径:reports/type/1

请求方法:get

响应数据

需要合并的选项

options: { title: { text: '用户来源' }, tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#E9EEF3' } } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { boundaryGap: false } ], yAxis: [ { type: 'value' } ] } 1.12. 项目上线

把后端node项目部署到个人服务器上,部署后的基准地址 http://node.aoaoxiong.top/api/private/v1/

把vue项目也部署到个人服务器上,部署后的地址:http://shop.aoaoxiong.top/

1.12.1 后端node上线

node连接数据库

/www/wwwroot/node/config.json

用pm2运行node

进入宝塔面板后台,使用pm2运行node项目

运行站点

在宝塔面板/网站/Node项目中,新建项目,并启用

1.12.2 前端vue上线

打包 npm run build

nginx设置反向代理

vue打包后的项目发送网络请求的时候,遇到/api-dev开头,则转发到基准地址http://node.aoaoxiong.top/api/private/v1/

运行站点



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3