添加综合运输数据报送和道路运输发送量,公交投入数据列表页

main
jinna 2 years ago
parent 0d16b31c9a
commit 60f63fbb10
  1. 21
      pages.json
  2. 178
      pages/bus/busDataInfo/form.vue
  3. 441
      pages/bus/busDataInfo/list.vue
  4. 193
      pages/roadTransport/dataSubmission/detail.vue
  5. 364
      pages/roadTransport/dataSubmission/form.vue
  6. 363
      pages/roadTransport/dataSubmission/list.vue
  7. 350
      pages/roadTransport/quantitySent/form.vue
  8. 291
      pages/roadTransport/quantitySent/list.vue
  9. 10
      pages/roadTransport/transportData/detail.vue
  10. 57
      pages/roadTransport/transportData/form.vue
  11. 49
      pages/roadTransport/transportData/list.vue

@ -114,13 +114,32 @@
"navigationBarTitleText": "道路运输发送量"
}
},
{
"path": "pages/roadTransport/quantitySent/form",
"style": {
"navigationBarTitleText": "道路运输发送量报送"
}
},
{
"path": "pages/roadTransport/transportData/detail",
"style": {
"navigationBarTitleText": "查看详情"
}
},
{
"path": "pages/bus/busDataInfo/list",
"style": {
"navigationBarTitleText": "公交投入数据"
}
}
],
,{
"path" : "pages/bus/busDataInfo/form",
"style": {
"navigationBarTitleText": "公交投入数据报送"
}
}
],
"globalStyle": {
"pageOrientation": "portrait",
"navigationBarTitleText": "Hello uniapp",

@ -0,0 +1,178 @@
<template>
<!-- 公交投入数据表单 -->
<view class="form_warp">
<view class="form_item_box">
<view class="form_item_title">基本信息</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="queryYoYMom">
<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>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</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: 300rpx;
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{
text-align: right;
}
}
}
}
}
}
}
</style>

@ -0,0 +1,441 @@
<template>
<!-- 公交投入数据 -->
<view class="page_box">
<view class="top_box">
<view class="list_box">
<view class="list_item" v-for="(item,index) in listData" :key="index" @click="editItem(item)">
<view class="list_top">
<view class="unit_tags">报送时间</view>
<view class="unit_name">{{item.reportDate || ''}}<text style="margin-left:16rpx;">{{item.statPeriodValue || ''}}</text></view>
</view>
</view>
</view>
<uni-load-more iconType="circle" :status="status" @clickLoadMore="loadMore"
:content-text="contentText"></uni-load-more>
</view>
<view class="bottom_box">
<!-- <view class="act_btn" @click="handleAdd">
<uni-icons type="plusempty" size="18"
color="#fff" style="margin-right: 9rpx;"></uni-icons>
新建
</view> -->
<view class="act_btn btn1" @click="handleSearch">
<uni-icons type="search" size="18" color="#2D8CF0"
style="margin-right: 9rpx;"></uni-icons>
查询
</view>
</view>
<view class="pop_conbox">
<uni-popup ref="popup" style="width: 100%;" background-color="#fff">
<view class="pop_box">
<view class="pop_title">
查询条件
<uni-icons @click="this.$refs.popup.close()" 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="timeArray" range-key="dictLabel">
<text class="unselect_txt"
:style="timeName?'color:#333;':''">{{timeName ? timeName:'请选择时段'}}</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>
</view>
</template>
<script>
export default {
data() {
return {
listData:[],
hasMore:true,
page:0,
pageSize:10,
timeRange:[],
contentText: {
contentdown: "点击查看更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了",
},
status: '',
}
},
onShow() {
this.page = 0;
this.hasMore = true;
this.listData = [];
this.loadMore()
},
methods: {
loadMore(){
if (this.hasMore) {
this.page = this.page + 1;
this.status = 'loading';
let params = {
page:this.page,
pageSize:this.pageSize,
reportDateStart:this.timeRange.length !== 0 ? this.timeRange[0] : '',
reportDateEnd:this.timeRange.length !== 0 ? this.timeRange[1] : '',
_t:Date.parse(new Date())
}
this.$request(getApp().globalData.baseUrl + '/api/biz/busdata/list',params,"GET").then(res =>{
console.log(res)
if(res.code == 200){
res.data.list.map(item =>{
item.show = false;
})
this.listData = this.listData.concat(res.data.list);
if(res.data.list.length == 0 || res.data.list.length < this.size){
this.hasMore = false;
this.status = 'nomore';
}else{
this.status = 'more';
}
}
})
}
},
//
handleSearch(){
this.$refs.popup.open('bottom')
},
//
searchList(){
this.hasMore = true;
this.page = 0;
this.listData = [];
this.$refs.popup.close()
this.loadMore()
},
//
searchReset(){
this.timeRange = [];
this.listData = [];
this.hasMore = true;
this.page = 0;
this.$refs.popup.close()
this.loadMore();
},
//
editItem(row){
uni.navigateTo({
url:"/pages/bus/busDataInfo/form?pageFrom=edit&item=" + JSON.stringify(row)
})
},
}
}
</script>
<style lang="scss" scoped>
.page_box{
min-height: 100vh;
padding: 30rpx 30rpx 195rpx;
.top_box{
.list_box{
width: 690rpx;
display: flex;
flex-direction: column;
margin: 0 auto;
.list_item{
width: 630rpx;
padding: 30rpx;
border-radius: 30rpx;
background: #FFFFFF;
margin-bottom: 30rpx;
.list_top {
display: flex;
.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;
}
.item{
width: 570rpx;
// display: flex;
background: #F8F8F8;
border-radius: 30rpx 30rpx 30rpx 30rpx;
padding: 30rpx;
// justify-content: space-between;
margin-bottom: 40rpx;
.item_line{
width: 100%;
display: flex;
justify-content: space-between;
.left_txt{
font-size: 26rpx;
color: #666;
}
.right_txt{
color: #333;
font-size: 28rpx;
}
}
.item_bottom{
width: 100%;
.bott_item{
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 32rpx;
.left_txt{
font-size: 26rpx;
color: #666;
}
.right_txt{
color: #333;
font-size: 28rpx;
}
}
.omit{
font-size: 26rpx;
font-weight: 400;
color: #666666;
line-height: 48rpx;
margin: 20rpx 0;
}
.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;
}
}
}
}
.button_box{
width: 630rpx;
display: flex;
justify-content: flex-end;
.button{
width: 180rpx;
height: 70rpx;
background: #FFFFFF;
border-radius: 100rpx;
border: 1rpx solid #C1C1C1;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
color: #666;
margin-left: 30rpx;
&.edit{
background: #2D8CF0;
border-radius: 100rpx 100rpx 100rpx 100rpx;
border: none;
color: #fff;
}
}
}
}
}
}
.bottom_box{
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: space-around;
background-color: #F8F8F8;
padding: 20px 30rpx;
.act_btn {
width: 690rpx;
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_conbox{
.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>

@ -1,6 +1,26 @@
<template>
<view>
<!-- 综合运输数据详情 -->
<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.departmentName}}</view>
</view>
<view class="unit_time">{{roadData.reportDatetime || ''}} {{roadData.reportPhaseValue}}</view>
</view>
<view class="top_bot">
<view class="all_item first">
<view class="all_left">交通运行情况</view>
<view class="all_right">{{roadData.trafficOperationDescription || ''}}</view>
</view>
</view>
</view>
<view class="bottom_box">
<p class="edit_btn" @click="handleEdit">编辑</p>
</view>
</view>
</view>
</template>
@ -8,15 +28,176 @@
export default {
data() {
return {
roadData:{},
}
},
onLoad(options) {
let item = JSON.parse(options.item)
this.roadData = item
},
methods: {
//
handleEdit(){
uni.navigateTo({
url:"/pages/roadTransport/dataSubmission/form?pageFrom=edit&item=" + JSON.stringify(this.roadData)
})
},
}
}
</script>
<style>
<style lang="scss" scoped>
.detail_con{
width: 100%;
height: 100%;
overflow-y: auto;
.detail_box{
width: 690rpx;
background: #fff;
border-radius: 30rpx;
margin: 0 auto;
margin-top: 30rpx;
margin-bottom: 50rpx;
.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;
}
}
.top_bot{
width: 100%;
.persent_box{
width: 630rpx;
margin: 0 auto;
background-color: #F6F6F6;
border-radius: 30rpx;
margin-top: 30rpx;
.content{
width: 576rpx;
padding: 34rpx 32rpx 30rpx 22rpx;
display: flex;
justify-content: space-between;
align-items: center;
&.top{
border-bottom: 1rpx solid #FFFFFF;
}
.left{
font-size: 24rpx;
color: #666;
}
.right{
color: #333;
font-size: 28rpx;
&.green{
color: #1ECE5F;
}
&.red{
color: #EB4747;
}
}
}
}
.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{
min-width: 200rpx;
color: #666666;
font-size: 26rpx;
}
.all_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;
}
}
}
}
</style>

@ -1,40 +1,62 @@
<template>
<!-- 编辑综合运输 -->
<view class="edit_synth">
<view class="edit_box">
<view class="top_box">
<view class="top_con">
<view class="edit_item">
<p class="left">统计日期</p>
<!-- <p class="right">{{roadData.statisticalDate}}</p> -->
<view class="right">
<p>{{synthData.reportDatetime}}</p>
<uni-datetime-picker type="date" v-model="synthData.reportDatetime">
<image style="width: 49rpx;height: 49rpx;" src="../../static/icons/number-box.png" mode=""></image>
</uni-datetime-picker>
<view class="top_title" v-if="isShowTitle">
<view class="top_txt">如有填报问题请咨询公共服务中心</view>
<view class="bot_txt">中心值班电话<span style="color: #2D8CF0;">66007587</span></view>
</view>
<view class="content_box">
<view class="basic_box">
<view class="con_tit">基本信息</view>
<view class="edit_item">
<p class="left">填报单位</p>
<view class="right">
<p>{{synthData.departmentName ? synthData.departmentName : ''}}</p>
</view>
</view>
</view>
<view class="edit_item">
<p class="left">统计时段</p>
<!-- <p class="right">{{roadData.reportPhase}}</p> -->
<view class="right">
<uni-data-picker v-model="synthData.reportPhase" :localdata="roadTime" :map="{text:'dictLabel',value:'dictValue'}" popup-title="请选择班级" @change="onchange" @nodeclick="onnodeclick"></uni-data-picker>
<image style="width: 49rpx;height: 49rpx;" src="../../static/icons/number-box.png" mode=""></image>
<view class="edit_item">
<p class="left">统计日期</p>
<view class="right">
<uni-datetime-picker type="date" v-model="synthData.reportDatetime">
<p class="right_txt">{{synthData.reportDatetime ? synthData.reportDatetime : '请选择日期'}}</p>
<uni-icons type="right" size="16"></uni-icons>
</uni-datetime-picker>
</view>
</view>
<view class="edit_item">
<p class="left">统计时段</p>
<view class="right">
<picker @change="bindPickerChange" :value="index" :range="roadTime" range-key="dictLabel">
<view class="right_txt_box">
<p class="right_txt">{{timeName ? timeName : '请选择统计时段'}}</p>
<uni-icons type="right" size="16"></uni-icons>
</view>
</picker>
</view>
</view>
</view>
<view class="edit_item">
<p class="left">交通运行情况</p>
<p class="right">{{synthData.trafficOperationDescription}}</p>
<view class="basic_box data_box">
<view class="con_tit">综合运输数据</view>
<view class="remark_item">
<p class="left">交通运输情况</p>
<view class="right">
<uni-easyinput type="textarea" autoHeight v-model="synthData.trafficOperationDescription" placeholder="请填写交通运输情况"></uni-easyinput>
</view>
</view>
</view>
</view>
</view>
<view class="bottom_box">
<p class="btn_item" @click="cancelEdit">取消</p>
<p class="btn_item" @click="confirmRoad">确认</p>
<p class="btn_item confirm" @click="confirmRoad">确认</p>
</view>
</view>
</template>
<script>
import { getDateStr } from '../../../common/util'
export default {
data() {
return {
@ -44,126 +66,292 @@
reportPhase:'',
reportDatetime:'',
trafficOperationDescription:''
}
},
isShowTitle:false,
timeName:'',
pageType:''
}
},
onLoad(options) {
let row = JSON.parse(options.item);
console.log(row)
this.synthData = row;
this.synthData.reportDatetime = this.synthData.reportDatetime ? this.synthData.reportDatetime.substring(0,10) : ''
this.getRoadTime()
if(options.pageFrom == 'edit'){
this.pageType = 'edit'
let row = JSON.parse(options.item);
console.log(row)
this.synthData = row;
this.synthData.reportDatetime = this.synthData.reportDatetime ? this.synthData.reportDatetime.substring(0,10) : ''
}else if(options.pageFrom == 'add'){
this.pageType = 'add'
}else if(options.type == 'add'){
this.pageType = 'add'
}
},
methods: {
//
getRoadTime(){
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time&_t=1693372307694',"GET").then(res =>{
this.roadTime = res.data
this.roadTime = res.data;
if(this.pageType == 'edit'){
this.roadTime.map((item,index) =>{
if(item.dictValue == this.synthData.reportPhase){
this.index = index;
this.timeName = item.dictLabel
}
})
}else if(this.pageType == 'add'){
let now = new Date();
let dateStr = getDateStr(now,0);
if(new Date(dateStr + ' 11:00').getTime() < new Date().getTime() && new Date().getTime() < new Date(dateStr + ' 13:30').getTime()){
this.synthData.reportPhase = "0012";
this.index = this.roadTime.findIndex(item => item.dictValue == "0012")
this.timeName = this.roadTime.find(item => item.dictValue == "0012").dictLabel
}else{
this.synthData.reportPhase = "03";
this.index = this.roadTime.findIndex(item => item.dictValue == "03")
this.timeName = this.roadTime.find(item => item.dictValue == "03").dictLabel
}
}
})
},
//
bindPickerChange(e){
let index = e.target.value //
var selected = this.roadTime[index] //
this.synthData.reportPhase = selected.dictValue;
this.timeName = selected.dictLabel
},
//
confirmRoad(){
let params = this.synthData;
uni.showModal({
title:"提示",
content:"您确定,提交修改吗?",
success:(res) =>{
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/operation/saveOrUpdate',params,'POST').then(res =>{
if(res.code == 200){
uni.showToast({
title:'修改成功',
icon:"none"
});
uni.navigateBack()
}
})
}else if(res.cancel){}
}
})
console.log(params)
if(params.reportDatetime == ''){
uni.showToast({
title:'请选择统计日期',
icon:"none"
})
}else if(params.reportPhase == ''){
uni.showToast({
title:"请选择统计时段",
icon:'none'
})
}else{
uni.showModal({
title:"提示",
content:"您确定,提交修改吗?",
success:(res) =>{
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/operation/saveOrUpdate',params,'POST').then(res =>{
if(res.code == 200){
uni.showToast({
title:'填报成功',
icon:"none"
});
setTimeout(() =>{
uni.navigateBack()
},500)
}
})
}else if(res.cancel){}
}
})
}
},
//
cancelEdit(){
uni.navigateBack()
},
onchange(e){
console.log('确定===》',e)
},
onnodeclick(e){
console.log('点击===》',e)
}
}
}
</script>
<style lang="scss" scoped>
.edit_synth{
.edit_box{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
margin-top: 30rpx;
height:100%;
height:88%;
overflow-y: auto;
.top_con{
.top_title{
width: 690rpx;
height: 84%;
overflow-y: auto;
padding: 30rpx 0;
display: flex;
flex-direction: column;
margin: 0 auto;
background-color: #fff;
border-radius: 20rpx;
align-items: center;
justify-content: center;
color: #666;
font-size: 26rpx;
line-height: 40rpx;
margin-bottom: 20rpx;
}
.content_box{
display: flex;
flex-direction: column;
.edit_item{
width: 100%;
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
align-items: center;
.basic_box{
width: 630rpx;
padding: 30rpx 30rpx;
margin: 0 auto;
background-color: #fff;
border-radius: 30rpx;
&:last-child{
margin-bottom: 0;
&.data_box{
margin-top: 30rpx;
}
.left{
margin-left: 30rpx;
.con_tit{
width: 100%;
margin-top: 10rpx;
font-size: 40rpx;
color: #333;
font-weight: bold;
margin-bottom: 9rpx;
}
.right{
margin-right: 30rpx;
.remark_item{
color: #333;
font-size: 30rpx;
font-weight: bold;
.left{
margin-top: 20rpx;
margin-bottom: 30rpx;
}
.right{
/deep/ .is-input-border{
border: 1rpx solid #c1c1c1 !important;
border-radius: 30rpx !important;
}
}
}
.edit_item{
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 32rpx;
align-items: center;
&.input{
margin-top: 5rpx;
}
.left{
// margin-left: 30rpx;
color: #666;
font-size: 26rpx;
}
.right{
// margin-right: 30rpx;
display: flex;
align-items: center;
.right_txt{
color: #333;
font-size: 28rpx;
}
.right_txt_box{
display: flex;
align-items: center;
}
/deep/ .uni-date-editor{
display: flex;
align-items: center;
}
/deep/ .uni-easyinput__content-input{
font-size: 28rpx !important;
text-align: right;
color: #333;
}
/deep/ .is-input-border {
border: none;
}
/deep/ .content-clear-icon{
padding: 0 !important;
}
}
}
.per_con{
width: 630rpx;
margin: 0 auto;
background-color: #F6F6F6;
border-radius: 30rpx;
margin-top: 30rpx;
.content{
width: 576rpx;
padding: 34rpx 32rpx 30rpx 22rpx;
display: flex;
justify-content: space-between;
align-items: center;
&.top{
border-bottom: 1rpx solid #FFFFFF;
}
.left{
font-size: 24rpx;
color: #666;
}
.right{
color: #333;
font-size: 28rpx;
&.green{
color: #1ECE5F;
}
&.red{
color: #EB4747;
}
}
}
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
justify-content: space-around;
// background-color: #F8F8F8;
padding: 0rpx 0rpx 20px;
.btn_item{
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 40rpx;
border: 1rpx solid #D73232;
width: 329rpx;
height: 90rpx;
background: #F6F6F6;
border: 1rpx solid #C1C1C1;
color: #666;
width: 329rpx;
height: 90rpx;
line-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
font-size: 28rpx;
font-weight: 400;
border-radius: 100rpx;
&:last-child {
background: #D73232;
margin-left: 50rpx;
&.confirm {
background: #2D8CF0;
border: 1rpx solid #2D8CF0;
color: #FFFFFF;
}
}

@ -3,23 +3,70 @@
<!-- 综合运输数据 -->
<view class="top_box">
<view class="list_box">
<view class="list_item" v-for="(item,index) in synthData" :key="index">
<p class="item"><span style="margin-left:30rpx">填报单位</span><span style="margin-right:30rpx">{{item.departmentName}}</span></p>
<p class="item"><span style="margin-left:30rpx">报送日期时间</span><span style="margin-right:30rpx">{{item.reportDatetime}}</span></p>
<p class="item"><span style="margin-left:30rpx">统计阶段</span><span style="margin-right:30rpx">{{item.reportPhaseValue}}</span></p>
<p class="item"><span style="margin-left:30rpx">交通运行情况</span><span style="margin-right:30rpx">{{item.trafficOperationDescription}}</span></p>
<view class="button_box">
<p class="button" @click="editItem(item)">编辑</p>
<p class="button del" @click="deleteItem(item)">删除</p>
<view class="list_item" v-for="(item,index) in synthData" :key="index" @click="editItem(item)">
<view class="list_top">
<view class="unit_tags">报送时间</view>
<view class="unit_name">{{item.reportDatetime ? item.reportDatetime.substring(0,10) : ''}}<text style="margin-left:16rpx;">{{item.reportPhaseValue || ''}}</text></view>
</view>
<!-- <view class="report_time">{{item.reportDatetime || ''}}<text style="margin-left:16rpx;">{{item.reportPhaseValue || ''}}</text></view> -->
<!-- <view class="item">
<view class="item_line">
<view class="left_txt">交通运行情况</view>
<view class="right_txt">{{item.trafficOperationDescription || ''}}</view>
</view>
</view>
<view class="button_box">
<p class="button" @click="detailItem(item)">查看详情</p>
<p class="button edit" @click="editItem(item)">编辑</p>
</view> -->
</view>
</view>
<uni-load-more iconType="circle" :status="status" @clickLoadMore="loadMore"
:content-text="contentText"></uni-load-more>
</view>
<view class="bottom_box">
<p class="btn_item" @click="handleSearch">筛选</p>
<p class="btn_item">新增</p>
<!-- <view class="act_btn" @click="handleAdd">
<uni-icons type="plusempty" size="18"
color="#fff" style="margin-right: 9rpx;"></uni-icons>
新建
</view> -->
<view class="act_btn btn1" @click="handleSearch">
<uni-icons type="search" size="18" color="#2D8CF0"
style="margin-right: 9rpx;"></uni-icons>
查询
</view>
</view>
<view class="pop_conbox">
<uni-popup ref="popup" style="width: 100%;" background-color="#fff">
<view class="pop_box">
<view class="pop_title">
查询条件
<uni-icons @click="this.$refs.popup.close()" 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="timeArray" range-key="dictLabel">
<text class="unselect_txt"
:style="timeName?'color:#333;':''">{{timeName ? timeName:'请选择时段'}}</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>
</view>
</template>
@ -57,7 +104,7 @@
let params = {
page:this.page,
pageSize:this.pageSize,
_t:'1693380361996',
_t:Date.parse(new Date()),
reportDatetimeStart:this.timeRange.length != 0 ? this.timeRange[0] : '',
reportDatetimeEnd:this.timeRange.length != 0 ? this.timeRange[1] : '',
departmentId:this.unit ? this.unit : ''
@ -81,9 +128,46 @@
//
editItem(row){
uni.navigateTo({
url:"/pages/roadTrans/editSynth?item=" + JSON.stringify(row)
url:"/pages/roadTransport/dataSubmission/form?pageFrom=edit&item=" + JSON.stringify(row)
})
},
//
detailItem(row){
console.log(row)
// uni.navigateTo({
// url:"/pages/roadTransport/transportData/detail?item=" + JSON.stringify(row)
// })
uni.navigateTo({
url:"/pages/roadTransport/dataSubmission/detail?item=" + JSON.stringify(row)
})
},
//
handleAdd(){
uni.navigateTo({
url:"/pages/roadTransport/dataSubmission/form?pageFrom=add"
})
},
//
handleSearch(){
this.$refs.popup.open('bottom')
},
//
searchList(){
this.hasMore = true;
this.page = 0;
this.synthData = [];
this.$refs.popup.close()
this.loadMore()
},
//
searchReset(){
this.timeRange = [];
this.hasMore = true;
this.synthData = [];
this.page = 0;
this.$refs.popup.close()
this.loadMore();
},
//
deleteItem(row){
uni.showModal({
@ -115,12 +199,10 @@
<style lang="scss" scoped>
.synth_box{
width: 100%;
height: 100%;
min-height: 100vh;
padding: 30rpx 30rpx 195rpx;
.top_box{
padding-bottom: 160rpx;
overflow-y: auto;
.list_box{
width: 690rpx;
display: flex;
@ -128,44 +210,99 @@
margin: 0 auto;
.list_item{
width: 100%;
width: 630rpx;
padding: 30rpx;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
margin-bottom: 30rpx;
.item{
width: 100%;
.list_top {
display: flex;
justify-content: space-between;
margin: 20rpx 0;
// 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;
}
.item{
width: 570rpx;
// display: flex;
background: #F8F8F8;
border-radius: 30rpx 30rpx 30rpx 30rpx;
padding: 30rpx;
// justify-content: space-between;
margin-bottom: 40rpx;
.item_line{
width: 100%;
display: flex;
justify-content: space-between;
.left_txt{
min-width: 200rpx;
font-size: 26rpx;
color: #666;
}
.right_txt{
color: #333;
font-size: 28rpx;
}
}
}
.button_box{
width: 100%;
width: 630rpx;
display: flex;
justify-content: flex-end;
margin-bottom: 20rpx;
.button{
width:200rpx;
width: 180rpx;
height: 70rpx;
background: #FFFFFF;
border-radius: 50rpx;
border: 1rpx solid #cdcdcd;
border-radius: 100rpx;
border: 1rpx solid #C1C1C1;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #333;
font-size: 28rpx;
color: #666;
margin-left: 30rpx;
&.del{
border: 1rpx solid #D73232;
color: #D73232;
}
&:last-child{
margin-right: 30rpx;
&.edit{
background: #2D8CF0;
border-radius: 100rpx 100rpx 100rpx 100rpx;
border: none;
color: #fff;
}
}
}
@ -173,31 +310,145 @@
}
}
.bottom_box{
width: 100%;
height: 150rpx;
background: #fff;
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
.btn_item{
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 1rpx solid #D73232;
justify-content: space-around;
background-color: #F8F8F8;
padding: 20px 30rpx;
.act_btn {
width: 690rpx;
height: 90rpx;
line-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
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_conbox{
.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;
}
}
}
}
}

@ -2,81 +2,153 @@
<!-- 编辑综合运输 -->
<view class="edit_synth">
<view class="top_box">
<view class="top_con">
<view class="edit_item">
<p class="left">填报日期</p>
<!-- <p class="right">{{roadData.statisticalDate}}</p> -->
<view class="right">
<p>{{synthData.reportDate}}</p>
<uni-datetime-picker type="date" v-model="synthData.reportDatetime">
<image style="width: 49rpx;height: 49rpx;" src="../../static/icons/number-box.png" mode=""></image>
</uni-datetime-picker>
<view class="top_title" v-if="isShowTitle">
<view class="top_txt">如有填报问题请咨询公共服务中心</view>
<view class="bot_txt">中心值班电话<span style="color: #2D8CF0;">66007587</span></view>
</view>
<view class="content_box">
<view class="basic_box">
<view class="con_tit">基本信息</view>
<view class="edit_item">
<p class="left">填报日期</p>
<view class="right">
<uni-datetime-picker type="date" v-model="synthData.reportDate">
<p class="right_txt">{{synthData.reportDate ? synthData.reportDate : '请选择日期'}}</p>
<uni-icons type="right" size="16"></uni-icons>
</uni-datetime-picker>
</view>
</view>
</view>
<view class="edit_item">
<p class="left">班次</p>
<p class="right">{{roadData.shifts}}</p>
</view>
<view class="edit_item">
<p class="left">人数</p>
<p class="right">{{synthData.people}}</p>
<view class="basic_box data_box">
<view class="con_tit">综合运输数据</view>
<view class="edit_item input">
<p class="left">班次</p>
<view class="right">
<uni-easyinput v-model="synthData.shifts" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
</view>
</view>
<view class="per_con" v-if="pageType == 'edit'">
<view class="content top">
<view class="left">班次环比(%)</view>
<view class="right" :class="synthData.shiftMom > 0 ? 'green' : synthData.shiftMom < 0 ? 'red' : ''">{{synthData.shiftMom ? synthData.shiftMom.toFixed(2) + '%' : synthData.shiftMom == 0 ? 0 : ''}}</view>
</view>
<view class="content">
<view class="left">班次同比(%)</view>
<view class="right" :class="synthData.shiftYoy > 0 ? 'green' : synthData.shiftYoy < 0 ? 'red' : ''">{{synthData.shiftYoy ? synthData.shiftYoy.toFixed(2) + '%' : synthData.shiftYoy == 0 ? 0 : ''}}</view>
</view>
</view>
<view class="edit_item input">
<p class="left">人数</p>
<view class="right">
<uni-easyinput v-model="synthData.people" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
</view>
</view>
<view class="per_con" v-if="pageType == 'edit'">
<view class="content top">
<view class="left">人数环比(%)</view>
<view class="right" :class="synthData.peopleMom > 0 ? 'green' : synthData.peopleMom < 0 ? 'red' : ''">{{synthData.peopleMom ? synthData.peopleMom.toFixed(2) + '%' : synthData.peopleMom == 0 ? 0 : ''}}</view>
</view>
<view class="content">
<view class="left">人数同比(%)</view>
<view class="right" :class="synthData.peopleYoy > 0 ? 'green' : synthData.peopleYoy < 0 ? 'red' : ''">{{synthData.peopleYoy ? synthData.peopleYoy.toFixed(2) + '%' : synthData.peopleYoy == 0 ? 0 : ''}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="bottom_box">
<p class="btn_item" @click="cancelEdit">取消</p>
<p class="btn_item" @click="confirmRoad">确认</p>
<p class="btn_item confirm" @click="confirmRoad">确认</p>
</view>
</view>
</template>
<script>
import { getDateStr } from '../../../common/util'
export default {
data() {
return {
isShowTitle:false,
roadTime:[],
unitData:[],
synthData:{
reportPhase:'',
reportDatetime:'',
trafficOperationDescription:''
}
shifts:'', //
reportDate:'', //
people:'' //
},
pageType:''
}
},
onLoad(options) {
let row = JSON.parse(options.item);
console.log(row)
this.synthData = row;
this.synthData.reportDatetime = this.synthData.reportDatetime ? this.synthData.reportDatetime.substring(0,10) : ''
this.getRoadTime()
// this.getRoadTime()
// this.getDetail()
if(options.pageFrom == 'edit'){
this.pageType = 'edit'
let row = JSON.parse(options.item);
this.synthData = row;
this.synthData.reportDatetime = this.synthData.reportDatetime ? this.synthData.reportDatetime.substring(0,10) : ''
}else if(options.pageFrom == 'add'){
this.pageType = 'add'
}else if(options.type == 'add'){
this.pageType = 'add'
}
},
methods: {
getDetail(){
this.$request1(getApp().globalData.baseUrl + '/api/biz/roadtransport/road/find/89D260E420000001F70FB937A7F7088C',{},"GET").then(res =>{
console.log(res)
})
},
//
getRoadTime(){
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time&_t=1693372307694',"GET").then(res =>{
this.roadTime = res.data
if(this.pageType == 'add'){
let now = new Date();
let dateStr = getDateStr(now,0);
console.log(new Date().getTime())
if(new Date(dateStr + ' 11:00').getTime() < new Date().getTime() < new Date(dateStr + ' 13:30').getTime()){
this.roadData.reportPhase = "0012";
this.index = this.roadTime.findIndex(item => item.dictValue == "0012")
this.timeName = this.roadTime.find(item => item.dictValue == "0012").dictLabel
}else{
this.roadData.reportPhase = "03";
this.index = this.roadTime.findIndex(item => item.dictValue == "03")
this.timeName = this.roadTime.find(item => item.dictValue == "03").dictLabel
}
}
})
},
//
confirmRoad(){
let params = this.synthData;
uni.showModal({
title:"提示",
content:"您确定,提交修改吗?",
success:(res) =>{
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/operation/saveOrUpdate',params,'POST').then(res =>{
if(res.code == 200){
uni.showToast({
title:'修改成功',
icon:"none"
});
uni.navigateBack()
}
})
}else if(res.cancel){}
}
})
if(params.reportDate == ''){
uni.showToast({
title:"请选择填报日期",
icon:"none"
})
}else{
uni.showModal({
title:"提示",
content:"您确定,提交报送吗?",
success:(res) =>{
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/bizTransportData/saveOrUpdate',params,'POST').then(res =>{
if(res.code == 200){
uni.showToast({
title:'报送成功',
icon:"none"
});
uni.navigateBack()
}
})
}else if(res.cancel){}
}
})
}
},
//
cancelEdit(){
@ -99,67 +171,185 @@
height: 100%;
.top_box{
padding-bottom: 160rpx;
margin-top: 30rpx;
height:100%;
height:88%;
overflow-y: auto;
.top_con{
.top_title{
width: 690rpx;
height: 84%;
overflow-y: auto;
padding: 30rpx 0;
display: flex;
flex-direction: column;
margin: 0 auto;
background-color: #fff;
border-radius: 20rpx;
.edit_item{
width: 100%;
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
align-items: center;
align-items: center;
justify-content: center;
color: #666;
font-size: 26rpx;
line-height: 40rpx;
margin-bottom: 20rpx;
}
.content_box{
display: flex;
flex-direction: column;
.basic_box{
width: 630rpx;
padding: 30rpx 30rpx;
margin: 0 auto;
background-color: #fff;
border-radius: 30rpx;
&:last-child{
margin-bottom: 0;
&.data_box{
margin-top: 30rpx;
}
.left{
margin-left: 30rpx;
.con_tit{
width: 100%;
margin-top: 10rpx;
font-size: 40rpx;
color: #333;
font-weight: bold;
margin-bottom: 9rpx;
}
.right{
margin-right: 30rpx;
.remark_item{
color: #333;
font-size: 30rpx;
font-weight: bold;
.left{
margin-top: 20rpx;
margin-bottom: 30rpx;
}
.right{
/deep/ .is-input-border{
border: 1rpx solid #c1c1c1 !important;
border-radius: 30rpx !important;
}
}
}
.edit_item{
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 32rpx;
align-items: center;
&.input{
margin-top: 5rpx;
}
.left{
// margin-left: 30rpx;
color: #666;
font-size: 26rpx;
}
.right{
// margin-right: 30rpx;
display: flex;
align-items: center;
.right_txt{
color: #333;
font-size: 28rpx;
}
.right_txt_box{
display: flex;
align-items: center;
}
/deep/ .uni-date-editor{
display: flex;
align-items: center;
}
/deep/ .uni-easyinput__content-input{
font-size: 28rpx !important;
text-align: right;
color: #333;
}
/deep/ .is-input-border {
border: none;
}
/deep/ .content-clear-icon{
padding: 0 !important;
}
}
}
.per_con{
width: 630rpx;
margin: 0 auto;
background-color: #F6F6F6;
border-radius: 30rpx;
margin-top: 30rpx;
.content{
width: 576rpx;
padding: 34rpx 32rpx 30rpx 22rpx;
display: flex;
justify-content: space-between;
align-items: center;
&.top{
border-bottom: 1rpx solid #FFFFFF;
}
.left{
font-size: 24rpx;
color: #666;
}
.right{
color: #333;
font-size: 28rpx;
&.green{
color: #1ECE5F;
}
&.red{
color: #EB4747;
}
}
}
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
justify-content: space-around;
// background-color: #F8F8F8;
padding: 0rpx 0rpx 20px;
.btn_item{
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 40rpx;
border: 1rpx solid #D73232;
width: 329rpx;
height: 90rpx;
background: #F6F6F6;
border: 1rpx solid #C1C1C1;
color: #666;
width: 329rpx;
height: 90rpx;
line-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
font-size: 28rpx;
font-weight: 400;
border-radius: 100rpx;
&:last-child {
background: #D73232;
margin-left: 50rpx;
&.confirm {
background: #2D8CF0;
border: 1rpx solid #2D8CF0;
color: #FFFFFF;
}
}

@ -3,24 +3,69 @@
<!-- 道路运输发送量 -->
<view class="top_box">
<view class="list_box">
<view class="list_item" v-for="(item,index) in sendData" :key="index">
<p class="item"><span style="margin-left:30rpx">填报日期</span><span style="margin-right:30rpx">{{item.reportDate}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次</span><span style="margin-right:30rpx">{{item.shifts}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次环比</span><span style="margin-right:30rpx">{{item.shiftMom}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次同比</span><span style="margin-right:30rpx">{{item.shiftYoy}}</span></p>
<view class="list_item" v-for="(item,index) in sendData" :key="index" @click="editItem(item)">
<view class="list_top">
<view class="unit_tags">报送时间</view>
<view class="unit_name">{{item.reportDate || ''}}</view>
</view>
<!-- <p class="item"><span style="margin-left:30rpx">填报日期</span><span style="margin-right:30rpx">{{item.reportDate}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次</span><span style="margin-right:30rpx">{{item.shifts || ''}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次环比</span><span style="margin-right:30rpx">{{item.shiftMom == 0 ? 0 : item.shiftMom ? item.shiftMom.toFixed(2) : ''}}</span></p>
<p class="item"><span style="margin-left:30rpx">班次同比</span><span style="margin-right:30rpx">{{item.shiftYoy == 0 ? 0 : item.shiftYoy ? item.shiftYoy.toFixed(2) : ''}}</span></p>
<p class="item"><span style="margin-left:30rpx">人数</span><span style="margin-right:30rpx">{{item.people || ''}}</span></p>
<p class="item"><span style="margin-left:30rpx">人数环比</span><span style="margin-right:30rpx">{{item.peopleMom == 0 ? 0 : item.peopleMom ? item.peopleMom.toFixed(2) : ''}}</span></p>
<p class="item"><span style="margin-left:30rpx">人数同比</span><span style="margin-right:30rpx">{{item.peopleYoy == 0 ? 0 : item.peopleYoy ? item.peopleYoy.toFixed(2) : ''}}</span></p>
<view class="button_box">
<p class="button" @click="detailItem(item)">查看详情</p>
<p class="button edit" @click="editItem(item)">编辑</p>
<!-- <p class="button del" @click="deleteItem(item)">删除</p> -->
</view>
</view> -->
</view>
</view>
<uni-load-more iconType="circle" :status="status" @clickLoadMore="loadMore"
:content-text="contentText"></uni-load-more>
</view>
<view class="bottom_box">
<p class="btn_item" @click="handleSearch">新建</p>
<p class="btn_item search" >查询</p>
<!-- <view class="act_btn" @click="handleAdd">
<uni-icons type="plusempty" size="18"
color="#fff" style="margin-right: 9rpx;"></uni-icons>
新建
</view> -->
<view class="act_btn btn1" @click="handleSearch">
<uni-icons type="search" size="18" color="#2D8CF0"
style="margin-right: 9rpx;"></uni-icons>
查询
</view>
</view>
<view class="pop_conbox">
<uni-popup ref="popup" style="width: 100%;" background-color="#fff">
<view class="pop_box">
<view class="pop_title">
查询条件
<uni-icons @click="this.$refs.popup.close()" 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="timeArray" range-key="dictLabel">
<text class="unselect_txt"
:style="timeName?'color:#333;':''">{{timeName ? timeName:'请选择时段'}}</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>
</view>
</template>
@ -58,9 +103,9 @@
let params = {
page:this.page,
pageSize:this.pageSize,
_t:'1693388052047',
reportDatetimeStart:this.timeRange.length != 0 ? this.timeRange[0] : '',
reportDatetimeEnd:this.timeRange.length != 0 ? this.timeRange[1] : '',
_t:Date.parse(new Date()),
reportDateStart:this.timeRange.length != 0 ? this.timeRange[0] : '',
reportDateEnd:this.timeRange.length != 0 ? this.timeRange[1] : '',
}
this.$request(getApp().globalData.baseUrl + '/api/biz/bizTransportData/list',params,"GET").then(res =>{
console.log(res)
@ -78,12 +123,43 @@
}
},
//
handleAdd(){
uni.navigateTo({
// url:"/pages/roadTransport/dataSubmission/form?pageFrom=add"
url:"/pages/roadTransport/quantitySent/form?pageForm=add"
})
},
//
handleSearch(){
this.$refs.popup.open('bottom')
},
//
searchList(){
this.hasMore = true;
this.page = 0;
this.sendData = [];
this.$refs.popup.close()
this.loadMore()
},
//
searchReset(){
this.timeRange = [];
this.hasMore = true;
this.sendData = [];
this.page = 0;
this.$refs.popup.close()
this.loadMore();
},
//
editItem(row){
console.log(row)
uni.navigateTo({
// url:'pages/roadTransport/transportData/detail?item=' + JSON.stringify(row)
url:"/pages/roadTransport/quantitySent/form?item=" + JSON.stringify(row)
url:"/pages/roadTransport/quantitySent/form?pageFrom=edit&item=" + JSON.stringify(row)
})
},
//
@ -117,13 +193,11 @@
<style lang="scss" scoped>
.synth_box{
width: 100%;
height: 100%;
min-height: 100vh;
padding: 30rpx 30rpx 195rpx;
.top_box{
// padding-bottom: 160rpx;
height: 88%;
overflow-y: auto;
.list_box{
width: 690rpx;
display: flex;
@ -131,10 +205,38 @@
margin: 0 auto;
.list_item{
width: 100%;
width: 630rpx;
padding: 30rpx;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
margin-bottom: 30rpx;
.list_top {
display: flex;
.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;
}
}
.item{
width: 100%;
@ -178,34 +280,145 @@
}
}
.bottom_box{
width: 690rpx;
height: 150rpx;
// background: #fff;
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
left: 50%;
transform: translateX(-50%);
justify-content: space-between;
align-items: center;
justify-content: space-around;
background-color: #F8F8F8;
padding: 20px 30rpx;
.btn_item{
width: 329rpx;
.act_btn {
width: 690rpx;
height: 90rpx;
margin-bottom: 20rpx;
background: #2D8CF0;
border-radius: 100rpx 100rpx 100rpx 100rpx;
line-height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
color: #FFFFFF;
font-size: 28rpx;
color: #fff;
&.search {
background: #F6F6F6;
border-radius: 100rpx 100rpx 100rpx 100rpx;
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;
border: 1rpx solid #2D8CF0;
background: #F6F6F6;
}
}
}
.pop_conbox{
.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;
}
}
}
}
}

@ -193,11 +193,11 @@
url:"/pages/roadTransport/transportData/form?pageFrom=edit&item=" + JSON.stringify(this.roadData)
})
},
// getDetail(){
// this.$request(getApp().globalData.baseUrl + '/api/biz/highSpeedOperationController/selectById/' + '8A47103EE00000018772BC97AE50FFB7',{},"GET").then(res =>{
// console.log(res)
// })
// },
getDetail(){
this.$request(getApp().globalData.baseUrl + '/api/biz/highSpeedOperationController/selectById/' + '8A47103EE00000018772BC97AE50FFB7',"GET").then(res =>{
console.log(res)
})
},
}
}
</script>

@ -54,7 +54,7 @@
<view class="edit_item input">
<p class="left">营运收入</p>
<view class="right">
<uni-easyinput v-model="roadData.operatingRevenue" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
<uni-easyinput type="number" v-model="roadData.operatingRevenue" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
</view>
</view>
<view class="edit_item input">
@ -72,7 +72,7 @@
<view class="edit_item input">
<p class="left">除定线农民工包车辆</p>
<view class="right">
<uni-easyinput v-model="roadData.otherCharter" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
<uni-easyinput type="number" v-model="roadData.otherCharter" placeholder="请输入" placeholderStyle="color:#d4d4d4;"></uni-easyinput>
</view>
</view>
<view class="edit_item input">
@ -272,6 +272,7 @@
</template>
<script>
import { getDateStr } from '../../../common/util'
export default {
data() {
return {
@ -334,15 +335,17 @@
this.pageType = 'edit'
console.log(this.index)
uni.setNavigationBarTitle({
title:"道路运输编辑"
})
// uni.setNavigationBarTitle({
// title:""
// })
}else if(options.pageFrom == 'add'){
this.pageType = 'add'
this.roadData.reportingUnitId = '522'
uni.setNavigationBarTitle({
title:"道路运输新增"
})
// uni.setNavigationBarTitle({
// title:""
// })
}else if(options.type == 'add'){
this.pageType = 'add'
}
},
@ -414,6 +417,18 @@
this.timeName = item.dictLabel
}
})
}else if(this.pageType == 'add'){
let now = new Date();
let dateStr = getDateStr(now,0);
if(new Date(dateStr + ' 11:00').getTime() < new Date().getTime() && new Date().getTime() < new Date(dateStr + ' 13:30').getTime()) {
this.roadData.reportPhase = "0012";
this.index = this.roadTime.findIndex(item => item.dictValue == "0012")
this.timeName = this.roadTime.find(item => item.dictValue == "0012").dictLabel
}else{
this.roadData.reportPhase = "03";
this.index = this.roadTime.findIndex(item => item.dictValue == "03")
this.timeName = this.roadTime.find(item => item.dictValue == "03").dictLabel
}
}
})
@ -438,13 +453,14 @@
<style lang="scss" scoped>
.edit_box{
width: 100%;
height: 100%;
// width: 100%;
// height: 100%;
padding: 30rpx 30rpx 195rpx;
.top_box{
margin-top: 30rpx;
height:88%;
overflow-y: auto;
// margin-top: 30rpx;
// height:88%;
// overflow-y: auto;
.top_title{
width: 690rpx;
@ -595,14 +611,23 @@
}
.bottom_box{
// position: fixed;
// left: 0;
// right: 0;
// bottom: 0;
// display: flex;
// justify-content: space-around;
// padding: 0rpx 0rpx 20px;
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: space-around;
// background-color: #F8F8F8;
padding: 0rpx 0rpx 20px;
justify-content: space-between;
padding: 40rpx 30rpx;
background-color: #f5f5f5;
z-index: 99;
.btn_item{
width: 329rpx;

@ -3,13 +3,13 @@
<!-- 道路运输页面 -->
<view class="top_box">
<view class="list_box">
<view class="list_item" v-for="(item,index) in listData" :key="index">
<view class="list_item" v-for="(item,index) in listData" :key="index" @click="editItem(item)">
<view class="list_top">
<view class="unit_tags">管理单位</view>
<view class="unit_name">{{item.reportingUnitId}}</view>
<view class="unit_tags">报送时间</view>
<view class="unit_name">{{item.statisticalDate || ''}}<text style="margin-left:16rpx;">{{item.reportPhaseValue || ''}}</text></view>
</view>
<view class="report_time">{{item.statisticalDate || ''}}<text style="margin-left:16rpx;">{{item.reportPhaseValue || ''}}</text></view>
<view class="item">
<!-- <view class="report_time">{{item.statisticalDate || ''}}<text style="margin-left:16rpx;">{{item.reportPhaseValue || ''}}</text></view> -->
<!-- <view class="item">
<view class="item_line" @click="showDetail(index,true)">
<view class="left_txt">定线通勤包车()</view>
<view class="right_txt">{{item.regularCommuteCharter == 0 ? 0 : item.regularCommuteCharter || ''}}</view>
@ -49,15 +49,8 @@
<text class="txt">收起</text>
</view>
</view>
</view>
<view class="button_box">
<p class="button" @click="detailItem(item)">查看详情</p>
<p class="button edit" @click="editItem(item)">编辑</p>
</view>
<!-- <p class="item"><span style="margin-left:30rpx">填报单位</span><span style="margin-right:30rpx">{{item.reportingUnitId}}</span></p>
<p class="item"><span style="margin-left:30rpx">统计日期</span><span style="margin-right:30rpx">{{item.statisticalDate}}</span></p>
<p class="item"><span style="margin-left:30rpx">联系电话</span><span style="margin-right:30rpx">{{item.contactNumber}}</span></p>
<view class="button_box">
</view> -->
<!-- <view class="button_box">
<p class="button" @click="detailItem(item)">查看详情</p>
<p class="button edit" @click="editItem(item)">编辑</p>
</view> -->
@ -67,11 +60,11 @@
:content-text="contentText"></uni-load-more>
</view>
<view class="bottom_box">
<view class="act_btn" @click="handleAdd">
<!-- <view class="act_btn" @click="handleAdd">
<uni-icons type="plusempty" size="18"
color="#fff" style="margin-right: 9rpx;"></uni-icons>
新建
</view>
</view> -->
<view class="act_btn btn1" @click="handleSearch">
<uni-icons type="search" size="18" color="#2D8CF0"
style="margin-right: 9rpx;"></uni-icons>
@ -83,7 +76,7 @@
<view class="pop_box">
<view class="pop_title">
查询条件
<uni-icons type="closeempty" size="18" color="#666" class="pop_close"></uni-icons>
<uni-icons @click="this.$refs.popup.close()" type="closeempty" size="18" color="#666" class="pop_close"></uni-icons>
</view>
<view class="popup-content">
<view class="cont_tit">
@ -135,6 +128,7 @@
}
},
onShow(){
console.log('onPullDownRefresh123123');
this.hasMore = true;
this.listData = [];
this.page = 0
@ -142,6 +136,15 @@
this.loadMore()
this.getUnitData();
},
onPullDownRefresh() {
console.log('onPullDownRefresh');
this.listData = [];
this.page = 0
this.hasMore = true;
this.loadMore();
this.queryTime();
this.getUnitData();
},
onLoad(){
},
@ -196,6 +199,7 @@
searchReset(){
this.unit = '';
this.timeRange = [];
this.listData = [];
this.hasMore = true;
this.page = 0;
this.$refs.popup.close()
@ -211,7 +215,7 @@
pageSize:this.size,
statisticalDateStart:this.timeRange.length !== 0 ? this.timeRange[0] : '',
statisticalDateEnd:this.timeRange.length !== 0 ? this.timeRange[1] : '',
t:Date.parse(new Date())
_t:Date.parse(new Date())
}
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/road/list',params,"GET").then(res =>{
console.log(res)
@ -295,14 +299,13 @@
.list_item{
width: 630rpx;
padding: 40rpx 30rpx;
padding: 30rpx;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
margin-bottom: 30rpx;
.list_top {
display: flex;
margin-bottom: 30rpx;
.unit_tags {
height: 37rpx;
@ -440,10 +443,10 @@
display: flex;
justify-content: space-around;
background-color: #F8F8F8;
padding: 30rpx 0rpx 20px;
padding: 20px 30rpx;
.act_btn {
width: 329rpx;
width: 690rpx;
height: 90rpx;
line-height: 88rpx;
display: flex;

Loading…
Cancel
Save