Browse Source

add tid1505 api

tid1509
刘嘉炜 12 months ago
parent
commit
a12779c6e1
  1. 6
      src/pages.json
  2. 142
      src/subpackage/wallet/components/dy_withdraw_apply.vue
  3. 68
      src/subpackage/wallet/components/record_item.vue
  4. 8
      src/subpackage/wallet/components/wallet_modal.vue
  5. 2
      src/subpackage/wallet/components/wm_button.vue
  6. 9
      src/subpackage/wallet/js/api.js
  7. 1
      src/subpackage/wallet/js/bank.js
  8. 10
      src/subpackage/wallet/js/server.js
  9. 106
      src/subpackage/wallet/pages/douyin_withdraw/index.vue
  10. 32
      src/subpackage/wallet/pages/douyin_withdraw/record.vue
  11. 38
      src/subpackage/wallet/pages/index/index.vue
  12. 14
      src/subpackage/wallet/pages/index/modules/wallet_info.vue
  13. 9
      src/utils/util.js

6
src/pages.json

@ -728,6 +728,12 @@
}
},
{
"path": "pages/douyin_withdraw/record",
"style" : {
"navigationBarTitleText": "提现记录"
}
},
{
"path": "pages/index/recharge_record",
"style" : {
"navigationBarTitleText": "充值记录"

142
src/subpackage/wallet/components/dy_withdraw_apply.vue

@ -1,24 +1,41 @@
<template>
<wallet-modal title="申请提现">
<wallet-modal title="申请提现" :show="show" @click:close="hide">
<view class="dy-withdraw-apply">
<view class="dwa-balance">
<text class="dwab-txt">可提现资金</text>
399.63
{{ balance }}
</view>
<scroll-view class="dwa-scroll" scroll-y>
<view class="dwa-opt-line" v-for="i in 5" :key="i">
<view class="dwa-opt-line" :key="i">
<view class="dol-name">*提现金额</view>
<input type="text" class="dol-ipt" placeholder="请输入提现金额">
<input type="digit" class="dol-ipt" placeholder="请输入提现金额" v-model="info.amount">
</view>
<view class="dwa-opt-line" :key="i">
<view class="dol-name">*账户名称</view>
<input type="text" class="dol-ipt" placeholder="请输入提现金额" v-model="info.account_name_of_bank">
</view>
<view class="dwa-opt-line" :key="i">
<view class="dol-name">*银行卡号</view>
<input type="number" class="dol-ipt" placeholder="请输入提现金额" v-model="info.account">
</view>
<view class="dwa-opt-line">
<view class="dol-name">*银行名称</view>
<picker class="dol-picker">
<picker class="dol-picker" :range="banks" @change="bankNameChange">
<view class="dp-frame">
<input type="text" class="df-ipt" placeholder="请选择">
<input type="text" disabled class="df-ipt" placeholder="请选择" v-model="info.bank_name">
<image class="df-icon"></image>
</view>
</picker>
</view>
<view class="dwa-opt-line" :key="i">
<view class="dol-name">*支行名称</view>
<input type="text" class="dol-ipt" placeholder="请输入提现金额" v-model="info.bank_address">
</view>
<view class="dwa-opt-line" :key="i">
<view class="dol-name">联系电话</view>
<input type="number" class="dol-ipt" placeholder="请输入提现金额" v-model="info.mobile">
</view>
</scroll-view>
<view class="dwa-tip">
@ -27,7 +44,7 @@
<view class="dt-desc">2提现申请成功提交后预计在3~7个工作日内进行处理</view>
</view>
<view class="dwa-btn">
<wm-button green>确认提现</wm-button>
<wm-button green @click="confirmExtract">确认提现</wm-button>
</view>
</view>
</wallet-modal>
@ -36,10 +53,121 @@
<script>
import walletModal from './wallet_modal.vue';
import wmButton from './wm_button.vue';
import banks from '../js/bank';
import { showModal, showNone } from '@/utils/util';
export default {
components: {
'wallet-modal': walletModal,
'wm-button': wmButton
},
props: {
balance: {
type: Number,
default: 0
}
},
data(){
return {
banks,
show: false,
info: {
amount: '',
account_name_of_bank: '',
account: '',
bank_name: '',
bank_address: '',
mobile: ''
}
}
},
methods: {
bankNameChange(e){
let { value } = e.detail;
this.info.bank_name = this.banks[value];
},
alert(){
this.getStorageAndSet();
// if(this.isEmptyInfo){
// showModal({
// content: '',
// showCancel: true,
// success: res=>{
// if(res.confirm)this.getStorageAndSet();
// }
// })
// }
this.show = true
},
hide(){
this.show = false
},
getStorageAndSet(){
uni.getStorage({
key: 'dyRecentWithdrawApplyInfo',
success: res=>{
this.info = res.data;
}
})
},
setInfoToStorage(){
uni.setStorage({
key: 'dyRecentWithdrawApplyInfo',
data: this.info
});
},
confirmExtract(){
if(!this.infoCheck())return;
this.setInfoToStorage();
showModal({
content: '是否确认提现?',
showCancel: true,
success: res=>{
if(res.confirm){
this.hide();
this.$emit(
'click:confirm',
Object.assign(this.info, { amount: +this.info.amount })
);
}
}
})
},
isEmptyInfo(){
let _infoValues = Object.values(this.info);
return _infoValues.every(item=>item === '');
},
infoCheck(){
let { amount, account_name_of_bank, account, bank_name, bank_address, mobile } = this.info;
let _amount = +(amount ?? 0);
if(_amount <= 0){
showNone('提现金额不正确');
return false
}
if(_amount > this.balance){
showNone('提现金额不能大于可提现金额');
return false
}
if(account_name_of_bank === ''){
showNone('账户名称不能为空');
return false
}
if(account === ''){
showNone('银行卡号不能为空');
return false
}
if(bank_name === ''){
showNone('银行名称不能为空');
return false
}
if(bank_address === ''){
showNone('支行名称不能为空');
return false
}
return true
}
}
}
</script>

68
src/subpackage/wallet/components/record_item.vue

@ -0,0 +1,68 @@
<template>
<view class="record-item">
<veiw class="ri-line">
<veiw class="rl-name">提现金额</veiw>
<view class="rl-value">12.00</view>
<view class="rl-status">待处理</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">提现单号</veiw>
<view class="rl-value">TX20191017898999</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">申请时间</veiw>
<view class="rl-value">2019-10-17 12:12:12</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">收款人名称</veiw>
<view class="rl-value">广州欧轩网络科技有限公司</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">收款人账号</veiw>
<view class="rl-value">62170033200934025456</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">处理时间</veiw>
<view class="rl-value">2024-10-17 12:12:12</view>
</veiw>
<veiw class="ri-line">
<veiw class="rl-name">备注</veiw>
<view class="rl-value">-</view>
</veiw>
</view>
</template>
<script>
export default {
}
</script>
<style lang="scss">
.record-item{
padding: 26upx 20upx;
border-radius: 10upx;
background: #fff;
.ri-line{
display: flex;
justify-content: space-between;
align-items: baseline;
.rl-name{
flex-shrink: 0;
flex-grow: 0;
@include flcw(28upx, 56upx, #9A9A9D);
}
.rl-value{
flex-grow: 1;
@include flcw(28upx, 56upx, #1A1A1A);
@include tHide(2);
}
.rl-status{
flex-shrink: 0;
flex-grow: 0;
margin-left: 10upx;
@include flcw(28upx, 56upx, #1A1A1A);
}
}
}
</style>

8
src/subpackage/wallet/components/wallet_modal.vue

@ -1,7 +1,7 @@
<template>
<view class="wallet-mask">
<view class="wallet-mask" v-show="show">
<view class="wm-content">
<image class="wc-close"></image>
<image class="wc-close" @click="$emit('click:close')"></image>
<view class="wc-title">{{ title }}</view>
<slot></slot>
</view>
@ -14,6 +14,10 @@ export default {
title: {
type: String,
default: '提示'
},
show: {
type: Boolean,
default: false
}
}
}

2
src/subpackage/wallet/components/wm_button.vue

@ -1,5 +1,5 @@
<template>
<view class="wallet-modal-button" :class="{ 'green': green }">
<view class="wallet-modal-button" :class="{ 'green': green }" @click="$emit('click')">
<slot>充值记录</slot>
</view>
</template>

9
src/subpackage/wallet/js/api.js

@ -0,0 +1,9 @@
import { ORIGIN } from '../../../js/api';
export const WALLET_API = {
walletBalance:`${ORIGIN}/admin/merchantwallet/balance`, // 获取商户钱包余额
withdrawalOfDouyinOrg_totalAmount:`${ORIGIN}/admin/financialReconciliation/withdrawalOfDouyinOrg/totalAmount`, // 可提现总额 抖音
withdrawalOfDouyinOrg_edit:`${ORIGIN}/admin/financialReconciliation/withdrawalOfDouyinOrg/edit`, // 申请提现-编辑 抖音
}
export default WALLET_API;

1
src/subpackage/wallet/js/bank.js

@ -0,0 +1 @@
export default ['中国工商银行', '中国建设银行', '中国银行', '中国农业银行', '中国邮政储蓄银行', '招商银行', '交通银行', '上海浦东发展银行', '中信银行', '中国光大银行', '华夏银行', '中国民生银行', '广东发展银行', '兴业银行', '平安银行', '浙商银行', '恒丰银行', '渤海银行', '上海银行', '北京银行', '杭州银行', '常熟农商银行', '青岛银行', '徽商银行', '南京银行', '张家口银行', '天津滨海农村商业银行', '天津银行', '深圳农村商业银行', '宁夏银行', '石嘴山银行', '海南省农村信用社联合社', '海南银行', '陕西省农村信用社联合社', '长安银行', '青海农村信用社联合社', '青海银行', '宁波通商银行', '鄞州银行', '宁波东海银行', '宁波银行', '江南农村商业银行', '江苏省农村信用社联合社', '江苏长江商业银行', '江阴农商银行', '昆山农村商业银行', '苏州银行', '太仓农村商业银行', '无锡农村商业银行', '吴江农村商业银行', '张家港农商行', '重庆农村商业银行', '重庆三峡银行', '重庆银行', '大同银行', '晋城银行', '晋商银行', '晋中市商业银行', '长治市商业银行', '阳泉商业银行', '德州银行', '东营银行', '烟台银行', '济宁银行', '莱商银行', '临商银行', '齐鲁银行', '齐商银行', '日照银行', '枣庄银行', '泰安银行', '威海市商业银行', '潍坊银行', '江西银行', '江西省农村信用社联合社', '九江银行', '赣州银行', '上饶银行', '甘肃省农村信用社联合社', '甘肃银行', '兰州银行', '鄂尔多斯银行', '内蒙古农村信用社联合社', '内蒙古银行', '乌海银行', '汉口银行', '湖北省农村信用社联合社', '湖北银行', '武汉农村商业银行', '鞍山银行', '本溪商业银行', '朝阳银行', '丹东银行', '阜新银行', '葫芦岛银行', '锦州银行', '辽宁省农村信用社', '辽阳银行', '盘锦商行', '盛京银行', '铁岭银行', '营口沿海银行', '营口银行', '东莞农村商业银行', '东莞银行', '广东华兴银行', '广东南粤银行', '广东省农村信用社联合社', '广州农村商业银行', '广州银行', '顺德农商银行', '珠海华润银行', '长沙银行', '湖南三湘银行', '成都农商银行', '达州市商业银行', '长城华西银行', '乐山商业银行', '凉山商业银行', '泸州市商业银行', '绵阳市商业银行', '四川天府银行', '攀枝花市商业银行', '四川省农村信用社联合社', '遂宁银行', '雅安市商业银行', '宜宾市商业银行', '自贡银行', '广西北部湾银行', '广西壮族自治区农村信用社联合社', '柳州银行', '上海农村商业银行', '贵阳银行', '贵州省农村信用社联合社', '贵州银行', '台州银行', '温州银行', '浙江民泰商业银行', '浙江泰隆商业银行', '湖州银行', '嘉兴银行', '金华银行', '绍兴银行', '浙江稠州商业银行', '浙商银行', '哈尔滨银行', '黑龙江省农村信用社联合社', '龙江银行', '吉林省农村信用社联合社', '吉林银行', '大连银行', '大连农商行', '富滇银行', '曲靖市商业银行', '云南红塔银行', '云南省农村信用社联合社', '哈密市商业银行', '库尔勒市商业银行', '昆仑银行', '乌鲁木齐银行', '新疆汇和银行', '新疆农村信用社联合社', '新疆银行', '厦门国际银行', '厦门银行', '福建省海峡银行', '泉州银行', '保定银行', '沧州银行', '承德银行', '邯郸银行', '河北省农村信用社联合社', '河北银行', '衡水银行', '廊坊银行', '秦皇岛市商业银行', '唐山银行', '邢台银行', '河南省农村信用社联合社', '焦作中旅银行', '洛阳银行', '平顶山银行', '郑州银行', '中原银行', '玉山银行', '西藏银行', '华侨永亨银行', '辽宁辰州汇通村镇银行', '佛山农村商业银行', '东港农村商业银行', '浙江东阳农村商业银行', '东莞农村商业银行']

10
src/subpackage/wallet/js/server.js

@ -0,0 +1,10 @@
import { Server } from '../../../js/server';
class WalletServer extends Server {
constructor(props){
super(props)
}
}
export default new WalletServer();

106
src/subpackage/wallet/pages/douyin_withdraw/index.vue

@ -3,23 +3,121 @@
<image class="dw-icon"></image>
<view class="dw-tip">可提现资金</view>
<view class="dw-price">
<text class="dp-unit">¥</text>9870.65
<text class="dp-unit">¥</text>{{ balance }}
</view>
<view class="dw-btn">申请提现</view>
<view class="dw-btn" @click="applyBtn">申请提现</view>
<view class="dw-link">
<text class="dl-txt">提现明细</text>
<text class="dl-txt" @click="toDetailBtn">提现明细</text>
<image class="dl-icon"></image>
</view>
<dy-withdraw-apply></dy-withdraw-apply>
<dy-withdraw-apply
ref="dwaModal"
:balance="balance"
@click:confirm="dyConfirmExtract"
></dy-withdraw-apply>
</view>
</template>
<script>
import dyWithdrawApply from '../../components/dy_withdraw_apply.vue';
import { WALLET_API } from '../../js/api';
import servers from '../../js/server';
import { routeTo, showLoad, hideLoad, showNone } from '@/utils/util';
export default {
components: {
'dy-withdraw-apply': dyWithdrawApply
},
data(){
return {
brand_id: '',
balance: 0,
}
},
onLoad(options){
this.brand_id = options.brand_id ?? '';
this.getDouyinWalletBalance(options.brand_id);
},
methods: {
//
toDetailBtn(){
routeTo(`/subpackage/wallet/pages/douyin_withdraw/record?brand_id=${this.brand_id}`, 'nT');
},
//
applyBtn(){
this.$refs.dwaModal.alert();
},
/**
* http://api.ouxuan.net:61080/project/11/interface/api/2195
* @param {String} brand_id 品牌id
* */
getDouyinWalletBalance(brand_id){
showLoad();
servers.get({
url: WALLET_API.withdrawalOfDouyinOrg_totalAmount,
data: {
brand_id: brand_id
},
failMsg: '获取钱包余额失败'
})
.then(res=>{
hideLoad();
this.balance = +res.total_amount ?? 0;
})
.catch(hideLoad)
},
//
dyConfirmExtract(e){
this.douyinWalletExtract({
brand_id: this.brand_id,
...e
})
},
/**
* http://api.ouxuan.net:61080/project/11/interface/api/2209
* @param {String} brand_id 品牌id
* @param {Number} amount 提现金额
* @param {String} account 账户
* @param {String} account_name_of_bank 账户名
* @param {String} bank_name //
* @param {String} bank_address //
* @param {String} mobile 手机号
* @param {Number} status // 01
* */
douyinWalletExtract({
brand_id,
amount,
account,
account_name_of_bank,
bank_name,
bank_address,
mobile,
status = 0
}){
showLoad();
servers.post({
url: WALLET_API.withdrawalOfDouyinOrg_edit,
data: {
brand_id,
amount,
account,
account_name_of_bank,
bank_name,
bank_address,
mobile,
status,
},
failMsg: '申请提现失败'
})
.then(res=>{
hideLoad();
showNone('申请提现成功');
setTimeout(_=>{
this.getDouyinWalletBalance(brand_id);
}, 1200);
})
.catch(hideLoad)
},
}
}

32
src/subpackage/wallet/pages/douyin_withdraw/record.vue

@ -0,0 +1,32 @@
<template>
<view class="withdraw-record">
<view class="wr-list">
<view class="record-item" v-for="i in 10" :key="i">
<record-item></record-item>
</view>
</view>
</view>
</template>
<script>
import recordItem from '../../components/record_item.vue';
export default {
components: {
'record-item': recordItem
}
}
</script>
<style lang="scss">
.withdraw-record{
}
.wr-list{
padding: 24upx 24upx 0;
.record-item{
&+ .record-item{
margin-top: 24upx;
}
}
}
</style>

38
src/subpackage/wallet/pages/index/index.vue

@ -1,6 +1,9 @@
<template>
<view class="wallet-index">
<wallet-info></wallet-info>
<wallet-info
:balance="balance"
@click:douyin="dyBtnClick"
></wallet-info>
<view class="wi-tips">
<view class="wt-tit">温馨提示</view>
<view class="wt-content">
@ -12,7 +15,7 @@
</view>
</view>
<wallet-modal v-if="false"></wallet-modal>
<top-up></top-up>
<!-- <top-up></top-up> -->
</view>
</template>
@ -20,11 +23,42 @@
import walletInfo from './modules/wallet_info.vue'
import walletModalSuccess from '../../components/wallet_modal_success.vue'
import topUp from '../../components/top_up.vue';
import { WALLET_API } from '../../js/api';
import servers from '../../js/server';
import { routeTo } from '@/utils/util'
export default {
components: {
'wallet-info': walletInfo,
'wallet-modal': walletModalSuccess,
'top-up': topUp
},
data(){
return {
brand_id: '',
balance: 0,
}
},
onLoad(options){
this.brand_id = options.brand_id ?? '';
this.getWalletBalance(options.brand_id);
},
methods: {
getWalletBalance(brand_id){
servers.get({
url: WALLET_API.walletBalance,
data: {
brand_id: brand_id
},
failMsg: '获取钱包余额失败'
})
.then(res=>{
this.balance = +res.balance ?? 0;
console.log(res);
})
},
dyBtnClick(){
routeTo(`/subpackage/wallet/pages/douyin_withdraw/index?brand_id=${this.brand_id ?? ''}`, 'nT');
}
}
}
</script>

14
src/subpackage/wallet/pages/index/modules/wallet_info.vue

@ -16,7 +16,7 @@
<view class="wa-balance">
<view class="wb-money">
<text class="wm-unit">¥</text>
19990.00
{{ balance }}
</view>
<view class="wb-btn">充值</view>
</view>
@ -25,7 +25,7 @@
<view class="wb-item">
<text class="wi-txt">宝付提现</text>
</view>
<view class="wb-item">
<view class="wb-item" @click="$emit('click:douyin')">
<image class="wi-icon"></image>
<text class="wi-txt">抖音提现</text>
</view>
@ -35,7 +35,15 @@
<script>
export default {
props: {
balance: {
type: Number,
default: 0
}
},
methods: {
}
}
</script>

9
src/utils/util.js

@ -50,7 +50,7 @@ export const routeTo = (url,type) => {
}
}
function showNone(txt,duration=1500){
export function showNone(txt,duration=1500){
uni.hideToast();
uni.hideLoading();
uni.showToast({
@ -61,16 +61,17 @@ function showNone(txt,duration=1500){
})
}
function showLoad(title='加载中', mask=true){
export function showLoad(title='加载中', mask=true){
uni.showLoading({
mask,
title,
})
}
function hideLoad(){
export function hideLoad(){
uni.hideLoading()
}
function showModal({
export function showModal({
title='提示',
content='',
showCancel=false,

Loading…
Cancel
Save