| @@ -0,0 +1,147 @@ | |||
| //app.js | |||
| const config = require("./config/config.js"); | |||
| const Http = require("./utils/HttpBasics"); | |||
| App({ | |||
| onLaunch: function (options) { | |||
| var that = this; | |||
| // 展示本地存储能力 | |||
| var logs = wx.getStorageSync('logs') || [] | |||
| logs.unshift(Date.now()) | |||
| wx.setStorageSync('logs', logs) | |||
| /** | |||
| * 小程序版本更新 | |||
| */ | |||
| that.autoUpdate(); | |||
| /** | |||
| * 用户登录 | |||
| */ | |||
| that.userLogin(options.scene); | |||
| }, | |||
| //登陆 | |||
| userLogin(sceneAddress) { | |||
| let that = this; | |||
| // 登录 | |||
| wx.login({ | |||
| success: ({ | |||
| code | |||
| }) => { | |||
| let usrdata = { | |||
| appId: config.weapp.AppId, | |||
| code: code, | |||
| sceneAddress: sceneAddress | |||
| } | |||
| Http.post({ | |||
| url: config.api.login, | |||
| data: usrdata | |||
| }) | |||
| .then(res => { | |||
| wx.setStorageSync('openId',res.data.openId) | |||
| if (res.data && res.data.score) { | |||
| if (res.data.score != 0) { | |||
| that.globalData.score = res.data.score; | |||
| } | |||
| } | |||
| Http.setToken(res.data.token); | |||
| that.globalData.token = res.data.token; | |||
| console.log(that.globalData.token) | |||
| if (that.tokenCallback) { | |||
| that.tokenCallback(res.data.token); | |||
| } | |||
| }) | |||
| .catch(err => { | |||
| console.log(err) | |||
| wx.showModal({ | |||
| title: '提示', | |||
| showCancel: false, | |||
| content: '登录失败,请重新尝试', | |||
| success: function(res) { | |||
| if (res.cancel) { | |||
| //点击取消,默认隐藏弹框 | |||
| } else { | |||
| //点击确定 | |||
| wx.reLaunch({ | |||
| url: '/pages/index/index', | |||
| }) | |||
| } | |||
| } | |||
| }) | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| autoUpdate: function() { | |||
| let that = this; | |||
| if (wx.canIUse('getUpdateManager')) { | |||
| const updateManager = wx.getUpdateManager() | |||
| // 1. 检查小程序是否有新版本发布 | |||
| updateManager.onCheckForUpdate(function(res) { | |||
| // 请求完新版本信息的回调 | |||
| if (res.hasUpdate) { | |||
| // 检测到新版本,需要更新,给出提示 | |||
| wx.showModal({ | |||
| title: '更新提示', | |||
| content: '检测到新版本,是否下载新版本并重启小程序?', | |||
| success: function (res) { | |||
| if (res.confirm) { | |||
| //2. 用户确定下载更新小程序,小程序下载及更新静默进行 | |||
| that.downLoadAndUpdate(updateManager) | |||
| } else if (res.cancel) { | |||
| //用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了 | |||
| wx.showModal({ | |||
| title: '温馨提示~', | |||
| content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~', | |||
| showCancel: false,//隐藏取消按钮 | |||
| confirmText: "确定更新",//只保留确定更新按钮 | |||
| success: function (res) { | |||
| if (res.confirm) { | |||
| //下载新版本,并重新应用 | |||
| that.downLoadAndUpdate(updateManager) | |||
| } | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| }) | |||
| } | |||
| }) | |||
| } else { | |||
| // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 | |||
| wx.showModal({ | |||
| title: '提示', | |||
| content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' | |||
| }) | |||
| } | |||
| }, | |||
| /** | |||
| * 下载小程序新版本并重启应用 | |||
| */ | |||
| downLoadAndUpdate: function(updateManager) { | |||
| let that = this | |||
| wx.showLoading(); | |||
| //静默下载更新小程序新版本 | |||
| updateManager.onUpdateReady(function() { | |||
| wx.hideLoading() | |||
| //新的版本已经下载好,调用 applyUpdate 应用新版本并重启 | |||
| updateManager.applyUpdate() | |||
| }) | |||
| updateManager.onUpdateFailed(function() { | |||
| // 新的版本下载失败 | |||
| wx.showModal({ | |||
| title: '已经有新版本了哟~', | |||
| content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', | |||
| }) | |||
| }) | |||
| }, | |||
| globalData: { | |||
| userInfo: null, | |||
| score: 0, | |||
| token: 0, | |||
| } | |||
| }) | |||
| @@ -0,0 +1,16 @@ | |||
| { | |||
| "pages": [ | |||
| "pages/index/index", | |||
| "pages/location/location", | |||
| "pages/ces", | |||
| "pages/ces/ces" | |||
| ], | |||
| "window": { | |||
| "backgroundTextStyle": "light", | |||
| "navigationBarBackgroundColor": "#fff", | |||
| "navigationBarTitleText": "集团版", | |||
| "navigationBarTextStyle": "black" | |||
| }, | |||
| "style": "v2", | |||
| "sitemapLocation": "sitemap.json" | |||
| } | |||
| @@ -0,0 +1,16 @@ | |||
| var config = { | |||
| weapp: { | |||
| AppId: "wx649b3be73c1afe47", | |||
| }, | |||
| url: 'https://ctest.malls.iformall.com/C/api', | |||
| // url: 'https://ctest.malls.iformall.com/C/api', | |||
| api: { | |||
| /** | |||
| * 接口用途:login | |||
| */ | |||
| login: "/user/login", | |||
| }, | |||
| }; | |||
| module.exports = config; | |||
| @@ -0,0 +1,66 @@ | |||
| // pages/ces.js | |||
| Page({ | |||
| /** | |||
| * 页面的初始数据 | |||
| */ | |||
| data: { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function (options) { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面初次渲染完成 | |||
| */ | |||
| onReady: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面显示 | |||
| */ | |||
| onShow: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面隐藏 | |||
| */ | |||
| onHide: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面卸载 | |||
| */ | |||
| onUnload: function () { | |||
| }, | |||
| /** | |||
| * 页面相关事件处理函数--监听用户下拉动作 | |||
| */ | |||
| onPullDownRefresh: function () { | |||
| }, | |||
| /** | |||
| * 页面上拉触底事件的处理函数 | |||
| */ | |||
| onReachBottom: function () { | |||
| }, | |||
| /** | |||
| * 用户点击右上角分享 | |||
| */ | |||
| onShareAppMessage: function () { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "usingComponents": {} | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| /* pages/ces.wxss */ | |||
| @@ -0,0 +1,66 @@ | |||
| // pages/ces/ces.js | |||
| Page({ | |||
| /** | |||
| * 页面的初始数据 | |||
| */ | |||
| data: { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function (options) { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面初次渲染完成 | |||
| */ | |||
| onReady: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面显示 | |||
| */ | |||
| onShow: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面隐藏 | |||
| */ | |||
| onHide: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面卸载 | |||
| */ | |||
| onUnload: function () { | |||
| }, | |||
| /** | |||
| * 页面相关事件处理函数--监听用户下拉动作 | |||
| */ | |||
| onPullDownRefresh: function () { | |||
| }, | |||
| /** | |||
| * 页面上拉触底事件的处理函数 | |||
| */ | |||
| onReachBottom: function () { | |||
| }, | |||
| /** | |||
| * 用户点击右上角分享 | |||
| */ | |||
| onShareAppMessage: function () { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "usingComponents": {} | |||
| } | |||
| @@ -0,0 +1,2 @@ | |||
| <!--pages/ces/ces.wxml--> | |||
| <text>pages/ces/ces.wxml</text> | |||
| @@ -0,0 +1 @@ | |||
| /* pages/ces/ces.wxss */ | |||
| @@ -0,0 +1,97 @@ | |||
| // pages/index/index.js | |||
| const Http = require("../../utils/HttpBasics"); | |||
| const config = require("../../config/config.js"); | |||
| Page({ | |||
| /** | |||
| * 跳转到其他小程序 | |||
| * 接受唯一参数 appId | |||
| * */ | |||
| goPlaza(event) { | |||
| let appid = event.currentTarget.dataset.appid | |||
| wx.navigateToMiniProgram({ | |||
| appId: appid, | |||
| success(res) { | |||
| // 打开成功 | |||
| } | |||
| }) | |||
| }, | |||
| /** | |||
| * 页面的初始数据 | |||
| */ | |||
| data: { | |||
| plazaAppid: 'wx8e5cab05e850bc91' | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function (options) { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面初次渲染完成 | |||
| */ | |||
| onReady: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面显示 | |||
| */ | |||
| onShow: function () { | |||
| //测试发送请求 | |||
| // this.getInfo(); | |||
| }, | |||
| //获取用户信息 | |||
| getInfo() { | |||
| Http.post({ | |||
| url: config.api.login, | |||
| data: { | |||
| } | |||
| }).then(res => { | |||
| console.log(res) | |||
| }) | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面隐藏 | |||
| */ | |||
| onHide: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面卸载 | |||
| */ | |||
| onUnload: function () { | |||
| }, | |||
| /** | |||
| * 页面相关事件处理函数--监听用户下拉动作 | |||
| */ | |||
| onPullDownRefresh: function () { | |||
| }, | |||
| /** | |||
| * 页面上拉触底事件的处理函数 | |||
| */ | |||
| onReachBottom: function () { | |||
| }, | |||
| /** | |||
| * 用户点击右上角分享 | |||
| */ | |||
| onShareAppMessage: function () { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "usingComponents": {} | |||
| } | |||
| @@ -0,0 +1,33 @@ | |||
| <view class="Box"> | |||
| <view class=" top"> | |||
| <view class='userinfo'> | |||
| <view class="textBox"> | |||
| <view class="nameBox"> | |||
| <view class="name">用户昵称</view> | |||
| <view class="grade">用户等级</view> | |||
| </view> | |||
| <view class="myGrow nameBox"> | |||
| <view>{{'我的成长值'}}|</view> | |||
| <view class="grow">{{"更多成长值"}}</view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class='userPortrait'></view> | |||
| </view> | |||
| <swiper autoplay='true' interval='1000' circular='true'> | |||
| <swiper-item class="swiperItem">123</swiper-item> | |||
| <swiper-item class="swiperItem">456</swiper-item> | |||
| </swiper> | |||
| <view class="plazaList" bindtap="goPlaza" data-appid="{{plazaAppid}}"> | |||
| <view class="EntranceBox"> | |||
| <view class="plazaImg"></view> | |||
| <view class="plazaMessage"> | |||
| <view class="plazaName">欢乐国际购物城 </view> | |||
| <view class="site">广场地址:嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻</view> | |||
| <view class="area">总面积:6000M²</view> | |||
| <view class="area stall"> 车位数:123</view> | |||
| <vide class="area distance">距您:233M</vide> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| @@ -0,0 +1,87 @@ | |||
| /* pages/index/index.wxss */ | |||
| .Box { | |||
| width: 90%; | |||
| margin: 0 5%; | |||
| } | |||
| .userinfo { | |||
| height: 200rpx; | |||
| border: 1rpx solid saddlebrown; | |||
| position: relative; | |||
| margin-top: 60rpx; | |||
| border-radius: 10rpx; | |||
| margin-bottom: 30rpx; | |||
| } | |||
| .userPortrait { | |||
| position: absolute; | |||
| width: 120rpx; | |||
| height: 120rpx; | |||
| background-color: darkgoldenrod; | |||
| border-radius: 50%; | |||
| top: 0; | |||
| left: 42%; | |||
| } | |||
| .textBox { | |||
| margin: 65rpx 20% 0 20%; | |||
| width: 60%; | |||
| overflow: hidden; | |||
| } | |||
| .nameBox{ | |||
| overflow: hidden; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| } | |||
| .name { | |||
| float: left; | |||
| } | |||
| .grade { | |||
| margin-left: 10rpx; | |||
| float: left; | |||
| background-color: rgb(255, 102, 0); | |||
| color: #fff; | |||
| border-radius: 10rpx; | |||
| border: 1rpx solid #000; | |||
| padding: 0 10rpx; | |||
| } | |||
| .grow{ | |||
| color: rgb(255, 130, 0); | |||
| } | |||
| .swiperItem{ | |||
| background-color: red; | |||
| } | |||
| .plazaList{ | |||
| margin-top: 30rpx; | |||
| height: 320rpx; | |||
| border: 1rpx solid #000; | |||
| border-radius: 10rpx; | |||
| } | |||
| .EntranceBox{ | |||
| margin: 20rpx; | |||
| overflow: hidden | |||
| } | |||
| .plazaImg{ | |||
| float: left; | |||
| width: 300rpx; | |||
| height: 270rpx; | |||
| background-color: aqua; | |||
| } | |||
| .plazaMessage{ | |||
| float: left; | |||
| margin-left: 20rpx; | |||
| } | |||
| .site{ | |||
| width: 300rpx; | |||
| font-size: 24rpx; | |||
| margin-top: 10rpx ; | |||
| height: 40prx; | |||
| overflow: hidden | |||
| } | |||
| .area{ | |||
| margin-top: 10rpx ; | |||
| font-size: 24rpx; | |||
| } | |||
| @@ -0,0 +1,66 @@ | |||
| // pages/location/location.js | |||
| Page({ | |||
| /** | |||
| * 页面的初始数据 | |||
| */ | |||
| data: { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function (options) { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面初次渲染完成 | |||
| */ | |||
| onReady: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面显示 | |||
| */ | |||
| onShow: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面隐藏 | |||
| */ | |||
| onHide: function () { | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面卸载 | |||
| */ | |||
| onUnload: function () { | |||
| }, | |||
| /** | |||
| * 页面相关事件处理函数--监听用户下拉动作 | |||
| */ | |||
| onPullDownRefresh: function () { | |||
| }, | |||
| /** | |||
| * 页面上拉触底事件的处理函数 | |||
| */ | |||
| onReachBottom: function () { | |||
| }, | |||
| /** | |||
| * 用户点击右上角分享 | |||
| */ | |||
| onShareAppMessage: function () { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "usingComponents": {} | |||
| } | |||
| @@ -0,0 +1,21 @@ | |||
| <!--pages/location/location.wxml--> | |||
| <view class="Box"> | |||
| <view class="presentSiteBox"> | |||
| <view class="presentText">当前位置 </view> | |||
| <view class="gpsBox"> | |||
| <view class="city"> 北京市</view> | |||
| <view class="gps">GPS定位 </view> | |||
| </view> | |||
| <view class="wire"> </view> | |||
| </view> | |||
| <view class="siteText" > 城市广场</view> | |||
| <view class="siteBox"> | |||
| <view class="plazaName">欢乐国际城</view> | |||
| <view class="site">武汉市江夏区佩尔中心 </view> | |||
| <view class="distance">1.23Km </view> | |||
| </view> | |||
| <view class="wire"> </view> | |||
| </view> | |||
| @@ -0,0 +1,58 @@ | |||
| /* pages/location/location.wxss */ | |||
| .Box{ | |||
| width: 90%; | |||
| margin: 0 5%; | |||
| } | |||
| .presentSiteBox{ | |||
| overflow: hidden; | |||
| margin-bottom: 70rpx; | |||
| } | |||
| .presentText{ | |||
| font-size: 24rpx; | |||
| color: rgb(153, 153, 153); | |||
| overflow: hidden | |||
| } | |||
| .gpsBox{ | |||
| margin-top: 54rpx; | |||
| overflow: hidden; | |||
| margin-bottom: 20rpx; | |||
| } | |||
| .city{ | |||
| font-size: 40rpx; | |||
| float: left | |||
| } | |||
| .gps{ | |||
| float: left; | |||
| font-size: 24rpx; | |||
| line-height: 60rpx; | |||
| color: rgb(153, 153, 153); | |||
| margin-left: 40rpx; | |||
| } | |||
| .siteText{ | |||
| font-size: 24rpx; | |||
| color: rgb(153, 153, 153); | |||
| margin-top: 2rpx; | |||
| } | |||
| .plazaName{ | |||
| margin-top: 60rpx; | |||
| font-size: 34rpx; | |||
| } | |||
| .siteBox{ | |||
| margin-bottom: 30rpx; | |||
| overflow: hidden | |||
| } | |||
| .site{ | |||
| margin-top: 30rpx; | |||
| font-size: 24rpx; | |||
| color: rgb(153, 153, 153); | |||
| float: left; | |||
| } | |||
| .distance{ | |||
| margin-top: 30rpx; | |||
| font-size: 24rpx; | |||
| color: rgb(153, 153, 153); | |||
| float: right | |||
| } | |||
| .wire{ | |||
| border: 2rpx solid rgb(204, 204, 204) | |||
| } | |||
| @@ -0,0 +1,45 @@ | |||
| { | |||
| "description": "项目配置文件", | |||
| "packOptions": { | |||
| "ignore": [] | |||
| }, | |||
| "setting": { | |||
| "urlCheck": true, | |||
| "es6": true, | |||
| "postcss": true, | |||
| "minified": true, | |||
| "newFeature": true, | |||
| "autoAudits": false, | |||
| "coverView": true, | |||
| "showShadowRootInWxmlPanel": true, | |||
| "scopeDataCheck": false | |||
| }, | |||
| "compileType": "miniprogram", | |||
| "libVersion": "2.12.0", | |||
| "appid": "wx649b3be73c1afe47", | |||
| "projectname": "C%E7%AB%AF%E9%9B%86%E5%9B%A2%E7%89%88", | |||
| "debugOptions": { | |||
| "hidedInDevtools": [] | |||
| }, | |||
| "isGameTourist": false, | |||
| "simulatorType": "wechat", | |||
| "simulatorPluginLibVersion": {}, | |||
| "condition": { | |||
| "search": { | |||
| "current": -1, | |||
| "list": [] | |||
| }, | |||
| "conversation": { | |||
| "current": -1, | |||
| "list": [] | |||
| }, | |||
| "game": { | |||
| "currentL": -1, | |||
| "list": [] | |||
| }, | |||
| "miniprogram": { | |||
| "current": -1, | |||
| "list": [] | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,7 @@ | |||
| { | |||
| "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", | |||
| "rules": [{ | |||
| "action": "allow", | |||
| "page": "*" | |||
| }] | |||
| } | |||
| @@ -0,0 +1,117 @@ | |||
| const config = require("../config/config.js"); | |||
| class HttpBasics { | |||
| constructor(address) { | |||
| if (address) { | |||
| this.address = address; | |||
| } | |||
| } | |||
| /** | |||
| * 配置 | |||
| */ | |||
| config = config; | |||
| /** | |||
| * 请求路径前缀 | |||
| */ | |||
| address = config.url; | |||
| /** | |||
| * 请求头 | |||
| */ | |||
| headers = { | |||
| "Content-Type": "application/json;charset=UTF-8", | |||
| token: "" | |||
| }; | |||
| /** | |||
| * 设置token | |||
| * @param {*} token | |||
| */ | |||
| setToken(token) { | |||
| this.headers.token = token; | |||
| } | |||
| /** | |||
| * 获取数据 | |||
| * @param {url,data,headers} param0 | |||
| */ | |||
| get({ url, data, headers }) { | |||
| headers = { ...this.headers, ...headers }; | |||
| url = `${this.address}${url}`; | |||
| return new Promise((resolve, reject) => { | |||
| wx.request({ | |||
| url: url, | |||
| header: headers, | |||
| data: data, | |||
| method: "Get", | |||
| success: res => { | |||
| this.responseMap(res, resolve, reject); | |||
| }, | |||
| fail: err => { | |||
| console.log(err) | |||
| if (err.errMsg == 'request:fail timeout') { | |||
| err.errMsg = '请求超时,请检查您的网络设置!' | |||
| } else if (err.errMsg == 'request:fail'){ | |||
| err.errMsg = '未检查到您的网络,请检查您的网络设置!' | |||
| } else if (err.errMsg == 'request:fail request connect error') { | |||
| err.errMsg = '连接失败' | |||
| } | |||
| reject(err); | |||
| } | |||
| }); | |||
| }); | |||
| } | |||
| /** | |||
| * 提交数据 | |||
| * @param {url,data,headers} param0 | |||
| */ | |||
| post({ url, data, headers }) { | |||
| headers = { ...this.headers, ...headers }; | |||
| url = `${this.address}${url}`; | |||
| return new Promise((resolve, reject) => { | |||
| wx.request({ | |||
| url: url, | |||
| header: headers, | |||
| data: data, | |||
| method: "POST", | |||
| success: res => { | |||
| this.responseMap(res, resolve, reject); | |||
| }, | |||
| fail: err => { | |||
| if (err.errMsg == 'request:fail timeout') { | |||
| err.errMsg = '请求超时,请检查您的网络设置!' | |||
| } else if (err.errMsg == 'request:fail') { | |||
| err.errMsg = '未检查到您的网络,请检查您的网络设置!' | |||
| } else if (err.errMsg == 'request:fail request connect error') { | |||
| err.errMsg = '连接失败' | |||
| } | |||
| reject(err); | |||
| }, | |||
| complete: res => {} | |||
| }); | |||
| }); | |||
| } | |||
| /** | |||
| * 过滤 请求信息 | |||
| * @param {*} res | |||
| * @param {*} resolve | |||
| * @param {*} reject | |||
| */ | |||
| responseMap = (res, resolve, reject) => { | |||
| // 网络状态码200 | |||
| if (res.statusCode == 200) { | |||
| // 服务器code 200 成功 | |||
| if (res.data.code == 200) { | |||
| resolve(res.data); | |||
| } else if (res.data.code == 1052) { | |||
| wx.reLaunch({ | |||
| url: '/pages/index/index' | |||
| }) | |||
| } else { | |||
| reject(res.data); | |||
| } | |||
| } else { | |||
| console.log("请求出错:", res); | |||
| reject(res.data); | |||
| } | |||
| }; | |||
| /** 日志 */ | |||
| log(url, body, headers) {} | |||
| } | |||
| module.exports = new HttpBasics(); | |||
| @@ -0,0 +1,206 @@ | |||
| var barcode = require("./barcode"); | |||
| var qrcode = require("./qrcode"); | |||
| const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} | |||
| let imgProxy = extConfig.attr.imgProxy; | |||
| function convertUTCTimeToLocalTime(UTCDateString) { | |||
| if (!UTCDateString) { | |||
| return '-'; | |||
| } | |||
| function formatFunc(str) { //格式化显示 | |||
| return str > 9 ? str : '0' + str | |||
| } | |||
| var date2 = new Date(UTCDateString); //这步是关键 | |||
| var year = date2.getFullYear(); | |||
| var mon = formatFunc(date2.getMonth() + 1); | |||
| var day = formatFunc(date2.getDate()); | |||
| var hour = date2.getHours(); | |||
| var noon = hour >= 12 ? 'PM' : 'AM'; | |||
| hour = hour >= 24 ? hour - 24 : hour; | |||
| hour = formatFunc(hour); | |||
| var min = formatFunc(date2.getMinutes()); | |||
| var dateStr = ' ' + hour + ':' + min ; | |||
| return dateStr; | |||
| } | |||
| function fmtDate(date) { | |||
| var dateee = new Date(date).toJSON(); | |||
| return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''); | |||
| } | |||
| const formatTime = (date, fmt) => { | |||
| try { | |||
| if (!date) { | |||
| return date; | |||
| } | |||
| if (typeof date === 'string' && date.length === 13) { | |||
| date = Number(date); | |||
| } | |||
| if (typeof date == "number") { | |||
| date = new Date(date); | |||
| } | |||
| var o = { | |||
| "M+": date.getMonth() + 1, //月份 | |||
| "d+": date.getDate(), //日 | |||
| "h+": date.getHours(), //小时 | |||
| "m+": date.getMinutes(), //分 | |||
| "s+": date.getSeconds(), //秒 | |||
| "q+": Math.floor((date.getMonth() + 3) / 3), //季度 | |||
| S: date.getMilliseconds() //毫秒 | |||
| }; | |||
| if (/(y+)/.test(fmt)) | |||
| fmt = fmt.replace( | |||
| RegExp.$1, | |||
| (date.getFullYear() + "").substr(4 - RegExp.$1.length) | |||
| ); | |||
| for (var k in o) | |||
| if (new RegExp("(" + k + ")").test(fmt)) | |||
| fmt = fmt.replace( | |||
| RegExp.$1, | |||
| RegExp.$1.length == 1 | |||
| ? o[k] | |||
| : ("00" + o[k]).substr(("" + o[k]).length) | |||
| ); | |||
| return fmt; | |||
| } catch (error) { | |||
| return date; | |||
| } | |||
| }; | |||
| const formatNumber = n => { | |||
| n = n.toString(); | |||
| return n[1] ? n : "0" + n; | |||
| }; | |||
| function convert_length(length) { | |||
| return Math.round((wx.getSystemInfoSync().windowWidth * length) / 750); | |||
| } | |||
| function barc(id, code, width, height) { | |||
| barcode.code128( | |||
| wx.createCanvasContext(id), | |||
| code, | |||
| convert_length(width), | |||
| convert_length(height) | |||
| ); | |||
| } | |||
| function qrc(id, code, width, height) { | |||
| qrcode.api.draw(code, { | |||
| ctx: wx.createCanvasContext(id), | |||
| width: convert_length(width), | |||
| height: convert_length(height) | |||
| }); | |||
| } | |||
| function fmtDate(obj) { | |||
| if (typeof obj === 'string' && obj.length === 13) { | |||
| obj = Number(obj); | |||
| } | |||
| var date = new Date(obj); | |||
| var y = 1900 + date.getYear(); | |||
| var m = "0" + (date.getMonth() + 1); | |||
| var d = "0" + date.getDate(); | |||
| return ( | |||
| y + | |||
| "-" + | |||
| m.substring(m.length - 2, m.length) + | |||
| "-" + | |||
| d.substring(d.length - 2, d.length) | |||
| ); | |||
| } | |||
| //计算下单的时间与现在的时间的 | |||
| function timechuo(startTime) { | |||
| var s1 = new Date(startTime.replace(/-/g, "/")); | |||
| var s2 = new Date(); | |||
| var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000); | |||
| var year = Math.floor(runTime / 86400 / 365); | |||
| var runTime = runTime % (86400 * 365); | |||
| var month = Math.floor(runTime / 86400 / 30); | |||
| var runTime = runTime % (86400 * 30); | |||
| var day = Math.floor(runTime / 86400); | |||
| var runTime = runTime % 86400; | |||
| var hour = Math.floor(runTime / 3600); | |||
| var runTime = runTime % 3600; | |||
| var minute = Math.floor(runTime / 60); | |||
| var runTime = runTime % 60; | |||
| var second = runTime; | |||
| if (day && !year && !month){ | |||
| return (day + '天' + hour + "小时" + minute + "分钟") | |||
| } else if (month && !year){ | |||
| return ((month*30+day) +'天' + hour + "小时" + minute + "分钟") | |||
| } else if (year) { | |||
| return ((year*365 + month*30+ day) + '天' + hour + "小时" + minute + "分钟") | |||
| }else{ | |||
| return (hour + "小时" + minute + "分钟") | |||
| } | |||
| } | |||
| //计算时间差 | |||
| function timecha(endTime,startTime) { | |||
| var s1 = new Date(endTime.replace(/-/g, "/")); | |||
| var s2 = new Date(startTime.replace(/-/g, "/")); | |||
| var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000); | |||
| var year = Math.floor(runTime / 86400 / 365); | |||
| var runTime = runTime % (86400 * 365); | |||
| var month = Math.floor(runTime / 86400 / 30); | |||
| var runTime = runTime % (86400 * 30); | |||
| var day = Math.floor(runTime / 86400); | |||
| var runTime = runTime % 86400; | |||
| var hour = Math.floor(runTime / 3600); | |||
| var runTime = runTime % 3600; | |||
| var minute = Math.floor(runTime / 60); | |||
| var runTime = runTime % 60; | |||
| var second = runTime; | |||
| return (month+"月"+day+"天"+hour+"小时"+minute+"分钟") | |||
| } | |||
| function isJSON(str) { | |||
| if (typeof str == 'string') { | |||
| console.log("string") | |||
| try { | |||
| var obj = JSON.parse(str); | |||
| if (typeof obj == 'object' && obj) { | |||
| return true; | |||
| } else { | |||
| return false; | |||
| } | |||
| } catch (e) { | |||
| console.log(e); | |||
| wx.showToast({ | |||
| title: '请扫描正确的二维码', | |||
| icon: 'none', | |||
| duration: 1300 | |||
| }) | |||
| } | |||
| } else { | |||
| wx.showToast({ | |||
| title: '请扫描正确的二维码', | |||
| icon: 'none', | |||
| duration: 1300 | |||
| }) | |||
| } | |||
| } | |||
| function getProxyImgUrl(str) { | |||
| let str1 = str; | |||
| imgProxy.map(file=>{ | |||
| if (str.indexOf(file.orgUrl) == 0) { | |||
| str1 = str.replace(file.orgUrl, file.newUrl) | |||
| return | |||
| } | |||
| }) | |||
| return str1 | |||
| } | |||
| module.exports = { | |||
| formatTime: formatTime, | |||
| barcode: barc, | |||
| qrcode: qrc, | |||
| isJSON: isJSON, | |||
| fmtDate: fmtDate, | |||
| timechuo: timechuo, | |||
| timecha: timecha, | |||
| getProxyImgUrl: getProxyImgUrl, | |||
| convertUTCTimeToLocalTime: convertUTCTimeToLocalTime | |||
| }; | |||