换皮:新增peko

This commit is contained in:
Dragon
2022-09-27 15:34:30 +08:00
parent 3cf89feaa0
commit eca795c6a4
449 changed files with 21845 additions and 2202 deletions

View File

@@ -11,9 +11,9 @@ module.exports = {
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: { '/api': {
// target: 'https://api.pekolive.com',
// target: 'https://api.lecheng163.com',
// target: 'http://120.79.211.243',
target: 'https://yeying.api.shengxuanwangluo.com/',
target: 'https://beta.api.pekolive.com',
changeOrigin: true,
secure: false,
pathRewrite: {

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>夜莺</title>
<title>peko</title>
<!-- <script src="//unpkg.com/vue-ydui/dist/ydui.flexible.js"></script> -->
</head>

View File

@@ -19,6 +19,27 @@
}
}
},
"@babel/runtime-corejs2": {
"version": "7.19.2",
"resolved": "https://registry.npmmirror.com/@babel/runtime-corejs2/-/runtime-corejs2-7.19.2.tgz",
"integrity": "sha512-XofFIUXoVSuIabaED6ZNzvQ5iFzwQ3rnflnJTlMfmaZ9MHi+fmPk0iAwA6J6+8tC2UVshfyWPxIDmTKR+fRofA==",
"requires": {
"core-js": "^2.6.12",
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}
}
},
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz",
@@ -9849,6 +9870,23 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"qiniu-js": {
"version": "3.4.1",
"resolved": "https://registry.npmmirror.com/qiniu-js/-/qiniu-js-3.4.1.tgz",
"integrity": "sha512-8vxrLqDPlJUk3fUAaTozh3TAT3ww9B5KqGogmGuTiFHnewXDoMxTCSY5z8Ab5UNdrCo6ZxDM07G/o++CICRUFw==",
"requires": {
"@babel/runtime-corejs2": "^7.10.2",
"querystring": "^0.2.1",
"spark-md5": "^3.0.0"
},
"dependencies": {
"querystring": {
"version": "0.2.1",
"resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.1.tgz",
"integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg=="
}
}
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz",
@@ -10987,6 +11025,11 @@
"resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"spark-md5": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/spark-md5/-/spark-md5-3.0.2.tgz",
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
},
"spdx-correct": {
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz",

View File

@@ -18,6 +18,7 @@
"node-sass": "^4.13.0",
"postcss-pxtorem": "^5.1.1",
"px2rem-loader": "^0.1.9",
"qiniu-js": "^3.4.1",
"style-loader": "^1.1.1",
"svg-sprite-loader": "^4.1.6",
"swiper": "^5.3.8",

View File

@@ -3,155 +3,211 @@ import request from '@/utils/request';
import { EnvCheck, checkVersion } from '@/utils/browser.js'
let isApp = checkVersion().app
if (EnvCheck() === 'test') {
// console.log(12542);
// baseURL = 'http://120.79.211.243'
host = 'https://yeying.api.shengxuanwangluo.com/'
// 正式环境
// console.log(12542);
// baseURL = 'http://120.79.211.243'
host = 'https://beta.api.pekolive.com'
// 正式环境
} else {
host = 'https://yeying.api.shengxuanwangluo.com/'
host = 'https://api.lecheng163.com'
}
//我的收益
export const getWithDrawList = (params) => {
return request({
// url: isApp ? "/api/withDraw/findList" : "/api/withDraw/h5/findList",
url: isApp ? "/withDraw/findList" : "/withDraw/h5/findList",
method: 'GET',
params,
})
return request({
// url: isApp ? "/api/withDraw/findList" : "/api/withDraw/h5/findList",
url: isApp ? "/withDraw/findList" : "/withDraw/h5/findList",
method: 'GET',
params,
})
}
export const myincome = (params) => {
return request({
// url: "/api/purse/query",
url: "/purse/query",
method: 'GET',
params,
})
return request({
// url: "/api/purse/query",
url: "/purse/query",
method: 'GET',
params,
})
}
export const getCrystals = (params) => {
return request({
// url: "/api/bill/record/get",
url: "/bill/record/get",
method: 'GET',
params,
})
return request({
// url: "/api/bill/record/get",
url: "/bill/record/get",
method: 'GET',
params,
})
}
export const exchange = (params) => {
return request({
// url: isApp ? "/api/change/gold" : "/api/change/h5/gold",
url: isApp ? "/change/gold" : "/change/h5/gold",
method: 'POST',
params,
})
return request({
// url: isApp ? "/api/change/gold" : "/api/change/h5/gold",
url: isApp ? "/change/gold" : "/change/h5/gold",
method: 'POST',
params,
})
}
export const getAlipayInfo = (params) => {
return request({
// url: isApp ? "/api/withDraw/exchange" : "/api/withDraw/h5/exchange/msg",
url: isApp ? "/withDraw/exchange" : "/withDraw/h5/exchange/msg",
method: 'GET',
params,
})
return request({
// url: isApp ? "/api/withDraw/exchange" : "/api/withDraw/h5/exchange/msg",
url: isApp ? "/withDraw/exchange" : "/withDraw/h5/exchange/msg",
method: 'GET',
params,
})
}
export const withdraw = (params) => {
return request({
// url: isApp ? "/api/withDraw/withDrawCash" : "/api/withDraw/h5/withDrawCash",
url: isApp ? "/withDraw/withDrawCash" : "/withDraw/h5/withDrawCash",
method: 'POST',
params,
})
return request({
// url: isApp ? "/api/withDraw/withDrawCash" : "/api/withDraw/h5/withDrawCash",
url: isApp ? "/withDraw/withDrawCash" : "/withDraw/h5/withDrawCash",
method: 'POST',
params,
})
}
export const bindAlipay = (params) => {
return request({
// url: isApp ? "/api/withDraw/bound" : "/api/withDraw/h5/bound2",
url: isApp ? "/withDraw/bound" : "/withDraw/h5/bound2",
method: 'POST',
params,
})
return request({
// url: isApp ? "/api/withDraw/bound" : "/api/withDraw/h5/bound2",
url: isApp ? "/withDraw/bound" : "/withDraw/h5/bound2",
method: 'POST',
params,
})
}
export const getSms = (params) => {
return request({
// url: "/api/sms/getCode",
url: "/sms/getCode",
method: 'POST',
params,
})
return request({
// url: "/api/sms/getCode",
url: "/sms/getCode",
method: 'POST',
params,
})
}
export const getWxUserInfoV2 = (params) => {
return request({
// url: "/api/getWxUserInfoV2",
url: "/getWxUserInfoV2",
method: 'POST',
params,
})
return request({
// url: "/api/getWxUserInfoV2",
url: "/getWxUserInfoV2",
method: 'POST',
params,
})
}
export const diamondLog = (params) => {
return request({
// url: '/api/bill/record/get',
url: '/bill/record/get',
method: 'get',
params: params
})
return request({
// url: '/api/bill/record/get',
url: '/bill/record/get',
method: 'get',
params: params
})
}
//获取验证码接口
export const getCode = (params) => {
return request({
url: '/sms/getCode',
// url: '/api/sms/getCode',
method: 'POST',
params: params
})
return request({
url: '/sms/getCode',
// url: '/api/sms/getCode',
method: 'POST',
params: params
})
}
export const login = (params) => {
return request({
url: '/oauth/h5/smsLogin',
// url: '/api/oauth/h5/smsLogin',
method: 'POST',
params: params
})
return request({
url: '/oauth/h5/smsLogin',
// url: '/api/oauth/h5/smsLogin',
method: 'POST',
params: params
})
}
export const weekTotal = (params) => {
return request({
url: '/room/revenue/weekTotal',
// url: '/api/room/revenue/weekTotal',
method: 'GET',
params: params
})
return request({
url: '/room/revenue/weekTotal',
// url: '/api/room/revenue/weekTotal',
method: 'GET',
params: params
})
}
// 新夜莺赛事领奖h5接口
// 新peko赛事领奖h5接口
export const listWithdrawProd = (params) => {
return request({
url: '/gameManage/withdraw/listWithdrawProd',
method: 'GET',
params: params
})
return request({
url: '/gameManage/withdraw/listWithdrawProd',
method: 'GET',
params: params
})
}
export const getGamePurse = (params) => {
return request({
url: '/gameManage/user/getPurse',
method: 'GET',
params: params
})
return request({
url: '/gameManage/user/getPurse',
method: 'GET',
params: params
})
}
export const gameWithdraw = (params) => {
return request({
url: '/gameManage/withdraw/h5/withDrawCash',
method: 'POST',
params,
})
return request({
url: '/gameManage/withdraw/h5/withDrawCash',
method: 'POST',
params,
})
}
// 个播流水
export const weekTotal_single_broadcast = (params) => {
return request({
url: '/room/revenue/singleBroadcast/weekTotal',
method: 'GET',
params
})
return request({
url: '/room/revenue/singleBroadcast/weekTotal',
method: 'GET',
params
})
}
/************************************新版提现相关接口*************************************/
// 获取用户提现信息
export const getUserWithdrawInfo = (params) => {
return request({
url: '/withdraw/v2/getUserWithdrawInfo',
method: 'GET',
params
})
}
// 七牛上传
export const getUploadToken = (params) => {
return request({
url: '/qiniu/upload/getUploadToken',
method: 'GET',
params
})
}
// 用户绑定提现信息
export const bindWithdrawInfo = (params) => {
return request({
url: '/withdraw/v2/bindWithdrawInfo',
method: 'POST',
params
})
}
// 校验验证码
export const verifyCode = (params) => {
return request({
url: '/sms/verify',
method: 'POST',
params
})
}
// 获取用户提现配置信息
export const getUserWithdrawConfig = (params) => {
return request({
url: '/withdraw/v2/getUerWithdrawConfigVO',
method: 'GET',
params
})
}
// 新版提现接口
export const withdrawV2 = (params) => {
return request({
url: '/withdraw/v2/applyWithdraw',
method: 'POST',
params
})
}
// 用户修改提现信息
export const updateWithdrawInfo = (params) => {
return request({
url: '/withdraw/v2/updateWithdrawInfo',
method: 'POST',
params
})
}
// //get
// let myincome = host + '/purse/query?uid='
// //提现列表get
@@ -180,16 +236,16 @@ let withdrawLink = host + '/peko/modules/rule/output.html?platform=66'
//排行榜
let rankList = '/allrank/geth5'
export {
// myincome,
// getWithDrawList,
// getCrystals,
// exchange,
// getAlipayInfo,
// withdraw,
// bindAlipay,
// getSms,
// getWxUserInfoV2,
faqLink,
withdrawLink,
rankList,
// myincome,
// getWithDrawList,
// getCrystals,
// exchange,
// getAlipayInfo,
// withdraw,
// bindAlipay,
// getSms,
// getWxUserInfoV2,
faqLink,
withdrawLink,
rankList,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -18,6 +18,7 @@ var routers = new Router({
{ path: '/Login', name: 'Login', component: () => import('@/view/myincome/Login.vue'), meta: { title: "登录" } },
{ path: '/runningWater', name: 'runningWater', component: () => import('@/view/running/runningWater.vue'), meta: { title: "房间流水" } },
{ path: '/GameWithDrawDesc', name: 'GameWithDrawDesc', component: () => import('@/view/myincome/GameWithDrawDesc.vue'), meta: { title: "领奖说明" } },
{ path: '/WithDrawInfoBind', name: 'WithDrawInfoBind', component: () => import('@/view/myincome/WithDrawInfoBind.vue'), meta: { title: "个人信息绑定" } }
]
});

View File

@@ -13,7 +13,7 @@ export const checkVersion = () => {
webApp: u.indexOf('Safari') == -1, //是否web应该程序没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信
qq: u.match(/\sQQ/i) == " qq", //是否QQ
app: u.match('tutuApp') == 'tutuApp' //是否在app内
app: u.match('pekoApp') == 'pekoApp' //是否在app内
};
}
export const EnvCheck = () => {

View File

@@ -25,8 +25,8 @@ const commonJs = {
webApp: u.indexOf('Safari') > -1, // 是否web应该程序没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, // 是否微信
qq: u.match(/\sQQ/i) === ' qq', // 是否QQ
tutuApp: u.match('tutuApp'),
app: u.match('tutuApp') // 是否在app内
pekoApp: u.match('pekoApp'),
app: u.match('pekoApp') // 是否在app内
}
},
// 适配服务器环境(正式/测试)

View File

@@ -6,10 +6,10 @@ let baseURL;
if (EnvCheck() === 'test') {
// console.log('test');
// baseURL = 'http://120.79.211.243'
baseURL = 'https://yeying.api.shengxuanwangluo.com/'
baseURL = 'https://beta.api.pekolive.com'
// 正式环境
} else {
baseURL = 'https://yeying.api.shengxuanwangluo.com/'
baseURL = 'https://api.lecheng163.com'
}
// baseURL = ''
const service = axios.create({
@@ -24,17 +24,34 @@ const service = axios.create({
service.interceptors.request.use(config => {
if (router.apps[0]._route.name === 'Login') {
config.headers = {}
} else if (!checkVersion().app) {
config.headers = {
'h5_token': window.sessionStorage.getItem('ticket'),
'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
} else if (!checkVersion().app){
if (router.apps[0]._route.name === 'WithDrawInfoBind' && config.url ==`/sms/verify` || config.url==`/sms/getCode`) {
config.headers = {
'h5_token': window.sessionStorage.getItem('ticket'),
// 'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
}
} else{
config.headers = {
'h5_token': window.sessionStorage.getItem('ticket'),
'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
}
}
} else {
config.headers = {
'pub_ticket': window.sessionStorage.getItem('ticket'),
'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
if (router.apps[0]._route.name === 'WithDrawInfoBind' && config.url ==`/sms/verify`|| config.url==`/sms/getCode`) {
config.headers = {
'pub_ticket': window.sessionStorage.getItem('ticket'),
// 'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
}
} else{
config.headers = {
'pub_ticket': window.sessionStorage.getItem('ticket'),
'pub_uid': window.sessionStorage.getItem('uid'),
'client': 'h5'
}
}
}
@@ -76,4 +93,4 @@ service.interceptors.response.use(response => {
}
)
export default service
export default service

View File

@@ -32,11 +32,11 @@
<p class="b">3完成上述操作后可重新进行领奖申请</p>
</div>
<p>
2.如平台检测到用户的夜莺账户有作弊或异常状况平台将拒绝该用户对收益进行提现
2.如平台检测到用户的peko账户有作弊或异常状况平台将拒绝该用户对收益进行提现
</p>
<p>3.如对领奖金额有疑问可联系在线客服并提供相关信息进行查询</p>
<p>
4.夜莺有权依据国家政策技术条件产品功能等变化需要而对本说明进行修改并将修改后的说明予以发布并对具体奖金发放规则及领奖说明拥有最终解释权
4.peko有权依据国家政策技术条件产品功能等变化需要而对本说明进行修改并将修改后的说明予以发布并对具体奖金发放规则及领奖说明拥有最终解释权
</p>
</div>
</template>

View File

@@ -1,7 +1,7 @@
<template>
<div>
<img src="@/assets/img/login.png" />
<p class="tit">登录夜莺</p>
<p class="tit">登录peko</p>
<div class="max">
<div class="phone">
<input type="type" v-model="phone" maxlength="11" placeholder="请输入手机号码" @blur="blurBtn" />
@@ -23,7 +23,7 @@
</div>
</div>
<div class="contact">
<p>夜莺客服微信号pekokefu01</p>
<p>peko客服微信号pekokefu01</p>
<p>
<span>粤网文:(2018)8220-2981</span>
<span>
@@ -103,7 +103,7 @@ export default {
})
.catch(err => {
if(err.code === 503){
Toast('该手机号未注册\n请先去夜莺app完成注册')
Toast('该手机号未注册\n请先去pekoapp完成注册')
}
})
},

View File

@@ -127,7 +127,7 @@
{{ item.cashNum }}
</li>
</ul>
<p class="bonus-desc" @click="goToDesc">夜莺领奖说明</p>
<p class="bonus-desc" @click="goToDesc">peko领奖说明</p>
<div class="bonus-btn" @click="apply">申请领奖</div>
<div class="shade-mask" v-if="isShowShade">
<div class="shade-content">
@@ -864,27 +864,27 @@ export default {
});
},
examine() {
// window.location.href = `https://yeying.api.shengxuanwangluo.com/peko/modules/statistic/serial.html?codes=${this.runningWater.roomUidEncode}`;
// window.location.href = `https://beta.api.pekolive.com/peko/modules/statistic/serial.html?codes=${this.runningWater.roomUidEncode}`;
if (EnvCheck() === "test") {
window.location.href =
"https://yeying.api.shengxuanwangluo.com/peko/modules/statistic/serial.html?codes=" +
"https://beta.api.pekolive.com/peko/modules/statistic/serial.html?codes=" +
this.runningWater.roomUidEncode;
return;
}
window.location.href =
"http://api.pekolive.com/peko/modules/statistic/serial.html?codes=" +
"http://api.lecheng163.com/peko/modules/statistic/serial.html?codes=" +
this.runningWater.roomUidEncode;
},
examineSingleBroadcast() {
if (EnvCheck() === "test") {
window.location.href =
"https://yeying.api.shengxuanwangluo.com/peko/modules/statistic/serialsingleBroadcast.html?codes=" +
"https://beta.api.pekolive.com/peko/modules/statistic/serialsingleBroadcast.html?codes=" +
this.rw_single_broadcast.roomUidEncode;
return;
}
window.location.href =
"https://yeying.api.shengxuanwangluo.com/peko/modules/statistic/serialsingleBroadcast.html?codes=" +
"https://api.lecheng163.com/peko/modules/statistic/serialsingleBroadcast.html?codes=" +
this.rw_single_broadcast.roomUidEncode;
},

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,988 @@
<template>
<div class="box-all">
<navigation
v-if="!this.$store.state.isApp"
title="个人提现信息绑定"
></navigation>
<!-- <div class="pop">
<div class="pop_in"></div>
</div> -->
<div class="user_info">
<div class="realName">
<p>真实姓名</p>
<input
type="text"
placeholder="请输入真实姓名"
v-model="realName"
:disabled="isBind ? 1 : false"
/>
</div>
<div class="IDcard">
<p>身份证号</p>
<input
type="text"
placeholder="请输入身份证号"
maxlength="18"
v-model="idCardNo"
:disabled="isBind ? 1 : false"
/>
</div>
<div class="IDcard_info">
<p>身份证信息</p>
<p class="tip">请按照要求拍摄有效的二代身份证</p>
<div class="ID_pic_wrap">
<div class="front_pic">
<div class="text">
<p>身份证正面</p>
<span>含个人信息的一面</span>
</div>
<div class="pic_wrap">
<div class="user_front_idcard_pic">
<img
v-if="!idCardFront"
src="@/assets/img/idcard-front-default.png"
alt=""
/>
<img :src="idCardFront" alt="" v-else />
</div>
<div class="upload_btn" v-if="!isBind">
<p>
{{ idCardFront ? "重新上传" : "点击上传" }}
</p>
</div>
<input
type="file"
accept="image/*"
class="upload_input"
style="opacity: 0"
@change="getImgPath(1, $event)"
v-if="!isBind"
/>
</div>
</div>
<div class="end_pic">
<div class="text">
<p>国徽面</p>
<span>含签发机关的一面</span>
</div>
<div class="pic_wrap">
<div class="user_end_idcard_pic">
<img
v-if="!idCardBack"
src="@/assets/img/idcard-end-default.png"
alt=""
/>
<img :src="idCardBack" alt="" v-else />
</div>
<div class="upload_btn" v-if="!isBind">
<p>
{{ idCardBack ? "重新上传" : "点击上传" }}
</p>
</div>
<input
type="file"
accept="image/*"
class="upload_input"
style="opacity: 0"
@change="getImgPath(0, $event)"
v-if="!isBind"
/>
</div>
</div>
</div>
</div>
<div class="phone">
<p>手机号</p>
<input
type="text"
placeholder="请输入手机号码"
maxlength="11"
v-model="phone"
@focus="showUpdatePopup(1)"
/>
</div>
<div class="alipay_account">
<p>支付宝账号</p>
<input
type="text"
placeholder="请输入支付宝账号"
v-model="alipay_account"
@focus="showUpdatePopup(2)"
/>
</div>
<div class="unionpay_account">
<p>银行卡账号</p>
<input
type="text"
placeholder="请输入银行卡卡号(非必填)"
v-model="unionpay_account"
@focus="showUpdatePopup(3)"
/>
</div>
</div>
<div class="bind">
<p v-if="isBind" @click="updateSubmit">修改个人提现信息</p>
<p v-else @click="bindWithdrawInfo">提交绑定信息</p>
</div>
<div class="notice_text">
请注意提交的实名信息支付宝信息银行卡信息身份证照片信息必须为同个人的真实信息否则将无法认证成功
</div>
<!-- 提示弹窗 -->
<div class="shade_tip" v-show="isShowTip">
<div class="tip_content">
<div class="tip_title">重要提示</div>
<div class="tip_text">
提交绑定后<span>实名信息</span>,<span>证件号码</span>,<span>身份证信息</span>将无法修改请确保该信息正确以及有效
</div>
<div class="tip_btn_wrap">
<div class="tip_btn_cancel" @click="cancelBind">
返回查看
</div>
<div class="tip_btn_confirm" @click="confirmBind">
确定提交
</div>
</div>
</div>
</div>
<!-- 提示弹窗 -->
<div class="shade_tip1" v-show="ifShow">
<div class="tip_content">
<div class="tip_title">重要提示</div>
<div class="tip_text">
提交绑定后<span>实名信息</span>,<span>证件号码</span>,<span>身份证信息</span>将无法修改请确保该信息正确以及有效
</div>
<div class="tip_btn_wrap">
<div class="tip_btn_cancel" @click="cancelBind1">
我知道了
</div>
</div>
</div>
</div>
<!-- 验证码弹窗 -->
<div class="shade_verification" v-show="isShowVerification" @click="hideVerification">
<div class="verification_content" @click.stop="">
<div class="verification_title">请填写手机短信验证码</div>
<div class="verification_text">
已发送到手机号<span>{{ phone }}</span>
</div>
<div class="verification_input">
<input
type="type"
placeholder="请输入验证码"
v-model="verify_code"
/>
<div class="count_down">
<p v-if="!canGetCode">{{ count_down_num }}s后重试</p>
<p v-else @click="getCode">获取验证码</p>
</div>
</div>
<div class="verification_confirm" @click="verifyCode">确认</div>
</div>
</div>
<!-- 修改弹窗 -->
<div class="shade_update" v-show="isShowUpdate">
<div class="update_content">
<div class="update_title">{{ updateTitle }}</div>
<input
type="text"
class="update_input"
:placeholder="updatePlaceholder"
v-model="updateInfo"
ref="updateInput"
/>
<div class="update_btn">
<div class="update_cancel" @click="updateCancel">取消</div>
<div class="update_confirm" @click="updateConfirm">
确认
</div>
</div>
</div>
</div>
</div>
</template>
<script>
</script>
<style lang="scss" type="text/css" scoped>
@function vw($px) {
@return ($px / 375) * 100vw;
}
* {
touch-action: pan-y;
}
.pop{
position: fixed;
left: 0;
top: 0;
top: 0;
bottom: 0;
background: rgba(0,0,0,0.6);
.pop_in{
width: vw(300);
height: vw(212);
background: #fff;
border-radius: vw(8);
}
}
.passwrod-input {
position: fixed;
left: 0;
bottom: 254px;
}
.box-all {
width: vw(375);
height: 100%;
}
// 用户绑定信息
.user_info {
width: vw(375);
// margin-bottom: vw(16);
.realName,.IDcard{
margin-top: 1.1vw;
input{
background: #fff;
}
}
.realName,
.IDcard,
.phone,
.alipay_account,
.unionpay_account {
display: flex;
align-items: center;
// justify-content: space-between;
height: vw(44);
padding: 0 vw(15);
box-sizing: border-box;
font-size: vw(14);
color: #333333;
margin-bottom: vw(1);
border-bottom: 1px solid #F1F1F1;
p{
height: 100%;
line-height: vw(44);
width: vw(70);
text-align: right;
margin-right: vw(16);
}
input{
height: 100%;
line-height: vw(44);
width: 55vw;
}
:-ms-input-placeholder{
height: vw(44);
line-height: vw(44);
}
}
.IDcard_info {
font-size: vw(14);
color: #333333;
margin-top: vw(11);
margin-bottom: vw(16);
padding: 0 vw(15);
box-sizing: border-box;
p{
padding: 0 vw(15);
}
.tip {
font-size: vw(12);
color: #1f8ef7;
margin-bottom: vw(24);
margin-top: vw(8);
}
.ID_pic_wrap {
width: vw(340);
margin: auto;
.front_pic,
.end_pic {
display: flex;
align-items: center;
width: 100%;
height: vw(160);
margin-bottom: vw(12);
background: rgba(31, 142, 247, 0.05);
border-radius: vw(8);
.text {
flex: 1;
text-align: center;
font-size: vw(16);
color: #333333;
p {
margin-bottom: vw(4);
}
span {
font-size: vw(12);
color: #999;
}
}
.pic_wrap {
position: relative;
width: vw(192);
height: vw(133);
background: url("../../assets/img/idcard-bg.png") no-repeat
0 0/100% 100%;
margin-right: vw(12);
.user_front_idcard_pic,
.user_end_idcard_pic {
width: vw(158);
height: vw(100);
margin: vw(16) auto;
line-height: vw(133);
img {
width: 100%;
height: 100%;
background: rgba(0,0,0,0.2);
}
}
.upload_btn,
.upload_input {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: vw(46);
height: vw(46);
border-radius: 50%;
background-color: #000;
font-size: vw(10);
color: #fff;
opacity: 0.6;
p {
display: flex;
align-items: center;
height: inherit;
width: 51%;
margin: auto;
line-height: 1.3;
padding-right: 0;
padding-left: 0;
}
}
}
}
}
}
}
// 绑定按钮
.bind {
width: vw(260);
height: vw(38);
margin: vw(31) auto vw(12);
background-image: linear-gradient(to right, #8776ff, #735ffe);
border-radius: vw(24);
line-height: vw(38);
color: #fff;
text-align: center;
font-size: vw(14);
}
// 注意文本
.notice_text {
width: vw(340);
margin: 0 auto vw(20);
text-align: center;
font-size: vw(10);
color: #999;
line-height: 1.5;
}
// 弹窗
.shade_tip,
.shade_verification,
.shade_update {
position: fixed;
top: 0;
left: 0;
z-index: 999;
width: 100vw;
height: 100vh;
background-color: rgba($color: #000000, $alpha: 0.4);
.tip_content,
.verification_content,
.update_content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: vw(300);
height: vw(206);
background-color: #fff;
border-radius: vw(12);
display: flex;
flex-direction: column;
align-items: center;
color: #333;
.tip_title {
font-size: vw(16);
font-weight: bold;
margin-top: vw(14);
margin-bottom: vw(30);
}
.tip_text {
width: vw(268);
text-align: center;
font-size: vw(13);
line-height: 1.3;
margin-bottom: vw(50);
span {
color: #ffb606;
text-decoration: underline;
}
}
.tip_btn_wrap {
display: flex;
justify-content: space-between;
width: 90%;
div {
width: vw(126);
height: vw(38);
line-height: vw(38);
border-radius: vw(19);
text-align: center;
font-size: vw(14);
&.tip_btn_cancel {
background-color: #eae5fc;
color: #7154ee;
}
&.tip_btn_confirm {
background-image: linear-gradient(
to right,
#8776ff,
#735ffe
);
color: #ffffff;
}
}
}
}
}
.shade_tip1,
.shade_verification,
.shade_update {
position: fixed;
top: 0;
left: 0;
z-index: 999;
width: 100vw;
height: 100vh;
background-color: rgba($color: #000000, $alpha: 0.4);
.tip_content,
.verification_content,
.update_content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: vw(300);
height: vw(206);
background-color: #fff;
border-radius: vw(12);
display: flex;
flex-direction: column;
align-items: center;
color: #333;
.tip_title {
font-size: vw(16);
font-weight: bold;
margin-top: vw(14);
margin-bottom: vw(30);
}
.tip_text {
width: vw(268);
text-align: center;
font-size: vw(13);
line-height: 1.3;
margin-bottom: vw(50);
span {
color: #ffb606;
text-decoration: underline;
}
}
.tip_btn_wrap {
display: flex;
justify-content: space-between;
width: 90%;
div {
width: vw(126);
height: vw(38);
line-height: vw(38);
border-radius: vw(19);
text-align: center;
font-size: vw(14);
// &.tip_btn_cancel {
// background-color: #eae5fc;
// color: #7154ee;
// }
&.tip_btn_cancel {
margin: vw(-20) auto 0;
background-image: linear-gradient(
to right,
#8776ff,
#735ffe
);
color: #ffffff;
}
}
}
}
}
.shade_verification,
.shade_update {
.verification_content,
.update_content {
height: vw(212);
border-radius: vw(8);
font-size: vw(15);
color: #999;
.verification_title,
.update_title {
height: vw(21);
line-height: vw(21);
font-weight: bold;
color: #333;
margin: vw(12) 0 vw(24) 0;
}
.verification_text {
height: vw(21);
line-height: vw(21);
}
.verification_input {
display: flex;
align-items: center;
margin-top: vw(8);
margin-bottom: vw(24);
input {
width: vw(187);
height: vw(40);
padding: vw(11) 0 vw(11) vw(12);
box-sizing: border-box;
&::placeholder {
font-size: vw(12);
}
}
.count_down {
width: vw(73);
height: vw(40);
background-color: #eae5fc;
border-radius: 0 vw(8) vw(8) 0;
line-height: vw(40);
text-align: center;
font-size: vw(12);
color: #7154ee;
}
}
.verification_confirm {
width: vw(160);
height: vw(38);
line-height: vw(38);
border-radius: vw(19);
background-image: linear-gradient(#8776ff, #735ffe);
text-align: center;
font-size: vw(14);
color: #fff;
}
}
}
.shade_update {
.update_content {
height: vw(206);
.update_title {
height: vw(22);
line-height: vw(22);
margin-top: vw(14);
margin-bottom: vw(34);
}
.update_input {
width: vw(220);
height: vw(40);
padding: vw(12);
box-sizing: border-box;
margin-bottom: vw(34);
font-size: vw(12);
color: #999;
}
.update_btn {
display: flex;
align-items: center;
justify-content: space-between;
width: 90%;
.update_cancel,
.update_confirm {
width: vw(126);
height: vw(38);
line-height: vw(38);
background-color: #eae5fc;
border-radius: vw(19);
text-align: center;
font-size: vw(14);
color: #7154ee;
}
.update_confirm {
background-color: #8776ff;
color: #fff;
}
}
}
}
</style>
<script>
import {
getUserWithdrawInfo,
getUploadToken,
bindWithdrawInfo,
getCode,
verifyCode,
updateWithdrawInfo,
} from "@/api/myincome.js";
import navigation from "@/components/navigation.vue";
import common from "@/utils/common.js";
import { Toast, Dialog } from "vant";
import { encryptDes } from "@/utils/des.js";
import { jes } from "@/utils/jsencryptKey.js";
import { checkVersion, EnvCheck } from "@/utils/browser.js";
import * as qiniu from "qiniu-js";
export default {
data() {
return {
ifShow : false,//是否展示弹框
isBind: false, //是否绑定过信息
realName: "", //姓名
idCardNo: "", //身份证号
phone: "", //手机号码
encryptPhone: "", //加密后的手机号码
alipay_account: "", //支付宝账号
unionpay_account: "", //银行卡号
file_F: "",
idCardFront: null, //上传的正面身份证图片
idCardBack: null, //上传的反面身份证图片
isShowTip: false, //提示弹窗
isShowVerification: false, //验证码弹窗
isShowUpdate: false, //修改信息弹窗
count_down_num: 60,
canGetCode: false,
verify_code: "", //短信验证码
t: null, //定时器
updateTitle: "", //修改弹窗的标题
updatePlaceholder: "", //修改弹窗的placeholder
n: 1, // 1 => 修改手机 2 => 修改支付宝 3 => 修改银行卡
updateInfo: "",
updateData: {},
isPhone: false,
};
},
components: { navigation },
created() {
document.title = "个人提现信息绑定";
this.isBind = this.$route.params.isBind;
if (this.isBind) {
console.log("params", this.$route.params);
const {
realName,
idCardNo,
idCardFront,
idCardBack,
phone,
encryptPhone,
alipayAccount,
bankCardNo,
} = this.$route.params;
this.realName = realName;
this.idCardNo = idCardNo;
this.idCardFront = idCardFront;
this.idCardBack = idCardBack;
this.phone = phone;
this.encryptPhone = encryptPhone;
this.alipay_account = alipayAccount;
this.unionpay_account = bankCardNo;
}
console.log(this.encryptPhone);
this.getUserWithdrawInfoFun();
},
methods: {
// 获取用户提现绑定信息
getUserWithdrawInfoFun() {
getUserWithdrawInfo().then((res) => {
if (res.data.code === 200) {
console.log(JSON.stringify(res.data.data));
if(JSON.stringify(res.data.data) == "{}"){
this.ifShow = true;
}else{
this.ifShow = false;
}
}
});
},
// 获取身份证图片
getImgPath(p, e) {
this.file_F = e.target.files[0];
getUploadToken().then((res) => {
this.card_Key_Z = res.data.data.key;
this.card_Tocket_Z = res.data.data.token;
const observable = qiniu.upload(
this.file_F,
this.card_Key_Z,
this.card_Tocket_Z
);
observable.subscribe({
complete: (res) => {
p
? (this.idCardFront = res.path)
: (this.idCardBack = res.path);
},
});
});
},
// 提交绑定信息
bindWithdrawInfo() {
if (!this.realName.trim()) {
return Toast("请输入真实姓名");
}
if (
!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(
this.idCardNo.trim()
)
) {
return Toast("请输入正确的身份证号码");
}
if (!this.idCardFront) {
return Toast("请上传身份证正面照");
}
if (!this.idCardBack) {
return Toast("请上传身份证反面照");
}
let reg = /^[1]([3-9])[0-9]{9}$/;
if (!reg.test(this.phone.trim())) {
return Toast("请输入正确的手机号");
}
if (!this.alipay_account.trim()) {
return Toast("请输入支付宝账号");
}
if (!this.unionpay_account.trim()) {
this.unionpay_account = "";
}
this.isShowTip = true;
},
// 确定提交
confirmBind() {
this.isShowTip = false;
this.isShowVerification = true;
this.getCode();
},
// 取消提交
cancelBind() {
this.isShowTip = false;
},
// 取消提交
cancelBind1() {
this.ifShow = false;
},
// 获取手机验证码
getCode() {
this.canGetCode = false;
this.countDown();
let mobile = "";
if (this.isBind) {
if(this.isPhone){
mobile = encryptDes(this.phone, "1ea53d260ecf11e7b56e00163e046a26");
}else{
mobile = this.encryptPhone
}
} else {
mobile = encryptDes(this.phone, "1ea53d260ecf11e7b56e00163e046a26");
}
getCode({ mobile, type: 1 }).then((res) => {
if (res.data.code === 200) {
Toast(res.data.message);
}
});
},
// 校验手机验证码
verifyCode() {
if (!this.verify_code) {
return Toast("请输入验证码");
}
let mobile = "";
if(this.encryptPhone != ''){
console.log(mobile);
if(this.isPhone == true){
mobile = encryptDes(this.phone, "1ea53d260ecf11e7b56e00163e046a26");
}else{
mobile = this.encryptPhone
}
console.log("绑定加密:"+this.encryptPhone);
}else{
console.log(mobile);
mobile = encryptDes(this.phone, "1ea53d260ecf11e7b56e00163e046a26");
console.log("未绑定普通加密"+this.phone);
}
Toast.loading({
message: "loading",
forbidClick: true,
duration: 0,
});
verifyCode({ mobile, code: this.verify_code }).then((res) => {
if (res.data.code === 200) {
this.isShowVerification = false;
this.verify_code = "";
clearTimeout(this.t);
this.count_down_num = 60;
if (this.isBind) {
updateWithdrawInfo(this.updateData).then((res) => {
if (res.data.code === 200) {
Toast('修改成功')
setTimeout(() => {
this.$router.go(-1);
}, 500)
}
});
} else {
bindWithdrawInfo({
alipayAccount: this.alipay_account.trim(),
bankCardNo: this.unionpay_account.trim(),
idCardBack: this.idCardBack,
idCardFront: this.idCardFront,
idCardNo: this.idCardNo,
phone: this.phone,
realName: this.realName.trim(),
uid: window.sessionStorage.getItem("uid"),
})
.then((res) => {
console.log(res.data.data);
Toast("绑定成功");
this.$router.replace("/WithDraw");
})
.catch((err) => {
console.log("绑定失败");
setTimeout(() => {
Toast.clear();
}, 1000);
Toast(err.message)
});
}
}
});
},
// 验证码倒计时
countDown() {
this.t = setTimeout(() => {
this.count_down_num--;
if (this.count_down_num <= 0) {
this.canGetCode = true;
this.count_down_num = 60;
clearTimeout(this.t);
} else {
this.countDown();
}
}, 1000);
},
// 修改个人提现信息
showUpdatePopup(n) {
if (this.isBind) {
this.isShowUpdate = true;
// this.$refs.updateInput.focus()
this.$nextTick(() => {
this.$refs.updateInput.focus();
});
this.n = n;
if (n === 1) {
// 修改手机号码
this.updateTitle = "修改手机号";
this.updatePlaceholder = "请输入手机号码";
} else if (n === 2) {
// 修改支付宝账号
this.updateTitle = "修改支付宝账号";
this.updatePlaceholder = "请输入支付宝账号";
} else {
// 修改账号
this.updateTitle = "修改银行卡账号";
this.updatePlaceholder = "请输入银行卡账号";
}
}
},
updateCancel() {
this.isShowUpdate = false;
this.updateInfo = "";
},
updateConfirm() {
if (this.n === 1) {
let reg = /^[1]([3-9])[0-9]{9}$/;
if (!reg.test(this.updateInfo.trim())) {
if (!this.updateInfo.trim().length) {
this.updateInfo = "";
}
return Toast("请输入正确的手机号码");
}
this.phone = this.updateInfo.trim();
}
if (this.n === 2) {
if (!this.updateInfo.trim()) {
this.updateInfo = "";
return Toast("请输入支付宝账号");
}
this.alipay_account = this.updateInfo.trim();
}
if (this.n === 3) {
if (!this.updateInfo.trim()) {
this.updateInfo = "";
return Toast("请输入银行卡账号");
}
this.unionpay_account = this.updateInfo.trim();
}
this.isShowUpdate = false;
this.updateInfo = "";
},
updateSubmit() {
if (
this.phone == this.$route.params.phone &&
this.alipay_account == this.$route.params.alipayAccount &&
this.unionpay_account == this.$route.params.bankCardNo
) {
return Toast("没有修改个人信息!");
}
if (this.phone != this.$route.params.phone) {
let reg = /^[1]([3-9])[0-9]{9}$/;
if (!reg.test(this.phone.trim())) {
return Toast("请输入正确的手机号");
} else {
this.updateData.phone = this.phone;
this.isPhone = true;
}
}
if (this.alipay_account != this.$route.params.alipayAccount) {
this.updateData.alipayAccount = this.alipay_account;
}
if (this.unionpay_account != this.$route.params.bankCardNo) {
this.updateData.bankCardNo = this.unionpay_account;
}
this.updateData.uid = window.sessionStorage.getItem("uid");
this.isShowVerification = true;
this.getCode();
},
hideVerification() {
this.isShowVerification = false
}
},
};
</script>

View File

@@ -10,7 +10,7 @@
<p class="userName"></p>
</div>
<div>
<label>夜莺</label>
<label>peko</label>
<div class="erbanNo"></div>
</div>
</div>

View File

@@ -11,9 +11,9 @@ module.exports = {
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: { '/api': {
// target: 'https://api.pekolive.com',
// target: 'https://api.lecheng163.com',
// target: 'http://120.79.211.243',
target: 'http://api.uat.pekolive.com',
target: 'https://beta.api.pekolive.com',
changeOrigin: true,
secure: false,
pathRewrite: {

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>夜莺</title>
<title>peko</title>
<!-- <script src="//unpkg.com/vue-ydui/dist/ydui.flexible.js"></script> -->
</head>

View File

@@ -13,7 +13,7 @@ export const checkVersion = () => {
webApp: u.indexOf('Safari') == -1, //是否web应该程序没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信
qq: u.match(/\sQQ/i) == " qq", //是否QQ
app: u.match('tutuApp') == 'tutuApp' //是否在app内
app: u.match('pekoApp') == 'pekoApp' //是否在app内
};
}
export const EnvCheck = () => {

View File

@@ -5,10 +5,10 @@ import { EnvCheck } from '@/utils/browser.js'
let baseURL;
if (EnvCheck() === 'test') {
// baseURL = 'http://120.79.211.243'
baseURL = 'https://yeying.api.shengxuanwangluo.com/'
baseURL = 'https://beta.api.pekolive.com'
// 正式环境
} else {
baseURL = 'https://yeying.api.shengxuanwangluo.com/'
baseURL = 'https://api.lecheng163.com'
}
// baseURL = ''

View File

@@ -7,10 +7,10 @@ import { EnvCheck } from "@/utils/browser.js";
let baseURL;
if (EnvCheck() === "test") {
// baseURL = 'http://120.79.211.243'
baseURL = "https://yeying.api.shengxuanwangluo.com/";
baseURL = "https://beta.api.pekolive.com";
// 正式环境
} else {
baseURL = "https://yeying.api.shengxuanwangluo.com/";
baseURL = "https://api.lecheng163.com";
}
export default {
created() {