ll
liukangdong
2024-12-10 a8c03746e6bd8ac1d46dc48c1b10bceff543664f
ll
已添加5个文件
已修改26个文件
663 ■■■■■ 文件已修改
admin/src/components/business/operaVisitsWindow.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/RichEditor.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/vehicle/cars.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/App.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/staff.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/index.vue 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/index/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/login/login.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/index.vue 209 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/meetingCalendar.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/snapshot.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/vDangetAppr.vue 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/apply.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/sendACar.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/sendACarDetail.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staffLogin/login.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/userinfo/userinfo.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/play.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/staff/shenfen_bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/store/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/utils/config.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_meeting/manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_meeting/utils/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/assets/images/SecurityControl/bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/assets/images/task/bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/assets/images/task/title@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/router/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/SecurityControl.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/TaskEfficiency.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/operaVisitsWindow.vue
@@ -148,7 +148,8 @@
      VisitReason: [],
      memberList: [],
      uploadData: {
        folder: 'member'
        folder: 'member',
        isFace: 0
      },
      startPickerOptions: {
        disabledDate (time) {
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>
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) {
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')
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({
h5/pages/driver/index.vue
@@ -44,7 +44,8 @@
                            </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 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>
@@ -55,32 +56,34 @@
            </swiper>
        </view>
        <!--  -->
        <view class="title_wrap"><view class="name">业务办理</view></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')">
                <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')">
                <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')">
                <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')">
                <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')">
                <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>
@@ -96,19 +99,27 @@
</template>
<script>
import { logoutPost, driverHomeData } from '@/api';
import {
    logoutPost,
    driverHomeData,
    app_url
} from '@/api'
export default {
    data() {
        return {
            taskList: [],
            driverInfo: uni.getStorageSync('driverInfo'),
            
        };
        }
    },
    onShow() {
        this.initData();
        this.initData()
    },
    methods: {
        jump(path) {
            this.$jump(path)
        },
        initData() {
            driverHomeData().then(res => {
                if (res.code == 200) {
@@ -116,40 +127,41 @@
                        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'
            });
            logoutPost()
            this.$store.commit('empty')
            window.location.href = app_url
        },
        taskClick(item) {
            const status = item.status
            console.log(item);
            if(status == 0){
                uni.navigateTo({url: '/pages/driver/taskConfirm?id=' + item.id});
                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}`});
                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({
@@ -157,7 +169,7 @@
            })
        },
    }
};
}
</script>
<style lang="scss">
@@ -167,11 +179,13 @@
    align-items: center;
    margin-bottom: 24rpx;
    padding-top: 10rpx;
    .name {
        font-weight: 600;
        font-size: 34rpx;
        color: #222222;
    }
    .btn {
        width: 144rpx;
        height: 56rpx;
@@ -184,9 +198,11 @@
        align-items: center;
    }
}
.main_app {
    padding-top: 12rpx;
}
.banner_wrap {
    padding: 54rpx 44rpx;
    color: #fff;
@@ -194,12 +210,14 @@
    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;
@@ -212,6 +230,7 @@
        box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
        border-radius: 24rpx;
    }
    .banner {
        position: absolute;
        top: 0;
@@ -220,20 +239,25 @@
        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;
@@ -241,11 +265,13 @@
            line-height: 48rpx;
            margin-bottom: 4rpx;
        }
        .h2 {
            font-size: 22rpx;
            color: #7b9da1;
            line-height: 34rpx;
        }
        .img {
            width: 100%;
            height: 100%;
@@ -255,19 +281,23 @@
            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;
@@ -275,6 +305,7 @@
        margin-left: -20rpx;
        box-sizing: border-box;
    }
    .item {
        background: #ffffff;
        box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
@@ -282,6 +313,7 @@
        height: 280rpx;
        width: 98%;
        margin-left: 1%;
        .head {
            display: flex;
            justify-content: space-between;
@@ -289,30 +321,37 @@
            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;
@@ -320,16 +359,19 @@
                    }
                }
            }
            .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;
@@ -343,6 +385,7 @@
        }
    }
}
.copyright {
    display: flex;
    align-items: center;
@@ -350,6 +393,7 @@
    margin-top: 44rpx;
    font-size: 24rpx;
    color: #666666;
    image {
        width: 40rpx;
        height: 40rpx;
h5/pages/index/index.vue
@@ -29,19 +29,13 @@
</template>
<script>
import { wxAuthorize } from '@/api'
import { wxAuthorize, app_url } from '@/api'
export default {
  data() {
    return {
    }
  },
  onBackPress(options) {
    uni.redirectTo({
      url: '/pages/login/login'
    })
    return true
  },
  onLoad() {
        
@@ -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;
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)">
@@ -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
                // 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
@@ -114,17 +113,23 @@
                            if (res.data.member) {
                                that.$store.commit('setMember', res.data.member)
                            }
                            let flag = res.data.member && res.data.member.id
                            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)
                                })
                            }
                            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')
@@ -133,15 +138,6 @@
                        }
                    })
                }
                // }
                // 刷新token
                // setTimeout(() => {
                //     refreshToken().then(res => {
                //         if (res.code && res.code === 200) {
                //             this.$store.commit('setToken', res.data)
                //         }
                //     })
                // }, 3000)
            }
        }
    }
h5/pages/staff/index.vue
@@ -1,9 +1,7 @@
<template>
  <view class="main_app">
    <view class="title_wrap">
      <view class="name" v-if="userInfo.realname"
        >{{ userInfo.realname || "" }},欢迎登录~</view
      >
            <view class="name" v-if="userInfo.realname">{{ userInfo.realname || "" }},欢迎登录~</view>
      <view class="name" v-else>请先登录</view>
      <view class="btn" @click="loginOut">{{
        userInfo.realname ? "退出登录" : "去登录"
@@ -12,13 +10,11 @@
    <view class="banner_wrap">
      <view class="h1">安泰物流</view>
      <view class="h2">安全重于泰山 服务追求卓越</view>
      <image
        class="banner"
        src="../../static/banner.jpg"
        mode="widthFix"
      ></image>
            <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 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">
@@ -28,44 +24,11 @@
                    </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 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">
@@ -76,30 +39,6 @@
                    </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" />
@@ -109,64 +48,112 @@
</template>
<script>
import { logoutPost, stagingHead, wxAuthorize, refreshToken } from '@/api'
import {
    logoutPost,
    stagingHead,
    wxAuthorize,
    refreshToken,
    app_url
} from '@/api'
export default {
  data() {
    return {
      userInfo: uni.getStorageSync('userInfo') || {permissions: []},
            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' },
            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' }
            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('----');
    },
    onShow() {
        setTimeout(() => {
      this.getTaskInfo()
    })
        console.log('aaa', this.userInfo.permissions.indexOf('system:user:create'));
        }, 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() {
      this.$store.commit('empty')
      logoutPost()
      uni.redirectTo({
        url: '/pages/staffLogin/login'
      })
            this.$store.commit('empty')
            window.location.href = app_url
    },
    getTaskInfo() {
      stagingHead({
@@ -179,7 +166,7 @@
      })
    },
  }
};
}
</script>
<style lang="scss" scoped>
@@ -189,11 +176,13 @@
  align-items: center;
  margin-bottom: 24rpx;
    padding-top: 10rpx;
  .name {
    font-weight: 600;
    font-size: 34rpx;
    color: #222222;
  }
  .btn {
    width: 144rpx;
    height: 56rpx;
@@ -206,13 +195,16 @@
    align-items: center;
  }
}
.main_app {
  padding-top: 12rpx;
}
.list{
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    .item{
        display: flex;
        flex-direction: column;
@@ -222,11 +214,13 @@
        margin-bottom: 40rpx;
        font-size: 26rpx;
        position: relative;
        image{
            width: 88rpx;
            height: 88rpx;
            margin-bottom: 20rpx;
        }
        .task_num{
            position: absolute;
            top: -10rpx;
@@ -243,6 +237,7 @@
        }
    }
}
.banner_wrap {
  padding: 54rpx 44rpx;
  color: #fff;
@@ -250,12 +245,14 @@
  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;
@@ -264,15 +261,18 @@
    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;
@@ -283,6 +283,7 @@
    width: 100%;
    left: 0;
    bottom: 48rpx;
  image {
    width: 40rpx;
    height: 40rpx;
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()
    }
h5/pages/staff/snapshot.vue
@@ -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;
                }
            }
        }
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;
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; // 值true为进入全屏,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;
                    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;
h5/pages/staff/vehicle/apply.vue
@@ -134,8 +134,8 @@
      <view class="line"
        >4、公司借给申请人用车,申请借车人为第一责任人,不允许转借给其他人使用,若要借给他人使用。责任人要承担全部责任。</view
      >
    </view>
    <view class="sub_btn" @click="handleSub">提交</view>
    </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;
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) {
h5/pages/staff/vehicle/sendACarDetail.vue
@@ -1,18 +1,14 @@
<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 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>
@@ -45,9 +41,9 @@
                <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>
        <!-- 流程 -->
@@ -105,7 +101,8 @@
            </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 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>
@@ -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>
@@ -544,6 +542,7 @@
      width: 120rpx;
    }
  }
        .main_footer {
            padding-bottom: 64rpx;
            display: flex;
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> -->
                <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>
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)
h5/static/ic_cancel.png
h5/static/play.png
h5/static/staff/shenfen_bg@2x.png
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: {
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`
h5_meeting/manifest.json
@@ -96,9 +96,9 @@
            "disableHostCheck" : true,
            "proxy" : {
                "/gateway_interface" : {
                    // "target" : "http://10.50.250.253:8088/gateway_interface", // 代理服务器域名或IP地址
                    "target" : "http://10.50.250.253:8088/gateway_interface", // 代理服务器域名或IP地址
                    // "target" : "http://192.168.0.173/gateway_interface", // 代理服务器域名或IP地址
                    "target" : "http://192.168.0.173/gateway_interface", // 代理服务器域名或IP地址
                    // "target" : "http://192.168.0.173/gateway_interface", // 代理服务器域名或IP地址
                    "changeOrigin" : true, // 允许跨域 
                    "pathRewrite" : {
                        "^/gateway_interface" : ""
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 = {
screen/src/assets/images/SecurityControl/bg@2x.png

screen/src/assets/images/task/bg@2x.png
screen/src/assets/images/task/title@2x.png
screen/src/router/index.js
@@ -10,6 +10,9 @@
    {
      path: '/PlatformCall', // 月台叫号大屏
      name: 'PlatformCall',
      meta: {
        title: '安泰物流月台叫号大屏'
      },
      component: () => import('../views/PlatformCall.vue')
    },
    {
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;
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">