From 39ae52b3f65e2bba3b6570adb51e791cb3befff7 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 02 七月 2025 16:32:29 +0800
Subject: [PATCH] 提交

---
 wx/pages/index/index.vue |  494 +++++++++++++++++++++---------------------------------
 1 files changed, 195 insertions(+), 299 deletions(-)

diff --git a/wx/pages/index/index.vue b/wx/pages/index/index.vue
index d2c43b9..591fad6 100644
--- a/wx/pages/index/index.vue
+++ b/wx/pages/index/index.vue
@@ -1,333 +1,182 @@
 <template>
-	<view class="content">
-		<view class="content_head" :style="{backgroundImage: 'url(' + backgroundImg + ')'}">
-			<text>{{userInfo.company.name}}</text>
-			<text>褰撳墠鍦ㄤ繚锛歿{num}}浜�</text>
-		</view>
-		<view class="content_box">
-			<view class="content_box_list">
-				<view class="content_box_list_left" @click="jump(1)" :style="{backgroundImage: 'url(' + backgroundImg1 + ')'}">
-					<text>鎶曚繚鐢宠</text>
-					<text>绠�鍗曚究鎹�</text>
-				</view>
-				<view class="content_box_list_right">
-					<view class="content_box_list_right_row" @click="jump(2)" :style="{backgroundImage: 'url(' + backgroundImg2 + ')'}">
-						<text>鎴戠殑淇濆崟</text>
-						<text>鍏ㄩ潰绠′繚鍗�</text>
+	<view class="policy">
+		<Search :list="cate" @search="getValue" label="淇濋櫓鐢熸晥璧锋湡" />
+		<view class="policy_list" v-if="list.length > 0">
+			<view class="policy_list_item" v-for="(item, index) in list" :key="index" @click="jump(item.id)">
+				<view class="item_top" :style="{ background: returnStyle(item.statusCollect) }">
+					<view class="item_top_info">
+						<text>{{item.solutionsName}}</text>
+						<text>淇濆崟鍙凤細{{item.code ? item.code : '-'}}</text>
 					</view>
-					<view class="content_box_list_right_row" @click="jump(3)" :style="{backgroundImage: 'url(' + backgroundImg3 + ')'}">
-						<text>鍦ㄧ嚎鎶ユ</text>
-						<text>鏂逛究杩呴��</text>
+					<view class="item_top_img">
+						<image v-if="item.statusCollect === 2 || item.statusCollect === 27" src="@/static/icon/progress_baozhangzhong@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 0 || item.statusCollect === 22" src="@/static/icon/progress_daishenhe@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 7 || item.statusCollect === 28" src="@/static/icon/progress_daiqianshu@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 1 || item.statusCollect === 23" src="@/static/icon/progress_daichudan@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 5" src="@/static/icon/progress_shenqingtuihui@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 4 || item.statusCollect === 24" src="@/static/icon/progress_yituihui@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 6 || item.statusCollect === 25" src="@/static/icon/progress_yiguanbi@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 3" src="@/static/icon/progress_yiguoqi@2x.png" mode="widthFix"></image>
+						<image v-if="item.statusCollect === 26" src="@/static/icon/ic_toubaozhong.png" mode="widthFix"></image>
+					</view>
+				</view>
+				<view class="item_center">
+					<view class="item_center_x"></view>
+				</view>
+				<view class="item_list">
+					<view class="item_list_item">
+						<view class="item_list_item_label">鎶曚繚浜烘暟锛�</view>
+						<view class="item_list_item_val">{{item.insureNum}}浜�</view>
+					</view>
+					<view class="item_list_item">
+						<view class="item_list_item_label">鍦ㄤ繚鏃堕暱锛�</view>
+						<view class="item_list_item_val">{{(item.serviceDays - item.loseEfficacyDays) < 0 ? `-` : item.serviceDays - item.loseEfficacyDays + '澶�'}}</view>
+					</view>
+					<view class="item_list_item" style="width: 100%;" v-if="item.solutionType === 1 && (item.statusCollect === 2 || item.statusCollect === 27)">
+						<view class="item_list_item_label">鎬昏垂鐢細</view>
+						<view class="item_list_item_val">{{item.fee}}鍏�</view>
+					</view>
+					<view class="item_list_item" style="width: 100%;">
+						<view class="item_list_item_label">淇濋殰鏃ユ湡锛�</view>
+						<view class="item_list_item_val">{{item.startTime}}-{{item.endTime}}</view>
 					</view>
 				</view>
 			</view>
-			<view class="content_box_list1">
-				<view class="content_box_list1_item" @click="jump(4)" :style="{backgroundImage: 'url(' + backgroundImg4 + ')'}">
-					<text>鍔犲噺淇濈敵璇�</text>
-					<text>澧炲姞/鍑忓皯鎶曚繚浜�</text>
-				</view>
-				<view class="content_box_list1_item" @click="jump(5)" :style="{backgroundImage: 'url(' + backgroundImg5 + ')'}">
-					<text>鍔犲噺淇濊褰�</text>
-					<text>鏌ョ湅璁板綍</text>
-				</view>
-				<view class="content_box_list1_item" @click="jump(6)" :style="{backgroundImage: 'url(' + backgroundImg6 + ')'}">
-					<text>鎹㈠巶鐢宠</text>
-					<text>鏇存崲娲鹃仯鍗曚綅</text>
-				</view>
-				<view class="content_box_list1_item" @click="jump(7)" :style="{backgroundImage: 'url(' + backgroundImg7 + ')'}">
-					<text>鎹㈠巶璁板綍</text>
-					<text>鏌ョ湅璁板綍</text>
-				</view>
-				<view class="content_box_list1_item" @click="jump(8)" :style="{backgroundImage: 'url(' + backgroundImg8 + ')'}">
-					<text>鍛樺伐绠$悊</text>
-					<text>鏌ョ湅浜哄憳鎶曚繚淇℃伅</text>
-				</view>
+		</view>
+		<view class="policy_list" v-else>
+			<view class="policy_list_image">
+				<image src="@/static/icon/default_nodata@2x.png" mode="widthFix"></image>
 			</view>
 		</view>
-		<view class="content_loginout">
-			<u-button type="primary" shape="circle" color="#437CB3" :plain="true" text="閫�鍑虹櫥褰�" @click="loginOut"></u-button>
-		</view>
+		<MyTabbar :currentPage="currentPage" />
 	</view>
 </template>
 
 <script>
-	import { mapState } from 'vuex'
+	import Search from '@/components/search/search.vue'
+	import MyTabbar from '@/components/my-tabbar/my-tabbar.vue'
 	export default {
-		computed: {
-			...mapState(['userInfo', 'cookies'])
-		},
+		components: { Search, MyTabbar },
 		data() {
 			return {
-				num: 0,
-				backgroundImg: require('@/static/background/home_bg@2x.png'),
-				backgroundImg1: require('@/static/background/home_ic_toubao@2x.png'),
-				backgroundImg2: require('@/static/background/home_ic_baodan@2x.png'),
-				backgroundImg3: require('@/static/background/home_ic_baoan@2x.png'),
-				backgroundImg4: require('@/static/background/home_ic_jiajianbao@2x.png'),
-				backgroundImg5: require('@/static/background/home_ic_jiajianbaojilu@2x.png'),
-				backgroundImg6: require('@/static/background/home_ic_huanchang@2x.png'),
-				backgroundImg7: require('@/static/background/home_ic_huanchangjilu@2x.png'),
-				backgroundImg8: require('@/static/background/home_ic_yuangong@2x.png'),
-			}
+				list: [],
+				next: false,
+				cate: [
+					{ name: '鍏ㄩ儴', id: '' },
+					{ name: '淇濋殰涓�', id: '2' },
+					{ name: '寰呭鏍�', id: '0' },
+					{ name: '寰呯缃�', id: '7' },
+					{ name: '寰呭嚭鍗�', id: '1' },
+					{ name: '宸查��鍥�', id: '4' },
+					{ name: '鐢宠閫�鍥�', id: '5' },
+					{ name: '宸插叧闂�', id: '6' },
+					{ name: '宸茶繃鏈�', id: '3' },
+					{ name: '鎶曚繚涓�', id: '26' }
+				],
+				form: {
+					solutionName: '',
+					startTimeE: '',
+					startTimeS: '',
+					statusCollect: ''
+				},
+				page: 1,
+				currentPage: '/pages/index/index',
+			};
 		},
-		onShow() {
-			this.getNum()
+		onLoad() {
+			this.getList()
+		},
+		onReachBottom() {
+			this.getList()
 		},
 		methods: {
-			getNum() {
-				this.$u.api.guaranteeNum()
-					.then(res => {
-						if (res.code === 200) {
-							this.num = res.data
-						}
-					})
+			jump(id) {
+				uni.navigateTo({
+					url: `/pages/policyDetails/policyDetails?orderId=${id}`
+				})
 			},
-			loginOut() {
-				this.$u.api.logout()
-					.then(res => {
-						if (res.code === 200) {
-							this.$store.commit('empty')
-							uni.navigateTo({
-								url: '/pages/login/login'
-							})
-						}
-					})
+			getValue(obj) {
+				this.next = false
+				this.page = 1
+				this.list = []
+				this.form.solutionName = obj.name
+				this.form.startTimeE = obj.endTime
+				this.form.startTimeS = obj.startTime
+				this.form.statusCollect = obj.status
+				this.getList()
 			},
-			jump(type) {
-				if (!this.cookies || !this.userInfo) {
-					uni.navigateTo({
-						url: '/pages/login/login'
-					})
+			returnStyle(type) {
+				if ([2,26,27].includes(type)) {
+					return 'linear-gradient( 180deg, #E5F7F1 0%, rgba(255,255,255,0) 100%);'
+				} else if ([0,7,1,22,28,23].includes(type)) {
+					return 'linear-gradient( 180deg, #FFF2E3 0%, rgba(255,255,255,0) 100%);'
+				} else if ([5,4,6,3,25,24].includes(type)) {
+					return '#ffffff'
 				}
-				switch(type) {
-					case 1:
-						// if (this.userInfo.permissions.filter(item => item === 'business:insuranceapply:query').length > 0) {
-							uni.navigateTo({
-								url: '/pages/insuranceApplication/insuranceApplication'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 2:
-						// if (this.userInfo.permissions.filter(item => item === 'business:myPolicy:query').length > 0) {
-							uni.navigateTo({
-								url: '/pages/myPolicy/myPolicy'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 3:
-						// if (this.userInfo.permissions.filter(item => item === 'business:onlineReporting:create').length > 0) {
-							uni.navigateTo({
-								url: '/pages/online_reporting/online_reporting'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 4:
-						// if (this.userInfo.permissions.filter(item => item === 'business:addsubtract:apply').length > 0) {
-							uni.navigateTo({
-								url: '/pages/addition_subtraction_application/addition_subtraction_application'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 5:
-						// if (this.userInfo.permissions.filter(item => item === 'business:addsubtractInsuranceRecords:query').length > 0) {
-							uni.navigateTo({
-								url: '/pages/add_subtract_insurance/add_subtract_insurance'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 6:
-						// if (this.userInfo.permissions.filter(item => item === 'business:factoryChange:create').length > 0) {
-							uni.navigateTo({
-								url: '/pages/factoryChange/factoryChange'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 7:
-						// if (this.userInfo.permissions.filter(item => item === 'business:factoryChange:query').length > 0) {
-							uni.navigateTo({
-								url: '/pages/dispatch_unit_records/dispatch_unit_records'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-					case 8:
-						// if (this.userInfo.permissions.filter(item => item === 'system:user:query').length > 0) {
-							uni.navigateTo({
-								url: '/pages/employee_management/employee_management'
-							})
-						// } else {
-						// 	uni.showToast({
-						// 		title: '鎮ㄦ病鏈夋潈闄�',
-						// 		icon: 'none'
-						// 	})
-						// }
-						break
-				}
+			},
+			getList() {
+				if (this.next) return
+				this.$u.api.insuranceApplyPage({
+					capacity: 10,
+					page: this.page,
+					model: this.form
+				}).then(res => {
+					if (res.code === 200) {
+						if (res.data.records.length > 0) {
+							this.page++
+							this.list.push(...res.data.records)
+						} else {
+							this.next = true
+						}
+					}
+				})
 			}
 		}
 	}
 </script>
-
+<style>
+	page {
+		background-color: #F7F7F7;
+	}
+</style>
 <style lang="scss" scoped>
-	.content {
+	.policy {
 		width: 100%;
-		.content_loginout {
-			width: 200rpx;
-			// margin: 0 auto;
-			left: 50%;
-			transform: translate(-50%, 0);
-			position: fixed;
-			bottom: calc(env(safe-area-inset-bottom) + 40rpx);
-		}
-		.content_head {
+		.policy_list {
 			width: 100%;
-			height: 292rpx;
-			padding: 40rpx;
+			padding: 20rpx 30rpx;
 			box-sizing: border-box;
-			background-repeat: no-repeat;
-			background-size: 100% 100%;
-			display: flex;
-			flex-direction: column;
-			position: relative;
-			text {
-				&:nth-child(1) {
-					font-weight: 600;
-					font-size: 44rpx;
-					color: #FFFFFF;
-					font-style: normal;
-				}
-				&:nth-child(2) {
-					font-weight: 500;
-					font-size: 28rpx;
-					color: #FFFFFF;
-					font-style: normal;
-					margin-top: 24rpx;
+			.policy_list_image {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-top: 300rpx;
+				image {
+					width: 272rpx;
+					height: 272rpx;
 				}
 			}
-		}
-		.content_box {
-			width: 100%;
-			padding: 0 30rpx;
-			box-sizing: border-box;
-			position: relative;
-			top: -100rpx;
-			left: 0;
-			.content_box_list1 {
-				width: 100%;
+			.policy_list_item {
 				margin-top: 20rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				flex-wrap: wrap;
-				.content_box_list1_item {
-					width: 336rpx;
-					height: 160rpx;
-					margin-right: 18rpx;
-					margin-bottom: 20rpx;
-					padding: 24rpx 28rpx;
-					box-sizing: border-box;
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
-					display: flex;
-					flex-direction: column;
-					&:nth-child(2n) {
-						margin-right: 0 !important;
-					}
-					text {
-						&:nth-child(1) {
-							font-weight: 500;
-							font-size: 32rpx;
-							color: #222222;
-							font-style: normal;
-						}
-						&:nth-child(2) {
-							font-weight: 400;
-							font-size: 24rpx;
-							color: #768188;
-							font-style: normal;
-							text-transform: uppercase;
-						}
-					}
-				}
-			}
-			.content_box_list {
 				width: 100%;
-				height: 336rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				.content_box_list_left {
-					width: 336rpx;
-					height: 100%;
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
-					display: flex;
-					flex-direction: column;
-					padding: 24rpx 28rpx;
-					box-sizing: border-box;
-					text {
-						&:nth-child(1) {
-							font-weight: 500;
-							font-size: 32rpx;
-							color: #222222;
-							font-style: normal;
-						}
-						&:nth-child(2) {
-							font-weight: 400;
-							font-size: 24rpx;
-							color: #768188;
-							font-style: normal;
-							text-transform: uppercase;
-						}
-					}
+				background: #ffffff;
+				border-radius: 16rpx;
+				overflow: hidden;
+				&:first-child {
+					margin-top: 0 !important;
 				}
-				.content_box_list_right {
-					width: 336rpx;
-					height: 100%;
+				.item_top {
+					width: 100%;
+					height: 144rpx;
+					padding: 30rpx;
+					box-sizing: border-box;
 					display: flex;
-					flex-direction: column;
+					align-items: center;
 					justify-content: space-between;
-					.content_box_list_right_row {
-						width: 100%;
-						height: 160rpx;
-						padding: 24rpx 28rpx;
-						box-sizing: border-box;
-						background-repeat: no-repeat;
-						background-size: 100% 100%;
+					.item_top_info {
+						flex: 1;
+						height: 100rpx;
 						display: flex;
 						flex-direction: column;
 						text {
@@ -335,17 +184,64 @@
 								font-weight: 500;
 								font-size: 32rpx;
 								color: #222222;
-								font-style: normal;
 							}
 							&:nth-child(2) {
 								font-weight: 400;
-								font-size: 24rpx;
-								color: #768188;
+								font-size: 26rpx;
+								color: #777777;
 								font-style: normal;
-								text-transform: uppercase;
+								margin-top: 8rpx;
 							}
 						}
 					}
+					.item_top_img {
+						width: 100rpx;
+						height: 100rpx;
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+				}
+				.item_center {
+					width: 100%;
+					padding: 0 30rpx;
+					box-sizing: border-box;
+					.item_center_x {
+						width: 100%;
+						border-top: 1rpx dashed #E5E5E5;
+					}
+				}
+				.item_list {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					flex-wrap: wrap;
+					padding: 30rpx;
+					box-sizing: border-box;
+					.item_list_item {
+						width: 50%;
+						display: flex;
+						align-items: flex-start;
+						margin-bottom: 20rpx;
+						background: #ffffff;
+						&:last-child {
+							margin-bottom: 0 !important;
+						}
+						.item_list_item_label {
+							flex-shrink: 0;
+							font-weight: 400;
+							font-size: 26rpx;
+							color: #777777;
+							font-style: normal;
+						}
+						.item_list_item_val {
+							font-weight: 400;
+							font-size: 26rpx;
+							color: #222222;
+							font-style: normal;
+						}
+					}
 				}
 			}
 		}

--
Gitblit v1.9.3