From cc0a3ae1b6e72ddfdcedfca3c4cfb9ed57b41b73 Mon Sep 17 00:00:00 2001
From: XIGUASSR <623844246@qq.com>
Date: Fri, 11 Nov 2022 09:56:35 +0800
Subject: [PATCH] 11.11最新
---
src/assets/img/jinggao.png | 0
src/page/cashWithdrawalRecord/index.vue | 126 ++
src/assets/img/huazhuan2.png | 0
src/page/login/components/header.vue | 2
src/page/transfer/index.vue | 226 ++++
src/page/transferRecord/compontents/recharge-list.vue | 242 +++++
src/page/authentication/index.vue | 477 ++++++++++
src/page/newUser/index.vue | 267 +++++
src/page/wallet/index.vue | 764 ++++++++++++++++
src/assets/img/eslogo.png | 0
src/page/transferRecord/index.vue | 169 +++
src/components/foot.vue | 8
src/assets/img/huazhuan.png | 0
src/assets/img/out.png | 0
src/page/bankCard/index.vue | 179 +++
src/page/cashWithdrawalRecord/compontents/cash-list.vue | 190 ++++
src/router/index.js | 77 +
src/assets/img/qianbao.png | 0
src/assets/img/liucheng.png | 0
src/assets/img/out2.png | 0
src/assets/img/shiming.png | 0
src/assets/img/tou2.png | 0
src/main.js | 4
src/page/user/transfer.vue | 2
src/assets/img/xiugaimima.png | 0
src/assets/img/qiandai.png | 0
26 files changed, 2,706 insertions(+), 27 deletions(-)
diff --git a/src/assets/img/eslogo.png b/src/assets/img/eslogo.png
new file mode 100644
index 0000000..97df4a8
--- /dev/null
+++ b/src/assets/img/eslogo.png
Binary files differ
diff --git a/src/assets/img/huazhuan.png b/src/assets/img/huazhuan.png
new file mode 100644
index 0000000..6fb2261
--- /dev/null
+++ b/src/assets/img/huazhuan.png
Binary files differ
diff --git a/src/assets/img/huazhuan2.png b/src/assets/img/huazhuan2.png
new file mode 100644
index 0000000..6237de3
--- /dev/null
+++ b/src/assets/img/huazhuan2.png
Binary files differ
diff --git a/src/assets/img/jinggao.png b/src/assets/img/jinggao.png
new file mode 100644
index 0000000..955dd8b
--- /dev/null
+++ b/src/assets/img/jinggao.png
Binary files differ
diff --git a/src/assets/img/liucheng.png b/src/assets/img/liucheng.png
new file mode 100644
index 0000000..980fae5
--- /dev/null
+++ b/src/assets/img/liucheng.png
Binary files differ
diff --git a/src/assets/img/out.png b/src/assets/img/out.png
new file mode 100644
index 0000000..c9a709d
--- /dev/null
+++ b/src/assets/img/out.png
Binary files differ
diff --git a/src/assets/img/out2.png b/src/assets/img/out2.png
new file mode 100644
index 0000000..c34f322
--- /dev/null
+++ b/src/assets/img/out2.png
Binary files differ
diff --git a/src/assets/img/qianbao.png b/src/assets/img/qianbao.png
new file mode 100644
index 0000000..78092ca
--- /dev/null
+++ b/src/assets/img/qianbao.png
Binary files differ
diff --git a/src/assets/img/qiandai.png b/src/assets/img/qiandai.png
new file mode 100644
index 0000000..b231f01
--- /dev/null
+++ b/src/assets/img/qiandai.png
Binary files differ
diff --git a/src/assets/img/shiming.png b/src/assets/img/shiming.png
new file mode 100644
index 0000000..836e260
--- /dev/null
+++ b/src/assets/img/shiming.png
Binary files differ
diff --git a/src/assets/img/tou2.png b/src/assets/img/tou2.png
new file mode 100644
index 0000000..f5bd4e5
--- /dev/null
+++ b/src/assets/img/tou2.png
Binary files differ
diff --git a/src/assets/img/xiugaimima.png b/src/assets/img/xiugaimima.png
new file mode 100644
index 0000000..dab744a
--- /dev/null
+++ b/src/assets/img/xiugaimima.png
Binary files differ
diff --git a/src/components/foot.vue b/src/components/foot.vue
index 72737a2..bf7a6dd 100644
--- a/src/components/foot.vue
+++ b/src/components/foot.vue
@@ -26,12 +26,12 @@
</div>
<div :class="$store.state.select == '/warehouse'?'blueFont':''">仓位</div>
</div>
- <div :class="touch==4?'footDemos':'footDemo'" @click="goRouter('/user',4)">
+ <div :class="touch==4?'footDemos':'footDemo'" @click="goRouter('/newUser',4)">
<div class="footImgDeft">
- <img v-show="$store.state.select == '/user'" src="~@/assets/foot/mine_selected.png" />
- <img v-show="$store.state.select != '/user'" src="~@/assets/foot/tab_main_mine_default.png" />
+ <img v-show="$store.state.select == '/newUser'" src="~@/assets/foot/mine_selected.png" />
+ <img v-show="$store.state.select != '/newUser'" src="~@/assets/foot/tab_main_mine_default.png" />
</div>
- <div :class="$store.state.select == '/user'?'blueFont':''">我的</div>
+ <div :class="$store.state.select == '/newUser'?'blueFont':''">我的</div>
</div>
</div>
</template>
diff --git a/src/main.js b/src/main.js
index d51232d..700b76e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -11,7 +11,7 @@
import state from './event'
import Vant from 'vant';
import 'vant/lib/index.css';
-import { Swipe, SwipeItem, Skeleton, Switch } from 'vant';
+import { Swipe, SwipeItem, Skeleton, Switch, Notify } from 'vant';
import './assets/css/style.css';
@@ -47,7 +47,7 @@
Vue.use(Vant);
Vue.use(Mint)
Vue.use(Tab);
-Vue.use(Tabs, Popup, DatetimePicker, Switch);
+Vue.use(Tabs, Popup, DatetimePicker, Switch, Notify);
Vue.component('icon', Icon)
Vue.config.productionTip = false
Object.keys(filters).forEach(key => {
diff --git a/src/page/authentication/index.vue b/src/page/authentication/index.vue
new file mode 100644
index 0000000..cc92791
--- /dev/null
+++ b/src/page/authentication/index.vue
@@ -0,0 +1,477 @@
+<template>
+ <div class="wrapper">
+ <div class="header">
+ <div class="left_back" @click="handleGoToBack()">
+ <img src="../../assets/img/zuojiantou.png" alt="">
+ </div>
+ <div class="header_titles">
+ <span>{{ '实名认证' }}</span>
+ </div>
+ </div>
+ <div class="boxs"></div>
+ <div class="box transaction">
+ <div class="box-contain clearfix">
+ <div class="empty text-center">
+ <!-- 您已通过实名认证 -->
+ <i v-if="this.$store.state.userInfo.isActive == 1" style="color:red;font-size: 1.5rem;"
+ class="iconfont icon-shenhezhong"></i>
+ <i v-if="!showBtn && this.$store.state.userInfo.isActive != 1" style="color:red;font-size: 1.5rem;"
+ class="iconfont icon-tongguo1"></i>
+ <i v-if="showBtn" style="color:red;font-size: 1.5rem;" class="iconfont icon-icon-test"></i>
+ </div>
+ </div>
+ </div>
+ <div class="form-block">
+ <div class="auth-msg" v-if="this.$store.state.userInfo.isActive == 3">
+ <p>认证失败,请重新认证</p>
+ <div>
+ 失败原因:{{this.$store.state.userInfo.authMsg}}
+ </div>
+ </div>
+ <!-- <mt-field label="手机号" placeholder="请输入您的手机号" v-model="form.phone"></mt-field> -->
+ <mt-field label="真实姓名" placeholder="请输入您的真实姓名" type="text" v-model="form.name"></mt-field>
+ <mt-field label="身份证号" placeholder="请输入您的身份证号" type="text" v-model="form.idCard"></mt-field>
+ </div>
+ <div class="upload-box clearfix">
+ <!-- <form action=""> -->
+ <div class="upload-btn">
+ <el-upload
+ :with-credentials='true'
+ class="avatar-uploader"
+ :action="admin+'/user/upload.do'"
+ list-type="picture-card"
+ name="upload_file"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess"
+ :on-error='handleError'
+ :before-upload="beforeAvatarUpload">
+ <img v-if="form.img1key" :src="form.img1key" class="id-img avatar">
+ <i v-else class="iconfont icon-zhaopian"></i>
+ <span v-if="!form.img1key && !imgStatus" class="btn-title">身份证正面</span>
+ <span v-if="imgStatus" class="btn-title">正在上传中...</span>
+ </el-upload>
+ <!-- <i class="iconfont icon-tupian"></i> -->
+ <!-- <span class="btn-title">身份证正面</span> -->
+ <!-- <input class="btn-hidden" type="file" accept="image/jpeg, image/png, image/jpg" @change="handleFile"/> -->
+ <!-- <img class="id-img" :src="this.form.img2Key" alt=""> -->
+ </div>
+ <div class="upload-btn">
+ <el-upload
+ :with-credentials='true'
+ class="avatar-uploader"
+ :action="admin+'/user/upload.do'"
+ list-type="picture-card"
+ name="upload_file"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess2"
+ :on-error='handleError2'
+ :before-upload="beforeAvatarUpload2">
+ <img v-if="form.img2key" :src="form.img2key" class="id-img avatar">
+ <i v-else class="iconfont icon-zhaopian"></i>
+ <span v-if="!form.img2key && !imgStatus2" class="btn-title">身份证背面</span>
+ <span v-if="imgStatus2" class="btn-title">正在上传中...</span>
+ </el-upload>
+ <!--
+ :auto-upload="false"
+ 身份证背面 -->
+ </div>
+ <!-- <div class="upload-btn">
+ <el-upload
+ :with-credentials='true'
+ class="avatar-uploader"
+ :action="admin+'/user/upload.do'"
+ list-type="picture-card"
+ name="upload_file"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess3"
+ :before-upload="beforeAvatarUpload3">
+ <img v-if="form.img3key" :src="form.img3key" class="id-img avatar">
+ <i v-else class="iconfont icon-zhaopian"></i>
+ <span v-if="!form.img3key" class="btn-title">手持身份证</span>
+ </el-upload>
+ </div> -->
+ </div>
+ <div class="rule-box">
+ <div class="title">认证规则:</div>
+ <ul>
+ <li>1、新用户注册后必须通过实名认证审核。</li>
+ <li>2、姓名和身份证号码一经认证不予修改,修改请联系客服。</li>
+ <li>3、真实姓名必须和出金银行卡户名一致。</li>
+ </ul>
+ </div>
+ <div v-if="showBtn" class="btnbox">
+ <span class="" @click="toSure">确定</span>
+ </div>
+
+ </div>
+</template>
+
+<script>
+import * as api from '@/axios/api'
+import { Toast } from 'mint-ui'
+import { isNull, idCardReg, isName } from '@/utils/utils'
+import { compress } from '@/utils/imgupload'
+
+export default {
+ components: {},
+ props: {},
+ data () {
+ return {
+ form: {
+ phone: '',
+ name: '',
+ idCard: '',
+ img1key: '',
+ img2key: '',
+ img3key: ''
+ },
+ img1Key: '',
+ img2Key: '',
+ img3Key: '',
+ showBtn: true,
+ admin: '',
+ imgStatus: false,
+ imgStatus2: false
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {
+ if (this.$store.state.userInfo.isActive === 1 || this.$store.state.userInfo.isActive === 2) {
+ this.form.idCard = this.$store.state.userInfo.idCard
+ this.form.name = this.$store.state.userInfo.realName
+ this.form.img1key = this.$store.state.userInfo.img1Key
+ this.form.img2key = this.$store.state.userInfo.img2Key
+ // this.form.img3key = this.$store.state.userInfo.img3Key
+ this.showBtn = false
+ }
+ },
+ beforeDestroy () {
+ if (this.$state.theme =='red') {
+ document.body.classList.remove('red-bg')
+ document.body.classList.add('black-bg')
+ }
+ },
+ mounted () {
+ if (this.$state.theme =='red') {
+ document.body.classList.remove('black-bg')
+ document.body.classList.add('red-bg')
+ }
+ this.admin = process.env.API_HOST
+ if (this.admin === undefined) {
+ this.admin = ''
+ }
+ },
+ methods: {
+ handleAvatarSuccess (res, file) {
+ this.imgStatus = false
+ this.form.img1key = res.data.url
+ },
+ handleGoToBack() {
+ this.$router.go(-1);
+ },
+ beforeAvatarUpload (file) {
+ this.imgStatus = true
+ // const isJPG = file.type === 'image/jpg' || file.type === 'image/jpeg' || file.type === 'image/png';
+ // const isLt2M = file.size / 1024 / 1024 < 20;
+ // if (!isJPG) {
+ // Toast('请选择jpg或者png的图片格式!');
+ // }
+ // // if (!isLt2M) {
+ // // Toast('上传头像图片大小不能超过 2MB!');
+ // // }
+ // return isJPG && isLt2M;
+ },
+ handleError () {
+ this.imgStatus = false
+ },
+ handleAvatarSuccess2 (res, file) {
+ this.imgStatus2 = false
+ this.form.img2key = res.data.url // URL.createObjectURL(file.raw);
+ },
+ // 自动义图片上传 uploadFileFun2
+ // async uploadFileFun2 (params) {
+ // console.log('uploadFile', params)
+ // const _that = this
+ // const isLt10M = file.size / 1024 / 1024 < 10
+ // if (!isLt10M) {
+ // this.$message.error('上传图片大小不能超过 10M!')
+ // return false
+ // } else {
+ // this.form.img2key = URL.createObjectURL(file.raw)
+ // compress(file.raw, function (val) {
+ // _that.form.img2key = val
+ // })
+ // }
+ // // 通过 FormData 对象上传文件
+ // const _file = params.file
+ // var formData = new FormData()
+ // formData.append('upload_file', _file)
+ // let data = await api.uploadimg(formData)
+ // if (data.status === 0) {
+ // this.form.img2key = data.data
+ // } else {
+ // Toast(data.msg)
+ // }
+ // },
+ beforeAvatarUpload2 (file) {
+ this.imgStatus2 = true
+ // const _that = this
+ const isLt10M = file.size / 1024 / 1024 < 10
+ if (!isLt10M) {
+ this.$message.error('上传图片大小不能超过 10M!')
+ return false
+ } else {
+ this.form.img2key = URL.createObjectURL(file)
+ compress(file, function (val) {
+ // _that.theForm.picUrl = val
+ // _that.imgFile = val
+ // _that.showDelete = true
+ // _that.$refs['addBuildingForm'].validateField('picUrl')
+ })
+ }
+ // const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
+ // const isLt2M = file.size / 1024 / 1024 < 20;
+
+ // return isJPG && isLt2M;
+ },
+ handleError2 () {
+ this.imgStatus2 = false
+ },
+ handleAvatarSuccess3 (res, file) {
+ this.form.img3key = res.data.url // URL.createObjectURL(file.raw);
+ },
+ beforeAvatarUpload3 (file) {
+ // const isJPG = file.type === 'image/jpeg' || file.type === 'image/jpeg' || file.type === 'image/png';
+ // const isLt2M = file.size / 1024 / 1024 < 20;
+ // if (!isJPG) {
+ // Toast('请选择jpg或者png的图片格式!');
+ // }
+ // return isJPG && isLt2M;
+ },
+ // 上传
+ handleFile: function (e) {
+ // var that = this
+ let $target = e.target || e.srcElement
+ let file = $target.files[0]
+ // if(file.size > 1024 * 1024 *20){
+ console.log(file, 'file')
+ let i = false
+ if (i) {
+ Toast('您上传的照片过大,请选择20M以下的图片')
+ } else {
+ // Indicator.open('Loading...')
+ this.img1Key = file
+ // this.$refs.formDate.submit()
+ // this.uploadIdImg({upload_file:file})
+ var reader = new FileReader()
+ reader.onload = (data) => {
+ let res = data.target || data.srcElement
+ this.form.img1Key = res.result
+ // Indicator.close()
+ }
+ // reader.onloadend = () => {
+ // Indicator.close()
+ // }
+ reader.readAsDataURL(file)
+ }
+ },
+ // async uploadIdImg(){
+ // let imgformData = new FormData()
+
+ // imgformData.append('upload_file', this.img1Key)
+ // let data = await api.uploadFile({upload_file:this.img1Key})
+ // if(data.status == 0){
+ // Toast('认证成功!')
+ // }else{
+ // Toast(data.msg)
+ // }
+ // },
+ toSure () {
+ // 实名认证弹框
+ if (isNull(this.form.name) || !isName(this.form.name)) {
+ Toast('请输入您的真实姓���')
+ } else if (isNull(this.form.idCard) || !idCardReg(this.form.idCard)) {
+ Toast('请输入您的正确的身份证号码')
+ } else if (isNull(this.form.img1key) || isNull(this.form.img2key)) {
+ Toast('请上传您的身份证照片')
+ } else {
+ // 显示确认弹窗
+ this.toAuthentication()
+ }
+ },
+ async toAuthentication () {
+ let opts = {
+ realName: this.form.name,
+ idCard: this.form.idCard,
+ img1key: this.form.img1key,
+ img2key: this.form.img2key,
+ img3key: this.form.img3key
+ }
+ let data = await api.userAuth(opts)
+ if (data.status === 0) {
+ Toast('提交成功!')
+ this.goBack()
+ } else {
+ Toast(data.msg)
+ }
+ },
+ goBack () {
+ this.$router.back(-1)
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+ .transaction {
+ color: rgba(100, 100, 100, 0.78);
+
+ .empty {
+ width: 100%;
+ // height: 1.34rem;
+ font-size: 0.43rem;
+ color: #888888;
+ text-align: center;
+ line-height: 2rem;
+ // background: url('../../assets/img/thingsOk.png') no-repeat center center;
+ background-size: 70%;
+ }
+ }
+
+ .rule-box {
+ padding: 0.2rem 0.3rem;
+
+ .title {
+ font-size: 0.3rem;
+ height: 0.5rem;
+ line-height: 0.5rem;
+ margin-bottom: 0.2rem;
+ }
+
+ ul {
+ li {
+ color: #999;
+ line-height: 0.5rem;
+ }
+ }
+ }
+
+ .upload-box {
+ padding: 0.5rem;
+
+ .upload-btn {
+ // border: 1px solid #ddd;
+ border-radius: 4px;
+ width: 40%;
+ height: 1.6rem;
+ margin-bottom: 10px;
+ float: left;
+ margin: 0.2rem 5%;
+ text-align: center;
+ position: relative;
+
+ .btn-hidden {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 3;
+ opacity: 0;
+ }
+
+ .id-img {
+ max-width: 100%;
+ max-height: 100%;
+ }
+
+ /deep/ .el-upload--picture-card {
+ background: none;
+ width: 100%;
+ height: 1.6rem;
+ line-height: 1.6rem;
+ }
+
+ .btn-title {
+ position: absolute;
+ top: 23px;
+ left: 0;
+ width: 100%;
+ }
+
+ /deep/ .el-upload__input {
+ display: none;
+ }
+
+ }
+
+ }
+
+ .auth-msg {
+ padding: 0.2rem 0.6rem;
+ line-height: 0.4rem;
+
+ p {
+ color: red;
+ }
+
+ div {
+ color: #ddd;
+ }
+ }
+ .header {
+ width: 100%;
+ height: 1.5rem;
+ background: #fff;
+ position: fixed;
+ z-index: 999;
+ border-radius: 0 0 .15rem .15rem;
+ .left_back {
+ width: 1rem;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img {
+ width: .6rem;
+ height: .6rem;
+ }
+ }
+ .header_titles {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ font-size: .4615rem;
+ line-height: 1.5rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .boxs {
+ width: 100%;
+ height: 1.7rem;
+ }
+ .btnbox {
+ width: 100%;
+ height: 1rem;
+ padding: 0 .3rem;
+ font-size: .4615rem;
+ color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ span {
+ display: inline-block;
+ width: 100%;
+ height: 1rem;
+ line-height: 1rem;
+ background: #2d6ae9;
+ text-align: center;
+ font-weight: 600;
+ border-radius: .12rem;
+ }
+ }
+</style>
diff --git a/src/page/bankCard/index.vue b/src/page/bankCard/index.vue
new file mode 100644
index 0000000..cee31e1
--- /dev/null
+++ b/src/page/bankCard/index.vue
@@ -0,0 +1,179 @@
+<template>
+ <div class="bank_card_page">
+ <div class="content">
+ <div class="top_back">
+ <div class="left_back_icon" @click="$router.go(-1)">
+ <img src="../../assets/img/zuojiantou.png" alt />
+ </div>
+ </div>
+ <div class="titles">
+ <span>{{ addBank ? '绑定银行卡' : '银行卡信息' }}</span>
+ </div>
+ <div class="bank_name">
+ <div class="lefts">
+ <span>{{ '银行名称:' }}</span>
+ </div>
+ <div class="rights">
+ <input type="text" v-model="bankName" :disabled="!addBank" />
+ </div>
+ </div>
+ <div class="bank_name">
+ <div class="lefts">
+ <span>{{ '开户支行:' }}</span>
+ </div>
+ <div class="rights">
+ <input type="text" v-model="bankAddress" :disabled="!addBank" />
+ </div>
+ </div>
+ <div class="bank_name">
+ <div class="lefts">
+ <span>{{ '银行卡号:' }}</span>
+ </div>
+ <div class="rights">
+ <input type="text" v-model="bankNo" :disabled="!addBank" />
+ </div>
+ </div>
+ <div class="bank_name bind" @click="toSure" v-if="addBank">
+ <span>{{ '确认绑定' }}</span>
+ </div>
+ <div class="bank_hck"></div>
+ <div class="bank_code"></div>
+ </div>
+ </div>
+</template>
+
+<script>
+import * as api from "@/axios/api";
+import { Toast } from "mint-ui";
+import { isNull, bankNoReg, isName } from '@/utils/utils'
+
+export default {
+ name: "bankCard",
+ data() {
+ return {
+ bankName: "", //银行名称,
+ bankAddress: "", //需要精确到分行或者支行,
+ bankNo: "", // 印象卡号
+ addBank: false
+ };
+ },
+ created() {
+ this.getCardDetail();
+ },
+ methods: {
+ async toSure() {
+ // 添加银行卡
+ if (isNull(this.bankNo) || !bankNoReg(this.bankNo)) {
+ Toast("请输入银行卡号");
+ } else if (isNull(this.bankName) || !isName(this.bankName)) {
+ Toast("请输入银行名称");
+ } else if (isNull(this.bankAddress) || !isName(this.bankAddress)) {
+ Toast("请输入开户支行");
+ } else {
+ let opts = {
+ bankName: this.bankName,
+ bankNo: this.bankNo,
+ bankAddress: this.bankAddress
+ };
+ let data = await api.addBankCard(opts);
+ if (data.status === 0) {
+ Toast("添加成功!");
+ this.$router.push("/newUser");
+ } else {
+ Toast(data.msg);
+ }
+ }
+ },
+ async getCardDetail () {
+ // 获取银行卡信息
+ let data = await api.getBankCard()
+ if (data.status === 0) {
+ const {bankAddress, bankName, bankNo} = data.data;
+ this.bankAddress = bankAddress;
+ this.bankName = bankName;
+ this.bankNo = bankNo;
+ this.addBank = false;
+ } else {
+ this.addBank = true;
+ }
+ },
+ }
+};
+</script>
+
+<style scoped lang="less">
+.bank_card_page {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ .content {
+ width: 100%;
+ height: 100%;
+ padding: 0 0.6rem;
+ .top_back {
+ width: 100%;
+ height: 2rem;
+ > div {
+ width: 10%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ }
+ img {
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+ .titles {
+ width: 100%;
+ height: 1.5rem;
+ font-size: 0.641rem;
+ margin-top: 1rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .bank_name {
+ width: 100%;
+ height: 1.5rem;
+ display: flex;
+ padding: 0 0.2rem;
+ background: rgb(247, 247, 247);
+ border-radius: 0.2rem;
+ margin-top: 0.3rem;
+ .lefts {
+ width: 25%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ font-size: 0.3846rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ .rights {
+ width: 75%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ input {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+}
+.bank_name.bind {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #2d6ae9;
+ font-size: 0.4103rem;
+ color: #fff;
+ span {
+ font-weight: 600;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/page/cashWithdrawalRecord/compontents/cash-list.vue b/src/page/cashWithdrawalRecord/compontents/cash-list.vue
new file mode 100644
index 0000000..af55f09
--- /dev/null
+++ b/src/page/cashWithdrawalRecord/compontents/cash-list.vue
@@ -0,0 +1,190 @@
+<template>
+ <div class="wrapper">
+ <div v-if="list.length<=0" class="empty text-center">
+ 暂无提现信息!
+ </div>
+ <div v-else>
+ <ul
+ class="table-list"
+ v-infinite-scroll="loadMore"
+ infinite-scroll-disabled="loading"
+ infinite-scroll-distance="10">
+ <li class="list-body" v-for="(item) in list" :key="item.key">
+ <div class="order-info-box" style="border-radius: .15rem">
+ <div class="order-title">
+ <span class="main">
+ 提现至银行卡
+ </span>
+ <span class="payNumber">¥{{item.withAmt}}</span>
+ <span class="red pull-right">
+ {{item.withStatus == 1?'提现成功':item.withStatus == 2?'提现失败':item.withStatus == 3?'订单取消':'审核中'}}
+ <i v-if="item.withStatus == 1" class="iconfont icon-tongguo4 animated bounceIn"></i>
+ <i v-if="item.withStatus==0" class="iconfont icon-dengdai animated bounceInDown"></i>
+ <i v-if="item.withStatus == 2" class="iconfont icon-failure animated bounceInDown"></i>
+ <i v-if="item.withStatus == 3"
+ class="iconfont icon-iconfontweitongguo animated bounceInDown"></i>
+ </span>
+ <!-- <span class="secondary ">123456789</span> -->
+ </div>
+ <div class="order-info">
+ <p class="clearfix">
+ <span class="col-xs-6">手续费:<b class="space">¥{{item.withFee}}</b></span>
+ <!-- <span class="col-xs-6">实际到账金额:<b class="space" style="font-size:0.26rem">{{item.withAmt - item.withFee}}</b>元</span> -->
+ </p>
+ <p class="clearfix">
+ <span class="col-xs-12">银行卡:<b class="space">{{item.bankName}}-{{item.bankAddress}}</b></span>
+ </p>
+ <p class="clearfix">
+ <span class="col-xs-12">卡号:<b class="space">{{item.bankNo}}</b></span>
+ </p>
+ <p v-if="item.withStatus == 3" class="clearfix">
+ <span class="col-xs-12">取消原因:<b class="space">{{item.withMsg}}</b></span>
+ </p>
+ <p v-if="item.withStatus == 2" class="clearfix">
+ <span class="col-xs-12">失败原因:<b class="space">{{item.withMsg}}</b></span>
+ </p>
+ <p class="clearfix">
+ <span class="secondary col-xs-6">时间:
+ <b v-if="item.applyTime">{{new Date(item.applyTime) | timeFormat}}</b>
+ <b v-else></b>
+ </span>
+ </p>
+ </div>
+ <div v-if="item.withStatus == 0" class="order-foot clearfix">
+ <div @click="cancle(item.id)" class="foot-btn">
+ <i class='font-icon'></i>
+ 取消提现
+ </div>
+ </div>
+
+ </div>
+ <!-- <div class="capital">
+ <div class="pro">
+ 股票:300092/开山股份 <span class="pull-right">金额:50.241</span>
+ </div>
+ <div class=" clearfix">
+ <div class="col-xs-8">01-21 13:22</div>
+ <div class="col-xs-4 ">
+ <span class="pull-right">交易状态</span>
+ </div>
+ </div>
+ </div> -->
+ </li>
+ </ul>
+ <div v-show="loading" class="load-all text-center">
+ <mt-spinner type="fading-circle"></mt-spinner>
+ 加载中...
+ </div>
+ <div v-show="!loading" class="load-all text-center">
+ 已全部加载
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { Toast } from 'mint-ui'
+import * as api from '@/axios/api'
+
+export default {
+ components: {},
+ props: {},
+ data () {
+ return {
+ loading: false,
+ list: [],
+ pageNum: 1,
+ pageSize: 15
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {},
+ mounted () {
+ this.getListDetail()
+ },
+ methods: {
+ async getListDetail () {
+ let opt = {
+ withStatus: '', // 提现状态 0已提交,1转账成功,2转账失败
+ pageNum: this.pageNum,
+ pageSize: 15
+ }
+ let data = await api.withdrawList(opt)
+ if (data.status === 0) {
+ data.data.list.forEach(element => {
+ this.list.push(element)
+ })
+ } else {
+ Toast(data.msg)
+ }
+ },
+ async loadMore () {
+ if (this.list.length < 10) {
+ return
+ }
+ this.loading = true
+ // 加载下一页
+ this.pageNum++
+ await this.getListDetail()
+ this.loading = false
+ },
+ async cancle (val) {
+ // 取消提现
+ // MessageBox.confirm('您确定要平仓吗?').then(async action => {
+ let opt = {
+ withId: val
+ }
+ let data = await api.canceloutMoney(opt)
+ if (data.status === 0) {
+ this.list = []
+ Toast(data.msg)
+ this.getListDetail()
+ } else {
+ Toast(data.msg)
+ }
+ // });
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+ .wrapper {
+ // padding-top: 0.9rem;
+ }
+
+ .payNumber {
+ font-size: 0.3rem;
+ color: #ff8000;
+ }
+
+ .table-list {
+ padding: 0.2rem 0;
+
+ .list-body {
+ padding: 0.1rem 0.2rem;
+ .capital:nth-child(1) {
+ border-top: 0.01rem solid #3f444a;
+ }
+
+ .capital {
+ padding: 0.2rem;
+ // border-radius: 0.2rem;
+ border-bottom: 0.01rem solid #3f444a;
+
+ div {
+ line-height: 0.4rem;
+ }
+
+ .col-xs-4 {
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .pro {
+ color: #999;
+ }
+ }
+ }
+ }
+</style>
diff --git a/src/page/cashWithdrawalRecord/index.vue b/src/page/cashWithdrawalRecord/index.vue
new file mode 100644
index 0000000..b4d285b
--- /dev/null
+++ b/src/page/cashWithdrawalRecord/index.vue
@@ -0,0 +1,126 @@
+<template>
+ <div class="wrapper">
+ <!-- <div class="header">
+ <mt-header title="提现记录">
+ <router-link to="/user" slot="left">
+ <mt-button icon="back">我的</mt-button>
+ </router-link>
+ </mt-header>
+ </div> -->
+ <div class="text-center">
+ <div class="btn-group">
+ <a href="#/cash" class="with-draw-btn">提现</a>
+ <a href="javascript:;" class="with-draw-detai-btn on">记录</a>
+ </div>
+ </div>
+ <div>
+ <div class="box page-part transaction">
+ <div class="box-contain clearfix">
+ <cashList></cashList>
+ </div>
+ </div>
+ </div>
+
+ </div>
+</template>
+
+<script>
+import cashList from './compontents/cash-list'
+
+export default {
+ components: {
+ cashList
+ },
+ props: {},
+ data () {
+ return {
+ number: ''
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {},
+ mounted () {
+ if (this.$state.theme =='red') {
+ document.body.classList.remove('black-bg')
+ document.body.classList.add('red-bg')
+ }
+ },
+ beforeDestroy () {
+ if (this.$state.theme =='red') {
+ document.body.classList.remove('red-bg')
+ document.body.classList.add('black-bg')
+ }
+ },
+ methods: {
+ toSure () {
+ // 确定
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+ .text-center {
+ width: 100%;
+ height: 1.7rem;
+ display: flex;
+ align-items: center;
+ }
+ .mint-header {
+ // background: #f4f4f4;
+ margin-bottom: 0.2rem;
+ }
+
+ .btn-group {
+ // background: #f4f4f4;
+ text-align: center;
+ margin: 0 auto;
+ a {
+ display: inline-block;
+ text-align: center;
+ font-size: 0.29rem;
+ height: 0.7rem;
+ line-height: 0.6rem;
+ width: 1.44rem;
+ margin: 0;
+ margin-top: 0;
+ padding: 0;
+ }
+
+ .with-draw-btn {
+ position: relative;
+ right: -10px;
+ width: 1.51rem;
+ border-top-left-radius: 0.695rem;
+ border-bottom-left-radius: 0.695rem;
+ }
+
+ .with-draw-detai-btn {
+ border-top-right-radius: 0.695rem;
+ border-bottom-right-radius: 0.695rem;
+ }
+
+ .on {
+ color: #fff;
+ }
+ }
+
+ .transaction {
+ margin-top: 0.2rem;
+ color: rgba(100, 100, 100, 0.78);
+
+ .transaction-title {
+ padding: 0.15rem 0.3rem;
+ }
+
+ .empty {
+ height: 2.8rem;
+ line-height: 2.8rem;
+ }
+ }
+ .wrapper {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ }
+</style>
diff --git a/src/page/login/components/header.vue b/src/page/login/components/header.vue
index 2b3ea80..e5e1b6e 100644
--- a/src/page/login/components/header.vue
+++ b/src/page/login/components/header.vue
@@ -12,6 +12,7 @@
<script>
import Service from "@/assets/home/icon_talk.png";
+import * as api from "@/axios/api";
export default {
name: 'headers',
props: ['mess'],
@@ -27,7 +28,6 @@
window.location.href = this.onlineService;
},
async getInfoSite() {
-
let data = await api.getInfoSite()
if (data.status === 0) {
this.onlineService = data.data.onlineService
diff --git a/src/page/newUser/index.vue b/src/page/newUser/index.vue
index 9954b2e..f070035 100644
--- a/src/page/newUser/index.vue
+++ b/src/page/newUser/index.vue
@@ -3,8 +3,8 @@
<div class="content">
<div class="top_icon">
<div class="right_icon">
- <div>
- <img src="../../assets/img/dun.png" alt />
+ <div @click="goToTopUp()">
+ <img src="../../assets/img/qiandai.png" alt />
</div>
<div>
<img src="../../assets/img/kefu.png" alt />
@@ -14,10 +14,12 @@
<div class="users">
<div class="left_tou">
<div class="left_tx">
- <div></div>
+ <div>
+ <img src="../../assets/img/eslogo.png" alt />
+ </div>
</div>
<div class="right_name">
- <span>{{ name }}</span>
+ <span>{{ userInfo.realName ? userInfo.realName : userInfo.phone }}</span>
</div>
</div>
<div class="right_go">
@@ -60,7 +62,7 @@
</div>
<div class="yk as">
<div>
- <span v-if="selectUserFlag">
+ <span v-if="!selectUserFlag">
<span
:class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''"
>{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose }}</span>
@@ -72,16 +74,11 @@
</span>
</div>
<div>
- <span class="bzz" v-if="selectUserFlag">
- {{ '¥ ' + $store.state.userInfo.userIndexAmt }}
- </span>
- <span class="bzz" v-else>
- {{ '¥ ' + $store.state.userInfo.userAmt }}
- </span>
+ <span class="bzz" v-if="!selectUserFlag">{{ '¥ ' + $store.state.userInfo.userIndexAmt }}</span>
</div>
</div>
<div class="btns" @click="handleZh()" :class="selectUserFlag ? '' : 'active'">
- <span>{{ selectUserFlag ? '切换沪深账户' : '切换指数账户' }}</span>
+ <span>{{ selectUserFlag ? '切换指数账户' : '切换沪深账户' }}</span>
</div>
</div>
<div class="jy">
@@ -97,32 +94,212 @@
<img src="../../assets/img/youjiantou.png" alt />
</div>
</div>
+ <div class="jy" @click="goToSettings()">
+ <div class="left_gn">
+ <div class="l_icon">
+ <img src="../../assets/img/xiugaimima.png" alt />
+ </div>
+ <div class="r_title">
+ <span>{{ '修改密码' }}</span>
+ </div>
+ </div>
+ <div class="right_gos">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ <div class="jy" @click="handleGoToTransfer()">
+ <div class="left_gn">
+ <div class="l_icon">
+ <img src="../../assets/img/huazhuan2.png" alt />
+ </div>
+ <div class="r_title">
+ <span>{{ '资金划转' }}</span>
+ </div>
+ </div>
+ <div class="right_gos">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ <div class="jy" @click="handleGoToAuthentication()">
+ <div class="left_gn">
+ <div class="l_icon">
+ <img src="../../assets/img/shiming.png" alt />
+ </div>
+ <div class="r_title">
+ <span>{{ '实名认证' }}</span>
+ </div>
+ </div>
+ <div class="right_gos">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ <div class="jy" @click="handleGoToBankCard()">
+ <div class="left_gn">
+ <div class="l_icon">
+ <img src="../../assets/img/shiming.png" alt />
+ </div>
+ <div class="r_title">
+ <span>{{ '绑定银行卡' }}</span>
+ </div>
+ </div>
+ <div class="right_gos">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ <div class="jy" @click="handleOutLoginClick()">
+ <div class="left_gn">
+ <div class="l_icon">
+ <img src="../../assets/img/out2.png" alt />
+ </div>
+ <div class="r_title">
+ <span>{{ '退出登录' }}</span>
+ </div>
+ </div>
+ <div class="right_gos">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
</div>
+ <van-popup v-model="settingDialog" position="bottom" :style="{ height: '35%' }">
+ <div class="setting_content">
+ <div class="old_password">
+ <div class="left_titles">
+ <span>{{ '旧密码:' }}</span>
+ </div>
+ <div class="right_password_input">
+ <input type="password" v-model="oldPassword" />
+ </div>
+ </div>
+ <div class="old_password">
+ <div class="left_titles">
+ <span>{{ '新密码:' }}</span>
+ </div>
+ <div class="right_password_input">
+ <input type="password" v-model="newPassword" />
+ </div>
+ </div>
+ <div class="old_password">
+ <div class="left_titles">
+ <span>{{ '确认新密码:' }}</span>
+ </div>
+ <div class="right_password_input">
+ <input type="password" v-model="cirNewPassword" />
+ </div>
+ </div>
+ <div class="btn_setting" @click="changeLoginPsd()">
+ <span>{{ '确认修改' }}</span>
+ </div>
+ </div>
+ </van-popup>
</div>
</template>
<script>
import * as api from "@/axios/api";
+import { Toast } from "mint-ui";
+import { isNull, pwdReg } from "@/utils/utils";
export default {
name: "newUser",
data() {
return {
name: "大狗子",
- selectUserFlag: true
+ selectUserFlag: true,
+ settingDialog: false,
+ oldPassword: "", // 旧密码
+ newPassword: "", // 新密码
+ cirNewPassword: "", //确认新密码
+ userInfo: {}
};
},
created() {
- this.userInfo();
+ this.getUserInfo();
},
methods: {
handleZh() {
this.selectUserFlag = !this.selectUserFlag;
},
- userInfo() {
- api.getUserInfo().then(res => {
- console.log(res);
- });
+ async getUserInfo() {
+ // 获取用户信息
+ let data = await api.getUserInfo();
+ if (data.status === 0) {
+ // 判断是否登录
+ this.$store.state.userInfo = data.data;
+ this.userInfo = data.data;
+ } else {
+ }
+ },
+ goToTopUp() {
+ this.$router.push("/wallet");
+ },
+ handleOutLoginClick() {
+ // 退出登录
+ this.toRegister();
+ },
+ goToSettings() {
+ // 每次打开dialog 清空密码数据
+ this.settingDialog = !this.settingDialog;
+ if (this.settingDialog) {
+ this.oldPassword = "";
+ this.newPassword = "";
+ this.cirNewPassword = "";
+ }
+ },
+ handleGoToTransfer() {
+ this.$router.push("/transfers");
+ },
+ handleGoToAuthentication() {
+ this.$router.push("/authentications");
+ },
+ handleGoToBankCard() {
+ this.$router.push("/bankCard");
+ },
+ async toRegister() {
+ // 注销登陆
+ window.localStorage.clear("USERTOKEN"); // 清空本地存储 USERTOKEN字段
+ this.clearCookie();
+ let data = await api.logout();
+ if (data.status === 0) {
+ // Toast(data.msg)
+ this.$router.push("/login");
+ } else {
+ Toast(data.msg);
+ }
+ this.$router.push("/login");
+ },
+ async changeLoginPsd() {
+ // 修改密码
+ if (
+ isNull(this.oldPassword) ||
+ isNull(this.newPassword) ||
+ isNull(this.cirNewPassword)
+ ) {
+ Toast("请输入新旧密码");
+ this.settingDialog = false;
+ } else if (!pwdReg(this.newPassword)) {
+ Toast("密码为6~12位,数字、字母或符号");
+ this.settingDialog = false;
+ } else {
+ // 修改密码
+ if (this.newPassword === this.cirNewPassword) {
+ let opts = {
+ oldPwd: this.oldPassword,
+ newPwd: this.newPassword
+ };
+ let data = await api.changePassword(opts);
+ if (data.status === 0) {
+ this.changeLoginPsdBox = false;
+ Toast(data.msg);
+ this.settingDialog = false;
+ } else {
+ Toast(data.msg);
+ this.settingDialog = false;
+ }
+ } else {
+ Toast("新密码不一致");
+ this.settingDialog = false;
+ }
+ }
}
}
};
@@ -184,6 +361,10 @@
border-radius: 50%;
overflow: hidden;
background: rgb(211, 211, 211);
+ img {
+ width: 100%;
+ height: 100%;
+ }
}
}
.right_name {
@@ -337,4 +518,54 @@
}
}
}
+.setting_content {
+ width: 100%;
+ height: 5rem;
+ padding: 0.3rem;
+ .old_password {
+ width: 100%;
+ height: 1rem;
+ background: rgb(243, 243, 243);
+ border-radius: 0.15rem;
+ display: flex;
+ margin-top: 0.5rem;
+ .left_titles {
+ width: 25%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ padding-left: 0.2rem;
+ // justify-content: flex-end;
+ span {
+ font-weight: 600;
+ }
+ }
+ .right_password_input {
+ width: 80%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ input {
+ width: 100%;
+ height: 100%;
+ padding-left: 0.2rem;
+ }
+ }
+ }
+ .btn_setting {
+ width: 100%;
+ height: 1.3rem;
+ border-radius: 0.15rem;
+ background: #2d6ae9;
+ color: #fff;
+ font-size: 0.4615rem;
+ margin-top: 0.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ span {
+ font-weight: 600;
+ }
+ }
+}
</style>
\ No newline at end of file
diff --git a/src/page/transfer/index.vue b/src/page/transfer/index.vue
new file mode 100644
index 0000000..c1df55f
--- /dev/null
+++ b/src/page/transfer/index.vue
@@ -0,0 +1,226 @@
+<template>
+ <div class="wrapper">
+ <div class="header">
+ <div class="left_back" @click="handleBackClick()">
+ <img src="../../assets/img/zuojiantou.png" alt="">
+ </div>
+ <div class="header_titles">
+ <span>{{ '资金划转' }}</span>
+ </div>
+ </div>
+ <div class="bars"></div>
+ <mt-navbar v-model="selected">
+ <mt-tab-item v-if="this.$store.state.settingForm.indexDisplay" id="1">融资转指数</mt-tab-item>
+ <mt-tab-item v-if="this.$store.state.settingForm.indexDisplay" id="2">指数转融资</mt-tab-item>
+ <mt-tab-item v-if="this.$store.state.settingForm.futuresDisplay" id="3">融资转期货</mt-tab-item>
+ <mt-tab-item v-if="this.$store.state.settingForm.futuresDisplay" id="4">期货转融资</mt-tab-item>
+ </mt-navbar>
+ <mt-tab-container class="order-list" v-model="selected">
+ <mt-tab-container-item id="1">
+ <div class="form-block">
+ <mt-field label="可转金额" placeholder="可转金额" type="text" disabled
+ v-model="this.$store.state.userInfo.enableAmt"></mt-field>
+ </div>
+ <div class="form-block">
+ <mt-field label="转账金额" name="amt" v-model="form.account1" placeholder="请输入转账金额" type="text">
+ <span @click="selectAll1">全部</span>
+ </mt-field>
+ </div>
+ <!-- <div class="form-block">
+ <mt-field label="资金密码" placeholder="资金密码" type="password" v-model="form.password"></mt-field>
+ </div>
+ <p class="prompt">资金密码默认为登录密码</p> -->
+ <div class="btnbox">
+ <span class="text-center btnok loginout" @click="tosubmit">确认转入指数账户</span>
+ </div>
+ </mt-tab-container-item>
+ <mt-tab-container-item id="2">
+ <div class="form-block">
+ <mt-field label="可转金额" placeholder="可转金额" type="text" disabled
+ v-model="this.$store.state.userInfo.enableIndexAmt"></mt-field>
+ </div>
+ <div class="form-block">
+ <mt-field label="转账金额" v-model="form.account2" placeholder="请输入转账金额" type="text">
+ <span @click="selectAll2">全部</span>
+ </mt-field>
+ </div>
+ <div class="btnbox">
+ <span class="text-center btnok loginout" @click="tosubmit">确认转入融资账户</span>
+ </div>
+ </mt-tab-container-item>
+ <mt-tab-container-item id="3">
+ <div class="form-block">
+ <mt-field label="可转金额" placeholder="可转金额" type="text" disabled
+ v-model="this.$store.state.userInfo.enableAmt"></mt-field>
+ </div>
+ <div class="form-block">
+ <mt-field label="转账金额" v-model="form.account3" placeholder="请输入转账金额" type="text">
+ <span @click="selectAll3">全部</span>
+ </mt-field>
+ </div>
+ <div class="btnbox">
+ <span class="text-center btnok loginout" @click="tosubmit">确认转入期货账户</span>
+ </div>
+ </mt-tab-container-item>
+ <mt-tab-container-item id="4">
+ <div class="form-block">
+ <mt-field label="可转金额" placeholder="可转金额" type="text" disabled
+ v-model="this.$store.state.userInfo.enableFuturesAmt"></mt-field>
+ </div>
+ <div class="form-block">
+ <mt-field label="转账金额" v-model="form.account4" placeholder="请输入转账金额" type="text">
+ <span @click="selectAll4">全部</span>
+ </mt-field>
+ </div>
+ <div class="btnbox">
+ <span class="text-center btnok loginout" @click="tosubmit">确认转入融资账户</span>
+ </div>
+ </mt-tab-container-item>
+ </mt-tab-container>
+ </div>
+</template>
+
+<script>
+// import '@/assets/style/common.less'
+import * as api from '@/axios/api'
+import { Toast } from 'mint-ui'
+
+export default {
+ components: {
+ },
+ data () {
+ return {
+ selected: '1', // 选中
+ form: {
+ account1: '',
+ account2: '',
+ account3: '',
+ account4: '',
+ password: ''
+ },
+ userInfo: {
+ realName: ''
+ }
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {
+ this.getProductSetting()
+ },
+ mounted () {
+ if (this.$route.query.type) {
+ this.selected = this.$route.query.type + ''
+ }
+ this.getUserInfo()
+ },
+ methods: {
+ async getProductSetting () {
+ let data = await api.getProductSetting()
+ if (data.status === 0) {
+ this.$store.state.settingForm = data.data
+ if (!this.$store.state.settingForm.indexDisplay) {
+ this.selected = '3'
+ }
+ } else {
+ this.$message.error(data.msg)
+ }
+ },
+ handleBackClick() {
+ this.$router.go(-1);
+ },
+ selectAll1 () {
+ // 选择全部
+ this.form.account1 = this.$store.state.userInfo.enableAmt
+ },
+ selectAll2 () {
+ // 选择全部
+ this.form.account2 = this.$store.state.userInfo.enableIndexAmt
+ },
+ selectAll3 () {
+ // 选择全部
+ this.form.account3 = this.$store.state.userInfo.enableAmt
+ },
+ selectAll4 () {
+ // 选择全部
+ this.form.account4 = this.$store.state.userInfo.enableFuturesAmt
+ },
+ async tosubmit () {
+ // 融资转指数
+ let opt = {
+ amt: this.selected === '1' ? this.form.account1 : this.selected === '2' ? this.form.account2 : this.selected === '3' ? this.form.account3 : this.form.account4,
+ type: this.selected // 1 融资转指数 2 指数转融资
+ }
+ let data = await api.AmtChange(opt)
+ if (data.status === 0) {
+ Toast(data.msg)
+ this.$router.push('/user')
+ } else {
+ Toast(data.msg)
+ }
+ },
+ async getUserInfo () {
+ // 获取用户信息
+ let data = await api.getUserInfo()
+ if (data.status === 0) {
+ this.$store.state.userInfo = data.data
+ } else {
+ Toast(data.msg)
+ }
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+
+ .header {
+ width: 100%;
+ height: 1.5rem;
+ background: #fff;
+ position: fixed;
+ z-index: 999;
+ border-radius: 0 0 .15rem .15rem;
+ .left_back {
+ width: 1rem;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img {
+ width: .6rem;
+ height: .6rem;
+ }
+ }
+ .header_titles {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ font-size: .4615rem;
+ line-height: 1.5rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .bars {
+ width: 100%;
+ height: 1.7rem;
+ }
+ .mint-cell.mint-field{
+ background: #fff !important;
+ color: #000 !important;
+ }
+ /deep/ .mint-cell-text {
+ color: #000 !important;
+ }
+ .text-center.btnok {
+ display: inline-block;
+ height: 1rem;
+ line-height: 1rem;
+ background: #2d6ae9;
+ border: none;
+ border-radius: .1rem;
+ }
+</style>
diff --git a/src/page/transferRecord/compontents/recharge-list.vue b/src/page/transferRecord/compontents/recharge-list.vue
new file mode 100644
index 0000000..3fad9f6
--- /dev/null
+++ b/src/page/transferRecord/compontents/recharge-list.vue
@@ -0,0 +1,242 @@
+<template>
+ <div>
+ <div v-if="list.length<=0" class="empty text-center">
+ 暂无充值信息!
+ </div>
+ <div v-else>
+ <ul
+ class="table-list"
+ v-infinite-scroll="loadMore"
+ infinite-scroll-disabled="loading"
+ infinite-scroll-distance="10">
+ <li class="list-body" v-for="(item) in list" :key="item.key">
+ <div class="order-info-box">
+ <div class="order-title">
+ <span :class="['main',item.payChannel == 0?'ali':item.payChannel == 1?'cart':'wechat']">
+ <!-- <i v-if="item.payChannel == 0 || item.payChannel == '支付宝'" style="color:#1296db;"
+ class="iconfont icon-zhifubao"></i>
+ <i v-if="item.payChannel == '微信' " style="color:#1296db;" class="iconfont icon-weixin"></i>
+ <i v-if="item.payChannel == 1 || item.payChannel == '对公转账'" style="color:#1296db;"
+ class="iconfont icon-yinlian"></i> -->
+ {{item.payChannel == 0?'支付宝':item.payChannel == 1?'对公转账':item.payChannel}}
+ </span>
+ <span class="payNumber">充值:<span :style="{color:$state.theme =='red'?'#BB1815':''}">¥{{item.payAmt}}</span></span>
+ <span
+ :class="item.orderStatus == 1?'green pull-right':item.orderStatus == 2?'red pull-right':'red pull-right'">
+ <i v-if="item.orderStatus == 1" class="iconfont icon-tongguo4 animated bounceIn"></i>
+ <i v-if="item.orderStatus==0" class="iconfont icon-dengdai animated bounceInDown"></i>
+ <i v-if="item.orderStatus == 2" class="iconfont icon-failure animated bounceInDown"></i>
+ <i v-if="item.orderStatus == 3"
+ class="iconfont icon-iconfontweitongguo animated bounceInDown"></i>
+ <!-- 1 => 成功 2 失败 3取消 4 等待 -->
+ {{item.orderStatus == 1?'充值成功':item.orderStatus == 2?'充值失败':item.orderStatus == 3?'取消充值':'审核中'}}
+
+ </span>
+ <!-- <span class="secondary ">123456789</span> -->
+ </div>
+ <div class="order-info">
+ <!-- <p class="clearfix">
+ <span class="col-xs-5">{{item.orderDesc}}</span>
+ </p> -->
+ <!-- <p class="clearfix">
+ <span class="col-xs-12">订单号:<b>{{item.orderSn}}</b></span>
+ </p>
+ <p class="clearfix">
+ <span class="secondary col-xs-6">时间:
+ <b v-if="item.addTime">{{new Date(item.addTime) | timeFormat}}</b>
+ <b v-else></b>
+ </span>
+ </p> -->
+ <div class="info-mix ">
+ <span class="info-item">订单号:<b>{{item.orderSn}}</b></span>
+ <span class="info-item">时间:
+ <b v-if="item.addTime">{{new Date(item.addTime) | timeFormat}}</b>
+ <b v-else></b>
+ </span>
+ </div>
+ </div>
+
+ </div>
+ <!-- <div class="capital">
+ <div class="pro">
+ {{item.payChannel}} <span class="pull-right">金额:{{item.payAmt}}</span>
+ </div>
+ <div class=" clearfix">
+ <div class="col-xs-4"></div>
+ <div class="col-xs-8">
+ <span class="pull-right">
+ {{new Date(item.addTime) | timeFormat}}
+ </span>
+ </div>
+ </div>
+ </div> -->
+ </li>
+ </ul>
+ <div v-show="loading" class="load-all text-center">
+ <mt-spinner type="fading-circle"></mt-spinner>
+ 加载中...
+ </div>
+ <div v-show="!loading" class="load-all text-center">
+ 已全部加载
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { Toast } from 'mint-ui'
+import * as api from '@/axios/api'
+
+export default {
+ components: {},
+ props: {},
+ data () {
+ return {
+ loading: false,
+ list: [],
+ pageNum: 1,
+ pageSize: 15,
+ total: 0
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {},
+ mounted () {
+ this.getListDetail()
+ },
+ methods: {
+ async getListDetail () {
+ let opt = {
+ payChannel: '', // 支付方式
+ orderStatus: '', // 订单状态
+ pageNum: this.pageNum,
+ pageSize: 15
+ }
+ let data = await api.rechargeList(opt)
+ if (data.status === 0) {
+ data.data.list.forEach(element => {
+ this.list.push(element)
+ })
+ this.total = data.data.total
+ } else {
+ Toast(data.msg)
+ }
+ },
+ async loadMore () {
+ if (this.list.length < 10 || this.total <= this.pageNum * this.pageNum) {
+ return
+ }
+ this.loading = true
+ // 加载下一页
+ this.pageNum++
+ await this.getListDetail()
+ this.loading = false
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+ .wrapper {
+ padding-top: 0.9rem;
+ }
+
+ .table-list {
+ padding: 0.2rem 0;
+
+ .list-body {
+ padding: 0.1rem 0.3rem;
+
+ .capital:nth-child(1) {
+ border-top: 0.01rem solid #3f444a;
+ }
+
+ .capital {
+ padding: 0.2rem;
+ // border-radius: 0.2rem;
+ border-bottom: 0.01rem solid #3f444a;
+
+ div {
+ line-height: 0.4rem;
+ }
+
+ .col-xs-4 {
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .pro {
+ color: #999;
+ }
+ }
+ }
+ }
+
+ .payNumber {
+ font-size: 0.24rem;
+ font-weight: bold;
+ span {
+ font-family: lightnumber;
+ }
+ }
+ /deep/.order-info-box {
+ background-color: #16171d;
+ padding: 0;
+ .main{
+ padding: 0.05rem .15rem;
+ letter-spacing:0;
+ text-align: center;
+ margin-right: .16rem;
+ font-size: 0.24rem;
+ border-radius: 3px;
+ &.ali {
+ background-color: #138EB4;
+ }
+ &.cart {
+ background-color: #7266BA;
+ }
+ &.wechat {
+ background-color: #009C46;
+ }
+ }
+ .order-info {
+ border-bottom: 1px solid #2e3237;
+ padding-bottom: .3rem;
+ }
+ .order-title{
+ border-bottom: none;
+ }
+ .info-mix{
+ display: flex;
+ font-size: .2rem;
+ width: 100%;
+ .info-item {
+ margin-right: .2rem;
+ color: #fff8;
+ }
+ }
+ }
+ .red-theme {
+ .list-body {
+ background-color: #fff;
+ }
+ .order-info-box {
+ background-color: #fff;
+ .order-info {
+ border-bottom-color: #e9e9e9;
+ }
+ }
+ .order-info-box .main.cart {
+ color: #fff;
+ }
+ .payNumber {
+ color: #000;
+ }
+ .order-info-box .info-mix .info-item{
+ color: #666666;
+ }
+ .load-all{
+ background-color: #fff;
+ }
+ }
+</style>
diff --git a/src/page/transferRecord/index.vue b/src/page/transferRecord/index.vue
new file mode 100644
index 0000000..07ce622
--- /dev/null
+++ b/src/page/transferRecord/index.vue
@@ -0,0 +1,169 @@
+<template>
+ <div class="wrapper">
+ <div class="header">
+ <div class="left_back" @click="handleGoToBack()">
+ <img src="../../assets/img/zuojiantou.png" alt="">
+ </div>
+ <div class="header_titles">
+ <span>{{ '充值记录' }}</span>
+ </div>
+ </div>
+ <!-- <div class="text-center">
+ <div class="btn-group">
+ <a href="#/recharge" class="with-draw-btn">充值</a>
+ <a href="javascript:;" class="with-draw-detai-btn on">记录</a>
+ </div>
+ </div> -->
+ <div class="history_content">
+ <div class="box page-part transaction">
+ <div class="box-contain clearfix">
+ <rechargeList></rechargeList>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import rechargeList from './compontents/recharge-list'
+
+export default {
+ components: {
+ rechargeList
+ },
+ props: {},
+ data () {
+ return {
+ number: ''
+ }
+ },
+ watch: {},
+ computed: {},
+ created () {},
+ mounted () {},
+ methods: {
+ handleGoToBack() {
+ this.$router.go(-1);
+ }
+ }
+}
+</script>
+<style lang="less" scoped>
+ .mint-header {
+ // background: #f4f4f4;
+ margin-bottom: 0.2rem;
+ }
+
+ .wrapper {
+ // padding-top: 1.5rem;
+ background-color: #ffffff !important;
+ }
+
+ .btn-group {
+ // background: #f4f4f4;
+ text-align: center;
+ margin: 0 auto;
+ margin-bottom: 0.5rem;
+
+ a {
+ display: inline-block;
+ text-align: center;
+ font-size: 0.29rem;
+ height: 0.7rem;
+ line-height: 0.6rem;
+ width: 1.44rem;
+ margin: 0;
+ margin-top: 0;
+ padding: 0;
+ }
+
+ .with-draw-btn {
+ position: relative;
+ right: -10px;
+ width: 1.51rem;
+ border-top-left-radius: 0.695rem;
+ border-bottom-left-radius: 0.695rem;
+ }
+
+ .with-draw-detai-btn {
+ border-top-right-radius: 0.695rem;
+ border-bottom-right-radius: 0.695rem;
+ }
+
+ .on {
+ color: #fff;
+ }
+ }
+
+ .transaction {
+ color: rgba(100, 100, 100, 0.78);
+
+ .transaction-title {
+ padding: 0.15rem 0.3rem;
+ }
+
+ .empty {
+ height: 2.8rem;
+ line-height: 2.8rem;
+ }
+ }
+
+ .box.page-part.transaction {
+ background-color: #16171d;
+ .box-contain {
+ background-color: #16171d;
+ }
+ }
+ .red-theme {
+ .wrapper{
+ background-color: #E9E9E9;
+ }
+ .box.page-part.transaction {
+ background-color: #E9E9E9;
+ .box-contain {
+ background-color: #E9E9E9;
+ .list-body{
+ background-color: #fff;
+ .order-info-box {
+ background-color: #fff;
+ }
+ }
+ }
+ }
+
+ }
+ .header {
+ width: 100%;
+ height: 1.5rem;
+ background: #fff;
+ position: fixed;
+ z-index: 999;
+ border-radius: 0 0 .15rem .15rem;
+ .left_back {
+ width: 1rem;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img {
+ width: .6rem;
+ height: .6rem;
+ }
+ }
+ .header_titles {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ font-size: .4615rem;
+ line-height: 1.5rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .history_content {
+ height: calc(100% - 1.7rem);
+ }
+</style>
diff --git a/src/page/user/transfer.vue b/src/page/user/transfer.vue
index 8f699d1..cdf0378 100644
--- a/src/page/user/transfer.vue
+++ b/src/page/user/transfer.vue
@@ -79,14 +79,12 @@
</template>
<script>
-import foot from '@/components/foot/foot'
// import '@/assets/style/common.less'
import * as api from '@/axios/api'
import { Toast } from 'mint-ui'
export default {
components: {
- foot
},
data () {
return {
diff --git a/src/page/wallet/index.vue b/src/page/wallet/index.vue
new file mode 100644
index 0000000..5c05aaa
--- /dev/null
+++ b/src/page/wallet/index.vue
@@ -0,0 +1,764 @@
+<template>
+ <div class="user_page">
+ <div class="content">
+ <div class="top_icon">
+ <div class="left_back" @click="handleBack()">
+ <img src="../../assets/img/zuojiantou.png" alt />
+ </div>
+ <div class="right_icon">
+ <div @click="goToTopUp()">
+ <img src="../../assets/img/qianbao.png" alt />
+ </div>
+ <div>
+ <img src="../../assets/img/kefu.png" alt />
+ </div>
+ </div>
+ </div>
+ <div class="tabs">
+ <div
+ v-for="(item, index) in tabsArr"
+ :key="index"
+ @click="handleTabsClick(item, index)"
+ :class="tabsCurrentIndex === index ? 'active' : ''"
+ >
+ <span>{{ item }}</span>
+ </div>
+ </div>
+ <div class="center_card" v-if="tabsCurrentIndex === 0">
+ <div class="keyon">
+ <span>{{ '总资产' }}</span>
+ </div>
+ <div class="num_price">
+ <p
+ v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
+ class="account"
+ >
+ ¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
+ $store.state.userInfo.userIndexAmt).toFixed(2)
+ }}
+ </p>
+ <p
+ v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
+ class="account"
+ >
+ ¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
+ $store.state.userInfo.userFuturesAmt).toFixed(2)
+ }}
+ </p>
+ <p
+ v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
+ class="account"
+ >¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
+ </div>
+ <div class="yk es">
+ <div>
+ <span>{{ '沪深账户' }}</span>
+ </div>
+ <div>
+ <span>{{ '指数账户' }}</span>
+ </div>
+ </div>
+ <div class="yk as">
+ <div>
+ <span>{{ '¥ ' + $store.state.userInfo.userAmt }}</span>
+ </div>
+ <div>
+ <span>{{ '¥ ' + $store.state.userInfo.userIndexAmt }}</span>
+ </div>
+ </div>
+ <div class="btns" @click="handleGoToTransfers()">
+ <span>{{ '账户金额互转' }}</span>
+ </div>
+ </div>
+ <div class="withdrawal" v-if="tabsCurrentIndex === 1">
+ <div class="ttx">
+ <span>{{ '可提现金额 (元)' }}</span>
+ </div>
+ <div class="ttx_price">
+ <span>{{ $store.state.userInfo.enableAmt }}</span>
+ </div>
+ <div class="ttx_input">
+ <div class="titles">
+ <span>{{ '提现金额' }}</span>
+ </div>
+ <div class="num">
+ <input type="text" v-model="withdrawalValue" />
+ </div>
+ <div class="all" @click="withdrawalAll()">
+ <span>{{ '全部' }}</span>
+ </div>
+ </div>
+ <div class="btns" @click="handleToSure()">
+ <span>{{ '确定' }}</span>
+ </div>
+ </div>
+ <div class="banks" v-if="tabsCurrentIndex === 1">
+ <div class="bank_1">
+ <div class="left_name">
+ <span>{{ '提现记录' }}</span>
+ </div>
+ <div class="center_input"></div>
+ <div class="right_copy img_right" @click="handleGoToCashWithdrawalRecord()">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ </div>
+ <div class="banks" v-if="tabsCurrentIndex === 0">
+ <div class="bank_1">
+ <div class="left_name">
+ <span>{{ '收款名称' }}</span>
+ </div>
+ <div class="center_input">
+ <input type="text" v-model="skName" />
+ </div>
+ <div class="right_copy">
+ <span
+ v-clipboard:copy="skName"
+ v-clipboard:success="onCopy"
+ v-clipboard:error="onError"
+ >{{ '复制' }}</span>
+ </div>
+ </div>
+ <div class="bank_1">
+ <div class="left_name">
+ <span>{{ '收款银行' }}</span>
+ </div>
+ <div class="center_input">
+ <input type="text" v-model="skBankName" />
+ </div>
+ <div class="right_copy">
+ <span
+ v-clipboard:copy="skBankName"
+ v-clipboard:success="onCopy"
+ v-clipboard:error="onError"
+ >{{ '复制' }}</span>
+ </div>
+ </div>
+ <div class="bank_1">
+ <div class="left_name">
+ <span>{{ '收款账号' }}</span>
+ </div>
+ <div class="center_input">
+ <input type="text" v-model="skUser" />
+ </div>
+ <div class="right_copy">
+ <span
+ v-clipboard:copy="skUser"
+ v-clipboard:success="onCopy"
+ v-clipboard:error="onError"
+ >{{ '复制' }}</span>
+ </div>
+ </div>
+ <div class="bank_1">
+ <div class="left_name">
+ <span>{{ '充值金额' }}</span>
+ </div>
+ <div class="center_input">
+ <input type="text" v-model="walletNum" />
+ </div>
+ <div class="right_copy" @click="handleGoCz()">
+ <span>{{ '充值' }}</span>
+ </div>
+ </div>
+ <div class="bank_1" @click="handleGoToTransferRecord()">
+ <div class="left_name">
+ <span>{{ '充值记录' }}</span>
+ </div>
+ <div class="center_input"></div>
+ <div class="right_copy img_right">
+ <img src="../../assets/img/youjiantou.png" alt />
+ </div>
+ </div>
+ </div>
+ </div>
+ <van-notify v-model="messShow" type="primary">
+ <span>{{ mess }}</span>
+ </van-notify>
+ <van-popup v-model="messDialog" position="bottom" :style="{ height: '70%' }">
+ <div class="mess_content">
+ <div class="top_title">
+ <div class="tt">
+ <div class="left_icon">
+ <img src="../../assets/img/liucheng.png" alt />
+ </div>
+ <div class="right_title">
+ <span>{{ '操作流程:' }}</span>
+ </div>
+ </div>
+ <div class="_on">
+ <span>{{ '①' }}</span>
+ <span>{{ '点击"复制", 复制信息' }}</span>
+ </div>
+ <div class="_on">
+ <span>{{ '②' }}</span>
+ <span>{{ '完成复制, 打开手机银行进行转账' }}</span>
+ </div>
+ </div>
+ <div class="top_title" style="color: red;">
+ <div class="tt">
+ <div class="left_icon">
+ <img src="../../assets/img/jinggao.png" alt />
+ </div>
+ <div class="right_title">
+ <span>{{ '操作流程:' }}</span>
+ </div>
+ </div>
+ <div class="_on">
+ <span>{{ '①' }}</span>
+ <span class="hgg">{{ '为确保入金及时到账, 请确认您输入的金额和提交的充值金额一致' }}</span>
+ </div>
+ </div>
+ </div>
+ </van-popup>
+ </div>
+</template>
+
+<script>
+import * as api from "@/axios/api";
+import { Toast } from "mint-ui";
+import { mapState } from "vuex";
+
+export default {
+ name: "newUser",
+ data() {
+ return {
+ name: "大狗子",
+ selectUserFlag: true,
+ tabsArr: ["充值", "提现"],
+ tabsCurrentIndex: 0,
+ walletNum: "",
+ skName: "",
+ skBankName: "",
+ skUser: "",
+ messShow: false,
+ mess: "",
+ messDialog: false,
+ withdrawalValue: "",
+ settingInfo: {}
+ };
+ },
+ computed: {
+ ...mapState(["userInfo", "bankInfo"])
+ },
+ created() {
+ this.getSettingInfo();
+ this.getCardDetail(); // 获取银行卡信息
+ },
+ methods: {
+ handleZh() {
+ //cho
+ this.selectUserFlag = !this.selectUserFlag;
+ },
+ handleBack() {
+ // 点击返回/
+ this.$router.go(-1);
+ },
+ goToTopUp() {
+ this.$router.push("/wallet");
+ },
+ handleTabsClick(item, index) {
+ this.tabsCurrentIndex = index;
+ },
+ withdrawalAll() {
+ // 点击全部提现
+ this.withdrawalValue = this.userInfo.enableAmt;
+ },
+ async handleToSure() {
+ // 点击确定提现
+ if (!this.userInfo.idCard) {
+ Toast("请先实名认证");
+ return;
+ }
+ if (!this.bankInfo.bankNo) {
+ Toast("请先绑定银行卡");
+ return;
+ } else {
+ }
+ if (!this.withdrawalValue || this.withdrawalValue <= 0) {
+ Toast("请输入正确的提现金额");
+ } else if (this.withdrawalValue - this.settingInfo.withMinAmt < 0) {
+ Toast("提现金额不得小于" + this.settingInfo.withMinAmt);
+ } else {
+ let opts = {
+ amt: this.withdrawalValue
+ };
+ let data = await api.outMoney(opts);
+ if (data.status === 0) {
+ // 成功
+ Toast("申请成功,请等待审核!");
+ this.$router.push("/cashlist");
+ } else {
+ Toast(data.msg ? data.msg : "提现失败,请重新提现或者联系管理员");
+ }
+ }
+ },
+ async getCardDetail() {
+ // 获取银行卡信息
+ let data = await api.getBankCard();
+ if (data.status === 0) {
+ this.$store.state.bankInfo = data.data;
+ } else {
+ // Toast(data.msg)
+ }
+ },
+ async getSettingInfo() {
+ let data = await api.getSetting();
+ if (data.status === 0) {
+ // 成功
+ this.settingInfo = data.data;
+ console.log(this.settingInfo, "settingInfo");
+ } else {
+ Toast(data.msg);
+ }
+ },
+ handleGoToTransferRecord() { // 充值记录
+ this.$router.push('/transferRecord');
+ },
+ handleGoToCashWithdrawalRecord() { // 提现记录
+ this.$router.push('/cashWithdrawalRecord');
+ },
+ handleGoToTransfers() {
+ this.$router.push('/transfers');
+ },
+ handleGoCz() {
+ if (this.walletNum === "") {
+ this.messShow = true;
+ this.mess = "请输入充值金额";
+ setTimeout(() => {
+ this.messShow = false;
+ }, 1500);
+ } else if (this.walletNum < 200) {
+ this.messShow = true;
+ this.mess = "小于最少充值金额";
+ setTimeout(() => {
+ this.messShow = false;
+ }, 1500);
+ } else if (this.walletNum !== "" && this.walletNum >= 200) {
+ this.getPayInfo();
+ this.messDialog = true;
+ }
+ },
+ onCopy() {
+ Toast("复制成功");
+ },
+ onError() {
+ Toast("复制失败请重试");
+ },
+ async getPayInfo() {
+ // 获取支付渠道 详细信息
+ let data = await api.getPayInfoDetail({ payId: 3 });
+ if (data.status === 0) {
+ const { channelName, channelAccount, channelDesc } = data.data;
+ this.skName = channelName;
+ this.skUser = channelAccount;
+ this.skBankName = channelDesc;
+ } else {
+ this.messShow = true;
+ this.mess = data.msg;
+ setTimeout(() => {
+ this.messShow = false;
+ }, 1500);
+ }
+ }
+ }
+};
+</script>
+
+<style scoped lang="less">
+.user_page {
+ width: 100%;
+ height: calc(100% - 1.3rem);
+ .content {
+ width: 100%;
+ height: 100%;
+ padding: 0 0.3rem;
+ .top_icon {
+ width: 100%;
+ height: 1.5rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ .left_back {
+ width: 10%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ img {
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+ .right_icon {
+ width: 25%;
+ height: 50%;
+ display: flex;
+ > div {
+ width: 50%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img {
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+ }
+ }
+ .users {
+ width: 100%;
+ height: 1.7949rem;
+ background: #fff;
+ border-radius: 0.15rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .left_tou {
+ width: 80%;
+ height: 70%;
+ display: flex;
+ .left_tx {
+ width: 20%;
+ height: 100%;
+ margin-left: 0.3rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ > div {
+ width: 1rem;
+ height: 1rem;
+ border-radius: 50%;
+ overflow: hidden;
+ background: rgb(211, 211, 211);
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+ .right_name {
+ width: 80%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ font-size: 0.4415rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .right_go {
+ width: 20%;
+ height: 70%;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ padding-right: 0.2rem;
+ img {
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+ }
+ .center_card {
+ width: 100%;
+ height: 5.3846rem;
+ background-image: linear-gradient(to right bottom, #ffffff, #dfedfc);
+ // background-image: linear-gradient(to right, #ffffff , #dfedfc);
+ border-radius: 0.15rem;
+ padding: 0.5rem 0.4rem;
+ .keyon {
+ width: 100%;
+ height: 0.5128rem;
+ font-size: 0.359rem;
+ display: flex;
+ align-items: center;
+ color: #3d4144;
+ span {
+ font-weight: 600;
+ }
+ }
+ .num_price {
+ width: 100%;
+ height: 0.6667rem;
+ margin-top: 0.1rem;
+ display: flex;
+ align-items: center;
+ font-size: 0.5528rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ .yk {
+ width: 100%;
+ height: 0.5rem;
+ display: flex;
+ align-items: center;
+ > div {
+ width: 50%;
+ height: 100%;
+ color: #97989d;
+ display: flex;
+ align-items: center;
+ }
+ }
+ .yk.es {
+ margin-top: 0.3rem;
+ }
+ .yk.as {
+ font-size: 0.4033rem;
+ margin-top: 0.1rem;
+ span {
+ color: #000;
+ font-weight: 600;
+ }
+ .bzz {
+ color: #4ea364;
+ }
+ }
+ .btns {
+ width: 100%;
+ height: 1.2821rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0.25rem;
+ background: #2d6ae9;
+ font-size: 0.4015rem;
+ color: #fff;
+ margin-top: 0.35rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ .active {
+ background: #4ea364;
+ }
+ }
+ .jy {
+ width: 100%;
+ height: 1.5rem;
+ border-radius: 0.2rem;
+ background: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 0.3rem;
+ margin-top: 0.3rem;
+ .left_gn {
+ width: 40%;
+ height: 60%;
+ display: flex;
+ .l_icon {
+ width: 30%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img {
+ width: 0.5041rem;
+ height: 0.5041rem;
+ }
+ }
+ .r_title {
+ width: 70%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ font-size: 0.4046rem;
+ color: #404040;
+ span {
+ font-weight: 600;
+ }
+ }
+ }
+ .right_gos {
+ width: 20%;
+ height: 60%;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ img {
+ width: 0.6rem;
+ height: 0.6rem;
+ }
+ }
+ }
+ }
+}
+.tabs {
+ width: 100%;
+ height: 1rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ > div {
+ width: 48%;
+ height: 70%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .active {
+ background: rgb(255, 255, 255);
+ border-radius: 0.15rem;
+ }
+}
+.banks {
+ width: 100%;
+ background: #fff;
+ padding: 0 0.3rem;
+ border-radius: 0.15rem;
+ margin-top: 0.3rem;
+ > div {
+ width: 100%;
+ height: 1.5385rem;
+ margin-top: 0.3rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 0.05rem solid rgb(224, 224, 224);
+ font-size: 0.359rem;
+ span {
+ font-weight: 600;
+ }
+ .left_name {
+ width: 25%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .center_input {
+ width: 60%;
+ height: 50%;
+ input {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .right_copy {
+ width: 15%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
+.img_right {
+ > img {
+ width: 0.8rem;
+ height: 0.8rem;
+ }
+}
+.mess_content {
+ width: 100%;
+ height: 100%;
+ padding: 0.5rem 0.3rem;
+ .top_title {
+ width: 100%;
+ height: 2.5rem;
+ .tt {
+ width: 100%;
+ height: 30%;
+ display: flex;
+ align-items: center;
+ .left_icon {
+ width: 0.5rem;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ img {
+ width: 0.4rem;
+ height: 0.4rem;
+ }
+ }
+ .right_title {
+ margin-left: 0.2rem;
+ }
+ }
+ }
+ ._on {
+ width: 100%;
+ height: 0.5rem;
+ padding: 0 0.3rem;
+ margin-top: 0.1rem;
+ }
+ .hgg {
+ line-height: 0.5rem;
+ }
+}
+.withdrawal {
+ width: 100%;
+ height: 5rem;
+ background: #fff;
+ border-radius: 0.15rem;
+ padding: 0.5rem 0.4rem;
+ background-image: linear-gradient(to right bottom, #ffffff, #dfedfc);
+ .ttx {
+ width: 100%;
+ height: 0.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .ttx_price {
+ width: 100%;
+ height: 1rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #2d6ae9;
+ font-size: 0.6615rem;
+ span {
+ font-weight: 600;
+ }
+ }
+ .ttx_input {
+ width: 100%;
+ height: 1rem;
+ display: flex;
+ > div {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .titles {
+ width: 20%;
+ height: 100%;
+ }
+ .num {
+ width: 70%;
+ height: 100%;
+ input {
+ width: 100%;
+ height: 100%;
+ padding-left: 1rem;
+ font-weight: 600;
+ }
+ }
+ .all {
+ width: 10%;
+ height: 100%;
+ }
+ }
+}
+.btns {
+ width: 100%;
+ height: 1.2821rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0.25rem;
+ background: #2d6ae9;
+ font-size: 0.4015rem;
+ color: #fff;
+ margin-top: 0.35rem;
+ span {
+ font-weight: 600;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index d901f77..fb169a3 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -50,6 +50,12 @@
import KLine from '@/page/kline/index.vue'
import TradingBuy from '@/page/trading/buy.vue'
import NewUser from '@/page/newUser/index.vue'
+import Wallet from '@/page/wallet/index.vue';
+import TransferRecord from '@/page/transferRecord/index.vue'
+import CashWithdrawalRecord from '@/page/cashWithdrawalRecord/index.vue'
+import Transfers from '@/page/transfer/index.vue'
+import Authentications from '@/page/authentication/index.vue'
+import BankCard from '@/page/bankCard/index.vue'
Vue.use(Router)
@@ -636,6 +642,77 @@
component: NewUser
},
{
+ path: '/wallet',
+ name: 'Wallet',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 52,
+ },
+ component: Wallet
+ },
+ {
+ path: '/transferRecord',
+ name: 'transferRecord',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 53,
+ show: true
+ },
+ component: TransferRecord
+ },
+ {
+ path: '/cashWithdrawalRecord',
+ name: 'cashWithdrawalRecord',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 54,
+ show: true
+ },
+ component: CashWithdrawalRecord
+ },
+ {
+ path: '/transfers',
+ name: 'transfers',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 55,
+ show: true
+ },
+ component: Transfers
+ },
+ {
+ path: '/authentications',
+ name: 'authentications',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 56,
+ show: true
+ },
+ component: Authentications
+ },
+ {
+ path: '/bankCard',
+ name: 'bankCard',
+ meta: {
+ title: '图标',
+ requireAuth: false,
+ hasHeader: false,
+ index: 57,
+ show: true
+ },
+ component: BankCard
+ },
+ {
// 会匹配所有路径
path: '*',
redirect: '/home'
--
Gitblit v1.9.3