From 63f68bf25b920d5711032a6e675769855ed3582b Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 19 十二月 2024 10:18:16 +0800
Subject: [PATCH] ll
---
h5/pages/appointmentDetails/appointmentDetails.vue | 17
h5/pages/staff/meetingCalendar.vue | 11
h5/pages/staff/vehicle/index.vue | 5
h5/pages/waybill/home.vue | 1
h5/pages/index/index.vue | 16
h5/pages/staff/task/visitorApprove.vue | 11
h5/pages/waybill/list.vue | 12
h5/pages/staff/task/driver.vue | 1
h5/pages.json | 2
h5/pages/driver/index.vue | 520 +++++++++++++------------
h5/pages/staff/task/visitorReport.vue | 7
admin/src/views/platform/components/PlatformSign.vue | 9
h5/pages/staff/index.vue | 42 +-
h5/pages/staff/meetingSel.vue | 3
h5/pages/driver/reservedDetail.vue | 1
screen/src/views/videoUrl/Videos.vue | 236 +++++++++++
h5/pages/userinfo/userinfo.vue | 9
screen/src/views/TaskEfficiency.vue | 71 ++-
h5/pages/driver/taskDetail.vue | 3
h5/pages/staff/task/index.vue | 2
h5/pages/driver/queueUpRecord.vue | 2
h5/pages/staff/meetingDetail.vue | 9
h5/pages/staff/snapshot.vue | 42 +
admin/src/views/platform/index.vue | 9
h5/pages/staff/vehicle/sendACarDetail.vue | 4
h5/pages/staff/task/vDangetAppr.vue | 115 +++--
26 files changed, 753 insertions(+), 407 deletions(-)
diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
index d24c2d4..d357401 100644
--- a/admin/src/views/platform/components/PlatformSign.vue
+++ b/admin/src/views/platform/components/PlatformSign.vue
@@ -4,7 +4,7 @@
<div class="df_ac mb20">
<span>鎼滅储杞﹁締锛�</span>
<el-input class="flex1 mr20" v-model="carCodeFront" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
- <el-button type="primary" @click="getList">鏌ユ壘</el-button>
+ <el-button type="primary" @click="getList(1)">鏌ユ壘</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</div>
<div class="list">
@@ -101,13 +101,16 @@
this.getList()
})
},
- getList() {
+ getList(page) {
const { activePlat, pagination, carCodeFront } = this
+ if(page){
+ pagination.page = page
+ }
platformJobPage({
model: { platformGroupId: activePlat.id, queryStatus: '0,1', carCodeFront },
page: pagination.page,
capacity: pagination.pageSize
- }).then(res => {
+ }).then(res => {
this.dataList = res.records
this.pagination.total = res.total
})
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index e12c639..e566346 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -98,9 +98,10 @@
<el-button v-if="task.status == 5 || task.status == 8" plain
@click="handleTransform(item, task)">杞Щ鏈堝彴</el-button>
<el-button v-if="task.status == 4" plain @click="handlePass(task)">杩囧彿</el-button>
- <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8" type="primary"
- @click="handleFinish(task)">浣滀笟瀹屾垚</el-button>
- <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary" @click="handleWork(task)">寮�濮嬩綔涓�</el-button>
+ <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8"
+ type="primary" @click="handleFinish(task)">浣滀笟瀹屾垚</el-button>
+ <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary"
+ @click="handleWork(task)">寮�濮嬩綔涓�</el-button>
</div>
</div>
</div>
@@ -229,7 +230,7 @@
this.loadingFinish = false
Message.success('瀹屾垚浣滀笟')
this.getPlatGroupList()
- },() => {
+ }, () => {
this.loadingFinish = false
})
},
diff --git a/h5/pages.json b/h5/pages.json
index afd3937..0089265 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -261,7 +261,7 @@
{
"path": "pages/staff/task/visitorApprove",
"style": {
- "navigationBarTitleText": "璁垮瀹℃壒",
+ "navigationBarTitleText": "鍏ュ洯瀹℃壒",
"enablePullDownRefresh": false
}
},
diff --git a/h5/pages/appointmentDetails/appointmentDetails.vue b/h5/pages/appointmentDetails/appointmentDetails.vue
index 6b40e5e..451b063 100644
--- a/h5/pages/appointmentDetails/appointmentDetails.vue
+++ b/h5/pages/appointmentDetails/appointmentDetails.vue
@@ -22,6 +22,18 @@
<view class="h1">璁垮棰勭害瀹℃牳涓嶉�氳繃</view>
<view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸茶椹冲洖锛屽鏈夌枒闂紝鍙仈绯昏璁夸汉</view>
</view>
+ <view class="head_wrap head_error" v-if="info.status == 4">
+ <view class="h1">璁垮棰勭害瀹℃牳宸插彇娑�</view>
+ <view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸插彇娑堬紝璇烽噸鏂扮敵璇�</view>
+ </view>
+ <view class="head_wrap head_success" v-if="info.status == 7">
+ <view class="h1">璁垮棰勭害鎷滆涓�</view>
+ <view class="h2">浣犵殑璁跨敵璇锋鍦ㄨ繘琛�,濡傛湁鐤戦棶锛屽彲鑱旂郴琚浜�</view>
+ </view>
+ <view class="head_wrap head_success" v-if="info.status == 8">
+ <view class="h1">璁垮棰勭害宸茬绂�</view>
+ <view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸插け鏁堬紝璇烽噸鏂扮敵璇�</view>
+ </view>
<view class="head_wrap head_error" v-if="info.status == 9">
<view class="h1">璁垮棰勭害宸插け鏁�</view>
<view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸插け鏁堬紝璇烽噸鏂扮敵璇�</view>
@@ -107,6 +119,7 @@
return true
},
onLoad(option) {
+ uni.setStorageSync('ywinfo',{})
this.detail = option.detail || ''
this.getDetail(option.id)
// visitorSubDetail({ id: option.id })
@@ -204,6 +217,10 @@
color: #ffffff;
}
}
+ .head_gray{
+ background-color: #666666;
+ color: #fff;
+ }
.head_error {
background: #fdeded;
.h1 {
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 01eb818..f3c63aa 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -45,7 +45,8 @@
<view class="sub">
<view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view>
<view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">
- {{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view>
+ {{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}
+ </view>
<view v-if="item.status == 0" class="sub_btn">纭浠诲姟</view>
<view v-if="item.status == 1" class="sub_btn">绔嬪嵆绛惧埌</view>
<view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">鏌ョ湅鎺掗槦</view>
@@ -99,328 +100,331 @@
</template>
<script>
-import {
- logoutPost,
- driverHomeData,
- app_url,
- getLastWaitJob
-} from '@/api'
-export default {
- data() {
- return {
- taskList: [],
- driverInfo: uni.getStorageSync('driverInfo'),
-
- }
- },
- onLoad() {
- const ywinfo = uni.getStorageSync('ywinfo') || {}
- if(ywinfo.ywid && ywinfo.type == 0){
- setTimeout(() => {
- uni.removeStorageSync('ywinfo')
- }, 500)
- const yw = ywinfo.yw
- if(yw == 7){
- this.jump('/pages/driver/reservedDetail?id=' + ywinfo.ywid)
- }else if(yw == 8){
- this.jump('/pages/driver/taskDetail?id=' + ywinfo.ywid)
- }else if(yw == 0) {
- getLastWaitJob({ uuid: ywinfo.ywid }).then(res => {
- if(res.data && res.data.id){
- this.taskClick(res.data)
- }
- })
- }
- }
- },
- onShow() {
- this.initData()
- },
-
- methods: {
- jump(path) {
- this.$jump(path)
+ import {
+ logoutPost,
+ driverHomeData,
+ app_url,
+ getLastWaitJob
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ taskList: [],
+ driverInfo: uni.getStorageSync('driverInfo'),
+ }
},
- initData() {
- driverHomeData().then(res => {
- if (res.code == 200) {
- uni.setStorageSync('driverGuide', {
- bookingTips: res.data.bookingTips,
- reservationMap: res.data.reservationMap,
- signDistance: res.data.signDistance
+ onLoad() {
+ const ywinfo = uni.getStorageSync('ywinfo') || {}
+ if (ywinfo.ywid && ywinfo.type == 0) {
+ uni.setStorageSync('ywinfo',{})
+ const yw = ywinfo.yw
+ setTimeout(() => {
+ if (yw == 7) {
+ this.jump('/pages/driver/reservedDetail?id=' + ywinfo.ywid)
+ } else if (yw == 8) {
+ this.jump('/pages/driver/taskDetail?id=' + ywinfo.ywid)
+ } else if (yw == 0) {
+ getLastWaitJob({
+ uuid: ywinfo.ywid
+ }).then(res => {
+ if (res.data && res.data.id) {
+ this.taskClick(res.data)
+ }
+ })
+ }
+ }, 100)
+ }
+ },
+ onShow() {
+ this.initData()
+ },
+
+ methods: {
+ jump(path) {
+ this.$jump(path)
+ },
+ initData() {
+ driverHomeData().then(res => {
+ if (res.code == 200) {
+ uni.setStorageSync('driverGuide', {
+ bookingTips: res.data.bookingTips,
+ reservationMap: res.data.reservationMap,
+ signDistance: res.data.signDistance
+ })
+ this.taskList = res.data.platformJobList || []
+ }
+ })
+ },
+ loginOut() {
+ logoutPost({
+ isH5: 1
+ }).then(res => {
+ this.$store.commit('empty')
+ setTimeout(() => {
+ window.location.href = app_url
+ }, 300)
+ })
+ },
+ taskClick(item) {
+ const status = item.status
+ if (status == 0) {
+ uni.navigateTo({
+ url: '/pages/driver/taskConfirm?id=' + item.id
})
- this.taskList = res.data.platformJobList || []
}
- })
- },
- loginOut() {
- logoutPost({isH5: 1}).then(res => {
- this.$store.commit('empty')
- setTimeout(() => {
- window.location.href = app_url
- }, 300)
- })
- },
- taskClick(item) {
- const status = item.status
- if (status == 0) {
+ // else if(status == 2){
+ // uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
+ // }
+ else {
+ uni.navigateTo({
+ url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+ })
+ }
+ },
+ handleTask(item) {
uni.navigateTo({
url: '/pages/driver/taskConfirm?id=' + item.id
})
- }
- // else if(status == 2){
- // uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
- // }
- else {
+ },
+ handleSign(item) {
uni.navigateTo({
url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
})
- }
- },
- handleTask(item) {
- uni.navigateTo({
- url: '/pages/driver/taskConfirm?id=' + item.id
- })
- },
- handleSign(item) {
- uni.navigateTo({
- url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
- })
- },
- handleQueue(item) {
- uni.navigateTo({
- url: '/pages/driver/queueUp?jobId=' + item.id
- })
- },
+ },
+ handleQueue(item) {
+ uni.navigateTo({
+ url: '/pages/driver/queueUp?jobId=' + item.id
+ })
+ },
+ }
}
-}
</script>
<style lang="scss">
-.title_wrap {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 24rpx;
- padding-top: 10rpx;
-
- .name {
- font-weight: 600;
- font-size: 34rpx;
- color: #222222;
- }
-
- .btn {
- width: 144rpx;
- height: 56rpx;
- border-radius: 36rpx;
- border: 1rpx solid $uni-color-primary;
- font-size: 26rpx;
- color: $uni-color-primary;
+ .title_wrap {
display: flex;
- justify-content: center;
+ justify-content: space-between;
align-items: center;
- }
-}
+ margin-bottom: 24rpx;
+ padding-top: 10rpx;
-.main_app {
- padding-top: 12rpx;
-}
+ .name {
+ font-weight: 600;
+ font-size: 34rpx;
+ color: #222222;
+ }
-.banner_wrap {
- padding: 54rpx 44rpx;
- color: #fff;
- position: relative;
- width: 688rpx;
- height: 270rpx;
- margin-bottom: 28rpx;
-
- .h1 {
- font-weight: bold;
- line-height: 66rpx;
- font-size: 44rpx;
- margin-bottom: 14rpx;
+ .btn {
+ width: 144rpx;
+ height: 56rpx;
+ border-radius: 36rpx;
+ border: 1rpx solid $uni-color-primary;
+ font-size: 26rpx;
+ color: $uni-color-primary;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
}
- .h2 {
- font-weight: 600;
- font-size: 28rpx;
- width: 192rpx;
- color: $uni-color-primary;
- height: 48rpx;
- line-height: 48rpx;
- text-align: center;
- background: #ffffff;
- box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
- border-radius: 24rpx;
+ .main_app {
+ padding-top: 12rpx;
}
- .banner {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: -1;
- }
-}
-
-.container1 {
- display: flex;
- flex-wrap: wrap;
-
- view {
- width: 336rpx;
- }
-
- .left {
- margin-right: 18rpx;
- }
-
- .img_wrap {
+ .banner_wrap {
+ padding: 54rpx 44rpx;
+ color: #fff;
position: relative;
- padding: 24rpx 0rpx 0 28rpx;
- border-radius: 8rpx;
- overflow: hidden;
+ width: 688rpx;
+ height: 270rpx;
+ margin-bottom: 28rpx;
.h1 {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- line-height: 48rpx;
- margin-bottom: 4rpx;
+ font-weight: bold;
+ line-height: 66rpx;
+ font-size: 44rpx;
+ margin-bottom: 14rpx;
}
.h2 {
- font-size: 22rpx;
- color: #7b9da1;
- line-height: 34rpx;
+ font-weight: 600;
+ font-size: 28rpx;
+ width: 192rpx;
+ color: $uni-color-primary;
+ height: 48rpx;
+ line-height: 48rpx;
+ text-align: center;
+ background: #ffffff;
+ box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
+ border-radius: 24rpx;
}
- .img {
- width: 100%;
- height: 100%;
+ .banner {
position: absolute;
top: 0;
left: 0;
+ width: 100%;
z-index: -1;
}
}
- .img1 {
- width: 336rpx;
- height: 296rpx;
- margin-bottom: 16rpx;
- }
+ .container1 {
+ display: flex;
+ flex-wrap: wrap;
- .img2 {
- width: 336rpx;
- height: 140rpx;
- margin-bottom: 16rpx;
- }
-}
+ view {
+ width: 336rpx;
+ }
-.task_list {
- margin-bottom: 0rpx;
+ .left {
+ margin-right: 18rpx;
+ }
- .task_swiper {
- padding: 12rpx 10rpx;
- height: 340rpx;
- width: 730rpx;
- margin-left: -20rpx;
- box-sizing: border-box;
- }
+ .img_wrap {
+ position: relative;
+ padding: 24rpx 0rpx 0 28rpx;
+ border-radius: 8rpx;
+ overflow: hidden;
- .item {
- background: #ffffff;
- box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
- border-radius: 16rpx;
- height: 260rpx;
- width: 98%;
- margin-left: 1%;
-
- .head {
- display: flex;
- justify-content: space-between;
- align-items: center;
- background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
- padding: 0rpx 30rpx;
- height: 92rpx;
-
- .name {
+ .h1 {
font-weight: 600;
- font-size: 36rpx;
+ font-size: 32rpx;
color: #222222;
+ line-height: 48rpx;
+ margin-bottom: 4rpx;
}
- .status {
- color: $uni-color-primary;
- font-weight: 600;
- text-align: right;
+ .h2 {
+ font-size: 22rpx;
+ color: #7b9da1;
+ line-height: 34rpx;
+ }
- .time {
- font-size: 24rpx;
- font-weight: 360;
- }
+ .img {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
}
}
- .content {
- height: 180rpx;
+ .img1 {
+ width: 336rpx;
+ height: 296rpx;
+ margin-bottom: 16rpx;
+ }
- .info {
+ .img2 {
+ width: 336rpx;
+ height: 140rpx;
+ margin-bottom: 16rpx;
+ }
+ }
+
+ .task_list {
+ margin-bottom: 0rpx;
+
+ .task_swiper {
+ padding: 12rpx 10rpx;
+ height: 340rpx;
+ width: 730rpx;
+ margin-left: -20rpx;
+ box-sizing: border-box;
+ }
+
+ .item {
+ background: #ffffff;
+ box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
+ border-radius: 16rpx;
+ height: 260rpx;
+ width: 98%;
+ margin-left: 1%;
+
+ .head {
display: flex;
- padding: 24rpx 30rpx;
+ justify-content: space-between;
+ align-items: center;
+ background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
+ padding: 0rpx 30rpx;
+ height: 92rpx;
- .plate {
- flex: 1;
- display: flex;
- align-items: center;
+ .name {
+ font-weight: 600;
+ font-size: 36rpx;
+ color: #222222;
+ }
- .icon {
- width: 26rpx;
- height: 26rpx;
- margin-right: 10rpx;
+ .status {
+ color: $uni-color-primary;
+ font-weight: 600;
+ text-align: right;
+
+ .time {
+ font-size: 24rpx;
+ font-weight: 360;
}
}
}
- .sub {
- display: flex;
- justify-content: space-between;
- align-items: center;
- height: 68rpx;
- padding: 0 30rpx 0;
+ .content {
+ height: 180rpx;
- .time {
- font-size: 26rpx;
- color: #999999;
+ .info {
+ display: flex;
+ padding: 24rpx 30rpx;
+
+ .plate {
+ flex: 1;
+ display: flex;
+ align-items: center;
+
+ .icon {
+ width: 26rpx;
+ height: 26rpx;
+ margin-right: 10rpx;
+ }
+ }
}
- .sub_btn {
+ .sub {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
height: 68rpx;
- line-height: 68rpx;
- padding: 0 34rpx;
- color: #ffffff;
- background: $uni-color-primary;
- box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4);
- border-radius: 40rpx;
+ padding: 0 30rpx 0;
+
+ .time {
+ font-size: 26rpx;
+ color: #999999;
+ }
+
+ .sub_btn {
+ height: 68rpx;
+ line-height: 68rpx;
+ padding: 0 34rpx;
+ color: #ffffff;
+ background: $uni-color-primary;
+ box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4);
+ border-radius: 40rpx;
+ }
}
}
}
}
-}
-.copyright {
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 44rpx;
- font-size: 24rpx;
- color: #666666;
+ .copyright {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 44rpx;
+ font-size: 24rpx;
+ color: #666666;
- image {
- width: 40rpx;
- height: 40rpx;
+ image {
+ width: 40rpx;
+ height: 40rpx;
+ }
}
-}
</style>
\ No newline at end of file
diff --git a/h5/pages/driver/queueUpRecord.vue b/h5/pages/driver/queueUpRecord.vue
index e70a000..d7c95b3 100644
--- a/h5/pages/driver/queueUpRecord.vue
+++ b/h5/pages/driver/queueUpRecord.vue
@@ -18,7 +18,7 @@
<view class="address">{{ item.platformName || '绛夊緟鍒嗛厤鏈堝彴' }}</view>
<view class="time" v-if="item.status == 5">
<u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
- <text>{{item.callDateTemp}}</text>
+ <text>{{item.startDateTemp}}</text>
</view>
</view>
</view>
diff --git a/h5/pages/driver/reservedDetail.vue b/h5/pages/driver/reservedDetail.vue
index e3e47b5..911f0f0 100644
--- a/h5/pages/driver/reservedDetail.vue
+++ b/h5/pages/driver/reservedDetail.vue
@@ -132,6 +132,7 @@
}
},
onLoad(option) {
+ uni.setStorageSync('ywinfo',{})
this.getDetail(option.id)
},
methods: {
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index b74792b..e29a05f 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -192,7 +192,8 @@
showDetail: false,
}
},
- onLoad(option) {
+ onLoad(option) {
+ uni.setStorageSync('ywinfo',{})
this.jobId = option.id
if (option.status && option.status == '1') {
// wx.config({
diff --git a/h5/pages/index/index.vue b/h5/pages/index/index.vue
index b308766..6e9fb01 100644
--- a/h5/pages/index/index.vue
+++ b/h5/pages/index/index.vue
@@ -43,15 +43,15 @@
onLoad() {
const ywinfo = uni.getStorageSync('ywinfo') || {}
if (ywinfo.ywid && ywinfo.type == 1) {
- setTimeout(() => {
- uni.removeStorageSync('ywinfo')
- }, 500)
+ uni.setStorageSync('ywinfo',{})
const yw = ywinfo.yw
- if (yw == 2) {
- uni.navigateTo({
- url: '/pages/appointmentDetails/appointmentDetails?id=' + ywinfo.ywid
- })
- }
+ setTimeout(() => {
+ if (yw == 2) {
+ uni.navigateTo({
+ url: '/pages/appointmentDetails/appointmentDetails?id=' + ywinfo.ywid
+ })
+ }
+ }, 100)
}
},
methods: {
diff --git a/h5/pages/staff/index.vue b/h5/pages/staff/index.vue
index aa7dd2b..196c350 100644
--- a/h5/pages/staff/index.vue
+++ b/h5/pages/staff/index.vue
@@ -130,23 +130,23 @@
onLoad() {
const ywinfo = uni.getStorageSync('ywinfo') || {}
if (ywinfo.ywid && ywinfo.type == 2) {
- setTimeout(() => {
- uni.removeStorageSync('ywinfo')
- }, 500)
+ uni.setStorageSync('ywinfo',{})
const yw = ywinfo.yw
- if (yw == 1 || yw == 6) {
- this.jump('/pages/staff/meetingDetail?id=' + ywinfo.ywid)
- } else if (yw == 2) {
- this.jump('/pages/staff/task/visitorApprove?id=' + ywinfo.ywid)
- } else if (yw == 3) {
- this.jump('/pages/staff/task/visitorReport?id=' + ywinfo.ywid)
- } else if (yw == 4) {
- this.jump('/pages/staff/task/vDangetAppr?id=' + ywinfo.ywid)
- } else if (yw == 7) {
- this.jump('/pages/staff/task/driver?id=' + ywinfo.ywid)
- } else if (yw == 5) {
- this.jump('/pages/staff/vehicle/index')
- }
+ setTimeout(() => {
+ if (yw == 1 || yw == 6) {
+ this.jump('/pages/staff/meetingDetail?id=' + ywinfo.ywid)
+ } else if (yw == 2) {
+ this.jump('/pages/staff/task/visitorApprove?id=' + ywinfo.ywid)
+ } else if (yw == 3) {
+ this.jump('/pages/staff/task/visitorReport?id=' + ywinfo.ywid)
+ } else if (yw == 4) {
+ this.jump('/pages/staff/task/vDangetAppr?id=' + ywinfo.ywid)
+ } else if (yw == 7) {
+ this.jump('/pages/staff/task/driver?id=' + ywinfo.ywid)
+ } else if (yw == 5) {
+ this.jump('/pages/staff/vehicle/index')
+ }
+ }, 100)
}
},
onShow() {
@@ -172,11 +172,11 @@
loginOut() {
logoutPost({
isH5: 1
- }).then(res => {
- this.$store.commit('empty')
- setTimeout(() => {
- window.location.href = app_url
- }, 300)
+ }).then(res => {
+ this.$store.commit('empty')
+ setTimeout(() => {
+ window.location.href = app_url
+ }, 300)
})
},
getTaskInfo() {
diff --git a/h5/pages/staff/meetingCalendar.vue b/h5/pages/staff/meetingCalendar.vue
index dab5dd0..d4edeaf 100644
--- a/h5/pages/staff/meetingCalendar.vue
+++ b/h5/pages/staff/meetingCalendar.vue
@@ -229,18 +229,15 @@
},
onLoad() {
this.currentDate = dayja().format('YYYY-MM-DD')
- this.initData()
- this.getRoomList()
- this.tabClick('0')
+ this.getRoomList()
},
onShow() {
// this.tabClick('0')
-
+ this.initData()
+ this.tabClick(this.activeTab)
},
onReachBottom() {
- const { activeTab, total, myMeetingList, recordList } = this
- console.log(total);
- console.log(recordList);
+ const { activeTab, total, myMeetingList, recordList } = this
if (activeTab == '0') {
if(total <= myMeetingList.length) return this.showToast('鏆傛棤鏇村鏁版嵁')
this.myPage = this.myPage + 1
diff --git a/h5/pages/staff/meetingDetail.vue b/h5/pages/staff/meetingDetail.vue
index 95017b4..e3565d7 100644
--- a/h5/pages/staff/meetingDetail.vue
+++ b/h5/pages/staff/meetingDetail.vue
@@ -75,13 +75,13 @@
</view>
</view>
<view class="empty empty2"></view>
- <view class="main_footer" v-if="detail.meetingStatus == '1'">
+ <view class="main_footer" v-if="detail.meetingStatus == '1' && (detail.isAdmin == 1 || detail.showHandle)">
<view class="btn" @click="openCancel">鎾ゅ洖</view>
<view class="btn edit" @click="handleEdit">淇敼</view>
<view class="btn agree" @click="handleStart">寮�濮嬩細璁�</view>
</view>
<view class="main_footer" v-if="detail.meetingStatus == '2' && detail.isAdmin == 1">
- <view class="btn agree" @click="openClose">缁撴潫</view>
+ <view class="btn" @click="openClose">缁撴潫浼氳</view>
</view>
<!-- 鎾ゅ洖 -->
<u-popup
@@ -147,6 +147,7 @@
}
},
onLoad(option) {
+ uni.setStorageSync('ywinfo',{})
this.id = option.id
this.getDetail()
},
@@ -155,6 +156,10 @@
const { id } = this
meetingDetail({ id }).then(res => {
this.detail = res.data
+ const userInfo = uni.getStorageSync('userInfo') || {}
+ // const index = this.detail.userResponseList.findIndex(i => i.id == userInfo.id)
+
+ this.$set(this.detail, 'showHandle', this.detail.bookingUserId == userInfo.id)
})
},
openCancel() {
diff --git a/h5/pages/staff/meetingSel.vue b/h5/pages/staff/meetingSel.vue
index 2f708cc..59953cd 100644
--- a/h5/pages/staff/meetingSel.vue
+++ b/h5/pages/staff/meetingSel.vue
@@ -150,7 +150,8 @@
} = this
userPagePost({
model: {
- ...param
+ ...param,
+ workStatus: 0
},
...pagination,
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index a275108..269cff5 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -56,9 +56,14 @@
</view>
<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in submitFileList" :key="i">
<u-icon class="close" size="20" name="close-circle-fill" color="red" @click="fileDel(i)"></u-icon>
- <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <video v-if="item.type == 1"
- :src="item.fileurlFull" :controls="false" :show-center-play-btn="false"></video>
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <!-- <video v-if="item.type == 1"
+ :src="item.fileurlFull" :controls="false" :show-center-play-btn="false"></video> -->
+ <view v-if="item.type == 1" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
</view>
@@ -252,7 +257,9 @@
this.isShowTime = false
},
initConfig() {
- deptListPost({queryHiddenDanger: 1}).then(res => {
+ deptListPost({
+ queryHiddenDanger: 1
+ }).then(res => {
this.deptList = [res.data]
})
DangerConfigType({
@@ -423,7 +430,9 @@
display: flex;
flex-wrap: wrap;
}
-
+ textarea{
+ width: 100%;
+ }
.adduser_list_item_ipt1_upload {
margin-top: 24rpx;
width: 156rpx;
@@ -438,9 +447,11 @@
align-items: center;
justify-content: center;
position: relative;
- &:nth-of-type(4n){
- margin-right: 0;
+
+ &:nth-of-type(4n) {
+ margin-right: 0;
}
+
.close {
position: absolute;
right: -20rpx;
@@ -448,6 +459,23 @@
z-index: 9999;
}
+ .video_wrap {
+ position: relative;
+ border: 1px solid;
+ width: 156rpx;
+ height: 156rpx;
+ border-radius: 4rpx;
+
+ .play {
+ width: 60rpx !important;
+ height: 60rpx !important;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+
image {
width: 100%;
height: 100%;
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index 9726ae1..35e11a1 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -156,6 +156,7 @@
}
},
onLoad(option) {
+ uni.setStorageSync('ywinfo',{})
this.type = option.objType
this.infoStatus = option.info
this.getDetail(option.id)
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index ba83dc6..b29b5df 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -360,7 +360,7 @@
}
if (objType === 2) {
uni.navigateTo({
- url: `/pages/staff/vehicle/sendACarDetail?id=${objId}&appr=1&info=${info}`
+ url: `/pages/staff/vehicle/sendACarDetail?id=${objId}&info=${info}`
})
} else if (objType === 1) {
uni.navigateTo({
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 3138b6b..c4b2238 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -13,8 +13,8 @@
<image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
class="img" />
<view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
- <video :id="'id' + i" :show-center-play-btn="false" :src="item.fileurlFull" muted class="video"
- :controls="false" />
+ <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" autoplay muted />
<image src="@/static/play.png" class="play" mode=""></image>
</view>
</view>
@@ -44,7 +44,13 @@
<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i">
<image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
mode="widthFix"></image>
- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
+ :enable-progress-gesture="false" autoplay muted></video> -->
+ <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
</view>
@@ -54,7 +60,13 @@
<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i">
<image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
mode="widthFix"></image>
- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false" class="video"
+ :enable-progress-gesture="false" autoplay muted></video> -->
+ <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
</view>
@@ -137,7 +149,13 @@
@click="fileDel('dealBeforeFileList', i)"></u-icon>
<image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
mode="widthFix"></image>
- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" show-center-play-btn="false" :controls="false" class="video"
+ :enable-progress-gesture="false" autoplay muted></video> -->
+ <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
<view class="label">閫�鍥炶鏄�</view>
@@ -177,7 +195,13 @@
<u-icon class="close" size="20" name="close-circle-fill" color="red"
@click="fileDel('dealBeforeFileList', i)"></u-icon>
<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
+ :enable-progress-gesture="false" muted></video> -->
+ <view v-if="item.type == 1" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
<view class="label">
@@ -193,7 +217,12 @@
<u-icon class="close" size="20" name="close-circle-fill" color="red"
@click="fileDel('dealAfterFileList', i)"></u-icon>
<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false"></video> -->
+ <view v-if="item.type == 1" class="video_wrap">
+ <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
<view class="label">鏁存敼璇存槑</view>
@@ -266,9 +295,9 @@
@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
<!-- -->
- <view v-if="videoPlay" class="video_app" >
- <video controls autoplay muted x5-video-player-type="h5"
- x5-video-player-fullscreen="true" id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video>
+ <view v-if="videoPlay" class="video_app">
+ <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
+ :src="videoUrl" @fullscreenchange="screenChange"></video>
<view class="bg" @click="closeVideo"></view>
</view>
</view>
@@ -348,9 +377,9 @@
videoUrl: ''
};
},
- onLoad(op) {
+ onLoad(op) {
+ uni.setStorageSync('ywinfo',{})
this.id = op.id;
- this.type = op.objType;
this.getDetail();
},
methods: {
@@ -365,10 +394,10 @@
//閫�鍑哄叏灞�
this.videoPlay = false; // 闅愯棌鎾斁鐩掑瓙
}
- },
- closeVideo() {
- this.videoPlay = false
- this.videoContext = null
+ },
+ closeVideo() {
+ this.videoPlay = false
+ this.videoContext = null
},
videoClick(item, i) {
this.videoPlay = true;
@@ -1068,22 +1097,6 @@
}
}
- .video_wrap {
- position: relative;
- border: 1px solid;
- width: 156rpx;
- height: 156rpx;
- border-radius: 4rpx;
-
- .play {
- width: 60rpx;
- height: 60rpx;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
- }
.img {
width: 100%;
@@ -1263,7 +1276,8 @@
position: absolute;
right: -20rpx;
top: -20rpx;
- z-index: 9999;
+ z-index: 999999999999;
+ color: #fff;
}
image {
@@ -1285,7 +1299,22 @@
margin: 0 -30rpx;
}
}
+ .video_wrap {
+ position: relative;
+ border: 1px solid;
+ width: 156rpx;
+ height: 156rpx;
+ border-radius: 4rpx;
+ .play {
+ width: 60rpx !important;
+ height: 60rpx !important;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
.sel_upload_wrap {
width: 100%;
border-top: 1px solid #333333;
@@ -1384,22 +1413,24 @@
}
}
- .video_app {
+ .video_app {
overflow: hidden;
position: fixed;
left: 0;
top: 0;
width: 100vw;
- height: 100vh;
- display: flex;
+ height: 100vh;
+ display: flex;
align-items: center;
- .bg{
- background-color: rgba(0,0,0,.6);
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: -1;
+ z-index: 9990;
+ .bg {
+ background-color: rgba(0, 0, 0, .6);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
}
+
video {
width: 100%;
height: 42vh;
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index da9ddc3..6a5f0e6 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -1,12 +1,12 @@
<template>
<view class="main_app">
<view class="status_wrap">
- <view class="name">{{ info.name }}鎻愪氦鐨剓{ cateList[type].name }}</view>
+ <view class="name">{{ info.name }}鎻愪氦鐨勮瀹㈢敵璇�</view>
<view class="desc" :class="{
gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
- }">{{ infoStatus }}</view>
+ }">{{ statusMap[info.businessStatus] }}</view>
<view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
- statusMap[info.businessStatus]
+ info.info
}}</view>
<image v-if="info.businessStatus == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img">
</image>
@@ -170,10 +170,9 @@
}
}
},
- onLoad(op) {
+ onLoad(op) {
+ uni.setStorageSync('ywinfo',{})
this.id = op.id
- this.type = op.objType
- this.infoStatus = op.info
this.getDetail()
},
methods: {
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index b51016a..d8f611e 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -1,13 +1,13 @@
<template>
<view class="main_app">
<view class="status_wrap">
- <view class="name">{{ info.createMemberName }}鎻愪氦鐨剓{ cateList[type].name }}</view>
+ <view class="name">{{ info.createMemberName }}鎻愪氦鐨勮瀹㈡姤澶�</view>
<view
class="desc"
:class="{
gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
}"
- >{{ infoStatus }}</view
+ >{{ info.info }}</view
>
<view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
statusMap[info.businessStatus]
@@ -150,9 +150,8 @@
}
},
onLoad(op) {
+ uni.setStorageSync('ywinfo',{})
this.id = op.id
- this.type = op.objType
- this.infoStatus = op.info
this.getDetail()
},
methods: {
diff --git a/h5/pages/staff/vehicle/index.vue b/h5/pages/staff/vehicle/index.vue
index 60124ef..4fe0ceb 100644
--- a/h5/pages/staff/vehicle/index.vue
+++ b/h5/pages/staff/vehicle/index.vue
@@ -50,7 +50,10 @@
return {
param: {}
}
- }
+ },
+ onLoad() {
+ uni.setStorageSync('ywinfo',{})
+ }
}
</script>
diff --git a/h5/pages/staff/vehicle/sendACarDetail.vue b/h5/pages/staff/vehicle/sendACarDetail.vue
index 6e3e649..27ba6b9 100644
--- a/h5/pages/staff/vehicle/sendACarDetail.vue
+++ b/h5/pages/staff/vehicle/sendACarDetail.vue
@@ -161,7 +161,6 @@
userInfo: uni.getStorageSync('userInfo') || {},
id: '',
appr: '',
- infoStatus: '',
info: {},
param: {
status: ''
@@ -179,8 +178,7 @@
},
onLoad(option) {
this.id = option.id
- this.appr = option.appr || ''
- this.infoStatus = option.info
+ this.appr = 1
this.getDetail()
},
methods: {
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index c825b10..9fe4385 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -258,12 +258,15 @@
isFace: 0
},
success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
+ let res = JSON.parse(uploadFileRes.data)
+ if(res.code !== 200){
+ return this.showToast(res.message)
+ }
this.visitorData.faceImg = res.data.halfPath
this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
},
- fail(err) {
- alert('澶辫触')
+ fail: (err) => {
+ // this.showToast(err)
},
complete() {
uni.hideLoading();
diff --git a/h5/pages/waybill/home.vue b/h5/pages/waybill/home.vue
index d76ff1e..dc5d12e 100644
--- a/h5/pages/waybill/home.vue
+++ b/h5/pages/waybill/home.vue
@@ -13,6 +13,7 @@
v-model="form.code"
placeholder="璇疯緭鍏ラ獙璇佺爜"
placeholder-class="placeholder9"
+ :maxlength="6"
type="number"
/>
<text class="captcha" v-if="countDown == 0" @click="initCaptcha"
diff --git a/h5/pages/waybill/list.vue b/h5/pages/waybill/list.vue
index 4998a0b..70dd191 100644
--- a/h5/pages/waybill/list.vue
+++ b/h5/pages/waybill/list.vue
@@ -98,9 +98,9 @@
</view>
</u-popup>
<!-- -->
- <u-datetime-picker :show="showStarttime" v-model="form.starttime" mode="date" @confirm="confirmStart"
+ <u-datetime-picker :show="showStarttime" v-model="defaultDate" mode="date" @confirm="confirmStart"
@cancel="showStarttime = false"></u-datetime-picker>
- <u-datetime-picker :show="showEndtime" v-model="form.endtime" mode="date" @confirm="confirmEnd"
+ <u-datetime-picker :show="showEndtime" v-model="defaultDate2" mode="date" :minDate="defaultDate" @confirm="confirmEnd"
@cancel="showEndtime = false"></u-datetime-picker>
<u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
@@ -122,7 +122,9 @@
showModal: false,
showStarttime: false,
- showEndtime: false,
+ showEndtime: false,
+ defaultDate: Number(new Date()),
+ defaultDate2: Number(new Date()),
showPri: false,
form: {},
provinceList: [
@@ -171,7 +173,9 @@
confirmStart(e) {
this.$nextTick(() => {
this.$set(this.form, 'ncCreateDateTimeStart', dayjs(e.value).format('YYYY-MM-DD'))
- })
+ })
+ this.defaultDate2 = Number(new Date())
+ this.$set(this.form, 'ncCreateDateTimeEnd', '')
this.showStarttime = false
},
confirmEnd(e) {
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index 159aea2..d1a3280 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -129,8 +129,10 @@
</div>
</div>
<div class="center_box_bg">
- <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
- <div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal">
+ <img v-if="showWorkModal" class="point_icon" :style="{ left: workModalParam.left + 'px', top: workModalParam.top + 'px' }"
+ src="@/assets/ani/apngb-animated.png" alt="">
+ <div class="work_modal" :style="{ left: workModalParam.left2 + 'px', top: workModalParam.top + 'px' }"
+ @click="showWorkModal = false" v-if="showWorkModal">
<img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt="">
<div class="head">
<div class="left">
@@ -160,13 +162,12 @@
<div class="val">{{ workModalParam.finishTimeStr }}</div>
</div>
</div>
+ <div class="modal_bg" v-if="showWorkModal" @click="showWorkModal = false"></div>
</div>
<div class="center_box_two">
- <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 v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos">
+ <Videos :href="data4.videoPluginUrl" :indexCodes="data4.videoIndexCodes" />
+ </div> -->
<div class="list">
<div class="line header">
<div>鏈堝彴鍚嶇О</div>
@@ -306,7 +307,7 @@
dayjs.extend(duration)
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
-import Video from './videoUrl/Video.vue'
+import Videos from './videoUrl/Videos.vue'
import {
cnplatformGroupFinish,
cnplatformDuration,
@@ -569,7 +570,6 @@
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 })
- console.log('temp', temp)
const option = {
color: colors,
@@ -751,6 +751,8 @@
i.finishTime = dayjs(i.finishTime).format('HH:mm')
return i
})
+ console.log('dataList5', dataList5.value)
+
})
}
@@ -776,27 +778,26 @@
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 },
+const pointList = [
+ { left: 230, top: 190, left2: 290, top2: 190, name: '鍑哄簱鏈堝彴3' },
+ { left: 265, top: 180, left2: 325, top2: 190, name: '鍑哄簱鏈堝彴2' },
+ { left: 300, top: 170, left2: 360, top2: 190, name: '鍑哄簱鏈堝彴1' },
+ { left: 335, top: 160, left2: 390, top2: 190, name: '鏁存墭鐩樺嚭搴�2' },
+ { left: 370, top: 150, left2: 430, top2: 190, name: '鏁存墭鐩樺嚭搴�1' },
- { left: 530, top: 50 },
- { left: 550, top: 65 },
- { left: 570, top: 75 },
- { left: 590, top: 75 },
- { left: 600, top: 80 },
- { left: 850, top: 60 },
+ { left: 530, top: 50, left2: 590, top2: 190, name: '鍏ュ簱鏈堝彴2' },
+ { left: 550, top: 65, left2: 610, top2: 190, name: '鍏ュ簱鏈堝彴1' },
+ { left: 570, top: 75, left2: 630, top2: 190, name: '鍏ュ簱鏈堝彴3' },
+ { left: 590, top: 75, left2: 650, top2: 190, name: '1095鏁存墭鐩樺叆搴�' },
+ { left: 600, top: 80, left2: 660, top2: 190, name: '1099鏁存墭鐩樺叆搴�' },
+ { left: 850, top: 60, left2: 520, top2: 190, name: '甯傚叕鍙告湀鍙�' },
-])
+]
const platformClick = (val) => {
- workModalParam.value = val
- console.log(val)
-
- showWorkModal.value = !showWorkModal.value
+ const index = pointList.findIndex(i => i.name == val.platformName)
+ workModalParam.value = { ...val, ...pointList[index], index: pointList }
+ showWorkModal.value = true
}
const loopFn2 = () => {
var newSwiper1 = new Swiper('.one-swiper', {
@@ -1098,6 +1099,7 @@
justify-content: center;
align-items: center;
position: relative;
+
.point_icon {
position: absolute;
left: 850px;
@@ -1121,8 +1123,10 @@
.work_modal {
width: 314px;
height: 180px;
- position: relative;
+ position: absolute;
padding: 22px 20px;
+ left: 850px;
+ top: 60px;
.head {
display: flex;
@@ -1181,14 +1185,22 @@
}
}
+ .modal_bg{
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100vw;
+ height: 100vh;
+ /* background-color: rgba(0,0,0,.1); */
+ }
}
.center_box_two {
width: 100%;
-
.videos {
width: 100%;
+ height: 150px;
display: flex;
margin-bottom: 15px;
@@ -1209,7 +1221,8 @@
height: 210px;
overflow-y: auto;
background: rgba(0, 86, 255, 0.05);
- backdrop-filter: blur(5px);
+ backdrop-filter: blur(5px);
+
.two-swiper {
height: 180px;
overflow: hidden;
diff --git a/screen/src/views/videoUrl/Videos.vue b/screen/src/views/videoUrl/Videos.vue
new file mode 100644
index 0000000..0f1719a
--- /dev/null
+++ b/screen/src/views/videoUrl/Videos.vue
@@ -0,0 +1,236 @@
+<template>
+ <div class="video_app">
+ <div class="player_bg" ref="videoRef" style="width: 100%;height: 100%;" id="playWnd"> </div>
+ </div>
+ <!-- <img style="width: 34px;margin-bottom: 16px;" src="../../assets/images/SecurityControl/ic_unable@2x.png" > -->
+</template>
+
+<script setup>
+import { defineProps, ref, onMounted, onUnmounted, watch } from 'vue'
+const props = defineProps({
+ indexCodes: Array,
+ href: String,
+})
+const templateA = `
+ <div style="width:100%;height: 100%;display: flex;justify-content: center;align-items: center;flex-direction: column;">
+ <div style="font-weight: 500;font-size: 15px;color: #CCCCCC;margin-bottom: 4px;">鏃犳硶鎾斁鐩戞帶鐢婚潰锛�</div>
+ <div style="font-weight: 500;font-size: 15px;color: #CCCCCC;margin-bottom: 20px;">鐐瑰嚮涓嬭浇骞跺畨瑁呰灞忔挱鏀炬彃浠�</div>
+ <a href="${props.href}" target="_blank" style="font-weight: 500;font-size: 15px;color: #01D9FE;">鐐瑰嚮涓嬭浇</a>
+ </div>
+`
+
+
+const width = ref(0)
+const height = ref(0)
+const videoRef = ref(null)
+
+onMounted(() => {
+ const rect = videoRef.value.getBoundingClientRect()
+ width.value = rect.width
+ height.value = rect.height
+ console.log('rect', rect);
+
+ initPlugin()
+ window.addEventListener('resize', function () { // 鎵ц
+ if (oWebControl.value) {
+ const rect = videoRef.value.getBoundingClientRect()
+ width.value = rect.width
+ height.value = rect.height
+ oWebControl.value.JS_Resize($('#playWnd').width(), $('#playWnd').height())
+ }
+ })
+})
+onUnmounted(() => {
+ destroyed()
+})
+const oWebControl = ref(null)
+const initCount = ref()
+const pubKey = ref('')
+
+watch(
+ () => props.indexCodes,
+ (newValue, oldValue) => {
+ console.log('鐖剁粍浠朵紶鍊煎彉鍖栵細', newValue)
+ videoPlayFor()
+ }
+)
+
+const initPlugin = () => {
+ oWebControl.value = new WebControl({
+ szPluginContainer: "playWnd", // 鎸囧畾瀹瑰櫒id
+ iServicePortStart: 15900, // 鎸囧畾璧锋绔彛鍙凤紝寤鸿浣跨敤璇ュ��
+ iServicePortEnd: 15900,
+ szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // 鐢ㄤ簬IE10浣跨敤ActiveX鐨刢lsid
+ cbConnectSuccess: function () {
+ // 鍒涘缓WebControl瀹炰緥鎴愬姛
+ console.log('1--鍒涘缓WebControl瀹炰緥鎴愬姛')
+
+ oWebControl.value.JS_StartService("window", { // WebControl瀹炰緥鍒涘缓鎴愬姛鍚庨渶瑕佸惎鍔ㄦ湇鍔�
+ dllPath: "./VideoPluginConnect.dll" // 鍊�"./VideoPluginConnect.dll"鍐欐
+ }).then(function () {
+ oWebControl.value.JS_SetWindowControlCallback({ // 璁剧疆娑堟伅鍥炶皟
+ cbIntegrationCallBack: cbIntegrationCallBack
+ })// 鍚姩鎻掍欢鏈嶅姟鎴愬姛
+ console.log('----',width.value, height.value);
+
+ oWebControl.value.JS_CreateWnd("playWnd", width.value, height.value).then(function () { //JS_CreateWnd鍒涘缓瑙嗛鎾斁绐楀彛锛屽楂樺彲璁惧畾锛宐oxWidth, boxHeight瀹瑰櫒
+ // oWebControl.value.JS_CreateWnd("playWnd").then(function () { //JS_CreateWnd鍒涘缓瑙嗛鎾斁绐楀彛锛屽楂樺彲璁惧畾锛宐oxWidth, boxHeight瀹瑰櫒
+ init() // 鍒涘缓鎾斁瀹炰緥鎴愬姛鍚庡垵濮嬪寲
+ })
+ }, function () { // 鍚姩鎻掍欢鏈嶅姟澶辫触
+ })
+ },
+ cbConnectError: function () { // 鍒涘缓WebControl瀹炰緥澶辫触
+ console.log('鍒涘缓WebControl瀹炰緥澶辫触')
+ oWebControl.value = null
+ $("#playWnd").html("鎻掍欢鏈惎鍔紝姝e湪灏濊瘯鍚姩锛岃绋嶅��...")
+ WebControl.JS_WakeUp("VideoWebPlugin://") // 绋嬪簭鏈惎鍔ㄦ椂鎵цerror鍑芥暟锛岄噰鐢╳akeup鏉ュ惎鍔ㄧ▼搴�
+ initCount.value++
+ if (initCount.value < 3) {
+ setTimeout(function () {
+ initPlugin()
+ }, 3000)
+ } else {
+ $("#playWnd").html(templateA)
+ }
+ },
+ cbConnectClose: function (bNormalClose) {
+ // 寮傚父鏂紑锛歜NormalClose = false
+ // JS_Disconnect姝e父鏂紑锛歜NormalClose = true
+ console.log('寮傚父鏂紑锛歜NormalClose')
+ oWebControl.value = null
+ $("#playWnd").html("鎻掍欢鏈惎鍔紝姝e湪灏濊瘯鍚姩锛岃绋嶅��...")
+ WebControl.JS_WakeUp("VideoWebPlugin://")
+ initCount.value++
+ if (initCount.value < 3) {
+ setTimeout(function () {
+ initPlugin()
+ }, 3000)
+ } else {
+ $("#playWnd").html(templateA)
+ }
+ }
+ })
+}
+// 鍒濆鍖�
+const init = () => {
+ getPubKey(function () {
+ ////////////////////////////////// 璇疯嚜琛屼慨鏀逛互涓嬪彉閲忓�� ////////////////////////////////////
+ let appkey = "23154099" //缁煎悎瀹夐槻绠$悊骞冲彴鎻愪緵鐨刟ppkey锛屽繀濉�
+ // let secret = '88wFsg3xfn7o8QMsWEO2' //缁煎悎瀹夐槻绠$悊骞冲彴鎻愪緵鐨剆ecret锛屽繀濉�
+ let secret = setEncrypt("88wFsg3xfn7o8QMsWEO2") //缁煎悎瀹夐槻绠$悊骞冲彴鎻愪緵鐨剆ecret锛屽繀濉�
+ let ip = "10.50.250.253" //缁煎悎瀹夐槻绠$悊骞冲彴IP鍦板潃锛屽繀濉�
+ let playMode = 0 //鍒濆鎾斁妯″紡锛�0-棰勮(瀹炴椂娴�)锛�1-鍥炴斁(瑙嗛)
+ let port = 443 //缁煎悎瀹夐槻绠$悊骞冲彴绔彛锛岃嫢鍚敤HTTPS鍗忚锛岄粯璁�443
+ let snapDir = "D:\\SnapDir" //鎶撳浘瀛樺偍璺緞
+ let videoDir = "D:\\VideoDir" //绱ф�ュ綍鍍忔垨褰曞儚鍓緫瀛樺偍璺緞
+ let layout = "1x4" //playMode鎸囧畾妯″紡鐨勫竷灞�
+ let enableHTTPS = 1 //鏄惁鍚敤HTTPS鍗忚涓庣患鍚堝畨闃茬鐞嗗钩鍙颁氦浜掞紝杩欓噷鎬绘槸濉�1
+ let encryptedFields = 'secret' //鍔犲瘑瀛楁锛岄粯璁ゅ姞瀵嗛鍩熶负secret
+ let showToolbar = 1 //鏄惁鏄剧ず宸ュ叿鏍忥紝0-涓嶆樉绀猴紝闈�0-鏄剧ず
+ let showSmart = 0 //鏄惁鏄剧ず鏅鸿兘淇℃伅锛堝閰嶇疆绉诲姩渚︽祴鍚庣敾闈笂鐨勭嚎妗嗭級锛�0-涓嶆樉绀猴紝闈�0-鏄剧ず
+ // let buttonIDs = "0,16,256,257,258,259,260,513,514,515,516,517,768" //鑷畾涔夊伐鍏锋潯鎸夐挳
+ oWebControl.value.JS_RequestInterface({
+ funcName: "init",
+ argument: JSON.stringify({
+ appkey: appkey, //API缃戝叧鎻愪緵鐨刟ppkey
+ secret: secret, //API缃戝叧鎻愪緵鐨剆ecret
+ ip: ip, //API缃戝叧IP鍦板潃
+ playMode: playMode, //鎾斁妯″紡锛堝喅瀹氭樉绀洪瑙堣繕鏄洖鏀剧晫闈級
+ port: port, //绔彛
+ snapDir: snapDir, //鎶撳浘瀛樺偍璺緞
+ videoDir: videoDir, //绱ф�ュ綍鍍忔垨褰曞儚鍓緫瀛樺偍璺緞
+ layout: layout, //甯冨眬
+ enableHTTPS: enableHTTPS, //鏄惁鍚敤HTTPS鍗忚
+ encryptedFields: encryptedFields, //鍔犲瘑瀛楁
+ showToolbar: showToolbar, //鏄惁鏄剧ず宸ュ叿鏍�
+ showSmart: showSmart, //鏄惁鏄剧ず鏅鸿兘淇℃伅
+ buttonIDs: buttonIDs //鑷畾涔夊伐鍏锋潯鎸夐挳
+ })
+ }).then(function (oData) {
+ console.log('鍒濆鍖栨垚鍔�')
+ videoPlayFor()
+ // oWebControl.value.JS_Resize(that.boxWidth, that.boxHeight) // 鍒濆鍖栧悗resize涓�娆★紝瑙勯伩firefox涓嬮娆℃樉绀虹獥鍙e悗鎻掍欢绐楀彛鏈笌DIV绐楀彛閲嶅悎闂
+ })
+ })
+}
+const videoPlayFor = () => {
+ const indexCodes = props.indexCodes
+ indexCodes.forEach(item => {
+ videoPlay(item)
+ })
+}
+const videoPlay = (indexCode) => {
+ oWebControl.value.JS_RequestInterface({
+ funcName: "startPreview",
+ argument: JSON.stringify({
+ cameraIndexCode: indexCode, //鐩戞帶鐐圭紪鍙�
+ streamMode: 0, //涓诲瓙鐮佹祦鏍囪瘑锛�0-涓荤爜娴侊紝1-瀛愮爜娴�
+ transMode: 1, //浼犺緭鍗忚锛�0-UDP锛�1-TCP
+ gpuMode: 0, //鏄惁鍚敤GPU纭В锛�0-涓嶅惎鐢紝1-鍚敤
+ wndId: -1 //鎾斁绐楀彛搴忓彿锛堝湪2x2浠ヤ笂甯冨眬涓嬪彲鎸囧畾鎾斁绐楀彛锛�
+ })
+ }).then((oData) => {
+ if (oData.responseMsg.code === 1) {
+ console.log('鎾斁鎴愬姛', oData)
+ }
+ }, err => {
+ console.log('err', err)
+
+ })
+}
+// 閿�姣�
+const destroyed = () => {
+ if (oWebControl.value) {
+ oWebControl.value.JS_HideWnd() // 鍏堣绐楀彛闅愯棌锛岃閬挎彃浠剁獥鍙f粸鍚庝簬娴忚鍣ㄦ秷澶遍棶棰�
+ oWebControl.value.JS_Disconnect().then(function () { }, function () { })
+ }
+}
+
+function fileDown() {
+ window.open('./videoUrl/VideoWebPlugin.exe')
+}
+// 娑堟伅鍥炶皟
+const cbIntegrationCallBack = (oData) => {
+ let response = oData.responseMsg
+ // response.type=1 閫変腑绐楀彛娑堟伅 type=2 鎾斁娑堟伅
+}
+// 鐩戞帶
+
+
+
+
+
+// 鑾峰彇鍏挜
+function getPubKey(callback) {
+ oWebControl.value.JS_RequestInterface({
+ funcName: 'getRSAPubKey',
+ argument: JSON.stringify({
+ keyLength: 1024,
+ }),
+ }).then((oData) => {
+ if (oData.responseMsg.data) {
+ pubKey.value = oData.responseMsg.data
+ callback()
+ }
+ })
+}
+
+// RSA鍔犲瘑
+function setEncrypt(value) {
+ let that = this
+ let encrypt = new JSEncrypt()
+ encrypt.setPublicKey(pubKey.value)
+ return encrypt.encrypt(value)
+}
+
+
+</script>
+
+<style lang="scss" scoped>
+.video_app {
+ width: 100%;
+ height: 100%;
+
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3