Bläddra i källkod

新增领导列表页面

lsh 4 månader sedan
förälder
incheckning
9d312642e7
1 ändrade filer med 195 tillägg och 0 borttagningar
  1. 195 0
      pages/feedback/DetailedFeedbackList.vue

+ 195 - 0
pages/feedback/DetailedFeedbackList.vue

@@ -0,0 +1,195 @@
+<template>
+	<view class="detailed-feedback-list-view">
+		<pub-list-scroll ref="pubListScrollRef" @next="onScrollTolower" :loaded="loaded" :text="loadText" :status="status">
+			<view class="no-data feedback-no" v-if="!listArray || listArray.length == 0">
+				<image mode="heightFix" src="/static/image/no-data.png" />
+				暂无数据
+			</view>
+			<view class="detailed-feedback-list" v-else>
+				<view v-for="(item,index) in listArray" :key="index" class="loop-list-item" @click="onClick(item)">
+					<view class="item-content">
+						<view class="item-title">
+							<view class="title-line">{{ item.djr }}</view>
+							<view>{{ filterApplicationType(item.fklx) }}</view>
+							<view class="title-company" :class="filterApplicationBgColor(item.fkzt)">{{ filterApplicationStatus(item.fkzt) }}</view>
+						</view>
+						<view class="part-line"></view>
+						<view class="text-content">
+							<view v-for="(textItem,textIndex) in item.formattedData" :key="textIndex" class="other-loop-item">
+								<view class="textTitle">{{ textItem.title }}</view>
+								<view class="textValue">{{ textItem.value }}</view>
+							</view>
+						</view>
+						<view class="bootom-content">
+							<view>{{ item.yljgmc }}</view>
+							<view>{{ formatDate(item.createTime,'{y}-{m}-{d} {h}:{i}:{s}') }}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="footnote_content">
+				<view>本服务由重庆两江新区社会发展局提供</view>
+				<view class="footnote_phone">服务咨询热线:<view class="phone_text" @click="makeCall">023-67685085</view></view>
+			</view>
+		</pub-list-scroll>
+	</view>
+</template>
+
+<script setup lang="ts">
+	import { defineProps,ref } from "vue";
+	import { 
+		filterApplicationStatus,
+		filterApplicationType,
+		filterApplicationBgColor,
+		formatDate
+	} from '@/lib/util'
+
+	const emit = defineEmits(['click','nextPage']) // 定义 success 事件,用于操作成功后的回调
+	// 定义 props 类型
+	const props = defineProps({
+		listArray: {
+			type: Object,
+			default: () => {}
+		},
+		status: {
+			type: String,
+			default: "loading"
+		}
+	});
+	const pubListScrollRef = ref(null)
+	const loaded = ref(false)
+	const loadText = ref('数据加载中...')
+	
+	const onScrollTolower = ()=> {
+		console.log("下一页了?")
+		emit("nextPage")
+	}
+	const onClick = (item:any)=> {
+		emit("click",item)
+	}
+	const makeCall = ()=> {
+		window.location.href = 'tel:023-67685085';
+	}
+</script>
+
+
+
+
+<style lang="scss">
+	.detailed-feedback-list-view {
+		background-color: #F6F7F8;
+		height: 100%;
+		.detailed-feedback-list {
+			padding: 32rpx 40rpx 0rpx;
+			background-color: #F6F7F8;
+			.loop-list-item {
+				min-height: 260rpx;
+				margin-bottom: 24rpx;
+				border-radius: 10rpx;
+				background: #fff;
+				padding: 14rpx 0 20rpx;
+				.item-content {
+					.item-title{
+						height: 60rpx;
+						padding: 0 20rpx;
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						.title-line {
+							font-weight: 600;
+							font-size: 28rpx;
+							color: #363A44;
+						}
+						.title-company {
+							padding: 12rpx 20rpx;
+							border-radius: 8rpx;
+							font-size: 24rpx;
+							&.yellow {
+								background-color: #FEF6ED;
+								color: #FD9F48;
+							}
+							&.blue {
+								background-color: #EDF2FD;
+								color: #1E92F0;
+							}
+							&.green {
+								background-color: #E8F7F1;
+								color: #00B578;
+							}
+						}
+					}
+					.part-line {
+						border-top: 1px solid #EFEFEF;
+						margin: 10rpx 0 30rpx;
+					}
+					.text-content {
+						padding: 0 20rpx;
+						display: flex;
+						flex-direction: column;
+						margin-bottom: 24rpx;
+						.other-loop-item {
+							margin-bottom: 20rpx;
+							display: flex;
+							align-items: center;
+							font-size: 28rpx;
+							font-weight: 400;
+							.textTitle {
+								color: #686B73;
+								margin-right: 24rpx;
+								flex-shrink: 0
+							}
+							.textValue {
+								color: #363A44;
+								white-space: nowrap;
+								overflow: hidden;
+								text-overflow: ellipsis;
+								flex-grow: 1;
+							}
+							&:last-child { 
+								margin-bottom: 0; 
+							}
+						}
+					}
+					.bootom-content {
+						padding: 0 20rpx;
+						@include flex-between;
+						font-size: 12px;
+						color: #686B73;
+					}
+				}
+			}
+			
+		}
+		
+		.feedback-no {
+			height: calc(100vh - 210px);
+		}
+		
+		::v-deep .scroll-view {
+			height: calc(100%);
+			background-color: transparent !important;
+		}
+
+		::v-deep .no-data {
+			margin-top: 0;
+			padding-top: 160rpx;
+		}
+		
+	}
+	.footnote_content {
+		  background-color: #F6F7F8;
+		  @include flex-center;
+		  height: 136rpx;
+		  flex-direction: column;
+		  font-weight: 400;
+		  font-size: 24rpx;
+		  color: #B3B5B9;
+		  line-height: 40rpx;
+		  .footnote_phone {
+			display: flex;
+			.phone_text {
+				color: #1E92F0;
+			}
+		  }
+	}
+</style>