[修改联通活动]

This commit is contained in:
2024-03-04 15:10:46 +08:00
parent 69824dedea
commit 3acc754890
25 changed files with 852 additions and 692 deletions

View File

@@ -1,35 +1,35 @@
/** /**
* 手太欠 * 手太欠
* 愿这世界都如故事里一样 美好而动人~ * 愿这世界都如故事里一样 美好而动人~
*/ */
import request from '../request' import request from '../request'
// 手机号+验证码登录 // 手机号+验证码登录
const auth = (data) => { const auth = (data) => {
return request({ return request({
url: 'auth/login_by_code', url: 'auth/login_by_code',
method: 'POST', method: 'POST',
data: data data: data
}) })
} }
// 设置登录密码 // 设置登录密码
const passSetup = (data) => { const passSetup = (data) => {
return request({ return request({
url: 'auth/reset_password', url: 'auth/reset_password',
method: 'POST', method: 'POST',
data: data data: data
}) })
} }
// 手机号+密码登录 // 手机号+密码登录
const passlogin = (data) => { const passlogin = (data) => {
return request({ return request({
url: 'auth/login_by_password', url: 'auth/login_by_password',
method: 'POST', method: 'POST',
data: data data: data
}) })
} }
// 注册 // 注册
@@ -39,31 +39,39 @@ const register = (data) => {
method: 'POST', method: 'POST',
data: data data: data
}) })
} }
// 领取红包-发送短信-获取验证码 // 领取红包-发送短信-获取验证码
const send = (data) => { const send = (data) => {
return request({
url: 'sms/send',
method: 'POST',
data: data
})
}
// 领取红包-领取
const unicom = (data) => {
return request({
url: 'unicom/get',
method: 'POST',
data: data
})
}
// 获取短信前图形验证码
const Captcha = () =>{
return request({ return request({
url: 'sms/send', url: "auth/captcha",
method: 'POST',
data: data
}) })
} }
// 领取红包-领取 export {
const unicom = (data) => { auth,
return request({ passSetup,
url: 'unicom/get',
method: 'POST',
data: data
})
}
export {
auth,
passSetup,
passlogin, passlogin,
register, register,
send, send,
unicom unicom,
} Captcha
}

View File

@@ -1,143 +1,153 @@
/** /**
* 手太欠 * 手太欠
* 愿这世界都如故事里一样 美好而动人~ * 愿这世界都如故事里一样 美好而动人~
*/ */
import request from '../request.js' import request from '../request.js'
// 权益详情 // 权益详情
const index = (data) => { const index = (data) => {
return request({ return request({
url : 'orders/create/', url : 'orders/create/',
data: data data: data
}) })
} }
// 权益分类 // 权益分类
const classify = (category_id, data) => { const classify = (category_id, data) => {
return request({ return request({
url : 'categories/' + category_id, url : 'categories/' + category_id,
data: data data: data
}) })
} }
// 权益购买提交 // 权益购买提交
const rightStore = (data) => { const rightStore = (data) => {
return request({ return request({
url : 'orders/store/', url : 'orders/store/',
method: "POST", method: "POST",
data: data data: data
}) })
} }
// 洗车券-获取跳转地址 --暂时隐藏 // 洗车券-获取跳转地址 --暂时隐藏
const washcarUrl = (data) => { const washcarUrl = (data) => {
return request({ return request({
url: 'washcar/infourl', url: 'washcar/infourl',
data: data data: data
}) })
} }
// 获取洗车券信息 // 获取洗车券信息
const washcarBuy = (data) => { const washcarBuy = (data) => {
return request({ return request({
url: 'washcar/create', url: 'washcar/create',
data: data data: data
}) })
} }
// 洗车券订单提交 // 洗车券订单提交
const washcarCreate = (data) => { const washcarCreate = (data) => {
return request({ return request({
url : 'washcar/create', url : 'washcar/create',
method: "POST", method: "POST",
data: data data: data
}) })
} }
// h5微信支付获取微信授权地址 // h5微信支付获取微信授权地址
const getAuthUrl = (url) => { const getAuthUrl = (url) => {
return request({ return request({
url : 'auth/get_auth_url', url : 'auth/get_auth_url',
data: { data: {
url url
} }
}) })
} }
// h5掉起微信支付的前置获取相关的签名信息 // h5掉起微信支付的前置获取相关的签名信息
const wpayH5Info = (data) => { const wpayH5Info = (data) => {
return request({ return request({
url : 'auth/jssdk', url : 'auth/jssdk',
data: data data: data
}) })
} }
//获取openid地址-web
const unionpay = (data) => { // h5掉起微信授权的前置获取相关的签名信息前置
return request({ const cjsubscribeUrl = (data) => {
url : 'unionpay/openid', return request({
data: data url: 'auth/cjjssdk',
}) data: data
} })
}
//领取银联权益优惠券
const unionCode = (data) => { //获取openid地址-web
return request({ const unionpay = (data) => {
url : 'unionpay/union_openid', return request({
data: data url : 'unionpay/openid',
}) data: data
} })
}
// 权益 单订单支付
const rightsSingle = (orderid) => { //领取银联权益优惠券
return request({ const unionCode = (data) => {
url : 'payments/order', return request({
data: { url : 'unionpay/union_openid',
orderid data: data
} })
}) }
}
// 权益 单订单支付
// h5掉起微信支付的前置获取相关的签名信息 const rightsSingle = (orderid) => {
// const fridayPayH5 = (url, data) => { return request({
// return request({ url : 'payments/order',
// url : 'payments/welfare/wechat', data: {
// method: "POST", orderid
// data: data }
// }) })
// } }
// H5 权益支付 // h5掉起微信支付的前置获取相关的签名信息
// const wechatH5 = (data) => { // const fridayPayH5 = (url, data) => {
// return request({ // return request({
// url : 'payments/wechat', // url : 'payments/welfare/wechat',
// method: "POST", // method: "POST",
// data: data // data: data
// }) // })
// } // }
const h5Pay = (url, data) => { // H5 权益支付
return request({ // const wechatH5 = (data) => {
url: url, // return request({
method: "POST", // url : 'payments/wechat',
data // method: "POST",
}) // data: data
} // })
// }
export {
index, const h5Pay = (url, data) => {
classify, return request({
rightStore, url: url,
washcarUrl, method: "POST",
washcarBuy, data
washcarCreate, })
getAuthUrl, }
wpayH5Info,
unionpay, export {
unionCode, index,
rightsSingle, classify,
h5Pay rightStore,
washcarUrl,
washcarBuy,
washcarCreate,
getAuthUrl,
wpayH5Info,
cjsubscribeUrl,
unionpay,
unionCode,
rightsSingle,
h5Pay
} }

View File

@@ -82,9 +82,10 @@
"usingComponents" : true, "usingComponents" : true,
"permission" : { "permission" : {
"scope.userLocation" : { "scope.userLocation" : {
"desc" : "你的位置信息将用于小程序位置接口的效果展示" "desc" : "测试"
} }
} },
"requiredPrivateInfos" : [ "getLocation", "chooseAddress", "chooseLocation" ]
}, },
"mp-alipay" : { "mp-alipay" : {
"usingComponents" : true "usingComponents" : true

View File

@@ -3,14 +3,14 @@
<view class="pack-center pages-hint showActive" v-if="showDt"> <view class="pack-center pages-hint showActive" v-if="showDt">
<image src="/static/img/null_icon.png"></image> <image src="/static/img/null_icon.png"></image>
<view>查看附近营业厅需要获取您的地理位置</view> <view>查看附近营业厅需要获取您的地理位置</view>
<!-- <button class="location-btn" size="mini" open-type="openSetting"> <!-- <button class="showActive-go" size="mini" open-type="openSetting">
开启定位服务 开启定位服务
</button> --> </button> -->
<view class="showActive-go" @tap="showTap">获取</view> <view class="showActive-go" @tap="openSetting">获取</view>
</view> </view>
<view class="showDt" v-else> <view class="showDt" v-else>
<view class="top"> <view class="top">
<view class="top-left nowrap">{{locationData.address}}</view> <view class="top-left nowrap">{{locatResaa}}</view>
<view class="top-picker"> <view class="top-picker">
<picker @change="screenOrders" :value="ordersIndex" :range-key="'name'" :range="ordersWay"> <picker @change="screenOrders" :value="ordersIndex" :range-key="'name'" :range="ordersWay">
{{ ordersWay[ordersIndex].name }} {{ ordersWay[ordersIndex].name }}
@@ -23,8 +23,11 @@
<image :src="item.cover" mode="aspectFill" class="item-logo"></image> <image :src="item.cover" mode="aspectFill" class="item-logo"></image>
<view class="item-cont"> <view class="item-cont">
<view class="item-name nowrap">{{item.title}}</view> <view class="item-name nowrap">{{item.title}}</view>
<view class="item-address nowrap">{{item.address}}</view> <view class="item-address">
<view class="item-distance nowrap"> <view class="item-address-tel">{{item.address}}</view>
<image @tap="tel(item.mobile)" src="/static/icon/tel.png"></image>
</view>
<view class="item-distance">
<view class="item-distance-left">{{item.distance}}</view> <view class="item-distance-left">{{item.distance}}</view>
<view class="item-distance-go" @tap="siteMap(item.latitude, item.longitude)">去导航</view> <view class="item-distance-go" @tap="siteMap(item.latitude, item.longitude)">去导航</view>
</view> </view>
@@ -41,13 +44,18 @@
</view> </view>
</view> </view>
</template> </template>
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script> <script>
import { hallsIndex } from '@/apis/interfaces/index' import { hallsIndex } from '@/apis/interfaces/index'
import { cjsubscribeUrl } from '@/apis/interfaces/rights'
import wx from 'weixin-js-sdk'
import QQMapWX from '@/utils/qqmap-wx-jssdk.min.js' import QQMapWX from '@/utils/qqmap-wx-jssdk.min.js'
export default { export default {
data() { data() {
return { return {
locatResaa : '',
showDt : false, showDt : false,
latitude : '', latitude : '',
longitude : '', longitude : '',
@@ -72,32 +80,57 @@
if(this.latitude == '') { if(this.latitude == '') {
this.showDt = true this.showDt = true
} }
}, },
onShow() {}, onShow() {
// 获取营业厅列表
this.regilist();
},
methods:{ methods:{
showTap() { openSetting() {
this.showDt = false
// 获取定位 - 使用腾讯地图sdk // 获取定位 - 使用腾讯地图sdk
uni.getLocation({ cjsubscribeUrl({
success: res => { url: location.href.split('#')[0]
// 调用接口 }).then(wechatConfig => {
this.qqMap.reverseGeocoder({ let wxConfig = JSON.parse(wechatConfig)
location: { console.log(wxConfig)
latitude: res.latitude, wx.config({
longitude: res.longitude appId: wxConfig.appId,
}, jsApiList : ['scanQRCode','closeWindow','chooseWXPay','getLocation'],
success: locatRes => { debug: false,
this.latitude = locatRes.result.location.lat signature: wxConfig.signature,
this.longitude = locatRes.result.location.lng nonceStr: wxConfig.nonceStr,
timestamp: wxConfig.timestamp,
openTagList : wxConfig.openTagList
})
wx.ready(() => {
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: res=> {
// 调用接口
this.qqMap.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: locatRes => {
this.locatResaa= locatRes.result.formatted_addresses.recommend
this.latitude = locatRes.result.location.lat
this.longitude = locatRes.result.location.lng
this.showDt = false
// 获取营业厅列表
this.regilist();
},
fail: res => {},
complete: res => {}
});
},
cancel: res=> {
// 获取营业厅列表 // 获取营业厅列表
this.regilist(this.latitude, this.longitude); this.regilist();
}, }
fail: res => {}, })
complete: res => {} })
});
}
}) })
}, },
@@ -129,6 +162,7 @@
this.page = res.halls.page this.page = res.halls.page
this.lodingStats = false this.lodingStats = false
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
}) })
}, },
@@ -165,7 +199,21 @@
window.location.href = "http://uri.amap.com/marker?position="+ longitude +","+latitude +"&name="+ name +"&coordinate=gaode&callnative=1"; window.location.href = "http://uri.amap.com/marker?position="+ longitude +","+latitude +"&name="+ name +"&coordinate=gaode&callnative=1";
} },
// 拨打电话
tel(e) {
uni.showActionSheet({
itemList : ['呼叫商家电话'],
success : res =>{
if(res.tapIndex==0){
uni.makePhoneCall({
phoneNumber: e
})
}
}
})
},
} }
} }
</script> </script>
@@ -231,7 +279,7 @@
box-sizing: border-box; box-sizing: border-box;
border-radius: 10rpx; border-radius: 10rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
position: relative; display: flex;
} }
.item-logo { .item-logo {
width: 180rpx; width: 180rpx;
@@ -239,11 +287,8 @@
border-radius: 10rpx; border-radius: 10rpx;
} }
.item-cont { .item-cont {
width: 100%; width: calc(100% - 180rpx);
position: absolute; padding-left: 30rpx;
left: 0;
top: 0;
padding: 30rpx 30rpx 30rpx 240rpx;
box-sizing: border-box; box-sizing: border-box;
} }
@@ -253,6 +298,15 @@
} }
.item-address { .item-address {
margin: 10rpx 0 30rpx; margin: 10rpx 0 30rpx;
display: flex;
}
.item-address image {
width: 44rpx;
height: 44rpx;
margin-left: 20rpx;
}
.item-address-tel {
width: calc(100% - 64rpx);
} }
.item-distance { .item-distance {
display: flex; display: flex;

View File

@@ -31,7 +31,7 @@
</view> </view>
<!-- 39元套餐包年兑换480元消费金 --> <!-- 39元套餐包年兑换480元消费金 -->
<view class="film"> <view class="film" v-if="filmData.length > 0">
<view class="filmTitle"> <view class="filmTitle">
39元套餐包年兑换480元消费金 39元套餐包年兑换480元消费金
</view> </view>
@@ -54,7 +54,7 @@
</view> </view>
<!-- 59元套餐包年兑换720元消费金 --> <!-- 59元套餐包年兑换720元消费金 -->
<view class="film"> <view class="film" v-if="bathData.length > 0">
<view class="filmTitle"> <view class="filmTitle">
59元套餐包年兑换720元消费金 59元套餐包年兑换720元消费金
</view> </view>
@@ -77,7 +77,7 @@
</view> </view>
<!-- 云盘套餐包年兑换180元消费金 --> <!-- 云盘套餐包年兑换180元消费金 -->
<view class="film"> <view class="film" v-if="marketData.length > 0">
<view class="filmTitle"> <view class="filmTitle">
云盘套餐包年兑换180元消费金 云盘套餐包年兑换180元消费金
</view> </view>
@@ -100,7 +100,7 @@
</view> </view>
<!-- 99元套餐包年兑换960元消费金 --> <!-- 99元套餐包年兑换960元消费金 -->
<view class="film"> <view class="film" v-if="repastData.length > 0">
<view class="filmTitle"> <view class="filmTitle">
99元套餐包年兑换960元消费金 99元套餐包年兑换960元消费金
</view> </view>

View File

@@ -2,7 +2,7 @@
<view class="content"> <view class="content">
<view class="campus-header"> <view class="campus-header">
<view class="logo"> <view class="logo">
<image src="/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="/static/img/campusRedLogin_logo.png" mode="aspectFill"></image>
<view class="title">身份验证</view> <view class="title">身份验证</view>
</view> </view>
<image class="cover" src="/static/img/campus_nologo.png" mode="aspectFill"></image> <image class="cover" src="/static/img/campus_nologo.png" mode="aspectFill"></image>

View File

@@ -2,7 +2,7 @@
<view class="content"> <view class="content">
<view class="campus-header"> <view class="campus-header">
<view class="logo"> <view class="logo">
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusRedLogin_logo.png" mode="aspectFill"></image>
<view class="title">用户注册</view> <view class="title">用户注册</view>
</view> </view>
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image> <image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>

View File

@@ -2,7 +2,7 @@
<view class="content"> <view class="content">
<view class="campus-header"> <view class="campus-header">
<view class="logo"> <view class="logo">
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusRedLogin_logo.png" mode="aspectFill"></image>
<view class="title">设置新密码</view> <view class="title">设置新密码</view>
</view> </view>
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image> <image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>

View File

@@ -2,7 +2,7 @@
<view class="content"> <view class="content">
<view class="campus-header"> <view class="campus-header">
<view class="logo"> <view class="logo">
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusRedLogin_logo.png" mode="aspectFill"></image>
<view class="title">消费金兑换活动登录</view> <view class="title">消费金兑换活动登录</view>
</view> </view>
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image> <image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>

View File

@@ -1,387 +1,387 @@
<template> <template>
<view> <view>
<!-- 卡券详情 --> <!-- 卡券详情 -->
<view class="details"> <view class="details">
<view class="detailsTop"> <view class="detailsTop">
<view class="detailsTop-name"> <view class="detailsTop-name">
{{ coupon.details.name }} {{ coupon.details.name }}
</view> </view>
<view class="detailsTop-time"> <view class="detailsTop-time">
有效期 {{ coupon.details.startTime }} - {{ coupon.details.endTime }} 有效期 {{ coupon.details.startTime }} - {{ coupon.details.endTime }}
</view> </view>
</view> </view>
<view class="source">活动来源 {{ coupon.details.activity_name }}</view> <view class="source">活动来源 {{ coupon.details.activity_name }}</view>
<view class="detailsBar"> <view class="detailsBar">
<view class="detailsCode-text">劵码</view> <view class="detailsCode-text">劵码</view>
<image :src="code.barcode" mode="widthFix"></image> <image :src="code.barcode" mode="widthFix"></image>
</view> </view>
<view class="detailsCode-text"> <view class="detailsCode-text">
{{ coupon.details.code }} {{ coupon.details.code }}
</view> </view>
<view class="detailsCode"> <view class="detailsCode">
<image :src="code.qrcode"></image> <image :src="code.qrcode"></image>
<view class="detailsCode-text"> <view class="detailsCode-text">
<text>请出示以上券码给网点工作人员</text> <text>请出示以上券码给网点工作人员</text>
</view> </view>
</view> </view>
<!-- 门店定位 --> <!-- 门店定位 -->
<view class="detailsStore"> <view class="detailsStore">
<view class="detailsStore-top"> <view class="detailsStore-top">
<view class="detailsStore-title"> <view class="detailsStore-title">
适用门店 适用门店
</view> </view>
<navigator class="detailsStore-row" hover-class="none" :url="'/pages/store/index?id=' + coupon.details.id" v-if="location.longitude != 0 && location.latitude != 0"> <navigator class="detailsStore-row" hover-class="none" :url="'/pages/store/index?id=' + coupon.details.id" v-if="location.longitude != 0 && location.latitude != 0">
查看所有 查看所有
<image src="/static/icon/arrow_left.png"></image> <image src="/static/icon/arrow_left.png"></image>
</navigator> </navigator>
</view> </view>
<view class="location" v-if="location.longitude == 0 && location.latitude == 0"> <view class="location" v-if="location.longitude == 0 && location.latitude == 0">
<image class="location-img" src="https://card.ysd-bs.com/storage/materials/2021/09/01/location_img.jpg"></image> <image class="location-img" src="https://card.ysd-bs.com/storage/materials/2021/09/01/location_img.jpg"></image>
<text>您尚未授权本时生活开启定位服务</text> <text>您尚未授权本时生活开启定位服务</text>
<text>不能看到附近的商家哦点击下方按钮开启</text> <text>不能看到附近的商家哦点击下方按钮开启</text>
<button class="location-btn" size="mini" open-type="openSetting"> <button class="location-btn" size="mini" open-type="openSetting">
开启定位服务 开启定位服务
</button> </button>
</view> </view>
<view v-else> <view v-else>
<block v-if="coupon.stores != ''"> <block v-if="coupon.stores != ''">
<view class="detailsStore-list" v-for="(item,index) in coupon.stores" :key="index" <view class="detailsStore-list" v-for="(item,index) in coupon.stores" :key="index"
@click="detailsTap(item.store_id)"> @click="detailsTap(item.store_id)">
<image :src="item.cover" class="detailsStore-logo"></image> <image :src="item.cover" class="detailsStore-logo"></image>
<view class="detailsStore-cont"> <view class="detailsStore-cont">
<view class="detailsStore-left"> <view class="detailsStore-left">
<view class="nowrap detailsStore-name"> <view class="nowrap detailsStore-name">
{{ item.title }} {{ item.title }}
</view> </view>
<view class="detailsStore-place"> <view class="detailsStore-place">
<text class="nowrap">{{ item.address }}</text> <text class="nowrap">{{ item.address }}</text>
{{ item.km }} {{ item.km }}
</view> </view>
</view> </view>
<image class="detailsStore-tel" src="/static/icon/tel.png" @click.stop="tel(item.mobile)"></image> <image class="detailsStore-tel" src="/static/icon/tel.png" @click.stop="tel(item.mobile)"></image>
</view> </view>
</view> </view>
</block> </block>
<block v-else> <block v-else>
<view class="pages-hint"> <view class="pages-hint">
<image src="/static/img/null_icon.png"></image> <image src="/static/img/null_icon.png"></image>
<view>暂无门店</view> <view>暂无门店</view>
</view> </view>
</block> </block>
</view> </view>
</view> </view>
</view> </view>
<!-- 使用须知 --> <!-- 使用须知 -->
<view class="detailsText"> <view class="detailsText">
<view class="detailsText-title"> <view class="detailsText-title">
使用须知 使用须知
</view> </view>
<view class="detailsText-tips"> <view class="detailsText-tips">
<rich-text :nodes="coupon.remark"></rich-text> <rich-text :nodes="coupon.remark"></rich-text>
</view> </view>
</view> </view>
<!-- 内容介绍 --> <!-- 内容介绍 -->
<view class="detailsText"> <view class="detailsText">
<view class="detailsText-title"> <view class="detailsText-title">
内容介绍 内容介绍
</view> </view>
<view class="detailsText-tips" v-if="coupon.content != null"> <view class="detailsText-tips" v-if="coupon.content != null">
<rich-text :nodes="coupon.content"></rich-text> <rich-text :nodes="coupon.content"></rich-text>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { couponinfo, merchant_card, qrcode, barcode } from '@/apis/interfaces/user' import { couponinfo, merchant_card, qrcode, barcode } from '@/apis/interfaces/user'
export default { export default {
data() { data() {
return { return {
coupon : { coupon : {
couponId : '', // 优惠券id couponId : '', // 优惠券id
details : '', // 优惠券信息 details : '', // 优惠券信息
stores : [], // 商家列表 stores : [], // 商家列表
remark : '', // 使用须知 remark : '', // 使用须知
content : '', // 内容介绍 content : '', // 内容介绍
}, },
code : { code : {
qrcode : '', //二维码 qrcode : '', //二维码
barcode : '', //条形码 barcode : '', //条形码
}, },
location : { location : {
latitude : 126.66837, // 纬度 latitude : '', // 纬度
longitude: 45.76021 // 经度 longitude: '' // 经度
} }
} }
}, },
onLoad(options) { onLoad(options) {
this.coupon.couponId = options.id this.coupon.couponId = options.id
// 获取二维码 // 获取二维码
this.detailsCode() this.detailsCode()
// 获取条形码 // 获取条形码
this.detailsBarcode() this.detailsBarcode()
}, },
onShow () { onShow () {
// 查看定位信息 // 查看定位信息
this.getCity(); this.getCity();
}, },
methods:{ methods:{
// 详情信息 // 详情信息
detailsInfo() { detailsInfo() {
couponinfo({ couponinfo({
coupon_id: this.coupon.couponId, coupon_id: this.coupon.couponId,
user_lng : this.location.longitude, user_lng : this.location.longitude,
user_lat : this.location.latitude user_lat : this.location.latitude
}).then(res=>{ }).then(res=>{
let stores = res.stores let stores = res.stores
stores.map(res=>{ stores.map(res=>{
let distance = res.distance let distance = res.distance
if(res.distance > 1000){ if(res.distance > 1000){
distance = (distance / 1000) + "km" distance = (distance / 1000) + "km"
}else{ }else{
distance = distance + "m" distance = distance + "m"
} }
res.km = distance res.km = distance
}) })
this.coupon.details = res.info this.coupon.details = res.info
this.coupon.stores = stores this.coupon.stores = stores
this.coupon.remark = res.info.right.remark.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"') this.coupon.remark = res.info.right.remark.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"')
this.coupon.content = res.info.right.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"') this.coupon.content = res.info.right.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"')
}) })
}, },
// 获取城市信息 // 获取城市信息
getCity(){ getCity(){
uni.getLocation({ uni.getLocation({
success: res => { success: res => {
this.location.latitude   = res.latitude, this.location.latitude   = res.latitude,
this.location.longitude  = res.longitude this.location.longitude  = res.longitude
}, },
complete: (err) => { complete: (err) => {
// 获取详情信息 // 获取详情信息
this.detailsInfo(); this.detailsInfo();
} }
}) })
}, },
// 二维码 // 二维码
detailsCode() { detailsCode() {
qrcode(this.coupon.couponId).then(res=>{ qrcode(this.coupon.couponId).then(res=>{
this.code.qrcode = res.qrcode this.code.qrcode = res.qrcode
}) })
}, },
// 条形码 // 条形码
detailsBarcode() { detailsBarcode() {
barcode(this.coupon.couponId).then(res=>{ barcode(this.coupon.couponId).then(res=>{
this.code.barcode = res.barcode this.code.barcode = res.barcode
}) })
}, },
// 拨打电话 // 拨打电话
tel(number) { tel(number) {
uni.showActionSheet({ uni.showActionSheet({
itemList : ['呼叫商家电话'], itemList : ['呼叫商家电话'],
success : res =>{ success : res =>{
if(res.tapIndex==0){ if(res.tapIndex==0){
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: number phoneNumber: number
}) })
} }
} }
}) })
}, },
// 查看门店详情页 // 查看门店详情页
detailsTap(id) { detailsTap(id) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/store/details?store_id=' + id + '&user_lng=' + this.location.longitude + '&user_lat=' + this.location.latitude, url: '/pages/store/details?store_id=' + id + '&user_lng=' + this.location.longitude + '&user_lat=' + this.location.latitude,
}) })
}, },
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
/* 卡券详情 */ /* 卡券详情 */
.details { .details {
background: #fff; background: #fff;
margin: 20rpx; margin: 20rpx;
width: calc(100% - 40rpx); width: calc(100% - 40rpx);
border-radius: 20rpx; border-radius: 20rpx;
padding: 30rpx; padding: 30rpx;
box-sizing: border-box; box-sizing: border-box;
box-shadow: 0 0 20rpx rgba(0, 0,0, .1); box-shadow: 0 0 20rpx rgba(0, 0,0, .1);
.detailsTop { .detailsTop {
border-bottom: 2rpx dashed #c8c8c8; border-bottom: 2rpx dashed #c8c8c8;
padding-bottom: 40rpx; padding-bottom: 40rpx;
.detailsTop-name { .detailsTop-name {
font-size: 36rpx; font-size: 36rpx;
font-weight: 600; font-weight: 600;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.detailsTop-time { .detailsTop-time {
color: #7e7e7e; color: #7e7e7e;
font-size: 26rpx; font-size: 26rpx;
} }
} }
.source{ .source{
margin: 30rpx 0; margin: 30rpx 0;
font-size: 28rpx; font-size: 28rpx;
} }
.detailsBar { .detailsBar {
text-align: center; text-align: center;
padding: 0 50rpx; padding: 0 50rpx;
box-sizing: border-box; box-sizing: border-box;
margin-top: 60rpx; margin-top: 60rpx;
margin-bottom: 40rpx; margin-bottom: 40rpx;
image { image {
width: 100%; width: 100%;
} }
.detailsCode-text { .detailsCode-text {
margin-bottom: 10px; margin-bottom: 10px;
color: #000; color: #000;
} }
} }
.detailsCode-text { .detailsCode-text {
text-align: center; text-align: center;
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
color: #000; color: #000;
text { text {
color: #999; color: #999;
font-weight: normal; font-weight: normal;
font-size: 26rpx; font-size: 26rpx;
} }
} }
.detailsCode { .detailsCode {
text-align: center; text-align: center;
padding: 0 0 20rpx; padding: 0 0 20rpx;
margin: 40rpx 0 30rpx; margin: 40rpx 0 30rpx;
image { image {
width: 300rpx; width: 300rpx;
height: 300rpx; height: 300rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
} }
} }
.detailsStore { .detailsStore {
border-top: 2rpx #c8c8c8 solid; border-top: 2rpx #c8c8c8 solid;
padding-top: 40rpx; padding-top: 40rpx;
.detailsStore-top { .detailsStore-top {
display: flex; display: flex;
line-height: 30rpx; line-height: 30rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
.detailsStore-title { .detailsStore-title {
flex: 1; flex: 1;
font-weight: 600; font-weight: 600;
} }
} }
.location { .location {
background: white; background: white;
width: 100%; width: 100%;
text-align: center; text-align: center;
margin: 60rpx 0 0; margin: 60rpx 0 0;
text { text {
font-size: 28rpx; font-size: 28rpx;
display: block; display: block;
line-height: 46rpx; line-height: 46rpx;
color: #999; color: #999;
} }
.location-img { .location-img {
width: 150rpx; width: 150rpx;
height: 120rpx; height: 120rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.location-btn[size="mini"] { .location-btn[size="mini"] {
background-color: #ee8e44; background-color: #ee8e44;
color: #fff; color: #fff;
font-size: 26rpx; font-size: 26rpx;
line-height: 66rpx; line-height: 66rpx;
margin-top: 30rpx; margin-top: 30rpx;
} }
} }
} }
} }
.detailsText { .detailsText {
padding: 30rpx 30rpx 20rpx; padding: 30rpx 30rpx 20rpx;
box-sizing: border-box; box-sizing: border-box;
.detailsText-title { .detailsText-title {
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.detailsText-tips { .detailsText-tips {
font-size: 26rpx; font-size: 26rpx;
line-height: 50rpx; line-height: 50rpx;
color: #555557; color: #555557;
padding-bottom: 20rpx; padding-bottom: 20rpx;
} }
} }
// 门店 // 门店
.detailsStore-title { .detailsStore-title {
flex: 1; flex: 1;
font-weight: 600; font-weight: 600;
} }
.detailsStore-top, .detailsStore-row { .detailsStore-top, .detailsStore-row {
display: flex; display: flex;
line-height: 30rpx; line-height: 30rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.detailsCode-text, .detailsStore-row { .detailsCode-text, .detailsStore-row {
color: #949494; color: #949494;
font-size: 28rpx; font-size: 28rpx;
} }
.detailsStore-row image { .detailsStore-row image {
width: 26rpx; width: 26rpx;
height: 26rpx; height: 26rpx;
margin: 3rpx 0 0 6rpx; margin: 3rpx 0 0 6rpx;
} }
.detailsStore-list { .detailsStore-list {
position: relative; position: relative;
margin-bottom: 40rpx; margin-bottom: 40rpx;
.detailsStore-logo { .detailsStore-logo {
width: 100rpx; width: 100rpx;
height: 100rpx; height: 100rpx;
border-radius: 10rpx; border-radius: 10rpx;
} }
.detailsStore-cont { .detailsStore-cont {
position: absolute; position: absolute;
left: 130rpx; left: 130rpx;
top: 0; top: 0;
width: calc(100% - 130rpx); width: calc(100% - 130rpx);
display: flex; display: flex;
.detailsStore-left { .detailsStore-left {
width: calc(100% - 90rpx); width: calc(100% - 90rpx);
margin-right: 30rpx; margin-right: 30rpx;
.detailsStore-name { .detailsStore-name {
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.detailsStore-place { .detailsStore-place {
font-size: 24rpx; font-size: 24rpx;
line-height: 40rpx; line-height: 40rpx;
color: #5a5a5a; color: #5a5a5a;
display: flex; display: flex;
text { text {
flex: 1; flex: 1;
display: inline-block; display: inline-block;
font-size: 28rpx; font-size: 28rpx;
margin-right: 20rpx; margin-right: 20rpx;
} }
} }
} }
.detailsStore-tel { .detailsStore-tel {
width: 60rpx; width: 60rpx;
height: 60rpx; height: 60rpx;
margin-top: 25rpx; margin-top: 25rpx;
} }
} }
} }
</style> </style>

View File

@@ -379,7 +379,8 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.content { .content {
background: linear-gradient(to bottom, #fff9f9, #fff9f9); background: linear-gradient(to bottom, #fdf5cc, #cbaf7f);
// background: linear-gradient(to bottom, #fff9f9, #fff9f9);
padding-bottom: 40rpx; padding-bottom: 40rpx;
height: 100vh; height: 100vh;
overflow-y: scroll; overflow-y: scroll;
@@ -459,17 +460,19 @@
.filMargin { .filMargin {
padding: 0 0 30rpx; padding: 0 0 30rpx;
} }
.filmTitle { .filmTitle {
// background: linear-gradient(to right, #fce1d6, #fce1d6);
background: linear-gradient(to right, #feefce, #fbe9c0, #e8d19b); background: linear-gradient(to right, #feefce, #fbe9c0, #e8d19b);
line-height: 80rpx; line-height: 80rpx;
box-shadow: -4px 0 10px rgba(134,97,33,.2); box-shadow: -4px 0 10px rgba(134,97,33,.2);
text-align: center; text-align: center;
border-radius: 10rpx 10rpx 0 0; border-radius: 10rpx 10rpx 0 0;
color: #a47d53; color: #a47d53;
margin: 0 20rpx; margin: 0 20rpx;
} }
.filmList { .filmList {
position: relative; position: relative;
// background: linear-gradient(to right, #f1824a, #fdbe71);
background: linear-gradient(to right, #494e75, #27314d); background: linear-gradient(to right, #494e75, #27314d);
box-shadow: 0px 6px 10px rgba(134,97,33,.1); box-shadow: 0px 6px 10px rgba(134,97,33,.1);
border-radius: 10rpx; border-radius: 10rpx;
@@ -535,7 +538,7 @@
margin-bottom: 10rpx; margin-bottom: 10rpx;
.filmList-top-name { .filmList-top-name {
width: calc(100% - 140rpx); width: calc(100% - 140rpx);
margin-right: 20rpx; margin-right: 20rpx;
color: #fce2ae; color: #fce2ae;
font-size: 32rpx; font-size: 32rpx;
margin-top: 10rpx; margin-top: 10rpx;
@@ -546,11 +549,13 @@
} }
} }
.filmList-top-price { .filmList-top-price {
position: relative; position: relative;
// background: linear-gradient(to right, #fff9f9, #fff9f9);
background: linear-gradient(to right, #d3ad68, #cda65f);
box-shadow: 0px 2px 10px rgba(249,228,129,.5); box-shadow: 0px 2px 10px rgba(249,228,129,.5);
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
border-radius: 50%; border-radius: 50%;
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
padding-top: 20rpx; padding-top: 20rpx;
@@ -563,7 +568,7 @@
display: block; display: block;
} }
.filmList-tag{ .filmList-tag{
position: absolute; position: absolute;
background: #474d73; background: #474d73;
color: white; color: white;
font-size: 20rpx; font-size: 20rpx;
@@ -587,7 +592,7 @@
} }
} }
.filmList-tips { .filmList-tips {
font-size: 24rpx; font-size: 24rpx;
color: #c1c1c1; color: #c1c1c1;
margin-top: 30rpx; margin-top: 30rpx;
} }
@@ -720,7 +725,7 @@
.campusBtn-name { .campusBtn-name {
color: #abaeb2; color: #abaeb2;
} }
&.active .campusBtn-name { &.active .campusBtn-name {
color: #474d73; color: #474d73;
} }
} }
@@ -747,10 +752,10 @@
background-color: transparent; background-color: transparent;
border-radius: 40rpx; border-radius: 40rpx;
} }
&.active::after { &.active::after {
background-color: #474d73; background-color: #474d73;
} }
&.active { &.active {
color: #474d73; color: #474d73;
font-weight: 600; font-weight: 600;
} }
@@ -831,7 +836,7 @@
} }
.tipsWhite-name { .tipsWhite-name {
text-align: center; text-align: center;
color: #474d73; color: #474d73;
font-size: 34rpx; font-size: 34rpx;
font-weight: 600; font-weight: 600;

View File

@@ -156,7 +156,7 @@
position: relative; position: relative;
width: 440rpx; width: 440rpx;
margin: 0 auto; margin: 0 auto;
color: #f25448; color: #27314d;
line-height: 60rpx; line-height: 60rpx;
&::after, &::after,
&::before { &::before {
@@ -181,7 +181,8 @@
} }
.redBack { .redBack {
background-image: linear-gradient(to top, #fe796f, #f25549); // background-image: linear-gradient(to top, #fe796f, #f25549);
background-image: linear-gradient(to top, #494e75, #27314d);
border-radius: 30rpx; border-radius: 30rpx;
padding: 30rpx 0 40rpx; padding: 30rpx 0 40rpx;
box-sizing: border-box; box-sizing: border-box;
@@ -196,7 +197,7 @@
border-radius: 0 0 20rpx 20rpx; border-radius: 0 0 20rpx 20rpx;
} }
.redBack::after { .redBack::after {
background-color: rgba(243, 85, 73, .4); background-color: rgba(39,49,77,.4);
z-index: 2; z-index: 2;
width: calc(100% - 40rpx); width: calc(100% - 40rpx);
left: 20rpx; left: 20rpx;
@@ -204,7 +205,7 @@
height: 14px; height: 14px;
} }
.redBack::before { .redBack::before {
background-color: rgba(243, 85, 73, .2); background-color: rgba(39,49,77,.4);
z-index: 1; z-index: 1;
width: calc(100% - 80rpx); width: calc(100% - 80rpx);
left: 40rpx; left: 40rpx;
@@ -305,7 +306,7 @@
position: absolute; position: absolute;
top: 50rpx; top: 50rpx;
right: 30rpx; right: 30rpx;
color: #f25448; color: #27314d;
font-size: 38rpx; font-size: 38rpx;
} }
} }

View File

@@ -5,7 +5,8 @@
<image src="/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="/static/img/campusLogin_logo.png" mode="aspectFill"></image>
<view class="title">身份验证</view> <view class="title">身份验证</view>
</view> </view>
<image class="cover" src="/static/img/campusLogin_back_red.png" mode="aspectFill"></image> <!-- <image class="cover" src="/static/img/campusLogin_back_red.png" mode="aspectFill"></image> -->
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>
</view> </view>
<view class="campus-cont"> <view class="campus-cont">
<form @submit="forgetlogin"> <form @submit="forgetlogin">
@@ -121,8 +122,8 @@
<style lang="scss"> <style lang="scss">
.content{ .content{
min-height: 100vh; min-height: 100vh;
// background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb); background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb);
background-image: linear-gradient(to top right, #fff9f9, #fff9f9); // background-image: linear-gradient(to top right, #fff9f9, #fff9f9);
} }
.campus-cont{ .campus-cont{
padding: 40rpx 60rpx; padding: 40rpx 60rpx;
@@ -130,8 +131,8 @@
position: relative; position: relative;
padding-left: 30rpx; padding-left: 30rpx;
padding-right: 30rpx; padding-right: 30rpx;
background-image: linear-gradient(to right, #f4eeee, #f4eeee); // background-image: linear-gradient(to right, #f4eeee, #f4eeee);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
border-radius: 45rpx; border-radius: 45rpx;
@@ -149,12 +150,14 @@
font-size: 30rpx; font-size: 30rpx;
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
color: #f25448; color: #ffffff;
// color: #f25448;
&::after{ &::after{
border: none; border: none;
} }
&[disabled]{ &[disabled]{
color: rgba($color: #f25448, $alpha: .5); color: rgba($color: #ffffff, $alpha: .5);
// color: rgba($color: #f25448, $alpha: .5);
} }
} }
} }
@@ -184,8 +187,8 @@
line-height: 90rpx; line-height: 90rpx;
padding: 0; padding: 0;
border-radius: 45rpx; border-radius: 45rpx;
background-image: linear-gradient(to right, #f25448, #fe786d); // background-image: linear-gradient(to right, #f25448, #fe786d);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
font-size: 32rpx; font-size: 32rpx;
color: white; color: white;
} }

View File

@@ -5,7 +5,8 @@
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image>
<view class="title">联通全额消费金活动用户注册</view> <view class="title">联通全额消费金活动用户注册</view>
</view> </view>
<image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> <!-- <image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> -->
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>
</view> </view>
<view class="campus-cont"> <view class="campus-cont">
<form @submit="submitRegister"> <form @submit="submitRegister">
@@ -132,8 +133,8 @@
<style lang="scss"> <style lang="scss">
.content{ .content{
min-height: 100vh; min-height: 100vh;
// background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb); background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb);
background-image: linear-gradient(to top right, #fff9f9, #fff9f9); // background-image: linear-gradient(to top right, #fff9f9, #fff9f9);
} }
.campus-cont{ .campus-cont{
padding: 40rpx 60rpx; padding: 40rpx 60rpx;
@@ -142,8 +143,8 @@
position: relative; position: relative;
padding-left: 30rpx; padding-left: 30rpx;
padding-right: 30rpx; padding-right: 30rpx;
background-image: linear-gradient(to right, #f4eeee, #f4eeee); // background-image: linear-gradient(to right, #f4eeee, #f4eeee);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
border-radius: 45rpx; border-radius: 45rpx;
@@ -161,12 +162,14 @@
font-size: 30rpx; font-size: 30rpx;
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
color: #f25448; color: #ffffff;
// color: #f25448;
&::after{ &::after{
border: none; border: none;
} }
&[disabled]{ &[disabled]{
color: rgba($color: #f25448, $alpha: .5); color: rgba($color: #ffffff, $alpha: .5);
// color: rgba($color: #f25448, $alpha: .5);
} }
} }
} }
@@ -191,8 +194,8 @@
line-height: 90rpx; line-height: 90rpx;
padding: 0; padding: 0;
border-radius: 45rpx; border-radius: 45rpx;
background-image: linear-gradient(to right, #f25448, #fe786d); // background-image: linear-gradient(to right, #f25448, #fe786d);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
font-size: 32rpx; font-size: 32rpx;
color: white; color: white;
} }

View File

@@ -5,7 +5,8 @@
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image>
<view class="title">设置新密码</view> <view class="title">设置新密码</view>
</view> </view>
<image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> <!-- <image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> -->
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>
</view> </view>
<view class="campus-cont"> <view class="campus-cont">
<form @submit="forgetlogin"> <form @submit="forgetlogin">
@@ -59,8 +60,8 @@
<style lang="scss"> <style lang="scss">
.content{ .content{
min-height: 100vh; min-height: 100vh;
// background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb); background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb);
background-image: linear-gradient(to top right, #fff9f9, #fff9f9); // background-image: linear-gradient(to top right, #fff9f9, #fff9f9);
} }
.campus-cont{ .campus-cont{
padding: 40rpx 60rpx; padding: 40rpx 60rpx;
@@ -68,8 +69,8 @@
position: relative; position: relative;
padding-left: 30rpx; padding-left: 30rpx;
padding-right: 30rpx; padding-right: 30rpx;
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
background-image: linear-gradient(to right, #f4eeee, #f4eeee); // background-image: linear-gradient(to right, #f4eeee, #f4eeee);
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
border-radius: 45rpx; border-radius: 45rpx;
@@ -87,12 +88,14 @@
font-size: 30rpx; font-size: 30rpx;
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
color: #f25448; color: #ffffff;
// color: #f25448;
&::after{ &::after{
border: none; border: none;
} }
&[disabled]{ &[disabled]{
color: rgba($color: #f25448, $alpha: .5); color: rgba($color: #ffffff, $alpha: .5);
// color: rgba($color: #f25448, $alpha: .5);
} }
} }
} }
@@ -122,8 +125,8 @@
line-height: 90rpx; line-height: 90rpx;
padding: 0; padding: 0;
border-radius: 45rpx; border-radius: 45rpx;
background-image: linear-gradient(to right, #f25448, #fe786d); // background-image: linear-gradient(to right, #f25448, #fe786d);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
font-size: 32rpx; font-size: 32rpx;
color: white; color: white;
} }

View File

@@ -5,13 +5,14 @@
<image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image> <image src="@/static/img/campusLogin_logo.png" mode="aspectFill"></image>
<view class="title">联通全额消费金活动登录</view> <view class="title">联通全额消费金活动登录</view>
</view> </view>
<image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> <!-- <image class="cover" src="@/static/img/campusLogin_back_red.png" mode="aspectFill"></image> -->
<image class="cover" src="@/static/img/campus_nologo.png" mode="aspectFill"></image>
</view> </view>
<view class="campus-cont"> <view class="campus-cont">
<form @submit="forgetlogin"> <form @submit="forgetlogin">
<view class="campus-inputs"> <view class="campus-inputs">
<!-- <image class="campus-form-icon" src="/static/img/campus_login_02.png" mode="aspectFill"></image> --> <!-- <image class="campus-form-icon" src="/static/img/campus_login_02.png" mode="aspectFill"></image> -->
<input class="campus-form-input" type="number" placeholder="请输入手机号" @input="getNameValue" name="mobile"></input> <input class="campus-form-input" type="number" maxlength="11" placeholder="请输入手机号" @input="getNameValue" name="mobile"></input>
</view> </view>
<view class="campus-inputs inputs-code" v-if="!passwordLogin"> <view class="campus-inputs inputs-code" v-if="!passwordLogin">
<!-- <image class="campus-form-icon" src="/static/img/campus_login_03.png" mode="aspectFill"></image> --> <!-- <image class="campus-form-icon" src="/static/img/campus_login_03.png" mode="aspectFill"></image> -->
@@ -21,7 +22,15 @@
<view class="campus-inputs" v-else> <view class="campus-inputs" v-else>
<!-- <image class="campus-form-icon" src="/static/img/campus_login_03.png" mode="aspectFill"></image> --> <!-- <image class="campus-form-icon" src="/static/img/campus_login_03.png" mode="aspectFill"></image> -->
<input class="campus-form-input" type="password" placeholder="请输入登录密码" name="password"></input> <input class="campus-form-input" type="password" placeholder="请输入登录密码" name="password"></input>
</view> </view>
<!-- <view class="captcha-inputs">
<view class="captcha-campus-inputs campus-inputs">
<input class="campus-form-input" type="text" placeholder="请输入图文验证码" name="captcha" @input="getCaptchaValue"></input>
</view>
<image class="campus-form-graph" :src="captchaImg" mode="widthFix" @click="campusClick"></image>
</view> -->
<view class="resPassword"> <view class="resPassword">
<navigator url="password">忘记密码</navigator> <navigator url="password">忘记密码</navigator>
</view> </view>
@@ -36,7 +45,7 @@
</template> </template>
<script> <script>
import { send, auth, passlogin } from '@/apis/interfaces/auth' import { send, auth, passlogin, Captcha } from '@/apis/interfaces/auth'
export default { export default {
data() { data() {
return { return {
@@ -45,10 +54,38 @@
code : '', // 验证码 code : '', // 验证码
passwordLogin: true, // 登录方式 passwordLogin: true, // 登录方式
disabled : false, disabled : false,
captcha : '', // 输入图形码
captchaImg : '', // 图形码
captchaKey : ''
} }
}, },
// 生命周期函数--监听页面显示
onShow() {
// 获取图形码
this.captchaInfo()
},
methods: { methods: {
// 图形码
captchaInfo() {
Captcha().then(res=>{
this.captchaImg = res.img
this.captchaKey = res.key
}).catch(err=>{
uni.showToast({
title: err.message,
icon : 'none'
})
})
},
// 重新获取图形码
campusClick() {
// 获取图形码
this.captchaInfo()
},
// 切换登录方式 // 切换登录方式
onCutLogin(){ onCutLogin(){
this.passwordLogin = !this.passwordLogin this.passwordLogin = !this.passwordLogin
@@ -57,6 +94,11 @@
getNameValue(e) { getNameValue(e) {
this.mobileNo = e.detail.value this.mobileNo = e.detail.value
}, },
// captcha
getCaptchaValue(e) {
this.captcha = e.detail.value
},
// 获取code // 获取code
getCode(){ getCode(){
@@ -116,18 +158,24 @@
forgetlogin(e){ forgetlogin(e){
let mobileNo = e.detail.value.mobile || '', let mobileNo = e.detail.value.mobile || '',
code = this.code || '', code = this.code || '',
password = e.detail.value.password || '', password = e.detail.value.password || '',
captchakey = this.captchaKey,
captcha = this.captcha || '',
loginFunction loginFunction
if(this.passwordLogin){ if(this.passwordLogin){
loginFunction = passlogin({ loginFunction = passlogin({
mobile : mobileNo, mobile : mobileNo,
password: password password: password,
captcha : captcha,
captcha_key: captchakey
}) })
}else{ }else{
loginFunction = auth({ loginFunction = auth({
mobile: mobileNo, mobile: mobileNo,
code: code, code: code,
captcha : captcha,
captcha_key: captchakey,
type: '' type: ''
}) })
} }
@@ -137,7 +185,10 @@
uni.reLaunch({ uni.reLaunch({
url: '/pages/giftPack/index' url: '/pages/giftPack/index'
}) })
}).catch(err =>{ }).catch(err =>{
// 获取图形码
this.captchaInfo()
uni.showToast({ uni.showToast({
title: err.message, title: err.message,
icon : 'none' icon : 'none'
@@ -151,9 +202,10 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .content{
min-height: 100vh; min-height: 100vh;
background-image: linear-gradient(to top right, #fff9f9, #fff9f9); // background-image: linear-gradient(to top right, #fff9f9, #fff9f9);
// background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb); background-image: linear-gradient(to top right, #cbaf7f, #fcf4cb);
} }
.campus-cont{ .campus-cont{
padding: 40rpx 60rpx; padding: 40rpx 60rpx;
.campus-inputs{ .campus-inputs{
@@ -161,8 +213,8 @@
padding-left: 30rpx; padding-left: 30rpx;
// padding-left: 90rpx; // padding-left: 90rpx;
padding-right: 30rpx; padding-right: 30rpx;
background-image: linear-gradient(to right, #f4eeee, #f4eeee); // background-image: linear-gradient(to right, #f4eeee, #f4eeee);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
border-radius: 45rpx; border-radius: 45rpx;
@@ -180,12 +232,14 @@
font-size: 30rpx; font-size: 30rpx;
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
color: #f25448; color: #ffffff;
// color: #f25448;
&::after{ &::after{
border: none; border: none;
} }
&[disabled]{ &[disabled]{
color: rgba($color: #f25448, $alpha: .5); // color: rgba($color: #f25448, $alpha: .5);
color: rgba($color: #ffffff, $alpha: .5);
} }
} }
} }
@@ -199,7 +253,8 @@
} }
.campus-form-input{ .campus-form-input{
height: 90rpx; height: 90rpx;
color: #000000; color: #ffffff;
// color: #000000;
font-size: 32rpx; font-size: 32rpx;
} }
@@ -218,8 +273,8 @@
line-height: 90rpx; line-height: 90rpx;
padding: 0; padding: 0;
border-radius: 45rpx; border-radius: 45rpx;
background-image: linear-gradient(to right, #f25448, #fe786d); // background-image: linear-gradient(to right, #f25448, #fe786d);
// background-image: linear-gradient(to right, #575a85, #252f4b); background-image: linear-gradient(to right, #575a85, #252f4b);
font-size: 32rpx; font-size: 32rpx;
color: #ffffff; color: #ffffff;
} }
@@ -265,5 +320,18 @@
font-size: 40rpx; font-size: 40rpx;
} }
} }
} }
.captcha-inputs {
display: flex;
.campus-form-graph {
width: 220rpx;
margin-top: 10rpx;
}
.captcha-campus-inputs{
flex: 1;
margin-right: 20rpx;
}
}
</style> </style>

View File

@@ -215,7 +215,8 @@
} }
.user { .user {
background-image: linear-gradient(to right, #f25448, #fe786d); background-image: linear-gradient(to right, #ecdec4, #f6eee1);
// background-image: linear-gradient(to right, #f25448, #fe786d);
border-radius: 10rpx; border-radius: 10rpx;
padding: 30rpx; padding: 30rpx;
box-sizing: border-box; box-sizing: border-box;
@@ -227,7 +228,8 @@
width: 190rpx; width: 190rpx;
} }
.userTop { .userTop {
color: #ffffff; // color: #ffffff;
color: #796230;
.userTop-name { .userTop-name {
display: flex; display: flex;
font-size: 46rpx; font-size: 46rpx;
@@ -246,7 +248,8 @@
} }
.userItem { .userItem {
margin: 30rpx 0; margin: 30rpx 0;
background-image: linear-gradient(to right, #fce1d6, #fce1d6); // background-image: linear-gradient(to right, #fce1d6, #fce1d6);
background-image: linear-gradient(to right, #f5f1e5, #f5f1e5);
border-radius: 10rpx; border-radius: 10rpx;
display: flex; display: flex;
padding: 30rpx 0; padding: 30rpx 0;
@@ -266,21 +269,22 @@
} }
} }
.userItem-label-text { .userItem-label-text {
color: #ea7e4d; color: #796230;
font-size: 26rpx; font-size: 26rpx;
padding-top: 10rpx; padding-top: 10rpx;
} }
} }
} }
.userList { .userList {
background: linear-gradient(to right, #fce1d6, #fce1d6); background: linear-gradient(to right, #f5f1e5, #f5f1e5);
border-radius: 10rpx; border-radius: 10rpx;
display: flex; display: flex;
padding: 30rpx 20rpx; padding: 30rpx 20rpx;
line-height: 60rpx; line-height: 60rpx;
box-sizing: border-box; box-sizing: border-box;
font-size: 32rpx; font-size: 32rpx;
color: #ea7e4d; // color: #ea7e4d;
color: #000000;
.userList-img { .userList-img {
width: 60rpx; width: 60rpx;
margin-right: 20rpx; margin-right: 20rpx;
@@ -289,7 +293,7 @@
} }
.userTips { .userTips {
width: 100%; width: 100%;
color: #ffffff; color: #796230;
display: flex; display: flex;
font-size: 28rpx; font-size: 28rpx;
margin-top: 30rpx; margin-top: 30rpx;
@@ -399,7 +403,7 @@
color: #abaeb2; color: #abaeb2;
} }
&.active .campusBtn-name { &.active .campusBtn-name {
color: #f55249; color: #474d73;
} }
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB