liukangdong
2024-05-27 1ca93a04e85633bee47e809c9618356f0a42a393
‘’
已添加1个文件
已修改8个文件
923 ■■■■ 文件已修改
h5/api/index.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/visitor.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages.json 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/answer/answer.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/applicationRecord/applicationRecord.vue 353 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/notice/notice.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/vehicle/shiwai.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/userinfo/userinfo.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/visitorApplication/visitorApplication.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/index.js
@@ -1,5 +1,6 @@
import { http } from '@/utils/service.js'
export * from '@/utils/config.js'
export * from './visitor'
// æŸ¥è¯¢å­—典值数据
export const getSystemDictData = (data) => {
@@ -9,15 +10,10 @@
  })
}
// èŽ·å–é¢˜ç›®æ•°æ®
export const getProblemsVO = () => {
export const getProblemsVO = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/problem/getProblemsVO'
  })
}
// è®¿å®¢é¢„约详情
export const visitorSubDetail = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/detail',
    url: 'visitsAdmin/cloudService/web/problem/getProblemsVO',
    method: 'get',
    data
  })
}
h5/api/visitor.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
import { http } from '@/utils/service.js'
import { methods } from 'uview-ui/libs/mixin/mixin'
// è®¿å®¢é¢„约详情
export const visitorSubDetail = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/detail',
    data
  })
}
// æäº¤è®¿å®¢ä¿¡æ¯
export const createFk = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/createFk',
    method: 'post',
    data
  })
}
// æŸ¥è¯¢è¢«è®¿äººåˆ—表
export const getVisitedMember = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/getVisitedMember',
    method: 'post',
    data
  })
}
// æŸ¥è¯¢æ¥è®¿äº‹ç”±
export const getVisitedVisitReason = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/visitReason',
    method: 'post',
    data
  })
}
// è®¿å®¢è®°å½•
export const getVisitedRecord = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/web/visitor/visitPage',
    method: 'post',
    data
  })
}
h5/pages.json
@@ -6,8 +6,7 @@
            "path": "pages/notice/notice",
            "style": {
                "navigationBarTitleText": "入园须知",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
                "enablePullDownRefresh": false
            }
        },
        {
@@ -321,38 +320,38 @@
        }
        ,{
            "path" : "pages/driver/queueUpRecord",
            "style" :
            {
                "navigationBarTitleText": "作业中车辆",
                "enablePullDownRefresh": false
            }
            "style" :
            {
                "navigationBarTitleText": "作业中车辆",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
            "path" : "pages/driver/taskDetail",
            "style" :
            {
                "navigationBarTitleText": "任务详情",
                "enablePullDownRefresh": false
            }
            "style" :
            {
                "navigationBarTitleText": "任务详情",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
            "path" : "pages/driver/reservedDetail",
            "style" :
            {
                "navigationBarTitleText": "访客审批",
                "enablePullDownRefresh": false
            }
            "style" :
            {
                "navigationBarTitleText": "访客审批",
                "enablePullDownRefresh": false
            }
            
        }
        ,{
            "path" : "pages/driver/taskConfirm",
            "style" :
            {
                "navigationBarTitleText": "确认任务",
                "enablePullDownRefresh": false
            }
            "style" :
            {
                "navigationBarTitleText": "确认任务",
                "enablePullDownRefresh": false
            }
            
        }
    ],
@@ -455,4 +454,4 @@
        "backgroundColor": "#ffffff"
    },
    "uniIdRouter": {}
}
}
h5/pages/answer/answer.vue
@@ -1,8 +1,8 @@
<template>
    <view class="box">
        <view class="box_bgimage" :style="{backgroundImage: 'url(' + bg + ')'}">
            <text class="box_bgimage_a">访客问卷小调研</text>
            <text class="box_bgimage_b">答题分值需要达到30分才能申请访问哦~</text>
            <text class="box_bgimage_a">{{ title }}</text>
            <text class="box_bgimage_b">{{ content }}</text>
        </view>
        <view class="box_list">
            <view class="box_list_answer" v-if="list && list.length > 0">
@@ -19,21 +19,27 @@
                </template> -->
                <!--    å•选   -->
                <view v-for="(item,index) in list"  :key="index" class="list_item">
                    <view class="box_list_answer_name">
                        {{index + 1}}、{{item.title}}
                    <template v-if="item.type == 1">
                        <view class="box_list_answer_name">
                        {{index + 1}}、{{item.title}}<text style="color:#ED4545;">*</text>
                    </view>
                    <view class="box_list_answer_item" v-for="(line, lIndex) in item.options" :key="lIndex" @click="select(index)">
                        <image src="@/static/video_error@2x.png"  />
                        <image src="@/static/video@2x.png"  />
                        <image src="@/static/video_sel@2x.png"  />
                        <text style="color: rgba(237, 69, 69, 1)" >{{line.code}} {{line.value}}</text>
                        <text >{{line.code}} {{line.value}}</text>
                        <text style="color: rgba(2, 94, 239, 1)" >{{line.code}} {{line.value}}</text>
                    <view class="box_list_answer_item" v-for="(line, lIndex) in item.options" :key="lIndex" @click="select(line, index)">
                        <image  src="@/static/video@2x.png" v-if="!item.selAnswer || item.selAnswer !== line.code" />
                        <image src="@/static/video_sel@2x.png" v-if="item.selAnswer && item.selAnswer == line.code && item.answer === item.selAnswer" />
                        <image src="@/static/video_error@2x.png" v-if="item.selAnswer && item.selAnswer == line.code && item.answer !== item.selAnswer" />
                        <text v-if="!item.selAnswer"><text class="mr24">{{line.code}}</text> {{line.value}}</text>
                        <text v-if="item.selAnswer && item.answer === item.selAnswer" style="color: rgba(2, 94, 239, 1)" ><text class="mr24" style="color: rgba(2, 94, 239, 1)">{{line.code}}</text> {{line.value}}</text>
                        <text v-if="item.selAnswer && item.answer !== item.selAnswer" style="color: rgba(237, 69, 69, 1)" ><text class="mr24" style="color: rgba(237, 69, 69, 1)">{{line.code}}</text> {{line.value}}</text>
                    </view>
                    <view class="box_list_answer_tips" v-if="success">
                    <view class="box_list_answer_tips" v-if="item.selAnswer && item.answer !== item.selAnswer">
                        <image src="@/static/ic_wrong@2x.png" />
                        <text>回答错误</text>
                    </view>
                    <view class="box_list_answer_tips" v-if="item.selAnswer && item.answer === item.selAnswer">
                        <image src="@/static/meeting/icon/ic_choose_sel@2x.png" />
                        <text>回答正确</text>
                    </view>
                    </template>
                </view>
                <view class="empty"></view>
                <view class="box_list_answer_btn" @click="next()">提交</view>
@@ -66,42 +72,7 @@
        data() {
            return {
                i: 0,
                problemIndex: 0,
                multiple: null,
                success: true,
                list: [
                    {
                        type: '1',
                        title: '第一题',
                        options: [
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                        ]
                    },
                    {
                        type: '1',
                        title: '第一题',
                        options: [
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                        ]
                    },
                    {
                        type: '1',
                        title: '第一题',
                        options: [
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                            { code: '年刊', value: '111111' },
                        ]
                    }
                ],
                list: [],
                bg: require("@/static/banner_dati.jpg"),
                title: '',
                content: ''
@@ -109,7 +80,7 @@
        },
        
        onLoad() {
            // this.getProblems()
            this.getProblems()
            this.getInfo()
        },
@@ -147,9 +118,11 @@
                                if (item.type === 1 || item.type === 2) {
                                    item.options = JSON.parse(item.options)
                                }
                                item.status = '0'
                                item.selAnswer = null
                            })
                            console.log('options', res.data);
                            this.list = res.data
                            console.log(this.list)
                        }
                        // res.param.problemsDOList.forEach(item => {
                        //     item.options = JSON.parse(item.options)
@@ -159,9 +132,13 @@
                    })
            },
            // å•选选择中题目
            select(index) {
                console.log(index)
                this.problemIndex = index
            select(line, i) {
                this.list.forEach((item,index)=>{
                    if(index === i){
                        item.selAnswer = line.code
                    }
                })
                // this.problemIndex = index
            },
            sort(arr) {
                arr.sort(function(a, b) {
h5/pages/applicationRecord/applicationRecord.vue
@@ -1,177 +1,194 @@
<template>
    <view class="box">
        <scroll-view scroll-x class="box_head">
            <view class="box_head_list">
                <view class="box_head_item active">全部</view>
                <view class="box_head_item">待审核</view>
                <view class="box_head_item">审核通过</view>
                <view class="box_head_item">审核驳回</view>
            </view>
        </scroll-view>
        <view class="box_list">
            <view class="box_list_item" v-for="(item, index) in 3" :key="index">
                <view class="box_list_item_head">
                    <text>丁恩凯的劳务入厂申请</text>
                    <text class="loading">待审核</text>
                </view>
                <view class="box_list_item_nr">
                    <view class="box_list_item_nr_item">
                        <text>被访问人:</text>
                        <text>人事部-王亚蓝</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>进厂时间:</text>
                        <text>12-12 09:00</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>离厂时间:</text>
                        <text>12-12 12:00</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>入厂人数:</text>
                        <text>10</text>
                    </view>
                    <view class="box_list_item_nr_item">
                        <text>来访事由:</text>
                        <text>业务来往</text>
                    </view>
                    <view class="box_list_item_nr_x"></view>
                    <view class="box_list_item_nr_text">
                        2023-12-12 09:00提交
                    </view>
                </view>
            </view>
        </view>
    </view>
  <view class="box">
    <scroll-view scroll-x class="box_head">
      <view class="box_head_list">
        <view class="box_head_item active">全部</view>
        <view class="box_head_item">待审核</view>
        <view class="box_head_item">审核通过</view>
        <view class="box_head_item">审核驳回</view>
      </view>
    </scroll-view>
    <view class="box_list">
      <view class="box_list_item" v-for="(item, index) in 3" :key="index">
        <view class="box_list_item_head">
          <text>丁恩凯的劳务入厂申请</text>
          <text class="loading">待审核</text>
        </view>
        <view class="box_list_item_nr">
          <view class="box_list_item_nr_item">
            <text>被访问人:</text>
            <text>人事部-王亚蓝</text>
          </view>
          <view class="box_list_item_nr_item">
            <text>进厂时间:</text>
            <text>12-12 09:00</text>
          </view>
          <view class="box_list_item_nr_item">
            <text>离厂时间:</text>
            <text>12-12 12:00</text>
          </view>
          <view class="box_list_item_nr_item">
            <text>入厂人数:</text>
            <text>10</text>
          </view>
          <view class="box_list_item_nr_item">
            <text>来访事由:</text>
            <text>业务来往</text>
          </view>
          <view class="box_list_item_nr_x"></view>
          <view class="box_list_item_nr_text"> 2023-12-12 09:00提交 </view>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        }
    }
import { getVisitedRecord } from '@/api'
export default {
  data() {
    return {
      pagination: {
        page: 1,
        capacity: 10
      },
      list: []
    }
  },
  onLoad() {
    this.getList()
  },
  methods: {
    getList() {
      const { pagination } = this
      getVisitedRecord({
        pageWrap: { ...pagination }
      }).then(res => {
        this.list = res.data
      })
    }
  }
}
</script>
<style>
    page {
        background-color: #F7F7F7 !important;
    }
page {
  background-color: #f7f7f7 !important;
}
</style>
<style lang="scss" scoped>
    .box {
        width: 100%;
        .box_head {
            width: 100%;
            height: 108rpx;
            padding: 0 30rpx;
            box-sizing: border-box;
            background: #FFFFFF;
            position: sticky;
            top: 0;
            left: 0;
            .box_head_list {
                width: 100%;
                height: 100%;
                display: flex;
                align-items: center;
                .active {
                    border: 1rpx solid #279BAA !important;
                    color: #279BAA !important;
                }
                .box_head_item {
                    padding: 0 30rpx;
                    height: 60rpx;
                    line-height: 60rpx;
                    box-sizing: border-box;
                    border-radius: 30rpx;
                    border: 1rpx solid #999999;
                    font-size: 26rpx;
                    font-weight: 400;
                    color: #333333;
                    margin-right: 20rpx;
                }
            }
        }
        .box_list {
            width: 100%;
            padding: 30rpx;
            box-sizing: border-box;
            .box_list_item {
                width: 100%;
                margin-bottom: 20rpx;
                &:last-child {
                    margin: 0 !important;
                }
                .box_list_item_head {
                    width: 100%;
                    height: 100rpx;
                    padding: 0 30rpx;
                    box-sizing: border-box;
                    background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
                    border-radius: 8rpx 8rpx 0rpx 0rpx;
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .loading {
                        color: #279BAA;
                    }
                    .success {
                        color: #03C68F;
                    }
                    .error {
                        color: #E0312A;
                    }
                    text {
                        &:nth-child(1) {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #222222;
                        }
                        &:nth-child(2) {
                            font-size: 26rpx;
                            font-weight: 400;
                        }
                    }
                }
                .box_list_item_nr {
                    padding: 30rpx;
                    width: 100%;
                    box-sizing: border-box;
                    background-color: #FFFFFF;
                    .box_list_item_nr_x {
                        width: 100%;
                        height: 1rpx;
                        background-color: #E5E5E5;
                    }
                    .box_list_item_nr_text {
                        width: 100%;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-top: 32rpx;
                    }
                    .box_list_item_nr_item {
                        width: 100%;
                        display: flex;
                        align-items: center;
                        margin-bottom: 20rpx;
                        text {
                            &:nth-child(1) {
                                font-size: 26rpx;
                                font-weight: 400;
                                color: #666666;
                            }
                            &:nth-child(2) {
                                font-size: 26rpx;
                                font-weight: 400;
                                color: #333333;
                            }
                        }
                    }
                }
            }
        }
    }
.box {
  width: 100%;
  .box_head {
    width: 100%;
    height: 108rpx;
    padding: 0 30rpx;
    box-sizing: border-box;
    background: #ffffff;
    position: sticky;
    top: 0;
    left: 0;
    .box_head_list {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      .active {
        border: 1rpx solid #279baa !important;
        color: #279baa !important;
      }
      .box_head_item {
        padding: 0 30rpx;
        height: 60rpx;
        line-height: 60rpx;
        box-sizing: border-box;
        border-radius: 30rpx;
        border: 1rpx solid #999999;
        font-size: 26rpx;
        font-weight: 400;
        color: #333333;
        margin-right: 20rpx;
      }
    }
  }
  .box_list {
    width: 100%;
    padding: 30rpx;
    box-sizing: border-box;
    .box_list_item {
      width: 100%;
      margin-bottom: 20rpx;
      &:last-child {
        margin: 0 !important;
      }
      .box_list_item_head {
        width: 100%;
        height: 100rpx;
        padding: 0 30rpx;
        box-sizing: border-box;
        background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
        border-radius: 8rpx 8rpx 0rpx 0rpx;
        display: flex;
        align-items: center;
        justify-content: space-between;
        .loading {
          color: #279baa;
        }
        .success {
          color: #03c68f;
        }
        .error {
          color: #e0312a;
        }
        text {
          &:nth-child(1) {
            font-size: 32rpx;
            font-weight: 500;
            color: #222222;
          }
          &:nth-child(2) {
            font-size: 26rpx;
            font-weight: 400;
          }
        }
      }
      .box_list_item_nr {
        padding: 30rpx;
        width: 100%;
        box-sizing: border-box;
        background-color: #ffffff;
        .box_list_item_nr_x {
          width: 100%;
          height: 1rpx;
          background-color: #e5e5e5;
        }
        .box_list_item_nr_text {
          width: 100%;
          font-size: 26rpx;
          font-weight: 400;
          color: #999999;
          margin-top: 32rpx;
        }
        .box_list_item_nr_item {
          width: 100%;
          display: flex;
          align-items: center;
          margin-bottom: 20rpx;
          text {
            &:nth-child(1) {
              font-size: 26rpx;
              font-weight: 400;
              color: #666666;
            }
            &:nth-child(2) {
              font-size: 26rpx;
              font-weight: 400;
              color: #333333;
            }
          }
        }
      }
    }
  }
}
</style>
h5/pages/notice/notice.vue
@@ -1,146 +1,106 @@
<template>
    <div class="container">
        <video src="https://vdept3.bdstatic.com/mda-nj7gwfue9kdnbtsh/sc/cae_h264/1665488517815949255/mda-nj7gwfue9kdnbtsh.mp4?v_from_s=hkapp-haokan-hbe&auth_key=1715141591-0-0-6dfdf4d4c3d94b60b9adeb53368a72f3&bcevod_channel=searchbox_feed&pd=1&cr=2&cd=0&pt=3&logid=0791905773&vid=13790089500387859718&klogid=0791905773&abtest="></video>
        <scroll-view scroll-y class="content">
            <div class="title">安泰物流厂外来人员安全告知</div>
            <div class="text">
                <div>{{ content }}</div>
            </div>
            <div class="empty"></div>
        </scroll-view>
        <div class="button" @click="toapply">确认了解</div>
    </div>
  <div class="container">
    <!-- <video
      src="https://vdept3.bdstatic.com/mda-nj7gwfue9kdnbtsh/sc/cae_h264/1665488517815949255/mda-nj7gwfue9kdnbtsh.mp4?v_from_s=hkapp-haokan-hbe&auth_key=1715141591-0-0-6dfdf4d4c3d94b60b9adeb53368a72f3&bcevod_channel=searchbox_feed&pd=1&cr=2&cd=0&pt=3&logid=0791905773&vid=13790089500387859718&klogid=0791905773&abtest="
    ></video> -->
    <scroll-view scroll-y class="content">
      <div>
        <div v-html="content"></div>
      </div>
      <div class="empty"></div>
    </scroll-view>
    <div class="button" @click="toapply">确认了解</div>
  </div>
</template>
<script>
    export default {
        name: 'Index',
        data() {
            return {
                content: `
                1确认了解确认了解确认了解确认了解确认了解确认了解
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£ç¡®è®¤äº†è§£
                `,
                answer: ''
            }
        },
        onLoad() {
            // this.getInfo()
        },
        methods: {
            getInfo() {
                // å…¥åœºé¡»çŸ¥è¯¦æƒ…
                this.$u.api.getSystemDictData({
                    dictCode: 'SYSTEM',
                    label: 'VISIT_NOTICE'
                }).then(res => {
                    if (res.code === 200) {
                        this.content = res.data.code
                    }
                })
                // æ˜¯å¦éœ€è¦ç­”题
                this.$u.api.getSystemDictData({
                    dictCode: 'SYSTEM',
                    label: 'PROBLEM_VISIT_REQUIRED'
                }).then(res => {
                    if (res.code === 200) {
                        this.answer = res.data.code
                    }
                })
            },
            toapply() {
                if (this.answer === '0') {
                    uni.navigateTo({
                        url: '/pages/userinfo/userinfo'
                    })
                } else {
                    uni.navigateTo({
                        url: '/pages/answer/answer'
                    })
                }
            }
        }
    }
import { getSystemDictData } from "@/api"
export default {
  name: 'Index',
  data() {
    return {
      content: ``,
      answer: ''
    }
  },
  onLoad() {
    this.getInfo()
  },
  methods: {
    getInfo() {
      // å…¥åœºé¡»çŸ¥è¯¦æƒ…
      getSystemDictData({
        dictCode: 'SYSTEM',
        label: 'VISIT_NOTICE'
      }).then(res => {
        if (res.code === 200) {
          this.content = res.data.code
        }
      })
      // æ˜¯å¦éœ€è¦ç­”题
      getSystemDictData({
        dictCode: 'SYSTEM',
        label: 'PROBLEM_VISIT_REQUIRED'
      }).then(res => {
        if (res.code === 200) {
          this.answer = res.data.code
        }
      })
    },
    toapply() {
      if (this.answer === '0') {
        uni.navigateTo({
          url: '/pages/userinfo/userinfo'
        })
      } else {
        uni.navigateTo({
          url: '/pages/answer/answer'
        })
      }
    }
  }
}
</script>
<style lang="scss" scoped>
    .container {
        width: 100%;
        height: 100vh;
        padding: 10rpx 30rpx 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        video{
            width: 690rpx;
            height: 388rpx;
            margin-bottom: 10rpx;
        }
        .content {
            height: calc( 100% - 400rpx );
            .title{
                color: #333333;
                font-weight: 500;
                margin-bottom: 16rpx;
            }
            .text{
                font-weight: 350;
            }
            .empty{
                height: 160rpx;
            }
        }
        .button {
            width: 690rpx;
            height: 88rpx;
            line-height: 88rpx;
            text-align: center;
            background: #4d99a8;
            border-radius: 44rpx;
            font-size: 32rpx;
            color: #FFFFFF;
            position: absolute;
            bottom: 42rpx;
            left: 30rpx;
        }
    }
.container {
  width: 100%;
  height: 100vh;
  padding: 10rpx 30rpx 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  video {
    width: 690rpx;
    height: 388rpx;
    margin-bottom: 10rpx;
  }
  .content {
    height: calc(100% - 170rpx);
    .title {
      color: #333333;
      font-weight: 500;
      margin-bottom: 16rpx;
    }
    .text {
      font-weight: 350;
    }
    .empty {
      height: 160rpx;
    }
  }
  .button {
    width: 690rpx;
    height: 88rpx;
    line-height: 88rpx;
    text-align: center;
    background: #4d99a8;
    border-radius: 44rpx;
    font-size: 32rpx;
    color: #ffffff;
    position: absolute;
    bottom: 42rpx;
    left: 30rpx;
  }
}
</style>
h5/pages/staff/vehicle/shiwai.vue
@@ -75,13 +75,7 @@
            @confirm="seletedDate"
            @cancel="isShowDate = false"
        />
        <uni-datetime-picker
                        v-model="datetimerange"
                        type="datetimerange"
                        start="2021-3-20 12:00:00"
                        end="2021-6-20 20:00:00"
                        rangeSeparator="至"
                    />
    </view>
</template>
h5/pages/userinfo/userinfo.vue
@@ -10,7 +10,7 @@
            <view class="cell">
                <view class="title"><b>*</b>手机号</view>
                <view class="content">
                    <input class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="请输入您的手机号" />
                    <input type="number" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="请输入您的手机号" />
                </view>
            </view>
            <view class="cell">
@@ -75,6 +75,7 @@
    import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
    import { mapState } from 'vuex'
    import { uploadUrl } from "@/utils/config"
    import { getSystemDictData, visitorSub } from '@/api'
    export default {
        data() {
            return {
@@ -130,7 +131,7 @@
                }
            }
            this.visitorData.userAnswerId = option.userAnswerId
            this.getVisit()
            // this.getVisit()
            // uni.$on('update', (data) => {
            //     this.uploadImg(data.tempFilePath)
            // })
@@ -138,9 +139,7 @@
        methods: {
            submit() {
                uni.navigateTo({
                    url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
                });
                const { visitorData } = this
                if (!this.visitorData.name) return uni.showToast({
                    title: '姓名不能为空',
                    icon: 'none'
@@ -177,19 +176,19 @@
                    title: '人脸照片不能为空',
                    icon: 'none'
                })
                if (this.visit === '1') {
                    if (!this.visitorData.imgurl) return uni.showToast({
                        title: '健康证不能为空',
                        icon: 'none'
                    })
                }
                // if (this.visit === '1') {
                //     if (!this.visitorData.imgurl) return uni.showToast({
                //         title: '健康证不能为空',
                //         icon: 'none'
                //     })
                // }
                uni.navigateTo({
                    url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
                });
            },
            getVisit() {
                // æ˜¯å¦éœ€è¦ç­”题
                this.$u.api.getSystemDictData({
                // æ˜¯å¦éœ€è¦ å¥åº·è¯
                getSystemDictData({
                    dictCode: 'SYSTEM',
                    label: 'HEALTH_CARD'
                }).then(res => {
h5/pages/visitorApplication/visitorApplication.vue
@@ -26,7 +26,7 @@
                    <text>*</text>
                </view>
                <view class="list_item_content" @click="showName = true">
                    <text :style="{color: form1.name ? '#000000' : ''}">{{form1.name ? form1.name : '请选择'}}</text>
                    <text :style="{color: form1.receptMemberName ? '#000000' : ''}">{{form1.receptMemberName ? form1.receptMemberName : '请选择'}}</text>
                    <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
                </view>
            </view>
@@ -50,25 +50,25 @@
                    <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
                </view>
            </view>
            <view class="list_item" v-if="accessControl === '1'" @click="show = true">
            <!-- <view class="list_item" v-if="accessControl === '1'" @click="show = true">
                <view class="list_item_label">
                    <text>访问门禁</text>
                    <text>*</text>
                </view>
                 <!-- @click="show6 = true" -->
                <view class="list_item_content">
                    <text :style="{color: form1.doorSelectName ? '#000000' : ''}">{{form1.doorSelectName ? form1.doorSelectName : '请选择'}}</text>
                    <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
                </view>
            </view>
            </view> -->
            <div class="empty"></div>
            <view class="list_item">
                <view class="list_item_label">
                    <text>拜访事由</text>
                    <text>*</text>
                </view>
                <view class="list_item_content">
                    <input type="text" v-model="form1.reason" placeholder="请输入来访事由" placeholder-style="color: #999999;" />
                <view class="list_item_content" @click="showReason = true">
                    <text :style="{color: form1.reason ? '#000000' : ''}">{{form1.reason ? form1.reason : '请选择拜访事由'}}</text>
                    <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
                </view>
            </view>
            <view class="list_item">
@@ -80,13 +80,13 @@
                    <switch color="#4e99a9" style="transform:scale(0.8)" @change="constructionChange" />
                </view>
            </view>
            <view class="list_item">
            <view v-if="form1.type == '1'" class="list_item">
                <view class="list_item_label">
                    <text>施工内容</text>
                    <text>*</text>
                </view>
                <view class="list_item_content">
                    <input type="text" v-model="form1.ss" placeholder="请输入施工内容" placeholder-style="color: #999999;" />
                    <input type="text" v-model="form1.constructionReason" placeholder="请输入施工内容" placeholder-style="color: #999999;" />
                </view>
            </view>
            <view class="list_item">
@@ -100,29 +100,9 @@
                </view>
            </view>
        </view>
        <!-- <view class="cate">
            <view class="cate_head">车辆信息</view>
            <view class="cate_list">
                <view class="cate_list_item" v-for="(item, index) in cars" :key="index">
                    <text>{{item}}</text>
                    <u-icon name="close" color="#999999" size="20" @click="deleCars(index)"></u-icon>
                </view>
            </view>
            <view class="cate_add" @click="show2 = true">+添加车辆</view>
        </view> -->
        <view class="cate">
            <view class="cate_head">随访人员信息</view>
            <view class="cate_list">
                <view class="cate_list_item" v-for="(item,index) in personnel" :key="index">
                    <text>{{item.name}}</text>
                    <u-icon name="close" color="#999999" size="20" @click="deleUser(index)"></u-icon>
                </view>
            </view>
            <view class="cate_add" @click="show3 = true">+添加随访人员</view>
        </view>
        <view class="zw"></view>
        <view class="footer">
            <view class="footer_btn" @click="submit">提交</view>
            <view class="footer_btn" @click="onSubmit">提交</view>
        </view>
        <!-- å…¥åœºæ—¶é—´ -->
        <u-datetime-picker
@@ -130,7 +110,7 @@
            :minDate="new Date().getTime()"
            mode="datetime"
            @cancel="show4 = false"
            @confirm="setinDate"
            @confirm="setstarttime"
        ></u-datetime-picker>
        <!-- ç¦»åœºæ—¶é—´ -->
        <u-datetime-picker
@@ -139,7 +119,7 @@
            :minDate="formatTimeStamp(form1.starttime)"
            mode="datetime"
            @cancel="show5 = false"
            @confirm="setoutDate"
            @confirm="setendtime"
        ></u-datetime-picker>
        <!-- é—¨ç¦ -->
        <u-popup :show="show" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="closeMJ">
@@ -311,7 +291,8 @@
            </view>
        </u-popup>
        <u-picker keyName="name" :show="show6" :columns="columns1" @confirm="seleIdcard" @cancel="show6 = false"></u-picker>
        <u-picker keyName="name" :show="showName" :columns="columnsNames" @confirm="selectedName" @cancel="showName = false"></u-picker>
        <u-picker keyName="name" :show="showName" :columns="VisitPoeple" @confirm="selectedName" @cancel="showName = false"></u-picker>
        <u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason" @cancel="showReason = false"></u-picker>
        <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
        <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
        <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="30" @crop="uploadImg"></qf-image-cropper>
@@ -323,6 +304,12 @@
    import keyboardInput from "@/components/keyboard-input/keyboard-input.vue";
    import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
    import { getDaysAfterDate } from '@/utils/utils.js'
    import {
        getVisitedMember,
        getSystemDictData,
        getVisitedVisitReason,
        createFk
 } from '@/api'
    export default {
        data() {
            return {
@@ -338,13 +325,13 @@
                show5: false,
                show6: false,
                show7: false,
                showReason: false,
                fileList: [],
                columns1: [
                    [{name: '身份证', id: 0}, {name: '港澳证件', id: 1},{name: '护照', id: 2}],
                ],
                columnsNames: [
                    [{name: '张三', id: 0},{name: '张三', id: 1},{name: '张三', id: 2},]
                ],
                VisitReason: [],
                VisitPoeple: [],
                columns: [],
                cars: [],
                day: null,
@@ -361,7 +348,8 @@
                    doors: '',
                    doorSelectName: '',
                    reason: '',
                    carNos: ''
                    carNos: '',
                    type: 0
                },
                withUserList: {
                    name: '',
@@ -386,9 +374,11 @@
            if (options.data) {
                this.form = JSON.parse(options.data)
            }
            console.log('this.form', this.form);
            // this.getvisit()
            // this.getVisit1()
            // this.getUserValid()
            this.getUser()
        },
        methods: {
            openInput(type) {
@@ -409,6 +399,8 @@
            },
            constructionChange(e) {
                console.log(e.detail.value);
                this.form1.type = Number(e.detail.value)
                console.log(this.form1.type);
            },
            uploadImg(file) {
                this.$refs.cropper.close()
@@ -436,7 +428,7 @@
                    item.active = false
                })
            },
            submit() {
            onSubmit() {
                if (!this.form1.receptMemberId) return uni.showToast({
                    title: '请填写有效的访问人',
                    icon: 'none'
@@ -462,7 +454,7 @@
                let data = JSON.parse(JSON.stringify(this.form1))
                data.starttime = data.starttime + ':00'
                data.endtime = data.endtime + ':00'
                this.$u.api.createFk({
                createFk({
                    ...this.form,
                    ...data,
                    openid: this.$store.state.openId,
@@ -489,7 +481,7 @@
                    }
                })
                // èµ·å§‹æ—¶é—´æ—¶é•¿
                this.$u.api.getSystemDictData({
                getSystemDictData({
                    dictCode: 'VISIT_CONFIG',
                    label: 'VALIDATE_VISIT'
                }).then(res => {
@@ -599,9 +591,15 @@
                this.show6 = false
            },
            selectedName(e) {
                this.form1.name = e.value[0].name
                this.form1.id = e.value[0].id
                this.form1.receptMemberName = e.value[0].name
                this.form1.receptMemberId = e.value[0].id
                this.form1.receptMemberDepartment = e.value[0].companyId
                this.showName = false
            },
            selectedReason(e) {
                this.form1.reason = e.value[0].title
                console.log(e.value[0].title);
                this.showReason = false
            },
            submitCart() {
                if (!this.carName) return uni.showToast({
@@ -648,14 +646,14 @@
                })
                this.show5 = true
            },
            setinDate(e) {
            setstarttime(e) {
                this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
                // this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'), this.day)
                this.maxTime = this.form1.starttime
                console.log(this.form1.starttime);
                this.show4 = false
            },
            setoutDate(e) {
            setendtime(e) {
                this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
                this.show5 = false
            },
@@ -664,34 +662,16 @@
            },
            // æŸ¥è¯¢ç”¨æˆ·
            getUser() {
                if (this.verify === '0') {
                    if (this.form1.phone1) {
                        this.$u.api.getVisitedMember({
                            mobile: this.form1.phone1
                        }).then(res => {
                            if (res.code === 200) {
                                this.form1.receptMemberId = res.data.id
                                this.form1.receptMemberName = res.data.name
                            }
                        })
                    }
                } else {
                    if (this.form1.phone1 && this.form1.receptMemberName) {
                        this.$u.api.getVisitedMember({
                            mobile: this.form1.phone1,
                            name: this.form1.receptMemberName
                        }).then(res => {
                            if (res.code === 200) {
                                this.form1.receptMemberId = res.data.id
                                this.form1.receptMemberName = res.data.name
                            }
                        })
                    }
                }
                getVisitedMember().then(res => {
                    this.VisitPoeple = [res.data || []]
                })
                getVisitedVisitReason({}).then(res => {
                    this.VisitReason = [res.data || []]
                })
            },
            // è¢«æ‹œè®¿äººä¿¡æ¯æ ¡éªŒæ–¹å¼ï¼ˆ0手机号单独校验 1手机号和姓名组合校验)
            getUserValid() {
                this.$u.api.getSystemDictData({
                getSystemDictData({
                    dictCode: 'SYSTEM',
                    label: 'BEVISITED_USER_VALID'
                }).then(res => {
@@ -702,7 +682,7 @@
            },
            // èŽ·å–æ˜¯å¦éœ€è¦é€‰æ‹©é—¨ç¦/门禁列表
            getvisit() {
                this.$u.api.getSystemDictData({
                getSystemDictData({
                    dictCode: 'SYSTEM',
                    label: 'SELECT_DOORS_VISIT_REQUIRED'
                }).then(res => {