83 changed files with 5069 additions and 55 deletions
@ -0,0 +1,155 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<image src="https://static.ticket.sz-trip.com/yandu/images/user/logo.png" class="logo"></image> |
|||
|
|||
<view :class="['btn', 'flex-center', {'btns': flag}]" @click="getUserInfo()">快捷登录</view> |
|||
|
|||
<image src="https://static.ticket.sz-trip.com/yandu/images/user/tips.png" class="tips" v-show="!flag"></image> |
|||
<footer class="flex-between"> |
|||
<view @click="flag = !flag" :style="{border: flag ? 'none' : ''}"><image src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" v-show="flag"></image></view> |
|||
我已阅读并同意 <span @click="gotoPath('/subPackages/user/privacy')">《用户服务协议》、《隐私政策》</span> |
|||
</footer> |
|||
|
|||
<uni-popup ref="popup" type="bottom" background-color="#fff"> |
|||
<button type="default" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber" style="width: 100%;height: 12vh;line-height: 12vh;">点击授权手机号</button> |
|||
</uni-popup> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
flag: false |
|||
} |
|||
}, |
|||
methods: { |
|||
decryptPhoneNumber(e){ |
|||
if( e.detail.errMsg == "getPhoneNumber:ok" ){ //成功 |
|||
this.$refs.popup.close() |
|||
this.Post({ |
|||
code: e.detail.code, |
|||
encryptedData: e.detail.encryptedData, |
|||
iv: e.detail.iv, |
|||
token: uni.getStorageSync('token1') |
|||
},'/api/mini_program/bindPhoneNumber').then(res => { |
|||
this.$store.commit('changeUserInfo', res.data.userinfo) |
|||
if (this.$store.state.user.toPath.includes('user/user')) { |
|||
uni.switchTab({ |
|||
url: this.$store.state.user.toPath |
|||
}) |
|||
} else { |
|||
uni.navigateBack({}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
getUserInfo() { |
|||
if(!this.flag) return; |
|||
|
|||
var _this = this |
|||
uni.login({ |
|||
provider: 'weixin', |
|||
success(loginRes) { |
|||
uni.getUserInfo({ |
|||
withCredentials: true, |
|||
success(res) { |
|||
_this.Post({ |
|||
code: loginRes.code, |
|||
userInfo: res.userInfo, |
|||
encryptedData: res.encryptedData, |
|||
iv: res.iv, |
|||
wechat_qrcode: uni.getStorageSync('wechat_qrcode')?uni.getStorageSync('wechat_qrcode'):'' |
|||
}, '/api/mini_program/login').then(resTwo => { |
|||
_this.$store.commit('changeUserInfo', resTwo.data.userinfo) |
|||
if(resTwo.data.userinfo.mobile){ |
|||
if (_this.$store.state.user.toPath.includes('user/user')) { |
|||
uni.switchTab({ |
|||
url: _this.$store.state.user.toPath |
|||
}) |
|||
} else { |
|||
uni.navigateBack({}) |
|||
} |
|||
}else{ |
|||
uni.setStorageSync('token1', resTwo.data.userinfo.token) |
|||
_this.$refs.popup.open('bottom') |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
fail(err) { |
|||
console.log(err); |
|||
}, |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.bg { |
|||
height: 100vh; |
|||
} |
|||
|
|||
.logo { |
|||
width: 186rpx; |
|||
height: 132rpx; |
|||
position: absolute; |
|||
top: 79rpx; |
|||
left: 50%; |
|||
transform: translate(-50%, 0); |
|||
} |
|||
|
|||
.btn { |
|||
width: 667rpx; |
|||
height: 93rpx; |
|||
background: #CCCCCC; |
|||
border-radius: 20rpx; |
|||
font-weight: 500; |
|||
font-size: 35rpx; |
|||
color: #FFFFFF; |
|||
position: absolute; |
|||
top: 301rpx; |
|||
left: 50%; |
|||
transform: translate(-50%,0) |
|||
} |
|||
.btns { |
|||
background: #71B580; |
|||
} |
|||
|
|||
.tips { |
|||
position: absolute; |
|||
left: 54rpx; |
|||
bottom: 155rpx; |
|||
width: 293.33rpx; |
|||
height: 72.67rpx; |
|||
} |
|||
|
|||
footer { |
|||
padding: 0 68rpx; |
|||
position: absolute; |
|||
bottom: 94rpx; |
|||
font-weight: 500; |
|||
font-size: 25rpx; |
|||
color: #333333; |
|||
width: 100%; |
|||
|
|||
view { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 50%; |
|||
overflow: hidden; |
|||
border: 1rpx solid #666666; |
|||
|
|||
image { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
} |
|||
|
|||
span { |
|||
color: rgba(113, 181, 128, 1); |
|||
} |
|||
} |
|||
</style> |
@ -1,8 +1,650 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="title">我的</view> |
|||
|
|||
<view class="topBox" @click="gotoProfile"> |
|||
<view class="avatar-box flex-center"> |
|||
<image :src="showImg(userInfo.avatar)" mode="aspectFill" class="headImg" v-if="userInfo.avatar"></image> |
|||
<image src="https://static.ticket.sz-trip.com/yandu/images/user/grxx.png" mode="aspectFill" |
|||
class="headImg" v-else></image> |
|||
</view> |
|||
<view class="username" v-if="userInfo.nickname">{{userInfo.nickname}}</view> |
|||
<view class="username" v-else>请登录/注册 ></view> |
|||
</view> |
|||
|
|||
<view class="orderBox"> |
|||
<navigator :url="'/subPackages/order/trades'" class="moreBox flex-between"> |
|||
我的订单 |
|||
<span class="flex-between">全部订单 <img |
|||
src="https://static.ticket.sz-trip.com/yandu/images/user/rightIcon.png" alt=""></span> |
|||
</navigator> |
|||
|
|||
<view class="flex-around" style="margin-top: 20rpx;"> |
|||
<view class="orderItem" v-for="(item,index) in orderList" :key="index" @click="goTrades(item)"> |
|||
<img :src="item.src" alt=""> |
|||
<view>{{item.title}}</view> |
|||
</view> |
|||
</view> |
|||
<!-- 待付款轮播 --> |
|||
<!-- <swiper class="my-swipe" :autoplay="3000" indicator-color="white" v-if="dfkList && dfkList.length>0" circular> |
|||
<swiper-item v-for="(item,index) in dfkList" :key="item.id"> |
|||
<div class="dfkBox" @click="goToOrderDetail(item)"> |
|||
<image :src="showImg(item.order_child[0].specifications_image)" mode="aspectFill"></image> |
|||
<div class="contentBox"> |
|||
<div style="width:300rpx;"> |
|||
<div style="font-size: 27rpx;margin-bottom: 10rpx;">等待付款 </div> |
|||
<div style="display: flex;color: #8A8A8A;font-size: 27rpx;">剩余时间:<uni-countdown class="countdown" @timeup="timeup(index)" :show-day="false" :hour="differTimeList[index].slice(0,2)" :minute="differTimeList[index].slice(3,5)" :second="differTimeList[index].slice(6,8)"/></div> |
|||
</div> |
|||
<div class="orderBtn" @click.stop="setOrderId(item.order_id)">去支付</div> |
|||
</div> |
|||
</div> |
|||
</swiper-item> |
|||
</swiper> --> |
|||
</view> |
|||
|
|||
<view class="cygj"> |
|||
<view class="cyItem flex-between" v-for="(item,index) in cyList" :key="index" |
|||
@click="gotoUrl(item,index)" v-if="item.isShow"> |
|||
<view class="flex-center"> |
|||
<img :src="item.src" class="headIcon"> |
|||
{{item.title}} |
|||
</view> |
|||
<img src="https://static.ticket.sz-trip.com/yandu/images/user/rightIcon-gray.png" class="rightIcon"> |
|||
</view> |
|||
<!-- <button id="contact" class="cyItem flex-between" open-type="contact" bindcontact="handleContact" session-from="sessionFrom"> |
|||
<view class="flex-center"> |
|||
<img src="https://static.ticket.sz-trip.com/dongtai/images/user/zxkf.png" class="headIcon"> |
|||
在线客服 |
|||
</view> |
|||
<img src="https://static.ticket.sz-trip.com/dongtai/images/user/rightIcon-gray.png" class="rightIcon"> |
|||
</button> --> |
|||
</view> |
|||
|
|||
<!-- 旅游咨询弹框 --> |
|||
<uni-popup ref="popup" type="center"> |
|||
<view class="consult-popup"> |
|||
即将跳转人工客服 |
|||
<view class="consult-subtitle">服务时间:周一至周五<br>8:30-11:30,14:30-18:00</view> |
|||
<view class="consult-btns"> |
|||
<view @click="$refs.popup.close()">取消</view> |
|||
<!-- <view @click="clickPhone('0515-69186109')">确定</view> --> |
|||
<view> |
|||
<button class="confirm" open-type="contact">确定</button> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</uni-popup> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
// import moment from "moment"; |
|||
export default { |
|||
data() { |
|||
return { |
|||
dfkList: [], |
|||
differTimeList: [], |
|||
nowDateTime: '', //当前时间秒数 |
|||
userInfo: {}, |
|||
orderList: [{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/dfk.png', |
|||
title: '待付款', |
|||
status: 'WAIT_PAYMENT' |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/dfh.png', |
|||
title: '待发货', |
|||
status: 'PAYMENT_SUCCESSFULLY' |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/dsh.png', |
|||
title: '待收货', |
|||
status: 'POST' |
|||
}, |
|||
// { |
|||
// src: 'https://static.ticket.sz-trip.com/yandu/images/user/dpj.png', |
|||
// title: '待评价', |
|||
// status: 'WAIT_COMMENT' |
|||
// }, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/tksh.png', |
|||
title: '退款/售后', |
|||
status: 'WAIT_REFUND,REFUND_SUCCESS,REFUND_REFUSAL,REFUND_ERROR,REFUND_PART' |
|||
}, |
|||
], |
|||
cyList: [ |
|||
// { |
|||
// src: 'https://static.ticket.sz-trip.com/yandu/images/user/grsc.png', |
|||
// title: '个人收藏', |
|||
// path: '/subPackages/user/collect', |
|||
// isShow: true |
|||
// }, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/yhq.png', |
|||
title: '优惠券', |
|||
path: '/subPackages/user/coupon', |
|||
isShow: true |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/cyxx.png', |
|||
title: '常用信息', |
|||
path: '/subPackages/user/travelerList', |
|||
isShow: true |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/lyzx.png', |
|||
title: '旅游咨询', |
|||
path: '', |
|||
isShow: true |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/tsjb.png', |
|||
title: '投诉建议', |
|||
path: '/subPackages/service/service', |
|||
isShow: true |
|||
}, |
|||
{ |
|||
src: 'https://static.ticket.sz-trip.com/yandu/images/user/ysgl.png', |
|||
title: '隐私管理', |
|||
path: '/subPackages/user/privacy', |
|||
isShow: true |
|||
} |
|||
], |
|||
} |
|||
}, |
|||
onShow() { |
|||
this.userInfo = (uni.getStorageSync('userInfo') && JSON.parse(uni.getStorageSync('userInfo'))) || this.$store.state.user.userInfo || {} |
|||
console.log(this.userInfo) |
|||
// this.dfkList = [] |
|||
// this.nowDateTime = parseInt(new Date().getTime() / 1000) |
|||
// this.Post({}, "/api/user/userInfo").then((res) => { |
|||
// if (res.data) { |
|||
// this.userInfo = res.data; |
|||
// // this.getDfk() |
|||
|
|||
// // 是否展示商户核销 |
|||
// this.Post({},'/api/merchants/is_merchant').then(res => { |
|||
// this.cyList[6].isShow = res.data |
|||
// }) |
|||
// } |
|||
// }); |
|||
}, |
|||
methods: { |
|||
// 个人信息或登录 |
|||
gotoProfile() { |
|||
// 有token去个人信息,没有去登录 |
|||
if(this.userInfo.token) { |
|||
uni.navigateTo({ |
|||
url: '/subPackages/user/profile' |
|||
}) |
|||
}else { |
|||
uni.navigateTo({ |
|||
url: '/pages/login/login' |
|||
}) |
|||
} |
|||
}, |
|||
timeup(index) { |
|||
// return this.dfkList.splice(index,1) |
|||
}, |
|||
setOrderId(id) { |
|||
let that = this; |
|||
that.orderId = id; |
|||
that.Post({ |
|||
order_id: id, |
|||
type: "miniprogram", |
|||
platform: 'miniprogram' |
|||
}, |
|||
'/api/pay/unify' |
|||
).then(res => { |
|||
if (res.data) { |
|||
uni.requestPayment({ |
|||
nonceStr: res.data.nonceStr, |
|||
package: res.data.package, |
|||
paySign: res.data.paySign, |
|||
signType: res.data.signType, |
|||
timeStamp: res.data.timeStamp |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
// 待付款 |
|||
getDfk() { |
|||
this.differTimeList = [] |
|||
let params = { |
|||
offset: this.dfkList.length, |
|||
limit: 10, |
|||
status: 'WAIT_PAYMENT', |
|||
} |
|||
this.Post(params, '/api/order/orderList').then(res => { |
|||
this.isLoading = false |
|||
if (res) { |
|||
this.dfkList = [...this.dfkList, ...res.data] |
|||
this.dfkList.forEach(item => { |
|||
// 获取时间差,订单关闭时间-当前时间,若存在即展示倒计时differTimeList |
|||
let del; |
|||
if (moment(item.close_time).diff(moment()) > 0) { |
|||
del = moment.utc(moment(item.close_time).diff(moment())).format('HH:mm:ss') |
|||
} else { |
|||
del = '00:00:00' |
|||
} |
|||
this.differTimeList.push(del) |
|||
}) |
|||
console.log(this.differTimeList); |
|||
console.log('this.differTimeList:' + this.differTimeList[0].slice(0, 2)) |
|||
} |
|||
}) |
|||
}, |
|||
goToOrderDetail(item) { |
|||
uni.navigateTo({ |
|||
url: '/subPackages/order/detail?id=' + item.order_id |
|||
}); |
|||
}, |
|||
getChild(list) { |
|||
let arr = [] |
|||
for (let i = 0; i < list.length; i++) { |
|||
if (list[i].product_model == "ticket") { |
|||
console.log(list[i]); |
|||
arr.push(list[i]) |
|||
break |
|||
} |
|||
} |
|||
console.log(arr); |
|||
if (arr.length > 0) { |
|||
return arr[0] |
|||
} else { |
|||
return list[0] |
|||
} |
|||
|
|||
}, |
|||
goCoupon() { |
|||
uni.navigateTo({ |
|||
url: "/subPackages/user/coupon", |
|||
}); |
|||
}, |
|||
goKeFu() { |
|||
uni.navigateTo({ |
|||
url: "/subPackages/publicservices/ServiceOnline", |
|||
}); |
|||
}, |
|||
// open(){ |
|||
// this.$refs.popup.open('center') |
|||
// }, |
|||
gotoUrl(item, index) { |
|||
if (item.title == "旅游咨询") { |
|||
this.$refs.popup.open() |
|||
return; |
|||
} |
|||
uni.navigateTo({ |
|||
url: item.path |
|||
}) |
|||
}, |
|||
qidai() { |
|||
uni.showToast({ |
|||
title: '功能建设中...', |
|||
icon: 'none' |
|||
}) |
|||
}, |
|||
goTrades(item) { |
|||
if (item) { |
|||
uni.navigateTo({ |
|||
url: "/subPackages/order/trades?type=" + item.title, |
|||
}); |
|||
} else { |
|||
uni.navigateTo({ |
|||
url: "/subPackages/order/trades", |
|||
}); |
|||
} |
|||
}, |
|||
//判断是否关注公众号 |
|||
isGz(item) { |
|||
this.$refs.pop.openPop( |
|||
'https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20230517/db9eb60e0abfea8be1075b406fefe551.jpg'); |
|||
// this.Post({}, '/api/wechat/getSubcribeInfo').then(res => { |
|||
// if (res.data) { |
|||
// uni.navigateTo({ |
|||
// url:'/subPackages/webPage/webPage?url='+'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU2NjQwNTYxNg==#wechat_redirect' |
|||
// }) |
|||
// } else { |
|||
// console.log(this.$refs.pop); |
|||
// } |
|||
// }); |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
<style scoped lang="scss"> |
|||
view{ |
|||
box-sizing: border-box; |
|||
} |
|||
/deep/.uni-countdown { |
|||
font-size: 20px !important; |
|||
|
|||
/deep/.uni-countdown__splitor { |
|||
font-size: 20px !important; |
|||
} |
|||
} |
|||
|
|||
.bg { |
|||
min-height: 100vh; |
|||
overflow-x: hidden; |
|||
background: url('https://static.ticket.sz-trip.com/yandu/images/user/topBg.png') no-repeat; |
|||
background-size: 100%; |
|||
background-color: #F7F7F7; |
|||
padding-bottom: 100rpx; |
|||
} |
|||
|
|||
.title { |
|||
font-weight: bold; |
|||
font-size: 36rpx; |
|||
color: #333333; |
|||
position: absolute; |
|||
top: 110rpx; |
|||
left: 50%; |
|||
transform: translate(-50%, 0); |
|||
} |
|||
|
|||
.topBox { |
|||
width: 750rpx; |
|||
height: 373rpx; |
|||
padding: 100rpx 0 0 26rpx; |
|||
box-sizing: border-box; |
|||
display: flex; |
|||
margin-top: 90rpx; |
|||
|
|||
.avatar-box { |
|||
width: 120rpx; |
|||
height: 120rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 50%; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.headImg { |
|||
width: 60rpx; |
|||
height: 60rpx; |
|||
border-radius: 50%; |
|||
} |
|||
|
|||
.username { |
|||
margin: 40rpx 0 0 28rpx; |
|||
font-weight: 500; |
|||
font-size: 40rpx; |
|||
color: #000000; |
|||
} |
|||
} |
|||
|
|||
.orderBox { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0rpx 0rpx 23rpx 0rpx rgba(80, 80, 80, 0.12); |
|||
border-radius: 20rpx; |
|||
margin: -48rpx auto 0; |
|||
padding-bottom: 30.6rpx; |
|||
|
|||
.moreBox { |
|||
height: 84rpx; |
|||
margin: auto; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
padding-left: 26rpx; |
|||
|
|||
span { |
|||
width: 173rpx; |
|||
height: 40rpx; |
|||
background: #D6F2F0; |
|||
border-radius: 20rpx 0rpx 0rpx 20rpx; |
|||
padding: 0 24rpx; |
|||
font-size: 25rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #00AEA0; |
|||
box-sizing: border-box; |
|||
|
|||
img { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.orderItem { |
|||
font-size: 24rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
width: 20%; |
|||
text-align: center; |
|||
|
|||
img { |
|||
width: 62rpx; |
|||
height: 62rpx; |
|||
margin-bottom: 10rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.lxwm { |
|||
width: 696rpx; |
|||
height: 447rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0px 4rpx 12rpx 0px rgba(150, 149, 149, 0.3); |
|||
border-radius: 20rpx; |
|||
margin: auto; |
|||
padding: 27rpx 19rpx 0 19rpx; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
|
|||
.midBox { |
|||
padding: 26rpx 43rpx 21rpx 44rpx; |
|||
box-sizing: border-box; |
|||
|
|||
img { |
|||
width: 265rpx; |
|||
height: 252rpx; |
|||
border-radius: 15rpx; |
|||
} |
|||
} |
|||
|
|||
.botBox { |
|||
padding: 0 30rpx 0 51rpx; |
|||
font-size: 27rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
} |
|||
} |
|||
|
|||
.cygj { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 20rpx; |
|||
margin: 30rpx auto 0; |
|||
padding: 0 27rpx; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
box-sizing: border-box; |
|||
|
|||
.cyItem { |
|||
height: 106rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
|
|||
.headIcon { |
|||
width: 42rpx; |
|||
height: 42rpx; |
|||
margin-right: 15rpx; |
|||
} |
|||
|
|||
.rightIcon { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.cyItem:last-child { |
|||
border: none; |
|||
} |
|||
} |
|||
|
|||
.my-swipe { |
|||
// width: 100%; |
|||
margin: 0 30rpx; |
|||
margin-top: 37.3rpx; |
|||
} |
|||
|
|||
swiper { |
|||
height: 111rpx !important; |
|||
} |
|||
|
|||
.dfkBox { |
|||
width: 100%; |
|||
height: 111rpx; |
|||
background: #F7F7F7; |
|||
margin: 0 auto 30.64rpx; |
|||
// padding: 0.25rem; |
|||
display: flex; |
|||
} |
|||
|
|||
.dfkBox image { |
|||
width: 137rpx; |
|||
height: 111rpx; |
|||
border-radius: 13rpx; |
|||
flex-shrink: 0; |
|||
// margin-right: 16.7rpx; |
|||
} |
|||
|
|||
.dfkBox .contentBox { |
|||
padding-left: 5rpx; |
|||
padding-right: 5rpx; |
|||
height: 111rpx; |
|||
width: 100%; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
} |
|||
|
|||
// .van-count-down{ |
|||
// font-size: 0.39rem; |
|||
// font-family: PingFang SC; |
|||
// font-weight: 400; |
|||
// color: #FB6E4D; |
|||
// } |
|||
|
|||
.orderBtn { |
|||
width: 152rpx; |
|||
height: 56rpx; |
|||
background: linear-gradient(270deg, #FC5109, #FDC43A); |
|||
; |
|||
border-radius: 28rpx; |
|||
text-align: center; |
|||
line-height: 56rpx; |
|||
font-size: 27rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 400; |
|||
color: #FFFFFF; |
|||
// margin-left: 50rpx; |
|||
// margin-right: 20rpx; |
|||
} |
|||
|
|||
#contact { |
|||
-webkit-tap-highlight-color: transparent; |
|||
background-color: rgba(0, 0, 0, 0); |
|||
border-radius: 0; |
|||
box-sizing: border-box; |
|||
color: transparent; |
|||
cursor: pointer; |
|||
overflow: hidden; |
|||
padding: 0 27rpx; |
|||
position: relative; |
|||
text-align: center; |
|||
text-decoration: none; |
|||
border: transparent 0px solid; |
|||
display: flex; |
|||
align-items: center; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
} |
|||
|
|||
button::after { |
|||
border: none; |
|||
background-color: rgba(0, 0, 0, 0); |
|||
} |
|||
|
|||
.more { |
|||
width: 100vw; |
|||
height: 100vh; |
|||
background-color: rgba(0, 0, 0, .5); |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
|
|||
image { |
|||
width: 646rpx; |
|||
height: 959rpx; |
|||
} |
|||
|
|||
img { |
|||
width: 80rpx; |
|||
height: 80rpx; |
|||
} |
|||
} |
|||
|
|||
.consult-popup { |
|||
width: 487rpx; |
|||
height: 367rpx; |
|||
background: #F0F0F0; |
|||
border-radius: 20rpx; |
|||
padding: 65rpx 0 23rpx; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #000000; |
|||
text-align: center; |
|||
|
|||
.consult-subtitle { |
|||
font-weight: 500; |
|||
font-size: 27rpx; |
|||
color: #333333; |
|||
margin-top: 43rpx; |
|||
} |
|||
|
|||
.consult-btns { |
|||
display: flex; |
|||
margin-top: 75rpx; |
|||
|
|||
view { |
|||
width: 50%; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #00AEA0; |
|||
line-height: 54rpx; |
|||
} |
|||
view:first-child { |
|||
border-right: 1rpx solid #D8D8D8; |
|||
color: #000000; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.confirm{ |
|||
height: 58rpx; |
|||
line-height: 58rpx; |
|||
background: none; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #00AEA0; |
|||
} |
|||
</style> |
@ -0,0 +1,196 @@ |
|||
function getLocalFilePath(path) { |
|||
if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('file://') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('/storage/emulated/0/') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('/') === 0) { |
|||
var localFilePath = plus.io.convertAbsoluteFileSystem(path) |
|||
if (localFilePath !== path) { |
|||
return localFilePath |
|||
} else { |
|||
path = path.substr(1) |
|||
} |
|||
} |
|||
return '_www/' + path |
|||
} |
|||
|
|||
function dataUrlToBase64(str) { |
|||
var array = str.split(',') |
|||
return array[array.length - 1] |
|||
} |
|||
|
|||
var index = 0 |
|||
function getNewFileId() { |
|||
return Date.now() + String(index++) |
|||
} |
|||
|
|||
function biggerThan(v1, v2) { |
|||
var v1Array = v1.split('.') |
|||
var v2Array = v2.split('.') |
|||
var update = false |
|||
for (var index = 0; index < v2Array.length; index++) { |
|||
var diff = v1Array[index] - v2Array[index] |
|||
if (diff !== 0) { |
|||
update = diff > 0 |
|||
break |
|||
} |
|||
} |
|||
return update |
|||
} |
|||
|
|||
export function pathToBase64(path) { |
|||
return new Promise(function(resolve, reject) { |
|||
if (typeof window === 'object' && 'document' in window) { |
|||
if (typeof FileReader === 'function') { |
|||
var xhr = new XMLHttpRequest() |
|||
xhr.open('GET', path, true) |
|||
xhr.responseType = 'blob' |
|||
xhr.onload = function() { |
|||
if (this.status === 200) { |
|||
let fileReader = new FileReader() |
|||
fileReader.onload = function(e) { |
|||
resolve(e.target.result) |
|||
} |
|||
fileReader.onerror = reject |
|||
fileReader.readAsDataURL(this.response) |
|||
} |
|||
} |
|||
xhr.onerror = reject |
|||
xhr.send() |
|||
return |
|||
} |
|||
var canvas = document.createElement('canvas') |
|||
var c2x = canvas.getContext('2d') |
|||
var img = new Image |
|||
img.onload = function() { |
|||
canvas.width = img.width |
|||
canvas.height = img.height |
|||
c2x.drawImage(img, 0, 0) |
|||
resolve(canvas.toDataURL()) |
|||
canvas.height = canvas.width = 0 |
|||
} |
|||
img.onerror = reject |
|||
img.src = path |
|||
return |
|||
} |
|||
if (typeof plus === 'object') { |
|||
plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) { |
|||
entry.file(function(file) { |
|||
var fileReader = new plus.io.FileReader() |
|||
fileReader.onload = function(data) { |
|||
resolve(data.target.result) |
|||
} |
|||
fileReader.onerror = function(error) { |
|||
reject(error) |
|||
} |
|||
fileReader.readAsDataURL(file) |
|||
}, function(error) { |
|||
reject(error) |
|||
}) |
|||
}, function(error) { |
|||
reject(error) |
|||
}) |
|||
return |
|||
} |
|||
if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { |
|||
wx.getFileSystemManager().readFile({ |
|||
filePath: path, |
|||
encoding: 'base64', |
|||
success: function(res) { |
|||
resolve('data:image/png;base64,' + res.data) |
|||
}, |
|||
fail: function(error) { |
|||
reject(error) |
|||
} |
|||
}) |
|||
return |
|||
} |
|||
reject(new Error('not support')) |
|||
}) |
|||
} |
|||
|
|||
export function base64ToPath(base64) { |
|||
return new Promise(function(resolve, reject) { |
|||
if (typeof window === 'object' && 'document' in window) { |
|||
base64 = base64.split(',') |
|||
var type = base64[0].match(/:(.*?);/)[1] |
|||
var str = atob(base64[1]) |
|||
var n = str.length |
|||
var array = new Uint8Array(n) |
|||
while (n--) { |
|||
array[n] = str.charCodeAt(n) |
|||
} |
|||
return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type }))) |
|||
} |
|||
var extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/) |
|||
if (extName) { |
|||
extName = extName[1] |
|||
} else { |
|||
reject(new Error('base64 error')) |
|||
} |
|||
var fileName = getNewFileId() + '.' + extName |
|||
if (typeof plus === 'object') { |
|||
var basePath = '_doc' |
|||
var dirPath = 'uniapp_temp' |
|||
var filePath = basePath + '/' + dirPath + '/' + fileName |
|||
if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime.innerVersion)) { |
|||
plus.io.resolveLocalFileSystemURL(basePath, function(entry) { |
|||
entry.getDirectory(dirPath, { |
|||
create: true, |
|||
exclusive: false, |
|||
}, function(entry) { |
|||
entry.getFile(fileName, { |
|||
create: true, |
|||
exclusive: false, |
|||
}, function(entry) { |
|||
entry.createWriter(function(writer) { |
|||
writer.onwrite = function() { |
|||
resolve(filePath) |
|||
} |
|||
writer.onerror = reject |
|||
writer.seek(0) |
|||
writer.writeAsBinary(dataUrlToBase64(base64)) |
|||
}, reject) |
|||
}, reject) |
|||
}, reject) |
|||
}, reject) |
|||
return |
|||
} |
|||
var bitmap = new plus.nativeObj.Bitmap(fileName) |
|||
bitmap.loadBase64Data(base64, function() { |
|||
bitmap.save(filePath, {}, function() { |
|||
bitmap.clear() |
|||
resolve(filePath) |
|||
}, function(error) { |
|||
bitmap.clear() |
|||
reject(error) |
|||
}) |
|||
}, function(error) { |
|||
bitmap.clear() |
|||
reject(error) |
|||
}) |
|||
return |
|||
} |
|||
if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { |
|||
var filePath = wx.env.USER_DATA_PATH + '/' + fileName |
|||
wx.getFileSystemManager().writeFile({ |
|||
filePath: filePath, |
|||
data: dataUrlToBase64(base64), |
|||
encoding: 'base64', |
|||
success: function() { |
|||
resolve(filePath) |
|||
}, |
|||
fail: function(error) { |
|||
reject(error) |
|||
} |
|||
}) |
|||
return |
|||
} |
|||
reject(new Error('not support')) |
|||
}) |
|||
} |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"id": "mmmm-image-tools", |
|||
"name": "image-tools", |
|||
"version": "1.4.0", |
|||
"description": "图像转换工具,可用于图像和base64的转换", |
|||
"keywords": [ |
|||
"base64", |
|||
"保存", |
|||
"图像" |
|||
] |
|||
} |
@ -0,0 +1,186 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="line-list"> |
|||
<view class="form"> |
|||
<view class="form-item"> |
|||
<view class="form-title"> |
|||
姓名: |
|||
</view> |
|||
<input type="text" v-model="form.name" placeholder="请填写您的姓名" |
|||
placeholder-style="color:#999999;font-size:31rpx"> |
|||
</view> |
|||
<view class="form-item"> |
|||
<view class="form-title"> |
|||
手机号: |
|||
</view> |
|||
<input type="number" v-model="form.phone" placeholder="请填写您的联系方式" maxlength="11" |
|||
placeholder-style="color:#999999;font-size:31rpx"> |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="content-name"> |
|||
反馈内容: |
|||
</view> |
|||
<textarea cols="30" rows="10" v-model="form.content" placeholder="请填写具体的问题内容" |
|||
placeholder-style="color: #999999;font-size: 31rpx;" maxlength="500"> |
|||
|
|||
</textarea> |
|||
<span>{{form.content.length}}/500</span> |
|||
</view> |
|||
</view> |
|||
|
|||
<view :class="['btn',{'actBtn':form.name&&form.phone&&form.content}]" @click="sendForm()"> |
|||
提交 |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
form: { |
|||
name: '', |
|||
phone: '', |
|||
content: '', |
|||
}, |
|||
}; |
|||
}, |
|||
onLoad() { |
|||
|
|||
}, |
|||
methods: { |
|||
sendForm() { |
|||
if (!this.idChinaName(this.form.name)) { |
|||
uni.showToast({ |
|||
title: "请输入正确的姓名", |
|||
icon: "none" |
|||
}) |
|||
return false |
|||
} |
|||
if (!this.IsTel(this.form.phone)) { |
|||
uni.showToast({ |
|||
title: "请输入正确的手机号", |
|||
icon: "none" |
|||
}) |
|||
return false |
|||
} |
|||
if (this.form.content.replace(/\s*/g, "").length < 15) { |
|||
uni.showToast({ |
|||
title: "请输入15字以上的建议或反馈", |
|||
icon: "none" |
|||
}) |
|||
return false |
|||
} |
|||
this.Post({ |
|||
username: this.form.name, |
|||
mobile: this.form.phone, |
|||
content: this.form.content |
|||
}, "/api/suggest/add").then(res => { |
|||
if (res) { |
|||
uni.showToast({ |
|||
title: res.msg, |
|||
icon: "none" |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
view { |
|||
box-sizing: border-box; |
|||
font-family: PingFang SC; |
|||
} |
|||
|
|||
.bg { |
|||
min-height: 100vh; |
|||
background-color: rgba(255, 255, 255, 1); |
|||
padding-top: 35rpx; |
|||
overflow: hidden; |
|||
padding-bottom: 160rpx; |
|||
} |
|||
|
|||
.line-list { |
|||
width: 697rpx; |
|||
margin: 0 auto; |
|||
|
|||
.form { |
|||
.form-item { |
|||
width: 697rpx; |
|||
height: 120rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
border-bottom: #D8D8D8 solid 1rpx; |
|||
|
|||
.form-title { |
|||
width: 150rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
|
|||
|
|||
} |
|||
} |
|||
|
|||
.content { |
|||
margin: 0 auto; |
|||
margin-top: 36rpx; |
|||
width: 697rpx; |
|||
position: relative; |
|||
|
|||
span { |
|||
font-weight: 400; |
|||
font-size: 24rpx; |
|||
color: #999999; |
|||
position: absolute; |
|||
right: 22rpx; |
|||
bottom: 14rpx; |
|||
} |
|||
|
|||
.content-name { |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
|
|||
textarea { |
|||
width: 657rpx; |
|||
height: 243rpx; |
|||
background: #F7F7F7; |
|||
border-radius: 13rpx; |
|||
padding: 20rpx; |
|||
margin-top: 42rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
padding-bottom: 45rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.btn { |
|||
width: 697rpx; |
|||
height: 80rpx; |
|||
background: #CCCCCC; |
|||
border-radius: 40rpx; |
|||
margin: 0 auto; |
|||
margin-top: 160rpx; |
|||
text-align: center; |
|||
line-height: 80rpx; |
|||
font-size: 36rpx; |
|||
font-weight: 500; |
|||
color: #FFFFFF; |
|||
position: absolute; |
|||
left: 26.5rpx; |
|||
bottom: 46rpx; |
|||
|
|||
} |
|||
|
|||
.actBtn { |
|||
background: #00AEA0; |
|||
} |
|||
</style> |
@ -0,0 +1,164 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="input-box"> |
|||
<span>手机号:</span> |
|||
<input type="number" v-model="mobile" placeholder="请输入新手机号" maxlength="11" /> |
|||
</view> |
|||
<view class="input-box"> |
|||
<span>验证码:</span> |
|||
<input type="number" v-model="code" placeholder="请输入短信验证码" maxlength="6" /> |
|||
<view class="btn" @click="getCode">{{text}}</view> |
|||
</view> |
|||
<view class="btn bottom-btn" @click="save">保存</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "BindTel", |
|||
data: function() { |
|||
return { |
|||
mobile: '', |
|||
code: '', |
|||
sendFlag: true, |
|||
timer: null, |
|||
text: "获取验证码" |
|||
} |
|||
}, |
|||
mounted: function() { |
|||
// this.wxShare(); |
|||
}, |
|||
methods: { |
|||
save: function() { |
|||
if (!this.mobile || !this.IsTel(this.mobile)) { |
|||
uni.showToast({ |
|||
title: "请输入正确的手机号码", |
|||
icon: 'none' |
|||
}) |
|||
return; |
|||
} |
|||
if (!this.code) { |
|||
uni.showToast({ |
|||
title: "请输入验证码", |
|||
icon: 'none' |
|||
}) |
|||
return; |
|||
} |
|||
this.Post({ |
|||
code: this.code, |
|||
mobile: this.mobile |
|||
}, '/api/user/bindMobileCode').then(res => { |
|||
if (res.code == 1) { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '保存成功!', |
|||
success: res => { |
|||
if (res.confirm) { |
|||
this.goBack() |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
}).catch(err => { |
|||
console.log('err:', err) |
|||
}) |
|||
}, |
|||
getCode: function() { |
|||
if (!this.sendFlag) return; |
|||
if (!this.mobile || !this.IsTel(this.mobile)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的手机号码', |
|||
icon: 'none' |
|||
}) |
|||
return; |
|||
} |
|||
this.sendFlag = false; |
|||
this.Post({ |
|||
mobile: this.mobile |
|||
}, '/api/user/bindMobileSendMsm').then(res => { |
|||
if (res.code == 1) { |
|||
// 发送成功 |
|||
this.text = "发送成功"; |
|||
let time = 60; |
|||
// 需要倒计时 |
|||
this.timer = setInterval(() => { |
|||
time--; |
|||
this.text = time + "s后重新获取"; |
|||
if (time == 0) { |
|||
clearInterval(this.timer); |
|||
this.timer = null; |
|||
this.text = "重新发送"; |
|||
this.sendFlag = true; |
|||
} |
|||
}, 1000); |
|||
} else { |
|||
this.text = "重新发送"; |
|||
this.sendFlag = true; |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.bg { |
|||
min-height: 100vh; |
|||
text-align: center; |
|||
} |
|||
|
|||
.input-box { |
|||
font-size: 32rpx; |
|||
margin: 0 30rpx; |
|||
height: 124rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
border-bottom: 1rpx solid #CECECE; |
|||
} |
|||
|
|||
.input-box span { |
|||
margin-right: 20rpx; |
|||
flex-shrink: 0; |
|||
white-space: normal; |
|||
} |
|||
|
|||
.input-box input { |
|||
flex: 1; |
|||
display: block; |
|||
width: 100%; |
|||
font-size: 32rpx; |
|||
margin-right: 10rpx; |
|||
min-width: 100rpx; |
|||
text-align: left; |
|||
} |
|||
|
|||
.btn { |
|||
color: black; |
|||
width: 200rpx; |
|||
height: 53rpx; |
|||
line-height: 53rpx; |
|||
background: rgba(127, 212, 145, 1); |
|||
border-radius: 27rpx; |
|||
color: #FFFFFF; |
|||
} |
|||
|
|||
.input-box .btn { |
|||
padding: 0 10rpx; |
|||
font-size: 26rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
|
|||
.bottom-btn { |
|||
color: black; |
|||
margin: 50rpx auto; |
|||
line-height: 80rpx; |
|||
position: relative; |
|||
font-size: 34rpx; |
|||
text-align: center; |
|||
width: 333rpx; |
|||
height: 80rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 40rpx; |
|||
color: #FFFFFF; |
|||
} |
|||
</style> |
@ -0,0 +1,87 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="nickname-box"> |
|||
<span>姓名:</span> |
|||
<input v-model="nickname" type="text" placeholder="请输入您的姓名" /> |
|||
</view> |
|||
<view class="btn" @click="save">保存修改</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "changeNickname", |
|||
data: function() { |
|||
return { |
|||
nickname: "" |
|||
} |
|||
}, |
|||
methods: { |
|||
save: function() { |
|||
if (!this.nickname) { |
|||
uni.showToast({ |
|||
title: '请输入昵称', |
|||
icon: 'none' |
|||
}) |
|||
return; |
|||
} |
|||
this.Post({ |
|||
nickname: this.nickname |
|||
}, '/api/user/profile').then(res => { |
|||
console.log(res) |
|||
if (res.code == 1) { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '保存成功!', |
|||
success: res => { |
|||
if (res.confirm) { |
|||
this.goBack() |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.bg { |
|||
min-height: 100vh; |
|||
} |
|||
|
|||
.nickname-box { |
|||
display: flex; |
|||
padding: 10rpx 30rpx; |
|||
align-items: center; |
|||
background: white; |
|||
margin-bottom: 100rpx; |
|||
font-size: 30rpx; |
|||
height: 70rpx; |
|||
} |
|||
|
|||
.nickname-box span { |
|||
flex-shrink: 0; |
|||
} |
|||
|
|||
.nickname-box input { |
|||
flex: 1; |
|||
font-size: 30rpx; |
|||
display: block; |
|||
} |
|||
|
|||
.btn { |
|||
color: black; |
|||
margin: 0 auto; |
|||
line-height: 80rpx; |
|||
position: relative; |
|||
font-size: 34rpx; |
|||
text-align: center; |
|||
width: 333rpx; |
|||
height: 80rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 40rpx; |
|||
color: #FFFFFF; |
|||
} |
|||
</style> |
@ -0,0 +1,126 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view v-for="(item,index) in list" :key="index" class="item" @click="gotoDetail(item)"> |
|||
<image :src="showImg(item.arr.image)" mode="aspectFill"></image> |
|||
<view class="content flex-column"> |
|||
<view class="title text-overflowRows">{{item.arr.title}}</view> |
|||
<view class="price" v-if="item.arr.low_money || item.arr.price">{{(item.arr.low_money || item.arr.price) / 100}}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
list: [] |
|||
} |
|||
}, |
|||
onShow() { |
|||
this.getList() |
|||
}, |
|||
methods: { |
|||
getList() { |
|||
this.Post({ |
|||
offset: 0, |
|||
limit: 100 |
|||
},'/api/scenic/getCollectList').then(res => { |
|||
this.list = res.data |
|||
}) |
|||
}, |
|||
// 通过type跳转详情 |
|||
gotoDetail(item) { |
|||
let res = this.goOtherDetail(item.arr) |
|||
if (res) { |
|||
return |
|||
} |
|||
// 1文章 2景点 3商品美食 4酒店 5商品文创 6商品线路 7活动 |
|||
let url = '' |
|||
switch (item.type){ |
|||
case 1: |
|||
url= '/subPackages/travelGuide/detail?id=' + item.arr.id |
|||
break; |
|||
case 2: |
|||
url= '/subPackages/ticketBooking/detail?id=' + item.arr.id |
|||
break; |
|||
case 3: |
|||
url= '/subPackages/food/foodDetail?id=' + item.arr.id |
|||
break; |
|||
case 4: |
|||
url= '/subPackages/hotelHomestay/detail?id=' + item.arr.id |
|||
break; |
|||
case 5: |
|||
url= '/subPackages/techan/detail?id=' + item.arr.id |
|||
break; |
|||
case 6: |
|||
url= '' |
|||
break; |
|||
case 7: |
|||
url= '/subPackages/eventCalendar/detail?id=' + item.arr.id |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
this.gotoPath(url) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.bg { |
|||
min-height: 100vh; |
|||
padding: 20rpx auto 100rpx; |
|||
background: #F7F7F7; |
|||
} |
|||
|
|||
.item { |
|||
width: 697rpx; |
|||
height: 213rpx; |
|||
padding: 6rpx 20rpx 6rpx 6rpx; |
|||
border-radius: 20rpx; |
|||
display: flex; |
|||
margin: 0 auto 20rpx; |
|||
background: #FFFFFF; |
|||
|
|||
image { |
|||
width: 200rpx; |
|||
height: 200rpx; |
|||
background: #DFEDE0; |
|||
border-radius: 13rpx; |
|||
} |
|||
|
|||
.content { |
|||
flex: 1; |
|||
margin-left: 15rpx; |
|||
padding: 10rpx 0; |
|||
height: 200rpx; |
|||
justify-content: space-between; |
|||
|
|||
.title { |
|||
font-weight: bold; |
|||
font-size: 31rpx; |
|||
color: #333333; |
|||
} |
|||
|
|||
.price { |
|||
font-weight: bold; |
|||
font-size: 40rpx; |
|||
color: #FF3D3D; |
|||
text-align: right; |
|||
} |
|||
.price::before { |
|||
content: '¥'; |
|||
font-size: 31rpx; |
|||
color: #FF3D3D; |
|||
} |
|||
.price::after { |
|||
content: '起'; |
|||
font-weight: 500; |
|||
font-size: 27rpx; |
|||
color: #999999; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,494 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<!-- 导航栏 --> |
|||
<view class="nav-list"> |
|||
<view :class="['nav-item',{active:index==navActive}]" v-for="(item,index) in navList" :key="index" |
|||
@click="changeNav(index)">{{ item.name }} |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 列表 --> |
|||
<view class="coupon-list" v-if="coupon.length>0"> |
|||
<view :class="['coupon-item',{'hasUse':navActive!=0}]" v-for="(item, index) in coupon" :key="index"> |
|||
<!-- 分割线上部分 --> |
|||
<view class="item-top"> |
|||
<view class="top-left"> |
|||
<view class="price price-before" v-if="item.type == 1"> |
|||
<span>{{item.discounts/100}}</span> |
|||
</view> |
|||
<view class="price" v-else> |
|||
<span>{{getPecenet(item.percent)}}</span>折 |
|||
</view> |
|||
<view class="subtitle"> |
|||
满{{item.min_limit/100}}元可用 |
|||
</view> |
|||
</view> |
|||
<view class="top-right"> |
|||
<view class="title"> |
|||
{{item.title}} |
|||
</view> |
|||
<view class="time"> |
|||
{{item.open_time.slice(0,10)}}-{{item.end_time.slice(0,10)}}可用 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<!-- 分割线 --> |
|||
<view class="item-circle"> |
|||
<view class="circle left"></view> |
|||
<view class="line"></view> |
|||
<view class="circle right"></view> |
|||
</view> |
|||
<!-- 分割线下部分 --> |
|||
<view class="item-bottom"> |
|||
<view class="rules" @click="changeRules(item,index)"> |
|||
<span v-if="!item.openRules">使用规则:{{item.coupon_activity.note}}</span> |
|||
<view class="open" v-else>使用规则:{{item.coupon_activity.note}}</view> |
|||
<!-- <span v-if="!item.openRules">使用规则:{{item.content}}</span> |
|||
<view class="open" v-else>使用规则:{{item.content}}</view> --> |
|||
<image v-if="!item.openRules" src="https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20230415/6a7630c176f976bb16674dde482779fb.png" mode=""></image> |
|||
<image v-else src="https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20230415/f0073b18b3ab88cac62de60411360fc1.png" mode=""></image> |
|||
</view> |
|||
<!-- <view class="use" @click="use" v-if="navActive==0"> |
|||
去使用 |
|||
</view> |
|||
<view class="use" v-else> |
|||
已失效 |
|||
</view> --> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view v-else class="noCoupon"> |
|||
<img src="https://static.ticket.sz-trip.com/yandu/images/user/couponNo.png" class="no-couPon"> |
|||
<view>暂无优惠券</view> |
|||
</view> |
|||
|
|||
<!-- 兑换优惠券 --> |
|||
<!-- <view class="duihuan" @click="open"> |
|||
兑换优惠券 > |
|||
</view> --> |
|||
<!-- 弹框 --> |
|||
<uni-popup ref="popup" type="center"> |
|||
<view class="popupBox"> |
|||
<view class="name"> |
|||
兑换优惠券 |
|||
</view> |
|||
<input type="text" v-model="password" placeholder="请输入兑换码"> |
|||
<view class="btns"> |
|||
<view class="cancel" @click="cancel"> |
|||
取消 |
|||
</view> |
|||
<span></span> |
|||
<view class="sub" @click="submitPassword"> |
|||
兑换 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</uni-popup> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
navList: [ |
|||
{name: '可使用', id:"wait_use"}, |
|||
{name: '已失效', id:"past"}, |
|||
], |
|||
navActive:'', // 当前导航 |
|||
coupon:[], |
|||
// openRules: false, |
|||
password:'' |
|||
} |
|||
}, |
|||
onShow() { |
|||
this.getList(this.navList[0]) |
|||
}, |
|||
methods: { |
|||
getPecenet:function (percent) { |
|||
if(percent>=100 || percent<=0) return ""; |
|||
percent = 100 - percent; |
|||
if(percent%10==0){ |
|||
percent = percent/10; |
|||
} |
|||
return percent |
|||
}, |
|||
use() { |
|||
uni.switchTab({ |
|||
url: "/pages/index/index", |
|||
}); |
|||
}, |
|||
submitPassword() { |
|||
console.log('提交的兑换码',this.password); |
|||
let that = this |
|||
that.password = that.password.trim() |
|||
that.$refs.popup.close() |
|||
if (that.password== '') { |
|||
uni.showToast({ |
|||
title: '请输入优惠券领取卡号', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
that.Post({ |
|||
card_key: that.password |
|||
}, "/api/coupon/getCoupon").then((res) => { |
|||
console.log(res.code); |
|||
if (res.code == 200) { |
|||
that.coupon = [] |
|||
this.getList(this.navList[0]) |
|||
uni.showToast({ |
|||
title: '兑换成功', |
|||
icon: 'none' |
|||
}) |
|||
} else{ |
|||
uni.showToast({ |
|||
title: res.msg, |
|||
icon: 'none' |
|||
}) |
|||
} |
|||
}); |
|||
that.password = '' |
|||
}, |
|||
cancel() { |
|||
this.password = '' |
|||
this.$refs.popup.close() |
|||
}, |
|||
open() { |
|||
this.$refs.popup.open('center') |
|||
}, |
|||
// 打开使用规则 |
|||
changeRules(item,index){ |
|||
let list = this.coupon |
|||
list.forEach((Item, Index) => { |
|||
if (Index === index) { |
|||
Item.openRules = !Item.openRules |
|||
} else { |
|||
Item.openRules = false |
|||
} |
|||
}) |
|||
this.coupon = list |
|||
this.$forceUpdate() |
|||
}, |
|||
// 处理价格 |
|||
showNoPriceNew(price) { |
|||
if (price && price > 0) { |
|||
return (price / 100) |
|||
} else { |
|||
return '0' |
|||
} |
|||
}, |
|||
// 切换导航 |
|||
changeNav(index){ |
|||
this.navActive=index |
|||
this.getList(this.navList[this.navActive]) |
|||
}, |
|||
// 获取优惠券列表 |
|||
getList(item) { |
|||
let that = this |
|||
that.Post({ |
|||
status: item.id, |
|||
offset: 0, |
|||
limit: 100, |
|||
}, "/api/coupon/getUserCoupon").then((res) => { |
|||
if (res) { |
|||
console.log(res.data); |
|||
that.coupon = res.data |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.bg { |
|||
background: #F7F7F7; |
|||
min-height: 100vh; |
|||
} |
|||
|
|||
/*导航*/ |
|||
.nav-list { |
|||
width: 100%; |
|||
height: 107rpx; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
position: fixed; |
|||
background: #FFFFFF; |
|||
} |
|||
|
|||
.nav-list .nav-item { |
|||
text-align: center; |
|||
line-height: 106rpx; |
|||
box-sizing: border-box; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
padding: .23rpx 0; |
|||
color: #333333; |
|||
} |
|||
|
|||
.nav-list .nav-item.active { |
|||
color: #71B580; |
|||
border-bottom: 7rpx solid #71B580; |
|||
} |
|||
|
|||
.coupon-list{ |
|||
/* width: 100%; */ |
|||
position: absolute; |
|||
top: 115rpx; |
|||
padding: 0 26.67rpx; |
|||
background: #F7F7F7; |
|||
min-height: 100vh; |
|||
padding-bottom: 30rpx; |
|||
} |
|||
|
|||
.coupon-list .coupon-item { |
|||
background: #ffffff; |
|||
margin-top: 20rpx; |
|||
border-radius: 13rpx; |
|||
} |
|||
|
|||
.coupon-list .coupon-item .item-top { |
|||
display: flex; |
|||
padding: 30rpx 16rpx 24rpx 36rpx; |
|||
align-items: center; |
|||
} |
|||
|
|||
.coupon-item .item-top .price { |
|||
font-size: 25rpx; |
|||
font-weight: bold; |
|||
color: #FC5209; |
|||
display: flex; |
|||
align-items: baseline; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.coupon-item .item-top .price span { |
|||
font-size: 60rpx; |
|||
margin-right: 6.67rpx; |
|||
} |
|||
|
|||
.top-left .subtitle { |
|||
width: 100%; |
|||
font-size: 24rpx; |
|||
color: #FC5209; |
|||
padding-left: 6rpx; |
|||
overflow: hidden; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.top-left .price-before::before{ |
|||
content: '¥'; |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
.top-right { |
|||
margin-left: 46.67rpx; |
|||
font-size: 25rpx; |
|||
font-weight: 500; |
|||
color: #111; |
|||
} |
|||
|
|||
.top-right .title { |
|||
margin-bottom: 26rpx; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.coupon-list .coupon-item .item-circle { |
|||
/* position: relative; */ |
|||
line-height: 1rpx; |
|||
height: 1rpx; |
|||
width: 692rpx; |
|||
} |
|||
|
|||
.coupon-list .coupon-item .item-circle .line { |
|||
border-bottom: 1px dashed #ccc; |
|||
/* position: absolute; */ |
|||
top: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
right: 0; |
|||
/* width: calc(100% - 1rem); */ |
|||
height: .1rpx; |
|||
margin: auto; |
|||
z-index: 9; |
|||
} |
|||
|
|||
.coupon-list .coupon-item .item-circle .circle { |
|||
position: absolute; |
|||
top: 0; |
|||
bottom: 0; |
|||
margin: auto; |
|||
border-radius: 50%; |
|||
background: #ccc; |
|||
width: .46rpx; |
|||
height: .46rpx; |
|||
z-index: 10; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .circle.left{ |
|||
left:-.23rpx; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .circle.right{ |
|||
right: -.23rpx; |
|||
} |
|||
|
|||
.item-bottom { |
|||
padding: 16rpx 20rpx; |
|||
display: flex; |
|||
align-items: flex-start; |
|||
justify-content: space-between; |
|||
} |
|||
|
|||
.item-bottom .rules { |
|||
font-size: 24rpx; |
|||
font-weight: 500; |
|||
color: #999; |
|||
display: flex; |
|||
line-height: 47rpx; |
|||
} |
|||
|
|||
.item-bottom .rules span { |
|||
width: 569rpx; |
|||
overflow: hidden; //超出隐藏 |
|||
white-space: nowrap; //不折行 |
|||
text-overflow: ellipsis; |
|||
} |
|||
|
|||
.item-bottom .rules image { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
margin-left: 68rpx; |
|||
margin-top: 15rpx; |
|||
} |
|||
|
|||
.item-bottom .use { |
|||
width: 133rpx; |
|||
height: 47rpx; |
|||
border: 1px solid #FC5209; |
|||
border-radius: 23rpx; |
|||
text-align: center; |
|||
font-size: 25rpx; |
|||
font-weight: 500; |
|||
color: #fc5209; |
|||
line-height: 47rpx; |
|||
} |
|||
|
|||
.open { |
|||
width: 569rpx; |
|||
min-height: 30rpx; |
|||
flex-wrap: wrap; |
|||
} |
|||
|
|||
.duihuan { |
|||
width: 293rpx; |
|||
height: 67rpx; |
|||
background: #fff; |
|||
box-shadow: 0rpx 0rpx 7rpx 0rpx rgba(153,153,153,0.18); |
|||
border-radius: 33rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #07C49B; |
|||
text-align: center; |
|||
line-height: 67rpx; |
|||
margin-left: 228.67rpx; |
|||
position: fixed; |
|||
bottom: 52.67rpx; |
|||
} |
|||
.top-left { |
|||
width: 140rpx; |
|||
} |
|||
.top-left .price { |
|||
width: 100%; |
|||
/* overflow: hidden; */ |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.popupBox { |
|||
background: #fff; |
|||
border-radius: 20rpx; |
|||
padding: 40.67rpx 39.33rpx 35.33rpx 40rpx; |
|||
} |
|||
|
|||
.popupBox .name { |
|||
font-size: 35rpx; |
|||
color: #111; |
|||
font-weight: bold; |
|||
margin-bottom: 57.33rpx; |
|||
text-align: center; |
|||
} |
|||
|
|||
.popupBox input { |
|||
width: 454rpx; |
|||
height: 81rpx; |
|||
border: 1px solid #D8D8D8; |
|||
border-radius: 7rpx; |
|||
font-size: 31rpx;font-weight: 500; |
|||
color: #999999; |
|||
line-height: 81rpx; |
|||
margin: 0 39.33rpx 72.67rpx 40rpx; |
|||
text-align: center; |
|||
} |
|||
|
|||
.popupBox .btns { |
|||
display: flex; |
|||
align-items: center; |
|||
font-size: 35rpx; |
|||
justify-content: space-around; |
|||
} |
|||
|
|||
.popupBox .btns .cancel { |
|||
color: #111; |
|||
} |
|||
|
|||
.popupBox .btns span { |
|||
width: 1rpx; |
|||
height: 53rpx; |
|||
background: #D8D8D8; |
|||
} |
|||
|
|||
.popupBox .btns .sub { |
|||
color: #07C49B; |
|||
} |
|||
|
|||
.hasUse { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-left .price{ |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-left .subtitle{ |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-right .title { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-right .time { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-bottom .use { |
|||
border: 1px solid #B3B3B3 !important; |
|||
color: #999999 !important; |
|||
} |
|||
|
|||
.noCoupon{ |
|||
padding-top: 524rpx; |
|||
text-align: center; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
|
|||
.no-couPon{ |
|||
width: 173rpx; |
|||
height: 173rpx; |
|||
margin-bottom: 15rpx; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,386 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="list-forms"> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">姓名:</view> |
|||
<view class="list-item-input"><input type="text" v-model="username" placeholder="请输入姓名" /></view> |
|||
</view> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">手机号:</view> |
|||
<view class="list-item-input"><input type="number" v-model="mobile" placeholder="请输入手机号" maxlength="11" |
|||
/></view> |
|||
</view> |
|||
<view class="list-item" style="position: relative;"> |
|||
<view class="list-item-title">选择地区:</view> |
|||
<view class="list-item-input3" style="flex: 1;"> |
|||
<picker mode="multiSelector" :range="newProvinceDataList" range-key="name" @change="changeArea" @columnchange="pickerColumnchange" |
|||
style="position: relative;z-index: 2;"> |
|||
<input type="text" readonly style="text-align: right;font-size: 35rpx;position: relative;z-index: -1;" |
|||
v-model="citySeld" disabled="true" placeholder="请选择地区"/> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">详细地址:</view> |
|||
<view class="list-item-input"><input type="text" v-model="detailAddr" placeholder="请输入详细地址" /></view> |
|||
</view> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">设为默认:</view> |
|||
<view class="list-item-switch"> |
|||
<switch :checked="idDefault" @change="switchChange" color="#7FD491"/> |
|||
</view> |
|||
</view> |
|||
<view class="list-item-btn"> |
|||
<view class="list-item-post" @click="postSave()">保存</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import District from 'ydui-district/dist/jd_province_city_area_id'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
username: '', |
|||
mobile: '', |
|||
citySeld: '', |
|||
detailAddr: '', |
|||
idDefault: false, |
|||
title: '新增收货地址', |
|||
show: false, |
|||
district: District, //数据 |
|||
ready: false, |
|||
province: null, |
|||
city: null, |
|||
area: '', |
|||
provinceId: null, |
|||
cityId: null, |
|||
areaId: null, |
|||
columns: [], |
|||
id: '', |
|||
newProvinceDataList:[ |
|||
[],[],[] |
|||
], |
|||
multiIndex: [0, 0, 0], |
|||
} |
|||
}, |
|||
onLoad(option){ |
|||
this.id = option.id |
|||
if (option.id > 0) { |
|||
this.title = '编辑收货地址' |
|||
this.getDetail() |
|||
} |
|||
else { |
|||
this.getSeldCityList() |
|||
} |
|||
}, |
|||
methods: { |
|||
switchChange(e){ |
|||
this.idDefault = e.detail.value |
|||
}, |
|||
changeArea(e){ |
|||
// 数组内的下标 |
|||
this.multiIndex = e.detail.value; |
|||
this.citySeld = this.newProvinceDataList[0][this.multiIndex[0]].name + this.newProvinceDataList[1][this.multiIndex[1]].name + this.newProvinceDataList[2][this.multiIndex[2]].name |
|||
this.provinceId = this.newProvinceDataList[0][this.multiIndex[0]].id |
|||
this.cityId = this.newProvinceDataList[1][this.multiIndex[1]].id |
|||
this.areaId = this.newProvinceDataList[2][this.multiIndex[2]].id |
|||
}, |
|||
getSeldCityList() { |
|||
let that = this |
|||
that.Post({}, '/api/areas/getAll').then(res => { |
|||
if (res.code === 1) { |
|||
var data = res.data; |
|||
var result = {}; |
|||
for (var i = 0; i < data.length; i++) { |
|||
var item = data[i]; |
|||
if (item.parent_id == 0) { |
|||
continue; |
|||
} |
|||
//获取省 |
|||
if (item.parent_id == "1") { |
|||
result[item.id.toString()] = {}; |
|||
result[item.id.toString()].children = [] |
|||
result[item.id.toString()].name = item.name; |
|||
result[item.id.toString()].id = item.id; |
|||
} else if (result[item.parent_id.toString()]) { |
|||
//填充市 |
|||
var t = { |
|||
id: item.id, |
|||
name: item.name, |
|||
children: [] |
|||
} |
|||
result[item.parent_id.toString()].children.push(t) |
|||
} else { |
|||
//填充区 |
|||
var k = { |
|||
id: item.id, |
|||
name: item.name |
|||
} |
|||
for (var j = 0; j < result[item.parent_id.toString().substr(0, 2) + "0000"].children |
|||
.length; j++) { |
|||
if (result[item.parent_id.toString().substr(0, 2) + "0000"].children[j].id == item |
|||
.parent_id) { |
|||
result[item.parent_id.toString().substr(0, 2) + "0000"].children[j].children.push(k) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
var r = []; |
|||
//将Object转为Array |
|||
for (var i in result) { |
|||
r.push(result[i]); |
|||
} |
|||
//将数据赋值给省市区联动选择器 |
|||
that.district = r; |
|||
let arr = [] |
|||
let arr1 = [] |
|||
let arr2 = [] |
|||
that.district.forEach(item => { |
|||
arr.push(item) |
|||
}) |
|||
that.district[0].children.forEach(item => { |
|||
arr1.push(item) |
|||
}) |
|||
that.district[0].children[0].children.forEach(item => { |
|||
arr2.push(item) |
|||
}) |
|||
that.columns = arr |
|||
//控制异步数据 |
|||
that.ready = true; |
|||
console.log(this.columns) |
|||
for(let i=0; i<this.columns.length; i++){ |
|||
this.newProvinceDataList[0].push({name:this.columns[i].name,id:this.columns[i].id}); |
|||
} |
|||
console.log(this.columns[0].children) |
|||
for(let i=0; i<this.columns[0].children.length; i++){ |
|||
this.newProvinceDataList[1].push({name:this.columns[0].children[i].name,id:this.columns[0].children[i].id}); |
|||
} |
|||
for(let i=0; i<this.columns[0].children[0].children.length; i++){ |
|||
this.newProvinceDataList[2].push({name:this.columns[0].children[0].children[i].name,id:this.columns[0].children[0].children[i].id}); |
|||
} |
|||
} |
|||
}) |
|||
}, |
|||
// 滑动 |
|||
pickerColumnchange(e){ |
|||
// 第几列滑动 |
|||
// console.log(e.detail.column); |
|||
// 第几列滑动的下标 |
|||
// console.log(e.detail.value) |
|||
// 第一列滑动 |
|||
if(e.detail.column === 0){ |
|||
this.multiIndex[0] = e.detail.value |
|||
// console.log('第一列滑动'); |
|||
// this.newProvinceDataList[1] = []; |
|||
this.newProvinceDataList[1] = this.columns[this.multiIndex[0]].children.map((item,index)=>{ |
|||
// console.log(item) |
|||
return item |
|||
}) |
|||
// console.log(this.multiIndex) |
|||
if(this.columns[this.multiIndex[0]].children.length === 1){ |
|||
this.newProvinceDataList[2] = this.columns[this.multiIndex[0]].children[0].children.map((item,index)=>{ |
|||
// console.log(item) |
|||
return item |
|||
}) |
|||
}else{ |
|||
this.newProvinceDataList[2] = this.columns[this.multiIndex[0]].children[this.multiIndex[1]].children.map((item,index)=>{ |
|||
// console.log(item) |
|||
return item |
|||
}) |
|||
} |
|||
// 第一列滑动 第二列 和第三列 都变为第一个 |
|||
this.multiIndex.splice(1, 1, 0) |
|||
this.multiIndex.splice(2, 1, 0) |
|||
} |
|||
// 第二列滑动 |
|||
if(e.detail.column === 1){ |
|||
this.multiIndex[1] = e.detail.value |
|||
// console.log('第二列滑动'); |
|||
// console.log(this.multiIndex) |
|||
this.newProvinceDataList[2] = this.columns[this.multiIndex[0]].children[this.multiIndex[1]].children.map((item,index)=>{ |
|||
// console.log(item) |
|||
return item |
|||
}) |
|||
// 第二列 滑动 第三列 变成第一个 |
|||
this.multiIndex.splice(2, 1, 0) |
|||
} |
|||
// 第三列滑动 |
|||
if(e.detail.column === 2){ |
|||
this.multiIndex[2] = e.detail.value |
|||
// console.log('第三列滑动') |
|||
// console.log(this.multiIndex) |
|||
} |
|||
}, |
|||
getDetail() { |
|||
this.Post({ |
|||
id: this.id |
|||
}, "/api/user/contactDetail").then(res => { |
|||
res = res.data; |
|||
if (res && res.id > 0) { |
|||
this.username = res.name |
|||
this.mobile = res.tel |
|||
this.idDefault = res.is_default == 1 ? true : false |
|||
this.provinceId = res.province_id |
|||
this.cityId = res.city_id |
|||
this.areaId = res.district_id |
|||
this.citySeld = res.province_text + '' + res.city_text + '' + res.district_text |
|||
this.detailAddr = res.detail_addr; |
|||
this.getSeldCityList(); |
|||
} |
|||
}) |
|||
}, |
|||
postSave() { |
|||
this.username = this.username.trim() |
|||
this.mobile = this.mobile.trim() |
|||
this.detailAddr = this.detailAddr.trim() |
|||
if (this.username.length < 1) { |
|||
uni.showToast({ |
|||
title: '请输入姓名', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (this.username.length > 6) { |
|||
uni.showToast({ |
|||
title: '姓名最多6个字', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (!this.IsTel(this.mobile)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的手机号', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (this.citySeld.length < 1) { |
|||
uni.showToast({ |
|||
title: '请选择地区', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (this.detailAddr.length < 2) { |
|||
uni.showToast({ |
|||
title: '请输入具体地址', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
this.Post({ |
|||
name: this.username, |
|||
tel: this.mobile, |
|||
is_default: this.idDefault ? '1' : '0', |
|||
province_id: this.provinceId, |
|||
city_id: this.cityId, |
|||
district_id: this.areaId, |
|||
detail_addr: this.detailAddr, |
|||
id: this.id || null |
|||
},'/api/user/' + (this.id > 0 ? 'edit' : 'add') + 'Consignee').then(res => { |
|||
if(res.code == 1){ |
|||
uni.setStorageSync('addressNow',JSON.stringify(res.data)) |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: this.id>0?'编辑成功':'添加成功', |
|||
showCancel: false, |
|||
success: res => { |
|||
if(res.confirm){ |
|||
uni.navigateBack({}) |
|||
} |
|||
} |
|||
}) |
|||
}else{ |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: res.msg, |
|||
showCancel: false, |
|||
success: res => { |
|||
|
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.bg { |
|||
min-height: 100vh; |
|||
background-color: white; |
|||
display: flex; |
|||
flex-direction: column; |
|||
} |
|||
|
|||
.list-forms { |
|||
display: flex; |
|||
flex-direction: column; |
|||
border-top: 1rpx solid #D8D8D8; |
|||
padding: 20rpx 40rpx; |
|||
box-sizing: content-box |
|||
} |
|||
|
|||
.list-item { |
|||
display: flex; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 30rpx 0; |
|||
height: 60rpx; |
|||
align-items: center; |
|||
box-sizing: content-box |
|||
} |
|||
|
|||
.list-item-title { |
|||
width: 150rpx; |
|||
font-size: 31rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.list-item-input { |
|||
flex: 1; |
|||
} |
|||
|
|||
.list-item-input input { |
|||
width: 100%; |
|||
height: 100%; |
|||
padding: 0; |
|||
margin: 0; |
|||
border: 0; |
|||
background-color: transparent; |
|||
line-height: 34rpx; |
|||
font-size: 34rpx; |
|||
text-align: right; |
|||
} |
|||
|
|||
.list-item-input input::placeholder { |
|||
font-size: 26rpx; |
|||
} |
|||
|
|||
.list-item-switch { |
|||
display: flex; |
|||
flex: 1; |
|||
justify-content: flex-end; |
|||
} |
|||
|
|||
.list-item-btn { |
|||
display: flex; |
|||
justify-content: center; |
|||
margin-top: 20rpx; |
|||
} |
|||
|
|||
.list-item-post { |
|||
display: flex; |
|||
color: #000; |
|||
font-size: 36rpx; |
|||
width: 697rpx; |
|||
height: 73rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 37rpx; |
|||
justify-content: center; |
|||
align-items: center; |
|||
margin-top: 650rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,247 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="list-forms"> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">姓名:</view> |
|||
<view class="list-item-input"><input type="text" v-model="username" placeholder="请输入姓名" /></view> |
|||
</view> |
|||
<view class="list-item"> |
|||
<picker mode="selector" :range="idcardTypeList" range-key="title" @change="changeIdType"> |
|||
<view class="list-item-title flex-center" |
|||
style="border: 1rpx solid #999999;border-radius: 7rpx;padding: 18rpx 19rpx;">{{idcardTypeValue}} |
|||
<image src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" mode="" |
|||
style="width: 40rpx;height: 40rpx;margin-left: 48rpx;"></image> |
|||
</view> |
|||
</picker> |
|||
<view class="list-item-input"><input type="text" v-model="idNumber" placeholder="请输入正确的证件号" /></view> |
|||
</view> |
|||
<view class="list-item"> |
|||
<view class="list-item-title">手机号:</view> |
|||
<view class="list-item-input"><input type="number" v-model="mobile" placeholder="请输入手机号" |
|||
maxlength="11" /></view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="btn" @click="submit">保存</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
username: '', |
|||
mobile: '', |
|||
idNumber: '', |
|||
idcardTypeValue: '身份证', |
|||
show: false, |
|||
idcardTypeList: [], |
|||
document_type: 'DAM01001', |
|||
id: '', |
|||
type: '' |
|||
} |
|||
}, |
|||
onLoad(option) { |
|||
if (option) { |
|||
this.id = option.id |
|||
} |
|||
if(option && option.type){ |
|||
this.type = option.type |
|||
} |
|||
}, |
|||
onShow() { |
|||
this.getIdcardTypeList() |
|||
if (this.id) { |
|||
this.getDetail() |
|||
} |
|||
// uni.setNavigationBarTitle({ |
|||
// title: '' |
|||
// }) |
|||
var pages = getCurrentPages();//获取页面 |
|||
var beforePage = pages[pages.length - 2];//上个页面 |
|||
if(beforePage.route == 'subPackages/scenic/scenicOrder' || beforePage.route == 'subPackages/venue/venueOrder'){ |
|||
uni.setStorageSync('route', 1) |
|||
} |
|||
}, |
|||
methods: { |
|||
getDetail() { |
|||
this.Post({ |
|||
id: this.id |
|||
}, '/api/user/contactDetail').then(res => { |
|||
if (res.code === 1) { |
|||
res = res.data |
|||
if (res && res.id > 0) { |
|||
this.username = res.name |
|||
this.mobile = res.tel |
|||
this.idNumber = res.id_number |
|||
this.idDefault = res.is_default == 1 ? true : false |
|||
this.idcardType = res.idcard_type |
|||
this.idcardTypeValue = res.document_type_text |
|||
} |
|||
} |
|||
}) |
|||
}, |
|||
//获取证件类型 |
|||
getIdcardTypeList() { |
|||
this.Post({}, '/api/user/getIdcardTypeList').then(res => { |
|||
this.idcardTypeList = res.data |
|||
}) |
|||
}, |
|||
// 选择证件类型 |
|||
changeIdType(e) { |
|||
this.idcardTypeValue = this.idcardTypeList[e.detail.value].title |
|||
this.document_type = this.idcardTypeList[e.detail.value].document_type |
|||
}, |
|||
// 提交 |
|||
submit() { |
|||
this.username = this.username.trim() |
|||
this.mobile = this.mobile.trim() |
|||
this.idNumber = this.idNumber.trim() |
|||
if (this.username.length < 1) { |
|||
uni.showToast({ |
|||
title: '请输入姓名', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (!this.IsTel(this.mobile)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的手机号', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
if (this.idcardTypeValue == '身份证') { |
|||
if (!this.idCardNumber(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的身份证', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} else if (this.idcardTypeValue == '护照') { |
|||
if (!this.passportValid(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的护照', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} else if (this.idcardTypeValue == '台胞证') { |
|||
if (!this.taiwanValid(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的台胞证', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} else if (this.idcardTypeValue == '港澳通行证') { |
|||
if (!this.gangaoValid(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的港澳通行证', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} else if (this.idcardTypeValue == '外国人永久居留证') { |
|||
if (!this.foreignerValid(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的外国人永久居留证', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} else if (this.idcardTypeValue == '军官证') { |
|||
if (!this.officerValid(this.idNumber)) { |
|||
uni.showToast({ |
|||
title: '请输入正确的军官证', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} |
|||
this.Post({ |
|||
id: this.type == 'edit'?this.id:'', |
|||
id_number: this.idNumber, |
|||
name: this.username, |
|||
tel: this.mobile, |
|||
document_type: this.document_type |
|||
}, this.type=='edit'?'/api/user/editContact':'/api/user/addContact').then(res => { |
|||
if (res.code == 1) { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '成功', |
|||
showCancel: false, |
|||
success: res => { |
|||
if (res.confirm) { |
|||
uni.navigateBack({}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
.bg { |
|||
min-height: 100vh; |
|||
background-color: #FFFFFF; |
|||
position: relative; |
|||
} |
|||
|
|||
.list-forms { |
|||
padding: 0 33rpx; |
|||
|
|||
.list-item { |
|||
display: flex; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 30rpx 0; |
|||
height: 60rpx; |
|||
box-sizing: content-box; |
|||
|
|||
.list-item-title { |
|||
font-size: 34rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.list-item-input { |
|||
flex: 1; |
|||
|
|||
input { |
|||
width: 100%; |
|||
height: 100%; |
|||
padding: 0; |
|||
margin: 0; |
|||
border: 0; |
|||
background-color: transparent; |
|||
line-height: 34rpx; |
|||
font-size: 34rpx; |
|||
text-align: right; |
|||
} |
|||
|
|||
input::placeholder { |
|||
font-size: 26rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.btn { |
|||
width: 697rpx; |
|||
height: 80rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 40rpx; |
|||
text-align: center; |
|||
line-height: 80rpx; |
|||
font-size: 36rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: black; |
|||
position: absolute; |
|||
bottom: 53rpx; |
|||
left: 27rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,58 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="list"> |
|||
<view class="item" v-for="(item,index) in list" :key="item.id" @click="goInfo(item)"> |
|||
{{item.name}} |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
<script> |
|||
export default{ |
|||
data(){ |
|||
return { |
|||
list:[{name:'用户协议',id:'10001'},{name:'隐私协议',id:'9999'},{name:'个人信息收集清单',id:'9997'}], |
|||
} |
|||
}, |
|||
onShow() { |
|||
// this.Post({ |
|||
// id: 9999 |
|||
// },'/api/article/getArticleById').then(res => { |
|||
// this.content = res.data.content |
|||
// }) |
|||
}, |
|||
|
|||
methods:{ |
|||
goInfo(item){ |
|||
uni.navigateTo({ |
|||
url:'/subPackages/user/privacyInfo?id='+item.id |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
view{ |
|||
box-sizing: border-box; |
|||
} |
|||
.list{ |
|||
width: 698rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0px 4rpx 12rpx 0px rgba(150,149,149,0.3); |
|||
border-radius: 18rpx; |
|||
margin: 0 auto; |
|||
margin-top: 20rpx; |
|||
padding:0 20rpx ; |
|||
} |
|||
.item{ |
|||
width: 100%; |
|||
height: 93rpx; |
|||
border-bottom: 1rpx solid #EEEFF7; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
line-height: 93rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,30 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="text" v-html="formateRichText(content)"> |
|||
|
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
content:'' |
|||
}; |
|||
}, |
|||
onLoad(option){ |
|||
this.Post({ |
|||
id:option.id |
|||
},'/api/article/getArticleById').then(res => { |
|||
this.content = res.data.content |
|||
}) |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.text{ |
|||
padding: 20rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,350 @@ |
|||
<template> |
|||
<view v-if="info"> |
|||
<view class="user-other-info"> |
|||
<div class="info-avatar-top"> |
|||
<span>头像</span> |
|||
<view @click="uploadImg()"> |
|||
<image :src="showImg(info.avatar)" mode="aspectFill" |
|||
style="width: 80rpx;height: 80rpx;border-radius: 50%;"></image> |
|||
</view> |
|||
</div> |
|||
<navigator url="/subPackages/user/changeNickname" tag="view" class="userinfo-item"> |
|||
<span>姓名</span> |
|||
<view>{{nickname}}</view> |
|||
</navigator> |
|||
<view class="userinfo-item" @click="showSexSelect = true"> |
|||
<span>性别</span> |
|||
<!-- <view>{{sexes[info.gender]}}</view> --> |
|||
<radio-group @change="changesex"> |
|||
<label style="margin-right: 15rpx;" v-for="(item,index) in sexes" :key="index"> |
|||
<radio color="#7FD491" :value="item.value" :checked="index === info.gender-1" />{{item.text}} |
|||
</label> |
|||
</radio-group> |
|||
</view> |
|||
<view class="userinfo-item"> |
|||
<span>手机号</span> |
|||
<view>{{info.mobile}}</view> |
|||
</view> |
|||
<view class="userinfo-item"> |
|||
<span>生日</span> |
|||
<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange"> |
|||
<view class="uni-input">{{birthday}}</view> |
|||
</picker> |
|||
</view> |
|||
<view class="btn-tao" @click="submit">保存</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import {pathToBase64} from "@/static/js/mmmm-image-tools/index.js" |
|||
export default { |
|||
name: "Profile", |
|||
data() { |
|||
const currentDate = this.getDate({ |
|||
format: true |
|||
}) |
|||
return { |
|||
date: currentDate, |
|||
info: null, |
|||
showSexSelect: false, |
|||
sexes: [{ |
|||
value: '1', |
|||
text: '男' |
|||
}, |
|||
{ |
|||
value: '2', |
|||
text: '女' |
|||
} |
|||
], |
|||
today: null, |
|||
showCropper: false, |
|||
nickname: '', |
|||
gender: '', |
|||
birthday: '', |
|||
email: '', |
|||
fileList1: [], |
|||
startDate: '1900-1-1', |
|||
endDate: '2050-1-1' |
|||
} |
|||
}, |
|||
onShow() { |
|||
console.log(this.$store.state.user.userInfo,uni.getStorageSync('userInfo')) |
|||
this.getList() |
|||
}, |
|||
computed: { |
|||
// startDate() { |
|||
// return this.getDate('start'); |
|||
// }, |
|||
// endDate() { |
|||
// return this.getDate('end'); |
|||
// } |
|||
}, |
|||
methods: { |
|||
getFile(e) { |
|||
console.log(e) |
|||
}, |
|||
getList() { |
|||
let today = new Date(); |
|||
today = today.getFullYear() + "/" + (today.getMonth() + 1) + "/" + today.getDate(); |
|||
this.today = today; |
|||
this.Post({}, "/api/user/userInfo").then(res => { |
|||
if (!res.data.birthday) { |
|||
let date = new Date(); |
|||
res.data.birthday = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date |
|||
.getDate(); |
|||
} |
|||
this.info = res.data; |
|||
this.nickname = this.info.nickname |
|||
this.email = this.info.email |
|||
this.birthday = this.info.birthday |
|||
this.gender = this.info.gender |
|||
this.info.token = JSON.parse(uni.getStorageSync('userInfo')).token || this.$store.state.user.userInfo.token |
|||
console.log(this.info) |
|||
this.$store.commit('changeUserInfo', this.info) |
|||
}) |
|||
}, |
|||
uploadImg() { |
|||
uni.chooseImage({ |
|||
success: (chooseImageRes) => { |
|||
const tempFilePaths = chooseImageRes.tempFilePaths; |
|||
// // #ifdef MP-WEIXIN |
|||
// uni.getFileSystemManager().readFile({ |
|||
// filePath: tempFilePaths[0], |
|||
// encoding: 'base64', |
|||
// success: res => { |
|||
// this.Post({ |
|||
// method: 'POST', |
|||
// base64: 'data:image/png;base64,' + res.data |
|||
// }, '/api/common/base64').then(res => { |
|||
// if (res.data) { |
|||
// this.Post({ |
|||
// avatar: res.data |
|||
// }, '/api/user/profile').then(res => { |
|||
// uni.showModal({ |
|||
// title: '提示', |
|||
// content: res.msg, |
|||
// showCancel: false, |
|||
// success: res => { |
|||
// if (res.confirm) { |
|||
// this.getList() |
|||
// } |
|||
// } |
|||
// }) |
|||
// }) |
|||
// } |
|||
// }) |
|||
// } |
|||
// }) |
|||
// // #endif |
|||
|
|||
pathToBase64(tempFilePaths[0]).then(base64 => { |
|||
this.Post({ |
|||
method: 'POST', |
|||
base64: base64 |
|||
}, '/api/common/base64').then(res => { |
|||
if (res.data) { |
|||
this.Post({ |
|||
avatar: res.data |
|||
}, '/api/user/profile').then(res => { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: res.msg, |
|||
showCancel: false, |
|||
success: res => { |
|||
if (res.confirm) { |
|||
this.getList() |
|||
} |
|||
} |
|||
}) |
|||
}) |
|||
} |
|||
}) |
|||
}) |
|||
} |
|||
}); |
|||
}, |
|||
//生日 |
|||
bindDateChange: function(e) { |
|||
this.birthday = e.detail.value |
|||
}, |
|||
getDate(type) { |
|||
const date = new Date(); |
|||
let year = date.getFullYear(); |
|||
let month = date.getMonth() + 1; |
|||
let day = date.getDate(); |
|||
|
|||
if (type === 'start') { |
|||
year = year - 60; |
|||
} else if (type === 'end') { |
|||
year = year + 2; |
|||
} |
|||
month = month > 9 ? month : '0' + month; |
|||
day = day > 9 ? day : '0' + day; |
|||
return `${year}/${month}/${day}`; |
|||
}, |
|||
changesex(value) { |
|||
this.gender = value.detail.value |
|||
}, |
|||
submit() { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '确认修改您的信息?', |
|||
success: res => { |
|||
if (res.confirm) { |
|||
this.Post({ |
|||
nickname: this.nickname, |
|||
gender: this.gender, |
|||
birthday: this.birthday |
|||
}, '/api/user/profile').then(res => { |
|||
console.log(res) |
|||
if (res.code == 1) { |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: res.msg, |
|||
showCancel: false, |
|||
success: res => { |
|||
if (res.confirm) { |
|||
this.getList() |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
view { |
|||
box-sizing: content-box; |
|||
} |
|||
.info-avatar-top { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
font-size: 30rpx; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 40rpx 0; |
|||
height: 48rpx; |
|||
color: #333; |
|||
align-items: center; |
|||
} |
|||
.info-avatar-top view{ |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
.info-avatar-top view:after{ |
|||
font-family: "iconfont"; |
|||
content: "\e62e"; |
|||
font-size: 26rpx; |
|||
font-weight: bold; |
|||
margin-left: 6rpx; |
|||
} |
|||
.info-avatar-top img { |
|||
width: 80rpx; |
|||
height: 80rpx; |
|||
border-radius: 50%; |
|||
margin-right: 10rpx; |
|||
} |
|||
|
|||
.change-avatar-btn { |
|||
color: #FFF; |
|||
width: 220rpx; |
|||
margin: 0 auto; |
|||
line-height: 70rpx; |
|||
border-radius: 20rpx; |
|||
background: #4C93FF; |
|||
position: relative; |
|||
font-size: 34rpx; |
|||
} |
|||
|
|||
.change-avatar-btn input { |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
opacity: 0; |
|||
} |
|||
|
|||
.user-other-info { |
|||
margin: 30rpx; |
|||
} |
|||
|
|||
.userinfo-item { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
font-size: 30rpx; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 40rpx 0; |
|||
height: 48rpx; |
|||
color: #333; |
|||
} |
|||
|
|||
.info-avatar-top span { |
|||
font-weight: 500; |
|||
font-size: 31rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
|
|||
.userinfo-item span { |
|||
font-weight: 500; |
|||
font-size: 31rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
|
|||
.userinfo-item view:after, |
|||
.birthday-box:after { |
|||
font-family: "iconfont"; |
|||
content: "\e62e"; |
|||
font-size: 26rpx; |
|||
font-weight: bold; |
|||
margin-left: 6rpx; |
|||
} |
|||
|
|||
.birthday-box { |
|||
text-align: right; |
|||
} |
|||
|
|||
.cropper { |
|||
width: auto; |
|||
height: 100%; |
|||
} |
|||
|
|||
.cropper-content { |
|||
position: fixed; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
z-index: 1000; |
|||
} |
|||
|
|||
.dialog-footer .change-avatar-btn { |
|||
position: fixed; |
|||
text-align: center; |
|||
bottom: 80rpx; |
|||
left: 50%; |
|||
margin-left: -110rpx; |
|||
} |
|||
|
|||
.btn-tao { |
|||
text-align: center; |
|||
font-size: 30rpx; |
|||
width: 697rpx; |
|||
height: 80rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 40rpx; |
|||
line-height: 80rpx; |
|||
color: #FFFFFF; |
|||
position: fixed; |
|||
left: 26rpx; |
|||
bottom: 100rpx; |
|||
} |
|||
</style> |
@ -0,0 +1,328 @@ |
|||
<template> |
|||
<view class="bg"> |
|||
<view class="cancat-nav flex-around"> |
|||
<view :class="['concat-nav-item',showType===0?'active':'']" @click="showType=0"> |
|||
<view>出行人信息</view> |
|||
<view v-if="showType===0" class="active-bar"></view> |
|||
</view> |
|||
<view :class="['concat-nav-item',showType===1?'active':'']" @click="showType=1"> |
|||
<view>收货地址</view> |
|||
<view v-if="showType===1" class="active-bar"></view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 出行人信息 --> |
|||
<view v-if="showType===0"> |
|||
<view class="item" v-for="(item,index) in travelList" :key="index"> |
|||
<view class="name"> |
|||
<view class=""> |
|||
{{item.name}} |
|||
</view> |
|||
<view class=""> |
|||
{{item.tel}} |
|||
</view> |
|||
</view> |
|||
<view class="idcard"> |
|||
<view class=""> |
|||
{{item.document_type_text}}: |
|||
</view> |
|||
<view class=""> |
|||
{{item.id_number}} |
|||
</view> |
|||
</view> |
|||
<view class="item-btn"> |
|||
<view class="choice"> |
|||
<image src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" mode="aspectFill" |
|||
v-if="item.is_default==1"> |
|||
</image> |
|||
<view class="yuan" v-else @click.stop="defaultC(item)"> |
|||
|
|||
</view> |
|||
<view class=""> |
|||
默认出行人 |
|||
</view> |
|||
</view> |
|||
<view class="btn-list"> |
|||
<view class="btn-item" @click.stop="edit(item.id)"> |
|||
修改 |
|||
</view> |
|||
<view class="btn-item" @click.stop="delet(item)"> |
|||
删除 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 收货地址 --> |
|||
<view v-else> |
|||
<view class="item" v-for="(item,index) in addressList" :key="index"> |
|||
<view class="name"> |
|||
<view> |
|||
{{item.name}} |
|||
</view> |
|||
<view class=""> |
|||
{{item.tel}} |
|||
<span v-if="item.is_default==1">默认</span> |
|||
</view> |
|||
</view> |
|||
<view class="idcard"> |
|||
<view class=""> |
|||
收货地址: |
|||
</view> |
|||
<view class="text-overflow"> |
|||
{{item.address}} |
|||
</view> |
|||
</view> |
|||
<view class="item-btn" style="justify-content: flex-end;"> |
|||
<view class="btn-list"> |
|||
<view class="btn-item" @click.stop="edit(item.id)"> |
|||
修改 |
|||
</view> |
|||
<view class="btn-item" @click.stop="delet(item)"> |
|||
删除 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="btn-box"> |
|||
<navigator :url="showType ? '/subPackages/user/myAddressAdd' : '/subPackages/user/myContactsAdd'" class="btn"> |
|||
{{showType ? '添加收货地址' : '添加出行人'}} |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "travelerList", |
|||
data() { |
|||
return { |
|||
showType: 0, |
|||
travelList: [], |
|||
addressList: [] |
|||
}; |
|||
}, |
|||
onShow() { |
|||
this.init() |
|||
}, |
|||
methods: { |
|||
init () { |
|||
// 出行人信息 |
|||
this.Post({}, "/api/user/contactList").then(res => { |
|||
if (res) this.travelList = res.data |
|||
}) |
|||
|
|||
// 收货地址 |
|||
this.Post({}, '/api/user/consigneeList').then(res => { |
|||
if(res) this.addressList = res.data |
|||
}) |
|||
}, |
|||
delet(item) { |
|||
let that = this |
|||
uni.showModal({ |
|||
title: '提示', |
|||
content: '确定要删除该出行人吗?', |
|||
success: function(res) { |
|||
if (res.confirm) { |
|||
that.Post({ |
|||
id: item.id |
|||
}, "/api/user/delDetail").then(res => { |
|||
if (res) { |
|||
uni.showToast({ |
|||
icon: "none", |
|||
title: res.msg |
|||
}) |
|||
} |
|||
that.init() |
|||
}) |
|||
} else if (res.cancel) { |
|||
console.log('用户点击取消'); |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
defaultC(item) { |
|||
this.Post({ |
|||
id: item.id, |
|||
is_default: 1 |
|||
}, "/api/user/editContact").then(res => { |
|||
if (res.code == 1) { |
|||
this.travelList.forEach(i => i.is_default = 0) |
|||
item.is_default = !item.is_default |
|||
} |
|||
}) |
|||
}, |
|||
// 修改出行人信息 |
|||
edit(id){ |
|||
let url = '' |
|||
if(this.showType) { |
|||
url = '/subPackages/user/myAddressAdd?id='+id |
|||
}else { |
|||
url = "/subPackages/user/myContactsAdd?type=edit&id="+id |
|||
} |
|||
uni.navigateTo({ |
|||
url: url |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.bg { |
|||
position: relative; |
|||
background: #F7F7F7; |
|||
height: 100vh; |
|||
overflow-x: hidden; |
|||
padding-bottom: 200rpx; |
|||
} |
|||
|
|||
.cancat-nav{ |
|||
width: 100%; |
|||
display: flex; |
|||
height: 112rpx; |
|||
flex-shrink: 0; |
|||
.concat-nav-item{ |
|||
ffont-weight: 500; |
|||
font-size: 35rpx; |
|||
color: #000000; |
|||
text-align: center; |
|||
} |
|||
.concat-nav-item.active{ |
|||
color: #000000; |
|||
} |
|||
.active-bar{ |
|||
width: 100%; |
|||
height: 11rpx; |
|||
background: #71B580; |
|||
} |
|||
} |
|||
|
|||
.item { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 13rpx; |
|||
margin: 0 auto; |
|||
margin-bottom: 28rpx; |
|||
padding: 26rpx; |
|||
|
|||
.name, |
|||
.idcard { |
|||
display: flex; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
color: #333333; |
|||
|
|||
} |
|||
|
|||
.name { |
|||
view:last-child { |
|||
margin-left: 40rpx; |
|||
} |
|||
|
|||
span { |
|||
padding: 3rpx 9rpx; |
|||
background: #71B580; |
|||
border-radius: 7rpx; |
|||
font-weight: bold; |
|||
font-size: 24rpx; |
|||
color: #FFFFFF; |
|||
margin-left: 15rpx; |
|||
} |
|||
} |
|||
|
|||
.idcard { |
|||
margin-top: 26rpx; |
|||
|
|||
view:last-child { |
|||
margin-left: 14rpx; |
|||
font-weight: 400; |
|||
max-width: 492rpx; |
|||
|
|||
} |
|||
} |
|||
|
|||
.item-btn { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
margin-top: 40rpx; |
|||
|
|||
.choice { |
|||
display: flex; |
|||
align-items: center; |
|||
|
|||
view:last-child { |
|||
margin-left: 20rpx; |
|||
|
|||
font-size: 27rpx; |
|||
|
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
|
|||
image { |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
} |
|||
|
|||
.yuan { |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
background: rgba(255, 200, 37, 0); |
|||
border: 1rpx solid #999999; |
|||
border-radius: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.btn-list { |
|||
display: flex; |
|||
align-items: center; |
|||
|
|||
view { |
|||
width: 134rpx; |
|||
height: 54rpx; |
|||
background: #FFFFFF; |
|||
border: 1px solid #999999; |
|||
border-radius: 27rpx; |
|||
|
|||
|
|||
font-size: 27rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
line-height: 52rpx; |
|||
text-align: center; |
|||
} |
|||
|
|||
view:last-child { |
|||
margin-left: 14rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.btn-box { |
|||
position: fixed; |
|||
bottom: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 200rpx; |
|||
|
|||
.btn { |
|||
width: 697rpx; |
|||
line-height: 80rpx; |
|||
background: #00AEA0; |
|||
border-radius: 37rpx; |
|||
font-weight: 500; |
|||
font-size: 36rpx; |
|||
color: #FFFFFF; |
|||
text-align: center; |
|||
position: fixed; |
|||
bottom: 53rpx; |
|||
left: 26.67rpx; |
|||
} |
|||
} |
|||
</style> |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
|||
{"version":3,"sources":["uni-app:///main.js","webpack:///D:/work/changshu_WeChat/subPackages/index.vue?dea3","webpack:///D:/work/changshu_WeChat/subPackages/index.vue?be70","webpack:///D:/work/changshu_WeChat/subPackages/index.vue?f912","webpack:///D:/work/changshu_WeChat/subPackages/index.vue?3582"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page","renderjs","component","options","__file","components","render","_vm","this","_h","$createElement","_self","_c","recyclableRender","staticRenderFns","_withStripped"],"mappings":"2IAAA,MAGA,aACA,WAFAA,EAAGC,kCAAoCC,EAGvCC,EAAWC,a,+ECLX,2HACIC,EADJ,QAQIC,EAAY,qBACd,aACA,YACA,sBACA,EACA,KACA,KACA,MACA,EACA,gBACAD,GAGFC,EAAUC,QAAQC,OAAS,wBACZ,aAAAF,E,yCCtBf,sQ,gCCAA,IAAIG,EAAJ,0LACA,IAAIC,EAAS,WACX,IAAIC,EAAMC,KACNC,EAAKF,EAAIG,eACJH,EAAII,MAAMC,IAEjBC,GAAmB,EACnBC,EAAkB,GACtBR,EAAOS,eAAgB,G,gCCRvB,wHAAmmB,eAAG,G","file":"subPackages/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './subPackages/index.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./index.vue?vue&type=template&id=32c4cbf2&\"\nvar renderjs\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"subPackages/index.vue\"\nexport default component.exports","export * from \"-!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=template&id=32c4cbf2&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\""],"sourceRoot":""} |
|||
{"version":3,"sources":["uni-app:///main.js","webpack:///D:/Project/project_wenlv/changshu_WeChat/subPackages/index.vue?b169","webpack:///D:/Project/project_wenlv/changshu_WeChat/subPackages/index.vue?a74e","webpack:///D:/Project/project_wenlv/changshu_WeChat/subPackages/index.vue?c9af","webpack:///D:/Project/project_wenlv/changshu_WeChat/subPackages/index.vue?0de3"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page","renderjs","component","options","__file","components","render","_vm","this","_h","$createElement","_self","_c","recyclableRender","staticRenderFns","_withStripped"],"mappings":"2IAAA,MAGA,aACA,WAFAA,EAAGC,kCAAoCC,EAGvCC,EAAWC,a,+ECLX,2HACIC,EADJ,QAQIC,EAAY,qBACd,aACA,YACA,sBACA,EACA,KACA,KACA,MACA,EACA,gBACAD,GAGFC,EAAUC,QAAQC,OAAS,wBACZ,aAAAF,E,yCCtBf,sQ,gCCAA,IAAIG,EAAJ,0LACA,IAAIC,EAAS,WACX,IAAIC,EAAMC,KACNC,EAAKF,EAAIG,eACJH,EAAII,MAAMC,IAEjBC,GAAmB,EACnBC,EAAkB,GACtBR,EAAOS,eAAgB,G,gCCRvB,wHAA0pB,eAAG,G","file":"subPackages/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './subPackages/index.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./index.vue?vue&type=template&id=32c4cbf2&\"\nvar renderjs\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"subPackages/index.vue\"\nexport default component.exports","export * from \"-!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=template&id=32c4cbf2&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Program/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\""],"sourceRoot":""} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@ |
|||
|
|||
!function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}(); |
|||
(function(e){function r(r){for(var n,l,a=r[0],i=r[1],f=r[2],c=0,s=[];c<a.length;c++)l=a[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);p&&p(r);while(s.length)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var i=t[a];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"common/runtime":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var a=global["webpackJsonp"]=global["webpackJsonp"]||[],i=a.push.bind(a);a.push=r,a=a.slice();for(var f=0;f<a.length;f++)r(a[f]);var p=i;t()})([]); |
|||
(function(e){function n(n){for(var r,o,a=n[0],p=n[1],l=n[2],s=0,c=[];s<a.length;s++)o=a[s],Object.prototype.hasOwnProperty.call(u,o)&&u[o]&&c.push(u[o][0]),u[o]=0;for(r in p)Object.prototype.hasOwnProperty.call(p,r)&&(e[r]=p[r]);f&&f(n);while(c.length)c.shift()();return i.push.apply(i,l||[]),t()}function t(){for(var e,n=0;n<i.length;n++){for(var t=i[n],r=!0,o=1;o<t.length;o++){var a=t[o];0!==u[a]&&(r=!1)}r&&(i.splice(n--,1),e=p(p.s=t[0]))}return e}var r={},o={"common/runtime":0},u={"common/runtime":0},i=[];function a(e){return p.p+""+e+".js"}function p(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,p),t.l=!0,t.exports}p.e=function(e){var n=[],t={"uni_modules/uni-popup/components/uni-popup/uni-popup":1};o[e]?n.push(o[e]):0!==o[e]&&t[e]&&n.push(o[e]=new Promise((function(n,t){for(var r=({"uni_modules/uni-popup/components/uni-popup/uni-popup":"uni_modules/uni-popup/components/uni-popup/uni-popup","uni_modules/uni-transition/components/uni-transition/uni-transition":"uni_modules/uni-transition/components/uni-transition/uni-transition"}[e]||e)+".wxss",u=p.p+r,i=document.getElementsByTagName("link"),a=0;a<i.length;a++){var l=i[a],s=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(s===r||s===u))return n()}var c=document.getElementsByTagName("style");for(a=0;a<c.length;a++){l=c[a],s=l.getAttribute("data-href");if(s===r||s===u)return n()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onload=n,f.onerror=function(n){var r=n&&n.target&&n.target.src||u,i=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=r,delete o[e],f.parentNode.removeChild(f),t(i)},f.href=u;var d=document.getElementsByTagName("head")[0];d.appendChild(f)})).then((function(){o[e]=0})));var r=u[e];if(0!==r)if(r)n.push(r[2]);else{var i=new Promise((function(n,t){r=u[e]=[n,t]}));n.push(r[2]=i);var l,s=document.createElement("script");s.charset="utf-8",s.timeout=120,p.nc&&s.setAttribute("nonce",p.nc),s.src=a(e);var c=new Error;l=function(n){s.onerror=s.onload=null,clearTimeout(f);var t=u[e];if(0!==t){if(t){var r=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;c.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",c.name="ChunkLoadError",c.type=r,c.request=o,t[1](c)}u[e]=void 0}};var f=setTimeout((function(){l({type:"timeout",target:s})}),12e4);s.onerror=s.onload=l,document.head.appendChild(s)}return Promise.all(n)},p.m=e,p.c=r,p.d=function(e,n,t){p.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},p.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(e,n){if(1&n&&(e=p(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var r in e)p.d(t,r,function(n){return e[n]}.bind(null,r));return t},p.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return p.d(n,"a",n),n},p.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},p.p="/",p.oe=function(e){throw console.error(e),e};var l=global["webpackJsonp"]=global["webpackJsonp"]||[],s=l.push.bind(l);l.push=n,l=l.slice();for(var c=0;c<l.length;c++)n(l[c]);var f=s;t()})([]); |
|||
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map
|
|||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/login/login"],{121:function(e,n,t){"use strict";t.r(n);var o=t(122);t.d(n,"render",(function(){return o["render"]})),t.d(n,"staticRenderFns",(function(){return o["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return o["recyclableRender"]})),t.d(n,"components",(function(){return o["components"]}))},122:function(e,n,t){"use strict";var o;t.r(n),t.d(n,"render",(function(){return r})),t.d(n,"staticRenderFns",(function(){return a})),t.d(n,"recyclableRender",(function(){return i})),t.d(n,"components",(function(){return o}));try{o={uniPopup:function(){return t.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(t.bind(null,104))}}}catch(c){if(-1===c.message.indexOf("Cannot find module")||-1===c.message.indexOf(".vue"))throw c;console.error(c.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var r=function(){var e=this,n=e.$createElement;e._self._c;e._isMounted||(e.e0=function(n){e.flag=!e.flag})},i=!1,a=[];r._withStripped=!0},123:function(e,n,t){"use strict";t.r(n);var o=t(61),r=t.n(o);for(var i in o)["default"].indexOf(i)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(i);n["default"]=r.a},54:function(e,n,t){"use strict";(function(e,n){var o=t(4);t(26);o(t(25));var r=o(t(55));e.__webpack_require_UNI_MP_PLUGIN__=t,n(r.default)}).call(this,t(1)["default"],t(2)["createPage"])},55:function(e,n,t){"use strict";t.r(n);var o=t(121),r=t(58);for(var i in r)["default"].indexOf(i)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(i);t(123);var a,c=t(32),u=Object(c["default"])(r["default"],o["render"],o["staticRenderFns"],!1,null,"b237504c",null,!1,o["components"],a);u.options.__file="pages/login/login.vue",n["default"]=u.exports},58:function(e,n,t){"use strict";t.r(n);var o=t(59),r=t.n(o);for(var i in o)["default"].indexOf(i)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(i);n["default"]=r.a},59:function(e,n,t){"use strict";(function(e){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var t={data:function(){return{flag:!1}},methods:{decryptPhoneNumber:function(n){var t=this;"getPhoneNumber:ok"==n.detail.errMsg&&(this.$refs.popup.close(),this.Post({code:n.detail.code,encryptedData:n.detail.encryptedData,iv:n.detail.iv,token:e.getStorageSync("token1")},"/api/mini_program/bindPhoneNumber").then((function(n){t.$store.commit("changeUserInfo",n.data.userinfo),t.$store.state.user.toPath.includes("user/user")?e.switchTab({url:t.$store.state.user.toPath}):e.navigateBack({})})))},getUserInfo:function(){if(this.flag){var n=this;e.login({provider:"weixin",success:function(t){e.getUserInfo({withCredentials:!0,success:function(o){n.Post({code:t.code,userInfo:o.userInfo,encryptedData:o.encryptedData,iv:o.iv,wechat_qrcode:e.getStorageSync("wechat_qrcode")?e.getStorageSync("wechat_qrcode"):""},"/api/mini_program/login").then((function(t){n.$store.commit("changeUserInfo",t.data.userinfo),t.data.userinfo.mobile?n.$store.state.user.toPath.includes("user/user")?e.switchTab({url:n.$store.state.user.toPath}):e.navigateBack({}):(e.setStorageSync("token1",t.data.userinfo.token),n.$refs.popup.open("bottom"))}))}})},fail:function(e){console.log(e)}})}}}};n.default=t}).call(this,t(2)["default"])},61:function(e,n,t){}},[[54,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/login.js.map
|
@ -0,0 +1,6 @@ |
|||
{ |
|||
"navigationBarTitleText": "常熟文旅", |
|||
"usingComponents": { |
|||
"uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" |
|||
} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg data-v-b237504c"><image class="logo data-v-b237504c" src="https://static.ticket.sz-trip.com/yandu/images/user/logo.png"></image><view data-event-opts="{{[['tap',[['getUserInfo']]]]}}" class="{{['data-v-b237504c','btn','flex-center',[(flag)?'btns':'']]}}" bindtap="__e">快捷登录</view><image hidden="{{!(!flag)}}" class="tips data-v-b237504c" src="https://static.ticket.sz-trip.com/yandu/images/user/tips.png"></image><view class="flex-between _footer data-v-b237504c"><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" style="{{'border:'+(flag?'none':'')+';'}}" bindtap="__e" class="data-v-b237504c"><image hidden="{{!(flag)}}" src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" class="data-v-b237504c"></image></view>我已阅读并同意<label data-event-opts="{{[['tap',[['gotoPath',['/subPackages/user/privacy']]]]]}}" bindtap="__e" class="_span data-v-b237504c">《用户服务协议》、《隐私政策》</label></view><uni-popup vue-id="35a7246c-1" type="bottom" background-color="#fff" data-ref="popup" class="data-v-b237504c vue-ref" bind:__l="__l" vue-slots="{{['default']}}"><button style="width:100%;height:12vh;line-height:12vh;" type="default" open-type="getPhoneNumber" data-event-opts="{{[['getphonenumber',[['decryptPhoneNumber',['$event']]]]]}}" bindgetphonenumber="__e" class="data-v-b237504c">点击授权手机号</button></uni-popup></view> |
@ -0,0 +1,86 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.bg.data-v-b237504c { |
|||
height: 100vh; |
|||
} |
|||
.logo.data-v-b237504c { |
|||
width: 186rpx; |
|||
height: 132rpx; |
|||
position: absolute; |
|||
top: 79rpx; |
|||
left: 50%; |
|||
-webkit-transform: translate(-50%, 0); |
|||
transform: translate(-50%, 0); |
|||
} |
|||
.btn.data-v-b237504c { |
|||
width: 667rpx; |
|||
height: 93rpx; |
|||
background: #CCCCCC; |
|||
border-radius: 20rpx; |
|||
font-weight: 500; |
|||
font-size: 35rpx; |
|||
color: #FFFFFF; |
|||
position: absolute; |
|||
top: 301rpx; |
|||
left: 50%; |
|||
-webkit-transform: translate(-50%, 0); |
|||
transform: translate(-50%, 0); |
|||
} |
|||
.btns.data-v-b237504c { |
|||
background: #71B580; |
|||
} |
|||
.tips.data-v-b237504c { |
|||
position: absolute; |
|||
left: 54rpx; |
|||
bottom: 155rpx; |
|||
width: 293.33rpx; |
|||
height: 72.67rpx; |
|||
} |
|||
._footer.data-v-b237504c { |
|||
padding: 0 68rpx; |
|||
position: absolute; |
|||
bottom: 94rpx; |
|||
font-weight: 500; |
|||
font-size: 25rpx; |
|||
color: #333333; |
|||
width: 100%; |
|||
} |
|||
._footer view.data-v-b237504c { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 50%; |
|||
overflow: hidden; |
|||
border: 1rpx solid #666666; |
|||
} |
|||
._footer view image.data-v-b237504c { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
._footer ._span.data-v-b237504c { |
|||
color: #71b580; |
|||
} |
|||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,7 @@ |
|||
{ |
|||
"navigationBarTitleText": "uni-app", |
|||
"usingComponents": {} |
|||
"navigationStyle": "custom", |
|||
"navigationBarTitleText": "我的", |
|||
"usingComponents": { |
|||
"uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" |
|||
} |
|||
} |
@ -1 +1 @@ |
|||
<view class="_div"></view> |
|||
<view class="bg data-v-80842834"><view class="title data-v-80842834">我的</view><view data-event-opts="{{[['tap',[['gotoProfile',['$event']]]]]}}" class="topBox data-v-80842834" bindtap="__e"><view class="avatar-box flex-center data-v-80842834"><block wx:if="{{userInfo.avatar}}"><image class="headImg data-v-80842834" src="{{$root.m0}}" mode="aspectFill"></image></block><block wx:else><image class="headImg data-v-80842834" src="https://static.ticket.sz-trip.com/yandu/images/user/grxx.png" mode="aspectFill"></image></block></view><block wx:if="{{userInfo.nickname}}"><view class="username data-v-80842834">{{userInfo.nickname}}</view></block><block wx:else><view class="username data-v-80842834">请登录/注册 ></view></block></view><view class="orderBox data-v-80842834"><navigator class="moreBox flex-between data-v-80842834" url="/subPackages/order/trades">我的订单<label class="flex-between _span data-v-80842834">全部订单<image src="https://static.ticket.sz-trip.com/yandu/images/user/rightIcon.png" alt class="_img data-v-80842834"></image></label></navigator><view class="flex-around data-v-80842834" style="margin-top:20rpx;"><block wx:for="{{orderList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goTrades',['$0'],[[['orderList','',index]]]]]]]}}" class="orderItem data-v-80842834" bindtap="__e"><image src="{{item.src}}" alt class="_img data-v-80842834"></image><view class="data-v-80842834">{{item.title}}</view></view></block></view></view><view class="cygj data-v-80842834"><block wx:for="{{cyList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><block wx:if="{{item.isShow}}"><view data-event-opts="{{[['tap',[['gotoUrl',['$0',index],[[['cyList','',index]]]]]]]}}" class="cyItem flex-between data-v-80842834" bindtap="__e"><view class="flex-center data-v-80842834"><image class="headIcon _img data-v-80842834" src="{{item.src}}"></image>{{''+item.title+''}}</view><image class="rightIcon _img data-v-80842834" src="https://static.ticket.sz-trip.com/yandu/images/user/rightIcon-gray.png"></image></view></block></block></view><uni-popup vue-id="380011e0-1" type="center" data-ref="popup" class="data-v-80842834 vue-ref" bind:__l="__l" vue-slots="{{['default']}}"><view class="consult-popup data-v-80842834">即将跳转人工客服<view class="consult-subtitle data-v-80842834">服务时间:周一至周五<view class="_br data-v-80842834"></view>8:30-11:30,14:30-18:00</view><view class="consult-btns data-v-80842834"><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" bindtap="__e" class="data-v-80842834">取消</view><view class="data-v-80842834"><button class="confirm data-v-80842834" open-type="contact">确定</button></view></view></view></uni-popup></view> |
@ -0,0 +1,310 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
view.data-v-80842834 { |
|||
box-sizing: border-box; |
|||
} |
|||
.data-v-80842834 .uni-countdown { |
|||
font-size: 20px !important; |
|||
} |
|||
.data-v-80842834 .uni-countdown /deep/.uni-countdown__splitor { |
|||
font-size: 20px !important; |
|||
} |
|||
.bg.data-v-80842834 { |
|||
min-height: 100vh; |
|||
overflow-x: hidden; |
|||
background: url("https://static.ticket.sz-trip.com/yandu/images/user/topBg.png") no-repeat; |
|||
background-size: 100%; |
|||
background-color: #F7F7F7; |
|||
padding-bottom: 100rpx; |
|||
} |
|||
.title.data-v-80842834 { |
|||
font-weight: bold; |
|||
font-size: 36rpx; |
|||
color: #333333; |
|||
position: absolute; |
|||
top: 110rpx; |
|||
left: 50%; |
|||
-webkit-transform: translate(-50%, 0); |
|||
transform: translate(-50%, 0); |
|||
} |
|||
.topBox.data-v-80842834 { |
|||
width: 750rpx; |
|||
height: 373rpx; |
|||
padding: 100rpx 0 0 26rpx; |
|||
box-sizing: border-box; |
|||
display: flex; |
|||
margin-top: 90rpx; |
|||
} |
|||
.topBox .avatar-box.data-v-80842834 { |
|||
width: 120rpx; |
|||
height: 120rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 50%; |
|||
overflow: hidden; |
|||
} |
|||
.topBox .headImg.data-v-80842834 { |
|||
width: 60rpx; |
|||
height: 60rpx; |
|||
border-radius: 50%; |
|||
} |
|||
.topBox .username.data-v-80842834 { |
|||
margin: 40rpx 0 0 28rpx; |
|||
font-weight: 500; |
|||
font-size: 40rpx; |
|||
color: #000000; |
|||
} |
|||
.orderBox.data-v-80842834 { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0rpx 0rpx 23rpx 0rpx rgba(80, 80, 80, 0.12); |
|||
border-radius: 20rpx; |
|||
margin: -48rpx auto 0; |
|||
padding-bottom: 30.6rpx; |
|||
} |
|||
.orderBox .moreBox.data-v-80842834 { |
|||
height: 84rpx; |
|||
margin: auto; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
padding-left: 26rpx; |
|||
} |
|||
.orderBox .moreBox ._span.data-v-80842834 { |
|||
width: 173rpx; |
|||
height: 40rpx; |
|||
background: #D6F2F0; |
|||
border-radius: 20rpx 0rpx 0rpx 20rpx; |
|||
padding: 0 24rpx; |
|||
font-size: 25rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #00AEA0; |
|||
box-sizing: border-box; |
|||
} |
|||
.orderBox .moreBox ._span ._img.data-v-80842834 { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
} |
|||
.orderBox .orderItem.data-v-80842834 { |
|||
font-size: 24rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
width: 20%; |
|||
text-align: center; |
|||
} |
|||
.orderBox .orderItem ._img.data-v-80842834 { |
|||
width: 62rpx; |
|||
height: 62rpx; |
|||
margin-bottom: 10rpx; |
|||
} |
|||
.lxwm.data-v-80842834 { |
|||
width: 696rpx; |
|||
height: 447rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0px 4rpx 12rpx 0px rgba(150, 149, 149, 0.3); |
|||
border-radius: 20rpx; |
|||
margin: auto; |
|||
padding: 27rpx 19rpx 0 19rpx; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
} |
|||
.lxwm .midBox.data-v-80842834 { |
|||
padding: 26rpx 43rpx 21rpx 44rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
.lxwm .midBox ._img.data-v-80842834 { |
|||
width: 265rpx; |
|||
height: 252rpx; |
|||
border-radius: 15rpx; |
|||
} |
|||
.lxwm .botBox.data-v-80842834 { |
|||
padding: 0 30rpx 0 51rpx; |
|||
font-size: 27rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
} |
|||
.cygj.data-v-80842834 { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 20rpx; |
|||
margin: 30rpx auto 0; |
|||
padding: 0 27rpx; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
box-sizing: border-box; |
|||
} |
|||
.cygj .cyItem.data-v-80842834 { |
|||
height: 106rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
} |
|||
.cygj .cyItem .headIcon.data-v-80842834 { |
|||
width: 42rpx; |
|||
height: 42rpx; |
|||
margin-right: 15rpx; |
|||
} |
|||
.cygj .cyItem .rightIcon.data-v-80842834 { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
} |
|||
.cygj .cyItem.data-v-80842834:last-child { |
|||
border: none; |
|||
} |
|||
.my-swipe.data-v-80842834 { |
|||
margin: 0 30rpx; |
|||
margin-top: 37.3rpx; |
|||
} |
|||
swiper.data-v-80842834 { |
|||
height: 111rpx !important; |
|||
} |
|||
.dfkBox.data-v-80842834 { |
|||
width: 100%; |
|||
height: 111rpx; |
|||
background: #F7F7F7; |
|||
margin: 0 auto 30.64rpx; |
|||
display: flex; |
|||
} |
|||
.dfkBox image.data-v-80842834 { |
|||
width: 137rpx; |
|||
height: 111rpx; |
|||
border-radius: 13rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
.dfkBox .contentBox.data-v-80842834 { |
|||
padding-left: 5rpx; |
|||
padding-right: 5rpx; |
|||
height: 111rpx; |
|||
width: 100%; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
} |
|||
.orderBtn.data-v-80842834 { |
|||
width: 152rpx; |
|||
height: 56rpx; |
|||
background: linear-gradient(270deg, #FC5109, #FDC43A); |
|||
border-radius: 28rpx; |
|||
text-align: center; |
|||
line-height: 56rpx; |
|||
font-size: 27rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 400; |
|||
color: #FFFFFF; |
|||
} |
|||
#contact.data-v-80842834 { |
|||
-webkit-tap-highlight-color: transparent; |
|||
background-color: rgba(0, 0, 0, 0); |
|||
border-radius: 0; |
|||
box-sizing: border-box; |
|||
color: transparent; |
|||
cursor: pointer; |
|||
overflow: hidden; |
|||
padding: 0 27rpx; |
|||
position: relative; |
|||
text-align: center; |
|||
text-decoration: none; |
|||
border: transparent 0px solid; |
|||
display: flex; |
|||
align-items: center; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #000000; |
|||
} |
|||
button.data-v-80842834::after { |
|||
border: none; |
|||
background-color: rgba(0, 0, 0, 0); |
|||
} |
|||
.more.data-v-80842834 { |
|||
width: 100vw; |
|||
height: 100vh; |
|||
background-color: rgba(0, 0, 0, 0.5); |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
} |
|||
.more image.data-v-80842834 { |
|||
width: 646rpx; |
|||
height: 959rpx; |
|||
} |
|||
.more ._img.data-v-80842834 { |
|||
width: 80rpx; |
|||
height: 80rpx; |
|||
} |
|||
.consult-popup.data-v-80842834 { |
|||
width: 487rpx; |
|||
height: 367rpx; |
|||
background: #F0F0F0; |
|||
border-radius: 20rpx; |
|||
padding: 65rpx 0 23rpx; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #000000; |
|||
text-align: center; |
|||
} |
|||
.consult-popup .consult-subtitle.data-v-80842834 { |
|||
font-weight: 500; |
|||
font-size: 27rpx; |
|||
color: #333333; |
|||
margin-top: 43rpx; |
|||
} |
|||
.consult-popup .consult-btns.data-v-80842834 { |
|||
display: flex; |
|||
margin-top: 75rpx; |
|||
} |
|||
.consult-popup .consult-btns view.data-v-80842834 { |
|||
width: 50%; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #00AEA0; |
|||
line-height: 54rpx; |
|||
} |
|||
.consult-popup .consult-btns view.data-v-80842834:first-child { |
|||
border-right: 1rpx solid #D8D8D8; |
|||
color: #000000; |
|||
} |
|||
.confirm.data-v-80842834 { |
|||
height: 58rpx; |
|||
line-height: 58rpx; |
|||
background: none; |
|||
font-weight: bold; |
|||
font-size: 32rpx; |
|||
color: #00AEA0; |
|||
} |
|||
|
@ -1,29 +1,29 @@ |
|||
{ |
|||
"description": "项目配置文件。", |
|||
"packOptions": { |
|||
"ignore": [], |
|||
"include": [] |
|||
}, |
|||
"setting": { |
|||
"urlCheck": false, |
|||
"es6": false, |
|||
"postcss": false, |
|||
"minified": false, |
|||
"newFeature": true, |
|||
"bigPackageSizeSupport": true, |
|||
"babelSetting": { |
|||
"ignore": [], |
|||
"disablePlugins": [], |
|||
"outputPath": "" |
|||
"description": "项目配置文件。", |
|||
"packOptions": { |
|||
"ignore": [], |
|||
"include": [] |
|||
}, |
|||
"setting": { |
|||
"urlCheck": false, |
|||
"es6": false, |
|||
"postcss": false, |
|||
"minified": false, |
|||
"newFeature": true, |
|||
"bigPackageSizeSupport": true, |
|||
"babelSetting": { |
|||
"ignore": [], |
|||
"disablePlugins": [], |
|||
"outputPath": "" |
|||
} |
|||
}, |
|||
"compileType": "miniprogram", |
|||
"libVersion": "3.7.11", |
|||
"appid": "touristappid", |
|||
"projectname": "taihumeisu", |
|||
"condition": {}, |
|||
"editorSetting": { |
|||
"tabIndent": "insertSpaces", |
|||
"tabSize": 4 |
|||
} |
|||
}, |
|||
"compileType": "miniprogram", |
|||
"libVersion": "3.7.10", |
|||
"appid": "touristappid", |
|||
"projectname": "taihumeisu", |
|||
"condition": {}, |
|||
"editorSetting": { |
|||
"tabIndent": "auto", |
|||
"tabSize": 2 |
|||
} |
|||
} |
@ -1,7 +1,7 @@ |
|||
{ |
|||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
|||
"projectname": "taihumeisu", |
|||
"setting": { |
|||
"compileHotReLoad": true |
|||
} |
|||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
|||
"projectname": "taihumeisu", |
|||
"setting": { |
|||
"compileHotReLoad": true |
|||
} |
|||
} |
@ -0,0 +1,196 @@ |
|||
function getLocalFilePath(path) { |
|||
if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('file://') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('/storage/emulated/0/') === 0) { |
|||
return path |
|||
} |
|||
if (path.indexOf('/') === 0) { |
|||
var localFilePath = plus.io.convertAbsoluteFileSystem(path) |
|||
if (localFilePath !== path) { |
|||
return localFilePath |
|||
} else { |
|||
path = path.substr(1) |
|||
} |
|||
} |
|||
return '_www/' + path |
|||
} |
|||
|
|||
function dataUrlToBase64(str) { |
|||
var array = str.split(',') |
|||
return array[array.length - 1] |
|||
} |
|||
|
|||
var index = 0 |
|||
function getNewFileId() { |
|||
return Date.now() + String(index++) |
|||
} |
|||
|
|||
function biggerThan(v1, v2) { |
|||
var v1Array = v1.split('.') |
|||
var v2Array = v2.split('.') |
|||
var update = false |
|||
for (var index = 0; index < v2Array.length; index++) { |
|||
var diff = v1Array[index] - v2Array[index] |
|||
if (diff !== 0) { |
|||
update = diff > 0 |
|||
break |
|||
} |
|||
} |
|||
return update |
|||
} |
|||
|
|||
export function pathToBase64(path) { |
|||
return new Promise(function(resolve, reject) { |
|||
if (typeof window === 'object' && 'document' in window) { |
|||
if (typeof FileReader === 'function') { |
|||
var xhr = new XMLHttpRequest() |
|||
xhr.open('GET', path, true) |
|||
xhr.responseType = 'blob' |
|||
xhr.onload = function() { |
|||
if (this.status === 200) { |
|||
let fileReader = new FileReader() |
|||
fileReader.onload = function(e) { |
|||
resolve(e.target.result) |
|||
} |
|||
fileReader.onerror = reject |
|||
fileReader.readAsDataURL(this.response) |
|||
} |
|||
} |
|||
xhr.onerror = reject |
|||
xhr.send() |
|||
return |
|||
} |
|||
var canvas = document.createElement('canvas') |
|||
var c2x = canvas.getContext('2d') |
|||
var img = new Image |
|||
img.onload = function() { |
|||
canvas.width = img.width |
|||
canvas.height = img.height |
|||
c2x.drawImage(img, 0, 0) |
|||
resolve(canvas.toDataURL()) |
|||
canvas.height = canvas.width = 0 |
|||
} |
|||
img.onerror = reject |
|||
img.src = path |
|||
return |
|||
} |
|||
if (typeof plus === 'object') { |
|||
plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) { |
|||
entry.file(function(file) { |
|||
var fileReader = new plus.io.FileReader() |
|||
fileReader.onload = function(data) { |
|||
resolve(data.target.result) |
|||
} |
|||
fileReader.onerror = function(error) { |
|||
reject(error) |
|||
} |
|||
fileReader.readAsDataURL(file) |
|||
}, function(error) { |
|||
reject(error) |
|||
}) |
|||
}, function(error) { |
|||
reject(error) |
|||
}) |
|||
return |
|||
} |
|||
if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { |
|||
wx.getFileSystemManager().readFile({ |
|||
filePath: path, |
|||
encoding: 'base64', |
|||
success: function(res) { |
|||
resolve('data:image/png;base64,' + res.data) |
|||
}, |
|||
fail: function(error) { |
|||
reject(error) |
|||
} |
|||
}) |
|||
return |
|||
} |
|||
reject(new Error('not support')) |
|||
}) |
|||
} |
|||
|
|||
export function base64ToPath(base64) { |
|||
return new Promise(function(resolve, reject) { |
|||
if (typeof window === 'object' && 'document' in window) { |
|||
base64 = base64.split(',') |
|||
var type = base64[0].match(/:(.*?);/)[1] |
|||
var str = atob(base64[1]) |
|||
var n = str.length |
|||
var array = new Uint8Array(n) |
|||
while (n--) { |
|||
array[n] = str.charCodeAt(n) |
|||
} |
|||
return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type }))) |
|||
} |
|||
var extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/) |
|||
if (extName) { |
|||
extName = extName[1] |
|||
} else { |
|||
reject(new Error('base64 error')) |
|||
} |
|||
var fileName = getNewFileId() + '.' + extName |
|||
if (typeof plus === 'object') { |
|||
var basePath = '_doc' |
|||
var dirPath = 'uniapp_temp' |
|||
var filePath = basePath + '/' + dirPath + '/' + fileName |
|||
if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime.innerVersion)) { |
|||
plus.io.resolveLocalFileSystemURL(basePath, function(entry) { |
|||
entry.getDirectory(dirPath, { |
|||
create: true, |
|||
exclusive: false, |
|||
}, function(entry) { |
|||
entry.getFile(fileName, { |
|||
create: true, |
|||
exclusive: false, |
|||
}, function(entry) { |
|||
entry.createWriter(function(writer) { |
|||
writer.onwrite = function() { |
|||
resolve(filePath) |
|||
} |
|||
writer.onerror = reject |
|||
writer.seek(0) |
|||
writer.writeAsBinary(dataUrlToBase64(base64)) |
|||
}, reject) |
|||
}, reject) |
|||
}, reject) |
|||
}, reject) |
|||
return |
|||
} |
|||
var bitmap = new plus.nativeObj.Bitmap(fileName) |
|||
bitmap.loadBase64Data(base64, function() { |
|||
bitmap.save(filePath, {}, function() { |
|||
bitmap.clear() |
|||
resolve(filePath) |
|||
}, function(error) { |
|||
bitmap.clear() |
|||
reject(error) |
|||
}) |
|||
}, function(error) { |
|||
bitmap.clear() |
|||
reject(error) |
|||
}) |
|||
return |
|||
} |
|||
if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { |
|||
var filePath = wx.env.USER_DATA_PATH + '/' + fileName |
|||
wx.getFileSystemManager().writeFile({ |
|||
filePath: filePath, |
|||
data: dataUrlToBase64(base64), |
|||
encoding: 'base64', |
|||
success: function() { |
|||
resolve(filePath) |
|||
}, |
|||
fail: function(error) { |
|||
reject(error) |
|||
} |
|||
}) |
|||
return |
|||
} |
|||
reject(new Error('not support')) |
|||
}) |
|||
} |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"id": "mmmm-image-tools", |
|||
"name": "image-tools", |
|||
"version": "1.4.0", |
|||
"description": "图像转换工具,可用于图像和base64的转换", |
|||
"keywords": [ |
|||
"base64", |
|||
"保存", |
|||
"图像" |
|||
] |
|||
} |
@ -1,2 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/index"],{52:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(53));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},53:function(n,e,t){"use strict";t.r(e);var r=t(54),u=t(56);for(var c in u)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(c);var i,o=t(32),a=Object(o["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,null,null,!1,r["components"],i);a.options.__file="subPackages/index.vue",e["default"]=a.exports},54:function(n,e,t){"use strict";t.r(e);var r=t(55);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},55:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return i})),t.d(e,"recyclableRender",(function(){return c})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},c=!1,i=[];u._withStripped=!0},56:function(n,e,t){"use strict";t.r(e);var r=t(57),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},57:function(n,e){}},[[52,"common/runtime","common/vendor"]]]); |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/index"],{62:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(63));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},63:function(n,e,t){"use strict";t.r(e);var r=t(64),u=t(66);for(var c in u)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(c);var i,o=t(32),a=Object(o["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,null,null,!1,r["components"],i);a.options.__file="subPackages/index.vue",e["default"]=a.exports},64:function(n,e,t){"use strict";t.r(e);var r=t(65);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},65:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return i})),t.d(e,"recyclableRender",(function(){return c})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},c=!1,i=[];u._withStripped=!0},66:function(n,e,t){"use strict";t.r(e);var r=t(67),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},67:function(n,e){}},[[62,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../.sourcemap/mp-weixin/subPackages/index.js.map
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/service/service"],{68:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var o=r(t(69));n.__webpack_require_UNI_MP_PLUGIN__=t,e(o.default)}).call(this,t(1)["default"],t(2)["createPage"])},69:function(n,e,t){"use strict";t.r(e);var r=t(70),o=t(72);for(var i in o)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return o[n]}))}(i);t(74);var c,u=t(32),s=Object(u["default"])(o["default"],r["render"],r["staticRenderFns"],!1,null,"f07d9c0a",null,!1,r["components"],c);s.options.__file="subPackages/service/service.vue",e["default"]=s.exports},70:function(n,e,t){"use strict";t.r(e);var r=t(71);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},71:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return o})),t.d(e,"staticRenderFns",(function(){return c})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return r}));var o=function(){var n=this,e=n.$createElement,t=(n._self._c,n.form.content.length);n.$mp.data=Object.assign({},{$root:{g0:t}})},i=!1,c=[];o._withStripped=!0},72:function(n,e,t){"use strict";t.r(e);var r=t(73),o=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=o.a},73:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={data:function(){return{form:{name:"",phone:"",content:""}}},onLoad:function(){},methods:{sendForm:function(){return this.idChinaName(this.form.name)?this.IsTel(this.form.phone)?this.form.content.replace(/\s*/g,"").length<15?(n.showToast({title:"请输入15字以上的建议或反馈",icon:"none"}),!1):void this.Post({username:this.form.name,mobile:this.form.phone,content:this.form.content},"/api/suggest/add").then((function(e){e&&n.showToast({title:e.msg,icon:"none"})})):(n.showToast({title:"请输入正确的手机号",icon:"none"}),!1):(n.showToast({title:"请输入正确的姓名",icon:"none"}),!1)}}};e.default=t}).call(this,t(2)["default"])},74:function(n,e,t){"use strict";t.r(e);var r=t(75),o=t.n(r);for(var i in r)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(i);e["default"]=o.a},75:function(n,e,t){}},[[68,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/service/service.js.map
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationBarTitleText": "投诉建议", |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg data-v-f07d9c0a"><view class="line-list data-v-f07d9c0a"><view class="form data-v-f07d9c0a"><view class="form-item data-v-f07d9c0a"><view class="form-title data-v-f07d9c0a">姓名:</view><input type="text" placeholder="请填写您的姓名" placeholder-style="color:#999999;font-size:31rpx" data-event-opts="{{[['input',[['__set_model',['$0','name','$event',[]],['form']]]]]}}" value="{{form.name}}" bindinput="__e" class="data-v-f07d9c0a"/></view><view class="form-item data-v-f07d9c0a"><view class="form-title data-v-f07d9c0a">手机号:</view><input type="number" placeholder="请填写您的联系方式" maxlength="11" placeholder-style="color:#999999;font-size:31rpx" data-event-opts="{{[['input',[['__set_model',['$0','phone','$event',[]],['form']]]]]}}" value="{{form.phone}}" bindinput="__e" class="data-v-f07d9c0a"/></view></view><view class="content data-v-f07d9c0a"><view class="content-name data-v-f07d9c0a">反馈内容:</view><textarea cols="30" rows="10" placeholder="请填写具体的问题内容" placeholder-style="color: #999999;font-size: 31rpx;" maxlength="500" data-event-opts="{{[['input',[['__set_model',['$0','content','$event',[]],['form']]]]]}}" value="{{form.content}}" bindinput="__e" class="data-v-f07d9c0a"></textarea><label class="_span data-v-f07d9c0a">{{$root.g0+"/500"}}</label></view></view><view data-event-opts="{{[['tap',[['sendForm']]]]}}" class="{{['data-v-f07d9c0a','btn',[(form.name&&form.phone&&form.content)?'actBtn':'']]}}" bindtap="__e">提交</view></view> |
@ -0,0 +1,105 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
view.data-v-f07d9c0a { |
|||
box-sizing: border-box; |
|||
font-family: PingFang SC; |
|||
} |
|||
.bg.data-v-f07d9c0a { |
|||
min-height: 100vh; |
|||
background-color: white; |
|||
padding-top: 35rpx; |
|||
overflow: hidden; |
|||
padding-bottom: 160rpx; |
|||
} |
|||
.line-list.data-v-f07d9c0a { |
|||
width: 697rpx; |
|||
margin: 0 auto; |
|||
} |
|||
.line-list .form .form-item.data-v-f07d9c0a { |
|||
width: 697rpx; |
|||
height: 120rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
border-bottom: #D8D8D8 solid 1rpx; |
|||
} |
|||
.line-list .form .form-item .form-title.data-v-f07d9c0a { |
|||
width: 150rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
.line-list .content.data-v-f07d9c0a { |
|||
margin: 0 auto; |
|||
margin-top: 36rpx; |
|||
width: 697rpx; |
|||
position: relative; |
|||
} |
|||
.line-list .content ._span.data-v-f07d9c0a { |
|||
font-weight: 400; |
|||
font-size: 24rpx; |
|||
color: #999999; |
|||
position: absolute; |
|||
right: 22rpx; |
|||
bottom: 14rpx; |
|||
} |
|||
.line-list .content .content-name.data-v-f07d9c0a { |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
.line-list .content textarea.data-v-f07d9c0a { |
|||
width: 657rpx; |
|||
height: 243rpx; |
|||
background: #F7F7F7; |
|||
border-radius: 13rpx; |
|||
padding: 20rpx; |
|||
margin-top: 42rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
padding-bottom: 45rpx; |
|||
} |
|||
.btn.data-v-f07d9c0a { |
|||
width: 697rpx; |
|||
height: 80rpx; |
|||
background: #CCCCCC; |
|||
border-radius: 40rpx; |
|||
margin: 0 auto; |
|||
margin-top: 160rpx; |
|||
text-align: center; |
|||
line-height: 80rpx; |
|||
font-size: 36rpx; |
|||
font-weight: 500; |
|||
color: #FFFFFF; |
|||
position: absolute; |
|||
left: 26.5rpx; |
|||
bottom: 46rpx; |
|||
} |
|||
.actBtn.data-v-f07d9c0a { |
|||
background: #00AEA0; |
|||
} |
|||
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/user/coupon"],{100:function(n,e,t){"use strict";t.r(e);var o=t(101),s=t.n(o);for(var i in o)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return o[n]}))}(i);e["default"]=s.a},101:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={data:function(){return{navList:[{name:"可使用",id:"wait_use"},{name:"已失效",id:"past"}],navActive:"",coupon:[],password:""}},onShow:function(){this.getList(this.navList[0])},methods:{getPecenet:function(n){return n>=100||n<=0?"":(n=100-n,n%10==0&&(n/=10),n)},use:function(){n.switchTab({url:"/pages/index/index"})},submitPassword:function(){var e=this;console.log("提交的兑换码",this.password);var t=this;t.password=t.password.trim(),t.$refs.popup.close(),""!=t.password?(t.Post({card_key:t.password},"/api/coupon/getCoupon").then((function(o){console.log(o.code),200==o.code?(t.coupon=[],e.getList(e.navList[0]),n.showToast({title:"兑换成功",icon:"none"})):n.showToast({title:o.msg,icon:"none"})})),t.password=""):n.showToast({title:"请输入优惠券领取卡号",icon:"none"})},cancel:function(){this.password="",this.$refs.popup.close()},open:function(){this.$refs.popup.open("center")},changeRules:function(n,e){var t=this.coupon;t.forEach((function(n,t){n.openRules=t===e&&!n.openRules})),this.coupon=t,this.$forceUpdate()},showNoPriceNew:function(n){return n&&n>0?n/100:"0"},changeNav:function(n){this.navActive=n,this.getList(this.navList[this.navActive])},getList:function(n){var e=this;e.Post({status:n.id,offset:0,limit:100},"/api/coupon/getUserCoupon").then((function(n){n&&(console.log(n.data),e.coupon=n.data)}))}}};e.default=t}).call(this,t(2)["default"])},102:function(n,e,t){"use strict";t.r(e);var o=t(103),s=t.n(o);for(var i in o)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return o[n]}))}(i);e["default"]=s.a},103:function(n,e,t){},96:function(n,e,t){"use strict";(function(n,e){var o=t(4);t(26);o(t(25));var s=o(t(97));n.__webpack_require_UNI_MP_PLUGIN__=t,e(s.default)}).call(this,t(1)["default"],t(2)["createPage"])},97:function(n,e,t){"use strict";t.r(e);var o=t(98),s=t(100);for(var i in s)["default"].indexOf(i)<0&&function(n){t.d(e,n,(function(){return s[n]}))}(i);t(102);var r,c=t(32),u=Object(c["default"])(s["default"],o["render"],o["staticRenderFns"],!1,null,"a3c6d7ec",null,!1,o["components"],r);u.options.__file="subPackages/user/coupon.vue",e["default"]=u.exports},98:function(n,e,t){"use strict";t.r(e);var o=t(99);t.d(e,"render",(function(){return o["render"]})),t.d(e,"staticRenderFns",(function(){return o["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return o["recyclableRender"]})),t.d(e,"components",(function(){return o["components"]}))},99:function(n,e,t){"use strict";var o;t.r(e),t.d(e,"render",(function(){return s})),t.d(e,"staticRenderFns",(function(){return r})),t.d(e,"recyclableRender",(function(){return i})),t.d(e,"components",(function(){return o}));try{o={uniPopup:function(){return t.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(t.bind(null,104))}}}catch(c){if(-1===c.message.indexOf("Cannot find module")||-1===c.message.indexOf(".vue"))throw c;console.error(c.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var s=function(){var n=this,e=n.$createElement,t=(n._self._c,n.coupon.length),o=t>0?n.__map(n.coupon,(function(e,t){var o=n.__get_orig(e),s=1!=e.type?n.getPecenet(e.percent):null,i=e.open_time.slice(0,10),r=e.end_time.slice(0,10);return{$orig:o,m0:s,g1:i,g2:r}})):null;n.$mp.data=Object.assign({},{$root:{g0:t,l0:o}})},i=!1,r=[];s._withStripped=!0}},[[96,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/user/coupon.js.map
|
@ -0,0 +1,6 @@ |
|||
{ |
|||
"navigationBarTitleText": "优惠券", |
|||
"usingComponents": { |
|||
"uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" |
|||
} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg data-v-a3c6d7ec"><view class="nav-list data-v-a3c6d7ec"><block wx:for="{{navList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['changeNav',[index]]]]]}}" class="{{['data-v-a3c6d7ec','nav-item',[(index==navActive)?'active':'']]}}" bindtap="__e">{{item.name+''}}</view></block></view><block wx:if="{{$root.g0>0}}"><view class="coupon-list data-v-a3c6d7ec"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="{{['data-v-a3c6d7ec','coupon-item',[(navActive!=0)?'hasUse':'']]}}"><view class="item-top data-v-a3c6d7ec"><view class="top-left data-v-a3c6d7ec"><block wx:if="{{item.$orig.type==1}}"><view class="price price-before data-v-a3c6d7ec"><label class="_span data-v-a3c6d7ec">{{item.$orig.discounts/100}}</label></view></block><block wx:else><view class="price data-v-a3c6d7ec"><label class="_span data-v-a3c6d7ec">{{item.m0}}</label>折</view></block><view class="subtitle data-v-a3c6d7ec">{{'满'+item.$orig.min_limit/100+'元可用'}}</view></view><view class="top-right data-v-a3c6d7ec"><view class="title data-v-a3c6d7ec">{{''+item.$orig.title+''}}</view><view class="time data-v-a3c6d7ec">{{''+item.g1+"-"+item.g2+'可用'}}</view></view></view><view class="item-circle data-v-a3c6d7ec"><view class="circle left data-v-a3c6d7ec"></view><view class="line data-v-a3c6d7ec"></view><view class="circle right data-v-a3c6d7ec"></view></view><view class="item-bottom data-v-a3c6d7ec"><view data-event-opts="{{[['tap',[['changeRules',['$0',index],[[['coupon','',index]]]]]]]}}" class="rules data-v-a3c6d7ec" bindtap="__e"><block wx:if="{{!item.$orig.openRules}}"><label class="_span data-v-a3c6d7ec">{{"使用规则:"+item.$orig.coupon_activity.note}}</label></block><block wx:else><view class="open data-v-a3c6d7ec">{{"使用规则:"+item.$orig.coupon_activity.note}}</view></block><block wx:if="{{!item.$orig.openRules}}"><image src="https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20230415/6a7630c176f976bb16674dde482779fb.png" mode class="data-v-a3c6d7ec"></image></block><block wx:else><image src="https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20230415/f0073b18b3ab88cac62de60411360fc1.png" mode class="data-v-a3c6d7ec"></image></block></view></view></view></block></view></block><block wx:else><view class="noCoupon data-v-a3c6d7ec"><image class="no-couPon _img data-v-a3c6d7ec" src="https://static.ticket.sz-trip.com/yandu/images/user/couponNo.png"></image><view class="data-v-a3c6d7ec">暂无优惠券</view></view></block><uni-popup vue-id="15766e3c-1" type="center" data-ref="popup" class="data-v-a3c6d7ec vue-ref" bind:__l="__l" vue-slots="{{['default']}}"><view class="popupBox data-v-a3c6d7ec"><view class="name data-v-a3c6d7ec">兑换优惠券</view><input type="text" placeholder="请输入兑换码" data-event-opts="{{[['input',[['__set_model',['','password','$event',[]]]]]]}}" value="{{password}}" bindinput="__e" class="data-v-a3c6d7ec"/><view class="btns data-v-a3c6d7ec"><view data-event-opts="{{[['tap',[['cancel',['$event']]]]]}}" class="cancel data-v-a3c6d7ec" bindtap="__e">取消</view><label class="_span data-v-a3c6d7ec"></label><view data-event-opts="{{[['tap',[['submitPassword',['$event']]]]]}}" class="sub data-v-a3c6d7ec" bindtap="__e">兑换</view></view></view></uni-popup></view> |
@ -0,0 +1,284 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.bg.data-v-a3c6d7ec { |
|||
background: #F7F7F7; |
|||
min-height: 100vh; |
|||
} |
|||
/*导航*/ |
|||
.nav-list.data-v-a3c6d7ec { |
|||
width: 100%; |
|||
height: 107rpx; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
position: fixed; |
|||
background: #FFFFFF; |
|||
} |
|||
.nav-list .nav-item.data-v-a3c6d7ec { |
|||
text-align: center; |
|||
line-height: 106rpx; |
|||
box-sizing: border-box; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
padding: .23rpx 0; |
|||
color: #333333; |
|||
} |
|||
.nav-list .nav-item.active.data-v-a3c6d7ec { |
|||
color: #71B580; |
|||
border-bottom: 7rpx solid #71B580; |
|||
} |
|||
.coupon-list.data-v-a3c6d7ec { |
|||
/* width: 100%; */ |
|||
position: absolute; |
|||
top: 115rpx; |
|||
padding: 0 26.67rpx; |
|||
background: #F7F7F7; |
|||
min-height: 100vh; |
|||
padding-bottom: 30rpx; |
|||
} |
|||
.coupon-list .coupon-item.data-v-a3c6d7ec { |
|||
background: #ffffff; |
|||
margin-top: 20rpx; |
|||
border-radius: 13rpx; |
|||
} |
|||
.coupon-list .coupon-item .item-top.data-v-a3c6d7ec { |
|||
display: flex; |
|||
padding: 30rpx 16rpx 24rpx 36rpx; |
|||
align-items: center; |
|||
} |
|||
.coupon-item .item-top .price.data-v-a3c6d7ec { |
|||
font-size: 25rpx; |
|||
font-weight: bold; |
|||
color: #FC5209; |
|||
display: flex; |
|||
align-items: baseline; |
|||
justify-content: center; |
|||
} |
|||
.coupon-item .item-top .price ._span.data-v-a3c6d7ec { |
|||
font-size: 60rpx; |
|||
margin-right: 6.67rpx; |
|||
} |
|||
.top-left .subtitle.data-v-a3c6d7ec { |
|||
width: 100%; |
|||
font-size: 24rpx; |
|||
color: #FC5209; |
|||
padding-left: 6rpx; |
|||
overflow: hidden; |
|||
white-space: nowrap; |
|||
} |
|||
.top-left .price-before.data-v-a3c6d7ec::before { |
|||
content: '¥'; |
|||
font-size: 32rpx; |
|||
} |
|||
.top-right.data-v-a3c6d7ec { |
|||
margin-left: 46.67rpx; |
|||
font-size: 25rpx; |
|||
font-weight: 500; |
|||
color: #111; |
|||
} |
|||
.top-right .title.data-v-a3c6d7ec { |
|||
margin-bottom: 26rpx; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
} |
|||
.coupon-list .coupon-item .item-circle.data-v-a3c6d7ec { |
|||
/* position: relative; */ |
|||
line-height: 1rpx; |
|||
height: 1rpx; |
|||
width: 692rpx; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .line.data-v-a3c6d7ec { |
|||
border-bottom: 1px dashed #ccc; |
|||
/* position: absolute; */ |
|||
top: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
right: 0; |
|||
/* width: calc(100% - 1rem); */ |
|||
height: .1rpx; |
|||
margin: auto; |
|||
z-index: 9; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .circle.data-v-a3c6d7ec { |
|||
position: absolute; |
|||
top: 0; |
|||
bottom: 0; |
|||
margin: auto; |
|||
border-radius: 50%; |
|||
background: #ccc; |
|||
width: .46rpx; |
|||
height: .46rpx; |
|||
z-index: 10; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .circle.left.data-v-a3c6d7ec { |
|||
left: -.23rpx; |
|||
} |
|||
.coupon-list .coupon-item .item-circle .circle.right.data-v-a3c6d7ec { |
|||
right: -.23rpx; |
|||
} |
|||
.item-bottom.data-v-a3c6d7ec { |
|||
padding: 16rpx 20rpx; |
|||
display: flex; |
|||
align-items: flex-start; |
|||
justify-content: space-between; |
|||
} |
|||
.item-bottom .rules.data-v-a3c6d7ec { |
|||
font-size: 24rpx; |
|||
font-weight: 500; |
|||
color: #999; |
|||
display: flex; |
|||
line-height: 47rpx; |
|||
} |
|||
.item-bottom .rules ._span.data-v-a3c6d7ec { |
|||
width: 569rpx; |
|||
overflow: hidden; |
|||
white-space: nowrap; |
|||
text-overflow: ellipsis; |
|||
} |
|||
.item-bottom .rules image.data-v-a3c6d7ec { |
|||
width: 20rpx; |
|||
height: 20rpx; |
|||
margin-left: 68rpx; |
|||
margin-top: 15rpx; |
|||
} |
|||
.item-bottom .use.data-v-a3c6d7ec { |
|||
width: 133rpx; |
|||
height: 47rpx; |
|||
border: 1px solid #FC5209; |
|||
border-radius: 23rpx; |
|||
text-align: center; |
|||
font-size: 25rpx; |
|||
font-weight: 500; |
|||
color: #fc5209; |
|||
line-height: 47rpx; |
|||
} |
|||
.open.data-v-a3c6d7ec { |
|||
width: 569rpx; |
|||
min-height: 30rpx; |
|||
flex-wrap: wrap; |
|||
} |
|||
.duihuan.data-v-a3c6d7ec { |
|||
width: 293rpx; |
|||
height: 67rpx; |
|||
background: #fff; |
|||
box-shadow: 0rpx 0rpx 7rpx 0rpx rgba(153, 153, 153, 0.18); |
|||
border-radius: 33rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #07C49B; |
|||
text-align: center; |
|||
line-height: 67rpx; |
|||
margin-left: 228.67rpx; |
|||
position: fixed; |
|||
bottom: 52.67rpx; |
|||
} |
|||
.top-left.data-v-a3c6d7ec { |
|||
width: 140rpx; |
|||
} |
|||
.top-left .price.data-v-a3c6d7ec { |
|||
width: 100%; |
|||
/* overflow: hidden; */ |
|||
white-space: nowrap; |
|||
} |
|||
.popupBox.data-v-a3c6d7ec { |
|||
background: #fff; |
|||
border-radius: 20rpx; |
|||
padding: 40.67rpx 39.33rpx 35.33rpx 40rpx; |
|||
} |
|||
.popupBox .name.data-v-a3c6d7ec { |
|||
font-size: 35rpx; |
|||
color: #111; |
|||
font-weight: bold; |
|||
margin-bottom: 57.33rpx; |
|||
text-align: center; |
|||
} |
|||
.popupBox input.data-v-a3c6d7ec { |
|||
width: 454rpx; |
|||
height: 81rpx; |
|||
border: 1px solid #D8D8D8; |
|||
border-radius: 7rpx; |
|||
font-size: 31rpx; |
|||
font-weight: 500; |
|||
color: #999999; |
|||
line-height: 81rpx; |
|||
margin: 0 39.33rpx 72.67rpx 40rpx; |
|||
text-align: center; |
|||
} |
|||
.popupBox .btns.data-v-a3c6d7ec { |
|||
display: flex; |
|||
align-items: center; |
|||
font-size: 35rpx; |
|||
justify-content: space-around; |
|||
} |
|||
.popupBox .btns .cancel.data-v-a3c6d7ec { |
|||
color: #111; |
|||
} |
|||
.popupBox .btns ._span.data-v-a3c6d7ec { |
|||
width: 1rpx; |
|||
height: 53rpx; |
|||
background: #D8D8D8; |
|||
} |
|||
.popupBox .btns .sub.data-v-a3c6d7ec { |
|||
color: #07C49B; |
|||
} |
|||
.hasUse.data-v-a3c6d7ec { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-left .price.data-v-a3c6d7ec { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-left .subtitle.data-v-a3c6d7ec { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-right .title.data-v-a3c6d7ec { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-top .top-right .time.data-v-a3c6d7ec { |
|||
color: #999 !important; |
|||
} |
|||
.hasUse .item-bottom .use.data-v-a3c6d7ec { |
|||
border: 1px solid #B3B3B3 !important; |
|||
color: #999999 !important; |
|||
} |
|||
.noCoupon.data-v-a3c6d7ec { |
|||
padding-top: 524rpx; |
|||
text-align: center; |
|||
font-size: 31rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
.noCoupon .no-couPon.data-v-a3c6d7ec { |
|||
width: 173rpx; |
|||
height: 173rpx; |
|||
margin-bottom: 15rpx; |
|||
} |
|||
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/user/privacy"],{126:function(n,e,t){"use strict";(function(n,e){var r=t(4);t(26);r(t(25));var u=r(t(127));n.__webpack_require_UNI_MP_PLUGIN__=t,e(u.default)}).call(this,t(1)["default"],t(2)["createPage"])},127:function(n,e,t){"use strict";t.r(e);var r=t(128),u=t(130);for(var c in u)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return u[n]}))}(c);t(132);var i,a=t(32),o=Object(a["default"])(u["default"],r["render"],r["staticRenderFns"],!1,null,"0aa4cf54",null,!1,r["components"],i);o.options.__file="subPackages/user/privacy.vue",e["default"]=o.exports},128:function(n,e,t){"use strict";t.r(e);var r=t(129);t.d(e,"render",(function(){return r["render"]})),t.d(e,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(e,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(e,"components",(function(){return r["components"]}))},129:function(n,e,t){"use strict";var r;t.r(e),t.d(e,"render",(function(){return u})),t.d(e,"staticRenderFns",(function(){return i})),t.d(e,"recyclableRender",(function(){return c})),t.d(e,"components",(function(){return r}));var u=function(){var n=this,e=n.$createElement;n._self._c},c=!1,i=[];u._withStripped=!0},130:function(n,e,t){"use strict";t.r(e);var r=t(131),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},131:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={data:function(){return{list:[{name:"用户协议",id:"10001"},{name:"隐私协议",id:"9999"},{name:"个人信息收集清单",id:"9997"}]}},onShow:function(){},methods:{goInfo:function(e){n.navigateTo({url:"/subPackages/user/privacyInfo?id="+e.id})}}};e.default=t}).call(this,t(2)["default"])},132:function(n,e,t){"use strict";t.r(e);var r=t(133),u=t.n(r);for(var c in r)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return r[n]}))}(c);e["default"]=u.a},133:function(n,e,t){}},[[126,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/user/privacy.js.map
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationBarTitleText": "详情", |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg data-v-0aa4cf54"><view class="list data-v-0aa4cf54"><block wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="id"><view data-event-opts="{{[['tap',[['goInfo',['$0'],[[['list','id',item.id]]]]]]]}}" class="item data-v-0aa4cf54" bindtap="__e">{{''+item.name+''}}</view></block></view></view> |
@ -0,0 +1,49 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
view.data-v-0aa4cf54 { |
|||
box-sizing: border-box; |
|||
} |
|||
.list.data-v-0aa4cf54 { |
|||
width: 698rpx; |
|||
background: #FFFFFF; |
|||
box-shadow: 0px 4rpx 12rpx 0px rgba(150, 149, 149, 0.3); |
|||
border-radius: 18rpx; |
|||
margin: 0 auto; |
|||
margin-top: 20rpx; |
|||
padding: 0 20rpx; |
|||
} |
|||
.item.data-v-0aa4cf54 { |
|||
width: 100%; |
|||
height: 93rpx; |
|||
border-bottom: 1rpx solid #EEEFF7; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
line-height: 93rpx; |
|||
} |
|||
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/user/privacyInfo"],{88:function(n,t,e){"use strict";(function(n,t){var r=e(4);e(26);r(e(25));var c=r(e(89));n.__webpack_require_UNI_MP_PLUGIN__=e,t(c.default)}).call(this,e(1)["default"],e(2)["createPage"])},89:function(n,t,e){"use strict";e.r(t);var r=e(90),c=e(92);for(var u in c)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return c[n]}))}(u);e(94);var i,o=e(32),a=Object(o["default"])(c["default"],r["render"],r["staticRenderFns"],!1,null,null,null,!1,r["components"],i);a.options.__file="subPackages/user/privacyInfo.vue",t["default"]=a.exports},90:function(n,t,e){"use strict";e.r(t);var r=e(91);e.d(t,"render",(function(){return r["render"]})),e.d(t,"staticRenderFns",(function(){return r["staticRenderFns"]})),e.d(t,"recyclableRender",(function(){return r["recyclableRender"]})),e.d(t,"components",(function(){return r["components"]}))},91:function(n,t,e){"use strict";var r;e.r(t),e.d(t,"render",(function(){return c})),e.d(t,"staticRenderFns",(function(){return i})),e.d(t,"recyclableRender",(function(){return u})),e.d(t,"components",(function(){return r}));var c=function(){var n=this,t=n.$createElement,e=(n._self._c,n.formateRichText(n.content));n.$mp.data=Object.assign({},{$root:{m0:e}})},u=!1,i=[];c._withStripped=!0},92:function(n,t,e){"use strict";e.r(t);var r=e(93),c=e.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(u);t["default"]=c.a},93:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={data:function(){return{content:""}},onLoad:function(n){var t=this;this.Post({id:n.id},"/api/article/getArticleById").then((function(n){t.content=n.data.content}))}};t.default=r},94:function(n,t,e){"use strict";e.r(t);var r=e(95),c=e.n(r);for(var u in r)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return r[n]}))}(u);t["default"]=c.a},95:function(n,t,e){}},[[88,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/user/privacyInfo.js.map
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationBarTitleText": "详情", |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg"><view class="text"><rich-text nodes="{{$root.m0}}"></rich-text></view></view> |
@ -0,0 +1,30 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.text { |
|||
padding: 20rpx; |
|||
} |
|||
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/user/profile"],{135:function(e,t,n){"use strict";n.r(t);var o=n(136);n.d(t,"render",(function(){return o["render"]})),n.d(t,"staticRenderFns",(function(){return o["staticRenderFns"]})),n.d(t,"recyclableRender",(function(){return o["recyclableRender"]})),n.d(t,"components",(function(){return o["components"]}))},136:function(e,t,n){"use strict";var o;n.r(t),n.d(t,"render",(function(){return a})),n.d(t,"staticRenderFns",(function(){return i})),n.d(t,"recyclableRender",(function(){return r})),n.d(t,"components",(function(){return o}));var a=function(){var e=this,t=e.$createElement,n=(e._self._c,e.info?e.showImg(e.info.avatar):null);e._isMounted||(e.e0=function(t){e.showSexSelect=!0}),e.$mp.data=Object.assign({},{$root:{m0:n}})},r=!1,i=[];a._withStripped=!0},138:function(e,t,n){"use strict";n.r(t);var o=n(139),a=n.n(o);for(var r in o)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(r);t["default"]=a.a},139:function(e,t,n){},76:function(e,t,n){"use strict";(function(e,t){var o=n(4);n(26);o(n(25));var a=o(n(77));e.__webpack_require_UNI_MP_PLUGIN__=n,t(a.default)}).call(this,n(1)["default"],n(2)["createPage"])},77:function(e,t,n){"use strict";n.r(t);var o=n(135),a=n(78);for(var r in a)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return a[e]}))}(r);n(138);var i,c=n(32),s=Object(c["default"])(a["default"],o["render"],o["staticRenderFns"],!1,null,"88bf8616",null,!1,o["components"],i);s.options.__file="subPackages/user/profile.vue",t["default"]=s.exports},78:function(e,t,n){"use strict";n.r(t);var o=n(79),a=n.n(o);for(var r in o)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(r);t["default"]=a.a},79:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(137),a={name:"Profile",data:function(){var e=this.getDate({format:!0});return{date:e,info:null,showSexSelect:!1,sexes:[{value:"1",text:"男"},{value:"2",text:"女"}],today:null,showCropper:!1,nickname:"",gender:"",birthday:"",email:"",fileList1:[],startDate:"1900-1-1",endDate:"2050-1-1"}},onShow:function(){console.log(this.$store.state.user.userInfo,e.getStorageSync("userInfo")),this.getList()},computed:{},methods:{getFile:function(e){console.log(e)},getList:function(){var t=this,n=new Date;n=n.getFullYear()+"/"+(n.getMonth()+1)+"/"+n.getDate(),this.today=n,this.Post({},"/api/user/userInfo").then((function(n){if(!n.data.birthday){var o=new Date;n.data.birthday=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()}t.info=n.data,t.nickname=t.info.nickname,t.email=t.info.email,t.birthday=t.info.birthday,t.gender=t.info.gender,t.info.token=JSON.parse(e.getStorageSync("userInfo")).token||t.$store.state.user.userInfo.token,console.log(t.info),t.$store.commit("changeUserInfo",t.info)}))},uploadImg:function(){var t=this;e.chooseImage({success:function(n){var a=n.tempFilePaths;(0,o.pathToBase64)(a[0]).then((function(n){t.Post({method:"POST",base64:n},"/api/common/base64").then((function(n){n.data&&t.Post({avatar:n.data},"/api/user/profile").then((function(n){e.showModal({title:"提示",content:n.msg,showCancel:!1,success:function(e){e.confirm&&t.getList()}})}))}))}))}})},bindDateChange:function(e){this.birthday=e.detail.value},getDate:function(e){var t=new Date,n=t.getFullYear(),o=t.getMonth()+1,a=t.getDate();return"start"===e?n-=60:"end"===e&&(n+=2),o=o>9?o:"0"+o,a=a>9?a:"0"+a,"".concat(n,"/").concat(o,"/").concat(a)},changesex:function(e){this.gender=e.detail.value},submit:function(){var t=this;e.showModal({title:"提示",content:"确认修改您的信息?",success:function(n){n.confirm&&t.Post({nickname:t.nickname,gender:t.gender,birthday:t.birthday},"/api/user/profile").then((function(n){console.log(n),1==n.code&&e.showModal({title:"提示",content:n.msg,showCancel:!1,success:function(e){e.confirm&&t.getList()}})}))}})}}};t.default=a}).call(this,n(2)["default"])}},[[76,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/user/profile.js.map
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationBarTitleText": "个人信息", |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1 @@ |
|||
<block wx:if="{{info}}"><view class="data-v-88bf8616"><view class="user-other-info data-v-88bf8616"><view class="info-avatar-top _div data-v-88bf8616"><label class="_span data-v-88bf8616">头像</label><view data-event-opts="{{[['tap',[['uploadImg']]]]}}" bindtap="__e" class="data-v-88bf8616"><image style="width:80rpx;height:80rpx;border-radius:50%;" src="{{$root.m0}}" mode="aspectFill" class="data-v-88bf8616"></image></view></view><navigator class="userinfo-item data-v-88bf8616" url="/subPackages/user/changeNickname" tag="view"><label class="_span data-v-88bf8616">姓名</label><view class="data-v-88bf8616">{{nickname}}</view></navigator><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="userinfo-item data-v-88bf8616" bindtap="__e"><label class="_span data-v-88bf8616">性别</label><radio-group data-event-opts="{{[['change',[['changesex',['$event']]]]]}}" bindchange="__e" class="data-v-88bf8616"><block wx:for="{{sexes}}" wx:for-item="item" wx:for-index="index" wx:key="index"><label style="margin-right:15rpx;" class="data-v-88bf8616"><radio color="#7FD491" value="{{item.value}}" checked="{{index===info.gender-1}}" class="data-v-88bf8616"></radio>{{item.text+''}}</label></block></radio-group></view><view class="userinfo-item data-v-88bf8616"><label class="_span data-v-88bf8616">手机号</label><view class="data-v-88bf8616">{{info.mobile}}</view></view><view class="userinfo-item data-v-88bf8616"><label class="_span data-v-88bf8616">生日</label><picker mode="date" value="{{date}}" start="{{startDate}}" end="{{endDate}}" data-event-opts="{{[['change',[['bindDateChange',['$event']]]]]}}" bindchange="__e" class="data-v-88bf8616"><view class="uni-input data-v-88bf8616">{{birthday}}</view></picker></view><view data-event-opts="{{[['tap',[['submit',['$event']]]]]}}" class="btn-tao data-v-88bf8616" bindtap="__e">保存</view></view></view></block> |
@ -0,0 +1,116 @@ |
|||
|
|||
view.data-v-88bf8616 { |
|||
box-sizing: content-box; |
|||
} |
|||
.info-avatar-top.data-v-88bf8616 { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
font-size: 30rpx; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 40rpx 0; |
|||
height: 48rpx; |
|||
color: #333; |
|||
align-items: center; |
|||
} |
|||
.info-avatar-top view.data-v-88bf8616{ |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
.info-avatar-top view.data-v-88bf8616:after{ |
|||
font-family: "iconfont"; |
|||
content: "\e62e"; |
|||
font-size: 26rpx; |
|||
font-weight: bold; |
|||
margin-left: 6rpx; |
|||
} |
|||
.info-avatar-top ._img.data-v-88bf8616 { |
|||
width: 80rpx; |
|||
height: 80rpx; |
|||
border-radius: 50%; |
|||
margin-right: 10rpx; |
|||
} |
|||
.change-avatar-btn.data-v-88bf8616 { |
|||
color: #FFF; |
|||
width: 220rpx; |
|||
margin: 0 auto; |
|||
line-height: 70rpx; |
|||
border-radius: 20rpx; |
|||
background: #4C93FF; |
|||
position: relative; |
|||
font-size: 34rpx; |
|||
} |
|||
.change-avatar-btn input.data-v-88bf8616 { |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
opacity: 0; |
|||
} |
|||
.user-other-info.data-v-88bf8616 { |
|||
margin: 30rpx; |
|||
} |
|||
.userinfo-item.data-v-88bf8616 { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
font-size: 30rpx; |
|||
border-bottom: 1rpx solid #D8D8D8; |
|||
padding: 40rpx 0; |
|||
height: 48rpx; |
|||
color: #333; |
|||
} |
|||
.info-avatar-top ._span.data-v-88bf8616 { |
|||
font-weight: 500; |
|||
font-size: 31rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
.userinfo-item ._span.data-v-88bf8616 { |
|||
font-weight: 500; |
|||
font-size: 31rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
.userinfo-item view.data-v-88bf8616:after, |
|||
.birthday-box.data-v-88bf8616:after { |
|||
font-family: "iconfont"; |
|||
content: "\e62e"; |
|||
font-size: 26rpx; |
|||
font-weight: bold; |
|||
margin-left: 6rpx; |
|||
} |
|||
.birthday-box.data-v-88bf8616 { |
|||
text-align: right; |
|||
} |
|||
.cropper.data-v-88bf8616 { |
|||
width: auto; |
|||
height: 100%; |
|||
} |
|||
.cropper-content.data-v-88bf8616 { |
|||
position: fixed; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
z-index: 1000; |
|||
} |
|||
.dialog-footer .change-avatar-btn.data-v-88bf8616 { |
|||
position: fixed; |
|||
text-align: center; |
|||
bottom: 80rpx; |
|||
left: 50%; |
|||
margin-left: -110rpx; |
|||
} |
|||
.btn-tao.data-v-88bf8616 { |
|||
text-align: center; |
|||
font-size: 30rpx; |
|||
width: 697rpx; |
|||
height: 80rpx; |
|||
background: linear-gradient(90deg, #9EE4FE, #7FD491); |
|||
border-radius: 40rpx; |
|||
line-height: 80rpx; |
|||
color: #FFFFFF; |
|||
position: fixed; |
|||
left: 26rpx; |
|||
bottom: 100rpx; |
|||
} |
|||
|
@ -0,0 +1,2 @@ |
|||
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["subPackages/user/travelerList"],{80:function(t,e,n){"use strict";(function(t,e){var i=n(4);n(26);i(n(25));var r=i(n(81));t.__webpack_require_UNI_MP_PLUGIN__=n,e(r.default)}).call(this,n(1)["default"],n(2)["createPage"])},81:function(t,e,n){"use strict";n.r(e);var i=n(82),r=n(84);for(var s in r)["default"].indexOf(s)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(s);n(86);var u,o=n(32),a=Object(o["default"])(r["default"],i["render"],i["staticRenderFns"],!1,null,"7d9761e9",null,!1,i["components"],u);a.options.__file="subPackages/user/travelerList.vue",e["default"]=a.exports},82:function(t,e,n){"use strict";n.r(e);var i=n(83);n.d(e,"render",(function(){return i["render"]})),n.d(e,"staticRenderFns",(function(){return i["staticRenderFns"]})),n.d(e,"recyclableRender",(function(){return i["recyclableRender"]})),n.d(e,"components",(function(){return i["components"]}))},83:function(t,e,n){"use strict";var i;n.r(e),n.d(e,"render",(function(){return r})),n.d(e,"staticRenderFns",(function(){return u})),n.d(e,"recyclableRender",(function(){return s})),n.d(e,"components",(function(){return i}));var r=function(){var t=this,e=t.$createElement;t._self._c;t._isMounted||(t.e0=function(e){t.showType=0},t.e1=function(e){t.showType=1})},s=!1,u=[];r._withStripped=!0},84:function(t,e,n){"use strict";n.r(e);var i=n(85),r=n.n(i);for(var s in i)["default"].indexOf(s)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(s);e["default"]=r.a},85:function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={name:"travelerList",data:function(){return{showType:0,travelList:[],addressList:[]}},onShow:function(){this.init()},methods:{init:function(){var t=this;this.Post({},"/api/user/contactList").then((function(e){e&&(t.travelList=e.data)})),this.Post({},"/api/user/consigneeList").then((function(e){e&&(t.addressList=e.data)}))},delet:function(e){var n=this;t.showModal({title:"提示",content:"确定要删除该出行人吗?",success:function(i){i.confirm?n.Post({id:e.id},"/api/user/delDetail").then((function(e){e&&t.showToast({icon:"none",title:e.msg}),n.init()})):i.cancel&&console.log("用户点击取消")}})},defaultC:function(t){var e=this;this.Post({id:t.id,is_default:1},"/api/user/editContact").then((function(n){1==n.code&&(e.travelList.forEach((function(t){return t.is_default=0})),t.is_default=!t.is_default)}))},edit:function(e){var n="";n=this.showType?"/subPackages/user/myAddressAdd?id="+e:"/subPackages/user/myContactsAdd?type=edit&id="+e,t.navigateTo({url:n})}}};e.default=n}).call(this,n(2)["default"])},86:function(t,e,n){"use strict";n.r(e);var i=n(87),r=n.n(i);for(var s in i)["default"].indexOf(s)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(s);e["default"]=r.a},87:function(t,e,n){}},[[80,"common/runtime","common/vendor"]]]); |
|||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/subPackages/user/travelerList.js.map
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationBarTitleText": "常用信息", |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1 @@ |
|||
<view class="bg data-v-7d9761e9"><view class="cancat-nav flex-around data-v-7d9761e9"><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="{{['data-v-7d9761e9','concat-nav-item',showType===0?'active':'']}}" bindtap="__e"><view class="data-v-7d9761e9">出行人信息</view><block wx:if="{{showType===0}}"><view class="active-bar data-v-7d9761e9"></view></block></view><view data-event-opts="{{[['tap',[['e1',['$event']]]]]}}" class="{{['data-v-7d9761e9','concat-nav-item',showType===1?'active':'']}}" bindtap="__e"><view class="data-v-7d9761e9">收货地址</view><block wx:if="{{showType===1}}"><view class="active-bar data-v-7d9761e9"></view></block></view></view><block wx:if="{{showType===0}}"><view class="data-v-7d9761e9"><block wx:for="{{travelList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-7d9761e9"><view class="name data-v-7d9761e9"><view class="data-v-7d9761e9">{{''+item.name+''}}</view><view class="data-v-7d9761e9">{{''+item.tel+''}}</view></view><view class="idcard data-v-7d9761e9"><view class="data-v-7d9761e9">{{''+item.document_type_text+':'}}</view><view class="data-v-7d9761e9">{{''+item.id_number+''}}</view></view><view class="item-btn data-v-7d9761e9"><view class="choice data-v-7d9761e9"><block wx:if="{{item.is_default==1}}"><image src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" mode="aspectFill" class="data-v-7d9761e9"></image></block><block wx:else><view data-event-opts="{{[['tap',[['defaultC',['$0'],[[['travelList','',index]]]]]]]}}" class="yuan data-v-7d9761e9" catchtap="__e"></view></block><view class="data-v-7d9761e9">默认出行人</view></view><view class="btn-list data-v-7d9761e9"><view data-event-opts="{{[['tap',[['edit',['$0'],[[['travelList','',index,'id']]]]]]]}}" class="btn-item data-v-7d9761e9" catchtap="__e">修改</view><view data-event-opts="{{[['tap',[['delet',['$0'],[[['travelList','',index]]]]]]]}}" class="btn-item data-v-7d9761e9" catchtap="__e">删除</view></view></view></view></block></view></block><block wx:else><view class="data-v-7d9761e9"><block wx:for="{{addressList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-7d9761e9"><view class="name data-v-7d9761e9"><view class="data-v-7d9761e9">{{''+item.name+''}}</view><view class="data-v-7d9761e9">{{''+item.tel+''}}<block wx:if="{{item.is_default==1}}"><label class="_span data-v-7d9761e9">默认</label></block></view></view><view class="idcard data-v-7d9761e9"><view class="data-v-7d9761e9">收货地址:</view><view class="text-overflow data-v-7d9761e9">{{''+item.address+''}}</view></view><view class="item-btn data-v-7d9761e9" style="justify-content:flex-end;"><view class="btn-list data-v-7d9761e9"><view data-event-opts="{{[['tap',[['edit',['$0'],[[['addressList','',index,'id']]]]]]]}}" class="btn-item data-v-7d9761e9" catchtap="__e">修改</view><view data-event-opts="{{[['tap',[['delet',['$0'],[[['addressList','',index]]]]]]]}}" class="btn-item data-v-7d9761e9" catchtap="__e">删除</view></view></view></view></block></view></block><view class="btn-box data-v-7d9761e9"><navigator class="btn data-v-7d9761e9" url="{{showType?'/subPackages/user/myAddressAdd':'/subPackages/user/myContactsAdd'}}">{{''+(showType?'添加收货地址':'添加出行人')+''}}</navigator></view></view> |
@ -0,0 +1,155 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.bg.data-v-7d9761e9 { |
|||
position: relative; |
|||
background: #F7F7F7; |
|||
height: 100vh; |
|||
overflow-x: hidden; |
|||
padding-bottom: 200rpx; |
|||
} |
|||
.cancat-nav.data-v-7d9761e9 { |
|||
width: 100%; |
|||
display: flex; |
|||
height: 112rpx; |
|||
flex-shrink: 0; |
|||
} |
|||
.cancat-nav .concat-nav-item.data-v-7d9761e9 { |
|||
ffont-weight: 500; |
|||
font-size: 35rpx; |
|||
color: #000000; |
|||
text-align: center; |
|||
} |
|||
.cancat-nav .concat-nav-item.active.data-v-7d9761e9 { |
|||
color: #000000; |
|||
} |
|||
.cancat-nav .active-bar.data-v-7d9761e9 { |
|||
width: 100%; |
|||
height: 11rpx; |
|||
background: #71B580; |
|||
} |
|||
.item.data-v-7d9761e9 { |
|||
width: 697rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 13rpx; |
|||
margin: 0 auto; |
|||
margin-bottom: 28rpx; |
|||
padding: 26rpx; |
|||
} |
|||
.item .name.data-v-7d9761e9, |
|||
.item .idcard.data-v-7d9761e9 { |
|||
display: flex; |
|||
font-size: 31rpx; |
|||
font-weight: bold; |
|||
color: #333333; |
|||
} |
|||
.item .name view.data-v-7d9761e9:last-child { |
|||
margin-left: 40rpx; |
|||
} |
|||
.item .name ._span.data-v-7d9761e9 { |
|||
padding: 3rpx 9rpx; |
|||
background: #71B580; |
|||
border-radius: 7rpx; |
|||
font-weight: bold; |
|||
font-size: 24rpx; |
|||
color: #FFFFFF; |
|||
margin-left: 15rpx; |
|||
} |
|||
.item .idcard.data-v-7d9761e9 { |
|||
margin-top: 26rpx; |
|||
} |
|||
.item .idcard view.data-v-7d9761e9:last-child { |
|||
margin-left: 14rpx; |
|||
font-weight: 400; |
|||
max-width: 492rpx; |
|||
} |
|||
.item .item-btn.data-v-7d9761e9 { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
margin-top: 40rpx; |
|||
} |
|||
.item .item-btn .choice.data-v-7d9761e9 { |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
.item .item-btn .choice view.data-v-7d9761e9:last-child { |
|||
margin-left: 20rpx; |
|||
font-size: 27rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
} |
|||
.item .item-btn .choice image.data-v-7d9761e9 { |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
} |
|||
.item .item-btn .choice .yuan.data-v-7d9761e9 { |
|||
width: 40rpx; |
|||
height: 40rpx; |
|||
background: rgba(255, 200, 37, 0); |
|||
border: 1rpx solid #999999; |
|||
border-radius: 20rpx; |
|||
} |
|||
.item .item-btn .btn-list.data-v-7d9761e9 { |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
.item .item-btn .btn-list view.data-v-7d9761e9 { |
|||
width: 134rpx; |
|||
height: 54rpx; |
|||
background: #FFFFFF; |
|||
border: 1px solid #999999; |
|||
border-radius: 27rpx; |
|||
font-size: 27rpx; |
|||
font-weight: 500; |
|||
color: #333333; |
|||
line-height: 52rpx; |
|||
text-align: center; |
|||
} |
|||
.item .item-btn .btn-list view.data-v-7d9761e9:last-child { |
|||
margin-left: 14rpx; |
|||
} |
|||
.btn-box.data-v-7d9761e9 { |
|||
position: fixed; |
|||
bottom: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 200rpx; |
|||
} |
|||
.btn-box .btn.data-v-7d9761e9 { |
|||
width: 697rpx; |
|||
line-height: 80rpx; |
|||
background: #00AEA0; |
|||
border-radius: 37rpx; |
|||
font-weight: 500; |
|||
font-size: 36rpx; |
|||
color: #FFFFFF; |
|||
text-align: center; |
|||
position: fixed; |
|||
bottom: 53rpx; |
|||
left: 26.67rpx; |
|||
} |
|||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,6 @@ |
|||
{ |
|||
"usingComponents": { |
|||
"uni-transition": "/uni_modules/uni-transition/components/uni-transition/uni-transition" |
|||
}, |
|||
"component": true |
|||
} |
@ -0,0 +1 @@ |
|||
<block wx:if="{{showPopup}}"><view class="{{['uni-popup',popupstyle,isDesktop?'fixforpc-z-index':'']}}"><view data-event-opts="{{[['touchstart',[['touchstart',['$event']]]]]}}" bindtouchstart="__e"><block wx:if="{{maskShow}}"><uni-transition vue-id="0c37304b-1" name="mask" mode-class="fade" styles="{{maskClass}}" duration="{{duration}}" show="{{showTrans}}" data-event-opts="{{[['^click',[['onTap']]]]}}" bind:click="__e" bind:__l="__l"></uni-transition></block><uni-transition vue-id="0c37304b-2" mode-class="{{ani}}" name="content" styles="{{transClass}}" duration="{{duration}}" show="{{showTrans}}" data-event-opts="{{[['^click',[['onTap']]]]}}" bind:click="__e" bind:__l="__l" vue-slots="{{['default']}}"><view data-event-opts="{{[['tap',[['clear',['$event']]]]]}}" class="{{['uni-popup__wrapper',popupstyle]}}" style="{{'background-color:'+(bg)+';'}}" bindtap="__e"><slot></slot></view></uni-transition></view></view></block> |
@ -0,0 +1,49 @@ |
|||
@charset "UTF-8"; |
|||
/** |
|||
* 这里是uni-app内置的常用样式变量 |
|||
* |
|||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
|||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
|||
* |
|||
*/ |
|||
/** |
|||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
|||
* |
|||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
|||
*/ |
|||
/* 颜色变量 */ |
|||
/* 行为相关颜色 */ |
|||
/* 文字基本颜色 */ |
|||
/* 背景颜色 */ |
|||
/* 边框颜色 */ |
|||
/* 尺寸变量 */ |
|||
/* 文字尺寸 */ |
|||
/* 图片尺寸 */ |
|||
/* Border Radius */ |
|||
/* 水平间距 */ |
|||
/* 垂直间距 */ |
|||
/* 透明度 */ |
|||
/* 文章场景相关 */ |
|||
.uni-popup { |
|||
position: fixed; |
|||
z-index: 99; |
|||
} |
|||
.uni-popup.top, .uni-popup.left, .uni-popup.right { |
|||
top: 0; |
|||
} |
|||
.uni-popup .uni-popup__wrapper { |
|||
display: block; |
|||
position: relative; |
|||
/* iphonex 等安全区设置,底部安全区适配 */ |
|||
} |
|||
.uni-popup .uni-popup__wrapper.left, .uni-popup .uni-popup__wrapper.right { |
|||
padding-top: 0; |
|||
flex: 1; |
|||
} |
|||
.fixforpc-z-index { |
|||
z-index: 999; |
|||
} |
|||
.fixforpc-top { |
|||
top: 0; |
|||
} |
|||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
{ |
|||
"usingComponents": {}, |
|||
"component": true |
|||
} |
@ -0,0 +1 @@ |
|||
<block wx:if="{{isShow}}"><view class="{{['vue-ref',customClass]}}" style="{{(transformStyles)}}" animation="{{animationData}}" data-ref="ani" data-event-opts="{{[['tap',[['onClick',['$event']]]]]}}" bindtap="__e"><slot></slot></view></block> |
Loading…
Reference in new issue