1109 lines
28 KiB
Vue
1109 lines
28 KiB
Vue
<template>
|
||
<view>
|
||
<view class="content">
|
||
<!-- <view class="sticky-tabs">
|
||
<view class="headtitle">
|
||
盛安到家
|
||
</view>
|
||
</view> -->
|
||
<swiper class="screen-swiper" style="height: 450rpx;width: 750rpx;" :circular="true" :autoplay="true"
|
||
interval="2500" duration="800">
|
||
<swiper-item v-for="(item,index) in swiperList" :key="index" @tap="goNav(item.url)">
|
||
<image :src="item.imageUrl" class="bannerImg"></image>
|
||
</swiper-item>
|
||
</swiper>
|
||
<view class="tabbg">
|
||
<view class="tabview1" v-if="XCXIsSelect != '否'">
|
||
<view class="tabview" v-if="typeList && typeList.length > 1">
|
||
<view v-for="(item,index) in typeList" @tap="selTab(index,item.id)"
|
||
:class="tabIndex == index ? 'tabItem_sel' : 'tabItem' ">
|
||
<view :class="'flclass'+index">{{item.value}}</view>
|
||
</view>
|
||
</view>
|
||
<view class="tabsx">
|
||
<view v-for="(item,index) in list" :key="index" :class="listIndex==index?'active':''"
|
||
@click="change(index)" style="color: #666;height: 60rpx;line-height: 24px;font-size: 30rpx;">{{item.name}}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="" style="background: #f7f7f7;border-radius: 10rpx;z-index: 9;width: 94%;margin-top: 20rpx;">
|
||
<!-- <view class="flex align-center justify-around" style="font-size: 22rpx;margin-bottom: 26rpx;">
|
||
<view class="flex align-center">
|
||
<image src="../../static/images/index/renzheng03.png" style="width: 28rpx;height: 30rpx;"></image>
|
||
<text style="margin-left: 10rpx;">实名认证</text>
|
||
</view>
|
||
<view class="flex align-center">
|
||
<image src="../../static/images/index/renzheng01.png" style="width: 24rpx;height: 28rpx;"></image>
|
||
<text style="margin-left: 10rpx;">资质认证</text>
|
||
</view>
|
||
<view class="flex align-center">
|
||
<image src="../../static/images/index/renzheng02.png" style="width: 30rpx;height: 28rpx;"></image>
|
||
<text style="margin-left: 10rpx;">平台担保</text>
|
||
</view>
|
||
<view class="flex align-center">
|
||
<image src="../../static/images/index/renzheng04.png" style="width: 28rpx;height: 28rpx;"></image>
|
||
<text style="margin-left: 10rpx;">随叫随到</text>
|
||
</view>
|
||
</view>
|
||
<view class="tabview1" v-if="XCXIsSelect != '否'">
|
||
<view class="tabview" v-if="typeList && typeList.length > 1">
|
||
<view v-for="(item,index) in typeList" @tap="selTab(index,item.id)"
|
||
:class="tabIndex == index ? 'tabItem_sel' : 'tabItem' ">
|
||
<view :class="'flclass'+index">{{item.value}}</view>
|
||
</view>
|
||
</view>
|
||
<view class="tabsx">
|
||
<view v-for="(item,index) in list" :key="index" :class="listIndex==index?'active':''"
|
||
@click="change(index)" style="margin-right: 40rpx;color: #666;height: 60rpx;line-height: 24px;">{{item.name}}</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 服务信息 -->
|
||
<view class="list_item" v-for="(item,index) in orderList" :key="index" @tap="goOrder(item)">
|
||
<image :src="item.massageImg" mode="aspectFill" style="border-radius: 10rpx;"></image>
|
||
<view class="listitem_rightview">
|
||
<view class="titleview">
|
||
<view class="item_title">{{item.title}}</view>
|
||
</view>
|
||
<view class="flex flex-wrap margin-top-sm" v-if="item.labels.length>0" style="justify-content: flex-end;">
|
||
<text class="margin-bottom-xs box" v-for="(ites,index) in item.labels"
|
||
:key="index">{{ites}}
|
||
</text>
|
||
</view>
|
||
<view class="titleview">
|
||
<view class="txr_title">{{item.jianjie}}</view>
|
||
</view>
|
||
<view class="flex align-center " style="justify-content: flex-end;margin-top: 10rpx;">
|
||
<view class="timesd">{{item.duration}}分钟</view>
|
||
</view>
|
||
|
||
<view class="item_money flex align-center" style="justify-content: flex-end;">
|
||
<view>
|
||
<text>¥</text>{{item.price}}
|
||
<text class="oldPrice_view">¥{{item.oldPrice}}</text>
|
||
</view>
|
||
</view>
|
||
<!-- <view class="item_yishou">已售{{item.sales}}</view> -->
|
||
<view class="btnview align-center" :style="item.labels.length > 0 ? '' : 'margin-top: 6rpx'">
|
||
<view class="item_btn" v-if="item.classifyName === '足浴按摩'" @click.stop="goOrder(item)">
|
||
选择理疗师
|
||
</view>
|
||
<view class="item_btn" v-if="item.classifyName === '健身私教'" @click.stop="goOrder(item)">
|
||
选择教练
|
||
</view>
|
||
<view class="item_btn" v-if="item.classifyName != '健身私教' && item.classifyName != '足浴按摩'"
|
||
@click.stop="goOrder(item)">
|
||
选择理疗师
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<empty v-if="orderList.length==0" style="position: relative;top: -120rpx;z-index: 9;"></empty>
|
||
<view style="position: fixed;z-index: 999;bottom: 160rpx;" v-if="showTP">
|
||
<image src="https://admin.sjajk.com/file/uploadPath/2023/02/16/15ade225e9fa8a1d82b325c06dc2b653.png"
|
||
style="width: 690rpx;margin: 30rpx;height: 600rpx;"></image>
|
||
<view
|
||
style="position: absolute;bottom: 100rpx;width: 100%;text-align: center;display: flex;justify-content: center;">
|
||
<view>
|
||
<view style="color: #333333;font-size: 28rpx;"><text
|
||
style="font-size: 44rpx;color:#ee6c54">{{tpCount}}</text>人已投票</view>
|
||
<view class="tp_view" v-if="tpSel == 2" @tap="saveTP">投票</view>
|
||
<view class="ytp_view" v-if="tpSel == 1">已投票</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 新人红包 -->
|
||
<!-- <uni-popup ref="popushongbao" type="center">
|
||
<view>
|
||
<image @tap="GetQuan"
|
||
src="https://dangao.xianmaxiong.com/file/uploadPath/2022/08/26/5921dfad9a0003f819afe03332925f18.png"
|
||
style="width: 564upx;height:618upx "></image>
|
||
</view>
|
||
</uni-popup> -->
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import empty from '@/components/empty.vue'
|
||
import RenDropdownFilter from '@/components/ren-dropdown-filter/ren-dropdown-filter.vue'
|
||
// 调用手机系统权限
|
||
// #ifdef APP-PLUS
|
||
import permision from "@/components/permission.js";
|
||
// #endif
|
||
export default {
|
||
components: {
|
||
RenDropdownFilter,
|
||
empty
|
||
},
|
||
onShareAppMessage(res) { //发送给朋友
|
||
return {
|
||
title: this.tuiguang,
|
||
path: '/pages/index/index?invitation=' + this.invitationCode,
|
||
imageUrl: this.tuiguangImg,
|
||
}
|
||
},
|
||
onShareTimeline(res) { //分享到朋友圈
|
||
return {
|
||
title: this.tuiguang,
|
||
path: '/pages/index/index?invitation=' + this.invitationCode,
|
||
imageUrl: this.tuiguangImg,
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
tpSel: 0,
|
||
tpCount: 0,
|
||
showTP: false,
|
||
invitationCode: '',
|
||
tuiguang: '',
|
||
tuiguangImg: '',
|
||
city: '请选择城市',
|
||
latitude: '',
|
||
longitude: '',
|
||
page: 1,
|
||
limit: 10,
|
||
orderList: [],
|
||
tabIndex: 0,
|
||
swiperList: [],
|
||
typeList: [],
|
||
value1: 0,
|
||
value2: 0,
|
||
value3: 0,
|
||
defaultIndex: [0, 0, 0],
|
||
classifyId: '',
|
||
filterData: [
|
||
[{
|
||
label: '推荐',
|
||
value: '',
|
||
}, ],
|
||
[{
|
||
label: '价格',
|
||
value: '0',
|
||
},
|
||
|
||
{
|
||
label: '从高到低',
|
||
value: '1',
|
||
},
|
||
{
|
||
label: '从低到高',
|
||
value: '2',
|
||
}
|
||
],
|
||
[{
|
||
label: '销量',
|
||
value: '0',
|
||
},
|
||
{
|
||
label: '从高到低',
|
||
value: '1',
|
||
},
|
||
{
|
||
label: '从低到高',
|
||
value: '2',
|
||
}
|
||
],
|
||
],
|
||
txAppKey: '',
|
||
list: [
|
||
// {
|
||
// name: '综合排序',
|
||
// id: 1
|
||
// },
|
||
{
|
||
name: '综合排序',
|
||
id: 2
|
||
}, {
|
||
name: '销量',
|
||
id: 3
|
||
}, {
|
||
name: '好评度',
|
||
id: 4
|
||
}],
|
||
arr: [],
|
||
showModal: true,
|
||
listIndex: 0,
|
||
XCXIsSelect: '否',
|
||
}
|
||
},
|
||
onLoad(e) {
|
||
|
||
let that = this
|
||
// 获取邀请码保存到本地
|
||
if (e.invitation) {
|
||
that.$queue.setData('inviterCode', e.invitation);
|
||
}
|
||
// #ifdef MP-WEIXIN
|
||
if (e.scene) {
|
||
const scene = decodeURIComponent(e.scene);
|
||
this.$queue.setData('inviterCode', scene.split(',')[0]);
|
||
}
|
||
// #endif
|
||
|
||
that.$Request.getT('/app/common/type/250').then(res => { //理疗师完成通知
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.value) {
|
||
that.arr.push(res.data.value)
|
||
}
|
||
}
|
||
})
|
||
|
||
that.$Request.getT('/app/common/type/248').then(res => { //理疗师取消通知
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.value) {
|
||
that.arr.push(res.data.value)
|
||
}
|
||
}
|
||
})
|
||
that.$Request.getT('/app/common/type/217').then(res => { //腾讯地图key
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.value) {
|
||
that.txAppKey = res.data.value;
|
||
}
|
||
}
|
||
})
|
||
that.getBannerList();
|
||
that.getZiZhi()
|
||
that.XCXIsSelect = that.$queue.getData('XCXIsSelect');
|
||
that.invitationCode = uni.getStorageSync('invitationCode')
|
||
uni.getLocation({
|
||
type: 'gcj02',
|
||
geocode: true, //设置该参数为true可直接获取经纬度及城市信息
|
||
success: function(res) {
|
||
console.log(res, '地理位置')
|
||
that.latitude = res.latitude
|
||
that.longitude = res.longitude
|
||
uni.setStorageSync('latitude', res.latitude)
|
||
uni.setStorageSync('longitude', res.longitude)
|
||
|
||
// #ifdef APP-PLUS
|
||
that.city = res.address.city
|
||
that.selectCity(that.longitude, that.latitude);
|
||
uni.setStorageSync('city', res.address.city)
|
||
// that.page = 1
|
||
// that.getorderlist('')
|
||
that.getKTCityList();
|
||
// #endif
|
||
|
||
// #ifdef H5
|
||
that.selectCity(that.longitude, that.latitude);
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
uni.request({
|
||
url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=' + that.latitude +
|
||
',' + that.longitude + '&key=' + that.txAppKey,
|
||
success(re) {
|
||
if (re.statusCode === 200) {
|
||
let citydata = re.data.result.address_component.city
|
||
// console.log("获取城市名称成功", citydata)/
|
||
that.city = citydata ? citydata : '未知'
|
||
uni.setStorageSync('city', citydata)
|
||
that.getKTCityList();
|
||
// that.page = 1
|
||
// that.getorderlist('')
|
||
} else {
|
||
console.log("获取信息失败,请重试!")
|
||
}
|
||
}
|
||
});
|
||
// #endif
|
||
},
|
||
fail: function() {
|
||
// #ifdef APP-PLUS
|
||
that.checkPermission();
|
||
// #endif
|
||
}
|
||
})
|
||
that.page = 1
|
||
that.getorderlist('')
|
||
},
|
||
onShow() {
|
||
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
|
||
this.$Request.get('/app/common/type/297').then(res => {
|
||
if (res.code == 0) {
|
||
// #ifdef MP-WEIXIN
|
||
this.$queue.setData('XCXIsSelect', res.data.value);
|
||
// #endif
|
||
// #ifndef MP-WEIXIN
|
||
this.$queue.setData('XCXIsSelect', '是');
|
||
// #endif
|
||
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
|
||
}
|
||
});
|
||
let userId = this.$queue.getData('userId');
|
||
if (userId) {
|
||
this.getTpMy();
|
||
this.getTpCount();
|
||
this.checkNewUser();
|
||
// #ifdef MP-WEIXIN
|
||
//订阅
|
||
if (this.showModal) {
|
||
this.openMsg()
|
||
}
|
||
// #endif
|
||
this.city = uni.getStorageSync('city')
|
||
this.getKTCityList();
|
||
this.latitude = uni.getStorageSync('latitude')
|
||
this.longitude = uni.getStorageSync('longitude')
|
||
}
|
||
this.page = 1
|
||
this.getorderlist('')
|
||
},
|
||
methods: {
|
||
goNav(url) {
|
||
let userId = this.$queue.getData('userId');
|
||
if (!userId) {
|
||
uni.navigateTo({
|
||
url: '/pages/public/login'
|
||
});
|
||
return;
|
||
}
|
||
if (url.indexOf('/pages/') !== -1 || url.indexOf('/my/') !== -1) {
|
||
uni.navigateTo({
|
||
url
|
||
});
|
||
} else {
|
||
//#ifndef H5
|
||
uni.navigateTo({
|
||
url: '/pages/index/webView?url=' + url
|
||
});
|
||
//#endif
|
||
//#ifdef H5
|
||
window.location.href = url;
|
||
//#endif
|
||
}
|
||
},
|
||
async checkPermission() {
|
||
let status = permision.isIOS ? await permision.requestIOS('location') : await permision.requestAndroid(
|
||
'android.permission.ACCESS_FINE_LOCATION');
|
||
if (status === null || status === 1) {
|
||
status = 1;
|
||
} else if (status === 2) {
|
||
uni.showModal({
|
||
content: "系统定位已关闭",
|
||
confirmText: "确定",
|
||
showCancel: false,
|
||
success: function(res) {}
|
||
})
|
||
} else if (status.code) {
|
||
uni.showModal({
|
||
content: status.message
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: '定位服务已关闭',
|
||
content: "您需要打开定位权限,否则我们将无法获得到您附近的项目服务,导致我们无法为您提供服务,请到>设置>隐私>定位服务>中开启【盛安到家】定位权限",
|
||
confirmText: "设置",
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
permision.gotoAppSetting();
|
||
}
|
||
}
|
||
})
|
||
}
|
||
return status;
|
||
},
|
||
saveTP() {
|
||
let userId = this.$queue.getData('userId');
|
||
if (!userId) {
|
||
uni.navigateTo({
|
||
url: '/pages/public/login'
|
||
});
|
||
return;
|
||
}
|
||
let userName = this.$queue.getData('userName');
|
||
this.$queue.showLoading('投票中...');
|
||
this.$Request.postJson('/app/message/insertMessage', {
|
||
state: 11,
|
||
content: this.city,
|
||
userName: userName,
|
||
userId: userId
|
||
})
|
||
.then(res => {
|
||
if (res.code === 0) {
|
||
uni.showToast({
|
||
title: '投票成功!'
|
||
});
|
||
this.getTpCount();
|
||
this.getTpMy();
|
||
} else {
|
||
uni.hideLoading();
|
||
uni.showModal({
|
||
showCancel: false,
|
||
title: '投票失败',
|
||
content: res.msg
|
||
});
|
||
}
|
||
});
|
||
},
|
||
getTpMy() {
|
||
this.$Request.getT('/app/message/selectMessageByUserId?page=1&limit=1&state=11').then(res => {
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.list && res.data.list.length > 0) {
|
||
this.tpSel = 1;
|
||
} else {
|
||
this.tpSel = 2;
|
||
}
|
||
}
|
||
});
|
||
},
|
||
getTpCount() {
|
||
this.$Request.getT('/app/message/selectCityCount?city=' + this.city).then(res => {
|
||
if (res.code == 0) {
|
||
this.tpCount = res.data ? res.data : 0;
|
||
}
|
||
});
|
||
},
|
||
getCity(e) {
|
||
console.log(e[0].label);
|
||
this.city = e[0].label;
|
||
uni.setStorageSync('city', this.city)
|
||
this.getKTCityList();
|
||
this.page = 1
|
||
this.getlist()
|
||
},
|
||
getKTCityList() {
|
||
let cityName = uni.getStorageSync('city') ? uni.getStorageSync('city') : '请选择城市'
|
||
if (cityName === '请选择城市') {
|
||
return;
|
||
}
|
||
this.$Request.getT('/app/trip/selectTripList').then(res => {
|
||
if (res.code == 0) {
|
||
this.cityList = [];
|
||
let isOpen = false
|
||
let cityName = uni.getStorageSync('city') ? uni.getStorageSync('city') : '请选择城市'
|
||
res.data.forEach((d, index) => {
|
||
if (cityName === d.city) {
|
||
isOpen = true;
|
||
}
|
||
let data = {}
|
||
data.label = d.city
|
||
data.value = index
|
||
this.cityList.push(data);
|
||
});
|
||
|
||
if (!isOpen) {
|
||
// this.orderList = []
|
||
// this.showTP = true;
|
||
// uni.showToast({
|
||
// title: '当前城市暂未开通,请切换城市',
|
||
// duration: 2000,
|
||
// icon: 'none'
|
||
// });
|
||
} else {
|
||
this.showTP = false;
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 开启订阅消息
|
||
openMsg() {
|
||
console.log('订阅消息')
|
||
var that = this
|
||
uni.getSetting({
|
||
withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
|
||
success(ret) {
|
||
console.log(ret.subscriptionsSetting, '------------------')
|
||
// if (ret.subscriptionsSetting.itemSettings && Object.keys(ret.subscriptionsSetting.itemSettings).length == 2) {
|
||
if (ret.subscriptionsSetting.itemSettings) {
|
||
uni.setStorageSync('sendMsg', true)
|
||
uni.openSetting({ // 打开设置页
|
||
success(rea) {
|
||
console.log(rea.authSetting)
|
||
}
|
||
});
|
||
} else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
|
||
uni.setStorageSync('sendMsg', false)
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '为了更好的体验,请绑定消息推送',
|
||
confirmText: '确定',
|
||
cancelText: '取消',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
wx.requestSubscribeMessage({
|
||
tmplIds: that.arr,
|
||
success(re) {
|
||
var datas = JSON.stringify(re);
|
||
if (datas.indexOf("accept") != -1) {
|
||
console.log(re)
|
||
// uni.setStorageSync('sendMsg', true)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
console.log(res)
|
||
}
|
||
})
|
||
// uni.setStorageSync('sendMsg', true)
|
||
|
||
that.showModal = false
|
||
} else if (res.cancel) {
|
||
console.log('取消')
|
||
// uni.setStorageSync('sendMsg', false)
|
||
that.showModal = true
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
// 分享文案和图片
|
||
getZiZhi() {
|
||
this.$Request.getT('/app/common/type/299').then(res => { //分享文案 299
|
||
if (res.code === 0) {
|
||
this.tuiguang = res.data.value;
|
||
}
|
||
});
|
||
this.$Request.getT('/app/common/type/300').then(res => { //分享图片 300
|
||
if (res.code === 0) {
|
||
this.tuiguangImg = res.data.value;
|
||
}
|
||
});
|
||
},
|
||
// 筛选
|
||
change(index) {
|
||
// this.value1 = e[0][0].value
|
||
// this.value2 = e[1][0].value
|
||
// this.value3 = e[2][0].value
|
||
this.listIndex = index
|
||
this.page = 1
|
||
this.getorderlist('')
|
||
},
|
||
GetQuan() {
|
||
let userId = this.$queue.getData('userId');
|
||
this.$Request.getT('/app/coupon/insertNewUserCoupon').then(res => {
|
||
if (res.code == 0) {
|
||
this.$refs.popushongbao.close();
|
||
this.$queue.showToast('领取成功!')
|
||
setTimeout(d => {
|
||
uni.navigateTo({
|
||
url: '/my/hongbao/youhuijuan'
|
||
});
|
||
}, 1000);
|
||
} else {
|
||
this.$queue.showToast(res.msg)
|
||
}
|
||
});
|
||
},
|
||
checkNewUser() {
|
||
this.$Request.getT("/app/user/selectUserById").then(res => {
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.isCoupon != 1) {
|
||
setTimeout(d => {
|
||
this.$refs.popushongbao.open();
|
||
}, 2000);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
//获取轮播图
|
||
getBannerList() {
|
||
this.$Request.get("/app/banner/selectBannerList", {
|
||
classify: 1
|
||
}).then(res => {
|
||
if (res.code == 0) {
|
||
this.swiperList = res.data
|
||
}
|
||
});
|
||
|
||
this.$Request.get("/app/dict/list", {
|
||
type: '服务类型'
|
||
}).then(res => {
|
||
if (res.code == 0) {
|
||
if (res.data) {
|
||
this.typeList = res.data
|
||
this.classifyId = res.data[0].id;
|
||
this.page = 1
|
||
this.getorderlist('')
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 跳转订单
|
||
goOrder(e) {
|
||
// #ifdef MP-WEIXIN
|
||
if (uni.getStorageSync('sendMsg')) {
|
||
wx.requestSubscribeMessage({
|
||
tmplIds: this.arr,
|
||
success(re) {
|
||
var datas = JSON.stringify(re);
|
||
if (datas.indexOf("accept") != -1) {
|
||
console.log(re)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
console.log(res)
|
||
}
|
||
})
|
||
}
|
||
// #endif
|
||
let token = this.$queue.getData('token')
|
||
if (token) {
|
||
uni.navigateTo({
|
||
url: '/pages/index/order/order?massageTypeId=' + e.massageTypeId
|
||
});
|
||
} else {
|
||
uni.navigateTo({
|
||
url: '/pages/public/login'
|
||
});
|
||
}
|
||
|
||
},
|
||
// 选择城市
|
||
goSelectCity() {
|
||
uni.navigateTo({
|
||
url: '/pages/index/citys/citys'
|
||
});
|
||
},
|
||
// 跳转搜索
|
||
goSearch(index) {
|
||
// #ifdef MP-WEIXIN
|
||
if (uni.getStorageSync('sendMsg')) {
|
||
wx.requestSubscribeMessage({
|
||
tmplIds: this.arr,
|
||
success(re) {
|
||
var datas = JSON.stringify(re);
|
||
if (datas.indexOf("accept") != -1) {
|
||
console.log(re)
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
console.log(res)
|
||
}
|
||
})
|
||
}
|
||
// #endif
|
||
uni.navigateTo({
|
||
url: '/pages/index/search/index?index=' + index
|
||
});
|
||
},
|
||
selectCity(longitude, latitude) {
|
||
this.$Request.get('/app/Login/selectCity?lat=' + latitude + '&lng=' + longitude).then(res => {
|
||
if (res.code == 0) {
|
||
this.city = res.data.city ? res.data.city : '未知'
|
||
uni.setStorageSync('city', res.data.city)
|
||
this.page = 1
|
||
this.getorderlist('')
|
||
this.getKTCityList();
|
||
}
|
||
});
|
||
},
|
||
goImg() {
|
||
window.location.href = 'https://qmdj.xianmxkj.com/erweima.png';
|
||
},
|
||
|
||
selTab(index, id) {
|
||
// #ifdef APP-PLUS
|
||
if(this.latitude === '' || this.longitude === ''){
|
||
this.checkPermission();
|
||
return;
|
||
}
|
||
// #endif
|
||
this.tabIndex = index;
|
||
this.classifyId = id;
|
||
this.page = 1
|
||
this.getorderlist('')
|
||
},
|
||
getorderlist(type) {
|
||
let city = this.city;
|
||
if (this.city === '请选择城市') {
|
||
// city = '';
|
||
if (type === 'refresh') {
|
||
uni.stopPullDownRefresh();
|
||
}
|
||
return;
|
||
}
|
||
let index = this.list[this.listIndex].id
|
||
let data = {
|
||
classifyId: this.classifyId,
|
||
page: this.page,
|
||
limit: this.limit,
|
||
status: 1,
|
||
by: index, //销量
|
||
latitude: this.latitude,
|
||
longitude: this.longitude,
|
||
city: city
|
||
}
|
||
this.$Request.get("/app/artificer/selectMassageTypePage", data).then(res => {
|
||
if (res.code == 0) {
|
||
if (this.page == 1) {
|
||
for (let i = 0; i < res.data.list.length; i++) {
|
||
if (res.data.list[i].labels) {
|
||
res.data.list[i].labels = res.data.list[i].labels.split(",");
|
||
} else {
|
||
res.data.list[i].labels = []
|
||
}
|
||
}
|
||
this.orderList = res.data.list
|
||
} else {
|
||
for (let i = 0; i < res.data.list.length; i++) {
|
||
if (res.data.list[i].labels) {
|
||
res.data.list[i].labels = res.data.list[i].labels.split(",");
|
||
} else {
|
||
res.data.list[i].labels = []
|
||
}
|
||
}
|
||
this.orderList = [...this.orderList, ...res.data.list]
|
||
}
|
||
// if (this.orderList.length == 0) {
|
||
// this.orderList = []
|
||
// uni.showToast({
|
||
// title: '当前城市暂未开通,请切换城市',
|
||
// duration: 2000,
|
||
// icon: 'none'
|
||
// });
|
||
// }
|
||
}
|
||
|
||
if (type === 'refresh') {
|
||
uni.stopPullDownRefresh();
|
||
}
|
||
})
|
||
}
|
||
},
|
||
onReachBottom: function() {
|
||
this.page = this.page + 1;
|
||
this.getorderlist('')
|
||
},
|
||
onPullDownRefresh: function() {
|
||
this.page = 1;
|
||
this.getorderlist('refresh');
|
||
this.getZiZhi()
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
page {
|
||
background: #f7f7f7;
|
||
}
|
||
// .flclass1{
|
||
// background: linear-gradient(to right, #223845, #00a85b);
|
||
// background-size: cover;
|
||
// width: 96%;
|
||
// height: 124rpx;
|
||
// margin-left: 10rpx;
|
||
// line-height: 66px;
|
||
// text-align: right;
|
||
// padding-right: 30px;
|
||
// }
|
||
// .flclass0{
|
||
// background: url('../../static/images/zuyu01.png');
|
||
// background-size: cover;
|
||
// width: 96%;
|
||
// height: 124rpx;
|
||
// line-height: 66px;
|
||
// margin-right: 5px;
|
||
// text-align: right;
|
||
// padding-right: 30px;
|
||
// }
|
||
.sticky-tabs {
|
||
z-index: 990;
|
||
width: 100%;
|
||
position: sticky;
|
||
top: var(--window-top);
|
||
// background-color: #fff;
|
||
}
|
||
.headtitle{
|
||
color: #ffffff;
|
||
font-size: 36rpx;
|
||
font-weight: bold;
|
||
text-align: center;
|
||
line-height: calc(44px + env(safe-area-inset-top));
|
||
height: calc(44px + env(safe-area-inset-top));
|
||
background: linear-gradient(to right, #223845, #00a85b);
|
||
}
|
||
.margin-left-xs{
|
||
margin-left: 10px;
|
||
color: #8ba1ff;
|
||
}
|
||
.align-center{
|
||
flex: 1 1;
|
||
justify-content: center;
|
||
}
|
||
.bg {
|
||
background: #FFFFFF;
|
||
}
|
||
.tabbg{
|
||
width: 94%;
|
||
background-color: #ffffff;
|
||
margin-top: -30rpx;
|
||
border-radius: 18rpx;
|
||
z-index: 99;
|
||
overflow: hidden;
|
||
}
|
||
.ytp_view {
|
||
background: #e3e3e3;
|
||
width: 400rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 28rpx;
|
||
text-align: center;
|
||
height: 80rpx;
|
||
line-height: 80rpx;
|
||
color: #848484;
|
||
margin-top: 40rpx;
|
||
}
|
||
.dsax{
|
||
|
||
}
|
||
.tp_view {
|
||
background: #ee6c54;
|
||
width: 400rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 28rpx;
|
||
text-align: center;
|
||
height: 80rpx;
|
||
line-height: 80rpx;
|
||
color: #FFFFFF;
|
||
margin-top: 40rpx;
|
||
}
|
||
|
||
.bannerImg {
|
||
width: 750rpx;
|
||
height: 450rpx;
|
||
}
|
||
|
||
.box {
|
||
background: #daf0ff;
|
||
color: #096f4b;
|
||
padding: 5rpx 15rpx;
|
||
font-size: 24upx;
|
||
letter-spacing: 2rpx;
|
||
border-radius: 8rpx;
|
||
margin-right: 8upx;
|
||
}
|
||
.timesd{
|
||
font-size: 22rpx;
|
||
text-align: center;
|
||
padding: 4rpx 10rpx;
|
||
color: #ddc889;
|
||
border-radius: 8rpx;
|
||
background: linear-gradient(to right, #0a0c16, #4d4d53);
|
||
}
|
||
.list_item {
|
||
// width: 650upx;
|
||
// height: 160upx;
|
||
width: 100%;
|
||
// margin: 30rpx 0;
|
||
background: #FFFFFF;
|
||
border-radius: 18rpx;
|
||
padding: 20upx;
|
||
display: flex;
|
||
align-items: center;
|
||
margin: 8upx 0 20upx 0;
|
||
box-shadow: 0 0 20rpx #f3f3f3;
|
||
|
||
.listitem_rightview {
|
||
width: 80%;
|
||
justify-content: end;
|
||
|
||
.btnview {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
// margin-top: 12upx;
|
||
width: 100%;
|
||
}
|
||
|
||
.titleview {
|
||
display: flex;
|
||
align-items: flex-end;
|
||
justify-content: flex-end;
|
||
}
|
||
|
||
.moneyview {
|
||
display: flex;
|
||
align-items: flex-end;
|
||
|
||
image {
|
||
width: 30upx;
|
||
height: 30upx;
|
||
margin-left: 20upx;
|
||
margin-bottom: 2upx;
|
||
}
|
||
}
|
||
|
||
.item_time {
|
||
font-size: 24upx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #999999;
|
||
margin-left: 10upx;
|
||
}
|
||
|
||
.item_money {
|
||
font-size: 40upx;
|
||
font-family: PingFang SC;
|
||
font-weight: 600;
|
||
color: #FF1200;
|
||
|
||
.oldPrice_view {
|
||
font-size: 22rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 400;
|
||
text-decoration: line-through;
|
||
color: #c7c7c7;
|
||
margin-left: 8rpx;
|
||
}
|
||
|
||
text {
|
||
font-size: 24upx;
|
||
}
|
||
}
|
||
|
||
.item_oldmoney {
|
||
font-size: 24upx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
text-decoration: line-through;
|
||
color: #999999;
|
||
margin-left: 10upx;
|
||
}
|
||
|
||
.item_btn {
|
||
width: 200upx;
|
||
height: 56upx;
|
||
background: linear-gradient(to right, #223845, #00a85b);
|
||
border-radius: 50upx;
|
||
text-align: center;
|
||
line-height: 56upx;
|
||
font-size: 29rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #FFFFFF;
|
||
}
|
||
.item_yishou {
|
||
font-size: 22upx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #999999;
|
||
}
|
||
.item_title {
|
||
width: 300rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 34upx;
|
||
font-weight: bold;
|
||
font-family: PingFang SC;
|
||
text-align: right;
|
||
color: #333333;
|
||
}
|
||
.txr_title{
|
||
width: 160px;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 24rpx;
|
||
font-family: PingFang SC;
|
||
text-align: right;
|
||
color: #999999;
|
||
margin-top: 8rpx;
|
||
}
|
||
}
|
||
|
||
image {
|
||
width: 540upx;
|
||
height: 240upx;
|
||
border-radius: 10upx;
|
||
}
|
||
}
|
||
|
||
.tabview1 {
|
||
// height: 100upx;
|
||
border-radius: 24rpx;
|
||
z-index: 99;
|
||
// display: flex;
|
||
// line-height: 100upx;
|
||
|
||
.tabview {
|
||
// width: 686upx;
|
||
// // height: 100upx;
|
||
border-radius: 24rpx 24rpx 0 0;
|
||
// margin-top: -50upx;
|
||
// z-index: 99;
|
||
display: flex;
|
||
line-height: 100upx;
|
||
|
||
.tabItem_sel {
|
||
font-size: 34upx;
|
||
font-family: PingFang SC;
|
||
font-weight: bold;
|
||
color: #ffffff;
|
||
flex: 1;
|
||
text-align: center;
|
||
background: linear-gradient(to right, #223845, #00a85b);
|
||
}
|
||
|
||
.tabItem {
|
||
font-size: 34upx;
|
||
font-family: PingFang SC;
|
||
color: #333333;
|
||
flex: 1;
|
||
text-align: center;
|
||
background-color: #e2f1ea;
|
||
}
|
||
}
|
||
|
||
.tabsx {
|
||
width: 100%;
|
||
border-radius: 24rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-evenly;
|
||
font-size: 26rpx;
|
||
margin-top: 24rpx;
|
||
|
||
|
||
.active {
|
||
// background: url('../../static/images/xazsa.png') no-repeat center;
|
||
color: #333333 !important;
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
position: relative;
|
||
}
|
||
.active::after{
|
||
position: absolute;
|
||
bottom: 0;
|
||
content: '';
|
||
width: 40rpx;
|
||
height: 8rpx;
|
||
border-radius: 8rpx;
|
||
background-color: #096f4b;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
}
|
||
}
|
||
}
|
||
|
||
.content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding-bottom: 100upx;
|
||
}
|
||
|
||
.logo {
|
||
height: 200rpx;
|
||
width: 200rpx;
|
||
margin-top: 200rpx;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
margin-bottom: 50rpx;
|
||
}
|
||
|
||
.text-area {
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
|
||
.title {
|
||
font-size: 36rpx;
|
||
color: #8f8f94;
|
||
}
|
||
</style> |