<template>
	<view class="page">
		<view class="status-bar"></view>
		<view class="content">
			<scroller @init="initScroller" @down="refreshData" @up="getData" :up="optUp"
				@scroll="navFloatShow(scroller)" :fixed="false">
				<!-- 搜索框 -->
				<view :class="fixedSearch? 'fixed-box':'nofixed-box'">
					<view class="search">
						<view class="search-content">
							<image src="../../static/images/ic_search.png" class="icon" mode="aspectFill"></image>
							<input @input="onSearchInput" placeholder="请输入关键字搜索" />
						</view>
						<view class="btn" @click="doSearch">搜索</view>
					</view>
				</view>
				<!-- 轮播图 -->
				<swiper class="swiper" :indicator-dots="true" :autoplay="true" indicator-color="#E4E4E4"
					indicator-active-color="#009749" :circular="true">

					<swiper-item v-for="(item, index) in slider" :key="index" class="swiper-item">
						<image :lazy-load="true" :src="item.imageUrl" mode="scaleToFill" @click="openDetail(item)">
						</image>
					</swiper-item>
				</swiper>
				<!-- 功能按钮 -->
				<!-- <scroll-view scroll-x="true" style="white-space: nowrap;margin-top: 10rpx;height: 140rpx;">
					<view class="func-item" @click="openTrees">
						<image src="../../static/images/ic_old_tree_icon.png" mode="scaleToFill"></image>
						<view class="txt">古树名木</view>
					</view>
					<view class="func-item" @click="openGift">
						<image src="../../static/images/ic_old_tree_icon.png" mode="scaleToFill"></image>
						<view class="txt">捐资捐物</view>
					</view>
					<block v-for="(item,index) in funcList" :key="index">
						<view class="func-item" @click="openOther(item)">
							<image
								:src="item.directoriesPhoto=='' ? '/static/images/ic_old_tree_icon.png':imgUrl+item.directoriesPhoto"
								mode="scaleToFill"></image>
							<view class="txt">{{item.directoriesName}}</view>
						</view>
					</block>
				</scroll-view> -->
				<!-- 新闻列表 -->
				<articleList :list="list" :imgUrl="imgUrl" />
			</scroller>
		</view>
		<pageLoading v-if="showPageLoading"></pageLoading>
		<view v-if="isUpdate">
			<view class="update-view">
				<text class="update-title">App更新</text>
				<view class="update-tip">新版更新内容</view>
				<view class="update-content">
					修复已知Bug,更新App功能。
				</view>
				<block v-if="!downloading">
					<view class="update-btns">
						<view class="btn-cancel" @click="cancelUpdate()">
							取消
						</view>
						<view class="btn-confirm" @click="startDownloadApk()">
							<image class="icon" src="/static/ic_download.png"></image>
							<view class="sure">马上升级</view>
						</view>
					</view>
				</block>
				<view style="width: 100%;" v-else>
					<progress style="width: 100%;" activeColor="#09BB07" stroke-width="3" show-info
						:percent="downloadProgress" backgroundColor="#999999"></progress>
				</view>
			</view>
		</view>
		
	</view>
</template>

<script>
	import scroller from '@/components/scroller/scroller.vue';
	import articleList from '@/components/article/list.vue';
	import pageLoading from '@/components/loading/pageLoading.vue';
	import iconfont from '@/components/iconfont/iconfont.vue';
	import util from '@/common/util.js';
	import sm2 from 'sm-crypto'

	export default {
		components: {
			articleList,
			pageLoading,
			scroller,
			iconfont,
		},
		data() {
			return {
				scroller: {},
				optUp: {
					auto: true,
					onScroll: true,
					page: {
						num: 0, //当前页 默认0,回调之前会加1; 即callback(page)会从1开始
						size: 10 //每页数据条数,默认10
					},
					empty: {
						tip: '暂无文章~'
					}
				},
				category_id: 1,
				category_index: 0,
				scroll_category_id: 'scroll_category_id_0',
				currentSliderIndex: 0,
				category: [],
				showMenu: false,
				slider: [],
				list: [],
				showNoData: false,
				showPageLoading: true,
				showNavFloat: false,
				navBarHeight: '',
				token: "",
				searchContent: "",
				baseurl: this.$api.common.baseUrl,
				imgUrl: this.$api.common.imgUrl,
				upgradeType: 'pkg', //pkg 整包 wgt 升级包
				upgradeContent: '', //更新内容			
				upgradeUrl: '', //更新地址
				funcList: [],
				fixedSearch: false,
				isUpdate: false,
				downloading: false,
				downloadProgress: 0,
			};
		},
		onShow() {

			this.$initPageTitle(); //初始化页面标题
			console.log("page=onShow")
			/*导航栏高度*/
			if (this.navBarHeight == '') {
				this.navBarHeight = this.$app.getNaviBarHeight();
			}

			// /*来源是登录时更新*/
			// let source = uni.getStorageSync('source');
			// console.log(source)
			// if (source == 'login') {
			// 	uni.removeStorageSync('source');
			// 	this.loadData();
			// }
			this.token = getApp().globalData.token
			let userInfo = getApp().globalData.userInfo
			if (this.token && this.token != '' && userInfo.name == undefined) {
				this.getUserInfo()
			}

		},

		onShareAppMessage() {
			return {
				path: '/pages/article/index',
				success: function(e) {},
				title: '全民植树'
			};
		},
		onLoad(e) {
			// #ifdef APP-PLUS
			this.getAppVersion()
			// #endif
			this.getBannerList();

		},
		onPullDownRefresh() {
			uni.showLoading({
				title: '刷新中'
			});
			this.loadData();
		},
		methods: {
			sm3SignTokenParam(code) {
				var uuid = this.getUUID()
				var time = new Date().getTime()
				const data = "app_id=" + this.$api.common.msbAppId + "&app_secret=" + this.$api.common.msbAppSecret +
					"&code=" + code + "&grant_type=authorization_code" + "&time=" + time + "&uuid=" + uuid
				var params = {
					uuid: uuid,
					sign: sm2.sm3(data),
					time: time
				}
				return params;
			},
			getParamsArg(url) {
				let params = url.split('?')[1];
				let paramsObj = {};
				if (typeof(params) == 'undefined' || params == null) {
					return paramsObj;
				}
				let paramsKVs = params.split('&');
				for (let i = 0; i < paramsKVs.length; i++) {
					let item = paramsKVs[i];
					let kvs = item.split('=');
					if (kvs.length === 1) {
						paramsObj[kvs[0]] = null;
						continue;
					}
					paramsObj[kvs[0]] = decodeURI(item.replace(kvs[0] + '=', ''));
				}
				return paramsObj;
			},
			sm3SignUserBaseInfo(token) {
				var uuid = this.getUUID()
				var time = new Date().getTime()
				const data = "app_id=" + this.$api.common.msbAppId + "&app_secret=" + this.$api.common.msbAppSecret +
					"&auth_token=" + token + "&time=" + time + "&uuid=" + uuid
				var params = {
					uuid: uuid,
					sign: sm2.sm3(data),
					time: time
				}
				return params;
			},
			getUUID() {
				var s = [];
				var hexDigits = "0123456789abcdef";
				for (var i = 0; i < 36; i++) {
					s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
				}
				s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
				s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
				s[8] = s[13] = s[18] = s[23] = "-";
				var uuid = s.join("");
				return uuid;
			},
			getAuthorize() {
				var _self = this;
				uni.showLoading({
					title: '加载中...'
				})
				this.$app.request({
					url: this.$api.common.getMsbAuthorize,
					method: 'GET',
					data: {
						app_id: this.$api.common.msbAppId,
						scope: 'base_info%2Cauth_user',
						redirect_uri: encodeURI(
							'https://app.zwfw.nmg.gov.cn/rhpt/16e8a8a578025000')
					},
					dataType: 'json',
					success: res => {
						if (res.data && res.data.code) {
							_self.getMsbToken(res.data.code)
						}
					},
					fail: error => {
						console.log(error)
						uni.hideLoading()
					},
					complete: res => {}
				});
			},
			getMsbToken(code) {
				var _self = this;
				var signParams = _self.sm3SignTokenParam(code)
				this.$app.request({
					url: _self.$api.common.getToken,
					method: 'POST',
					header: {
						'Content-Type': 'application/x-www-form-urlencoded'
					},
					data: {
						app_id: _self.$api.common.msbAppId,
						grant_type: 'authorization_code',
						code: code,
						sign: signParams.sign,
						time: signParams.time,
						uuid: signParams.uuid

					},
					dataType: 'json',
					success: res => {

					},
					fail: error => {
						console.log(error)
						uni.hideLoading()
					},
					complete: res => {
						console.log(res)
						uni.hideLoading()
						if (res.data && res.data.code == 1000) {
							_self.getMsbUserInfo(res.data.data.token)
						}
					}
				});
			},
			getMsbUserInfo(token) {
				var _self = this;
				var params = _self.sm3SignUserBaseInfo(token)
				this.$app.request({
					url: this.$api.common.getMsbUserInfo,
					method: 'POST',
					header: {
						'Content-Type': 'application/x-www-form-urlencoded'
					},
					data: {
						app_id: _self.$api.common.msbAppId,
						auth_token: token,
						sign: params.sign,
						time: params.time,
						uuid: params.uuid

					},
					dataType: 'json',
					success: res => {

					},
					fail: error => {
						console.log(error)
						uni.hideLoading()
					},
					complete: res => {
						uni.hideLoading()
						if (res.data && res.data.code == 1000) {
							_self.doLogin(res.data.data)
						}
					}
				});
			},
			doLogin(user) {
				console.log(user)
				uni.showLoading({
					title: '加载中...'
				})
				var _self = this;
				this.$app.request({
					url: _self.$api.user.msbLogin,
					method: 'POST',
					data: {
						custName: user.custName,
						mobilePhone: user.mobilePhone
					},
					dataType: 'json',
					success: res => {
						uni.hideLoading()
						getApp().globalData.token = res.data
					},
					fail: error => {
						uni.hideLoading()
						uni.showToast({
							icon: 'error',
							title: '请稍后重新进入'
						})
					},
					complete: res => {}
				});
			},
			onSearchInput: function(event) {
				this.searchContent = event.target.value
				console.log(event.target.value)
				if (event.target.value == "") {
					this.refreshData()
				}
			},
			openDetail(item) {
				if ('古树名木' == item.newsContentTitle) {
					uni.navigateTo({
						url: '/pages/news/oldtrees'
					})
				} else {
					uni.navigateTo({
						url: '/pages/news/newsdetail?id=' + item.newsContentId
					})
				}
			},
			cancelUpdate() {
				this.isUpdate = false
			},
			//捐资捐物
			openGift() {
				uni.navigateTo({
					url: '/pages/news/giftpage'
				})
			},
			openLogin() {
				uni.navigateTo({
					url: '/pages/user/login'
				})
			},
			/*初始化滚动*/
			initScroller(scroller) {
				this.scroller = scroller;
				this.loadData();
			},

			/*刷新数据*/
			refreshData() {
				uni.showLoading({
					title: '刷新中'
				});
				this.scroller.resetUpScroll();
				this.getBannerList();
				this.funcList = [];
				// this.getMainFunc();
			},

			/*加载数据*/
			loadData() {
				this.slider = [];
				this.list = [];
				this.currentSliderIndex = 0;
				this.scroller.resetUpScroll();
			},

			/*获取子类别数据*/
			getCategory() {
				console.log("获取类别")
				this.$app.request({
					url: this.$api.news.getMainFun,
					method: 'GET',
					data: {
						'newsDirectoriesId': this.$api.news.NEWS_MAIN_TAB
					},
					dataType: 'json',
					success: res => {
						if (res != undefined && res.length > 0) {
							this.category = res;
							if (this.category_index > -1) {
								let nextIndex = this.category_index - 1;
								nextIndex = nextIndex <= 0 ? 0 : nextIndex;
								this.scroll_category_id = `category_id-${nextIndex}`; //动画滚动,滚动至中心位置
							}
						} else {
							this.$alert(res.msg);
						}
					},
					complete: res => {}
				});
			},

			/*获取数据*/
			getData() {
				this.$app.request({
					url: this.$api.news.getNewsList,
					data: {
						newsDirectoriesId: this.$api.news.NEWS_MAIN_ID,
						page: this.scroller.num,
						rows: this.scroller.size,
						keywords: this.searchContent
					},
					method: 'GET',
					dataType: 'json',
					success: res => {
						if (res.rows != undefined) {
							if (this.scroller.num == 1) {
								this.list = [];
							}
							this.list = this.list.concat(res.rows);
							this.scroller.endBySize(res.rows.length, res.rows.total);
							this.showPageLoading = false;
						} else {
							this.scroller.endSuccess();
							this.$alert(res.msg);
						}
					},
					fail: res => {
						this.scroller.endErr();
					},
					complete: res => {
						console.log(res)
						uni.stopPullDownRefresh();
						uni.hideLoading();
					}
				});
			},

			/*切换导航*/
			categoryChange(category_id, index) {
				this.showMenu = false;
				this.category_index = index;
				this.category_id = category_id;
				var nextIndex = index - 1;
				nextIndex = nextIndex <= 0 ? 0 : nextIndex;
				this.scroll_category_id = `category_id-${nextIndex}`; //动画滚动,滚动至中心位置
				this.loadData();

				// #ifdef H5
				// uni.navigateTo({
				// 	url: '/pages/article/list?category_id=' + this.category_id + '&category_index=' + this.category_index
				// });
				// #endif
			},

			/*广告切换*/
			sliderChange: function(e) {
				this.currentSliderIndex = e.detail.current;
			},

			/*滚动时导航栏浮动*/
			navFloatShow(scroller) {
				if (scroller) {
					if (scroller.scrollTop > 40) {
						if (!this.fixedSearch) {
							this.fixedSearch = true;
						}
					} else {
						if (this.fixedSearch) {
							this.fixedSearch = false;
						}
					}
				}

			},
			/*菜单框展示*/
			menuShow(value) {
				this.showMenu = value;
			},
			/*隐藏导航浮动*/
			navFloatHide() {
				this.showNavFloat = false;
			},
			/*获取banner*/
			getBannerList() {
				this.$app.request({
					url: this.$api.news.getNewsList,
					method: 'GET',
					data: {
						'newsDirectoriesId': this.$api.news.NEWS_BANNER_ID,
						'rows': '5',
						'page': '1'
					},
					dataType: 'json',
					success: res => {
						if (res.rows != undefined && res.rows.length > 0) {
							for (var i = 0; i < res.rows.length; i++) {
								res.rows[i].imageUrl = this.$api.news.imgUrl + res.rows[i]
									.newsContentCoverList[0]
									.contentCoverId
							}
							this.showPageLoading = false;
							this.scroller.endSuccess();
							this.slider = res.rows
						}
					},
					complete: res => {
						console.log(res)
						this.scroller.endBySize(1, 1);
						uni.stopPullDownRefresh();
						uni.hideLoading();
						this.showPageLoading = false;
					}
				});
			},
			getUserInfo() {
				this.$app.request({
					url: this.$api.user.getUserInfo,
					method: 'GET',
					header: {
						token: this.token
					},
					success: res => {
						if (res) {
							getApp().globalData.userInfo = res;
							uni.setStorageSync("userInfo", res);
						}
					},
					complete: res => {

					}
				})
			},
			getAppVersion(version) {
				var _self = this;
				var versionUrl = _self.$api.common.getAppVersion;
				var downloadUrl = _self.$api.common.appDownloadUrl
				uni.request({
					url: versionUrl,
					success(res) {
						console.log(res)
						plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
							var appId = wgtinfo.appid;
							var appVersion = wgtinfo.versionCode;

							if (res.data.data && res.data.data > appVersion) {
								_self.isUpdate = true;
							} else {}
						});
					},
					fail(error) {
						console.log(error)
					}
				})
			},
			startDownloadApk() {
				var _self = this;
				var downloadUrl = _self.$api.common.appDownloadUrl;
				console.log(downloadUrl)
				_self.downloading = true
				var downloadTask = uni.downloadFile({
					url: downloadUrl,
					success: (downloadResult) => {
						console.log(downloadResult)
						if (downloadResult.statusCode === 200) {
							_self.isUpdate = false
							plus.runtime.install(downloadResult.tempFilePath, {
								force: false,

							}, function() {
								plus.runtime.restart();
							}, (e) => {
								console.log(e);
								uni.showToast({
									title: '安装升级包失败',
									icon: 'none'
								})
							});
						} else {
							_self.isUpdate = false
							uni.showToast({
								title: '下载失败,请稍后重试',
								icon: 'none'
							})
						}
					},
					fail(error) {
						_self.isUpdate = false
						uni.showToast({
							title: '下载失败,请稍后重试',
							icon: 'none'
						})
					}
				});
				downloadTask.onProgressUpdate((e) => {
					console.log(e)
					_self.downloadProgress = e.progress
				})
			},
			doSearch() {
				uni.hideKeyboard()
				if (this.searchContent == "") {
					this.$alert("请输入关键字");
				}
				this.refreshData()
			},
			getMainFunc() {
				// 
				var _self = this;
				uni.request({
					url: _self.$api.news.getMainFunc,
					data: {
						directoriesParentId: _self.$api.news.NEWS_MAIN_FUNC
					},
					success(res) {
						if (res.statusCode == 200) {
							_self.funcList = res.data
						}
					},
					fail(error) {}
				})
			},
			//古树名木
			openTrees() {
				uni.navigateTo({
					url: '/pages/news/oldtrees'
				})
			},
			//打开其他
			openOther(item) {
				//判断是跳详情还是列表
				if ('0' == item.directoriesView) {
					uni.navigateTo({
						url: '/pages/news/newsweb?url=' + item.directoriesTarget2 + '&title=' + item
							.directoriesName
					})
				} else {
					uni.navigateTo({
						url: '/pages/news/newsList?nId=' + item.newsDirectoriesId + '&title=' + item
							.directoriesName
					})
				}

			}
		}
	};
</script>

<style scoped lang="scss">
	page {
		height: 100%;
	}

	.page {
		display: flex;
		flex: 1;
		flex-direction: column;
		overflow: hidden;
		height: 100%;
	}

	.content {
		flex: 1;
		width: 100%;
		height: 100rpx;
	}

	/*头部*/
	.top {

		/*页面标题*/
		.page-title {
			display: flex;
			justify-content: center;
			align-items: center;
			height: 90rpx;
			text-align: center;
			border-bottom: 1rpx solid #efefef;
			z-index: 9999;
			line-height: 1;

			image {
				height: 50rpx;
				width: 280rpx;
				margin-left: -35rpx;
			}
		}



		/* 顶部navbar */
		.navbar {

			/*分类*/
			.menu {
				position: relative;
				height: 80rpx;
				white-space: nowrap;
				padding: 15rpx 0 6rpx;
				z-index: 10;
				display: flex;
				align-items: center;
				justify-content: space-between;

				/*分类*/
				.category {
					width: 650rpx;
					margin-left: 30rpx;
					white-space: nowrap;
					position: relative;

					scroll-view {
						width: auto;

						.item {
							position: relative;
							display: inline-block;
							margin: 0 10rpx 0;
							height: 80rpx;
							text-align: left;
							padding-top: 7rpx;

							//line-height: 80rpx;
							&:first-child {
								margin-left: 10rpx;
							}

							&:after {
								content: '';
								width: 0;
								height: 0;
								position: absolute;
								left: 50%;
								bottom: 0;
								transform: translateX(-50%);
								transition: 0.3s;
							}

							.text {
								position: relative;
								width: auto;
								height: auto;
								line-height: auto;
								display: inline-block;

								text {
									font-size: 36rpx;
									font-weight: bold;
									color: #555;
								}

								image {
									position: absolute;
									top: 16rpx;
									right: -14rpx;
									width: 50rpx;
									height: 50rpx;
									display: none;
								}
							}
						}

						.current {
							&:after {
								width: 50%;
							}

							.text {
								text {
									font-size: 40rpx;
									font-weight: bold;
									color: #262626;
								}

								image {
									display: block;
								}

								border-bottom: 6rpx solid #8cc7b5;
							}
						}
					}
				}

				.list {
					width: 70rpx;
					display: flex;
					align-items: center;
					justify-content: center;

					//box-shadow: -4rpx 0 0 #e9ebee;
					//box-shadow: -2px 0 0 #262626;
					/deep/ .icon {
						font-size: 36rpx;
						margin-top: -6rpx;
					}
				}
			}
		}
	}

	.menu-block {
		position: absolute;
		top: 0;
		left: 0;
		background: #fff;
		border-bottom: 1rpx solid #f5f5f5;
		padding: 20rpx 0 50rpx;
		z-index: 100;
		width: 100%;

		//box-shadow: 0 15rpx 10rpx -15rpx #e9ebee;
		.list {
			padding-left: 10rpx;

			text {
				background: #f5f7fa;
				border-radius: 8rpx;
				font-size: 32rpx;
				margin: 12rpx 20rpx;
				display: inline-block;
				height: 72rpx;
				width: 144rpx;
				line-height: 72rpx;
				text-align: center;
			}

			.current {
				color: #fff;
				background: #8cc7b5;
				//font-size: 32rpx;
			}
		}
	}


	/*幻灯片广告 */
	.swiper {
		height: 368rpx;
		margin: 24rpx 29rpx 0rpx 35rpx;


		.swiper-item {
			position: relative;
			height: 368rpx;
			width: 100%;


			image {
				height: 338rpx;
				width: 100%;
				border-radius: 15rpx;

			}
		}

		/deep/ .uni-swiper-dot {
			width: 10rpx !important;
			height: 10rpx !important;
			background: #c0c0c0 !important;
		}

		/deep/ .uni-swiper-dot-active {
			width: 19rpx !important;
			height: 10rpx !important;
			background: #009749 !important;
			border-radius: 4rpx;
		}

		/deep/ .uni-swiper-dots-horizontal {
			bottom: -10rpx !important;
		}
	}

	/*浮动navbar*/
	.floatbar {
		//border-bottom: 1rpx solid #e8e8e8;
		box-shadow: 0px 2px 2px -2px #e8e8e8;
		padding-bottom: 12rpx;
	}

	/deep/ .no-data {
		margin-top: 200rpx;
	}

	/*搜索*/
	.search {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 35rpx 28rpx 10rpx 35rpx;

		.search-content {
			background: #f2f2f2;
			height: 67rpx;
			flex: 1;
			display: flex;
			align-items: center;
			border-radius: 29rpx;
		}

		input {
			font-size: 27rpx;
			font-family: Microsoft YaHei;
			font-weight: 400;
			color: #B3B3B3;
			margin-left: 16rpx;
		}

		.icon {
			width: 30rpx;
			height: 30rpx;
			margin-left: 26rpx;
		}

		.btn {
			color: #b3b3b3;
			margin-left: 25rpx;
		}
	}

	.func-box {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		height: 80rpx;
		width: 100%;
		white-space: nowrap;


	}

	.func-item {
		display: inline-block;
		text-align: center;
		width: 160rpx;
		height: 186rpx;
		margin-right: 21rpx;

		&:last-child {
			margin-right: 0rpx;
		}

		image {
			width: 60rpx;
			height: 60rpx;
		}

		.txt {
			font-size: 28rpx;
			color: #262626;
		}
	}

	.fixed-box {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		padding-top: 40rpx;
		background: #ffffff;
		z-index: 10;
		padding-bottom: 10rpx;
	}

	.nofixed-box {
		position: static;
	}

	.update-view {
		width: 500rpx;
		border-radius: 15rpx;
		display: flex;
		flex-flow: column;
		justify-content: flex-start;
		align-items: center;
		z-index: 9999;
		position: fixed;
		background: #FFFFFF;
		left: 50%;
		top: 50%;
		-webkit-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
		box-shadow: 0 4rpx 8rpx 0 rgba(0, 0, 0, 0.2), 0 6rpx 20rpx 0 rgba(0, 0, 0, 0.19);
		padding: 20rpx;

	}

	.update-title {
		margin-top: 20rpx;
		color: #000000;
		font-weight: bold;
		font-size: 38rpx;
		text-align: center;
	}

	.update-tip {
		margin-top: 20rpx;
		margin-left: 30rpx;
		align-self: flex-start;
		font-size: 32rpx;
		font-weight: 600;
		color: black;
	}

	.update-content {
		font-size: 30rpx;
		color: #000000;
	}

	.update-btns {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		width: 100%;
		margin-top: 30rpx;
	}

	.btn-cancel {
		padding: 10rpx 0;
		text-align: center;
		font-size: 30rpx;
		font-weight: 500;
	}

	.btn-confirm {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		font-size: 30rpx;
		color: #009749;

		.icon {
			width: 30rpx;
			height: 30rpx;
		}

		.sure {
			padding: 10rpx 0;
			text-align: center;
			font-size: 30rpx;
			font-weight: 500;
		}
	}

	.progress {
		margin-bottom: 20rpx;
		width: 80%;

	}
</style>