You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

424 lines
13 KiB

4 years ago
// components/detail-senior/detail-senior.js
4 years ago
const $api = require('../../utils/api').API;
const measure=require('../../utils/measure')
4 years ago
Component({
4 years ago
options: {
addGlobalClass: true
},
4 years ago
/**
* 组件的属性列表
*/
properties: {
4 years ago
//测算数据
info:{
type:Object,
value:{}
},
//基础数据
dataInfo:{
type:Object,
value:{}
},
// 查询数据
orgiData:{
type:Object,
value:{}
}
4 years ago
},
/**
* 组件的初始数据
*/
data: {
4 years ago
tabInput:[false,true,false,false,false],
4 years ago
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,
4 years ago
selfBusinessSale:null,
selfCommerceSale:null,
selfHousingSale:null,
forecastFloorPrice:null,//预测楼面价
4 years ago
},
4 years ago
tabHDate: ['土地价格', '楼面价', '土地总价', '净利率', '溢价率'], // 标题内容
tabW: ['167', '114', '157', '134', '120'],
rowKey: ['Tprice', 'Lprice', 'AllPrice', 'Interest', 'PremiumRate'],
rowData: [{
Tprice: '起拍价',
4 years ago
Lprice: 0,
AllPrice: 0,
Interest: 0,
PremiumRate: 0
4 years ago
},
{
4 years ago
Tprice: '预测成交价',
Lprice: null,
AllPrice: 0,
Interest: 0,
PremiumRate: 0
4 years ago
},
],
4 years ago
isMeasure:false,
params:{selfHousingSale:'',
selfCommerceSale:'',
selfBusinessSale:'',
},
arr:[
{label:'否',value:'0'},
{label:'是',value:'1'},
],
measureDataId:'',
4 years ago
parking_sale_rate:'',
finance_rate:'',
4 years ago
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))
4 years ago
this.data.measureDataId=data.measureDataId;
this.data.isMeasure=true;
4 years ago
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({
4 years ago
parking_sale_rate:res.data[0].value,
4 years ago
'priceData.parkingSaleRate':res.data[0].value
})
})
//财务费率
$api.getDict('finance_rate').then(res=>{
this.setData({
4 years ago
finance_rate:res.data[0].value,
4 years ago
'priceData.financialRate':res.data[0].value
})
})
4 years ago
},
/**
* 组件的方法列表
*/
methods: {
4 years ago
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)
},
4 years ago
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)
4 years ago
},
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;
}
4 years ago
if(this.data.orgiData&&this.data.orgiData.statusCd=='1100'){
wx.showToast({
title: '该测算数据已被保存',
icon: 'none',
duration: 2000
})
return false;
}
4 years ago
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;
4 years ago
$api.measureData(data).then(res=>{
if(res.msg=='ok'){
wx.showToast({
title: '保存成功',
icon: 'none',
duration: 2000
})
}
})
console.log(this.data.measureData)
4 years ago
},
submit(){
if(!this.data.isMeasure){
wx.showToast({
title: '请先完成数据测算',
icon: 'none',
duration: 2000
})
return false;
}
4 years ago
if(this.data.orgiData&&this.data.orgiData.statusCd=='1100'){
wx.showToast({
title: '该测算数据已被保存',
icon: 'none',
duration: 2000
})
return false;
}
4 years ago
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
})
}
})
4 years ago
},
//重做
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:'',
},
})
4 years ago
}
4 years ago
}
})