From 661ea8f1c91af482df1a982bf8c644694bee7897 Mon Sep 17 00:00:00 2001 From: kk_888 <1422704179@qq.com> Date: Thu, 11 Nov 2021 09:45:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/config.js | 2 +- components/chose-city/chose-city.vue | 21 +- components/mask/task-home-list1.vue | 35 +- pages/index/index.vue | 728 +++++++++++++++++++++++++-- pages/index/taskDetail.vue | 9 +- pages/my/index.vue | 2 +- 6 files changed, 738 insertions(+), 59 deletions(-) diff --git a/common/config.js b/common/config.js index 04be87d..775e55a 100644 --- a/common/config.js +++ b/common/config.js @@ -1,4 +1,4 @@ -const ROOTPATH1 = "http://192.168.0.112:8891/sqx_fast"; +const ROOTPATH1 = "http://192.168.0.111:8891/sqx_fast"; const ROOTPATH = "https://bwc.xianmxkj.com/sqx_fast"; module.exports = { APIHOST: ROOTPATH, diff --git a/components/chose-city/chose-city.vue b/components/chose-city/chose-city.vue index ff5c0e7..f5b57f3 100644 --- a/components/chose-city/chose-city.vue +++ b/components/chose-city/chose-city.vue @@ -114,11 +114,12 @@ cityJson.forEach(d => { this.cityList.push(d); }) - console.log(JSON.stringify(this.cityList)) + console.log(JSON.stringify(this.cityList),'iiiii') }, watch: { // 城市搜索输入框 inputValue(newVal) { + console.log(newVal); this.isClearBtn = newVal ? true : false; if (this.timer) { @@ -129,14 +130,19 @@ this.searchData = []; return; } + console.log(this.cityList,'mmmmm') this.timer = setTimeout(() => { const result = []; this.cityList.map(v => { - v.children.forEach((item) => { - if (item.name.includes(this.inputValue)) { - result.push(item); - } - }); + console.log(v) + if (v.name.includes(this.inputValue)) { + result.push(v); + } + // v.children.forEach((item) => { + // if (item.name.includes(this.inputValue)) { + // result.push(item); + // } + // }); }) this.searchData = result; if (this.searchData.length === 0) { @@ -159,7 +165,7 @@ console.log(res); console.log('省份数据:', res.result[0]); //打印省份数据 console.log('城市数据:', res.result[1]); //打印城市数据 - // _this.cityList = res.result[1]; + _this.cityList = res.result[1]; }, fail: function(error) { console.error(error); @@ -260,6 +266,7 @@ value } = e.detail; this.inputValue = value; + }, // 触发开始 touchStart(e) { diff --git a/components/mask/task-home-list1.vue b/components/mask/task-home-list1.vue index 5c23943..5176add 100644 --- a/components/mask/task-home-list1.vue +++ b/components/mask/task-home-list1.vue @@ -13,13 +13,16 @@ {{item.goodsTitle}} + + {{item.city}}{{item.address}} - + + 剩余{{item.endNum}}份 距离:{{item.distance}} @@ -30,21 +33,21 @@ 非会员满{{item.price}}返{{item.money}} - - + + + + + - - + --> + + + + @@ -125,7 +128,7 @@ // padding: 0 30upx; // width: 100%; width: 690rpx; - height: 311rpx; + height: 230rpx; margin: 0 30rpx; position: relative; background: #FFFFFF; @@ -179,7 +182,7 @@ display: flex; align-items: center; position: relative; - margin-top: 10upx; + margin-top: 20upx; color: #999; font-size: 20upx; diff --git a/pages/index/index.vue b/pages/index/index.vue index 7723674..86e8c4b 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -3,7 +3,7 @@ -

武汉光谷 +

{{cityname}}

@@ -67,25 +67,24 @@ - + - + -

coco奶茶店

+

{{shopname}}

剩余 - {{number}} + {{endNum}} 222
-
@@ -94,6 +93,16 @@
+ + + + + + + + +
@@ -111,32 +120,12 @@ }, data() { return { - number: 4, + endNum: 0, + shopname:'', keyword: '', value1: 1, value2: 2, - items: [{ - text: "一年级", - value: "1-0", - children: [{ - text: "1.1班", - value: "1-1" - }, - { - text: "1.2班", - value: "1-2" - } - ] - }, - { - text: "二年级", - value: "2-0" - }, - { - text: "三年级", - value: "3-0" - } - ], + cityname:'武汉', listbanner: [{ image: 'https://cdn.uviewui.com/uview/swiper/1.jpg', title: '昨夜星辰昨夜风,画楼西畔桂堂东' @@ -172,24 +161,699 @@ value: 2, } ], + shoplist:[ + + ], + localCampus: '未知', + city: '', + meituanList: {}, + elemeList: {}, + banners: [], + latitude: '', + longitude: '', + mtelmCheck: '', + authorize: false, + weizhinames: '', + weizhidizhi: '', + categoryHeight: '320rpx', //菜单默认高度 + currentPageindex: 0, //菜单滚动小点 + navlist: [], + sortType: 0, + typeId: 0, + recommendList: [], + content: "", + phone: "", + isDisable: false, + tuijianList: [], + goodsHomeList: [], + page: 1, + limit: 10, + loadingType: 0, + contentText: { + contentdown: '上拉显示更多', + contentrefresh: '正在加载...', + contentnomore: '没有更多数据了' + }, + filterData: [ + [{ + text: '综合分类', + value: '' + }, { + text: '返现最高', + value: 1 + }, { + text: '最新发布', + value: 2 + }, { + text: '距离最近', + value: 3 + }] + ], + defaultIndex: [0, 0], + arr: [], + showModal: true + } + }, + onLoad(e) { + let that = this; + if (e.userByinvitationId) { + this.$queue.setData('userByinvitationId', e.userByinvitationId); + } + + // #ifdef MP-WEIXIN + if (e.scene) { + const scene = decodeURIComponent(e.scene); + this.$queue.setData('userByinvitationId', scene.split(',')[0]); + } + // #endif + + // #ifdef MP-WEIXIN + // 实例化API核心类 + qqmapsdk = new QQMapWX({ + key: 'J5FBZ-XCUKI-UFEG2-5KOJJ-XD4L3-KNFNG' + }); + that.authorizationLocation(); + // #endif + // this.getBannerList(); + // this.getnavlistClassify(); + // this.getClassify(); + + //美团饿了么优惠券开关 + // this.$Request.getT('/common/type/138').then(res => { + // if (res.code == 0) { + // if (res.data && res.data.value) { + // this.mtelmCheck = res.data.value; + // } + // } + // }); + + // this.$Request.getT('/banner/selectBannerList?classify=4&state=1').then(res => { + // if (res.code === 0) { + // this.meituanList = res.data[0]; + // } + // }); + // this.$Request.getT('/banner/selectBannerList?classify=4&state=2').then(res => { + // if (res.code === 0) { + // this.elemeList = res.data[0]; + // } + // }); + + + // 订单审核提醒 202 + // 最新活动通知 204 + // 点评提醒 205 + // 活动反馈推送提醒 209 + + + // 会员到期提醒 207 + // 收益到账通知 208 + // 积分变动提醒 206 + // 提现审核提醒 203 + + // that.$Request.getT('/common/type/209').then(res => { //活动反馈推送提醒 + // if (res.code == 0) { + // if (res.data && res.data.value) { + // that.arr.push(res.data.value) + // } + // } + // }) + // that.$Request.getT('/common/type/208').then(res => { //收益到账通知 + // if (res.code == 0) { + // if (res.data && res.data.value) { + // that.arr.push(res.data.value) + // } + // } + // }) + // that.$Request.getT('/common/type/206').then(res => { //积分变动提醒 + // if (res.code == 0) { + // if (res.data && res.data.value) { + // that.arr.push(res.data.value) + // } + // } + // }) + }, + onShow() { + let that = this; + var city = this.$queue.getData('city'); + var localCampus = this.$queue.getData('localCampus'); + if (city && localCampus) { + console.log(city) + this.latitude = this.$queue.getData('latitude'); + this.longitude = this.$queue.getData('longitude'); + this.city = city; + this.localCampus = localCampus; + this.$queue.remove('localCampus'); + this.page = 1; + this.getHaoDianTuiJian1(); + this.getHaoDianTuiJian(); + } + + let userId = this.$queue.getData('userId'); + if (userId) { + //订阅 + if (!uni.getStorageSync('sendindexMsg')) { + // this.openMsg() + } } }, methods: { change(index) { this.current = index; }, + //跳转到选择城市界面 goSelectCity() { uni.navigateTo({ url: '/pages/index/citys' }) }, + //跳转到任务详情 totasks() { uni.navigateTo({ url: '/pages/index/tasksdetails', }) + }, + openMsg() { + var that = this + wx.getSetting({ + withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回 + success(ret) { + // console.log(ret,'------------------') + // console.log(Object.keys(ret.subscriptionsSetting.itemSettings).length) + // if (JSON.stringify(ret.subscriptionsSetting.itemSettings).indexOf('accept')!=-1) { + if (ret.subscriptionsSetting.itemSettings) { + uni.setStorageSync('sendindexMsg', true) + uni.openSetting({ // 打开设置页 + success(rea) { + console.log(rea.authSetting) + } + }); + } else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息 + uni.setStorageSync('sendindexMsg', false) + uni.showModal({ + title: '提示', + content: '为了更好的体验,请绑定消息推送', + confirmText: '确定', + cancelText: '取消', + success: function(res) { + if (res.confirm) { + uni.requestSubscribeMessage({ + tmplIds: that.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + that.showModal = false + } else if (res.cancel) { + that.showModal = true + } + } + }) + } + } + }) + }, + // 点击优惠券跳转小程序 + gochegnxu(classify) { + let token = this.$queue.getData('token'); + let userId = this.$queue.getData('userId'); + if (token) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + if (classify == 1) { //美团 + // #ifdef MP-WEIXIN + uni.navigateToMiniProgram({ + appId: 'wxde8ac0a21135c07d', + path: this.meituanList.url, + fail(res) { + console.error(res) + } + }) + // #endif + } else if (classify == 2) { //饿了么 + // #ifdef MP-WEIXIN + uni.navigateToMiniProgram({ + appId: 'wxece3a9a4c82f58c9', + path: this.elemeList.url, + fail(res) { + console.error(res) + } + }) + // #endif + } + } else { + this.goLogin(); + } + }, + tuijianClickItem(index) { + let token = this.$queue.getData('token'); + let userId = this.$queue.getData('userId'); + if (token) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + uni.navigateTo({ + url: '/pages/index/tuijianList' + }); + } else { + this.goLogin(); + } + }, + ed(res) { + console.log(res) + }, + dateChange(d) { + console.log(d) + }, + getHaoDianTuiJian() { + this.loadingType = 1; + uni.showLoading({ + title: '加载中...', + }); + let data = { + page: 1, + limit: 4, + longitude: this.longitude, + latitude: this.latitude, + city: this.city, + search: '', + isGoods: '1' + } + this.$Request.getT('/wm/selectHomeGoodsList', data).then(res => { + if (res.code === 0) { + this.tuijianList = []; + + res.data.list.forEach(d => { + d.distance = this.setMorKm(d.distance); + this.tuijianList.push(d) + }); + } + uni.hideLoading(); + }) + }, + getHaoDianTuiJian1() { + this.loadingType = 1; + uni.showLoading({ + title: '加载中...', + }); + let data = { + page: this.page, + limit: this.limit, + longitude: this.longitude, + latitude: this.latitude, + city: this.city, + search: '', + sort: this.sortType, + typeId: this.typeId + + } + this.$Request.getT('/wm/selectHomeGoodsList', data).then(res => { + if (res.code === 0) { + if (this.page === 1) { + this.goodsHomeList = []; + } + + res.data.list.forEach(d => { + d.distance = this.setMorKm(d.distance); + this.goodsHomeList.push(d) + }); + if (res.data.list.length === this.limit) { + this.loadingType = 0; + } else { + this.loadingType = 3; + } + } else { + this.loadingType = 2; + } + uni.hideLoading(); + }) + }, + setMorKm(m) { + var n = '' + if (m) { + if (m >= 1000) { + n = (m / 1000).toFixed(0) + 'km' + } else { + n = parseInt(m) + 'm' + } + } else { + n = '0m' + } + return n + }, + getClassify() { + this.$Request.getT('/helpClassify/selectClassifyList').then(res => { + if (res.code === 0) { + this.navlist = res.data; + } + }); + }, + getnavlistClassify() { + this.$Request.getT('/banner/selectBannerList?state=-1&classify=2').then(res => { + if (res.code === 0) { + let dataList = []; + let data = { + text: '全部品类', + value: 0 + } + dataList.push(data); + + res.data.forEach(d => { + let data = { + text: '', + value: '' + } + data.text = d.name; + data.value = d.id; + if (d.state == 1) { + dataList.push(data); + } + + }); + this.filterData.push(dataList); + } + }); + }, + initLocation(latitude, longitude) { + var that = this; + qqmapsdk.reverseGeocoder({ + location: latitude + ',' + longitude || '', + success: function(res) { //成功后的回调 + if (res.status == 0) { + console.log(res) + that.authorize = false; + var res = res.result; + that.latitude = latitude; + that.longitude = longitude; + that.$queue.setData('latitude', latitude) + that.$queue.setData('longitude', longitude) + let s = res.ad_info.city.substring(0, res.ad_info.city.length - 1); + that.city = s; + that.$queue.setData('city', that.city); + that.localCampus = res.address_reference.landmark_l2.title; + that.getHaoDianTuiJian1(); + that.getHaoDianTuiJian(); + } + }, + fail: function(error) { + console.error(error); + }, + complete: function(res) { + console.log(res); + } + }) + }, + startSetting() { + let that = this; + // #ifdef APP-PLUS + permision.gotoAppSetting(); + // #endif + // #ifdef MP-WEIXIN + uni.openSetting({ + success(res3) { + console.log(res3) + if (res3.authSetting[ + 'scope.userLocation' + ]) { + uni.hideToast(); + that.initMyPosition(); + } else { + that.authorizationLocation(); + } + // 已授权-(获取位置信息) + } + }); + // #endif + }, + initMyPosition() { + let that = this; + uni.getLocation({ + type: 'gcj02', + altitude: true, + success: res => { + that.initLocation(res.latitude, res.longitude); + } + }); + }, + authorizationLocation: function() { + let that = this; + uni.getSetting({ + success(res1) { + if (!res1.authSetting['scope.userLocation']) { + // 未授权 + uni.authorize({ + scope: 'scope.userLocation', + success() { //1.1 允许授权 + that.initMyPosition(); + }, + fail() { //1.2 拒绝授权 + that.authorize = true; //用户是否拒绝了定位授权 true:用户拒绝 false:用户授权 + } + }) + } else { + // 已授权-(获取位置信息) + that.initMyPosition(); + } + } + }); + }, + getBannerList() { + this.$Request.getT('/banner/selectBannerList?state=-1&classify=1').then(res => { + if (res.code === 0) { + this.banners = []; + res.data.forEach(d => { + if (d.state == 1) { + this.banners.push(d); + } + }); + } + }); + }, + // 轮播图跳转小程序 + toGoodsInfo: function(url) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + let token = this.$queue.getData('token'); + let userId = this.$queue.getData('userId'); + if (url.indexOf('/pages/') !== -1) { + uni.navigateTo({ + url + }); + } else { + //#ifndef H5 + uni.navigateTo({ + url: '/pages/public/webview?url=' + url + }); + //#endif + //#ifdef H5 + window.location.href = url; + //#endif + } + }, + goSearch() { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + uni.navigateTo({ + url: '/pages/task/search' + }); + }, + goSelectCity() { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + if (!this.authorize) { + uni.navigateTo({ + url: '/pages/index/selectCampus?city=' + this.city + }); + } else { + this.startSetting(); + } + }, + goLogin() { + this.$queue.setData('href', '/pages/index/index'); + uni.navigateTo({ + url: '/pages/public/login' + }); + }, + navClick: function(res) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + console.log('点击', res) + this.page = 1; + if (res.index1 == 0) { + this.sortType = res.index ? res.index : 0; + this.getHaoDianTuiJian1(); + } else if (res.index1 == 1) { + this.typeId = res.index ? res.index : 0; + this.getHaoDianTuiJian1(); + } + }, + clickItem: function(options) { + let token = this.$queue.getData('token'); + let userId = this.$queue.getData('userId'); + if (token) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + uni.navigateTo({ + url: '/pages/index/taskDetail?goodsId=' + options.item.goodsId + '&latitude=' + this + .latitude + '&longitude=' + this.longitude + }) + } else { + this.goLogin(); + } + }, + toNavList: function(item) { + let token = this.$queue.getData('token'); + let userId = this.$queue.getData('userId'); + if (token) { + if (uni.getStorageSync('sendindexMsg')) { + uni.requestSubscribeMessage({ + tmplIds: this.arr, + success(re) { + // console.log(re,'**********') + var datas = JSON.stringify(re); + if (datas.indexOf("accept") != -1) { + console.log(re) + } + }, + fail: (res) => { + console.log(res) + } + }) + } + uni.navigateTo({ + url: '/pages/task/tasklist?searchValue=&classifyId=' + item.id + '&name=' + item + .classifyName + }); + } else { + this.goLogin(); + } + }, + // 传进数组和指定个数,进行拆分 + chunk: function(array, size) { + const length = array.length + if (!length || !size || size < 1) { + return [] + } + let index = 0 + let resIndex = 0 + let result = new Array(Math.ceil(length / size)) + while (index < length) { + result[resIndex++] = array.slice(index, (index += size)) + } + return result + }, + topScrollTap: function() { + uni.pageScrollTo({ + scrollTop: 0, + duration: 300 + }); + } + }, + onPageScroll: function(e) { + this.scrollTop = e.scrollTop > 200; + }, + onReachBottom: function() { + this.page = this.page + 1; + this.getHaoDianTuiJian1(); } - } + } @@ -213,6 +877,8 @@ .banner { margin: 0 16px; } + + .nav p { font-size: 14px; @@ -227,7 +893,7 @@ } .nav .citys { - width: 69px; + width:40px; font-size: 14px; font-weight: 500; font-family: PingFang SC; diff --git a/pages/index/taskDetail.vue b/pages/index/taskDetail.vue index b985045..91756c4 100644 --- a/pages/index/taskDetail.vue +++ b/pages/index/taskDetail.vue @@ -10,8 +10,8 @@ - - + +
@@ -237,6 +237,7 @@ font-family: PingFang SC;font-weight: 600;line-height:22px; #000000;margin-botto }, onLoad(e) { this.goodsId = e.goodsId; + console.log(this.goodsId,'goodsid') this.latitude = e.latitude; this.longitude = e.longitude; let token = this.$queue.getData('token'); @@ -244,6 +245,7 @@ font-family: PingFang SC;font-weight: 600;line-height:22px; #000000;margin-botto // if (!token) { // this.goLogin(); // } + this.initHelpOrder() // 订单审核提醒 202 // 最新活动通知 204 @@ -286,6 +288,7 @@ font-family: PingFang SC;font-weight: 600;line-height:22px; #000000;margin-botto // } }, methods: { + // 开启订阅消息 openMsg() { var that = this @@ -492,7 +495,7 @@ font-family: PingFang SC;font-weight: 600;line-height:22px; #000000;margin-botto this.$queue.showLoading('加载中...'); let that = this; let userId = this.$queue.getData('userId') ? this.$queue.getData('userId') : 0; - this.$Request.getT('/wm/selectGoodsDetails?goodsId=' + goodsId + '&userId=' + userId + '&latitude=' + this + this.$Request.getT('/wm/selectGoodsDetails?goodsId=' + this.goodsId + '&userId=' + userId + '&latitude=' + this .latitude + '&longitude=' + this.longitude).then(res => { if (res.code == 0) { let image = res.goods.img.split(","); diff --git a/pages/my/index.vue b/pages/my/index.vue index 6a063de..ef8b0a2 100644 --- a/pages/my/index.vue +++ b/pages/my/index.vue @@ -339,7 +339,7 @@ //订阅 if (this.showModal) { - this.openMsg() + // this.openMsg() } } },