|
@@ -0,0 +1,446 @@
|
|
|
+/**
|
|
|
+ * @Time 2019-12-12
|
|
|
+ * @Author Zhengjingyi
|
|
|
+ * @Action 全局公共方法
|
|
|
+ */
|
|
|
+import requestUrl from '@/services/config.env.js'
|
|
|
+const caimeiApi = {
|
|
|
+ /**
|
|
|
+ * @封装公共get数据请求方法无加载动画
|
|
|
+ * @方法参数:请求地址,请求后台需要的参数字段,回调函数
|
|
|
+ * @自定义请求头信息
|
|
|
+ */
|
|
|
+ get:function(url,data,callback){
|
|
|
+ uni.request({
|
|
|
+ url: requestUrl + url,
|
|
|
+ data:data,
|
|
|
+ header: {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
+ 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
|
|
|
+ 'cookie': uni.getStorageSync('sessionid')
|
|
|
+ },
|
|
|
+ method: 'GET',
|
|
|
+ success: (response) => {
|
|
|
+ if(response.statusCode !== 200){
|
|
|
+ uni.showToast({icon: 'none',title:'服务器连接错误',duration: 2000})
|
|
|
+ callback(response.statusCode)
|
|
|
+ }else{
|
|
|
+ callback(response.data)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (error) => {
|
|
|
+ if (error) {
|
|
|
+ uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @封装公共get数据请求方法有加载动画
|
|
|
+ * @方法参数:请求地址,请求后台需要的参数字段,回调函数
|
|
|
+ * @自定义请求头信息
|
|
|
+ */
|
|
|
+ lodingGet:function(url,data,callback){
|
|
|
+ uni.showLoading({mask: true,title:'加载中~',})
|
|
|
+ uni.request({
|
|
|
+ url: requestUrl + url,
|
|
|
+ data:data,
|
|
|
+ header: {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
+ 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
|
|
|
+ 'cookie': uni.getStorageSync('sessionid')
|
|
|
+ },
|
|
|
+ method: 'GET',
|
|
|
+ success: (response) => {
|
|
|
+ if(response.statusCode !== 200){
|
|
|
+ uni.showToast({icon: 'none',title: '服务器连接错误',duration: 2000})
|
|
|
+ callback(response.statusCode)
|
|
|
+ }else{
|
|
|
+ callback(response.data)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (error) => {
|
|
|
+ if (error) {
|
|
|
+ uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
|
|
|
+ }
|
|
|
+ },
|
|
|
+ complete: () => {
|
|
|
+ setTimeout(function () {
|
|
|
+ uni.hideLoading()
|
|
|
+ }, 250)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @封装公共post数据请求方法
|
|
|
+ * @方法参数:请求地址,请求后台需要的参数字段,回调函数
|
|
|
+ */
|
|
|
+ post:function(url,data,loadingStatus,callback){
|
|
|
+ if(loadingStatus){uni.showLoading({mask: true,title:'加载中~'})}
|
|
|
+ uni.request({
|
|
|
+ url: requestUrl+url,
|
|
|
+ data:data,
|
|
|
+ header: {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
+ 'X-Token': uni.getStorageSync('token') ? uni.getStorageSync('token') : 'token',
|
|
|
+ 'cookie': uni.getStorageSync('sessionid')
|
|
|
+ },
|
|
|
+ method: 'POST',
|
|
|
+ success: (response) => {
|
|
|
+ if(loadingStatus){uni.hideLoading()}
|
|
|
+ const result = response.data
|
|
|
+ callback(result)
|
|
|
+ },
|
|
|
+ fail: (error) => {
|
|
|
+ uni.hideLoading()
|
|
|
+ if (error) {
|
|
|
+ uni.showToast({icon: 'none',title: '网络错误,请稍后重试',duration: 2000})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getComStorage:function(key){// 获取本地Storage
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.getStorage({
|
|
|
+ key: key,
|
|
|
+ success: function (res){
|
|
|
+ resolve(res.data)
|
|
|
+ },
|
|
|
+ fail: function(res){
|
|
|
+ reject(false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ setStorage:function(key,data){// 存储本地Storage
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.setStorage({
|
|
|
+ key: key,
|
|
|
+ data:data,
|
|
|
+ success: function (res){
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getStorage:function(){// 获取本地userInfo
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.getStorage({
|
|
|
+ key: 'userInfo',
|
|
|
+ success: function (res){
|
|
|
+ resolve(res.data)
|
|
|
+ },
|
|
|
+ fail: function(res){
|
|
|
+ reject(false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ removeStorage:function(key){// 获取本地userInfo
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.removeStorage({
|
|
|
+ key: key,
|
|
|
+ success: function (res) {
|
|
|
+ console.log('success')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getStorageAddressKey:function(){// 获取本地地址信息
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.getStorage({
|
|
|
+ key: 'address_key',
|
|
|
+ success: function (res){
|
|
|
+ resolve(res.data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ loginStatus:function(){
|
|
|
+ // 获取用户是否登陆 1:已登陆,否则未登陆
|
|
|
+ return new Promise(function(resolve,reject) {
|
|
|
+ uni.getStorage({
|
|
|
+ key: 'userInfo',
|
|
|
+ success: function (res){
|
|
|
+ if(res.data.code == '1'){
|
|
|
+ resolve(true)
|
|
|
+ } else {
|
|
|
+ resolve(false)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ navToListPage:function({type,value,id,lType} = {}){
|
|
|
+ // 跳转到列表页
|
|
|
+ if(lType=='4'){
|
|
|
+ const pages = getCurrentPages()
|
|
|
+ const prevPage = pages[pages.length-2]
|
|
|
+ prevPage.refresh = true
|
|
|
+ prevPage.listData = {
|
|
|
+ type: type,
|
|
|
+ from: value,
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`/pages/goods/goods?type=${type}&from=${value}&id=${id}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ navigateToGoods:function({type,value,id,lType} = {}){
|
|
|
+ // 跳转到列表页
|
|
|
+ if(lType=='4'){
|
|
|
+ const pages = getCurrentPages()
|
|
|
+ const prevPage = pages[pages.length-2]
|
|
|
+ prevPage.refresh = true
|
|
|
+ prevPage.listData = {
|
|
|
+ type: type,
|
|
|
+ from: value,
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`/pages/goods/goods-classify?type=${type}&from=${value}&id=${id}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ FlooryNavigateTo:function(pros){
|
|
|
+ if(pros.listType == 1){
|
|
|
+ if(pros.product.productCategory == '1'){
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`/pages/goods/product?id=${pros.product.productId}`
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`/pages/second/product/product-details?id=${pros.product.productId}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ /**
|
|
|
+ * 页面跳转类型
|
|
|
+ * 1、二级页面,2、搜索项目仪器,3、直播页面,4、自由页面,5、商品详情,6、仪器项目详情,7、供应商主页
|
|
|
+ * 8、专题活动页,9、二手市场介绍,10、二手商品列表,11、二手商品发布,12、商品搜索,13、信息详情
|
|
|
+ * 14、品牌招商介绍页,15、维修保养介绍页,16、首页,17、注册页,18、信息中心,19、供应商列表
|
|
|
+ **/
|
|
|
+ if(pros.linkType){
|
|
|
+ console.log(pros.linkType)
|
|
|
+ const typeMap = {
|
|
|
+ 1:`/pages/goods/goods-instrument?linkId=${pros.linkParam.id}`,
|
|
|
+ 2:`/pages/goods/instrument-details?id=${pros.linkParam.id}`,
|
|
|
+ 3:`/pages/h5/article/page-image?image=${pros.adsImage}&title=专题直播`,
|
|
|
+ 4:`/pages/h5/activity/activity?link=${pros.crmLink}&linkId=${pros.linkParam.id}`,
|
|
|
+ 5:`/pages/goods/product?id=${pros.linkParam.id}`,
|
|
|
+ 7:`/pages/supplier/user/my-shop?shopId=${pros.linkParam.id}`,
|
|
|
+ 8:'/pages/h5/activity/activity-list',
|
|
|
+ 9:'/pages/second/form/introduce',
|
|
|
+ 10:'/pages/second/product/product-list',
|
|
|
+ 11:'/pages/second/form/form',
|
|
|
+ 12:`/pages/search/search?keyWord=${pros.linkParam.keyword}`,
|
|
|
+ 13:`/pages/h5/article/path?link=${pros.link}`,
|
|
|
+ 14:`/pages/h5/article/path?link=${pros.link}`,
|
|
|
+ 15:`/pages/h5/article/path?link=${pros.link}`,
|
|
|
+ // '-1':`/pages/h5/article/path?link=${pros.link}`,
|
|
|
+ 17:'/pages/login/register-select',
|
|
|
+ 18:`/pages/h5/article/path?link=${pros.link}`,
|
|
|
+ 19:`/pages/search/search-supplier?keyWord=${pros.linkParam.keyword}`,
|
|
|
+ 21:'/pages/h5/activity/meobohui',
|
|
|
+ 23:`/pages/h5/activity/activity-topic?linkId=${pros.linkParam.id}`,
|
|
|
+ 24:'/pages/user/coupon/coupon',
|
|
|
+ 25:'/pages/goods/goods-doc-list',//美业资料
|
|
|
+ 28:`/pages/h5/article/path?link=${pros.link}`, // 采美认证通
|
|
|
+ 29:'/pages/user/coupon/coupon-collection',//领券中心
|
|
|
+ }
|
|
|
+ const url = typeMap[pros.linkType]
|
|
|
+ uni.navigateTo({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ BannerNavigateTo:function(linkType,linkId,linkHref,keyword){//楼层跳转判断
|
|
|
+ if(linkType){
|
|
|
+ const typeMap = {
|
|
|
+ 1:`/pages/goods/goods-instrument?linkId=${linkId}`,
|
|
|
+ 2:`/pages/goods/instrument-details?id=${linkId}`,
|
|
|
+ 4:`/pages/h5/activity/activity?link=${linkHref}&linkId=${linkId}`,
|
|
|
+ 5:`/pages/goods/product?id=${linkId}`,
|
|
|
+ 7:`/pages/supplier/user/my-shop?shopId=${linkId}`,
|
|
|
+ 8:'/pages/h5/activity/activity-list',
|
|
|
+ 9:'/pages/second/form/introduce',
|
|
|
+ 10:'/pages/second/product/product-list',
|
|
|
+ 11:'/pages/second/form/form',
|
|
|
+ 12:`/pages/search/search?keyWord=${keyword}`,
|
|
|
+ 13:`/pages/h5/article/path?link=${linkHref}`,
|
|
|
+ 14:`/pages/h5/article/path?link=${linkHref}`,
|
|
|
+ 15:`/pages/h5/article/path?link=${linkHref}`,
|
|
|
+ 17:'/pages/login/register-select',
|
|
|
+ 18:`/pages/h5/article/path?link=${linkHref}`,
|
|
|
+ 19:`/pages/search/search-supplier?keyWord=${keyword}`,
|
|
|
+ 21:'/pages/h5/activity/meobohui',
|
|
|
+ // '-1':`/pages/h5/article/path?link=${linkHref}`
|
|
|
+ 24:'/pages/user/coupon/coupon',
|
|
|
+ 25:'/pages/goods/goods-doc-list', //美业资料
|
|
|
+ 28:`/pages/h5/article/path?link=${linkHref}`, // 采美认证通
|
|
|
+ 29:'/pages/user/coupon/coupon-collection',//领券中心
|
|
|
+
|
|
|
+ }
|
|
|
+ const url = typeMap[linkType]
|
|
|
+ uni.navigateTo({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ navigateTo:function(url){
|
|
|
+ //路由跳转:页面之间路由跳转
|
|
|
+ uni.navigateTo({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ redirectTo:function(url){
|
|
|
+ //路由跳转:关闭当前页跳转到新页面
|
|
|
+ uni.redirectTo({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ reLaunch:function(url){
|
|
|
+ //路由跳转:关闭当前页跳转到新页面
|
|
|
+ uni.reLaunch({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ switchTabTo:function(url){
|
|
|
+ //路由跳转:底部 tab页
|
|
|
+ uni.switchTab({
|
|
|
+ url:url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ navigateBack:function(page){
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: page
|
|
|
+ })
|
|
|
+ },
|
|
|
+ isNumber:function(value){//验证是否为数字
|
|
|
+ var patrn = /^(-)?\d+(\.\d+)?$/
|
|
|
+ if (patrn.exec(value) == null || value == '') {
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getWindowHeight:function(){
|
|
|
+ // 获取窗口高度
|
|
|
+ const {windowHeight, pixelRatio} = wx.getSystemInfoSync()
|
|
|
+ return windowHeight
|
|
|
+ },
|
|
|
+ adaptRichTextImg:function(res){
|
|
|
+ /**
|
|
|
+ *@富文本实现图片自适应
|
|
|
+ *@style再添加自适应样式
|
|
|
+ */
|
|
|
+ const html = res.replace(/<img[^>]*>/gi,function(match,capture){
|
|
|
+ let match1 = match.replace(/<img*/gi, '<img style="width:100% !important;height:auto !important;float:left !important;"'),
|
|
|
+ results = match1.replace(/style=/gi, 'style="width:100%;height:auto;float:left;"')
|
|
|
+ return results
|
|
|
+ })
|
|
|
+ return html
|
|
|
+ },
|
|
|
+ FormatMoney:function(num){
|
|
|
+ // 金额千分位
|
|
|
+ return num.toString().replace(/\d+/, function (n) { // 先提取整数部分
|
|
|
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) { // 对整数部分添加分隔符
|
|
|
+ return $1 + ','
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ formatDate:function(){
|
|
|
+ //获取当前时间
|
|
|
+ let date = new Date()
|
|
|
+ let y = date.getFullYear()
|
|
|
+ let MM = date.getMonth() + 1
|
|
|
+ MM = MM < 10 ? ('0' + MM) : MM
|
|
|
+ let d = date.getDate()
|
|
|
+ d = d < 10 ? ('0' + d) : d
|
|
|
+ let h = date.getHours()
|
|
|
+ h = h < 10 ? ('0' + h) : h
|
|
|
+ let m = date.getMinutes()
|
|
|
+ m = m < 10 ? ('0' + m) : m
|
|
|
+ let s = date.getSeconds()
|
|
|
+ s = s < 10 ? ('0' + s) : s
|
|
|
+ return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s
|
|
|
+ },
|
|
|
+ regexSets:function() {
|
|
|
+ let sets = {
|
|
|
+ 'companyName': /^[\u4e00-\u9fa5\(\)()\s\da-zA-Z&]{2,50}$/gi,
|
|
|
+ 'phoneAndTelephone': /^([1]\d{10}|([\((]?0[0-9]{2,3}[)\)]?[-]?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?)$/,
|
|
|
+ 'bankNum': /^([1-9]{1})(\d{18})$/,
|
|
|
+ 'invalidChar': /^[\s\u4e00-\u9fa5a-z0-9_-]{0,}$/
|
|
|
+ }
|
|
|
+ return sets
|
|
|
+ },
|
|
|
+ timestampToTime:function(timestamp) {
|
|
|
+ // 时间戳转日期
|
|
|
+ let date = new Date(timestamp * 1000)//时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
|
|
+ let Y = date.getFullYear() + '-'
|
|
|
+ let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'
|
|
|
+ let D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '
|
|
|
+ let h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'
|
|
|
+ let m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'
|
|
|
+ let s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds())
|
|
|
+ return `${Y}${M}${D}${h}${m}${s}`
|
|
|
+ },
|
|
|
+ easyFormatData(timestamp){
|
|
|
+ //时间转换
|
|
|
+ let a = new Date(timestamp).getTime()
|
|
|
+ const date = new Date(a)
|
|
|
+ const Y = date.getFullYear() + '-'
|
|
|
+ const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
|
|
|
+ const D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '
|
|
|
+ const h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'
|
|
|
+ const m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes())
|
|
|
+ // const s = date.getSeconds(); // 秒
|
|
|
+ const dateString = Y + M + D + h + m
|
|
|
+ // console.log('dateString', dateString); // > dateString 2021-07-06 14:23
|
|
|
+ return dateString
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ *@导出
|
|
|
+ */
|
|
|
+module.exports = {
|
|
|
+ get: caimeiApi.get,
|
|
|
+ post: caimeiApi.post,
|
|
|
+ lodingGet: caimeiApi.lodingGet,
|
|
|
+ isNumber: caimeiApi.isNumber,
|
|
|
+ FormatMoney: caimeiApi.FormatMoney,
|
|
|
+ navigateTo: caimeiApi.navigateTo,
|
|
|
+ reLaunch: caimeiApi.reLaunch,
|
|
|
+ redirectTo: caimeiApi.redirectTo,
|
|
|
+ switchTabTo: caimeiApi.switchTabTo,
|
|
|
+ navigateBack: caimeiApi.navigateBack,
|
|
|
+ formatDate: caimeiApi.formatDate,
|
|
|
+ loginStatus: caimeiApi.loginStatus,
|
|
|
+ setStorage: caimeiApi.setStorage,
|
|
|
+ getStorage: caimeiApi.getStorage,
|
|
|
+ removeStorage: caimeiApi.removeStorage,
|
|
|
+ getComStorage: caimeiApi.getComStorage,
|
|
|
+ navToListPage: caimeiApi.navToListPage,
|
|
|
+ navigateToGoods: caimeiApi.navigateToGoods,
|
|
|
+ getWindowHeight: caimeiApi.getWindowHeight,
|
|
|
+ adaptRichTextImg: caimeiApi.adaptRichTextImg,
|
|
|
+ getStorageAddressKey: caimeiApi.getStorageAddressKey,
|
|
|
+ regexSets: caimeiApi.regexSets,
|
|
|
+ timestampToTime: caimeiApi.timestampToTime,
|
|
|
+ BannerNavigateTo:caimeiApi.BannerNavigateTo,
|
|
|
+ FlooryNavigateTo:caimeiApi.FlooryNavigateTo,
|
|
|
+ easyFormatData:caimeiApi.easyFormatData
|
|
|
+}
|