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