From 57c140de40d75af475f5a1accc693172ffaaaf0d Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 24 九月 2024 09:15:06 +0800
Subject: [PATCH] ll
---
admin/src/views/platform/LogisticsRecord/waybill.vue | 26
admin/src/components/business/OperaPlatformWindow.vue | 68 -
pda/static/back.svg | 1
admin/src/views/platform/components/PlatformQueuing.vue | 3
pda/pages.json | 2
h5/pages/staff/task/visitorApprove.vue | 1135 +++++++++++++++---------------
pda/pages/index/index.vue | 105 ++
pda/utils/config.js | 2
h5/pages/staff/task/driver.vue | 346 ++++----
admin/src/views/meeting/bookings.vue | 17
pda/pages/index/control.vue | 2
admin/src/views/platform/LogisticsRecord/operation.vue | 4
h5/manifest.json | 13
admin/.env.development | 3
h5/pages/staffLogin/login.vue | 2
admin/src/api/meeting/bookings.js | 4
admin/src/views/platform/queueUp.vue | 30
admin/src/views/platform/components/PlatformSign.vue | 222 ++++++
admin/src/api/platform/index.js | 50
admin/src/views/platform/LogisticsRecord/leaveAuth.vue | 2
admin/src/views/platform/platform.vue | 93 +-
pda/pages/index/login.vue | 5
h5/pages/driver/taskDetail.vue | 25
admin/src/views/platform/index.vue | 1
h5/pages/driver/reservedRecord.vue | 2
h5/pages/driver/login.vue | 2
pda/manifest.json | 8
27 files changed, 1,213 insertions(+), 960 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 657e1bc..0778f82 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,5 +2,6 @@
NODE_ENV = 'development'
VUE_APP_API_URL = 'http://localhost:10010'
-VUE_APP_API_URL = 'http://192.168.137.1:10010'
+VUE_APP_API_URL = 'http://192.168.0.103:10010'
# VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface'
+s
\ No newline at end of file
diff --git a/admin/src/api/meeting/bookings.js b/admin/src/api/meeting/bookings.js
index efd7284..d1ab7f7 100644
--- a/admin/src/api/meeting/bookings.js
+++ b/admin/src/api/meeting/bookings.js
@@ -31,6 +31,10 @@
export function startById(data) {
return request.post('/meetingAdmin/cloudService/business/meeting/start', data)
}
+// 缁撴潫
+export function meetingEndById(data) {
+ return request.post('/meetingAdmin/cloudService/business/meeting/reservationOver', data)
+}
// 鎻愬墠寮�濮�
export function startEarlyById(data) {
return request.post('/meetingAdmin/cloudService/business/meeting/startEarly', data)
diff --git a/admin/src/api/platform/index.js b/admin/src/api/platform/index.js
index b2dd326..a047f80 100644
--- a/admin/src/api/platform/index.js
+++ b/admin/src/api/platform/index.js
@@ -1,108 +1,112 @@
import request from '@/utils/request'
// 鑾峰彇鏈堝彴缁勪俊鎭�
-export function getPlatformGroupList (data) {
+export function getPlatformGroupList(data) {
return request.post('/visitsAdmin/cloudService/business/platform/getPlatformGroupList', data)
}
// 鍙彿鍒楄〃
-export function platformCallList (data) {
+export function platformCallList(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformCallList', data)
}
// 鍙彿
-export function platformCallNumber (data) {
+export function platformCallNumber(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformCallNumber', data)
}
// 寮�濮嬩綔涓�
-export function platformBeginWork (data) {
+export function platformBeginWork(data) {
return request.post('/visitsAdmin/cloudService/business/platform/beginWork', data)
}
// 瀹屾垚浣滀笟
-export function platformFinishWork (data) {
+export function platformFinishWork(data) {
return request.post('/visitsAdmin/cloudService/business/platform/finishWork', data)
}
// 杩囧彿
-export function platformOverNumber (data) {
+export function platformOverNumber(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformOverNumber', data)
}
// 寮傚父鎸傝捣
-export function platformErr (data) {
+export function platformErr(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformErr', data)
}
// 寮傚父鎸傝捣
-export function platformMove (data) {
+export function platformMove(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformMove', data)
}
// 鏈堝彴閰嶇疆
-export function updUserPlatformConfig (data) {
+export function updUserPlatformConfig(data) {
return request.get('/visitsAdmin/cloudService/business/platform/updUserPlatformConfig?ids=' + data)
}
// 鏍规嵁鏈堝彴缁勮幏鍙栨湀鍙板垪琛ㄤ俊鎭�
-export function listByGroupId (id) {
+export function listByGroupId(id) {
return request.get('/visitsAdmin/cloudService/business/platform/listByGroupId?groupId=' + id)
}
// 鏈堝彴鍒楄〃 缂栬緫
-export function PlatformEdit (data) {
+export function PlatformEdit(data) {
return request.post('/visitsAdmin/cloudService/business/platform/updateById', data, {
trim: true
})
}
// 鏈堝彴鍒楄〃 鍒犻櫎
-export function PlatformDel (id) {
+export function PlatformDel(id) {
return request.get('/visitsAdmin/cloudService/business/platform/delete/' + id, {
trim: true
})
}
// 鏈堝彴璋冨害涓績 鍒楄〃
-export function getPlatformJob (data) {
+export function getPlatformJob(data) {
return request.post('/visitsAdmin/cloudService/business/platformJob/page', data, {
trim: true
})
}
// 杞﹁締鎺掗槦鎯呭喌
-export function platformLineUpPage (data) {
+export function platformLineUpPage(data) {
return request.post('/visitsAdmin/cloudService/business/platform/platformLineUpPage', data, {
trim: true
})
}
// 鍏ュ洯鍘熷洜
-export function platformReasonList () {
+export function platformReasonList() {
return request.get('/visitsAdmin/cloudService/business/platformBooks/platformReasonList')
}
// 鐗╂祦杞﹂绾�
-export function platformBooksApply (data) {
+export function platformBooksApply(data) {
return request.post('/visitsAdmin/cloudService/business/platformBooks/apply', data)
}
// 鑾峰彇鏈堝彴缁� 绛夊緟涓庡紓甯告寕璧锋暟鎹�
-export function getPlatformGroupWork (id) {
+export function getPlatformGroupWork(id) {
return request.get('/visitsAdmin/cloudService/business/platform/getPlatformGroupWork?platformGroupId=' + id)
}
// 鏈堝彴鍏ュ洯棰勭害 鍒嗛〉鍒楄〃
-export function platformBooksPage (data) {
+export function platformBooksPage(data) {
return request.post('/visitsAdmin/cloudService/business/platformBooks/page', data)
}
// 鏈堝彴鍏ュ洯棰勭害 鍒楄〃瀵煎嚭
-export function platformBooksExport (data) {
+export function platformBooksExport(data) {
return request.post('/visitsAdmin/cloudService/business/platformBooks/exportExcel', data, {
trim: true,
download: true
})
}
// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒嗛〉鍒楄〃
-export function platformJobPage (data) {
+export function platformJobPage(data) {
return request.post('/visitsAdmin/cloudService/business/platformJob/page', data)
}
// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒犻櫎
-export function platformJobDel (id) {
+export function platformJobDel(id) {
return request.get('/visitsAdmin/cloudService/business/platformJob/delete?id=' + id)
}
+// 鏈堝彴璋冨害浣滀笟浠诲姟 绛惧埌
+export function platformJobSign(data) {
+ return request.post('/visitsAdmin/cloudService/business/platformJob/signIn', data)
+}
// 鏈堝彴璋冨害浣滀笟浠诲姟 绂诲洯鎺堟潈
-export function platformPowerLevel (data) {
+export function platformPowerLevel(data) {
return request.post('/visitsAdmin/cloudService/business/platform/powerLevel', data)
}
// 鏈堝彴璋冨害浣滀笟浠诲姟 鍒楄〃瀵煎嚭
-export function platformJobExport (data) {
+export function platformJobExport(data) {
return request.post('/visitsAdmin/cloudService/business/platformJob/exportExcel', data, {
trim: true,
download: true
diff --git a/admin/src/components/business/OperaPlatformWindow.vue b/admin/src/components/business/OperaPlatformWindow.vue
index c0157fb..c03564e 100644
--- a/admin/src/components/business/OperaPlatformWindow.vue
+++ b/admin/src/components/business/OperaPlatformWindow.vue
@@ -1,60 +1,42 @@
<template>
- <GlobalWindow
- :title="title"
- width="50%"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
+ <GlobalWindow :title="title" width="50%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鏈堝彴鍚嶇О锛�" >
- <span>{{form.name}}</span>
+ <el-form-item label="鏈堝彴鍚嶇О锛�">
+ <span>{{ form.name }}</span>
</el-form-item>
<el-form-item label="鏈堝彴缂栫爜锛�" prop="code">
- <el-input v-model="form.code" placeholder="璇疯緭鍏ユ湀鍙扮紪鐮�" v-trim/>
- <span class="tip-warn"><i class="el-icon-warning"></i>璇存槑锛氬搴擶MS绯荤粺涓殑缂栫爜</span>
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ユ湀鍙扮紪鐮�" v-trim />
+ <span class="tip-warn"><i class="el-icon-warning"></i>璇存槑锛氬搴擶MS绯荤粺涓殑缂栫爜</span>
</el-form-item>
<el-form-item label="鎵�灞炴湀鍙板垎缁勶細" prop="groupId">
- <el-select v-model="form.groupId" >
- <el-option
- v-for="item in groupList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
+ <el-select v-model="form.groupId">
+ <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="骞挎挱璁惧锛�" prop="broadcastIds">
- <el-select v-model="form.broadcastIds" multiple >
- <el-option
- v-for="item in broadcastList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
+ <el-select v-model="form.broadcastIds" multiple>
+ <el-option v-for="item in broadcastList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="LED璁惧锛�" prop="ledIds">
- <el-select v-model="form.ledIds" multiple >
- <el-option
- v-for="item in ledList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
+ <el-select v-model="form.ledIds" multiple>
+ <el-option v-for="item in ledList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="鍚屾椂浣滀笟鏁伴噺锛�" prop="workingNum" >
- <el-input type="number" v-model="form.workingNum" placeholder="璇疯緭鍏ュ悓鏃朵綔涓氭暟閲�" v-trim/>
+ <el-form-item label="鍚屾椂浣滀笟鏁伴噺锛�" prop="workingNum">
+ <el-input type="number" v-model="form.workingNum" placeholder="璇疯緭鍏ュ悓鏃朵綔涓氭暟閲�" v-trim />
</el-form-item>
<el-form-item label="鏈堝彴浣滀笟鏁堢巼(涓囧彧/灏忔椂)锛�" prop="workRate">
- <el-input type="number" v-model="form.workRate" placeholder="璇疯緭鍏ユ湀鍙颁綔涓氭晥鐜�(涓囧彧/灏忔椂)" v-trim/>
+ <el-input type="number" v-model="form.workRate" placeholder="璇疯緭鍏ユ湀鍙颁綔涓氭晥鐜�(涓囧彧/灏忔椂)" v-trim />
</el-form-item>
<el-form-item label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓)锛�" prop="workTimeoutAlarmTime">
- <el-input type="number" v-model="form.workTimeoutAlarmTime" placeholder="璇疯緭鍏ヤ綔涓氳秴鏃舵姤璀︽椂闂�(鍒嗛挓)" v-trim/>
+ <el-input type="number" v-model="form.workTimeoutAlarmTime" placeholder="璇疯緭鍏ヤ綔涓氳秴鏃舵姤璀︽椂闂�(鍒嗛挓)" v-trim />
</el-form-item>
- <el-form-item label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛夛細" prop="stayTmeoutAlarmTime">
- <el-input type="number" v-model="form.stayTmeoutAlarmTime" placeholder="璇疯緭鍏ュ仠鐣欒秴鏃舵姤璀︽椂闂�(鍒嗛挓)" v-trim/>
+ <el-form-item label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛夛細" prop="stayTimeoutAlarmTime">
+ <el-input type="number" v-model="form.stayTimeoutAlarmTime" placeholder="璇疯緭鍏ュ仠鐣欒秴鏃舵姤璀︽椂闂�(鍒嗛挓)" v-trim />
</el-form-item>
</el-form>
</GlobalWindow>
@@ -70,7 +52,7 @@
name: 'OperaPlatformWindow',
extends: BaseOpera,
components: { GlobalWindow },
- data () {
+ data() {
return {
// 琛ㄥ崟鏁版嵁
groupList: [],
@@ -86,7 +68,7 @@
endTime: '',
workingNum: 1,
workRate: '',
- stayTmeoutAlarmTime: '',
+ stayTimeoutAlarmTime: '',
workTimeoutAlarmTime: '',
},
// 楠岃瘉瑙勫垯
@@ -95,7 +77,7 @@
}
}
},
- created () {
+ created() {
this.config({
api: '/platform/platform',
'field.id': 'id'
@@ -107,7 +89,7 @@
* @title 绐楀彛鏍囬
* @target 缂栬緫鐨勫璞�
*/
- open (title, target) {
+ open(title, target) {
this.title = title
this.visible = true
this.loadGroupList()
@@ -130,19 +112,19 @@
this.form.workingNum = this.form.workingNum || 1
})
},
- loadGroupList () {
+ loadGroupList() {
allList({})
.then(res => {
this.groupList = res || []
})
},
- loadLedList () {
+ loadLedList() {
deviceList({ type: 2 })
.then(res => {
this.ledList = res || []
})
},
- loadBroadcastList () {
+ loadBroadcastList() {
deviceList({ type: 3 })
.then(res => {
this.broadcastList = res || []
@@ -152,7 +134,7 @@
}
</script>
<style scoped>
-.labelTip{
+.labelTip {
font-size: 12px;
color: #666666;
}
diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue
index e9e45a1..73cc725 100644
--- a/admin/src/views/meeting/bookings.vue
+++ b/admin/src/views/meeting/bookings.vue
@@ -98,7 +98,7 @@
'business:bookings:update',
'business:bookings:delete',
])
- " label="鎿嶄綔" min-width="100" align="center" fixed="right">
+ " label="鎿嶄綔" min-width="140" align="center" fixed="right">
<template slot-scope="{ row }">
<template>
<el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
@@ -106,6 +106,7 @@
@click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)"
v-permissions="['business:bookings:update']">缂栬緫</el-button>
<el-button type="text" v-if="row.meetingStatus == '1'" @click="handleStart(row)">寮�濮�</el-button>
+ <el-button type="text" v-if="row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button>
<el-button v-if="row.meetingStatus == '1'" type="text" @click="cancelMeeting(row.id)"
v-permissions="['business:bookings:update']">鎾ゅ洖</el-button>
</template>
@@ -132,7 +133,7 @@
import { findList } from '@/api/meeting/rooms'
import { getSystemDictData } from '@/api/system/dictData'
import { fetchList } from '@/api/business/company'
-import { cancelById, bookingsDetail, startEarlyById, startById } from '@/api/meeting/bookings'
+import { cancelById, bookingsDetail, startEarlyById, startById, meetingEndById } from '@/api/meeting/bookings'
import { timeForMat } from '@/utils/util'
export default {
name: 'Bookings',
@@ -276,6 +277,18 @@
})
})
},
+ handleEnd(row) {
+ this.$dialog.messageWaring('缁撴潫浼氳', '鏄惁缁撴潫褰撳墠浼氳锛�')
+ .then(() => {
+ meetingEndById({ id: row.id })
+ .then(() => {
+ this.$message.success('浼氳宸茬粨鏉�')
+ this.handlePageChange()
+ })
+ .catch(e => {
+ })
+ })
+ },
cancelMeeting(id) {
this.$dialog.messageWaring('鍙栨秷浼氳', '鏄惁鍙栨秷褰撳墠浼氳锛�')
.then(() => {
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 935607d..116e23f 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -16,7 +16,7 @@
</div>
<el-table class="mb20" v-loading="loading" :data="list" stripe>
<el-table-column type="index" label="搴忓彿" width="70" show-overflow-tooltip />
- <el-table-column prop="code" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="billCode" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
<!-- <el-table-column prop="totalNum" 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>
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
index 0c2d7f0..e06226e 100644
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ b/admin/src/views/platform/LogisticsRecord/operation.vue
@@ -17,7 +17,7 @@
<el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
</div>
<el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="code" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="billCode" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
<el-table-column prop="totalNum" 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 />
@@ -31,7 +31,7 @@
<el-table-column prop="startDate" label="浣滀笟寮�濮嬫椂闂�" min-width="150" show-overflow-tooltip />
<el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
<el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip />
- <el-table-column prop="platformName" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="platformNames" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
<el-table-column label="浣滀笟鎯呭喌" fixed="right" min-width="100" show-overflow-tooltip>
<template v-slot="scope">
<span>{{ statusMap[scope.row.status] }}</span>
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index ed49adb..a65fc5a 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -1,12 +1,9 @@
<template>
<div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)" @clear="clear">
+ <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)"
+ @clear="clear">
<template #fastdate>
- <el-radio-group
- v-model="filters.fastdate"
- size="small"
- @input="changeRadio"
- >
+ <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
<el-radio-button label="0">褰撳ぉ</el-radio-button>
<el-radio-button label="6">杩�7澶�</el-radio-button>
<el-radio-button label="29">杩�30澶�</el-radio-button>
@@ -14,10 +11,11 @@
</template>
</QueryForm>
<div class="pt16">
- <el-button :loading="exLoading" @click="handleEx" v-permissions="['business:platformJob:exportExcel']">瀵煎嚭</el-button>
+ <el-button :loading="exLoading" @click="handleEx"
+ v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
</div>
<el-table class="mb20" v-loading="loading" :data="list" stripe>
- <el-table-column prop="code" label="杩愬崟鍙�" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="billCode" 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="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
@@ -41,9 +39,9 @@
</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 v-if="scope.row.status == 12" type="text" class="red" v-permissions="['business:platformJob:delete']"
+ <el-button type="text" class="red" v-permissions="['business:platformjob:delete']"
@click="handleDel(scope.row)">鍒犻櫎</el-button>
- <el-button type="text" v-permissions="['business:platformJob:query']"
+ <el-button type="text" v-permissions="['business:platformjob:query']"
@click="handleDetail(scope.row)">棰勭害璇︽儏</el-button>
</template>
</el-table-column>
@@ -58,7 +56,7 @@
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
-import { platformJobPage, platformJobExport,platformJobDel } from '@/api'
+import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
import { statusMap } from '../config'
import DriverDetail from "@/views/task/driverDetail"
import GlobalWindow from '@/components/common/GlobalWindow'
@@ -91,7 +89,7 @@
list: [],
queryFormConfig: {
formItems: [
- {
+ {
filed: 'code',
type: 'input',
label: '杩愬崟鍙�'
@@ -127,12 +125,12 @@
this.getList()
},
methods: {
- changeRadio (day) {
+ changeRadio(day) {
const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
this.$set(this.filters, 'selDate', arr)
this.getList()
},
- changeForm (str) {
+ changeForm(str) {
if (str === 'selDate') {
this.$set(this.filters, 'fastdate', null)
this.getList()
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
index 4cbc85b..d32f32e 100644
--- a/admin/src/views/platform/components/PlatformQueuing.vue
+++ b/admin/src/views/platform/components/PlatformQueuing.vue
@@ -1,6 +1,6 @@
<template>
<GlobalWindow
- title="鏈堝彴鍙彿-xx鍙锋湀鍙�"
+ :title="'鏈堝彴鍙彿-'+title"
:visible.sync="isShowModal"
:showConfirm="false"
width="800px"
@@ -92,6 +92,7 @@
page: 1
},
carCodeFront: '',
+ title: '',
activePlat: {},
dataList: []
diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
new file mode 100644
index 0000000..79b9000
--- /dev/null
+++ b/admin/src/views/platform/components/PlatformSign.vue
@@ -0,0 +1,222 @@
+<template>
+ <GlobalWindow 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-button type="primary" @click="getList">鏌ユ壘</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </div>
+ <div class="list">
+ <div class="item" v-for="item in dataList" :key="item.id">
+ <div class="head df_sb">
+ <div v-if="item.carCodeFront" class="code">
+ <span>{{ item.carCodeFront.slice(0, 1) }}</span>
+ <span>{{ item.carCodeFront.slice(1, 2) }}</span>
+ <span>路</span>
+ <span>{{ item.carCodeFront.slice(2) }}</span>
+ </div>
+ <div class="status" :class="{ red: item.status == 0 }">{{ statusMap[item.status] }}</div>
+ </div>
+ <div class="info">
+ <div v-if="item.type == 4" class="ite">
+ <span>鍚堝悓鍗曞彿锛�</span>
+ <span>{{ item.contractNum }}</span>
+ </div>
+ <div v-else class="ite">
+ <span>杩愯緭鍗曞彿锛�</span>
+ <span>{{ item.billCode }}</span>
+ </div>
+ <div class="ite">
+ <span>椹鹃┒鍛橈細</span>
+ <span>{{ item.driverName }}</span>
+ </div>
+ <div class="ite">
+ <span>鎵嬫満鍙凤細</span>
+ <span>{{ item.drivierPhone }}</span>
+ </div>
+ <div class="ite">
+ <span>鎬昏繍杈撻噺锛�</span>
+ <span>{{ item.totalNum }}涓囨敮</span>
+ </div>
+ <div v-if="item.type != 4" class="ite" style="width: 66%">
+ <span>杩愯緭鍏徃锛�</span>
+ <span>{{ item.carrierName }}</span>
+ </div>
+ </div>
+ <div class="footer df_sb">
+ <div v-if="item.type != 4" class="detail">杩愬崟璇︽儏</div>
+ <div v-else></div>
+ <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button>
+ </div>
+ </div>
+ </div>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
+ </pagination>
+ </div>
+ </GlobalWindow>
+</template>
+
+<script>
+import GlobalWindow from '@/components/common/GlobalWindow'
+import Pagination from '@/components/common/Pagination'
+import { platformJobPage, platformJobSign } from '@/api'
+import { statusMap } from '../config'
+import { Message } from 'element-ui'
+export default {
+ components: {
+ GlobalWindow,
+ Pagination
+ },
+ data() {
+ return {
+ statusMap,
+ isShowModal: false,
+ subLoading: false,
+ pagination: {
+ total: 0,
+ pageSize: 10,
+ page: 1
+ },
+ carCodeFront: '',
+ // activePlat: {},
+ dataList: []
+
+ }
+ },
+ methods: {
+ handleCall(item) {
+ // const activePlatform = this.activePlat
+ platformJobSign({ jobId: item.id, signType: '2' }).then(res => {
+ Message.success('绛惧埌鎴愬姛')
+ this.$emit('success')
+ this.getList()
+ })
+ },
+ getList() {
+ const { activePlat, pagination, carCodeFront } = this
+ platformJobPage({
+ model: { platformGroupId: activePlat.id, queryStatus: '0,1' },
+ page: pagination.page,
+ capacity: pagination.pageSize
+ }).then(res => {
+ this.dataList = res.records
+ this.pagination.total = res.total
+ })
+ },
+ reset() {
+ this.carCodeFront = ''
+ this.pagination.page = 1
+ this.pagination.pageSize = 10
+ this.getList()
+ },
+ handleSizeChange(e) {
+ this.pagination.pageSize = e
+ this.getList()
+ },
+ handlePageChange(e) {
+ this.pagination.page = e
+ this.getList()
+ },
+ handleSub() {
+ const { param } = this
+ this.subLoading = true
+ PlatformEdit({
+ ...param
+ }).then(res => {
+ this.subLoading = false
+ this.isShowEdit = false
+ this.$tip.success('鎻愪氦鎴愬姛')
+ this.getList()
+ }, () => {
+ this.subLoading = false
+ })
+ }
+ }
+
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/style/variables.scss";
+
+.queuing_modal {
+ padding: 10px 30px;
+
+ .list {
+ .item {
+ background: #f4fafb;
+ border-radius: 2px;
+ border: 1px solid #dfe2e8;
+ margin-bottom: 10px;
+ padding: 16px;
+
+ .head {
+ margin-bottom: 15px;
+
+ .plate {
+ width: 90px;
+ text-align: center;
+ font-size: 15px;
+ color: #111111;
+ padding: 4px 5px;
+ font-weight: 700;
+ border: 1px solid #279baa;
+ background-color: #fff;
+ }
+
+ .status {
+ color: $primaryColor;
+ }
+
+ .code {
+ display: flex;
+ font-weight: 600;
+ height: 30px;
+ line-height: 30px;
+ font-size: 15px;
+ color: #111111;
+ background-color: #fff;
+ 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;
+ }
+ }
+ }
+ }
+
+ .footer {
+ .detail {
+ color: $primaryColor;
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index 7e712e4..052788a 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -389,6 +389,7 @@
this.$refs.PlatformQueuingRef.isShowModal = true
this.$refs.PlatformQueuingRef.activePlat = { ...item }
this.$refs.PlatformQueuingRef.getList()
+ this.$refs.PlatformQueuingRef.title = item.name
})
},
handleDetail () {
diff --git a/admin/src/views/platform/platform.vue b/admin/src/views/platform/platform.vue
index 8ae1b2c..d344856 100644
--- a/admin/src/views/platform/platform.vue
+++ b/admin/src/views/platform/platform.vue
@@ -4,15 +4,12 @@
<SearchFormCollapse slot="search-form" :need-more="false">
<el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
<el-form-item label="" prop="name">
- <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ユ湀鍙板悕绉�" @keypress.enter.native="search"></el-input>
+ <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ユ湀鍙板悕绉�"
+ @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="" >
- <el-select v-model="searchForm.groupId" placeholder="璇烽�夋嫨鏈堝彴鍒嗙粍" @change="search" clearable>
- <el-option
- v-for="item in groupList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
+ <el-form-item label="">
+ <el-select v-model="searchForm.groupId" placeholder="璇烽�夋嫨鏈堝彴鍒嗙粍" @change="search" clearable>
+ <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@@ -25,71 +22,57 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:hksync:platforms']">
- <li><el-button type="primary" :loading="working" @click="syncData" icon="el-icon-plus" v-permissions="['business:hksync:platforms']">鍚屾</el-button></li>
- <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus" v-permissions="['business:hksync:platforms']">鍚屾瀹炴椂鐘舵��</el-button></li>
+ <li><el-button type="primary" :loading="working" @click="syncData" icon="el-icon-plus"
+ v-permissions="['business:hksync:platforms']">鍚屾</el-button></li>
+ <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus"
+ v-permissions="['business:hksync:platforms']">鍚屾瀹炴椂鐘舵��</el-button></li>
</ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="name" label="鏈堝彴鍚嶇О" fixed min-width="100px"></el-table-column>
<el-table-column prop="code" label="鏈堝彴缂栫爜" fixed min-width="100px"></el-table-column>
<el-table-column prop="groupName" label="鎵�灞炴湀鍙扮粍" fixed min-width="150px"></el-table-column>
<el-table-column prop="workingNum" label="鍚屾椂鍙彿杞﹁締鏁�" min-width="120px"></el-table-column>
- <el-table-column label="绂�/鍚敤" min-width="120px">
- <template slot-scope="{row}">
- <el-switch
- @change="changeStatus($event, row)"
- v-model="row.status"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="0"
- :inactive-value="1">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column prop="stayTmeoutAlarmTime" label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
- <template scope="{row}">{{row.stayTmeoutAlarmTime?(row.stayTmeoutAlarmTime):'-'}}</template>
+ <el-table-column prop="stayTimeoutAlarmTime" label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
+ <template scope="{row}">{{ row.stayTimeoutAlarmTime ? (row.stayTimeoutAlarmTime) : '-' }}</template>
</el-table-column>
<el-table-column prop="workTimeoutAlarmTime" label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
- <template scope="{row}"> {{row.workTimeoutAlarmTime?(row.workTimeoutAlarmTime):'-'}}</template>
+ <template scope="{row}"> {{ row.workTimeoutAlarmTime ? (row.workTimeoutAlarmTime) : '-' }}</template>
</el-table-column>
<el-table-column prop="workRate" label="鏈堝彴浣滀笟鏁堢巼(涓囧彧/灏忔椂)" min-width="180px"></el-table-column>
- <el-table-column prop="platformStatus" label="鏈堝彴鐘舵��" min-width="100px">
+ <!-- <el-table-column prop="platformStatus" label="鏈堝彴鐘舵��" min-width="100px">
<template scope="{row}">
<span v-if="row.platformStatus == 0">鏃犺溅</span>
<span v-if="row.platformStatus == 1">鏈夎溅</span>
<span v-if="row.platformStatus == 2">瓒呮椂鍋滈潬</span>
<span v-if="row.platformStatus == 3">閿欒鍋滈潬</span>
</template>
- </el-table-column>
+ </el-table-column> -->
<el-table-column prop="broadcastNames" label="鍏宠仈骞挎挱" min-width="100px"></el-table-column>
<el-table-column prop="ledNames" label="鍏宠仈LED" min-width="100px"></el-table-column>
<el-table-column prop="hkDate" label="鍚屾鏃堕棿" min-width="150px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:platform:update', 'business:platform:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
+ <el-table-column label="鏈堝彴鐘舵��" fixed="right" width="100px">
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaPlatformWindow.open('缂栬緫鏈堝彴淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:platform:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platform:delete']">鍒犻櫎</el-button>
+ <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
+ inactive-color="#ff4949" :active-value="0" :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column v-if="containPermissions(['business:platform:update', 'business:platform:delete'])" label="鎿嶄綔"
+ min-width="120" fixed="right">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaPlatformWindow.open('缂栬緫鏈堝彴淇℃伅琛�', row)" icon="el-icon-edit"
+ v-permissions="['business:platform:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
+ v-permissions="['business:platform:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaPlatformWindow ref="operaPlatformWindow" @success="handlePageChange"/>
+ <OperaPlatformWindow ref="operaPlatformWindow" @success="handlePageChange" />
</TableLayout>
</template>
@@ -104,7 +87,7 @@
name: 'Platform',
extends: BaseTable,
components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformWindow },
- data () {
+ data() {
return {
groupList: [],
// 鎼滅储
@@ -116,7 +99,7 @@
}
}
},
- created () {
+ created() {
this.config({
module: '鏈堝彴淇℃伅琛�',
api: '/platform/platform',
@@ -127,19 +110,19 @@
this.loadGroupList()
},
methods: {
- loadGroupList () {
+ loadGroupList() {
allList({})
.then(res => {
this.groupList = res || []
})
},
- changeStatus (e, row) {
+ changeStatus(e, row) {
this.api.updateStatusById({
id: row.id,
status: e
})
},
- syncData () {
+ syncData() {
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
this.isWorking.working = true
@@ -155,9 +138,9 @@
this.isWorking.working = false
})
})
- .catch(() => {})
+ .catch(() => { })
},
- syncStatus () {
+ syncStatus() {
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
this.isWorking.working = true
@@ -173,7 +156,7 @@
this.isWorking.working = false
})
})
- .catch(() => {})
+ .catch(() => { })
}
}
}
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 9b7f0b2..4b2d2f3 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -8,8 +8,11 @@
</div>
</div>
</div>
- <QueryForm v-model="filters" :query-form-config="queryQueueUpConfig" @handleQuery="getList(1)" @clear="clear">
- </QueryForm>
+ <div class="df_sb">
+ <QueryForm v-model="filters" :query-form-config="queryQueueUpConfig" @handleQuery="getList(1)" @clear="clear">
+ </QueryForm>
+ <el-button @click="openSign" type="primary" style="align-self: flex-start;">杞﹁締绛惧埌</el-button>
+ </div>
<div class="main_content">
<div class="static_wrap">
<span>绛夊緟锛�<span class="num">{{ staticParam.waitNum }}</span></span>
@@ -31,7 +34,7 @@
</template>
</el-table-column>
<el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="200" />
- <el-table-column prop="code" label="杩愬崟鍙�" min-width="200" />
+ <el-table-column prop="billCode" label="杩愬崟鍙�" min-width="200" />
<el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="130" />
<el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="140">
<template slot-scope="{ row }">
@@ -49,12 +52,9 @@
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination" />
<!-- -->
- <WaybillDetail
- ref="WaybillDetailRef"
- v-if="isShowDetail"
- @success="getList"
- @close="isShowDetail = false"
- />
+ <PlatformSign ref="PlatformSignRef" v-if="isPlatformSign" @success="getPlatGroupList"
+ @close="isPlatformSign = false" />
+ <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
</div>
</template>
@@ -68,10 +68,12 @@
} from '@/api'
import { queryQueueUpConfig } from './config'
import WaybillDetail from './components/WaybillDetail.vue'
+import PlatformSign from './components/PlatformSign.vue'
export default {
components: {
Pagination,
QueryForm,
+ PlatformSign,
WaybillDetail
},
data() {
@@ -82,6 +84,7 @@
staticParam: {},
dataList: [],
loading: false,
+ isPlatformSign: false,
pagination: {
pageSize: 10,
page: 1,
@@ -96,6 +99,14 @@
this.getPlatGroupList()
},
methods: {
+ openSign() {
+ this.isPlatformSign = true
+ this.$nextTick(() => {
+ this.$refs.PlatformSignRef.isShowModal = true
+ this.$refs.PlatformSignRef.activePlat = this.activeGroup
+ this.$refs.PlatformSignRef.getList()
+ })
+ },
getPlatGroupList() {
getPlatformGroupList({
queryData: 1,
@@ -201,6 +212,7 @@
color: #111111;
border-radius: 4px;
border: 1px solid #dfdede;
+
span {
&:nth-of-type(1) {
background: $primary-color;
diff --git a/h5/manifest.json b/h5/manifest.json
index 8f1b88c..0688118 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -91,8 +91,8 @@
"proxy" : {
"/admin_interface" : {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
- "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- // "target" : "http://192.168.31.42:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://192.168.0.103:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
// "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin" : true, // 鍏佽璺ㄥ煙
"pathRewrite" : {
@@ -101,6 +101,15 @@
}
},
"https" : false
+ },
+ "sdkConfigs" : {
+ "maps" : {
+ "amap" : {
+ "key" : "d9a554b1808ce10a12a932ed9b0db1d0",
+ "securityJsCode" : "",
+ "serviceHost" : ""
+ }
+ }
}
}
}
diff --git a/h5/pages/driver/login.vue b/h5/pages/driver/login.vue
index 2ea23f3..7671175 100644
--- a/h5/pages/driver/login.vue
+++ b/h5/pages/driver/login.vue
@@ -37,7 +37,7 @@
data() {
return {
form: {
- username: '13333333333',
+ username: '18056814089',
password: '1'
},
isShowProtocol: false,
diff --git a/h5/pages/driver/reservedRecord.vue b/h5/pages/driver/reservedRecord.vue
index fd44113..91c20e3 100644
--- a/h5/pages/driver/reservedRecord.vue
+++ b/h5/pages/driver/reservedRecord.vue
@@ -23,7 +23,7 @@
</view>
<view class="box_list_item_nr_item">
<text>鍙告満濮撳悕锛�</text>
- <text>{{item.driverName}}</text>
+ <text>{{item.driverName}} {{item.driverPhone}}</text>
</view>
<view class="box_list_item_nr_item">
<text>杞﹁締淇℃伅锛�</text>
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index 42af4cd..6f15732 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -188,8 +188,10 @@
status: '0'
},
jobId: '',
- lat: '',
- lnt: '',
+ // lat: '',
+ // lnt: '',
+ lat: '31.783205',
+ lnt: '117.262635',
nowTime: '',
signDistance: uni.getStorageSync('driverGuide').signDistance,
showDetail: false,
@@ -197,17 +199,12 @@
},
onLoad(option) {
this.jobId = option.id
- if(option.status && option.status == '1'){
- this.getLocation()
- }else{
- this.getDetail()
- }
-
- // this.getDetail({
- // jobId: option.id,
- // lat: 31.769137,
- // lnt: 117.232241,
- // })
+ // if(option.status && option.status == '1'){
+ // this.getLocation()
+ // }else{
+ // this.getDetail()
+ // }
+ this.getDetail()
setInterval(() => {
this.nowTime = dayjs().format('HH:mm:ss')
})
@@ -243,7 +240,7 @@
this.getDetail()
},
fail:(err) => {
- console.log('err', err);
+ this.showToast('鑾峰彇瀹氫綅澶辫触')
}
})
},
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index dcb6811..d6c5060 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -3,6 +3,9 @@
<view class="status_wrap">
<view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
<view class="desc">{{info.carCodeFront}}</view>
+ <view class="desc" :class="{
+ gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
+ }">{{ infoStatus }}</view>
<view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view>
<image v-if="info.status == 2" class="icon" src="@/static/ic_passed@2x.png" mode=""></image>
<image v-if="info.status == 3" class="icon" src="@/static/ic_refused@2x.png" mode=""></image>
@@ -58,58 +61,43 @@
<!-- 娴佺▼ -->
<view class="flow_wrap">
<view class="flow_title">娴佺▼</view>
- <view class="list" v-if="info.approveDateVO != null && info.approveDateVO.approveList != null">
- <view class="item" v-for="item,index in info.approveDateVO.approveList">
- <view v-if="index != info.approveDateVO.approveList.length - 1" class="separate"></view>
- <view class="avatar">
- <image
- v-if="item.type == 1"
- class="img"
- src="@/static/staff/ic_chaosong@2x.png"
- />
- <image
- v-else-if="item.approveType == 1 || item.approveType == 0"
- class="img"
- src="@/static/staff/ic_shenpiren@2x.png"
- />
- <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
- <image
- v-if="item.status == 2"
- class="status"
- src="@/static/staff/liucheng_success@2x.png"
- mode="widthFix"
- />
- <image
- v-if="item.status == 3"
- class="status"
- src="@/static/staff/liucheng_fail@2x.png"
- mode="widthFix"
- />
- </view>
- <view class="content">
- <view class="head">
- <view class="event">{{ item.title }}</view>
- <view class="time">{{item.createDate}}</view>
- </view>
- <view class="name_wrap">
- <text>{{item.memberName}}<text v-if="item.statusInfo" class="status">({{item.statusInfo}})</text></text>
- </view>
- <div v-if="item.checkInfo" class="remark">
- {{ item.checkInfo }}
- </div>
- <view v-if="item.approveType == 1" class="carbon">
- <view class="carbon_item" v-for="child in item.approveList"
- :key="child.id">
- <image :src="
- child.faceImg
- ? child.faceImg
- : require('@/static/meeting/common/default_user@2x.png')
- "></image>
- <view class="text">{{ child.memberName }}</view>
- </view>
- </view>
- </view>
- </view>
+ <view class="list" v-if="
+ info.approveDateVO != null && info.approveDateVO.approveList != null
+ ">
+ <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
+ <view class="separate"></view>
+ <view class="avatar">
+ <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
+ <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
+ src="@/static/staff/ic_shenpiren@2x.png" />
+ <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
+ <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
+ mode="widthFix" />
+ <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
+ </view>
+ <view class="content">
+ <view class="head">
+ <view class="event">{{ item.title }}</view>
+ <view class="time">{{ item.checkDate }}</view>
+ </view>
+ <view class="name_wrap">
+ <text>{{ item.memberName
+ }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }"
+ v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
+ </view>
+ <view v-if="item.checkInfo" class="remark">{{
+ item.checkInfo
+ }}</view>
+ <!-- 鎶勯�佷汉 -->
+ <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
+ <view class="child" v-for="child in item.approveList" :key="child.id">
+ <image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
+ <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
+ <view>{{ child.memberName }}</view>
+ </view>
+ </view>
+ </view>
+ </view>
</view>
</view>
<view class="emyty"></view>
@@ -149,6 +137,7 @@
return {
showApprModal: false,
checkInfo: '',
+ infoStatus: '',
flag: '1',
info: {},
type: 0,
@@ -163,6 +152,7 @@
},
onLoad(option) {
this.type = option.objType
+ this.infoStatus = option.info
this.getDetail(option.id)
},
methods: {
@@ -222,101 +212,110 @@
padding-bottom: 0;
.flow_wrap {
- padding: 30rpx 0;
+ padding: 30rpx 0;
- .flow_title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 24rpx;
- }
+ .flow_title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 24rpx;
+ }
- .list {
- .item {
- display: flex;
- margin-bottom: 48rpx;
- position: relative;
- .separate {
- position: absolute;
- width: 4rpx;
- height: 100%;
- background-color: #eeeeee;
- left: 40rpx;
- transform: translate(-50%, 0);
- top: 80rpx;
- }
- .avatar {
- width: 80rpx;
- height: 80rpx;
- position: relative;
- margin-right: 20rpx;
+ .list {
+ .item {
+ display: flex;
+ margin-bottom: 48rpx;
+ position: relative;
+
+ .separate {
+ position: absolute;
+ width: 4rpx;
+ height: 100%;
+ background-color: #eeeeee;
+ left: 40rpx;
+ transform: translate(-50%, 0);
+ top: 80rpx;
+ }
+
+ .avatar {
+ width: 80rpx;
+ height: 80rpx;
+ position: relative;
+ margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: center;
- .img {
- width: 80rpx;
- height: 80rpx;
- border-radius: 50%;
- }
- .img_name{
+
+ .img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ }
+
+ .img_name {
font-size: 32rpx;
color: #FFFFFF;
}
- .status {
- width: 28rpx;
- height: 28rpx;
- border-radius: 50%;
- position: absolute;
- right: 0;
- bottom: 0;
- }
- }
- .content {
- flex: 1;
+ .status {
+ width: 28rpx;
+ height: 28rpx;
+ border-radius: 50%;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ }
+ }
- .head {
- display: flex;
- justify-content: space-between;
- margin-bottom: 4rpx;
+ .content {
+ flex: 1;
- .event {
- font-size: 30rpx;
- }
+ .head {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 4rpx;
- .time {
- font-size: 26rpx;
- color: #999999;
- }
- }
+ .event {
+ font-size: 30rpx;
+ }
- .name_wrap {
- font-size: 26rpx;
- color: #777777;
+ .time {
+ font-size: 26rpx;
+ color: #999999;
+ }
+ }
- .status {
- color: $uni-color-primary;
- }
- }
- .children {
- display: flex;
- flex-wrap: wrap;
- margin-top: 12rpx;
- .child {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- margin-right: 12rpx;
+ .name_wrap {
+ font-size: 26rpx;
+ color: #777777;
+
+ .status {
+ color: $uni-color-primary;
+ }
+ }
+
+ .children {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 12rpx;
+
+ .child {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ margin-right: 12rpx;
font-size: 26rpx;
color: #777777;
- .child_img {
- width: 48rpx;
- height: 48rpx;
- border-radius: 50%;
+
+ .child_img {
+ width: 48rpx;
+ height: 48rpx;
+ border-radius: 50%;
margin-bottom: 2rpx;
- }
- .child_name{
+ }
+
+ .child_name {
margin-bottom: 2rpx;
width: 48rpx;
height: 48rpx;
@@ -328,46 +327,51 @@
color: #FFFFFF;
background-color: $uni-color-primary;
}
- }
- }
+ }
+ }
- .remark {
- margin-top: 12rpx;
- background-color: #f7f7f7;
- padding: 14rpx 20rpx;
- border-radius: 8rpx;
- font-size: 26rpx;
- color: #666666;
- line-height: 36rpx;
- }
- }
- .carbon {
- display: flex;
- width: 590rpx;
- overflow-x: auto;
- margin-top: 12rpx;
- .carbon_item {
- text-align: center;
- flex-shrink: 0;
- width: 100rpx;
- image {
- width: 60rpx;
- height: 60rpx;
- margin: 0 auto;
- }
- view {
- font-size: 26rpx;
- color: #777777;
- }
- }
- }
- &:nth-last-child(1) {
- .separate {
- height: 0;
- }
- }
- }
- }
+ .remark {
+ margin-top: 12rpx;
+ background-color: #f7f7f7;
+ padding: 14rpx 20rpx;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ color: #666666;
+ line-height: 36rpx;
+ }
+ }
+
+ .carbon {
+ display: flex;
+ width: 590rpx;
+ overflow-x: auto;
+ margin-top: 12rpx;
+
+ .carbon_item {
+ text-align: center;
+ flex-shrink: 0;
+ width: 100rpx;
+
+ image {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 0 auto;
+ }
+
+ view {
+ font-size: 26rpx;
+ color: #777777;
+ }
+ }
+ }
+
+ &:nth-last-child(1) {
+ .separate {
+ height: 0;
+ }
+ }
+ }
+ }
}
.module_list {
@@ -425,7 +429,11 @@
.desc {
font-size: 26rpx;
color: #999999;
+ margin-bottom: 12rpx;
}
+ .gray {
+ color: #999999;
+ }
.status {
position: absolute;
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index f9eb139..d695e11 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -1,580 +1,555 @@
-<template>
- <view class="main_app">
- <view class="status_wrap">
- <view class="name">{{ info.name }}鎻愪氦鐨剓{ cateList[type].name }}</view>
- <view
- class="desc"
- :class="{
- gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
- }"
- >{{ infoStatus }}</view
- >
- <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
- statusMap[info.businessStatus]
- }}</view>
- <image
- v-if="info.businessStatus == '2'"
- src="@/static/ic_passed@2x.png"
- mode="widthFix"
- class="status_img"
- ></image>
- <image
- v-if="info.businessStatus == '3'"
- src="@/static/ic_refused@2x.png"
- mode="widthFix"
- class="status_img"
- ></image>
- </view>
- <!-- -->
- <view class="emyty"></view>
- <view class="module_list">
- <view class="item">
- <view class="label">琚浜�</view>
- <view class="value">{{ info.visitUserName }}</view>
- </view>
- <view class="item">
- <view class="label">棰勮鍏�/绂诲洯鏃堕棿</view>
- <view class="value" v-if="info.visitTime">{{ info.visitTime }}</view>
- </view>
- <view class="emyty"></view>
- <view class="item">
- <view class="label">璁垮淇℃伅</view>
- <view class="value">
- <image
- class="avatar"
- :src="
- info.prefix
- ? info.prefix + info.faceImg
- : require('@/static/meeting/common/default_user@2x.png')
- "
- mode="widthFix"
- ></image>
- <view class="info">
- <text class="name">{{ info.name }} {{ info.phone }}</text>
- <text>韬唤璇佸彿锛歿{ info.idCardDecode }}</text>
- <text>鍏ュ洯杞﹁締锛歿{ info.carNos }}</text>
- </view>
- </view>
- </view>
- <view class="item">
- <view class="label">鍏徃鍚嶇О</view>
- <view class="value">{{ info.companyName }}</view>
- </view>
- <view class="item">
- <view class="label">鏂藉伐浜哄憳</view>
- <view class="value">{{ info.type == 0 ? "鍚�" : "鏄�" }}</view>
- </view>
- <view class="item">
- <view class="label">鏉ヨ浜嬬敱</view>
- <view class="value">{{ info.visitReason }}</view>
- </view>
- <view v-if="info.constructionReason" class="item">
- <view class="label">鏂藉伐鍐呭</view>
- <view class="value">{{ info.constructionReason }}</view>
- </view>
- </view>
- <!-- 娴佺▼ -->
- <view class="flow_wrap">
- <view class="flow_title">娴佺▼</view>
- <view
- class="list"
- v-if="
- info.approveDateVO != null && info.approveDateVO.approveList != null
- "
- >
- <view
- class="item"
- v-for="(item, index) in info.approveDateVO.approveList"
- :key="item.id"
- >
- <view class="separate"></view>
- <view class="avatar">
- <image
- v-if="item.type == 1"
- class="img"
- src="@/static/staff/ic_chaosong@2x.png"
- />
- <image
- v-else-if="item.approveType == 1 || item.approveType == 0"
- class="img"
- src="@/static/staff/ic_shenpiren@2x.png"
- />
- <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
- <image
- v-if="item.status == 2"
- class="status"
- src="@/static/staff/liucheng_success@2x.png"
- mode="widthFix"
- />
- <image
- v-if="item.status == 3"
- class="status"
- src="@/static/staff/liucheng_fail@2x.png"
- mode="widthFix"
- />
- </view>
- <view class="content">
- <view class="head">
- <view class="event">{{ item.title }}</view>
- <view class="time">{{ item.checkDate }}</view>
- </view>
- <view class="name_wrap">
- <text
- >{{ item.memberName
- }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }" v-if="item.statusInfo"
- >({{ item.statusInfo }})</text
- ></text
- >
- </view>
- <view v-if="item.checkInfo" class="remark">{{
- item.checkInfo
- }}</view>
- <!-- 鎶勯�佷汉 -->
- <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
- <view
- class="child"
- v-for="child in item.approveList"
- :key="child.id"
- >
- <image
- v-if="child.faceImg"
- class="child_img"
- :src="child.faceImg"
- />
- <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
- <view>{{ child.memberName }}</view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
- <view class="emyty"></view>
- <view
- v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1
- "
- class="main_footer"
- >
- <view class="btn" @click="handleSub(3)">鎷掔粷</view>
- <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
- </view>
-
- <u-popup
- :show="showApprModal"
- :round="10"
- :safeAreaInsetBottom="true"
- mode="bottom"
- @close="showApprModal = false"
- >
- <view class="appr_modal">
- <view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view>
- <textarea
- v-model="param.checkInfo"
- :placeholder="
- param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑锛屽繀濉�'
- "
- placeholder-class="placeholder9"
- />
- <view class="main_footer">
- <view class="btn" @click="showApprModal = false">鍙栨秷</view>
- <view class="btn agree" @click="onSubmit">鎻愪氦</view>
- </view>
- </view>
- </u-popup>
- </view>
-</template>
-
-<script>
-import {
- getVisitedDetail, // 璁垮棰勭害璇︽儏
- carUseBookAppr
-} from '@/api'
-export default {
- data() {
- return {
- showApprModal: false,
- param: {},
- info: {},
-
- id: '',
- type: '',
- infoStatus: '',
- cateList: [
- { name: '璁垮鐢宠', id: 0 },
- { name: '璁垮鎶ュ', id: 1 },
- { name: '鐢ㄨ溅鐢宠', id: 2 },
- { name: '闅愭偅闅忔墜鎷�', id: 3 },
- { name: '鐗╂祦杞︾敵璇�', id: 4 },
- ],
- statusMap: {
- 0: '寰呭鎵�',
- 1: '瀹℃壒涓�',
- 2: '宸查�氳繃',
- 3: '宸叉嫆缁�',
- 4: '宸插彇娑�',
- }
- }
- },
- onLoad(op) {
- this.id = op.id
- this.type = op.objType
- this.infoStatus = op.info
- this.getDetail()
- },
- methods: {
- getDetail() {
- const { id } = this
- getVisitedDetail({ id }).then(res => {
- this.info = res.data
- if(this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0 ){
- this.info.approveDateVO.approveList.forEach(item => {
- if(item.approveList && item.approveList.length == 1 && item.type !== 1){
- item.title = item.approveList[0].title
- item.faceImg = item.approveList[0].faceImg
- item.memberName = item.approveList[0].memberName
- item.statusInfo = item.approveList[0].statusInfo
- item.status = item.approveList[0].status
- item.approveList = []
- }
- })
- }
- })
- },
- onSubmit() {
- const { param, info } = this
- if(param.status == '3' && !param.checkInfo){
- return uni.showToast({
- title: '璇疯緭鍏ユ嫆缁濊鏄�',
- icon: 'none'
- })
- }
- carUseBookAppr({
- status: param.status,
- objType: info.type,
- objId: this.id,
- // driverId: param.driverId,
- checkInfo: param.checkInfo
- }).then(res => {
- if (res.code === 200) {
- this.showApprModal = false
- setTimeout(() => {
- uni.showToast({
- title: '鎿嶄綔鎴愬姛',
- icon: 'success'
- })
- })
- uni.navigateBack()
- }
- })
- },
- handleSub(status) {
- // this.param.flag =
- this.param = {
- status
- }
- this.showApprModal = true
- },
- },
-}
-</script>
-<style>
-page {
- background-color: #f7f7f7;
-}
-</style>
-<style lang="scss">
-.main_app {
- background-color: #fff;
- padding-bottom: 0;
-
- .flow_wrap {
- padding: 30rpx 0;
-
- .flow_title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 24rpx;
- }
-
- .list {
- .item {
- display: flex;
- margin-bottom: 48rpx;
- position: relative;
- .separate {
- position: absolute;
- width: 4rpx;
- height: 100%;
- background-color: #eeeeee;
- left: 40rpx;
- transform: translate(-50%, 0);
- top: 80rpx;
- }
- .avatar {
- width: 80rpx;
- height: 80rpx;
- position: relative;
- margin-right: 20rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- .img {
- width: 80rpx;
- height: 80rpx;
- border-radius: 50%;
- }
- .img_name{
- font-size: 32rpx;
- color: #FFFFFF;
- }
- .status {
- width: 28rpx;
- height: 28rpx;
- border-radius: 50%;
- position: absolute;
- right: 0;
- bottom: 0;
- }
- }
-
- .content {
- flex: 1;
-
- .head {
- display: flex;
- justify-content: space-between;
- margin-bottom: 4rpx;
-
- .event {
- font-size: 30rpx;
- }
-
- .time {
- font-size: 26rpx;
- color: #999999;
- }
- }
-
- .name_wrap {
- font-size: 26rpx;
- color: #777777;
-
- .status {
- color: $uni-color-primary;
- }
- }
- .children {
- display: flex;
- flex-wrap: wrap;
- margin-top: 12rpx;
- .child {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- margin-right: 12rpx;
- font-size: 26rpx;
- color: #777777;
- .child_img {
- width: 48rpx;
- height: 48rpx;
- border-radius: 50%;
- margin-bottom: 2rpx;
- }
- .child_name{
- margin-bottom: 2rpx;
- width: 48rpx;
- height: 48rpx;
- text-align: center;
- justify-content: center;
- padding-top: 4rpx;
- font-size: 28rpx;
- border-radius: 50%;
- color: #FFFFFF;
- background-color: $uni-color-primary;
- }
- }
- }
-
- .remark {
- margin-top: 12rpx;
- background-color: #f7f7f7;
- padding: 14rpx 20rpx;
- border-radius: 8rpx;
- font-size: 26rpx;
- color: #666666;
- line-height: 36rpx;
- }
- }
- .carbon {
- display: flex;
- width: 590rpx;
- overflow-x: auto;
- margin-top: 12rpx;
- .carbon_item {
- text-align: center;
- flex-shrink: 0;
- width: 100rpx;
- image {
- width: 60rpx;
- height: 60rpx;
- margin: 0 auto;
- }
- view {
- font-size: 26rpx;
- color: #777777;
- }
- }
- }
- &:nth-last-child(1) {
- .separate {
- height: 0;
- }
- }
- }
- }
- }
-
- .module_list {
- .item {
- padding: 30rpx 0;
- border-bottom: 1rpx solid #e5e5e5;
-
- .label {
- font-size: 26rpx;
- color: #666666;
- margin-bottom: 20rpx;
- }
-
- .value {
- font-size: 30rpx;
- display: flex;
- align-items: center;
-
- .avatar {
- margin-right: 20rpx;
- width: 120rpx;
- height: 120rpx;
- border-radius: 8rpx;
- border: 2rpx solid #e5e5e5;
- }
-
- .info {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- font-size: 26rpx;
- color: #666666;
-
- .name {
- font-size: 30rpx;
- color: #333333;
- }
- }
- }
- }
- }
-
- .status_wrap {
- position: relative;
- padding: 30rpx 0;
-
- .name {
- font-weight: 600;
- font-size: 32rpx;
- margin-bottom: 20rpx;
- color: #222222;
- }
-
- .desc {
- font-size: 26rpx;
- color: #ed4545;
- }
- .gray {
- color: #999999;
- }
-
- .status {
- position: absolute;
- right: -30rpx;
- top: 0;
- height: 60rpx;
- line-height: 60rpx;
- padding: 0 32rpx;
- border-radius: 0rpx 0rpx 0rpx 30rpx;
- background-color: #e9edff;
- color: $uni-color-primary;
- }
- .status_img {
- position: absolute;
- right: 0rpx;
- top: 20rpx;
- width: 120rpx;
- }
- }
-
- .main_footer {
- padding-bottom: 64rpx;
- display: flex;
- justify-content: space-between;
- width: 100%;
- left: 0;
- // padding: 30rpx 10rpx 60rpx;
- display: flex;
- justify-content: space-between;
- background: #ffffff;
- .btn {
- width: 336rpx;
- height: 88rpx;
- line-height: 88rpx;
- background: #ffffff;
- border-radius: 44rpx;
- border: 1rpx solid #999999;
- font-size: 32rpx;
- text-align: center;
- margin: 16rpx 0;
- }
-
- .agree {
- background: $uni-color-primary;
- color: #fff;
- border: 1rpx solid $uni-color-primary;
- }
- }
-
- .appr_modal {
- padding: 36rpx 30rpx 0;
-
- .title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 40rpx;
- text-align: center;
- }
-
- textarea {
- box-sizing: border-box;
- width: 690rpx;
- background-color: #f7f7f7;
- font-size: 28rpx;
- color: #333333;
- padding: 24rpx;
- border-radius: 8rpx;
- margin-bottom: 30rpx;
- }
- }
-
- .emyty {
- width: 750rpx;
- height: 20rpx;
- background-color: #f7f7f7;
- margin: 0 -30rpx;
- }
-}
-</style>
+<template>
+ <view class="main_app">
+ <view class="status_wrap">
+ <view class="name">{{ info.name }}鎻愪氦鐨剓{ cateList[type].name }}</view>
+ <view class="desc" :class="{
+ gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
+ }">{{ infoStatus }}</view>
+ <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
+ statusMap[info.businessStatus]
+ }}</view>
+ <image v-if="info.businessStatus == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img">
+ </image>
+ <image v-if="info.businessStatus == '3'" src="@/static/ic_refused@2x.png" mode="widthFix" class="status_img">
+ </image>
+ </view>
+ <!-- -->
+ <view class="emyty"></view>
+ <view class="module_list">
+ <view class="item">
+ <view class="label">琚浜�</view>
+ <view class="value">{{ info.visitUserName }}</view>
+ </view>
+ <view class="item">
+ <view class="label">棰勮鍏�/绂诲洯鏃堕棿</view>
+ <view class="value" v-if="info.visitTime">{{ info.visitTime }}</view>
+ </view>
+ <view class="emyty"></view>
+ <view class="item">
+ <view class="label">璁垮淇℃伅</view>
+ <view class="value">
+ <image class="avatar" :src="
+ info.prefix
+ ? info.prefix + info.faceImg
+ : require('@/static/meeting/common/default_user@2x.png')
+ " mode="widthFix"></image>
+ <view class="info">
+ <text class="name">{{ info.name }} {{ info.phone }}</text>
+ <text>韬唤璇佸彿锛歿{ info.idCardDecode }}</text>
+ <text>鍏ュ洯杞﹁締锛歿{ info.carNos }}</text>
+ </view>
+ </view>
+ </view>
+ <view class="item">
+ <view class="label">鍏徃鍚嶇О</view>
+ <view class="value">{{ info.companyName }}</view>
+ </view>
+ <view class="item">
+ <view class="label">鏂藉伐浜哄憳</view>
+ <view class="value">{{ info.type == 0 ? "鍚�" : "鏄�" }}</view>
+ </view>
+ <view class="item">
+ <view class="label">鏉ヨ浜嬬敱</view>
+ <view class="value">{{ info.visitReason }}</view>
+ </view>
+ <view v-if="info.constructionReason" class="item">
+ <view class="label">鏂藉伐鍐呭</view>
+ <view class="value">{{ info.constructionReason }}</view>
+ </view>
+ </view>
+ <!-- 娴佺▼ -->
+ <view class="flow_wrap">
+ <view class="flow_title">娴佺▼</view>
+ <view class="list" v-if="
+ info.approveDateVO != null && info.approveDateVO.approveList != null
+ ">
+ <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
+ <view class="separate"></view>
+ <view class="avatar">
+ <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
+ <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
+ src="@/static/staff/ic_shenpiren@2x.png" />
+ <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
+ <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
+ mode="widthFix" />
+ <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
+ </view>
+ <view class="content">
+ <view class="head">
+ <view class="event">{{ item.title }}</view>
+ <view class="time">{{ item.checkDate }}</view>
+ </view>
+ <view class="name_wrap">
+ <text>{{ item.memberName
+ }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }"
+ v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
+ </view>
+ <view v-if="item.checkInfo" class="remark">{{
+ item.checkInfo
+ }}</view>
+ <!-- 鎶勯�佷汉 -->
+ <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
+ <view class="child" v-for="child in item.approveList" :key="child.id">
+ <image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
+ <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
+ <view>{{ child.memberName }}</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="emyty"></view>
+ <view v-if="
+ info.approveDateVO != null &&
+ info.approveDateVO.canBeApproved != null &&
+ info.approveDateVO.canBeApproved == 1
+ " class="main_footer">
+ <view class="btn" @click="handleSub(3)">鎷掔粷</view>
+ <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
+ </view>
+
+ <u-popup :show="showApprModal" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="showApprModal = false">
+ <view class="appr_modal">
+ <view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view>
+ <textarea v-model="param.checkInfo" :placeholder="
+ param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑锛屽繀濉�'
+ " placeholder-class="placeholder9" />
+ <view class="main_footer">
+ <view class="btn" @click="showApprModal = false">鍙栨秷</view>
+ <view class="btn agree" @click="onSubmit">鎻愪氦</view>
+ </view>
+ </view>
+ </u-popup>
+ </view>
+</template>
+
+<script>
+ import {
+ getVisitedDetail, // 璁垮棰勭害璇︽儏
+ carUseBookAppr
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ showApprModal: false,
+ param: {},
+ info: {},
+
+ id: '',
+ type: '',
+ infoStatus: '',
+ cateList: [{
+ name: '璁垮鐢宠',
+ id: 0
+ },
+ {
+ name: '璁垮鎶ュ',
+ id: 1
+ },
+ {
+ name: '鐢ㄨ溅鐢宠',
+ id: 2
+ },
+ {
+ name: '闅愭偅闅忔墜鎷�',
+ id: 3
+ },
+ {
+ name: '鐗╂祦杞︾敵璇�',
+ id: 4
+ },
+ ],
+ statusMap: {
+ 0: '寰呭鎵�',
+ 1: '瀹℃壒涓�',
+ 2: '宸查�氳繃',
+ 3: '宸叉嫆缁�',
+ 4: '宸插彇娑�',
+ }
+ }
+ },
+ onLoad(op) {
+ this.id = op.id
+ this.type = op.objType
+ this.infoStatus = op.info
+ this.getDetail()
+ },
+ methods: {
+ getDetail() {
+ const {
+ id
+ } = this
+ getVisitedDetail({
+ id
+ }).then(res => {
+ this.info = res.data
+ if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
+ this.info.approveDateVO.approveList.forEach(item => {
+ if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
+ item.title = item.approveList[0].title
+ item.faceImg = item.approveList[0].faceImg
+ item.memberName = item.approveList[0].memberName
+ item.statusInfo = item.approveList[0].statusInfo
+ item.status = item.approveList[0].status
+ item.approveList = []
+ }
+ })
+ }
+ })
+ },
+ onSubmit() {
+ const {
+ param,
+ info
+ } = this
+ if (param.status == '3' && !param.checkInfo) {
+ return uni.showToast({
+ title: '璇疯緭鍏ユ嫆缁濊鏄�',
+ icon: 'none'
+ })
+ }
+ carUseBookAppr({
+ status: param.status,
+ objType: info.type,
+ objId: this.id,
+ // driverId: param.driverId,
+ checkInfo: param.checkInfo
+ }).then(res => {
+ if (res.code === 200) {
+ this.showApprModal = false
+ setTimeout(() => {
+ uni.showToast({
+ title: '鎿嶄綔鎴愬姛',
+ icon: 'success'
+ })
+ })
+ uni.navigateBack()
+ }
+ })
+ },
+ handleSub(status) {
+ // this.param.flag =
+ this.param = {
+ status
+ }
+ this.showApprModal = true
+ },
+ },
+ }
+</script>
+<style>
+ page {
+ background-color: #f7f7f7;
+ }
+</style>
+<style lang="scss">
+ .main_app {
+ background-color: #fff;
+ padding-bottom: 0;
+
+ .flow_wrap {
+ padding: 30rpx 0;
+
+ .flow_title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 24rpx;
+ }
+
+ .list {
+ .item {
+ display: flex;
+ margin-bottom: 48rpx;
+ position: relative;
+
+ .separate {
+ position: absolute;
+ width: 4rpx;
+ height: 100%;
+ background-color: #eeeeee;
+ left: 40rpx;
+ transform: translate(-50%, 0);
+ top: 80rpx;
+ }
+
+ .avatar {
+ width: 80rpx;
+ height: 80rpx;
+ position: relative;
+ margin-right: 20rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ .img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ }
+
+ .img_name {
+ font-size: 32rpx;
+ color: #FFFFFF;
+ }
+
+ .status {
+ width: 28rpx;
+ height: 28rpx;
+ border-radius: 50%;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ }
+ }
+
+ .content {
+ flex: 1;
+
+ .head {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 4rpx;
+
+ .event {
+ font-size: 30rpx;
+ }
+
+ .time {
+ font-size: 26rpx;
+ color: #999999;
+ }
+ }
+
+ .name_wrap {
+ font-size: 26rpx;
+ color: #777777;
+
+ .status {
+ color: $uni-color-primary;
+ }
+ }
+
+ .children {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 12rpx;
+
+ .child {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ margin-right: 12rpx;
+ font-size: 26rpx;
+ color: #777777;
+
+ .child_img {
+ width: 48rpx;
+ height: 48rpx;
+ border-radius: 50%;
+ margin-bottom: 2rpx;
+ }
+
+ .child_name {
+ margin-bottom: 2rpx;
+ width: 48rpx;
+ height: 48rpx;
+ text-align: center;
+ justify-content: center;
+ padding-top: 4rpx;
+ font-size: 28rpx;
+ border-radius: 50%;
+ color: #FFFFFF;
+ background-color: $uni-color-primary;
+ }
+ }
+ }
+
+ .remark {
+ margin-top: 12rpx;
+ background-color: #f7f7f7;
+ padding: 14rpx 20rpx;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ color: #666666;
+ line-height: 36rpx;
+ }
+ }
+
+ .carbon {
+ display: flex;
+ width: 590rpx;
+ overflow-x: auto;
+ margin-top: 12rpx;
+
+ .carbon_item {
+ text-align: center;
+ flex-shrink: 0;
+ width: 100rpx;
+
+ image {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 0 auto;
+ }
+
+ view {
+ font-size: 26rpx;
+ color: #777777;
+ }
+ }
+ }
+
+ &:nth-last-child(1) {
+ .separate {
+ height: 0;
+ }
+ }
+ }
+ }
+ }
+
+ .module_list {
+ .item {
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #e5e5e5;
+
+ .label {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
+
+ .value {
+ font-size: 30rpx;
+ display: flex;
+ align-items: center;
+
+ .avatar {
+ margin-right: 20rpx;
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 8rpx;
+ border: 2rpx solid #e5e5e5;
+ }
+
+ .info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ font-size: 26rpx;
+ color: #666666;
+
+ .name {
+ font-size: 30rpx;
+ color: #333333;
+ }
+ }
+ }
+ }
+ }
+
+ .status_wrap {
+ position: relative;
+ padding: 30rpx 0;
+
+ .name {
+ font-weight: 600;
+ font-size: 32rpx;
+ margin-bottom: 20rpx;
+ color: #222222;
+ }
+
+ .desc {
+ font-size: 26rpx;
+ color: #ed4545;
+ }
+
+ .gray {
+ color: #999999;
+ }
+
+ .status {
+ position: absolute;
+ right: -30rpx;
+ top: 0;
+ height: 60rpx;
+ line-height: 60rpx;
+ padding: 0 32rpx;
+ border-radius: 0rpx 0rpx 0rpx 30rpx;
+ background-color: #e9edff;
+ color: $uni-color-primary;
+ }
+
+ .status_img {
+ position: absolute;
+ right: 0rpx;
+ top: 20rpx;
+ width: 120rpx;
+ }
+ }
+
+ .main_footer {
+ padding-bottom: 64rpx;
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ left: 0;
+ // padding: 30rpx 10rpx 60rpx;
+ display: flex;
+ justify-content: space-between;
+ background: #ffffff;
+
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 0;
+ }
+
+ .agree {
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ }
+
+ .appr_modal {
+ padding: 36rpx 30rpx 0;
+
+ .title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 40rpx;
+ text-align: center;
+ }
+
+ textarea {
+ box-sizing: border-box;
+ width: 690rpx;
+ background-color: #f7f7f7;
+ font-size: 28rpx;
+ color: #333333;
+ padding: 24rpx;
+ border-radius: 8rpx;
+ margin-bottom: 30rpx;
+ }
+ }
+
+ .emyty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index 6ab5bd1..a0a5506 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -71,7 +71,7 @@
data() {
return {
form: {
- username: '13996529050',
+ username: '18056814089',
password: '123456',
code: 1
},
diff --git a/pda/manifest.json b/pda/manifest.json
index c8e0e90..9b5c102 100644
--- a/pda/manifest.json
+++ b/pda/manifest.json
@@ -16,13 +16,13 @@
"historyApiFallback": true,
"disableHostCheck": true,
"proxy": {
- "/admin_interface": {
+ "/gateway_interface": {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
- // "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- "target": "http://192.168.0.139:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target": "http://192.168.0.139:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin": true, // 鍏佽璺ㄥ煙
"pathRewrite": {
- "^/admin_interface": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+ "^/gateway_interface": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
}
}
},
diff --git a/pda/pages.json b/pda/pages.json
index 1324dc8..1ee5126 100644
--- a/pda/pages.json
+++ b/pda/pages.json
@@ -13,7 +13,7 @@
{
"path": "pages/index/index",
"style": {
- "navigationBarTitleText": "璋冨害骞冲彴",
+ "navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
diff --git a/pda/pages/index/control.vue b/pda/pages/index/control.vue
index 02e61af..904ea22 100644
--- a/pda/pages/index/control.vue
+++ b/pda/pages/index/control.vue
@@ -8,7 +8,7 @@
<view class="data_list">
<view class="line" v-for="(platform, i) in item.platformList" :key="platform.id">
<view class="name">{{platform.name}}</view>
- <u-switch v-model="platform.status" activeColor="#279BAA" inactiveColor="#cccccc" :inactiveValue="0" :activeValue="1" @change="e => changeStatus(platform)" />
+ <u-switch v-model="platform.status" activeColor="#279BAA" inactiveColor="#cccccc" :inactiveValue="1" :activeValue="0" @change="e => changeStatus(platform)" />
</view>
</view>
</template>
diff --git a/pda/pages/index/index.vue b/pda/pages/index/index.vue
index 3d00c04..843d90d 100644
--- a/pda/pages/index/index.vue
+++ b/pda/pages/index/index.vue
@@ -1,30 +1,37 @@
<template>
- <view class="main_app">
- <view class="banner">
- <image src="@/static/banner_diaodu@2x.png" mode=""></image>
- </view>
- <view class="module">
- <view class="item" @click="jump('/pages/index/center')">
- <image src="@/static/ic_yuetaidiaodu@2x.png" mode=""></image>
- <view class="text">鏈堝彴璋冨害涓績</view>
- </view>
- <view class="item" @click="jump('/pages/index/queueup')">
- <image src="@/static/ic_cheliangpaidui@2x.png" mode=""></image>
- <view class="text">杞﹂槦鎺掗槦鎯呭喌</view>
- </view>
- <view class="item" @click="jump('/pages/index/control')">
- <image src="@/static/ic_qiyong@2x.png" mode=""></image>
- <view class="text">鏈堝彴鍚敤鍋滅敤</view>
- </view>
- <view class="item" @click="jump('/pages/index/set')">
- <image src="@/static/ic_peizhiyuetai@2x.png" mode=""></image>
- <view class="text">閰嶇疆鏄剧ず鏈堝彴</view>
- </view>
- </view>
- <!-- footer -->
- <view class="main_footer">
- <image src="@/static/logo@2x.png" mode=""></image>
- <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
+ <view class="main_app">
+ <view class="main_header">
+ <image src="../../static/back.svg" class="back"></image>
+ <view class="title">璋冨害骞冲彴</view>
+ <view class="loginout" @click="loginout">閫�鍑虹櫥褰�</view>
+ </view>
+ <view class="main_content">
+ <view class="banner">
+ <image src="@/static/banner_diaodu@2x.png" mode=""></image>
+ </view>
+ <view class="module">
+ <view class="item" @click="jump('/pages/index/center')">
+ <image src="@/static/ic_yuetaidiaodu@2x.png" mode=""></image>
+ <view class="text">鏈堝彴璋冨害涓績</view>
+ </view>
+ <view class="item" @click="jump('/pages/index/queueup')">
+ <image src="@/static/ic_cheliangpaidui@2x.png" mode=""></image>
+ <view class="text">杞﹂槦鎺掗槦鎯呭喌</view>
+ </view>
+ <view class="item" @click="jump('/pages/index/control')">
+ <image src="@/static/ic_qiyong@2x.png" mode=""></image>
+ <view class="text">鏈堝彴鍚敤鍋滅敤</view>
+ </view>
+ <view class="item" @click="jump('/pages/index/set')">
+ <image src="@/static/ic_peizhiyuetai@2x.png" mode=""></image>
+ <view class="text">閰嶇疆鏄剧ず鏈堝彴</view>
+ </view>
+ </view>
+ <!-- footer -->
+ <view class="main_footer">
+ <image src="@/static/logo@2x.png" mode=""></image>
+ <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
+ </view>
</view>
</view>
</template>
@@ -39,7 +46,24 @@
onLoad() {
},
- methods: {
+ methods: {
+ loginout() {
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '纭瑕侀��鍑虹櫥褰曞悧',
+ success: (res) => {
+ if (res.confirm) {
+ uni.clearStorageSync({})
+ uni.redirectTo({
+ url: '/pages/index/login'
+ })
+ } else if (res.cancel) {
+ console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ }
+ }
+ });
+
+ },
jump(path) {
uni.navigateTo({
url: path
@@ -48,11 +72,32 @@
}
}
</script>
-<style lang="scss">
+<style lang="scss">
+ .main_header{
+ width: 100%;
+ height: 176rpx;
+ padding: 88rpx 30rpx 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background-color: $uni-color-primary;
+ color: #fff;
+ .back{
+ width: 42rpx;
+ height: 42rpx;
+ }
+ .title{
+ font-weight: 500;
+ font-size: 36rpx;
+ }
+ }
.main_app {
- padding: 30rpx;
min-height: 100vh;
- background: #f7f7f7;
+ background: #f7f7f7;
+ padding: 0;
+ .main_content{
+ padding: 30rpx;
+ }
.banner {
width: 100%;
height: 270rpx;
diff --git a/pda/pages/index/login.vue b/pda/pages/index/login.vue
index 086de33..8a53efa 100644
--- a/pda/pages/index/login.vue
+++ b/pda/pages/index/login.vue
@@ -4,9 +4,6 @@
<image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" />
<view class="login_title" style="marginTop: 40rpx;">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
<view class="login_title" style="marginBottom: 60rpx;">鏁板瓧鍖栨湀鍙拌皟搴﹀钩鍙�</view>
- <view class="">
- {{err}}
- </view>
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
@@ -91,7 +88,7 @@
})
}
}, err => {
- this.err = JSON.stringify(err)
+ // this.err = JSON.stringify(err)
})
},
getContent() {
diff --git a/pda/static/back.svg b/pda/static/back.svg
new file mode 100644
index 0000000..ad67c73
--- /dev/null
+++ b/pda/static/back.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1727082453936" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4342" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M395.21518 513.604544l323.135538-312.373427c19.052938-18.416442 19.052938-48.273447 0-66.660212-19.053961-18.416442-49.910737-18.416442-68.964698 0L291.75176 480.290811c-19.052938 18.416442-19.052938 48.273447 0 66.660212l357.633237 345.688183c9.525957 9.207709 22.01234 13.796214 34.497699 13.796214 12.485359 0 24.971741-4.588505 34.466999-13.82896 19.052938-18.416442 19.052938-48.242747 0-66.660212L395.21518 513.604544z" fill="#ffffff" p-id="4343"></path></svg>
\ No newline at end of file
diff --git a/pda/utils/config.js b/pda/utils/config.js
index 40d7a58..6204c11 100644
--- a/pda/utils/config.js
+++ b/pda/utils/config.js
@@ -1,5 +1,5 @@
-export const baseUrl = 'admin_interface/'
+export const baseUrl = 'gateway_interface/'
// export const baseUrl = 'http://192.168.0.139:10010/admin_interface/'
export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
--
Gitblit v1.9.3