caimeiApi.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. /**
  2. * @Time 2019-12-12
  3. * @Author Zhengjingyi
  4. * @Action 全局公共方法
  5. */
  6. // import requestUrl from './config.js'
  7. const Tool = {
  8. /**
  9. * @封装公共get数据请求方法无加载动画
  10. * @方法参数:请求地址,请求后台需要的参数字段,回调函数
  11. * @自定义请求头信息
  12. */
  13. get:function(url,data,callback){
  14. uni.request({
  15. url: requestUrl + url,
  16. data:data,
  17. header: {
  18. 'Accept': 'application/json',
  19. 'Content-Type': 'application/x-www-form-urlencoded',
  20. 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
  21. 'cookie': uni.getStorageSync('sessionid')
  22. },
  23. method: 'GET',
  24. success: (response) => {
  25. if(response.statusCode !== 200){
  26. uni.showToast({icon: 'none',title:'服务器连接错误',duration: 2000})
  27. callback(response.statusCode)
  28. }else{
  29. callback(response.data)
  30. }
  31. },
  32. fail: (error) => {
  33. if (error) {
  34. uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
  35. }
  36. }
  37. })
  38. },
  39. /**
  40. * @封装公共get数据请求方法有加载动画
  41. * @方法参数:请求地址,请求后台需要的参数字段,回调函数
  42. * @自定义请求头信息
  43. */
  44. lodingGet:function(url,data,callback){
  45. uni.showLoading({mask: true,title:'加载中~',})
  46. uni.request({
  47. url: requestUrl + url,
  48. data:data,
  49. header: {
  50. 'Accept': 'application/json',
  51. 'Content-Type': 'application/x-www-form-urlencoded',
  52. 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
  53. 'cookie': uni.getStorageSync('sessionid')
  54. },
  55. method: 'GET',
  56. success: (response) => {
  57. if(response.statusCode !== 200){
  58. uni.showToast({icon: 'none',title: '服务器连接错误',duration: 2000})
  59. callback(response.statusCode)
  60. }else{
  61. callback(response.data)
  62. }
  63. },
  64. fail: (error) => {
  65. if (error) {
  66. uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
  67. }
  68. },
  69. complete: () => {
  70. setTimeout(function () {
  71. uni.hideLoading()
  72. }, 250)
  73. }
  74. })
  75. },
  76. /**
  77. * @封装公共post数据请求方法
  78. * @方法参数:请求地址,请求后台需要的参数字段,回调函数
  79. */
  80. post:function(url,data,loadingStatus,callback){
  81. if(loadingStatus){uni.showLoading({mask: true,title:'加载中~'})}
  82. uni.request({
  83. url: requestUrl+url,
  84. data:data,
  85. header: {
  86. 'Accept': 'application/json',
  87. 'Content-Type': 'application/x-www-form-urlencoded',
  88. 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
  89. 'cookie': uni.getStorageSync('sessionid')
  90. },
  91. method: 'POST',
  92. success: (response) => {
  93. if(loadingStatus){uni.hideLoading()}
  94. const result = response.data
  95. callback(result)
  96. },
  97. fail: (error) => {
  98. uni.hideLoading()
  99. if (error) {
  100. uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
  101. }
  102. }
  103. })
  104. },
  105. getComStorage:function(key){// 获取本地Storage
  106. return new Promise(function(resolve,reject) {
  107. uni.getStorage({
  108. key: key,
  109. success: function (res){
  110. resolve(res.data)
  111. }
  112. })
  113. })
  114. },
  115. setStorage:function(key,data){// 存储本地Storage
  116. return new Promise(function(resolve,reject) {
  117. uni.setStorage({
  118. key: key,
  119. data:data,
  120. success: function (res){
  121. }
  122. })
  123. })
  124. },
  125. getStorage:function(){// 获取本地userInfo
  126. return new Promise(function(resolve,reject) {
  127. uni.getStorage({
  128. key: 'userInfo',
  129. success: function (res){
  130. resolve(res.data)
  131. },
  132. fail: function(res){
  133. reject(false)
  134. }
  135. })
  136. })
  137. },
  138. getStorageAddressKey:function(){// 获取本地地址信息
  139. return new Promise(function(resolve,reject) {
  140. uni.getStorage({
  141. key: 'address_key',
  142. success: function (res){
  143. resolve(res.data)
  144. }
  145. })
  146. })
  147. },
  148. loginStatus:function(){
  149. // 获取用户是否登陆 1:已登陆,否则未登陆
  150. return new Promise(function(resolve,reject) {
  151. uni.getStorage({
  152. key: 'userInfo',
  153. success: function (res){
  154. if(res.data.code == '1'){
  155. resolve(true)
  156. } else {
  157. resolve(false)
  158. }
  159. }
  160. })
  161. })
  162. },
  163. navigateLinkJump:function(){// 统一处理根据用户类型跳转
  164. const UserInfo = uni.getStorageSync('userInfo')
  165. let Jump_URL = ''
  166. let UserTypeObj = {
  167. 1: '/pages/collection/list',
  168. 2: '/pages/collection/list',
  169. 3: '/pages/collection/sms',
  170. 4: '/pages/collection/sms',
  171. }
  172. if(UserInfo){
  173. /**
  174. * 用户类型(userType) 1协销人员,2客服,3财务,4超级管理员
  175. * 1. 协销人员跳转到收款列表页面
  176. * 2. 客服跳转到收款列表页面
  177. * 3. 财务人员跳转到款项识别页面
  178. * 4. 超级管理员跳转到款项识别页面
  179. * */
  180. Object.keys(UserTypeObj).forEach(function(key) {
  181. if (key == UserInfo.userType) {
  182. Jump_URL = UserTypeObj[key]
  183. }
  184. })
  185. }else{
  186. Jump_URL = '/pages/login/login-account'
  187. }
  188. Tool.redirectTo(Jump_URL)
  189. },
  190. navigateBack:function(page){
  191. uni.navigateBack({
  192. delta: page
  193. })
  194. },
  195. navigateTo:function(url){
  196. //路由跳转:页面之间路由跳转
  197. uni.navigateTo({
  198. url:url
  199. })
  200. },
  201. redirectTo:function(url){
  202. //路由跳转:关闭当前页跳转到新页面
  203. uni.redirectTo({
  204. url:url
  205. })
  206. },
  207. switchTabTo:function(url){
  208. //路由跳转:底部 tab页
  209. uni.switchTab({
  210. url:url
  211. })
  212. },
  213. isNumber:function(value){
  214. //验证是否为数字
  215. var patrn = /^(-)?\d+(\.\d+)?$/
  216. if (patrn.exec(value) == null || value == '') {
  217. return false
  218. } else {
  219. return true
  220. }
  221. },
  222. getWindowHeight:function(){
  223. // 获取窗口高度
  224. const {windowHeight, pixelRatio} = wx.getSystemInfoSync()
  225. return windowHeight
  226. },
  227. adaptRichTextImg:function(res){
  228. /**
  229. *@富文本实现图片自适应
  230. *@style再添加自适应样式
  231. */
  232. const html = res.replace(/<img[^>]*>/gi,function(match,capture){
  233. let match1 = match.replace(/<img*/gi, '<img style="width:100% !important;height:auto !important;float:left !important;"'),
  234. results = match1.replace(/style=/gi, 'style="width:100%;height:auto;float:left;"')
  235. return results
  236. })
  237. return html
  238. },
  239. FormatMoney:function(num){
  240. // 金额千分位
  241. return num.toString().replace(/\d+/, function (n) { // 先提取整数部分
  242. return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) { // 对整数部分添加分隔符
  243. return $1 + ','
  244. })
  245. })
  246. },
  247. formatDate:function(){
  248. //获取当前时间
  249. let date = new Date()
  250. let y = date.getFullYear()
  251. let MM = date.getMonth() + 1
  252. MM = MM < 10 ? ('0' + MM) : MM
  253. let d = date.getDate()
  254. d = d < 10 ? ('0' + d) : d
  255. let h = date.getHours()
  256. h = h < 10 ? ('0' + h) : h
  257. let m = date.getMinutes()
  258. m = m < 10 ? ('0' + m) : m
  259. let s = date.getSeconds()
  260. s = s < 10 ? ('0' + s) : s
  261. return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s
  262. },
  263. regexSets:function() {
  264. let sets = {
  265. 'companyName': /^[\u4e00-\u9fa5\(\)()\s\da-zA-Z&]{2,50}$/gi,
  266. 'phoneAndTelephone': /^([1]\d{10}|([\((]?0[0-9]{2,3}[)\)]?[-]?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?)$/,
  267. 'bankNum': /^([1-9]{1})(\d{18})$/,
  268. 'invalidChar': /^[\s\u4e00-\u9fa5a-z0-9_-]{0,}$/
  269. }
  270. return sets
  271. },
  272. timestampToTime:function(timestamp) {
  273. // 时间戳转日期
  274. let date = new Date(timestamp * 1000)//时间戳为10位需*1000,时间戳为13位的话不需乘1000
  275. let Y = date.getFullYear() + '-'
  276. let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'
  277. let D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '
  278. let h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'
  279. let m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'
  280. let s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds())
  281. return `${Y}${M}${D}${h}${m}${s}`
  282. },
  283. getNowFormatDate:function () {
  284. var date = new Date()
  285. var seperator1 = '-'
  286. var year = date.getFullYear()
  287. var month = date.getMonth() + 1
  288. var strDate = date.getDate()
  289. var bours =date.getHours()
  290. var min = date.getMinutes()
  291. var s = date.getSeconds()
  292. if (month >= 1 && month <= 9) {
  293. month = '0' + month
  294. }
  295. if (strDate >= 0 && strDate <= 9) {
  296. strDate = '0' + strDate
  297. }
  298. if (bours >= 0 && bours <= 9) {
  299. bours = '0' + bours
  300. }
  301. if (min >= 0 && min <= 9) {
  302. min = '0' + min
  303. }
  304. if (s >= 0 && s <= 9) {
  305. s = '0' + s
  306. }
  307. var currentdate = year + seperator1 + month + seperator1 + strDate +' ' + bours+ ':'+ min+ ':'+ s
  308. return currentdate
  309. }
  310. }
  311. /**
  312. *@导出
  313. */
  314. module.exports = {
  315. get: Tool.get,
  316. post: Tool.post,
  317. lodingGet: Tool.lodingGet,
  318. isNumber: Tool.isNumber,
  319. FormatMoney: Tool.FormatMoney,
  320. navigateTo: Tool.navigateTo,
  321. redirectTo: Tool.redirectTo,
  322. switchTabTo: Tool.switchTabTo,
  323. navigateBack: Tool.navigateBack,
  324. formatDate: Tool.formatDate,
  325. loginStatus: Tool.loginStatus,
  326. setStorage: Tool.setStorage,
  327. getStorage: Tool.getStorage,
  328. getComStorage: Tool.getComStorage,
  329. navToListPage: Tool.navToListPage,
  330. getWindowHeight: Tool.getWindowHeight,
  331. adaptRichTextImg: Tool.adaptRichTextImg,
  332. getStorageAddressKey: Tool.getStorageAddressKey,
  333. regexSets: Tool.regexSets,
  334. timestampToTime: Tool.timestampToTime,
  335. getNowFormatDate : Tool.getNowFormatDate ,
  336. navigateLinkJump: Tool.navigateLinkJump
  337. }