增加页面,修改邀请页面名称以及相关跳转

This commit is contained in:
2024-12-23 18:19:39 +08:00
parent 7b44d1f9fb
commit 002fb06447
64 changed files with 6576 additions and 444 deletions

View File

@@ -0,0 +1,768 @@
<!-- 我的邀请 -->
<template>
<view>
<u-image src="/me/static/invite/juxing.png" alt="" width="100%" mode="widthFix"></u-image>
<view class="padding" style="position: relative;height: 360rpx;">
<u-image src="@/me/static/invite/fenxiang.png" alt="" width="100%" height="100%"></u-image>
<view class="text-center padding-top yaoqing">
<view class="margin-top-xl margin-bottom-sm padding-top-sm text-xxl text-red text-bold">
{{invitationCode}}
</view>
<!-- #ifdef H5 -->
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef APP -->
<u-button @tap="sharurl" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<u-button open-type="share" :custom-style="customStyle" :hair-line="false" shape="circle" size="mini"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifndef MP-KUAISHOU -->
<u-button style="margin-left: 50rpx;" @click.stop="onSaveImg()" :custom-style="customStyle"
:hair-line="false" shape="circle" size="mini" :ripple="true">保存海报</u-button>
<!-- #endif -->
</view>
</view>
<view class="margin padding bg-white radius" v-if="inviterList.length">
<view class="flex justify-between" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
:key='index'>
<view class="flex">
<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
<text class="margin-left-sm">{{item.userName}}</text>
</view>
<view style="width: 160rpx;">
<text>获得</text>
<text class="margin-left-xs text-red">{{item.money}}</text>
</view>
</view>
</view>
<view class="padding" style="position: relative;height: 160px;">
<u-image src="@/me/static/invite/yaoqing.png" alt="" width="100%" height="100%"></u-image>
<view class="text-center padding-top flex justify-center flex-direction zhanji">
<view class="flex justify-around margin-top-sm">
<view>
<view class="margin-bottom-sm">已邀请</view>
<view class="text-red"><text class="text-bold u-font-18">{{inviterNumber}}</text></view>
</view>
<view>
<view class="margin-bottom-sm">累计收益</view>
<view class="text-red"><text class="text-bold u-font-18">{{cumulativeRevenue}}</text></view>
</view>
<view>
<view class="margin-bottom-sm">已提现</view>
<view class="text-red">¥<text class="text-bold u-font-18">{{withdrawn}}</text></view>
</view>
</view>
</view>
</view>
<view class="padding" style="position: relative;height: 250rpx;">
<u-image src="@/me/static/invite/jiqiao.png" alt="" width="100%" height="100%"></u-image>
<view class="padding-top jiqiao" style="">
<view class="padding-top-xl padding-lr padding-bottom" style="line-height: 48rpx;">
<block v-if="price2==0">
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>邀请好友可得开通会员及消费金额 {{price}}%的佣金奖励</view>
</view>
</block>
<block v-else>
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>可得一级好友开通会员及消费金额 {{price}}%的佣金奖励</view>
</view>
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>可得二级好友开通会员及消费金额 {{price2}}%的佣金奖励</view>
</view>
</block>
</view>
</view>
</view>
<tki-qrcode ref="qrcode" :val="erweima" :size="200" background="#fff" foreground="#000" pdground="#000"
:onval="true" :loadMake="true" @result="qrR" :show="false"></tki-qrcode>
<view class="cu-modal" :class="modalName == 'Image' ? 'show' : ''" @tap="hideModal">
<view class="cu-dialog" v-if="bgImg && erweimapath && haibaoShow" @tap="hideModal">
<view class="bg-img">
<wm-poster @success="posterSuccess" @successH5="successH5" :imgSrc="bgImg"
:Referrer="'我的邀请码:'+invitationCode" :QrSrc="erweimapath" :LineType="false"></wm-poster>
</view>
</view>
</view>
</view>
</template>
<script>
let settingWritePhotosAlbum = false;
import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
import wmPoster from '../components/wm-poster/wm-posterorders.vue';
import config from '../../common/config.js'
export default {
components: {
tkiQrcode,
wmPoster
},
data() {
return {
erweimapath: '',
poster: {},
qrShow: false,
haibaoImg: null,
haibaoShow: false,
modalName: '',
canvasId: 'default_PosterCanvasId',
avatar: '../../static/images/logo.png',
customStyle: {
background: '#FFE0E0',
border: '0',
color: 'rgb(254,30,35)',
fontSize: '12px',
fontWeight: '500',
padding: '15px 20px',
},
page: 1,
limit: 10,
inviterName: '', //邀请码
cumulativeRevenue: '', //累计收益
inviterNumber: '', //邀请人数
withdrawn: '', //已提现
inviterList: [],
erweima: '',
bgImg: '',
tuiguang: '',
invitationCode: 0,
price: 0,
price2: 0,
h5SaveImg: '',
modalName: '',
haibaoImgH5: '',
qdCode: '', //渠道码
}
},
onShareAppMessage(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImg
}
},
onShareTimeline(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImg
}
},
onLoad() {
this.getInviter()
this.queryInviter()
this.invitationCode = uni.getStorageSync('invitationCode')
this.getUserInfoBl()
this.getBgImg()
if (uni.getStorageSync('qdCode')) {
this.qdCode = uni.getStorageSync('qdCode')
}
// h5携带邀请码去首页
// #ifdef H5
this.erweima = config.APIHOST2 + '/?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// app直接去app注册页面
// #ifdef APP
this.erweima = config.APIHOST2 + '/pages/login/registerApp/?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// #ifdef MP-WEIXIN
this.getWxEq()
// #endif
// #ifdef MP-TOUTIAO
this.getTouTiao()
// #endif
},
methods: {
//获取用户分销比例
getUserInfoBl() {
this.$Request.getT('/app/user/selectUserById').then(res => {
if (res.code == 0) {
//一级分销
if (res.data.rate) {
this.price = (Number(res.data.rate) * 100).toFixed(0)
} else {
this.price = 0
}
//二级分销
if (res.data.twoRate) {
this.price2 = (Number(res.data.twoRate) * 100).toFixed(0)
} else {
this.price2 = 0
}
}
})
},
//获取头条二维码
getTouTiao() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/dyCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode + '&page=/pages/index/index',
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
//获取微信二维码
getWxEq() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/mpCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode,
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
sharurl() {
let that = this;
uni.showModal({
title: '链接推广',
content: this.tuiguang + this.erweima,
showCancel: true,
cancelText: '关闭',
confirmText: '一键复制',
success: res => {
if (res.confirm) {
uni.setClipboardData({
data: this.tuiguang + this.erweima,
success: function() {
console.log('success');
uni.showToast({
title: '复制成功',
duration: 1000,
icon: 'none'
});
}
});
}
}
});
},
posterSuccess(haibaoImg) {
this.haibaoImg = haibaoImg;
this.modalName = 'Image';
uni.hideLoading();
},
successH5(haibaoImg) {
this.haibaoImgH5 = haibaoImg
uni.previewImage({
urls: [haibaoImg],
current: 1,
})
},
showModal() {
// #ifndef H5
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
// #endif
// #ifdef H5
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
//微信浏览器
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
} else {
if (!this.haibaoImgH5) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
uni.previewImage({
urls: [this.haibaoImgH5],
current: 1,
})
}
}
// #endif
},
hideModal() {
this.modalName = null;
},
qrR(path) {
this.erweimapath = path;
},
getInviter() {
let data = {
page: this.page,
limit: this.limit
}
this.$u.api.inviter(data).then(res => {
if (res.code == 0) {
this.inviterList = res.data.list
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
queryInviter() {
this.$u.api.queryInviter().then(res => {
if (res.code == 0) {
this.cumulativeRevenue = res.data.inviteMoney.moneySum //累计收益
this.inviterNumber = res.data.inviteCount //邀请人数
this.withdrawn = res.data.inviteMoney.cashOut //已提现
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
goNav(e) {
uni.navigateTo({
url: e
})
},
//获取背景图
getBgImg() {
this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
if (res.code == 0) {
this.bgImg = res.data[0].imageUrl
this.tuiguang = res.data[0].describes
console.log(this.bgImg)
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
});
},
//生成h5海报
createH5Poster() {
let that = this;
return new Promise((resolve, reject) => {
uni.showLoading({
title: '海报生成中'
});
const ctx = uni.createCanvasContext('poster');
ctx.fillRect(0, 0, 375, 673);
ctx.setFillStyle("#FFF");
ctx.fillRect(0, 0, 375, 673);
let imgUrl = that.bgImg;
uni.downloadFile({
url: imgUrl,
success: (res) => {
console.log(res, '***************')
if (res.statusCode === 200) {
uni.downloadFile({
url: that.erweima,
success: (res2) => {
console.log(res2)
if (res.statusCode === 200) {
ctx.drawImage(res.tempFilePath, 0, 0, 375,
500);
// 长按识别二维码访问
let textTop = 0;
ctx.setFontSize(19);
ctx.setFillStyle('#333');
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
// 二维码
ctx.drawImage(res2.tempFilePath, 238, textTop +
526, 120, 120);
ctx.draw(true, () => {
// canvas画布转成图片并返回图片地址
uni.canvasToTempFilePath({
canvasId: 'poster',
width: 375,
height: 673,
success: (res) => {
console.log(
"海报制作成功!"
);
resolve(res
.tempFilePath
);
},
fail: () => {
uni
.hideLoading();
reject();
}
})
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
},
complete: com => {
console.log(com)
uni.showToast({
title: com,
icon: 'none'
});
},
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
// that.yu.toast(err)
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none',
});
}
});
});
},
//生成海报
createPoster() {
let that = this;
return new Promise((resolve, reject) => {
uni.showLoading({
title: '海报生成中'
});
const ctx = uni.createCanvasContext('poster');
ctx.fillRect(0, 0, 375, 673);
ctx.setFillStyle("#FFF");
ctx.fillRect(0, 0, 375, 673);
let imgUrl = that.bgImg;
uni.downloadFile({
url: imgUrl,
success: (res) => {
console.log(res, '***************')
if (res.statusCode === 200) {
uni.downloadFile({
url: config.APIHOST +
'/app/invite/mpCreateQr?invitationCode=' + that
.invitationCode,
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/app/invite/mpCreateQr?invitationCode=' +
// that.invitationCode,
success: (res2) => {
console.log(res2)
if (res.statusCode === 200) {
ctx.drawImage(res.tempFilePath, 0, 0, 375,
500);
// 长按识别二维码访问
let textTop = 0;
ctx.setFontSize(19);
ctx.setFillStyle('#333');
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
// 二维码
ctx.drawImage(res2.tempFilePath, 238, textTop +
526, 120, 120);
ctx.draw(true, () => {
// canvas画布转成图片并返回图片地址
uni.canvasToTempFilePath({
canvasId: 'poster',
width: 375,
height: 673,
success: (res) => {
console.log(
"海报制作成功!"
);
resolve(res
.tempFilePath
);
},
fail: () => {
uni
.hideLoading();
reject();
}
})
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
},
complete: com => {
console.log(com)
uni.showToast({
title: com,
icon: 'none'
});
},
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
// that.yu.toast(err)
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none',
});
}
});
});
},
// 保存图片
async onSaveImg() {
this.showModal();
return
// #ifndef MP-WEIXIN
this.showModal();
// #endif
// #ifdef MP-WEIXIN
let imgUrl = await this.createPoster();
uni.showLoading({
title: '海报下载中'
});
if (settingWritePhotosAlbum) {
uni.getSetting({
success: res => {
if (res.authSetting['scope.writePhotosAlbum']) {
uni.saveImageToPhotosAlbum({
filePath: imgUrl,
success: () => {
uni.hideLoading();
uni.showToast({
title: '保存成功'
});
}
});
} else {
uni.showModal({
title: '提示',
content: '请先在设置页面打开“保存相册”使用权限',
confirmText: '去设置',
cancelText: '算了',
success: data => {
if (data.confirm) {
uni.hideLoading();
uni.openSetting();
}
}
});
}
}
});
} else {
uni.hideLoading();
settingWritePhotosAlbum = true;
uni.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
uni.saveImageToPhotosAlbum({
filePath: imgUrl,
success: () => {
uni.hideLoading();
uni.showToast({
title: '保存成功'
});
}
});
}
});
}
// #endif
},
}
}
</script>
<style>
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1110;
opacity: 0;
outline: 0;
text-align: center;
-ms-transform: scale(1.185);
transform: scale(1.185);
backface-visibility: hidden;
perspective: 2000upx;
background: rgba(0, 0, 0, 0.6);
transition: all 0.3s ease-in-out 0s;
pointer-events: none;
}
.modal.show {
opacity: 1;
transition-duration: 0.3s;
-ms-transform: scale(1);
transform: scale(1);
overflow-x: hidden;
overflow-y: auto;
pointer-events: auto;
}
page {
background: #E0EFFF;
}
img {
display: block;
}
.poster_canvas {
width: 750upx;
height: 1334upx;
position: fixed;
top: -10000upx;
left: 0;
}
.yaoqing {
width: 100%;
height: 136px;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background-image: url('@/me/static/invite/fenxiang.png'); */
/* background-size: 100%; */
/* background-repeat: no-repeat; */
}
.zhanji {
width: 100%;
height: 119px;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background-image: url('@/me/static/invite/yaoqing.png'); */
/* background-size: 100%; */
/* background-repeat: no-repeat; */
}
.jiqiao {
width: 100%;
height: 160rpx;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background-image: url('@/me/static/invite/jiqiao.png');
background-size: 100%;
background-repeat: no-repeat; */
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,386 @@
<template>
<view class="u-p-l-40 u-p-r-40">
<view>
<image src="@/me/static/ymf/1b3d78fa5f92af069751ea64d493c0d85050b1e03cc5b-tPC378.png" mode=""></image>
<image src="@/me/static/ymf/390e926273eea85c894e613d42c9931ee2cd1f0a200fd-ApyNVV.png" mode=""></image>
<image src="@/me/static/ymf/79cbb0e34c24915f1883feaa3cf3179b0a1ceb1362a18-unU6xQ.png" mode=""></image>
<image src="@/me/static/ymf/cb319b604e49b816971b708b1231321318e0023610d8c-I24hXU.jpg" mode=""></image>
<image src="@/me/static/ymf/cf2d172a6da494b2e577f699254a780907b7c222246d7-ehahn1.png" mode=""></image>
<image src="@/me/static/ymf/eaae3095c9e433fb8a015aaebbe52047009dd863ff2b9-igSItK.png" mode=""></image>
<image src="@/me/static/ymf/f3c60c6f31c74bdf38ba2d8993bcb443ab9bc335cc875-xfx4CJ.png" mode=""></image>
<image src="@/me/static/ymf/c93b4cc9363d52cba140f7239516344ece9388141079a4-do8mFc.png" mode=""></image>
<image src="@/me/static/ymf/031da1e7f043de5d5e1ee355994a93e5ec983aca44dc-sZf0Vl_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/c4e6c5023b94de32df2f51d9ebd633790cc6125a88e4-TIyAcR_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/f7da7a8ca57f9f0d56bbb3d7be1d1c86f96304ce4b3a-iVbD8U_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/2e521eee5a8c80ea6879028ee866c5d0531bc4f1d5e48-Bh95lN_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/38cf4e97e52b50be9dcdcdc1352c497e1acc9266cd52-aUOrxn_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/73170e6a596b72538dbe743b06ef8b96e4885aff5b4c3-MsouS7_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/e9f9cb6b95c21c714015f15c372f595367aa553f443a-WpOCNo_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/f5d96faaa94cb0151a5c95db44e27b80ed6eeac5cb32-rApi2S_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/0e114b9ac6afc2b4c0f29520178be64915a111e218a8b5-mbMpg2_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/4783f7272bf31eeafbe1362605477de14b7cd3da24b0-ggkAnW_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/8dce1d3c3a8287c35bc1bf394048d57a64acfa047d4e-6wXnWE_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/ff919b6254e376cc902c89afdcc194ac2ab39c93793b-8TdL1Z_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/3c9a5848127a67f98e25176a042511b89afd31daccc2f-5EHbxD_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/6c9e57bcbcb047039a8edb30ecdd3b912bac99555a8fc-9EK0oO_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/78a020586cfbb791918b767520a8ff3c2ab9660f1ee1b-GX4zcc_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/babf535567728d84346fbb13348e94aae3ec8f82106e2-QKPJoe_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/d1e4d760358ba0733faee6bcad1e23cb4a1d6d76ba290-O3hUrf_fw240webp.webp" mode=""></image>
<image src="@/me/static/ymf/dcb5a4b0b1060b569f9fc618e6e2708b584f7def1cadf-R7jpIr_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/e4330f184149f502f4948ce3b60059edaffc9c3d94ca4-B11p5c_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/fa22e2a27871e5f8841e8abb12cc4347a6b9440816068-3XsAnJ_fw658webp.webp" mode=""></image>
</view>
<view class="list u-flex u-flex-wrap u-row-between" style="padding-bottom: 200rpx;">
<view @click.stop="toDetail(item)" class="list-item u-m-b-40" v-for="(item,index) in arr" :key="index">
<view class="item">
<view class="u-absolute u-flex u-row-center u-col-center">
<view style="position: absolute;top:10rpx;left: 0;right: 0;" class="color-fff font-bold u-text-center">ID:
{{item.uuid}}</view>
<template v-if="item.state==3">
<view class="pro" v-if="item.isPro">
<view>Pro</view>
</view>
<view class="gou" v-if="userInfo.modelId==item.id">
<u-icon name="checkmark" size="40" color="#fff"></u-icon>
</view>
</template>
<template v-else>
<view class="color-fff font-bold u-font-32 u-flex u-row-center">
<view v-if="item.state==0">分身未完成</view>
<view v-if="item.state==1">分身训练中</view>
<view v-if="item.state==2">分身制作失败</view>
</view>
</template>
</view>
<image :src="item.mainPhoto" :class="{blur:item.state!=3}" mode="aspectFill"></image>
</view>
<view class="u-flex u-m-t-20 u-row-between u-p-r-10">
<view class="u-font-26 color-666" v-if="item.state">生成于{{item.createTime|timer}}</view>
<view class="u-font-26 color-666" v-else>-</view>
<view class="u-flex" @click.stop="del(item,index)">
<u-icon name="trash" color="#999"></u-icon>
</view>
</view>
<template v-if="item.state==0">
<view class="u-flex u-m-t-20">
<view v-if="item.isPro" class="u-flex" @click.stop="$u.route('/pages/control-fenshen/ceate-fenshen?id='+item.id)">
<view class="btn-chongzhi font-bold">继续制作</view>
</view>
<view v-else class="u-flex" @click.stop="$u.route('/pages/control-fenshen/free-create-fenshen?id='+item.id)">
<view class="btn-chongzhi font-bold">继续制作</view>
</view>
</view>
</template>
<template v-if="item.state==1">
<view class="u-flex u-m-t-20">
<view class="u-flex " @click.stop="$u.route('/pages/control-fenshen/wating-result?id='+item.id)">
<view class="btn-chongzhi font-bold">训练中</view>
</view>
<!-- <view class="status u-m-l-40" @click.stop="chongzhi(item)">免费重置</view> -->
</view>
</template>
<template v-if="item.state==2 ">
<view class="u-flex u-m-t-20">
<view class="u-flex " v-if="!item.resetCount" @click.stop="chongzhi(item)">
<view class="btn-chongzhi font-bold">免费重置</view>
</view>
<view class="status" @click.stop="" v-else>免费重置</view>
</view>
</template>
<template v-if="item.state==3&&item.isPro">
<view class="u-flex u-row-center u-m-t-20">
<view class="btn-chongzhi font-bold" v-if="!item.resetCount" @click.stop="chongzhi(item)">免费重置</view>
<view class="status" @click.stop="" v-else>免费重置</view>
<view class="status u-m-l-40" v-if="userInfo.modelId==item.id" @click.stop="">使用中</view>
<view class="btn-chongzhi font-bold u-m-l-40" v-else @click.stop="qeihuan(item)">切换分身</view>
</view>
</template>
<template v-if="item.state==3&&!item.isPro">
<view class="u-flex u-m-t-20">
<view class="status " v-if="userInfo.modelId==item.id" @click.stop="">使用中</view>
<view class="btn-chongzhi font-bold " v-else @click.stop="qeihuan(item)">切换分身</view>
</view>
</template>
</view>
</view>
<view v-if="!arr.length" class="u-flex u-row-center min-h-100 u-flex-col">
<my-empty></my-empty>
</view>
<my-pop ref="myPoo">
<view>
<view class="u-font-32 u-p-30 u-text-center">
确认要删除当前分身吗
</view>
<view class="u-flex u-row-between u-m-t-40">
<view class="u-flex-1 u-p-r-30"><my-button @click="close" type="cancel">取消</my-button></view>
<view class="u-flex-1 u-p-l-30"><my-button @click="delItem">确定</my-button></view>
</view>
</view>
</my-pop>
<my-pop ref="mypopChongzhi">
<view>
<view class="u-font-32 u-p-30 u-text-center">
确认要重置该分身吗
</view>
<view class="u-flex u-row-center u-m-t-20">
<view class="u-flex" style="border-radius: 32rpx;overflow: hidden;">
<image :src="selItem.smallUrl" style="width: 320rpx;height: 320rpx;" mode="aspectFill"></image>
</view>
</view>
<view class="u-flex u-row-between u-m-t-60">
<view class="u-flex-1 u-p-r-30"><my-button @click="close" type="cancel">取消</my-button></view>
<view class="u-flex-1 u-p-l-30"><my-button @click="confirmChongzhi">确定</my-button></view>
</view>
</view>
</my-pop>
<u-toast ref="uToast"></u-toast>
<view class="fixed_b">
<my-button @click="toCreate">制作新的分身</my-button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
psize: 10,
pnum: 1,
isEnd: false,
arr: [],
selItem: '',
SelIndex: '',
isUser: false,
userInfo: uni.getStorageSync('userInfo')
};
},
filters: {
timer: function(value) {
return value.split('T')[0]
}
},
onBackPress(options) {
},
methods: {
toCreate(){
const isXunlian=this.arr.some(v=>v.state==1||v.state==0)
if(isXunlian){
return this.$refs.uToast.show({
title:'您有分身正在制作中,请稍后!'
})
}
this.$u.route('/pages/control-fenshen/fenshen-first')
// if(!this.userInfo.tried){
// this.$u.route('/pages/control-fenshen/fenshen-first')
// }else{
// this.$u.route('/pages/control-fenshen/ceate-fenshen')
// }
},
close() {
this.$refs.mypopChongzhi.close()
},
confirmChongzhi() {
const index = this.arr.findIndex(v => v.id == this.selItem.id)
this.$api({
url: 'model/reset/' + this.selItem.id
}).then(res => {
this.$refs.mypopChongzhi.close()
this.$refs.uToast.show({
title: res.message,
type: res.code == 200 ? 'success' : 'error'
})
if (res.code == 200) {
this.$set(this.arr, index, {
...this.selItem,
state: 0
})
}
})
},
chongzhi(item) {
if(this.userInfo.modelId==item.id){
return this.$refs.uToast.show({
title: '当前分身正在使用,不可重置!',
type: 'error'
})
}
this.selItem = item
this.$refs.mypopChongzhi.open()
},
toDetail(item) {
if (item.state == 3) {
this.$u.route('/pages/control-fenshen/fensehn-detail?id=' + item.id)
}
},
delItem() {
this.$api({
url: 'model/delete/' + this.selItem.id
}).then(res => {
this.$refs.uToast.show({
title: res.message,
type: res.code == 200 ? 'success' : 'error'
})
if (res.code == 200) {
this.arr.splice(this.SelIndex, 1)
this.$refs.myPoo.close()
this.$api({
url: "user/info"
}).then(res => {
this.userInfo = res.data
uni.setStorageSync('userInfo', res.data)
})
}
})
},
qeihuan(item) {
this.$api({
url: 'model/change/' + item.id,
}).then(res => {
this.$refs.uToast.show({
title: res.message,
type: res.code == 200 ? 'success' : 'error'
})
if (res.code == 200) {
this.userInfo.modelId = item.id
this.$api({
url: "user/info"
}).then(res => {
this.userInfo = res.data
uni.setStorageSync('userInfo', res.data)
})
}
})
},
close() {
this.selItem = ''
this.$refs.myPoo.close()
},
del(item, index) {
if(this.userInfo.modelId==item.id){
return this.$refs.uToast.show({
title: '当前分身正在使用,不可删除!',
type: 'error'
})
}
this.selItem = item
this.SelIndex = index
this.$refs.myPoo.open()
}
},
onShow() {
this.userInfo = uni.getStorageSync('userInfo')
this.pnum = 1
this.isEnd=false
this.$api({
url: 'model/list',
data: {
psize: this.psize,
pnum: this.pnum
}
}).then(res => {
this.arr = res.data
})
},
onLoad(opt) {
this.isUser = opt.isUser
// this.$api({
// url: 'model/list',
// data: {
// psize: this.psize,
// pnum: this.pnum
// }
// }).then(res => {
// this.arr = res.data
// })
}
}
</script>
<style lang="scss" scoped>
.blur {
filter: blur(5px);
}
.fixed_b {
left: 140rpx;
right: 140rpx;
bottom: 40rpx;
background-color: transparent;
z-index: 999;
}
.list {
.item {
display: flex;
border: 1px solid rgb(32, 33, 29);
border-radius: 30rpx;
overflow: hidden;
justify-content: center;
align-items: center;
position: relative;
// background-color: rgb(255, 196, 40);
.u-absolute {
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 2;
.pro {
position: absolute;
left: 10rpx;
bottom: 10rpx;
}
.gou {
position: absolute;
right: 0;
bottom: 0;
padding-top: 10rpx;
padding-left: 10rpx;
border-radius: 30rpx 0 0 0;
background-color: rgb(35, 33, 34);
}
}
image {
width: 320rpx;
height: 320rpx;
}
}
}
.status,
.btn-chongzhi {
width: 130rpx;
text-align: center;
border: 1px solid transparent;
border-radius: 100rpx;
font-size: 24rpx;
line-height: 48rpx;
}
.btn-chongzhi {
border-color: #333;
color: #333;
}
.status {
color: #999;
border-color: #999;
}
</style>

View File

@@ -0,0 +1,138 @@
<template>
<view class="u-text-left">
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="item">
<view>
<view class="color-000 u-font-28" >
<view class="u-m-t-8"> 类型 {{item.title}}</view>
<view class="u-m-t-8"> 内容 {{item.content}}</view>
<view class="u-m-t-8"> 时间 {{item.createTime}}</view>
<view class="u-m-t-8 u-text-right" >
<!-- 提现金额 -->
<text v-if="item.type===2" class="coor-666 u-font-32" style="font-weight: 600"> - {{item.money}}</text>
<text v-if="item.type===1" class="u-font-32" style="color: #FD6416;font-weight: 600">+ {{item.money}}</text>
</view>
</view>
</view>
</view>
<view class="page-box" v-if="!list.length">
<view class="centre">
<image src="../../static/images/learn/none.png" mode=""></image>
<view class="tips">
暂无明细
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [],
page: 1,
limit: 10,
totalCount: 0,
moneyType: null,
viewType: null,
}
},
onLoad: function(e) {
console.log(e)
if (e.moneyType) {
this.moneyType = e.moneyType
uni.setNavigationBarTitle({
title: e.moneyType === 1 ? '红包明细' : '金币明细'
});
}
if (e.viewType) {
this.viewType = e.viewType
}
this.getMoney();
},
methods: {
getMoney() {
let that = this;
let token = uni.getStorageSync('token')
if (token) {
let data = {
page : that.page,
limit : that.limit,
moneyType : this.moneyType,
viewType: this.viewType,
}
this.$Request.getT('app/moneyDetails/queryUserMoneyDetails', data).then(res => {
this.totalCount = res.data.total;
if ( res.data.records.length > 0) {
this.list = [...this.list,...res.data.records];
}
})
}
},
},
onReachBottom: function() {
if (this.page*this.limit < this.totalCount) {
this.page = this.page + 1;
this.getMoney();
}
},
onPullDownRefresh: function() {
this.page = 1;
// that.list = []
this.getMoney();
},
}
</script>
<style lang='scss' scoped>
/* @import "../../static/css/index.css"; */
page {
background: #FFFFFF;
}
.item {
background: white;
padding: 32rpx;
margin: 32rpx;
font-size: 28rpx;
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
border-radius: 16upx;
}
.centre {
text-align: center;
padding: 200rpx 0;
font-size: 32rpx;
box-sizing: border-box;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
// border: 1px dotted #000000;
}
.tips {
font-size: 34rpx;
color: #999999;
margin-top: 20rpx;
}
.btn {
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #5074FF;
}
}
</style>

147
me/yaoqing/ymf-my-team.vue Normal file
View File

@@ -0,0 +1,147 @@
<template>
<view class="page" style="">
<view class="padding margin radius bg-white" style="">
<view class="text-19">当前收益</view>
<view class="flex justify-between margin-top">
<view class="text-bold text-black">¥<text style="font-size: 34px;">{{yaoqingTongji}}</text></view>
<view class="" style="position: relative;overflow: hidden;width: 90px;">
<view style="position: absolute;bottom:0;">
<!-- <view class="flex"> -->
<button @tap="ymfgetOut" class="btn round">立即提现</button>
<!-- </view> -->
</view>
</view>
</view>
</view>
<view class="margin padding bg-white radius">
<view class="u-font-16 text-bold margin-bottom">邀请明细</view>
<!-- <view class="flex justify-between" style="line-height: 30px;" v-for="(item,index) in userList" >
<view class="flex" style="width: 300rpx;">
<u-image :src="item.avatar" width="30px" mode="widthFix"></u-image>
<view class="margin-left-sm infobox">{{item.userName}}</view>
</view>
<view style="width: 120rpx;">邀请好友</view>
<view style="width: 120rpx;">
<text class="margin-left text-red">{{item.money}}</text>
</view>
</view> -->
<view class="flex justify-between align-center" style="margin-bottom: 40rpx;"
v-for="(item,index) in userList">
<view class="flex align-center">
<image :src="item.avatar?item.avatar:'../../static/images/logo.png'"
style="width: 80rpx;height:80rpx;border-radius: 50rpx;"></image>
<view class="margin-left-sm">
<view class="infobox">{{item.userName}}</view>
<view class="text-cut u-font-24" v-if="item.userType && item.userType === 2">二级好友
</view>
<view class="text-cut u-font-24" v-else>一级好友
</view>
<!-- <u-image :src="item.avatar" width="30px" mode="widthFix"></u-image> -->
</view>
</view>
<view class="margin-left flex-sub text-right">
<text class="margin-left text-red">{{item.money}}</text>
</view>
</view>
<empty v-if="userList.length === 0" />
</view>
</view>
</template>
<script>
import empty from '../../components/empty.vue'
export default {
components: {
empty
},
data() {
return {
page: 1,
limit: 50,
userList: [],
yaoqingTongji: ''
}
},
onLoad() {
this.ymfgetData()
this.ymfgetInviter()
},
onReachBottom: function() {
this.page = this.page + 1;
this.ymfgetInviter();
},
onPullDownRefresh: function() {
this.page = 1;
this.ymfgetData();
this.ymfgetInviter();
},
methods: {
ymfgetData() {
let data = {
page: this.page,
limit: this.limit
}
this.$u.api.queryInviter(data).then(res => {
if (res.code === 0) {
this.yaoqingTongji = res.data.inviteMoney.money
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
ymfgetInviter() {
let data = {
page: this.page,
limit: this.limit,
userType:1
}
this.$u.api.inviter(data).then(res => {
if (res.code === 0) {
if (this.page === 1) {
this.userList = res.data.list
} else {
this.userList = [...this.userList, ...res.data.list]
}
uni.stopPullDownRefresh();
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
ymfgetOut() {
uni.navigateTo({
url: '/me/yaoqing/cashDetail'
});
},
}
}
</script>
<style>
.btn {
background: rgba(255, 117, 129, 0.2);
color: #ff7581;
font-weight: bold;
font-size: 14px;
}
.page{
padding-bottom: 50rpx;
}
.infobox {
width: 280rpx;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin-bottom: 4rpx;
}
</style>

View File

@@ -0,0 +1,942 @@
<!-- 我的邀请 -->
<template>
<view class="min-page">
<u-navbar title="分享好友" back-icon-color="#fff" :background="background" immersive :border-bottom="false"
title-color="#fff"></u-navbar>
<view class="u-relative">
<u-image src="/me/static/invite/top-bg.png" alt="" width="100%" mode="widthFix"></u-image>
<view class="u-absolute top-title">
<view class="u-flex u-row-center">
<u-image src="/me/static/invite/title.png" alt="" width="544rpx" mode="widthFix"></u-image>
</view>
<view class="u-flex u-row-right" style="padding-right:70rpx;">
<u-image src="/me/static/invite/rule.png" alt="" width="400rpx" mode="widthFix"></u-image>
</view>
<!-- <view class="u-m-t-24 color-fff u-font-28 u-text-left "
style=" padding-left: 248rpx;text-shadow: 0 0 10px #000;">
<view>好友首次签到成功送1元现金红包</view>
<view>满15人签到额外送9.9元红包</view>
<view>满99人签到额外送100元红包</view>
</view> -->
</view>
</view>
<view class=" inviteBox u-relative">
<view class="top">
<u-image src="/me/static/invite/bg1.png" alt="" width="422rpx" height="76rpx"></u-image>
<view class="u-absolute font-bold">
<text>邀请详情</text>
</view>
</view>
<view class="u-font-32 font-bold u-text-center color-000" style="padding-top: 84rpx;">
您的邀请码
</view>
<view class="text-center ">
<view class=" u-m-t-32 text-xxl red text-bold u-m-b-32">
{{invitationCode}}
</view>
<view class="u-flex u-row-between" style="padding: 0 88rpx;">
<!-- #ifdef H5 -->
<u-button @tap="ymfsharurl" :custom-style="customStyle" :hair-line="false"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef APP -->
<u-button @tap="ymfsharurl" :custom-style="customStyle" :hair-line="false"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef MP-TOUTIAO || MP-KUAISHOU -->
<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
:ripple="true">一键分享</u-button>
<!-- #endif -->
<!-- #ifndef MP-KUAISHOU -->
<u-button style="margin-left: 50rpx;" @click.stop="ymfonSaveImg()" :custom-style="customStyle"
:hair-line="false" :ripple="true">保存海报</u-button>
<!-- #endif -->
</view>
</view>
<view class="gap u-m-t-32"></view>
<view class="u-m-t-32">
<view class="font-bold color-000 u-font-32 u-text-center">我的邀请战绩</view>
<view class="flex justify-around u-m-t-32 u-text-center font-bold" style="line-height: 46rpx;">
<view>
<view class="">已邀请</view>
<view class="red u-m-t-16 "><text class=" u-font-40">{{inviterNumber}}</text></view>
</view>
<view>
<view class="">签到</view>
<view class="red u-m-t-16 "><text class=" u-font-40">{{inviteSignCount}}</text></view>
</view>
<view @click="ymftoGold">
<view class="">金币收益</view>
<view class="red u-m-t-16 "><text class=" u-font-40">{{earning.inviteGoldMoney}}</text></view>
</view>
<view @click="ymftoPack">
<view class="">红包收益</view>
<view class="red u-m-t-16 "><text class=" u-font-40">{{earning.inviteMoney}}</text></view>
</view>
<!-- <view>
<view class="">累计收益</view>
<view class="red u-m-t-16 "><text class=" u-font-40">{{cumulativeRevenue}}</text></view>
</view> -->
<!-- <view>
<view class="">已提现</view>
<view class="red u-m-t-16 "><text class="u-font-40">{{withdrawn}}</text></view>
</view> -->
</view>
<view class="u-m-t-16 color-999 u-text-center u-p-b-32">好友签到成功可额外获得1元现金红包</view>
</view>
</view>
<view class="margin u-m-t-40 u-m-b-32 padding bg-white radius-16">
<view class="u-font-32 color-333 font-bold u-text-center">已邀请列表</view>
<view v-if="inviterList.length" class="u-m-t-20">
<view class="flex justify-between" style="line-height: 80rpx;" v-for="(item, index) in inviterList"
:key='index'>
<view class="flex">
<!-- <u-image :src="item.avatar == null?avatar:item.avatar" width="40px" mode="widthFix"></u-image> -->
<image src="../static/invite/5.png" style="width: 80rpx;" mode="widthFix"></image>
<text class="margin-left-sm">{{item.userName}}</text>
</view>
<view style="width: 160rpx;" class="u-flex u-row-right font-bold">
<text class=" red" v-if="item.recordNum>0">已签到</text>
<text class=" color-999" v-else>未签到</text>
</view>
</view>
</view>
<!-- <view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax&&!inviterList.length">
<my-empty ></my-empty>
</view> -->
</view>
<!-- <view class="padding" style="position: relative;height: 250rpx;">
<u-image src="@/me/static/invite/jiqiao.png" alt="" width="100%" height="100%"></u-image>
<view class="padding-top jiqiao" style="">
<view class="padding-top-xl padding-lr padding-bottom" style="line-height: 48rpx;">
<block v-if="price2==0">
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>邀请好友可得开通会员及消费金额 {{price}}%的佣金奖励</view>
</view>
</block>
<block v-else>
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>可得一级好友开通会员及消费金额 {{price}}%的佣金奖励</view>
</view>
<view class="flex padding-sm" style="background-color: #ffffff;">
<text class="cuIcon-title text-yellow"></text>
<view>可得二级好友开通会员及消费金额 {{price2}}%的佣金奖励</view>
</view>
</block>
</view>
</view>
</view> -->
<tki-qrcode ref="qrcode" :val="erweima" :size="200" background="#fff" foreground="#000" pdground="#000"
:onval="true" :loadMake="true" @result="ymfqrR" :show="false"></tki-qrcode>
<view class="cu-modal" :class="modalName == 'Image' ? 'show' : ''" @tap="ymfhideModal">
<view class="ymf-dialog" v-if="bgImg && erweimapath && haibaoShow" @tap="ymfhideModal">
<view class="bg-img">
<wm-poster @success="ymfposterSuccess" @ymfsuccessH5="ymfsuccessH5" :imgSrc="bgImg"
:Referrer="'我的邀请码:'+invitationCode" :QrSrc="erweimapath" :LineType="false"></wm-poster>
</view>
</view>
</view>
</view>
</template>
<script>
let settingWritePhotosAlbum = false;
import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
import wmPoster from '../components/wm-poster/wm-posterorders.vue';
import myEmpty from '@/components/my-empty.vue';
import config from '../../common/config.js'
export default {
components: {
tkiQrcode,
myEmpty,
wmPoster
},
data() {
return {
earning: {
inviteMoney: 0,
inviteGoldMoney: 0,
},
//已签到人数
yaoqingRenshu: 0,
hasAjax: false,
erweimapath: '',
poster: {},
qrShow: false,
haibaoImg: null,
haibaoShow: false,
modalName: '',
canvasId: 'default_PosterCanvasId',
avatar: '../../static/images/logo.png',
background: {
'background-color': 'transparent'
},
customStyle: {
background: '#DDDCFF',
border: '8rpx',
color: '#4544FF',
fontSize: '28rpx',
fontWeight: '700',
padding: '10rpx 32rpx',
},
page: 1,
limit: 10,
inviterName: '', //邀请码
cumulativeRevenue: '', //累计收益
inviterNumber: '', //邀请人数
withdrawn: '', //已提现
inviterList: [],
erweima: '',
bgImg: '',
tuiguang: '',
invitationCode: 0,
price: 0,
price2: 0,
h5SaveImg: '',
modalName: '',
haibaoImgH5: '',
qdCode: '', //渠道码
}
},
onShareAppMessage(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImg
}
},
onShareTimeline(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImg
}
},
onLoad() {
this.ymfgetInviter()
this.ymfqueryInviter()
this.invitationCode = uni.getStorageSync('invitationCode')
this.ymfgetUserInfoBl()
this.ymfgetBgImg()
if (uni.getStorageSync('qdCode')) {
this.qdCode = uni.getStorageSync('qdCode')
}
// h5携带邀请码去首页
// #ifdef H5
this.erweima = config.APIHOST2 + '/?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// app直接去app注册页面
// #ifdef APP
this.erweima = config.APIHOST2 + '/pages/login/registerApp/?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// #ifdef MP-WEIXIN
this.ymfgetWxEq()
// #endif
// #ifdef MP-TOUTIAO
this.ymfgetTouTiao()
// #endif
},
methods: {
ymftoGold(){
uni.navigateTo({
url:'/me/yaoqing/redPack-mingxi?moneyType=2&viewType=1'
})
},
ymftoPack(){
uni.navigateTo({
url:'/me/yaoqing/redPack-mingxi?moneyType=1&viewType=1'
})
},
//获取用户分销比例
ymfgetUserInfoBl() {
this.$Request.getT('/app/user/selectUserById').then(res => {
if (res.code == 0) {
//一级分销
if (res.data.rate) {
this.price = (Number(res.data.rate) * 100).toFixed(0)
} else {
this.price = 0
}
//二级分销
if (res.data.twoRate) {
this.price2 = (Number(res.data.twoRate) * 100).toFixed(0)
} else {
this.price2 = 0
}
}
})
},
//获取头条二维码
ymfgetTouTiao() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/dyCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode + '&page=/pages/index/index',
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
//获取微信二维码
ymfgetWxEq() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/mpCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode,
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
ymfsharurl() {
let that = this;
uni.ymfshowModal({
title: '链接推广',
content: this.tuiguang + this.erweima,
showCancel: true,
cancelText: '关闭',
confirmText: '一键复制',
success: res => {
if (res.confirm) {
uni.setClipboardData({
data: this.tuiguang + this.erweima,
success: function() {
console.log('success');
uni.showToast({
title: '复制成功',
duration: 1000,
icon: 'none'
});
}
});
}
}
});
},
ymfposterSuccess(haibaoImg) {
this.haibaoImg = haibaoImg;
this.modalName = 'Image';
uni.hideLoading();
},
ymfsuccessH5(haibaoImg) {
if ( haibaoImg ) {
this.haibaoImgH5 = haibaoImg
uni.previewImage({
urls: [haibaoImg],
current: 1,
})
}
},
ymfshowModal() {
// #ifndef H5
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
// #endif
// #ifdef H5
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
//微信浏览器
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
} else {
if (!this.haibaoImgH5) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
uni.previewImage({
urls: [this.haibaoImgH5],
current: 1,
})
}
}
// #endif
},
ymfhideModal() {
this.modalName = null;
},
ymfqrR(path) {
this.erweimapath = path;
},
ymfgetInviter() {
let data = {
page: this.page,
limit: this.limit
}
this.$u.api.inviter(data).then(res => {
if (res.code == 0) {
this.inviterList = res.data.list
this.hasAjax = true;
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
ymfqueryInviter() {
this.$u.api.queryInviter().then(res => {
if (res.code == 0) {
this.cumulativeRevenue = res.data.inviteMoney.moneySum //累计收益
this.inviterNumber = res.data.yaoqingRenshu //邀请人数
this.withdrawn = res.data.inviteMoney.cashOut //已提现
this.inviteSignCount = res.data.inviteSignCount
Object.assign(this.earning,res.data.earning)
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
})
},
ymfgoNav(e) {
uni.navigateTo({
url: e
})
},
//获取背景图
ymfgetBgImg() {
this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
console.log(res)
if (res.code == 0) {
this.bgImg = res.data[0].imageUrl
this.tuiguang = res.data[0].describes
console.log(this.bgImg)
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
});
},
//生成h5海报
ymfcreateH5Poster() {
let that = this;
return new Promise((resolve, reject) => {
uni.showLoading({
title: '海报生成中'
});
const ctx = uni.createCanvasContext('poster');
ctx.fillRect(0, 0, 375, 673);
ctx.setFillStyle("#FFF");
ctx.fillRect(0, 0, 375, 673);
let imgUrl = that.bgImg;
uni.downloadFile({
url: imgUrl,
success: (res) => {
console.log(res, '***************')
if (res.statusCode === 200) {
uni.downloadFile({
url: that.erweima,
success: (res2) => {
console.log(res2)
if (res.statusCode === 200) {
ctx.drawImage(res.tempFilePath, 0, 0, 375,
500);
// 长按识别二维码访问
let textTop = 0;
ctx.setFontSize(19);
ctx.setFillStyle('#333');
ctx.fillText("长按识别图中二维码", 17, textTop + 590);
// 二维码
ctx.drawImage(res2.tempFilePath, 238, textTop +
526, 120, 120);
ctx.draw(true, () => {
// canvas画布转成图片并返回图片地址
uni.canvasToTempFilePath({
canvasId: 'poster',
width: 375,
height: 673,
success: (res) => {
console.log(
"海报制作成功!"
);
resolve(res
.tempFilePath
);
},
fail: () => {
uni
.hideLoading();
reject();
}
})
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
},
complete: com => {
console.log(com)
uni.showToast({
title: com,
icon: 'none'
});
},
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
// that.yu.toast(err)
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none',
});
}
});
});
},
//生成海报
ymfcreatePoster() {
let that = this;
return new Promise((resolve, reject) => {
uni.showLoading({
title: '海报生成中'
});
const ctx = uni.createCanvasContext('poster');
ctx.fillRect(0, 0, 375, 673);
ctx.setFillStyle("#FFF");
ctx.fillRect(0, 0, 375, 673);
let imgUrl = that.bgImg;
uni.downloadFile({
url: imgUrl,
success: (res) => {
console.log(res, '***************')
if (res.statusCode === 200) {
uni.downloadFile({
url: config.APIHOST +
'/app/invite/mpCreateQr?invitationCode=' + that
.invitationCode,
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/app/invite/mpCreateQr?invitationCode=' +
// that.invitationCode,
success: (res2) => {
console.log(res2)
if (res.statusCode === 200) {
ctx.drawImage(res.tempFilePath, 0, 0, 375,
500);
// 长按识别二维码访问
let textTop = 0;
ctx.setFontSize(19);
ctx.setFillStyle('#333');
// ctx.fillText("长按识别图中二维码", 17, textTop + 590);
// 二维码
// ctx.drawImage(res2.tempFilePath, 238, textTop + 526, 120, 120);
ctx.draw(true, () => {
// canvas画布转成图片并返回图片地址
uni.canvasToTempFilePath({
canvasId: 'poster',
width: 375,
height: 673,
success: (res) => {
console.log(
"海报制作成功!"
);
resolve(res
.tempFilePath
);
},
fail: () => {
uni
.hideLoading();
reject();
}
})
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
},
complete: com => {
console.log(com)
uni.showToast({
title: com,
icon: 'none'
});
},
});
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
// that.yu.toast(err)
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none',
});
}
});
});
},
// 保存图片
async ymfonSaveImg() {
this.ymfshowModal();
return
// #ifndef MP-WEIXIN
this.ymfshowModal();
// #endif
// #ifdef MP-WEIXIN
let imgUrl = await this.ymfcreatePoster();
uni.showLoading({
title: '海报下载中'
});
if (settingWritePhotosAlbum) {
uni.getSetting({
success: res => {
if (res.authSetting['scope.writePhotosAlbum']) {
uni.saveImageToPhotosAlbum({
filePath: imgUrl,
success: () => {
uni.hideLoading();
uni.showToast({
title: '保存成功'
});
}
});
} else {
uni.ymfshowModal({
title: '提示',
content: '请先在设置页面打开“保存相册”使用权限',
confirmText: '去设置',
cancelText: '算了',
success: data => {
if (data.confirm) {
uni.hideLoading();
uni.openSetting();
}
}
});
}
}
});
} else {
uni.hideLoading();
settingWritePhotosAlbum = true;
uni.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
uni.saveImageToPhotosAlbum({
filePath: imgUrl,
success: () => {
uni.hideLoading();
uni.showToast({
title: '保存成功'
});
}
});
}
});
}
// #endif
},
}
}
</script>
<style lang="scss" scoped>
$color1: #5857FF;
.ymf-dialog {
background-color: transparent;
}
.red {
color: $color1;
}
.gap {
width: 100%;
height: 0;
position: relative;
border-bottom: 1px dashed #eee;
&:before,
&::after {
display: block;
content: '';
position: absolute;
width: 34rpx;
height: 34rpx;
background: #F3F4F8;
border-radius: 50%;
z-index: 2;
top: 50%;
transform: translateY(-50%);
background-size: 100% 18px;
background-repeat: repeat-x
}
&:before {
left: -16rpx;
}
&::after {
right: -16rpx;
}
}
.radius-16 {
border-radius: 16rpx;
}
.min-page {
background: #F3F4F8;
}
.inviteBox {
position: relative;
margin-top: -240rpx;
background-color: #fff;
border-radius: 16rpx 16rpx 16rpx 16rpx;
margin-left: 28rpx;
margin-right: 28rpx;
.top {
position: absolute;
display: flex;
justify-content: center;
left: 134rpx;
right: 134rpx;
top: -24rpx;
.u-absolute {
left: 0;
right: 0;
z-index: 1;
top: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
color: #FFFFFF;
}
}
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1110;
opacity: 0;
outline: 0;
text-align: center;
-ms-transform: scale(1.185);
transform: scale(1.185);
backface-visibility: hidden;
perspective: 2000upx;
background: rgba(0, 0, 0, 0.6);
transition: all 0.3s ease-in-out 0s;
pointer-events: none;
}
.bg-img {
background-color: transparent;
}
.modal.show {
opacity: 1;
transition-duration: 0.3s;
-ms-transform: scale(1);
transform: scale(1);
overflow-x: hidden;
overflow-y: auto;
pointer-events: auto;
}
page {
background: #F3F4F8;
}
img {
display: block;
}
.poster_canvas {
width: 750upx;
height: 1334upx;
position: fixed;
top: -10000upx;
left: 0;
}
.yaoqing {
width: 100%;
height: 136px;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background-image: url('@/me/static/invite/fenxiang.png'); */
/* background-size: 100%; */
/* background-repeat: no-repeat; */
}
.top-title {
left: 0;
right: 0;
top: 192rpx;
.rule {
line-height: 32rpx;
width: 428rpx;
padding-right: 150rpx;
}
.top-title-img {
width: 550rpx;
height: 92rpx;
}
}
.zhanji {
/* background-image: url('@/me/static/invite/yaoqing.png'); */
/* background-size: 100%; */
/* background-repeat: no-repeat; */
}
.jiqiao {
width: 100%;
height: 160rpx;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background-image: url('@/me/static/invite/jiqiao.png');
background-size: 100%;
background-repeat: no-repeat; */
}
</style>

View File

@@ -0,0 +1,133 @@
<template>
<view style="text-align: left list">
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="tixian-item">
<view>
<view class="u-text-right u-m-t-8" >
<text class="u-m-t-8" style="color: green" v-if="item.state===1"> 提现成功</text>
<text class="u-m-t-8" style="color: green" v-if="item.state===0"> 提现中</text>
<text class="u-m-t-8" style="color: #FD6416" v-if="item.state===-1"> 提现失败</text>
</view>
<view style="color: #999999;font-size: 28upx;">
<view class="u-m-t-8"> 收款人账号{{ item.zhifubao }}</view>
<view class="u-m-t-8"> 收款人姓名{{ item.zhifubaoName }}</view>
<view class="u-m-t-8"> 发起时间{{ item.createAt }}</view>
<view class="u-m-t-8" v-if="item.state===1">成功时间 {{ item.outAt }}</view>
<view class="u-m-t-8" style="color: #FD6416" v-if="item.state===-1">{{ item.refund }}</view>
<view class="u-m-t-8 u-text-right" >
<!-- 提现金额 -->
<text class="u-font-32 " style="color: #FD6416;font-weight: 600"> {{ item.money }}</text>
</view>
</view>
</view>
</view>
<view class="page-box" v-if="!list.length">
<view class="centre">
<image src="../../static/images/learn/none.png" mode=""></image>
<view class="tips">
暂无记录
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [],
page: 1,
limit: 10,
total: 0,
}
},
onLoad: function (e) {
this.ymfgetMoney();
},
methods: {
ymfgetMoney() {
let that = this;
let token = uni.getStorageSync('token')
if (token) {
//可以提现金额查询预估收入查询
let data = {
page: this.page,
limit: this.limit
}
this.$Request.getT('app/cash/selectPayDetails', data).then(res => {
this.total = res.data.total;
if (res.data.list.length > 0) {
this.list = [...this.list, ...res.data.list];
}
})
}
},
},
onReachBottom: function () {
if (this.page * this.limit < this.total) {
this.page = this.page + 1;
this.ymfgetMoney();
}
},
onPullDownRefresh: function () {
this.page = 1;
// that.list = []
this.ymfgetMoney();
},
}
</script>
<style lang='scss' scoped>
/* @import "../../static/css/index.css"; */
page {
background: #FFFFFF;
}
.tixian-item {
background: white;
padding: 32rpx;
margin: 32rpx;
font-size: 28rpx;
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
border-radius: 16upx;
}
.centre {
text-align: center;
padding: 200rpx 0;
font-size: 32rpx;
box-sizing: border-box;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
// border: 1px dotted #000000;
}
.tips {
font-size: 34rpx;
color: #999999;
margin-top: 20rpx;
}
.btn {
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #ff7581;
}
}
</style>

View File

@@ -0,0 +1,551 @@
<template>
<view class="tixian">
<view
class="top-bg">
<view class="class1">可提现总额</view>
<view class="class2">¥ {{ mayMoney }}</view>
<view
class="class3">
<view class="class4" style="">
<view class="color-333 u-font-32">提现金额
<!-- <text style="font-size: 28upx;color: #ff7581;"
v-if="shouxufei">提现手续费为{{shouxufei * 100}}%</text> -->
</view>
</view>
<view
class="u-flex flex-row justify-between align-center"
style="padding: 20upx">
<view class="flex align-center" >
<view class="color-333" style="font-size: 40upx;">¥</view>
<input type="number" v-model="money" placeholder="请输入金额" @input="ymfmoneyInput" @blur="ymfymfmoneyBlur"
class="color-333 u-text-left u-m-l-10 u-font-40"
style="width: 80%;"/>
</view>
<view @click="ymfsetAllMoney"
class="u-font-28 color-333 u-p-l-15 u-p-r-15 u-p-t-16 u-p-b-16 flex-0 "
style="background: #ff7581;color: white;border-radius: 10rpx;">
全部
</view>
</view>
<!-- <view style="background: #E6E6E6;width: 100%;height: 1upx;"></view> -->
<!-- <view style="display: flex;flex-direction: row;flex-wrap: wrap;">
<view style="display: flex;flex-direction: row;" v-for="(item, index) in tixianList" :key="index">
<view>
<view style="padding: 20upx;" @click="ymfymfgetOut1(item.money)">
<view
style="padding-top: 40upx;width: 180upx; height: 120upx;background-color: #FFFFFF;border:1px solid #ff7581;border-radius: 10upx;">
{{ item.money }}
</view>
</view>
</view>
</view>
</view> -->
</view>
<view @click="ymfgetOut"
class="u-m-40 u-font-36 color-fff u-border-10"
style="background: #ff7581;border-radius: 10px;height: 80rpx;line-height: 80rpx;">
提现
</view>
<view
class="flex w-full justify-center ">
<view class="u-flex-1" style="color: grey;padding-bottom: 30px;padding-top: 20upx;" @click="ymfgoaliZhiFuBao">
提现账号
</view>
<view class="u-flex-1" style="color: grey;padding-bottom: 30px;padding-top: 20upx;" @click="ymfgoqianbao">
红包明细
</view>
<!-- <view style="color: grey;padding-bottom: 30px;padding-top: 20upx;width: 33%;" @click="ymfgojilu">提现记录
</view> -->
</view>
<view style="text-align: left" class="tixianList u-p-b-30">
<view v-if="list.length" v-for="(item, index) in list" :key="index" class="item">
<view>
<view style="margin-bottom: 8rpx;text-align: right;">
<text style="margin-bottom: 8rpx;color: green" v-if="item.state===1"> 提现成功</text>
<text style="margin-bottom: 8rpx;color: green" v-if="item.state===0"> 提现中</text>
<text style="margin-bottom: 8rpx;color: #FD6416" v-if="item.state===-1||item.state===2">
提现失败
</text>
</view>
<view style="color: #999999;font-size: 28upx;">
<view class="u-m-t-8"> 收款人账号{{ item.aliZhiFuBao }}</view>
<view class="u-m-t-8"> 收款人姓名{{ item.aliZhiFuBaoName }}</view>
<view class="u-m-t-8"> 发起时间{{ item.createAt }}</view>
<view class="u-m-t-8" v-if="item.state===1">成功时间 {{ item.outAt }}</view>
<view style="margin-bottom: 8rpx;color: #FD6416" v-if="item.state===-1||item.state===2">
失败原因{{ item.refund }}
</view>
<view style="margin-bottom: 8rpx;text-align: right;">
<!-- 提现金额 -->
<text style="color: #FD6416;font-size: 32upx;font-weight: 600"> {{ item.money }}</text>
</view>
</view>
</view>
</view>
<view class="page-box" v-if="!list.length">
<view class="centre">
<image src="../../static/images/learn/none.png" mode=""></image>
<view class="tips">
暂无记录
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
money: '',
mayMoney: '0',
shouxufei: '',
tixianList: [{
money: '10'
},
{
money: '20'
},
{
money: '50'
},
{
money: '100'
},
{
money: '200'
},
{
money: '500'
}
],
value: 0,
min: '',
token: '',
userId: '',
aliZhiFuBao: '',
aliZhiFuBaoName: '',
list: [],
page: 1,
limit: 10,
totalCount: 0,
};
},
onLoad() {
this.ymfgetExtractFei();
this.ymfymfgetMoneyDetail();
},
onShow() {
this.token = uni.getStorageSync('token')
this.userId = uni.getStorageSync('userId')
this.aliZhiFuBao = uni.getStorageSync('aliZhiFuBao')
this.aliZhiFuBaoName = uni.getStorageSync('aliZhiFuBaoName')
this.ymfgetcashMoney()
},
onReachBottom: function () {
if (this.page * this.limit < this.totalCount) {
this.page = this.page + 1;
this.ymfymfgetMoneyDetail();
}
},
onPullDownRefresh: function () {
this.page = 1;
// that.list = []
this.ymfymfgetMoneyDetail();
},
onNavigationBarButtonTap() {
// this.list();
},
methods: {
ymfmoneyInput(e) {
let num = e.detail.value.match(/^\d*(\.?\d{0,2})/g)[0] || null;
this.$nextTick(() => {
this.money = num;
});
},
ymfymfmoneyBlur(e) {
let num = e.detail.value.match(/^\d*(\.?\d{0,2})/g)[0] || null;
this.$nextTick(() => {
this.money = num;
});
},
ymfsetAllMoney() {
this.money = Math.floor(this.mayMoney * 100) / 100
},
ymfymfgetMoneyDetail() {
let that = this;
let token = uni.getStorageSync('token')
console.log(1);
if (token) {
//可以提现金额查询预估收入查询
let data = {
page: this.page,
limit: this.limit
}
this.$Request.getT('app/cash/selectPayDetails', data).then(res => {
this.totalCount = res.data.totalCount;
if (res.data.list.length > 0) {
this.list = [...this.list, ...res.data.list];
}
})
}
},
//获取收取费
ymfgetExtractFei() {
this.$u.get('app/common/type/152').then(res => {
if (res.code === 0) {
if (res.data && res.data.value) {
this.shouxufei = res.data.value;
}
}
});
this.$u.get('app/common/type/112').then(res => {
if (res.code === 0) {
if (res.data && res.data.value) {
this.cashMoney = res.data.value;
}
}
});
},
// 可提现金额
ymfgetcashMoney() {
let data = {
page: this.page,
limit: this.limit
}
// this.$u.api.myPurseDet(data).then(res => {
// if (res.code == 0) {
// this.mayMoney = res.data.inviteMoney.money
// } else {
// uni.showToast({
// title: res.msg,
// duration: 1000,
// icon: 'none'
// });
// }
// })
this.$Request.getT('app/moneyDetails/selectUserMoney').then(res => {
if (res.code == 0) {
this.mayMoney = res.data.amount || 0
}
})
},
// 提现记录
ymfgojilu() {
uni.navigateTo({
url: '/me/yaoqing/ymf-yaoqing-tixian-jilu'
});
},
//钱包明细
ymfgoqianbao() {
uni.navigateTo({
url: '/me/yaoqing/tixianList?moneyType=1&viewType=2'
});
},
ymfgoaliZhiFuBao() {
uni.navigateTo({
url: '/me/yaoqing/zhifubao-tixain-tixain'
});
},
ymfgetMoney() {
let that = this;
let token = that.token
let userId = that.userId
if (token) {
//this.$queue.showLoading("加载中...");
//可以提现金额查询预估收入查询
let data = {
amount: that.money
}
uni.showLoading({
title: '提现中'
});
this.$u.api.withdraw(data).then(res => {
if (res.code == 0) {
uni.showToast({
title: res.msg,
icon: 'none'
})
that.money = ''
setTimeout(function () {
that.ymfgetcashMoney()
}, 1500)
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
}
},
//校验用户输入金额
ymfcheckMobile(money) {
return RegExp(/^1[34578]\d{9}$/).test(money);
},
ymfgetOut() {
let that = this;
let token = that.token
let userId = that.userId
let cashMoney = that.cashMoney;
if (token) {
if (that.aliZhiFuBao && that.aliZhiFuBaoName) {
if (!/^\d+(\.\d{1,2})?$/.test(that.money)) {
uni.showToast({
icon: 'none',
title: '请输入正确金额,不能包含中文,英文,特殊字符和小数'
});
return;
}
let shouxufei = parseFloat(that.money * that.shouxufei).toFixed(2);
console.log(parseFloat(that.mayMoney))
console.log(parseFloat(that.money))
if (parseFloat(that.mayMoney).toFixed(2) >= parseFloat(that.money)) {
// if (parseFloat(that.mayMoney).toFixed(1) >= parseFloat(that.money) + shouxufei * 1) {
if (parseFloat(that.money).toFixed(2) >= parseFloat(cashMoney)) {
if (that.shouxufei > 0) {
uni.showModal({
title: "提现申请提示",
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + that
.money + '元\n\n收款人账号' + that.aliZhiFuBao + '',
// content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + that
// .money + '元\n\n提现手续费' + shouxufei +
// '\n\n收款人账号' + that.aliZhiFuBao + '',
success: (e) => {
if (e.confirm) {
// that.money = money
that.ymfgetMoney();
that.ymfymfgetMoneyDetail();
}
}
});
} else {
uni.showModal({
title: "提现申请提示",
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + that
.money + '元\n\n收款人账号' + that.aliZhiFuBao +
'',
success: (e) => {
if (e.confirm) {
// that.money = money
that.ymfgetMoney();
that.ymfymfgetMoneyDetail();
}
}
});
}
} else {
uni.showToast({
icon: 'none',
title: "提现金额必须大于或等于" + cashMoney + "元才可提现"
});
}
} else {
uni.showToast({
icon: 'none',
title: "您的余额不足"
});
}
} else {
uni.navigateTo({
url: "/me/yaoqing/aliZhiFuBao"
})
}
} else {
uni.navigateTo({
url: '/pages/login/login'
});
}
},
ymfymfgetOut1(money) {
let that = this;
let token = that.token
let userId = that.userId
if (token) {
if (that.aliZhiFuBao && that.aliZhiFuBaoName) {
if (parseFloat(this.mayMoney).toFixed(1) >= parseFloat(money)) {
if (parseFloat(money).toFixed(1) >= 10) {
if (this.shouxufei > 0) {
let shouxufei = parseFloat(money * this.shouxufei).toFixed(2);
uni.showModal({
title: '提现申请提示',
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + money +
'元\n\n收款人账号' + that.aliZhiFuBao + '',
// content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + money +
// '元\n\n提现手续费' + shouxufei +
// '\n\n收款人账号' + that.aliZhiFuBao + '',
confirmColor: '#ff7581',
success: e => {
if (e.confirm) {
this.money = money
that.ymfgetMoney();
// uni.showToast({
// icon: 'none',
// title: '提现成功'
// })
}
}
});
} else {
uni.showModal({
title: '提现申请提示',
content: '请仔细确认收款人信息\n\n收款人姓名:' + that.aliZhiFuBaoName + '\n\n提现金额:' + money +
'元\n\n收款人账号' + that.aliZhiFuBao +
'',
success: e => {
if (e.confirm) {
this.money = money
that.ymfgetMoney();
// uni.showToast({
// icon: 'none',
// title: '提现成功'
// })
}
}
});
}
} else {
uni.showToast({
icon: 'none',
title: '提现金额必须大于或等于10元才可提现'
});
}
} else {
uni.showToast({
icon: 'none',
title: '您的余额不足'
});
}
} else {
uni.navigateTo({
url: '/me/yaoqing/aliZhiFuBao'
});
}
} else {
uni.navigateTo({
url: '/pages/login/login'
});
}
}
}
};
</script>
<style lang="less">
// @import '../../static/css/index.css';
.top-bg{
background-color: #ff7581;height: 400upx;border-bottom-right-radius: 40upx;border-bottom-left-radius: 40upx;
}
.class1{
font-size: 32upx;color: #FFFFFF;padding-top: 100upx;
}
.class2{
font-size: 40upx;color: #FFFFFF;padding-top: 20upx;
}
.class3{
width: 90%;height: max-content;margin-left: 40upx;background-color: #FFFFFF;box-shadow: rgba(183, 183, 183, 0.3) 0px 1px 10px;margin-top: 50upx;border-radius: 20upx;
}
.class4{
display: flex;flex-direction: row;padding: 20upx;
}
.view2-view-text {
font-size: 14px;
color: #000000;
margin-left: 20upx;
width: 80%;
}
.view2-view-image-right {
width: 18upx;
height: 30upx;
margin-left: 50upx;
}
.tixian {
text-align: center;
background: white;
height: 100%;
position: absolute;
width: 100%;
.cash-top {
padding: 32upx 32upx 50upx 32upx;
/* border-bottom: 1px solid gainsboro; */
background: #5074FF;
}
.leiji {
font-size: 14px;
color: #ffffff;
margin-bottom: 10px;
}
}
.tixianList {
.item {
background: white;
padding: 32rpx;
margin: 32rpx;
font-size: 28rpx;
box-shadow: 7px 9px 34px rgba(0, 0, 0, 0.1);
border-radius: 16upx;
}
.item:first-child {
margin-top: 0;
}
}
.centre {
text-align: center;
padding: 200rpx 0;
font-size: 32rpx;
box-sizing: border-box;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
// border: 1px dotted #000000;
}
.tips {
font-size: 34rpx;
color: #999999;
margin-top: 20rpx;
}
.btn {
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #ff7581;
}
}
</style>

View File

@@ -0,0 +1,178 @@
<template>
<view class="page">
<list-cell title="收款人姓名" type="text" placeholder="请输入支付宝收款人姓名" v-model="zhiFuBaoName"></list-cell>
<list-cell title="支付宝账号" type="text" placeholder="请输入要绑定的支付宝手机号" v-model="zhiFuBao"></list-cell>
<button :class="zhiFuBao&&zhiFuBaoName?'confirm-btn':'ymf-confirm-btn1'" @click="ymftoLogin"
:disabled="logining">绑定账户</button>
<view style="padding: 32upx 64upx;font-size: 24upx;color: #999999;">提示请正确填写收款人的支付宝账户和真实的收款人姓名否则将无法正常收款</view>
</view>
</template>
<script>
import listCell from '@/me/components/com-input';
export default {
components: {
listCell
},
data() {
return {
zhiFuBao: '',
zhiFuBaoName: '',
logining: false
}
},
onLoad() {
let userId = uni.getStorageSync('userId');
if (userId) {
this.$u.api.userinfo().then(res => {
if (res.code === 0) {
if (res.data.zhiFuBao) {
this.zhiFuBao = res.data.zhiFuBao;
}
if (res.data.zhiFuBaoName) {
this.zhiFuBaoName = res.data.zhiFuBaoName;
}
// console.log(this.zhiFuBao )
// console.log(this.zhiFuBaoName )
}
})
}
},
methods: {
inputChange(e) {
const key = e.currentTarget.dataset.key;
this[key] = e.detail.value;
},
ymfnavBack() {
uni.navigateBack();
},
ymftoLogin() {
// console.log(this.zhiFuBao )
// console.log(this.zhiFuBaoName )
// const {
// zhiFuBao,
// zhiFuBaoName
// } = this;
let zhiFuBao = this.zhiFuBao
let zhiFuBaoName = this.zhiFuBaoName
console.log(zhiFuBao)
console.log(zhiFuBaoName)
if (!zhiFuBao) {
uni.showToast({
title: '请设置收款人姓名',
icon: 'none'
})
} else if (!zhiFuBaoName) {
uni.showToast({
title: '请设置收款人支付宝账号',
icon: 'none'
})
} else {
this.$u.post('app/user/updateUser?zhiFuBao=' + zhiFuBao + '&zhiFuBaoName=' + zhiFuBaoName).then(
res => {
console.log(res);
if(res.code===0){
uni.setStorageSync('zhiFuBao', zhiFuBao)
uni.setStorageSync('zhiFuBaoName', zhiFuBaoName)
uni.showToast({
title: '修改成功',
icon: 'none',
complete() {
setTimeout(function() {
uni.navigateBack();
}, 1000)
}
})
}else{
uni.showToast({
title:res.msg||'修改失败',
icon:'none'
})
}
});
}
// if (!zhifubao) {
// this.$queue.showToast("请设置收款人支付宝账号");
// } else if (!zhifubaoName) {
// this.$queue.showToast("请设置收款人姓名");
// } else {
// this.$queue.showLoading("修改中...");
// this.$Request.postT("/cash/userinfo?userId=" + userId + "&zhifubao=" + zhifubao + "&zhifubaoName=" + zhifubaoName).then(
// res => {
// if (res.status === 0) {
// if (res.data.zhifubao) {
// this.zhifubao = res.data.zhifubao;
// }
// if (res.data.zhifubaoName) {
// this.zhifubaoName = res.data.zhifubaoName;
// }
// this.ymfnavBack();
// } else {
// // this.$queue.showToast(res.msg)
// }
// uni.hideLoading();
// });
// }
},
},
}
</script>
<style lang='scss'>
page {
background: #FFFFFF;
}
.page {
padding-top: 32upx;
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
background: #ffffff;
}
.ymf-confirm-btn1 {
width: 300px;
height: 42px;
line-height: 42px;
border-radius: 30px;
margin-top: 70upx;
/* background: whitesmoke; */
background: #ff7581;
color: #FFFFFF;
font-size: 32rpx;
&:after {
border-radius: 60px;
}
}
.confirm-btn {
width: 300px;
height: 42px;
line-height: 42px;
border-radius: 30px;
margin-top: 70upx;
background: #ff7581;
color: #ffffff;
font-size: 32rpx;
&:after {
border-radius: 60px;
}
}
</style>