request.js 3.7 KB

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