123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <template src="./viewCareful.html">
- </template>
- <script>
- const util = require('@/utils/util.js').default;
- const config = require('@/services/urlConfig.js');
- import spaceTypes from '@/static/spaceTypesIE.js';
- // import Bus from '@/common/bus';
- // import commonMethod from '@/common/commonMethod.js';
- // import requestConfig from '@/static/lib/requestConfig';
- // import bgLoading from "@/components/bgLoading/bgLoading.vue"
- // import { nextTick } from "vue";
- // const app = getApp(); //获取应用实例
- export default {
- data: function() {
- return {
- selectItem:null,
- carefulList:[],
- lastCareList:[],//上一次的滑块值
- selectIndex:0,
- }
- },
- props:{
- overChange: {//当前页面是否处在忙碌状态
- type: Boolean,
- default: false,
- },
- curHouseObj: {//当前展示的户型
- type: Object,
- default: () => {
- return null
- }
- },
- },
- watch: {
- curHouseObj: {
- handler(newVal,oldVal) {
- if (newVal) {
- console.warn("***curHouseObj-CHANGE-viewCareful***", newVal,oldVal)
- if(!oldVal || (oldVal && oldVal.id != newVal.id)){
- this.initData();
- }
- }
- },
- deep:true,
- },
- },
- mixins: [],
- async mounted() {//组件挂载时事件
- // this.initData();
- // var currPage = getCurrentPages()[getCurrentPages().length - 1] ? getCurrentPages()[getCurrentPages().length - 1].$vm : null;
- this.$parent.$parent.updateCareFul = this.initData;//页面注册变更方法
- },
- // 页面被展示时执行
- onPageShow: function() {
- },
- //页面被隐藏时执行
- onPageHide: function() {
- },
- methods:{
- //初始化数据
- initData(){
- // var currPage = getCurrentPages()[getCurrentPages().length - 1] ? getCurrentPages()[getCurrentPages().length - 1].$vm : null;
- this.carefulList = [];
- this.lastCareList = [];
- const spaceDetail = this.curHouseObj;
- const spaceList = JSON.parse(spaceDetail.houseJson);
- let result = 0;
- spaceList && spaceList.forEach((item,index)=>{
- let minArea = 0;
- let maxArea = 100;
- if(item.hasOwnProperty('spaceWidthMin') && item.hasOwnProperty('spaceHeightMin')){
- minArea = parseFloat((item.spaceWidthMin * item.spaceHeightMin) / 10000).toFixed(1);
- }
- if(item.hasOwnProperty('spaceWidthMax') && item.hasOwnProperty('spaceHeightMax')){
- maxArea = parseFloat((item.spaceWidthMax * item.spaceHeightMax) / 10000).toFixed(1);
- }
- //修改为显示空间类型名称
- let text = spaceTypes[item.spaceType - 1] || item.spaceName;
- if(item.spaceType==15 && item.layoutSpaceType){
- text = spaceTypes[item.layoutSpaceType - 1];
- }
- if(item.spaceName && !item.isSizeLock){//楼梯不显示
- let curSpaceArea = Number(parseFloat(
- (item.spaceWidth * item.spaceHeight) / 10000
- ).toFixed(1));
- let data = {
- spaceId:item.spaceId,
- index:this.carefulList.length,
- name:text,
- area:curSpaceArea,
- percent:0,
- minArea:parseFloat(minArea), //最小面积
- maxArea:parseFloat(maxArea), //最大面积
- }
- result = result + curSpaceArea;
- this.carefulList.push(data);
- this.lastCareList.push({
- spaceId:item.spaceId,
- index:this.carefulList.length,
- area:curSpaceArea,
- })
- }
- })
- // let result = this.carefulList.reduce((prev, cur)=>{
- // return prev + parseFloat(cur.area);
- // },0);
- this.carefulList.forEach(it=>{
- if(!result){
- it.percent = 100;
- }else{
- it.percent = (parseFloat(it.area) / parseFloat(result)*100).toFixed(0);
- }
- // console.warn("***carefulList-change1***", it.area,it)
- })
- console.warn("***viewCareful-change***", this.carefulList)
- },
- updataData(spaceId,layoutObj){
- let lable = this.carefulList.find(it=>it.spaceId == spaceId);
- let name = spaceTypes[layoutObj.type - 1];
- lable.name = name;
- console.warn("***updataData***",lable)
- },
- sliderChanging(e,item) {
- // const wallValue = e.detail.value;
- // item.percent = 60;
- // console.warn("***sliderChanging***",item)
- // this.curWallMoveValue = Math.abs(this.curWallValue - wallValue);
- },
- sliderChange(e,index) {
- let value = e.detail?e.detail.value:e;
- let item = this.lastCareList[index];
- console.log("滑块值:", value,item);
- if(this.overChange){
- this.$message.warning("请慢一点!");
- return false;
- }
- this.selectIndex = index;
- this.$parent.$parent.selectSpaceId = item.spaceId;
- let _area = value - parseFloat(item.area);
- if(_area==0){
- return false;
- }
- let data = {
- spaceId:item.spaceId,
- area:Math.abs(_area),
- isZoomIn:_area>0?true:false,
- }
- let param = {
- type: 'CLK', //埋点类型
- clkId: 'clk_2cmina_23080405', //点击ID
- clkName: 'zoomin_clk', //点击前往的页面名称
- clkParams: {
- locusName: this.curHouseObj.houseType + "·" + this.curHouseObj.houseArea,
- locusValue:this.carefulList[index].name + "面积由" + parseFloat(item.area).toFixed(1)
- + "㎡调整为"+ value + "㎡",
- }
- };
- util.trackRequest(param);
- console.log("发送消息-空间变化: ",data, JSON.stringify(item));
- // this.selectItem = item;
- item.area = value;
- // var currPage = getCurrentPages()[getCurrentPages().length - 1] ? getCurrentPages()[getCurrentPages().length - 1].$vm : null;
- // this.sendMessageAction(JSON.stringify(parmas));
- this.$parent.$parent.callBackFun = this.callBack;//向父页面注册通知回调函数
- this.$emit("curSpaceChange",data);//通知父组件-空间面积变化
- },
- //去往详情页面
- goRoam(){
- let item = this.lastCareList[this.selectIndex];
- this.$parent.$parent.goRoam1(item.spaceId);
- let param = {
- type: 'CLK', //埋点类型
- clkId: 'clk_2cmina_24012901', //点击ID
- clkName: 'AI_clk', //点击前往的页面名称
- clkParams: {
- locusName: "AI精软装",
- carefulList:this.carefulList
- }
- };
- util.trackRequest(param);
- },
- callBack(type){
- console.warn("***callBack***",type)
- this.initData();
- this.$parent.$parent.callBackFun = null;//注销父页面的通知回调函数
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- @import "./viewCareful.scss";
- /* @import "@/common/css/common.css"; */
- </style>
|