// components/detail-senior/detail-senior.js const $api = require('../../utils/api').API; const measure=require('../../utils/measure') Component({ options: { addGlobalClass: true }, /** * 组件的属性列表 */ properties: { //测算数据 info:{ type:Object, value:{} }, //基础数据 dataInfo:{ type:Object, value:{} }, // 查询数据 orgiData:{ type:Object, value:{} } }, /** * 组件的初始数据 */ data: { tabInput:[false,true,false,false,false], priceData:{ housingPrice:null, commercePrice:null, businessPrice:null, parkingPrice:null, parkingAllocation:null, singleIndicator:null, parkingSaleRate:null, singlePrimeCost:null, commerceRate:null, businessRate:null, manageFeeRate:null, salesRate:null, financialRate:null, financingRate:null, loansRate:null, financingInterest:null, loansInterest:null, financingPeriod:null, loansPeriod:null, freeHousingRate:null, freeCommerceRate:null, freeBusinessRate:null, selfHousingRate:null, selfHousingPrice:null, selfCommerceRate:null, selfCommercePrice:null, selfBusinessRate:null, selfBusinessPrice:null, selfBusinessSale:null, selfCommerceSale:null, selfHousingSale:null, forecastFloorPrice:null,//预测楼面价 }, tabHDate: ['土地价格', '楼面价', '土地总价', '净利率', '溢价率'], // 标题内容 tabW: ['167', '114', '157', '134', '120'], rowKey: ['Tprice', 'Lprice', 'AllPrice', 'Interest', 'PremiumRate'], rowData: [{ Tprice: '起拍价', Lprice: 0, AllPrice: 0, Interest: 0, PremiumRate: 0 }, { Tprice: '预测成交价', Lprice: null, AllPrice: 0, Interest: 0, PremiumRate: 0 }, ], isMeasure:false, params:{selfHousingSale:'', selfCommerceSale:'', selfBusinessSale:'', }, arr:[ {label:'否',value:'0'}, {label:'是',value:'1'}, ], measureDataId:'', parking_sale_rate:'', finance_rate:'', measureData:{ "landListedId":null, "businessPrice": 0,//商务定价 "businessRate": 0,//商务配比 "commercePrice": 0,//商业定价 "commerceRate": 0,//商业配比 "errorAbsoluteValue": 0,//误差绝对值 "financialRate": 0,//财务费率 "financingInterest": 0,//前融利率 "financingPeriod": 0,//前融周期 "financingRate": 0,//前融比例 "floorPrice": 0,//起拍楼面价 "forecastFloorPrice": 0,//预测楼面价 "forecastLandTotalPrice": 0,//预测土地总价 "forecastNetProfitRatio": 0,//预测净利率 "forecastPremiumRate": 0,// 预测溢价率 "freeBusinessRate": 0,//无偿移交商务计容占比 "freeCommerceRate": 0,//无偿移交商业计容占比 "freeHousingRate": 0,//无偿移交住宅计容占比 "housingPrice": 0,//住宅定价 "landTotalPrice": 0,// 土地总价 "loansInterest": 0,// 开发贷利率 "loansPeriod": 0,//开发贷周期 "loansRate": 0,//开发贷比例 "manageFeeRate": 0,//管理费率 // "measureDataId": 0,// 测算数据id "measureType": 0,// 测算类型(0:基础,1:高级) "netProfitRatio": 0,//净利率 "parkingAllocation": 0,//车位配比(个/100㎡) "parkingPrice": 0,//车位定价 "parkingSaleRate": 0,// 车位可售 "premiumRate": 0,//溢价率 "salesRate": 0,//销售费率 "selfBusinessSale": 0,// "selfBusinessPrice": 0,//商务可售价格 "selfBusinessRate": 0,// 自持商务计容占比 "selfCommerceSale": 0,// "selfCommercePrice": 0,//商业可售价格 "selfCommerceRate": 0,//自持商业计容占比 "selfHousingSale": 0,// "selfHousingPrice": 0,//住宅可售价格 "selfHousingRate": 0,//自持住宅计容占比 "singleIndicator": 0,// 单车指标 "singlePrimeCost": 0,//单方成本 "transactionFloorPrice": 0,// 成交楼面价 "statusCd":1000 } }, ready(){ if(this.data.dataInfo){ this.setData({ 'priceData.commerceRate':(parseFloat(this.data.dataInfo.bizSpace)/parseFloat(this.data.dataInfo.totalConsArea)).toFixed(3), 'priceData.businessRate':(parseFloat(this.data.dataInfo.bizSpace)/parseFloat(this.data.dataInfo.totalConsArea)).toFixed(3), 'rowData[0].Lprice':this.data.dataInfo.floorPrice?parseFloat(this.data.dataInfo.floorPrice).toFixed(3):0,//transferPrice 'rowData[0].AllPrice':parseFloat(this.data.dataInfo.transferPrice).toFixed(3), 'rowData[1].AllPrice':parseFloat(this.data.dataInfo.transferPrice).toFixed(3), }) if(this.data.orgiData&&this.data.orgiData.measureType===1){ let data=JSON.parse(JSON.stringify(this.data.orgiData)) this.data.measureDataId=data.measureDataId; this.data.isMeasure=true; this.setData({ params:{ selfHousingSale:data.selfHousingSale===1?'是':'否', selfCommerceSale:data.selfCommerceSale===1?'是':'否', selfBusinessSale:data.selfBusinessSale===1?'是':'否', } }) for(let key in data){ for(let key2 in this.data.measureData){ if(key==key2){ if(!data[key]){ this.data.measureData[key2]=0 }else{ this.data.measureData[key2]=data[key] } } } for(let key3 in this.data.priceData){ if(key==key3){ if(!data[key]){ this.setData({ [`priceData.${key3}`]:0 }) // this.data.priceData[key3]=0 }else{ this.setData({ [`priceData.${key3}`]:data[key] }) } } } } console.log(this.data.priceData) this.setData({ 'rowData[0].Interest':this.data.measureData.netProfitRatio, 'rowData[1].Interest':this.data.measureData.forecastNetProfitRatio, 'rowData[1].Lprice':this.data.measureData.forecastFloorPrice, 'rowData[1].PremiumRate':this.data.measureData.forecastPremiumRate, }) } } //车位配比 $api.getDict('parking_sale_rate').then(res=>{ this.setData({ parking_sale_rate:res.data[0].value, 'priceData.parkingSaleRate':res.data[0].value }) }) //财务费率 $api.getDict('finance_rate').then(res=>{ this.setData({ finance_rate:res.data[0].value, 'priceData.financialRate':res.data[0].value }) }) }, /** * 组件的方法列表 */ methods: { bindChange(e){ let type=e.currentTarget.dataset.type; // console.log(type) for(let key in this.data.params){ if(key==type){ this.setData({ [`params.${key}`]:this.data.arr[e.detail.value].label }) } } for(let key in this.data.priceData){ if(key==type){ this.setData({ [`priceData.${key}`]:this.data.arr[e.detail.value].value }) } } console.log(this.data.priceData) }, vmodel(e){ for(let key in this.data.priceData){ if(key==e.currentTarget.dataset.type){ this.data.priceData[key]=e.detail.value } } console.log(this.data.priceData) }, calculate(){ let table=this.selectComponent('#table'); if(table.data.myData){ this.setData({ 'priceData.forecastFloorPrice':table.data.myData }) }else if(this.data.measureData.forecastFloorPrice){ table.data.myData=this.data.measureData.forecastFloorPrice this.setData({ 'priceData.forecastFloorPrice':this.data.measureData.forecastFloorPrice }) } console.log(this.data.priceData) for(let key in this.data.priceData){ if(!this.data.priceData[key]&&this.data.priceData[key]!=0){ console.log(key) wx.showToast({ title: '请确定输入是否完整', icon: 'none', duration: 2000 }) return false; } } for(let key in this.data.measureData){ for(let key2 in this.data.priceData){ if(typeof this.data.priceData[key2]=='string'){ this.data.priceData[key2]=parseFloat(this.data.priceData[key2]) } if(key2==key){ this.data.measureData[key]=this.data.priceData[key2] } } } this.setData({ 'rowData[0].Interest':(measure(this.data.measureData,parseFloat(this.data.dataInfo.totalConsArea),parseFloat(this.data.dataInfo.startingFloorPrice),parseFloat(this.data.dataInfo.allocationCapacity),parseFloat(this.data.dataInfo.allocationNotCapacity))).toFixed(3), 'rowData[1].Interest':(measure(this.data.measureData,parseFloat(this.data.dataInfo.totalConsArea),parseFloat(table.data.myData),parseFloat(this.data.dataInfo.allocationCapacity),parseFloat(this.data.dataInfo.allocationNotCapacity))).toFixed(3), 'rowData[1].Lprice':table.data.myData, 'rowData[1].PremiumRate':((parseFloat(table.data.myData)-parseFloat(this.data.dataInfo.startingFloorPrice))/parseFloat(this.data.dataInfo.startingFloorPrice)).toFixed(3), }) this.data.measureData.netProfitRatio=parseFloat(this.data.rowData[0].Interest); this.data.measureData.forecastNetProfitRatio=parseFloat(this.data.rowData[1].Interest); this.data.measureData.premiumRate=parseFloat(this.data.rowData[0].PremiumRate); this.data.measureData.forecastPremiumRate=parseFloat(this.data.rowData[1].PremiumRate); this.data.isMeasure=true; // measure() // console.log(this.data.dataInfo) }, save(){ if(!this.data.isMeasure){ wx.showToast({ title: '请先完成数据测算', icon: 'none', duration: 2000 }) return false; } if(this.data.orgiData&&this.data.orgiData.statusCd=='1100'){ wx.showToast({ title: '该测算数据已被保存', icon: 'none', duration: 2000 }) return false; } let data=JSON.parse(JSON.stringify(this.data.measureData)) if(this.data.measureDataId){ data.measureDataId=this.data.measureDataId } data.landListedId=this.data.dataInfo.landListedId; data.statusCd=1100; data.measureType=1; $api.measureData(data).then(res=>{ if(res.msg=='ok'){ wx.showToast({ title: '保存成功', icon: 'none', duration: 2000 }) } }) console.log(this.data.measureData) }, submit(){ if(!this.data.isMeasure){ wx.showToast({ title: '请先完成数据测算', icon: 'none', duration: 2000 }) return false; } if(this.data.orgiData&&this.data.orgiData.statusCd=='1100'){ wx.showToast({ title: '该测算数据已被保存', icon: 'none', duration: 2000 }) return false; } let data=JSON.parse(JSON.stringify(this.data.measureData)) if(this.data.measureDataId){ data.measureDataId=this.data.measureDataId } data.landListedId=this.data.dataInfo.landListedId; data.statusCd=1000; data.measureType=1; $api.measureData(data).then(res=>{ console.log(res) if(res.msg=='ok'){ wx.showToast({ title: '提交成功', icon: 'none', duration: 2000 }) } }) }, //重做 clearData(){ this.setData({ priceData:{ housingPrice:null, commercePrice:null, businessPrice:null, parkingPrice:null, parkingAllocation:null, singleIndicator:null, parkingSaleRate:this.data.parking_sale_rate, singlePrimeCost:null, commerceRate:(parseFloat(this.data.dataInfo.bizSpace)/parseFloat(this.data.dataInfo.totalConsArea)).toFixed(3), businessRate:(parseFloat(this.data.dataInfo.bizSpace)/parseFloat(this.data.dataInfo.totalConsArea)).toFixed(3), manageFeeRate:null, salesRate:null, financialRate:this.data.finance_rate, financingRate:null, loansRate:null, financingInterest:null, loansInterest:null, financingPeriod:null, loansPeriod:null, freeHousingRate:null, freeCommerceRate:null, freeBusinessRate:null, selfHousingRate:null, selfHousingPrice:null, selfCommerceRate:null, selfCommercePrice:null, selfBusinessRate:null, selfBusinessPrice:null, selfBusinessSale:null, selfCommerceSale:null, selfHousingSale:null, forecastFloorPrice:null,//预测楼面价 }, rowData: [{ Tprice: '起拍价', Lprice: this.data.dataInfo.floorPrice?parseFloat(this.data.dataInfo.floorPrice).toFixed(3):0,//transferPrice, AllPrice: parseFloat(this.data.dataInfo.transferPrice).toFixed(3), Interest: 0, PremiumRate: 0 }, { Tprice: '预测成交价', Lprice: null, AllPrice: parseFloat(this.data.dataInfo.transferPrice).toFixed(3), Interest: 0, PremiumRate: 0 }, ], isMeasure:false, params:{selfHousingSale:'', selfCommerceSale:'', selfBusinessSale:'', }, }) } } })