| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440 | 
							- <script setup>
 
- 	import {
 
- 		ref
 
- 	} from "vue"
 
- 	import {
 
- 		onLoad,
 
- 		onShow,
 
- 	} from "@dcloudio/uni-app"
 
- 	import {
 
- 		getOverdueNum
 
- 	} from "@/api/work/overdue.js"
 
- 	import {
 
- 		getannouncementList,
 
- 		getUnwriteReportList,
 
- 		getHomeStats
 
- 	} from "@/api/home.js"
 
- 	import {
 
- 		getJSDDlist,
 
- 		getHYFLlist,
 
- 	} from "@/api/work/projectInfo.js";
 
- 	import {
 
- 		getMessageNum
 
- 	} from "@/api/work/message.js"
 
- 	import store from '@/store'
 
- 	import {
 
- 		checkRoleById
 
- 	} from "@/utils/permission.js"
 
- 	import iconEnterpriseInfo from "@/static/func/enterpriseInfos.svg";
 
- 	import iconProjectInfo from "@/static/func/projectInfo.svg";
 
- 	import iconReserveProject from "@/static/func/reserveProject.svg";
 
- 	import iconContact from "@/static/func/contact.svg";
 
- 	import iconQuestionList from "@/static/func/questionList.svg";
 
- 	import iconQuestionInput from "@/static/func/questionInput.svg";
 
- 	import iconQuestionTrace from "@/static/func/questionTrace.svg";
 
- 	import iconFundPlan from "@/static/func/fundPlan.svg";
 
- 	import iconFundUse from "@/static/func/fundUse.svg";
 
- 	import iconProjectPercents from "@/static/func/projectPercents.svg";
 
- 	import iconImportant from "@/static/func/important.svg";
 
- 	import iconPreFlow from "@/static/func/preFlow.svg";
 
- 	import iconWeekly from "@/static/func/weekly.svg";
 
- 	import iconMonthly from "@/static/func/monthly.svg";
 
- 	import iconYearly from "@/static/func/yearly.svg";
 
- 	import iconOverdued from "@/static/func/overdued.svg";
 
- 	import iconOverdueWill from "@/static/func/overdueWill.svg";
 
- 	// 项目信息
 
- 	let projectYear = ref(2023);
 
- 	// 选择年
 
- 	let yearShow = ref(false);
 
- 	let defaultIndex = ref([0]);
 
- 	let yearColumns = ref([
 
- 		["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012",
 
- 			"2013",
 
- 			"2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026",
 
- 			"2027", "2028", "2029", "2030", "2031", "2032", "2033"
 
- 		]
 
- 	])
 
- 	const yearShowChoose = function() {
 
- 		yearShow.value = true;
 
- 	}
 
- 	const yearClose = function(e) {
 
- 		if (e) {
 
- 			projectYear.value = e.value[0];
 
- 			// 获取最新数据
 
- 			getProjectInfo();
 
- 		}
 
- 		yearShow.value = false;
 
- 	}
 
- 	// 选择分类
 
- 	let projectKind = ref(null);
 
- 	let projectKindId = null;
 
- 	let kindShow = ref(false);
 
- 	let kindColumns = ref([]);
 
- 	const kindShowChoose = function() {
 
- 		kindShow.value = true;
 
- 	}
 
- 	const kindClose = function(e) {
 
- 		if (e) {
 
- 			projectKind.value = e.value[0];
 
- 			projectKindId = hyflFull.find(item => item.value === projectKind.value).key;
 
- 			// 获取最新数据
 
- 			getProjectInfo();
 
- 		}
 
- 		kindShow.value = false;
 
- 	}
 
- 	let hyflFull = [];
 
- 	const getHYFL = function() {
 
- 		getHYFLlist().then(res => {
 
- 			hyflFull = res.data.list;
 
- 			kindColumns.value = [res.data.list.map(item => item.value)];
 
- 		})
 
- 	};
 
- 	// 选择地点
 
- 	let projectArea = ref(null);
 
- 	let projectAreaId = null;
 
- 	let areaShow = ref(false);
 
- 	let areaColumns = ref([]);
 
- 	const areaShowChoose = function() {
 
- 		areaShow.value = true;
 
- 	}
 
- 	const areaClose = function(e) {
 
- 		if (e) {
 
- 			projectArea.value = e.value[0];
 
- 			projectAreaId = jsddFull.find(item => item.value === projectArea.value).key;
 
- 			// 获取最新数据
 
- 			getProjectInfo();
 
- 		}
 
- 		areaShow.value = false;
 
- 	}
 
- 	let jsddFull = [];
 
- 	const getJSDD = function() {
 
- 		getJSDDlist().then(res => {
 
- 			jsddFull = res.data.list;
 
- 			areaColumns.value = [res.data.list.map(item => item.value)];
 
- 		})
 
- 	};
 
- 	let projectNum = ref([{
 
- 		name: "亿元以下",
 
- 		key: "numAmt1",
 
- 		value: 0,
 
- 	}, {
 
- 		name: "1-5亿",
 
- 		key: "numAmt2",
 
- 		value: 0,
 
- 	}, {
 
- 		name: "5-10亿",
 
- 		key: "numAmt3",
 
- 		value: 0,
 
- 	}, {
 
- 		name: "10亿以上",
 
- 		key: "numAmt4",
 
- 		value: 0,
 
- 	}]);
 
- 	let fundNum = ref([{
 
- 		name: "年度计划投资",
 
- 		key: "amtJh",
 
- 		value: 0,
 
- 	}, {
 
- 		name: "当月计划投资",
 
- 		key: "monthPlan",
 
- 		value: 0,
 
- 	}, {
 
- 		name: "年度完成投资",
 
- 		key: "amtSj",
 
- 		value: 0,
 
- 	}]);
 
- 	let fullPercents = ref(0);
 
- 	let pieOpts = ref({
 
- 		color: ["#03873F", "#00B250", "#1BBF65", "#31DF80", "#69E2A0"],
 
- 		enableScroll: false,
 
- 		legend: {
 
- 			show: false
 
- 		},
 
- 		extra: {
 
- 			pie: {
 
- 				customRadius: 80,
 
- 				border: false,
 
- 			}
 
- 		}
 
- 	})
 
- 	let ringOpts = ref({
 
- 		color: ["#3E76FC", "#7AA2FF", "#B8CDFF"],
 
- 		enableScroll: false,
 
- 		legend: {
 
- 			show: false
 
- 		},
 
- 		title: {
 
- 			name: "300",
 
- 			fontSize: 14,
 
- 			color: "#3D3D3D"
 
- 		},
 
- 		subtitle: {
 
- 			name: "项目总数",
 
- 			fontSize: 14,
 
- 			color: "#3D3D3D"
 
- 		},
 
- 		extra: {
 
- 			ring: {
 
- 				customRadius: 55,
 
- 				ringWidth: 20,
 
- 				border: false,
 
- 			}
 
- 		}
 
- 	})
 
- 	let ringTotal = ref(0);
 
- 	let ringChartData = ref({
 
- 		series: [{
 
- 			data: [{
 
- 				name: '新建项目',
 
- 				value: 100,
 
- 				labelShow: false
 
- 			}, {
 
- 				name: '续建项目',
 
- 				value: 100,
 
- 				labelShow: false
 
- 			}, {
 
- 				name: '储备项目',
 
- 				value: 100,
 
- 				labelShow: false
 
- 			}]
 
- 		}]
 
- 	})
 
- 	let showRing = ref(false)
 
- 	let showPie = ref(false)
 
- 	let pieChartData = ref({
 
- 		series: [{
 
- 			data: [{
 
- 				name: "无数据",
 
- 				value: 0,
 
- 				labelShow: false
 
- 			}]
 
- 		}]
 
- 	})
 
- 	function getProjectInfo() {
 
- 		getHomeStats({
 
- 			year: projectYear.value,
 
- 			indusKind: projectKindId,
 
- 			buildAddre: projectAreaId
 
- 		}).then(res => {
 
- 			const {
 
- 				data
 
- 			} = res;
 
- 			for (let i in projectNum.value) {
 
- 				projectNum.value[i].value = data[projectNum.value[i].key] ?? "--";
 
- 			}
 
- 			for (let i in fundNum.value) {
 
- 				fundNum.value[i].value = data[fundNum.value[i].key] ?? "--";
 
- 			}
 
- 			fullPercents.value = (data.numBl ?? "") === "" ? 0 : parseFloat(data.numBl);
 
- 			// 圆环图
 
- 			numNew.value = ringChartData.value.series[0].data[0].value = data.numNew;
 
- 			numOld.value = ringChartData.value.series[0].data[1].value = data.numOld;
 
- 			numNo.value = ringChartData.value.series[0].data[2].value = data.numNo;
 
- 			ringOpts.value.title.name = data.numTotal ?? "0";
 
- 			showRing.value = true;
 
- 			let tempArr = [];
 
- 			for (let i in data.buildAddress) {
 
- 				tempArr.push({
 
- 					name: data.buildAddress[i].title,
 
- 					value: data.buildAddress[i].num,
 
- 					labelShow: false
 
- 				})
 
- 			}
 
- 			if (data.buildAddress.length > 0) {
 
- 				pieChartData.value.series[0].data = tempArr
 
- 			} else {
 
- 				pieChartData.value.series[0].data = [{
 
- 					name: "无数据",
 
- 					value: 0,
 
- 					labelShow: false
 
- 				}]
 
- 			};
 
- 			showPie.value = true;
 
- 		})
 
- 	}
 
- 	let numNew = ref(0);
 
- 	let numOld = ref(0);
 
- 	let numNo = ref(0);
 
- 	// 公告列表
 
- 	let announcementList = ref([]);
 
- 	function getAnnounceMent() {
 
- 		getannouncementList({
 
- 			pageNo: 1,
 
- 			pageSize: 3
 
- 		}).then(res => {
 
- 			let titleList = res.data.list.map(item => {
 
- 				return item.title
 
- 			})
 
- 			announcementList.value = titleList.length > 0 ? titleList : ['当前暂无公告'];
 
- 		})
 
- 	}
 
- 	// 逾期数量
 
- 	let overdueWill = ref(0);
 
- 	let overdued = ref(0);
 
- 	function getOverdue() {
 
- 		getOverdueNum().then(res => {
 
- 			let bigItem = functionList.value.find(item => item.name === "问题督办");
 
- 			let willItem = bigItem.funcList.find(item => item.name === "预期提醒");
 
- 			willItem.badgeValue = res.data.willOver ?? 0;
 
- 			let overduedItem = bigItem.funcList.find(item => item.name === "已逾期");
 
- 			overduedItem.badgeValue = res.data.isOver ?? 0;
 
- 			// overdueWill.value = res.data.willOver ?? 0;
 
- 			// overdued.value = res.data.isOver ?? 0;
 
- 		})
 
- 	}
 
- 	// 功能列表
 
- 	let functionList = ref([{
 
- 			name: '基本信息',
 
- 			permissionCode: '712',
 
- 			funcList: [{
 
- 				name: '企业信息',
 
- 				url: '/pages/enterpriseInfo/index',
 
- 				icon: iconEnterpriseInfo,
 
- 				permissionCode: '7121'
 
- 			}, {
 
- 				name: '项目台账',
 
- 				url: '/pages/projectInfo/index',
 
- 				icon: iconProjectInfo,
 
- 				permissionCode: '7111'
 
- 			}, {
 
- 				name: '储备项目',
 
- 				url: '/pages/cbProject/index',
 
- 				icon: iconReserveProject,
 
- 				permissionCode: '7112'
 
- 			}, {
 
- 				name: '联系人',
 
- 				url: '/pages/contact/index',
 
- 				icon: iconContact,
 
- 				permissionCode: '7112'
 
- 			}]
 
- 		},
 
- 		{
 
- 			name: '由项目申报单位填写',
 
- 			permissionCode: '811',
 
- 			funcList: [{
 
- 				name: '周报',
 
- 				url: '/pages/weekly/index',
 
- 				icon: iconWeekly,
 
- 				permissionCode: '8112'
 
- 			}, {
 
- 				name: '月报',
 
- 				url: '/pages/monthly/index',
 
- 				icon: iconMonthly,
 
- 				permissionCode: '8113'
 
- 			}, {
 
- 				name: '年度计划',
 
- 				url: '/pages/yearly/index',
 
- 				icon: iconYearly,
 
- 				permissionCode: '8111'
 
- 			}]
 
- 		},
 
- 		{
 
- 			name: '问题督办',
 
- 			permissionCode: '713',
 
- 			funcList: [{
 
- 				name: '问题清单',
 
- 				url: '/pages/oversee/index',
 
- 				icon: iconQuestionList,
 
- 				permissionCode: '7131'
 
- 			}, {
 
- 				name: '问题录入',
 
- 				url: '/pages/questionInput/index',
 
- 				icon: iconQuestionInput,
 
- 				permissionCode: '7132'
 
- 			}, {
 
- 				name: '问题跟踪',
 
- 				url: '/pages/questionTrace/index',
 
- 				icon: iconQuestionTrace,
 
- 				permissionCode: '7133'
 
- 			}, {
 
- 				name: '预期提醒',
 
- 				url: '/pages/overdue/index',
 
- 				icon: iconOverdueWill,
 
- 				permissionCode: '7133',
 
- 				showBadge: true,
 
- 				badgeValue: 0
 
- 			}, {
 
- 				name: '已逾期',
 
- 				url: '/pages/overdue/overdued/index',
 
- 				icon: iconOverdued,
 
- 				permissionCode: '7133',
 
- 				showBadge: true,
 
- 				badgeValue: 0
 
- 			}]
 
- 		},
 
- 		{
 
- 			name: '统计分析',
 
- 			permissionCode: '714',
 
- 			lastLine: true,
 
- 			funcList: [{
 
- 				name: '资金计划',
 
- 				url: '/pages/countAnalysis/fundPlan/index',
 
- 				icon: iconFundPlan,
 
- 				permissionCode: '7141',
 
- 			}, {
 
- 				name: '资金使用',
 
- 				url: '/pages/countAnalysis/fundUse/index',
 
- 				icon: iconFundUse,
 
- 				permissionCode: '7142'
 
- 			}, {
 
- 				name: '项目进度',
 
- 				url: '/pages/countAnalysis/projectProcess/index',
 
- 				icon: iconProjectPercents,
 
- 				permissionCode: '7143'
 
- 			}, {
 
- 				name: '重大事项',
 
- 				url: '/pages/important/index',
 
- 				icon: iconImportant,
 
- 				permissionCode: '7143'
 
- 			}, {
 
- 				name: '前期手续',
 
- 				url: '/pages/preFlow/index',
 
- 				icon: iconPreFlow,
 
- 				permissionCode: '7143'
 
- 			}]
 
- 		},
 
- 	])
 
- 	// 判断功能菜单权限
 
- 	const roles = store.getters && store.getters.permissions;
 
- 	function judgeFuncList() {
 
- 		let tempList = JSON.parse(JSON.stringify(functionList.value))
 
- 		for (let i in tempList) {
 
- 			//如果父级都没权限 直接移除
 
- 			if (!roles.includes(tempList[i].permissionCode)) {
 
- 				tempList[i].ban = true
 
- 			} else {
 
- 				let funcListSon = tempList[i].funcList
 
- 				for (let j in funcListSon) {
 
- 					if (!roles.includes(funcListSon[j].permissionCode)) {
 
- 						funcListSon[j].ban = true
 
- 					}
 
- 				}
 
- 			}
 
- 		}
 
- 		let filterList = tempList.filter(item => {
 
- 			return !item.ban
 
- 		})
 
- 		for (let i in filterList) {
 
- 			let filterListSon = filterList[i].funcList.filter(item => {
 
- 				return !item.ban
 
- 			})
 
- 			filterList[i].funcList = filterListSon
 
- 		}
 
- 		functionList.value = filterList
 
- 	}
 
- 	function goToPage(url, permissionCode) {
 
- 		if (permissionCode) {
 
- 			let havePermission = checkRoleById([permissionCode])
 
- 			if (!havePermission) return
 
- 		}
 
- 		uni.navigateTo({
 
- 			url
 
- 		})
 
- 	}
 
- 	// =============================未填写周报月报
 
- 	let popupShow = ref(false)
 
- 	let unWriteList = ref([])
 
- 	let unWriteListTotal = ref(0)
 
- 	function getUnwirteList() {
 
- 		getUnwriteReportList().then(res => {
 
- 			if (res.data.list.length > 0) {
 
- 				popupShow.value = true;
 
- 				unWriteList.value = res.data.list;
 
- 				unWriteListTotal.value = res.data.list.length;
 
- 			}
 
- 		})
 
- 	}
 
- 	function goToWriteReport(item) {
 
- 		const {
 
- 			sub_id: subId,
 
- 			month1: kj_month,
 
- 		} = item;
 
- 		let year = item.month1.substr(0, 4)
 
- 		let startDate = item.month1.substr(0, 10)
 
- 		if (item.kind === "1") { // 周报		
 
- 			uni.navigateTo({
 
- 				url: `/pages/weekly/input/index?subId=${subId}&startDate=${startDate}&year=${year}&kj_month=${kj_month}`
 
- 			})
 
- 		} else { // 月报	
 
- 			let kjMonth = kj_month.substring(0, 4) + '年' + kj_month.substring(4, 6) + '月';
 
- 			uni.navigateTo({
 
- 				url: `/pages/monthly/input/index?subId=${subId}&startDate=${startDate}&year=${year}&kj_month=${kjMonth}`
 
- 			})
 
- 		}
 
- 	}
 
- 	function popupClose() {
 
- 		popupShow.value = false
 
- 	}
 
- 	function getMessageCount() {
 
- 		getMessageNum().then(res => {
 
- 			if (res.data.count) {
 
- 				uni.setTabBarBadge({ //显示数字
 
- 					index: 1, //tabbar下标
 
- 					text: res.data.count + '' //数字
 
- 				})
 
- 			} else {
 
- 				uni.removeTabBarBadge({ //显示数字
 
- 					index: 1, //tabbar下标
 
- 				})
 
- 			}
 
- 		})
 
- 	}
 
- 	onLoad(() => {
 
- 		let now = new Date();
 
- 		projectYear.value = now.getFullYear();
 
- 		defaultIndex.value = [projectYear.value - 2000];
 
- 		judgeFuncList(); //判断权限
 
- 		getAnnounceMent(); //获取公告
 
- 		getHYFL(); //获取行业分类
 
- 		getJSDD(); //获取建设地点
 
- 		getProjectInfo(); //获取项目数据
 
- 		getOverdue(); //获取逾期数量
 
- 		getUnwirteList(); //获取未填写周报月报信息
 
- 		getMessageCount(); //获取未读消息数量
 
- 	});
 
- 	onShow(() => {
 
- 		if (popupShow.value) {
 
- 			getUnwirteList();
 
- 		}
 
- 	})
 
- </script>
 
- <template>
 
- 	<view class="container">
 
- 		<!-- 头 固定-->
 
- 		<view class="title-content">
 
- 			<!-- <text class="title">工作台</text> -->
 
- 			<!-- 搜索 -->
 
- 			<!-- 			<view class="search">
 
- 				<view class="search-input">
 
- 					<view class="search-icon"></view>
 
- 					<input @focus="goToPage('/pages/search/index')" placeholder="项目、领导电话..."
 
- 						placeholder-style="color: #D8D8D8;font-size:24rpx" />
 
- 				</view>
 
- 				<view class="search-focus" @click="goToPage('/pages/focus/index')">
 
- 					<view class="search-focus-icon"></view>
 
- 					关注
 
- 				</view>
 
- 			</view> -->
 
- 			<view class="title">
 
- 				<view class="title-text">工作台</view>
 
- 				<view class="title-search" @click="goToPage('/pages/search/index')"></view>
 
- 			</view>
 
- 		</view>
 
- 		<!-- <view class="top-blue"> -->
 
- 		<!-- 新增功能 -->
 
- 		<!-- 		<view class="special-funcs">
 
- 				<view class="special-func-item gov" @click="goToPage('/pages/policy/search/index')">
 
- 					<view class="special-func-title">
 
- 						<view class="special-func-name">政策文件</view>
 
- 						<u-icon name="arrow-right" color="#fff" size="16" customStyle="margin-top:2rpx"></u-icon>
 
- 					</view>
 
- 				</view>
 
- 				<view class="special-func-item todo" @click="goToPage('/pages/process/index')">
 
- 					<view class="special-func-title">
 
- 						<view class="special-func-name">办事流程</view>
 
- 						<u-icon name="arrow-right" color="#fff" size="16" customStyle="margin-top:2rpx"></u-icon>
 
- 					</view>
 
- 				</view>
 
- 				<view class="special-func-item images" @click="goToPage('/pages/projectImage/index')">
 
- 					<view class="special-func-title">
 
- 						<view class="special-func-name">项目形象进度</view>
 
- 						<u-icon name="arrow-right" color="#fff" size="16" customStyle="margin-top:2rpx"></u-icon>
 
- 					</view>
 
- 				</view>
 
- 			</view>
 
-  -->
 
- 		<!-- 公告 -->
 
- 		<!-- <view class="announcementList"> -->
 
- 		<!-- <view class="announcementList-text">通知公告</view> -->
 
- 		<!-- 				<u-notice-bar :text="announcementList" url="/pages/announcement/list/index" direction="column"
 
- 					mode="link" bgColor="#FFF7DC " color="#FF8D02"></u-notice-bar>
 
- 			</view> -->
 
- 		<!-- </view> -->
 
- 		<!-- 功能区 -->
 
- 		<view class="function-list">
 
- 			<view class="func-kind" v-for="item in functionList">
 
- 				<view class="func-kind-title">
 
- 					<view class="func-kind-icon"></view>
 
- 					{{item.name}}
 
- 				</view>
 
- 				<u-grid :border="false" col="4">
 
- 					<u-grid-item v-for="(listItem,listIndex) in item.funcList" :key="listIndex"
 
- 						@click="goToPage(listItem.url,listItem.permissionCode)">
 
- 						<view class="grid-item">
 
- 							<u-badge v-if="listItem.showBadge" class="badge-num" type="error" max="99"
 
- 								:value="listItem.badgeValue"></u-badge>
 
- 							<view class="grid-item-icon">
 
- 								<image :src="listItem.icon"></image>
 
- 							</view>
 
- 							{{listItem.name}}
 
- 						</view>
 
- 					</u-grid-item>
 
- 				</u-grid>
 
- 			</view>
 
- 		</view>
 
- 		<!-- 项目信息 -->
 
- 		<view class="project-info">
 
- 			<view class="project-info-select">
 
- 				<view class="choose-year" @click="yearShowChoose()">
 
- 					年度:{{projectYear}}
 
- 					<u-icon name="arrow-right" color="#343437" size="14" customStyle="margin-left:10rpx"></u-icon>
 
- 				</view>
 
- 				<view class="choose-year border" @click="kindShowChoose()">
 
- 					{{projectKind ??"行业分类"}}
 
- 					<u-icon name="arrow-right" color="#343437" size="14" customStyle="margin-left:10rpx"></u-icon>
 
- 				</view>
 
- 				<view class="choose-year" @click="areaShowChoose()">
 
- 					{{projectArea ??"建设地点"}}
 
- 					<u-icon name="arrow-right" color="#343437" size="14" customStyle="margin-left:10rpx"></u-icon>
 
- 				</view>
 
- 			</view>
 
- 			<view class="project-num-box">
 
- 				<view class="project-num">
 
- 					<view class="project-num-title blue">
 
- 						亿元项目数(单位:个)
 
- 					</view>
 
- 					<view class="project-num-minbox">
 
- 						<view class=" project-num-item" v-for="(item,index) in projectNum" :key="index">
 
- 							<view class="project-num-value">{{item.value}}</view>
 
- 							<text style="color:#82828C">{{item.name}}</text>
 
- 						</view>
 
- 					</view>
 
- 				</view>
 
- 				<view class="project-num">
 
- 					<view class="project-num-title">
 
- 						资金使用情况(单位:万元)
 
- 						<u-icon name="arrow-right" color="#7D7D9C" size="14"></u-icon>
 
- 					</view>
 
- 					<view class="project-num-minbox">
 
- 						<view class="project-num-item" v-for="(item,index) in fundNum" :key="index">
 
- 							<view class="project-num-value">{{item.value}}</view>
 
- 							<text style="color:#82828C">{{item.name}}</text>
 
- 						</view>
 
- 					</view>
 
- 				</view>
 
- 				<view class="project-process">
 
- 					实际整体进度
 
- 					<view class="line-progress">
 
- 						<u-line-progress :percentage="fullPercents" inactiveColor="#C1CEED" activeColor="#5D5AFF" :showText="false"
 
- 							height="13"></u-line-progress>
 
- 					</view>
 
- 					<view class="percent">
 
- 						{{fullPercents}}%
 
- 					</view>
 
- 				</view>
 
- 			</view>
 
- 		</view>
 
- 		<!-- 饼图 -->
 
- 		<view class="charts">
 
- 			<view class="charts-item">
 
- 				<view class="charts-item-title">单位:个</view>
 
- 				<view class="charts-item-ring">
 
- 					<qiun-data-charts v-if="showRing" type="ring" :opts="ringOpts" :chartData="ringChartData" />
 
- 				</view>
 
- 				<view class="charts-item-description">
 
- 					<view class="charts-item-key">
 
- 						<view class="charts-item-color"></view>
 
- 						<view class="charts-item-name">新建项目</view>
 
- 					</view>
 
- 					<view class="charts-item-value">{{numNew}}</view>
 
- 				</view>
 
- 				<view class="charts-item-description">
 
- 					<view class="charts-item-key">
 
- 						<view class="charts-item-color"></view>
 
- 						<view class="charts-item-name">续建项目</view>
 
- 					</view>
 
- 					<view class="charts-item-value">{{numOld}}</view>
 
- 				</view>
 
- 				<view class="charts-item-description">
 
- 					<view class="charts-item-key">
 
- 						<view class="charts-item-color"></view>
 
- 						<view class="charts-item-name">储备项目</view>
 
- 					</view>
 
- 					<view class="charts-item-value">{{numNo}}</view>
 
- 				</view>
 
- 			</view>
 
- 			<view class="charts-item">
 
- 				<view class="charts-item-pie">
 
- 					<qiun-data-charts v-if="showPie" type="pie" :opts="pieOpts" :chartData="pieChartData" />
 
- 				</view>
 
- 				<view class="charts-item-text">建设地点</view>
 
- 				<view class="charts-item-text">投资占比</view>
 
- 			</view>
 
- 		</view>
 
- 		<!-- 逾期提醒 -->
 
- 		<!-- 	<view class="overdue">
 
- 			<view class="overdue-item" @click="goToPage('/pages/overdue/index')">
 
- 				<view class="overdue-icon overdue-will">
 
- 					<view class="badge-box">
 
- 						<u-badge class="badge-num" type="error" max="99" :value="overdueWill"></u-badge>
 
- 					</view>
 
- 				</view>
 
- 				<view class="overdue-item-text">
 
- 					预期提醒
 
- 					<u-icon name="arrow-right" color="#343437" size="16" customStyle="margin-left:20rpx"></u-icon>
 
- 				</view>
 
- 			</view>
 
- 			<view class="overdue-item" @click="goToPage('/pages/overdue/overdued/index')">
 
- 				<view class="overdue-icon overdued">
 
- 					<view class="badge-box">
 
- 						<u-badge class="badge-num" type="error" max="99" :value="overdued"></u-badge>
 
- 					</view>
 
- 				</view>
 
- 				<view class="overdue-item-text">
 
- 					已逾期
 
- 					<u-icon name="arrow-right" color="#343437" size="16" customStyle="margin-left:20rpx"></u-icon>
 
- 				</view>
 
- 			</view>
 
- 		</view>
 
-  -->
 
- 		<!-- 周报日报年度计划 -->
 
- 		<!-- 	<view v-if="roles.includes('811')" class="report">
 
- 			<view v-if="roles.includes('8112')" class="report-item" @click="goToPage('/pages/weekly/index','8112')">
 
- 				<view class="report-icon weekly"></view>
 
- 				<view class="report-item-text">周报</view>
 
- 			</view>
 
- 			<view v-if="roles.includes('8113')" class="report-item" @click="goToPage('/pages/monthly/index','8113')">
 
- 				<view class="report-icon monthly"></view>
 
- 				<view class="report-item-text">月报</view>
 
- 			</view>
 
- 			<view v-if="roles.includes('8111')" class="report-item" @click="goToPage('/pages/yearly/index','8111')">
 
- 				<view class="report-icon yearly"></view>
 
- 				<view class="report-item-text">年度计划</view>
 
- 			</view>
 
- 		</view>-->
 
- 		<!-- 中部间隔 -->
 
- 		<view class="gap-line"></view>
 
- 		<!-- 底部间隔 -->
 
- 		<view class="gap-bottom"></view>
 
- 		<!-- 周报月报弹窗 -->
 
- 		<u-popup :show="popupShow" :round="20" @close="popupClose()" mode="center" closeable>
 
- 			<view class="remind-box">
 
- 				<text class="remind-title">提示</text>
 
- 				<view class="remind-card" v-for="(item,index) in unWriteList" :key="index">
 
- 					<view class="remind-item">
 
- 						<view class="remind-item-name">类型</view>
 
- 						<view class="remind-item-content">{{item.kind==='1'?'缺失周报':'缺失月报'}}</view>
 
- 					</view>
 
- 					<view class="remind-item">
 
- 						<view class="remind-item-name">项目名称</view>
 
- 						<view class="remind-item-content">{{item.sub_name || '--'}}</view>
 
- 					</view>
 
- 					<view class="remind-item">
 
- 						<view class="remind-item-name">说明</view>
 
- 						<view class="remind-item-content">{{item.remark || '--'}}</view>
 
- 					</view>
 
- 					<view class="remind-item">
 
- 						<view class="remind-item-btn" @click="goToWriteReport(item)">
 
- 							{{item.kind==='1'?'填写周报':'填写月报'}}
 
- 						</view>
 
- 					</view>
 
- 					<view class="remind-count">
 
- 						{{index + 1}}/{{unWriteListTotal}}
 
- 					</view>
 
- 				</view>
 
- 			</view>
 
- 		</u-popup>
 
- 		<!-- 年度选择 -->
 
- 		<u-picker :show="yearShow" :defaultIndex="defaultIndex" :columns="yearColumns" @confirm="yearClose"
 
- 			@cancel="yearClose" @close="yearClose" closeOnClickOverlay></u-picker>
 
- 		<!-- 行业选择 -->
 
- 		<u-picker :show="kindShow" :columns="kindColumns" @confirm="kindClose" @cancel="kindClose" @close="kindClose"
 
- 			closeOnClickOverlay></u-picker>
 
- 		<!-- 地点选择 -->
 
- 		<u-picker :show="areaShow" :columns="areaColumns" @confirm="areaClose" @cancel="areaClose" @close="areaClose"
 
- 			closeOnClickOverlay></u-picker>
 
- 	</view>
 
- </template>
 
- <style lang="scss" scoped>
 
- 	@font-face {
 
- 		font-family: TITLETEXT;
 
- 		src: url('@/font/RuiZiAoYunJingShenPinBoJianMianFei-Shan(REEJI-PinboGB-Flash)-2.ttf');
 
- 	}
 
- 	page {
 
- 		height: 100%;
 
- 		background-color: #F9FBFF;
 
- 	}
 
- 	.container {
 
- 		background: #F9FBFF;
 
- 	}
 
- 	.title-content {
 
- 		position: fixed;
 
- 		top: 0;
 
- 		left: 0;
 
- 		width: 100%;
 
- 		height: 190rpx;
 
- 		padding-top: 100rpx;
 
- 		background-color: #1763E7;
 
- 		z-index: 1;
 
- 		.title {
 
- 			position: relative;
 
- 			display: flex;
 
- 			justify-content: center;
 
- 			align-items: center;
 
- 			font-size: 36rpx;
 
- 			font-weight: 700;
 
- 			color: #FFF;
 
- 			.title-search {
 
- 				position: absolute;
 
- 				right: 3%;
 
- 				width: 46rpx;
 
- 				height: 46rpx;
 
- 				background-image: url("@/static/search.png");
 
- 				background-size: 100% 100%;
 
- 			}
 
- 		}
 
- 	}
 
- 	.search {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: 92%;
 
- 		height: 68rpx;
 
- 		margin: 32rpx auto 44rpx;
 
- 		.search-input {
 
- 			display: flex;
 
- 			align-items: center;
 
- 			width: 592rpx;
 
- 			height: 100%;
 
- 			padding: 0 30rpx;
 
- 			box-sizing: border-box;
 
- 			text-align: left;
 
- 			background-color: #fff;
 
- 			border-radius: 16rpx;
 
- 			.search-icon {
 
- 				width: 28rpx;
 
- 				height: 32rpx;
 
- 				margin-right: 26rpx;
 
- 				background-image: url('@/static/search-black.png');
 
- 				background-size: 100% 100%;
 
- 			}
 
- 		}
 
- 		.search-focus {
 
- 			width: 50rpx;
 
- 			height: 100%;
 
- 			font-size: 24rpx;
 
- 			color: #fff;
 
- 			font-weight: 400;
 
- 			line-height: 30rpx;
 
- 			.search-focus-icon {
 
- 				width: 36rpx;
 
- 				height: 32rpx;
 
- 				margin: 0 auto 10rpx;
 
- 				background-image: url('@/static/focus.png');
 
- 				background-size: 100% 100%;
 
- 			}
 
- 		}
 
- 	}
 
- 	.top-blue {
 
- 		width: 100%;
 
- 		height: 722rpx;
 
- 		padding-top: 288rpx;
 
- 		margin-bottom: 82rpx;
 
- 		background: #1763E7;
 
- 		border-radius: 0 0 40rpx 40rpx;
 
- 	}
 
- 	.announcementList {
 
- 		width: 92%;
 
- 		height: 72rpx;
 
- 		margin: 0 auto 32rpx;
 
- 		padding: 10rpx 0;
 
- 		color: #FF8D02;
 
- 		background-color: #FFF7DC;
 
- 		border-radius: 26rpx;
 
- 		.announcementList-text {
 
- 			margin-bottom: 18rpx;
 
- 			font-size: 28rpx;
 
- 		}
 
- 	}
 
- 	::v-deep .u-notice-bar {
 
- 		width: 100%;
 
- 		// padding: 0;
 
- 		border-radius: 19rpx;
 
- 	}
 
- 	::v-deep .u-notice__swiper__item__text {
 
- 		overflow: hidden;
 
- 		text-overflow: ellipsis;
 
- 		white-space: nowrap;
 
- 	}
 
- 	.special-funcs {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: 92%;
 
- 		height: 210rpx;
 
- 		margin: 50rpx auto 32rpx;
 
- 		background-size: 100% 100%;
 
- 		.special-func-item {
 
- 			width: 200rpx;
 
- 			height: 210rpx;
 
- 			padding: 34rpx 18rpx;
 
- 			box-sizing: border-box;
 
- 			background-size: 100% 100%;
 
- 			.special-func-title {
 
- 				display: flex;
 
- 				justify-content: space-between;
 
- 				align-items: flex-start;
 
- 			}
 
- 			.special-func-name {
 
- 				color: #FFFFFF;
 
- 				line-height: 34rpx;
 
- 				font-size: 32rpx;
 
- 				font-family: TITLETEXT;
 
- 			}
 
- 		}
 
- 		.gov {
 
- 			background-image: url('@/static/special-gov.png');
 
- 		}
 
- 		.todo {
 
- 			background-image: url('@/static/special-todo.png');
 
- 		}
 
- 		.images {
 
- 			background-image: url('@/static/special-image.png');
 
- 		}
 
- 	}
 
- 	.project-info-select {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: calc(100% - 48rpx);
 
- 		height: 80rpx;
 
- 		margin: 0 auto;
 
- 		background-color: #fff;
 
- 		border-radius: 16rpx;
 
- 		box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 0, 0, 0.03);
 
- 		.choose-year {
 
- 			flex: 1;
 
- 			display: flex;
 
- 			align-items: center;
 
- 			justify-content: center;
 
- 			font-size: 24rpx;
 
- 			font-weight: 500;
 
- 			color: #343437;
 
- 		}
 
- 		.border {
 
- 			border-left: 3rpx solid #EAF0FD;
 
- 			border-right: 3rpx solid #EAF0FD;
 
- 			;
 
- 		}
 
- 	}
 
- 	.project-info {
 
- 		width: calc(100% - 48rpx);
 
- 		min-height: 326rpx;
 
- 		margin: 0 auto 25rpx;
 
- 		border-radius: 28rpx;
 
- 		background-color: #F9FBFF;
 
- 		border: 2rpx solid #C1CEED;
 
- 		overflow: hidden;
 
- 		.project-num-box {
 
- 			width: 100%;
 
- 			.project-num {
 
- 				width: 100%;
 
- 				height: 222rpx;
 
- 				padding: 40rpx 32rpx;
 
- 				box-sizing: border-box;
 
- 				border-bottom: 3rpx solid #EAF0FD;
 
- 			}
 
- 		}
 
- 		.project-num-title {
 
- 			display: flex;
 
- 			justify-content: space-between;
 
- 			margin-bottom: 40rpx;
 
- 			font-weight: 500;
 
- 			font-size: 28rpx;
 
- 			color: #E49F15;
 
- 		}
 
- 		.blue {
 
- 			color: #1763E7
 
- 		}
 
- 		.project-num-minbox {
 
- 			display: flex;
 
- 		}
 
- 		.project-num-item {
 
- 			flex: 1;
 
- 			margin: auto 0;
 
- 			font-size: 24rpx;
 
- 			color: #343437;
 
- 			text-align: center;
 
- 			.project-num-value {
 
- 				margin-bottom: 8rpx;
 
- 				font-size: 36rpx;
 
- 				color: #343437;
 
- 				font-weight: 700;
 
- 			}
 
- 		}
 
- 		.project-process {
 
- 			display: flex;
 
- 			align-items: center;
 
- 			justify-content: space-between;
 
- 			width: 100%;
 
- 			height: 108rpx;
 
- 			padding: 0 36rpx;
 
- 			font-size: 28rpx;
 
- 			font-weight: 500;
 
- 			color: #4B17E7;
 
- 			.line-progress {
 
- 				width: 50%;
 
- 			}
 
- 			.percent {
 
- 				color: #4B17E7;
 
- 			}
 
- 		}
 
- 	}
 
- 	.charts {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: calc(100% - 48rpx);
 
- 		height: 438rpx;
 
- 		margin: 0 auto 54rpx;
 
- 		gap: 30rpx;
 
- 		.charts-item {
 
- 			width: 336rpx;
 
- 			height: 100%;
 
- 			padding: 22rpx 32rpx;
 
- 			box-sizing: border-box;
 
- 			border-radius: 40rpx;
 
- 			border: 3rpx solid rgba(200, 216, 247, 0.302);
 
- 			.charts-item-title {
 
- 				font-size: 24rpx;
 
- 				color: #343437;
 
- 			}
 
- 			.charts-item-ring {
 
- 				height: 250rpx;
 
- 				margin: 0 auto;
 
- 			}
 
- 			.charts-item-pie {
 
- 				width: 100%;
 
- 				height: 300rpx;
 
- 				margin: 0 auto;
 
- 			}
 
- 			.charts-item-text {
 
- 				width: 100%;
 
- 				text-align: center;
 
- 				font-size: 28rpx;
 
- 				font-weight: 500;
 
- 				color: #3D3D3D;
 
- 			}
 
- 		}
 
- 	}
 
- 	.charts-item-description {
 
- 		display: flex;
 
- 		align-items: center;
 
- 		justify-content: space-between;
 
- 		width: 100%;
 
- 		margin: 4rpx 0;
 
- 		font-size: 24rpx;
 
- 		.charts-item-key {
 
- 			display: flex;
 
- 			align-items: center;
 
- 		}
 
- 		.charts-item-color {
 
- 			width: 24rpx;
 
- 			height: 24rpx;
 
- 			margin-right: 16rpx;
 
- 			background: #3E76FC;
 
- 			border-radius: 6rpx;
 
- 		}
 
- 		.charts-item-name {
 
- 			color: #82828C;
 
- 		}
 
- 		.charts-item-value {
 
- 			font-weight: 500;
 
- 			color: #343437;
 
- 		}
 
- 	}
 
- 	.overdue {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: 92%;
 
- 		height: 136rpx;
 
- 		margin: 25rpx auto;
 
- 		border-radius: 28rpx;
 
- 		backdrop-filter: blur(40rpx);
 
- 	}
 
- 	.overdue-item {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		align-items: center;
 
- 		width: 328rpx;
 
- 		height: 136rpx;
 
- 		padding: 0 28rpx 0 44rpx;
 
- 		box-sizing: border-box;
 
- 		font-size: 32rpx;
 
- 		color: #001D4F;
 
- 		font-weight: 400;
 
- 		font-family: TITLETEXT;
 
- 		background-color: #fff;
 
- 		border-radius: 28rpx;
 
- 		.overdue-icon {
 
- 			background-size: 100% 100%;
 
- 			background-position: center center;
 
- 		}
 
- 		.overdue-will {
 
- 			width: 52rpx;
 
- 			height: 53rpx;
 
- 			background-image: url('@/static/overdue-warn.png');
 
- 			.badge-num {
 
- 				position: absolute;
 
- 				top: 40rpx;
 
- 				right: -36rpx;
 
- 			}
 
- 		}
 
- 		.overdued {
 
- 			width: 61rpx;
 
- 			height: 54rpx;
 
- 			background-image: url('@/static/overdue.png');
 
- 			.badge-num {
 
- 				position: absolute;
 
- 				top: 40rpx;
 
- 				right: -36rpx
 
- 			}
 
- 		}
 
- 		.badge-box {
 
- 			position: relative;
 
- 		}
 
- 		.overdue-item-text {
 
- 			display: flex;
 
- 			align-items: center;
 
- 		}
 
- 	}
 
- 	.report {
 
- 		display: flex;
 
- 		justify-content: space-between;
 
- 		width: 92%;
 
- 		margin: 25rpx auto 0;
 
- 		padding: 0 78rpx;
 
- 		height: 164rpx;
 
- 		border-radius: 28rpx;
 
- 		background: #fff;
 
- 	}
 
- 	.report-item {
 
- 		width: 128rpx;
 
- 		height: 142rpx;
 
- 		margin: auto 0;
 
- 		text-align: center;
 
- 		.report-icon {
 
- 			width: 96rpx;
 
- 			height: 96rpx;
 
- 			margin: 0 auto;
 
- 			background-size: 100% 100%;
 
- 		}
 
- 		.weekly {
 
- 			background-image: url('@/static/icon-weekly.svg');
 
- 		}
 
- 		.monthly {
 
- 			background-image: url('@/static/icon-monthly.svg');
 
- 		}
 
- 		.yearly {
 
- 			background-image: url('@/static/icon-yearly.svg');
 
- 		}
 
- 		.report-item-text {
 
- 			margin-top: 10rpx;
 
- 			color: #000;
 
- 			font-size: 28rpx;
 
- 		}
 
- 	}
 
- 	.gap-line {
 
- 		width: 100%;
 
- 		height: 20rpx;
 
- 		background: #E8ECF4;
 
- 	}
 
- 	.function-list {
 
- 		width: 100%;
 
- 		min-height: 100rpx;
 
- 		margin: 200rpx auto 0;
 
- 		padding: 32rpx;
 
- 		box-sizing: border-box;
 
- 		.func-kind-title {
 
- 			position: relative;
 
- 			display: flex;
 
- 			align-items: center;
 
- 			width: 158rpx;
 
- 			height: 48rpx;
 
- 			padding-left: 27rpx;
 
- 			margin-bottom: 32rpx;
 
- 			font-weight: 400;
 
- 			color: #001D4F;
 
- 			line-height: 30rpx;
 
- 			font-size: 32rpx;
 
- 			font-family: TITLETEXT;
 
- 			background: linear-gradient(90deg, rgba(23, 99, 231, 0.37) 0%, rgba(255, 255, 255, 0) 100%);
 
- 			white-space: nowrap;
 
- 			.func-kind-icon {
 
- 				position: absolute;
 
- 				top: 0;
 
- 				left: -9rpx;
 
- 				width: 18rpx;
 
- 				height: 48rpx;
 
- 				margin-right: 18rpx;
 
- 				background: #1869F6;
 
- 				border-radius: 9rpx;
 
- 			}
 
- 		}
 
- 		.grid-item {
 
- 			height: 92rpx;
 
- 			margin: 18rpx 0 46rpx;
 
- 			font-size: 24rpx;
 
- 			color: #343437;
 
- 			.badge-num {
 
- 				position: absolute;
 
- 				top: 0;
 
- 				right: 25rpx;
 
- 			}
 
- 			.grid-item-icon {
 
- 				width: 56rpx;
 
- 				height: 56rpx;
 
- 				margin: 0 auto 6rpx;
 
- 				image {
 
- 					width: 100%;
 
- 					height: 100%;
 
- 				}
 
- 			}
 
- 		}
 
- 		.bottom-item {
 
- 			margin-bottom: 0;
 
- 		}
 
- 	}
 
- 	.gap-bottom {
 
- 		width: 100%;
 
- 		height: 100rpx;
 
- 	}
 
- 	.remind-box {
 
- 		width: 672rpx;
 
- 		min-height: 464rpx;
 
- 		max-height: 858rpx;
 
- 		padding: 16rpx 40rpx;
 
- 		overflow: hidden;
 
- 		overflow-y: scroll;
 
- 		.remind-title {
 
- 			color: #FF4800;
 
- 			font-size: 36rpx;
 
- 		}
 
- 		.remind-card {
 
- 			position: relative;
 
- 			min-height: 376rpx;
 
- 			padding-bottom: 32rpx;
 
- 			border-bottom: 2rpx solid #D8D8D8;
 
- 			.remind-count {
 
- 				position: absolute;
 
- 				top: 0;
 
- 				right: -40rpx;
 
- 				display: flex;
 
- 				align-items: center;
 
- 				justify-content: center;
 
- 				width: 134rpx;
 
- 				height: 64rpx;
 
- 				font-size: 32rpx;
 
- 				color: #1869F6;
 
- 				background: #CEE0FF;
 
- 				border-radius: 32rpx 0rpx 0rpx 32rpx;
 
- 			}
 
- 		}
 
- 		.remind-item {
 
- 			display: flex;
 
- 			align-items: flex-start;
 
- 			margin-top: 40rpx;
 
- 			font-size: 32rpx;
 
- 			.remind-item-name {
 
- 				min-width: 192rpx;
 
- 				color: #9E9E9E;
 
- 			}
 
- 			.remind-item-content {
 
- 				color: #343437;
 
- 				float: left;
 
- 			}
 
- 			.remind-item-btn {
 
- 				width: 100%;
 
- 				height: 84rpx;
 
- 				line-height: 84rpx;
 
- 				font-size: 36rpx;
 
- 				color: #fff;
 
- 				text-align: center;
 
- 				background: #1869F6;
 
- 				border-radius: 16rpx;
 
- 			}
 
- 		}
 
- 	}
 
- 	::v-deep .u-popup__content {
 
- 		overflow: hidden;
 
- 	}
 
- </style>
 
 
  |