书写道路运输相关页面,查看详情页面及接口调用逻辑

main
jinna 2 years ago
parent b5a3c7c45c
commit 0a7f48c5f5
  1. 38
      pages.json
  2. 22
      pages/roadTransport/dataSubmission/detail.vue
  3. 173
      pages/roadTransport/dataSubmission/form.vue
  4. 205
      pages/roadTransport/dataSubmission/list.vue
  5. 22
      pages/roadTransport/quantitySent/detail.vue
  6. 22
      pages/roadTransport/quantitySent/form.vue
  7. 204
      pages/roadTransport/quantitySent/list.vue
  8. 383
      pages/roadTransport/transportData/detail.vue
  9. 364
      pages/roadTransport/transportData/form.vue
  10. 368
      pages/roadTransport/transportData/list.vue
  11. BIN
      static/image/spread.png

@ -36,6 +36,42 @@
"navigationBarTitleText": "高速运行情况"
}
},
{
"path": "pages/roadTransport/transportData/list",
"style": {
"navigationBarTitleText": "道路运输"
}
},
{
"path": "pages/roadTransport/transportData/form",
"style": {
"navigationBarTitleText": "道路运输编辑"
}
},
{
"path": "pages/roadTransport/dataSubmission/list",
"style": {
"navigationBarTitleText": "综合运输数据报送"
}
},
{
"path": "pages/roadTransport/dataSubmission/form",
"style": {
"navigationBarTitleText": "综合运输数据报送编辑"
}
},
{
"path": "pages/roadTransport/quantitySent/list",
"style": {
"navigationBarTitleText": "道路运输发送量"
}
},
{
"path": "pages/roadTransport/transportData/detail",
"style": {
"navigationBarTitleText": "查看详情"
}
},
// pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/tabBar/component/component",
@ -376,7 +412,7 @@
"disableScroll": true
}
}
],
],
"subPackages": [{
"root": "pages/API",
"pages": [{

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -0,0 +1,173 @@
<template>
<!-- 编辑综合运输 -->
<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.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>
</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>
</view>
<view class="edit_item">
<p class="left">交通运行情况</p>
<p class="right">{{synthData.trafficOperationDescription}}</p>
</view>
</view>
</view>
<view class="bottom_box">
<p class="btn_item" @click="cancelEdit">取消</p>
<p class="btn_item" @click="confirmRoad">确认</p>
</view>
</view>
</template>
<script>
export default {
data() {
return {
roadTime:[],
unitData:[],
synthData:{
reportPhase:'',
reportDatetime:'',
trafficOperationDescription:''
}
}
},
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()
},
methods: {
//
getRoadTime(){
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time&_t=1693372307694',"GET").then(res =>{
this.roadTime = res.data
})
},
//
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){}
}
})
},
//
cancelEdit(){
uni.navigateBack()
},
onchange(e){
console.log('确定===》',e)
},
onnodeclick(e){
console.log('点击===》',e)
}
}
}
</script>
<style lang="scss" scoped>
.edit_synth{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
margin-top: 30rpx;
height:100%;
.top_con{
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;
&:last-child{
margin-bottom: 0;
}
.left{
margin-left: 30rpx;
}
.right{
margin-right: 30rpx;
display: flex;
align-items: center;
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
position: fixed;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
.btn_item{
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 40rpx;
border: 1rpx solid #D73232;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
}
</style>

@ -0,0 +1,205 @@
<template>
<view class="synth_box">
<!-- 综合运输数据 -->
<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>
</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>
</view>
</template>
<script>
export default {
data() {
return {
synthData:[],
page:0,
pageSize:10,
timeRange:[],
unit:'',
hasMore:true,
contentText: {
contentdown: "点击查看更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了",
},
status: '',
}
},
onShow(){
this.page = 0;
this.hasMore = true;
this.synthData = []
this.loadMore()
},
methods: {
//
loadMore() {
if (this.hasMore) {
this.page = this.page + 1;
this.status = 'loading';
let params = {
page:this.page,
pageSize:this.pageSize,
_t:'1693380361996',
reportDatetimeStart:this.timeRange.length != 0 ? this.timeRange[0] : '',
reportDatetimeEnd:this.timeRange.length != 0 ? this.timeRange[1] : '',
departmentId:this.unit ? this.unit : ''
}
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/operation/list',params,"GET").then(res =>{
console.log(res)
if(res.code == 200){
// this.unitData = res.data
this.synthData = this.synthData.concat(res.data.list);
if(res.data.list.length == 0 || res.data.list.length < this.pageSize){
this.hasMore = false;
this.status = 'nomore';
}else{
this.status = 'more';
}
}
})
}
},
//
editItem(row){
uni.navigateTo({
url:"/pages/roadTrans/editSynth?item=" + JSON.stringify(row)
})
},
//
deleteItem(row){
uni.showModal({
title:"提示",
content:"您确定,删除该数据吗?",
success: (res) => {
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/operation/delete/' + row.id,{},'DELETE').then(res =>{
if(res.code == 200){
uni.showToast({
title:"删除成功",
icon:"none"
});
this.hasMore = true;
this.page = 0;
this.synthData = [];
this.loadMore()
}
})
}else if(res.cancel){
}
}
})
},
}
}
</script>
<style lang="scss" scoped>
.synth_box{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
overflow-y: auto;
.list_box{
width: 690rpx;
display: flex;
flex-direction: column;
margin: 0 auto;
.list_item{
width: 100%;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
.item{
width: 100%;
display: flex;
justify-content: space-between;
margin: 20rpx 0;
}
.button_box{
width: 100%;
display: flex;
justify-content: flex-end;
margin-bottom: 20rpx;
.button{
width:200rpx;
height: 70rpx;
background: #FFFFFF;
border-radius: 50rpx;
border: 1rpx solid #cdcdcd;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #333;
margin-left: 30rpx;
&.del{
border: 1rpx solid #D73232;
color: #D73232;
}
&:last-child{
margin-right: 30rpx;
}
}
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
background: #fff;
position: fixed;
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;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
}
</style>

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -0,0 +1,204 @@
<template>
<view class="synth_box">
<!-- 道路运输发送量 -->
<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="button_box">
<p class="button" @click="editItem(item)">编辑</p>
<p class="button del" @click="deleteItem(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>
</view>
</template>
<script>
export default {
data() {
return {
sendData:[],
page:0,
pageSize:10,
timeRange:[],
unit:'',
hasMore:true,
contentText: {
contentdown: "点击查看更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了",
},
status: '',
}
},
onShow(){
this.page = 0;
this.hasMore = true;
this.sendData = []
this.loadMore()
},
methods: {
//
loadMore() {
if (this.hasMore) {
this.page = this.page + 1;
this.status = 'loading';
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] : '',
}
this.$request(getApp().globalData.baseUrl + '/api/biz/bizTransportData/list',params,"GET").then(res =>{
console.log(res)
if(res.code == 200){
// this.unitData = res.data
this.sendData = this.sendData.concat(res.data.list);
if(res.data.list.length == 0 || res.data.list.length < this.pageSize){
this.hasMore = false;
this.status = 'nomore';
}else{
this.status = 'more';
}
}
})
}
},
//
// editItem(row){
// uni.navigateTo({
// url:"/pages/roadTrans/editSynth?item=" + JSON.stringify(row)
// })
// },
//
deleteItem(row){
uni.showModal({
title:"提示",
content:"您确定,删除该数据吗?",
success: (res) => {
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/bizTransportData/delete/' + row.id,{},'DELETE').then(res =>{
if(res.code == 200){
uni.showToast({
title:"删除成功",
icon:"none"
});
this.hasMore = true;
this.page = 0;
this.sendData = [];
this.loadMore()
}
})
}else if(res.cancel){
}
}
})
},
}
}
</script>
<style lang="scss" scoped>
.synth_box{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
overflow-y: auto;
.list_box{
width: 690rpx;
display: flex;
flex-direction: column;
margin: 0 auto;
.list_item{
width: 100%;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
.item{
width: 100%;
display: flex;
justify-content: space-between;
margin: 20rpx 0;
}
.button_box{
width: 100%;
display: flex;
justify-content: flex-end;
margin-bottom: 20rpx;
.button{
width:200rpx;
height: 70rpx;
background: #FFFFFF;
border-radius: 50rpx;
border: 1rpx solid #cdcdcd;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #333;
margin-left: 30rpx;
&.del{
border: 1rpx solid #D73232;
color: #D73232;
}
&:last-child{
margin-right: 30rpx;
}
}
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
background: #fff;
position: fixed;
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;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
}
</style>

@ -0,0 +1,383 @@
<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.organizationName}}</view>
</view>
<view class="unit_time">{{roadData.statDate}} {{roadData.statPeriodValue}}</view>
</view>
<view class="all_item first">
<view class="all_left">收费站入口车辆数汇总</view>
<view class="all_right">{{roadData.entranceVehicleCount ? roadData.entranceVehicleCount : ''}}</view>
</view>
<view class="all_item">
<view class="all_left">收费站出口车辆数汇总</view>
<view class="all_right">{{roadData.exitVehicleCount ? roadData.exitVehicleCount : ''}}</view>
</view>
<view class="all_item">
<view class="all_left">收费站入口车辆数汇总环比</view>
<view class="all_right" :class="roadData.entranceVehicleCountMom > 0 ? 'green' : roadData.entranceVehicleCountMom < 0 ? 'red' : ''">{{roadData.entranceVehicleCountMom ? roadData.entranceVehicleCountMom + '%' : roadData.entranceVehicleCountMom == 0 ? 0 : ''}}</view>
</view>
<view class="all_item">
<view class="all_left">收费站出口车辆数汇总环比</view>
<view class="all_right" :class="roadData.exitVehicleCountMom > 0 ? 'green' : roadData.exitVehicleCountMom < 0 ? 'red' : ''">{{roadData.exitVehicleCountMom ? roadData.exitVehicleCountMom + '%' : roadData.exitVehicleCountMom == 0 ? 0 : ''}}</view>
</view>
<view class="all_item">
<view class="all_left">收费站入口车辆数汇总同比</view>
<view class="all_right" :class="roadData.entranceVehicleCountYoy > 0 ? 'green' : roadData.entranceVehicleCountYoy < 0 ? 'red' : ''">{{roadData.entranceVehicleCountYoy ? roadData.entranceVehicleCountYoy + '%' : roadData.entranceVehicleCountYoy == 0 ? 0 : ''}}</view>
</view>
<view class="all_item last">
<view class="all_left">收费站出口车辆数汇总同比</view>
<view class="all_right" :class="roadData.exitVehicleCountYoy > 0 ? 'green' : roadData.exitVehicleCountYoy < 0 ? 'red' : ''">{{roadData.exitVehicleCountYoy ? roadData.exitVehicleCountYoy + '%' : roadData.exitVehicleCountYoy == 0 ? 0 : ''}}</view>
</view>
<view class="con_item" v-if="roadData.highwaySubDataList" v-for="(item,index) in roadData.highwaySubDataList" :key="index">
<view class="spread_box" v-if="item.isSpread">
<view class="item_con first">
<view class="left">收费站名称</view>
<view class="right">{{item.tollStationName}}</view>
</view>
<view class="item_con">
<view class="left">高速公路名称</view>
<view class="right">{{item.highwayName}}</view>
</view>
<view class="item_con">
<view class="left">收费站入口车辆数</view>
<view class="right">{{item.entranceVehicleCount}}</view>
</view>
<view class="item_content">
<view class="content top">
<view class="left">收费站入口车辆数环比(%)</view>
<view class="right" :class="item.entranceVehicleCountMom > 0 ? 'green' : item.entranceVehicleCountMom < 0 ? 'red' : ''">{{item.entranceVehicleCountMom ? item.entranceVehicleCountMom + '%' : item.entranceVehicleCountMom == 0 ? 0 : ''}}</view>
</view>
<view class="content">
<view class="left">收费站入口车辆数同比(%)</view>
<view class="right" :class="item.entranceVehicleCountYoy > 0 ? 'green' : item.entranceVehicleCountYoy < 0 ? 'red' : ''">{{item.entranceVehicleCountYoy ? item.entranceVehicleCountYoy + '%' : item.entranceVehicleCountYoy == 0 ? 0 : ''}}</view>
</view>
</view>
<view class="item_con">
<view class="left">收费站出口车辆数</view>
<view class="right">{{item.exitVehicleCount}}</view>
</view>
<view class="item_content">
<view class="content top">
<view class="left">收费站出口车辆数环比(%)</view>
<view class="right" :class="item.exitVehicleCountMom > 0 ? 'green' : item.exitVehicleCountMom < 0 ? 'red' : ''">{{item.exitVehicleCountMom ? item.exitVehicleCountMom + '%' : item.exitVehicleCountMom == 0 ? 0 : ''}}</view>
</view>
<view class="content">
<view class="left">收费站出口车辆数同比(%)</view>
<view class="right" :class="item.exitVehicleCountYoy > 0 ? 'green' : item.exitVehicleCountYoy < 0 ? 'red' : ''">{{item.exitVehicleCountYoy ? item.exitVehicleCountYoy + '%' : item.exitVehicleCountYoy == 0 ? 0 : ''}}</view>
</view>
</view>
<view class="item_con">
<view class="left">免收通行费车辆数</view>
<view class="right">{{item.tollExemptVehicleCount}}</view>
</view>
<view class="item_content">
<view class="content top">
<view class="left">免收通行费车辆数环比(%)</view>
<view class="right" :class="item.tollExemptVehicleCountMom > 0 ? 'green' : item.tollExemptVehicleCountMom < 0 ? 'red' : ''">{{item.tollExemptVehicleCountMom ? item.tollExemptVehicleCountMom + '%' : item.tollExemptVehicleCountMom == 0 ? 0 : ''}}</view>
</view>
<view class="content">
<view class="left">免收通行费车辆数同比(%)</view>
<view class="right" :class="item.tollExemptVehicleCountYoy > 0 ? 'green' : item.tollExemptVehicleCountYoy < 0 ? 'red' : ''">{{item.tollExemptVehicleCountYoy ? item.tollExemptVehicleCountYoy + '%' : item.tollExemptVehicleCountYoy == 0 ? 0 : ''}}</view>
</view>
</view>
<view class="item_con">
<view class="left">免收通行费金额</view>
<view class="right">{{item.tollExemptAmount}}</view>
</view>
<view class="item_con">
<view class="left">出口通行费</view>
<view class="right">{{item.exitToll}}</view>
</view>
<view class="item_con">
<view class="left">报送人员及联系方式</view>
<view class="right">{{item.submitPersonnelContact}}</view>
</view>
<view class="expand_box" @click="clickPack(item)">
<image class="img" src="../../../static/image/spread.png" mode=""></image>
<view class="tit">收起</view>
</view>
</view>
<view class="no_spread" v-if="!item.isSpread" @click="handleSpread(item)">
<view class="item_con first">
<view class="left">收费站名称</view>
<view class="right">{{item.tollStationName}}</view>
</view>
</view>
</view>
</view>
<view class="bottom_box">
<p class="edit_btn">编辑</p>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
roadData:{},
}
},
onLoad(options){
let item = JSON.parse(options.item)
console.log(item)
let item1 = JSON.parse(JSON.stringify(item))
if(item1.highwaySubDataList){
item1.highwaySubDataList[0].isSpread = true; //falsetrue
}
this.roadData = item1
// this.getDetail()
},
methods: {
//
clickPack(item){
this.$set(item,"isSpread",false)
},
handleSpread(item){
this.$set(item,"isSpread",true)
},
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{
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;
}
}
.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{
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;
}
}
}
}
</style>

@ -0,0 +1,364 @@
<template>
<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>{{roadData.statisticalDate}}</p>
<uni-datetime-picker type="date" v-model="roadData.statisticalDate">
<image style="width: 49rpx;height: 49rpx;" src="../../static/icons/number-box.png" mode=""></image>
</uni-datetime-picker>
</view>
</view>
<view class="edit_item">
<p class="left">统计时段</p>
<!-- <p class="right">{{roadData.reportPhase}}</p> -->
<view class="right">
<uni-data-picker v-model="roadData.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>
</view>
<view class="edit_item">
<p class="left">填报单位</p>
<p class="right">{{roadData.reportingUnitId}}</p>
</view>
<view class="edit_item">
<p class="left">负责人</p>
<p class="right">{{roadData.responsiblePersonId}}</p>
</view>
<view class="edit_item">
<p class="left">联系电话</p>
<p class="right">{{roadData.contactNumber}}</p>
</view>
<view class="edit_item">
<p class="left">营运收入</p>
<p class="right">{{roadData.operatingRevenue ? roadData.operatingRevenue : ''}}</p>
</view>
<view class="edit_item">
<p class="left">定线通勤包车辆</p>
<p class="right">{{roadData.regularCommuteCharter ? roadData.regularCommuteCharter : ''}}</p>
</view>
<view class="edit_item">
<p class="left">运送农民工报车辆</p>
<p class="right">{{roadData.migrantWorkersCharter ? roadData.migrantWorkersCharter : ''}}</p>
</view>
<view class="edit_item">
<p class="left">除定线农民工包车辆</p>
<p class="right">{{roadData.otherCharter}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力包车数</p>
<p class="right">{{roadData.capacityCharter}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力班车数</p>
<p class="right">{{roadData.capacityShuttle}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力总客车数</p>
<p class="right">{{roadData.capacityTotalBus}}</p>
</view>
<view class="edit_item">
<p class="left">定线通勤班次</p>
<p class="right">{{roadData.regularCommuteTrips}}</p>
</view>
<view class="edit_item">
<p class="left">运送农民工班次</p>
<p class="right">{{roadData.migrantWorkersTrips}}</p>
</view>
<view class="edit_item">
<p class="left">除定线通勤包车农民工包车班次</p>
<p class="right">{{roadData.otherTrips}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力包车班次</p>
<p class="right">{{roadData.capacityCharterTrips}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力班车班次</p>
<p class="right">{{roadData.capacityShuttleTrips}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力班次</p>
<p class="right">{{roadData.capacityTotalTrips}}</p>
</view>
<view class="edit_item">
<p class="left">定线通勤包车客运量</p>
<p class="right">{{roadData.regularCommutePassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">运送农民工包车客运量</p>
<p class="right">{{roadData.migrantWorkersPassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">除定线通勤包车农民工包车以外的客运量</p>
<p class="right">{{roadData.otherPassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">包车客运量</p>
<p class="right">{{roadData.charterPassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">班车客运量</p>
<p class="right">{{roadData.shuttlePassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">完成客运量</p>
<p class="right">{{roadData.totalPassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">总客位数()</p>
<p class="right">{{roadData.totalSeatCapacity}}</p>
</view>
<view class="edit_item">
<p class="left">去年同期客运量</p>
<p class="right">{{roadData.passengerVolumeLastYear}}</p>
</view>
<view class="edit_item">
<p class="left">去年总客车量()</p>
<p class="right">{{roadData.totalBusLastYear}}</p>
</view>
<view class="edit_item">
<p class="left">客运量与去年同期比率(%)</p>
<p class="right">{{roadData.regularCommutePassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">客车总量同比上升 (%)</p>
<p class="right">{{roadData.totalBusIncreaseRatio}}</p>
</view>
<view class="edit_item">
<p class="left">定制客运量(万人)</p>
<p class="right">{{roadData.customizedPassengerVolume}}</p>
</view>
<view class="edit_item">
<p class="left">投放运力加班数</p>
<p class="right">{{roadData.overtimeTrips}}</p>
</view>
<view class="edit_item">
<p class="left">较大以上安全事故次数</p>
<p class="right">{{roadData.significantAccidents}}</p>
</view>
<view class="edit_item">
<p class="left">联网售票张数(万张)</p>
<p class="right">{{roadData.onlineTicketSales}}</p>
</view>
<view class="edit_item">
<p class="left">当日人员伤者数()</p>
<p class="right">{{roadData.dailyInjuredPersons}}</p>
</view>
<view class="edit_item">
<p class="left">交通运行情况</p>
<p class="right">{{roadData.trafficSituationReport}}</p>
</view>
<view class="edit_item">
<p class="left">当日人员亡者数()</p>
<p class="right">{{roadData.dailyFatalities}}</p>
</view>
<view class="edit_item">
<p class="left">应急情况报告</p>
<p class="right">{{roadData.emergencySituationReport}}</p>
</view>
<view class="edit_item">
<p class="left">备注</p>
<p class="right">{{roadData.remarks}}</p>
</view>
</view>
</view>
<view class="bottom_box">
<p class="btn_item" @click="cancelEdit">取消</p>
<p class="btn_item" @click="confirmRoad">确认</p>
</view>
</view>
</template>
<script>
export default {
data() {
return {
roadTime:[],
unitData:[],
personData:[],
roadData:{
statisticalDate:'', //
reportPhase:'', //
reportingUnitId:'', //
responsiblePersonId:'', //
contactNumber:'', //
operatingRevenue:0,//
regularCommuteCharter:0,//线
migrantWorkersCharter:0,//
otherCharter:0,//线
capacityCharter:0, //
capacityShuttle:0, //
capacityTotalBus:0, //
regularCommuteTrips:0, //线
migrantWorkersTrips:0, //
otherTrips:0, //线
capacityCharterTrips:0, //
capacityShuttleTrips:0, //
capacityTotalTrips:0, //
regularCommutePassengerVolume:0, //线
migrantWorkersPassengerVolume:0, //
otherPassengerVolume:0, //线
charterPassengerVolume:0, //
shuttlePassengerVolume:0, //
totalPassengerVolume:0, //
totalSeatCapacity:0, //()
passengerVolumeLastYear:0, //
totalBusLastYear:0, //()
passengerVolumeRatio:0, //(%)
totalBusIncreaseRatio:0, // (%)
customizedPassengerVolume:0, //()
overtimeTrips:0, //
significantAccidents:0, //
onlineTicketSales:0, //()
dailyInjuredPersons:0, //()
trafficSituationReport:'', //
dailyFatalities:0, //()
emergencySituationReport:'', //
remarks:'', //
}
}
},
onLoad(options){
const item = JSON.parse(options.item);
console.log(item)
this.roadData = item
this.getUnitData()
this.getRoadTime()
this.getPersonData()
},
methods: {
//
confirmRoad(){
console.log('点击按钮')
let params = this.roadData;
uni.showModal({
title:"提示",
content:"您确定,提交修改吗?",
success:(res) =>{
if(res.confirm){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/road/saveOrUpdate',params,'POST').then(res =>{
if(res.code == 200){
uni.showToast({
title:'修改成功',
icon:"none"
});
uni.navigateBack()
}
})
}else if(res.cancel){}
}
})
},
//
cancelEdit(){
uni.navigateBack()
},
//
getUnitData(){
this.$request(getApp().globalData.baseUrl + '/api/dept/queryRegionTree',"GET").then(res =>{
if(res.code == 200){
this.unitData = res.data
}
})
},
//
getRoadTime(){
this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time&_t=1693372307694',"GET").then(res =>{
this.roadTime = res.data
})
},
//
getPersonData(){
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/staff/list?query=&_t=1693373171858',"GET").then(res =>{
this.personData = res.data
})
},
onchange(e){
console.log('确定===》',e)
},
onnodeclick(e){
console.log('点击===》',e)
}
}
}
</script>
<style lang="scss" scoped>
.edit_box{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
margin-top: 30rpx;
height:100%;
.top_con{
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;
&:last-child{
margin-bottom: 0;
}
.left{
margin-left: 30rpx;
}
.right{
margin-right: 30rpx;
display: flex;
align-items: center;
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
position: fixed;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
.btn_item{
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 40rpx;
border: 1rpx solid #D73232;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
}
</style>

@ -0,0 +1,368 @@
<template>
<view class="page_box">
<!-- 道路运输页面 -->
<!--
</view> -->
<view class="top_box">
<view class="list_box">
<view class="list_item" v-for="(item,index) in listData" :key="index">
<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">
<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>
<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>
<view class="pop_box">
<uni-popup ref="popup" style="width: 100%;" background-color="#fff">
<view class="pop_title">
筛选
</view>
<view class="popup-content">
<view class="cont_tit">
统计起止时间
</view>
<view class="time_box">
<uni-datetime-picker v-model="timeRange" type="daterange" @maskClick="maskClick" />
</view>
<view class="cont_tit picker">
填报单位
</view>
<view class="picker_box">
<uni-data-picker v-model="unit" :localdata="unitData" :map="{text:'deptName',value:'deptId'}" popup-title="请选择班级" @change="onchange" @nodeclick="onnodeclick"></uni-data-picker>
</view>
</view>
<view class="btn_box">
<p class="btn" @click="searchReset">重置</p>
<p class="btn" @click="searchList">筛选</p>
</view>
</uni-popup>
</view>
</view>
</template>
<script>
export default {
data() {
return {
unitData:[],
unit:'',
timeRange:[],
listData:[],
contentText: {
contentdown: "点击查看更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了",
},
status: '',
hasMore:true,
page:0,
size:10,
}
},
onShow(){
this.hasMore = true;
this.listData = [];
this.page = 0
this.loadMore()
this.getUnitData();
},
onLoad(){
},
methods: {
//
handleSearch(){
this.$refs.popup.open('bottom')
},
//
getUnitData(){
this.$request(getApp().globalData.baseUrl + '/api/dept/queryRegionTree',"GET").then(res =>{
if(res.code == 200){
this.unitData = res.data
}
})
},
//
searchList(){
this.hasMore = true;
this.page = 0;
this.listData = [];
this.$refs.popup.close()
this.loadMore()
},
//
searchReset(){
this.unit = '';
this.timeRange = [];
this.hasMore = true;
this.page = 0;
this.$refs.popup.close()
this.loadMore();
},
//
loadMore() {
if (this.hasMore) {
this.page = this.page + 1;
this.status = 'loading';
let params = {
page:3,
pageSize:this.size,
statisticalDateStart:this.timeRange.length !== 0 ? this.timeRange[0] : '',
statisticalDateEnd:this.timeRange.length !== 0 ? this.timeRange[1] : '',
// reportingUnitId:this.unit,
_t: '1693445883559'
}
// this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/road/list',params,"GET").then(res =>{
// console.log(res)
// if(res.code == 200){
// // this.unitData = res.data
// 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';
// }
// }
// })
this.$request(getApp().globalData.baseUrl + '/api/biz/highwayParentDataController/list',params,"GET").then(res =>{
console.log(res)
if(res.code == 200){
// this.unitData = res.data
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';
}
}
})
}
},
//
deleteItem(row){
uni.showModal({
title:'提示',
content:"您真的,确定要删除吗?",
success:(res) =>{
if(res.confirm){
console.log(row);
this.$request(getApp().globalData.baseUrl + '/api/biz/roadtransport/road/delete/' + row.id,{},'DELETE').then(res =>{
if(res.code == 200){
uni.showToast({
title:"删除成功",
icon:"none"
});
this.hasMore = true;
this.page = 0;
this.listData = [];
this.loadMore()
}
})
}else if(res.cancel){}
}
})
},
//
editItem(row){
console.log(row)
uni.navigateTo({
url:'pages/roadTransport/transportData/detail?item=' + JSON.stringify(row)
})
},
//
detailItem(row){
console.log('111')
uni.navigateTo({
// url:"pages/roadTransport/transportData/detail?item=" + JSON.stringify(row)
url:"/pages/roadTransport/transportData/detail?item=" + JSON.stringify(row)
})
},
onchange(e){
console.log('确定===》',e)
},
onnodeclick(e){
console.log('点击===》',e)
}
}
}
</script>
<style lang="scss" scoped>
.page_box{
width: 100%;
height: 100%;
.top_box{
padding-bottom: 160rpx;
overflow-y: auto;
.list_box{
width: 690rpx;
display: flex;
flex-direction: column;
margin: 0 auto;
.list_item{
width: 100%;
border-radius: 30rpx;
background: #FFFFFF;
margin-top: 20rpx;
.item{
width: 100%;
display: flex;
justify-content: space-between;
margin: 20rpx 0;
}
.button_box{
width: 100%;
display: flex;
justify-content: flex-end;
margin-bottom: 20rpx;
.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;
}
&:last-child{
margin-right: 30rpx;
}
}
}
}
}
}
.bottom_box{
width: 100%;
height: 150rpx;
background: #fff;
position: fixed;
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;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
.pop_box{
.pop_title{
width: 100%;
display: flex;
justify-content: center;
margin: 30rpx 0;
}
.popup-content{
// display: flex;
// flex-direction: column;
.cont_tit{
width: 100%;
display: flex;
margin-bottom: 30rpx;
margin-left: 30rpx;
&.picker{
margin-top: 30rpx;
}
}
.time_box{
width: 690rpx;
margin: 0 auto;
/deep/ .uni-date-x--border{
border-radius: 30rpx;
.uni-date-x {
background: transparent;
}
}
}
.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: center;
.btn {
width: 320rpx;
height: 78rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 1rpx solid #D73232;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #D73232;
&:last-child {
background: #D73232;
margin-left: 50rpx;
color: #FFFFFF;
}
}
}
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Loading…
Cancel
Save