This commit is contained in:
zmj 2024-05-06 18:19:05 +08:00
parent d95ed4f482
commit 763e68af20
10 changed files with 1162 additions and 448 deletions

View File

@ -162,6 +162,9 @@
// this.audioTeam.push(result.extras.type); // this.audioTeam.push(result.extras.type);
// } // }
} }
console.log("收到消息")
console.log(result)
// //
if (notificationEventType == 'notificationOpened') { if (notificationEventType == 'notificationOpened') {
if (result.extras.type == 2) { if (result.extras.type == 2) {

View File

@ -2,8 +2,8 @@
"name": "惠农生活", "name": "惠农生活",
"appid": "__UNI__3A527D1", "appid": "__UNI__3A527D1",
"description": "", "description": "",
"versionName": "2.0.45", "versionName": "2.0.48",
"versionCode": 2045, "versionCode": 2048,
"transformPx": false, "transformPx": false,
/* 5+App */ /* 5+App */
"app-plus": { "app-plus": {

View File

@ -180,7 +180,7 @@
.next-btn { .next-btn {
position: absolute; position: absolute;
bottom: 100rpx; bottom: 100px;
left: 375rpx; left: 375rpx;
transform: translateX(-50%); transform: translateX(-50%);
width: 240rpx; width: 240rpx;

View File

@ -19,7 +19,7 @@
<image src="/static/images/greenLine.png" style="width:35px;height: 60px;" mode=""></image> <image src="/static/images/greenLine.png" style="width:35px;height: 60px;" mode=""></image>
</view> </view>
<view class="tabbar2 center" :style="{top:(offsetY-68)+'px'}"> <view class="tabbar2 center" :style="{top:(offsetY-68)+'px'}">
<image src="/static/images/fabu.png" class="tab-icon"></image> <image src="/static/images/ydwd.png" class="tab-icon"></image>
<text class="te">工作台</text> <text class="te">工作台</text>
</view> </view>
<view class="pointe2" :style="{top:(offsetY-58)+'px'}"> <view class="pointe2" :style="{top:(offsetY-58)+'px'}">

File diff suppressed because it is too large Load Diff

View File

@ -227,7 +227,7 @@
<button class="settleAgree" @click="getConfig">入驻协议</button> <button class="settleAgree" @click="getConfig">入驻协议</button>
</view> </view>
<button class='submitBtn' :class="validate === true? 'on':''" @click="formSubmit"> <button class='submitBtn' @click="formSubmit">
提交申请 提交申请
</button> </button>
</view> </view>
@ -252,9 +252,6 @@
</view> </view>
<div class="title">{{detail.title}}</div> <div class="title">{{detail.title}}</div>
<!-- <view style="margin: 20rpx 0;">甲方公司:{{company?company:"暂无公司信息"}}</view>
<view style="margin: 20rpx 0;">机构代码:{{organization_code?organization_code:"暂无公司信息"}}</view> -->
<view class="contenta" v-if="detail.mer_services_agree"> <view class="contenta" v-if="detail.mer_services_agree">
<jyf-parser :html="detail.mer_services_agree" ref="article" :tag-style="tagStyle"></jyf-parser> <jyf-parser :html="detail.mer_services_agree" ref="article" :tag-style="tagStyle"></jyf-parser>
@ -974,7 +971,7 @@
} }
}, },
formSubmit() { formSubmit() {
if (this.validateForm() && this.validate) { if (true) {
if (this.merchantData.mer_type == '12') return this.agree(); if (this.merchantData.mer_type == '12') return this.agree();
if (this.codenote.length == 0) { if (this.codenote.length == 0) {
this.isshow = true this.isshow = true
@ -1500,7 +1497,7 @@
color: #fff; color: #fff;
background: #E3E3E3; background: #E3E3E3;
margin-top: 25px; margin-top: 25px;
pointer-events: none; // pointer-events: none;
} }
.merchantsSettled .submitBtn.on { .merchantsSettled .submitBtn.on {

View File

@ -1,6 +1,7 @@
<template> <template>
<div :style="viewColor"> <div :style="viewColor">
<div class="register_main" :style="{ 'background-image': formItem == 1 ? `url(${domain}/static/images/logo_bgl.png)` : `url(${domain}/static/images/logo_bgh.png)`}"> <div class="register_main"
:style="{ 'background-image': formItem == 1 ? `url(${domain}/static/images/logo_bgl.png)` : `url(${domain}/static/images/logo_bgh.png)`}">
<view class="system-height" :style="{ height: statusBarHeight }"></view> <view class="system-height" :style="{ height: statusBarHeight }"></view>
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<view class="title-bar" style="height: 43px;"> <view class="title-bar" style="height: 43px;">
@ -21,12 +22,15 @@
<div class="list" :hidden="current !== 0"> <div class="list" :hidden="current !== 0">
<form @submit.prevent="submit"> <form @submit.prevent="submit">
<div class="item"> <div class="item">
<input type="text" placeholder="请输入手机号或账号" placeholder-class="placeholder" v-model="account" required /> <input type="text" placeholder="请输入手机号或账号" placeholder-class="placeholder"
v-model="account" required />
</div> </div>
<div class="item"> <div class="item">
<input type="password" placeholder="填写登录密码" placeholder-class="placeholder" v-model="password" required /> <input type="password" placeholder="填写登录密码" placeholder-class="placeholder"
<navigator class="forgetPwd" hover-class="none" url="/pages/users/retrievePassword/index"> v-model="password" required />
忘记密码 <navigator class="forgetPwd" hover-class="none"
url="/pages/users/retrievePassword/index">
忘记密we码
</navigator> </navigator>
</div> </div>
</form> </form>
@ -37,8 +41,10 @@
<input type="text" placeholder="输入手机号码" placeholder-class="placeholder" v-model="account" /> <input type="text" placeholder="输入手机号码" placeholder-class="placeholder" v-model="account" />
</div> </div>
<div class="item"> <div class="item">
<input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput" v-model="captcha" /> <input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput"
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="handleVerify"> v-model="captcha" />
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''"
@click="handleVerify">
{{ text }} {{ text }}
</button> </button>
</div> </div>
@ -53,7 +59,9 @@
<div class="protocol acea-row row-between-wrapper"> <div class="protocol acea-row row-between-wrapper">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'> <checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" /> <checkbox class="checkbox" :checked="isAgree ? true : false" />
<text class="protocol_text">我已同意<text @click="userAgree" class="font_pro">用户协议</text><text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text> <text class="protocol_text">我已同意<text @click="userAgree"
class="font_pro">用户协议</text><text @click="userPrivacyAgree"
class="font_pro">隐私政策</text></text>
</checkbox-group> </checkbox-group>
</div> </div>
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
@ -83,17 +91,23 @@
<input type="text" placeholder="请输入手机号" placeholder-class="placeholder" v-model="account" /> <input type="text" placeholder="请输入手机号" placeholder-class="placeholder" v-model="account" />
</div> </div>
<div class="item"> <div class="item">
<input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput" v-model="captcha" /> <input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput"
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="handleVerify"> v-model="captcha" />
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''"
@click="handleVerify">
{{ text }} {{ text }}
</button> </button>
</div> </div>
<div class="item"> <div class="item">
<input type="password" placeholder="填写您的登录密码" placeholder-class="placeholder" v-model="password" /> <input type="password" placeholder="填写您的登录密码" placeholder-class="placeholder"
v-model="password" />
</div> </div>
<div class="item" v-if="isShowCode"> <div class="item" v-if="isShowCode">
<input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput" v-model="codeVal" /> <input type="text" placeholder="填写验证码" placeholder-class="placeholder" class="codeIput"
<div class="code" @click="getcaptcha"><image class="code-img" style="width: 100%;height: 100%;" :src="codeUrl" /></div> v-model="codeVal" />
<div class="code" @click="getcaptcha">
<image class="code-img" style="width: 100%;height: 100%;" :src="codeUrl" />
</div>
</div> </div>
</div> </div>
<div class="tip"> <div class="tip">
@ -104,7 +118,9 @@
<div class="protocol acea-row row-between-wrapper"> <div class="protocol acea-row row-between-wrapper">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'> <checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" /> <checkbox class="checkbox" :checked="isAgree ? true : false" />
<text class="protocol_text">我已同意<text @click="userAgree" class="font_pro">用户协议</text><text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text> <text class="protocol_text">我已同意<text @click="userAgree"
class="font_pro">用户协议</text><text @click="userPrivacyAgree"
class="font_pro">隐私政策</text></text>
</checkbox-group> </checkbox-group>
</div> </div>
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
@ -135,21 +151,27 @@
</view> </view>
<view class="list"> <view class="list">
<view class="item"> <view class="item">
<input type='number' placeholder='填写手机号码' placeholder-class='placeholder' v-model="account"></input> <input type='number' placeholder='填写手机号码' placeholder-class='placeholder'
v-model="account"></input>
</view> </view>
<view class="item"> <view class="item">
<input type='number' placeholder='填写验证码' placeholder-class='placeholder' class="codeIput" v-model="captcha"></input> <input type='number' placeholder='填写验证码' placeholder-class='placeholder'
<button class="code" :class="disabled === true ? 'on' : ''" :disabled='disabled' @click="handleVerify"> class="codeIput" v-model="captcha"></input>
<button class="code" :class="disabled === true ? 'on' : ''" :disabled='disabled'
@click="handleVerify">
{{ text }} {{ text }}
</button> </button>
</view> </view>
<view class="item"> <view class="item">
<input type='password' placeholder='填写登录密码' placeholder-class='placeholder' v-model="password"></input> <input type='password' placeholder='填写登录密码' placeholder-class='placeholder'
v-model="password"></input>
</view> </view>
<view class="protocol acea-row"> <view class="protocol acea-row">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'> <checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" /> <checkbox class="checkbox" :checked="isAgree ? true : false" />
<text class="protocol_text">您已同意<text @click="userAgree" class="font_pro">用户协议</text><text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text> <text class="protocol_text">您已同意<text @click="userAgree"
class="font_pro">用户协议</text><text @click="userPrivacyAgree"
class="font_pro">隐私政策</text></text>
</checkbox-group> </checkbox-group>
</view> </view>
</view> </view>
@ -160,7 +182,8 @@
</form> </form>
<view class="copyright" @click="goCopyUrl">{{copyData}}</view> <view class="copyright" @click="goCopyUrl">{{copyData}}</view>
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }" ref="verify"></Verify> <Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
ref="verify"></Verify>
</div> </div>
</div> </div>
</template> </template>
@ -190,7 +213,10 @@
loginMpPhone loginMpPhone
} from "@/api/user"; } from "@/api/user";
// #ifdef APP-PLUS // #ifdef APP-PLUS
import { wechatAppAuth, appleAppAuth } from '@/api/api.js' import {
wechatAppAuth,
appleAppAuth
} from '@/api/api.js'
// #endif // #endif
import attrs, { import attrs, {
required, required,
@ -209,10 +235,16 @@
VUE_APP_API_URL, VUE_APP_API_URL,
configMap configMap
} from "@/utils"; } from "@/utils";
import { HTTP_REQUEST_URL } from '@/config/app'; import {
HTTP_REQUEST_URL
} from '@/config/app';
import parser from "@/components/jyf-parser/jyf-parser"; import parser from "@/components/jyf-parser/jyf-parser";
import { commonAuth } from '../../../api/public'; import {
import { mapGetters} from "vuex"; commonAuth
} from '../../../api/public';
import {
mapGetters
} from "vuex";
import Verify from '@/components/verify/verify.vue'; import Verify from '@/components/verify/verify.vue';
const BACK_URL = "login_back_url"; const BACK_URL = "login_back_url";
@ -253,10 +285,11 @@
copyright: {} copyright: {}
}; };
}, },
computed:{ computed: {
...configMap(['login_logo','wechat_phone_switch'], mapGetters(['viewColor'])), ...configMap(['login_logo', 'wechat_phone_switch'], mapGetters(['viewColor'])),
copyData() { copyData() {
let copy = this.copyright.status == -1 ? this.copyright.year+" "+this.copyright.url : this.copyright.Copyright let copy = this.copyright.status == -1 ? this.copyright.year + " " + this.copyright.url : this.copyright
.Copyright
return copy; return copy;
} }
}, },
@ -282,37 +315,37 @@
mounted: function() { mounted: function() {
this.getVersion(); this.getVersion();
}, },
onReady(){ onReady() {
let that = this let that = this
// #ifdef MP // #ifdef MP
wx.login({ wx.login({
success (res) { success(res) {
if (res.code) { if (res.code) {
that.codeVal = res.code that.codeVal = res.code
} else { } else {
console.log('登录失败!' + res.errMsg) console.log('登录失败!' + res.errMsg)
} }
} }
}) })
// #endif // #endif
}, },
onShow() { onShow() {
uni.setStorageSync('tabbar_sale_type', 1); uni.setStorageSync('tabbar_sale_type', 1);
}, },
methods: { methods: {
// #ifdef MP // #ifdef MP
getPhoneNumber(e) { getPhoneNumber(e) {
let that = this; let that = this;
if(!that.isAgree){ if (!that.isAgree) {
return that.$util.Tips({ return that.$util.Tips({
title: '请勾选用户协议与隐私政策' title: '请勾选用户协议与隐私政策'
}); });
}else{ } else {
loginMpPhone({ loginMpPhone({
iv:e.detail.iv, iv: e.detail.iv,
encryptedData:e.detail.encryptedData, encryptedData: e.detail.encryptedData,
code:that.codeVal, code: that.codeVal,
auth_token: uni.getStorageSync('auth_token'), auth_token: uni.getStorageSync('auth_token'),
}).then(({ }).then(({
data data
}) => { }) => {
@ -326,8 +359,9 @@
that.$store.commit('UPDATE_USERINFO', data.user); that.$store.commit('UPDATE_USERINFO', data.user);
let method let method
let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart', '/pages/goods_cate/goods_cate', let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart',
'/pages/user/index','/pages/plant_grass/index' '/pages/goods_cate/goods_cate',
'/pages/user/index', '/pages/plant_grass/index'
] ]
if (indexPat.includes(this.getPath(backUrl))) { if (indexPat.includes(this.getPath(backUrl))) {
method = 'switchTab' method = 'switchTab'
@ -358,20 +392,20 @@
location.href = this.copyright.url location.href = this.copyright.url
// #endif // #endif
}, },
userAgree(){ userAgree() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/users/user_about/index?from=sys_user_agree' url: '/pages/users/user_about/index?from=sys_user_agree'
}) })
}, },
userPrivacyAgree(){ userPrivacyAgree() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/users/user_about/index?from=sys_userr_privacy' url: '/pages/users/user_about/index?from=sys_userr_privacy'
}) })
}, },
getSystem(system) { getSystem(system) {
if(system.indexOf('iOS') === -1){ if (system.indexOf('iOS') === -1) {
return system return system
}else{ } else {
let str = system.split(' ')[1] let str = system.split(' ')[1]
if (str.indexOf('.')) { if (str.indexOf('.')) {
return Number(str.split('.')[0]) return Number(str.split('.')[0])
@ -388,11 +422,11 @@
// //
appleLogin() { appleLogin() {
let self = this let self = this
if(!self.isAgree){ if (!self.isAgree) {
return self.$util.Tips({ return self.$util.Tips({
title: '请勾选用户协议与隐私政策' title: '请勾选用户协议与隐私政策'
}); });
}else{ } else {
this.account = '' this.account = ''
this.captcha = '' this.captcha = ''
uni.showLoading({ uni.showLoading({
@ -431,19 +465,21 @@
}) })
} }
}, },
appleLoginApi(){ appleLoginApi() {
let that = this let that = this
commonAuth({ commonAuth({
auth: { auth: {
type:'apple', type: 'apple',
auth: { auth: {
userInfo: that.appleUserInfo, userInfo: that.appleUserInfo,
openId: that.appleUserInfo.openId, openId: that.appleUserInfo.openId,
nickname: (that.appleUserInfo.fullName.familyName || '') + (that.appleUserInfo.fullName.giveName || ''), nickname: (that.appleUserInfo.fullName.familyName || '') + (that.appleUserInfo.fullName
.giveName || ''),
} }
}}).then(res => { }
}).then(res => {
const data = res.data; const data = res.data;
if(res.data.status == 200){ if (res.data.status == 200) {
const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$Cache.clear(BACK_URL); that.$Cache.clear(BACK_URL);
that.$store.commit("LOGIN", { that.$store.commit("LOGIN", {
@ -453,8 +489,9 @@
that.$store.commit("SETUID", data.result.user.uid); that.$store.commit("SETUID", data.result.user.uid);
that.$store.commit('UPDATE_USERINFO', data.result.user); that.$store.commit('UPDATE_USERINFO', data.result.user);
let method let method
let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart', '/pages/goods_cate/goods_cate', let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart',
'/pages/user/index','/pages/plant_grass/index' '/pages/goods_cate/goods_cate',
'/pages/user/index', '/pages/plant_grass/index'
] ]
if (indexPat.includes(this.getPath(backUrl))) { if (indexPat.includes(this.getPath(backUrl))) {
method = 'switchTab' method = 'switchTab'
@ -470,7 +507,7 @@
uni[method]({ uni[method]({
url: backUrl url: backUrl
}); });
}else{ } else {
uni.hideLoading(); uni.hideLoading();
that.auth_token = res.data.result.key; that.auth_token = res.data.result.key;
} }
@ -521,15 +558,16 @@
const that = this const that = this
commonAuth({ commonAuth({
auth: { auth: {
type:'app_wechat', type: 'app_wechat',
auth: { auth: {
code: that.appUserInfo.authResult.access_token, code: that.appUserInfo.authResult.access_token,
openid: that.appUserInfo.authResult.openid, openid: that.appUserInfo.authResult.openid,
phone: this.account, phone: this.account,
} }
}}).then(res => { }
}).then(res => {
const data = res.data; const data = res.data;
if(res.data.status == 200){ if (res.data.status == 200) {
const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$Cache.clear(BACK_URL); that.$Cache.clear(BACK_URL);
that.$store.commit("LOGIN", { that.$store.commit("LOGIN", {
@ -539,8 +577,9 @@
that.$store.commit("SETUID", data.result.user.uid); that.$store.commit("SETUID", data.result.user.uid);
that.$store.commit('UPDATE_USERINFO', data.result.user); that.$store.commit('UPDATE_USERINFO', data.result.user);
let method let method
let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart', '/pages/goods_cate/goods_cate', let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart',
'/pages/user/index','/pages/plant_grass/index' '/pages/goods_cate/goods_cate',
'/pages/user/index', '/pages/plant_grass/index'
] ]
if (indexPat.includes(this.getPath(backUrl))) { if (indexPat.includes(this.getPath(backUrl))) {
method = 'switchTab' method = 'switchTab'
@ -556,11 +595,11 @@
uni[method]({ uni[method]({
url: backUrl url: backUrl
}); });
}else{ } else {
that.auth_token = res.data.result.key; that.auth_token = res.data.result.key;
that.bindStatus = true; that.bindStatus = true;
} }
uni.hideLoading(); uni.hideLoading();
}).catch(res => { }).catch(res => {
uni.hideLoading(); uni.hideLoading();
uni.showToast({ uni.showToast({
@ -608,53 +647,54 @@
}); });
loginMobile({ loginMobile({
auth_token: uni.getStorageSync('auth_token'), auth_token: uni.getStorageSync('auth_token'),
phone: that.account, phone: that.account,
sms_code: that.captcha, sms_code: that.captcha,
spread: that.$Cache.get("spread"), spread: that.$Cache.get("spread"),
// #ifdef APP-PLUS // #ifdef APP-PLUS
user_type: 'app', user_type: 'app',
// #endif // #endif
// #ifdef H5 // #ifdef H5
user_type: 'h5', user_type: 'h5',
// #endif // #endif
}) })
.then(({ .then(({
data data
}) => { }) => {
const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$Cache.clear(BACK_URL); that.$Cache.clear(BACK_URL);
that.$store.commit("LOGIN", { that.$store.commit("LOGIN", {
'token': data.token, 'token': data.token,
'time': data.exp 'time': data.exp
}); });
that.$store.commit("SETUID", data.user.uid); that.$store.commit("SETUID", data.user.uid);
that.$store.commit('UPDATE_USERINFO', data.user); that.$store.commit('UPDATE_USERINFO', data.user);
let method let method
let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart', '/pages/goods_cate/goods_cate', let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart',
'/pages/user/index' '/pages/goods_cate/goods_cate',
] '/pages/user/index'
if (indexPat.includes(this.getPath(backUrl))) { ]
method = 'switchTab' if (indexPat.includes(this.getPath(backUrl))) {
} else { method = 'switchTab'
method = 'navigateTo' } else {
} method = 'navigateTo'
if (this.getPath(backUrl) === '/pages/users/login/index') { }
uni.switchTab({ if (this.getPath(backUrl) === '/pages/users/login/index') {
url: '/pages/index/index' uni.switchTab({
url: '/pages/index/index'
});
return
}
uni[method]({
url: backUrl
});
})
.catch(res => {
that.$util.Tips({
title: res
}); });
return
}
uni[method]({
url: backUrl
}); });
})
.catch(res => {
that.$util.Tips({
title: res
});
});
}, },
async register() { async register() {
let that = this; let that = this;
@ -680,36 +720,36 @@
title: '请勾选用户协议与隐私政策' title: '请勾选用户协议与隐私政策'
}); });
register({ register({
auth_token: this.auth_token || uni.getStorageSync('auth_token'), auth_token: this.auth_token || uni.getStorageSync('auth_token'),
phone: that.account, phone: that.account,
sms_code: that.captcha, sms_code: that.captcha,
pwd: that.password, pwd: that.password,
spread: that.$Cache.get("spread"), spread: that.$Cache.get("spread"),
// #ifdef APP-PLUS // #ifdef APP-PLUS
user_type: 'app', user_type: 'app',
// #endif // #endif
// #ifdef H5 // #ifdef H5
user_type: 'h5', user_type: 'h5',
// #endif // #endif
})
.then(res => {
const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$Cache.clear(BACK_URL);
that.$store.commit("LOGIN", {
'token': res.data.token,
'time': res.data.exp
});
that.$store.commit("SETUID", res.data.user.uid);
that.$store.commit('UPDATE_USERINFO', res.data.user);
uni.switchTab({
url: '/pages/user/index'
}) })
}) .then(res => {
.catch(res => { const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$util.Tips({ that.$Cache.clear(BACK_URL);
title: res that.$store.commit("LOGIN", {
'token': res.data.token,
'time': res.data.exp
});
that.$store.commit("SETUID", res.data.user.uid);
that.$store.commit('UPDATE_USERINFO', res.data.user);
uni.switchTab({
url: '/pages/user/index'
})
})
.catch(res => {
that.$util.Tips({
title: res
});
}); });
});
}, },
async code(data) { async code(data) {
let that = this; let that = this;
@ -725,7 +765,7 @@
type: 'login', type: 'login',
key: that.keyCode, key: that.keyCode,
// code: that.codeVal, // code: that.codeVal,
toke:data.token, toke: data.token,
captchaType: 'blockPuzzle', captchaType: 'blockPuzzle',
captchaVerification: data.captchaVerification captchaVerification: data.captchaVerification
}) })
@ -792,7 +832,8 @@
that.$store.commit('UPDATE_USERINFO', data.user); that.$store.commit('UPDATE_USERINFO', data.user);
let method let method
let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart', '/pages/goods_cate/goods_cate', let indexPat = ['/pages/index/index', '/pages/order_addcart/order_addcart',
'/pages/goods_cate/goods_cate',
'/pages/user/index' '/pages/user/index'
] ]
if (indexPat.includes(this.getPath(backUrl))) { if (indexPat.includes(this.getPath(backUrl))) {
@ -843,16 +884,18 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/uni-checkbox .uni-checkbox-input, /deep/uni-checkbox .uni-checkbox-input,
/deep/checkbox .wx-checkbox-input{ /deep/checkbox .wx-checkbox-input {
border-radius: 100%; border-radius: 100%;
width: 28rpx; width: 28rpx;
height: 28rpx; height: 28rpx;
} }
/deep/checkbox .uni-checkbox-input.uni-checkbox-input-checked, /deep/checkbox .uni-checkbox-input.uni-checkbox-input-checked,
/deep/checkbox .wx-checkbox-input.wx-checkbox-input-checked { /deep/checkbox .wx-checkbox-input.wx-checkbox-input-checked {
border: 1px solid var(--view-theme)!important; border: 1px solid var(--view-theme) !important;
background-color: var(--view-theme)!important; background-color: var(--view-theme) !important;
} }
.ChangePassword .phone { .ChangePassword .phone {
font-size: 32rpx; font-size: 32rpx;
font-weight: bold; font-weight: bold;
@ -876,18 +919,23 @@
height: 100%; height: 100%;
font-size: 32rpx; font-size: 32rpx;
} }
.ChangePassword .list .item .placeholder { .ChangePassword .list .item .placeholder {
color: #bbbbbb; color: #bbbbbb;
} }
.ChangePassword .list .item input.codeIput { .ChangePassword .list .item input.codeIput {
width: 240rpx; width: 240rpx;
} }
.register .whiteBg .title_info text{
.register .whiteBg .title_info text {
color: var(--view-theme); color: var(--view-theme);
} }
.register .list .item .code { .register .list .item .code {
color: var(--view-theme); color: var(--view-theme);
} }
.title-bar { .title-bar {
position: relative; position: relative;
display: flex; display: flex;
@ -897,6 +945,7 @@
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
line-height: 48rpx; line-height: 48rpx;
.icon { .icon {
position: absolute; position: absolute;
left: 30rpx; left: 30rpx;
@ -906,6 +955,7 @@
justify-content: center; justify-content: center;
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
image { image {
width: 50rpx; width: 50rpx;
height: 50rpx; height: 50rpx;
@ -913,7 +963,7 @@
} }
} }
.getPhoneBtn{ .getPhoneBtn {
font-size: 32rpx; font-size: 32rpx;
width: 580rpx; width: 580rpx;
height: 90rpx; height: 90rpx;
@ -923,15 +973,18 @@
margin: 40rpx auto 0 auto; margin: 40rpx auto 0 auto;
text-align: center; text-align: center;
line-height: 90rpx; line-height: 90rpx;
.iconfont{
.iconfont {
font-size: 32rpx; font-size: 32rpx;
margin-right: 12rpx; margin-right: 12rpx;
} }
} }
.code image { .code image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.settlementAgreement { .settlementAgreement {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -941,41 +994,50 @@
background: rgba(0, 0, 0, .5); background: rgba(0, 0, 0, .5);
z-index: 10; z-index: 10;
} }
.protocol_text{
.protocol_text {
color: #999; color: #999;
font-size: 24rpx; font-size: 24rpx;
} }
.protocol{
.protocol {
margin-top: 82rpx; margin-top: 82rpx;
justify-content: center; justify-content: center;
} }
.protocol_text{
.font_pro{ .protocol_text {
.font_pro {
color: var(--view-theme); color: var(--view-theme);
} }
} }
.appLogin { .appLogin {
margin-top: 82rpx; margin-top: 82rpx;
.hds { .hds {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
font-size: 24rpx; font-size: 24rpx;
color: #B4B4B4; color: #B4B4B4;
.line { .line {
width: 68rpx; width: 68rpx;
height: 1rpx; height: 1rpx;
background: #CCCCCC; background: #CCCCCC;
} }
p { p {
margin: 0 20rpx; margin: 0 20rpx;
} }
} }
.btn-wrapper { .btn-wrapper {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-top: 30rpx; margin-top: 30rpx;
.btn { .btn {
display: flex; display: flex;
align-items: center; align-items: center;
@ -983,10 +1045,12 @@
width: 68rpx; width: 68rpx;
height: 68rpx; height: 68rpx;
border-radius: 50%; border-radius: 50%;
+ .btn {
+.btn {
margin-left: 30rpx; margin-left: 30rpx;
} }
} }
.apple-btn { .apple-btn {
display: flex; display: flex;
align-items: center; align-items: center;
@ -997,31 +1061,38 @@
background: #EAEAEA; background: #EAEAEA;
border-radius: 34rpx; border-radius: 34rpx;
font-size: 24rpx; font-size: 24rpx;
.icon-s-pingguo { .icon-s-pingguo {
color: #333; color: #333;
margin-right: 10rpx; margin-right: 10rpx;
font-size: 34rpx; font-size: 34rpx;
} }
} }
.iconfont { .iconfont {
font-size: 40rpx; font-size: 40rpx;
color: #fff; color: #fff;
} }
.wx { .wx {
background-color: #61C64F; background-color: #61C64F;
&.btn-apple{
&.btn-apple {
margin-right: 0; margin-right: 0;
background-color: #333; background-color: #333;
} }
} }
.mima { .mima {
background-color: #28B3E9; background-color: #28B3E9;
} }
.yanzheng { .yanzheng {
background-color: #F89C23; background-color: #F89C23;
} }
} }
} }
.whiteBg .logon { .whiteBg .logon {
display: flex; display: flex;
align-items: center; align-items: center;
@ -1034,14 +1105,17 @@
color: #FFFFFF; color: #FFFFFF;
font-size: 30rpx; font-size: 30rpx;
} }
.whiteBg .back{
border: 1px solid var(--view-theme); .whiteBg .back {
border: 1px solid var(--view-theme);
color: var(--view-theme); color: var(--view-theme);
margin-top: 30rpx; margin-top: 30rpx;
background-color: transparent; background-color: transparent;
} }
.login-wrapper { .login-wrapper {
padding: 30rpx; padding: 30rpx;
.shading { .shading {
display: flex; display: flex;
align-items: center; align-items: center;
@ -1052,6 +1126,7 @@
/* #endif */ /* #endif */
/* #ifndef APP-VUE */ /* #ifndef APP-VUE */
margin-top: 200rpx; margin-top: 200rpx;
/* #endif */ /* #endif */
image { image {
width: 180rpx; width: 180rpx;
@ -1059,6 +1134,7 @@
} }
} }
} }
.copyright { .copyright {
position: fixed; position: fixed;
bottom: 30rpx; bottom: 30rpx;

View File

@ -148,9 +148,9 @@
</view> </view>
</view> </view>
<view class="logon" @click="registerReset">完成并登录</view> <view class="logon" @click="registerReset">完成并登录</view>
<view class="tip"> <!-- <view class="tip">
<text @click="formItem=1">立即登录</text> <text @click="formItem=1">立即登录</text>
</view> </view> -->
<view class="protocol acea-row row-between-wrapper"> <view class="protocol acea-row row-between-wrapper">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'> <checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" /> <checkbox class="checkbox" :checked="isAgree ? true : false" />
@ -173,13 +173,13 @@
</view> </view>
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<view class="footer-btns" v-if='formItem!=2'> <view class="footer-btns">
<view class="login-type-btn" :class="{actLoginType:formItem==0}" style="margin-right: 70rpx;"> <view class="login-type-btn" :class="{actLoginType:formItem==0}" style="margin-right: 70rpx;">
<text v-if='formItem == 1' @click="formItem = 0">微信快捷登录</text> <text v-if='formItem == 1||formItem==2' @click="formItem = 0">微信快捷登录</text>
<text v-else @click="appOneClcik">本机一键登录</text> <text v-else @click="appOneClcik">本机一键登录</text>
</view> </view>
<view class="login-type-btn" :class="{actLoginType:formItem==1}"> <view class="login-type-btn" :class="{actLoginType:formItem==1}">
<text v-if='formItem == 0' @click="formItem = 1">更多登录方式</text> <text v-if='formItem == 0 ||formItem==2' @click="formItem = 1">更多登录方式</text>
<text v-else @click="appOneClcik">本机一键登录</text> <text v-else @click="appOneClcik">本机一键登录</text>
</view> </view>
</view> </view>
@ -1693,7 +1693,7 @@
.footer-btns { .footer-btns {
position: absolute; position: absolute;
bottom: 160rpx; bottom: 100rpx;
left: 50%; left: 50%;
transform: translate(-50%); transform: translate(-50%);
display: flex; display: flex;

View File

@ -5,35 +5,42 @@
<image :src="login_logo" v-if="login_logo" /> <image :src="login_logo" v-if="login_logo" />
</view> </view>
</view> --> </view> -->
<view class="whiteBg" style="margin: 0;width: 100%;padding: 50rpx 60rpx;" :style="{ 'background-image': `url(${domain}/static/images/logo_bgl.png)`}"> <view class="whiteBg" style="margin: 0;width: 100%;padding: 50rpx 60rpx;"
:style="{ 'background-image': `url(${domain}/static/images/logo_bgl.png)`}">
<view class="login_title"> <view class="login_title">
<view class="title_h">找回密码</view> <view class="title_h">找回密码</view>
</view> </view>
<form class="list"> <form class="list">
<view class="item"> <view class="item">
<input type="number" placeholder="输入手机号码" placeholder-class="placeholder" v-model="account" autocomplete="off" /> <input type="number" placeholder="输入手机号码" placeholder-class="placeholder" v-model="account"
autocomplete="off" />
<!-- <input type="text" style="height: 0;opacity: 0"> --> <!-- <input type="text" style="height: 0;opacity: 0"> -->
</view> </view>
<view class="item"> <view class="item">
<input type="password" placeholder="填写您的新密码" placeholder-class="placeholder" v-model="password" autocomplete="off" /> <input type="password" placeholder="填写您的新密码" placeholder-class="placeholder" v-model="password"
autocomplete="off" />
</view> </view>
<view class="item"> <view class="item">
<input type="password" placeholder="再次输入新密码" placeholder-class="placeholder" v-model="confirm_pwd" autocomplete="off" /> <input type="password" placeholder="再次输入新密码" placeholder-class="placeholder" v-model="confirm_pwd"
autocomplete="off" />
</view> </view>
<view class="item" style="display: flex;justify-content: space-between;"> <view class="item" style="display: flex;justify-content: space-between;">
<input type="number" placeholder="填写验证码" maxlength="4" placeholder-class="placeholder" class="codeIput" v-model="captcha" autocomplete="off" /> <input type="number" placeholder="填写验证码" maxlength="4" placeholder-class="placeholder"
<button class="code" style="color: #fff;" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="handleVerify"> class="codeIput" v-model="captcha" autocomplete="off" />
<button class="code" style="color: #fff;" :disabled="disabled"
:class="disabled === true ? 'on' : ''" @click="handleVerify">
{{ text }} {{ text }}
</button> </button>
</view> </view>
</form> </form>
<view class="logon" @click="registerReset">确认</view> <view class="logon" @click="registerReset">确认</view>
<view class="tip"> <!-- <view class="tip">
<text @click="back">立即登录</text> <text @click="back">立即登录</text>
</view> </view> -->
</view> </view>
<view class="bottom"></view> <view class="bottom"></view>
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }" ref="verify"></Verify> <Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
ref="verify"></Verify>
</view> </view>
</template> </template>
@ -48,7 +55,9 @@
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
const app = getApp(); const app = getApp();
import { mapGetters} from "vuex"; import {
mapGetters
} from "vuex";
import sendVerifyCode from "@/mixins/SendVerifyCode"; import sendVerifyCode from "@/mixins/SendVerifyCode";
import { import {
registerVerify, registerVerify,
@ -56,19 +65,25 @@
getCodeApi, getCodeApi,
getCaptcha getCaptcha
} from "@/api/user"; } from "@/api/user";
import { validatorDefaultCatch } from "@/utils/dialog"; import {
validatorDefaultCatch
} from "@/utils/dialog";
import attrs, { import attrs, {
required, required,
alpha_num, alpha_num,
chs_phone chs_phone
} from "@/utils/validate"; } from "@/utils/validate";
import { configMap } from '@/utils'; import {
import { HTTP_REQUEST_URL } from '@/config/app'; configMap
import Verify from '@/components/verify/verify.vue'; } from '@/utils';
import {
HTTP_REQUEST_URL
} from '@/config/app';
import Verify from '@/components/verify/verify.vue';
export default { export default {
name: "RetrievePassword", name: "RetrievePassword",
components: { components: {
Verify Verify
}, },
mixins: [sendVerifyCode], mixins: [sendVerifyCode],
data: function() { data: function() {
@ -85,16 +100,14 @@
}; };
}, },
computed: configMap(['login_logo'], mapGetters(['viewColor'])), computed: configMap(['login_logo'], mapGetters(['viewColor'])),
onReady() { onReady() {},
}, mounted: function() {},
mounted: function() {
},
methods: { methods: {
back() { back() {
uni.navigateBack(); uni.navigateBack();
}, },
again() { again() {
this.codeUrl = VUE_APP_API_URL + "/captcha?" + this.keyCode + Date.parse(new Date()); this.codeUrl = VUE_APP_API_URL + "/captcha?" + this.keyCode + Date.parse(new Date());
}, },
async code(data) { async code(data) {
@ -108,7 +121,7 @@
await registerVerify({ await registerVerify({
phone: that.account, phone: that.account,
type: 'change_pwd', type: 'change_pwd',
captchaType: 'blockPuzzle', captchaType: 'blockPuzzle',
captchaVerification: data.captchaVerification captchaVerification: data.captchaVerification
}) })
.then(res => { .then(res => {
@ -169,7 +182,7 @@
}) })
}); });
}, },
success(data) { success(data) {
this.$refs.verify.hide(); this.$refs.verify.hide();
this.code(data); this.code(data);
}, },
@ -180,13 +193,15 @@
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.register{ .register {
background: #ffffff; background: #ffffff;
height: 100vh; height: 100vh;
} }
.register .list .item .code { .register .list .item .code {
color: var(--view-theme); color: var(--view-theme);
} }
.whiteBg .logon { .whiteBg .logon {
display: flex; display: flex;
align-items: center; align-items: center;
@ -194,12 +209,13 @@
width: 100%; width: 100%;
height: 86rpx; height: 86rpx;
margin-top: 48rpx; margin-top: 48rpx;
background-color:var(--view-theme); background-color: var(--view-theme);
border-radius: 120rpx; border-radius: 120rpx;
color: #FFFFFF; color: #FFFFFF;
font-size: 30rpx; font-size: 30rpx;
} }
.whiteBg{
.whiteBg {
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% auto; background-size: 100% auto;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB