From a8c03746e6bd8ac1d46dc48c1b10bceff543664f Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期二, 10 十二月 2024 20:16:12 +0800 Subject: [PATCH] ll --- admin/src/components/business/operaVisitsWindow.vue | 3 h5/pages/staff/meetingCalendar.vue | 4 screen/src/assets/images/task/bg@2x.png | 0 h5/pages/staff/vehicle/sendACar.vue | 4 h5_meeting/utils/config.js | 4 screen/src/views/SecurityControl.vue | 41 h5/store/index.js | 6 h5/pages/index/index.vue | 18 admin/src/views/vehicle/cars.vue | 6 h5/api/staff.js | 6 h5/static/ic_cancel.png | 0 h5/pages/staff/vehicle/apply.vue | 9 h5_meeting/manifest.json | 4 admin/src/components/common/RichEditor.vue | 2 h5/pages/staffLogin/login.vue | 35 h5/utils/config.js | 6 h5/pages/driver/index.vue | 758 +++++++++++---------- h5/pages/login/login.vue | 82 +- h5/static/staff/shenfen_bg@2x.png | 0 h5/pages/staff/index.vue | 583 ++++++++-------- screen/src/assets/images/SecurityControl/bg@2x.png | 0 screen/src/router/index.js | 5 h5/pages/userinfo/userinfo.vue | 3 screen/src/views/TaskEfficiency.vue | 12 h5/pages/staff/task/index.vue | 1 h5/pages/staff/snapshot.vue | 90 +- h5/static/play.png | 0 h5/App.vue | 9 h5/pages/staff/vehicle/sendACarDetail.vue | 233 +++--- h5/pages/staff/task/vDangetAppr.vue | 105 ++ screen/src/assets/images/task/title@2x.png | 0 31 files changed, 1,089 insertions(+), 940 deletions(-) diff --git a/admin/src/components/business/operaVisitsWindow.vue b/admin/src/components/business/operaVisitsWindow.vue index 28d9454..b5bdf07 100644 --- a/admin/src/components/business/operaVisitsWindow.vue +++ b/admin/src/components/business/operaVisitsWindow.vue @@ -148,7 +148,8 @@ VisitReason: [], memberList: [], uploadData: { - folder: 'member' + folder: 'member', + isFace: 0 }, startPickerOptions: { disabledDate (time) { diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue index d144c66..81249a5 100644 --- a/admin/src/components/common/RichEditor.vue +++ b/admin/src/components/common/RichEditor.vue @@ -1,7 +1,7 @@ <template> <div :style="styleEditor"> <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" /> - <Editor style="max-height: 300px;min-height: 100px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode" + <Editor style="min-height: 80px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode" @onCreated="onCreated" @onChange="onChange" /> </div> </template> diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue index cddc4f7..efd2bd9 100644 --- a/admin/src/views/vehicle/cars.vue +++ b/admin/src/views/vehicle/cars.vue @@ -168,9 +168,9 @@ this.getCate() }, methods: { - handleSelectionChange(e) { - this.searchForm.ids = e.map(i => i.id).join(',') - }, + // handleSelectionChange(e) { + // this.searchForm.ids = e.map(i => i.id).join(',') + // }, changeSel(e) { console.log(e) if (e && e.length == 1) { diff --git a/h5/App.vue b/h5/App.vue index c567d31..04a031d 100644 --- a/h5/App.vue +++ b/h5/App.vue @@ -1,8 +1,13 @@ <script> -import { wxAuthorize, refreshToken } from '@/api' +import { wxAuthorize, refreshToken, app_url } from '@/api' export default { onLaunch: function () { - + window.addEventListener("popstate", (event) => { + const path = this.$route.fullPath + if(path == '/pages/login/login' || path == '/'){ + window.location.href = app_url + } + }) }, onShow: function () { console.log('App Show') diff --git a/h5/api/staff.js b/h5/api/staff.js index ea64d24..f00cf4a 100644 --- a/h5/api/staff.js +++ b/h5/api/staff.js @@ -14,6 +14,12 @@ method: 'get' }) } +export const saveHkUserOpenid = () => { + return http({ + url: 'visitsAdmin/cloudService/business/hksync/saveHkUserOpenid', + method: 'post' + }) +} // 鍒锋柊token export const refreshToken = () => { return http({ diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue index e79d32a..56e65be 100644 --- a/h5/pages/driver/index.vue +++ b/h5/pages/driver/index.vue @@ -1,358 +1,402 @@ -<template> - <view class="main_app"> - <view class="title_wrap"> - <view class="name">{{ driverInfo.realname }}锛屾杩庣櫥褰曪綖</view> - <view class="btn" @click="loginOut">閫�鍑虹櫥褰�</view> - </view> - <!-- --> - <view class="banner_wrap"> - <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view> - <view class="h2">鐗╂祦杞︿笓鍖�</view> - <image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image> - </view> - <!-- --> - <view v-if="taskList && taskList.length > 0" class="task_list"> - <swiper circular class="task_swiper"> - <swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)"> - <view class="item"> - <view class="head"> - <view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum}}</view> - <view class="status"> - <view class="text" v-if="item.status == 0">璇风‘璁や换鍔�</view> - <view class="text" v-if="item.status == 1">璇蜂簬{{item.arriveDate.slice(5,11)}}鐜板満绛惧埌</view> - <view class="text" v-if="item.status == 2">鍓嶆柟鎺掗槦锛歿{item.lineUpNum}}杈�</view> - <view class="text" v-if="item.status == 3">璇峰叆鍥繘鍏ョ瓑寰呭尯</view> - <view class="text" v-if="item.status == 4">璇峰叆鍥仠闈爗{item.platformName}}浣滀笟</view> - <view class="text" v-if="item.status == 5">{{item.platformName}}浣滀笟涓�</view> - <view class="text" v-if="item.status == 6">浣滀笟宸插畬鎴�</view> - <view class="text" v-if="item.status == 7">杞Щ涓�</view> - <view class="text red" v-if="item.status == 8">寮傚父鎸傝捣</view> - <view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view> - <view class="time" v-if="item.finishTimeStr && item.status == 5">棰勮瀹屾垚鏃堕棿锛歿{ item.finishTimeStr }}</view> - </view> - </view> - <view class="content"> - <view class="info"> - <view class="plate"> - <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image> - <text>{{ item.carCodeFront }}</text> - </view> - <view class="plate"> - <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image> - <text>{{ item.totalNum }}涓囨敮</text> - </view> - </view> - <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> - <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> - </view> - </view> - </view> - </swiper-item> - </swiper> - </view> - <!-- --> - <view class="title_wrap"><view class="name">涓氬姟鍔炵悊</view></view> - <view class="container1"> - <view class="left"> - <view class="img_wrap img1" @click="$jump('/pages/driver/notice')"> - <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image> - <view class="h1">鍏ュ洯椤荤煡</view> - <view class="h2">RESERVATION</view> - </view> - <view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide?str=bookingTips')"> - <image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image> - <view class="h1">棰勭害鎸囧崡</view> - <view class="h2">APPOINTMENT GUIDE</view> - </view> - </view> - <view class="right"> - <view class="img_wrap img2" @click="$jump('/pages/driver/reservedRecord')"> - <image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image> - <view class="h1">棰勭害璁板綍</view> - <view class="h2">APPOINTMENT RECORD</view> - </view> - <view class="img_wrap img2" @click="$jump('/pages/driver/queueUp')"> - <image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image> - <view class="h1">鏈堝彴鎺掗槦鎯呭喌</view> - <view class="h2">HIDDEN DANGER</view> - </view> - <view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide?str=reservationMap')"> - <image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image> - <view class="h1">鍥尯瀵艰鍥�</view> - <view class="h2">GUIDE MAP</view> - </view> - </view> - </view> - <!-- --> - <view class="copyright"> - <image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" /> - <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text> - </view> - </view> -</template> - -<script> -import { logoutPost, driverHomeData } from '@/api'; -export default { - data() { - return { - taskList: [], - driverInfo: uni.getStorageSync('driverInfo'), - - }; - }, - onShow() { - this.initData(); - }, - methods: { - 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 || [] - } - }); - }, +<template> + <view class="main_app"> + <view class="title_wrap"> + <view class="name">{{ driverInfo.realname }}锛屾杩庣櫥褰曪綖</view> + <view class="btn" @click="loginOut">閫�鍑虹櫥褰�</view> + </view> + <!-- --> + <view class="banner_wrap"> + <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view> + <view class="h2">鐗╂祦杞︿笓鍖�</view> + <image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image> + </view> + <!-- --> + <view v-if="taskList && taskList.length > 0" class="task_list"> + <swiper circular class="task_swiper"> + <swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)"> + <view class="item"> + <view class="head"> + <view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum }}</view> + <view class="status"> + <view class="text" v-if="item.status == 0">璇风‘璁や换鍔�</view> + <view class="text" v-if="item.status == 1">璇蜂簬{{ item.arriveDate.slice(5, 11) }}鐜板満绛惧埌</view> + <view class="text" v-if="item.status == 2">鍓嶆柟鎺掗槦锛歿{ item.lineUpNum }}杈�</view> + <view class="text" v-if="item.status == 3">璇峰叆鍥繘鍏ョ瓑寰呭尯</view> + <view class="text" v-if="item.status == 4">璇峰叆鍥仠闈爗{ item.platformName }}浣滀笟</view> + <view class="text" v-if="item.status == 5">{{ item.platformName }}浣滀笟涓�</view> + <view class="text" v-if="item.status == 6">浣滀笟宸插畬鎴�</view> + <view class="text" v-if="item.status == 7">杞Щ涓�</view> + <view class="text red" v-if="item.status == 8">寮傚父鎸傝捣</view> + <view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view> + <view class="time" v-if="item.finishTimeStr && item.status == 5">棰勮瀹屾垚鏃堕棿锛歿{ item.finishTimeStr }}</view> + </view> + </view> + <view class="content"> + <view class="info"> + <view class="plate"> + <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image> + <text>{{ item.carCodeFront }}</text> + </view> + <view class="plate"> + <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image> + <text>{{ item.totalNum }}涓囨敮</text> + </view> + </view> + <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> + <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> + </view> + </view> + </view> + </swiper-item> + </swiper> + </view> + <!-- --> + <view class="title_wrap"> + <view class="name">涓氬姟鍔炵悊</view> + </view> + <view class="container1"> + <view class="left"> + <view class="img_wrap img1" @click="jump('/pages/driver/notice')"> + <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image> + <view class="h1">鍏ュ洯椤荤煡</view> + <view class="h2">RESERVATION</view> + </view> + <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=bookingTips')"> + <image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image> + <view class="h1">棰勭害鎸囧崡</view> + <view class="h2">APPOINTMENT GUIDE</view> + </view> + </view> + <view class="right"> + <view class="img_wrap img2" @click="jump('/pages/driver/reservedRecord')"> + <image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image> + <view class="h1">棰勭害璁板綍</view> + <view class="h2">APPOINTMENT RECORD</view> + </view> + <view class="img_wrap img2" @click="jump('/pages/driver/queueUp')"> + <image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image> + <view class="h1">鏈堝彴鎺掗槦鎯呭喌</view> + <view class="h2">HIDDEN DANGER</view> + </view> + <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=reservationMap')"> + <image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image> + <view class="h1">鍥尯瀵艰鍥�</view> + <view class="h2">GUIDE MAP</view> + </view> + </view> + </view> + <!-- --> + <view class="copyright"> + <image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" /> + <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text> + </view> + </view> +</template> + +<script> +import { + logoutPost, + driverHomeData, + app_url +} from '@/api' +export default { + data() { + return { + taskList: [], + driverInfo: uni.getStorageSync('driverInfo'), + + } + }, + 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() { - this.$store.commit('empty'); - logoutPost(); - uni.redirectTo({ - url: '/pages/driver/login' - }); - }, - taskClick(item) { - const status = item.status - console.log(item); - if(status == 0){ - uni.navigateTo({url: '/pages/driver/taskConfirm?id=' + item.id}); - } - // 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 - }); - }, - 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 - }) - }, - } -}; -</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; - display: flex; - justify-content: center; - align-items: center; - } -} -.main_app { - padding-top: 12rpx; -} -.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; - } - .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; - } - .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 { - position: relative; - padding: 24rpx 0rpx 0 28rpx; - border-radius: 8rpx; - overflow: hidden; - .h1 { - font-weight: 600; - font-size: 32rpx; - color: #222222; - line-height: 48rpx; - margin-bottom: 4rpx; - } - .h2 { - font-size: 22rpx; - color: #7b9da1; - line-height: 34rpx; - } - .img { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: -1; - } - } - .img1 { - width: 336rpx; - height: 296rpx; - margin-bottom: 16rpx; - } - .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: 280rpx; - 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 { - font-weight: 600; - font-size: 36rpx; - color: #222222; - } - .status { - color: $uni-color-primary; - font-weight: 600; - text-align: right; - .time { - font-size: 24rpx; - font-weight: 360; - } - } - } - .content { - height: 180rpx; - .info { - display: flex; - padding: 24rpx 30rpx; - .plate { - flex: 1; - display: flex; - align-items: center; - .icon { - width: 26rpx; - height: 26rpx; - margin-right: 10rpx; - } - } - } - .sub { - display: flex; - justify-content: space-between; - align-items: center; - height: 68rpx; - 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; - image { - width: 40rpx; - height: 40rpx; - } -} -</style> + logoutPost() + this.$store.commit('empty') + window.location.href = app_url + }, + taskClick(item) { + const status = item.status + if (status == 0) { + uni.navigateTo({ + url: '/pages/driver/taskConfirm?id=' + item.id + }) + } + // 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 + }) + }, + 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 + }) + }, + } +} +</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; + display: flex; + justify-content: center; + align-items: center; + } +} + +.main_app { + padding-top: 12rpx; +} + +.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; + } + + .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; + } + + .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 { + position: relative; + padding: 24rpx 0rpx 0 28rpx; + border-radius: 8rpx; + overflow: hidden; + + .h1 { + font-weight: 600; + font-size: 32rpx; + color: #222222; + line-height: 48rpx; + margin-bottom: 4rpx; + } + + .h2 { + font-size: 22rpx; + color: #7b9da1; + line-height: 34rpx; + } + + .img { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + z-index: -1; + } + } + + .img1 { + width: 336rpx; + height: 296rpx; + margin-bottom: 16rpx; + } + + .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: 280rpx; + 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 { + font-weight: 600; + font-size: 36rpx; + color: #222222; + } + + .status { + color: $uni-color-primary; + font-weight: 600; + text-align: right; + + .time { + font-size: 24rpx; + font-weight: 360; + } + } + } + + .content { + height: 180rpx; + + .info { + display: flex; + padding: 24rpx 30rpx; + + .plate { + flex: 1; + display: flex; + align-items: center; + + .icon { + width: 26rpx; + height: 26rpx; + margin-right: 10rpx; + } + } + } + + .sub { + display: flex; + justify-content: space-between; + align-items: center; + height: 68rpx; + 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; + + image { + width: 40rpx; + height: 40rpx; + } +} +</style> \ No newline at end of file diff --git a/h5/pages/index/index.vue b/h5/pages/index/index.vue index 91628d7..9237ee9 100644 --- a/h5/pages/index/index.vue +++ b/h5/pages/index/index.vue @@ -29,7 +29,7 @@ </template> <script> -import { wxAuthorize } from '@/api' +import { wxAuthorize, app_url } from '@/api' export default { data() { @@ -37,14 +37,8 @@ } }, - onBackPress(options) { - uni.redirectTo({ - url: '/pages/login/login' - }) - return true - }, onLoad() { - + }, methods: { jump(type) { @@ -107,6 +101,7 @@ display: flex; flex-direction: column; position: relative; + .banner_bg { position: absolute; top: 0; @@ -114,6 +109,7 @@ width: 100%; z-index: -1; } + .h2 { font-size: 28rpx; font-family: SourceHanSansSC, SourceHanSansSC; @@ -121,6 +117,7 @@ color: #ffffff; margin-top: 14rpx; } + text { &:first-child { font-size: 44rpx; @@ -131,12 +128,14 @@ } } } + .main_title { font-weight: 600; font-size: 32rpx; color: #222222; margin: 40rpx 0 32rpx; } + .box_list { width: 100%; display: flex; @@ -148,11 +147,13 @@ .box_list_item { width: 100%; margin-bottom: 20rpx; + image { width: 100%; } } } + .copyright { display: flex; align-items: center; @@ -160,6 +161,7 @@ margin-top: 84rpx; font-size: 24rpx; color: #666666; + image { width: 40rpx; height: 40rpx; diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue index c20258d..15766ad 100644 --- a/h5/pages/login/login.vue +++ b/h5/pages/login/login.vue @@ -1,6 +1,6 @@ <template> <view class="main_app"> - <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" /> + <image class="login_bg" src="@/static/staff/shenfen_bg@2x.png" mode="widthFix" /> <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view> <view class="placeholder6 place">璇烽�夋嫨鎮ㄧ殑韬唤</view> <view class="item" @click="userAuth(1)"> @@ -32,7 +32,7 @@ <script> import { - wxAuthorizea, + wxAuthorizea, getUserInfo } from '@/api' import { @@ -41,18 +41,17 @@ export default { data() { return { - code: '091RVIkl2SZXDe4WySll2pAL8D1RVIkb' + code: '' } }, - onLoad() { + onShow() { var that = this - let url = window.location.href + let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' let code = '' - if (url.indexOf('code=') !== -1) { + if (window.location.href.indexOf('code=') !== -1 || this.code) { - } else { - return - let url = window.location.href + } else { + // let url = window.location.href const appID = 'wx173e6caf5abc718a' let uri = encodeURIComponent(url) let authURL = @@ -98,13 +97,13 @@ let url = window.location.href let code = '' if (url.indexOf('code=') !== -1 || this.code) { - // const query = url.split('?') - // for (const q of query) { - // if (q.indexOf('code=') !== -1) { - // let statusIndex = q.indexOf('&state') - 1 - // code = q.substring(q.indexOf('code=') + 5, statusIndex) - // } - // } + const query = url.split('?') + for (const q of query) { + if (q.indexOf('code=') !== -1) { + let statusIndex = q.indexOf('&state') + code = q.substring(q.indexOf('code=') + 5, statusIndex) + } + } wxAuthorizea({ code: code || this.code, source: source @@ -113,35 +112,32 @@ that.$store.commit('setOpenId', res.data.openid) if (res.data.member) { that.$store.commit('setMember', res.data.member) - } - if (res.data.token) { - that.$store.commit('setToken', res.data.token) - getUserInfo().then(ress => { - that.$store.commit('setUserInfo', ress.data) - }) } let flag = res.data.member && res.data.member.id - setTimeout(() => { - if (source == 0) { - this.driverLogin(flag) - } else if (source == 2) { - this.staffLogin(flag) - } else { - this.jump('/pages/index/index') - } + setTimeout(() => { + if (source == 0) { + if (res.data.token) { + that.$store.commit('setToken', res.data.token) + getUserInfo().then(ress => { + that.$store.commit('setDriverInfo', ress.data) + }) + } + this.driverLogin(flag) + } else if (source == 2) { + if (res.data.token) { + that.$store.commit('setToken', res.data.token) + getUserInfo().then(ress => { + that.$store.commit('setUserInfo', ress.data) + }) + } + this.staffLogin(flag) + } else { + this.jump('/pages/index/index') + } }, 300) } }) } - // } - // 鍒锋柊token - // setTimeout(() => { - // refreshToken().then(res => { - // if (res.code && res.code === 200) { - // this.$store.commit('setToken', res.data) - // } - // }) - // }, 3000) } } } @@ -149,9 +145,9 @@ <style lang="scss"> .main_app { - width: 100vw; - box-sizing: border-box; - overflow: hidden; + width: 100vw; + box-sizing: border-box; + overflow: hidden; margin: 0; height: 100vh; padding-top: 80rpx; @@ -161,7 +157,7 @@ .login_bg { position: absolute; - top: 0; + top: 0; left: 0; width: 100%; z-index: -1; diff --git a/h5/pages/staff/index.vue b/h5/pages/staff/index.vue index 15b25ae..369467b 100644 --- a/h5/pages/staff/index.vue +++ b/h5/pages/staff/index.vue @@ -1,291 +1,292 @@ -<template> - <view class="main_app"> - <view class="title_wrap"> - <view class="name" v-if="userInfo.realname" - >{{ userInfo.realname || "" }}锛屾杩庣櫥褰曪綖</view - > - <view class="name" v-else>璇峰厛鐧诲綍</view> - <view class="btn" @click="loginOut">{{ - userInfo.realname ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�" - }}</view> - </view> - <view class="banner_wrap"> - <view class="h1">瀹夋嘲鐗╂祦</view> - <view class="h2">瀹夊叏閲嶄簬娉板北 鏈嶅姟杩芥眰鍗撹秺</view> - <image - class="banner" - src="../../static/banner.jpg" - mode="widthFix" - ></image> - </view> - <view v-if="list1.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"><view class="name">涓氬姟鍔炵悊</view></view> - <view class="container1"> - <view class="list"> - <block v-for="item in list1" :key="item.name"> - <view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)"> - <image :src="item.img" class="icon" /> - <view class="name">{{item.name}}</view> - </view> - </block> - </view> -<!-- <view class="left"> - <view class="img_wrap img1" @click="jump('/pages/staff/visitorReport')"> - <image src="@/static/staff/ic_fangkebaobei.png" class="img"></image> - <view class="h1">璁垮鎶ュ</view> - <view class="h2">VISITOR REPORTING</view> - </view> - <view class="img_wrap img2" @click="jump('/pages/staff/meetingSub')"> - <image src="@/static/staff/ic_yuyuehuiyishi.png" class="img"></image> - <view class="h1">棰勭害浼氳瀹�</view> - <view class="h2">BOOK A MEETING ROOM</view> - </view> - </view> - <view class="right"> - <view class="img_wrap img2" @click="jump('/pages/staff/snapshot')"> - <image src="@/static/staff/ic_yinhuansuipai.png" class="img"></image> - <view class="h1">闅愭偅闅忔墜鎷�</view> - <view class="h2">HIDDEN DANGER</view> - </view> - <view class="img_wrap img2" @click="jump('/pages/staff/vehicle/index')"> - <image - src="@/static/staff/ic_yongcheshenqing.png" - class="img" - ></image> - <view class="h1">鐢ㄨ溅鐢宠</view> - <view class="h2">VEHICLE APPLICATION</view> - </view> - <view - class="img_wrap img2" - @click="jump('/pages/changePassword/changePassword')" - > - <image src="@/static/staff/ic_xiugaimima.png" class="img"></image> - <view class="h1">淇敼瀵嗙爜</view> - <view class="h2">CHANGE PASSWORD</view> - </view> - </view> --> - </view> - <!-- --> - <view v-if="list2.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"><view class="name">涓氬姟鏌ヨ</view></view> - <view class="container2"> - <view class="list"> - <block v-for="item in list2" :key="item.name"> - <view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)"> - <image :src="item.img" class="icon" /> - <view class="name">{{item.name}}</view> - <view v-if="item.name == '浠诲姟涓績' && taskInfo" class="task_num">{{ taskInfo }}</view> - </view> - </block> - </view> - -<!-- <view class="img_wrap" @click="jump('/pages/staff/task/index')"> - <image class="img" src="@/static/staff/ic_renwuzhongxin.png"></image> - <view class="h1">浠诲姟涓績</view> - <view class="h2">TASK CENTER</view> - <view class="task_num">{{ - taskInfo - }}</view> - </view> - <view class="img_wrap" @click="jump('/pages/staff/meetingCalendar')"> - <image class="img" src="@/static/staff/ic_wodehuiyi.png"></image> - <view class="h1">鎴戠殑浼氳鏃ュ巻</view> - <view class="h2">MY MEETING CALENDAR</view> - </view> - <view class="img_wrap" @click="jump('/pages/staff/vehicle/sendACar')"> - <image class="img" src="@/static/staff/ic_paichejilu.png"></image> - <view class="h1">娲捐溅璁板綍</view> - <view class="h2">VEHICLE DISPATCH</view> - </view> - <view class="img_wrap" @click="jump('/pages/staff/meetingManager')"> - <image class="img" src="@/static/staff/ic_huiyishiguanli.png"></image> - <view class="h1">浼氳瀹ょ鐞�</view> - <view class="h2">MANAGE MEETING ROOMS</view> - </view> --> - </view> - <view class="copyright"> - <image src="@/static/logo_s@2x.png" mode="widthFix" /> - <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text> - </view> - </view> -</template> - -<script> -import { logoutPost, stagingHead, wxAuthorize, refreshToken } from '@/api' -export default { - data() { - return { - userInfo: uni.getStorageSync('userInfo') || {permissions: []}, - taskInfo: 0, - list1: [ - { name: '璁垮鎶ュ', url: '/pages/staff/visitorReport', img: require('@/static/home/ic_fangkebaobei@3x.png'),auth: 'weixin:menu:visitcar' }, - { name: '闅愭偅闅忔墜鎷�', url: '/pages/staff/snapshot', img: require('@/static/home/ic_yinhuansuishoupai@3x.png'),auth: 'weixin:menu:hiddendanger' }, - { name: '鐢ㄨ溅鐢宠', url: '/pages/staff/vehicle/index', img: require('@/static/home/ic_yongcheshenqing@3x.png'),auth: 'weixin:menu:usecar' }, - { name: '棰勭害浼氳瀹�', url: '/pages/staff/meetingSub', img: require('@/static/home/ic_yuyuehuiyishi@3x.png'),auth: 'weixin:menu:meeting' }, - { name: '淇敼瀵嗙爜', url: '/pages/changePassword/changePassword', img: require('@/static/home/ic_xiugaimima@3x.png'),auth: 'weixin:menu:password' }, - { name: '鎴戠殑鑰冨嫟', url: '/pages/staff/signin', img: require('@/static/home/ic_kaoqin@3x.png'),auth: 'weixin:menu:attendance' }, - ], - list2: [ - { name: '浠诲姟涓績', url: '/pages/staff/task/index', img: require('@/static/home/ic_renwuzhongxin@3x.png'),auth: 'weixin:menu:taskcenter' }, - { name: '鎴戠殑浼氳鏃ュ巻', url: '/pages/staff/meetingCalendar', img: require('@/static/home/ic_wodehuiyi@3x.png'),auth: 'weixin:menu:meetingcalendar' }, - { name: '娲捐溅璁板綍', url: '/pages/staff/vehicle/sendACar', img: require('@/static/home/ic_paichejilu@3x.png'),auth: 'weixin:menu:usecarrecord' }, - { name: '浼氳瀹ょ鐞�', url: '/pages/staff/meetingManager', img: require('@/static/home/ic_huiyishiguanli@3x.png'),auth: 'weixin:menu:meetingmanage' } - ], - - } - }, - onLoad() { - - this.getTaskInfo() - // 鍒锋柊token - // setTimeout(() => { - // refreshToken().then(res => { - // if (res.code && res.code === 200) { - // this.$store.commit('setToken', res.data) - // } - // }) - // }, 3000) - }, - mounted() { - this.$eventBus.$on('taskBack', () => { - console.log('----'); - this.getTaskInfo() - }) - console.log('aaa', this.userInfo.permissions.indexOf('system:user:create')); - }, - methods: { - jump(path) { - uni.navigateTo({ - url: path - }) - }, - checkAuth(str) { - const permissions = this.userInfo.permissions - return permissions.indexOf(str) > -1 - }, - loginOut() { - this.$store.commit('empty') - logoutPost() - uni.redirectTo({ - url: '/pages/staffLogin/login' - }) - }, - getTaskInfo() { - stagingHead({ - isDetail: '1' - }).then(res => { - this.taskInfo = res.data.noticeWaitNum + res.data.noticeCopyNum - if(this.taskInfo && this.taskInfo > 99){ - this.taskInfo = 99 - } - }) - }, - } -}; -</script> - -<style lang="scss" scoped> -.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; - display: flex; - justify-content: center; - align-items: center; - } -} -.main_app { - padding-top: 12rpx; -} -.list{ - display: flex; - width: 100%; - flex-wrap: wrap; - .item{ - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - width: 25%; - margin-bottom: 40rpx; - font-size: 26rpx; - position: relative; - image{ - width: 88rpx; - height: 88rpx; - margin-bottom: 20rpx; - } - .task_num{ - position: absolute; - top: -10rpx; - right: 28rpx; - font-size: 24rpx; - width: 36rpx; - height: 36rpx; - background-color: red; - color: #fff; - border-radius: 50%; - display: flex; - justify-content: center; - align-items: center; - } - } -} -.banner_wrap { - padding: 54rpx 44rpx; - color: #fff; - position: relative; - width: 688rpx; - height: 270rpx; - margin-bottom: 40rpx; - .h1 { - font-weight: bold; - line-height: 66rpx; - font-size: 44rpx; - margin-bottom: 14rpx; - } - .banner { - position: absolute; - top: 0; - left: 0; - width: 100%; - z-index: -1; - } -} -.container1 { - display: flex; - flex-wrap: wrap; - padding: 10rpx 0 10rpx; -} -.container2 { - display: flex; - flex-wrap: wrap; -} -.copyright { - display: flex; - align-items: center; - justify-content: center; - font-size: 24rpx; - color: #666666; - position: fixed; - width: 100%; - left: 0; - bottom: 48rpx; - image { - width: 40rpx; - height: 40rpx; - } -} -</style> +<template> + <view class="main_app"> + <view class="title_wrap"> + <view class="name" v-if="userInfo.realname">{{ userInfo.realname || "" }}锛屾杩庣櫥褰曪綖</view> + <view class="name" v-else>璇峰厛鐧诲綍</view> + <view class="btn" @click="loginOut">{{ + userInfo.realname ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�" + }}</view> + </view> + <view class="banner_wrap"> + <view class="h1">瀹夋嘲鐗╂祦</view> + <view class="h2">瀹夊叏閲嶄簬娉板北 鏈嶅姟杩芥眰鍗撹秺</view> + <image class="banner" src="../../static/banner.jpg" mode="widthFix"></image> + </view> + <view v-if="list1.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"> + <view class="name">涓氬姟鍔炵悊</view> + </view> + <view class="container1"> + <view class="list"> + <block v-for="item in list1" :key="item.name"> + <view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)"> + <image :src="item.img" class="icon" /> + <view class="name">{{ item.name }}</view> + </view> + </block> + </view> + </view> + <!-- --> + <view v-if="list2.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"> + <view class="name">涓氬姟鏌ヨ</view> + </view> + <view class="container2"> + <view class="list"> + <block v-for="item in list2" :key="item.name"> + <view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)"> + <image :src="item.img" class="icon" /> + <view class="name">{{ item.name }}</view> + <view v-if="item.name == '浠诲姟涓績' && taskInfo" class="task_num">{{ taskInfo }}</view> + </view> + </block> + </view> + </view> + <view class="copyright"> + <image src="@/static/logo_s@2x.png" mode="widthFix" /> + <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text> + </view> + </view> +</template> + +<script> +import { + logoutPost, + stagingHead, + wxAuthorize, + refreshToken, + app_url +} from '@/api' +export default { + data() { + return { + userInfo: uni.getStorageSync('userInfo') || { + permissions: [] + }, + taskInfo: 0, + list1: [{ + name: '璁垮鎶ュ', + url: '/pages/staff/visitorReport', + img: require('@/static/home/ic_fangkebaobei@3x.png'), + auth: 'weixin:menu:visitcar' + }, + { + name: '闅愭偅闅忔墜鎷�', + url: '/pages/staff/snapshot', + img: require('@/static/home/ic_yinhuansuishoupai@3x.png'), + auth: 'weixin:menu:hiddendanger' + }, + { + name: '鐢ㄨ溅鐢宠', + url: '/pages/staff/vehicle/index', + img: require('@/static/home/ic_yongcheshenqing@3x.png'), + auth: 'weixin:menu:usecar' + }, + { + name: '棰勭害浼氳瀹�', + url: '/pages/staff/meetingSub', + img: require('@/static/home/ic_yuyuehuiyishi@3x.png'), + auth: 'weixin:menu:meeting' + }, + { + name: '淇敼瀵嗙爜', + url: '/pages/changePassword/changePassword', + img: require('@/static/home/ic_xiugaimima@3x.png'), + auth: 'weixin:menu:password' + }, + { + name: '鎴戠殑鑰冨嫟', + url: '/pages/staff/signin', + img: require('@/static/home/ic_kaoqin@3x.png'), + auth: 'weixin:menu:attendance' + }, + ], + list2: [{ + name: '浠诲姟涓績', + url: '/pages/staff/task/index', + img: require('@/static/home/ic_renwuzhongxin@3x.png'), + auth: 'weixin:menu:taskcenter' + }, + { + name: '鎴戠殑浼氳鏃ュ巻', + url: '/pages/staff/meetingCalendar', + img: require('@/static/home/ic_wodehuiyi@3x.png'), + auth: 'weixin:menu:meetingcalendar' + }, + { + name: '娲捐溅璁板綍', + url: '/pages/staff/vehicle/sendACar', + img: require('@/static/home/ic_paichejilu@3x.png'), + auth: 'weixin:menu:usecarrecord' + }, + { + name: '浼氳瀹ょ鐞�', + url: '/pages/staff/meetingManager', + img: require('@/static/home/ic_huiyishiguanli@3x.png'), + auth: 'weixin:menu:meetingmanage' + } + ], + + } + }, + mounted() { + }, + + onShow() { + setTimeout(() => { + this.getTaskInfo() + }, 300) + }, + methods: { + jump(path) { + if (path == '/pages/staff/signin') { + window.open('https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index') + } else { + uni.navigateTo({ + url: path + }) + } + + }, + checkAuth(str) { + const permissions = this.userInfo.permissions + return permissions.indexOf(str) > -1 + }, + loginOut() { + logoutPost() + this.$store.commit('empty') + window.location.href = app_url + }, + getTaskInfo() { + stagingHead({ + isDetail: '1' + }).then(res => { + this.taskInfo = res.data.noticeWaitNum + res.data.noticeCopyNum + if (this.taskInfo && this.taskInfo > 99) { + this.taskInfo = 99 + } + }) + }, + } +} +</script> + +<style lang="scss" scoped> +.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; + display: flex; + justify-content: center; + align-items: center; + } +} + +.main_app { + padding-top: 12rpx; +} + +.list { + display: flex; + width: 100%; + flex-wrap: wrap; + + .item { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 25%; + margin-bottom: 40rpx; + font-size: 26rpx; + position: relative; + + image { + width: 88rpx; + height: 88rpx; + margin-bottom: 20rpx; + } + + .task_num { + position: absolute; + top: -10rpx; + right: 28rpx; + font-size: 24rpx; + width: 36rpx; + height: 36rpx; + background-color: red; + color: #fff; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + } + } +} + +.banner_wrap { + padding: 54rpx 44rpx; + color: #fff; + position: relative; + width: 688rpx; + height: 270rpx; + margin-bottom: 40rpx; + + .h1 { + font-weight: bold; + line-height: 66rpx; + font-size: 44rpx; + margin-bottom: 14rpx; + } + + .banner { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: -1; + } +} + +.container1 { + display: flex; + flex-wrap: wrap; + padding: 10rpx 0 10rpx; +} + +.container2 { + display: flex; + flex-wrap: wrap; +} + +.copyright { + display: flex; + align-items: center; + justify-content: center; + font-size: 24rpx; + color: #666666; + position: fixed; + width: 100%; + left: 0; + bottom: 48rpx; + + image { + width: 40rpx; + height: 40rpx; + } +} +</style> \ No newline at end of file diff --git a/h5/pages/staff/meetingCalendar.vue b/h5/pages/staff/meetingCalendar.vue index 46d1239..dab5dd0 100644 --- a/h5/pages/staff/meetingCalendar.vue +++ b/h5/pages/staff/meetingCalendar.vue @@ -242,11 +242,11 @@ console.log(total); console.log(recordList); if (activeTab == '0') { - // if(total <= myMeetingList.length) return this.showToast('鏆傛棤鏇村鏁版嵁') + if(total <= myMeetingList.length) return this.showToast('鏆傛棤鏇村鏁版嵁') this.myPage = this.myPage + 1 this.getDayMeeting() } else { - // if(total <= recordList.length) return this.showToast('鏆傛棤鏇村鏁版嵁') + if(total <= recordList.length) return this.showToast('鏆傛棤鏇村鏁版嵁') this.recordPage = this.recordPage + 1 this.getRecordList() } diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue index 1224a70..a7050b6 100644 --- a/h5/pages/staff/snapshot.vue +++ b/h5/pages/staff/snapshot.vue @@ -1,17 +1,17 @@ <template> <view class="main_app"> <view class="main_wrap"> - <!-- --> - <view class="line"> - <view class="label"> - <text>*</text> - <text>璐d换閮ㄩ棬</text> - </view> - <view class="value" @click="isShowCompany = true"> - <text class="mr6" - :style="{ color: param.companyName ? '#000000' : '#999999' }">{{ param.companyName ? param.companyName : "璇烽�夋嫨" }}</text> - <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> - </view> + <!-- --> + <view class="line"> + <view class="label"> + <text>*</text> + <text>璐d换閮ㄩ棬</text> + </view> + <view class="value" @click="isShowCompany = true"> + <text class="mr6" + :style="{ color: param.companyName ? '#000000' : '#999999' }">{{ param.companyName ? param.companyName : "璇烽�夋嫨" }}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> + </view> </view> <view class="line"> <view class="label"> @@ -105,8 +105,8 @@ <view class="footer_btn" @click="onSubmit">鎻愪氦</view> </view> </view> - <!-- --> - <u-picker keyName="name" :show="isShowCompany" closeOnClickOverlay :columns="deptList" @confirm="seletedCompany" + <!-- --> + <u-picker keyName="name" :show="isShowCompany" closeOnClickOverlay :columns="deptList" @confirm="seletedCompany" @close="isShowCompany = false" @cancel="isShowCompany = false"></u-picker> <!-- 鍖哄煙 --> <u-picker keyName="name" :show="isShowArea" closeOnClickOverlay :columns="areaOptions" @confirm="seletedArea" @@ -130,7 +130,7 @@ import { uploadUrl, DangerCreate, - DangerConfigType, + DangerConfigType, deptListPost } from '@/api' import dayjs from 'dayjs' @@ -140,13 +140,13 @@ param: {}, submitFileList: [], - isShowCompany: false, + isShowCompany: false, isShowArea: false, isShowType: false, isShowTime: false, showUpload: false, - deptList: [], + deptList: [], areaOptions: [], areaType: [], } @@ -171,10 +171,10 @@ const { param, submitFileList - } = this - if (!param.companyName) return uni.showToast({ - title: '璇烽�夋嫨璐d换閮ㄩ棬', - icon: 'none' + } = this + if (!param.companyName) return uni.showToast({ + title: '璇烽�夋嫨璐d换閮ㄩ棬', + icon: 'none' }) if (!param.areaName) return uni.showToast({ title: '璇烽�夋嫨闅愭偅鍖哄煙', @@ -205,20 +205,20 @@ this.$jump('/pages/staff/snapshotResult') } }) - }, - seletedCompany(e) { - const item = e.value[0] - this.$set(this.param, 'companyId', item.id) - this.$set(this.param, 'companyName', item.name) - this.$set(this.param, 'areaId', '') - this.$set(this.param, 'areaName', '') - DangerConfigType({ - type: '0', - companyId: item.id - }).then(res => { - this.areaOptions = [res.data] - }) - this.isShowCompany = false + }, + seletedCompany(e) { + const item = e.value[0] + this.$set(this.param, 'companyId', item.id) + this.$set(this.param, 'companyName', item.name) + this.$set(this.param, 'areaId', '') + this.$set(this.param, 'areaName', '') + DangerConfigType({ + type: '0', + companyId: item.id + }).then(res => { + this.areaOptions = [res.data] + }) + this.isShowCompany = false }, seletedArea(e) { const item = e.value[0] @@ -250,9 +250,9 @@ this.$set(this.param, 'submitTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')) this.isShowTime = false }, - initConfig() { - deptListPost({queryHiddenDanger: 1}).then(res => { - this.deptList = [res.data] + initConfig() { + deptListPost({queryHiddenDanger: 1}).then(res => { + this.deptList = [res.data] }) DangerConfigType({ type: '1' @@ -281,7 +281,7 @@ this.showUpload = false let token = uni.getStorageSync('token') || '' uni.chooseImage({ - count: 4, + count: 9, success: (chooseImageRes) => { uni.showLoading({ title: '涓婁紶涓�', @@ -425,9 +425,9 @@ .adduser_list_item_ipt1_upload { margin-top: 24rpx; - width: 120rpx; - height: 120rpx; - margin-right: 24rpx; + width: 156rpx; + height: 156rpx; + margin-right: 20rpx; border: 2rpx solid #e5e5e5; background: #f7f7f7; color: #666666; @@ -437,7 +437,9 @@ align-items: center; justify-content: center; position: relative; - + &:nth-of-type(4n){ + margin-right: 0; + } .close { position: absolute; right: -20rpx; @@ -452,7 +454,7 @@ video { width: 100%; - max-height: 120rpx; + max-height: 156rpx; } } } @@ -470,7 +472,7 @@ .footer { width: 100%; - padding: 0 30rpx; + padding: 0 30rpx; margin-top: 80rpx; padding-bottom: env(safe-area-inset-bottom); box-sizing: border-box; diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue index 56ed2e0..00a8fb0 100644 --- a/h5/pages/staff/task/index.vue +++ b/h5/pages/staff/task/index.vue @@ -535,6 +535,7 @@ font-size: 26rpx; font-weight: 400; color: #999999; + width: 120rpx; } .loading { color: $uni-color-primary; diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue index 53f969b..5dd7e69 100644 --- a/h5/pages/staff/task/vDangetAppr.vue +++ b/h5/pages/staff/task/vDangetAppr.vue @@ -9,10 +9,14 @@ class="status_img"></image> <view>{{ info.content }}</view> <view class="file_list"> - <view class="img_wrap" v-for="item in info.submitFileList" :key="item.id"> + <view class="img_wrap" v-for="item,i in info.submitFileList" :key="item.id"> <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix" class="img" /> - <video v-if="item.type == 1" :src="item.fileurlFull" class="video" :controls="false" /> + <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" /> + <image src="@/static/play.png" class="play" mode=""></image> + </view> </view> </view> <view class="text_wrap"> @@ -257,6 +261,11 @@ <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate" @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker> + <!-- --> + + <view v-if="videoPlay" class="video_app"> + <video controls id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video> + </view> </view> </template> @@ -327,7 +336,11 @@ page: 1, capacity: 50 }, - memberList: [] + memberList: [], + + videoPlay: false, + videoContext: null, + videoUrl: '' }; }, onLoad(op) { @@ -340,6 +353,23 @@ uni.previewImage({ urls: [url] }); + }, + screenChange(e) { + let fullScreen = e.detail.fullScreen; // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞� + if (!fullScreen) { + //閫�鍑哄叏灞� + this.videoPlay = false; // 闅愯棌鎾斁鐩掑瓙 + } + }, + videoClick(item, i) { + this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶 + console.log(item) + this.videoUrl = item.fileurlFull; + this.videoContext.requestFullScreen({ + direction: 90 + }); + this.videoContext.play(); + this.videoPlay = true; }, handleOpen() { this.isShowHandle = true; @@ -482,7 +512,7 @@ this.showUploadBe = false; let token = uni.getStorageSync('token') || ''; uni.chooseImage({ - count: 4, + count: 9, success: chooseImageRes => { uni.showLoading({ title: '涓婁紶涓�', @@ -573,7 +603,7 @@ this.showUploadAf = false; let token = uni.getStorageSync('token') || ''; uni.chooseImage({ - count: 4, + count: 9, success: chooseImageRes => { uni.showLoading({ title: '涓婁紶涓�', @@ -661,7 +691,7 @@ this.showUpload = false; let token = uni.getStorageSync('token') || ''; uni.chooseImage({ - count: 4, + count: 9, success: chooseImageRes => { uni.showLoading({ title: '涓婁紶涓�', @@ -897,9 +927,9 @@ } .adduser_list_item_ipt1_upload { - width: 120rpx; - height: 120rpx; - margin-right: 24rpx; + width: 156rpx; + height: 156rpx; + margin-right: 20rpx; border: 2rpx solid #e5e5e5; background: #f7f7f7; color: #666666; @@ -909,6 +939,10 @@ align-items: center; justify-content: center; position: relative; + + &:nth-of-type(4n) { + margin-right: 0; + } .close { position: absolute; @@ -924,7 +958,7 @@ video { width: 100%; - max-height: 120rpx; + max-height: 156rpx; } } @@ -999,25 +1033,44 @@ .file_list { display: flex; margin-bottom: 20rpx; - overflow-x: auto; + flex-wrap: wrap; .img_wrap { margin-top: 24rpx; - min-width: 160rpx; - height: 160rpx; + width: 156rpx; + height: 156rpx; border: 2rpx solid #e5e5e5; background: #f7f7f7; color: #666666; font-size: 22rpx; - display: flex; + display: flex; + border-radius: 4rpx; flex-direction: column; align-items: center; justify-content: center; position: relative; - margin-right: 16rpx; + margin-right: 20rpx; flex-shrink: 0; - } + &:nth-of-type(4n) { + margin-right: 0; + } + } + .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%; max-height: 100%; @@ -1036,9 +1089,13 @@ margin-top: 20rpx; .line { - margin-bottom: 12rpx; + margin-bottom: 18rpx; display: flex; font-size: 24rpx; + + &:nth-last-child(1) { + margin-bottom: 0; + } .label { color: #999999; @@ -1055,7 +1112,7 @@ line-height: 60rpx; padding: 0 32rpx; border-radius: 0rpx 0rpx 0rpx 30rpx; - background-color: #e9edff; + background: rgba(39, 155, 170, 0.12); color: $uni-color-primary; } @@ -1169,10 +1226,10 @@ } .adduser_list_item_ipt1_upload { - margin-top: 24rpx; - width: 120rpx; - height: 120rpx; - margin-right: 24rpx; + margin-top: 20rpx; + width: 156rpx; + height: 156rpx; + margin-right: 20rpx; border: 2rpx solid #e5e5e5; background: #f7f7f7; color: #666666; @@ -1183,6 +1240,10 @@ justify-content: center; position: relative; + &:nth-of-type(4n) { + margin-right: 0; + } + .close { position: absolute; right: -20rpx; diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue index 2007cfa..23ad5ae 100644 --- a/h5/pages/staff/vehicle/apply.vue +++ b/h5/pages/staff/vehicle/apply.vue @@ -134,8 +134,8 @@ <view class="line" >4銆佸叕鍙稿�熺粰鐢宠浜虹敤杞︼紝鐢宠鍊熻溅浜轰负绗竴璐d换浜猴紝涓嶅厑璁歌浆鍊熺粰鍏朵粬浜轰娇鐢紝鑻ヨ鍊熺粰浠栦汉浣跨敤銆傝矗浠讳汉瑕佹壙鎷呭叏閮ㄨ矗浠汇��</view > + <view class="sub_btn" @click="handleSub">鎻愪氦</view> </view> - <view class="sub_btn" @click="handleSub">鎻愪氦</view> <!-- --> <!-- :minDate="new Date(param.startTime).getTime()" :maxDate="new Date(param.endTime).getTime()" --> @@ -291,9 +291,10 @@ } } .sub_btn { - position: fixed; - bottom: 84rpx; - left: 30rpx; + // position: fixed; + // bottom: 84rpx; + // left: 30rpx; + margin-top: 60rpx; width: 690rpx; height: 88rpx; line-height: 88rpx; diff --git a/h5/pages/staff/vehicle/sendACar.vue b/h5/pages/staff/vehicle/sendACar.vue index 177ca60..53e9809 100644 --- a/h5/pages/staff/vehicle/sendACar.vue +++ b/h5/pages/staff/vehicle/sendACar.vue @@ -90,7 +90,7 @@ carsList: [], param: { queryDate: dayjs().format('YYYY-MM-DD'), - memberId: uni.getStorageSync('userInfo').memberId + // memberId: uni.getStorageSync('userInfo').memberId }, minDate: '', pagination: { @@ -133,7 +133,7 @@ }, itemDetail(item) { uni.navigateTo({ - url: "/pages/staff/vehicle/sendACarDetail?id=" + item.id + url: `/pages/staff/vehicle/sendACarDetail?id=${item.id}` }) }, seletedCar(e) { diff --git a/h5/pages/staff/vehicle/sendACarDetail.vue b/h5/pages/staff/vehicle/sendACarDetail.vue index cdd69e7..6e3e649 100644 --- a/h5/pages/staff/vehicle/sendACarDetail.vue +++ b/h5/pages/staff/vehicle/sendACarDetail.vue @@ -1,20 +1,16 @@ <template> <view class="main_app"> - <view class="status_wrap"> - <view class="name">{{ info.createMemberName }}鎻愪氦鐨勭敤杞︾敵璇�</view> - <view - class="desc" - :class="{ - gray: info.status == '2' || info.status == '3' || info.status == '4', - }" - >{{ infoStatus }}</view - > - <view v-if="info.status == '0' || info.status == '1'" class="status">{{ - statusMap[info.status] - }}</view> - <image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image> - <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix" - class="status_img"></image> + <view class="status_wrap"> + <view class="name">{{ info.createMemberName || info.creatorName || info.memberName}}鎻愪氦鐨勭敤杞︾敵璇�</view> + <view class="desc gray">{{ info.companyName }}</view> + <view class="desc" style="margin-top: 16rpx;" v-if="info.status == 0">澶勭悊涓�</view> + <view v-if="info.status == '0' || info.status == '1'" class="status">{{ + statusMap[info.status] + }}</view> + <image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image> + <image v-if="info.status == '4'" src="@/static/ic_cancel.png" mode="widthFix" class="status_img"></image> + <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix" + class="status_img"></image> </view> <!-- --> <view class="emyty"></view> @@ -45,52 +41,52 @@ <view class="label">杞﹁締淇℃伅</view> <view class="value">{{ info.carCode }}</view> </view> - <view class="item"> + <view class="item" v-if="info.driverName"> <view class="label">鍙告満淇℃伅</view> - <view class="value">{{ info.driverName }} {{ info.driverPhone }}</view> + <view class="value">{{ info.driverName }} {{ info.driverPhone || '' }}</view> </view> </view> <!-- 娴佺▼ --> <view class="flow_wrap"> <view class="flow_title">娴佺▼</view> - <view class="list" v-if=" - info.approveDateVO != null && info.approveDateVO.approveList != null - "> - <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id"> - <view class="separate"></view> - <view class="avatar"> - <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" /> - <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img" - src="@/static/staff/ic_shenpiren@2x.png" /> - <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image> - <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span> - <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png" - mode="widthFix" /> - <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" /> - </view> - <view class="content"> - <view class="head"> - <view class="event">{{ item.title }}</view> - <view class="time">{{ item.checkDate }}</view> - </view> - <view class="name_wrap"> - <text>{{ item.memberName - }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }" - v-if="item.statusInfo">({{ item.statusInfo }})</text></text> - </view> - <view v-if="item.checkInfo" class="remark">{{ - item.checkInfo - }}</view> - <!-- 鎶勯�佷汉 --> - <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children"> - <view class="child" v-for="child in item.approveList" :key="child.id"> - <image v-if="child.faceImg" class="child_img" :src="child.faceImg" /> - <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view> - <view>{{ child.memberName }}</view> - </view> - </view> - </view> - </view> + <view class="list" v-if=" + info.approveDateVO != null && info.approveDateVO.approveList != null + "> + <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id"> + <view class="separate"></view> + <view class="avatar"> + <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" /> + <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img" + src="@/static/staff/ic_shenpiren@2x.png" /> + <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image> + <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span> + <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png" + mode="widthFix" /> + <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" /> + </view> + <view class="content"> + <view class="head"> + <view class="event">{{ item.title }}</view> + <view class="time">{{ item.checkDate }}</view> + </view> + <view class="name_wrap"> + <text>{{ item.memberName + }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }" + v-if="item.statusInfo">({{ item.statusInfo }})</text></text> + </view> + <view v-if="item.checkInfo" class="remark">{{ + item.checkInfo + }}</view> + <!-- 鎶勯�佷汉 --> + <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children"> + <view class="child" v-for="child in item.approveList" :key="child.id"> + <image v-if="child.faceImg" class="child_img" :src="child.faceImg" /> + <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view> + <view>{{ child.memberName }}</view> + </view> + </view> + </view> + </view> </view> </view> <view class="emyty"></view> @@ -103,13 +99,14 @@ <view class="btn" @click="handleSub(3)">鎷掔粷</view> <view class="btn agree" @click="handleSub(2)">鍚屾剰</view> </template> - </view> - <template v-else> - <view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0" class="main_footer" @click="isShowBack = true"> - <view class="agree btn">鎾ゅ洖鐢ㄨ溅</view> - </view> - </template> - + </view> + <template v-else> + <view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0" + class="main_footer" @click="isShowBack = true"> + <view class="agree btn">鎾ゅ洖鐢ㄨ溅</view> + </view> + </template> + <!-- 鎾ら攢 --> <u-popup :show="isShowBack" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowBack = false"> @@ -127,7 +124,8 @@ <view class="appr_modal"> <view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view> <view v-if="param.status == 2" class="line" @click="openModal"> - <text :class="{placeholder9: info.approveDateVO.driverParam == 0}" v-if="param.driverName">{{ param.driverName }}</text> + <text :class="{placeholder9: info.approveDateVO.driverParam == 0}" + v-if="param.driverName">{{ param.driverName }}</text> <text v-else class="placeholder9">娲捐溅鍙告満</text> <u-icon v-if="info.approveDateVO.driverParam == 1" class="ml12" name="arrow-right" color="#999999" /> </view> @@ -159,7 +157,7 @@ showApprModal: false, isShowBack: false, backParam: {}, - isShowDrive: false, + isShowDrive: false, userInfo: uni.getStorageSync('userInfo') || {}, id: '', appr: '', @@ -207,11 +205,11 @@ }) } }) - }, - openModal() { - if(this.info.approveDateVO.driverParam == 0) return - this.isShowDrive = true - + }, + openModal() { + if (this.info.approveDateVO.driverParam == 0) return + this.isShowDrive = true + }, onSubBack() { carUseBookBack({ @@ -265,20 +263,20 @@ this.getDriveList() } else { - } - if(this.info.driverId && this.info.driverName){ - this.$set(this.param, 'driverId', this.info.driverId) - this.$set(this.param, 'driverName', this.info.driverName) + } + if (this.info.driverId && this.info.driverName) { + this.$set(this.param, 'driverId', this.info.driverId) + this.$set(this.param, 'driverName', this.info.driverName) } this.showApprModal = true }, getDriveList() { - driveListPost({}).then(res => { + driveListPost({}).then(res => { const temp = res.data || [] - this.driveList = [res.data] - if(this.param.driverId){ - const item = temp.find(i=>i.id == this.param.driverId) - this.$set(this.param, 'driverName', item.name) + this.driveList = [res.data] + if (this.param.driverId) { + const item = temp.find(i => i.id == this.param.driverId) + this.$set(this.param, 'driverName', item.name) } }) }, @@ -505,45 +503,46 @@ } } - .status_wrap { - position: relative; - padding: 30rpx 0; - - .name { - font-weight: 600; - font-size: 32rpx; - margin-bottom: 20rpx; - color: #222222; - } - - .desc { - font-size: 26rpx; - color: #ed4545; - } - - .gray { - color: #999999; - } - - .status { - position: absolute; - right: -30rpx; - top: 0; - height: 60rpx; - line-height: 60rpx; - padding: 0 32rpx; - border-radius: 0rpx 0rpx 0rpx 30rpx; - background-color: #e9edff; - color: $uni-color-primary; - } - - .status_img { - position: absolute; - right: 0rpx; - top: 20rpx; - width: 120rpx; - } - } + .status_wrap { + position: relative; + padding: 30rpx 0; + + .name { + font-weight: 600; + font-size: 32rpx; + margin-bottom: 20rpx; + color: #222222; + } + + .desc { + font-size: 26rpx; + color: #ed4545; + } + + .gray { + color: #999999; + } + + .status { + position: absolute; + right: -30rpx; + top: 0; + height: 60rpx; + line-height: 60rpx; + padding: 0 32rpx; + border-radius: 0rpx 0rpx 0rpx 30rpx; + background-color: #e9edff; + color: $uni-color-primary; + } + + .status_img { + position: absolute; + right: 0rpx; + top: 20rpx; + width: 120rpx; + } + } + .main_footer { padding-bottom: 64rpx; display: flex; diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue index 13adeca..b20464b 100644 --- a/h5/pages/staffLogin/login.vue +++ b/h5/pages/staffLogin/login.vue @@ -1,5 +1,5 @@ <template> - <view class="login"> + <view class="login" :style="{height: windowHeight + 'px'}"> <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" /> <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" /> <view class="login_title">瀹夋嘲鐗╂祦鏅烘収鍥尯</view> @@ -30,7 +30,7 @@ > </view> - <view class="deal_wrap" v-show="!showKeyboard"> + <view class="deal_wrap"> <image @click="changeFalg" v-if="ProtocolFlag" @@ -44,6 +44,7 @@ src="@/static/meeting/icon/ic_choose@2x.png" mode="widthFix" class="checked" + ></image> <text>鐧诲綍鍗冲悓鎰�</text> <text class="deal" @click="showContent">銆婂畨娉扮墿娴佺敤鎴峰崗璁��</text> @@ -52,19 +53,22 @@ <u-popup :show="isShowProtocol" @close="isShowProtocol = false" + closeable :round="8" mode="center" > <view class="modal"> <!-- <view v-html="htmlText"></view> --> - <mp-html :content="htmlText" /> + <view class="content"> + <mp-html :content="htmlText" /> + </view> </view> </u-popup> </view> </template> <script> -import { loginPost, loginCaptcha, getUserInfo, getSystemDictData } from '@/api' +import { loginPost, loginCaptcha, getUserInfo, getSystemDictData, saveHkUserOpenid } from '@/api' import { mapState, mapMutations } from 'vuex' export default { name: 'login', @@ -81,12 +85,16 @@ isShowProtocol: false, ProtocolFlag: false, captcha: {}, - htmlText: '' + htmlText: '', + windowHeight: '' } }, onLoad() { this.initCaptcha() + const result = uni.getWindowInfo() + this.windowHeight = result.windowHeight + console.log('result', result); }, onBackPress(options) { uni.redirectTo({ @@ -148,6 +156,7 @@ url: "/pages/staff/index" }) }) + saveHkUserOpenid({}) } }) } @@ -163,6 +172,7 @@ box-sizing: border-box; align-items: center; flex-direction: column; + position: relative; background: linear-gradient( 180deg, rgba(39, 155, 170, 0.2) 0%, @@ -247,7 +257,7 @@ } } .deal_wrap { - position: fixed; + position: absolute; width: 100%; left: 0; text-align: center; @@ -263,13 +273,20 @@ margin-right: 12rpx; } } + .rela_wrap{ + position: relative; + margin-top: 360rpx; + } } .modal { width: 690rpx; - min-height: 820rpx; - max-height: 720px; + max-height: 80vh; border-radius: 24rpx; - padding: 32rpx; + padding: 30rpx 30rpx; overflow: auto; + // .content{ + // height: 100%; + // overflow: auto; + // } } </style> diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue index d6ed245..6d579f0 100644 --- a/h5/pages/userinfo/userinfo.vue +++ b/h5/pages/userinfo/userinfo.vue @@ -207,7 +207,8 @@ filePath: file.tempFilePath, name: 'file', formData: { - folderCode: 'MEMBER_IMG' + folderCode: 'MEMBER_IMG', + isFace: 0 }, success: (uploadFileRes) => { let res = JSON.parse(uploadFileRes.data) diff --git a/h5/static/ic_cancel.png b/h5/static/ic_cancel.png new file mode 100644 index 0000000..ce81f0b --- /dev/null +++ b/h5/static/ic_cancel.png Binary files differ diff --git a/h5/static/play.png b/h5/static/play.png new file mode 100644 index 0000000..1b4b225 --- /dev/null +++ b/h5/static/play.png Binary files differ diff --git a/h5/static/staff/shenfen_bg@2x.png b/h5/static/staff/shenfen_bg@2x.png new file mode 100644 index 0000000..32adb01 --- /dev/null +++ b/h5/static/staff/shenfen_bg@2x.png Binary files differ diff --git a/h5/store/index.js b/h5/store/index.js index 94fb56e..9e5b043 100644 --- a/h5/store/index.js +++ b/h5/store/index.js @@ -20,7 +20,6 @@ state: { openId: openId || '', - // openId: openId || '123123', member: member || null, statusbarHeight: statusbarHeight || '0', navHeight: navHeight || '0', @@ -80,12 +79,11 @@ }, // 娓呯┖鐧诲綍缂撳瓨 empty(state) { + uni.clearStorageSync() state.token = '' + state.openId = '' state.userInfo = {} state.driverInfo = {} - uni.removeStorageSync('userInfo') - uni.removeStorageSync('driverInfo') - uni.removeStorageSync('token') } }, actions: { diff --git a/h5/utils/config.js b/h5/utils/config.js index f0713f7..53f0fdd 100644 --- a/h5/utils/config.js +++ b/h5/utils/config.js @@ -1,8 +1,10 @@ -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/#/' export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch` diff --git a/h5_meeting/manifest.json b/h5_meeting/manifest.json index 8c272f0..eeba487 100644 --- a/h5_meeting/manifest.json +++ b/h5_meeting/manifest.json @@ -96,9 +96,9 @@ "disableHostCheck" : true, "proxy" : { "/gateway_interface" : { - // "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 // "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 - "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + // "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 "changeOrigin" : true, // 鍏佽璺ㄥ煙 "pathRewrite" : { "^/gateway_interface" : "" diff --git a/h5_meeting/utils/config.js b/h5_meeting/utils/config.js index 1d8ad8b..11dc26e 100644 --- a/h5_meeting/utils/config.js +++ b/h5_meeting/utils/config.js @@ -1,6 +1,6 @@ -// export const baseUrl = 'gateway_interface/'/ -export const baseUrl = 'http://192.168.5.13/gateway_interface/' +export const baseUrl = 'gateway_interface/' +// export const baseUrl = 'http://192.168.5.13/gateway_interface/' // export const baseUrl = 'http://192.168.0.173/gateway_interface/' export const statusMap = { diff --git a/screen/src/assets/images/SecurityControl/bg@2x.png b/screen/src/assets/images/SecurityControl/bg@2x.png index 58acee1..b021e5c 100644 --- a/screen/src/assets/images/SecurityControl/bg@2x.png +++ b/screen/src/assets/images/SecurityControl/bg@2x.png Binary files differ diff --git a/screen/src/assets/images/task/bg@2x.png b/screen/src/assets/images/task/bg@2x.png new file mode 100644 index 0000000..607b4d3 --- /dev/null +++ b/screen/src/assets/images/task/bg@2x.png Binary files differ diff --git a/screen/src/assets/images/task/title@2x.png b/screen/src/assets/images/task/title@2x.png new file mode 100644 index 0000000..5883494 --- /dev/null +++ b/screen/src/assets/images/task/title@2x.png Binary files differ diff --git a/screen/src/router/index.js b/screen/src/router/index.js index 337b81d..01f66d0 100644 --- a/screen/src/router/index.js +++ b/screen/src/router/index.js @@ -10,6 +10,9 @@ { path: '/PlatformCall', // 鏈堝彴鍙彿澶у睆 name: 'PlatformCall', + meta: { + title: '瀹夋嘲鐗╂祦鏈堝彴鍙彿澶у睆' + }, component: () => import('../views/PlatformCall.vue') }, { @@ -65,7 +68,7 @@ router.beforeEach((to, from, next) => { - window.document.title = to.meta.title + window.document.title = to.meta.title next() }) diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue index 878f757..1ace36c 100644 --- a/screen/src/views/SecurityControl.vue +++ b/screen/src/views/SecurityControl.vue @@ -19,7 +19,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>瀹炴椂鍥尯杞﹁締</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="second_title"> <div class="title"> @@ -196,7 +196,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>鍦ㄥ洯浜哄憳鍒嗘瀽</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="second_title"> <div class="title"> @@ -287,7 +287,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>褰撳墠杞﹁締婊炵暀棰勮</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="table"> <div class="line header"> @@ -322,7 +322,7 @@ <div class="separate"></div> <div class="tab" :class="{ active: warningTab == '2' }" @click="tasClick('2')">琛屼负鍛婅</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="one_swiper_wrap"> <div class="list one-swiper"> @@ -382,7 +382,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>鍥尯瀹夐槻璁惧</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="monitoring" @click="showJk = !showJk"> <img src="@/assets/images/SecurityControl/ic_jiankong@2x.png" class="icon" alt=""> @@ -445,7 +445,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>浠婃棩璁垮婊炵暀鎯呭喌</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="table"> <div class="line header"> @@ -741,7 +741,7 @@ show: true, position: 'outside', formatter: (params) => { - const index = params.dataIndex; + const index = params.dataIndex return `{color${index}|${params.data.name} ${params.data.rate}%}` // return `<div>${params.data.name}</div>` }, @@ -1013,6 +1013,8 @@ margin-bottom: 20px; font-size: 14px; color: #D2E0FF; + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); .second_title { margin-top: 24px; @@ -1361,6 +1363,8 @@ .right_box_one { margin-bottom: 20px; + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); .second_title { margin-top: 20px; @@ -1443,9 +1447,15 @@ } } - .right_box_two {} + .right_box_two { + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); + } - .right_box_three {} + .right_box_three { + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); + } } } @@ -1571,6 +1581,8 @@ .one_swiper_wrap { height: 140px; overflow: hidden; + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); } .list { @@ -1659,6 +1671,8 @@ flex: 1; margin-right: 20px; position: relative; + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); .content { display: flex; @@ -1803,6 +1817,8 @@ .visitor_warning { width: 360px; + background: rgba(0, 86, 255, 0.05); + backdrop-filter: blur(5px); .table { .list { @@ -1838,13 +1854,6 @@ align-items: center; font-weight: bold; font-size: 16px; - background-image: -webkit-linear-gradient(top, - #ffffff 0%, - #c8ddff 66%, - #85b4ff 72%, - #74a9ff 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; .icon { width: 16px; diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue index fac6891..f02d4e1 100644 --- a/screen/src/views/TaskEfficiency.vue +++ b/screen/src/views/TaskEfficiency.vue @@ -1,7 +1,7 @@ <template> <v-scale-screen width="1920" height="960"> <div class="main_app"> - <img src="@/assets/images/FireFighting/bg@2x.png" class="main_bg" alt="" /> + <img src="@/assets/images/task/bg@2x.png" class="main_bg" alt="" /> <div class="main_header"> <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-浣滀笟鏁堣兘缁熺</div> @@ -19,7 +19,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="car_static"> <div class="echart_wrap"> @@ -60,7 +60,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>浠婃棩鏈堝彴宸ヤ綔鏃堕暱瓒嬪娍</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="list one-swiper"> <div class="swiper-wrapper"> @@ -86,7 +86,7 @@ <div class="separate"></div> <div class="tab" :class="{ active: activeTab3 == 0 }" @click="tabClick3(0)">鍏ュ簱</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="echart_wrap"> <div class="echart2" id="echart2"></div> @@ -201,7 +201,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>浠婃棩杞﹁締浣滀笟鎯呭喌</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="static_wrap"> <div class="item"> @@ -249,7 +249,7 @@ <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <div>瀹炴椂鍛婅</div> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> </div> <div class="list three-swiper"> <div class="swiper-wrapper"> -- Gitblit v1.9.3