api.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. var QQMapWX = require("./qqmap.js");
  2. const loadPrevMerchant = req => {
  3. return new Promise((resolve, reject) => {
  4. req.g('/api/merchant/default', res => {
  5. resolve(res);
  6. });
  7. });
  8. };
  9. /**
  10. * 初始化距离
  11. * @param {*} form
  12. */
  13. const initRange = (data, form, success, req) => {
  14. console.log('initRange==' + data, form);
  15. var timestamp = Date.parse(new Date());
  16. data.time = timestamp + 1 * 60 * 1000
  17. if (!form.latitude || !form.longitude) {
  18. if (data && data.type == 5) {
  19. data.merchantDTO.time = timestamp + 1 * 60 * 1000
  20. req.setStorage('smallShop', data);
  21. req.setStorage('MERCHANT', data.merchantDTO);
  22. } else {
  23. req.setStorage('MERCHANT', data);
  24. req.removeStorage('smallShop');
  25. }
  26. success.call(this, data); // req.setStorage('MERCHANT', data);
  27. return false;
  28. }
  29. // console.log(data, "/**");
  30. QQMapWX.initMap(req.public.mapLBSKEY); // const form = { latitude: point.lat, longitude: point.lng };
  31. if (!data.lat || !data.lng) {
  32. if (data && data.type == 5) {
  33. data.merchantDTO.time = timestamp + 1 * 60 * 1000
  34. req.setStorage('smallShop', data);
  35. req.setStorage('MERCHANT', data.merchantDTO);
  36. } else {
  37. req.setStorage('MERCHANT', data);
  38. req.removeStorage('smallShop');
  39. }
  40. } else {
  41. const to = {
  42. latitude: data.lat,
  43. longitude: data.lng
  44. };
  45. QQMapWX.reverseGeocoder(to, resp => {
  46. console.log('地理位置数据22222>>>>>>>==', resp);
  47. req.setStorage('loctionAddressMap', resp);
  48. // req.setStorage('loctionAddressMap', resp.ad_info);
  49. });
  50. QQMapWX.calculateDistance(form, [to], response => {
  51. // console.log('地理位置数据>>>>>>>==',response);
  52. if (response) {
  53. data.range = Math.round(response.elements[0].distance / 1000);
  54. data.mDistance = response.elements[0].distance;
  55. }
  56. if (data && data.type == 5) {
  57. data.merchantDTO.time = timestamp + 1 * 60 * 1000
  58. req.setStorage('smallShop', data);
  59. req.setStorage('MERCHANT', data.merchantDTO);
  60. } else {
  61. req.setStorage('MERCHANT', data);
  62. req.removeStorage('smallShop');
  63. }
  64. success.call(this, data);
  65. });
  66. }
  67. };
  68. const initMerchant = (req, point, success) => {
  69. //初始化门店信息
  70. //获取本地缓存门店信息
  71. // let merchant = req.getStorage("MERCHANT");
  72. // if (merchant) success.call(this, merchant);
  73. // else {
  74. //获取上次选择的门店
  75. loadPrevMerchant(req).then(data => {
  76. if (!data || !data.id) {
  77. let userPid
  78. if (!JSON.parse(req.getStorage('configRes')).User_Limit_Store || JSON.parse(req.getStorage(
  79. 'configRes'))
  80. .User_Limit_Store != 1) {
  81. } else {
  82. if (!req.getStorage('userInfo').pid) {
  83. userPid = 1
  84. } else {
  85. delete point.lat
  86. delete point.lng
  87. point.pid = req.getStorage('userInfo').pid
  88. }
  89. }
  90. //获取最近的门店
  91. req.getRequest('/api/merchant/getMerchantList', point, res => {
  92. // if (point.type == "shopindex") {AA
  93. // res = res.filter(it => it.isDefault != 1);
  94. // }
  95. if (userPid == 1) {
  96. res = res.filter(it => it.isDefault == 1);
  97. }
  98. console.log('最近的门店==')
  99. initRange(res[0], {
  100. latitude: point.lat,
  101. longitude: point.lng
  102. }, success, req);
  103. });
  104. } else {
  105. console.log('上次有门店==')
  106. initRange(data, {
  107. latitude: point.lat,
  108. longitude: point.lng
  109. }, success, req);
  110. }
  111. })
  112. // }
  113. };
  114. // 获取租户的默认门店
  115. const defaultMerchant = (req, point, success) => {
  116. req.getRequest('/api/merchant/getIsdefault', {}, res => {
  117. req.setStorage('defaultMerchant', res);
  118. success.call(this, res);
  119. });
  120. };
  121. // 获取门店
  122. const getMerchant = (query, req, success) => {
  123. defaultMerchant(req, query, success);
  124. //判断是否开启多门店,
  125. if (JSON.parse(req.getStorage('configRes')).Many_Store == 0 || !JSON.parse(req.getStorage('configRes'))
  126. .Many_Store) {
  127. //无多门店
  128. success.call(this, 1)
  129. } else {
  130. //是多门店
  131. let merchant
  132. if (req.getStorage('user_merchantId') || (query.merchantId && query.merchantId != 'undefined')) {
  133. console.log('query有门店id');
  134. let from = {};
  135. if (req.getStorage('user_merchantId')) {
  136. from.id = req.getStorage('user_merchantId');
  137. } else {
  138. from.id = query.merchantId;
  139. }
  140. req.getRequest('/api/merchant/detail', from, data => {
  141. if (!data.id) {
  142. req.msg('该门店不存在' + (JSON.parse(req.getStorage('configRes')).User_Limit_Store != 1 ?
  143. ',请切换门店' : ''))
  144. } else {
  145. if (!data.isBusiness) {
  146. req.msg('该门店暂未营业' + (JSON.parse(req.getStorage('configRes')).User_Limit_Store !=
  147. 1 ? ',请切换门店' : ''))
  148. setTimeout(() => {
  149. success.call(this, data);
  150. }, 800)
  151. } else {
  152. var timestamp = Date.parse(new Date());
  153. data.time = timestamp + 1 * 60 * 1000
  154. if (data.type == 5) {
  155. data.merchantDTO.time = timestamp + 1 * 60 * 1000
  156. req.setStorage("smallShop", data), req.setStorage("MERCHANT", data
  157. .merchantDTO);
  158. } else {
  159. req.setStorage("MERCHANT", data);
  160. }
  161. success.call(this, data);
  162. }
  163. }
  164. });
  165. } else {
  166. console.log('query--没有门店id');
  167. var timestamp = Date.parse(new Date());
  168. if (req.getStorage('configRes') && JSON.parse(req.getStorage('configRes')).User_Limit_Store && JSON
  169. .parse(
  170. req.getStorage('configRes'))
  171. .User_Limit_Store == 1) {
  172. if (req.getStorage('smallShop')) {
  173. merchant = req.getStorage('smallShop');
  174. } else if (req.getStorage('MERCHANT')) {
  175. merchant = req.getStorage('MERCHANT');
  176. }
  177. } else {
  178. // console.log(req.getStorage('smallShop').time, "=================================", req.getStorage(
  179. // 'MERCHANT').time, req.getStorage('smallShop').time > timestamp,req.getStorage('MERCHANT').time > timestamp)
  180. if (req.getStorage('smallShop') && req.getStorage('smallShop').time > timestamp) {
  181. merchant = req.getStorage('smallShop');
  182. } else if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').time > timestamp) {
  183. merchant = req.getStorage('MERCHANT');
  184. }
  185. }
  186. if (merchant) {
  187. merchant.mDistance = parseFloat(merchant.mDistance);
  188. merchant.range = parseFloat(merchant.range);
  189. success.call(this, merchant);
  190. } else {
  191. if (JSON.parse(req.getStorage('configRes')).User_Limit_Store && JSON.parse(req.getStorage(
  192. 'configRes'))
  193. .User_Limit_Store == 1) {
  194. initMerchant(req, {}, data => {
  195. if (data) {
  196. data.mDistance = parseFloat(data.mDistance);
  197. data.range = parseFloat(data.range); // if(data.isDefault!=1){
  198. success.call(this, data);
  199. }
  200. });
  201. } else {
  202. req.getLocation(res => {
  203. if (res == 1 || res == 2) {
  204. success.call(this, req.getStorage("defaultMerchant"));
  205. } else {
  206. let form = {
  207. lat: res.latitude,
  208. lng: res.longitude
  209. }
  210. if (query.type) {
  211. form.type = query.type
  212. }
  213. initMerchant(req, form, data => {
  214. if (data) {
  215. data.mDistance = parseFloat(data.mDistance);
  216. data.range = parseFloat(data.range); // if(data.isDefault!=1){
  217. success.call(this, data);
  218. }
  219. });
  220. }
  221. });
  222. }
  223. }
  224. }
  225. }
  226. };
  227. const locationShow = () => {
  228. uni.showModal({
  229. title: '温馨提示',
  230. content: '获取定位失败,请前往设置打开定位权限',
  231. showCancel: false,
  232. success(res) {
  233. if (res.confirm) {
  234. uni.openSetting({
  235. success(res) {}
  236. });
  237. }
  238. }
  239. });
  240. }
  241. module.exports = {
  242. initMerchant: initMerchant,
  243. defaultMerchant: defaultMerchant,
  244. getMerchant: getMerchant,
  245. locationShow: locationShow,
  246. //驿站相关接口
  247. merchant_save: '/api/merchant/save', //添加门店
  248. merchant_isMerchant: '/api/merchant/isMerchant', //是否添加门店
  249. merchant_detail: '/api/merchant/detail', //门店详情
  250. settlement_create: '/api/v3/settlement/create', //申请驿站
  251. settlement_info: '/api/v3/settlement/info', //进件信息
  252. merchant_order_list: '/api/order/merchant/list', //门店订单列表
  253. order_deliver_split: '/api/v3/order/deliver/split', //拆单
  254. merchantCent_count: '/api/merchantCent/count', //门店收入
  255. merchantCent_page: '/api/merchantCent/page', //门店收益明细
  256. manage_clue_pool: '/manage/clue/pool', //线索池子
  257. manage_clue_delete: '/manage/clue/delete', //删除线索
  258. manage_clue_distribution: '/manage/clue/distribution', //线索分配
  259. manage_clue_info: '/manage/clue/info', //线索详情
  260. manage_clue_invalid: '/manage/clue/invalid', //标记线索失效
  261. manage_clue_list: '/manage/clue/list', //线索列表
  262. manage_clue_logsList: '/manage/clue/logsList', //线索日志
  263. manage_clue_save: '/api/v3/assistant/clueSave', //新建或修改线索
  264. manage_clue_update: '/manage/clue/update', //更新线索
  265. manage_clue_source: '/manage/clue/source', //线索详情源数据
  266. manage_clue_total: '/api/v3/assistant/clueCensus', //线索统计
  267. manage_clue_totalV2: '/manage/clue/totalV2', //客户统计数据
  268. manage_source_list: '/manage/source/list', //线索来源
  269. manage_sysdict_list: '/manage/sysDict/getList', //需求类型和客户类型接口
  270. manage_demand_list: '/api/v3/assistant/demand/list', //线索需求类型列表
  271. manage_demand_create: '/api/v3/assistant/demand/create', //创建需求类型
  272. manage_demand_delete: '/api/v3/assistant/demand/delete', //删除标签
  273. manage_clue_contact: '/manage/clue/contact', //联系方式类型
  274. customer_followUp: '/manage/customer/followUp', //设置跟进
  275. manage_clue_followUp: '/manage/clue/followUp', //跟进方式
  276. manage_logs_journey: '/manage/logs/journey', //客户旅程
  277. manage_logs_last: '/manage/logs/last', //最后的客户旅程
  278. manage_logs_info: '/manage/logs/info', //获取客户、线索基本信息
  279. userinfo: '/api/user/info', //用户数据
  280. weixin_mobile: '/api/weixin/mobile', //绑定微信手机号(成为会员)
  281. user_info: '/api/user/info', //我的
  282. banner: '/api/banner', //广告
  283. manage_clue_importance: '/manage/clue/importance', //打星星
  284. manage_clue_topping: '/manage/clue/topping', //置顶
  285. manage_clue_read: '/manage/clue/read', //标记为已读
  286. manage_logs_logAnnotation: '/manage/logs/logAnnotation', //提交批注
  287. manage_group_list: '/api/v3/assistant/group/list', //客户标签列表
  288. manage_group_create: '/manage/group/create', //创建客户标签分组
  289. manage_group_delete: '/manage/group/delete', //删除客户标签分组
  290. //需求类型
  291. manage_scrm_label_list: '/api/v3/assistant/labelList', //需求类型列表
  292. // 销售业绩
  293. perfomance_statistics: '/api/v3/distribution/commission/index', //业绩统计首页
  294. perfomance_statistics_charts: '/api/v3/distribution/commission/indexChart', //销售统计
  295. personal_achievementList: '/api/v3/distribution/commission/achievementList', //个人业绩统计
  296. team_achievementList: '/api/v3/distribution/commission/teamAchievementList', //团队业绩统计
  297. team_nextDept: '/api/v3/distribution/commission/nextDept', //用户管理的部门
  298. team_personAchievementList: '/api/v3/distribution/commission/personAchievementList', //团队成员销售业绩统计
  299. // 次卡
  300. card_page: '/api/v3/secondary/card/page', //次卡列表
  301. card_polymerization: '/api/v3/secondary/card/polymerization', //次卡聚合列表
  302. card_detail: '/api/v3/secondary/card/detail', //次卡详情
  303. card_useList: '/api/v3/secondary/card/useList', //用户未使用次卡列表
  304. // 集成数据中心
  305. commission_customer: '/api/v3/distribution/commission/customer', //推广合伙人我的客户
  306. commission_marketChart: '/api/v3/distribution/commission/marketChart', //市场数据
  307. //名片
  308. api_isCompany: '/api/addressList/isCompany', //是创建了名片
  309. api_addressList_info: '/api/addressList/myCompany', //名片详情-自己
  310. api_addressList_infoV2: '/api/addressList/infoV2', //名片详情-别人查看,传入名片id
  311. api_addressList_save: '/api/addressList/save', //保存名片
  312. api_addressList_update: '/api/addressList/update', //修改名片
  313. api_company_visits_save: '/api/company/visits/save', //名片浏览记录
  314. api_company_visits_count: '/api/company/visits/count', //统计
  315. api_addressList_getCompanyCode: '/api/addressList/getCompanyCode', //获取名片码
  316. // 名片
  317. card_userInfo: '/api/v3/visiting/card/userInfo', //用户名片信息
  318. card_info: '/api/v3/visiting/card/info', //名片信息
  319. card_saveOrUpdate: '/api/v3/visiting/card/saveOrUpdate', //创建或更新名片信息
  320. card_isExit: '/api/v3/visiting/card/isExist', //判断用户是否存在
  321. //企业管理
  322. company_detail: '/api/v3/recruit/company/detail', //企业详情
  323. company_my: '/api/v3/recruit/company/detail/my', //我的企业
  324. company_list: '/api/v3/recruit/company/list', //企业列表
  325. company_save: '/api/v3/recruit/company/save', //企业保存post
  326. company_industry: '/manage/company/industry', //行业分类列表
  327. // 优惠券
  328. coupon_exchange: '/api/v3/coupon/exchange', //兑换码兑换优惠券
  329. upload: '/api/upload', //上传文件
  330. api_position_list: '/api/position/list', //职位管理
  331. webchat_appId: '/api/v3/oauth/web-chat/appId', //获取租户的公众号ID
  332. wechat_loginV2: '/api/wechat/loginV2', //公众号静默授权登录
  333. // 登录
  334. mobile_bind_mobile: '/api/bind/mobile', //手机号绑定
  335. sms_bind_mobile: '/api/send/bind/mobile', //发送绑定手机短信
  336. sms_login: '/api/sms/login', //发送登录验证手机短信
  337. mobile_login: '/api/mobileLogin', //手机验证码登录
  338. wechat_login: '/api/wxapp/login', //微信登录
  339. // 验证码登录
  340. api_sms_login: '/api/sms/login', //发送登录验证码
  341. api_mobile_login: '/api/mobileLogin', //发送登录验证码
  342. // 赛事报名
  343. enlist_create: '/api/v3/enlist/create', //创建报名记录
  344. enlist_launchCrowd: '/api/v3/enlist/launchCrowd', //发起支付或转为众筹
  345. enlist_orderweixin_pay: '/api/orderweixin/pay', //直接支付 调用第三方支付下单支付
  346. enlist_again_pay: '/api/match/again-pay', //重新支付更改订单状态
  347. match_avatar_list: '/api/match/avatar/list', //虚拟报名头像
  348. // 签到
  349. enlist_select: '/api/v3/enlist/select', //查询报名信息
  350. enlist_sign_sms: '/api/sms/enlist/sign', //报名签到发送验证码
  351. enlist_sign_v2: '/api/v3/enlist/sign/v2', //报名签到
  352. // 在线挂号
  353. unified_tree_list: '/api/v3/unified/tree/list', //科室type=2
  354. doctor_list: '/api/v3/sysUser/getDoctor', //医生列表
  355. doctor_listV2: '/api/v3/sysUser/getDoctorV2', //首页医生列表
  356. doctor_info: '/api/v3/sysUser/info', //医生详情
  357. doctor_rostering: '/api/rostering/v3/getDoctorRostering', //医生排班列表
  358. rostering_msg: '/api/rostering/v3/register/msg', //医生排班列表
  359. rostering_create: '/api/rostering/v3/create', //创建挂号订单
  360. rostering_info: '/api/rostering/v3/register/info', //挂号订单详情
  361. orderRefund_whole: '/api/orderRefund/whole', //取消挂号
  362. rostering_isReservation: '/api/rostering/v3/isReservation', //检查是否预约
  363. };