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 选择绑定的银行卡
 
 缓存
 ---