<template>
	<page-meta :root-font-size="$pageSize + 'px'"></page-meta>
	<view class="fullHeight projectIndexPage" style="background-color: white">
		<scroll-view class="scroll_view_main" :class="accountType == 5 || accountType == 6 || accountType == 10 ? 'smallHeight' : ''"
			scroll-y>
			<!-- <headers :showBack="accountType == 5 || accountType == 6 || accountType == 10 ? false : true"
				:themeType="'white'">
				<view class="headerName" @click="toDept">
					{{ projectDetail.projectName }}
				</view>
			</headers> -->
			<view class="header_bg">
				<view class="login_logo">
					<view class="logo_box">
						<image v-if="userInfo.userId" src="@/static/bthgIcon/login_icon1.png" mode="" />
						<text>神华包头煤制烯烃升级示范项目</text>
					</view>
					<!-- <view>
						智慧工地系统
					</view> -->
					<image src="@/static/bthgIcon/login_bg3.png" mode=""></image>
				</view>
				<view class="userBox">
					<!-- <image class="userImg" :src="url_config + 'image/' + userInfo.avatar" v-if="userInfo.avatar"></image>
					<image class="userImg" src="@/static/userImg.png" v-else></image> -->
					<view class="userBox_left">
						<u-image class="userBox_left_image" :src="url_config + 'image/' + userInfo.avatar"
							shape="circle" mode="scaleToFill">
							<template v-slot:error>
								<image  class="image_error"
									src="@/static/userImg.png"></image>
							</template>
							
						</u-image>
						<view v-if="userInfo.userId">
							<text v-if="uid">{{userInfo.realName}}</text>
							<text v-else>{{userInfo.account}}</text>
							<text>
								<!-- 欢迎来到智慧工地系统 -->
								岗位(工种)：{{userInfo.postWorkTypeName}}
							</text>
						</view>
						<view v-else @click="goMoudleFn">
							登录
						</view>
					</view>
					<view class="userBox_right" v-if="userInfo.userId">
						<image @click="onClickToSao" src="@/static/bthgIcon/project_icon9.png" mode=""></image>
					</view>
					<view class="userBox_right" v-else>
						<view>
							{{ weatherInfo.temperature }}℃
						</view>
						<view>
							{{getTimeWeek}}
						</view>
					</view>
				</view>
			</view>
			<view class="moudleItem_all" v-if="!userInfo.userId">
				<view class="all_title">
					<view class="all_title_left">
						<image src="@/static/bthgIcon/project_icon1.png" mode=""></image>
						<view>
							全部功能
						</view>
					</view>
				</view>
				<view class="moudleBox">
					<view v-for="(item, index) in list" :key="index"
						>
						<view  class="moudleItem" @click="goMoudleFn(item)" v-if="item.operation && (item.moduleType == 2 ||item.moduleType == 10) && item.appShow == 1">
							<view class="inner" v-if="COMPANY=='sanjiang'">
							<!-- <view class="imgBox" v-if="iconType == 1">
					  <image class="img" :src="'/static/moudleImg/' + item.moduleIcon + '.png'"></image>
					</view> -->
							<view class="imgBox" v-if="item.bigModuleIcon">
								<image class="img" :src="'/static/sjjtIcon/' + item.bigModuleIcon + '.png'"></image>
							</view>
							<view class="desc">
								{{ item.appName || item.moduleName }}
							</view>
						</view>
						<view class="inner" v-else>
							<!-- <view class="imgBox" v-if="iconType == 1">
													<image class="img" :src="'/static/moudleImg/' + item.moduleIcon + '.png'"></image>
												</view> -->
							<!-- v-if="iconType == 2" -->
							<view class="imgBox">
								<image class="img" :src="'/static/bthgIcon/' + item.commonIcon + '.png'"></image>
							</view>
							<view class="desc">
								{{ item.appName || item.moduleName }}
							</view>
						</view>
						</view>
					</view>
				</view>
			</view>
			<view class="login_main" v-else>
				<view class="message_title" @click="toMessageCenter">
					<image src="@/static/bthgIcon/project_icon2.png" mode=""></image>
					<view class="message_text">
						{{queryNoticeInfo.msg}}
					</view>
					<uni-icons2 class="arrowright" type="arrowright"></uni-icons2>
				</view>
				<view class="moudleItem_all">
					<view class="all_title">
						<view class="all_title_left">
							<image src="@/static/bthgIcon/project_icon1.png" mode=""></image>
							<view>
								常用功能
							</view>
						</view>
						<view class="all_title_right">
							<view @click="toApplicationCenter">
								全部应用
							</view>
							<view @click="toAppSettings">
								<uni-icons2 class="tune" type="tune"></uni-icons2>
							</view>
						</view>
					</view>
					<swiper class="swiper" circular :indicator-dots="true" :interval="2000" :duration="500">
						<swiper-item v-for="ele in listUp" :key="ele.id">
							<view class="moudleBox">
								<view class="moudleItem" @click="goMoudleFn(item)" v-for="(item, index) in ele"
									:key="index">
									<view class="inner" v-if="COMPANY=='sanjiang'">
										<!-- <view class="imgBox" v-if="iconType == 1">
						  <image class="img" :src="'/static/moudleImg/' + item.moduleIcon + '.png'"></image>
						</view> -->
										<view class="imgBox" v-if="item.bigModuleIcon">
											<image class="img" :src="'/static/sjjtIcon/' + item.bigModuleIcon + '.png'">
											</image>
										</view>
										<view class="desc">
											{{ item.appName || item.moduleName }}
										</view>
									</view>
									<view class="inner" v-else>
										<!-- <view class="imgBox" v-if="iconType == 1">
														<image class="img" :src="'/static/moudleImg/' + item.moduleIcon + '.png'"></image>
													</view> -->
										<!-- v-if="iconType == 2" -->
										<view class="imgBox">
											<image class="img" :src="'/static/bthgIcon/' + item.commonIcon + '.png'">
											</image>
										</view>
										<view class="desc">
											{{ item.appName || item.moduleName }}
										</view>
									</view>
								</view>
							</view>
						</swiper-item>
					</swiper>

				</view>
				<view class="module_workspace">
					<view class="workspace_box_top">
						<view class="workspace_box_top_left">
							<view>
								<image src="@/static/bthgIcon/project_icon3.png" mode=""></image>
								<view>
									我的待办
								</view>
							</view>
							<view>
								<view @click="toWorkspace(0)">
									<view>
										{{todoInfo.total}}
									</view>
									<view>
										待办
									</view>
								</view>
								<view @click="toWorkspace(1)">
									<view>
										{{todoInfo.needCall}}
									</view>
									<view>
										待催办
									</view>
								</view>
								<view @click="toWorkspace(2)">
									<view>
										{{todoInfo.done}}
									</view>
									<view>
										已办结
									</view>
								</view>
							</view>
						</view>
						<!-- <view class="workspace_box_top_right">
							<view @click="toSubmit">
								<image src="@/static/bthgIcon/project_icon13.png" mode=""></image>
								<view>创建审批</view>
								<view></view>
							</view>
							<view @click="toWorkspace(2)">
								<image src="@/static/bthgIcon/project_icon10.png" mode=""></image>
								<view>已发起</view>
								<view>{{todoInfo.userSubmitted}}</view>
							</view>
							<view @click="toWorkspace(3)">
								<image src="@/static/bthgIcon/project_icon11.png" mode=""></image>
								<view>我的抄送</view>
								<view>{{todoInfo.ccMe}}</view>
							</view>
						</view> -->
					</view>
					<!--<view class="workspace_box_bottom">
						<view>
							<view>
								<image src="@/static/bthgIcon/project_icon4.png" mode=""></image>
								<view>常用审批单</view>
							</view>
							<view @click="toSubmit">
								全部审批单
							</view>
						</view>
					</view> -->
				</view>
				<view class="module_home">
					<view class="all_title">
						<view class="all_title_left">
							<image src="@/static/bthgIcon/project_icon5.png" mode=""></image>
							<view>
								信息统计
							</view>
						</view>
					</view>
					<newhomePage v-if="projectDetail.projectSn && userInfo.accountType" :userInfo="userInfo"></newhomePage>
				</view>
			</view>

			<!-- 	<view class="moudleTitle">
      未解锁模块
    </view>
    <view class="moudleBox moudleBox2">
      <view class="moudleItem" v-for="(item,index) in list" :key="index" v-if="!item.operation&&item.moduleType==2&&item.appShow==1">
        <view class="inner">
          <view class="imgBox">
            <image class="img" :src="'/static/moudleImg/'+item.moduleIcon+'.png'"></image>
          </view>
          <view class="desc">
            {{item.appName}}
          </view>
        </view>
      </view>
    </view> -->
		</scroll-view>
		<uni-popup ref="popupqrcode" type="center">
			<view class="qrcodeItem">
				<view class="title"> 打卡成功</view>
				<view class="checkingPointName">
					巡检点：{{ qrCode.checkingPointName }}
				</view>
				<view class="position"> 巡检点位置：{{ qrCode.position }}</view>
			</view>
		</uni-popup>
		<!-- v-if="(accountType == 5 || accountType == 6 || accountType == 10) && projectDetail.projectSn" -->
		<footers :activeTab="'projectEnd'"></footers>
		<!-- <levitatedsphere v-if="projectDetail.projectSn" :x="100" :y="80"></levitatedsphere> -->
	</view>
</template>

<script>
	import {
		getUserTodoList,
		getIdoList,
		getUserSubmittedList,
		getCcMeList,
		getHomePageFlowCountApi
	} from "@/api/model";
	// import levitatedsphere from "@/components/levitatedsphere/levitatedsphere.vue"
	import headers from '../../../components/headers/headers.vue'
	import footers from '../../../components/footers/footers.vue'
	import newhomePage from '@/pages/homePage/newhomePage.vue'
	import checkVersion from '@/pages/lq-upgrade/checkVersion.js'
	import {
		closeBle
	} from '@/static/js/BLEConn.js'
	import {
		getBottomLevelData, decodeStr
	} from "@/utils/tool.js"
	import qrcodeMy from "@/utils/reqrcode.js"

	export default {
		components: {
			headers,
			footers,
			newhomePage
		},
		data() {
			return {
				qrCode: {},
				projectDetail: {
					projectName: '',
					contractPeriodEndTime: '',
					contractPeriodStartTime: '', //-.-.-
					contractPeriodType: 1, //1是正常  2是已延期
					periodRatio: 0
				},
				userInfo: {},
				searchsn: '',
				accountType: 1,
				list: [],
				weatherInfo: {
					city: '--',
					weather: '-',
					temperature: '--',
					winddirection: '--',
					windpower: '--',
					humidity: '--'
				},
				iconType: '1',
				systemInfo: {
					statusBarHeight: 0
				},
				styType: '',
				//天气
				imgUrl: '',
				date: '', //现在时间
				// weatherInfo: '--',
				adressDetail: '--',
				city: '',
				url: '',
				versionData: '',
				uid: "",
				queryNoticeInfo: {},
				todoInfo: {
					userTodo: 0,
					Ido: 0,
					userSubmitted: 0,
					ccMe: 0,
					done:0,
					needCall:0,
					total:0
				}
			}
		},
		mounted() {
			this.loadWeather();
			console.log("最近使用", uni.getStorageSync("recentlyUsed"))
		},
		onShow() {
			var userInfo = uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : null;
			if (userInfo) {
				this.uid = uni.getStorageSync('UID')
				this.getSystemLogoConfig()
				if (this.accountType == 5 || this.accountType == 6) {
					// this.searchsn = userInfo.sn
					// let sn = uni.getStorageSync("dept");
					// this.searchsn = getBottomLevelData([sn])[0].projectSn;
					this.getProjectSn(() => {
						this.getProjectDetail()
						let arr = userInfo.menuAuthority.moduleList;
						this.getAllModule(arr)
					})

				} else if (this.accountType == 10) {
					// let sn = uni.getStorageSync("dept");
					// this.searchsn = getBottomLevelData([sn])[0].projectSn;
					this.getProjectSn(() => {
						// console.log(sn, 888999)
						this.getProjectDetail()
						this.getAllModule([])
						uni.setStorageSync('userInfo', JSON.stringify({
							...this.userInfo,
							sn: this.searchsn
						}))
						uni.setStorageSync('userInfoObj', {
							...this.userInfo,
							sn: this.searchsn
						})
					})

					// this.sendRequest({
					// 	url: 'xmgl/company/getTenantOrgTreeList',
					// 	data: {
					// 		userId: userInfo.userId,
					// 	},
					// 	method: 'POST',
					// 	success(res) {
					// 		console.log(res, '777888')
					// 		if (res && res.result && res.result.length > 0) {
					// 			let responseData = res.result;
					// 			that.selectedDefaultProject(responseData[0])
					// 		}
					// 	}
					// })
				} else {
					this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
					this.loadWeather()
					this.getAllModule()
				}
				closeBle()
					.then((res) => {
						// this.closeDiv = false
						// this.clear()
						// uni.hideLoading()
						console.log('断开蓝牙成功')
					})
					.catch((err) => {
						// uni.hideLoading()
						console.log('断开蓝牙失败')
					})
				if (uni.getStorageSync('oldObj')) {
					uni.removeStorageSync('oldObj')
				}
				if (uni.getStorageSync('buildObj')) {
					uni.removeStorageSync('buildObj')
				}
			} else {
				this.getProjectAll();
			}
		},
		onLoad(options) {
			var userInfo = uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : null;
			console.log('userInfo===========', userInfo)
			if (userInfo) {
				this.userInfo = userInfo
				this.accountType = userInfo.accountType
				this.styType = userInfo.styleType
				this.systemInfo = uni.getStorageSync('systemInfo')
				this.getSystemLogoConfig()
				if (!this.userInfo.personMail && options.fromPage && options.fromPage == 'loginPage') {
					// this.checkInfoComplete()
				}
				// #ifdef APP-PLUS
				this.viewVersionInfo()
				// #endif

				this.getqueryNoticePage();
				
				
				uni.setStorageSync("wflow-token", userInfo.token);
				uni.setStorageSync("loginUser", JSON.stringify(userInfo));
				uni.setStorageSync('projectSn', userInfo.sn);
				sessionStorage.setItem('wflow-token', userInfo.token);
				sessionStorage.setItem('loginUser', JSON.stringify(userInfo));
				sessionStorage.setItem('projectSn', userInfo.sn);

			}
		},
		watch: {
			projectDetail: {
				handler(val){
					this.todoList();
				}
			}
		},
		methods: {
			todoList() {
				// const pramas = {
				// 	pageSize: 10,
				// 	pageNo: 1,
				// 	code: "",
				// }
				// getUserTodoList(pramas).then(result => {
				// 	console.log(7577, result)
				// 	if (result.statusCode == 200) {
				// 		this.todoInfo.userTodo = result.data.total;
				// 	}
				// });
				// getIdoList(pramas).then(result => {
				// 	console.log(7577, result)
				// 	if (result.statusCode == 200) {
				// 		this.todoInfo.Ido = result.data.total;
				// 	}
				// })
				// getUserSubmittedList(pramas).then(result => {
				// 	console.log(7577, result)
				// 	if (result.statusCode == 200) {
				// 		this.todoInfo.userSubmitted = result.data.total;
				// 	}
				// })
				// getCcMeList(pramas).then(result => {
				// 	console.log(7577, result)
				// 	if (result.statusCode == 200) {
				// 		this.todoInfo.ccMe = result.data.total;
				// 	}
				// })
				
				
				this.$nextTick(() => {
					getHomePageFlowCountApi({
						projectSn: this.projectDetail.projectSn,
					}).then(res => {
						console.log(7577, res)
						if (res.statusCode == 200) {
							this.todoInfo = res.data.result;
						}
					})
					// const that = this;
					// this.sendRequest({
					// 	url: 'xmgl/homePage/flow/count',
					// 	data: {
					// 		projectSn: this.projectDetail.projectSn,
					// 	},
					// 	method: 'GET',
					// 	success(res) {
					// 		if (res.success) {
					// 			this.todoInfo = res.result;
					// 		}
					// 	}
					// })
				})
			},
			toSubmit() {
				uni.redirectTo({
					url: '/pages/submit/submit',
				})
				// /pages/workspace/workspace
			},
			toWorkspace(current) {
				uni.redirectTo({
					url: '/pages/workspace/workspace?current=' + current,
				})
			},
			getProjectAll() {
				const that = this;
				this.sendRequest({
					url: 'xmgl/baseModule/getProjectModuleAndMenuList',
					data: {
						projectSn: this.searchsn,
						// userId: this.userInfo.userId,
						moduleType: 2,
						isApp: 1
					},
					method: 'POST',
					success(res) {
						if (res.success) {
							var all = res.result.moduleList;
							console.log("all", all);
							all.forEach((element, index) => {
								all[index].operation = true;
								// res.result.menuList.forEach((element2) => {
								// 	if (element2.moduleId == element.moduleId) {
								// 		all[index].operation = true;
								// 	}
								// });
							});
							console.log("all111", all);
							that.list = all;
						}
					}
				})
			},
			getqueryNoticePage() {
				const that = this;
				this.sendRequest({
					url: 'xmgl/homePage/queryNoticePage',
					data: {
						projectSn: this.searchsn,
						pageNo: 1,
						pageSize: 1
					},
					method: 'POST',
					success(res) {
						if (res.success) {
							if (Array.isArray(res.result.records) && res.result.records.length > 0) {
								that.queryNoticeInfo = res.result.records[0];
							}
						}
					}
				})
			},
			checkInfoComplete() {
				uni.showModal({
					title: '温馨提示',
					content: '系统检测到您未完善邮箱，请去后台中心完善，以免忘记密码时无法通过邮箱验证，导致重置密码失败!',
					confirmText: "个人中心",
					success: function(res) {
						if (res.confirm) {
							uni.navigateTo({
								url: '/pages/my/userInfo/userInfo'
							})
						} else if (res.cancel) {
							console.log('用户点击取消');
						}
					}
				});
			},
			getProjectSn(next) {
				var userInfo = JSON.parse(uni.getStorageSync('userInfo'))
				this.sendRequest({
					url: "xmgl/company/getTenantOrgTreeList",
					data: {
						userId: userInfo.userId,
						headquartersSn: uni.getStorageSync("company").headquartersSn
					},
					method: "POST",
					success: (res) => {
						console.log(res, "getTenantOrgTreeList");
						let three = getBottomLevelData(res.result)[0];
						console.log(three, "threeeeeee");
						let dept = uni.getStorageSync("dept");
						if (!dept) {
							dept = three.projectSn;
							uni.setStorageSync("dept", dept)
						}
						this.searchsn = dept;
						next()
					}
				})
			},
			toDept() {
				uni.navigateTo({
					url: "/pages/deptList/deptList"
				})
			},
			// 默认选中第一个组织的第一个项目
			selectedDefaultProject(obj) {
				console.log(obj.list, 888999)
				// if (obj.list && obj.list.length > 0) {
				// 	obj.list.map((item) => {
				// 		this.selectedDefaultProject(item);
				// 	});
				// } else {
				// 	// this.searchsn = obj.sn
				// 	let sn = uni.getStorageSync("dept");
				// 	this.searchsn = getBottomLevelData([sn])[0].projectSn;
				// 	console.log(obj.sn, 888999)
				// 	this.getProjectDetail()
				// 	this.getAllModule([])
				// 	uni.setStorageSync('userInfo', JSON.stringify({
				// 		...this.userInfo,
				// 		sn: this.searchsn
				// 	}))
				// }
			},
			viewVersionInfo() {
				console.log('进入页面调用');
				//fix 避开检查更新  罗劲章
				// return false
				var that = this
				//获取当前应用版本
				plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
					// console.log('版本号的数据信息', widgetInfo.version);//其实是应用版本名称
					console.log('应用版本名称', widgetInfo.version);
					that.versionName = widgetInfo.version
					console.log('应用版本号', widgetInfo.versionCode);
					that.versionNo = widgetInfo.versionCode
				})
				console.log('viewVersionInfo', that.url_config)
				// uni.navigateTo({
				// 	url:'versionInfo'
				// })
				if (
					this.systemInfo.platform.indexOf('android') != -1 &&
					typeof plus !== 'undefined'
				) {
					//获取最新版本
					that.sendRequest({
						url: 'xmgl/appVersion/getAppVersion',
						data: {},
						method: 'POST',
						success(res2) {
							console.log('获取当前app应用版本名称', that.versionName);
							console.log('获取平台版本名称', res2.result.versionName);
							let jxjAppVersionName = res2.result.versionName
							console.log('获取当前app应用版本号', that.versionNo);
							console.log('获取平台版本号', res2.result.versionNo);
							let jxjAppVersionNo = res2.result.versionNo

							if (res2.result && jxjAppVersionNo !== that.versionNo) {
								console.log("我进来了", res2.result)
								let name = res2.result.versionName; //新版本名称
								let code = res2.result.versionNo; //新版本号（数字）
								let content = res2.result.versionDescribe; //更新内容
								let url = JSON.parse(res2.result.downloadUrl)[0].url; //app下载链接，（演示请换成真正在下载链接）
								let forceUpdate = false; //是否强制更新
								checkVersion({
									name, //最新版本名称
									code, //最新版本号
									content, //更新内容
									url, //下载链接
									forceUpdate //是否强制升级			  
								})

								// uni.showModal({
								// 	title: '版本更新',
								// 	content: '更新内容：' + res2.result.versionDescribe,
								// 	// confirmText: '更新',
								// 	showCancel: false,
								// 	success(res) {
								// 		if (res.confirm) {
								// 			console.log('用户点击确定')
								// 			// var url = that.url_config + 'image/' + JSON.parse(res2.result.downloadUrl)[0].url//地址拼错啦，直接返回的就是下载地址
								// 			var url = JSON.parse(res2.result.downloadUrl)[0].url
								// 			console.log('apk地址', url)
								// 			uni.showModal({
								// 				title: '提示',
								// 				content: '正在后台下载更新资源，请耐心等待......',
								// 				showCancel: false
								// 			})
								// 			uni.downloadFile({
								// 				url: url,
								// 				success: (res) => {
								// 					// uni.hideLoading()
								// 					console.log('res', res)
								// 					if (res.statusCode === 200) {
								// 						console.log('下载成功')
								// 						var fileSaveUrl = plus.io
								// 							.convertLocalFileSystemURL(
								// 								res.tempFilePath
								// 							)
								// 						plus.runtime.openFile(res
								// 							.tempFilePath) //选择软件打开文件
								// 					}
								// 				}
								// 			})
								// 		} else if (res.cancel) {
								// 			console.log('用户点击取消')
								// 		}
								// 	}
								// })
							} else {
								// uni.showToast({
								// 	title: '您已经是最新版本啦！',
								// 	icon: 'none'
								// })
							}
						}
					})
				}
			},
			weatherIcon(index) {
				if (index == "晴") {
					return "w_sun";
				} else if (index == "多云") {
					return "w_overcast";
				} else if (index == "阴") {
					return "w_cloud";
				} else if (index.indexOf("雨")) {
					return "w_rain";
				} else if (index.indexOf("雷")) {
					return "w_thunder";
				} else if (index.indexOf("雪")) {
					return "w_snow";
				} else if (index.indexOf("雾")) {
					return "w_fog";
				} else {
					return "w_cloud";
				}
			},

			getSystemLogoConfig() {
				var that = this
				this.sendRequest({
					url: 'xmgl/systemLogoConfig/selectSystemLogoConfig',
					data: {},
					method: 'GET',
					success(res) {
						console.log(res.result.iconType)
						that.iconType = res.result.iconType ? res.result.iconType : '1'
					}
				})
			},
			loadWeather() {
				console.log('进来了吗：==========');
				//获取天气温度等信息
				let that = this
				uni.getLocation({
					type: 'gcj02',
					geocode: true,
					isHighAccuracy: "true",
					accuracy: "best", // 精度值为20m
					success: function(res) {
						console.log('当前位置的经度：' + res.longitude);
						console.log('当前位置的纬度：' + res.latitude);
						var location = res.longitude + ',' + res.latitude
						//通过当前经纬度获取当前地址
						uni.request({
							url: "https://restapi.amap.com/v3/geocode/regeo",
							data: {
								key: "56c91fb2683e5bf0f46014ac200d4c1b", //高德地图key
								location: location
							},
							method: "GET",
							success(res) {

								console.log("地址", res)
								if (res.data.status == "1") {
									var one = res.data.regeocode.formatted_address
									if (one) {
										that.adressDetail = one.substr(3, 3) + one.substr(9,
											4) + one.substr(20, 7)
									}
									var city = res.data.regeocode.addressComponent.city
									console.log("地址", that.adressDetail)
									//通过当前城市，获取当前天气
									uni.request({
										url: "http://restapi.amap.com/v3/weather/weatherInfo",
										data: {
											key: "56c91fb2683e5bf0f46014ac200d4c1b",
											city: city,
											extensions: "base",
											output: "JSON",
										},
										method: "GET",
										success(res) {
											if (res.data.status == "1") {
												that.weatherInfo = res.data.lives[0]
												console.log("成功获取天气", res)
												//获取完地址天气等信息后，开始画水印
												// that.canversImg();
											}
										}
									})
								}
							}
						})
					},
					fail: function(msg) {
						console.log("获取位置失败", msg)
					}
				});
				// let city=this.projectDetail.cityCode
				//     uni.request({
				//         url: 'https://v0.yiketianqi.com/api', //仅为示例，并非真实接口地址。
				//         data: {
				//           key: '3b060f3a0ce4bafebeba1621dcd99c31',
				//           city:city ,
				//           extensions: 'base',
				//           output: 'JSON'
				//         }
				//       })
				//       .then((res) => {
				//         console.log('天气的数据', res)
				//         this.weatherInfo = res.data.lives[0]
				//         localStorage.setItem('weatherInfo', JSON.stringify(this.weatherInfo))
				//       })
			},
			goMoudleFnTest() {
				uni.navigateTo({
					url: '/pages/projectEnd/trainPlan/list'
				})
			},
			goMoudleFn(item) {
				if (!this.userInfo.userId) {
					uni.navigateTo({
						url: '/pages/login/login'
					})
					return
				}
				//添加虚拟模块 报警提示
				// if(item.moduleName=="预警播报"){
				// 	uni.navigateTo({
				// 		url: '/pages/alarmPage/index'
				// 	})
				// 	return false;
				// }
				console.log('item=======item.plugin', item, item.plugin)
				switch (item.plugin) {
					// case 'markRoom':
					//   uni.navigateTo({
					//     url: '../markRoom/markRoom'
					//   })
					//   break
					case "standardScheduleAg":
						uni.navigateTo({
							url: '/pages/standardScheduleNews/home'
						})
						break;
					case "inspectRoute":
						uni.navigateTo({
							url: '../../projectEnd/InspectionRoute/inspection'
						})
						break;
					case 'educationExam':
						uni.navigateTo({
							url: '../trainPlan/list'
						})
						break
					case 'markRoom':
						uni.navigateTo({
							url: '../markRoom/markRoom'
						})
						break
					case 'videoMonitor':
						// uni.navigateTo({
						// 	url: '../../videoManage/videoList?sn=' +
						// 		this.projectDetail.projectSn +
						// 		'&pageType=backEnd'
						// })
						uni.navigateTo({
							url: '../../videoManage/videoGroup'
						})
						break
					case 'projectInfo':
						uni.navigateTo({
							url: '../project/projectInfo'
						})
						break
					case 'environmentMonitor':
						uni.navigateTo({
							url: '../environment/menu'
						})
						break
					case 'laborManage':
						uni.navigateTo({
							url: '../laborManage/index'
						})
						break
					case 'constructionLog':
						uni.navigateTo({
							url: '../constructionLog/list'
						})
						break
					case 'electricBoxMange':
						uni.navigateTo({
							url: '../electricBox/index'
						})
						break
					case 'lifterManage':
						uni.navigateTo({
							url: '../lifterMonitoring/index'
						})
						break
					case 'carManage':
						uni.navigateTo({
							url: '../carManage/indexPage'
						})
						break
					case 'towerManage':
						uni.navigateTo({
							url: '../towerManage/index'
						})
						break
					case 'dailyInspection':
						uni.navigateTo({
							url: '../dailyCheck/index'
						})
						break
					case 'qualitySpringback':
						uni.navigateTo({
							url: '../qualitySpringback/index'
						})
						break
					case 'unloadManage':
						uni.navigateTo({
							url: '../unload/index'
						})
						break
					case 'concreteMonitoring':
						uni.navigateTo({
							url: '../concreteMonitoring/index'
						})
						break
					case 'safeManage':
						// uni.navigateTo({
						// 	url: '../safeManage/index'
						// })
						uni.navigateTo({
							url: '../safeManage/safeIndex'
						})
						break
						// uni.navigateTo({
						// 	url: '../safeManage/addExamine'
						// })
						break
					case 'qualityManage':
						uni.navigateTo({
							url: '../qualityManage/index'
						})
						break
					case 'carWashManage':
						uni.navigateTo({
							url: '../carWashManage/index'
						})
						break
					case 'dangerBigProject':
						uni.navigateTo({
							url: '../dangerBigProject/index'
						})
						break
					case 'safeManageAG':
						uni.navigateTo({
							url: '../safeSame/index'
						})
						break
					case 'fileManage':
						uni.navigateTo({
							url: '../../fileManage/fileManage'
						})
						break
					case 'materialsManage':
						uni.navigateTo({
							url: '../../projectEnd/materialsManage/materialsManage'
						})
						break
					case 'ukashManage':
						uni.navigateTo({
							url: '../../projectEnd/ukashManage/ukashManage'
						})
						break
					case 'ekashManage':
						uni.navigateTo({
							url: '../../projectEnd/ekashManage/ekashManage'
						})
						break
					case 'visitorsManage':
						uni.navigateTo({
							url: '../../projectEnd/visitorsManage/visitorsManage'
						})
						break
					case 'betonManage':
						uni.navigateTo({
							url: '../betonManage/index'
						})
						break
					case 'progressManage':
						uni.navigateTo({
							url: '../progressManagement/index'
						})
						break
						// case 'dangerBroadcast':
						// 	uni.navigateTo({
						// 		url: '../../alarmPage/index'
						// 	})
						// 	break
					case 'dangerBroadcast':
						// uni.navigateTo({
						// 	url: '../../alarmPage/indexTwo'
						// })
						uni.navigateTo({
							url: '../../alarmPage/pageIndex'
						})
						break
					case 'carViolation':
						// uni.navigateTo({
						// 	url: '../../alarmPage/indexTwo'
						// })
						uni.navigateTo({
							url: '../../carViolation/pageIndex'
						})
						break

					case 'standardSchedule':
						uni.navigateTo({
							url: '../standardSchedule/index',
						})
						break
					case 'smartBeamField':
						uni.navigateTo({
							url: '../smartBeamField/beamMenu',
						})
						break
					case 'specialOperations':
						uni.navigateTo({
							url: '../../projectEnd/specialOperations/specialOperations'
						})
						break
					case 'operationManage':
						uni.navigateTo({
							url: '../../projectEnd/operationManage/operationManage'
						})
						break
					case 'emergencyDisposal':
						uni.navigateTo({
							url: '../../projectEnd/emergencyDisposal/index'
						})
						break
					case 'pouringOrderLedger':
						uni.navigateTo({
							// url: '../qualityManage/pouringOrderLedger/work'
							url: '../../projectEnd/workflowTable/pouringOrderApplyfor/index'
						})
						break
					case 'testingManage':
						uni.navigateTo({
							url: '../../projectEnd/testingManage/operationManage'
						})
						break
					case 'startReportApproveManage':
						uni.navigateTo({
							url: '../../projectEnd/startReportApproveManage/index'
						})
						break
					case 'controlPointGrading':
						uni.navigateTo({
							url: '../../projectEnd/controlPointGrading/index'
						})
						break
					case 'buildUnqualifiedReport':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/buildUnqualifiedReport/index'
						})
						break
					case 'welderAssessmentRequest':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/welderAssessmentRequest/index'
						})
						break
					case 'unitProjectDivideReport':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/unitProjectDivideReport/index'
						})
						break
					case 'engineeringSurveyRetest':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/engineeringSurveyRetest/index'
						})
						break
					case 'waterElectricityRecordSettlement':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/waterElectricityRecordSettlement/index'
						})
						break
					case 'roadUseApproval':
						uni.navigateTo({
							url: '../../projectEnd/workflowTable/roadUseApproval/index'
						})
						break
					case 'centralizeAntisepticEntrust':
						uni.navigateTo({
							url: '../../projectEnd/centralizeAntisepticEntrust/index'
						})
						break
					case 'pipelineWelding':
						uni.navigateTo({
							url: '../../projectEnd/pipelineWelding/index'
						})
						break

					case 'guidancePartyBuilding':
						uni.navigateTo({
							url: '../../projectEnd/guidancePartyBuilding/index'
						})
						break
					case 'sunshineProject':
						uni.navigateTo({
							url: '../../projectEnd/sunshineProject/index'
						})
						break
					case 'videoLedger':
						uni.navigateTo({
							url: '../../projectEnd/videoLedger/index'
						})
						break
					case 'buildEquipToolManage':
						uni.navigateTo({
							url: '../../projectEnd/buildEquipToolManage/index'
						})
						break
					case 'schemeLedger':
						uni.navigateTo({
							url: '../../projectEnd/schemeLedger/index'
						})
						break
					case 'winterConstructionManage':
						uni.navigateTo({
							url: '../../projectEnd/winterConstructionManage/index'
						})
						break
					case 'firstModelManage':
						uni.navigateTo({
							url: '../../projectEnd/firstModelManage/index'
						})
						break
					case 'civilConstruction':
						uni.navigateTo({
							url: '../../projectEnd/civilConstruction/index'
						})
						break
					case 'qualitySurveillance':
						uni.navigateTo({
							url: '../../projectEnd/qualitySurveillance/index'
						})
						break
					case 'saosao':
						console.log('打开saosao')
						// let that = this;
						uni.scanCode({
							scanType: ['qrCode'],
							success: function(res) {
								console.log('扫一扫得到的数据：' + res.result)
								// uni.navigateTo({
								// 	url: '../scan/saoSao?data=' + res.result
								// })
								uni.navigateTo({
									url: `${res.result}`
								})

								// let qrcodeVal=JSON.parse(res.result)
								// let param={
								// 	checkingPointId:qrcodeVal.checkingPointId,
								// 	checkingPointName:qrcodeVal.checkingPointName,
								// 	checkingPointUserId:that.userInfo.userId,
								// 	checkingPointUserName:that.userInfo.realName||that.userInfo.account,
								// 	position:qrcodeVal.position
								// }

								// that.sendRequest({
								// 	url: "xmgl/checkingPointInfo/add",
								// 	data:param,
								// 	method: "POST",
								// 	success(res) {
								// 		console.log(res,'res');
								// 		console.log(param,'===')
								// 		that.qrCode=param;
								// 		that.$refs.popupqrcode.open();
								// 		setTimeout(item=>{
								// 			that.$refs.popupqrcode.close();
								// 		},5000)
								// 	}
								// })
							}
						})
						break
					default:
						uni.showToast({
							icon: 'none',
							title: '该产品暂未开放，敬请期待！'
						})
				}
			},
			toMessageCenter() {
				uni.navigateTo({
					url: '/pages/messageCenter/messageCenter'
				})
			},
			toApplicationCenter() {
				uni.navigateTo({
					url: '/pages/projectEnd/projectIndex/applicationCenter'
				})
			},
			toAppSettings() {
				uni.navigateTo({
					url: '/pages/projectEnd/projectIndex/appSettings'
				})
			},
			getProjectDetail() {
				var that = this
				this.sendRequest({
					url: 'xmgl/project/getProjectInfoBySn',
					data: {
						projectSn: this.searchsn
						// 获取存储数组最底层的projectSn
					},
					method: 'POST',
					success(res) {
						that.projectDetail = res.result
						uni.setStorageSync('projectDetail', JSON.stringify(res.result))
						that.loadWeather()
					}
				})
			},
			// APP直接调用 uni.scanCode 接口
			scanCodeAPP() {
				uni.scanCode({
					scanType: ['qrCode'],
					success: function(res) {
						console.log('扫一扫得到的数据：' + res.result)
						// uni.navigateTo({
						// 	url: '../scan/saoSao?data=' + res.result
						// })
						if(res.result.includes('http://')) {
							uni.showToast({
								icon: 'none',
								title: '请使用微信扫一扫打开！'
							})
							return
						}
						uni.navigateTo({
							url: `${res.result}`
						})

						// let qrcodeVal=JSON.parse(res.result)
						// let param={
						// 	checkingPointId:qrcodeVal.checkingPointId,
						// 	checkingPointName:qrcodeVal.checkingPointName,
						// 	checkingPointUserId:that.userInfo.userId,
						// 	checkingPointUserName:that.userInfo.realName||that.userInfo.account,
						// 	position:qrcodeVal.position
						// }

						// that.sendRequest({
						// 	url: "xmgl/checkingPointInfo/add",
						// 	data:param,
						// 	method: "POST",
						// 	success(res) {
						// 		console.log(res,'res');
						// 		console.log(param,'===')
						// 		that.qrCode=param;
						// 		that.$refs.popupqrcode.open();
						// 		setTimeout(item=>{
						// 			that.$refs.popupqrcode.close();
						// 		},5000)
						// 	}
						// })
					}
				})
			},
			// 获取文件地址函数
			getObjectURL(file) {
				var url = null
				if (window.createObjectURL !== undefined) { // basic
					url = window.createObjectURL(file)
				} else if (window.URL !== undefined) { // mozilla(firefox)
					url = window.URL.createObjectURL(file)
				} else if (window.webkitURL !== undefined) { // webkit or chrome
					url = window.webkitURL.createObjectURL(file)
				}
				return url
			},
			// H5通过拉起相机拍照来识别二维码
			scanCodeH5() {
				uni.chooseImage({
					count: 1,
					success: imgRes => {
						qrcodeMy.decode(this.getObjectURL(imgRes.tempFiles[0]))
						qrcodeMy.callback = (codeRes) => {
							if (codeRes.indexOf('error') >= 0) {
								// 二维码识别失败
								// this.qrCodeRes = '不合法二维码：' + codeRes
								uni.showToast({
									icon: 'error',
									title: '识别失败！'
								})
							} else {
								// 二维码识别成功
								// let r = decodeStr(codeRes)
								console.log(codeRes);
								// this.qrCodeRes = r
								uni.navigateTo({
									url: `${codeRes}`
								})
							}
						}
					}
				})
			},
			onClickToSao() {
				// #ifdef APP-PLUS
				this.scanCodeAPP()
				// #endif

				// #ifdef H5
				this.scanCodeH5()
				// #endif

			},
			getAllModule(arr) {
				var that = this
				this.sendRequest({
					url: 'xmgl/baseModule/queryAppUserModuleList',
					data: {
						projectSn: this.searchsn,
					},
					method: 'GET',
					success(res) {
						console.log(res.result)
						that.list = res.result;
					}
				})
			}
		},
		computed: {
			getTimeWeek() {
				let timeDate = new Date()
				let mounth = timeDate.getMonth() + 1
				let day = timeDate.getDate()
				let week = timeDate.getDay()
				let weekArr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
				return `${mounth}月${day}日 ${weekArr[week]}`
			},
			listUp() {
				const newList = this.list;
				let newArr = [] //首先创建一个新的空数组。用来存放分割好的数组
				for (let i = 0; i < newList.length;) { //注意：这里与for循环不太一样的是，没有i++
					newArr.push(newList.slice(i, i += 10));
				}
				return newArr
			}
		}
	}
</script>

<style lang="scss" scoped>
	.scroll_view_main {
		padding-bottom: 100rpx;
	}
	.module_home {
		border-radius: 30rpx 30rpx 0 0;
		background-color: white;
		padding: 30rpx;
	}

	.module_workspace {
		padding: 30rpx;

		.workspace_box_bottom {
			padding: 30rpx 10rpx;
			background-color: white;
			margin-top: 30rpx;

			>view:first-child {
				display: flex;
				align-items: center;
				justify-content: space-between;

				>view:first-child {
					display: flex;
					align-items: center;

					>image {
						width: 38rpx;
						height: 38rpx;
					}

					>view {
						color: #171717;
						font-size: 28rpx;
						margin-left: 10rpx;
					}
				}

				>view:last-child {
					padding: 10rpx 30rpx;
					border-radius: 26rpx;
					border: 2rpx solid #2F8FF3;
					color: #2D8EF3;
				}
			}
		}

		.workspace_box_top {
			display: flex;
			justify-content: space-between;

			.workspace_box_top_right {
				// width: 336rpx;
				width: 49%;
				height: 264rpx;
				background-color: white;
				padding: 30rpx 12rpx;
				border-radius: 16rpx;
				display: flex;
				flex-direction: column;
				justify-content: space-between;

				>view {
					width: 100%;
					// width: 314rpx;
					// height: 90rpx;
					height: 64rpx;
					color: white;
					border-radius: 16rpx;
					display: flex;
					align-items: center;
					justify-content: space-between;
					font-size: 26rpx;
					padding: 0 30rpx;

					>image {
						width: 34rpx;
						height: 34rpx;
					}

					>view:last-child {
						font-size: 38rpx;
					}
				}

				>view:nth-child(1) {
					background-color: #2A45F9;
				}

				>view:nth-child(2) {
					background-color: #2788FD;
				}

				>view:nth-child(3) {
					background-color: #74B4FC;
				}
			}

			.workspace_box_top_left {
				// width: 336rpx;
				width: 100%;
				height: 264rpx;
				background-color: white;
				padding: 30rpx 20rpx;
				border-radius: 16rpx;

				>view:first-child {
					display: flex;
					align-items: center;

					>image {
						width: 30rpx;
						height: 34rpx;
					}

					>view {
						color: #171717;
						font-size: 28rpx;
						margin-left: 10rpx;
					}
				}

				>view:last-child {
					display: flex;
					justify-content: space-between;
					align-items: center;

					>view {
						width: 32%;
						// width: 142rpx;
						height: 124rpx;
						color: white;
						border-radius: 16rpx;
						margin-top: 40rpx;
						display: flex;
						flex-direction: column;
						align-items: center;
						justify-content: center;
					}

					>view:first-child {
						background-color: #FC9C45;
					}
					
					>view:nth-child(2) {
						background-color: #4388FD;
					}

					>view:last-child {
						background-color: #59C9CA;
					}
				}
			}


		}
	}

	.login_main {
		position: relative;

		.message_title {
			width: calc(100% - 40rpx);
			margin: 0 20rpx;
			height: 96rpx;
			padding: 20rpx;
			background: #FFFFFF;
			box-shadow: 0 8rpx 8rpx 0 rgba(0, 126, 255, 0.25);
			border-radius: 16rpx;
			position: absolute;
			top: -96rpx;
			display: flex;
			justify-content: space-between;
			align-items: center;

			.message_text {
				overflow: hidden;
				white-space: nowrap;
				text-overflow: ellipsis;
				margin-left: 20rpx;
				color: #2D8EF3;
			}

			>image {
				width: 144rpx;
				height: 56rpx;
			}

			.arrowright {
				font-size: 44rpx !important;
				color: #359EFF !important;
			}
		}
	}

	.all_title {
		display: flex;
		// justify-content: center;
		align-items: center;
		justify-content: space-between;

		.all_title_left {
			display: flex;
			// justify-content: center;
			align-items: center;

			>image {
				width: 30rpx;
				height: 30rpx;
			}

			>view {
				margin-left: 10rpx;
				font-size: 28rpx;
			}
		}

		.all_title_right {
			display: flex;
			// justify-content: center;
			align-items: center;

			.tune {
				font-size: 44rpx !important;
			}

			>view:first-child {
				margin-right: 10rpx;
				font-size: 28rpx;
				border-radius: 26rpx;
				border: 2rpx solid #2F8FF3;
				color: #2F8FF3;
				padding: 8rpx 30rpx;
			}
		}

		>image {
			width: 30rpx;
			height: 30rpx;
		}

		>view {
			margin-left: 10rpx;
			font-size: 28rpx;
		}
	}

	.moudleItem_all {
		padding: 32rpx;
		// box-shadow: 0px 8rpx 32rpx 0px rgba(212, 220, 236, 0.59);
		background-color: white;
		border-radius: 0 0 16rpx 16rpx;


		.moudleBox {
			margin-top: 20rpx;

			.moudleItem {
				width: 20%;

				.inner {
					border: none;
					padding: 12rpx 0;
				}
			}
		}

		.swiper {
			height: 388rpx !important;
		}

		:deep( uni-swiper .uni-swiper-dots-horizontal ){
			bottom: 2rpx !important;
		}

		:deep( uni-swiper .uni-swiper-dot-active ){
			background-color: #2B8DF3;
		}
	}

	.header_bg {
		width: 100vw;
		height: 478rpx;
		background-image: url(@/static/bthgIcon/prjectIndex_bg1.png);
		background-repeat: no-repeat;
		background-size: 100% 100%;
		// background: linear-gradient(180deg, #2B8DF3 0%, #F4F5FD 100%);
		// position: absolute;
		// top: 0;
		position: relative;

		.login_logo {
			width: 100%;
			position: relative;
			// top: 36rpx;
			left: 50%;
			transform: translateX(-50%);
			text-align: center;
			padding-top: 88rpx;

			.logo_box {
				display: flex;
				align-items: center;
				justify-content: center;
				font-size: 40rpx;
				color: #FFFFFF;

				>image {
					width: 72rpx;
					height: 48rpx;
					transform: rotateX(180deg);
				}
			}

			>view:last-child {
				font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
				font-size: 38rpx;
				color: #FFFFFF;
				font-weight: bold;
			}

			>image {
				width: 266rpx;
				height: 62rpx;
				margin-top: 20rpx;
			}
		}

		.userBox {
			// position: absolute;
			// top: 50%;
			// transform: translateY(-50%);
			width: 100%;
			padding: 0 62rpx;
			display: flex;
			justify-content: space-between;
			margin-top: 40rpx;

			.userBox_left {
				display: flex;

				.userBox_left_image {
					width: 100rpx !important;
					height: 100rpx !important;
					border-radius: 50%;
					margin-right: 20rpx;
					.image_error {
						width: 100%;
						height: 100%;
					}
				}

				>view:last-child {
					display: flex;
					flex-direction: column;
					justify-content: space-around;
					color: white;
					font-size: 30rpx;
					margin-left: 24rpx;

					>text:last-child {
						font-size: 24rpx;
					}
				}
			}

			.userBox_right {
				display: flex;
				flex-direction: column;
				color: white;

				>view:first-child {
					font-size: 54rpx;
				}

				>image {
					width: 88rpx;
					height: 88rpx;
				}
			}


		}
	}

	.qrcodeItem {
		padding: 40rpx 30rpx;
		width: 480rpx;

		background-color: #fff;
		border-radius: 8rpx;

		.title {
			text-align: center;
			margin-bottom: 12rpx;
		}
	}

	.topBoxContent {
		color: white;
		font-size: 28rpx;
		// background: linear-gradient(360deg, #A59FFF 0%, #3258FF 100%);
		height: 520rpx;
		position: relative;

		.dateBox {
			display: flex;
			align-items: center;
			justify-content: center;
			position: relative;
			z-index: 2;

			.item {
				flex: 1;
				text-align: center;
			}

			.item2 {
				border-left: 1px dashed white;
				// border-right: 1px dashed white;
			}
		}
	}

	.progressBox {
		width: 300rpx;
		height: 300rpx;
		position: relative;
		text-align: center;
		margin: 0px auto 50rpx;

		.title1 {
			padding-top: 48rpx;
		}

		.title2 {
			font-size: 66rpx;
			margin: 12rpx 0;

			.unit {
				font-size: 40rpx;
			}
		}

		.status {
			width: 104rpx;
			height: 104rpx;
			background: #8fda5c;
			border-radius: 24rpx;
			display: inline-block;
			line-height: 50rpx;
		}

		.redStatus {
			background: #ea6868;
		}

		.progressLine {
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
		}
	}

	.weatherBox {
		position: absolute;
		top: 30rpx;
		right: 30rpx;
		text-align: center;

		.top {
			font-size: 54rpx;
			display: flex;
			align-items: center;
		}

		.weatherIcon {
			width: 72rpx;
			height: 72rpx;
		}

		.bottom {
			font-size: 20rpx;
		}
	}

	.projectIndexPage {
		:deep( .headerBox ){
			background-color: transparent;
			border-bottom: none;
		}
	}

	.progressBox {
		width: 300rpx;
		height: 300rpx;
		position: relative;
		text-align: center;
		margin: 0px auto 48rpx;

		.title1 {
			padding-top: 48rpx;
		}

		.title2 {
			font-size: 66rpx;
			margin: 12rpx 0;

			.unit {
				font-size: 40rpx;
			}
		}

		.status {
			width: 104rpx;
			height: 50rpx;
			background: #8fda5c;
			border-radius: 24rpx;
			display: inline-block;
			line-height: 50rpx;
		}

		.redStatus {
			background: #ea6868;
		}

		.progressLine {
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
		}
	}

	.weatherBox {
		position: absolute;
		top: 20rpx;
		right: 30rpx;
		text-align: center;

		.top {
			font-size: 54rpx;
			display: flex;
			align-items: center;
		}

		.weatherIcon {
			width: 72rpx;
			height: 72rpx;
		}

		.bottom {
			font-size: 20rpx;
		}
	}

	.moudleBox2 {
		opacity: 0.6;
	}

	.moudleBox {
		overflow: hidden;
		// margin: 40rpx 11px;
	}

	.moudleItem {
		float: left;
		width: 33.33%;
		font-size: 26rpx;
		text-align: center;
		margin-bottom: 20rpx;

		.inner {
			border: 1px solid rgba(18, 41, 75, 0.06);
			padding: 30rpx 0 30rpx;
			margin: 0 10rpx;
			border-radius: 10rpx;
		}

		.img {
			// width: 80rpx;
			// height: 80rpx;
			// width: 64rpx;
			// height: 64rpx;
			width: 88rpx;
			height: 88rpx;
			color: red;
		}

		.desc {
			margin-top: 12rpx;
			color: rgba(38, 45, 71, 0.77);
			overflow: hidden;
			white-space: nowrap;
			text-overflow: ellipsis;
		}
	}

	.moudleTitle {
		color: rgba(42, 43, 91, 0.5);
		font-size: 26rpx;
		margin: 0px 0 30rpx;
		text-align: center;

	}

	.smallHeight {
		// padding-bottom: 63px;
		height: calc(100% - 120rpx);
		background-color: #F3F5F7;

	}

	.moudleContent {
		box-shadow: 0px 8rpx 32rpx 0px rgba(212, 220, 236, 0.59);
		border-radius: 16rpx;
		padding: 30rpx;
		// margin: 110rpx 30rpx 30rpx;
		position: relative;
		z-index: 2;
	}

	.projectIndexBG {
		width: 100%;
		height: 714rpx !important;
		position: absolute;
		top: 0;
		left: 0;
	}
</style>