前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】

目录

    • 效果图
      • 图1
      • 图2
    • 源码
    • 最后

这个案例是uniapp,同样也适用Vue项目,语法一样for循环,点击切换

效果图

图1

在这里插入图片描述

图2

在这里插入图片描述

源码

直接代码复制查看效果

<template>
	<view class="my-helper-service-pass">
		<view class="tab-service-box">
			
			<view class="new-tab-item" @click="getTabIndex(index,item.supplier_grade_id)" v-for="(item,index) in grade_list"  :class="{ active: currentTab === index }" >
				<view class="bottomline">
					<text class="bottomline-txt1">{{item.name}}</text>
					
					<view class="bottomline-txt2"><text>{{item.upgrade_money}}</text>
					</view>
					<text class="bottomline-txt3">免{{item.reduce_commission}}元手续费</text>
					<text class="bottomline-txt4">送{{item.message_num}}条商机提醒</text>
				</view>
			</view>
		</view>
		
		<view class="submit-service-box">
			<view class="submit-service-btn d-c-c" @click="submitServie">
				确认开通并支付¥{{upgrade_money}}
			</view>
		</view>

		<view class="agreement-box">
			<view class="agreement" @click="isRead=!isRead">
				<view :class="isRead?'active agreement-new':'agreement-new'"></view>
				同意万事直帮<text @click="xieyi('service')">《服务通服务协议》</text>
			</view>
		</view>

		<!-- 尊享8大服务权益 -->
		<view class="equity-box">
			<view class="equity-tit">
				<view class="equity-tit-lft">
				</view>
				<view class="equity-tit-txt">
					尊享8大服务权益
				</view>
				<view class="equity-tit-rgt">
				</view>
			</view>
			<view class="equity-list">
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass1.png" mode=""></image> -->
					<text class="equity-list-item1">可以发布</text>
					<text class="equity-list-item1">{{release_num}}个服务</text>
				</view>
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass2.png" mode=""></image> -->
					<text class="equity-list-item1">优质万事直帮</text>
					<text class="equity-list-item1">服务标识</text>
				</view>
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass3.png" mode=""></image> -->
					<text class="equity-list-item1">提现</text>
					<text class="equity-list-item1">T+0到账</text>
				</view>
			</view>

			<view class="equity-list equity-list2">
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass4.png" mode=""></image> -->
					<text class="equity-list-item1">服务项目排名</text>
					<text class="equity-list-item1">优先展示</text>
				</view>
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass5.png" mode=""></image> -->
					<text class="equity-list-item1">减免{{reduce_commission}}元的</text>
					<text class="equity-list-item1">订单手续费</text>
				</view>
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass6.png" mode=""></image> -->
					<text class="equity-list-item1">导师在线指导</text>
					<text class="equity-list-item1">接单赚钱</text>
				</view>
			</view>

			<view class="equity-list equity-list2">
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass7.png" mode=""></image> -->
					<text class="equity-list-item1">享受平台站内和</text>
					<text class="equity-list-item1">站外流量扶持</text>
				</view>
				<view class="equity-list-item">
					<!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass8.png" mode=""></image> -->
					<text class="equity-list-item1">赠送{{message_num}}条短信</text>
					<text class="equity-list-item1">服务商机提醒,包含对话和订单提醒</text>
				</view>
			</view>
		</view>

		<view class="block-btm">

		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				currentTab: 0,
				removeobstaclesfrom: '', //开通需要传的参数
				isRead: false,
				// grade_list: [],
				supplier_grade_id: '',
				payPrice:'',//支付的钱数
				service_vip_url:'',
				upgrade_money:'',
				release_num:'',
				reduce_commission:'',
				message_num:'',
				
				grade_list:[]
			}
		},
		mounted() {
			this.getVipListData();
		},
		methods: {
			// VIP列表
			getVipListData() {
				let self = this;
				self.isloadding = true;
				self._get('supplier.grade/gradeList', {}, function(res) {
					// 实际接口返回的现在用,测试的,暂且注释,用下面第二个数据赋值
					// 第一个赋值
					// self.grade_list = res.data.grade_list;
					// 接口返回的数据,复制过来的
					let getList = [
					  {
					    "supplier_grade_id": 3,
					    "name": "1个月",
					    "upgrade_money": 188,
					    "is_default": 0,
					    "weight": 110,
					    "reduce_commission": 188,
					    "release_num": 6,
					    "message_num": 188,
					    "time": 30,
					    "is_delete": 0,
					    "app_id": 10001,
					    "create_time": "2023-09-28 13:50:54",
					    "update_time": "2023-12-29 10:25:38"
					  },
					  {
					    "supplier_grade_id": 4,
					    "name": "3个月",
					    "upgrade_money": 388,
					    "is_default": 0,
					    "weight": 120,
					    "reduce_commission": 388,
					    "release_num": 10,
					    "message_num": 388,
					    "time": 90,
					    "is_delete": 0,
					    "app_id": 10001,
					    "create_time": "2023-10-19 15:55:03",
					    "update_time": "2023-12-29 10:25:45"
					  },
					  {
					    "supplier_grade_id": 5,
					    "name": "12个月",
					    "upgrade_money": 688,
					    "is_default": 0,
					    "weight": 127,
					    "reduce_commission": 688,
					    "release_num": 18,
					    "message_num": 700,
					    "time": 365,
					    "is_delete": 0,
					    "app_id": 10001,
					    "create_time": "2023-12-13 09:57:32",
					    "update_time": "2023-12-29 10:37:04"
					  }
					]
					// 第二个赋值
					self.grade_list = getList;
					
					// 接口赋值
					// self.supplier_grade_id = res.data.grade_list[0].supplier_grade_id
					// self.upgrade_money = res.data.grade_list[0].upgrade_money
					// console.log(res.data.grade_list[0].release_num,'发布数量');
					// console.log(res.data.grade_list[0].reduce_commission,'发布数量');
					// console.log(res.data.grade_list[0].message_num,'发布数量');
					// self.release_num = res.data.grade_list[0].release_num;
					// self.reduce_commission = res.data.grade_list[0].reduce_commission;
					// self.message_num = res.data.grade_list[0].message_num;
					// self.service_vip_url = res.data.service_vip_url
					
					// 模拟复制过来的接口数据赋值
					self.supplier_grade_id = rgetList[0].supplier_grade_id
					self.upgrade_money = getList[0].upgrade_money
					console.log(getList[0].release_num,'发布数量');
					console.log(getList[0].reduce_commission,'发布数量');
					console.log(getList[0].message_num,'发布数量');
					self.release_num = getList[0].release_num;
					self.reduce_commission = rgetList[0].reduce_commission;
					self.message_num = getList[0].message_num;
					// self.service_vip_url = res.data.service_vip_url


				});
			},
			getTabIndex(index,supplier_grade_id){
				this.currentTab = index;
				
				this.upgrade_money = this.grade_list[index].upgrade_money;
				
				
				this.release_num = this.grade_list[index].release_num;
				this.reduce_commission = this.grade_list[index].reduce_commission;
				this.message_num = this.grade_list[index].message_num;
				
				
				this.supplier_grade_id = supplier_grade_id;
				
			},
			


			xieyi() {
				// let url = '';
				// if (type == 'service') {
				// 	url = this.service;
				// } else {
				// 	url = this.privacy;
				// }
				let url = this.service_vip_url;
				uni.navigateTo({
					url: '/subPages/webview/webview?url=' + url
				});
			},
			submitServie() {
				

				let self = this;
				if (!self.isRead) {
					uni.showToast({
						title: '请同意并勾选协议内容',
						duration: 2000,
						icon: 'none'
					});
					return;
				}

				wx.showModal({
					title: '提示',
					content: '您确认开通吗?',
					success: function(o) {
						if (o.confirm) {
							uni.showLoading({
								title: '正在处理'
							});
							self._post('supplier.grade/deposit', {
								supplier_grade_id: self.supplier_grade_id,
							}, function(res) {
								
								// console.log(res.data.money,'返回的余额');
								// console.log(res.data.order_id,'开通成功');

								let balance = res.data.money;//余额
								
								// let payPrice = self.payPrice;//支付的钱数
								
								let payPrice = self.upgrade_money;//支付的钱数
								let order_id = res.data.order_id
								
								uni.navigateTo({
									url:`/pagesB/user/index_service/my_helper_service_pass/cashier?order_id=${order_id}&balance=${balance}&payPrice=${payPrice}`
								})
								
								
								// console.log(balance,'传余额');
								// console.log(payPrice,'传支付的钱数');
								// console.log(order_id,'传order_id');
								
								
								// let order_id = res.data.order_id
								// uni.navigateTo({
								// 	url:`/pages/user/index_service/my_helper_service_pass/cashier?order_id=' + order_id
								// })
								
								
							});
						}
					}
				});
			}
		}
	}
</script>

<style scoped>
	page {
		/* background: linear-gradient(180deg, #1D1F21 0%, #242629 100%); */
		background-color: black;
	}

	.my-helper-service-pass {
		background-color: black;
	}

	.tab-service-box {
		/* margin: 26rpx 32rpx 0 32rpx; */
		margin: 0 32rpx 0 32rpx;
		padding-top: 26rpx;
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
	}

	/* 下面默认未选中样式 */
	.new-tab-item {
		width: 214rpx;
		height: 258rpx;
		background: linear-gradient(180deg, #FEEFD3 0%, #E2C091 100%);
		border-radius: 16rpx 16rpx 16rpx 16rpx;
		opacity: 1;

		border-radius: 16rpx 16rpx 16rpx 16rpx;
	}

	.new-tab-item .bottomline {
		display: flex;
		justify-content: center;
		flex-direction: column;
		align-items: center;
	}


	.bottomline-txt1 {
		margin-top: 22rpx;
		font-size: 28rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #231F18;
		line-height: 52rpx;
	}

	.bottomline-txt2 {
		margin-top: 8rpx;
		font-size: 36rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #663211;
		line-height: 52rpx;
	}

	.bottomline-txt2 text {
		font-size: 48rpx;
		font-weight: 700;
	}

	.bottomline-txt3 {
		margin-top: 8rpx;
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #2B2B2B;
		line-height: 52rpx;
	}

	.bottomline-txt4 {
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #2B2B2B;
		line-height: 52rpx;
	}


	/* 下面选中样式 */
	.tab-service-box .active {
		width: 214rpx;
		height: 258rpx;
		background: #1F2123;
		border-radius: 16rpx 16rpx 16rpx 16rpx;
		opacity: 1;
		border: 2rpx solid;
		border-image: linear-gradient(180deg, rgba(164.00000542402267, 104.00000140070915, 66.00000366568565, 1), rgba(226.0000017285347, 192.00000375509262, 145.00000655651093, 1)) 2 2;
		display: flex;
		flex-direction: column;
		border-radius: 16rpx 16rpx 16rpx 16rpx;
	}



	.tab-service-box .active .bottomline-txt1 {
		margin-top: 22rpx;
		font-size: 28rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #FFFFFF;
		line-height: 52rpx;
	}

	.tab-service-box .active .bottomline-txt2 {
		margin-top: 8rpx;
		font-size: 36rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #E2C091;
		line-height: 52rpx;
	}

	.tab-service-box .active .bottomline-txt2 text {
		font-size: 48rpx;
		font-weight: 700;
	}


	.tab-service-box .active .bottomline-txt3 {
		margin-top: 8rpx;
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #FFFFFF;
		line-height: 52rpx;
	}

	.tab-service-box .active .bottomline-txt4 {
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #FFFFFF;
		line-height: 52rpx;
	}

	.submit-service-box {
		display: flex;
		justify-content: center;
		margin-top: 60rpx;
	}

	.submit-service-btn {
		width: 554rpx;
		height: 80rpx;
		background: linear-gradient(180deg, #FEF0D4 0%, #E1BF8F 100%);
		border-radius: 60rpx 60rpx 60rpx 60rpx;
		opacity: 1;
		font-size: 28rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 700;
		color: #663211;
		line-height: 64rpx;
	}

	.agreement-box {
		display: flex;
		justify-content: center;
		margin-top: 16rpx;
	}

	.agreement {
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #FFFFFF;
		line-height: 52rpx;
		display: flex;
		align-items: center;
	}

	.agreement text {
		font-size: 24rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #E1BF8F;
		line-height: 52rpx;
	}

	.agreement-new {

		border-radius: 50%;
		width: 28rpx;
		height: 28rpx;
		border: 2rpx solid #999999;

		background: #fff;
		position: relative;
		margin-right: 10rpx;
		box-sizing: border-box;

	}

	.agreement-new.active::after {

		content: '';
		width: 16rpx;
		height: 16rpx;
		background: linear-gradient(180deg, #FEF0D4 0%, #C19D6C 100%);
		border-radius: 50%;
		position: absolute;
		left: 0;
		top: 0;
		right: 0;
		bottom: 0;
		margin: auto;
	}

	.equity-box {
		margin: 32rpx 30rpx 0 32rpx;
		height: 770rpx;
		background: linear-gradient(117deg, #323232 0%, #1B1B1B 100%);
		border-radius: 20rpx 20rpx 20rpx 20rpx;
		opacity: 1;
		display: flex;
		flex-direction: column;
		/* margin-bottom: 154rpx; */
	}



	.equity-tit {
		display: flex;
		align-items: center;
		justify-content: center;
		margin-top: 28rpx !important;
	}

	.equity-tit-lft {
		width: 40rpx;
		height: 4rpx;
		background: linear-gradient(270deg, #E1C092 0%, rgba(216, 216, 216, 0) 100%);
		border-radius: 72rpx 72rpx 72rpx 72rpx;
		opacity: 1;
		margin-right: 20rpx;
	}

	.equity-tit-txt {
		font-size: 42rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 700;
		color: #F4DFBA;
		line-height: 64rpx;
	}

	.equity-tit-rgt {
		width: 40rpx;
		height: 4rpx;
		background: linear-gradient(270deg, #E1C092 0%, rgba(216, 216, 216, 0) 100%);
		border-radius: 72rpx 72rpx 72rpx 72rpx;
		opacity: 1;
		transform: rotate(180deg);
		margin-left: 20rpx;
	}

	.equity-list {
		margin-top: 20rpx;
		display: flex;
		/* justify-content: space-between; */
		justify-content: space-around;
		/* margin-left: 60rpx;
		margin-right: 66rpx; */
	}

	.equity-list-item {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	.equity-list-item image {
		width: 76rpx;
		height: 76rpx;
		background: #231F18;
		opacity: 1;
		border-radius: 16rpx;
		margin-bottom: 12rpx;
	}

	.equity-list-item1 {
		font-size: 28rpx;
		font-family: Microsoft YaHei, Microsoft YaHei;
		font-weight: 400;
		color: #FFFFFF;
		line-height: 40rpx;
	}

	.equity-list2 {
		margin-top: 48rpx;
	}

	.block-btm {
		height: 154rpx;
	}
</style>

最后

感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/298532.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记——C++中的循环结构 while语句

while循环语句 作用&#xff1a;满足循环条件&#xff0c;执行循环语句 语法&#xff1a;while&#xff08;循环条件&#xff09;{循环语句} 解释&#xff1a;只要循环条件的结果为真&#xff0c;就执行循环语句 以打印0-9这十个数字为例&#xff0c;特别需要注意的是&…

2.3_7 生产者-消费者问题

2.3_7 生产者-消费者问题 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据) 生产者、消费者共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才…

C# Emgu.CV4.8.0读取rtsp流分段保存

【官方框架地址】 https://github.com/emgucv/emgucv 【算法介绍】 EMGU CV&#xff08;Emgu Computer Vision&#xff09;是一个开源的、基于.NET框架的计算机视觉库&#xff0c;它提供了对OpenCV&#xff08;开源计算机视觉库&#xff09;的封装。EMGU CV使得在.NET应用程序…

基于SSM的网上购物平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

小游戏实战丨基于Tkinter的五子棋小游戏

文章目录 写在前面Tkinter五子棋系列文章写在后面 写在前面 本期内容&#xff1a;基于tkinter的五子棋小游戏 下载地址&#xff1a;https://download.csdn.net/download/m0_68111267/88700190 实验环境 python3.11及以上pycharmtkinter Tkinter Tkinter是Python的一个标准…

useContext

可以跨组件传值 其实主要的就是三步 1、const xxx React.createContext();创建一个context 2、<xxx.Provider value{{ num, setNum }}>父组件设置要传递的值 3、const { num, setNum } React.useContext(xxx);子组件下使用 特点&#xff1a; 1、可以有多个xxx.Pr…

2024.1.5 关于 二叉平衡树(AVL 树)详解

目录 二叉搜索树 二叉搜索树的简介 二叉搜索树的查找 二叉搜索树的效率 AVL树 AVL 树的简介 AVL 树的实现 AVL树的旋转 右单旋 左单旋 左右双旋 右左双旋 完整 AVL树插入代码 验证 AVL 树 AVL 树的性能 二叉搜索树 要想了解关于二叉平衡树的相关知识&#xff0c;了…

RocketMQ详细介绍及核心问题解释(很全)

1. RocketMq是什么 一个纯Java、分布式队列模型的消息中间件&#xff0c;具有高可用、高可靠、高实时、低延迟的特点。&#xff08;记住这句就行了&#xff09; 2. RocketMq有什么功能 1、业务解耦&#xff1a;这也是发布订阅的消息模型。生产者发送指令到MQ中&#xff0c;然…

三英战吕布web3游戏项目启动全流程

项目是一个学习相关的很好的例子并且开源&#xff0c;原本的项目是连接goerli网络&#xff0c;但我把它修改为可连接ganache网络的项目了&#xff0c;更方便启动。 智能合约部分 进入文件 hardhat.config.js &#xff0c;增加一个钱包私钥 2.执行npm install 3.测试合约 npx ha…

DevSecOps 工具:初学者指南

DevSecOps 是开发、安全和运营的融合&#xff0c;标志着软件开发的范式转变&#xff0c;在整个软件开发生命周期 (SDLC)中无缝集成安全性。 这种方法标志着不再将安全视为开发过程中的一个阶段。除了DevSecOps 的核心原则和最佳实践之外&#xff0c;特定工具也是实施和强化安全…

VMware Workstation——快照

目录 一、为什么要使用快照 二、拍摄快照 三、快照管理 1、克隆 2、转到 ​3、删除 一、为什么要使用快照 VMware虚拟机的快照是一个很重要的功能。 简单点说它相当于某个时刻虚拟的备份&#xff0c;并且可以快速还原至原来的状态。但是它和备份还是有区别的。 【快照…

代码快递员:extern如何送达静态变量至各文件目的地

各位少年&#xff0c;大家好&#xff0c;我是博主那一脸阳光。 前言&#xff1a;话说有一天&#xff0c;静态变量先生和extern女士一起去参加编程界的武林大会。静态变量先生自豪地说&#xff1a;“你知道我为什么这么受欢迎吗&#xff1f;因为我可是个低调的富翁&#xff0c;我…

SpringBoot 如何 配置端口号

结论 server:port: 8088演示 [Ref] 快速构建SpringBoot项目

简单工厂模式、工厂方法、抽象工厂模式

下面例子中鼠标&#xff0c;键盘&#xff0c;耳麦为产品&#xff0c;惠普&#xff0c;戴尔为工厂。 简单工厂模式 简单工厂模式不是 23 种里的一种&#xff0c;简而言之&#xff0c;就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂&#xff0c;专业生产鼠标&#xf…

每天刷两道题——第七天+第八天

力扣官网 1.1移动零 给定一个数组 n u m s nums nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序&#xff0c;在不复制数组的情况下原地对数组进行操作。 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 代码 def moveZeroea…

C#,入门教程(10)——常量、变量与命名规则的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(09)——运算符的基础知识https://blog.csdn.net/beijinghorn/article/details/123908269 C#用于保存计算数据的元素&#xff0c;称为“变量”。 其中一般不改变初值的变量&#xff0c;称为常变量&#xff0c;简称“常量”。 无论…

C++ queue

目录 一、介绍 二、queue使用 三、模拟实现 四、优先级队列 五、priority_queue使用 OJ题&#xff1a;215. 数组中的第K个最大元素 快速排序 优先级队列 TOPK 六、模拟实现priority_queue 1、仿函数 2、优先级队列类 3、测试函数 一、介绍 1、队列是一种容器适配器…

SpringSecurity深度学习

SpringSecurity简介 spring Security是什么&#xff1f; Spring Security 是一个强大且高度可定制的身份验证和访问控制框架&#xff0c;用于保护基于Spring的应用程序。它是Spring项目的一部分&#xff0c;旨在为企业级系统提供全面的安全性解决方案。 一个简单的授权和校验…

I/O流基础

1.输入/输出流 流是一组有序的数据序列&#xff0c;根据操作的类型&#xff0c;可以分为输入流和输出流两种。 Java定义的输入输出类被放在java.io包中 所有的输入流类都是抽象类InputStream&#xff08;字节输入流&#xff09;或抽象类Reader&#xff08;字符输入流&#xff…