|
|
|
|
@ -6,12 +6,12 @@ |
|
|
|
|
</view> |
|
|
|
|
<view class="form_item_box"> |
|
|
|
|
<view class="form_item_title">基本信息</view> |
|
|
|
|
<view class="form_item"> |
|
|
|
|
<!-- <view class="form_item"> |
|
|
|
|
<view class="form_item_label">管理单位名称:</view> |
|
|
|
|
<view class="form_item_input select"> |
|
|
|
|
{{form.affiliatedUnit}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> --> |
|
|
|
|
<view class="form_item"> |
|
|
|
|
<view class="form_item_label">统计日期:</view> |
|
|
|
|
<view class="form_item_input picker"> |
|
|
|
|
@ -47,7 +47,7 @@ |
|
|
|
|
<view class="form_item_input picker"> |
|
|
|
|
<picker :value="item.landNameIndex" :range="landList" @change="e => changeLandName(e, index)"> |
|
|
|
|
<text class="picker_select" |
|
|
|
|
:style="item.landNameIndex?'color:#333;':''">{{item.landNameIndex ? landList[item.landNameIndex] : '请选择'}}</text> |
|
|
|
|
:style="item.landName?'color:#333;':''">{{item.landName ? item.landName : '请选择'}}</text> |
|
|
|
|
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
|
|
|
|
</picker> |
|
|
|
|
</view> |
|
|
|
|
@ -55,55 +55,55 @@ |
|
|
|
|
<view class="form_item"> |
|
|
|
|
<view class="form_item_label">航次:</view> |
|
|
|
|
<view class="form_item_input form_input"> |
|
|
|
|
<uni-easyinput type="number" v-model="item.voyage" |
|
|
|
|
<uni-easyinput @blur="calcYoyMom(index)" type="number" v-model="item.voyage" |
|
|
|
|
placeholderStyle="color: #D4D4D4;font-size:28rpx;" placeholder="请输入" maxlength="20"> |
|
|
|
|
</uni-easyinput> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<!-- 同比环比 --> |
|
|
|
|
<view class="form_item_rate" :class="form.voyage == form.yesterdayVoyage ? 'danger' : '' "> |
|
|
|
|
<view class="form_item_rate" :class="item.voyage == item.yesterdayVoyage ? 'danger' : '' "> |
|
|
|
|
<view class="rate_item"> |
|
|
|
|
<view class="rate_item_label" |
|
|
|
|
:style="form.voyage == form.yesterdayVoyage ? 'color: #EB4747' : ''">航次环比(%) |
|
|
|
|
:style="item.voyage == item.yesterdayVoyage ? 'color: #EB4747' : ''">航次环比(%) |
|
|
|
|
</view> |
|
|
|
|
<view class="rate_item_input" |
|
|
|
|
:style="form.voyage == form.yesterdayVoyage ? 'color: #EB4747' : ''"> |
|
|
|
|
{{form.voyageRingRatio === 0 ? form.voyageRingRatio : form.voyageRingRatio ? form.voyageRingRatio.toFixed(2) : ''}} |
|
|
|
|
:style="item.voyage == item.yesterdayVoyage ? 'color: #EB4747' : ''"> |
|
|
|
|
{{item.voyageRingRatio === 0 ? item.voyageRingRatio : item.voyageRingRatio ? item.voyageRingRatio.toFixed(2) : ''}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="line"></view> |
|
|
|
|
<view class="rate_item"> |
|
|
|
|
<view class="rate_item_label">航次同比(%)</view> |
|
|
|
|
<view class="rate_item_input"> |
|
|
|
|
{{form.voyageYearOnYear === 0 ? form.voyageYearOnYear : form.voyageYearOnYear ? form.voyageYearOnYear.toFixed(2) : ''}} |
|
|
|
|
{{item.voyageYearOnYear === 0 ? item.voyageYearOnYear : item.voyageYearOnYear ? item.voyageYearOnYear.toFixed(2) : ''}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="form_item"> |
|
|
|
|
<view class="form_item_label">人数:</view> |
|
|
|
|
<view class="form_item_input form_input"> |
|
|
|
|
<uni-easyinput type="number" v-model="item.numberOfPeople" |
|
|
|
|
<uni-easyinput @blur="calcYoyMom(index)" type="number" v-model="item.numberOfPeople" |
|
|
|
|
placeholderStyle="color: #D4D4D4;font-size:28rpx;" placeholder="请输入" maxlength="20"> |
|
|
|
|
</uni-easyinput> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<!-- 同比环比 --> |
|
|
|
|
<view class="form_item_rate" |
|
|
|
|
:class="form.numberOfPeople == form.yesterdayNumberOfPeople ? 'danger' : '' "> |
|
|
|
|
:class="item.numberOfPeople == item.yesterdayNumberOfPeople ? 'danger' : '' "> |
|
|
|
|
<view class="rate_item"> |
|
|
|
|
<view class="rate_item_label" |
|
|
|
|
:style="form.numberOfPeople == form.yesterdayNumberOfPeople ? 'color: #EB4747' : ''">人数环比(%) |
|
|
|
|
:style="item.numberOfPeople == item.yesterdayNumberOfPeople ? 'color: #EB4747' : ''">人数环比(%) |
|
|
|
|
</view> |
|
|
|
|
<view class="rate_item_input" |
|
|
|
|
:style="form.numberOfPeople == form.yesterdayNumberOfPeople ? 'color: #EB4747' : ''"> |
|
|
|
|
{{form.peopleRingRatio === 0 ? form.peopleRingRatio : form.peopleRingRatio ? form.peopleRingRatio.toFixed(2) : ''}} |
|
|
|
|
:style="item.numberOfPeople == item.yesterdayNumberOfPeople ? 'color: #EB4747' : ''"> |
|
|
|
|
{{item.peopleRingRatio === 0 ? item.peopleRingRatio : item.peopleRingRatio ? item.peopleRingRatio.toFixed(2) : ''}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="line"></view> |
|
|
|
|
<view class="rate_item"> |
|
|
|
|
<view class="rate_item_label">人数同比(%)</view> |
|
|
|
|
<view class="rate_item_input"> |
|
|
|
|
{{form.peopleYearOnYear === 0 ? form.peopleYearOnYear : form.peopleYearOnYear ? form.peopleYearOnYear.toFixed(2) : ''}} |
|
|
|
|
{{item.peopleYearOnYear === 0 ? item.peopleYearOnYear : item.peopleYearOnYear ? item.peopleYearOnYear.toFixed(2) : ''}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
@ -152,7 +152,8 @@ |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
form: { |
|
|
|
|
"bizWaterwayIslandDataSaveOrUpdateDTOList": [{ |
|
|
|
|
"bizWaterwayIslandDataSaveOrUpdateDTOList": [{ |
|
|
|
|
"landNameIndex":"", |
|
|
|
|
"landName": "", |
|
|
|
|
"lastYearNumberOfPeople": 0, |
|
|
|
|
"lastYearVoyage": 0, |
|
|
|
|
@ -179,14 +180,14 @@ |
|
|
|
|
if (options.type == 'add') { |
|
|
|
|
this.pageType = 'add'; |
|
|
|
|
let now = new Date(); |
|
|
|
|
this.form.statDate = getDateStr(now, -1); //默认前一天 |
|
|
|
|
this.form.reportDate = getDateStr(now, -1); //默认前一天 |
|
|
|
|
this.queryTime(); //统计时段 |
|
|
|
|
} else if (options.item) { |
|
|
|
|
this.form = JSON.parse(options.item); |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList = this.form.bizWaterwayIslandDataVOList; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.map(item => { |
|
|
|
|
let idx = this.landList.findIndex(item2 => item2 == item.landName); |
|
|
|
|
item.landIndex = idx > -1 ? idx : ''; |
|
|
|
|
item.landNameIndex = idx > -1 ? idx : ''; |
|
|
|
|
}) |
|
|
|
|
this.queryTime(); |
|
|
|
|
} else if (options.id) { |
|
|
|
|
@ -197,15 +198,46 @@ |
|
|
|
|
formatdate(date) { |
|
|
|
|
return date.length < 12 ? date + ' 00:00:00' : date; |
|
|
|
|
}, |
|
|
|
|
//陆岛切换 |
|
|
|
|
changeLandName(e, index) { |
|
|
|
|
//判断是否重复选择 |
|
|
|
|
let idx = this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.findIndex(item => item.landNameIndex == e.detail |
|
|
|
|
.value); |
|
|
|
|
if (idx > -1 && this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landNameIndex == '') { |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '水运(陆岛)不能重复选择', |
|
|
|
|
icon: 'none' |
|
|
|
|
}); |
|
|
|
|
}else{ |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landNameIndex = e.detail.value; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landName = this.landList[e.detail.value]; |
|
|
|
|
this.calcYoyMom(index); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
//环比同比计算 |
|
|
|
|
calcYoyMom(index) { |
|
|
|
|
if (this.form.reportDate == '' || this.form.statPeriod == '' || this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landName == '') { |
|
|
|
|
if (this.form.reportDate == '' || this.form.statPeriod == '' || this.form |
|
|
|
|
.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landName == '') { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.$request(getApp().globalData.baseUrl + '/api/biz/waterwayIslandData/getYoyMom?statDate=' + this.form |
|
|
|
|
.reportDate + '&statPeriod=' + this.form.statPeriod + '&landName='+this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landName+'&_t=' + Date.parse(new Date()), {}, 'GET') |
|
|
|
|
.then(res => { |
|
|
|
|
|
|
|
|
|
.reportDate + '&statPeriod=' + this.form.statPeriod + '&landName=' + this.form |
|
|
|
|
.bizWaterwayIslandDataSaveOrUpdateDTOList[index].landName + '&_t=' + Date.parse(new Date()), {}, |
|
|
|
|
'GET') |
|
|
|
|
.then(res => { |
|
|
|
|
let yesterdayData = res.data.yesterdayData; |
|
|
|
|
let lastYearData = res.data.lastYearData; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].yesterdayVoyage = checkNotEmpty(yesterdayData.voyage) ? yesterdayData.voyage : 0; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].lastYearVoyage = checkNotEmpty(lastYearData.voyage) ? lastYearData.voyage : 0; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].yesterdayNumberOfPeople = checkNotEmpty(yesterdayData.numberOfPeople) ? yesterdayData.numberOfPeople : 0; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].lastYearNumberOfPeople = checkNotEmpty(lastYearData.numberOfPeople) ? lastYearData.numberOfPeople : 0; |
|
|
|
|
//环比-同比 |
|
|
|
|
let obj = this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index]; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].voyageRingRatio = !checkNotEmpty(yesterdayData.voyage) || yesterdayData.voyage === 0 ? 100 : obj.voyage ? (parseInt(obj.voyage) - yesterdayData.voyage) / yesterdayData.voyage * 100 : ''; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].voyageYearOnYear = !checkNotEmpty(lastYearData.voyage) || lastYearData.voyage === 0 ? 100 : obj.voyage ? (parseInt(obj.voyage) - lastYearData.voyage) / lastYearData.voyage * 100 : ''; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].peopleRingRatio = !checkNotEmpty(yesterdayData.numberOfPeople) || yesterdayData.numberOfPeople === 0 ? 100 : obj.numberOfPeople ? (parseInt(obj.numberOfPeople) - yesterdayData.numberOfPeople) / yesterdayData.numberOfPeople * 100 : ''; |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index].peopleYearOnYear = !checkNotEmpty(lastYearData.numberOfPeople) || lastYearData.numberOfPeople === 0 ? 100 : obj.numberOfPeople ? (parseInt(obj.numberOfPeople) - lastYearData.numberOfPeople) / lastYearData.numberOfPeople * 100 : ''; |
|
|
|
|
console.log('环比同比', this.form.bizWaterwayIslandDataSaveOrUpdateDTOList[index]) |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//id查询详情 |
|
|
|
|
@ -221,6 +253,10 @@ |
|
|
|
|
this.index = e.detail.value; |
|
|
|
|
this.form.statPeriod = this.array[e.detail.value].dictValue; |
|
|
|
|
console.log('change 时段', this.form) |
|
|
|
|
//重新计算同比环比 |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.map((item, index) => { |
|
|
|
|
this.calcYoyMom(index); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//取消 |
|
|
|
|
doCancel() { |
|
|
|
|
@ -228,7 +264,11 @@ |
|
|
|
|
}, |
|
|
|
|
//选择统计日期 |
|
|
|
|
bindDateChange(e) { |
|
|
|
|
this.form.statDate = e.detail.value; |
|
|
|
|
this.form.reportDate = e.detail.value; |
|
|
|
|
//重新计算同比环比 |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.map((item, index) => { |
|
|
|
|
this.calcYoyMom(index); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//时段 |
|
|
|
|
queryTime() { |
|
|
|
|
@ -259,7 +299,8 @@ |
|
|
|
|
}, |
|
|
|
|
//增行 |
|
|
|
|
addRow() { |
|
|
|
|
this.form.listContion.push({ |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.push({ |
|
|
|
|
"landNameIndex": "", |
|
|
|
|
"landName": "", |
|
|
|
|
"lastYearNumberOfPeople": 0, |
|
|
|
|
"lastYearVoyage": 0, |
|
|
|
|
@ -275,7 +316,7 @@ |
|
|
|
|
}, |
|
|
|
|
//删行 |
|
|
|
|
delRow(index) { |
|
|
|
|
this.form.listContion.splice(index, 1); |
|
|
|
|
this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.splice(index, 1); |
|
|
|
|
}, |
|
|
|
|
//确认提交 |
|
|
|
|
doSubmit() { |
|
|
|
|
@ -287,9 +328,9 @@ |
|
|
|
|
}) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
let checkCongestion = true; |
|
|
|
|
let checkAccident = true; |
|
|
|
|
if (this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.length > 0) { |
|
|
|
|
checkCongestion = this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.every(item => { |
|
|
|
|
checkAccident = this.form.bizWaterwayIslandDataSaveOrUpdateDTOList.every(item => { |
|
|
|
|
return checkNotEmpty(item.landName) && checkNotEmpty(item.numberOfPeople) && checkNotEmpty( |
|
|
|
|
item.voyage) |
|
|
|
|
}) |
|
|
|
|
@ -327,9 +368,11 @@ |
|
|
|
|
icon: 'none', |
|
|
|
|
success: () => { |
|
|
|
|
if (this.form.id == undefined) { |
|
|
|
|
uni.redirectTo({ |
|
|
|
|
url: '/pages/water/transportation/list' |
|
|
|
|
}) |
|
|
|
|
setTimeout(() => { |
|
|
|
|
uni.redirectTo({ |
|
|
|
|
url: '/pages/water/waterWay/list' |
|
|
|
|
}) |
|
|
|
|
}, 300) |
|
|
|
|
} else { |
|
|
|
|
uni.navigateBack(); |
|
|
|
|
} |
|
|
|
|
|