request.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import ext from "@/ext.json";
  2. import { router } from "./router";
  3. // 请求域名
  4. var domain = "https://openwork.dfwy.tech/";
  5. //var domain = 'http://saas.com/'
  6. // #ifdef MP-WEIXIN
  7. // 'http://127.0.0.1:8000/';
  8. // domain = uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? 'https://openwork.dfwy.tech/' : 'https://openwork.dfwy.tech/';
  9. // domain = uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? ext.getExtStoreId('release_host_url') : ext.getExtStoreId('host_url');
  10. // var app_id = ext.getExtStoreId('app_id') ? ext.getExtStoreId('app_id') : '';
  11. var app_id = ext.extAppid;
  12. // #endif
  13. // 发送网络请求的函数
  14. export const request = (url, data = {}, method = "GET") => {
  15. // 获取登录标识
  16. let userLogin = uni.getStorageSync("userLogin");
  17. let shopId = uni.getStorageSync("shopId");
  18. // 合并参数
  19. if (userLogin && userLogin.authcode)
  20. data = Object.assign({ authcode: userLogin.authcode }, data);
  21. if (shopId) data = Object.assign({ shop_id: shopId }, data);
  22. if (app_id) data = Object.assign({ app_id: app_id }, data);
  23. // 封装
  24. return new Promise((resolve, reject) => {
  25. uni.request({
  26. url: domain + url,
  27. method: method,
  28. data: data,
  29. success: (res) => {
  30. // 登录提示
  31. if (res.data.code == "no_login") {
  32. // 清空登录标识
  33. uni.setStorageSync("userLogin", null);
  34. // 清空用户信息
  35. uni.setStorageSync("userInfo", null);
  36. // 前去登录
  37. uni.showModal({
  38. title: "请登录",
  39. success(res) {
  40. if (res.confirm) {
  41. // 用户点击确定按钮
  42. router.push({
  43. url: "/pages/login/index",
  44. });
  45. }
  46. },
  47. });
  48. reject("请登录");
  49. }
  50. // 返回结果
  51. resolve(res.data);
  52. },
  53. fail: (err) => {
  54. reject(err);
  55. },
  56. });
  57. });
  58. };
  59. const fileupload = (url, filePath, data = {}) => {
  60. // 获取登录标识
  61. let userLogin = uni.getStorageSync("userLogin");
  62. // 合并参数
  63. if (userLogin && userLogin.authcode)
  64. data = Object.assign({ authcode: userLogin.authcode }, data);
  65. if (app_id) data = Object.assign({ app_id: app_id }, data);
  66. // 封装
  67. return new Promise((resolve, reject) => {
  68. uni.uploadFile({
  69. url: domain + url, // 你的上传接口地址
  70. filePath: filePath,
  71. name: "file", // 必须填写,为了后端接收文件流的参数名字
  72. formData: data, // 其他要上传的参数
  73. success: (res) => {
  74. // 登录提示
  75. if (res.data.code == "no_login") {
  76. // 前去登录
  77. uni.showModal({
  78. title: "请登录",
  79. success(res) {
  80. if (res.confirm) {
  81. // 用户点击确定按钮
  82. uni.navigateTo({
  83. url: "/pages/login/index",
  84. });
  85. }
  86. },
  87. });
  88. }
  89. // 转json,php返回可能会带bom头需要先替换
  90. let resdata = JSON.parse(res.data.replace("\uFEFF", ""));
  91. resolve(resdata);
  92. },
  93. fail: (err) => {
  94. reject(err);
  95. },
  96. });
  97. });
  98. };
  99. // 字符串键值对转参数对象
  100. const strToParam = (str, separator = "&") => {
  101. // 先转码
  102. str = decodeURIComponent(str);
  103. let pairs = str.split(separator);
  104. let result = {};
  105. pairs.forEach((pair) => {
  106. let [key, value] = pair.split("=");
  107. result[key] = value;
  108. });
  109. // 返回结果
  110. return result;
  111. };
  112. // 模块导出,{name:object} 为对象式,导出多个使用
  113. // export default {request:request,request1:request1};
  114. // 单个对象,直接导出如下
  115. export default {
  116. request: request,
  117. fileupload: fileupload,
  118. strToParam: strToParam,
  119. };