From 214e6fe7a754ddf4900e07033a2fda6200f4d7a1 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 16 十二月 2024 19:38:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/vehicle/category.vue | 25
h5/pages/waybill/home.vue | 4
h5/index.html | 1
screen/src/utils/request.js | 2
h5/pages/driver/forgetPsd.vue | 4
admin/src/views/vehicle/components/OperaCategoryWindow.vue | 2
h5/pages/staffLogin/forgetPsd.vue | 4
h5/pages/staff/vehicle/shinei.vue | 2
admin/src/components/business/OperaHiddenDangerParamWindow.vue | 5
h5/static/waybill/ic_yunshu_sel@2x.png | 0
h5/pages/waybill/list.vue | 289 ++++---
screen/src/api/index.js | 14
screen/src/views/LogisticsCenter.vue | 1
h5/static/driver/ic_fahuodi@2x.png | 0
h5/manifest.json | 8
screen/src/views/EnergyConsum.vue | 71 +
h5/pages/staff/vehicle/apply.vue | 17
h5/pages/waybill/waybillDetail.vue | 525 +++++++-----
h5/pages/staffLogin/login.vue | 2
h5/utils/config.js | 4
h5/pages/login/login.vue | 2
h5/static/waybill/ic_yunshu@2x.png | 0
screen/src/views/LogisticsEfficiency.vue | 328 +++++--
h5/static/waybill/ic_peizai@2x.png | 0
admin/src/views/index.vue | 2
h5/pages/driver/taskDetail.vue | 21
h5/pages/staff/snapshot.vue | 2
h5/pages/driver/login.vue | 2
admin/src/views/business/reportRecord.vue | 5
h5/static/waybill/ic_peizai_sel@2x.png | 0
screen/src/views/SecurityControl.vue | 9
screen/src/assets/images/FireFighting/fire_right.png | 0
h5/static/waybill/ic_dingdan@2x.png | 0
h5/static/waybill/ic_ruku.png | 0
h5/static/waybill/ic_dingdan_sel@2x.png | 0
h5/static/waybill/ic_daohuo_sel@2x.png | 0
h5/static/driver/map_point@2x.png | 0
h5/pages/driver/index.vue | 2
h5/static/waybill/ic_cangku_sel@2x.png | 0
admin/src/views/platform/LogisticsRecord/operationCity.vue | 2
h5/static/waybill/ic_dangqian@2x.png | 0
h5/pages/userinfo/userinfo.vue | 873 +++++++++++---------
screen/src/views/TaskEfficiency.vue | 113 +
h5/static/waybill/ic_cangku@2x.png | 0
h5/static/driver/ic_huowu@2x.png | 0
h5/App.vue | 3
h5/pages/driver/taskConfirm.vue | 2
h5/pages/staff/task/vDangetAppr.vue | 13
screen/src/views/FireFighting.vue | 92 +
49 files changed, 1,443 insertions(+), 1,008 deletions(-)
diff --git a/admin/src/components/business/OperaHiddenDangerParamWindow.vue b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
index 4e351b2..87b9660 100644
--- a/admin/src/components/business/OperaHiddenDangerParamWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
@@ -4,11 +4,11 @@
<el-form-item label="鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim />
</el-form-item>
- <!-- <el-form-item label="璐d换閮ㄩ棬" prop="companyId">
+ <el-form-item label="璐d换閮ㄩ棬" prop="companyId">
<el-select filterable clearable @change="() => loadMember(1)" v-model="form.companyId">
<el-option v-for="op in department" :key="op.id" :label="op.name" :value="op.id"></el-option>
</el-select>
- </el-form-item> -->
+ </el-form-item>
<el-form-item v-if="form.type == 0" label="閫夋嫨瀹夊叏鍛�" prop="memberIdList">
<el-select v-model="form.memberIdList" filterable multiple clearable placeholder="璇烽�夋嫨">
<el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
@@ -70,7 +70,6 @@
this.form.memberIdList = null
this.form.type = type
this.getfindCompanyTreePage()
- this.loadMember()
// 鏂板缓缁勭粐
if (target == null) {
this.$nextTick(() => {
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 0c1c06b..b5a71a7 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -149,7 +149,8 @@
},
pagination: {
capacity: 10,
- page: 1
+ page: 1,
+ total: 0
},
total: 0
}
@@ -203,6 +204,7 @@
...pagination
}).then(res => {
this.dataList = res.records || []
+ this.pagination.total = res.total
})
},
clear () {
@@ -213,6 +215,7 @@
},
handleSizeChange (capacity) {
this.pagination.capacity = capacity
+ this.getList()
}
}
}
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index d7a404d..f97c7b7 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -1,6 +1,6 @@
<template>
<div class="main_home">
- <div style="position: fixed;z-index: 99999"><video style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div>
+ <!-- <div style="position: fixed;z-index: 99999"><video style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div> -->
<div class="home_header">
<div class="mb10 fs17">涓嬪崍濂斤紝{{ userInfo.realname }}</div>
<div class="fs13">
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 3dceb78..8b0634f 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -19,7 +19,7 @@
<el-table class="mb20" v-loading="loading" :data="list" stripe>
<el-table-column prop="contractNum" label="鍚堝悓鍙�" min-width="100" show-overflow-tooltip />
<el-table-column prop="reason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip />
- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="120" 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 />
diff --git a/admin/src/views/vehicle/category.vue b/admin/src/views/vehicle/category.vue
index ecf4b97..5b14a1b 100644
--- a/admin/src/views/vehicle/category.vue
+++ b/admin/src/views/vehicle/category.vue
@@ -18,8 +18,8 @@
<ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
<li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
v-permissions="['business:category:create']">鏂板缓</el-button></li>
- <li v-permissions="['business:category:exportExcel']"><el-button type="primary" @click="exportExcel"
- >瀵煎嚭</el-button></li>
+ <li v-permissions="['business:category:exportExcel']"><el-button type="primary"
+ @click="exportExcel">瀵煎嚭</el-button></li>
</ul>
<el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
:data="dataList" stripe @selection-change="handleSelectionChange">
@@ -42,7 +42,7 @@
</template>
</el-table-column>
</el-table>
- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination">
+ <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination">
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
@@ -79,11 +79,11 @@
},
created() {
this.config({
- module: '杞﹁締淇℃伅琛�',
- api: '/business/category',
- 'field.id': 'id',
- 'field.main': 'id'
- })
+ module: '杞﹁締淇℃伅琛�',
+ api: '/business/category',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
this.getList()
},
methods: {
@@ -110,8 +110,11 @@
})
},
- getList() {
+ getList(page) {
const { pagination, filters } = this
+ if (page) {
+ pagination.page = page
+ }
this.loading = true
fetchList({
model: { ...filters },
@@ -125,6 +128,10 @@
this.loading = false
})
},
+ handleSizeChange(val){
+ this.pagination.pageSize = val
+ this.getList()
+ }
}
}
</script>
diff --git a/admin/src/views/vehicle/components/OperaCategoryWindow.vue b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
index b3588eb..cfcc402 100644
--- a/admin/src/views/vehicle/components/OperaCategoryWindow.vue
+++ b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
@@ -2,7 +2,7 @@
<GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="鎵�灞炲垎绫�" prop="parentId">
- <el-select :disabled="form.id" v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
+ <el-select :disabled="form.id" clearable v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
<el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
</el-select>
</el-form-item>
diff --git a/h5/App.vue b/h5/App.vue
index 04a031d..709d712 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -145,6 +145,9 @@
color: #999999 !important;
font-size: 28rpx;
}
+.placeholder3{
+ color: #333333 !important;
+}
.red{
color: red !important;
}
diff --git a/h5/index.html b/h5/index.html
index a87db61..a2db0ec 100644
--- a/h5/index.html
+++ b/h5/index.html
@@ -11,6 +11,7 @@
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"/>
+ <script src="https://webapi.amap.com/maps?v=2.0&key=96b8d96e645290f1de14f5229ee030e4"></script>
<title></title>
<!--preload-links-->
<!--app-context-->
diff --git a/h5/manifest.json b/h5/manifest.json
index 141a8b9..d3e82c9 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -128,9 +128,9 @@
"/zhyq_interface" : {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
// "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- // "target" : "http://192.168.0.106:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- // "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target" : "http://192.168.0.107:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin" : true, // 鍏佽璺ㄥ煙
"pathRewrite" : {
"^/zhyq_interface" : ""
@@ -142,7 +142,7 @@
"sdkConfigs" : {
"maps" : {
"amap" : {
- "key" : "d9a554b1808ce10a12a932ed9b0db1d0",
+ "key" : "96b8d96e645290f1de14f5229ee030e4",
"securityJsCode" : "",
"serviceHost" : ""
}
diff --git a/h5/pages/driver/forgetPsd.vue b/h5/pages/driver/forgetPsd.vue
index 2330ee2..b2d5c36 100644
--- a/h5/pages/driver/forgetPsd.vue
+++ b/h5/pages/driver/forgetPsd.vue
@@ -7,14 +7,14 @@
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.phone" :maxlength="11" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+ <input v-model="form.phone" type="tel" :maxlength="11" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
</view>
<view class="login_list_item">
<image src="@/static/ic_captcha.png" mode="widthFix"></image>
<input
v-model="form.validCode"
placeholder="璇疯緭鍏ラ獙璇佺爜"
- type="text"
+ type="number"
/>
<text class="captcha" v-if="countDown == 0" @click="initCaptcha"
>鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 29134b3..b2f5b0c 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -327,7 +327,7 @@
background: #ffffff;
box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
border-radius: 16rpx;
- height: 280rpx;
+ height: 260rpx;
width: 98%;
margin-left: 1%;
diff --git a/h5/pages/driver/login.vue b/h5/pages/driver/login.vue
index 26b8fed..374d179 100644
--- a/h5/pages/driver/login.vue
+++ b/h5/pages/driver/login.vue
@@ -7,7 +7,7 @@
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.username" @focus="showKeyboard = true" @blur="showKeyboard = false" maxlength="18" placeholder="鎵嬫満鍙�" />
+ <input v-model="form.username" type="tel" @focus="showKeyboard = true" @blur="showKeyboard = false" maxlength="18" placeholder="鎵嬫満鍙�" />
</view>
<view class="login_list_item">
<image src="@/static/login_ic_password@2x.png" mode="widthFix" />
diff --git a/h5/pages/driver/taskConfirm.vue b/h5/pages/driver/taskConfirm.vue
index 622fc0c..f8327f9 100644
--- a/h5/pages/driver/taskConfirm.vue
+++ b/h5/pages/driver/taskConfirm.vue
@@ -109,7 +109,7 @@
</view>
<view class="line">
<view class="label">鏁伴噺锛�</view>
- <view class="value">{{ line.ioQty }}</view>
+ <view class="value">{{ line.ioQty }}涓囨敮</view>
</view>
</view>
</view>
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index e2aab9b..b74792b 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -7,7 +7,9 @@
<view class="name" v-if="param.status == 3">鍏ュ洯绛夊緟</view>
<view class="name" v-if="param.status == 4">璇峰叆鍥仠闈爗{param.platformName}}浣滀笟</view>
<view class="name" v-if="param.status == 5">鏈堝彴浣滀笟涓�</view>
- <view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+ <view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+ <view class="name" v-if="param.status == 7">杞Щ涓�</view>
+ <view class="name red" v-if="param.status == 8">寮傚父鎸傝捣</view>
<view class="id_card">{{ param.carCodeFront }}</view>
<view class="status">{{statusMap[param.status]}}</view>
</view>
@@ -104,7 +106,6 @@
<view class="time">{{nowTime}}</view>
</view>
</view>
- <view class="space"></view>
<!-- 绛夊緟鍙彿 -->
<view v-if="param.status == 2" class="padding_wrap">
<view class="btn check" @click="handleQueue">鏌ョ湅鎺掗槦鎯呭喌</view>
@@ -152,7 +153,7 @@
</view>
<view class="line">
<view class="label">鏁伴噺锛�</view>
- <view class="value">{{ line.ioQty }}</view>
+ <view class="value">{{ line.ioQty }}涓囨敮</view>
</view>
</view>
</view>
@@ -181,10 +182,10 @@
status: '0'
},
jobId: '',
- lat: '',
- lnt: '',
- // lat: '31.783205',
- // lnt: '117.262635',
+ // lat: '',
+ // lnt: '',
+ lat: '31.783205',
+ lnt: '117.262635',
nowTime: '',
wmsInfo: {},
signDistance: uni.getStorageSync('driverGuide').signDistance,
@@ -205,7 +206,8 @@
// 'openLocation'
// ] // 蹇呭~锛岄渶瑕佷娇鐢ㄧ殑JS鎺ュ彛鍒楄〃
// })
- this.getLocation()
+ this.getLocation()
+ // this.getDetail()
} else {
this.getDetail()
}
@@ -285,7 +287,8 @@
type: 'wgs84',
success: (res) => {
this.lat = res.latitude
- this.lnt = res.longitude
+ this.lnt = res.longitude
+ console.log('---', res);
this.getDetail()
},
fail: (err) => {
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index 9ab5fd0..67da103 100644
--- a/h5/pages/login/login.vue
+++ b/h5/pages/login/login.vue
@@ -41,7 +41,7 @@
export default {
data() {
return {
- code: ''
+ code: 'qwe'
}
},
onLoad(option) {
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index 8c9b8e2..a275108 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -87,7 +87,7 @@
<text></text>
<text>鑱旂郴鐢佃瘽</text>
</view>
- <view class="value"><input type="text" disabled placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-model="param.memberPhone"
+ <view class="value"><input type="tel" disabled placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-model="param.memberPhone"
placeholder-style="color: #999999;" /></view>
</view>
<view class="line">
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 74c1459..e02a154 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -263,9 +263,9 @@
@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
<!-- -->
- <view v-if="videoPlay" class="video_app">
+<!-- <view v-show="videoPlay" class="video_app">
<video controls id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video>
- </view>
+ </view> -->
</view>
</template>
@@ -366,15 +366,16 @@
console.log(item)
this.videoPlay = true;
this.videoUrl = item.fileurlFull;
+ this.videoContext.requestFullScreen();
this.$nextTick(() => {
- this.videoContext.requestFullScreen();
this.videoContext.play();
})
},
handleOpen() {
this.isShowHandle = true;
- const submitFileList = this.info.submitFileList || []
+ const submitFileList = this.info.submitFileList || []
+ this.dealBeforeFileList = [...submitFileList]
this.submitFileList = [...submitFileList];
this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
},
@@ -1377,6 +1378,10 @@
top: 0;
width: 100vw;
height: 100vh;
+ video{
+ width: 100%;
+ height: 100%;
+ }
}
.Transfer_footer {
display: flex;
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index 23ad5ae..d0fa466 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -227,13 +227,19 @@
</script>
<style lang="scss">
+ page{
+ background-color: #f7f7f7;
+ }
.main_wrap {
.line {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid #e5e5e5;
- padding: 30rpx 0;
+ padding: 30rpx;
+ background-color: #fff;
+ width: 750rpx;
+ margin: 0 -30rpx;
.label {
font-size: 30rpx;
font-weight: 400;
@@ -262,11 +268,14 @@
}
}
.upload_line {
- padding: 30rpx 0;
+ padding: 30rpx;
+ width: 750rpx;
+ margin: 0 -30rpx;
+ background-color: #fff;
textarea {
margin-top: 12rpx;
width: 100%;
- height: 180rpx;
+ height: 120rpx;
font-size: 28rpx;
font-weight: 400;
color: #222222;
@@ -307,7 +316,7 @@
}
.tip {
background: #f7f7f7;
- padding: 30rpx 30rpx 180rpx;
+ padding: 30rpx 30rpx 10rpx;
margin: 0 -30rpx;
.title {
line-height: 40rpx;
diff --git a/h5/pages/staff/vehicle/shinei.vue b/h5/pages/staff/vehicle/shinei.vue
index 3e00088..0c4d8da 100644
--- a/h5/pages/staff/vehicle/shinei.vue
+++ b/h5/pages/staff/vehicle/shinei.vue
@@ -262,7 +262,7 @@
// if (dayjs().format('YYYY-MM-DD') == param.queryDate) {
// let endTime = new Date(i.endTime).getTime()
// let nowTime = new Date().getTime()
- i.pastFlag = new Date().getTime() > new Date(i.startTime).getTime()
+ i.pastFlag = new Date().getTime() > new Date(i.endTime).getTime()
// if (endTime < nowTime) {
// i.isUse = 1
// }
diff --git a/h5/pages/staffLogin/forgetPsd.vue b/h5/pages/staffLogin/forgetPsd.vue
index a009fb9..fcf607d 100644
--- a/h5/pages/staffLogin/forgetPsd.vue
+++ b/h5/pages/staffLogin/forgetPsd.vue
@@ -6,14 +6,14 @@
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.phone" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+ <input v-model="form.phone" type="tel" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
</view>
<view class="login_list_item">
<image src="@/static/ic_captcha.png" mode="widthFix"></image>
<input
v-model="form.validCode"
placeholder="璇疯緭鍏ラ獙璇佺爜"
- type="text"
+ type="number"
/>
<text class="captcha" v-if="countDown == 0" @click="initCaptcha"
>鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index b20464b..3681b31 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -6,7 +6,7 @@
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.username" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="璐﹀彿" />
+ <input v-model="form.username" type="number" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="璐﹀彿" />
</view>
<view class="login_list_item">
<image src="@/static/login_ic_password@2x.png" mode="widthFix" />
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index 6d579f0..c825b10 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -1,409 +1,468 @@
-<template>
- <view class="container">
- <view class="visitor-form">
- <view class="cell">
- <view class="title"><b>*</b>濮撳悕</view>
- <view class="content">
- <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>鎵嬫満鍙�</view>
- <view class="content">
- <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>璇佷欢绫诲瀷</view>
- <view class="content" @click="show = true">
- <text :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
- <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>璇佷欢鍙风爜</view>
- <view class="content">
- <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
- </view>
- </view>
- <view class="empty"></view>
- <view class="cell">
- <view class="title"><b>*</b>鍏徃鍚嶇О</view>
- <view class="content">
- <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
- </view>
- </view>
- <view class="cell">
- <view class="title1">
- <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
- <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
- <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
- </view>
- <view class="content">
- <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
- <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
- </view>
- <view class="content_uplaod" @click="upload('faceImg')" v-else>
- <image :src="visitorData.faceImgUrl" mode="widthFix"></image>
- </view>
- </view>
- </view>
- <view style="height: 20rpx; background-color: #F7F7F7;"></view>
- <!-- <view class="cell">
- <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
- <view class="content">
- <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
- <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
- </view>
- <view class="content_uplaod" @click="upload('imgurl')" v-else>
- <image :src="visitorData.imgurlUrl" mode="widthFix"></image>
- </view>
- </view>
- </view> -->
- </view>
- <view v-if="!showKeyboard" class="footer-box">
- <view class="submit-button" @click="submit">涓嬩竴姝�</view>
- </view>
- <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
- <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
- <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg" @crop="uploadImg"></qf-image-cropper>
- </view>
-</template>
-
-<script>
- import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
- import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
- import { mapState } from 'vuex'
- import { uploadAvatar } from "@/utils/config"
- import { getSystemDictData, visitorSub } from '@/api'
- export default {
- data() {
- return {
- photoSrc: "",
- show: false,
- showKeyboard: false,
- visit: '',
- type: '',
- columns: [[{name: '韬唤璇�', id: 0}, {name: '娓境璇佷欢', id: 1},{name: '鎶ょ収', id: 2}]],
- fileList: [],
- visitorData: {
- userAnswerId: '',
- name: '',
- phone: '',
- idcardType: 0,
- idcardTypeName: '韬唤璇�',
- idcardNo: '',
- faceImg: '',
- faceImgUrl: '',
- imgurl: '',
- imgurlUrl: '',
- companyName: ''
- }
+<template>
+ <view class="container">
+ <view class="visitor-form">
+ <view class="cell">
+ <view class="title"><b>*</b>濮撳悕</view>
+ <view class="content">
+ <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>鎵嬫満鍙�</view>
+ <view class="content">
+ <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11"
+ placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>璇佷欢绫诲瀷</view>
+ <view class="content" @click="show = true">
+ <text
+ :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>璇佷欢鍙风爜</view>
+ <view class="content">
+ <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
+ </view>
+ </view>
+ <view class="empty"></view>
+ <view class="cell">
+ <view class="title"><b>*</b>鍏徃鍚嶇О</view>
+ <view class="content">
+ <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title1">
+ <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
+ <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
+ <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
+ </view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('faceImg')" v-else>
+ <image :src="visitorData.faceImgUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view>
+ <view style="height: 20rpx; background-color: #F7F7F7;"></view>
+ <!-- <view class="cell">
+ <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('imgurl')" v-else>
+ <image :src="visitorData.imgurlUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view> -->
+ </view>
+ <view v-if="!showKeyboard" class="footer-box">
+ <view class="submit-button" @click="submit">涓嬩竴姝�</view>
+ </view>
+ <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
+ <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
+ <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg"
+ @crop="uploadImg"></qf-image-cropper>
+ </view>
+</template>
+
+<script>
+ import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
+ import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
+ import {
+ mapState
+ } from 'vuex'
+ import {
+ uploadAvatar
+ } from "@/utils/config"
+ import {
+ getSystemDictData,
+ visitorSub
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ photoSrc: "",
+ show: false,
+ showKeyboard: false,
+ visit: '',
+ type: '',
+ columns: [
+ [{
+ name: '韬唤璇�',
+ id: 0
+ }, {
+ name: '娓境璇佷欢',
+ id: 1
+ }, {
+ name: '鎶ょ収',
+ id: 2
+ }]
+ ],
+ fileList: [],
+ visitorData: {
+ userAnswerId: '',
+ name: '',
+ phone: '',
+ idcardType: 0,
+ idcardTypeName: '韬唤璇�',
+ idcardNo: '',
+ faceImg: '',
+ faceImgUrl: '',
+ imgurl: '',
+ imgurlUrl: '',
+ companyName: ''
+ }
+ }
+ },
+ components: {
+ tlyPictureCut,
+ QfImageCropper
+ },
+
+ onLoad(option) {
+ const visitorData = uni.getStorageSync('member')
+ if (visitorData.faceImg) {
+ visitorData.faceImgUrl = visitorData.prefixUrl + visitorData.faceImg
+ }
+ if (visitorData && visitorData.name) {
+ this.visitorData = visitorData
+ }
+ this.visitorData.companyName = visitorData.visitCompanyName
+ this.visitorData.idcardNo = visitorData.idcardDecode
+ if (this.visitorData.idcardType === 0) {
+ this.visitorData.idcardTypeName = '韬唤璇�'
+ } else if (this.visitorData.idcardType === 1) {
+ this.visitorData.idcardTypeName = '娓境璇佷欢'
+ } else if (this.visitorData.idcardType === 2) {
+ this.visitorData.idcardTypeName = '鎶ょ収'
}
- },
- components: { tlyPictureCut, QfImageCropper },
-
- onLoad(option) {
- const visitorData = uni.getStorageSync('visitorData')
- if(visitorData && visitorData.name){
- this.visitorData = visitorData
- }
- // if (this.member ) {
- // this.visitorData.name = this.member.name
- // this.visitorData.phone = this.member.phone
- // this.visitorData.idcardNo = this.member.idcardDecode
- // this.visitorData.companyName = this.member.visitCompanyName
- // this.visitorData.faceImg = this.member.faceImg
- // if (this.member.faceImg) {
- // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
- // }
- // this.visitorData.imgurl = this.member.imgurl
- // if (this.member.imgurl) {
- // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
- // }
- // this.visitorData.idcardType = this.member.idcardType
- // if (this.member.idcardType === 0) {
- // this.visitorData.idcardTypeName = '韬唤璇�'
- // } else if (this.member.idcardType === 1) {
- // this.visitorData.idcardTypeName = '娓境璇佷欢'
- // } else if (this.member.idcardType === 2) {
- // this.visitorData.idcardTypeName = '鎶ょ収'
- // }
- // }
- this.visitorData.userAnswerId = option.answerId || ''
- // this.getVisit()
- // uni.$on('update', (data) => {
- // this.uploadImg(data.tempFilePath)
- // })
- },
-
- methods: {
- submit() {
- const { visitorData } = this
- if (!this.visitorData.name) return uni.showToast({
- title: '濮撳悕涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.phone) return uni.showToast({
- title: '鎵嬫満鍙蜂笉鑳戒负绌�',
- icon: 'none'
- })
- const regExp = /^1[3456789]\d{9}$/;
- if (!regExp.test(this.visitorData.phone)) return uni.showToast({
- title: '鎵嬫満鍙锋牸寮忛敊璇�',
- icon: 'none'
- })
- if (!String(this.visitorData.idcardType)) return uni.showToast({
- title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.idcardNo) return uni.showToast({
- title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (this.visitorData.idcardType === 0) {
- const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
- if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
- title: '璇佷欢鍙风爜鏍煎紡閿欒',
- icon: 'none'
- })
- }
- if (!this.visitorData.companyName) return uni.showToast({
- title: '鍏徃涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.faceImg) return uni.showToast({
- title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
- icon: 'none'
- })
- // if (this.visit === '1') {
- // if (!this.visitorData.imgurl) return uni.showToast({
- // title: '鍋ュ悍璇佷笉鑳戒负绌�',
- // icon: 'none'
- // })
- // }
- uni.setStorageSync('visitorData', this.visitorData)
- uni.navigateTo({
- url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
- });
- },
- getVisit() {
- // 鏄惁闇�瑕� 鍋ュ悍璇�
- getSystemDictData({
- dictCode: 'SYSTEM',
- label: 'HEALTH_CARD'
- }).then(res => {
- if (res.code === 200) {
- this.visit = res.data.code
- }
- })
- },
- uploadImg(file) {
- var that = this
- that.$refs.cropper.close()
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
- uni.uploadFile({
- url: uploadAvatar,
- filePath: file.tempFilePath,
- name: 'file',
- formData: {
- folderCode: 'MEMBER_IMG',
- isFace: 0
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- this.visitorData.faceImg = res.data.halfPath
- this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
- },
- fail(err) {
- alert('澶辫触')
- },
- complete() {
- uni.hideLoading();
- }
- });
- },
- upload(type) {
- var that = this
- that.type = type
- if (type === 'faceImg') {
- that.$refs.cropper.chooseImage()
- return
- }
- uni.chooseImage({
- count: 1,
- success: (chooseImageRes) => {
- // if (type === 'faceImg') {
- // that.photoSrc = chooseImageRes.tempFilePaths[0];
- // that.$refs.tlyPictureCut.showPop();
- // }
- if (type === 'imgurl') {
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
- uni.uploadFile({
- url: uploadAvatar,
- filePath: chooseImageRes.tempFilePaths[0],
- name: 'file',
- formData: {
- folderCode: 'MEMBER_IMG'
- },
- timeout: 60000,
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- that.visitorData.imgurl = res.data.halfPath
- that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
- },
- complete() {
- uni.hideLoading();
- }
- });
- }
- },
- fail(err) {
- alert('api鎶ラ敊')
- }
- });
- },
- confirm(e) {
- this.visitorData.idcardType = e.value[0].id
- this.visitorData.idcardTypeName = e.value[0].name
- this.show = false
- }
- }
- }
-</script>
-
-<style lang="scss">
- page {
- background-color: #F7F7F7 !important;
- }
- .u-upload__button {
- margin: 0 !important;
- }
- .content_uplaod {
- width: 120rpx;
- height: 120rpx;
- background: #F7F7F7;
- border-radius: 8rpx;
- border: 2rpx solid #E5E5E5;
- display: flex;
- align-items: center;
- justify-content: center;
- overflow: hidden;
- }
- .content_uplaod image {
- width: 100%;
- height: 100%;
- }
- .empty{
- width: 750rpx;
- height: 20rpx;
- margin: 0 -30rpx;
- background-color: #f7f7f7;;
- }
- .title {
- font-size: 30rpx;
- font-weight: 400;
- color: #222222;
- display: flex;
- align-items: center;
- }
-
- .title b {
- color: #E42D2D;
- margin-right: 4rpx;
- }
-
- .title1 {
- display: flex;
- flex-direction: column;
- .title1_a {
- font-size: 30rpx !important;
- font-weight: 400;
- color: #222222;
- display: flex;
- align-items: center;
- margin-bottom: 20rpx;
- b {
- color: #E42D2D;
- margin-right: 4rpx;
-
- }
- }
- .title1_b {
- font-size: 24rpx !important;
- font-weight: 400;
- color: #999999;
- }
- }
-
- .add-other {
- border: 1rpx solid #4d99a8;
- color: #4d99a8;
- font-size: 11rpx;
- padding: 0 12rpx;
- height: 32rpx;
- line-height: 32rpx;
- width: 120rpx;
- text-align: center;
- border-radius: 24rpx;
- margin: 20rpx auto;
- }
-
- .footer-box {
- width: 100%;
- position: fixed;
- bottom: 30rpx;
- height: 80rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- .submit-button {
- width: calc(100% - 60rpx);
- height: 88rpx;
- line-height: 88rpx;
- background: #4d99a8;
- border-radius: 4rpx;
- color: #fff;
- border-radius: 44rpx;
- font-size: 32rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-</style>
-
-<style lang="scss" scoped>
- .popup-content {
- padding: 20rpx;
- height: 100%;
- overflow: hidden;
- display: flex;
- flex-flow: column;
-
- .input {
- border: 1rpx solid #ccc;
- border-radius: 4rpx;
- padding: 4rpx 12rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: #333333;
- }
-
- .respondent-item {
- padding: 10rpx;
- border-bottom: 1rpx solid #eee;
- cursor: pointer;
-
- &:hover {
- background-color: #eee;
- }
- }
-
- .van-list {
- flex: 1;
- overflow: auto;
- }
- }
+ if (this.visitorData.imgurl) {
+ this.visitorData.imgurlUrl = this.visitorData.prefixUrl + this.visitorData.imgurl
+ }
+ // if (this.member ) {
+ // this.visitorData.name = this.member.name
+ // this.visitorData.phone = this.member.phone
+ // this.visitorData.idcardNo = this.member.idcardDecode
+ // this.visitorData.companyName = this.member.visitCompanyName
+ // this.visitorData.faceImg = this.member.faceImg
+ // if (this.member.faceImg) {
+ // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
+ // }
+ // this.visitorData.imgurl = this.member.imgurl
+ // if (this.member.imgurl) {
+ // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
+ // }
+ // this.visitorData.idcardType = this.member.idcardType
+ // if (this.member.idcardType === 0) {
+ // this.visitorData.idcardTypeName = '韬唤璇�'
+ // } else if (this.member.idcardType === 1) {
+ // this.visitorData.idcardTypeName = '娓境璇佷欢'
+ // } else if (this.member.idcardType === 2) {
+ // this.visitorData.idcardTypeName = '鎶ょ収'
+ // }
+ // }
+ this.visitorData.userAnswerId = option.answerId || ''
+ // this.getVisit()
+ // uni.$on('update', (data) => {
+ // this.uploadImg(data.tempFilePath)
+ // })
+ },
+
+ methods: {
+ submit() {
+ const {
+ visitorData
+ } = this
+ if (!this.visitorData.name) return uni.showToast({
+ title: '濮撳悕涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.phone) return uni.showToast({
+ title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+ icon: 'none'
+ })
+ const regExp = /^1[3456789]\d{9}$/;
+ if (!regExp.test(this.visitorData.phone)) return uni.showToast({
+ title: '鎵嬫満鍙锋牸寮忛敊璇�',
+ icon: 'none'
+ })
+ if (!String(this.visitorData.idcardType)) return uni.showToast({
+ title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.idcardNo) return uni.showToast({
+ title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (this.visitorData.idcardType === 0) {
+ const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+ if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
+ title: '璇佷欢鍙风爜鏍煎紡閿欒',
+ icon: 'none'
+ })
+ }
+ if (!this.visitorData.companyName) return uni.showToast({
+ title: '鍏徃涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.faceImg) return uni.showToast({
+ title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ // if (this.visit === '1') {
+ // if (!this.visitorData.imgurl) return uni.showToast({
+ // title: '鍋ュ悍璇佷笉鑳戒负绌�',
+ // icon: 'none'
+ // })
+ // }
+ uni.setStorageSync('visitorData', this.visitorData)
+ uni.navigateTo({
+ url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
+ });
+ },
+ getVisit() {
+ // 鏄惁闇�瑕� 鍋ュ悍璇�
+ getSystemDictData({
+ dictCode: 'SYSTEM',
+ label: 'HEALTH_CARD'
+ }).then(res => {
+ if (res.code === 200) {
+ this.visit = res.data.code
+ }
+ })
+ },
+ uploadImg(file) {
+ var that = this
+ that.$refs.cropper.close()
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: file.tempFilePath,
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG',
+ isFace: 0
+ },
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ this.visitorData.faceImg = res.data.halfPath
+ this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ fail(err) {
+ alert('澶辫触')
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ },
+ upload(type) {
+ var that = this
+ that.type = type
+ if (type === 'faceImg') {
+ that.$refs.cropper.chooseImage()
+ return
+ }
+ uni.chooseImage({
+ count: 1,
+ success: (chooseImageRes) => {
+ // if (type === 'faceImg') {
+ // that.photoSrc = chooseImageRes.tempFilePaths[0];
+ // that.$refs.tlyPictureCut.showPop();
+ // }
+ if (type === 'imgurl') {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: chooseImageRes.tempFilePaths[0],
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG'
+ },
+ timeout: 60000,
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ that.visitorData.imgurl = res.data.halfPath
+ that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ },
+ fail(err) {
+ alert('api鎶ラ敊')
+ }
+ });
+ },
+ confirm(e) {
+ this.visitorData.idcardType = e.value[0].id
+ this.visitorData.idcardTypeName = e.value[0].name
+ this.show = false
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F7F7F7 !important;
+ }
+
+ .u-upload__button {
+ margin: 0 !important;
+ }
+
+ .content_uplaod {
+ width: 120rpx;
+ height: 120rpx;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 2rpx solid #E5E5E5;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ }
+
+ .content_uplaod image {
+ width: 100%;
+ height: 100%;
+ }
+
+ .empty {
+ width: 750rpx;
+ height: 20rpx;
+ margin: 0 -30rpx;
+ background-color: #f7f7f7;
+ ;
+ }
+
+ .title {
+ font-size: 30rpx;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ }
+
+ .title b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+ }
+
+ .title1 {
+ display: flex;
+ flex-direction: column;
+
+ .title1_a {
+ font-size: 30rpx !important;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ margin-bottom: 20rpx;
+
+ b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+
+ }
+ }
+
+ .title1_b {
+ font-size: 24rpx !important;
+ font-weight: 400;
+ color: #999999;
+ }
+ }
+
+ .add-other {
+ border: 1rpx solid #4d99a8;
+ color: #4d99a8;
+ font-size: 11rpx;
+ padding: 0 12rpx;
+ height: 32rpx;
+ line-height: 32rpx;
+ width: 120rpx;
+ text-align: center;
+ border-radius: 24rpx;
+ margin: 20rpx auto;
+ }
+
+ .footer-box {
+ width: 100%;
+ position: fixed;
+ bottom: 30rpx;
+ height: 80rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .submit-button {
+ width: calc(100% - 60rpx);
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #4d99a8;
+ border-radius: 4rpx;
+ color: #fff;
+ border-radius: 44rpx;
+ font-size: 32rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+</style>
+
+<style lang="scss" scoped>
+ .popup-content {
+ padding: 20rpx;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ flex-flow: column;
+
+ .input {
+ border: 1rpx solid #ccc;
+ border-radius: 4rpx;
+ padding: 4rpx 12rpx;
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #333333;
+ }
+
+ .respondent-item {
+ padding: 10rpx;
+ border-bottom: 1rpx solid #eee;
+ cursor: pointer;
+
+ &:hover {
+ background-color: #eee;
+ }
+ }
+
+ .van-list {
+ flex: 1;
+ overflow: auto;
+ }
+ }
</style>
\ No newline at end of file
diff --git a/h5/pages/waybill/home.vue b/h5/pages/waybill/home.vue
index 16478c4..d76ff1e 100644
--- a/h5/pages/waybill/home.vue
+++ b/h5/pages/waybill/home.vue
@@ -4,7 +4,7 @@
<view class="login_wrap">
<view class="item">
<view class="la">鎵嬫満鍙�</view>
- <input v-model="form.phone" maxlength="18" placeholder-class="placeholder9" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+ <input v-model="form.phone" type="tel" maxlength="18" placeholder-class="placeholder9" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
</view>
<view class="item">
<view class="la">楠岃瘉鐮�</view>
@@ -13,7 +13,7 @@
v-model="form.code"
placeholder="璇疯緭鍏ラ獙璇佺爜"
placeholder-class="placeholder9"
- type="text"
+ type="number"
/>
<text class="captcha" v-if="countDown == 0" @click="initCaptcha"
>鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/waybill/list.vue b/h5/pages/waybill/list.vue
index 625f111..56bec0d 100644
--- a/h5/pages/waybill/list.vue
+++ b/h5/pages/waybill/list.vue
@@ -1,46 +1,49 @@
<template>
<view class="main_app">
- <view class="head_wrap">
+ <view class="head_wrap" @click="openModal">
<view class="search_box">
<image src="@/static/ic_search@2x.png" class="search" mode=""></image>
- <input type="text" placeholder-class="placeholder9" v-model="param.name" @confirm="handleQuery" />
+ <!-- <input type="text" disabled placeholder-class="placeholder9" v-model="param.contractNumber" @confirm="handleQuery" /> -->
</view>
- <view class="right" @click="openModal">
+ <view class="right">
<image src="@/static/ic_shaixuan@2x.png" mode=""></image>
<text>绛涢��</text>
</view>
</view>
<!-- -->
- <view class="main_list">
- <view class="item" v-for="item,index in list" :key="index">
- <view class="head">
- <view class="code">{{item.contractNumber}}</view>
- <view class="status">{{item.orderStatus}}</view>
- </view>
- <view class="content">
- <view class="line">
- <view class="la">鍙戣揣鍦帮細</view>
- <view class="val">{{item.fromRepertoty || '-'}}</view>
+ <scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
+ <view class="main_list">
+ <view class="item" v-for="item,index in list" :key="index">
+ <view class="head">
+ <view class="code">{{item.contractNumber}}</view>
+ <view class="status">{{item.orderStatusDesc }}</view>
</view>
- <view class="line">
- <view class="la">鍒拌揣鍦帮細</view>
- <view class="val">{{item.toRepertoty || '-'}}</view>
+ <view class="content">
+ <view class="line">
+ <view class="la">鍙戣揣鍦帮細</view>
+ <view class="val">{{item.fromRepertoty || item.deliveryEnterprise || '-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">鍒拌揣鍦帮細</view>
+ <view class="val">{{item.toRepertoty || item.receiveEnterprise || '-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">杞︾墝鍙凤細</view>
+ <view class="val">{{item.plateNumber || item.plateName || '-'}}</view>
+ </view>
</view>
- <view class="line">
- <view class="la">杞︾墝鍙凤細</view>
- <view class="val">{{item.plateNumber || '-'}}</view>
+ <view class="footer">
+ <view class="time">{{item.ncCreateDate}}</view>
+ <view class="detail" @click="handleDetail(item)">鏌ョ湅璇︽儏</view>
</view>
</view>
- <view class="footer">
- <view class="time">{{item.ncCreateDate}}</view>
- <view class="detail" @click="handleDetail(item)">鏌ョ湅璇︽儏</view>
+ <view v-if="list.length === 0" style="text-align: center">
+ <image src="@/static/empty.png" style="width: 320rpx; margin: 120px auto 0" mode="widthFix" />
+ <view class="placeholder9 fs24">鏆傛棤鏁版嵁</view>
</view>
</view>
- <view v-if="list.length === 0" style="text-align: center">
- <image src="@/static/empty.png" style="width: 320rpx; margin: 120px auto 0" mode="widthFix" />
- <view class="placeholder9 fs24">鏆傛棤鏁版嵁</view>
- </view>
- </view>
+ </scroll-view>
+
<!-- -->
<u-popup :show="showModal" round="12" @close="showModal = false">
<view class="modal">
@@ -48,45 +51,47 @@
<view class="line">
<view class="la">鍚堝悓鍙�</view>
<view class="val">
- <input type="text" placeholder-class="placeholder9" v-model="form.contract" />
+ <input type="text" placeholder-class="placeholder9" v-model="form.contractNumber" />
</view>
</view>
<view class="line">
<view class="la">鍒跺崟寮�濮嬫棩鏈�</view>
<view class="val" @click="showStarttime = true">
<text class="mr12"
- :class="{placeholder9: !form.starttime}">{{ form.starttime ? form.starttime : '璇烽�夋嫨' }}</text>
+ :class="{placeholder9: !form.ncCreateDateTimeStart}">{{ form.ncCreateDateTimeStart ? form.ncCreateDateTimeStart : '璇烽�夋嫨' }}</text>
<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
</view>
</view>
<view class="line">
<view class="la">鍒跺崟缁撴潫鏃ユ湡</view>
<view class="val" @click="showEndtime = true">
- <text class="mr12" :class="{placeholder9: !form.endtime}">{{ form.endtime ? form.endtime : '璇烽�夋嫨' }}</text>
+ <text class="mr12"
+ :class="{placeholder9: !form.ncCreateDateTimeEnd}">{{ form.ncCreateDateTimeEnd ? form.ncCreateDateTimeEnd : '璇烽�夋嫨' }}</text>
<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
</view>
</view>
<view class="line">
<view class="la">鍙戣揣鍦�</view>
<view class="val">
- <input type="text" placeholder-class="placeholder9" v-model="form.fromRepertoty" />
+ <input type="text" placeholder-class="placeholder9" v-model="form.deliveryEnterprise" />
</view>
</view>
<view class="line">
<view class="la">鍒拌揣鍦�</view>
<view class="val">
- <input type="text" placeholder-class="placeholder9" v-model="form.toRepertoty" />
+ <input type="text" placeholder-class="placeholder9" v-model="form.receiveEnterprise" />
</view>
</view>
<view class="line">
<view class="la">鐪佷唤</view>
<view class="val" @click="showPri = true">
- <text class="mr12" :class="{placeholder9: !form.provinceName}">{{ form.provinceName ? form.provinceName : '璇烽�夋嫨' }}</text>
+ <text class="mr12"
+ :class="{placeholder9: !form.provinceName}">{{ form.provinceName ? form.provinceName : '璇烽�夋嫨' }}</text>
<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
</view>
</view>
<view class="btns">
- <view class="btn" @click="showModal = false">鍙栨秷</view>
+ <view class="btn" @click="clear">鍙栨秷</view>
<view class="btn sub" @click="modalSub">鎻愪氦</view>
</view>
</view>
@@ -95,9 +100,9 @@
<u-datetime-picker :show="showStarttime" v-model="form.starttime" mode="date" @confirm="confirmStart"
@cancel="showStarttime = false"></u-datetime-picker>
<u-datetime-picker :show="showEndtime" v-model="form.endtime" mode="date" @confirm="confirmEnd"
- @cancel="showEndtime = false"></u-datetime-picker>
- <u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
-
+ @cancel="showEndtime = false"></u-datetime-picker>
+ <u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
+
</view>
</template>
@@ -116,7 +121,7 @@
showModal: false,
showStarttime: false,
- showEndtime: false,
+ showEndtime: false,
showPri: false,
form: {},
provinceList: [
@@ -128,61 +133,94 @@
]
};
},
- onLoad(options) {
- this.$set(this.param, 'phoneNumber', options.phone)
- this.$set(this.form, 'starttime', dayjs().format('YYYY/MM/DD'))
- const nextMonth = dayjs().add(1, 'month');
- this.$set(this.form, 'endtime', nextMonth.format('YYYY/MM/DD'))
+ onLoad(options) {
+ this.$set(this.param, 'phoneNumber', options.phone)
this.getList()
},
- methods: {
+ methods: {
+ clear() {
+ this.param = {
+ phoneNumber: this.param.phoneNumber
+ }
+ this.form = {}
+ this.page = 1
+ this.list = []
+ this.showModal = false
+ this.getList()
+ },
modalSub() {
this.handleQuery()
this.showModal = false
},
openModal() {
this.showModal = true
- },
- confirmPro(e) {
- this.$set(this.form, 'provinceName', e.value[0])
- this.showPri = false
+ // this.$set(this.form, 'ncCreateDateTimeStart', dayjs().subtract(1, 'month').format('YYYY-MM-DD'))
+ // const nextMonth = dayjs().add(1, 'month');
+ // this.$set(this.form, 'ncCreateDateTimeEnd', dayjs().format('YYYY-MM-DD'))
+ },
+ confirmPro(e) {
+ this.$set(this.form, 'provinceName', e.value[0])
+ this.showPri = false
},
confirmStart(e) {
this.$nextTick(() => {
- this.$set(this.form, 'starttime', dayjs(e.value).format('YYYY/MM/DD'))
+ this.$set(this.form, 'ncCreateDateTimeStart', dayjs(e.value).format('YYYY-MM-DD'))
})
this.showStarttime = false
},
confirmEnd(e) {
this.$nextTick(() => {
- this.$set(this.form, 'endtime', dayjs(e.value).format('YYYY/MM/DD'))
+ this.$set(this.form, 'ncCreateDateTimeEnd', dayjs(e.value).format('YYYY-MM-DD'))
})
this.showEndtime = false
},
handleQuery() {
+ this.page = 1
+ this.list = []
this.getList()
},
- handleDetail(item) {
- uni.navigateTo({
- url: '/pages/waybill/waybillDetail?id=' + item.contractNumber
- })
+ handleDetail(item) {
+ uni.navigateTo({
+ url: '/pages/waybill/waybillDetail?id=' + item.contractNumber
+ })
+ },
+ scrolltolower() {
+ const {
+ total,
+ list
+ } = this
+ if (list.length < total) {
+ this.page = this.page + 1
+ this.getList()
+ } else {
+ this.showToast('鏆傛棤鏇村鏁版嵁')
+ }
},
getList() {
const {
param,
- form
- } = this
- if(form.contract){
- form.contractNumber = [form.contract]
- }else{
- form.contractNumber = null
- }
+ form,
+ page
+ } = this
+ // if (form.contract) {
+ // form.contractNumber = form.contract
+ // } else {
+ // form.contractNumber = null
+ // }
orderListTms({
- ...param,
- ...form
+ parameters: {
+ ...param,
+ ...form
+ },
+ pager: {
+ rows: 10,
+ page
+ }
}).then(res => {
- this.list = res.data || []
- this.total = res.data.total
+ if (res.data && res.data.rows) {
+ this.list = [...this.list, ...res.data.rows]
+ this.total = res.data.totalCount
+ }
})
}
}
@@ -236,87 +274,92 @@
}
}
- .main_list {
+ .scroll_Y {
background-color: #f7f7f7;
- width: 750rpx;
- margin: 0 -30rpx;
- padding: 24rpx 30rpx;
- height: calc(100vh - 140rpx);
- .item {
- border-radius: 8rpx;
- margin-bottom: 20rpx;
- padding: 0 30rpx;
- background-color: #fff;
+ height: calc(100vh - 130rpx);
- .head {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 0 30rpx;
- width: 690rpx;
- height: 84rpx;
- margin: 0 -30rpx;
- background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
+ .main_list {
+ width: 750rpx;
+ margin: 0 -30rpx;
+ padding: 24rpx 30rpx;
- .code {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- }
-
- .status {
- color: $uni-color-primary;
- }
- }
-
- .content {
- padding: 20rpx 0rpx;
- border-bottom: 1rpx solid #E5E5E5;
+ .item {
+ border-radius: 8rpx;
margin-bottom: 20rpx;
+ padding: 0 30rpx;
+ background-color: #fff;
- .line {
+ .head {
display: flex;
- margin-bottom: 16rpx;
- font-size: 26rpx;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 30rpx;
+ width: 690rpx;
+ height: 84rpx;
+ margin: 0 -30rpx;
+ background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
- .la {
- color: #666666;
+ .code {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
}
- .val {}
-
- &:nth-last-child(1) {
- margin-bottom: 0;
+ .status {
+ color: $uni-color-primary;
}
}
- }
- .footer {
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 26rpx;
- color: #999999;
- padding-bottom: 20rpx;
+ .content {
+ padding: 20rpx 0rpx;
+ border-bottom: 1rpx solid #E5E5E5;
+ margin-bottom: 20rpx;
- .detail {
- width: 168rpx;
- height: 60rpx;
- background: #FFFFFF;
- border-radius: 30rpx;
- border: 1rpx solid $uni-color-primary;
- color: $uni-color-primary;
+ .line {
+ display: flex;
+ margin-bottom: 16rpx;
+ font-size: 26rpx;
+
+ .la {
+ color: #666666;
+ }
+
+ .val {}
+
+ &:nth-last-child(1) {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ .footer {
display: flex;
+ justify-content: space-between;
align-items: center;
- justify-content: center;
font-size: 26rpx;
+ color: #999999;
+ padding-bottom: 20rpx;
+ .detail {
+ width: 168rpx;
+ height: 60rpx;
+ background: #FFFFFF;
+ border-radius: 30rpx;
+ border: 1rpx solid $uni-color-primary;
+ color: $uni-color-primary;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 26rpx;
+
+ }
}
}
}
}
+
.modal {
.modal_title {
height: 112rpx;
diff --git a/h5/pages/waybill/waybillDetail.vue b/h5/pages/waybill/waybillDetail.vue
index e507bac..0b78b75 100644
--- a/h5/pages/waybill/waybillDetail.vue
+++ b/h5/pages/waybill/waybillDetail.vue
@@ -1,235 +1,350 @@
<template>
<view class="main_app">
- <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image>
- <view class="info">
- <view class="head">
- <view class="code">{{info.contractNumber}}</view>
- <view class="status">{{info.orderStatus}}</view>
- </view>
- <view class="content">
- <view class="line">
- <view class="la">鍙戣揣鍦�</view>
- <view class="val">{{info.fromRepertoty || '-'}}</view>
+ <!-- <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image> -->
+ <map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="4">
+
+ </map>
+ <view class="main_content">
+ <view class="info">
+ <view class="head">
+ <view class="code">{{info.contractNumber}}</view>
+ <view class="status">{{info.orderStatusDesc}}</view>
</view>
- <view class="line">
- <view class="la">鍒拌揣鍦�</view>
- <view class="val">{{info.toRepertoty || '-'}}</view>
- </view>
- <view class="line">
- <view class="la">杞︾墝鍙�</view>
- <view class="val">{{info.plateNumber || '-'}}</view>
- </view>
- <view class="line">
- <view class="la">鍙告満淇℃伅</view>
- <view class="val">{{ '-'}}</view>
- </view>
- <view class="line">
- <view class="la">杞﹁締浣嶇疆</view>
- <view class="val">{{ '-'}}</view>
- </view>
- <view class="line">
- <view class="la">棰勮鍒拌揪</view>
- <view class="val">{{'-'}}</view>
+ <view class="content">
+ <view class="line">
+ <view class="la">鍙戣揣鍦�</view>
+ <view class="val">{{info.deliveryEnterprise || '-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">鍒拌揣鍦�</view>
+ <view class="val">{{info.receiveEnterprise || '-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">杞︾墝鍙�</view>
+ <view class="val">{{info.plateName || '-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">鍙告満淇℃伅</view>
+ <view class="val" @click="callPhone(info.driverTel)">{{ info.driverName }} <text class="primaryColor ml12">{{info.driverTel}}</text> </view>
+ </view>
+ <view class="line">
+ <view class="la">杞﹁締浣嶇疆</view>
+ <view class="val">{{'-'}}</view>
+ </view>
+ <view class="line">
+ <view class="la">棰勮鍒拌揪</view>
+ <view class="val">{{info.plannedArrivedDate}}</view>
+ </view>
</view>
</view>
- </view>
- <view class="drive_info">
- <view class="title">鐗╂祦淇℃伅</view>
-<!-- <view class="item">
- <view class="h2">
- <view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view>
- <view class="text">鍒拌揪鍗歌揣鍦�</view>
+ <view class="drive_info">
+ <view class="title">鐗╂祦淇℃伅</view>
+ <view class="drive_list" v-for="dri,k in info.cicleStatusList">
+ <view class="separate"></view>
+ <view class="item_title">
+ <view class="icon_wrap">
+ <image v-if="dri.key == 0 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image>
+ <image v-if="dri.key == 0 && k == 0" src="@/static/waybill/ic_dingdan_sel@2x.png" class="icon"></image>
+ <image v-if="dri.key == 1 && k != 0" src="@/static/waybill/ic_peizai@2x.png" class="icon"></image>
+ <image v-if="dri.key == 1 && k == 0" src="@/static/waybill/ic_peizai_sel@2x.png" class="icon"></image>
+ <image v-if="dri.key == 2 && k != 0" src="@/static/waybill/ic_cangku@2x.png" class="icon"></image>
+ <image v-if="dri.key == 2 && k == 0" src="@/static/waybill/ic_cangku_sel@2x.png" class="icon"></image>
+ <image v-if="dri.key == 3 && k != 0" src="@/static/waybill/ic_yunshu@2x.png" class="icon"></image>
+ <image v-if="dri.key == 3 && k == 0" src="@/static/waybill/ic_yunshu_sel@2x.png" class="icon"></image>
+ <image v-if="dri.key == 4" src="@/static/waybill/ic_daohuo_sel@2x.png" class="icon"></image>
+ <image v-if="dri.key == 5" src="@/static/waybill/ic_ruku.png" class="icon"></image>
+ </view>
+ <view class="" :class="{primaryColor: k == 0}">{{dri.name}}</view>
+ </view>
+ <view class="item" v-for="item,i in dri.secondList">
+ <view class="h2" v-if="item.orderStatusDes">
+ <view class="icon_wrap" v-if="i != 0">
+ <image src="@/static/driver/ic_mostarted.png" class="icon"></image>
+ </view>
+ <view v-else class="icon_wrap"></view>
+ <view class="text" :class="{placeholder3: k==0 && i== 0}" >
+ {{item.orderStatusDes}}
+ <text v-if="item.tel">锛屽彂璐т粨搴撶數璇濓細</text>
+ <text v-if="item.tel" @click="callPhone(item.tel)" class="primaryColor">{{item.tel}}</text>
+ </view>
+ </view>
+ <view class="time">{{item.recordDate}}</view>
+ </view>
</view>
- <view class="time">202422222222</view>
- <view class="separate"></view>
</view>
- <view class="item">
- <view class="h2 h1">
- <view class="icon_wrap"><image src="@/static/driver/ic_dangqian.png" class="icon"></image></view>
- <view class="text">鍒拌揪鍗歌揣鍦�</view>
- </view>
- <view class="time">202422222222</view>
- <view class="separate separate_ac"></view>
- </view>
- <view class="item">
- <view class="h2">
- <view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view>
- <view class="text">鍒拌揪鍗歌揣鍦�</view>
- </view>
- <view class="time">202422222222</view>
- <view class="separate"></view>
- </view> -->
- </view>
+ </view>
</view>
</template>
-<script>
- import { orderInfoTms } from '@/api'
+<script>
+ import {
+ orderInfoTms
+ } from '@/api'
export default {
data() {
return {
- id: '',
- info: {},
- param: {}
+ id: '',
+ info: {},
+ param: {},
+
+ latitude: 31.783205,
+ longitude: 117.262635,
+ markers: [],
+ includePoints: [
+ // {latitude: 31.783205, longitude: 117.262635}, {latitude: 36.783205, longitude: 118.10},
+ ],
+
+ polyline: [
+ // {
+ // points: [{
+ // latitude: 31.783205,
+ // longitude: 117.262635
+ // }, {
+ // latitude: 36.783205,
+ // longitude: 118.10
+ // }],
+ // color: '#FF0000',
+ // width: 3
+ // },
+ ]
};
- },
- onLoad(options) {
- this.id = options.id
- this.getDetail()
- },
- methods: {
- getDetail() {
- orderInfoTms({ contractNumber: this.id }).then(res => {
- this.info = res.data
- })
+ },
+ onLoad(options) {
+ this.id = options.id
+ this.getDetail()
+ },
+ methods: {
+ getDetail() {
+ orderInfoTms({
+ contractNumber: this.id
+ }).then(res => {
+ this.info = res.data
+ if (res.data.deliveryLat && res.data.receiveLat) {
+ this.markers = []
+ this.markers.push({
+ id: 1,
+ latitude: res.data.deliveryLat,
+ longitude: res.data.deliveryLon,
+ width: 36,
+ iconPath: '/static/driver/ic_fahuodi@2x.png',
+ label: {
+ content: ' ',
+ padding: 3,
+ borderWidth: 2,
+ borderRadius: '50%',
+ borderColor: '#fff',
+ borderRadius: 32,
+ bgColor: '#FF0000'
+ }
+ })
+ this.markers.push({
+ id: 2,
+ latitude: res.data.receiveLat,
+ longitude: res.data.receiveLon,
+ width: 36,
+ iconPath: '/static/driver/ic_huowu@2x.png',
+ label: {
+ content: ' ',
+ padding: 3,
+ borderWidth: 2,
+ borderRadius: '50%',
+ borderColor: '#fff',
+ borderRadius: 32,
+ bgColor: '#FF0000'
+ }
+ })
+ this.latitude = (Number(this.markers[0].latitude) + Number(this.markers[1].latitude)) / 2 - 8
+ this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2
+ }
+ if (res.data && res.data.gisList && res.data.gisList.length > 0) {
+ this.gisInfo = res.data.gisList[0]
+ }
+ })
},
+ callPhone(phone){
+ uni.makePhoneCall({
+ phoneNumber: phone
+ });
+ }
}
}
</script>
-<style lang="scss" scoped>
- page{
- background-color: #f7f7f7;
+<style lang="scss" scoped>
+ page {
+ background-color: #f7f7f7;
}
- .main_app{
- padding-top: 120rpx;
- .bg{
- width: 750rpx;
- position: absolute;
- left: 0;
- top: 0;
- }
- .drive_info{
- background: #fff;
- border-radius: 16rpx;
- padding: 30rpx;
- margin-bottom: 20rpx;
- .title{
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 20rpx;
- }
- .line{
- display: flex;
- margin-bottom: 24rpx;
- .label{
- color: #666666;
- margin-right: 40rpx;
- }
- .val{
-
- }
- }
- .item{
- position: relative;
- color: #999999;
- margin-bottom: 30rpx;
- .h2{
- display: flex;
- align-items: center;
- height: 48rpx;
- .icon_wrap{
- width: 48rpx;
- margin-right: 30rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- .icon{
- width: 24rpx;
- height: 24rpx;
- position: relative;
- z-index: 2;
- }
- }
- }
- .h1{
- .icon_wrap{
- .icon{
- width: 48rpx;
- height: 48rpx;
- }
- }
- }
- .time{
- padding-left: 78rpx;
- font-size: 24rpx;
- margin-top: 6rpx;
- }
- .separate{
- height: calc( 100% );
- width: 1rpx;
- border: 1rpx dashed #666666;
- position: absolute;
- left: 22rpx;
- top: 24rpx;
- z-index: 1;
- }
- .separate_ac{
- top: 48rpx;
- }
- }
- }
-
- .info {
- border-radius: 12rpx;
- margin-bottom: 20rpx;
- padding: 0 30rpx;
- background-color: #fff;
- overflow: hidden;
+
+ .main_app {
+ padding: 0;
+ padding-top: 45vh;
+ .main_content{
+ height: 55vh ;
+ overflow: auto;
+ padding: 20rpx 30rpx 0;
position: relative;
- z-index: 1;
- .head {
+ z-index: 999;
+ }
+ #map {
+ width: 750rpx;
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 105vh;
+
+ ::v-deep .amap-marker-label {
+ top: 36px !important;
+ left: 12px !important;
+ border: 3px solid #fff !important;
+ border-radius: 50%;
+ box-shadow: #222222 0px 0px 1px;
+ }
+ }
+
+ .drive_info {
+ background: #fff;
+ border-radius: 16rpx;
+ padding: 30rpx;
+ margin-bottom: 20rpx;
+ position: relative;
+ z-index: 999;
+ .separate {
+ height: calc( 100% - 250rpx );
+ width: 1rpx;
+ border: 1rpx dashed #CCCCCC;
+ position: absolute;
+ left: 53rpx;
+ top: 102rpx;
+ z-index: -1;
+ }
+ .title {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 20rpx;
+ }
+
+ .line {
+ display: flex;
+ margin-bottom: 24rpx;
+
+ .label {
+ color: #666666;
+ margin-right: 40rpx;
+ }
+
+ .val {}
+ }
+ .item_title{
+ font-weight: 600;
+ font-size: 32rpx;
display: flex;
- justify-content: space-between;
align-items: center;
- padding: 0 30rpx;
- width: 690rpx;
- height: 84rpx;
- margin: 0 -30rpx;
- background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%);
-
- .code {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- }
-
- .status {
- color: $uni-color-primary;
- }
}
-
- .content {
- padding: 20rpx 0rpx;
- margin-bottom: 20rpx;
-
- .line {
- display: flex;
- margin-bottom: 16rpx;
- font-size: 26rpx;
-
- .la {
- color: #666666;
- width: 140rpx;
- }
-
- .val {}
-
- &:nth-last-child(1) {
- margin-bottom: 0;
- }
+ .icon_wrap {
+ width: 48rpx;
+ margin-right: 30rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ .icon {
+ width: 48rpx;
+ height: 48rpx;
+ position: relative;
+ z-index: 2;
}
- }
-
- }
+ }
+ .item {
+ position: relative;
+ color: #999999;
+ margin-bottom: 30rpx;
+ .text{
+ color: #666666;
+ }
+ .icon {
+ width: 20rpx;
+ height: 20rpx;
+ position: relative;
+ z-index: 2;
+ }
+ .h2 {
+ display: flex;
+ align-items: center;
+ height: 48rpx;
+ }
+
+ .h1 {
+ }
+
+ .time {
+ padding-left: 78rpx;
+ font-size: 24rpx;
+ margin-top: 6rpx;
+ }
+ }
+ }
+
+ .info {
+ border-radius: 12rpx;
+ margin-bottom: 20rpx;
+ padding: 0 30rpx;
+ background-color: #fff;
+ overflow: hidden;
+ position: relative;
+ z-index: 1;
+
+ .head {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 30rpx;
+ width: 690rpx;
+ height: 84rpx;
+ margin: 0 -30rpx;
+ background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
+
+ .code {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
+ }
+
+ .status {
+ color: $uni-color-primary;
+ }
+ }
+
+ .content {
+ padding: 20rpx 0rpx;
+ margin-bottom: 20rpx;
+
+ .line {
+ display: flex;
+ margin-bottom: 16rpx;
+ font-size: 28rpx;
+
+ .la {
+ color: #666666;
+ width: 140rpx;
+ }
+
+ .val {}
+
+ &:nth-last-child(1) {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ }
}
- .main_bg {
- position: absolute;
- left: 0;
+
+ .main_bg {
+ position: absolute;
+ left: 0;
top: 0;
- width: 100%;
- z-index: -1;
+ width: 100%;
+ z-index: -1;
color: #222222;
}
</style>
\ No newline at end of file
diff --git a/h5/static/driver/ic_fahuodi@2x.png b/h5/static/driver/ic_fahuodi@2x.png
new file mode 100644
index 0000000..df70766
--- /dev/null
+++ b/h5/static/driver/ic_fahuodi@2x.png
Binary files differ
diff --git a/h5/static/driver/ic_huowu@2x.png b/h5/static/driver/ic_huowu@2x.png
new file mode 100644
index 0000000..f3a7d30
--- /dev/null
+++ b/h5/static/driver/ic_huowu@2x.png
Binary files differ
diff --git a/h5/static/driver/map_point@2x.png b/h5/static/driver/map_point@2x.png
new file mode 100644
index 0000000..b6fd406
--- /dev/null
+++ b/h5/static/driver/map_point@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_cangku@2x.png b/h5/static/waybill/ic_cangku@2x.png
new file mode 100644
index 0000000..88e6453
--- /dev/null
+++ b/h5/static/waybill/ic_cangku@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_cangku_sel@2x.png b/h5/static/waybill/ic_cangku_sel@2x.png
new file mode 100644
index 0000000..17cb1b6
--- /dev/null
+++ b/h5/static/waybill/ic_cangku_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dangqian@2x.png b/h5/static/waybill/ic_dangqian@2x.png
new file mode 100644
index 0000000..fc5a9e6
--- /dev/null
+++ b/h5/static/waybill/ic_dangqian@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_daohuo_sel@2x.png b/h5/static/waybill/ic_daohuo_sel@2x.png
new file mode 100644
index 0000000..ad26c44
--- /dev/null
+++ b/h5/static/waybill/ic_daohuo_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dingdan@2x.png b/h5/static/waybill/ic_dingdan@2x.png
new file mode 100644
index 0000000..2fdbf73
--- /dev/null
+++ b/h5/static/waybill/ic_dingdan@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dingdan_sel@2x.png b/h5/static/waybill/ic_dingdan_sel@2x.png
new file mode 100644
index 0000000..03a3641
--- /dev/null
+++ b/h5/static/waybill/ic_dingdan_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_peizai@2x.png b/h5/static/waybill/ic_peizai@2x.png
new file mode 100644
index 0000000..d0d35d3
--- /dev/null
+++ b/h5/static/waybill/ic_peizai@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_peizai_sel@2x.png b/h5/static/waybill/ic_peizai_sel@2x.png
new file mode 100644
index 0000000..6e3f821
--- /dev/null
+++ b/h5/static/waybill/ic_peizai_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_ruku.png b/h5/static/waybill/ic_ruku.png
new file mode 100644
index 0000000..d2a4f7b
--- /dev/null
+++ b/h5/static/waybill/ic_ruku.png
Binary files differ
diff --git a/h5/static/waybill/ic_yunshu@2x.png b/h5/static/waybill/ic_yunshu@2x.png
new file mode 100644
index 0000000..b992d62
--- /dev/null
+++ b/h5/static/waybill/ic_yunshu@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_yunshu_sel@2x.png b/h5/static/waybill/ic_yunshu_sel@2x.png
new file mode 100644
index 0000000..50c6ade
--- /dev/null
+++ b/h5/static/waybill/ic_yunshu_sel@2x.png
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 05ff784..08884a3 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,8 +1,8 @@
-// export const baseUrl = 'zhyq_interface/'
+export const baseUrl = 'zhyq_interface/'
// export const baseUrl = 'http://192.168.0.173/gateway_interface/'
// export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/'
-export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/'
+// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/'
export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
diff --git a/screen/src/api/index.js b/screen/src/api/index.js
index ab60818..a20cb1c 100644
--- a/screen/src/api/index.js
+++ b/screen/src/api/index.js
@@ -49,6 +49,10 @@
export const getFighalarmDataList = (data) => {
return request('visitsAdmin/cloudService/board/api/fightingAdmin/alarmDataList', data)
}
+// 娓╂箍搴︽暟鎹�
+export const getTemperatureHumidityData = (data) => {
+ return request('visitsAdmin/cloudService/board/api/fightingAdmin/getTemperatureHumidityData', data)
+}
// 鍦哄唴璋冨害鐪嬫澘 浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻
@@ -68,7 +72,7 @@
return request('visitsAdmin/cloudService/board/api/onSitDispatch/centerData', data)
}
// 鍦哄唴璋冨害鐪嬫澘 浠婃棩杞﹁締浣滀笟鎯呭喌
-export const cncarWorkSituation = (data) => {
+export const cncarWorkSituation = (data) => {
return request('visitsAdmin/cloudService/board/api/onSitDispatch/carWorkSituation', data)
}
// 鍦哄唴璋冨害鐪嬫澘 瀹炴椂浣滀笟鏁堢巼
@@ -104,6 +108,14 @@
export const wltransportMeasure = (data) => {
return request('visitsAdmin/cloudService/board/api/platformJobRun/transportMeasure', data)
}
+// 鐗╂祦杩愯璋冨害鐪嬫澘 杞﹁締
+export const carsListPost = (data) => {
+ return request('/visitsAdmin/cloudService/board/api/platformJobRun/carsList', data)
+}
+// 鐗╂祦杩愯璋冨害鐪嬫澘 鏍规嵁杞﹁締鏌ヤ俊鎭�
+export const getCarsJobDetails = (data) => {
+ return request('/visitsAdmin/cloudService/board/api/platformJobRun/getCarsJobDetails', data, 'POST')
+}
// 瀹夐槻绠℃帶澶у睆 涓績鏁版嵁
diff --git a/screen/src/assets/images/FireFighting/fire_right.png b/screen/src/assets/images/FireFighting/fire_right.png
new file mode 100644
index 0000000..4302af9
--- /dev/null
+++ b/screen/src/assets/images/FireFighting/fire_right.png
Binary files differ
diff --git a/screen/src/utils/request.js b/screen/src/utils/request.js
index a20accf..0beb37a 100644
--- a/screen/src/utils/request.js
+++ b/screen/src/utils/request.js
@@ -2,7 +2,7 @@
const instance = axios.create({
baseURL: '/gateway_interface',
- timeout: 10000,
+ timeout: 30000,
withCredentials: true,
headers: {
shopId: 1
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 8e383e4..8035926 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -25,7 +25,7 @@
<img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
<div>
<div class="name">鏈勾绱寰幆鐑熺</div>
- <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
+ <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
data1.smokeBoxTotal.toLocaleString()
}}</span><span>鍙�</span></div>
</div>
@@ -81,25 +81,30 @@
</div>
<div class="static" v-if="data1.electricityQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.electricityQuantity.sameNum">
+ <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val"
v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
Math.abs(((data1.electricityQuantity.totalNum -
data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.electricityQuantity.ringNum">
+ <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+
<span class="val"
v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
Math.abs(((data1.electricityQuantity.totalNum -
data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</span>
</div>
</div>
<div class="item">
@@ -112,21 +117,25 @@
</div>
<div class="static" v-if="data1.waterQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
- <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+ <template v-if="data1.waterQuantity.sameNum">
+ <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+ <span class="val" v-if="data1.waterQuantity.sameNum && data1.waterQuantity.sameNum != 0">{{
Math.abs(((data1.waterQuantity.totalNum -
- data1.waterQuantity.sameNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
- <span class="val" v-else>-</span>
+ data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
- <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+ <template v-if="data1.waterQuantity.ringNum">
+ <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+ <span class="val" v-if="data1.waterQuantity.ringNum && data1.waterQuantity.ringNum != 0">{{
Math.abs(((data1.waterQuantity.totalNum -
- data1.waterQuantity.ringNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
- <span class="val" v-else>-</span>
+ data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
</div>
</div>
<div class="item">
@@ -139,23 +148,27 @@
</div>
<div class="static" v-if="data1.gasQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.gasQuantity.sameNum">
+ <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
* 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.gasQuantity.sameNum">
+ <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
* 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
</div>
</div>
</div>
diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue
index 8e63144..3049f9f 100644
--- a/screen/src/views/FireFighting.vue
+++ b/screen/src/views/FireFighting.vue
@@ -37,7 +37,7 @@
<div class="line">
<span class="item name">{{ item.typeName }}</span>
<span class="item">{{ item.totalDeviceNum || 0 }}</span>
- <span class="item">{{ item.alarmDeviceNum || 0 }}</span>
+ <span class="item" style="color: #FEAF01;">{{ item.alarmDeviceNum || 0 }}</span>
<span class="item">{{ item.shieldDeviceNum || 0 }}</span>
<span class="item">{{ item.errDeviceNum || 0 }}</span>
<span class="item">{{ item.offlineDeviceNum || 0 }}</span>
@@ -130,9 +130,9 @@
<span>娓╁害/婀垮害浼犳劅鍣�</span>
</div>
<div class="right">
- <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
- <div class="num">1/5</div>
- <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
+ <img @click="changeData8(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
+ <div class="num">{{dataIndex8 + 1}}/{{ dataList8.length }}</div>
+ <img @click="changeData8(1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
</div>
</div>
<div class="list_wrap">
@@ -140,19 +140,19 @@
<img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
<span>鍗歌揣鍖�1</span>
</div>
- <div class="list">
+ <div class="list" v-if="dataList8 && dataList8.length > 0">
<div class="item">
<img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
<div class="content">
- <div class="num">23<span>掳C</span></div>
- <div class="la">闃堝�� 0锝�100掳C</div>
+ <div class="num">{{ dataList8[dataIndex8].temperatureData?.latestValue }}<span>掳C</span></div>
+ <div class="la">闃堝�� {{ dataList8[dataIndex8].temperatureData?.alarmLow }}锝瀧{ dataList8[dataIndex8].temperatureData?.alarmHigh }}掳C</div>
</div>
</div>
<div class="item">
<img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
<div class="content">
- <div class="num">23<span>%</span></div>
- <div class="la">闃堝�� 0锝�100%</div>
+ <div class="num">{{ dataList8[dataIndex8].humidityData?.latestValue }}<span>%</span></div>
+ <div class="la">闃堝�� {{ dataList8[dataIndex8].humidityData?.alarmLow }}锝瀧{ dataList8[dataIndex8].humidityData?.alarmHigh }}</div>
</div>
</div>
</div>
@@ -191,9 +191,9 @@
<div class="liquidlevel_wrap">
<div class="liquidlevel" id="liquidlevel"></div>
<div class="unit">3.45 <span>M</span></div>
- <div class="place">闃堝�� 0锝�4.50M</div>
+ <div class="placeT">闃堝��</div>
</div>
-
+ <div class="place">闃堝�� 0锝�4.50M</div>
</div>
</div>
</div>
@@ -218,12 +218,12 @@
<div class="separate"></div>
<div class="item">
<div>璁″垝缁翠繚</div>
- <div class="num active">{{ dataList5.planProtectTotal }}</div>
+ <div class="num acc">{{ dataList5.planProtectTotal }}</div>
</div>
<div class="separate"></div>
<div class="item">
<div>缁翠繚鐜�</div>
- <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="num active">{{
+ <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="acc num">{{
((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
</div>
</div>
@@ -326,7 +326,8 @@
getFightingcenterData,
getFightingDeAlarm,
getFightingDeviceY,
- getFighalarmDataList
+ getFighalarmDataList,
+ getTemperatureHumidityData
} from '@/api'
const colors = ['#FEAF01', '#01ABFE', '#51F9E4']
@@ -746,8 +747,9 @@
const data4 = dataList3.value.map(i => i.errNum)
const months = dataList3.value.map(i => {
return i.startDate.substring(5, 7) + '鏈�'
- }
- )
+ })
+
+
const option = {
legend: {
x: "center",
@@ -919,6 +921,23 @@
})
}
+const dataList8 = ref([])
+const dataIndex8 = ref(0)
+const getData8 = () => {
+ getTemperatureHumidityData().then(res => {
+ dataList8.value = res.data || []
+ })
+}
+const changeData8 = (num) => {
+ if(dataIndex8.value == dataList8.value.length - 1 && num > 0){
+ dataIndex8.value = 0
+ }else if (dataIndex8.value == 0 && num < 0){
+ dataIndex8.value = dataList8.value.length - 1
+ }else{
+ dataIndex8.value = dataIndex8.value + num
+ }
+}
+
const autoplayFlag = (list = [], leng = 4, time = 2000) => {
if (list.length > leng) {
return { delay: time, disableOnInteraction: false }
@@ -953,6 +972,7 @@
getData5()
// getData6()
getData7()
+ getData8()
setInterval(() => {
getData2()
getData3()
@@ -963,6 +983,7 @@
setInterval(() => {
getData5()
+ getData8()
}, 60 * 60 * 1000)
@@ -973,7 +994,7 @@
loopFn1()
loopFn2()
}, 12000)
-
+
})
@@ -1173,6 +1194,7 @@
.content_wrap {
flex: 1;
+ flex-shrink: 0;
margin-right: 20px;
.title_wrap {
@@ -1216,8 +1238,9 @@
}
.icon {
- width: 13px;
- height: 16px;
+ width: 30px;
+ cursor: pointer;
+ /* height: 16px; */
}
}
}
@@ -1248,7 +1271,17 @@
.item {
display: flex;
align-items: center;
-
+ position: relative;
+ .place{
+ position: absolute;
+ top: 120px;
+ right: 70px;
+ z-index: 999;
+ font-size: 13px;
+ color: #869CC9;
+ width: 120px;
+ text-align: center;
+ }
.icon {
width: 70px;
height: 70px;
@@ -1278,7 +1311,6 @@
text-align: center;
position: relative;
left: 30px;
-
.watergage {
width: 130px;
height: 112px;
@@ -1327,17 +1359,18 @@
}
}
- .place {
+ .placeT {
position: relative;
bottom: 10px;
left: 4px;
font-size: 44px;
color: #869CC9;
+ opacity: 0;
}
.liquidlevel {
- width: 320px;
- height: 420px;
+ width: 300px;
+ height: 396px;
}
}
@@ -1372,6 +1405,17 @@
margin-top: 12px;
font-weight: bold;
font-size: 32px;
+
+ }
+
+ .acc {
+ background-image: -webkit-linear-gradient(top,
+ #ffffff 0%,
+ #c8ddff 66%,
+ #95eefc 72%,
+ #95eefc 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
}
.active {
diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue
index ccf7558..5e96964 100644
--- a/screen/src/views/LogisticsCenter.vue
+++ b/screen/src/views/LogisticsCenter.vue
@@ -722,7 +722,6 @@
})
myChart.on('click', function (params) {
console.log(params.name)
-
})
window.addEventListener('resize', function () {//鎵ц
myChart.resize()
diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue
index 8a4cebb..899b850 100644
--- a/screen/src/views/LogisticsEfficiency.vue
+++ b/screen/src/views/LogisticsEfficiency.vue
@@ -3,7 +3,7 @@
<div class="main_app">
<img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" />
<div class="main_header">
- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
+ <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> -->
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-璋冨害鑳芥晥璺熻釜</div>
<div class="time_wrap">
<span class="date">{{ date }}</span>
@@ -30,14 +30,22 @@
<div class="content">
<div class="num" v-if="data1.monthOutTotal || data1.yearOutTotal">{{ activeTab1 == 0 ?
data1.monthOutTotal.toLocaleString() : data1.yearOutTotal.toLocaleString() }}</div>
- <div class="unit_wrap" v-if="data1.monthOutTotalOnYear || data1.yearOutTotalOnYear">
- <span style="color: #869CC9;">鍚屾瘮</span>
- <img
- v-if="(activeTab1 == 0 && data1.monthOutTotalOnYear > 0) || (activeTab1 == 1 && data1.yearOutTotalOnYear > 0)"
- src="@/assets/images/ic_up.png" class="icon" alt="">
- <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
- <span>{{ activeTab1 == 0 ? Math.abs(data1.monthOutTotalOnYear) : Math.abs(data1.yearOutTotalOnYear)
- }}%</span>
+ <div class="unit_wrap">
+ <span style="color: #869CC9;">{{ activeTab1 == 0 ? '鍚屾瘮' : '鐜瘮' }}</span>
+ <template v-if="activeTab1 == 0 && data1.monthLastOutTotal">
+ <img v-if="data1.monthOutTotal > data1.monthLastOutTotal" src="@/assets/images/ic_up.png"
+ class="icon" alt="">
+ <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
+ </template>
+ <template v-if="activeTab1 == 1 && data1.yearLastOutTotal">
+ <img v-if="data1.yearOutTotal > data1.yearLastOutTotal" src="@/assets/images/ic_up.png"
+ class="icon" alt="">
+ <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
+ </template>
+
+ <span v-if="activeTab1 == 0 && data1.monthLastOutTotal">{{ Math.abs((((data1.monthOutTotal - data1.monthLastOutTotal)/data1.monthLastOutTotal) * 100).toFixed(1)) }}%</span>
+ <span v-else-if="activeTab1 == 1 && data1.yearLastOutTotal">{{ Math.abs((((data1.yearOutTotal - data1.yearLastOutTotal)/data1.yearLastOutTotal) * 100).toFixed(1)) }}%</span>
+ <span v-else>-</span>
</div>
</div>
<div class="train_wrap">
@@ -151,21 +159,33 @@
<div class="list">
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_zaitu@2x.png" alt="">
- <span>鍦ㄩ�旓細{{ 8 }}</span>
+ <span>鍦ㄩ�旓細{{ data7.busyNum }}</span>
</div>
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_kongxian@2x.png" alt="">
- <span>绌洪棽锛歿{ 8 }}</span>
+ <span>绌洪棽锛歿{ data7.idleNum }}</span>
</div>
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_lixian@2x.png" alt="">
- <span>绂荤嚎锛歿{ 8 }}</span>
+ <span>绂荤嚎锛歿{ data7.offlineNum }}</span>
</div>
</div>
<div class="echart_wrap">
<div ref="echartMap" class="echart_map" id="echartMap"></div>
</div>
-
+ <div class="warnning_info">
+ <div class="head" @click="isShowCarW = !isShowCarW">
+ <img src="../assets/images/FireFighting/fire_right.png" alt="">
+ <span>杞﹁締鎶ヨ</span>
+ </div>
+ <div v-if="isShowCarW" class="war_list">
+ <div class="line" v-for="item in data7.eventList">
+ <div class="id_card">{{ item.carCode }}</div>
+ <div class="title">{{ item.title }}</div>
+ <div v-if="item.time">{{ item.time.slice(11) }}</div>
+ </div>
+ </div>
+ </div>
</div>
</div>
<div class="right_box">
@@ -187,7 +207,7 @@
<img src="@/assets/images/energy_ef/ic_chukuxiaolv@2x.png" alt="">
<div class="content">
<div class="name">鍑哄簱鏁堢巼</div>
- <div class="num"><span>{{ activeTab12 == 0 ? data1.todayInRata : data1.monthInRata }}</span>涓囨敮/灏忔椂
+ <div class="num"><span>{{ activeTab12 == 0 ? data1.todayOutRate : data1.monthOutRate }}</span>涓囨敮/灏忔椂
</div>
</div>
</div>
@@ -195,7 +215,7 @@
<img src="@/assets/images/energy_ef/ic_rukuxiaolv@2x.png" alt="">
<div class="content">
<div class="name">鍏ュ簱鏁堢巼</div>
- <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.monthOutTotal : data1.yearOutTotal
+ <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.todayInRate : data1.monthInRate
}}</span>涓囨敮/灏忔椂</div>
</div>
</div>
@@ -259,7 +279,7 @@
</div>
</div>
<!-- -->
- <div class="modal" v-if="showModal">
+ <div class="modal" v-if="activeCar && activeCar.phone">
<div class="title_head">
<img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
<span>鐨朼222</span>
@@ -314,7 +334,7 @@
</div>
</div>
</div>
- <div class="modal_mask" v-if="showModal" @click="showModal = false"></div>
+ <div class="modal_mask" v-if="activeCar && activeCar.phone" @click="activeCar = {}"></div>
</div>
</v-scale-screen>
</template>
@@ -336,6 +356,8 @@
wlstockList,
wltotalInList,
wltransportMeasure,
+ carsListPost,
+ getCarsJobDetails
} from '@/api'
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
@@ -351,13 +373,6 @@
time.value = dayjs().format('HH:mm:ss')
}, 1000)
-
-const showModal = ref(false)
-const modalTab = ref(0)
-const modalTabClick = (val) => {
- modalTab.value = val
-}
-
const initEnergy = () => {
@@ -381,42 +396,62 @@
left: '3%',
right: '4%',
bottom: '3%',
- top: '18%',
+ top: '26%',
containLabel: true
},
tooltip: {
trigger: 'axis'
},
- xAxis: [{
- nameGap: 5,
- type: 'category',
- axisLine: {
- show: true,
- lineStyle: {
- color: '#999'
+ xAxis: [
+ {
+ nameGap: 5,
+ type: 'category',
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#999'
+ },
},
- },
- axisLabel: {
- color: '#869CC9'
- // fontSize: 24,
- },
- axisTick: {
- show: false,
- },
- data: dataList2.value.map(i => i.planDate),
- }],
+ axisLabel: {
+ color: '#869CC9'
+ // fontSize: 24,
+ },
+ axisTick: {
+ show: false,
+ },
+ data: dataList2.value.map(i => i.planDateStrT),
+ }
+ ],
yAxis: [
{
- nameTextStyle: {
- color: '#869CC9',
- },
- offset: 0,
- name: '涓囨敮',
type: 'value',
+ name: '涓�',
+ min: 0,
axisLabel: {
show: true,
color: "#869CC9",
},
+ splitLine: {
+ show: true,
+ lineStyle: {
+ width: 1,
+ color: "rgba(49,105,129,0.4)",
+ type: 'dashed'
+ }
+ },
+ // interval: 5,
+ axisLabel: {
+ formatter: '{value}'
+ }
+ },
+ {
+ type: 'value',
+ name: '涓囨敮',
+ nameTextStyle: {
+ color: '#869CC9',
+ },
+ offset: 0,
+ type: 'value',
axisLine: {
show: true,
},
@@ -428,18 +463,10 @@
type: 'dashed'
}
},
- },
- {
- type: 'value',
- name: '%',
- min: 0,
- max: 100,
- // interval: 5,
axisLabel: {
- formatter: '{value}%'
- },
- splitLine: false
- }
+ formatter: '{value}'
+ }
+ },
],
series: [
{
@@ -452,6 +479,7 @@
position: 'top',
color: '#fff',
},
+ yAxisIndex: 1,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
@@ -475,6 +503,7 @@
name: '浠诲姟瀹屾垚閲�',
type: 'bar',
barWidth: 10,
+ yAxisIndex: 1,
label: {
show: false,
position: 'top',
@@ -504,6 +533,7 @@
type: 'line',
smooth: false,
showAllSymbol: true,
+ yAxisIndex: 0,
symbol: 'none',
lineStyle: {
color: "#1a43bc"
@@ -555,26 +585,24 @@
const initMap = () => {
var myChart = echarts.init(echartMap.value)
echarts.registerMap('js', ahJSON)
- var scatterData = [
- {
- name: '骞煎効鍥�',
- num: 15,
- color: ['#1984ff', '#184b8d'],
- img: icKongxian,
- data: [
- { name: '', value: [117.25, 31.49] },
- ],
- },
- {
- name: '灏忓',
- num: 11,
- color: ['#f16c08', '#7f3710'],
- img: icLixian,
- data: [
- { name: '', value: [118.5, 31.08] },
- ],
+ const scatterData = data7.value.carsList.map(item => {
+ return {
+ name: item.terminalId,
+ img: item.status == 0 ? icLixian : item.status == 1 || item.status == 2 ? icZaitu : icKongxian,
+ data: [{ code: item.plateNum, value: [item.longitude, item.latitude] }]
}
- ]
+ })
+ // var scatterData = [
+ // {
+ // name: '骞煎効鍥�',
+ // num: 15,
+ // // color: ['#1984ff', '#184b8d'],
+ // img: icKongxian,
+ // data: [
+ // { name: 'asdasdas ', value: [117.25, 31.49] },
+ // ],
+ // },
+ // ]
let serData = []
scatterData.forEach((item) => {
serData.push({
@@ -609,30 +637,11 @@
},
symbolSize: [32, 40],
hoverAnimation: true,
-
zlevel: 99,
data: item.data,
})
}
)
- var center = {
- '鍚堣偉甯�': [117.25, 31.83],
- '婊佸窞甯�': [118.32, 32.3],
- '鑺滄箹甯�': [118.43, 31.35],
- '闃滈槼甯�': [115.38, 32.89],
- '铓屽煚甯�': [117.39, 32.92],
- '娣崡甯�': [116.99, 32.63],
- '椹瀺灞卞競': [118.5, 31.71],
- '瀹夊簡甯�': [117.05, 30.52],
- '榛勫北甯�': [118.33, 29.71],
- '閾滈櫟甯�': [117.81, 30.94],
- '瀹垮窞甯�': [116.98, 33.64],
- '娣寳甯�': [116.8, 33.9],
- '鍏畨甯�': [116.51, 31.75],
- '姹犲窞甯�': [117.49, 30.66],
- '瀹e煄甯�': [118.76, 30.94],
- '浜冲窞甯�': [115.78, 33.84],
- }
var data = [
{ name: "鍚堣偉甯�", value: 3 },
{ name: "婊佸窞甯�", value: 0 },
@@ -659,16 +668,6 @@
x: 'center',
textStyle: {
color: '#ffffff'
- }
- },
- tooltip: {
- trigger: 'item',
- formatter: function (params) {
- if (typeof (params.value)[2] == "undefined") {
- return params.name + ' : ' + params.value
- } else {
- return params.name + ' : ' + params.value[2]
- }
}
},
visualMap: {
@@ -712,7 +711,7 @@
symbolSize: 14,
label: {
normal: {
- show: true,
+ show: false,
formatter: function (params) {
return '{fline|鍦扮偣锛�' + params.data.city + '}\n{tline|' + (params.data.info || '鍙戠敓xx闆嗕欢') + '}'
},
@@ -751,10 +750,7 @@
label: {
show: true,
color: '#ffffff',
- emphasis: {
- color: 'white',
- show: false
- }
+
},
itemStyle: {
normal: {
@@ -763,9 +759,15 @@
areaColor: '#1d3b60'
},
emphasis: {
- areaColor: '#FA8C16',
- borderWidth: 1,
- color: '#428598'
+ disabled: true,
+ // areaColor: '#FA8C16',
+ // borderWidth: 1,
+ // color: '#428598',
+ label: {
+ show: true, // 濮嬬粓鏄剧ず鏂囧瓧
+ color: '#fff' // 璁剧疆鏂囧瓧棰滆壊
+ },
+ areaColor: null
}
},
data: data
@@ -775,10 +777,22 @@
}
myChart.setOption(option)
+ myChart.on('click', function (params) {
+ const item = params.data
+ getCarsJobDetails({ carCode: item.code }).then(res => {
+ activeCar.value = res.data
+ })
+ })
window.addEventListener('resize', function () {//鎵ц
myChart.resize()
})
}
+const activeCar = ref({})
+const modalTab = ref(0)
+const modalTabClick = (val) => {
+ modalTab.value = val
+}
+
const data1 = ref({})
const activeTab1 = ref(0)
@@ -798,11 +812,17 @@
const dataList2 = ref([])
const activeTab2 = ref(0)
-const tabClick2 = (val) => { activeTab2.value = val }
+const tabClick2 = (val) => {
+ activeTab2.value = val
+ getData2()
+}
const getData2 = () => {
wltransportMeasure({ queryType: activeTab2.value }).then(res => {
- const result = res.data
+ const result = res.data || []
dataList2.value = result
+ dataList2.value.forEach(item => {
+ item.planDateStrT = activeTab2.value == 2 ? dayjs(item.planDate).format('M') : dayjs(item.planDate).format('M.D')
+ })
initEnergy()
})
}
@@ -831,7 +851,10 @@
}
const data4 = ref({})
const activeTab4 = ref(0)
-const tabClick4 = (val) => { activeTab4.value = val }
+const tabClick4 = (val) => {
+ activeTab4.value = val
+ getData4()
+}
const getData4 = () => {
wljobData({ queryType: activeTab4.value }).then(res => {
const result = res.data
@@ -850,7 +873,7 @@
return i
})
dataList5.value.forEach(i => {
- i.rate = ((i.num / count) * 100).toFixed(0)
+ i.rate = count == 0 ? 0 : ((i.num / count) * 100).toFixed(0)
})
data5.value = count
initEchart1()
@@ -859,8 +882,18 @@
const dataList6 = ref([])
const getData6 = () => {
wlstockList().then(res => {
- const result = res.data
+ const result = res.data.stockList || []
dataList6.value = result
+ })
+}
+
+const isShowCarW = ref(false)
+const data7 = ref({})
+const getData7 = () => {
+ carsListPost().then(res => {
+ const result = res.data || {}
+ data7.value = result
+ initMap()
})
}
@@ -896,8 +929,7 @@
getData4()
getData5()
getData6()
-
- initMap()
+ getData7()
setTimeout(() => {
loopFn1()
@@ -1212,7 +1244,7 @@
}
.echart_wrap {
- width: 100%;
+ width: 86%;
height: 100%;
.echart_map {
@@ -1221,6 +1253,58 @@
/* transform: rotate(60deg); */
}
}
+
+ .warnning_info {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ border-top: 1px solid #5ecbce;
+ border-bottom: 1px solid #5ecbce;
+
+ .head {
+ display: flex;
+ width: 280px;
+ height: 57px;
+ background: rgba(0, 30, 63, 0.4);
+ backdrop-filter: blur(5px);
+ display: flex;
+ align-items: center;
+ padding-left: 10px;
+ font-weight: bold;
+ font-size: 16px;
+ cursor: pointer;
+
+ img {
+ width: 14px;
+ margin-right: 10px;
+ }
+ }
+
+ .war_list {
+ max-height: 300px;
+ overflow: auto;
+
+ .line {
+ font-size: 13px;
+ color: #D2E0FF;
+ display: flex;
+ align-items: center;
+ height: 30px;
+
+ div {
+ flex: 3;
+ }
+
+ .id_card {
+ color: #00F2F3;
+ }
+
+ .title {
+ flex: 4;
+ }
+ }
+ }
+ }
}
}
diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue
index 1496439..17f7c0a 100644
--- a/screen/src/views/SecurityControl.vue
+++ b/screen/src/views/SecurityControl.vue
@@ -422,7 +422,7 @@
</div>
<div class="list two-swiper">
<div class="swiper-wrapper">
- <template v-for="item, i in dataList2">
+ <template v-for="item, i in dataList2.filter(i => i.total > 0)">
<div class="item two-swiper-slide swiper-slide">
<div class="line">
<div class="driver">{{ item.deviceType }}</div>
@@ -948,7 +948,7 @@
initialSlide: 0,
direction: 'vertical', //绔栫洿鏂瑰悜
slidesPerView: 3,
- autoplay: autoplayFlag(dataList2.value, 3, 4000),
+ autoplay: autoplayFlag(dataList2.value.filter(i => i.total > 0), 3, 4000),
observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
})
}
@@ -1688,7 +1688,8 @@
display: flex;
justify-content: center;
align-items: center;
- padding: 16px 24px;
+ padding-top: 16px;
+ padding-left: 24px;
.echart_wrap {
position: relative;
@@ -1724,7 +1725,7 @@
}
.list {
- margin-left: 36px;
+ margin-left: 32px;
flex: 1;
display: flex;
flex-direction: column;
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index 4bc1764..159aea2 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -2,7 +2,6 @@
<v-scale-screen width="1920" height="960">
<div class="main_app">
<img src="@/assets/images/task/bg@2x.png" class="main_bg" alt="" />
- <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
<div class="main_header">
<img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-浣滀笟鏁堣兘缁熺</div>
@@ -66,7 +65,7 @@
<div class="list one-swiper">
<div class="swiper-wrapper">
<div class="line one-swiper-slide swiper-slide" v-for="item, i in dataList2" :key="i">
- <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
+ <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
<div class="id_card">{{ item.platformName }}</div>
<div class="wrap">
<ChargeRate :rate="item.rate" />
@@ -130,9 +129,7 @@
</div>
</div>
<div class="center_box_bg">
- <!-- <div class="no no1" @click="workModalClick">1</div>
- <div class="no no2" @click="workModalClick">2</div>
- <div class="no no3" @click="workModalClick">3</div> -->
+ <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
<div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal">
<img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt="">
<div class="head">
@@ -165,9 +162,11 @@
</div>
</div>
<div class="center_box_two">
- <!-- <div class="videos">
- <div class="video" v-for="i in 4"></div>
- </div> -->
+ <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos">
+ <div class="video" v-for="indexCode in data4.videoIndexCodes">
+ <Video v-if="indexCode" :href="data4.videoPluginUrl" :indexCode="indexCode" />
+ </div>
+ </div>
<div class="list">
<div class="line header">
<div>鏈堝彴鍚嶇О</div>
@@ -227,22 +226,24 @@
<div class="echart_wrap">
<div class="echart3" id="echart3"></div>
</div>
- <div class="list">
- <div class="line" v-for="item, i in data6?.platformLogList">
- <div class="time_wrap">
- <div class="time" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
- <div class="sp" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }"></div>
- <div class="dian" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }"></div>
+ <div class="list four-swiper">
+ <div class="swiper-wrapper">
+ <div class="line four-swiper-slide swiper-slide" v-for="item, i in data6?.platformLogList">
+ <div class="time_wrap">
+ <div class="time" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
+ <div class="sp" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }"></div>
+ <div class="dian" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }"></div>
+ </div>
+ <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
+ <div class="status">{{ statusMap[item.objType] }}</div>
+ <div class="desc">{{ item.content }}</div>
</div>
- <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
- <div class="status">{{ statusMap[item.objType] }}</div>
- <div class="desc">{{ item.content }}</div>
</div>
</div>
</div>
@@ -273,7 +274,7 @@
<span>鍛婅锛歿{ item.eventContent }}</span>
</div>
<div class="wrap">
- <!-- <span style="margin-right: 30px;">鐘舵�侊細寰呭鐞�</span> -->
+ <span style="margin-right: 50px;">{{ item.platformName }}</span>
<span>宸插彂鐢燂細{{ item.haveTime }}</span>
</div>
</div>
@@ -305,6 +306,7 @@
dayjs.extend(duration)
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
+import Video from './videoUrl/Video.vue'
import {
cnplatformGroupFinish,
cnplatformDuration,
@@ -563,7 +565,7 @@
}]),
]
const temp = []
- temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100.0' : 0 })
+ temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100' : 0 })
temp.push({ name: '宸插彨鍙�', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
temp.push({ name: '宸蹭綔涓�', value: data4.value?.workedNum || 0, rate: data4.value?.signedNum ? (data4.value.workedNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
temp.push({ name: '宸插畬鎴�', value: data4.value?.doneNum || 0, rate: data4.value?.signedNum ? (data4.value.doneNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
@@ -754,7 +756,7 @@
const data6 = ref({})
const getData6 = () => {
- cncarWorkSituation({ size: 7 }).then(res => {
+ cncarWorkSituation({ size: 30 }).then(res => {
const result = res.data
data6.value = result
})
@@ -773,6 +775,23 @@
const showWorkModal = ref(false)
const workModalParam = ref({})
+// point_icon
+const pointList = ref([
+ { left: 230, top: 190 },
+ { left: 265, top: 180 },
+ { left: 300, top: 170 },
+ { left: 335, top: 160 },
+ { left: 370, top: 150 },
+
+ { left: 530, top: 50 },
+ { left: 550, top: 65 },
+ { left: 570, top: 75 },
+ { left: 590, top: 75 },
+ { left: 600, top: 80 },
+ { left: 850, top: 60 },
+
+])
+
const platformClick = (val) => {
workModalParam.value = val
console.log(val)
@@ -812,6 +831,15 @@
observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
})
}
+const loopFn6 = () => {
+ var newSwiper1 = new Swiper('.four-swiper', {
+ initialSlide: 0,
+ direction: 'vertical', //绔栫洿鏂瑰悜
+ slidesPerView: 7,
+ autoplay: autoplayFlag(data6.value.platformLogList, 7, 4000),
+ observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+ })
+}
const autoplayFlag = (list = [], leng = 4, time = 2000) => {
if (list.length > leng) {
return { delay: time, disableOnInteraction: false }
@@ -845,6 +873,7 @@
loopFn2()
loopFn5()
loopFn7()
+ loopFn6()
}, 12000)
})
@@ -1068,6 +1097,13 @@
display: flex;
justify-content: center;
align-items: center;
+ position: relative;
+ .point_icon {
+ position: absolute;
+ left: 850px;
+ top: 60px;
+ }
+
.no {
width: 28px;
height: 28px;
@@ -1149,8 +1185,7 @@
.center_box_two {
width: 100%;
- background: rgba(0, 86, 255, 0.05);
- backdrop-filter: blur(5px);
+
.videos {
width: 100%;
@@ -1173,7 +1208,8 @@
width: 100%;
height: 210px;
overflow-y: auto;
-
+ background: rgba(0, 86, 255, 0.05);
+ backdrop-filter: blur(5px);
.two-swiper {
height: 180px;
overflow: hidden;
@@ -1203,7 +1239,7 @@
}
.lined {
- background: rgba(0,160,255,0.6) !important;
+ background: rgba(0, 160, 255, 0.6) !important;
font-weight: 600 !important;
}
@@ -1226,6 +1262,7 @@
backdrop-filter: blur(5px);
background: rgba(0, 86, 255, 0.05);
backdrop-filter: blur(5px);
+
.static_wrap {
display: flex;
padding: 20px 0 15px;
@@ -1261,14 +1298,16 @@
.list {
margin: 0 20px 0;
- width: 100%;
- height: 222px;
+ width: 430px;
+ height: 231px;
+ overflow: hidden;
+ scrollbar-width: none;
.line {
display: flex;
align-items: center;
font-size: 12px;
- height: 33px;
+ height: 33px !important;
color: #D2E0FF;
width: 100%;
@@ -1321,6 +1360,7 @@
.right_box_two {
padding: 20px 20px 0;
margin-top: 20px;
+
.list {
height: 220px;
overflow: hidden;
@@ -1328,6 +1368,7 @@
background: rgba(0, 86, 255, 0.05);
backdrop-filter: blur(5px);
padding-top: 15px;
+
.item {
display: flex;
font-size: 13px;
@@ -1561,12 +1602,6 @@
position: relative;
z-index: -2;
font-size: 14px;
-
- .point_icon {
- position: absolute;
- left: 800px;
- top: 420px;
- }
.main_bg {
position: absolute;
--
Gitblit v1.9.3