diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index 501e01c8..075b9c55 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -2,10 +2,19 @@ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 "version": "0.0", "configurations": [{ - "type": "uniCloud", - "default": { - "launchtype": "remote" - } - } + "default" : + { + "launchtype" : "remote" + }, + "h5" : + { + "launchtype" : "remote" + }, + "mp-weixin" : + { + "launchtype" : "remote" + }, + "type" : "uniCloud" + } ] } diff --git a/components/userEvaluation/index.vue b/components/userEvaluation/index.vue index a01cc37a..dabc11ce 100644 --- a/components/userEvaluation/index.vue +++ b/components/userEvaluation/index.vue @@ -1,6 +1,5 @@ @@ -67,12 +68,12 @@ import { mapGetters } from "vuex"; - import wPicker from "@/components/wPicker/w-picker.vue"; // #ifdef MP import authorize from '@/components/Authorize'; // #endif import home from '@/components/home'; // import city from '@/utils/cityData'; + let app = getApp(); export default { components: { // #ifdef MP @@ -102,7 +103,7 @@ defaultRegionCode: '440113', bargain: false, //是否是砍价 combination: false, //是否是拼团 - secKill: false //是否是秒杀 + secKill: false, //是否是秒杀 }; }, computed: mapGetters(['isLogin']), @@ -120,39 +121,42 @@ onLoad(options) { if (this.isLogin) { this.preOrderNo = options.preOrderNo || 0; - // this.cartId = options.cartId || ''; - // this.pinkId = options.pinkId || 0; - // this.couponId = options.couponId || 0; this.id = options.id || 0; - // this.secKill = options.secKill || false; - // this.combination = options.combination || false; - // this.bargain = options.bargain || false; uni.setNavigationBarTitle({ title: options.id ? '修改地址' : '添加地址' }) this.getUserAddress(); - this.getCityList(); - // if(this.district && this.district.length){ - // this.initialize(); - // } + if(this.$Cache.has('cityList')){ + //检测城市数据是否存在缓存,有的话从缓存取,没有的话请求接口 + this.district = this.$Cache.getItem('cityList') + this.initialize(); + }else{ + this.getCityList(); + } } else { toLogin(); } }, methods: { - // 回去地址数据 + // #ifdef APP-PLUS + // 获取选择的地区 + handleGetRegion(region) { + this.region = region + }, + // #endif + // 获取地址数据 getCityList: function() { let that = this; getCity().then(res => { - this.district = res.data + this.district = res.data; + let oneDay = 24 * 3600 * 1000; + // this.$Cache.set('cityList', JSON.stringify(res.data)); //设置不过期时间的方法 + this.$Cache.setItem({name:'cityList',value:res.data,expires:oneDay * 7}); //设置七天过期时间 that.initialize(); }) }, initialize: function() { - let that = this, - province = [], - city = [], - area = []; + let that = this,province = [],city = [],area = []; if (that.district.length) { let cityChildren = that.district[0].child || []; let areaChildren = cityChildren.length ? (cityChildren[0].child || []) : []; @@ -216,7 +220,7 @@ break; } - // #ifdef MP + // #ifdef MP || APP-PLUS this.$set(this.multiArray, 0, multiArray[0]); this.$set(this.multiArray, 1, multiArray[1]); this.$set(this.multiArray, 2, multiArray[2]); @@ -224,9 +228,6 @@ // #ifdef H5 this.multiArray = multiArray; // #endif - - - this.multiIndex = multiIndex // this.setData({ multiArray: multiArray, multiIndex: multiIndex}); }, @@ -254,6 +255,13 @@ that.city_id = res.data.cityId }); }, + chooseLocation: function () { + uni.chooseLocation({ + success: (res) => { + this.$set(this.userAddress,'detail',res.address.replace(/.+?(省|市|自治区|自治州|县|区)/g,'')); + } + }) + }, // 导入共享地址(小程序) getWxAddress: function() { let that = this; @@ -456,9 +464,7 @@ setTimeout(function() { if (that.preOrderNo>0) { uni.redirectTo({ - url: '/pages/users/order_confirm/index?preOrderNo=' + that - .preOrderNo + '&addressId=' + (that.id ? that.id : res.data - .id) + url: '/pages/users/order_confirm/index?preOrderNo=' + that.preOrderNo + '&addressId=' + (that.id ? that.id : res.data.id) }) } else { // #ifdef H5 @@ -469,29 +475,7 @@ delta: 1, }) // #endif - } - - // if (that.cartId) { - // let cartId = that.cartId; - // let pinkId = that.pinkId; - // let couponId = that.couponId; - // that.cartId = ''; - // that.pinkId = ''; - // that.couponId = ''; - // uni.navigateTo({ - // url: '/pages/users/order_confirm/index?cartId=' + cartId + '&addressId=' + (that.id ? that.id : res.data.id) +'&pinkId=' + pinkId + '&couponId=' + couponId + '&secKill=' + that.secKill + '&combination=' + that.combination + '&bargain=' + that.bargain - // }); - // } else { - // // #ifdef H5 - // return history.back(); - // // #endif - // // #ifndef H5 - // return uni.navigateBack({ - // delta: 1, - // }) - // // #endif - // } }, 1000); }).catch(err => { return that.$util.Tips({ @@ -510,7 +494,6 @@ .addAddress { padding-top: 20rpx; } - .addAddress .list { background-color: #fff; padding: 0 24rpx; @@ -548,10 +531,6 @@ font-size: 30rpx; } - .addAddress .list .item picker .iconfont { - font-size: 43rpx; - } - .addAddress .default { padding: 0 30rpx; height: 90rpx; @@ -585,4 +564,15 @@ color: #E93323 ; border: 1px solid #E93323; } + .relative{ + position: relative; + } + .icon-dizhi{ + font-size: 44rpx; + z-index: 100; + } + .abs_right{ + position: absolute; + right:0; + } diff --git a/static/html/pc.html b/static/html/pc.html index 8450d453..7148bd20 100644 --- a/static/html/pc.html +++ b/static/html/pc.html @@ -18,7 +18,8 @@ width: 375px; height: 667px; background-color: #fff; - box-sizing: content-box; + /* box-sizing: content-box; */ + box-sizing: border-box; border: none; } @@ -39,20 +40,15 @@ window.isPC = true; window.onload = function(){ /* 监听电脑浏览器窗口尺寸改变 */ - window.onresize = function(){ - /* 窗口宽度 小于或等于420px 时,跳转回H5页面 */ - if(window.innerWidth <= 420){ - // window.location.pathname = 'https://java.crmeb.net/'; - /* 若你的项目未设置根目录(默认为 / 时),则使用下方代码 */ - window.location.pathname = ''; - } - } + if(window.innerWidth <= 420){ + window.location.pathname = '/'; + } } - + \ No newline at end of file diff --git a/static/images/1-001.png b/static/images/1-001.png index 2fd49149..c2d7fae8 100644 Binary files a/static/images/1-001.png and b/static/images/1-001.png differ diff --git a/static/images/1-002.png b/static/images/1-002.png index 58f73e90..c6bd2282 100644 Binary files a/static/images/1-002.png and b/static/images/1-002.png differ diff --git a/static/images/2-001.png b/static/images/2-001.png index 6e1d099e..a25cf937 100644 Binary files a/static/images/2-001.png and b/static/images/2-001.png differ diff --git a/static/images/2-002.png b/static/images/2-002.png index bfd1926c..76aa0d23 100644 Binary files a/static/images/2-002.png and b/static/images/2-002.png differ diff --git a/static/images/3-001.png b/static/images/3-001.png index 664de97f..b55ee311 100644 Binary files a/static/images/3-001.png and b/static/images/3-001.png differ diff --git a/static/images/3-002.png b/static/images/3-002.png index 8d383bca..4a0ca419 100644 Binary files a/static/images/3-002.png and b/static/images/3-002.png differ diff --git a/static/images/4-001.png b/static/images/4-001.png index 76b1e6d3..26d7fbe5 100644 Binary files a/static/images/4-001.png and b/static/images/4-001.png differ diff --git a/static/images/4-002.png b/static/images/4-002.png index 77df66ec..f3304d79 100644 Binary files a/static/images/4-002.png and b/static/images/4-002.png differ diff --git a/utils/cache.js b/utils/cache.js index ea793d79..0306389b 100644 --- a/utils/cache.js +++ b/utils/cache.js @@ -1,3 +1,13 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- + import { EXPIRE } from '../config/app'; class Cache { @@ -7,6 +17,7 @@ class Cache { this.cacheGetHandler = uni.getStorageSync; this.cacheClearHandler = uni.removeStorageSync; this.cacheExpire = '_expire_2019_12_17_18_44'; + this.name = 'storage'; } /** @@ -18,7 +29,7 @@ class Cache { } /** - * 字符串转时间戳 + * 日期字符串转时间戳 * @param {Object} expiresTime */ strTotime(expiresTime){ @@ -27,17 +38,64 @@ class Cache { return Math.round(new Date(expires_time).getTime() / 1000); } + setExpireCaheTag(key, expire) { + expire = expire !== undefined ? expire : EXPIRE; + if (typeof expire === 'number') { + let tag = this.cacheGetHandler(this.cacheExpire), newTag = [],newKeys = []; + if (typeof tag === 'object' && tag.length) { + newTag = tag.map(item => { + newKeys.push(item.key); + if (item.key === key) { + item.expire = expire === 0 ? 0 : this.time() + expire; + } + return item; + }); + } + if (!newKeys.length || newKeys.indexOf(key) === -1) { + newTag.push({ + key: key, + expire: expire === 0 ? 0 : this.time() + expire + }); + } + this.cacheSetHandler(this.cacheExpire, newTag); + } + } + /** * 设置过期时间缓存 - * @param {Object} key - * @param {Object} expire + * @param {Object} name key + * @param {Object} value value + * @param {Object} expire 过期时间 + * @param {Object} startTime 记录何时将值存入缓存,毫秒级 */ - setExpireCahe(key,expire) - { - expire = expire !== undefined ? expire : EXPIRE; - if (expire) { - this.cacheSetHandler(key + this.cacheExpire,this.time() + expire) - } + setItem(params){ + let obj = { + name:'', + value:'', + expires:"", + startTime:new Date().getTime() + } + let options = {}; + //将obj和传进来的params合并 + Object.assign(options,obj,params); + if(options.expires){ + //如果options.expires设置了的话 + //以options.name为key,options为值放进去 + // localStorage.setItem(options.name,JSON.stringify(options)); + uni.setStorageSync(options.name,JSON.stringify(options)); + }else{ + //如果options.expires没有设置,就判断一下value的类型 + let type = Object.prototype.toString.call(options.value); + //如果value是对象或者数组对象的类型,就先用JSON.stringify转一下,再存进去 + if(Object.prototype.toString.call(options.value) == '[object Object]'){ + options.value = JSON.stringify(options.value); + } + if(Object.prototype.toString.call(options.value) == '[object Array]'){ + options.value = JSON.stringify(options.value); + } + // localStorage.setItem(options.name,options.value); + uni.setStorageSync(options.name,options.value); + } } /** @@ -76,8 +134,8 @@ class Cache { if(typeof data === 'object') data = JSON.stringify(data); try{ - this.setExpireCahe(key,expire); - return this.cacheSetHandler(key,data); + this.setExpireCaheTag(key,expire); + return this.cacheSetHandler(key,data); }catch(e){ return false; } @@ -150,6 +208,39 @@ class Cache { // }) // } } + + /** + * 获取缓存,调用后无需转换数据类型 + * @param {Object} key + */ + getItem(name){ + // let item = localStorage.getItem(name); + let item = uni.getStorageSync(name); + //先将拿到的试着进行json转为对象的形式 + try{ + item = JSON.parse(item); + }catch(error){ + //如果不行就不是json的字符串,就直接返回 + item = item; + } + //如果有startTime的值,说明设置了失效时间 + if(item.startTime){ + let date = new Date().getTime(); + //何时将值取出减去刚存入的时间,与item.expires比较,如果大于就是过期了,如果小于或等于就还没过期 + if(date - item.startTime > item.expires){ + //缓存过期,清除缓存,返回false + // localStorage.removeItem(name); + uni.removeStorageSync(name); + return false; + }else{ + //缓存未过期,返回值 + return item.value; + } + }else{ + //如果没有设置失效时间,直接返回值 + return item; + } + } } diff --git a/utils/util.js b/utils/util.js index 0d2975de..05a8097c 100644 --- a/utils/util.js +++ b/utils/util.js @@ -533,6 +533,30 @@ export default { } return value; }, + /**根据格式组装公共参数 + * @param {Object} value + */ + formatMpQrCodeData(value){ + let values = value.split(','); + let result = {}; + if(values.length === 2){ + let v1 = values[0].split(":"); + if (v1[0] === 'pid') { + result.spread = v1[1]; + } else{ + result.id = v1[1]; + } + let v2 = values[1].split(":"); + if (v2[0] === 'pid') { + result.spread = v2[1]; + }else{ + result.id = v2[1]; + } + }else{ + result = values[0].split(":")[1]; + } + return result; + }, // #endif /* * 合并数组