From deb2a67c1a9824b288ce4a7a228347ffd60964fe Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 24 九月 2024 18:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/platform/LogisticsRecord/waybill.vue | 10
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java | 29
admin/src/views/statistics/platformRecord.vue | 147 +-
admin/src/views/platform/components/PlatformQueuing.vue | 77 +
admin/src/api/platform/index.js | 6
admin/src/views/platform/LogisticsRecord/leaveAuth.vue | 9
admin/src/views/platform/LogisticsRecord/operationCity.vue | 3
h5/pages/driver/reserved.vue | 16
admin/src/views/index.vue | 97 +
admin/src/api/workbench/index.js | 2
pda/pages/index/queueup.vue | 3
h5/pages/staff/task/driver.vue | 7
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 17
admin/.env.test | 2
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 9
admin/src/views/platform/index.vue | 268 ++---
admin/src/components/common/CommonHeader.vue | 16
pda/pages/index/center.vue | 1707 ++++++++++++++++++++--------------------
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java | 16
admin/src/views/platform/LogisticsRecord/operation.vue | 3
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java | 13
22 files changed, 1,260 insertions(+), 1,199 deletions(-)
diff --git a/admin/.env.test b/admin/.env.test
index 87a902c..0e7cb4a 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -1,4 +1,4 @@
# 娴嬭瘯鐜閰嶇疆
NODE_ENV = 'production'
-VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface/'
+VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface'
diff --git a/admin/src/api/platform/index.js b/admin/src/api/platform/index.js
index a047f80..f799f80 100644
--- a/admin/src/api/platform/index.js
+++ b/admin/src/api/platform/index.js
@@ -8,7 +8,11 @@
export function platformCallList(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformCallList', data)
}
-// 鍙彿
+// 鍏ュ洯鍙彿
+export function platformInPark(data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformInPark', data)
+}
+// 鏈堝彴鍙彿
export function platformCallNumber(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformCallNumber', data)
}
diff --git a/admin/src/api/workbench/index.js b/admin/src/api/workbench/index.js
index c0efa78..815b79b 100644
--- a/admin/src/api/workbench/index.js
+++ b/admin/src/api/workbench/index.js
@@ -2,7 +2,7 @@
// 椤堕儴瀵艰埅
export function getAppHeaderNav (data) {
- return request.get('/visitsAdmin/cloudService/business/hksync/getHkMenuLink', data)
+ return request.get('/visitsAdmin/cloudService/business/hksync/getHkMenuLink?type='+ data)
}
// 涓讳綋鏁版嵁
export function getWorkbenchBody (data) {
diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 39799db..cc86262 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -8,10 +8,10 @@
<div>鏈嶅姟涓績</div>
<div class="linellae"></div>
</div>
- <div class="item" @click="getHeaderNav('')">瀹夐槻涓績</div>
- <div class="item" @click="getHeaderNav('')">娑堥槻涓績</div>
- <div class="item" @click="getHeaderNav('')">鑳界涓績</div>
- <div class="item" @click="getHeaderNav('')">椹鹃┒鑸�</div>
+ <div class="item" @click="getHeaderNav('0')">瀹夐槻涓績</div>
+ <div class="item" @click="getHeaderNav('1')">娑堥槻涓績</div>
+ <div class="item" @click="getHeaderNav('2')">鑳界涓績</div>
+ <div class="item" @click="getHeaderNav('3')">椹鹃┒鑸�</div>
</div>
<!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> -->
</div>
@@ -155,11 +155,9 @@
this.$refs.changePwdDataForm.resetFields()
})
},
- getHeaderNav(){
- getAppHeaderNav({
- type: ''
- }).then(res => {
- this.headerNavData = res
+ getHeaderNav(type){
+ getAppHeaderNav(type).then(res => {
+ window.open(res, "_blank");
})
},
// 纭畾淇敼瀵嗙爜
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index a391765..2fbeab3 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -65,7 +65,7 @@
<div class="funcs">
<div class="home_title">甯哥敤鍔熻兘</div>
<div class="list">
- <div v-for="item in funcList" :key="item.name" class="item">
+ <div v-for="item in funcList" @click="funcClick(item)" :key="item.name" class="item">
<img class="mb10" :src="item.url" alt="" />
<div>{{ item.name }}</div>
</div>
@@ -227,47 +227,56 @@
import { weeks } from '@/utils/config'
import {
getWorkbenchBody,
- getWorkbenchHead
+ getWorkbenchHead,
+ getAppHeaderNav
} from '@/api'
const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
export default {
- data () {
+ data() {
return {
colors,
nowDate: '',
nowWeek: '',
funcList: [
- { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png') },
- { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png') },
- { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png') },
+ { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png'), path: '/business/reportRecord' },
+ { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png'), path: '/operation/danger/record' },
+ { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png'), path: '/meeting/bookings' },
{ name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') }
]
}
},
computed: {
- userInfo(){
+ userInfo() {
return this.$store.state.userInfo
}
},
- created () {
-
+ created() {
this.updateDate()
setInterval(() => {
this.updateDate()
}, 1000 * 60 * 60)
},
- mounted () {
+ mounted() {
this.initData()
},
methods: {
- updateDate () {
+ funcClick(item) {
+ if (item.name == '鑰冨嫟宸ヤ綔鍙�') {
+ getAppHeaderNav(4).then(res => {
+ window.open(res, "_blank")
+ return
+ })
+ }
+ this.$router.push(item.path)
+ },
+ updateDate() {
this.nowDate = dayjs().format('YYYY骞碝鏈圖鏃�')
this.nowWeek = weeks[new Date().getDay()]
},
- initData () {
+ initData() {
this.getWorkBody() //涓讳綋鏁版嵁
this.getWorkHead() //涓讳綋鏁版嵁
-
+
this.initEchart1()
this.initEchart2()
this.initEchart3()
@@ -279,7 +288,7 @@
getWorkHead() {
getWorkbenchHead()
},
- initEchart1 () {
+ initEchart1() {
const myChart = echarts.init(document.getElementById('echart1'))
const option = {
series: [
@@ -307,7 +316,7 @@
myChart.resize()
})
},
- initEchart2 () {
+ initEchart2() {
const myChart = echarts.init(document.getElementById('echart2'))
myChart.setOption({
grid: {
@@ -362,7 +371,7 @@
myChart.resize()
})
},
- initEchart3 () {
+ initEchart3() {
const myChart = echarts.init(document.getElementById('echart3'))
myChart.setOption({
tooltip: {
@@ -461,7 +470,7 @@
myChart.resize()
})
},
- initEchart4 () {
+ initEchart4() {
const myChart = echarts.init(document.getElementById('echart4'))
myChart.setOption({
tooltip: {
@@ -568,23 +577,28 @@
div {
box-sizing: border-box;
}
+
.home_title {
font-weight: 600;
font-size: 16px;
color: #222222;
line-height: 22px;
}
+
.main {
display: flex;
position: relative;
z-index: 99;
+
.app_content {
flex: 1;
+
.static_card {
height: 187px;
color: #fff;
display: flex;
justify-content: space-between;
+
.card {
flex: 1;
height: 187px;
@@ -592,16 +606,20 @@
box-shadow: 0px 2px 10px 0px rgba(32, 127, 247, 0.4);
border-radius: 8px;
margin-right: 14px;
+
&:nth-of-type(2) {
background: linear-gradient(270deg, #8383ff 0%, #6b6eff 100%);
}
+
&:nth-of-type(3) {
background: linear-gradient(270deg, #42d49d 0%, #12bb8b 100%);
}
+
&:nth-of-type(4) {
margin-right: 0;
background: linear-gradient(270deg, #30d3de 0%, #04b7cd 100%);
}
+
.header {
height: 103px;
display: flex;
@@ -609,16 +627,19 @@
align-items: center;
padding: 20px 20px 12px;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+
img {
width: 40px;
height: 40px;
}
+
.num {
font-weight: 600;
font-size: 30px;
margin-top: 12px;
}
}
+
.content {
height: 82px;
display: flex;
@@ -629,20 +650,25 @@
}
}
}
+
.funcs {
height: 149px;
padding: 20px;
background: #fff;
margin: 10px 0;
+
.list {
display: flex;
padding-top: 20px;
+
.item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-right: 24px;
+ cursor: pointer;
+
img {
width: 44px;
height: 44px;
@@ -651,9 +677,11 @@
}
}
}
+
.app_side {
width: 408px;
margin-left: 10px;
+
.task {
background: #fff;
border-radius: 2px;
@@ -661,6 +689,7 @@
padding: 20px;
height: 346px;
margin-bottom: 10px;
+
.header {
.num {
position: relative;
@@ -675,27 +704,33 @@
border-radius: 8px;
margin-left: 13px;
}
+
.more {
font-size: 13px;
color: #999999;
}
}
+
.list {
.item {
display: flex;
align-items: center;
margin-top: 15px;
+
.content {
flex: 1;
+
.title {
color: #222222;
margin-bottom: 5px;
}
+
.time {
color: #999999;
font-size: 12px;
}
}
+
.btn {
margin-left: 10px;
width: 58px;
@@ -711,12 +746,14 @@
}
}
}
+
.warnning {
background: #fff;
border-radius: 2px;
border: 1px solid #eeeeee;
padding: 20px;
height: 508px;
+
.header {
.num {
position: relative;
@@ -731,13 +768,16 @@
border-radius: 8px;
margin-left: 13px;
}
+
.more {
font-size: 13px;
color: #999999;
}
}
+
.list {
padding-top: 6px;
+
.item {
margin-top: 10px;
padding: 15px;
@@ -745,29 +785,35 @@
height: 140px;
background: rgba(32, 127, 247, 0.05);
border-radius: 4px;
+
.name_wrap {
margin-bottom: 10px;
+
.name {
font-weight: 600;
color: #222222;
}
+
.identity {
font-size: 13px;
color: #207ff7;
}
}
+
.line {
color: #666666;
margin-bottom: 8px;
font-size: 13px;
}
+
.auth {
.time {
font-weight: 600;
font-size: 13px;
color: #ee3821;
}
- .btn{
+
+ .btn {
margin-left: 10px;
width: 58px;
text-align: center;
@@ -784,6 +830,7 @@
}
}
}
+
.static_wrap {
.wrap {
background: #fff;
@@ -792,30 +839,37 @@
border: 1px solid #eeeeee;
height: 250px;
flex: 1;
+
&:nth-of-type(2n) {
margin-left: 10px;
}
+
.echart {
width: 100%;
height: 190px;
}
+
.header {
display: flex;
justify-content: space-between;
align-items: center;
+
.more {
font-size: 13px;
color: #999999;
}
}
}
+
.static1 {
.content {
display: flex;
justify-content: center;
align-items: center;
+
.echart_wrap {
position: relative;
+
.pie_text {
position: absolute;
left: 50%;
@@ -824,16 +878,20 @@
z-index: 999;
}
}
+
.echart {
width: 150px;
height: 150px;
}
+
.list {
margin-left: 36px;
+
.item {
display: flex;
align-items: center;
margin: 8px 0;
+
.icon {
width: 16px;
height: 16px;
@@ -841,6 +899,7 @@
margin-right: 6px;
background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%);
}
+
.text {
margin-right: 6px;
}
@@ -850,6 +909,7 @@
}
}
}
+
.main_home {
background: #f4f7fc;
position: relative;
@@ -858,6 +918,7 @@
overflow: auto;
padding: 20px;
padding-top: 92px;
+
.home_header {
position: absolute;
top: 0;
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 116e23f..efacbd1 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -47,7 +47,7 @@
<el-table-column label="鎿嶄綔" align="center" fixed="right" min-width="100" show-overflow-tooltip>
<template v-slot="scope">
<el-button type="text" v-permissions="['business:platformbooks:detail']"
- @click="handleAuth(scope.row)">绂昏繙鎺堟潈</el-button>
+ @click="handleAuth(scope.row)">绂诲洯鎺堟潈</el-button>
</template>
</el-table-column>
</el-table>
@@ -171,12 +171,11 @@
})
},
handleAuth(row) {
- this.$confirm('鏄惁瀵瑰綋鍓嶈繍鍗曠殑杞﹁締杩涜绂诲洯鎺堟潈锛屾槸鍒欒繘琛岀鍥巿鏉冿紵', '鎻愮ず', {
+ this.$prompt('澶囨敞', '绂诲洯鎺堟潈', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- platformPowerLevel({ jobId: row.id }).then(res => {
+ }).then(({ remark }) => {
+ platformPowerLevel({ jobId: row.id,remark }).then(res => {
Message.success('绂诲洯鎺堟潈鎴愬姛')
this.getList()
})
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
index e06226e..95dd8c5 100644
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ b/admin/src/views/platform/LogisticsRecord/operation.vue
@@ -55,6 +55,8 @@
import UploadFaceImg from '@/components/common/UploadFaceImg'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
export default {
components: {
Pagination,
@@ -146,6 +148,7 @@
this.list.forEach(item => {
item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
item.taskOrigin = 'WMS鑾峰彇'
+ item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
})
this.pagination.total = res.total || 0
}, () => {
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 0fbb43c..a2017c6 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -56,6 +56,8 @@
import UploadFaceImg from '@/components/common/UploadFaceImg'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
export default {
components: {
Pagination,
@@ -147,6 +149,7 @@
this.list.forEach(item => {
item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
item.taskOrigin = 'WMS鑾峰彇'
+ item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
})
this.pagination.total = res.total || 0
}, () => {
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index a65fc5a..a86666b 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -39,10 +39,10 @@
</el-table-column>
<el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip>
<template v-slot="scope">
- <el-button type="text" class="red" v-permissions="['business:platformjob:delete']"
+ <el-button v-if="scope.row.status == '12'" type="text" class="red" v-permissions="['business:platformjob:delete']"
@click="handleDel(scope.row)">鍒犻櫎</el-button>
- <el-button type="text" v-permissions="['business:platformjob:query']"
- @click="handleDetail(scope.row)">棰勭害璇︽儏</el-button>
+ <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
+ @click="handleDetail(scope.row)">杩愬崟璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
@@ -143,8 +143,8 @@
model: {
...filters,
jobType: '0',
- beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
+ createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
+ createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
},
capacity: pagination.pageSize,
page: page || pagination.page,
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
index d32f32e..c175a11 100644
--- a/admin/src/views/platform/components/PlatformQueuing.vue
+++ b/admin/src/views/platform/components/PlatformQueuing.vue
@@ -1,18 +1,10 @@
<template>
- <GlobalWindow
- :title="'鏈堝彴鍙彿-'+title"
- :visible.sync="isShowModal"
- :showConfirm="false"
- width="800px"
- >
+ <GlobalWindow :title="callType == 1 ? '鍙彿鍏ュ洯-' + title : '鏈堝彴鍙彿-' + title" :visible.sync="isShowModal"
+ :showConfirm="false" width="800px">
<div class="queuing_modal">
<div class="df_ac mb20">
<span>鎼滅储杞﹁締锛�</span>
- <el-input
- class="flex1 mr20"
- v-model="carCodeFront"
- placeholder="璇疯緭鍏ヨ溅鐗屽彿"
- ></el-input>
+ <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
<el-button type="primary" @click="getList">鏌ユ壘</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</div>
@@ -34,7 +26,7 @@
</div>
<div v-else class="ite">
<span>杩愯緭鍗曞彿锛�</span>
- <span>{{ item.code }}</span>
+ <span>{{ item.billCode }}</span>
</div>
<div class="ite">
<span>椹鹃┒鍛橈細</span>
@@ -60,11 +52,7 @@
</div>
</div>
</div>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="pagination"
- >
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
</pagination>
</div>
</GlobalWindow>
@@ -73,7 +61,7 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import Pagination from '@/components/common/Pagination'
-import { platformCallList, platformCallNumber } from '@/api'
+import { platformCallList, platformCallNumber, platformInPark } from '@/api'
import { statusMap } from '../config'
import { Message } from 'element-ui'
export default {
@@ -81,7 +69,7 @@
GlobalWindow,
Pagination
},
- data () {
+ data() {
return {
statusMap,
isShowModal: false,
@@ -93,24 +81,35 @@
},
carCodeFront: '',
title: '',
+ callType: '1',
activePlat: {},
dataList: []
}
},
methods: {
- handleCall (item) {
- const activePlatform = this.activePlat
- platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
- Message.success('鍙彿鎴愬姛')
- this.$emit('success')
- this.getList()
- })
+ handleCall(item) {
+ const { activePlat, callType } = this
+ if (callType == 1) { // 鍏ュ洯鍙彿
+ platformInPark({
+ jobId: item.id,
+ platformId: activePlat.id
+ }).then(() => {
+ Message.success('鍙彿鎴愬姛')
+ this.getList()
+ })
+ } else {
+ platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => {
+ Message.success('鍙彿鎴愬姛')
+ this.$emit('success')
+ this.getList()
+ })
+ }
},
- getList () {
- const { activePlat, pagination, carCodeFront } = this
+ getList() {
+ const { activePlat, pagination, carCodeFront, callType } = this
platformCallList({
- model: { callType: '2', platformId: activePlat.id, carCodeFront },
+ model: { callType, platformId: activePlat.id, carCodeFront },
page: pagination.page,
capacity: pagination.pageSize
}).then(res => {
@@ -118,21 +117,21 @@
this.pagination.total = res.total
})
},
- reset () {
+ reset() {
this.carCodeFront = ''
this.pagination.page = 1
this.pagination.pageSize = 10
this.getList()
},
- handleSizeChange (e) {
+ handleSizeChange(e) {
this.pagination.pageSize = e
this.getList()
},
- handlePageChange (e) {
+ handlePageChange(e) {
this.pagination.page = e
this.getList()
},
- handleSub () {
+ handleSub() {
const { param } = this
this.subLoading = true
PlatformEdit({
@@ -153,8 +152,10 @@
<style lang="scss" scoped>
@import "@/assets/style/variables.scss";
+
.queuing_modal {
padding: 10px 30px;
+
.list {
.item {
background: #f4fafb;
@@ -162,8 +163,10 @@
border: 1px solid #dfe2e8;
margin-bottom: 10px;
padding: 16px;
+
.head {
margin-bottom: 15px;
+
.plate {
width: 90px;
text-align: center;
@@ -174,9 +177,11 @@
border: 1px solid #279baa;
background-color: #fff;
}
+
.status {
color: $primaryColor;
}
+
.code {
display: flex;
font-weight: 600;
@@ -188,24 +193,29 @@
border-radius: 4px;
border: 1px solid $primaryColor;
padding-right: 4px;
+
span {
&:nth-of-type(1) {
background: $primaryColor;
padding: 0 8px;
color: #fff;
}
+
&:nth-of-type(2) {
padding-left: 4px;
}
}
}
}
+
.info {
display: flex;
flex-wrap: wrap;
+
.ite {
width: 33.3%;
margin-bottom: 8px;
+
span {
&:nth-child(1) {
color: #666666;
@@ -213,6 +223,7 @@
}
}
}
+
.footer {
.detail {
color: $primaryColor;
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index 052788a..890d23c 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -2,13 +2,8 @@
<div class="main_app">
<div class="mb20 main_header">
<div class="platgroup_tabs">
- <div
- class="tab"
- :class="{ active: activeGroup.id === item.id }"
- @click="platgroupClick(item)"
- v-for="(item, i) in PlatGroupList"
- :key="i"
- >
+ <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
+ v-for="(item, i) in PlatGroupList" :key="i">
{{ item.name }}
</div>
<!-- <el-tabs v-model="activeGroup.id" @tab-click="platgroupClick">
@@ -20,9 +15,7 @@
/>
</el-tabs> -->
</div>
- <el-button type="primary" class="ml20" @click="handleSet"
- >閰嶇疆鏈堝彴</el-button
- >
+ <el-button type="primary" class="ml20" @click="handleSet">閰嶇疆鏈堝彴</el-button>
</div>
<!-- -->
<div v-if="activeGroup.platformList" class="platform_list">
@@ -34,38 +27,23 @@
</div>
<div class="name">{{ item.name }}</div>
<div class="ite">
- <span class="placeholder9">浣滀笟锛�</span
- ><span>{{ item.platformWorkVO.workNum }}</span>
+ <span class="placeholder9">浣滀笟锛�</span><span>{{ item.platformWorkVO.workNum }}</span>
</div>
<div class="ite">
- <span class="placeholder9">宸插彨锛�</span
- ><span>{{ item.platformWorkVO.callNum }}</span>
+ <span class="placeholder9">宸插彨锛�</span><span>{{ item.platformWorkVO.callNum }}</span>
</div>
<div class="ite">
- <span class="placeholder9">绛夊緟锛�</span
- ><span>{{ item.platformWorkVO.waitNum }}</span>
+ <span class="placeholder9">绛夊緟锛�</span><span>{{ item.platformWorkVO.waitNum }}</span>
</div>
<div class="ite">
- <span class="placeholder9">寮傚父锛�</span
- ><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
+ <span class="placeholder9">寮傚父锛�</span><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
</div>
</div>
- <el-button type="primary" @click="handleQueuing(item)">
- <div class="df_ac">
- <img class="shengyin" src="@/assets/icons/shengyin.png" alt="">
- <span>鍙彿</span>
- </div>
- </el-button>
+ <el-button @click="handleQueuing(item, 1)">鍙彿鍏ュ洯</el-button>
+ <el-button type="primary" @click="handleQueuing(item, 2)">鏈堝彴鍙彿</el-button>
</div>
- <div
- class="list"
- v-if="item.platformWorkVO && item.platformWorkVO.platformJobList"
- >
- <div
- class="info"
- v-for="task in item.platformWorkVO.platformJobList"
- :key="task.id"
- >
+ <div class="list" v-if="item.platformWorkVO && item.platformWorkVO.platformJobList">
+ <div class="info" :class="{err: task.status == 8}" v-for="task in item.platformWorkVO.platformJobList" :key="task.id">
<div class="line">
<div class="left">
<div v-if="task.carCodeFront" class="code">
@@ -76,18 +54,14 @@
</div>
</div>
<div class="right">
- <div
- class="status"
- v-if="task.status != 4 && task.status != 5"
- :class="{ red: task.status == 8 }"
- >
+ <div class="status_item" v-if="task.status != 4 && task.status != 5" :class="{ red: task.status == 8 }">
<span class="lab">{{ statusMap[task.status] }}</span>
</div>
- <div class="status" v-if="task.status == 4">
+ <div class="status_item" v-if="task.status == 4">
<span class="lab">鍙彿涓�</span> {{ task.callDateTemp }}
</div>
- <div class="status scs" v-if="task.status == 5">
- <span class="lab">宸蹭綔涓�</span> {{ task.startDateTemp }}
+ <div class="status_item scs" v-if="task.status == 5">
+ <span class="lab">浣滀笟涓�</span> {{ task.startDateTemp }}
</div>
</div>
</div>
@@ -98,13 +72,13 @@
</div>
<div v-else class="ite">
<span>杩愯緭鍗曞彿锛�</span>
- <span>{{ task.code }}</span>
+ <span>{{ task.billCode }}</span>
</div>
- <div class="ite">
+ <div class="ite siji">
<span>椹鹃┒鍛橈細</span>
<span>{{ task.driverName }}</span>
</div>
- <div class="ite">
+ <div class="ite phone">
<span>鎵嬫満鍙凤細</span>
<span>{{ task.drivierPhone }}</span>
</div>
@@ -120,66 +94,38 @@
</div>
<div class="line">
<div v-if="task.type != 4" class="left">
- <span class="primaryColor pointer" @click="handleDetail"
- >杩愬崟璇︽儏</span
- >
+ <span class="primaryColor pointer" @click="handleDetail">杩愬崟璇︽儏</span>
</div>
<div v-else></div>
<div class="right">
- <el-button
- v-if="task.status == 5"
- plain
- @click="handleErr(task)"
- >寮傚父鎸傝捣</el-button
- >
- <el-button
- v-if="task.status == 5 || task.status == 8"
- plain
- @click="handleTransform(item, task)"
- >杞Щ鏈堝彴</el-button
- >
- <el-button
- v-if="task.status == 4"
- plain
- @click="handlePass(task)"
- >杩囧彿</el-button
- >
- <el-button
- v-if="task.status == 5 || task.status == 8"
- type="primary"
- @click="handleFinish(task)"
- >浣滀笟瀹屾垚</el-button
- >
- <el-button
- v-if="task.status == 4"
- type="primary"
- @click="handleWork(task)"
- >寮�濮嬩綔涓�</el-button
- >
+ <el-button v-if="task.status == 5" plain @click="handleErr(task)">寮傚父鎸傝捣</el-button>
+ <el-button v-if="task.status == 5 || task.status == 8" plain
+ @click="handleTransform(item, task)">杞Щ鏈堝彴</el-button>
+ <el-button v-if="task.status == 4" plain @click="handlePass(task)">杩囧彿</el-button>
+ <el-button v-if="task.status == 5 || task.status == 8" type="primary"
+ @click="handleFinish(task)">浣滀笟瀹屾垚</el-button>
+ <el-button v-if="task.status == 4" type="primary" @click="handleWork(task)">寮�濮嬩綔涓�</el-button>
</div>
</div>
</div>
</div>
- <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0" class="empty_plat">
+ <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0"
+ class="empty_plat">
<img src="@/assets/images/default_nodata.png" alt="">
<div>鏆傛棤杞﹁締</div>
</div>
</div>
</div>
<!-- 閰嶇疆鏄剧ず鏈堝彴 -->
- <GlobalWindow
- title="閰嶇疆鏄剧ず鏈堝彴"
- :visible.sync="isShowSet"
- :confirm-working="setLoading"
- @confirm="handleSetSub"
- width="560px"
- >
+ <GlobalWindow title="閰嶇疆鏄剧ず鏈堝彴" :visible.sync="isShowSet" :confirm-working="setLoading" @confirm="handleSetSub"
+ width="560px">
<div class="set_modal">
<div class="mb10" v-for="group in PlatGroupList" :key="group.id">
- <div class="title">{{group.name}}</div>
+ <div class="title">{{ group.name }}</div>
<div class="list">
- <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }" v-for="item in group.platformList" :key="item.id">
- <div>{{item.name}}</div>
+ <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }"
+ v-for="item in group.platformList" :key="item.id">
+ <div>{{ item.name }}</div>
<div v-if="item.showConfig" class="bg"></div>
<i v-if="item.showConfig" class="el-icon-check scs"></i>
</div>
@@ -190,33 +136,14 @@
<!-- 杩愬崟璇︽儏 -->
<!-- -->
<!-- 鍙彿 -->
- <PlatformQueuing
- ref="PlatformQueuingRef"
- v-if="isShowQueuing"
- @success="getPlatGroupList"
- @close="isShowQueuing = false"
- />
- <WaybillDetail
- ref="WaybillDetailRef"
- v-if="isShowDetail"
- @success="getList"
- @close="isShowDetail = false"
- />
- <el-dialog
- title="杞Щ鏈堝彴"
- :visible.sync="isShowTransform"
- width="500px"
- style="margin-top: 12vh"
- >
+ <PlatformQueuing ref="PlatformQueuingRef" v-if="isShowQueuing" @success="getPlatGroupList"
+ @close="isShowQueuing = false" />
+ <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
+ <el-dialog title="杞Щ鏈堝彴" :visible.sync="isShowTransform" width="500px" style="margin-top: 12vh">
<div class="df_ac">
<span>閫夋嫨杞Щ鍒扮殑鏈堝彴锛�</span>
<el-select v-model="activePlatId">
- <el-option
- v-for="item in activeGroup.platformList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
+ <el-option v-for="item in activeGroup.platformList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
@@ -254,7 +181,7 @@
WaybillDetail,
GlobalWindow
},
- data () {
+ data() {
return {
statusMap,
activeGroup: {},
@@ -275,29 +202,29 @@
timer: null
}
},
- created () {
+ created() {
this.getPlatGroupList()
// this.getList()
},
methods: {
- handleWork (item) {
+ handleWork(item) {
platformBeginWork({ jobId: item.id }).then(res => {
Message.success('宸插紑濮嬩綔涓�')
this.getPlatGroupList()
})
},
- handleFinish (item) {
+ handleFinish(item) {
platformFinishWork({ jobId: item.id }).then(res => {
Message.success('瀹屾垚浣滀笟')
this.getPlatGroupList()
})
},
- handleTransform (item, task) {
+ handleTransform(item, task) {
this.activePlatId = item.id
this.activetaskId = task.id
this.isShowTransform = true
},
- transformSub () {
+ transformSub() {
const { activePlatId, activetaskId } = this
platformMove({ platformId: activePlatId, jobId: activetaskId }).then(res => {
Message.success('杞Щ鏈堝彴鎴愬姛')
@@ -305,8 +232,8 @@
this.getPlatGroupList()
})
},
- handlePass (item) {
- this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�', '娓╅Θ鎻愮ず', {
+ handlePass(item) {
+ this.$confirm(`纭 ${item.carCodeFront}缃负杩囧彿鍚楋紵杩囧彿鍚庯紝闇�瑕侀噸鏂扮鍒版墠鑳借繘鍏ュ洯鍖篳, '娓╅Θ鎻愮ず', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
@@ -317,7 +244,7 @@
})
})
},
- handleErr (item) {
+ handleErr(item) {
this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�', '娓╅Θ鎻愮ず', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
@@ -329,14 +256,14 @@
})
})
},
- platgroupClick (item) {
+ platgroupClick(item) {
this.activeGroup = { ...item }
this.circulInitTaskList()
this.timer = setInterval(() => {
this.circulInitTaskList()
}, 1000)
},
- getPlatGroupList () {
+ getPlatGroupList() {
getPlatformGroupList({
queryData: 1,
queryType: 1
@@ -355,7 +282,7 @@
}
})
},
- circulInitTaskList () {
+ circulInitTaskList() {
if (this.activeGroup && this.activeGroup.platformList && this.activeGroup.platformList.length > 0) {
const time = new Date()
this.activeGroup.platformList.forEach(plat => {
@@ -383,31 +310,32 @@
this.$forceUpdate()
}
},
- handleQueuing (item) {
+ handleQueuing(item, callType) {
this.isShowQueuing = true
this.$nextTick(() => {
this.$refs.PlatformQueuingRef.isShowModal = true
+ this.$refs.PlatformQueuingRef.callType = callType
this.$refs.PlatformQueuingRef.activePlat = { ...item }
this.$refs.PlatformQueuingRef.getList()
this.$refs.PlatformQueuingRef.title = item.name
})
},
- handleDetail () {
+ handleDetail() {
this.isShowDetail = true
this.$nextTick(() => {
this.$refs.WaybillDetailRef.isShowModal = true
})
},
- getList () {
+ getList() {
const { groupId } = this
listByGroupId(groupId).then(res => {
this.platList = res
})
},
- handleSet () {
+ handleSet() {
this.isShowSet = true
},
- handleSetSub () {
+ handleSetSub() {
const { PlatGroupList } = this
const ids = []
PlatGroupList.forEach(item => {
@@ -427,7 +355,7 @@
this.setLoading = false
})
},
- platformSetClick (id) {
+ platformSetClick(id) {
const { PlatGroupList } = this
PlatGroupList.forEach(item => {
item.platformList.forEach(platform => {
@@ -443,8 +371,10 @@
<style lang="scss" scoped>
@import "@/assets/style/variables.scss";
+
.platform_list {
width: 100%;
+
.item {
/* padding: 16px 24px; */
background: #ffffff;
@@ -452,27 +382,32 @@
border: 1px solid #dfe2e8;
margin-bottom: 12px;
width: 100%;
+
.head {
display: flex;
justify-content: space-between;
align-items: center;
height: 50px;
- background: linear-gradient( 270deg, #FFFFFF 0%, #EBF6F7 100%);
+ background: linear-gradient(270deg, #FFFFFF 0%, #EBF6F7 100%);
border-radius: 2px 2px 0px 0px;
padding: 0 20px;
- .shengyin{
+
+ .shengyin {
width: 12px;
height: 12px;
margin-right: 3px;
}
+
.left {
flex: 1;
display: flex;
align-items: center;
+
.name {
font-size: 16px;
margin-right: 50px;
}
+
.status {
line-height: 25px;
height: 25px;
@@ -481,18 +416,19 @@
color: #ffffff;
padding: 0 6px;
}
+
.ite {
margin-right: 30px;
}
}
}
+
.list {
display: flex;
flex-wrap: wrap;
- justify-content: space-between;
margin-top: 10px;
padding: 16px;
- width: calc( 100% - 48px );
+ width: calc(100% - 0);
.info {
background: #f4fafb;
border-radius: 2px;
@@ -500,23 +436,41 @@
padding: 16px;
border-radius: 2px;
margin-bottom: 10px;
- width: calc( 31.6% - 16px );
- .status {
+ width: calc(31.6% - 22px);
+ margin-right: 10px;
+
+ &:nth-of-type(3n) {
+ margin-right: 0;
+ }
+
+ .status_item {
.lab {
font-weight: 500;
}
+
color: #00ba67;
}
+
.line {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
margin-bottom: 6px;
+
.ite {
width: 33.3%;
margin-top: 8px;
}
+
+ .siji {
+ width: 29%;
+ }
+
+ .phone {
+ width: 37.6%;
+ }
+
.left {
.code {
display: flex;
@@ -529,18 +483,21 @@
border-radius: 4px;
border: 1px solid $primaryColor;
padding-right: 4px;
+
span {
&:nth-of-type(1) {
background: $primaryColor;
padding: 0 8px;
color: #fff;
}
+
&:nth-of-type(2) {
padding-left: 4px;
}
}
}
}
+
.right {
display: flex;
align-items: center;
@@ -549,18 +506,22 @@
}
.jobing {
background: #effbf5;
+
.status {
color: #00ba67;
}
}
+
.err {
background: #fef6f6;
+
.status {
color: #ed4545;
}
}
}
- .empty_plat{
+
+ .empty_plat {
width: 100%;
height: 170px;
display: flex;
@@ -569,27 +530,33 @@
align-items: center;
font-size: 12px;
color: #B2B2B2;
- img{
+
+ img {
width: 110px;
}
}
}
- .emyty{
- .head{
- background: linear-gradient( 270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
+
+ .emyty {
+ .head {
+ background: linear-gradient(270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
}
- .status{
+
+ .status {
background: #CCCCCC !important;
}
}
}
+
.main_header {
display: flex;
position: relative;
+
.platgroup_tabs {
flex: 1;
display: flex;
border-bottom: 1px solid #dfe2e8;
+
.tab {
color: #666666;
margin-right: 40px;
@@ -597,6 +564,7 @@
padding-bottom: 18px;
border-bottom: 2px solid #fff;
}
+
.active {
font-weight: 500;
font-size: 15px;
@@ -604,6 +572,7 @@
border-bottom: 2px solid $primary-color;
}
}
+
.ml20 {
position: absolute;
width: 120px;
@@ -612,6 +581,7 @@
top: -4px;
}
}
+
/* */
.set_modal {
.title {
@@ -619,9 +589,11 @@
font-weight: 600;
margin-bottom: 16px;
}
+
.list {
display: flex;
flex-wrap: wrap;
+
.item {
cursor: pointer;
padding: 0 36px;
@@ -635,7 +607,8 @@
margin-right: 13px;
position: relative;
overflow: hidden;
- .bg{
+
+ .bg {
position: absolute;
right: -12px;
bottom: -12px;
@@ -644,22 +617,25 @@
background: $primaryColor;
transform: rotate(45deg);
}
- .scs{
+
+ .scs {
position: absolute;
right: -1px;
bottom: -1px;
color: #fff;
z-index: 99999;
- transform:scale(.8)
+ transform: scale(.8)
}
}
+
.active {
- background: rgba(39,155,170,0.06);
+ background: rgba(39, 155, 170, 0.06);
border: 1px solid $primaryColor;
color: $primaryColor;
}
}
}
+
/* */
/* */
</style>
diff --git a/admin/src/views/statistics/platformRecord.vue b/admin/src/views/statistics/platformRecord.vue
index 4053fb3..a7edbbe 100644
--- a/admin/src/views/statistics/platformRecord.vue
+++ b/admin/src/views/statistics/platformRecord.vue
@@ -1,82 +1,45 @@
<template>
<div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- />
+ <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
<el-table v-loading="loading" :data="list" stripe>
- <el-table-column
- prop="name"
- label="鏈堝彴鍚嶇О"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="鏈堝彴缁�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="杞﹀墠鐗岀収鍙�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="杞﹀悗鐗岀収鍙�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="浣滀笟寮�濮�"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="浣滀笟缁撴潫"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="name"
- label="浣滀笟鏃堕暱"
- min-width="100"
- show-overflow-tooltip
- /><el-table-column
- prop="name"
- label="杩愯緭鍗曞彿/鍚堝悓鍙�"
- min-width="100"
- show-overflow-tooltip
- />
+ <el-table-column prop="platformName" label="鏈堝彴鍚嶇О" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="platformGroupName" label="鏈堝彴缁�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="carCodeFront" label="杞﹀墠鐗岀収鍙�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="carCodeBack" label="杞﹀悗鐗岀収鍙�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="startDate" label="浣滀笟寮�濮�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="doneDate" label="浣滀笟缁撴潫" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip /><el-table-column prop="name"
+ label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="100" show-overflow-tooltip>
+ <template v-slot="scope">
+ <span>{{ scope.row.billCode || scope.row.contractNum }}</span>
+ </template>
+ </el-table-column>
</el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
+ <div class="mt20">
+ <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
+ </div>
</div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
+import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
+import { platformJobPage, getPlatformGroupList } from '@/api'
export default {
components: {
Pagination,
QueryForm
},
- data () {
+ data() {
return {
loading: false,
pagination: {
- capacity: 10,
- page: 1
+ pageSize: 10,
+ page: 1,
+ total: 0
},
filters: {},
list: [],
@@ -84,18 +47,18 @@
queryFormConfig: {
formItems: [
{
- filed: 'aaaa',
+ filed: 'platformName',
type: 'input',
label: '鏈堝彴鍚嶇О'
},
{
- filed: 'bbb',
+ filed: 'platformGroupId',
type: 'select',
label: '鏈堝彴缁�',
options: []
},
{
- filed: 'aaaa',
+ filed: 'carCodeFront',
type: 'input',
label: '杞︾墝鍙�'
},
@@ -109,22 +72,64 @@
}
}
},
+ created() {
+ this.getList()
+ this.getGroupList()
+ },
methods: {
- handleSub () {
+ handleSub() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
alert('submit!')
}
})
},
- getList (page) { },
- clear () { },
- handleSizeChange (capacity) {
- this.pagination.capacity = capacity
+ getGroupList() {
+ getPlatformGroupList({queryData: 0,queryType: 0}).then(res => {
+ this.queryFormConfig.formItems[1].options = res.map(i => {
+ return {
+ value: i.id,
+ label: i.name
+ }
+ })
+ })
+ },
+ getList(page) {
+ const { pagination, filters } = this
+ this.loading = true
+ platformJobPage({
+ model: {
+ ...filters,
+ queryStatus: '5,6,9,10',
+ beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
+ beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
+ },
+ capacity: pagination.pageSize,
+ page: page || pagination.page,
+ }).then(res => {
+ this.loading = false
+ this.list = res.records || []
+ this.list.forEach(item => {
+ item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
+ item.taskOrigin = 'WMS鑾峰彇'
+ item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
+ })
+ this.pagination.total = res.total || 0
+ }, () => {
+ this.loading = false
+ })
+ },
+ clear() {
+ this.filters = {}
+ this.pagination.pageSize = 10
+ this.pagination.page = 1
+ this.getList()
+ },
+ handleSizeChange(capacity) {
+ this.pagination.pageSize = capacity
}
}
}
</script>
-<style>
-</style>
+<style></style>
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index 0683f0f..90f4ccd 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -7,8 +7,8 @@
<text>*</text>
<text>鍏ュ洯鍘熷洜</text>
</view>
- <view class="value" @click="showReason = true">
- <text class="mr6" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
+ <view class="value" @click="reasonClick">
+ <text class="mr6" :class="{gray: param.id}" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
</view>
</view>
@@ -105,7 +105,8 @@
</view>
<!-- -->
- <u-picker :show="showReason" keyName="reason" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
+ <u-picker :show="showReason" keyName="reason" closeOnClickOverlay @close="showReason = false"
+ @cancel="showReason = false" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
<u-datetime-picker
:show="showDatetime"
closeOnClickOverlay
@@ -149,6 +150,12 @@
this.initData()
},
methods: {
+ reasonClick() {
+ if(this.param.id){
+ return
+ }
+ this.showReason = true
+ },
onSubmit() {
const param = { ...this.param }
if (!param.arriveDate) return this.showToast('璇烽�夋嫨鍒板満鏃堕棿')
@@ -297,6 +304,9 @@
display: flex;
align-items: center;
justify-content: flex-end;
+ .gray{
+ color: #999999 !important;
+ }
.btns {
display: flex;
align-items: center;
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index d6c5060..421cfdd 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -2,7 +2,7 @@
<view class="main_app">
<view class="status_wrap">
<view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
- <view class="desc">{{info.carCodeFront}}</view>
+ <view class="gray">{{info.carCodeFront}}</view>
<view class="desc" :class="{
gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
}">{{ infoStatus }}</view>
@@ -425,14 +425,15 @@
margin-bottom: 20rpx;
color: #222222;
}
-
+
.desc {
font-size: 26rpx;
- color: #999999;
+ color: #ed4545;
margin-bottom: 12rpx;
}
.gray {
color: #999999;
+ margin-bottom: 12rpx;
}
.status {
diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index a1aaff3..a528592 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -1,858 +1,851 @@
-<template>
- <view class="main_app">
- <view class="main_content">
- <view class="title" @click="showPlatformgroup = true"
- >{{ activePlatformGroup.name
- }}<u-icon
- name="arrow-down"
- size="20"
- class="ml12"
- color="#999999"
- ></u-icon
- ></view>
- <view class="platform_list">
- <view
- class="item"
- :class="{ active: item.id === activePlatform.id }"
- v-for="(item, index) in activePlatformGroup.platformList"
- :key="index"
- @click="platformClick(item)"
- >{{ item.name }}</view
- >
- </view>
- <view class="status_wrap">
- <view class="status"
- >浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view
- >
- <view class="status"
- >宸插彨锛�<text>{{ platformTaskInfo.callNum }}</text></view
- >
- <view class="status"
- >绛夊緟锛�<text>{{ platformTaskInfo.waitNum }}</text></view
- >
- <view class="status"
- >寮傚父锛�<text>{{ platformTaskInfo.exceptionNum }}</text></view
- >
- </view>
- </view>
- <!-- -->
- <view style="padding-bottom: 140rpx">
- <view
- v-for="item in platformTaskInfo.platformJobList"
- :key="item.id"
- class="platform_ing"
- >
- <view class="head">
- <view class="code">
- <text>{{ item.carCodeFront.slice(0, 1) }}</text>
- <text>{{ item.carCodeFront.slice(1, 2) }}</text>
- <text>路</text>
- <text>{{ item.carCodeFront.slice(2) }}</text>
- </view>
- <view
- class="status"
- v-if="item.status != 4 && item.status != 5"
- :class="{ red: item.status == 8 }"
- >{{ statusMap[item.status] }}</view
- >
- <view class="status" v-if="item.status == 4"
- >鍙彿涓� {{ item.callDateTemp }}</view
- >
- <view class="status scs" v-if="item.status == 5"
- >宸蹭綔涓� {{ item.startDateTemp }}</view
- >
- </view>
- <view class="line" v-if="item.type == 4">
- <text class="label">鍚堝悓鍗曞彿</text>
- <text class="value">{{ item.contractNum }}</text>
- </view>
- <view class="line" v-else>
- <text class="label">杩愯緭鍗曞彿</text>
- <text class="value">{{ item.code }}</text>
- <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
- </view>
- <view class="line">
- <text class="label">椹鹃┒鍛�</text>
- <text class="value"
- >{{ item.driverName }} {{ item.drivierPhone }}</text
- >
- </view>
- <view class="line">
- <text class="label">鎬昏繍杈撻噺</text>
- <text class="value">{{ item.totalNum }}涓囨敮</text>
- </view>
- <view class="line" v-if="item.type != 4">
- <text class="label">杩愯緭鍏徃</text>
- <text class="value">{{ item.carrierName }}</text>
- </view>
- <view class="btns">
- <view v-if="item.status == 4" class="btn" @click="handlePass(item)"
- >杩囧彿</view
- >
- <view
- v-if="item.status == 4"
- class="btn active"
- @click="handleWork(item)"
- >寮�濮嬩綔涓�</view
- >
-
- <view v-if="item.status == 5" class="btn" @click="handleErr(item)"
- >寮傚父鎸傝捣</view
- >
- <view
- v-if="item.status == 5 || item.status == 8"
- class="btn"
- @click="handleTransform(item)"
- >杞Щ鏈堝彴</view
- >
- <view
- v-if="item.status == 5 || item.status == 8"
- class="btn active"
- @click="handleFinish(item)"
- >浣滀笟瀹屾垚</view
- >
- </view>
- </view>
- <view v-if="!platformTaskInfo.platformJobList || platformTaskInfo.platformJobList.length == 0" class="empty_wrap">
- <image src="@/static/default_nodata@2x.png" />
- <text>鏆傛棤浣滀笟杞﹁締</text>
- </view>
- </view>
- <!-- -->
- <view class="main_footer">
- <view class="btn" @click="PlatformCallClick(1)">鍏ュ洯鍙彿</view>
- <view class="btn active" @click="PlatformCallClick(2)">鏈堝彴鍙彿</view>
- </view>
- <!-- 鍙彿 -->
- <u-popup
- :show="showPlatformCall"
- closeable
- safeAreaInsetTop
- round="10"
- @close="showPlatformCall = false"
- >
- <view
- class="PlatformCallModal"
- :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
- >
- <view class="title" v-if="callType == 2"
- >鏈堝彴鍙彿({{ activePlatform.name }})</view
- >
- <view class="title" v-else>鍏ュ洯鍙彿</view>
- <view class="input_wrap">
- <u-icon name="search" class="mr12" size="19" color="#999999" />
- <input
- v-model="platformCallSearch"
- type="text"
- placeholder="鎼滅储杞﹁締鐗岀収"
- placeholder-class="placeholder9"
- @confirm="callQuery"
- />
- </view>
- <view class="order_list">
- <scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
- <view
- class="platform_ing"
- v-for="item in platformCallList"
- :key="item.id"
- >
- <view class="head">
- <view v-if="item.carCodeFront" class="code">
- <text>{{ item.carCodeFront.slice(0, 1) }}</text>
- <text>{{ item.carCodeFront.slice(1, 2) }}</text>
- <text>路</text>
- <text>{{ item.carCodeFront.slice(2) }}</text>
- </view>
- <view class="status" :class="{ scs: item.status == 4 }">{{
- statusMap[item.status]
- }}</view>
- </view>
- <view class="line" v-if="item.type == 4">
- <text class="label">鍚堝悓鍗曞彿</text>
- <text class="value">{{ item.contractNum }}</text>
- </view>
- <view class="line" v-else>
- <text class="label">杩愯緭鍗曞彿</text>
- <text class="value">{{ item.code }}</text>
- <text class="primaryColor" @click="handleDetail()"
- >杩愬崟璇︽儏</text
- >
- </view>
- <view class="line">
- <text class="label">椹鹃┒鍛�</text>
- <text class="value"
- >{{ item.driverName }} {{ item.drivierPhone }}</text
- >
- </view>
- <view class="line">
- <text class="label">鎬昏繍杈撻噺</text>
- <text class="value">{{ item.totalNum }}涓囨敮</text>
- </view>
- <view class="line" v-if="item.type != 4">
- <text class="label">杩愯緭鍏徃</text>
- <text class="value">{{ item.carrierName }}</text>
- </view>
- <view class="btns">
- <view class="btn active" @click="handleCall(item)">鍙彿</view>
- </view>
- </view>
- </scroll-view>
- </view>
- </view>
- </u-popup>
- <!-- 杩愬崟璇︽儏 -->
- <u-popup
- :show="showDetail"
- closeable
- safeAreaInsetTop
- round="10"
- @close="showDetail = false"
- >
- <view
- class="PlatformCallModal"
- :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
- >
- <view class="title">杩愬崟璇︽儏</view>
- <view class="platform_ing" style="padding: 0">
- <view class="head">
- <view class="code">
- <text>鐨�</text>
- <text>AD1212</text>
- </view>
- </view>
- <view class="line">
- <text class="label">杩愯緭鍗曞彿</text>
- <text class="value">11111</text>
- </view>
- <view class="line">
- <text class="label">椹鹃┒鍛�</text>
- <text class="value">11111</text>
- </view>
- <view class="line">
- <text class="label">鎬昏繍杈撻噺</text>
- <text class="value">11111</text>
- </view>
- <view class="line">
- <text class="label">杩愯緭鍏徃</text>
- <text class="value">11111</text>
- </view>
- </view>
- <view class="detail_list">
- <view class="item">
- <view class="orderId">鍚堝悓缂栧彿锛歿{ 111 }}</view>
- <view class="addr">鏀惰揣鍦帮細{{ 111 }}</view>
- <view class="content">
- <view class="line"
- ><view class="label">鐗╂枡锛�</view
- ><view class="value">榛勫北</view></view
- >
- <view class="line"
- ><view class="label">鏁伴噺锛�</view
- ><view class="value">榛勫北</view></view
- >
- <view class="line"
- ><view class="label">鐗╂枡锛�</view
- ><view class="value">榛勫北</view></view
- >
- <view class="line"
- ><view class="label">鏁伴噺锛�</view
- ><view class="value">榛勫北</view></view
- >
- </view>
- </view>
- </view>
- </view>
- </u-popup>
- <!-- 杞Щ鏈堝彴 -->
- <u-popup
- :show="showTransform"
- closeable
- safeAreaInsetTop
- round="10"
- @close="showTransform = false"
- >
- <view class="TransformModal">
- <view class="title">杞Щ鏈堝彴</view>
- <view class="transform_list">
- <view
- class="line"
- @click="transformPlatClick(item)"
- v-for="item in activePlatformGroup.platformList"
- :key="item.id"
- >
- <view class="name">{{ item.name }}</view>
- <view class="status" :class="{ green: item.workStatus == 1 }"
- >({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})</view
- >
- <image
- v-if="transformPlatId == item.id"
- src="@/static/ic_select@2x.png"
- class="checked"
- />
- </view>
- </view>
- <view class="btns">
- <view class="btn" @click="transformCancel">鍙栨秷</view>
- <view class="btn active" @click="transformSub">纭畾</view>
- </view>
- </view>
- </u-popup>
- <!-- -->
- <u-picker
- :show="showPlatformgroup"
- keyName="name"
- :columns="[platformGroupList]"
- @cancel="showPlatformgroup = false"
- @confirm="platConfirm"
- ></u-picker>
- </view>
-</template>
-
-<script>
-import {
- getPlatformGroupList,
- getPlatformWorkData,
- platformCallList,
- platformCallNumber,
- platformInPark,
- beginWork,
- finishWork,
- platformMove,
- platformErr,
- platformOverNumber
-} from '@/api'
-import { statusMap } from '@/utils/config.js'
-import dayjs from 'dayjs'
-import duration from 'dayjs/plugin/duration'
-dayjs.extend(duration)
-
-export default {
- data() {
- return {
- statusMap,
- windowTop: 44,
- showPlatformCall: false, // 鏈堝彴鍙彿
- showDetail: false,
- showTransform: false, // 杞Щ
- showPlatformgroup: false,
-
- platformGroupList: [],
- activePlatformGroup: {},
- platformTaskInfo: {},
- activePlatform: {},
-
- platformCallList: [],//鍙彿鍒楄〃
- platformCallSearch: '',
- platformCallTotal: 0,
- platformCallPage: 1,
- callType: 1,
-
- transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
- transformId: '', // 杞Щ璁板綍浠诲姟id
- }
- },
- onLoad() {
- this.getPlatformGroup()
- const res = uni.getWindowInfo()
- this.windowTop = res.windowTop
- },
- methods: {
- getPlatformGroup() {
- getPlatformGroupList({
- queryData: 1,
- queryType: 0
- }).then(res => {
- this.platformGroupList = res.data || []
- if (this.platformGroupList.length > 0) {
- this.activePlatformGroup = this.platformGroupList[0]
- if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
- this.activePlatform = this.activePlatformGroup.platformList[0]
- this.getPlatformTask()
- }
- }
- })
- },
- getPlatformTask() {
- getPlatformWorkData({ platformId: this.activePlatform.id }).then(res => {
- this.platformTaskInfo = res.data
- this.circulInitTaskList()
- setInterval(() => {
- this.circulInitTaskList()
- }, 1000)
- })
- },
- circulInitTaskList() {
- if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList.length > 0) {
- let time = new Date()
- this.platformTaskInfo.platformJobList.forEach(item => {
- if (item.callDate) {
- let timeNum = time.getTime() - new Date(item.callDate).getTime()
- if (timeNum > 3600000) {
- item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
- } else {
- item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
- }
- }
- if (item.startDate) {
- let timeNum = time.getTime() - new Date(item.startDate).getTime()
- if (timeNum > 3600000) {
- item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
- } else {
- item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
- }
- }
- })
- this.$forceUpdate()
- }
- },
- platConfirm(e) {
- const index = e.indexs[0]
- this.activePlatformGroup = this.platformGroupList[index]
- if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
- this.activePlatform = this.activePlatformGroup.platformList[0]
- this.getPlatformTask()
- }
- this.showPlatformgroup = false
- },
- platformClick(item) {
- this.activePlatform = item
- this.getPlatformTask()
- },
- handleDetail() {
- this.showDetail = true
- },
- handleFinish(item) {
- finishWork({ jobId: item.id }).then(res => {
- this.showToast('瀹屾垚浣滀笟')
- this.getPlatformTask()
- })
- },
- handleWork(item) { // 寮�濮嬩綔涓�
- beginWork({ jobId: item.id }).then(res => {
- this.showToast('宸插紑濮嬩綔涓�')
- this.getPlatformTask()
- })
- },
- handlePass(item) {
- uni.showModal({
- content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�',
- success: (res) => {
- if (res.confirm) {
- platformOverNumber({ jobId: item.id, platformId: this.activePlatform.id }).then(res => {
- this.showToast('杩囧彿鎴愬姛')
- this.getPlatformTask()
- })
- }
- }
- })
-
- },
- handleCall(item) {
- const { callType, activePlatform } = this
- this.platformCallList = []
- this.platformCallPage = 1
- if (callType == 1) { // 鍏ュ洯鍙彿
- platformInPark({ jobId: item.id }).then(res => {
- this.showToast('鍙彿鎴愬姛')
- this.getPlatformCallList()
- })
- } else { // 鏈堝彴鍙彿
- platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
- this.showToast('鍙彿鎴愬姛')
- this.getPlatformCallList()
- this.getPlatformTask()
- })
- }
- },
- PlatformCallClick(callType) {
- this.callType = callType
- this.showPlatformCall = true
- this.platformCallList = []
- this.platformCallPage = 1
- this.platformCallSearch = ''
- this.getPlatformCallList()
- },
- callQuery() {
- this.platformCallList = []
- this.platformCallPage = 1
- this.getPlatformCallList()
- },
- callScrolltolower() {
- const { platformCallTotal, platformCallList } = this
- if(platformCallTotal > platformCallList.length){
- this.getPlatformCallList()
- }
- },
- getPlatformCallList() {
- const { platformCallPage, callType, activePlatform, platformCallSearch } = this
- platformCallList({
- model: { callType, platformId: activePlatform.id, carCodeFront: platformCallSearch },
- capacity: 10,
- page: platformCallPage
- }).then(res => {
- if (res.data && res.data.records) {
- this.platformCallList = [ ...this.platformCallList, ...res.data.records]
- this.platformCallTotal = res.data.total
- }
- })
- },
- transformPlatClick(item) {
- this.transformPlatId = item.id
- },
- transformCancel() {
- this.transformPlatId = ''
- this.showTransform = false
- },
- transformSub() {
- const { transformPlatId, transformId } = this
- platformMove({ platformId: transformPlatId, jobId: transformId }).then(res => {
- this.showToast('杞Щ鏈堝彴鎴愬姛')
- this.transformCancel()
- this.getPlatformTask()
- })
- },
- handleTransform(item) {
- let { activePlatform } = this
- this.transformId = item.id
- this.transformPlatId = activePlatform.id
- this.showTransform = true
- },
- handleErr(item) {
- uni.showModal({
- content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�',
- success: (res) => {
- if (res.confirm) {
- platformErr({ jobId: item.id }).then(ress => {
- this.showToast('寮傚父鎸傝捣鎴愬姛')
- this.getPlatformTask()
- })
- }
- }
- })
- }
- }
-}
-</script>
-<style lang="scss">
-.main_app {
- padding: 0rpx;
- height: calc(100vh - 44px);
- font-size: 30rpx;
- color: #333333;
- background: url("@/static/bg_yuetai@2x.png") no-repeat;
- background-size: 100% 100%;
- .main_content {
- background-color: #fff;
- padding: 30rpx;
- .platform_list {
- display: flex;
- flex-wrap: wrap;
- .item {
- width: 210rpx;
- height: 80rpx;
- line-height: 80rpx;
- text-align: center;
- background: #ffffff;
- border-radius: 8rpx;
- border: 1rpx solid #999999;
- font-size: 30rpx;
- color: #222222;
- margin-bottom: 20rpx;
- margin-right: 30rpx;
- &:nth-of-type(3n) {
- margin-right: 0;
- }
- }
- .active {
- color: #fff;
- background-color: $uni-color-primary;
- border-color: $uni-color-primary;
- }
- }
- .status_wrap {
- display: flex;
- align-items: center;
- justify-content: space-evenly;
- width: 690rpx;
- height: 76rpx;
- margin-top: 4rpx;
- background: #ffffff;
- box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.18);
- border-radius: 8rpx;
- .status {
- color: #666666;
- text {
- color: #111111;
- }
- &:nth-last-child(1) {
- text {
- color: #ed4545;
- }
- }
- }
- }
- .title {
- font-weight: 500;
- font-size: 32rpx;
- color: #111111;
- line-height: 44rpx;
- margin-bottom: 30rpx;
- display: flex;
- justify-content: center;
- }
- }
- .platform_ing {
- margin-top: 20rpx;
- padding: 30rpx;
- background-color: #fff;
- .head {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 30rpx;
- .code {
- display: flex;
- font-weight: 600;
- height: 60rpx;
- line-height: 60rpx;
- font-size: 32rpx;
- color: #111111;
- border-radius: 8rpx;
- border: 1rpx solid #dfdede;
- text {
- &:nth-of-type(1) {
- background: #e9f5f6;
- padding: 0 12rpx;
- }
- &:nth-of-type(2) {
- padding-left: 4rpx;
- }
- &:nth-of-type(4) {
- padding-right: 6rpx;
- }
- }
- }
- .status {
- font-size: 30rpx;
- color: $uni-color-primary;
- }
- .scs {
- color: #00ba67;
- }
- }
- .line {
- display: flex;
- margin-bottom: 20rpx;
- .label {
- width: 144rpx;
- color: #666666;
- }
- .value {
- flex: 1;
- }
- }
- .btns {
- display: flex;
- justify-content: flex-end;
- .btn {
- width: 210rpx;
- height: 76rpx;
- line-height: 76rpx;
- text-align: center;
- background: #ffffff;
- border-radius: 40rpx;
- border: 1rpx solid #999999;
- margin-left: 20rpx;
- }
- .active {
- background-color: $uni-color-primary;
- color: #fff;
- border-color: $uni-color-primary;
- }
- }
- }
- .empty {
- width: 220rpx;
- margin: 160rpx auto;
- }
- .main_footer {
- width: 750rpx;
- height: 136rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- padding: 24rpx 30rpx;
- display: flex;
- justify-content: space-between;
- font-size: 32rpx;
- background-color: #fff;
- .btn {
- width: 224rpx;
- height: 88rpx;
- line-height: 88rpx;
- text-align: center;
- background: #ffffff;
- border-radius: 44rpx;
- color: $uni-color-primary;
- border: 1rpx solid $uni-color-primary;
- }
- .active {
- width: 436rpx;
- background-color: $uni-color-primary;
- color: #fff;
- border-color: $uni-color-primary;
- }
- }
-}
-.PlatformCallModal {
- height: calc(100vh - 44px);
- padding: 30rpx;
- .title {
- text-align: center;
- margin: 0 0 30rpx;
- }
- .input_wrap {
- display: flex;
- align-items: center;
- width: 690rpx;
- height: 76rpx;
- background: #f7f7f7;
- border-radius: 38rpx;
- padding: 0 30rpx;
- }
- .order_list {
- height: calc(100% - 140rpx);
- .scroll_view {
- height: 100%;
- }
- .platform_ing {
- border-radius: 8rpx;
- border: 1rpx solid #dfe2e8;
- }
- }
- .detail_list {
- border-top: 1rpx solid #e5e5e5;
- padding: 30rpx 0;
- .orderId {
- font-size: 30rpx;
- color: $uni-color-primary;
- margin-bottom: 14rpx;
- }
- .addr {
- font-size: 26rpx;
- color: #666666;
- margin-bottom: 20rpx;
- }
- .content {
- width: 100%;
- padding: 20rpx;
- background: #f7f7f7;
- border-radius: 8rpx;
- .line {
- display: flex;
- margin-bottom: 20rpx;
- &:nth-of-type(2n) {
- padding-bottom: 20rpx;
- border-bottom: 1rpx solid #e5e5e5;
- }
- &:last-child {
- padding-bottom: 0rpx;
- border-bottom: none;
- }
- .label {
- font-size: 28rpx;
- color: #666666;
- width: 88rpx;
- }
- .value {
- font-size: 28rpx;
- color: #222222;
- }
- }
- }
- }
- .btns {
- display: flex;
- align-items: center;
- justify-content: space-between;
- .btn {
- width: 336rpx;
- height: 88rpx;
- border-radius: 44rpx;
- border: 1rpx solid $uni-color-primary;
- color: $uni-color-primary;
- font-size: 32rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .active {
- color: #fff;
- background-color: $uni-color-primary;
- }
- }
-}
-.TransformModal {
- height: 900rpx;
- padding: 30rpx;
- position: relative;
- .title {
- text-align: center;
- margin: 0 0 30rpx;
- }
- .btns {
- display: flex;
- align-items: center;
- justify-content: space-between;
- position: absolute;
- z-index: 999;
- left: 30rpx;
- bottom: 30rpx;
- .btn {
- width: 336rpx;
- height: 88rpx;
- border-radius: 44rpx;
- border: 1rpx solid $uni-color-primary;
- color: $uni-color-primary;
- font-size: 32rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .active {
- color: #fff;
- margin-left: 18rpx;
- background-color: $uni-color-primary;
- }
- }
- .transform_list {
- height: 660rpx;
- margin-bottom: 30rpx;
- overflow: auto;
- .line {
- display: flex;
- align-items: center;
- border-bottom: 1rpx solid #e5e5e5;
- padding-bottom: 30rpx;
- margin-bottom: 30rpx;
- .name {
- font-size: 32rpx;
- color: #111111;
- }
- .status {
- flex: 1;
- font-size: 28rpx;
- color: $uni-color-primary;
- margin-left: 12rpx;
- }
- .green {
- color: #00ba67;
- }
- .checked {
- width: 40rpx;
- height: 40rpx;
- }
- }
- }
-}
+<template>
+ <view class="main_app">
+ <view class="main_content">
+ <view class="title" @click="showPlatformgroup = true">{{ activePlatformGroup.name
+ }}<u-icon name="arrow-down" size="20" class="ml12" color="#999999"></u-icon></view>
+ <view class="platform_list">
+ <view class="item" :class="{ active: item.id === activePlatform.id }"
+ v-for="(item, index) in activePlatformGroup.platformList" :key="index" @click="platformClick(item)">
+ {{ item.name }}</view>
+ </view>
+ <view class="status_wrap">
+ <view class="status">浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view>
+ <view class="status">宸插彨锛�<text>{{ platformTaskInfo.callNum }}</text></view>
+ <view class="status">绛夊緟锛�<text>{{ platformTaskInfo.waitNum }}</text></view>
+ <view class="status">寮傚父锛�<text>{{ platformTaskInfo.exceptionNum }}</text></view>
+ </view>
+ </view>
+ <!-- -->
+ <view style="padding-bottom: 140rpx">
+ <view v-for="item in platformTaskInfo.platformJobList" :key="item.id" class="platform_ing">
+ <view class="head">
+ <view class="code">
+ <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+ <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+ <text>路</text>
+ <text>{{ item.carCodeFront.slice(2) }}</text>
+ </view>
+ <view class="status" v-if="item.status != 4 && item.status != 5" :class="{ red: item.status == 8 }">
+ {{ statusMap[item.status] }}</view>
+ <view class="status" v-if="item.status == 4">鍙彿涓� {{ item.callDateTemp }}</view>
+ <view class="status scs" v-if="item.status == 5">宸蹭綔涓� {{ item.startDateTemp }}</view>
+ </view>
+ <view class="line" v-if="item.type == 4">
+ <text class="label">鍚堝悓鍗曞彿</text>
+ <text class="value">{{ item.contractNum }}</text>
+ </view>
+ <view class="line" v-else>
+ <text class="label">杩愯緭鍗曞彿</text>
+ <text class="value">{{ item.code }}</text>
+ <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+ </view>
+ <view class="line">
+ <text class="label">椹鹃┒鍛�</text>
+ <text class="value">{{ item.driverName }} {{ item.drivierPhone }}</text>
+ </view>
+ <view class="line">
+ <text class="label">鎬昏繍杈撻噺</text>
+ <text class="value">{{ item.totalNum }}涓囨敮</text>
+ </view>
+ <view class="line" v-if="item.type != 4">
+ <text class="label">杩愯緭鍏徃</text>
+ <text class="value">{{ item.carrierName }}</text>
+ </view>
+ <view class="btns">
+ <view v-if="item.status == 4" class="btn" @click="handlePass(item)">杩囧彿</view>
+ <view v-if="item.status == 4" class="btn active" @click="handleWork(item)">寮�濮嬩綔涓�</view>
+
+ <view v-if="item.status == 5" class="btn" @click="handleErr(item)">寮傚父鎸傝捣</view>
+ <view v-if="item.status == 5 || item.status == 8" class="btn" @click="handleTransform(item)">杞Щ鏈堝彴</view>
+ <view v-if="item.status == 5 || item.status == 8" class="btn active" @click="handleFinish(item)">浣滀笟瀹屾垚</view>
+ </view>
+ </view>
+ <view v-if="!platformTaskInfo.platformJobList || platformTaskInfo.platformJobList.length == 0" class="empty_wrap">
+ <image src="@/static/default_nodata@2x.png" />
+ <text>鏆傛棤浣滀笟杞﹁締</text>
+ </view>
+ </view>
+ <!-- -->
+ <view class="main_footer">
+ <view class="btn" @click="PlatformCallClick(1)">鍏ュ洯鍙彿</view>
+ <view class="btn active" @click="PlatformCallClick(2)">鏈堝彴鍙彿</view>
+ </view>
+ <!-- 鍙彿 -->
+ <u-popup :show="showPlatformCall" closeable safeAreaInsetTop round="10" @close="showPlatformCall = false">
+ <view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
+ <view class="title" v-if="callType == 2">鏈堝彴鍙彿({{ activePlatform.name }})</view>
+ <view class="title" v-else>鍏ュ洯鍙彿</view>
+ <view class="input_wrap">
+ <u-icon name="search" class="mr12" size="19" color="#999999" />
+ <input v-model="platformCallSearch" type="text" placeholder="鎼滅储杞﹁締鐗岀収" placeholder-class="placeholder9"
+ @confirm="callQuery" />
+ </view>
+ <view class="order_list">
+ <scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
+ <view class="platform_ing" v-for="item in platformCallList" :key="item.id">
+ <view class="head">
+ <view v-if="item.carCodeFront" class="code">
+ <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+ <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+ <text>路</text>
+ <text>{{ item.carCodeFront.slice(2) }}</text>
+ </view>
+ <view class="status" :class="{ scs: item.status == 4 }">{{
+ statusMap[item.status]
+ }}</view>
+ </view>
+ <view class="line" v-if="item.type == 4">
+ <text class="label">鍚堝悓鍗曞彿</text>
+ <text class="value">{{ item.contractNum }}</text>
+ </view>
+ <view class="line" v-else>
+ <text class="label">杩愯緭鍗曞彿</text>
+ <text class="value">{{ item.code }}</text>
+ <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+ </view>
+ <view class="line">
+ <text class="label">椹鹃┒鍛�</text>
+ <text class="value">{{ item.driverName }} {{ item.drivierPhone }}</text>
+ </view>
+ <view class="line">
+ <text class="label">鎬昏繍杈撻噺</text>
+ <text class="value">{{ item.totalNum }}涓囨敮</text>
+ </view>
+ <view class="line" v-if="item.type != 4">
+ <text class="label">杩愯緭鍏徃</text>
+ <text class="value">{{ item.carrierName }}</text>
+ </view>
+ <view class="btns">
+ <view class="btn active" @click="handleCall(item)">鍙彿</view>
+ </view>
+ </view>
+ </scroll-view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 杩愬崟璇︽儏 -->
+ <u-popup :show="showDetail" closeable safeAreaInsetTop round="10" @close="showDetail = false">
+ <view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
+ <view class="title">杩愬崟璇︽儏</view>
+ <view class="platform_ing" style="padding: 0">
+ <view class="head">
+ <view class="code">
+ <text>鐨�</text>
+ <text>AD1212</text>
+ </view>
+ </view>
+ <view class="line">
+ <text class="label">杩愯緭鍗曞彿</text>
+ <text class="value">11111</text>
+ </view>
+ <view class="line">
+ <text class="label">椹鹃┒鍛�</text>
+ <text class="value">11111</text>
+ </view>
+ <view class="line">
+ <text class="label">鎬昏繍杈撻噺</text>
+ <text class="value">11111</text>
+ </view>
+ <view class="line">
+ <text class="label">杩愯緭鍏徃</text>
+ <text class="value">11111</text>
+ </view>
+ </view>
+ <view class="detail_list">
+ <view class="item">
+ <view class="orderId">鍚堝悓缂栧彿锛歿{ 111 }}</view>
+ <view class="addr">鏀惰揣鍦帮細{{ 111 }}</view>
+ <view class="content">
+ <view class="line">
+ <view class="label">鐗╂枡锛�</view>
+ <view class="value">榛勫北</view>
+ </view>
+ <view class="line">
+ <view class="label">鏁伴噺锛�</view>
+ <view class="value">榛勫北</view>
+ </view>
+ <view class="line">
+ <view class="label">鐗╂枡锛�</view>
+ <view class="value">榛勫北</view>
+ </view>
+ <view class="line">
+ <view class="label">鏁伴噺锛�</view>
+ <view class="value">榛勫北</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 杞Щ鏈堝彴 -->
+ <u-popup :show="showTransform" closeable safeAreaInsetTop round="10" @close="showTransform = false">
+ <view class="TransformModal">
+ <view class="title">杞Щ鏈堝彴</view>
+ <view class="transform_list">
+ <view class="line" @click="transformPlatClick(item)" v-for="item in activePlatformGroup.platformList"
+ :key="item.id">
+ <view class="name">{{ item.name }}</view>
+ <view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})
+ </view>
+ <image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
+ </view>
+ </view>
+ <view class="btns">
+ <view class="btn" @click="transformCancel">鍙栨秷</view>
+ <view class="btn active" @click="transformSub">纭畾</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- -->
+ <u-picker :show="showPlatformgroup" keyName="name" :columns="[platformGroupList]"
+ @cancel="showPlatformgroup = false" @confirm="platConfirm"></u-picker>
+ </view>
+</template>
+
+<script>
+ import {
+ getPlatformGroupList,
+ getPlatformWorkData,
+ platformCallList,
+ platformCallNumber,
+ platformInPark,
+ beginWork,
+ finishWork,
+ platformMove,
+ platformErr,
+ platformOverNumber
+ } from '@/api'
+ import {
+ statusMap
+ } from '@/utils/config.js'
+ import dayjs from 'dayjs'
+ import duration from 'dayjs/plugin/duration'
+ dayjs.extend(duration)
+
+ export default {
+ data() {
+ return {
+ statusMap,
+ windowTop: 44,
+ showPlatformCall: false, // 鏈堝彴鍙彿
+ showDetail: false,
+ showTransform: false, // 杞Щ
+ showPlatformgroup: false,
+
+ platformGroupList: [],
+ activePlatformGroup: {},
+ platformTaskInfo: {},
+ activePlatform: {},
+
+ platformCallList: [], //鍙彿鍒楄〃
+ platformCallSearch: '',
+ platformCallTotal: 0,
+ platformCallPage: 1,
+ callType: 1,
+
+ transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
+ transformId: '', // 杞Щ璁板綍浠诲姟id
+ }
+ },
+ onLoad() {
+ this.getPlatformGroup()
+ const res = uni.getWindowInfo()
+ this.windowTop = res.windowTop
+ },
+ methods: {
+ getPlatformGroup() {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 0
+ }).then(res => {
+ this.platformGroupList = res.data || []
+ if (this.platformGroupList.length > 0) {
+ this.activePlatformGroup = this.platformGroupList[0]
+ if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+ this.activePlatform = this.activePlatformGroup.platformList[0]
+ this.getPlatformTask()
+ }
+ }
+ })
+ },
+ getPlatformTask() {
+ getPlatformWorkData({
+ platformId: this.activePlatform.id
+ }).then(res => {
+ this.platformTaskInfo = res.data
+ this.circulInitTaskList()
+ setInterval(() => {
+ this.circulInitTaskList()
+ }, 1000)
+ })
+ },
+ circulInitTaskList() {
+ if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList
+ .length > 0) {
+ let time = new Date()
+ this.platformTaskInfo.platformJobList.forEach(item => {
+ if (item.callDate) {
+ let timeNum = time.getTime() - new Date(item.callDate).getTime()
+ if (timeNum > 3600000) {
+ item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
+ } else {
+ item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ if (item.startDate) {
+ let timeNum = time.getTime() - new Date(item.startDate).getTime()
+ if (timeNum > 3600000) {
+ item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+ } else {
+ item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ })
+ this.$forceUpdate()
+ }
+ },
+ platConfirm(e) {
+ const index = e.indexs[0]
+ this.activePlatformGroup = this.platformGroupList[index]
+ if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+ this.activePlatform = this.activePlatformGroup.platformList[0]
+ this.getPlatformTask()
+ }
+ this.showPlatformgroup = false
+ },
+ platformClick(item) {
+ this.activePlatform = item
+ this.getPlatformTask()
+ },
+ handleDetail() {
+ this.showDetail = true
+ },
+ handleFinish(item) {
+ finishWork({
+ jobId: item.id
+ }).then(res => {
+ this.showToast('瀹屾垚浣滀笟')
+ this.getPlatformTask()
+ })
+ },
+ handleWork(item) { // 寮�濮嬩綔涓�
+ beginWork({
+ jobId: item.id
+ }).then(res => {
+ this.showToast('宸插紑濮嬩綔涓�')
+ this.getPlatformTask()
+ })
+ },
+ handlePass(item) {
+ uni.showModal({
+ content: `纭 ${item.carCodeFront}缃负杩囧彿鍚楋紵杩囧彿鍚庯紝闇�瑕侀噸鏂扮鍒版墠鑳借繘鍏ュ洯鍖篳,
+ success: (res) => {
+ if (res.confirm) {
+ platformOverNumber({
+ jobId: item.id,
+ platformId: this.activePlatform.id
+ }).then(res => {
+ this.showToast('杩囧彿鎴愬姛')
+ this.getPlatformTask()
+ })
+ }
+ }
+ })
+
+ },
+ handleCall(item) {
+ const {
+ callType,
+ activePlatform
+ } = this
+ this.platformCallList = []
+ this.platformCallPage = 1
+ if (callType == 1) { // 鍏ュ洯鍙彿
+ platformInPark({
+ jobId: item.id
+ }).then(res => {
+ this.showToast('鍙彿鎴愬姛')
+ this.getPlatformCallList()
+ })
+ } else { // 鏈堝彴鍙彿
+ platformCallNumber({
+ platformId: activePlatform.id,
+ jobId: item.id
+ }).then(res => {
+ this.showToast('鍙彿鎴愬姛')
+ this.getPlatformCallList()
+ this.getPlatformTask()
+ })
+ }
+ },
+ PlatformCallClick(callType) {
+ this.callType = callType
+ this.showPlatformCall = true
+ this.platformCallList = []
+ this.platformCallPage = 1
+ this.platformCallSearch = ''
+ this.getPlatformCallList()
+ },
+ callQuery() {
+ this.platformCallList = []
+ this.platformCallPage = 1
+ this.getPlatformCallList()
+ },
+ callScrolltolower() {
+ const {
+ platformCallTotal,
+ platformCallList
+ } = this
+ if (platformCallTotal > platformCallList.length) {
+ this.getPlatformCallList()
+ }
+ },
+ getPlatformCallList() {
+ const {
+ platformCallPage,
+ callType,
+ activePlatform,
+ platformCallSearch
+ } = this
+ platformCallList({
+ model: {
+ callType,
+ platformId: activePlatform.id,
+ carCodeFront: platformCallSearch
+ },
+ capacity: 10,
+ page: platformCallPage
+ }).then(res => {
+ if (res.data && res.data.records) {
+ this.platformCallList = [...this.platformCallList, ...res.data.records]
+ this.platformCallTotal = res.data.total
+ }
+ })
+ },
+ transformPlatClick(item) {
+ this.transformPlatId = item.id
+ },
+ transformCancel() {
+ this.transformPlatId = ''
+ this.showTransform = false
+ },
+ transformSub() {
+ const {
+ transformPlatId,
+ transformId
+ } = this
+ platformMove({
+ platformId: transformPlatId,
+ jobId: transformId
+ }).then(res => {
+ this.showToast('杞Щ鏈堝彴鎴愬姛')
+ this.transformCancel()
+ this.getPlatformTask()
+ })
+ },
+ handleTransform(item) {
+ let {
+ activePlatform
+ } = this
+ this.transformId = item.id
+ this.transformPlatId = activePlatform.id
+ this.showTransform = true
+ },
+ handleErr(item) {
+ uni.showModal({
+ content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�',
+ success: (res) => {
+ if (res.confirm) {
+ platformErr({
+ jobId: item.id
+ }).then(ress => {
+ this.showToast('寮傚父鎸傝捣鎴愬姛')
+ this.getPlatformTask()
+ })
+ }
+ }
+ })
+ }
+ }
+ }
+</script>
+<style lang="scss">
+ .main_app {
+ padding: 0rpx;
+ height: calc(100vh - 44px);
+ font-size: 30rpx;
+ color: #333333;
+ background: url("@/static/bg_yuetai@2x.png") no-repeat;
+ background-size: 100% 100%;
+
+ .main_content {
+ background-color: #fff;
+ padding: 30rpx;
+
+ .platform_list {
+ display: flex;
+ flex-wrap: wrap;
+
+ .item {
+ width: 210rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ text-align: center;
+ background: #ffffff;
+ border-radius: 8rpx;
+ border: 1rpx solid #999999;
+ font-size: 30rpx;
+ color: #222222;
+ margin-bottom: 20rpx;
+ margin-right: 30rpx;
+
+ &:nth-of-type(3n) {
+ margin-right: 0;
+ }
+ }
+
+ .active {
+ color: #fff;
+ background-color: $uni-color-primary;
+ border-color: $uni-color-primary;
+ }
+ }
+
+ .status_wrap {
+ display: flex;
+ align-items: center;
+ justify-content: space-evenly;
+ width: 690rpx;
+ height: 76rpx;
+ margin-top: 4rpx;
+ background: #ffffff;
+ box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.18);
+ border-radius: 8rpx;
+
+ .status {
+ color: #666666;
+
+ text {
+ color: #111111;
+ }
+
+ &:nth-last-child(1) {
+ text {
+ color: #ed4545;
+ }
+ }
+ }
+ }
+
+ .title {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #111111;
+ line-height: 44rpx;
+ margin-bottom: 30rpx;
+ display: flex;
+ justify-content: center;
+ }
+ }
+
+ .platform_ing {
+ margin-top: 20rpx;
+ padding: 30rpx;
+ background-color: #fff;
+
+ .head {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 30rpx;
+
+ .code {
+ display: flex;
+ font-weight: 600;
+ height: 60rpx;
+ line-height: 60rpx;
+ font-size: 32rpx;
+ color: #111111;
+ border-radius: 8rpx;
+ border: 1rpx solid #dfdede;
+
+ text {
+ &:nth-of-type(1) {
+ background: #e9f5f6;
+ padding: 0 12rpx;
+ }
+
+ &:nth-of-type(2) {
+ padding-left: 4rpx;
+ }
+
+ &:nth-of-type(4) {
+ padding-right: 6rpx;
+ }
+ }
+ }
+
+ .status {
+ font-size: 30rpx;
+ color: $uni-color-primary;
+ }
+
+ .scs {
+ color: #00ba67;
+ }
+ }
+
+ .line {
+ display: flex;
+ margin-bottom: 20rpx;
+
+ .label {
+ width: 144rpx;
+ color: #666666;
+ }
+
+ .value {
+ flex: 1;
+ }
+ }
+
+ .btns {
+ display: flex;
+ justify-content: flex-end;
+
+ .btn {
+ width: 210rpx;
+ height: 76rpx;
+ line-height: 76rpx;
+ text-align: center;
+ background: #ffffff;
+ border-radius: 40rpx;
+ border: 1rpx solid #999999;
+ margin-left: 20rpx;
+ }
+
+ .active {
+ background-color: $uni-color-primary;
+ color: #fff;
+ border-color: $uni-color-primary;
+ }
+ }
+ }
+
+ .empty {
+ width: 220rpx;
+ margin: 160rpx auto;
+ }
+
+ .main_footer {
+ width: 750rpx;
+ height: 136rpx;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ padding: 24rpx 30rpx;
+ display: flex;
+ justify-content: space-between;
+ font-size: 32rpx;
+ background-color: #fff;
+
+ .btn {
+ width: 224rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ background: #ffffff;
+ border-radius: 44rpx;
+ color: $uni-color-primary;
+ border: 1rpx solid $uni-color-primary;
+ }
+
+ .active {
+ width: 436rpx;
+ background-color: $uni-color-primary;
+ color: #fff;
+ border-color: $uni-color-primary;
+ }
+ }
+ }
+
+ .PlatformCallModal {
+ height: calc(100vh - 44px);
+ padding: 30rpx;
+
+ .title {
+ text-align: center;
+ margin: 0 0 30rpx;
+ }
+
+ .input_wrap {
+ display: flex;
+ align-items: center;
+ width: 690rpx;
+ height: 76rpx;
+ background: #f7f7f7;
+ border-radius: 38rpx;
+ padding: 0 30rpx;
+ }
+
+ .order_list {
+ height: calc(100% - 140rpx);
+
+ .scroll_view {
+ height: 100%;
+ }
+
+ .platform_ing {
+ border-radius: 8rpx;
+ border: 1rpx solid #dfe2e8;
+ }
+ }
+
+ .detail_list {
+ border-top: 1rpx solid #e5e5e5;
+ padding: 30rpx 0;
+
+ .orderId {
+ font-size: 30rpx;
+ color: $uni-color-primary;
+ margin-bottom: 14rpx;
+ }
+
+ .addr {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
+
+ .content {
+ width: 100%;
+ padding: 20rpx;
+ background: #f7f7f7;
+ border-radius: 8rpx;
+
+ .line {
+ display: flex;
+ margin-bottom: 20rpx;
+
+ &:nth-of-type(2n) {
+ padding-bottom: 20rpx;
+ border-bottom: 1rpx solid #e5e5e5;
+ }
+
+ &:last-child {
+ padding-bottom: 0rpx;
+ border-bottom: none;
+ }
+
+ .label {
+ font-size: 28rpx;
+ color: #666666;
+ width: 88rpx;
+ }
+
+ .value {
+ font-size: 28rpx;
+ color: #222222;
+ }
+ }
+ }
+ }
+
+ .btns {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ border: 1rpx solid $uni-color-primary;
+ color: $uni-color-primary;
+ font-size: 32rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .active {
+ color: #fff;
+ background-color: $uni-color-primary;
+ }
+ }
+ }
+
+ .TransformModal {
+ height: 900rpx;
+ padding: 30rpx;
+ position: relative;
+
+ .title {
+ text-align: center;
+ margin: 0 0 30rpx;
+ }
+
+ .btns {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: absolute;
+ z-index: 999;
+ left: 30rpx;
+ bottom: 30rpx;
+
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ border: 1rpx solid $uni-color-primary;
+ color: $uni-color-primary;
+ font-size: 32rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .active {
+ color: #fff;
+ margin-left: 18rpx;
+ background-color: $uni-color-primary;
+ }
+ }
+
+ .transform_list {
+ height: 660rpx;
+ margin-bottom: 30rpx;
+ overflow: auto;
+
+ .line {
+ display: flex;
+ align-items: center;
+ border-bottom: 1rpx solid #e5e5e5;
+ padding-bottom: 30rpx;
+ margin-bottom: 30rpx;
+
+ .name {
+ font-size: 32rpx;
+ color: #111111;
+ }
+
+ .status {
+ flex: 1;
+ font-size: 28rpx;
+ color: $uni-color-primary;
+ margin-left: 12rpx;
+ }
+
+ .green {
+ color: #00ba67;
+ }
+
+ .checked {
+ width: 40rpx;
+ height: 40rpx;
+ }
+ }
+ }
+ }
</style>
\ No newline at end of file
diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue
index e9e23c7..a62ada9 100644
--- a/pda/pages/index/queueup.vue
+++ b/pda/pages/index/queueup.vue
@@ -21,7 +21,7 @@
/>
</view>
<view class="count"
- >宸茬鍒拌溅杈嗭細<text>{{ total }}</text></view
+ >鎬绘帓闃熻溅杈嗭細<text>{{ total }}</text></view
>
</view>
<!-- -->
@@ -139,6 +139,7 @@
platConfirm(e) {
const index = e.indexs[0]
this.platformGroup = this.platformGroupList[index]
+ this.platformLineUpList = []
this.getList()
this.showPlatformgroup = false
},
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
index da445e9..1214156 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -35,11 +35,10 @@
* @author 姹熻箘韫�
* @date 2023/11/30 15:33
*/
-@Api(tags = "娴峰悍鏁版嵁鍚屾鎺ュ彛")
+@Api(tags = "娴峰悍鎺ュ彛娴嬭瘯宸ュ叿鎺ュ彛")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hktest")
public class HkInterfaceTestCloudController extends BaseController {
-
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -67,32 +66,32 @@
return ApiResponse.success( HKService.wxAccessToken(configId,tageId));
}
@ApiOperation("銆愭捣搴枫�戞祴璇曞垎椤佃幏鍙栧憡璀︿簨浠�")
- @GetMapping("/nhEventPageList")
+ @PostMapping("/nhEventPageList")
@LoginNoRequired
public ApiResponse<BaseResponse> nhEventPageList(@RequestBody NhEventPageListRequest param, HttpServletResponse response) {
return ApiResponse.success( HKService.nhEventPageList(param));
}
@ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵��")
- @GetMapping("/sensorStatusSearch")
+ @PostMapping("/sensorStatusSearch")
@LoginNoRequired
public ApiResponse<BaseResponse> sensorStatusSearch(@RequestBody SensorStatusListRequest param, HttpServletResponse response) {
return ApiResponse.success( HKService.sensorStatusSearch(param));
}
@ApiOperation("銆愭捣搴枫�戞煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃")
- @GetMapping("/fireChannelSearch")
+ @PostMapping("/fireChannelSearch")
@LoginNoRequired
public ApiResponse<BaseResponse> fireChannelSearch(@RequestBody FireChannelListRequest param, HttpServletResponse response) {
return ApiResponse.success( HKService.fireChannelSearch(param));
}
@ApiOperation("銆愭捣搴枫�戞捣搴疯娑堥槻璁惧鍒楄〃")
- @GetMapping("/fireDeviceSearch")
+ @PostMapping("/fireDeviceSearch")
@LoginNoRequired
public ApiResponse<BaseResponse> fireDeviceSearch(@RequestBody FireDeviceListRequest param, HttpServletResponse response) {
return ApiResponse.success( HKService.fireDeviceSearch(param));
}
@ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃茶澶囬儴浠剁姸鎬�")
- @GetMapping("/fireDeviceStatusSearch")
+ @PostMapping("/fireDeviceStatusSearch")
@LoginNoRequired
public ApiResponse<BaseResponse> fireDeviceStatusSearch(@RequestBody FireDeviceStatuslListRequest param, HttpServletResponse response) {
return ApiResponse.success( HKService.fireDeviceStatusSearch(param));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index b9e3b0d..8e39c56 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -593,24 +593,24 @@
* @param body
* @return
*/
- public static String fireDeviceStatusSearch(Map<String,String> body) {
- return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body);
+ public static String fireDeviceStatusSearch(String body) {
+ return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body);
}
/**
* 鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
* @param body
* @return
*/
- public static String sensorStatusSearch(Map<String,String> body) {
- return startDoGetStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body);
+ public static String sensorStatusSearch(String body) {
+ return startDoPostStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body);
}
/**
* 璇㈡秷闃茶澶囧垪琛�
* @param body
* @return
*/
- public static String fireChannelSearch(Map<String,String> body) {
- return startDoGetStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body);
+ public static String fireChannelSearch(String body) {
+ return startDoPostStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body);
}
/**
@@ -618,8 +618,8 @@
* @param body
* @return
*/
- public static String fireDeviceSearch(Map<String,String> body) {
- return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body);
+ public static String fireDeviceSearch(String body) {
+ return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body);
}
/**
* 鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
index c750997..3823fba 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
@@ -13,6 +13,6 @@
private int pageNo ;// number False 褰撳墠椤电爜
private int totalPage;// number False 鎬婚〉鏁�
- @JSONField(name="list",alternateNames = {"rows","records"})
+ @JSONField(name="list",alternateNames = {"rows","list"})
private List<T> list ;// object[] False 鏉冮檺缁勫璞″垪琛�
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
index 38407bc..b9f0d5b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
@@ -4,21 +4,16 @@
@Data
public class FireDeviceStatusListResponse {
- private String id ;//String false 棰勫憡璀︿簨浠跺敮涓�鏍囪瘑
- private String warningName ;//String false 棰勫憡璀﹀悕绉�
- private String nodeType ;//Number false 鑺傜偣绫诲瀷
- private String nodeId ;//String false 鑺傜偣ID
- private String nodeName;// String false 鑺傜偣鍚嶇О
- private String nodePath;// String false 鑺傜偣璺緞
- private String ruleType ;//String false 棰勫憡璀︾被鍨�
- private String warningLevel ;//Number false 棰勫憡璀︾瓑绾э紝1锛氫竴鑸紝2锛氫弗閲嶏紝3锛氭晠闅�
- private String warningValue ;//String false 鏁版嵁椤瑰綋鍓嶅��
- private String warningEventTip;// String false 寮傚父鍘熷洜
- private String createTime;// String false 鍙戠敓鏃堕棿
- private String benchmark;// String false 鍩哄噯鏁版嵁
- private String handleStatus;// Number false 澶勭悊鐘舵�侊細1锛氭湭澶勭悊锛�2锛氬凡澶勭悊
- private String note;// String false 澶勭悊鎰忚
- private String handleTime;// String false 澶勭悊鏃堕棿
- private String normal;// Boolean false 棰勫憡璀︽槸鍚︽甯�
- private String deviceId;// String false 璁惧id
+ private String cn ;//String false
+ private String regionIndexCode ;//String false
+ private String indexCode;// String false
+ private String regionName;// String false
+ private String deviceIndexCode;// String false
+ private String deviceType;// Number false
+ private String unitStatus ;//Number false
+ private String online;// Number false
+ private String collectTime;// String false
+ private String faultType;// String false
+ private String faultName;// String false
+ private String faultNum;// String false
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 485b0fc..31f76aa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -926,7 +926,7 @@
public static BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>> fireDeviceStatusSearch(FireDeviceStatuslListRequest param){
log.info("銆愭捣搴锋煡璇㈡秷闃茶澶囬儴浠剁姸鎬併��================寮�濮�===="+JSONObject.toJSONString(param));
try {
- String res = HKTools.fireDeviceStatusSearch(toMap(param));
+ String res = HKTools.fireDeviceStatusSearch(JSONObject.toJSONString(param));
TypeReference typeReference =
new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>>(){};
BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>> result = JSONObject.parseObject(res, typeReference.getType());
@@ -944,7 +944,7 @@
public static BaseResponse<BaseListPageResponse<SensorStatusListResponse>> sensorStatusSearch(SensorStatusListRequest param){
log.info("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�併��================寮�濮�===="+JSONObject.toJSONString(param));
try {
- String res = HKTools.sensorStatusSearch(toMap(param));
+ String res = HKTools.sensorStatusSearch(JSONObject.toJSONString(param));
TypeReference typeReference =
new TypeReference<BaseResponse<BaseListPageResponse<SensorStatusListResponse>>>(){};
BaseResponse<BaseListPageResponse<SensorStatusListResponse>> result = JSONObject.parseObject(res, typeReference.getType());
@@ -963,7 +963,7 @@
public static BaseResponse<BaseListPageResponse<FireChannelListResponse>> fireChannelSearch(FireChannelListRequest param){
log.info("銆愭捣搴锋煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
try {
- String res = HKTools.fireChannelSearch(toMap(param));
+ String res = HKTools.fireChannelSearch(JSONObject.toJSONString(param));
TypeReference typeReference =
new TypeReference<BaseResponse<BaseListPageResponse<FireChannelListResponse>>>(){};
BaseResponse<BaseListPageResponse<FireChannelListResponse>> result = JSONObject.parseObject(res, typeReference.getType());
@@ -981,7 +981,7 @@
public static BaseResponse<BaseListPageResponse<FireDeviceListResponse>> fireDeviceSearch(FireDeviceListRequest param){
log.info("銆愭捣搴疯娑堥槻璁惧鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
try {
- String res = HKTools.fireDeviceSearch(toMap(param));
+ String res = HKTools.fireDeviceSearch(JSONObject.toJSONString(param));
TypeReference typeReference =
new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceListResponse>>>(){};
BaseResponse<BaseListPageResponse<FireDeviceListResponse>> result = JSONObject.parseObject(res, typeReference.getType());
@@ -1338,7 +1338,6 @@
log.error("銆愭捣搴疯幏鍙栧叏閮ㄦ湀鍙颁俊鎭��================澶辫触====锛歕n" + e.getMessage());
}
return null;
-
}
/**
*鍙戦�佹秷鎭粰LED
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 9816597..b10d537 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1027,7 +1027,6 @@
*/
private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
//TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
-
List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
.eq(PlatformDevice::getPlatformId,model.getPlatformId())
.eq(PlatformDevice::getIsdeleted,Constants.ZERO));
@@ -1041,7 +1040,6 @@
continue;
}
if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
-
//濡傛灉鏄疞ED
TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
@@ -1053,16 +1051,21 @@
body.setMethod("ControlLedGereral");//鍥哄畾鍊�
request.setIndexCode(device.getHkId());
request.setOperationType(219);//鍥哄畾鍊�
- regions.setActionType(0);
+ regions.setActionType(32);
regions.setContent(content);
regions.setRegionNo(1);
regions.setRegionType(14);
- regions.setFontColor(2);
+ regions.setFontColor(1);
regions.setCircleTimes(1);//寰幆娆℃暟
- regions.setFontSize(31);//
+ regions.setFontSize(32);//
regions.setStayTime(1);//鍗曚綅锛燂紵
+ regions.setRegionLeftTopXPos(0);
+ regions.setRegionLeftTopYPos(0);
+ regions.setRegionRightBottomXPos(255);
+ regions.setRegionRightBottomYPos(31);
request.setRegions(new ArrayList<>());
request.getRegions().add(regions);
+ regions.setSpeed(13);
body.setParams(request);
HKService.transparentchannel(head,body);
}else if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
@@ -1073,9 +1076,9 @@
if(broadcastList.size()>0){
CustomBroadcastRequest request = new CustomBroadcastRequest();
request.setAudioPointIndexCode(broadcastList);
- request.setPlayDuration(60);//鍗曚綅绉�
+ request.setPlayDuration(15);//鍗曚綅绉�
request.setBroadCastMode("tts");
- request.setPriority(15);
+ request.setPriority(1);
request.setState(1);//鎾斁/鍋滄鏍囪瘑 1-鎾斁锛�0-鍋滄
request.setPlayTtsContent(content);
HKService.customBroadcast(request);
--
Gitblit v1.9.3