Files
jjx-web/pages/user/components/equity.vue
T
2023-12-05 20:01:15 +08:00

721 lines
19 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<el-card shadow="never">
<view class="welcome">
尊敬的平台商家您好,目前您是我们平台的 <text>黄金VIP LV1</text> 客户,可享受相应会员权益~
</view>
<view class="user-info">
<view class="left">
<view class="member-card">
<view class="card-name">
<text class="name">黄金VIP</text>
<text class="level">LV1</text>
<text class="grade">
当前等级
</text>
</view>
<view class="exp-time">
有效期至:2023-09-18
</view>
<view class="progress-box">
<view class="left">
<view class="total-pay">当前交易额</view>
<view class="progress">
<view class="price">60W</view>
<view class="desc">还差40W升级LV2</view>
</view>
<view class="progress-line">
<el-progress :percentage="30" color="#919191" stroke-width="8" :show-text="false"></el-progress>
</view>
<view class="level">
<view class="min-level">L1</view>
<view class="max-level">L10</view>
</view>
</view>
<view class="xufei-btn">
<el-image src="https://oss.wsdns.cn/20231205/aecd46b81f8b452c9294ae36ab8404f5.png" />
</view>
</view>
</view>
</view>
<view class="right">
<view class="bzj-title">当前保证金<text>1000078</text>元</view>
<view class="desc">金久信携手千万采购商和供应商,承诺为买家和卖家打造更优质的服务平台,缴纳诚信保证金会冻结在平台,最低保证金额度5000.00元</view>
<view class="btn-box">
<el-button @click="showForm('grade')">升级会员</el-button>
<el-button @click="showForm('payment')">去缴纳保证金</el-button>
<el-button @click="showForm('added')">购买增值权益</el-button>
</view>
</view>
</view>
<view class="equity">
<el-image src="https://oss.wsdns.cn/20231205/5ba845c9570e4fba95516b68ae661056.png" />
<!-- <i class="el-icon-minus"></i>-->
<!-- <text>可享受一下权益</text>-->
<!-- <i class="el-icon-minus"></i>-->
</view>
<div class="grade-list">
<div class="item">
<div class="item-box" style="background-color: #f7f7f7">
<div class="title">会员等级</div>
<div class="title">平台认证商家</div>
<div class="title">黄金VIP</div>
<div class="title">铂金VIP</div>
<div class="title">钻石VIP</div>
<div class="title">实力厂家</div>
<div class="title">实力商家</div>
<div class="title">实力加工厂</div>
</div>
</div>
<div class="item">
<div class="item-box">
<div class="title">身份图标</div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/cb35648023de4c40a0790c275962222f.png"></el-image> </div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/9816e24079d349068f52ba45c2786fb5.png"></el-image></div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/11f497e8c11d45bb97b1939ac8ed68a1.png"></el-image></div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/45ae2b50ca044f208edf2f411ed72da1.png"></el-image></div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/10ae319c1bb045d3b871046c85f97432.png"></el-image></div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/cea0d711c9004c57b14aec491e48c3ff.png"></el-image></div>
<div class="title"><el-image class="level" src="https://oss.wsdns.cn/20231205/a7445b2a6c224aee9115317f29867851.png"></el-image></div>
</div>
</div>
<div class="item">
<div class="item-box">
<div class="title">认证缴费</div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
<div class="title red">去认证<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="item">
<div class="item-box">
<div class="title">获得身份方式</div>
<div class="title">
<div class="get-way">
<div>企业平台认证</div>
<div>VIP认证方法</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买</div>
<div>999元/年</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买</div>
<div>1999元/年</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买</div>
<div>5999元/年</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买+交易保证金</div>
<div>5999+20000</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买+交易保证金</div>
<div>5999+20000</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
<div class="title">
<div class="get-way">
<div>购买+交易保证金</div>
<div>5999+20000</div>
<div class="red">去升级<i class="el-icon-arrow-right"></i></div>
</div>
</div>
</div>
</div>
<div class="item">
<div class="item-box">
<div class="title">询报价权益</div>
<div class="title">-</div>
<div class="title">-</div>
<div class="title">-</div>
<div class="title">-</div>
<div class="title">-</div>
<div class="title">-</div>
<div class="title">-</div>
</div>
</div>
</div>
<u-gap height="80"></u-gap>
<div class="grade-list">
<div class="item">
<div class="item-box" style="background-color: #f7f7f7">
<div class="title">时间</div>
<div class="title">详情</div>
<div class="title">金额</div>
<div class="title">会员权益</div>
</div>
</div>
<div class="item" v-for="(item, index) in gradeList" :key="index" @click="onChange(index)">
<div class="item-box">
<div class="title">2023-01-01</div>
<div class="title">缴纳保证金</div>
<div class="title">¥20000</div>
<div class="title">钻石VIP LV1</div>
</div>
</div>
<view class="paginatio">
<el-pagination
@current-change="search"
background
layout="prev, pager, next"
:total="10">
</el-pagination>
</view>
</div>
</el-card>
</template>
<script>
import UQRCode from 'uqrcodejs';
import UGap from "../../../uni_modules/vk-uview-ui/components/u-gap/u-gap.vue";
const OpenSdk = require('../lib/base').default;
// const OpenSdk = require('ums-sdk-nodejs').default;
const sdk = new OpenSdk({
appId: '10037e6f6823b20801682b6a5e5a0006',
appKey: '1c4e3b16066244ae9b236a09e5b312e8'
})
export default {
components: {UGap},
data() {
return {
paymentIndex: 0,
payment: ["银联支付"],
money: 5000,
showQrcode: false,
billQRCode: '',
gradeIndex: 0,
gradeList: [
{
id: 1,
grade: '身份图标',
code: '金久信认证(图)',
name: '供应商实力考查',
type: '元/次',
price: 150,
company: '金久信',
select: 1,
comments: '实现视频并记录存档,收集相关纸质文件'
},
{
id: 2,
grade: '认证缴费',
code: '黄金VIP(图)',
name: '供应商实力考查',
type: '元/次',
price: 150,
company: '金久信',
select: 0,
comments: '实现视频并记录存档,收集相关纸质文件'
},
{
id: 3,
grade: '获得身份方式',
code: '铂金VIP(图)',
name: '供应商实力考查',
type: '元/次',
price: 150,
company: '金久信',
select: 0,
comments: '实现视频并记录存档,收集相关纸质文件'
},
{
id: 4,
grade: '获得身份方式',
code: '钻石VIP',
name: '供应商实力考查',
type: '元/次',
price: 150,
company: '金久信',
select: 0,
comments: '实现视频并记录存档,收集相关纸质文件'
},
]
}
},
created() {},
methods: {
getUserInfo() {
vk.userCenter.getCurrentUserInfo({
success: (data) => {
if (data.userInfo.businessCard) {
this.form1.data = data.userInfo.businessCard
}
// 成功后的逻辑
console.log('用户信息: ', data);
}
});
},
onChange(money) {
this.money = money
},
onPay() {
const date = new Date()
const requestTimestamp = this.dateFormat('YYYY-mm-dd HH:MM:SS', date)
const timestamp = this.dateFormat('YYYYmmddHHMMSS', date)
console.log(timestamp)
console.log(requestTimestamp)
let data = {
queryUrl: 'https://test-api-open.chinaums.com/v1/netpay/bills/get-qrcode',
timestamp,
nonce: 'rp84ufhfn20yneo3tp',
content: {
requestTimestamp,
mid: '898201612345678',
tid: '88880001',
instMid: 'QRPAYDEFAULT',
totalAmount: 1,
notifyUrl: 'https://static-mp-0737e52b-fffa-4223-bcdf-d4ad3d9968a5.next.bspapp.com/#/'
}
}
/**
* 调用函数
*/
sdk.exec(data).then(res => {
const h = this.$createElement;
const result = JSON.parse(res);
if (result.errCode === 'SUCCESS') {
this.showQrcode = true
this.billQRCode = result.billQRCode
// this.$alert('', '请打开手机微信,扫一扫完成支付', {
// confirmButtonText: '确定',
// callback: action => {
// this.$message({
// type: 'success',
// message: `已完成支付`
// });
// }
// });
}
})
},
dateFormat(fmt, date) {
const opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
let ret
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt)
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt
},
navTo(url) {
vk.navigateTo(url);
},
showForm(index){
this.$emit('done',index);
},
search(pageIndex) {
// vk.callFunction({
// url: 'client/spot/goods/pub/getList',
// data: {
// pageIndex: pageIndex,
// pageSize: 20,
// keyword: this.keyword,
// categoryIds: this.checkCategoryList,
// provinceCodes: this.checkProvinceList
// },
// success: (data) => {
// console.log('data: ', data);
// data.rows.forEach(item => {
// try {
// item.addressStr = item.address.province.name + "-" + item.address.city.name + "-" + item.address.area.name
// } catch (err) {
// item.addressStr = ""
// }
// })
// this.goodsData = data
// }
// });
},
}
}
</script>
<style lang="scss" scoped>
.clearfix {
font-weight: bold;
font-size: 18px;
}
.bzj-price {
display: flex;
justify-content: space-between;
.item {
position: relative;
border: 1px solid #eee;
.item-box {
display: flex;
.title {
padding: 10px;
border-right: 1px solid #eee;
display: flex;
align-items: center;
width: 40px;
justify-content: center;
text-align: center;
.level{
width: 80px;
height: 80px;
}
}
.info {
padding: 10px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 230px;
.price {
font-size: 28px;
}
.desc {
color: #ccc;
}
}
}
.select {
display: none;
}
}
.active {
border: 2px solid #bf2b28 !important;
.item-box {
.title {
border-right: 2px solid #bf2b28 !important;
color: #bf2b28;
}
.info {
.price {
color: #bf2b28;
}
.desc {
color: #ccc;
}
}
}
.select {
position: absolute;
right: 0;
bottom: 0;
border-top: 20px solid transparent;
border-right: 20px solid #bf2b28;
border-left: 20px solid transparent;
border-bottom: 20px solid #bf2b28;
display: flex;
.icon {
position: relative;
.el-icon-check {
position: absolute;
left: 0;
top: 0;
color: #fff;
}
}
}
}
}
.box-card {
margin-top: 20px;
border: none;
}
.sub-title {
color: #bf2b28;
font-size: 18px;
font-weight: bold;
border-left: 5px solid #bf2b28;
padding-left: 10px;
height: 20px;
line-height: 20px;
margin: 20px auto;
}
.bzj-readme {
margin-top: 20px;
}
.payment {
margin-top: 20px;
}
.pay-price {
margin-top: 20px;
}
.pay-desc {
font-size: 16px;
line-height: 2em;
}
.welcome{
color: #999999;
font-size: 16px;
text{
color: #bf2b28;
font-size: 18px;
font-weight: bold;
}
}
.user-info{
margin: 20px auto;
display: flex;
justify-content: space-between;
.left{
.member-card{
background: url("https://oss.wsdns.cn/20231205/e080605f50d3406b84bae69088418309.png");
background-size: 100%;
background-color: #626262;
border-radius: 20px;
padding: 30px;
width: 420px;
height: 230px;
.card-name{
.name{
color: #DFBA8B;
font-size: 24px;
font-weight: bold;
}
.level{
color: #DFBA8B;
font-size: 18px;
font-weight: bold;
margin:0 15px;
}
.grade{
padding: 4px 7px;
color: #ffffff;
border: 1px solid #ffffff;
border-radius: 5px;
margin-left: 20px;
}
}
.exp-time{
color: #DFBA8B;
opacity: 0.5;
}
.progress-box{
display: flex;
justify-content: space-between;
align-items: center;
.total-pay{
margin-top: 30px;
color: #BFBFBF;
}
.progress{
display: flex;
justify-content: space-between;
align-items: flex-end;
color: #BFBFBF;
font-size: 20px;
.price{
}
.desc{
font-size: 12px;
padding-bottom: 1px;
}
}
.progress-line{
width: 250px;
}
.level{
display: flex;
justify-content: space-between;
color: #BFBFBF;
line-height: 1.8em;
}
.xufei-btn{
width: 100px;
margin-left: 20px;
margin-top: 12px;
}
}
}
}
.right{
padding: 20px;
border-radius: 20px;
width: 420px;
.bzj-title{
font-size: 16px;
text{
color: #bf2b28;
font-size: 24px;
}
}
.desc{
color: #999999;
padding: 18px 0;
}
}
}
.equity{
text-align: center;
color: #999999;
font-size: 16px;
text{
padding: 15px;
}
.el-icon-minus{
}
}
.grade-list {
display: flex;
flex-direction: column;
font-size: 12px;
.item {
position: relative;
border: 1px solid #eee;
.item-box {
display: flex;
font-size: 14px;
.red{
color: #bf2b28;
}
.title {
padding: 10px;
border-right: 1px solid #eee;
display: flex;
align-items: center;
flex: 1;
justify-content: center;
text-align: center;
.get-way{
display: flex;
flex-direction: column;
font-size: 13px;
line-height: 2em;
}
}
.info {
padding: 10px;
display: flex;
flex: 1;
flex-direction: column;
align-items: center;
justify-content: center;
width: 230px;
.price {
}
.desc {
color: #ccc;
}
}
}
.select {
display: none;
}
}
.active {
border: 2px solid #bf2b28 !important;
.item-box {
.title {
color: #bf2b28;
}
.info {
.price {
color: #bf2b28;
}
.desc {
color: #ccc;
}
}
}
.select {
position: absolute;
right: 0;
bottom: 0;
border-top: 20px solid transparent;
border-right: 20px solid #bf2b28;
border-left: 20px solid transparent;
border-bottom: 20px solid #bf2b28;
display: flex;
.icon {
position: relative;
.el-icon-check {
position: absolute;
left: 0;
top: 0;
color: #fff;
}
}
}
}
}
.paginatio {
float: none;
margin: 20px auto;
display: flex;
justify-content: center;
}
</style>