zjs_project hai 1 ano
pai
achega
1558046c2d

+ 1 - 1
src/App.vue

@@ -44,7 +44,7 @@
 			};
 		},
 		created() {
-			let userId = this.$route.query.leavePhoneCustomerId ? this.$route.query.leavePhoneCustomerId : '129130';
+			let userId = this.$route.query.leavePhoneCustomerId ? this.$route.query.leavePhoneCustomerId : '';
 			let xcxHouseId = this.$route.query.xcxHouseId ? this.$route.query.xcxHouseId : $config.xcxHouseId;
 			let query = this.$route.query;
 			// let xcxHouseId = '100296';

+ 6 - 6
src/components/newBottomCom/viewMask/viewMask.scss

@@ -324,17 +324,17 @@
 }
 .connect-view{
 	position: absolute;
-	width: 140px;
-	height: 190px;
+	width: 242px;
+	height: 330px;
 	background: transparent;
-	bottom: 505px;
-	right:20px; 
+	bottom: 442px;
+	right:-18px; 
 	box-sizing: border-box;
 	z-index: 13;
 	pointer-events: auto;
 	.defaultHead{
-		width: 140px;
-		height: 190px;
+		width: 242px;
+		height: 330px;
 		// clip-path: polygon(0 0%, 100% 0, 100% 100px, 0 100px);
 	}
 }

+ 7 - 7
src/components/newBottomCom/viewShell/viewShell.scss

@@ -86,16 +86,16 @@
 }
 .connect-view{
 	position: absolute;
-	width: 140px;
-	height: 190px;
+	width: 242px;
+	height: 330px;
 	background: transparent;
-	top:-100px;
-	right:24px; 
+	top:-158px;
+	right:-18px; 
 	box-sizing: border-box;
 	.defaultHead{
-		width: 140px;
-		height: 190px;
-		clip-path: polygon(0 0%, 100% 0, 100% 100px, 0 100px);
+		width: 242px;
+		height: 330px;
+		clip-path: polygon(0 0%, 100% 0, 100% 158px, 0 158px);
 	}
 }
 button{

+ 3 - 1
src/pages/webgl_rxdz_env/webgl_rxdz_env.scss

@@ -178,7 +178,9 @@ page {
 		}
 	}
     .question{
-		position: relative;
+		position: fixed;
+		width: 100%;
+		bottom: 178px;
 		font-family: "Verdana";
 		font-weight: 400;
 		height: 34px;

+ 34 - 10
src/pages/webgl_rxdz_env/webgl_rxdz_env.vue

@@ -8,6 +8,7 @@
 	import {
 		setStorage,
 		getStorage,
+		removeItem,
 	} from '@/utils/localStorage';
 	import {
 		Toast
@@ -146,16 +147,30 @@
 								}
 							];//AI生成图存放对象
 						})
-					}); 
-					
-					// this.tabIndex = 0;
+					});
+					let envData = getStorage('envData') ? JSON.parse(getStorage('envData')) : null;
 					this.tabData = list;
-					this.tabData[0].checkedIndex = 0;
-					this.optionIndex = 0;
-					this.options = this.tabData[0].options; //选项数据
-					this.AIImg = this.tabData[0].options[0].imageUrl;//AI生成所需的垫图
-					this.aiImagesList = this.tabData[0].options[0].hardboundEffect;
-					this.submitAnswer()
+					if(envData && envData.length>0){
+						envData.forEach((it,index)=>{
+							this.tabData[index].checkedIndex = it;
+						})
+						this.tabIndex = 0;
+						this.optionIndex = envData[0];
+						
+						this.options = this.tabData[this.tabIndex].options; //选项数据
+						this.AIImg = this.tabData[this.tabIndex].options[this.optionIndex].imageUrl;//AI生成所需的垫图
+						this.aiImagesList = this.tabData[this.tabIndex].options[this.optionIndex].hardboundEffect;
+						this.allSelect = !this.tabData.some(it=>it.checkedIndex==-1);
+						removeItem('envData');//用完后删除
+					}else{
+						this.tabData[0].checkedIndex = 0;
+						this.optionIndex = 0;
+						this.options = this.tabData[0].options; //选项数据
+						this.AIImg = this.tabData[0].options[0].imageUrl;//AI生成所需的垫图
+						this.aiImagesList = this.tabData[0].options[0].hardboundEffect;
+						this.submitAnswer()
+					}
+					
 					//初始化待提交的数据对象
 					// list.forEach(it=>{
 					// 	let obj = {
@@ -255,6 +270,7 @@
 				let shottingImg = getStorage('shottingImg');
 				let expand = [];//扩展数据
 				let otherlist = [];
+				let checkIndexList = [];
 				let userId = this.userId ? this.userId : '';
 				let houseData = {
 					"layoutId": curHouseObj.id,
@@ -265,6 +281,13 @@
 					"style": "",
 					"houseJson": []
 				}
+				firstData.forEach(it=>{
+					let _dt = {
+						name:it.name,
+						value:it.selectOptionImageUrl,
+					}
+					expand.push(_dt);
+				})
 				secondData.forEach(it=>{
 					let _dt = {
 						name:it.name,
@@ -288,6 +311,7 @@
 						name:tab.fatherName,
 						value:obj.content,
 					});
+					checkIndexList.push(tab.checkedIndex);
 				})
 				houseData.houseJson = spaceList.concat(otherlist);
 				// houseData.expand = expand;
@@ -304,7 +328,7 @@
 					expand:JSON.stringify(expand),
 				}
 				console.warn("submitHouse-param: ", param);
-				
+				setStorage('envData',checkIndexList);
 				const loading = this.$loading({
 					lock: true,
 					text: '提交中...',

+ 2 - 1
src/pages/webgl_rxdz_houseList/webgl_rxdz_houseList.vue

@@ -39,7 +39,7 @@
 					pageName: this.pvCurPageName,
 				},
 				id:'',	//题目id
-				houseId: 100296,
+				houseId: '',
 				houseList:[],	//户型列表
 				optionIndex: -1, //选项选中的序号
 				tabData: [],	//
@@ -54,6 +54,7 @@
 		mounted(options) {
 			console.log("***onLoad-webgl_rxdz_houseList***", this.$route.query)
 			let queryObj = getStorage('queryObj') ? JSON.parse(getStorage('queryObj')) : null;
+			this.houseId = this.$route.query.houseId ? this.$route.query.houseId : (this.$store.state.houseId || '');
 			this.id = this.$route.query.id2 ? this.$route.query.id2 : (queryObj && queryObj.id2?queryObj.id2:'110');
 			this.findHouseTypeSpaceList();
 			this.queryTestcaseSingle();

+ 5 - 3
src/pages/webgl_rxdz_role/webgl_rxdz_role.html

@@ -4,13 +4,14 @@
 	<!-- <authview id="authView" :showPhoneModel="showPhoneModel"></authview> -->
     <div class="contentBox">
 		<!-- <div class="bg1"></div> -->
-		<div class="bg2"></div>
+		<!-- <div class="bg2"></div> -->
 		<div class="bg3"></div>
+		<div class="bg4"></div>
 		<div class="role-info" v-if="roleList && roleList.length>0">{{roleList[currImgIdx].text}}</div>
         <!-- 角色图片轮播区域 -->
         <div class="master-pic" v-if="roleList && roleList.length>0">
         	<el-carousel :autoplay="false" :loop="false" :indicator-dots="false"
-        		@change="swiperChangeImg" class="master-pic-swiper" arrow="always"
+        		@change="swiperChangeImg" class="master-pic-swiper" arrow="none"
         		:current="currImgIdx" ref="carousel" indicator-position="none">
                 <el-carousel-item v-for="(item,s) in roleList" :key="item.id" 
         			:item-id="item.id" class="master-pic-item rows justify-center">
@@ -39,7 +40,8 @@
 				<div @click="changeOption(index)" class="tab-item columns"
 					:class="{'tabActive': optionIndex == index}" 
 					v-for="(tab,index) in options" :key="index" >
-					<img class="tab-img" :src="tab.imageUrl" mode="aspectFill" />
+					<!-- <img class="tab-img" :src="tab.imageUrl" mode="aspectFill" /> -->
+					<div class="tab-img-bg" :style="{'background-image':'url('+tab.imageUrl+')'}"></div>
 					<div class="tab-text">{{tab.content}}</div>
 				</div>
 			</div>

+ 38 - 8
src/pages/webgl_rxdz_role/webgl_rxdz_role.scss

@@ -34,14 +34,25 @@ page {
 		background: linear-gradient(180.00deg, #aeb6c1 0%, #adb7c3 16.75%, #d1c8b9 78%, #d7cebf 100%);
 		// z-index: 2;
 	}
+	.bg4{
+		position: absolute;
+		left: 0px;
+		top: 0px;
+		width: 100vw;
+		height: 760px;
+		background-image: url('https://dm.static.elab-plus.com/miniProgram/role_top_bg.png');
+		background-size:cover;
+		background-repeat: no-repeat;
+		// z-index: 2;
+	}
 	.bg3{
 		position: absolute;
 		left: 0px;
 		top: 0px;
 		width: 100vw;
 		height: 100vh;
-		background-image: url('https://dm.static.elab-plus.com/miniProgram/role_bg.png');
-		background-size:contain;
+		background-image: url('https://dm.static.elab-plus.com/miniProgram/role_bg1.png');
+		background-size:cover;
 		background-repeat: no-repeat;
 		// z-index: 2;
 	}
@@ -199,16 +210,29 @@ page {
 			&:last-child{
 				margin-right: 0px;
 			}
-		    .tab-img{
-		    	width: 84px;
-		    	height: 84px;
-		    	object-fit: cover;
+			.tab-img{
+				width: 84px;
+				height: 84px;
+				object-fit: contain;
 				margin-bottom: 14px;
 				border-radius: 50%;
 				border: transparent 4px solid;
 				box-sizing: border-box;
-		    }
+			}
+			.tab-img-bg{
+				width: 84px;
+				height: 84px;
+				margin-bottom: 14px;
+				border-radius: 50%;
+				border: transparent 4px solid;
+				box-sizing: border-box;
+				background-position: center top;
+				background-size:300%;
+				background-repeat: no-repeat;
+			}
+			
 			.tab-text{
+				width: max-content;
 				font-family: "Verdana";
 				font-weight: 400;
 				font-size: 28px;
@@ -220,10 +244,16 @@ page {
 			&.tabActive .tab-img{
 				border-color: rgba(249, 135, 15, 1);
 			}
+			&.tabActive .tab-img-bg{
+				border-color: rgba(249, 135, 15, 1);
+			}
 		}
 	}
     .question{
-		position: relative;
+		position: fixed;
+		left: 0px;
+		width: 100%;
+		bottom: 190px;
 		font-family: "Verdana";
 		font-weight: 400;
 		height: 34px;

+ 14 - 3
src/pages/webgl_rxdz_text_customize/webgl_rxdz_text_customize.html

@@ -23,6 +23,7 @@
 					v-for="(item, idx) in tabData[tabIndex].hardboundEffect" :key="idx"></div>
 				</div>
             </div>
+			<div class="mask"></div>
 			<img class="text-img" src="https://dm.static.elab-plus.com/miniProgram/text-img.png" mode="widthFix"/>
             <div class="tabList rows flex-start">
 				<div @click="changeTab(index)" class="tab-item columns" :class="{'tabActive': tabIndex == index}" 
@@ -101,13 +102,23 @@
 			</div>
 		</div>
 		<div class="bottom-view rows rows-between" v-else>
-			<div class="bottom-btn btn-qw rows justify-center" @click="conectUS">
+			<div class="btn columns" @click="share">
+				<i class="iconfont icon-Shared"></i>
+				分享
+			</div>
+			<div class="btn columns" @click="conectUS">
+				<i class="iconfont icon-Comment"></i>
+				联系我们
+			</div>
+			<div class="btn1 btn-qw rows justify-center" style="margin-right: 0px;" @click="toIndex">
+				返回项目首页
+			</div>
+			<!-- <div class="bottom-btn btn-qw rows justify-center" @click="conectUS">
 			    联系我们了解更多
 			</div>
 			<div class="bottom-btn btn-share rows justify-center" @click="share">
-				<!-- <i class="iconfont icon-Shared"></i> -->
 				分享我的设计
-			</div>
+			</div> -->
 		</div>
 		<!-- 高斯背景图 -->
 		<div class="swiper-img-gs-mh"  >

+ 36 - 1
src/pages/webgl_rxdz_text_customize/webgl_rxdz_text_customize.scss

@@ -87,6 +87,15 @@ page {
 			}
         }
     }
+	.mask{
+		position: absolute;
+		left: 0px;
+		top: 376px;
+		width: 100%;
+		height: 378px;
+		background: linear-gradient(180.00deg, #00000000 0%, #00000080 100%);
+		z-index: 2;
+	}
 	.text-img{
 		position: absolute;
 		left: 42px;
@@ -392,6 +401,32 @@ page {
             white-space: nowrap;
         }
     }
+	.btn{
+		height: 96px;
+		font-family: "Verdana";
+		font-weight: 400;
+		font-size: 24px;
+		line-height: 32px;
+		text-align: center;
+		color: #eeefef;
+		.iconfont{
+			height: 45px;
+			font-size: 40px;
+			color: #FFD37E;
+		}
+	}
+	.btn1{
+		width: 418px;
+		height: 96px;
+		border-radius: 48px;
+		background: linear-gradient(130.79deg, #a0ed84 0%, #e8f4b7 100%);
+		border: 2px solid #ffffff38;
+		font-family: "DengXian Bold";
+		font-weight: 700;
+		font-size: 34px;
+		line-height: 32px;
+		color: #365d39;
+	}
 	.btn-qw{
 		background: linear-gradient(130.79deg, #a0ed84 0%, #e8f4b7 100%);
 		color: #365d39;
@@ -405,7 +440,7 @@ page {
 	.icon-Shared{
 		color: #ffffff;
 		font-size:24px;
-		margin-right:10px;
+		// margin-right:10px;
 	}
 }
 .info-head{

+ 24 - 12
src/pages/webgl_rxdz_text_customize/webgl_rxdz_text_customize.vue

@@ -44,7 +44,7 @@ export default {
             houseId: $config.houseIdHs,
 
             shareUserId: null, // 分享者ID
-            id: '6523d91af65c626211ee21c8',//方案库id
+            id: '',//方案库id
 
             currImgIdx:0,
             tabIndex: 0,
@@ -61,7 +61,7 @@ export default {
 			likeCount:0,//喜欢的人数
 			unlikedCount:0,//不喜欢人数
 			total:0,//总人数
-			typeStatus:1,//显示是否喜欢的视图 ,默认显示 0 不显示
+			typeStatus:0,//显示是否喜欢的视图 ,1 显示 0 不显示
 			proportion:50,	//显式比例
 			headList:[],
 			showUserInput:false,	//是否显示手机号留电弹窗
@@ -77,10 +77,10 @@ export default {
      * 生命周期函数--监听页面加载
      */
     mounted(options) {
-        console.log("***onLoad-webgl_rxdz_customize***", this.$route.query)
+        console.log("***onLoad-webgl_rxdz_text_customize***", this.$route.query)
         const that = this;
         this.houseId = this.$route.query.houseId?this.$route.query.houseId:'';
-        this.id = this.$route.query.id?this.$route.query.id:'6523d91af65c626211ee21c8';
+        this.id = this.$route.query.id?this.$route.query.id:'';
 		this.typeStatus = this.$route.query.typeStatus?this.$route.query.typeStatus:0;
 		if(!this.id){
 			Toast({
@@ -162,22 +162,32 @@ export default {
 			    return;
 			}
 		    let codeData = {
-				mobile: this.tel,
-				code: this.verifyCode,
-				verifyType: 1,
+				// mobile: this.tel,
+				// code: this.verifyCode,
+				// verifyType: 1,
 				
 				// mobile: this.tel,
 				// type: 'verification.code',
 				// verifycode: this.verifyCode
+				
+				mobile: this.tel,
+				leavePhoneCustomerId:this.userId || '',
+				code: this.verifyCode,
+				houseId:this.houseId,
+				source:2,
+				fromPlatform:'前测',
+				terminal:'7',
 		    };
-		    const validateCodeRes = await requestConfig('validate', codeData);
-		    if (validateCodeRes && !validateCodeRes.success) { //成功
+		    const validateCodeRes = await requestConfig('leavephone', codeData);
+		    if (validateCodeRes && validateCodeRes.success) { //成功
 				Toast({
-					message: '验证码输入错误',
+					message: '留电成功',
 				});
 		        return
 		    } else {
-		        this.fakeLeavePhone()
+		        Toast({
+		        	message: '验证码输入错误',
+		        });
 		    }
 			this.isSend = false;
 		},
@@ -329,7 +339,9 @@ export default {
 				this.tabIndex = 0;//表明是户型首图
 				this.tabData = [];
 				if(single.expand){
-					this.expand = JSON.parse(single.expand);
+					let list = JSON.parse(single.expand);
+					let ind = list.findIndex(it=>it.name == '户型偏好');
+					this.expand = list.slice(ind);
 				}
 				this.layoutStruct = JSON.parse(JSON.stringify(single));
 				

+ 1 - 0
src/services/requestConfig.js

@@ -54,6 +54,7 @@ const endpoints = {
 	authorizedMobile: 'elab-marketing-user/applet/auth_mobile', //解密手机号接口
 	generateShareSign: 'elab-marketing-user/brand/shareSign/generateShareSign',//用户信息加密 获取 秘钥
 	submitAnswer: 'elab-marketing-content/question/submitAnswer',//答题
+	leavephone: 'elab-marketing-user/contact/leavephone/web/insert',//web留电
 	// predictions: "https://api.replicate.com/v1/deployments/feathers-wing/spacely-realistic-style-softedge-a100/predictions", // 分享查看
 };
 /**