소스 검색

Merge branch 'feature_UI调整' of http://101.231.166.56:3000/elab-damai-h5/h5-webgl-program into feature_UI调整

# Conflicts:
#	src/static/globlShowModel.js
caodongdong 1 년 전
부모
커밋
509d6296ff
4개의 변경된 파일94개의 추가작업 그리고 74개의 파일을 삭제
  1. 23 16
      src/mixins/loadModel.js
  2. 1 1
      src/pages/webgl_rxdz/webgl_rxdz.vue
  3. 67 55
      src/static/globlShowModel.js
  4. 3 2
      src/static/layoutModelData.js

+ 23 - 16
src/mixins/loadModel.js

@@ -12,8 +12,8 @@ export default {
 			gltfLayouts: [],
 			instancedFurList:[],
 			
-			graderGltfLayouts: [],//花园地块的模型对象
-			graderInstancedFurList:[],//花园地块的模型
+			// graderGltfLayouts: [],//花园地块的模型对象
+			// graderInstancedFurList:[],//花园地块的模型
 			
 			arrFrunList:[],
 			promise_list:[],
@@ -22,7 +22,7 @@ export default {
 			tmpList:[],
 			realList:[],
 			nextString:'_simple',//精简模型后缀
-			lastFrunList:[],
+			// lastFrunList:[],
 		}
 	},
 	watch: {},
@@ -91,15 +91,16 @@ export default {
 			// 通过默认布局
 			this.furnHandle(this.arrFrunList,[]);
 		},
+		//加载其他空间的家具模型
 		loadLastSpaceModel(){
 			if(!this.changeSpaces || this.changeSpaces.length==0){
 				return false;
 			}
-			let layoutIds = this.changeSpaces.map(it=>it.layoutId);
+			let spaceIds = this.changeSpaces.map(it=>it.spaceId);
+			let layoutIds = this.spaceList.filter(item=>spaceIds.includes(item.spaceId)).map(it=>it.layoutId);
 			let list = this.arrFrunList.filter(item=>{
 				return !layoutIds.includes(item.id)
 			})
-			let spaceIds = this.changeSpaces.map(it=>it.spaceId); 
 			let spaceList = this.spaceList.filter(item=>{
 				return !spaceIds.includes(item.spaceId)
 			})
@@ -438,11 +439,6 @@ export default {
 		},
 		// 删除对应空间家具模型
 		deleteLayoutModel(spaceObj, layoutObj){
-			if(!layoutObj){//删除完家具模型后,修改空间的布局id为0,表示当前空间不存在布局了
-				spaceObj.delateLayoutId = true;//当前空间已经删除了家具模型
-			}else{
-				spaceObj.delateLayoutId = false;
-			}
 			const oldLayoutIndex = this.arrFrunList.findIndex((item)=>{
 				return item.id == spaceObj.layoutId
 			})
@@ -451,8 +447,11 @@ export default {
 				this.arrFrunList[oldLayoutIndex] = layoutObj
 				// this.arrFrunList.splice(oldLayoutIndex,1)
 			}
-			
-			console.log("准备删除模型", spaceObj, this.gltfLayouts);
+			if(!layoutObj){//当前空间不存在布局了
+				this.arrFrunList.splice(oldLayoutIndex,1)
+				spaceObj.layoutId = null;//为了确保传递到下一页的空间里面也没有布局信息,确保布局一致
+			}
+			console.log("准备删除模型", spaceObj,oldLayoutIndex, this.gltfLayouts);
 			//寻找当前空间下的所有家具模型对象
 			const gltfLayoutModels = this.gltfLayouts.filter(item => {
 				return spaceObj.layoutId == item.userData.layoutId && spaceObj.spaceId == item.userData.spaceId;
@@ -483,7 +482,7 @@ export default {
 				}
 			}
 			this.scene.remove(...deleList);//释放家具的资源,this.instancedFurList
-			console.log("删除模型了", spaceObj, this.gltfLayouts,this.lastFrunList);
+			console.log("删除模型了", spaceObj, this.gltfLayouts);
 		},
 		// 计算家具的位置
 		calculateLayoutModelSize() {
@@ -1132,12 +1131,19 @@ export default {
 							this.loadlayoutByID(layoutObj.groupType, element, resolve);
 						})
 					)
+				}else{//空间不存在布局,需要请求布局信息
+					promise_list.push(
+						new Promise((resolve, reject) => {
+							this.loadlayoutByID(element.groupType, element, resolve);
+						})
+					)
 				}
 			}
 			Promise.all(promise_list).then(()=>{
 				this.$nextTick(()=>{
 					console.log("新布局替换完成",this.changeLayouts, changeSpaces,this.arrFrunList.map(it=>it.id));
 					this.furnHandle(this.changeLayouts, changeSpaces);//先加载变化的空间的布局
+					this.updataPageData();//更新数据
 				})
 			})
 		},
@@ -1180,12 +1186,13 @@ export default {
 				}
 			}
 			if(layoutObj==null){
-				console.warn("没有合适的布局", layoutObj);
-				// this.deleteLayoutModel(spaceObj, layoutObj);//删除当前的布局
+				console.warn("没有合适的布局", layoutObj,spaceObj.layoutId);
+				spaceObj.groupType = groupType;
+				this.deleteLayoutModel(spaceObj, layoutObj);//删除当前的布局
 				return resolve()
 			}
 			console.log("找出最合适的布局", layoutObj)
-			console.log("更新空间的布局ID=", spaceObj.layoutId)
+			console.log("更新空间的布局ID=", spaceObj.layoutId,'=>',layoutObj.id)
 		
 			// 合适的布局更现有布局相同-不在需要了,因为这此之前已经把所有的家具都删除了
 			// if(spaceObj.layoutId == layoutObj.id && !spaceObj.delateLayoutId){

+ 1 - 1
src/pages/webgl_rxdz/webgl_rxdz.vue

@@ -958,7 +958,7 @@
 					this.moveSpace(curSpace, 2, 3, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight)
 				}
 				setTimeout(() => {
-					that.updataPageData();
+					// that.updataPageData();
 					that.overChange = false;
 					that.callBackFun && that.callBackFun(true);
 					// that.calculateLayoutModelSize(); //重新计算家具位置

+ 67 - 55
src/static/globlShowModel.js

@@ -1,58 +1,70 @@
 //需要精简加载的模型名称
 var globlShowModel = [
-	'BP_XSPACE_deng_01',
-	'BP_L_carpet01',
-	"BP_D_LongDiningTable_240CM",
-	"BP_D_DinnerChair01",
-	"BP_L_2Sofa01",
-	"BP_L_2Sofa02",
-	"BP_L_1Sofa01",
-	"BP_L_1Sofa02",
-	"BP_L_1Sofa03",
-	"BP_L_backsofa01",
-	"BP_L_book01_simple",
-	"BP_L_31TV01",
-	"BP_L_TeaRTable",
-	"BP_B_verysmallbed",
-	"BP_B_wardrobe01",
-	"BP_K_Kitchentable002",
-	"BP_K_cookerhood2",
-	"BP_K_icebox_2door002",
-	"BP_K_flue002",
-	"BP_T_flue001",
-	"BP_K_caozuotai03",
-	"BP_K_caozuotai001",
-	"BP_K_cookerhood02",
-	"BP_K_shuipen01",
-	"BP_K_shuipen02",
-	"BP_T_matong",
-	"BP_T_1PeopleBasin01",
-	"BP_T_OpenShower01",
-	"BP_L_TeaTable02",
-	"BP_B_bigbed01",
-	"BP_T_bathtub01",
-	"BP_G_tree00",
-	"BP_G_tree01",
-	"BP_G_tree02",
-	"BP_G_tree03",
-	"BP_O_LightIndoorWall",
-	"BP_AutoWallr_08M",
-	"BP_L_Exhibition02_simple",
-	"BP_L_TeaTable05",
-	"BP_L_Teatable03",
-	"BP_L_FloorLamp01",
-	"BP_T_stairs01",
+	'BP_T_2PeopleBasin01',
+	'BP_T_bathtub01',
+	'BP_B_wardrobe01',
+	'BP_B_bigbed01',
+	'BP_B_smallcabinet01',
+	'BP_O_LightIndoorWall',
+	'BP_B_wardrobe03',
+	'BP_B_painting01',
+	'BP_T_2PeopleBasin02',
+	'BP_X_RelaxChair01_One',
+	'BP_B_dresser01',
+	'BP_B_Mbed01',
+	'BP_B_table01',
+	'BP_B_wardrobe02',
+	'BP_X_RelaxArea01',
+	'BP_B_smallbed01',
+	'BP_AutoWallr_08M',
+	'BP_B_verysmallbed',
+	'BP_AutoWall_195M',
+	'BP_XSPACE_painting_05',
+	'BP_Lhildren07',
+	'BP_L_backsofa01',
+	'BP_DLBT_painting01',
+	'BP_L_Exhibition02_simple',
+	'BP_D_LongDiningTable_240CM',
+	'BP_D_DiningDecoration01',
+	'BP_D_DinnerChair01',
+	'BP_L_1Sofa03',
+	'BP_L_TeaTable04',
+	'BP_Larpet01',
+	'BP_L_TeaTable05',
+	'BP_L_31TV01',
+	'BP_L_book01_simple',
+	'BP_B_penzai02',
+	'BP_furnitureBase',
+	'BP_L_1Sofa02',
+	'BP_L_2Sofa02',
+	'BP_L_Teatable03',
+	'BP_L_FloorLamp01',
+	'BP_LeilingLamp_01',
+	'BP_D_xiaobazhauo',
+	'BP_L_TeaTable02',
+	'BP_T_flue001',
+	'BP_T_1PeopleBasin01',
+	'BP_T_matong',
+	'BP_T_OpenShower02',
+	'BP_K_icebox_2door002',
+	'BP_K_flue002',
+	'BP_Kaozuotai001',
+	'BP_Kaozuotai03',
+	'BP_K_shuipen01',
+	'BP_Kaozuotai002',
+	'BP_Kookerhood3',
+	'BP_K_shuipen02',
+	'BP_Kookerhood02',
+	'BP_K_Kitchentable002',
+	'BP_AutoWall_39M',
+	'BP_T_Locker01',
+	'BP_G_tree01',
+	'BP_G_tree00',
+	'BP_T_stairs01',
+	'BP_K_caozuotai001',
+	'BP_K_caozuotai002',
+	'BP_K_caozuotai03',
+	'BP_K_cookerhood02'
+];
 
-
-    "BP_B_smallcabinet01",
-    "BP_X_RelaxArea01",
-
-    "BP_BR_linyu_ce",
-    "BP_T_2PeopleBasin01",
-    
-    "BP_AutoWall_39M",
-    
-    "BP_K_caozuotai002",
-]; 
-
-module.exports = globlShowModel;
+module.exports = globlShowModel;

+ 3 - 2
src/static/layoutModelData.js

@@ -59,8 +59,8 @@ var layoutModel = [
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_Kitchentable001.glb', name: '台面',modelName: 'BP_K_Kitchentable002', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_2sofa.glb', name: '2人沙发',modelName: 'BP_L_2sofa', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_2Sofa03.glb', name: '2人沙发03',modelName: 'BP_L_2Sofa03', type:1},
-	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai01.glb', name: '操作台01',modelName: 'BP_K_caozuotai001', type:1},
-	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai02.glb', name: '操作台02',modelName: 'BP_K_caozuotai002', type:1},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai001.glb', name: '操作台01',modelName: 'BP_K_caozuotai001', type:1},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai002.glb', name: '操作台02',modelName: 'BP_K_caozuotai002', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai03.glb', name: '操作台03',modelName: 'BP_K_caozuotai03', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_O_LightIndoorWall.gltf', name: '隔墙',modelName: 'BP_O_LightIndoorWall', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_TeaTable01.glb', name: '茶几01',modelName: 'BP_L_TeaRTable', type:1},
@@ -71,6 +71,7 @@ var layoutModel = [
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_ReadingArea01.gltf', name: '阅读角01',modelName: 'BP_X_ReadingArea01', type:1},
 	
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_OpenShower01.gltf', name: '开敞侧淋浴间',modelName: 'BP_T_OpenShower01', type:1},
+	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_OpenShower02.glb', name: '开敞侧淋浴间02',modelName: 'BP_T_OpenShower02', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_matong.gltf', name: '马桶',modelName: 'BP_T_matong', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_1PeopleBasin01.glb', name: '1人台盆01',modelName: 'BP_T_1PeopleBasin01', type:1},
 	{url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_flue001.glb', name: '水井管道01',modelName: 'BP_T_flue001', type:1},