React后台管理系统

Stella981
• 阅读 399

1新建文件夹 service ,里边建4个文件,分别是statistic-service.jsx 首页数据统计接口, user-service.jsx用户接口, product-service.jsx产品接口,order-service.jx订单接口

React后台管理系统

2.首页数据统计接口statistic-service

mm.jsx是封装的ajax请求,在上一边博客里边有讲到

  1. import MUtil from 'util/mm.jsx'

  2. const _mm = new MUtil();

  3. class Statistic{

  4. // 首页数据统计

  5. getHomeCount(){

  6. return _mm.request({

  7. url: '/manage/statistic/base_count.do'

  8. });

  9. }

  10. }

  11. export default Statistic;

3. 用户接口user-service

  1. import MUtil from 'util/mm.jsx'

  2. const _mm = new MUtil();

  3. class User{

  4. // 用户登录

  5. login(loginInfo){

  6. return _mm.request({

  7. type: 'post',

  8. url: '/manage/user/login.do',

  9. data: loginInfo

  10. });

  11. }

  12. // 检查登录接口的数据是不是合法

  13. checkLoginInfo(loginInfo){

  14. let username = $.trim(loginInfo.username),

  15. password = $.trim(loginInfo.password);

  16. // 判断用户名为空

  17. if(typeof username !== 'string' || username.length ===0){

  18. return {

  19. status: false,

  20. msg: '用户名不能为空!'

  21. }

  22. }

  23. // 判断密码为空

  24. if(typeof password !== 'string' || password.length ===0){

  25. return {

  26. status: false,

  27. msg: '密码不能为空!'

  28. }

  29. }

  30. return {

  31. status : true,

  32. msg : '验证通过'

  33. }

  34. }

  35. // 退出登录

  36. logout(){

  37. return _mm.request({

  38. type : 'post',

  39. url : '/user/logout.do'

  40. });

  41. }

  42. getUserList(pageNum){

  43. return _mm.request({

  44. type : 'post',

  45. url : '/manage/user/list.do',

  46. data : {

  47. pageNum : pageNum

  48. }

  49. });

  50. }

  51. }

  52. export default User;

4.产品接口product-service

  1. import MUtil from 'util/mm.jsx'

  2. const _mm = new MUtil();

  3. class Product{

  4. // 获取商品列表

  5. getProductList(listParam){

  6. let url = '',

  7. data = {};

  8. if(listParam.listType === 'list'){

  9. url = '/manage/product/list.do';

  10. data.pageNum = listParam.pageNum;

  11. }else if(listParam.listType === 'search'){

  12. url = '/manage/product/search.do';

  13. data.pageNum = listParam.pageNum;

  14. data[listParam.searchType] = listParam.keyword;

  15. }

  16. return _mm.request({

  17. type : 'post',

  18. url : url,

  19. data : data

  20. });

  21. }

  22. // 获取商品详情

  23. getProduct(productId){

  24. return _mm.request({

  25. type : 'post',

  26. url : '/manage/product/detail.do',

  27. data : {

  28. productId : productId || 0

  29. }

  30. });

  31. }

  32. // 检查保存商品的表单数据

  33. checkProduct(product){

  34. let result = {

  35. status: true,

  36. msg: '验证通过'

  37. };

  38. // 判断用户名为空

  39. if(typeof product.name !== 'string' || product.name.length ===0){

  40. return {

  41. status: false,

  42. msg: '商品名称不能为空!'

  43. }

  44. }

  45. // 判断描述不能为空

  46. if(typeof product.subtitle !== 'string' || product.subtitle.length ===0){

  47. return {

  48. status: false,

  49. msg: '商品描述不能为空!'

  50. }

  51. }

  52. // 验证品类ID

  53. if(typeof product.categoryId !== 'number' || !(product.categoryId > 0)){

  54. return {

  55. status: false,

  56. msg: '请选择商品品类!'

  57. }

  58. }

  59. // 判断商品价格为数字,且大于0

  60. if(typeof product.price !== 'number' || !(product.price >= 0)){

  61. return {

  62. status: false,

  63. msg: '请输入正确的商品价格!'

  64. }

  65. }

  66. // 判断库存为数字,且大于或等于0

  67. if(typeof product.stock !== 'number' || !(product.stock >= 0)){

  68. return {

  69. status: false,

  70. msg: '请输入正确的库存数量!'

  71. }

  72. }

  73. return result;

  74. }

  75. // 保存商品

  76. saveProduct(product){

  77. return _mm.request({

  78. type : 'post',

  79. url : '/manage/product/save.do',

  80. data : product

  81. });

  82. }

  83. // 变更商品销售状态

  84. setProductStatus(productInfo){

  85. return _mm.request({

  86. type : 'post',

  87. url : '/manage/product/set_sale_status.do',

  88. data : productInfo

  89. });

  90. }

  91. //查找一级品类列表

  92. getCategoryList(parentCategoryId){

  93. return _mm.request({

  94. type : 'post',

  95. url : '/manage/category/get_category.do',

  96. data : {

  97. //没有传的话默认值就是0

  98. categoryId : parentCategoryId || 0

  99. }

  100. });

  101. }

  102. // 新增品类

  103. saveCategory(category){

  104. return _mm.request({

  105. type : 'post',

  106. url : '/manage/category/add_category.do',

  107. data : category

  108. });

  109. }

  110. // 修改品类名称

  111. updateCategoryName(category){

  112. return _mm.request({

  113. type : 'post',

  114. url : '/manage/category/set_category_name.do',

  115. data : category

  116. });

  117. }

  118. }

  119. export default Product;

5.订单接口order-service.jx

  1. import MUtil from 'util/mm.jsx'

  2. const _mm = new MUtil();

  3. class Order{

  4. // 获取订单列表

  5. getOrderList(listParam){

  6. let url = '',

  7. data = {};

  8. if(listParam.listType === 'list'){

  9. url = '/manage/order/list.do';

  10. data.pageNum = listParam.pageNum;

  11. }else if(listParam.listType === 'search'){

  12. url = '/manage/order/search.do';

  13. data.pageNum = listParam.pageNum;

  14. data.orderNo = listParam.orderNo;

  15. }

  16. return _mm.request({

  17. type : 'post',

  18. url : url,

  19. data : data

  20. });

  21. }

  22. // 获取订单详情

  23. getOrderDetail(orderNumber){

  24. return _mm.request({

  25. type : 'post',

  26. url : '/manage/order/detail.do',

  27. data : {

  28. orderNo : orderNumber

  29. }

  30. });

  31. }

  32. sendGoods(orderNumber){

  33. return _mm.request({

  34. type : 'post',

  35. url : '/manage/order/send_goods.do',

  36. data : {

  37. orderNo : orderNumber

  38. }

  39. });

  40. }

  41. }

  42. export default Order;

6.解决跨域问题

在webpack.config里边 devserverr 里边的proxy配置即可解决

React后台管理系统

7.页面引入和使用

  1. import Statistic from 'service/statistic-service.jsx'

  2. const _statistic = new Statistic();

  3. _statistic.getHomeCount().then(res => {

  4. this.setState(res);

  5. }, errMsg => {

  6. _mm.errorTips(errMsg);

  7. });

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这