diff --git a/jiuyi2/api/mine.js b/jiuyi2/api/mine.js index 38c664c7..1b08a2d9 100644 --- a/jiuyi2/api/mine.js +++ b/jiuyi2/api/mine.js @@ -297,6 +297,61 @@ const mine = { method: 'POST', }) }, + + /** + * 账号解冻 + * @param {Object} param + */ + getWalletBillList(param) { + return util.request({ + url: '/user/walletTransaction/list', + data: param.data, + query: param.query, + method: 'GET', + load: true, + }) + }, + + /** + * 支付宝提现 + * @param {Object} param + */ + getToAlipay(param) { + return util.request({ + url: '/user/alipay/withdraw', + data: param.data, + query: param.query, + method: 'POST', + load: true, + }) + }, + + /** + * 银行卡提现 + * @param {Object} param + */ + getToBank(param) { + return util.request({ + url: '/user/alipay/withdrawToBankCard', + data: param.data, + query: param.query, + method: 'POST', + load: true, + }) + }, + + /** + * 获取提现配置 + * @param {Object} param + */ + getPayConfig(param) { + return util.request({ + url: '/user/alipay/getPayConfig', + data: param.data, + query: param.query, + method: 'GET', + }) + }, } export default mine \ No newline at end of file diff --git a/jiuyi2/pages/index/dataCenter/push.vue b/jiuyi2/pages/index/dataCenter/push.vue index ee2994e7..2fb4a106 100644 --- a/jiuyi2/pages/index/dataCenter/push.vue +++ b/jiuyi2/pages/index/dataCenter/push.vue @@ -18,17 +18,18 @@ import util from '@/common/js/util'; // api import api from '@/api/index.js' - import videoApi from '@/api/video.js' import { onLoad, onReady, onHide, onUnload, } from '@dcloudio/uni-app' + // 顶部 import apex from '@/components/header/apex.vue'; // 视频菜单 import videoMenu from '@/components/index/videoMenu.vue'; + const { proxy } = getCurrentInstance() @@ -37,7 +38,6 @@ const userinfo = computed(() => store.state.userinfo) // 榴莲果兑换播放量数量 const durainView = ref(0) - // 列表数据 const list = reactive({ data: [], @@ -182,7 +182,7 @@ return } - videoApi.pushVideo({ + api.video.pushVideo({ query: { ids: videoIds.value.join(','), } @@ -219,7 +219,7 @@ return } - videoApi.applyVideo({ + api.video.applyVideo({ data: { videoIds: videoIds.value.join(","), author: apply.author, @@ -256,17 +256,15 @@ }) } - // + // 推流收藏视频 function pushCollect() { - uni.navigateTo({ - url: util.setUrl('/pages/index/dataCenter/pushVideoCollects', { - ids: collectVideoIds.value.join(','), - }) - }) + link(util.setUrl('/pages/index/dataCenter/pushVideoCollects', { + ids: collectVideoIds.value.join(','), + })) } // 跳转 - function navigateToPage(path) { + function link(path) { uni.navigateTo({ url: path }); @@ -277,7 +275,7 @@ <view class="app"> <apex title="投流推广"> <template #right> - <view class="c333 f28" @click="navigateToPage('/pages/index/dataCenter/pushHistory')">历史推流</view> + <view class="c333 f28" @click="link('/pages/index/dataCenter/pushHistory')">历史推流</view> </template> </apex> @@ -432,7 +430,6 @@ </scroll-view> </view> </uni-popup> - </template> <style lang="scss" scoped> diff --git a/jiuyi2/pages/index/wallet/bill.vue b/jiuyi2/pages/index/wallet/bill.vue index 3849a8db..0de9efec 100644 --- a/jiuyi2/pages/index/wallet/bill.vue +++ b/jiuyi2/pages/index/wallet/bill.vue @@ -13,27 +13,148 @@ onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app' + // + import api from '@/api/index.js' + // 工具库 + import util from '@/common/js/util.js' + // 列表 + const list = reactive({ + pageSize: 10, + pageNum: 1, + data: [], + total: 0, + }) + // 类型列表 + const typeList = reactive([{ + name: '全部', + id: '', + }, + { + name: '余额', + id: 'balance', + }, + { + name: '积分', + id: 'score', + }, + { + name: '种子', + id: 'seed', + }, + { + name: '榴莲果', + id: 'fruit', + } + ]) + // 类型索引 + const typeIndex = ref(0) onLoad(() => { - // + // 获取列表 + getList() }) + + onReachBottom(() => { + // 获取更多列表 + getMoreList() + }) + + onPullDownRefresh(() => { + // 重载当前列表 + refreshList() + }) + + // 重载当前列表 + function refreshList() { + list.pageNum = 1 + getList() + } + + // 获取更多列表 + function getMoreList() { + if (list.data.length >= list.total) return + list.pageNum++ + getList() + } + + // 获取列表 + function getList() { + api.mine.getWalletBillList({ + query: { + pageSize: list.pageSize, + pageNum: list.pageNum, + type: typeList[typeIndex.value].id, + } + }).then(rs => { + if (rs.code == 200) { + if (list.pageNum == 1) list.data.length = 0 + list.data.push(...rs.rows.map(item => { + // 交易类型 + item.typeName = typeList.find(type => type.id == item.type).name + return item + })) + list.total = rs.total + return + } + util.alert({ + content: rs.msg, + showCancel: false, + }) + }) + } + + /** + * 账单 + * @param {Object} index + */ + function handleTypeIndex(index) { + if (typeIndex.value === index) return + typeIndex.value = index + // 重载当前列表 + refreshList() + } </script> <template> <view class="app"> - <view class="listBox mtb30 mlr30"> + <view class="typeList df bfff shadow"> + <view class="item f1 fmid fdc" v-for="(item,index) in typeList" :class="{active: index == typeIndex}" + @click="handleTypeIndex(index)"> + <view class="txt">{{item.name}}</view> + <view class="line"></view> + </view> + </view> - <view class="list oh mtb30 plr30 bfff br20" v-for="(item,index) in 3" :key="index"> - <view class="line tac"> - <view class="title mtb30">使用积分支付</view> + <view class="ghost"></view> + + <view class="listBox mtb30 mlr30"> + <view class="list oh mtb30 plr30 bfff br20" v-for="(item,index) in list.data" :key="item.id"> + <view class="line ptb20 tac"> + <view class="title mtb30">{{item.reason}}</view> <view class="price mtb30 c111"> - <text class="unit">¥</text> - <text class="numer b">1000</text> + <text class="numer b">{{item.amount}}</text> </view> - <view class="time mtb30 c999 f28">2024.12.07 17:00</view> </view> - <view class="line rows"> + <view class="line f28"> + <view class="df aic mtb20"> + <view class="key w150">明细类型</view> + <view class="value f1 c999">{{item.typeName}}</view> + </view> + + <view class="df aic mtb20"> + <view class="key w150">交易时间</view> + <view class="value f1 c999">{{item.createTime}}</view> + </view> + + <view class="df aic mtb20" @click.stop="util.copyText(item.transactionId)"> + <view class="key w150">订单流水</view> + <view class="value f1 thd c999">{{item.transactionId}}</view> + <image class="copy wh24" src="/static/copy.png" mode="aspectFit" /> + </view> + </view> + + <view class="line ptb20 rows" v-if="0"> <view class="key">查看详情</view> <uni-icons type="right" /> </view> @@ -45,14 +166,49 @@ </template> <style lang="scss" scoped> + // + .ghost, + .typeList { + height: 100rpx; + } + + // 类型列表 + .typeList { + position: fixed; + top: clac(-window-top + 0); + left: 0; + right: 0; + z-index: 10; + + .item { + color: #999; + transition: .3s; + + .line { + width: 80rpx; + height: 6rpx; + margin-top: 5rpx; + background-color: #333; + border-radius: 20rpx; + opacity: 0; + transition: .3s; + } + + &.active { + color: #333; + + .line { + opacity: 1; + } + } + } + } + // 列表盒子 .listBox { // 列表 .list { - .line { - padding: 20rpx 0; - } .line+.line { border-top: 2rpx solid #ddd; @@ -61,7 +217,7 @@ // .price { .unit { - font-size: 40rpx; + // font-size: 40rpx; } .numer { diff --git a/jiuyi2/pages/index/wallet/get.vue b/jiuyi2/pages/index/wallet/get.vue index 35d42e9d..32d75b54 100644 --- a/jiuyi2/pages/index/wallet/get.vue +++ b/jiuyi2/pages/index/wallet/get.vue @@ -5,30 +5,97 @@ reactive, ref } from 'vue'; + import { + onLoad, + onReady, + onUnload, + } from '@dcloudio/uni-app' + // 工具库 import util from '@/common/js/util'; + // 接口 import api from '@/api/index.js'; // 表单 const form = reactive({ - amount: '', + withdrawAmount: '', }) - // 提现方式列表 const typeList = reactive([{ - key: 'bank', - name: '银行卡', - }, - { - key: 'wechat', - name: '微信', - }, - { - key: 'alipay', - name: '支付宝', - } - ]) + key: 'alipay', + name: '支付宝', + confirm: (event) => getToAlipay(event) + }, { + key: 'wechat', + name: '微信', + confirm: (event) => getToWechat(event) + }, { + key: 'bank', + name: '银行卡', + confirm: (event) => getToBank(event) + }, ]) // 支付方式下标 const typeIndex = ref(0) + // 支付宝账号 + const alipayAccount = ref('未绑定') + // 微信账号 + const wechatAccount = ref('未绑定') + // 提现配置 + const config = reactive({}) + + onLoad(() => { + // 获取已绑定的账号 + getBindAccount() + // 获取提现配置 + getPayConfig() + }) + + onUnload(() => { + // 移除监听 + removeListener() + }) + + // 开启监听 + function addListener() { + uni.$on('updateBindingAccount', () => { + // 获取已绑定的账号 + getBindAccount() + }) + } + + // 移除监听 + function removeListener() { + uni.$off('updateBindingAccount') + } + + // 获取提现配置 + function getPayConfig() { + api.mine.getPayConfig({}).then(rs => { + if (rs.code == 200) { + Object.assign(config, {}, rs.data) + return + } + util.alert({ + content: rs.msg, + showCancel: false, + }) + }) + } + + // 获取已绑定的账号 + function getBindAccount() { + api.mine.getBindAccount().then(rs => { + if (rs.code == 200) { + const result = rs.data + if (result.alipayId) alipayAccount.value = result.alipayId + if (result.wechatId) wechatAccount.value = result.wechatId + return + } + util.alert({ + content: rs.msg, + showCancel: false, + }) + }) + } /** * 切换下标 @@ -44,6 +111,81 @@ function handleFast() { // 银行取银行卡 微信 支付宝去我的绑定页面 } + + /** + * 跳转 + * @param {Object} url 跳转 + */ + function link(url) { + uni.navigateTo({ + url, + }) + } + + // 点击提现 + function handleSubmit() { + if (!form.withdrawAmount) { + util.alert('提现金额不能为空') + return + } + if (form.withdrawAmount < config.minWithdrawalAmount) { + util.alert(`提现金额不能小于${config.minWithdrawalAmount}`) + return + } + // + typeList[typeIndex.value].confirm() + } + + // 提现到支付宝 + function getToAlipay() { + api.mine.getToAlipay({ + query: { + account: alipayAccount.value, + withdrawAmount: form.withdrawAmount, + } + }).then(rs => { + if (rs.code == 200) { + // 提现回调 + getToWalletCallback() + return + } + util.alert({ + content: rs.msg, + showCancel: false, + }) + }) + } + + // 提现到微信 + function getToWechat() { + util.alert('微信暂未开通,请联系管理员') + } + + // 提现到银行卡 + function getToBank() { + api.mine.getToBank({}).then(rs => { + if (rs.code == 200) { + // 提现回调 + getToWalletCallback() + + util.alert({ + content: '已发起提现申请,请等待后台审核', + showCancel: false, + }) + return + } + util.alert({ + content: rs.msg, + showCancel: false, + }) + }) + } + + // 提现回调 + function getToWalletCallback() { + // 获取钱包 + util.getPurse() + } </script> <template> @@ -54,14 +196,14 @@ <view class="key">提现金额</view> <view class="value inputBox df aic"> <view class="c333 f40 b">¥</view> - <input type="text" v-model="form.amount" placeholder="输入金额" /> + <input type="text" v-model="form.withdrawAmount" placeholder="输入金额" /> </view> </view> <view class="line"> <view class="key rows"> <view>选择提现方式</view> - <view class="c999 f26" @click="handleFast">快速选择</view> + <view class="c999 f26" @click="handleFast" v-if="typeList[typeIndex].key === 'bank'">快速选择</view> </view> <picker :range="typeList" range-key="name" @change="handleTypeIndex"> <view class="value inputBox rows"> @@ -71,8 +213,8 @@ </picker> </view> + <!-- 银行卡 --> <template v-if="typeList[typeIndex].key === 'bank'"> - <view class="line"> <view class="key">银行名称</view> <view class="value inputBox"> @@ -88,6 +230,7 @@ </view> </template> + <!-- 微信 --> <template v-if="typeList[typeIndex].key === 'wechat'"> <view class="line"> <view class="key">微信号</view> @@ -97,22 +240,30 @@ </view> </template> + <!-- 支付宝 --> <template v-if="typeList[typeIndex].key === 'alipay'"> <view class="line"> - <view class="key">支付宝账号</view> - <view class="value inputBox"> - <input v-model="form.alipay" placeholder="输入金额" /> + <view class="key f1">支付宝账号</view> + + <view class="value df aic inputBox" @click="link('/pages/mine/setting/binding')"> + {{alipayAccount}} </view> </view> </template> + <!-- 温馨提示 --> <view class="line notice ptb20 plr30 br20"> <view class="key">温馨提示</view> - <view class="content mt15 c333 f28">为保证账户资金安全,请仔细核对好填写信息,在申请提现</view> + <view class="content mt15 c333 f28"> + <view>为保证账户资金安全,请仔细核对好填写信息,再申请提现</view> + <view>每次最低提现金额 {{config.minWithdrawalAmount}}</view> + <view>每次提现手续费 {{config.feeRate * 100}}%</view> + <view>每日最多提现次数 {{config.dailyWithdrawalLimit}}</view> + </view> </view> <view class="line"> - <view class="btn pro black">提现</view> + <view class="btn pro black" @click="handleSubmit">提现</view> </view> </view> diff --git a/jiuyi2/pages/index/wallet/wallet.vue b/jiuyi2/pages/index/wallet/wallet.vue index 6ec07685..51d4b780 100644 --- a/jiuyi2/pages/index/wallet/wallet.vue +++ b/jiuyi2/pages/index/wallet/wallet.vue @@ -244,7 +244,10 @@ <scroll-view scroll-y="true" class="scroll" @scrolltolower="getMoreGetList"> <view class="list c333 f30"> <view class="item mtb30 f32" v-for="(item,index) in getLog.data" :key="index"> - <view>{{item.typeName}}{{item.amount}}</view> + <view class="rows"> + <view class="f1 f32">{{item.typeName}}</view> + <view class="f28">{{item.amount}}积分</view> + </view> <view class="time mt10 c999 f28 ">{{item.createTime}}</view> </view> </view> diff --git a/jiuyi2/pages/mine/setting/binding.vue b/jiuyi2/pages/mine/setting/binding.vue index 37a740d7..9ad9c3f8 100644 --- a/jiuyi2/pages/mine/setting/binding.vue +++ b/jiuyi2/pages/mine/setting/binding.vue @@ -91,6 +91,7 @@ data, }).then(rs => { if (rs.code == 200) { + uni.$emit('updateBindingAccount') // detail[bindItem.value.key] = bindItem.value.value // diff --git a/jiuyi2/pages/mine/setting/setting.vue b/jiuyi2/pages/mine/setting/setting.vue index 4afb4cf2..525f795e 100644 --- a/jiuyi2/pages/mine/setting/setting.vue +++ b/jiuyi2/pages/mine/setting/setting.vue @@ -173,7 +173,7 @@ <template v-if="userinfo.id"> <view class="area"> - <view class="line rows" @click="link('/pages/mine/setting/usePay')"> + <view class="line rows" @click="link('/pages/mine/setting/usePay')" v-if="0"> <view class="">先用后付</view> <uni-icons type="right" /> </view> diff --git a/jiuyi2/pages/news/news.vue b/jiuyi2/pages/news/news.vue index 994fc7ce..a81b3c52 100644 --- a/jiuyi2/pages/news/news.vue +++ b/jiuyi2/pages/news/news.vue @@ -1,164 +1,161 @@ <script setup> -// 消息 + // 消息 -import { - ref, - reactive, - computed, -} from 'vue' -import { - useStore, -} from 'vuex' -import { - onLoad, - onUnload, -} from '@dcloudio/uni-app' -// 腾讯云聊天 -import TencentCloudChat from '@tencentcloud/chat'; + import { + ref, + reactive, + computed, + } from 'vue' + import { + useStore, + } from 'vuex' + import { + onLoad, + onUnload, + } from '@dcloudio/uni-app' + // 腾讯云聊天 + import TencentCloudChat from '@tencentcloud/chat'; -// 头部导航栏 -import apex from '@/components/header/apex' -// 未登录 -import noLogin from '@/components/login/noLogin.vue' -// 通讯录 -import book from '@/components/news/book' -// 群聊列表 -import groupList from '@/components/news/groupList' -// 消息列表 -import msgList from '@/components/news/msgList' -// 底部菜单 -import footerMneu from '@/components/footerMenu/footerMenu' -// 工具库 -import util from '@/common/js/util.js' -// vuex -const store = useStore() -// 菜单列表 -const menuList = reactive([ - { - key: 'group', - name: '即时消息', - load: true, - }, { - key: 'friend', - name: '通讯录', - load: false, - }, - { - key: 'video', - name: '视讯消息', - load: false, - }, - { - key: 'store', - name: '商城消息', - load: false, - }, -]) -// 菜单下标 -const menuIndex = ref('') -// 是否显示搜索菜单 -const showSearch = ref(false) -// im加载 -const imLoad = ref(false) -// 用户信息 -const userinfo = computed(() => { - return store.state.userinfo -}) -// 当前选中的菜单 -const menuCurrent = computed(() => { - return menuList[menuIndex.value] -}) + // 头部导航栏 + import apex from '@/components/header/apex' + // 未登录 + import noLogin from '@/components/login/noLogin.vue' + // 通讯录 + import book from '@/components/news/book' + // 群聊列表 + import groupList from '@/components/news/groupList' + // 消息列表 + import msgList from '@/components/news/msgList' + // 底部菜单 + import footerMneu from '@/components/footerMenu/footerMenu' + // 工具库 + import util from '@/common/js/util.js' + // vuex + const store = useStore() + // 菜单列表 + const menuList = reactive([{ + key: 'group', + name: '即时消息', + load: true, + }, { + key: 'friend', + name: '通讯录', + load: false, + }, + { + key: 'video', + name: '视讯消息', + load: false, + }, + { + key: 'store', + name: '商城消息', + load: false, + }, + ]) + // 菜单下标 + const menuIndex = ref('') + // 是否显示搜索菜单 + const showSearch = ref(false) + // im加载 + const imLoad = ref(false) + // 用户信息 + const userinfo = computed(() => { + return store.state.userinfo + }) + // 当前选中的菜单 + const menuCurrent = computed(() => { + return menuList[menuIndex.value] + }) -onLoad(() => { - // 初始化菜单 - handleMenuIndex(0) + onLoad(() => { + // 初始化菜单 + handleMenuIndex(0) + + // 开启监听 + addListener() + }) + + onUnload(() => { + // 移除监听 + removeListener() + }) // 开启监听 - addListener() -}) + function addListener() { + uni.$chat.on(TencentCloudChat.EVENT.SDK_READY, imLoading); + } + + // im加载完成 + function imLoading() { + imLoad.value = true + } -onUnload(() => { // 移除监听 - removeListener() -}) + function removeListener() { + uni.$chat.off(TencentCloudChat.EVENT.SDK_READY, () => {}); + } -// 开启监听 -function addListener() { - uni.$chat.on(TencentCloudChat.EVENT.SDK_READY, imLoading); -} + /** + * 切换下标 + * @param {Number} index + */ + function handleMenuIndex(index) { + if (menuIndex.value === index) return + menuList.forEach(item => { + item.load = false; + }); + menuList[index].load = true; + menuIndex.value = index + } -// im加载完成 -function imLoading() { - imLoad.value = true -} - -// 移除监听 -function removeListener() { - // #ifdef APP - uni.$chat.off(TencentCloudChat.EVENT.SDK_READY); - // #endif -} - -/** - * 切换下标 - * @param {Number} index - */ -function handleMenuIndex(index) { - if (menuIndex.value === index) return - menuList.forEach(item => { - item.load = false; - }); - menuList[index].load = true; - menuIndex.value = index -} - -// 打开菜单 -function showActionSheet() { - uni.showActionSheet({ - itemList: ['扫一扫', '添加好友', '发起群聊', '我的二维码'], - success: rs => { - switch (rs.tapIndex) { - case 0: - util.scan() - break; - case 1: - uni.navigateTo({ - // url: '/pages/news/addFriend' - url: '/pages/news/newFriend' - }); - break; - case 2: - uni.navigateTo({ - url: '/pages/news/group-chat/index' - }); - break; - case 3: - uni.navigateTo({ - url: '/pages/news/myQr' - }); - break; - default: - break; + // 打开菜单 + function showActionSheet() { + uni.showActionSheet({ + itemList: ['扫一扫', '添加好友', '发起群聊', '我的二维码'], + success: rs => { + switch (rs.tapIndex) { + case 0: + util.scan() + break; + case 1: + uni.navigateTo({ + // url: '/pages/news/addFriend' + url: '/pages/news/newFriend' + }); + break; + case 2: + uni.navigateTo({ + url: '/pages/news/group-chat/index' + }); + break; + case 3: + uni.navigateTo({ + url: '/pages/news/myQr' + }); + break; + default: + break; + } } - } - }) -} + }) + } -function getUserInfos(userRecommend) { - videoApi.getUserInfo({ - query: { - userRecommend: userRecommend, - } - }).then(rs => { - if (rs.data !== null) { - uni.navigateTo({ - url: '/pages/index/beInvited?header=' + rs.data.userPortrait + '&userId=' + rs.data - .userId + '&userNickname=' + - rs.data.userNickname - }); - } - }) -} + function getUserInfos(userRecommend) { + videoApi.getUserInfo({ + query: { + userRecommend: userRecommend, + } + }).then(rs => { + if (rs.data !== null) { + uni.navigateTo({ + url: '/pages/index/beInvited?header=' + rs.data.userPortrait + '&userId=' + rs.data + .userId + '&userNickname=' + + rs.data.userNickname + }); + } + }) + } </script> <template> @@ -229,70 +226,70 @@ function getUserInfos(userRecommend) { </template> <style lang="scss" scoped> -// -.headMenu { - display: grid; - grid-template-columns: repeat(4, 1fr); - grid-gap: 25rpx; - margin: 20rpx; + // + .headMenu { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-gap: 25rpx; + margin: 20rpx; - // 单项 - .option { - height: 120rpx; - background-color: #E2E2E2; - border-radius: 15rpx; - transition: .3s; + // 单项 + .option { + height: 120rpx; + background-color: #E2E2E2; + border-radius: 15rpx; + transition: .3s; - // 激活的 - &.active { - color: #fff; + // 激活的 + &.active { + color: #fff; - // 朋友 - &.friend, - &.group, - &.video { - background-image: linear-gradient(126deg, #27EFE2 0%, #A45EFF 43%, #FF004F 100%); + // 朋友 + &.friend, + &.group, + &.video { + background-image: linear-gradient(126deg, #27EFE2 0%, #A45EFF 43%, #FF004F 100%); + } + + // 商城消息 + &.store { + background-image: linear-gradient(270deg, #FF9B27 20%, #FDC123 103%); + } } + } - // 商城消息 - &.store { - background-image: linear-gradient(270deg, #FF9B27 20%, #FDC123 103%); - } + // 卡通 + .cartoon { + margin-top: -15rpx; + margin-right: -25rpx; + width: 194rpx; + height: 175rpx; + transform: rotate(-5deg); } } - // 卡通 - .cartoon { - margin-top: -15rpx; - margin-right: -25rpx; - width: 194rpx; - height: 175rpx; - transform: rotate(-5deg); + // 搜索条 + .searchBox { + overflow: hidden; + height: 0; + transition: .3s; + + &.active { + height: 80rpx; + } } -} -// 搜索条 -.searchBox { - overflow: hidden; - height: 0; - transition: .3s; - - &.active { - height: 80rpx; + // 容器 + .swiper { + flex: 1; + width: 100%; } -} -// 容器 -.swiper { - flex: 1; - width: 100%; -} - -// 正在加载 -.loading { - display: flex; - justify-content: center; - align-items: center; - height: 100%; -} + // 正在加载 + .loading { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + } </style> \ No newline at end of file diff --git a/jiuyi2/readme.md b/jiuyi2/readme.md index 20f473c9..111c7cca 100644 --- a/jiuyi2/readme.md +++ b/jiuyi2/readme.md @@ -64,6 +64,8 @@ selectAddress 选择地址 updateOrderList 更新订单列表 updateOrderDetail 更新订单详情 updateUserProduct 更新用户商品 +updateBindingAccount 更新绑定账号 +selectBindingBank 选择绑定的银行卡 缓存 ---