Преглед изворни кода

Merge branch 'master' of http://git.lcpcp.cc/py/assess-app

USER-20230908AJ\Administrator пре 3 недеља
родитељ
комит
bd88ed6930

+ 1 - 1
common/system_popup/system_popup.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="system_content column-justify-sb center">
-		<view :style="{marginTop:`${$tools.topHeight()}px`}">
+		<view :style="{marginTop:`40px`}">
 			<view class="column justify-center avatar r-100">
 				<view class="avatar r-100" style="background-color: rgba(0, 0, 0, 0.1);"></view>
 				<view class="row-c avatar_name m-l20">

+ 22 - 4
common/task/loan-item.vue

@@ -1,13 +1,16 @@
 <template>
 	<view class="flex-1 flex-direction">
-		<swiper class="swiper-box flex-direction animate__animated animate__fadeIn flex-1" circular>
+		<swiper class="swiper-box flex-direction animate__animated animate__fadeInRight flex-1" circular
+			v-if="taskList.length>0">
 			<swiper-item v-for="(item,index) in taskList" :key="index"
 				class="flex-direction p-30 box-border-box flex-1">
 				<view class="item-box flex-direction flex-1 page-box-bg-fff r-30 box-shadow-197">
 					<view class="item-top box-border-box" :style="{background:lineColor[item.id%2]}">
 						<view class="center row-justify-sb mb-24">
 							<view class="center">
-								<uni-icons type="home-filled" size="30" class="mr-10"></uni-icons>
+								<view class="size-64 mr-10">
+									🏢
+								</view>
 								<view class="fc-155DFB sys-size-24 sys-weight-600 title-box">
 									Commercial Real Estate
 								</view>
@@ -103,14 +106,22 @@
 								</view>
 							</view>
 						</view>
+						<view class="tiem-box box-border-box center flex-justify-around r-40">
+							<uni-icons type="checkbox" size="18" color="#008235"></uni-icons>
+							<view class="fc-008235 size-28">
+								active
+							</view>
+						</view>
 					</view>
 				</view>
 			</swiper-item>
 		</swiper>
-		<!-- 		<view class="task-body animate__animated animate__fadeIn flex-1" v-if="taskList.length>0">
+<!-- 		<view class="task-body animate__animated animate__fadeIn flex-1" v-if="taskList.length>0">
 
+		</view> -->
+		<view class="p-30 box-border-box flex-direction flex-1" v-else>
+			<en-blank class="flex-1"></en-blank>
 		</view>
-		<en-blank v-else></en-blank> -->
 	</view>
 </template>
 
@@ -184,6 +195,13 @@
 </script>
 
 <style lang="scss" scoped>
+	.tiem-box {
+		width: 200rpx;
+		padding: 16rpx 32rpx;
+		background: #F0FDF4;
+		border: .1rpx solid #B9F8CF;
+	}
+
 	.icon-box {
 		width: 64rpx;
 		height: 64rpx;

+ 1 - 2
common/task/task-item.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="p-t20">
-		<view class="task-body m-lr20  animate__animated animate__fadeIn" v-if="taskList.length>0">
+		<view class="task-body m-lr20  animate__animated animate__slideInLeft" v-if="taskList.length>0">
 			<view class="item-box align-items-flex-start page-box-bg-fff m-b20 r-30 box-shadow-197 p-20 box-border-box"
 				v-for="(item,index) in taskList" :key="index" @click="onTaskDetails(item)">
 				<view class="main_string" :style="{background:lineColor[item.id%3]}"></view>
@@ -127,7 +127,6 @@
 				return `https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/${this.leftImg[this.leftImgStatus]}.png`
 			},
 			onTaskDetails(item) {
-				console.log(item,'1111111111');
 				return
 				if (item.business_id) {
 					uni.navigateTo({

+ 14 - 13
common/task/task_ima_tab.vue

@@ -74,29 +74,30 @@
 					'listType': this.listType
 				}).then(res => {
 					if (res.code === 1) {
-            this.navList[0].num=0
+						this.navList[0].num = 0
 						res.data.forEach(item => {
 							this.navList[0].num += item.num
 							if (this.numType > 0) {
 								item.name = item.product_name + '(' + item.num + ')'
-								this.navList[0].name = this.navList[0].product_name + '(' + this.navList[0].num + ')'
+								this.navList[0].name = this.navList[0].product_name + '(' + this.navList[0]
+									.num + ')'
 							} else {
 								item.name = item.product_name
 							}
-              this.setNavItem(item)
+							this.setNavItem(item)
 						})
 					}
 				})
 			},
-      setNavItem(item){
-        for (const navItemKey in this.navList) {
-          if(this.navList[navItemKey].id===item.id){
-            this.navList[navItemKey]=item
-            return
-          }
-        }
-        this.navList.push(item)
-      },
+			setNavItem(item) {
+				for (const navItemKey in this.navList) {
+					if (this.navList[navItemKey].id === item.id) {
+						this.navList[navItemKey] = item
+						return
+					}
+				}
+				this.navList.push(item)
+			},
 
 			changeTab(current) {
 				this.$emit('setProductId', this.navList[current].id)
@@ -107,4 +108,4 @@
 
 <style lang="scss" scoped>
 
-</style>
+</style>

+ 1 - 1
components/en-utils/en-nav/en-nav.vue

@@ -177,7 +177,7 @@
 			position: absolute;
 			width: 100rpx;
 			height: 42rpx;
-			top: 12rpx;
+			top: 60rpx;
 			bottom: 0;
 			left: 30rpx;
 			color: #fff;

+ 46 - 29
page_subpack/message/message.vue

@@ -1,12 +1,13 @@
 <template>
-	<view class="total-page page-env-20 page-box scroll_content task-bg">
+	<view class="flex-common-css page-box box-bg">
 		<Nav :title="'消息'" :genre="1" is_fixed></Nav>
-		<view class="" :style="{top:`${$tools.topHeight()}px`}">
+		<view class="page-box-bg-fff m-lr20 r-20">
 			<z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'30rpx'}"
 				:bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
 				:current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
 		</view>
-		<EnScroll ref="scroll" class="main" @onRefresh="onRefresh" @onScrollBottom="onScrollBottom">
+		<view class="scroll-view-css flex-direction">
+			<!-- <EnScroll ref="scroll" class="main" @onRefresh="onRefresh" @onScrollBottom="onScrollBottom"> -->
 			<view class="m-t20" v-if="list.length <=0">
 				<Enblank :message="'暂无消息'">
 				</Enblank>
@@ -16,7 +17,7 @@
 					v-for="(item,index) in list" :key="index">
 					<view class="icon-box">
 						<view class="read-dot" v-if="item.is_read === 0"></view>
-						<image class="wh-80" :src="getLeftImg(item.type)" mode=""></image>
+						<image class="wh-80 r-circle" :src="item.type" mode=""></image>
 					</view>
 					<view class="flex m-l20">
 						<view class="row-justify-sb center flex">
@@ -30,7 +31,8 @@
 					</view>
 				</view>
 			</view>
-		</EnScroll>
+		</view>
+		<!-- </EnScroll> -->
 
 	</view>
 </template>
@@ -68,24 +70,33 @@
 				}],
 				leftImg: ['task-house', 'task-house', 'task-business', 'task-repayment', 'task-repayment'],
 				iconList: ['task-audit', 'task-do', 'task-stay', 'task-stay', 'task-stay'],
-				list: [],
+				list: [{
+					is_read: 0,
+					type: 'https://copyright.bdstatic.com/vcg/creative/d6c6a351be227d5d3b3e8c1f96f56e50.jpg@h_1280',
+					title: '您有最新的留言',
+					content: '万汇房产',
+					created_date: '2024-10-10 16:24'
+				},
+				{
+					is_read: 0,
+					type: 'https://pic.rmb.bdstatic.com/bjh/3ea195479f8a/250303/f53064611fee7c092312f3b6ea8e439d.jpeg',
+					title: '您有最新的看房留言',
+					content: '万汇房产',
+					created_date: '2024-10-10 16:24'
+				}],
 				page: 1,
 				isEnd: false,
-        isAJAX:false
+				isAJAX: false
 			}
 		},
-		watch: {
-
-
-		},
+		watch: {},
 		mounted() {
-			this.startNotices();
+			// this.startNotices();
 		},
 		methods: {
 			goToInfo(index) {
-
 				let item = this.list[index];
-        console.log(item)
+				console.log(item)
 				if (item.type === 1) {
 					this.list[index].is_read = 1;
 					//跳转详情
@@ -104,19 +115,18 @@
 						uni.navigateTo({
 							url: '/page_task/task_details/task_details?taskId=' + item.relevance_id
 						});
-					}else if(item.type === 3){
-            uni.setStorageSync('taskType',1)
-            uni.switchTab({
-              url: '/pages/task/task'
-            });
-          }else {
+					} else if (item.type === 3) {
+						uni.setStorageSync('taskType', 1)
+						uni.switchTab({
+							url: '/pages/task/task'
+						});
+					} else {
 						//领取列表
 						uni.navigateTo({
 							url: '/page_task/gain_task/gain_task'
 						});
 					}
 				}
-
 			},
 			setRead(index) {
 				setRead({
@@ -138,24 +148,24 @@
 				if (this.isEnd || this.isAJAX) {
 					return;
 				}
-        this.isAJAX=true
+				this.isAJAX = true
 				getNotices({
 					'page': this.page,
 					'type': this.current
 				}).then((res) => {
-          this.isAJAX=false
+					this.isAJAX = false
 					if (res.code === 1) {
 						if (res.data.items.length <= 0) {
 							this.isEnd = true;
 						} else {
 							this.tabsList[1].name = '未读(' + res.data.unreadNum + ')'
-							this.tabsList[1].is_dot =  res.data.unreadNum>0
+							this.tabsList[1].is_dot = res.data.unreadNum > 0
 							res.data.items.forEach((item) => {
 								item.is_del = false;
 								this.list.push(item)
 							})
 							// this.list.push(...res.data)
-              tools.hideLoading()
+							tools.hideLoading()
 						}
 						++this.page;
 					}
@@ -163,14 +173,14 @@
 			},
 			tabsChange(index) {
 				this.current = index;
-        this.startNotices()
+				// this.startNotices()
 			},
 			getLeftImg(index) {
 				return `https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/${this.leftImg[index]}.png`
 			},
 			// 下拉刷新
 			onRefresh() {
-        tools.showLoading()
+				tools.showLoading()
 				this.startNotices()
 				setTimeout(() => {
 					this.$refs.scroll.onEndPulling()
@@ -182,7 +192,7 @@
 				// uni.showLoading({
 				// 	title: '数据加载中'
 				// })
-        tools.showLoading()
+				tools.showLoading()
 				this.getNotices()
 				// setTimeout(() => {
 				// 	uni.showToast({
@@ -196,6 +206,12 @@
 	}
 </script>
 <style lang="scss" scoped>
+	.box-bg {
+		background-image: url('https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/task-nav-bg.png');
+		background-repeat: no-repeat;
+		background-size: 100% auto;
+	}
+
 	.icon-box {
 		position: relative;
 
@@ -207,6 +223,7 @@
 			position: absolute;
 			top: 0rpx;
 			right: 10rpx;
+			z-index: 9;
 		}
 	}
-</style>
+</style>

+ 61 - 57
page_subpack/personal_details/personal_details.vue

@@ -46,23 +46,24 @@
 				</view>
 			</view>
 		</Nav>
-    <uni-popup ref="popup" type="bottom">
-      <view class="popup-block">
-        <view class="popup-row" @click="camera(1)">拍照</view>
-        <view class="popup-row" @click="camera(2)">从手机里面选择</view>
-        <view class="popup-row" @click="setUploading(false)">取消</view>
-      </view>
-    </uni-popup>
+		<uni-popup ref="popup" type="bottom">
+			<view class="popup-block">
+				<view class="popup-row" @click="camera(1)">拍照</view>
+				<view class="popup-row" @click="camera(2)">从手机里面选择</view>
+				<view class="popup-row" @click="setUploading(false)">取消</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
 <script>
 	import EnInput from "@/components/en-from/en-input/index.vue";
-  import {
-    getMemberInfo, updateMemberInfo
-  } from "@/api/user";
-  import txUploadFile from "@/service/txOssSts";
-  import tools from "@/service/tools";
+	import {
+		getMemberInfo,
+		updateMemberInfo
+	} from "@/api/user";
+	import txUploadFile from "@/service/txOssSts";
+	import tools from "@/service/tools";
 
 	export default {
 		components: {
@@ -83,53 +84,55 @@
 			}
 		},
 		onLoad(options) {
-			this.id = options.id
-			this.title = options.title
-			this.getMemberInfo()
-			uni.$on('updateMemberInfo', () => {
-				this.getMemberInfo()
-			})
+			// this.id = options.id
+			// this.title = options.title
+			// this.getMemberInfo()
+			// uni.$on('updateMemberInfo', () => {
+			// 	this.getMemberInfo()
+			// })
 		},
 		methods: {
-      camera(sourceType) {
-        console.log('chooseMedia接口调试-------------')
-        uni.chooseMedia({
-          mediaType: 'image',
-          count: 1, //默认9
-          sizeType: "compressed",
-          sourceType: [sourceType===1?'camera':'album'],
-          success: (res) => {
-            console.log(res)
-            if(res.tempFiles.length>0){
-              txUploadFile(res.tempFiles[0].tempFilePath).then(( data) => {
-                if(!data){
-                  tools.error('图片上传失败')
-                }else {
-                  this.memberData.head_img=data.Location;
-                  updateMemberInfo({'head_img':this.memberData.head_img}).then((res)=>{
-                    if(res.code===1){
-                      uni.$emit('updateMemberInfo')
-                    }else {
-                      tools.error(res.msg)
-                    }
-                  })
-                  this.setUploading(false);
-                }
+			camera(sourceType) {
+				console.log('chooseMedia接口调试-------------')
+				uni.chooseMedia({
+					mediaType: 'image',
+					count: 1, //默认9
+					sizeType: "compressed",
+					sourceType: [sourceType === 1 ? 'camera' : 'album'],
+					success: (res) => {
+						console.log(res)
+						if (res.tempFiles.length > 0) {
+							txUploadFile(res.tempFiles[0].tempFilePath).then((data) => {
+								if (!data) {
+									tools.error('图片上传失败')
+								} else {
+									this.memberData.head_img = data.Location;
+									updateMemberInfo({
+										'head_img': this.memberData.head_img
+									}).then((res) => {
+										if (res.code === 1) {
+											uni.$emit('updateMemberInfo')
+										} else {
+											tools.error(res.msg)
+										}
+									})
+									this.setUploading(false);
+								}
 
-              })
-            }else {
-              tools.error("请选择上传的图片")
-            }
-          },
-        });
-      },
-      setUploading(showImg){
-        if(showImg){
-          this.$refs.popup.open("bottom");
-        }else {
-          this.$refs.popup.close();
-        }
-      },
+							})
+						} else {
+							tools.error("请选择上传的图片")
+						}
+					},
+				});
+			},
+			setUploading(showImg) {
+				if (showImg) {
+					this.$refs.popup.open("bottom");
+				} else {
+					this.$refs.popup.close();
+				}
+			},
 			getMemberInfo() {
 				getMemberInfo({
 					'type': 2
@@ -158,7 +161,8 @@
 </script>
 
 <style lang="scss" scoped>
-@import "@/static/css/wh-common";
+	@import "@/static/css/wh-common";
+
 	.is-hovers {
 		background-color: #e5e5e5e5;
 	}

+ 196 - 193
page_subpack/transition/to_excel.vue

@@ -1,205 +1,208 @@
 <template>
-  <view class="total-page page-box page-env-20 scroll_content task-bg">
-    <Nav title="转换工具" :genre="1" is_fixed></Nav>
-    <view class="header-filter">
-      <view class="row-justify-sb center  m-20">
-        <view class="subsection">
-          <uv-subsection :list="tabsDate" :bgColor="'#FFF'" :barBg="'#0FB160'" :activeColor="'#fff'"
-                         :inactiveColor="'#0FB160'" :fontSize="14" custom-style="height: 70rpx;border-radius: 30rpx;"
-                         custom-item-style="border-radius: 30rpx;" :current="subCurrent"
-                         @change="onSubChange"></uv-subsection>
-        </view>
-        <view class="row credit_earch center sys-background-fff r-30 p-l16">
-          <uni-icons type="search" size="18" color="#999"></uni-icons>
-          <input class="flex m-l10 m-r20 size-28 sys-background-fff" type="text" placeholder="搜索文件名称"
-                 placeholder-style="font-size:28rpx;color:#999" v-model="value" @change="startList" />
-        </view>
-      </view>
-      <view style="height: 100rpx;">
-        <z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'28rpx'}"
-                :bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
-                :current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
-      </view>
-    </view>
-    <EnScroll ref="scroll" :navHeight="navHeight" is_tabHeight @onRefresh="onRefresh"
-              @onScrollBottom="onScrollBottom">
-      <CreditItem :list="list"></CreditItem>
-    </EnScroll>
-    <view class="fixed-button p-t20 p-lr30">
-      <button class="en-button button-background sys-weight-500 row-justify-c center" type="default"
-              hover-class="is-hover" @click="addPdf">
-<!--        <image class="wh-36 m-lr16" src="/static/img/task/task-phone.png" mode="aspectFill"></image>-->
-        添加转换文件
-      </button>
-    </view>
-    <uni-popup ref="popup" type="bottom">
-      <view class="page-env-160 sys-background-fff r-20">
-        <view class="row-justify-sb center p-lr30 p-t30">
-          <view class="wh-25"></view>
-          <text class="size-30 sys-weight-600">添加文件</text>
-          <image class="wh-25" src="/page_subpack/static/img/task-details/close.png" mode="" @click="endAdd(true)">
-          </image>
-        </view>
-        <add-file @newMsg="endAdd" :is_multifile="false"></add-file>
-      </view>
+	<view class="total-page page-box page-env-20 scroll_content task-bg">
+		<Nav title="转换工具" :genre="1" is_fixed></Nav>
+		<view class="header-filter">
+			<view class="row-justify-sb center  m-20">
+				<view class="subsection">
+					<uv-subsection :list="tabsDate" :bgColor="'#FFF'" :barBg="'#0FB160'" :activeColor="'#fff'"
+						:inactiveColor="'#0FB160'" :fontSize="14" custom-style="height: 70rpx;border-radius: 30rpx;"
+						custom-item-style="border-radius: 30rpx;" :current="subCurrent"
+						@change="onSubChange"></uv-subsection>
+				</view>
+				<view class="row credit_earch center sys-background-fff r-30 p-l16">
+					<uni-icons type="search" size="18" color="#999"></uni-icons>
+					<input class="flex m-l10 m-r20 size-28 sys-background-fff" type="text" placeholder="搜索文件名称"
+						placeholder-style="font-size:28rpx;color:#999" v-model="value" @change="startList" />
+				</view>
+			</view>
+			<view style="height: 100rpx;">
+				<z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'28rpx'}"
+					:bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
+					:current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
+			</view>
+		</view>
+		<EnScroll ref="scroll" :navHeight="navHeight" is_tabHeight @onRefresh="onRefresh"
+			@onScrollBottom="onScrollBottom">
+			<CreditItem :list="list"></CreditItem>
+		</EnScroll>
+		<view class="fixed-button p-t20 p-lr30">
+			<button class="en-button button-background sys-weight-500 row-justify-c center" type="default"
+				hover-class="is-hover" @click="addPdf">
+				<!--        <image class="wh-36 m-lr16" src="/static/img/task/task-phone.png" mode="aspectFill"></image>-->
+				添加转换文件
+			</button>
+		</view>
+		<uni-popup ref="popup" type="bottom">
+			<view class="page-env-160 sys-background-fff r-20">
+				<view class="row-justify-sb center p-lr30 p-t30">
+					<view class="wh-25"></view>
+					<text class="size-30 sys-weight-600">添加文件</text>
+					<image class="wh-25" src="/page_subpack/static/img/task-details/close.png" mode=""
+						@click="endAdd(true)">
+					</image>
+				</view>
+				<add-file @newMsg="endAdd" :is_multifile="false"></add-file>
+			</view>
 
-    </uni-popup>
-  </view>
+		</uni-popup>
+	</view>
 </template>
 <script>
-import CreditItem from "./components/credit-item.vue";
-import tools from "@/service/tools";
-import AddFile from "@/page_subpack/transition/components/add-file.vue";
-import {getTransferList} from "@/api/transfer";
+	import CreditItem from "./components/credit-item.vue";
+	import tools from "@/service/tools";
+	import AddFile from "@/page_subpack/transition/components/add-file.vue";
+	import {
+		getTransferList
+	} from "@/api/transfer";
 
-export default {
-  components: {
-    AddFile,
-    CreditItem,
-  },
-  data() {
-    return {
-      value: '',
-      current: 0,
-      navHeight: 0,
-      swiperCurrent: 0,
-      tabsList: [{
-        name: '全部',
-        dot_color: 'red',
-        disabled: false,
-        'id': 0,
-      }, {
-        name: '待转换',
-        dot_color: 'yellow',
-        disabled: false,
-        'id': 1,
-      }, {
-        'id': 2,
-        name: '转换中',
-        dot_color: '',
-        disabled: false
-      }, {
-        'id': 3,
-        name: '已完成',
-        dot_color: '',
-        disabled: false
-      }, {
-        'id': 4,
-        name: '已完成',
-        dot_color: '',
-        disabled: false
-      }],
-      subCurrent: 0,
-      tabsDate: ['全部', '当日', '本周'],
-      list: [],
-      page: 1,
-      total: null,
-      isAjax: false,
+	export default {
+		components: {
+			AddFile,
+			CreditItem,
+		},
+		data() {
+			return {
+				value: '',
+				current: 0,
+				navHeight: 0,
+				swiperCurrent: 0,
+				tabsList: [{
+					name: '全部',
+					dot_color: 'red',
+					disabled: false,
+					'id': 0,
+				}, {
+					name: '待转换',
+					dot_color: 'yellow',
+					disabled: false,
+					'id': 1,
+				}, {
+					'id': 2,
+					name: '转换中',
+					dot_color: '',
+					disabled: false
+				}, {
+					'id': 3,
+					name: '已完成',
+					dot_color: '',
+					disabled: false
+				}, {
+					'id': 4,
+					name: '已完成',
+					dot_color: '',
+					disabled: false
+				}],
+				subCurrent: 0,
+				tabsDate: ['全部', '当日', '本周'],
+				list: [],
+				page: 1,
+				total: null,
+				isAjax: false,
 
-    }
-  },
-  onReady() {
-    this.getFilterHeight()
-  },
-  onLoad() {},
-  mounted() {
-    this.startList()
-  },
-  methods: {
-    addPdf(){
-      this.$refs.popup.open('bottom')
-    },
-    endAdd(type){
-      this.$refs.popup.close('bottom')
-      if(!type)this.startList()
-    },
-    startList() {
-      this.list = []
-      this.page = 1
-      this.scrollTop = 0
-      this.total = null
-      this.isAjax = false
-      this.getTransferList()
-    },
-    getTransferList() {
-      if (this.isAjax || this.list.length === this.total) {
-        return
-      }
-      getTransferList({
-        'status': this.current,
-        'dateType': this.subCurrent,
-        'text': this.value,
-      }).then(res => {
-        if (res.code === 1) {
-          this.list.push(...res.data.items)
-          this.total = res.data.total
-        } else {
-          tools.error(res.msg)
-        }
-        this.isAjax = false
-      })
-    },
-    tabsChange(index) {
-      if (index !== this.current) {
-        this.current = index;
-        this.startList()
-      }
-    },
-    onSubChange(current) {
-      this.subCurrent = current
-    },
-    // 下拉刷新
-    onRefresh() {
-      console.log('下拉刷新');
-      setTimeout(() => {
-        this.$refs.scroll.onEndPulling()
-      }, 500)
-    },
-    // 滚动到底部
-    onScrollBottom() {
-      console.log('滚动到底部');
-    },
-    getFilterHeight() {
-      const query = uni.createSelectorQuery().in(this);
-      query.select('.header-filter').boundingClientRect(data => {
-        if (data) {
-          console.log(data.height);
-          this.navHeight = data.height
-        }
-      }).exec();
-    }
-  },
-}
+			}
+		},
+		onReady() {
+			// this.getFilterHeight()
+		},
+		onLoad() {},
+		mounted() {
+			// this.startList()
+		},
+		methods: {
+			addPdf() {
+				this.$refs.popup.open('bottom')
+			},
+			endAdd(type) {
+				this.$refs.popup.close('bottom')
+				if (!type) this.startList()
+			},
+			startList() {
+				this.list = []
+				this.page = 1
+				this.scrollTop = 0
+				this.total = null
+				this.isAjax = false
+				this.getTransferList()
+			},
+			getTransferList() {
+				if (this.isAjax || this.list.length === this.total) {
+					return
+				}
+				getTransferList({
+					'status': this.current,
+					'dateType': this.subCurrent,
+					'text': this.value,
+				}).then(res => {
+					if (res.code === 1) {
+						this.list.push(...res.data.items)
+						this.total = res.data.total
+					} else {
+						tools.error(res.msg)
+					}
+					this.isAjax = false
+				})
+			},
+			tabsChange(index) {
+				if (index !== this.current) {
+					this.current = index;
+					this.startList()
+				}
+			},
+			onSubChange(current) {
+				this.subCurrent = current
+			},
+			// 下拉刷新
+			onRefresh() {
+				console.log('下拉刷新');
+				setTimeout(() => {
+					this.$refs.scroll.onEndPulling()
+				}, 500)
+			},
+			// 滚动到底部
+			onScrollBottom() {
+				console.log('滚动到底部');
+			},
+			getFilterHeight() {
+				const query = uni.createSelectorQuery().in(this);
+				query.select('.header-filter').boundingClientRect(data => {
+					if (data) {
+						console.log(data.height);
+						this.navHeight = data.height
+					}
+				}).exec();
+			}
+		},
+	}
 </script>
 <style lang="scss" scoped>
-.subsection {
-  width: 430rpx;
-}
+	.subsection {
+		width: 430rpx;
+	}
 
-.credit_earch {
-  width: 250rpx;
-  height: 69rpx;
-}
+	.credit_earch {
+		width: 250rpx;
+		height: 69rpx;
+	}
 
-.en-button {
-  color: #fff;
-  font-size: 30rpx;
-  border: 1rpx solid #0FB160 !important;
-  line-height: 80rpx;
-  border-radius: 100rpx;
-  background-color: #0FB160;
-}
+	.en-button {
+		color: #fff;
+		font-size: 30rpx;
+		border: 1rpx solid #0FB160 !important;
+		line-height: 80rpx;
+		border-radius: 100rpx;
+		background-color: #0FB160;
+	}
 
-.fixed-button {
-  position: fixed;
-  bottom: 0;
-  z-index: 10;
-  background: #fff;
-  width: calc(100% - 60rpx);
-  padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
-}
+	.fixed-button {
+		position: fixed;
+		bottom: 0;
+		z-index: 10;
+		background: #fff;
+		width: calc(100% - 60rpx);
+		padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
+	}
 
-button::after {
-  border: none;
-}
-</style>
+	button::after {
+		border: none;
+	}
+</style>

+ 132 - 23
pages/index/index.vue

@@ -1,11 +1,80 @@
 <template>
-	<view class="total-page page-env-160 page-box">
-		<Nav :title="'我的'" :back="false" :is_fixed="true" :opacity="scrollTop" :justify="'left'" :color="'#fff'">
-			<view class="p-20">
-				<IndexPersonal ref="memberObj" @setMemberData="setMemberData"></IndexPersonal>
-				<!-- <IndexColumn ref="columnObj" :memberData="memberData" :model-time="modelTime"></IndexColumn> -->
-			</view>
-		</Nav>
+	<view class="flex-common-css page-box box-bg">
+		<Nav :title="'Featured Collections'" :genre="1" :back="false" :is_fixed='false'></Nav>
+		<Search :placeholder="'姓名或电话'" @setSearch="setSearch"></Search>
+		<!-- 		<view class="page-box-bg-fff m-lr20 r-20">
+			<z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'30rpx'}"
+				:bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
+				:current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
+		</view> -->
+		<view class="p-30 box-border-box bgc-fff">
+			<scroll-view class="scroll-view center" scroll-x="true">
+				<view class="d-inline-block mr-20">
+					<view class="croll-view-item bgc-5692FF mb-10">
+						<view class="size-64">
+							🏢
+						</view>
+						<view class="head-tab size-24 fc-fff bgc-7D99FF r-40">
+							4 deals
+						</view>
+					</view>
+					<view class="size-28">
+						Commercial Real Estate
+					</view>
+					<view class="size-24 fc-6A7383">
+						Prime locations
+					</view>
+				</view>
+				<view class="d-inline-block mr-20">
+					<view class="croll-view-item bgc-00DC73-00BF7C mb-10">
+						<view class="size-64">
+							🏘️
+						</view>
+						<view class="head-tab size-24 fc-fff bgc-33D595 r-40">
+							3 deals
+						</view>
+					</view>
+					<view class="size-28">
+						Residential
+					</view>
+					<view class="size-24 fc-6A7383">
+						Housing market
+					</view>
+				</view>
+				<view class="d-inline-block mr-20">
+					<view class="croll-view-item bgc-00DC73-00BF7C mb-10">
+						<view class="size-64">
+							✨
+						</view>
+						<view class="head-tab size-24 fc-fff bgc-33D595 r-40">
+							3 deals
+						</view>
+					</view>
+					<view class="size-28">
+						Low Risk
+					</view>
+					<view class="size-24 fc-6A7383">
+						LTV < 70%
+					</view>
+				</view>
+				<view class="d-inline-block mr-20">
+					<view class="croll-view-item bgc-C579FF-F4399F mb-10">
+						<view class="size-64">
+							⚙️
+						</view>
+						<view class="head-tab size-24 fc-fff bgc-E87DD2 r-40">
+							3 deals
+						</view>
+					</view>
+					<view class="size-28">
+						Equipment
+					</view>
+					<view class="size-24 fc-6A7383">
+						Asset-backed
+					</view>
+				</view>
+			</scroll-view>
+		</view>
 		<view class="p-20">
 			<view class="personal m-lr10 row-justify-sb center">
 				<text class="sys-weight-600">精选系列</text>
@@ -19,7 +88,9 @@
 				</view>
 			</view>
 		</view>
-		<TaskItem :type="5" :taskList="backlogList" @heartBut="heartBut"></TaskItem>
+		<view class="scroll-view-css flex-direction">
+			<TaskItem :type="5" :taskList="backlogList" @heartBut="heartBut"></TaskItem>
+		</view>
 		<Tab class="tabs_height" :tab-index="0"></Tab>
 	</view>
 
@@ -50,24 +121,26 @@
 		},
 		data() {
 			return {
+				current: 0,
 				modelTime: this.$tools.getDate('-'),
 				indexTime: this.$tools.getDate('-'),
 				is_admin: false,
 				scrollTop: 0,
 				topNavHeight: 0,
-				chartList: [{
-					name: "超期",
-					color: '#DE5847',
-					value: "0"
+				tabsList: [{
+					name: '全部',
+					disabled: false
 				}, {
-					name: "滞后",
-					color: '#EF8F27',
-					value: "0"
+					name: '未完成(0)',
+					dot_color: 'red',
+					is_dot: false,
+					disabled: false
 				}, {
-					name: "正常",
-					color: '#3ABF7D',
-					value: "0"
-				}, ],
+					name: '已完成',
+					dot_color: 'red',
+					is_dot: false,
+					disabled: false
+				}],
 				memberData: {
 					draftNum: 0,
 					creditNum: 0,
@@ -155,13 +228,26 @@
 							proportion: '71',
 							name: 'Tower -Prime Location',
 							live: false,
-							percentage: '5.1',
+							percentage: '4.1',
 							description: 'Healthcare Properties Inc',
 							amount: '5.0',
-							trend: '7.5',
-							risk: 'LTV 37%',
-							time: '2024-001',
+							trend: '5.5',
+							risk: 'LTV 77%',
+							time: '2024-002',
 							id: 2,
+						},
+						{
+							img: 'https://qcloud.dpfile.com/pc/3B5v9C_aeqiLmADxyv5K2oclwwy3V_g7gw7Dmq38AuV9VmaUI3Rb5Uvj6kJNMMCrY0q73sB2DyQcgmKUxZFQtw.jpg',
+							proportion: '60',
+							name: 'Luxury Retail Center - High Street',
+							live: false,
+							percentage: '1.5',
+							description: 'Healthcare Properties Inc',
+							amount: '8.5',
+							trend: '6.8',
+							risk: 'LTV 10.5%',
+							time: '2024-002',
+							id: 3,
 						}
 					]
 					uni.setStorageSync('backlogList', this.backlogList)
@@ -171,6 +257,29 @@
 	}
 </script>
 <style lang="scss" scoped>
+	.box-bg{
+		background-image: url('https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/task-nav-bg.png');
+		background-repeat: no-repeat;
+		background-size: 100% auto;
+	}
+	.head-tab {
+		padding: 8rpx 16rpx;
+	}
+
+	.croll-view-item {
+		width: 320rpx;
+		height: 224rpx;
+		border-radius: 40rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.scroll-view {
+		white-space: nowrap;
+	}
+
 	.personal {
 		height: 55rpx;
 		line-height: 55rpx;

+ 36 - 36
pages/index/module/index_column.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="row-c m-t20">
-		<view class="column_item sys-background-dominant r-30 column-justify-sb" v-if="enteringType===1">
+		<!-- 		<view class="column_item sys-background-dominant r-30 column-justify-sb" v-if="enteringType===1">
 			<view class="column_build column-c">
 				<view class="row-c" @click="onCreationTask">
 					<image class="wh-80 m-r30"
@@ -29,17 +29,18 @@
 					</text>
 				</view>
 			</view>
-		</view>
-		<view class="column_item column-justify-sb" v-else>
+		</view> -->
+		<view class="column_item column-justify-sb">
 			<view class="column column_loan justify-center r-30 p-lr24">
 				<view class="row-c">
 					<view class="sys-background-dominant r-10" style="width: 8rpx;height: 24rpx;">
 					</view>
-					<text class="text-color-12 sys-weight-600 size-24 m-l10">今日放款</text>
+					<text class="text-color-12 sys-weight-600 size-24 m-l10">我的收藏</text>
 				</view>
 				<view class="row-justify-sb center m-t20 line-40">
 					<view class=" row-justify-l">
-            <en-number :end-num="moneyData.out_money" :text-color="'color-02154E'" :text-weight="'sys-weight-600'" :text-size="'size-30'"></en-number>
+						<en-number :end-num="moneyData.out_money" :text-color="'color-02154E'"
+							:text-weight="'sys-weight-600'" :text-size="'size-30'"></en-number>
 						<view class="row-justify-sb center line-40 sys-weight-600 color-02154E">万</view>
 					</view>
 					<view class="row-c">
@@ -49,7 +50,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="column column_proceeds justify-center r-30 p-lr24">
+<!-- 			<view class="column column_proceeds justify-center r-30 p-lr24">
 				<view class="row-c">
 					<view class="sys-background-dominant r-10" style="width: 8rpx;height: 24rpx;">
 					</view>
@@ -57,7 +58,8 @@
 				</view>
 				<view class="row-justify-sb center m-t20 line-40">
 					<view class=" row-justify-l">
-						<en-number :end-num="moneyData.put_money" :text-color="'color-02154E'":text-weight="'sys-weight-600'" :text-size="'size-30'"></en-number>
+						<en-number :end-num="moneyData.put_money" :text-color="'color-02154E'"
+							:text-weight="'sys-weight-600'" :text-size="'size-30'"></en-number>
 						<view class="row-justify-sb center line-40 sys-weight-600 color-02154E">万</view>
 					</view>
 					<view class="row-c">
@@ -66,10 +68,10 @@
 						<text class="size-24 text-color-999 m-l10">笔</text>
 					</view>
 				</view>
-			</view>
+			</view> -->
 		</view>
 		<view class="column_item m-l20 column-justify-sb">
-			<view class="task_item row-justify center r-30" @click="onGetTask">
+<!-- 			<view class="task_item row-justify center r-30" @click="onGetTask">
 				<view class="m-l40" style="position: relative;">
 					<uni-badge class="" :text="memberData.take_num" absolute="rightTop" size="normal" :offset="[5,5]">
 						<image class="wh-90 r-circle"
@@ -79,7 +81,7 @@
 					</uni-badge>
 				</view>
 				<text class="text-color-12 sys-weight-600 m-l20">领取任务</text>
-			</view>
+			</view> -->
 			<view class="task_message row-justify center r-30" @click="onMessage">
 				<view class="m-l40" style="position: relative;">
 					<uni-badge class="" :text="memberData.unreadNum" absolute="rightTop" size="normal" :offset="[5,5]">
@@ -101,7 +103,9 @@
 		getSysCashier
 	} from "@/api/statistics";
 	import EnNumber from "@/components/en-utils/en-number/en-number.vue";
-  import {getDateCashier} from "@/api/task";
+	import {
+		getDateCashier
+	} from "@/api/task";
 
 	export default {
 		name: 'index_column',
@@ -109,21 +113,6 @@
 			EnNumber
 		},
 		props: {
-			memberData: {
-				default: {
-					position_name: "",
-					head_img: "",
-					id: 5,
-					name: "",
-					nickname: "",
-					phone: "",
-					draftNum: "0",
-					creditNum: "0",
-					noticeNum: "0",
-					take_num: "0",
-          unreadNum: "0",
-				}
-			},
 			is_admin: {
 				type: Boolean,
 				default: false
@@ -133,16 +122,27 @@
 				default: ''
 			}
 		},
-		watch: {
-			'modelTime': function() {
-        this.getSysCashier()
-			}
-		},
+		watch: {},
 		data() {
 			return {
+				memberData: {
+					default: {
+						position_name: "",
+						head_img: "",
+						id: 5,
+						name: "",
+						nickname: "",
+						phone: "",
+						draftNum: "0",
+						creditNum: "0",
+						noticeNum: "0",
+						take_num: "0",
+						unreadNum: "0",
+					}
+				},
 				enteringType: 1,
 				moneyData: {
-          out_money: 0,
+					out_money: 0,
 					out_num: 0,
 					put_money: 0,
 					put_num: 0,
@@ -164,10 +164,10 @@
 					return ''
 				}
 				this.dateTypeObj.selectDate = this.modelTime
-        getDateCashier(this.dateTypeObj).then((res) => {
+				getDateCashier(this.dateTypeObj).then((res) => {
 					if (res.code === 1) {
 						this.moneyData = res.data
-            console.log(	this.moneyData )
+						console.log(this.moneyData)
 					}
 				})
 			},
@@ -198,7 +198,7 @@
 <style lang="scss" scoped>
 	.column_item {
 		width: 50%;
-		height: 300rpx;
+		// height: 300rpx;
 	}
 
 	.column_build {
@@ -264,4 +264,4 @@
 		top: -10rpx;
 		// line-height: 30rpx;
 	}
-</style>
+</style>

+ 19 - 13
pages/loan/loan.vue

@@ -1,18 +1,17 @@
 <template>
 	<view class="flex-common-css page-box task-bg">
-		<Nav :title="'贷后管理'" :genre="1" :back="false" :is_fixed='false'></Nav>
-		<Search :placeholder="'贷款人姓名或电话'" @setSearch="setSearch"></Search>
-		<view class="page-box-bg-fff m-lr20 r-20">
-			<z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'30rpx'}"
-				:bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
-				:current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
-		</view>
+		<Nav :title="'我的'" :back="false" :is_fixed="true" :justify="'left'" :color="'#fff'">
+			<view class="p-20">
+				<IndexPersonal ref="memberObj" @setMemberData="setMemberData"></IndexPersonal>
+				<IndexColumn ref="columnObj"></IndexColumn>
+			</view>
+		</Nav>
 		<!-- 			<EnScroll ref="scroll" :navHeight="100" is_tabHeight @onRefresh="onRefresh"
 				@onScrollBottom="onScrollBottom">
 			</EnScroll> -->
 		<view class="common-view-css flex-direction">
 			<LoanItem :task-list="list" @onCalculate="onCalculate"></LoanItem>
-		</view>			
+		</view>
 		<Tab :tab-index="1"></Tab>
 		<uni-popup ref="popup" type="bottom" @touchmove.stop.prevent="moveHandle">
 			<view class="page-env-160 sys-background-fff r-20">
@@ -58,12 +57,17 @@
 	import loanItem from "@/common/task/loan-item.vue";
 	import EnSelect from "@/components/en-utils/en-select/en-select.vue";
 	import ClientType from "@/pages/loan/components/clientType.vue";
-
+	// 个人信息
+	import IndexColumn from "@/pages/index/module/index_column.vue"
+	// 顶部栏目
+	import IndexPersonal from "@/pages/index/module/index_personal.vue"
 	export default {
 		components: {
 			ClientType,
 			EnSelect,
-			LoanItem
+			LoanItem,
+			IndexColumn,
+			IndexPersonal
 		},
 		data() {
 			return {
@@ -109,9 +113,12 @@
 			this.getList()
 		},
 		onLoad() {},
-		mounted() {
-		},
+		mounted() {},
 		methods: {
+			// setMemberData(memberData) {
+			// 	this.memberData = memberData
+			// 	this.$refs.columnObj.updateMemberData()
+			// },
 			startList() {
 				this.fromData.status = this.current
 				this.total = 999;
@@ -119,7 +126,6 @@
 				this.page = 1;
 				this.isAjax = false;
 				this.getList();
-
 			},
 			setSearch(text) {
 				this.fromData.selectStr = text

+ 54 - 8
static/css/common.css

@@ -55,7 +55,9 @@
 	top: 84px;
 	z-index: 4;
 }
-
+.d-inline-block{
+	display: inline-block;
+}
 .scroll_content {
 	height: 100vh;
 	width: 100vw;
@@ -141,6 +143,11 @@
 	flex-wrap: wrap;
 }
 
+.flex-justify-around {
+	display: flex;
+	justify-content: space-around;
+}
+
 .center {
 	display: flex;
 	align-items: center;
@@ -231,9 +238,11 @@
 .p-20 {
 	padding: 20rpx;
 }
+
 .p-24 {
 	padding: 24rpx;
 }
+
 .p-30 {
 	padding: 30rpx;
 }
@@ -404,11 +413,15 @@
 	padding-right: 40rpx;
 }
 
-.m-t6{
-	max-width: 50%;          /* 最大宽度 */
-	overflow: hidden;          /* 超出隐藏 */
-	text-overflow: ellipsis;   /* 显示省略号 */
-	white-space: nowrap;       /* 不换行 */
+.m-t6 {
+	max-width: 50%;
+	/* 最大宽度 */
+	overflow: hidden;
+	/* 超出隐藏 */
+	text-overflow: ellipsis;
+	/* 显示省略号 */
+	white-space: nowrap;
+	/* 不换行 */
 }
 
 /*margin大小*/
@@ -670,9 +683,11 @@
 .bor-dashed-2 {
 	border: 2rpx dashed #E5E5E5;
 }
+
 .b-F3F4F6-1 {
 	border: .1rpx solid #F3F4F6;
 }
+
 .b-B9F8CF-1 {
 	border: .1rpx solid #B9F8CF;
 }
@@ -689,21 +704,45 @@
 	height: 1rpx;
 	background: #CCCCCC;
 }
+
 .bgc-fff {
 	background-color: #fff;
 }
+
 .bgc-6A7383 {
 	background-color: #6A7383;
 }
+
 .bgc-F9FAFB {
 	background-color: #F9FAFB;
 }
+
 .bgc-F0FDF4 {
 	background-color: #F0FDF4;
 }
+
 .bgc-DBFCE7 {
 	background-color: #DBFCE7;
 }
+.bgc-5692FF {
+	background-color: #5692FF;
+}
+.bgc-7D99FF {
+	background-color: #7D99FF;
+}
+.bgc-33D595 {
+	background-color: #33D595;
+}
+.bgc-E87DD2 {
+	background-color: #E87DD2;
+}
+
+.bgc-00DC73-00BF7C {
+	background-image: linear-gradient(125deg, #00C858, #00BCA2);
+}
+.bgc-C579FF-F4399F {
+	background-image: linear-gradient(125deg, #C579FF , #F4399F);
+}
 
 .fc-6A7383 {
 	color: #6A7383;
@@ -713,6 +752,10 @@
 	color: #00A63D;
 }
 
+.fc-008235 {
+	color: #008235;
+}
+
 .fc-155DFB {
 	color: #155DFB;
 }
@@ -724,10 +767,13 @@
 .fc-4B5666 {
 	color: #4B5666;
 }
+
 .fc-343C47 {
 	color: #343C47;
 }
-
+.fc-fff{
+	color: #fff;
+}
 
 /*圆角*/
 .r-8 {
@@ -1160,4 +1206,4 @@
 
 .mr-40 {
 	margin-right: 40rpx;
-}
+}