liukangdong
2024-07-01 f549372d6796835fcf12391abc8dee8375810d42
‘’
已添加10个文件
已修改21个文件
318 ■■■■ 文件已修改
admin/src/api/business/carUseBook.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/hiddenDangerParam.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCarUseBookWindow.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaHiddenDangerParamWindow.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/operation/HiddenDangerParam.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/meeting/bookings.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/danger/record.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/apprConfig.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/operation/serviceCar/apprRecord.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/task/dangetDetail.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/App.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/ic_driver@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/ic_staff@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/ic_visitor@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/login_bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/answer/answer.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/applicationRecord/applicationRecord.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/appointmentDetails/appointmentDetails.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/index/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/login/login.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/apply.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_driver@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_enter_shinei@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_enter_shiwai@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_staff@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_visitor@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/utils/service.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/carUseBook.js
@@ -6,6 +6,13 @@
    trim: true
  })
}
// å¯¼å‡º
export function carUseBookRecordEx (data) {
  return request.post('/visitsAdmin/cloudService/business/carUseBook/exportExcel', data, {
    trim: true,
    download: true
  })
}
// æŸ¥è¯¢
export function findLogList (data) {
  return request.post('/visitsAdmin/cloudService/business/carUseBookLog/findList', data, {
admin/src/api/business/hiddenDangerParam.js
@@ -11,6 +11,12 @@
    trim: true
  })
}
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/hiddenDanger/exportExcel', data, {
    trim: true,
    download: true
  })
}
export function memberList (data) {
  return request.post('/visitsAdmin/cloudService/business/hiddenDangerParam/findHiddenAreaMemberList', data, {
    trim: true
admin/src/components/business/OperaCarUseBookWindow.vue
@@ -110,7 +110,7 @@
    </div>
    <!--  -->
    <template   v-slot:footer>
      <el-button @click="isShowProblem = true"  type="primary"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  class="status-red">同意</el-button>
      <el-button @click="agreeOpen"  type="primary"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  class="status-red">同意</el-button>
      <el-button @click="isBackProblem=true"  type="danger"  v-if="model.approveDateVO!=null&& model.approveDateVO.canBeApproved!=null &&model.approveDateVO.canBeApproved ==1 "  >拒绝</el-button>
      <el-button @click="visible=false">返回</el-button>
    </template>
@@ -123,8 +123,9 @@
        width="480px"
    >
      <el-form :model="dealForm" ref="dealForm" >
        <el-form-item label="派车司机" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.drvierParam ===1">
          <el-select v-model="transForm.driverId" style="width: 300px"  filterable clearable placeholder="请选择派遣司机">
        <!-- <el-form-item label="派车司机" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.driverParam === 1"> -->
        <el-form-item label="派车司机" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.driverParam == 0">
          <el-select v-model="dealForm.driverId" style="width: 300px"  filterable clearable placeholder="请选择派遣司机">
            <el-option
                v-for="item in memberList"
                :key="item.id"
@@ -138,7 +139,7 @@
              type="textarea"
              placeholder="请填写说明"
              :rows="4"
              v-model="backForm.checkInfo"
              v-model="dealForm.checkInfo"
          />
        </el-form-item>
      </el-form>
@@ -224,7 +225,7 @@
              objId: this.dataId,
              objType: this.model.type == 1?4:3,
              status: 2,
              driverId: this.dealForm.driveId,
              driverId: this.dealForm.driverId,
              checkInfo: this.dealForm.checkInfo
            })
              .then(res => {
@@ -237,6 +238,10 @@
              })
          })
      })
    },
    agreeOpen () {
      this.isShowProblem = true
      this.loadMemberList()
    },
    backDo () {
      this.$refs.backForm.validate((valid) => {
@@ -283,10 +288,6 @@
          this.model = res
          this.dealForm.driveId = res.driveId
        })
    },
    handleTransfer () {
      this.isShowTransfer = true
      this.loadMemberList()
    },
    loadMemberList () {
      driveList({}).then(res => {
admin/src/components/business/OperaHiddenDangerParamWindow.vue
@@ -80,12 +80,12 @@
        for (const key in this.form) {
          this.form[key] = target[key]
          this.form.type=type
          if (this.type ==0 && target.memberIds != null && target.memberIds != '') {
            let t = target.memberIds.split(',')
          if (this.form.type == 0 && target.memberIds != null && target.memberIds != '') {
            const t = target.memberIds.split(',')
            this.form.memberIdList =[]
            t.forEach(item =>{
              this.form.memberIdList.push(parseInt(item))
            });
            })
          }
        }
      })
admin/src/components/operation/HiddenDangerParam.vue
@@ -158,6 +158,8 @@
      const memberNames = item.memberNames.split(',')
      if (memberIds && memberIds.length === 1) {
        this.$set(this.param, 'checkUserId', memberIds[0])
      } else {
        this.$set(this.param, 'checkUserId', '')
      }
      memberIds.forEach((mem, i) => {
        arr.push({
@@ -255,10 +257,15 @@
  display: flex;
  flex-wrap: wrap;
  .item {
    width: 140px;
    max-height: 140px;
    width: 92px;
    max-height: 92px;
    margin-left: 10px;
    position: relative;
    border: 1px dashed #d9d9d9;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    .close{
      font-size: 20px;
      position: absolute;
@@ -269,8 +276,8 @@
      cursor: pointer;
    }
    .img {
      width: 140px;
      max-height: 90px;
      width: 92px;
      max-height: 92px;
    }
  }
}
admin/src/views/meeting/bookings.vue
@@ -52,6 +52,7 @@
          type="datetimerange"
          range-separator="至"
          value-format="yyyy-MM-dd HH:mm:ss"
          :default-time="['00:00:00', '23:59:59']"
          start-placeholder="开始时间"
          end-placeholder="结束时间"
          @change="selectDate"
admin/src/views/operation/danger/record.vue
@@ -3,7 +3,7 @@
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="提报人" prop="memberName">
        <el-input v-model="searchForm.memberName" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input>
        <el-input v-model="searchForm.memberName" placeholder="请输入姓名" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="提报人组织" prop="companyName">
        <el-input v-model="searchForm.companyName" placeholder="请输入" clearable @keypress.enter.native="search"></el-input>
@@ -43,6 +43,7 @@
            type="datetimerange"
            format="yyyy-MM-dd HH:mm:ss"
            value-format="yyyy-MM-dd HH:mm:ss"
            :default-time="['00:00:00', '23:59:59']"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期">
@@ -155,9 +156,7 @@
        .then(() => {
          this.exLoading = true
          exportExcel({
            page: this.pagination.page,
            capacity: 1000000,
            model: this.filters
            model: this.searchForm
          })
            .then(response => {
              this.download(response)
admin/src/views/operation/serviceCar/apprConfig.vue
@@ -2,8 +2,8 @@
  <TableLayout>
    <template v-slot:table-wrap>
      <el-tabs v-model="activeType" @tab-click="handleClick">
        <el-tab-pane label="室内用车" name="3"></el-tab-pane>
        <el-tab-pane label="室外用车" name="4"></el-tab-pane>
        <el-tab-pane label="市内用车" name="3"></el-tab-pane>
        <el-tab-pane label="市外用车" name="4"></el-tab-pane>
      </el-tabs>
      <div class="config">
        <div class="config_list">
admin/src/views/operation/serviceCar/apprRecord.vue
@@ -34,6 +34,7 @@
            type="datetimerange"
            format="yyyy-MM-dd HH:mm:ss"
            value-format="yyyy-MM-dd HH:mm:ss"
            :default-time="['00:00:00', '23:59:59']"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期">
@@ -53,7 +54,7 @@
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:carusebook:create','business:carusebook:exportExcel']">
        <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus" v-permissions="['business:carusebook:create']">新建</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:carusebook:exportExcel']">导出</el-button></li>
        <li><el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">导出</el-button></li>
      </ul>
      <el-table
          v-loading="isWorking.search"
@@ -122,6 +123,7 @@
import OperaCarUseBookParamWindow from '@/components/operation/OperCarUseBookParamWindow.vue'
import { timeForMat } from '@/utils/util'
import { allList } from '@/api/business/hiddenDangerParam'
import { carUseBookRecordEx } from '@/api/business/carUseBook'
export default {
  name: 'Empower',
  extends: BaseTable,
@@ -155,6 +157,24 @@
    this.loadParams()
  },
  methods: {
    handleEx () {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.exLoading = true
          carUseBookRecordEx({
            model: this.searchForm
          })
            .then(response => {
              this.download(response)
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.exLoading = false
            })
        })
    },
    changeRadio (e) {
      this.searchForm.radio = e
      if (e === '0') {
admin/src/views/task/dangetDetail.vue
@@ -34,7 +34,7 @@
              <div class="label">现场情况</div>
              <div class="value">
                <div class="file_list">
                  <template v-for="item in info.submitFileList">
                  <div class="file" v-for="item in info.submitFileList">
                    <img
                      v-if="item.type == 0"
                      :key="item.id"
@@ -49,7 +49,7 @@
                      class="img"
                      controls
                    />
                  </template>
                  </div>
                </div>
              </div>
            </div>
@@ -666,10 +666,14 @@
          }
          .file_list {
            display: flex;
            .img {
              width: 200px;
            .file {
              width: 92px;
              margin-right: 12px;
              margin-bottom: 12px;
              .img{
                max-height: 92px;
                max-width: 92px;
              }
            }
          }
          .value {
h5/App.vue
@@ -35,13 +35,13 @@
    }
    // åˆ·æ–°token
    const token = uni.getStorageSync('token')
    if (token) {
    // if (token) {
      //  refreshToken().then(res => {
      //      if(res.code && res.code === 200){
      //         this.$store.commit('setToken', res.data)
      //     }
      // })
    }
    // }
  },
  onShow: function () {
    console.log('App Show')
h5/ic_driver@2x.png
h5/ic_staff@2x.png
h5/ic_visitor@2x.png
h5/login_bg@2x.png
h5/manifest.json
@@ -91,8 +91,8 @@
            "proxy" : {
                "/admin_interface" : {
                    // è¿™ä¸ªå­—段名需与你配置的basePrefixUrl一致,系统识别到带有/dev-api请求的地址时,会在前面拼接上代理服务器地址
                    "target" : "http://192.168.0.173/admin_interface", // ä»£ç†æœåŠ¡å™¨åŸŸåæˆ–IP地址
                    // "target" : "http://192.168.0.135:10010", // ä»£ç†æœåŠ¡å™¨åŸŸåæˆ–IP地址
                    // "target" : "http://192.168.0.173/admin_interface", // ä»£ç†æœåŠ¡å™¨åŸŸåæˆ–IP地址
                    "target" : "http://192.168.0.135:10010", // ä»£ç†æœåŠ¡å™¨åŸŸåæˆ–IP地址
                    "changeOrigin" : true, // å…è®¸è·¨åŸŸ 
                    "pathRewrite" : {
                        "^/admin_interface" : "" // é‡å†™åœ°å€ï¼Œå¦‚果实际接口中是不带/dev-api,需要将这个前缀置空,因为这个前缀只是为了识别用,识别完之后就没用了
h5/pages.json
@@ -4,6 +4,13 @@
    },
    "pages": [
        {
            "path": "pages/login/login",
            "style": {
                "navigationBarTitleText": "选择身份",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "访客中心",
h5/pages/answer/answer.vue
@@ -83,14 +83,18 @@
            </view>
            <view
              class="box_list_answer_tips"
              style="margin-bottom: 0rpx"
              v-if="
                item.selAnswer &&
                item.answer !== item.selAnswer &&
                status != '0'
              "
            >
              <view class="line">
              <image src="@/static/ic_wrong@2x.png" />
              <text>回答错误</text>
              </view>
              <view class="line">正确答案:{{ item.answer }}</view>
            </view>
            <view
              class="box_list_answer_tips"
@@ -100,8 +104,10 @@
                status != '0'
              "
            >
              <view class="line">
              <image src="@/static/ic_success@2.png" />
              <text class="success">回答正确</text>
              </view>
            </view>
          </template>
          <template v-if="item.type == 2">
@@ -116,8 +122,7 @@
                src="@/static/checkbo1x_sel@2x.png"
                v-if="
                  (line.checked && status != '2') ||
                  (item.selAnswer === item.answer &&
                    line.checked)
                  (item.selAnswer === item.answer && line.checked)
                "
              />
              <image
@@ -135,8 +140,7 @@
              <text
                v-if="
                  (line.checked && status != '2') ||
                  (item.selAnswer === item.answer &&
                    line.checked)
                  (item.selAnswer === item.answer && line.checked)
                "
                style="color: rgba(77, 153, 168, 1)"
                ><text class="mr24" style="color: rgba(77, 153, 168, 1)">{{
@@ -165,8 +169,11 @@
                status != '0'
              "
            >
              <view class="line">
              <image src="@/static/ic_wrong@2x.png" />
              <text>回答错误</text>
              </view>
              <view class="line">正确答案:{{ item.answer }}</view>
            </view>
            <view
              class="box_list_answer_tips"
@@ -176,8 +183,10 @@
                status != '0'
              "
            >
              <view class="line">
              <image src="@/static/ic_success@2.png" />
              <text class="success">回答正确</text>
              </view>
            </view>
          </template>
        </view>
@@ -468,9 +477,17 @@
        box-sizing: border-box;
        background: #f7f7f7;
        border-radius: 8rpx;
        margin-bottom: 24rpx;
        .line {
        display: flex;
        align-items: center;
        margin-bottom: 24rpx;
          font-size: 28rpx;
          color: #333333;
          margin-bottom: 20rpx;
          &:nth-last-child(1){
            margin-bottom: 0;
          }
        }
        image {
          width: 28rpx;
          height: 28rpx;
@@ -497,7 +514,7 @@
        color: $uni-color-primary;
      }
      .warry{
        color: #ED4545;
        color: #ed4545;
      }
    }
    .list_item {
h5/pages/applicationRecord/applicationRecord.vue
@@ -111,7 +111,7 @@
  methods: {
    handleDetail(id) {
      uni.navigateTo({
        url: "/pages/appointmentDetails/appointmentDetails?id=" + id
        url: "/pages/appointmentDetails/appointmentDetails?detail=1&id=" + id
      })
    },
    tabsClick(val) {
h5/pages/appointmentDetails/appointmentDetails.vue
@@ -77,10 +77,25 @@
  data() {
    return {
      info: {},
      show: false
      show: false,
      detail: ''
    }
  },
  onBackPress(options) {
    if (this.detail == 1) {
      uni.redirectTo({
        url: '/pages/applicationRecord/applicationRecord'
      })
    } else {
      uni.redirectTo({
        url: '/pages/index/index'
      })
    }
    return true
  },
  onLoad(option) {
    this.detail = option.detail || ''
    this.getDetail(option.id)
    // visitorSubDetail({ id: option.id })
    //     .then(res => {
h5/pages/index/index.vue
@@ -38,7 +38,12 @@
            }
        },
  onBackPress(options) {
    uni.redirectTo({
      url: '/pages/login/login'
    })
    return true
  },
        methods: {
            jump(type) {
                switch (type) {
@@ -111,7 +116,7 @@
                font-size: 28rpx;
                font-family: SourceHanSansSC, SourceHanSansSC;
                font-weight: 400;
                color: #FFFFFF;
      color: #ffffff;
                margin-top: 14rpx;
            }
            text {
@@ -119,7 +124,7 @@
                    font-size: 44rpx;
                    font-family: SourceHanSansSC, SourceHanSansSC;
                    font-weight: bold;
                    color: #FFFFFF;
        color: #ffffff;
                    margin-top: 54rpx;
                }
            }
h5/pages/login/login.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
<template>
  <view class="main_app">
    <image class="login_bg" src="@/static/login_bg@2x.png" />
    <view class="h1">安泰物流智慧园区</view>
    <view class="placeholder6 place">请选择您的身份</view>
    <view class="item" @click="jump('/pages/index/index')">
      <image class="avatar" src="@/static/ic_visitor@2x.png" />
      <view class="content">
        <view class="name">我是访客</view>
        <view class="placeholder6">VISITOR</view>
      </view>
      <u-icon name="arrow-right" size="24" color="#979797" />
    </view>
    <view class="item" @click="jump('/pages/staffLogin/login')">
      <image class="avatar" src="@/static/ic_staff@2x.png" />
      <view class="content">
        <view class="name">我是员工</view>
        <view class="placeholder6">STAFF</view>
      </view>
      <u-icon name="arrow-right" size="24" color="#979797" />
    </view>
    <view class="item">
      <image class="avatar" src="@/static/ic_driver@2x.png" />
      <view class="content">
        <view class="name">我是物流车司机</view>
        <view class="placeholder6">DRIVER</view>
      </view>
      <u-icon name="arrow-right" size="24" color="#979797" />
    </view>
  </view>
</template>
<script>
export default {
  methods: {
    jump(url) {
      console.log(url);
      uni.navigateTo({
        url
      })
    }
  }
}
</script>
<style lang="scss" >
.main_app {
  width: 100%;
  height: 100vh;
  padding-top: 80rpx;
  background: linear-gradient(
    180deg,
    rgba(39, 155, 170, 0.2) 0%,
    rgba(39, 155, 170, 0) 100%
  );
  .login_bg {
    position: absolute;
    top: 0;
    width: 750rpx;
    z-index: -1;
  }
  .h1 {
    font-weight: 600;
    font-size: 48rpx;
    color: #222222;
    line-height: 66rpx;
    margin-bottom: 16rpx;
  }
  .place{
    margin-bottom: 98rpx;
  }
  .item {
    width: 690rpx;
    height: 200rpx;
    background: #ffffff;
    border-radius: 8rpx;
    display: flex;
    align-items: center;
    padding: 40rpx;
    font-size: 26rpx;
    margin-bottom: 40rpx;
    .avatar {
      width: 120rpx;
      height: 120rpx;
      margin-right: 30rpx;
    }
    .content {
      flex: 1;
      .name {
        font-weight: 600;
        font-size: 38rpx;
        color: #222222;
        margin-bottom: 20rpx;
      }
    }
  }
}
</style>
h5/pages/staff/index.vue
@@ -99,12 +99,11 @@
  },
  onLoad() {
    console.log('userInfo', this.userInfo)
  },
  onShow() {
    // if (this.userInfo && this.userInfo.name) {
    if (this.userInfo && this.userInfo.memberId) {
      this.getTaskInfo()
    // }
    }
  },
  methods: {
    jump(path) {
h5/pages/staff/vehicle/apply.vue
@@ -91,13 +91,15 @@
            }"
          >
            <text v-if="param.memberNames">
              <text v-for="mem,i in param.memberList" :key="mem.id">
              <text v-for="(mem, i) in param.memberList" :key="mem.id">
                                <template v-if="i < 2">
                                    <text>{{ mem.name }}</text>
                                    <text v-if="i < 1 && param.memberList.length > 1">,</text>
                                </template>
                            </text>
                            <text v-if="param.memberList.length > 2">等{{ param.memberList.length }}人</text>
              <text v-if="param.memberList.length > 2"
                >等{{ param.memberList.length }}人</text
              >
            </text>
            <text v-else>请选择</text>
          </text>
@@ -135,10 +137,10 @@
    </view>
    <view class="sub_btn" @click="handleSub">提交</view>
    <!--  -->
    <!-- :minDate="new Date(param.startTime).getTime()"
      :maxDate="new Date(param.endTime).getTime()" -->
    <u-datetime-picker
      :show="isShowDatetime"
      :minDate="new Date(param.startTime).getTime()"
      :maxDate="new Date(param.endTime).getTime()"
      @confirm="confirmDate"
      @cancel="isShowDatetime = false"
      mode="datetime"
h5/pages/staff/vehicle/index.vue
@@ -1,7 +1,7 @@
<template>
  <view class="main_app">
    <image
      src="../../../static/staff/yongche_bg.png"
      src="@/static/staff/yongche_bg.png"
      class="banner"
      mode="widthFix"
    ></image>
@@ -10,20 +10,34 @@
      <view class="title">选择目的地类别</view>
      <view class="item" @click="$jump('/pages/staff/vehicle/shinei')">
        <image
          src="../../../static/bg_shineiyongche@2x.png"
          src="@/static/bg_shineiyongche@2x.png"
          class="img"
          mode="widthFix"
        ></image>
        <view class="h1">市内用车</view>
        <view class="h1">
          <text>市内用车</text>
          <image
            src="@/static/ic_enter_shinei@2x.png"
            class="icon"
            mode="widthFix"
          ></image>
        </view>
        <view class="h2">URBAN AREA</view>
      </view>
      <view class="item" @click="$jump('/pages/staff/vehicle/shiwai')">
        <image
          src="../../../static/bg_shiwaiyongche@2x.png"
          src="@/static/bg_shiwaiyongche@2x.png"
          class="img"
          mode="widthFix"
        ></image>
        <view class="h1">市外用车</view>
        <view class="h1">
          <text>市外用车</text>
          <image
            src="@/static/ic_enter_shiwai@2x.png"
            class="icon"
            mode="widthFix"
          ></image>
        </view>
        <view class="h2">SUBURB AREA</view>
      </view>
    </view>
@@ -70,6 +84,12 @@
        color: #222222;
        line-height: 48rpx;
        margin-bottom: 10rpx;
        display: flex;
        align-items: center;
        .icon{
          width: 32rpx;
          margin-left: 10rpx;
        }
      }
      .h2 {
        font-size: 22rpx;
h5/static/ic_driver@2x.png
h5/static/ic_enter_shinei@2x.png
h5/static/ic_enter_shiwai@2x.png
h5/static/ic_staff@2x.png
h5/static/ic_visitor@2x.png
h5/utils/service.js
@@ -37,7 +37,7 @@
                    }
                    if (data.code === 5112) {
                        uni.navigateTo({
                            url: '/pages/staffLogin/login'
                            url: '/pages/login/login'
                        })
                    }
                    resolve(data)