Commit 9b8dacdd authored by FE-安焕焕's avatar FE-安焕焕 👣

修复多个问题

parent 7900ec19
......@@ -1159,11 +1159,31 @@
}
},
"@qg/ui-request": {
"version": "0.0.15",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fui-request/-/ui-request-0.0.15.tgz",
"integrity": "sha512-ZYR/7NMFDY0NBU0B71D3/ENdI29YTKhmk0BE68IFlt63rPwKXeUWzUtmfsA1Wgx/iMkNE8qfJMKt7lPLreYYWA==",
"version": "0.0.17",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fui-request/-/ui-request-0.0.17.tgz",
"integrity": "sha512-jYrp+qSqGy+HEBcOqYJtFSErxtLLkpuh4eUiexgX2sjjseED3vXB8pQRiimWCqBP+P/u3+Q1Bzp7KcMSj2OPNQ==",
"requires": {
"@qg/js-bridge": "^1.2.0-beta2",
"axios": "^0.19.2"
},
"dependencies": {
"@qg/js-bridge": {
"version": "1.2.0-beta2",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fjs-bridge/-/js-bridge-1.2.0-beta2.tgz",
"integrity": "sha512-iGWg5cUZnkI7xD8m8ra7mxqdLVc3DEtUpS5zAafAcINMqG7vtzXJyJACRQtxb8T2WZMSblSuGmdAiiqCeY8+4g==",
"requires": {
"qs": "^6.10.1",
"weixin-js-sdk": "^1.6.0"
}
},
"qs": {
"version": "6.10.1",
"resolved": "http://npmprivate.quantgroups.com/qs/-/qs-6.10.1.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
"requires": {
"side-channel": "^1.0.4"
}
}
}
},
"@qg/webpack-cos-cdn-upload-plugin": {
......@@ -2960,6 +2980,15 @@
}
}
},
"call-bind": {
"version": "1.0.2",
"resolved": "http://npmprivate.quantgroups.com/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"call-me-maybe": {
"version": "1.0.1",
"resolved": "http://npmprivate.quantgroups.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
......@@ -5798,8 +5827,7 @@
"function-bind": {
"version": "1.1.1",
"resolved": "http://npmprivate.quantgroups.com/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree": {
"version": "1.0.1",
......@@ -5819,6 +5847,16 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "http://npmprivate.quantgroups.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
}
},
"get-own-enumerable-property-symbols": {
"version": "3.0.2",
"resolved": "http://npmprivate.quantgroups.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
......@@ -5972,7 +6010,6 @@
"version": "1.0.3",
"resolved": "http://npmprivate.quantgroups.com/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1"
}
......@@ -6003,8 +6040,7 @@
"has-symbols": {
"version": "1.0.1",
"resolved": "http://npmprivate.quantgroups.com/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
"dev": true
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"has-value": {
"version": "1.0.0",
......@@ -10978,6 +11014,23 @@
"integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
"dev": true
},
"side-channel": {
"version": "1.0.4",
"resolved": "http://npmprivate.quantgroups.com/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
},
"dependencies": {
"object-inspect": {
"version": "1.11.0",
"resolved": "http://npmprivate.quantgroups.com/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
}
}
},
"signal-exit": {
"version": "3.0.3",
"resolved": "http://npmprivate.quantgroups.com/signal-exit/-/signal-exit-3.0.3.tgz",
......@@ -14601,6 +14654,11 @@
"resolved": "http://npmprivate.quantgroups.com/webwackify/-/webwackify-0.1.6.tgz",
"integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA=="
},
"weixin-js-sdk": {
"version": "1.6.0",
"resolved": "http://npmprivate.quantgroups.com/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz",
"integrity": "sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ=="
},
"which": {
"version": "1.3.1",
"resolved": "http://npmprivate.quantgroups.com/which/-/which-1.3.1.tgz",
......
......@@ -31,7 +31,7 @@ export default [
{
path: '/paySuccess',
name: 'paySuccess',
alias: ['/paySuccess'], // 有问题🤨
alias: ['/paySuccess'],
meta: {
title: '支付成功',
success: true
......
......@@ -329,7 +329,6 @@ export function phoneFormat(mobile) {
return value;
}
export function checkPhoneFormat(mobile) {
console.log(mobile);
/* 校验手机号格式 */
if (!mobile) return;
const reg = /^1([3-9][0-9]|4[5,7]|5[0,1,2,3,5,6,7,8,9]|6[2,5,6,7]|7[0,1,7,8]|8[0-9]|9[1,8,9])\d{8}$/;
......@@ -428,3 +427,16 @@ export function throttle(fn, wait) {
}
};
}
let top = 0;
export function stopBodyScroll(isFixed) {
if (isFixed) {
top = document.documentElement.scrollTop || document.body.scrollTop;
document
.querySelector('body')
.setAttribute('style', `position: fixed;top: ${-top}px;width: 100%;`);
} else {
document.querySelector('body').setAttribute('style', `position: '';top: '';`);
window.scrollTo(0, top);
}
}
......@@ -7,11 +7,12 @@
<cr-field
v-model="rechargeTel"
type="tel"
clearable
class="center-phone-field"
placeholder="请输入手机号码"
@input="changeTelFormat"
@blur="searchPhoneNo(rechargeTel)"
@focus="inputBlur = true"
@focus="focusHandler"
/>
<div class="center-phone__list" :class="{ show: inputBlur }">
<div
......@@ -66,12 +67,16 @@ export default {
changeTelFormat(phone) {
this.phoneNoHome = '';
this.rechargeTel = phoneFormat(phone);
if (this.rechargeTel.length > 12) {
if (this.rechargeTel?.length > 12) {
this.queryhome();
}
},
async searchPhoneNo() {
this.inputBlur = false;
async searchPhoneNo(e) {
console.log(e);
setTimeout(() => {
this.inputBlur = false;
}, 500);
if (!this.phoneNo) return;
if (!checkPhoneFormat(this.phoneNo)) {
this.$toast.fail('请您输入正确的手机号');
......@@ -95,14 +100,18 @@ export default {
},
input() {
this.$emit('input', { phoneNo: this.phoneNo, phoneNoHome: this.phoneNoHome });
},
focusHandler() {
this.inputBlur = true;
}
}
};
</script>
<style lang="less">
.center {
position: relative;
&-phone {
position: relative;
z-index: 9;
border-bottom: @border-width-base solid @gray-2;
.cr-field:not(:last-child)::after {
display: none;
......@@ -125,9 +134,9 @@ export default {
&__list {
display: none;
position: absolute;
top: 100px;
width: 100%;
width: 351px;
margin: auto;
margin-top: 5px;
left: -@padding-lg;
right: -@padding-lg;
z-index: 3;
......
......@@ -55,7 +55,14 @@ export default {
this.phoneRecharge[`${name}Type`]
);
this.$emit('changeRechargetype', name);
this.rechargeList[name] = data?.rechargeList || [];
this.rechargeList[name] = [...data?.rechargeList] || [];
this.selectedRechargeInfo = this.rechargeList[name][0];
this.rechargeList[name].forEach(element => {
if (element.salePrice === '100.00') {
this.selectedRechargeInfo = { ...element };
}
});
this.$emit('selectedRecharge', { rechargeInfo: this.selectedRechargeInfo });
},
handleSkuSelected(item) {
this.selectedRechargeInfo = item;
......@@ -66,7 +73,8 @@ export default {
</script>
<style lang="less">
.center-recharge {
height: 300px;
overflow: hidden;
height: 282px;
margin-top: @padding-xs;
margin-bottom: @padding-xs;
}
......
......@@ -2,15 +2,26 @@
height: 100%;
.center {
width: 351px;
height: 451px;
height: 471px;
position: relative;
box-sizing: border-box;
background: @white;
border-radius: 8px;
padding: 14px;
margin: auto;
margin-top: 50px;
.button{
.text-18();
.footer{
position: absolute;
width: 100%;
bottom:20px;
left:0px;
box-sizing: border-box;
padding: 0 14px;
background-color: @white;
z-index: 9;
.button{
.text-18();
}
}
}
.slowRechargeTip{
......
......@@ -2,29 +2,27 @@
<div class="home">
<RechargeTop v-model="vipLife" />
<div class="center">
<RechargeInput
v-model="rechargePhoneInfo"
:user-phone-info="userPhoneInfo"
:list="historyRecordList"
/>
<RechargeInput v-model="rechargePhoneInfo" :user-phone-info="userPhoneInfo" />
<RechargeList
:phone-recharge="phoneRecharge"
@selectedRecharge="selectedRecharge"
@changeRechargetype="rechargeType = $event"
/>
<p v-if="rechargeType === 'slowRecharge'" class="slowRechargeTip">
充值后预计最迟48小时内到账,请耐心等待
</p>
<cr-button
block
type="primary"
shape="circle"
class="button"
:disabled="!disabled"
@click="goOrder"
>
{{ selectedRechargeInfo.salePrice ? `¥${selectedRechargeInfo.salePrice}` : '' }}立即充值
</cr-button>
<div class="footer">
<p v-if="rechargeType === 'slowRecharge'" class="slowRechargeTip">
充值后预计最迟48小时内到账,请耐心等待
</p>
<cr-button
block
type="primary"
shape="circle"
class="button"
:disabled="!disabled"
@click="goOrder"
>
{{ selectedRechargeInfo.salePrice ? `¥${selectedRechargeInfo.salePrice}` : '' }}立即充值
</cr-button>
</div>
</div>
</div>
</template>
......@@ -35,7 +33,7 @@ import RechargeTop from './components/RechargeTop.vue';
import RechargeList from './components/RechargeList.vue';
import RechargeInput from './components/RechargeInput.vue';
import localStorage from '@/service/localStorage.service';
import { getTokenFromNative, throttle } from '@/service/utils.service';
import { throttle } from '@/service/utils.service';
const { getSpuList } = api;
export default {
components: {
......@@ -50,7 +48,6 @@ export default {
phoneRecharge: {},
userPhoneInfo: {},
rechargeType: 'recharge',
historyRecordList: [],
rechargePhoneInfo: {},
selectedRechargeInfo: {}
};
......@@ -79,12 +76,7 @@ export default {
this.selectedRechargeInfo = rechargeInfo;
},
async goOrderApi() {
/* 需要加防抖 */
const { skuNo, salePrice } = this.selectedRechargeInfo;
const token = localStorage.get('vccToken');
if (!token) {
await getTokenFromNative();
}
const [res] = await orderApi.orderCreate({
totalFee: salePrice,
terminal: 'H5',
......
<template>
<div class="pay-type-list">
<p class="type-title b-b">{{ value.title }}</p>
<p class="type-title">{{ value.title }}</p>
<payGroupItem
v-if="value.isGroupPay"
v-model="payList"
......
<template>
<div class="payCardItem">
<div :class="['type-item', { 'b-t': !isGroupPay }]">
<div :class="['type-item', 'b-t']" @click="changePayType(value)">
<div class="type-item-content">
<div class="type-item-content-info">
<cr-image :src="value.icon" class="icon" mode="aspectFit" width="39" height="39" />
......@@ -34,7 +34,6 @@
class="type-item-checkbox"
checked-color="#EC1500"
:disabled="disabled || value.disabled"
@click.native="changePayType(value)"
/>
</div>
<p v-if="riskLimit && value.riskManagementDesc && !disabled" class="limitDes">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment