parent
c7bded84b2
commit
c1d4de7240
9 changed files with 1954 additions and 60 deletions
@ -0,0 +1,437 @@ |
||||
<template> |
||||
<!-- 查看详情页面 --> |
||||
<view class="detail_con"> |
||||
<view class="detail_box"> |
||||
<view class="top_box"> |
||||
<view class="top_item"> |
||||
<view class="unit_left"> |
||||
<view class="unit">车站名称</view> |
||||
<view class="unit_name">{{ roadData.railwayName }}</view> |
||||
</view> |
||||
<view class="unit_time">{{ roadData.statDate || '' }} {{ roadData.statPeriodValue || '' }}</view> |
||||
</view> |
||||
|
||||
<!-- 入青 --> |
||||
<view class="con_item"> |
||||
<view class="spread_box"> |
||||
<view class="item_con first"> |
||||
<view class="left">进青岛车次信息</view> |
||||
</view> |
||||
<view class="item_con"> |
||||
<view class="left">终到车次(辆):</view> |
||||
<view class="right">{{ roadData.inboundRailwayDo === 0 ? roadData.inboundRailwayDo : roadData.inboundRailwayDo || '' }}</view> |
||||
</view> |
||||
<view class="item_con"> |
||||
<view class="left">过路车次:</view> |
||||
<view class="right"> |
||||
{{ roadData.inboundPassengersDo === 0 ? roadData.inboundPassengersDo : roadData.inboundPassengersDo || '' }} |
||||
</view> |
||||
</view> |
||||
<view class="item_content"> |
||||
<view class="content top"> |
||||
<view class="left">终到车次环比(%)</view> |
||||
<view class="right" :class="roadData.inRailwayYomDo > 0 ? 'green' : roadData.inRailwayYomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.inRailwayYomDo === 0 ? roadData.inRailwayYomDo : roadData.inRailwayYomDo ? roadData.inRailwayYomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
<view class="content"> |
||||
<view class="left">终到车次同比(%)</view> |
||||
<view class="right" :class="roadData.inRailwayMomDo > 0 ? 'green' : roadData.inRailwayMomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.inRailwayMomDo === 0 ? roadData.inRailwayMomDo : roadData.inRailwayMomDo ? roadData.inRailwayMomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="item_con"> |
||||
<view class="left">人数(人):</view> |
||||
<view class="right">{{ roadData.inPepole === 0 ? roadData.inPepole : roadData.inPepole || '' }}</view> |
||||
</view> |
||||
<view class="item_content"> |
||||
<view class="content top"> |
||||
<view class="left">人数环比(%)</view> |
||||
<view class="right" :class="roadData.inPepoleYoyDo > 0 ? 'green' : roadData.inPepoleYoyDo < 0 ? 'red' : ''"> |
||||
{{ roadData.inPepoleYoyDo === 0 ? roadData.inPepoleYoyDo : roadData.inPepoleYoyDo ? roadData.inPepoleYoyDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
<view class="content"> |
||||
<view class="left">人数同比(%)</view> |
||||
<view class="right" :class="roadData.inPepoleMomDo > 0 ? 'green' : roadData.inPepoleMomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.inPepoleMomDo === 0 ? roadData.inPepoleMomDo : roadData.inPepoleMomDo ? roadData.inPepoleMomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="item_con"> |
||||
<view class="left">备注:</view> |
||||
<view class="right">{{ item.inMark || '' }}</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<!-- 出青 --> |
||||
<view class="con_item"> |
||||
<view class="spread_box"> |
||||
<view class="item_con first"> |
||||
<view class="left">出青岛车次信息</view> |
||||
</view> |
||||
<view class="item_con"> |
||||
<view class="left">终到车次(辆):</view> |
||||
<view class="right">{{ roadData.outboundRailwayDo === 0 ? roadData.outboundRailwayDo : roadData.outboundRailwayDo || '' }}</view> |
||||
</view> |
||||
<view class="item_con"> |
||||
<view class="left">过路车次:</view> |
||||
<view class="right"> |
||||
{{ roadData.outboundPassengersDo === 0 ? roadData.outboundPassengersDo : roadData.outboundPassengersDo || '' }} |
||||
</view> |
||||
</view> |
||||
<view class="item_content"> |
||||
<view class="content top"> |
||||
<view class="left">终到车次环比(%)</view> |
||||
<view class="right" :class="roadData.outRailwayYomDo > 0 ? 'green' : roadData.outRailwayYomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.outRailwayYomDo === 0 ? roadData.outRailwayYomDo : roadData.outRailwayYomDo ? roadData.outRailwayYomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
<view class="content"> |
||||
<view class="left">终到车次同比(%)</view> |
||||
<view class="right" :class="roadData.outRailwayMomDo > 0 ? 'green' : roadData.outRailwayMomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.outRailwayMomDo === 0 ? roadData.outRailwayMomDo : roadData.outRailwayMomDo ? roadData.outRailwayMomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="item_con"> |
||||
<view class="left">人数(人):</view> |
||||
<view class="right">{{ roadData.outPepole === 0 ? roadData.outPepole : roadData.outPepole || '' }}</view> |
||||
</view> |
||||
<view class="item_content"> |
||||
<view class="content top"> |
||||
<view class="left">人数环比(%)</view> |
||||
<view class="right" :class="roadData.outPepoleYoyDo > 0 ? 'green' : roadData.outPepoleYoyDo < 0 ? 'red' : ''"> |
||||
{{ roadData.outPepoleYoyDo === 0 ? roadData.outPepoleYoyDo : roadData.outPepoleYoyDo ? roadData.outPepoleYoyDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
<view class="content"> |
||||
<view class="left">人数同比(%)</view> |
||||
<view class="right" :class="roadData.outPepoleMomDo > 0 ? 'green' : roadData.outPepoleMomDo < 0 ? 'red' : ''"> |
||||
{{ roadData.outPepoleMomDo === 0 ? roadData.outPepoleMomDo : roadData.outPepoleMomDo ? roadData.outPepoleMomDo.toFixed(2) : '' }} |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="item_con"> |
||||
<view class="left">备注:</view> |
||||
<view class="right">{{ item.outMark || '' }}</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
</view> |
||||
<view class="bottom_box"> |
||||
<p class="edit_btn" @click="goEditPage">编辑</p> |
||||
</view> |
||||
</view> |
||||
|
||||
</view> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
data() { |
||||
return { |
||||
roadData: {}, |
||||
tabType: 1, |
||||
} |
||||
}, |
||||
onLoad(options) { |
||||
let item = JSON.parse(options.item) |
||||
console.log(item) |
||||
let item1 = JSON.parse(JSON.stringify(item)); |
||||
this.roadData = item1; |
||||
// this.getDetail() |
||||
}, |
||||
methods: { |
||||
//跳转到编辑 |
||||
goEditPage() { |
||||
uni.navigateTo({ |
||||
url: '/pages/railway/railwayRunData/form?item=' + JSON.stringify(this.roadData) |
||||
}) |
||||
}, |
||||
getDetail() { |
||||
this.$request(getApp().globalData.baseUrl + '/api/biz/highSpeedOperationController/selectById/' + |
||||
'8A47103EE00000018772BC97AE50FFB7', {}, "GET").then(res => { |
||||
console.log(res) |
||||
}) |
||||
}, |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.detail_con { |
||||
width: 100%; |
||||
height: 100%; |
||||
overflow-y: auto; |
||||
|
||||
.detail_box { |
||||
background: #fff; |
||||
border-radius: 30rpx; |
||||
margin: 30rpx 30rpx 0; |
||||
|
||||
.top_box { |
||||
width: 630rpx; |
||||
padding: 38rpx 30rpx 0rpx; |
||||
display: flex; |
||||
flex-direction: column; |
||||
|
||||
.top_item { |
||||
width: 100%; |
||||
// margin-top: 38rpx; |
||||
// margin-bottom: 60rpx; |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
|
||||
.unit_left { |
||||
width: 100%; |
||||
display: flex; |
||||
|
||||
.unit { |
||||
width: 102rpx; |
||||
height: 37rpx; |
||||
background: #FFF7E4; |
||||
border-radius: 10rpx; |
||||
border: 1rpx solid #EF9A4F; |
||||
font-size: 20rpx; |
||||
color: #E37616; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
} |
||||
|
||||
.unit_name { |
||||
font-size: 30rpx; |
||||
color: #333; |
||||
font-weight: bold; |
||||
line-height: 48rpx; |
||||
margin-left: 20rpx; |
||||
} |
||||
} |
||||
|
||||
.unit_time { |
||||
margin-top: 30rpx; |
||||
width: 100%; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
font-size: 24rpx; |
||||
color: #999999; |
||||
} |
||||
} |
||||
|
||||
.all_item { |
||||
width: 100%; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
margin-top: 32rpx; |
||||
|
||||
&.first { |
||||
margin-top: 0rpx; |
||||
} |
||||
|
||||
&.last { |
||||
margin-bottom: 30rpx; |
||||
} |
||||
|
||||
.all_left { |
||||
color: #666666; |
||||
font-size: 26rpx; |
||||
} |
||||
|
||||
.all_right { |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
} |
||||
|
||||
.con_item { |
||||
width: 570rpx; |
||||
background: #F8F8F8; |
||||
border-radius: 30rpx; |
||||
margin: 0 auto; |
||||
margin-top: 30rpx; |
||||
padding: 30rpx 30rpx; |
||||
|
||||
.spread_box { |
||||
width: 100%; |
||||
|
||||
.item_con { |
||||
width: 100%; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
margin-top: 32rpx; |
||||
|
||||
&.first { |
||||
color: #333; |
||||
font-size: 30rpx; |
||||
font-weight: bold; |
||||
margin-top: 0rpx; |
||||
} |
||||
|
||||
.left { |
||||
color: #666666; |
||||
font-size: 26rpx; |
||||
} |
||||
|
||||
.right { |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
} |
||||
|
||||
.item_content { |
||||
width: 570rpx; |
||||
margin: 0 auto; |
||||
background-color: #fff; |
||||
border-radius: 30rpx; |
||||
margin-top: 30rpx; |
||||
|
||||
|
||||
.content { |
||||
width: 516rpx; |
||||
padding: 34rpx 32rpx 30rpx 22rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
|
||||
&.top { |
||||
border-bottom: 1rpx solid #F2F2F2; |
||||
} |
||||
|
||||
|
||||
.left { |
||||
font-size: 24rpx; |
||||
color: #666; |
||||
} |
||||
|
||||
.right { |
||||
color: #333; |
||||
font-size: 28rpx; |
||||
|
||||
&.green { |
||||
color: #1ECE5F; |
||||
} |
||||
|
||||
&.red { |
||||
color: #EB4747; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.expand_box { |
||||
width: 100%; |
||||
display: flex; |
||||
margin-top: 30rpx; |
||||
align-items: center; |
||||
justify-content: center; |
||||
|
||||
.img { |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
|
||||
.tit { |
||||
color: #2D8CF0; |
||||
font-size: 24rpx; |
||||
margin-left: 12rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.no_spread { |
||||
width: 100%; |
||||
background: #F8F8F8; |
||||
border-radius: 30rpx; |
||||
|
||||
.item_con { |
||||
width: 100%; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
margin-top: 32rpx; |
||||
|
||||
&.first { |
||||
margin-top: 0rpx; |
||||
} |
||||
|
||||
.left { |
||||
color: #666666; |
||||
font-size: 26rpx; |
||||
} |
||||
|
||||
.right { |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.bottom_box { |
||||
width: 100%; |
||||
padding: 40rpx 0; |
||||
display: flex; |
||||
justify-content: flex-end; |
||||
|
||||
.edit_btn { |
||||
width: 180rpx; |
||||
height: 70rpx; |
||||
background: #2D8CF0; |
||||
border-radius: 100rpx; |
||||
color: #fff; |
||||
font-size: 28rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
margin-right: 30rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.tab_box { |
||||
display: flex; |
||||
justify-content: space-around; |
||||
|
||||
.tab_nav { |
||||
color: #999999; |
||||
line-height: 42rpx; |
||||
font-size: 30rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
padding-bottom: 25rpx; |
||||
|
||||
&.active { |
||||
position: relative; |
||||
color: #2D8CF0; |
||||
font-weight: bold; |
||||
|
||||
&::after { |
||||
position: absolute; |
||||
content: ''; |
||||
left: 50%; |
||||
bottom: 0; |
||||
width: 74rpx; |
||||
height: 6rpx; |
||||
background: #2D8CF0; |
||||
border-radius: 100rpx; |
||||
margin-left: -37rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
</style> |
||||
@ -0,0 +1,830 @@ |
||||
<template> |
||||
<view class="form_warp"> |
||||
<view class="form_intro"> |
||||
<view>如有填报问题,请咨询公共服务中心</view> |
||||
<view>中心值班电话:<text class="tel">66007587</text></view> |
||||
</view> |
||||
<view class="form_item_box"> |
||||
<view class="form_item_title">基本信息</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">车站名称:</view> |
||||
<picker mode="date" :value="form.railwayName" @change="bindDateChange"> |
||||
<text class="picker_select" |
||||
:style="form.railwayName?'color:#333;':''">{{form.railwayName?form.railwayName:'请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">统计日期:</view> |
||||
<view class="form_item_input picker"> |
||||
<picker mode="date" :value="form.statDate" @change="bindDateChange"> |
||||
<text class="picker_select" |
||||
:style="form.statDate?'color:#333;':''">{{form.statDate?form.statDate:'请选择时段'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">统计时段:</view> |
||||
<view class="form_item_input picker"> |
||||
<picker :value="index" :range="array" range-key="dictLabel" @change="changeStatPeriod"> |
||||
<text class="picker_select" |
||||
:style="index>-1?'color:#333;':''">{{index>-1?array[index].dictLabel:'请选择时段'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">高速开闭情况:</view> |
||||
<view class="form_item_input form_input"> |
||||
<picker :value="isOpenIndex" :range="isOpenArry" range-key="label" @change="changeIsOpen"> |
||||
<text class="picker_select" |
||||
:style="isOpenIndex > -1?'color:#333;':''">{{form.isOpen == 1 ? '开放' : form.isOpen === 0 ? '关闭' : '请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">已处理事故数量:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="form.count1" placeholderStyle="color: #D4D4D4;font-size:28rpx;" placeholder="请输入" |
||||
type="number" maxlength="30"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">正在处理事故数量:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="form.count2" placeholderStyle="color: #D4D4D4;font-size:28rpx;" placeholder="请输入" |
||||
type="number" maxlength="30"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">事故数量:</view> |
||||
<view class="form_item_input form_input"> |
||||
{{form.accidentCount}} |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">拥堵数量:</view> |
||||
<view class="form_item_input form_input"> |
||||
{{form.congestionCount}} |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">伤者人数:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="form.injuredCount" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" type="number" maxlength="30"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">亡者人数:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="form.deceasedCount" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" type="number" maxlength="30"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="form_item_box" style="margin-top: 30rpx;"> |
||||
<!-- tab 切换 --> |
||||
<view class="tab_box"> |
||||
<view class="tab_nav" :class="tabType == 1 ? 'active' : ''" @click="tabType = 1">拥堵信息详情</view> |
||||
<view class="tab_nav" :class="tabType == 2 ? 'active' : ''" @click="tabType = 2">事故信息详情</view> |
||||
</view> |
||||
<!-- 拥堵 --> |
||||
<view class="form_item_li" v-if="tabType == 1" v-for="(item,index) in form.highwayCongestionDetailDTOS" |
||||
:key="index"> |
||||
<view class="form_item" style="display:flex; justify-content: space-between; font-size: 30rpx;color:#333;font-weight: bold;margin-top: 30rpx;"> |
||||
拥堵信息-{{index+1}} |
||||
<uni-icons type="trash" color="red" @click="delRow" size="18"></uni-icons> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">高速公路名称:</view> |
||||
<view class="form_item_input picker"> |
||||
<picker :value="item.highwayNameIndex" :range="highwayDataList" range-key="stdName" @change="e => changeHighway(e, 'highwayCongestionDetailDTOS', index)"> |
||||
<text class="picker_select" |
||||
:style="item.highwayName?'color:#333;':''">{{item.highwayName ? item.highwayName : '请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">拥堵发生时间:</view> |
||||
<view class="form_item_input picker"> |
||||
<uni-datetime-picker v-model="item.congestionStartTime" :border="false"> |
||||
<text class="picker_select" |
||||
:style="item.congestionStartTime?'color:#333;':''">{{item.congestionStartTime?item.congestionStartTime:'请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</uni-datetime-picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">拥堵处理结束时间:</view> |
||||
<view class="form_item_input picker"> |
||||
<uni-datetime-picker v-model="item.congestionEndTime" :border="false"> |
||||
<text class="picker_select" |
||||
:style="item.congestionEndTime?'color:#333;':''">{{item.congestionEndTime?item.congestionEndTime:'请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</uni-datetime-picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">发生位置:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.location" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">拥堵内容:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.congestionContent" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">阻断/拥堵持续时间:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.duration" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">截至当前拥堵空间范围(桩号及方向):</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.congestionRange" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">处置工作开展情况:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.disposalStatus" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">补充说明:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.additionalNotes" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="line"></view> |
||||
</view> |
||||
|
||||
<!-- 事故 --> |
||||
<view class="form_item_li" v-if="tabType == 2" v-for="(item,index) in form.highwayAccidentDetailDTOS" :key="index"> |
||||
<view class="form_item" style="display:flex; justify-content: space-between;font-size: 30rpx;color:#333;font-weight: bold;margin-top: 30rpx;"> |
||||
事故信息-{{index+1}} |
||||
<uni-icons type="trash" color="red" @click="delRow" size="18"></uni-icons> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">高速公路名称:</view> |
||||
<view class="form_item_input picker"> |
||||
<picker :value="item.highwayNameIndex" :range="highwayDataList" range-key="stdName" @change="e => changeHighway(e, 'highwayCongestionDetailDTOS', index)"> |
||||
<text class="picker_select" |
||||
:style="item.highwayName?'color:#333;':''">{{item.highwayName ? item.highwayName : '请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">事故发生时间:</view> |
||||
<view class="form_item_input picker"> |
||||
<uni-datetime-picker v-model="item.accidentStartTime" :border="false"> |
||||
<text class="picker_select" |
||||
:style="item.accidentStartTime?'color:#333;':''">{{item.accidentStartTime?item.accidentStartTime:'请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</uni-datetime-picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">事故处理结束时间:</view> |
||||
<view class="form_item_input picker"> |
||||
<uni-datetime-picker v-model="item.accidentEndTime" :border="false"> |
||||
<text class="picker_select" |
||||
:style="item.accidentEndTime?'color:#333;':''">{{item.accidentEndTime?item.accidentEndTime:'请选择'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</uni-datetime-picker> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">发生位置:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.location" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">事故内容:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.congestionContent" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">事故等级:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.congestionContent" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入金额" type="digit" maxlength="30"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">阻断/拥堵持续时间:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.duration" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">截至当前拥堵空间范围(桩号及方向):</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.congestionRange" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">处置工作开展情况:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.disposalStatus" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="form_item"> |
||||
<view class="form_item_label">补充说明:</view> |
||||
<view class="form_item_input form_input"> |
||||
<uni-easyinput v-model="item.additionalNotes" placeholderStyle="color: #D4D4D4;font-size:28rpx;" |
||||
placeholder="请输入" maxlength="200"></uni-easyinput> |
||||
</view> |
||||
</view> |
||||
<view class="line"></view> |
||||
</view> |
||||
<view class="add_btn" @click="addRow()">增行</view> |
||||
|
||||
</view> |
||||
<!-- 底部按钮 --> |
||||
<view class="foot_btn"> |
||||
<view class="act_btn" @click="doCancel">取消</view> |
||||
<view class="act_btn blue" @click="doSubmit">确认</view> |
||||
</view> |
||||
</view> |
||||
</template> |
||||
<script> |
||||
import { |
||||
getDateStr |
||||
} from "../../../common/util.js" |
||||
export default { |
||||
data() { |
||||
return { |
||||
form: { |
||||
"accidentCount": 0, |
||||
"congestionCount": 0, |
||||
"deceasedCount": 0, |
||||
"highwayAccidentDetailDTOS": [{ |
||||
"accidentContent": "", |
||||
"accidentEndTime": "", |
||||
"accidentLevel": "string", |
||||
"accidentStartTime": "", |
||||
"additionalNotes": "", |
||||
"congestionRange": "", |
||||
"disposalStatus": "", |
||||
"duration": "", |
||||
"higwayNameIndex": "", |
||||
"highwayName": "", |
||||
"location": "", |
||||
}], |
||||
"highwayCongestionDetailDTOS": [{ |
||||
"additionalNotes": "", |
||||
"congestionContent": "", |
||||
"congestionEndTime": "", |
||||
"congestionRange": "", |
||||
"congestionStartTime": "", |
||||
"disposalStatus": "", |
||||
"duration": "", |
||||
"higwayNameIndex": "", |
||||
"highwayName": "", |
||||
"location": "", |
||||
}], |
||||
"injuredCount": 0, |
||||
"isOpen": 1, |
||||
"organizationName": "", |
||||
"statDate": "", |
||||
"statPeriod": "" |
||||
}, //登录form |
||||
highwayDataList: [], //高速列表 |
||||
submitPerson: [], //报送人 |
||||
submitPersonIndex: -1, //报送人选择索引 |
||||
array: [], //时段选择列表 |
||||
index: 2, //时段选择,默认0-24 |
||||
isOpenArry: [{value:1,label:'开放'},{value:0,label:'关闭'}],//高速开闭情况 |
||||
isOpenIndex: 0, |
||||
userInfo: {}, |
||||
tabType: 1, //拥堵事故类型 |
||||
} |
||||
}, |
||||
onLoad(options) { |
||||
this.userInfo = uni.getStorageSync('userInfo'); |
||||
this.queryHighway();//高速公路列表 |
||||
if (options.type == 'add') { |
||||
let now = new Date(); |
||||
this.form.statDate = getDateStr(now, -1); //默认前一天 |
||||
this.form.statPeriod = '03'; //默认0-24 |
||||
} else if (options.item) { |
||||
this.form = JSON.parse(options.item); |
||||
this.form.highwayCongestionDetailDTOS = this.form.highwayCongestionDetailVOS; |
||||
this.form.highwayAccidentDetailDTOS = this.form.highwayAccidentDetailVOS; |
||||
console.log(this.form) |
||||
} |
||||
this.queryTime(); //统计时段 |
||||
}, |
||||
methods: { |
||||
//高速公路权限列表 |
||||
queryHighway() { |
||||
this.highwayDataList = [{ |
||||
"acctYear": 0, |
||||
"cdd": 0, |
||||
"createTime": "2016-06-12T16:47:50.992", |
||||
"createUnit": "4EB98423C0000041919F523B5D7A5CB1", |
||||
"createUserId": "AD049D34252E7C26A9B28DE393572C4B", |
||||
"creator": "青岛交通委员会管理员", |
||||
"dlwz": "", |
||||
"gldw": "青岛市高管处", |
||||
"glmc": "", |
||||
"gylc": 175.307, |
||||
"invalidTime": "9999-12-31T00:00:00", |
||||
"isLeaf": 1, |
||||
"jsdj": "540D47B620000001617BDD14C380A0D9", |
||||
"jsdw": "", |
||||
"jssj": "", |
||||
"jxscsd": 0, |
||||
"lddfmc": "", |
||||
"ldqdmc": "", |
||||
"ldqdzh": "", |
||||
"ldzdmc": "", |
||||
"ldzdzh": "", |
||||
"level": 1, |
||||
"ljlx": "", |
||||
"lkpddj": "", |
||||
"lmlx": "", |
||||
"lxqdmc": "", |
||||
"lxqdzh": "522.707", |
||||
"lxzdmc": "", |
||||
"lxzdzh": "698.014", |
||||
"memo": "", |
||||
"modifyTime": "2020-08-23T09:40:01.273", |
||||
"modifyUser": "admin", |
||||
"objectId": "5543CBB2C0000001F5F59149F1AF17CF", |
||||
"parents": "005543CBB2C0000001F5F59149F1AF17CF", |
||||
"recId": "5543CBB2C0000001F5F59149F1AF17CF", |
||||
"recVer": 8365710010537214000, |
||||
"resId": "5543CBB2C0000001F5F59149F1AF17CF", |
||||
"schemeId": "00000000000000000000000000000000", |
||||
"shareType": 0, |
||||
"shortName": "shgs", |
||||
"sjly": "", |
||||
"sjysnl": "", |
||||
"sortOrder": 21, |
||||
"ssdw": "", |
||||
"startFlag": 1, |
||||
"stdCode": "G15", |
||||
"stdIcon": "", |
||||
"stdName": "沈海高速", |
||||
"tcrq": null, |
||||
"unitId": "00000000000000000000000000000000", |
||||
"validTime": "1990-01-01T00:00:00", |
||||
"xxdx": "", |
||||
"xzdj": "540D4877C000000112D1F2C6DE6A1B49", |
||||
"xzqh": "", |
||||
"yhdw": "", |
||||
"zyds": 0 |
||||
}] |
||||
// this.$request(getApp().globalData.baseUrl + '/api/biz/roadInfo/all?page=0&pageSize=-1&_t=' + Date.parse(new Date()), {}, 'GET').then(res => { |
||||
// this.highwayDataList = res.data.list; |
||||
// }) |
||||
}, |
||||
//高速公路切换选择 |
||||
changeHighway(e, key, index) { |
||||
this.form[key][index].highwayNameIndex = e.detail.value; |
||||
this.form[key][index].highwayName = this.highwayDataList[e.detail.value].stdName; |
||||
console.log(this.form) |
||||
}, |
||||
//统计时段切换选择 |
||||
changeStatPeriod(e) { |
||||
this.index = e.detail.value; |
||||
this.form.statPeriod = this.array[e.detail.value].dictValue; |
||||
console.log('change 时段', this.form) |
||||
}, |
||||
//开闭切换选择 |
||||
changeIsOpen(e) { |
||||
this.isOpenIndex = e.detail.value; |
||||
this.form.isOpen = this.isOpenArry[e.detail.value].value; |
||||
}, |
||||
//取消 |
||||
doCancel() { |
||||
uni.navigateBack(); |
||||
}, |
||||
//选择统计日期 |
||||
bindDateChange(e) { |
||||
this.form.statDate = e.detail.value; |
||||
}, |
||||
//时段 |
||||
queryTime() { |
||||
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time' + '&_t=' + Date.parse( |
||||
new Date()), {}, 'GET').then(res => { |
||||
this.array = res.data; |
||||
}) |
||||
}, |
||||
//增行 |
||||
addRow() { |
||||
if(this.tabType == 1) { |
||||
//拥堵增行 |
||||
this.form.highwayCongestionDetailDTOS.push({ |
||||
"additionalNotes": "", |
||||
"congestionContent": "", |
||||
"congestionEndTime": "", |
||||
"congestionRange": "", |
||||
"congestionStartTime": "", |
||||
"disposalStatus": "", |
||||
"duration": "", |
||||
"highwayNameIndex": "", |
||||
"highwayName": "", |
||||
"location": "", |
||||
}); |
||||
this.form.congestionCount = this.form.highwayCongestionDetailDTOS.length; |
||||
}else{ |
||||
//事故增行 |
||||
this.form.highwayAccidentDetailDTOS.push({ |
||||
"accidentContent": "", |
||||
"accidentEndTime": "", |
||||
"accidentLevel": "", |
||||
"accidentStartTime": "", |
||||
"additionalNotes": "", |
||||
"congestionRange": "", |
||||
"disposalStatus": "", |
||||
"duration": "", |
||||
"highwayNameIndex": "", |
||||
"highwayName": "", |
||||
"location": "", |
||||
}); |
||||
this.form.accidentCount = this.form.highwayCongestionDetailDTOS.length; |
||||
} |
||||
}, |
||||
//删行 |
||||
delRow(index) { |
||||
if(this.tabType == 1) { |
||||
//拥堵删行 |
||||
this.form.highwayCongestionDetailDTOS.splice(index,1); |
||||
this.form.congestionCount = this.form.highwayCongestionDetailDTOS.length; |
||||
}else{ |
||||
//事故删行 |
||||
this.form.highwayAccidentDetailDTOS.splice(index,1); |
||||
this.form.accidentCount = this.form.highwayCongestionDetailDTOS.length; |
||||
} |
||||
}, |
||||
//确认提交 |
||||
doSubmit() { |
||||
console.log(this.form) |
||||
if (this.form.statDate == '' || this.form.statPeriod == '') { |
||||
uni.showToast({ |
||||
title: '报送日期和时段不能为空', |
||||
icon: 'none' |
||||
}) |
||||
return; |
||||
} |
||||
let checkCongestion = this.form.highwayCongestionDetailDTOS.every(item => { |
||||
return !item.highwayName || !item.congestionStartTime || !item.congestionEndTime || !item.duration || !item.location |
||||
}) |
||||
let checkAccident = this.form.highwayAccidentDetailDTOS.every(item => { |
||||
return !item.highwayName || !item.accidentStartTime || !item.accidentEndTime || !item.duration || !item.location |
||||
}) |
||||
if (this.form.highwayCongestionDetailDTOS.length > 0 && checkCongestion) { |
||||
uni.showToast({ |
||||
title: '拥堵信息详情不能为空', |
||||
icon: 'none' |
||||
}) |
||||
return; |
||||
} |
||||
if (this.form.highwayAccidentDetailDTOS.length > 0 && checkAccident) { |
||||
uni.showToast({ |
||||
title: '事故信息详情不能为空', |
||||
icon: 'none' |
||||
}) |
||||
return; |
||||
} |
||||
uni.showModal({ |
||||
title: '提示', |
||||
content: '确认保存当前报送数据吗?', |
||||
success: (res) => { |
||||
if (res.confirm) { |
||||
this.submitForm(); |
||||
} |
||||
} |
||||
}) |
||||
}, |
||||
submitForm() { |
||||
uni.showLoading({ |
||||
title: '提交中...', |
||||
mask: true |
||||
}) |
||||
this.$request(getApp().globalData.baseUrl + '/api/biz/highSpeedOperationController/saveOrUpdate', this.form, |
||||
'POST').then(res => { |
||||
uni.hideLoading(); |
||||
if (res.code == 200) { |
||||
uni.showToast({ |
||||
title: '报送提交成功', |
||||
icon: 'none', |
||||
success: () => { |
||||
uni.navigateBack(); |
||||
} |
||||
}) |
||||
} |
||||
}).catch(() => { |
||||
uni.hideLoading(); |
||||
}) |
||||
}, |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.form_warp { |
||||
padding: 30rpx 30rpx 195rpx; |
||||
|
||||
.form_intro { |
||||
color: #666; |
||||
font-size: 26rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
line-height: 48rpx; |
||||
text-align: center; |
||||
margin-bottom: 20rpx; |
||||
|
||||
.tel { |
||||
color: #2D8CF0; |
||||
font-weight: bold; |
||||
} |
||||
} |
||||
|
||||
.form_item_box { |
||||
padding: 30rpx 20rpx 30rpx 30rpx; |
||||
background-color: #fff; |
||||
border-radius: 30rpx; |
||||
|
||||
//环比同比 |
||||
.form_item_rate { |
||||
background: #F6F6F6; |
||||
border: 1px solid #F6F6F6; |
||||
padding: 30rpx; |
||||
margin-bottom: 30rpx; |
||||
border-radius: 30rpx; |
||||
|
||||
.line { |
||||
height: 1px; |
||||
background-color: #dfdfdf; |
||||
margin: 30rpx 0; |
||||
} |
||||
|
||||
.rate_item { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
font-size: 24rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
|
||||
.rate_item_label { |
||||
color: #666; |
||||
font-size: 24rpx; |
||||
} |
||||
|
||||
.rate_item_input { |
||||
color: #333; |
||||
font-size: 28rpx; |
||||
} |
||||
} |
||||
|
||||
&.danger { |
||||
background-color: #FEF6F3; |
||||
border-color: #F0622D; |
||||
} |
||||
} |
||||
|
||||
.form_item_title { |
||||
color: #333; |
||||
line-height: 42rpx; |
||||
font-size: 30rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
font-weight: bold; |
||||
margin-bottom: 30rpx; |
||||
} |
||||
|
||||
.form_item_remark { |
||||
margin-bottom: 30rpx; |
||||
|
||||
.form_item_label { |
||||
color: #333333; |
||||
line-height: 42rpx; |
||||
font-size: 30rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
font-weight: bold; |
||||
margin-bottom: 30rpx; |
||||
} |
||||
} |
||||
|
||||
.form_item { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
line-height: 37rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
margin-bottom: 30rpx; |
||||
|
||||
.form_item_label { |
||||
width: 260rpx; |
||||
color: #666666; |
||||
font-size: 26rpx; |
||||
word-break: break-all; |
||||
} |
||||
|
||||
.form_item_input { |
||||
color: #333; |
||||
text-align: right; |
||||
word-break: break-all; |
||||
|
||||
&.picker { |
||||
flex: 1; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
/deep/ picker{ |
||||
flex: 1; |
||||
} |
||||
|
||||
.picker_select { |
||||
color: #D4D4D4; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
text-align: right; |
||||
} |
||||
} |
||||
|
||||
//纯展示 |
||||
&.text { |
||||
color: #333333; |
||||
line-height: 40rpx; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
} |
||||
|
||||
//输入框 |
||||
&.form_input { |
||||
/deep/ .is-input-border { |
||||
border: 0 !important; |
||||
|
||||
.uni-easyinput__content-input { |
||||
height: 35rpx !important; |
||||
text-align: right; |
||||
} |
||||
} |
||||
/deep/ .uni-date-x--border{ |
||||
border: 0 !important; |
||||
.uni-date__x-input{ |
||||
// height: 35rpx !important; |
||||
text-align: right; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
//收费站 |
||||
.station_box { |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
margin-top: 40rpx; |
||||
|
||||
.station_item { |
||||
height: 60rpx; |
||||
color: #666666; |
||||
line-height: 60rpx; |
||||
font-size: 26rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
border-radius: 20rpx; |
||||
border: 1rpx solid #C1C1C1; |
||||
padding: 0 20rpx; |
||||
margin-bottom: 40rpx; |
||||
margin-right: 20rpx; |
||||
|
||||
&.active { |
||||
position: relative; |
||||
color: #1ECE5F; |
||||
border-color: #1ECE5F; |
||||
background: #EBFAF2; |
||||
|
||||
.tag { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
width: 34rpx; |
||||
height: 23rpx; |
||||
background: #1ECE5F; |
||||
border-radius: 0rpx 20rpx 0rpx 5rpx; |
||||
text-align: center; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.foot_btn { |
||||
position: fixed; |
||||
left: 0; |
||||
right: 0; |
||||
bottom: 0; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
padding: 40rpx 30rpx; |
||||
background-color: #f5f5f5; |
||||
z-index: 11; |
||||
|
||||
.act_btn { |
||||
width: 329rpx; |
||||
height: 90rpx; |
||||
color: #666666; |
||||
font-size: 28rpx; |
||||
line-height: 90rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
text-align: center; |
||||
background: #F6F6F6; |
||||
border-radius: 100rpx; |
||||
border: 1rpx solid #C1C1C1; |
||||
|
||||
&.blue { |
||||
color: #fff; |
||||
background: #2D8CF0; |
||||
border-color: #2D8CF0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
//增行 |
||||
.line { |
||||
height: 1px; |
||||
background-color: #E1E1E1; |
||||
} |
||||
|
||||
.add_btn { |
||||
height: 90rpx; |
||||
line-height: 90rpx; |
||||
color: #2D8CF0; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
text-align: center; |
||||
background: #ECF5FF; |
||||
border-radius: 30rpx; |
||||
border: 2rpx solid #2D8CF0; |
||||
margin-top: 30rpx; |
||||
} |
||||
|
||||
.tab_box { |
||||
display: flex; |
||||
justify-content: space-around; |
||||
|
||||
.tab_nav { |
||||
color: #999999; |
||||
line-height: 42rpx; |
||||
font-size: 30rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
padding-bottom: 25rpx; |
||||
|
||||
&.active { |
||||
position: relative; |
||||
color: #2D8CF0; |
||||
font-weight: bold; |
||||
|
||||
&::after { |
||||
position: absolute; |
||||
content: ''; |
||||
left: 50%; |
||||
bottom: 0; |
||||
width: 74rpx; |
||||
height: 6rpx; |
||||
background: #2D8CF0; |
||||
border-radius: 100rpx; |
||||
margin-left: -37rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
button { |
||||
background-color: #007aff; |
||||
color: #ffffff; |
||||
} |
||||
</style> |
||||
@ -0,0 +1,481 @@ |
||||
<template> |
||||
<view class="page"> |
||||
<view class="list_box" v-for="(item,index) in data" :key="index"> |
||||
<view class="list_top"> |
||||
<view class="unit_tags">管理单位</view> |
||||
<view class="unit_name">{{item.railwayName}}</view> |
||||
</view> |
||||
<view class="report_time">{{item.statDate || ''}}<text |
||||
style="margin-left:16rpx;">{{item.statPeriodValue || ''}}</text> |
||||
</view> |
||||
<view class="list_item_box"> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">终到车次(辆)-入青:</view> |
||||
<view class="list_item_cnt">{{item.inboundRailwayDo === 0 ? item.inboundRailwayDo : item.inboundRailwayDo || ''}}</view> |
||||
</view> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">过路车次(不含终到)-入青:</view> |
||||
<view class="list_item_cnt">{{item.inboundPassengersDo === 0 ? item.inboundPassengersDo : item.inboundPassengersDo || ''}}</view> |
||||
</view> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">人数(人)-入青:</view> |
||||
<view class="list_item_cnt">{{item.inPepole === 0 ? item.inPepole : item.inPepole || ''}}</view> |
||||
</view> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">始发车次(辆)-出青:</view> |
||||
<view class="list_item_cnt">{{item.outboundRailwayDo === 0 ? item.outboundRailwayDo : item.outboundRailwayDo || ''}}</view> |
||||
</view> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">过路车次(不含始发)-出青:</view> |
||||
<view class="list_item_cnt">{{item.outboundPassengersDo === 0 ? item.outboundPassengersDo : item.outboundPassengersDo || ''}}</view> |
||||
</view> |
||||
<view class="list_item"> |
||||
<view class="list_item_label">人数(人)-出青:</view> |
||||
<view class="list_item_cnt">{{item.outPepole === 0 ? item.outPepole : item.outPepole || ''}}</view> |
||||
</view> |
||||
</view> |
||||
<!-- 按钮 --> |
||||
<view class="act_btn_box"> |
||||
<view class="act_btn blue" @click="goPage('/pages/railway/railwayRunData/form', item)">编辑</view> |
||||
<view class="act_btn" style="margin-right: 30rpx;" @click="goPage('/pages/railway/railwayRunData/detail', item)"> |
||||
查看详情</view> |
||||
</view> |
||||
</view> |
||||
<uni-load-more iconType="circle" :status="status" @clickLoadMore="loadMore" |
||||
:contentText="contentText"></uni-load-more> |
||||
<!-- 筛选 --> |
||||
<view class="foot_btn_box"> |
||||
<view @click="goPage('/pages/railway/railwayRunData/form?type=add')" class="act_btn"><uni-icons type="plusempty" |
||||
size="18" color="#fff" style="margin-right: 9rpx;"></uni-icons>新建</view> |
||||
<view @click="showSearch" class="act_btn btn1"><uni-icons type="search" size="18" color="#2D8CF0" |
||||
style="margin-right: 9rpx;"></uni-icons>查询 |
||||
</view> |
||||
</view> |
||||
<!-- 筛选 --> |
||||
<uni-popup ref="popup" style="width: 100%;" background-color="none"> |
||||
<view class="pop_box"> |
||||
<view class="pop_title"> |
||||
查询条件 |
||||
<uni-icons type="closeempty" size="18" color="#666" class="pop_close"></uni-icons> |
||||
</view> |
||||
<view class="popup-content"> |
||||
<view class="cont_tit"> |
||||
统计起止时间 |
||||
</view> |
||||
<view class="time_box"> |
||||
<uni-datetime-picker v-model="timeRange" type="daterange" /> |
||||
</view> |
||||
<view class="cont_tit picker"> |
||||
<view>统计时段</view> |
||||
<view class="picker_select"> |
||||
<picker @change="bindPickerChange" :value="index" :range="array" range-key="dictLabel"> |
||||
<text class="unselect_txt" |
||||
:style="index>-1?'color:#333;':''">{{index>-1?array[index].dictLabel:'请选择时段'}}</text> |
||||
<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="btn_box"> |
||||
<p class="btn" @click="searchReset">重置</p> |
||||
<p class="btn" @click="searchList">确认</p> |
||||
</view> |
||||
</view> |
||||
</uni-popup> |
||||
</view> |
||||
</template> |
||||
<script> |
||||
export default { |
||||
data() { |
||||
return { |
||||
data: [], |
||||
current: 0, |
||||
size: 10, |
||||
hasMore: true, |
||||
status: '', |
||||
query: { |
||||
statDateStart: '', |
||||
statDateEnd: '', |
||||
statPeriod: '' |
||||
}, |
||||
contentText: { |
||||
contentdown: "点击查看更多", |
||||
contentrefresh: "正在加载...", |
||||
contentnomore: "没有更多数据了", |
||||
}, |
||||
timeRange: [], //查询起止日期 |
||||
array: [], //时段选择列表 |
||||
index: '', //时段选择 |
||||
} |
||||
}, |
||||
onLoad() { |
||||
this.queryTime(); |
||||
this.loadMore(); |
||||
}, |
||||
onUnload() { |
||||
this.hasMore = true; |
||||
this.data = []; |
||||
}, |
||||
onPullDownRefresh() { |
||||
console.log('onPullDownRefresh'); |
||||
this.data = []; |
||||
this.current = 0; |
||||
this.hasMore = true; |
||||
this.loadMore(); |
||||
}, |
||||
methods: { |
||||
//折叠 |
||||
showDetail(index1, index2, flag) { |
||||
this.data[index1].highwaySubDataList[index2].show = flag; |
||||
}, |
||||
//搜索时段选择 |
||||
bindPickerChange: function(e) { |
||||
console.log('picker发送选择改变,携带值为', e.detail.value) |
||||
this.index = e.detail.value |
||||
}, |
||||
//确认查询 |
||||
searchList() { |
||||
this.query = { |
||||
statDateStart: this.timeRange.length > 0 ? this.timeRange[0] : '', |
||||
statDateEnd: this.timeRange.length > 0 ? this.timeRange[1] : '', |
||||
statPeriod: this.index > -1 ? this.array[this.index].dictValue : '' |
||||
}; |
||||
this.data = []; |
||||
this.current = 0; |
||||
this.hasMore = true; |
||||
this.$refs.popup.close(); |
||||
this.loadMore(); |
||||
}, |
||||
//重置搜索 |
||||
searchReset() { |
||||
this.timeRange = []; |
||||
this.query = { |
||||
statDateStart: '', |
||||
statDateEnd: '', |
||||
statPeriod: '' |
||||
}; |
||||
this.index = -1; |
||||
}, |
||||
//查询 |
||||
showSearch() { |
||||
this.$refs.popup.open('bottom'); |
||||
}, |
||||
//时段 |
||||
queryTime() { |
||||
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time' + '&_t=' + Date.parse( |
||||
new Date()), {}, 'GET').then(res => { |
||||
this.array = res.data; |
||||
}) |
||||
}, |
||||
loadMore() { |
||||
if (this.hasMore) { |
||||
this.current = this.current + 1; |
||||
this.status = 'loading'; |
||||
let params = ''; |
||||
Object.keys(this.query).map(key => { |
||||
params = params + '&' + key + '=' + this.query[key] |
||||
}) |
||||
this.$request(getApp().globalData.baseUrl + '/api/biz/railwayRunData/list?page=' + this.current + |
||||
'&pageSize=' + this.size + '&_t=' + Date.parse(new Date()) + params, {}, 'GET').then(res => { |
||||
if (res.code == 200) { |
||||
this.data = this.data.concat(res.data.list); |
||||
if (res.data.list.length == 0 || res.data.totalCount < this.size) { |
||||
this.hasMore = false; |
||||
this.status = 'nomore'; |
||||
} else { |
||||
this.status = 'more'; |
||||
} |
||||
uni.stopPullDownRefresh(); |
||||
} else { |
||||
this.status = 'more'; |
||||
uni.stopPullDownRefresh(); |
||||
} |
||||
}).catch(() => { |
||||
this.status = 'more'; |
||||
uni.stopPullDownRefresh(); |
||||
}) |
||||
} |
||||
}, |
||||
//页面跳转 |
||||
goPage(url, param) { |
||||
if (param) { |
||||
uni.navigateTo({ |
||||
url: url + '?item=' + JSON.stringify(param) |
||||
}) |
||||
} else { |
||||
uni.navigateTo({ |
||||
url: url |
||||
}) |
||||
} |
||||
}, |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.page { |
||||
min-height: 100vh; |
||||
padding: 30rpx 30rpx 195rpx; |
||||
} |
||||
|
||||
.list_box { |
||||
background-color: #fff; |
||||
border-radius: 30rpx; |
||||
margin-bottom: 30rpx; |
||||
padding: 30rpx; |
||||
|
||||
.list_top { |
||||
display: flex; |
||||
margin-bottom: 30rpx; |
||||
|
||||
.unit_tags { |
||||
height: 37rpx; |
||||
line-height: 37rpx; |
||||
color: #E37616; |
||||
font-size: 20rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
background: #FFF7E4; |
||||
border-radius: 10rpx; |
||||
border: 1rpx solid #EF9A4F; |
||||
padding: 0 11rpx; |
||||
} |
||||
|
||||
.unit_name { |
||||
color: #333333; |
||||
font-size: 30rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
font-weight: bold; |
||||
line-height: 48rpx; |
||||
margin-left: 20rpx; |
||||
word-break: break-all; |
||||
} |
||||
} |
||||
|
||||
.report_time { |
||||
color: #999999; |
||||
font-size: 24rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
line-height: 48rpx; |
||||
text-align: center; |
||||
margin-bottom: 30rpx; |
||||
} |
||||
|
||||
.list_item_box { |
||||
padding: 30rpx 30rpx 0; |
||||
background: #F8F8F8; |
||||
border-radius: 30rpx; |
||||
margin-bottom: 30rpx; |
||||
} |
||||
|
||||
.list_item { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
padding: 0 0 30rpx; |
||||
|
||||
.list_item_label { |
||||
width: 320rpx; |
||||
color: #666666; |
||||
font-size: 26rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
line-height: 48rpx; |
||||
} |
||||
|
||||
.list_item_cnt { |
||||
flex: 1; |
||||
color: #333333; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
line-height: 48rpx; |
||||
text-align: right; |
||||
margin-left: 20rpx; |
||||
word-break: break-all; |
||||
} |
||||
} |
||||
|
||||
.list_item_shouqi { |
||||
color: #2D8CF0; |
||||
font-size: 24rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
text-align: center; |
||||
line-height: 33rpx; |
||||
padding-bottom: 30rpx; |
||||
|
||||
.txt { |
||||
margin-left: 12rpx; |
||||
} |
||||
} |
||||
|
||||
.act_btn_box { |
||||
display: flex; |
||||
flex-direction: row-reverse; |
||||
margin: 10rpx 0; |
||||
|
||||
.act_btn { |
||||
width: 180rpx; |
||||
color: #666666; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
line-height: 70rpx; |
||||
background: #FFFFFF; |
||||
border-radius: 100rpx; |
||||
border: 1rpx solid #C1C1C1; |
||||
text-align: center; |
||||
|
||||
&.blue { |
||||
color: #fff; |
||||
background: #2D8CF0; |
||||
border-color: #2D8CF0; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.foot_btn_box { |
||||
position: fixed; |
||||
left: 0; |
||||
right: 0; |
||||
bottom: 0; |
||||
display: flex; |
||||
justify-content: space-around; |
||||
background-color: #F8F8F8; |
||||
padding-bottom: 20px; |
||||
|
||||
.act_btn { |
||||
width: 329rpx; |
||||
height: 90rpx; |
||||
line-height: 88rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
color: #FFFFFF; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
background: #2D8CF0; |
||||
border-radius: 100rpx; |
||||
border: 1rpx solid #2D8CF0; |
||||
|
||||
.txt { |
||||
margin-left: 9rpx; |
||||
} |
||||
|
||||
&.btn1 { |
||||
color: #2D8CF0; |
||||
background: #F6F6F6; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.pop_box { |
||||
border-radius: 30rpx 30rpx 0 0; |
||||
background-color: #fff; |
||||
padding: 30rpx; |
||||
|
||||
.pop_title { |
||||
color: #333333; |
||||
font-size: 32rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
font-weight: bold; |
||||
line-height: 45rpx; |
||||
text-align: center; |
||||
margin: 20rpx 0; |
||||
|
||||
.pop_close { |
||||
float: right; |
||||
} |
||||
} |
||||
|
||||
.popup-content { |
||||
// display: flex; |
||||
// flex-direction: column; |
||||
|
||||
.cont_tit { |
||||
width: 100%; |
||||
color: #333333; |
||||
font-size: 26rpx; |
||||
font-family: PingFang SC-Bold, PingFang SC; |
||||
font-weight: bold; |
||||
line-height: 37rpx; |
||||
display: flex; |
||||
margin-bottom: 40rpx; |
||||
|
||||
&.picker { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
margin: 60rpx 0; |
||||
|
||||
.picker_select { |
||||
color: #D4D4D4; |
||||
font-size: 28rpx; |
||||
font-family: PingFang SC-Regular, PingFang SC; |
||||
font-weight: 400; |
||||
text-align: right; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.time_box { |
||||
width: 690rpx; |
||||
margin: 0 auto; |
||||
|
||||
/deep/ .uni-date-x--border { |
||||
border-radius: 30rpx; |
||||
|
||||
.uni-date-x { |
||||
background: transparent; |
||||
|
||||
.icon-calendar { |
||||
padding-left: 20rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
/deep/ .uni-date-editor--x .uni-date__icon-clear { |
||||
padding-right: 20rpx; |
||||
} |
||||
} |
||||
|
||||
.picker_box { |
||||
width: 690rpx; |
||||
margin: 0 auto; |
||||
|
||||
/deep/.input-value-border { |
||||
border-radius: 30rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.btn_box { |
||||
width: 100%; |
||||
height: 120rpx; |
||||
display: flex; |
||||
margin-top: 20px; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
|
||||
.btn { |
||||
width: 290rpx; |
||||
height: 90rpx; |
||||
background: #FFFFFF; |
||||
border-radius: 100rpx; |
||||
border: 1rpx solid #C1C1C1; |
||||
color: #666; |
||||
font-size: 28rpx; |
||||
line-height: 88rpx; |
||||
text-align: center; |
||||
|
||||
&:last-child { |
||||
background: #2D8CF0; |
||||
color: #FFFFFF; |
||||
border-color: #2D8CF0; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
</style> |
||||
Loading…
Reference in new issue