| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 | <template>	<view class="qbox adffc">		<view class="list" v-if="list.length">			<up-list @scrolltolower="scrolltolower" style="height: 100%;">				<up-list-item class="list-item" v-for="(item, index) in list" :key="index">					<view @click.prevent="showDialog(item)">						<image class="expand" :src="imgBase+'questionnaire_icon_down.png'"></image>						<view class="title">{{item.title||''}}</view>						<view class="name">团队名称:{{item.teamName||''}}</view>						<view class="progress adfacjb">							<view class="progress-left adfac">								<view class="progress-left-text">作答进度:</view>								<view class="progress-left-box">									<view class="progress-left-box-current" :style="{'width':(item.yzdNum/item.sum*100)+'%'}"></view>								</view>							</view>							<view class="progress-right"><span>{{item.yzdNum}}/</span>{{item.sum}}</view>						</view>						<view class="bottom adfacjb">							<view class="bottom-left">截止时间:{{item.endTime}}</view>							<view class="bottom-right" v-if="item.status===0">立即作答</view>							<view class="bottom-right" v-else-if="item.status===1">生成报告</view>							<view class="bottom-right" v-else-if="item.status===2">发送报告</view>						</view>					</view>				</up-list-item>			</up-list>		</view>		<view class="empty" v-else>			<page-empty></page-empty>		</view>		<view class="dialog adffc" v-if="show">			<view class="dbox">				<view class="dbox-top adfacjb">					<view class="dbox-top-title">{{dto.title||''}}</view>					<image class="dbox-top-expand" :src="imgBase+'questionnaire_icon_down.png'" @click="show=false"></image>				</view>				<view class="dbox-name">团队名称:{{dto.teamName||''}}</view>				<view class="dbox-progress adfacjb">					<view class="dbox-progress-left adfac">						<view class="dbox-progress-left-text">作答进度:</view>						<view class="dbox-progress-left-box">							<view class="dbox-progress-left-box-current" :style="{'width':(dto.yzdNum/dto.sum*100)+'%'}"></view>						</view>					</view>					<view class="dbox-progress-right"><span>{{dto.yzdNum}}/</span>{{dto.sum}}</view>				</view>				<view class="dbox-menu">					<view class="dbox-menu-pre adffcac" v-for="(item,index) in menuList" :key="index" @click="handleMenuClick(index)">						<image :src="item.img"></image>						<text>{{item.text}}</text>					</view>				</view>			</view>		</view>		<view class="dialog adffc" v-if="teamInfoShow">			<view class="dialog-box">				<view class="dialog-box-title">团队信息</view>				<image class="dialog-box-close" :src="imgBase+'remind_close.png'" @click="teamInfoShow=false"></image>				<view class="dialog-box-teaminfo">					<cus-team-info-fill confirmText="保存" @handleConfirm="handleConfirm"></cus-team-info-fill>				</view>			</view>		</view>		<cus-team-user :deluser="true" :show="teamUserShow" :list="teamUserList" @close="teamUserShow=false"></cus-team-user>	</view></template><script>	import PageEmpty from '@/components/pageEmpty/index.vue'	import CusTeamUser from '@/components/CusTeamUser/index.vue'	import CusTeamInfoFill from '@/components/CusTeamInfoFill/index.vue'	export default {		components:{ PageEmpty, CusTeamUser, CusTeamInfoFill },		props:{			list:{				typeof:Array,				default:[]			}		},		data(){			return {				show:false,				teamInfoShow:false,				teamUserShow:false,				dto:null,				menuList:[					{						img:this.$imgBase+'questionnaire_edit.png',						text:'编辑问卷'					},					{						img:this.$imgBase+'questionnaire_share.png',						text:'分享问卷'					},					{						img:this.$imgBase+'questionnaire_info.png',						text:'团队信息'					},					{						img:this.$imgBase+'questionnaire_copy.png',						text:'复制链接'					},					{						img:this.$imgBase+'questionnaire_users.png',						text:'团队人员'					},					{						img:this.$imgBase+'questionnaire_report.png',						text:'生成报告'					},					{						img:this.$imgBase+'questionnaire_report.png',						text:'发送报告'					}				],				teamUserList:[					{						name:'张三',						email:'2233983769@qq.com',						type:1,						status:0					},					{						name:'李四',						email:'2233983769@qq.com',						type:2,						status:0					},					{						name:'王五',						email:'2233983769@qq.com',						type:3,						status:1					},					{						name:'赵六',						email:'2233983769@qq.com',						type:1,						status:1					}				],			}		},		methods:{			scrolltolower(){				this.$emit('scrolltolower')			},			showDialog(item){				this.dto = item;				this.show = true;			},			handleMenuClick(type){				if(type===0){					uni.navigateTo({						url:'/pagesHome/questionnaireEdit?id='+this.dto.id||''					})				}else if(type===2) this.teamInfoShow = true 				else if(type===4) this.teamUserShow = true			},			handleConfirm(){				this.teamInfoShow = false;			}		}	}</script><style scoped lang="scss">	.qbox{		width: 100%;		height: 100%;		flex: 1;				.list{			flex: 1;			margin-top: 20rpx;			overflow: hidden;			&-item{				width: 100%;					background: #FFFFFF;				border-radius: 24rpx;				margin-top: 20rpx;				padding: 36rpx 24rpx 19rpx;				box-sizing: border-box;				position: relative;				display: block;							.expand{					width: 32rpx;					height: 32rpx;					position: absolute;					top: 36rpx;					right: 32rpx;				}								.title{					width: calc(100% - 128rpx);					font-family: PingFang-SC, PingFang-SC;					font-weight: bold;					font-size: 32rpx;					color: #002846;					line-height: 32rpx;				}								.name{					font-family: PingFangSC, PingFang SC;					font-weight: 400;					font-size: 24rpx;					color: #667E90;					line-height: 24rpx;					margin-top: 35rpx;				}								.progress{					margin-top: 36rpx;					&-left{						width: calc(100% - 95rpx);						&-text{							font-family: PingFangSC, PingFang SC;							font-weight: 400;							font-size: 24rpx;							color: #667E90;							line-height: 24rpx;						}						&-box{							flex: 1;							position: relative;							height: 12rpx;							background: #F0F2F8;							border-radius: 6rpx;							&-current{								height: 12rpx;								background: #7CC5C5;								border-radius: 6rpx;								position: absolute;								top: 0;								left: 0;							}						}					}					&-right{						font-size: 24rpx;						line-height: 24rpx;						color: #95A5B1;						span{							font-size: 24rpx;							line-height: 24rpx;							color: #002846;						}					}				}								.bottom{					margin-top: 30rpx;					border-top: 1rpx solid #EFEFEF;					padding-top: 20rpx;					&-left{						font-family: PingFangSC, PingFang SC;						font-weight: 400;						font-size: 24rpx;						color: #667E90;						line-height: 24rpx;					}					&-right{						border-radius: 32rpx;						background: linear-gradient( 90deg, #33A7A7 0%, #4DB2B2 100%);						padding: 19rpx 22rpx;						font-family: PingFangSC, PingFang SC;						font-weight: 400;						font-size: 26rpx;						color: #FFFFFF;						line-height: 26rpx;						letter-spacing: 2rpx;					}				}			}		}				.empty{			flex: 1;		}					.dialog{			position: fixed;			left: 0;			right: 0;			top: 0;			bottom: 0;			background: rgba(0, 0, 0, .4);			z-index: 1001;			justify-content: flex-end;						.dbox{				width: 100%;				height: 738rpx;				background: #FFFFFF;				box-shadow: 0rpx -2rpx 6rpx 0rpx rgba(0,0,0,0.07);				border-radius: 24rpx 24rpx 0rpx 0rpx;				padding: 48rpx 30rpx 0;				box-sizing: border-box;				&-top{					&-title{						width: calc(100% - 60rpx);						font-family: PingFang-SC, PingFang-SC;						font-weight: bold;						font-size: 32rpx;						color: #002846;						line-height: 40rpx;					}					&-expand{						width: 32rpx;						height: 32rpx;						transform: rotate(180deg);					}				}								&-name{					font-family: PingFangSC, PingFang SC;					font-weight: 400;					font-size: 24rpx;					color: #667E90;					line-height: 24rpx;					margin-top: 24rpx;				}								&-progress{					margin-top: 36rpx;					&-left{						width: calc(100% - 95rpx);						&-text{							font-family: PingFangSC, PingFang SC;							font-weight: 400;							font-size: 24rpx;							color: #667E90;							line-height: 24rpx;						}						&-box{							flex: 1;							position: relative;							height: 12rpx;							background: #F0F2F8;							border-radius: 6rpx;							&-current{								height: 12rpx;								background: #7CC5C5;								border-radius: 6rpx;								position: absolute;								top: 0;								left: 0;							}						}					}					&-right{						font-size: 24rpx;						line-height: 24rpx;						color: #95A5B1;						span{							font-size: 24rpx;							line-height: 24rpx;							color: #002846;						}					}				}								&-menu{					margin-top: 43rpx;					overflow: hidden;					margin-left: -30rpx;					&-pre{						width: calc(25% - 30rpx);						background: #F7F8FA;						border-radius: 24rpx;						padding: 30rpx 20rpx;						margin-top: 24rpx;						margin-left: 30rpx;						box-sizing: border-box;						float: left;						image{							width: 42rpx;							height: 42rpx;						}						text{							font-family: PingFangSC, PingFang SC;							font-weight: 400;							font-size: 24rpx;							color: #002846;							line-height: 24rpx;							text-align: center;							margin-top: 24rpx;						}					}				}			}						&-box{				width: 100%;				height: 1200rpx;				background: #F7F7F7;				padding-top: 38rpx;				border-radius: 24rpx 24rpx 0rpx 0rpx;				box-sizing: border-box;				position: relative;				overflow-y: auto;				&-title{					font-family: PingFang-SC, PingFang-SC;					font-weight: bold;					font-size: 32rpx;					color: #002846;					line-height: 32rpx;					text-align: center;				}				&-close{					width: 48rpx;					height: 48rpx;					position: absolute;					top: 30rpx;					right: 30rpx;				}				&-teaminfo{					margin-top: 40rpx;				}			}		}	}</style>
 |