master
lion 5 months ago
parent 9e330c52b4
commit 44519bb106

@ -3,8 +3,9 @@
<u-popup :show="show" @close="cancel">
<view class="title" style="font-size: 50rpx;text-align: center;padding: 20rpx 0;">{{popupTitle}}</view>
<view style="padding: 20rpx;">
<u-search v-if="showSearch" @custom="search" @search="search" :placeholder="placeholder"
<u-search v-if="showSearch" @custom="search" @search="search" placeholder="请输入/Please enter"
v-model="keyword"></u-search>
<view class="en-text">{{placeholderEnText}}</view>
<u-gap v-if="showSearch" height="15"></u-gap>
<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltolower="$emit('lower')">
@ -31,11 +32,11 @@
<view class="bottons">
<u-row>
<u-col customStyle="padding:0 10rpx 20rpx 20rpx" span="6">
<u-button @click="cancel"></u-button>
<u-button @click="cancel">/Cancel</u-button>
</u-col>
<u-col customStyle="padding:0 20rpx 20rpx 10rpx" span="6">
<u-button @click="submit" type="primary" throttleTime="1000"
:disabled="(JSON.stringify(radioData) === '{}') && (checkboxData.length === 0)">确认</u-button>
:disabled="(JSON.stringify(radioData) === '{}') && (checkboxData.length === 0)">确认/Confirm</u-button>
</u-col>
</u-row>
</view>
@ -93,6 +94,9 @@
placeholder: {
default: '请输入搜索内容'
},
placeholderEnText:{
default: '',
},
labelKey: {
default: 'name',
type: String
@ -120,15 +124,15 @@
this.radioData = this.dataLists[n]
},
//
search() {
this.radioData = {}
this.checkboxData = []
this.radioValue = ''
search() {
this.radioData = {}
this.checkboxData = []
this.radioValue = ''
this.checkboxValue = []
this.$emit('search', this.keyword)
},
//
cancel() {
cancel() {
this.keyword = ''
this.$emit('cancel')
},
@ -138,14 +142,14 @@
if (JSON.stringify(this.radioData) == '{}') {
uni.$u.toast('请选择数据')
return;
}
}
this.keyword = ''
this.$emit('submit', this.radioData)
} else if (this.type == 'checkbox') {
if (this.checkboxData.length == 0) {
uni.$u.toast('请选择数据')
return;
}
}
this.keyword = ''
this.$emit('submit', this.checkboxData)
}
@ -193,4 +197,10 @@
bottom: constant(safe-area-inset-bottom);
bottom: env(safe-area-inset-bottom);
}
.en-text {
font-size: 24rpx;
color: #999;
margin-top: 4rpx;
font-weight: normal;
}
</style>

@ -67,7 +67,7 @@
],
"globalStyle": {
"navigationBarTextStyle": "#FFFFFF",
"navigationBarTitleText": "迈柯唯访客系统",
"navigationBarTitleText": "迈柯唯访客系统 Visitor System",
"navigationBarBackgroundColor": "#182849",
"backgroundColor": "#f4f1f1"
}

@ -8,27 +8,58 @@
<view class="dbstatus bm">
<view>{{info.audit_status_text}}</view>
<view>
<view>访问日期{{info.date}}{{ info.end_date?'至'+info.end_date:'' }}</view>
<view>访问时间{{info.visit_time.start_time}}{{info.visit_time.end_time}}</view>
<view class="label-with-en-inline">
<view>访问日期{{info.date}}{{ info.end_date?'至'+info.end_date:'' }}</view>
<view class="en-text">Visit Date: {{info.date}}{{ info.end_date?' to '+info.end_date:'' }}</view>
</view>
<view class="label-with-en-inline">
<view>访问时间{{info.visit_time.start_time}}{{info.visit_time.end_time}}</view>
<view class="en-text">Visit Time: {{info.visit_time.start_time}} to {{info.visit_time.end_time}}</view>
</view>
</view>
<view v-if="info.type=='2'" class="label-with-en-inline">
<view>施工时段{{info.work_start_time}}{{info.work_end_time}}</view>
<view class="en-text">Work Time: {{info.work_start_time}} to {{info.work_end_time}}</view>
</view>
<view v-if="info.type=='2'">{{info.work_start_time}}{{info.work_end_time}}</view>
</view>
<view class="dbinfo justify-left">
<view>
<view>被访人<text>{{info.accept_admin.name}}</text></view>
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view>访问区域<text>{{info.visit_area.name}}</text></view>
<view class="label-with-en-inline">
<view>被访人<text>{{info.accept_admin.name}}</text></view>
<view class="en-text">Host: <text>{{info.accept_admin.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_admin.department.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>访问区域<text>{{info.visit_area.name}}</text></view>
<view class="en-text">Visit Area: <text>{{info.visit_area.name}}</text></view>
</view>
</view>
<view>
<view>拜访人<text>{{info.name}}</text></view>
<view>电话{{info.mobile}}</view>
<view v-if="info.type=='1'"><text>{{info.reason?info.reason:''}}</text></view>
<view v-else-if="info.type=='3'">车辆<text>{{info.plate}}</text></view>
<view class="label-with-en-inline">
<view>拜访人<text>{{info.name}}</text></view>
<view class="en-text">Visitor: <text>{{info.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>电话{{info.mobile}}</view>
<view class="en-text">Phone: {{info.mobile}}</view>
</view>
<view v-if="info.type=='1'" class="label-with-en-inline">
<view>事由<text>{{info.reason?info.reason:''}}</text></view>
<view class="en-text">Reason: <text>{{info.reason?info.reason:''}}</text></view>
</view>
<view v-else-if="info.type=='3'" class="label-with-en-inline">
<view>车辆<text>{{info.plate}}</text></view>
<view class="en-text">Vehicle: <text>{{info.plate}}</text></view>
</view>
</view>
</view>
<view class="company">
<view>
拜访公司<text>{{info.company_name?info.company_name:''}}</text>
<view class="label-with-en-inline">
<view>拜访公司<text>{{info.company_name?info.company_name:''}}</text></view>
<view class="en-text">Company: <text>{{info.company_name?info.company_name:''}}</text></view>
</view>
</view>
@ -40,79 +71,111 @@
</view>
</view>
<template v-if="info.type!='3'">
<view class="dbtext">随访人员</view>
<view class="dbtext label-with-en-inline">
<view>随访人员</view>
<view class="en-text">Accompanying Personnel</view>
</view>
<view class="dbitem sfyritem">
<template v-if="info.follw_people && info.follw_people.length>0">
<view class="dbinfo justify-left" v-for="people in info.follw_people">
<view class="dbinfo justify-left" v-for="(people, idx) in info.follw_people" :key="idx">
<view>
<view>
随访人<text>{{people.name}}</text>
<view class="label-with-en-inline">
<view>随访人<text>{{people.name}}</text></view>
<view class="en-text">Accompanying Person: <text>{{people.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>证件类型<text>{{people.credent==1?'身份证':'护照'}}</text></view>
<view class="en-text">ID Type: <text>{{people.credent==1?'ID Card':'Passport'}}</text></view>
</view>
<view class="label-with-en-inline">
<view>证件号<text>{{people.idcard}}</text></view>
<view class="en-text">ID Number: <text>{{people.idcard}}</text></view>
</view>
<view>证件类型<text>{{people.credent==1?'身份证':'护照'}}</text></view>
<view>证件号<text>{{people.idcard}}</text></view>
</view>
<view>
电话<text>{{people.mobile}}</text>
<view class="label-with-en-inline">
<view>电话<text>{{people.mobile}}</text></view>
<view class="en-text">Phone: <text>{{people.mobile}}</text></view>
</view>
</view>
</template>
<template v-else>
<view class="dbinfo justify-left">
<view class="dbinfo justify-left label-with-en-inline">
<view></view>
<view class="en-text">None</view>
</view>
</template>
</view>
</template>
<template>
<view class="dbtext">到访车辆</view>
<view class="dbtext label-with-en-inline">
<view>到访车辆</view>
<view class="en-text">Visit Vehicles</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo dbcars" v-if="info.cars && info.cars.length>0">
<view class="onechild" v-for="item in info.cars">
车牌<text>{{item?item:'无'}}</text>
<view class="onechild label-with-en-inline" v-for="(item, idx) in info.cars" :key="idx">
<view>车牌<text>{{item?item:'无'}}</text></view>
<view class="en-text">License Plate: <text>{{item?item:'None'}}</text></view>
</view>
</view>
<view class="dbinfo dbcars" v-else>
<view class="onechild">
<view class="onechild label-with-en-inline">
<view></view>
<view class="en-text">None</view>
</view>
</view>
</view>
</template>
<template v-if="info.type=='3'">
<view class="dbtext">收货人</view>
<view class="dbtext label-with-en-inline">
<view>收货人</view>
<view class="en-text">Consignee</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accept_goods_admin.department.name}}</text>
<view class="label-with-en-inline">
<view>部门<text>{{info.accept_goods_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_goods_admin.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accept_goods_admin.name}}</text>
<view class="label-with-en-inline">
<view>人员<text>{{info.accept_goods_admin.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accept_goods_admin.name}}</text></view>
</view>
</view>
</view>
</template>
<view class="dbtext">被访人员</view>
<view class="dbtext label-with-en-inline">
<view>被访人员</view>
<view class="en-text">Visited Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accept_admin.department.name}}</text>
<view class="label-with-en-inline">
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_admin.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accept_admin.name}}</text>
<view class="label-with-en-inline">
<view>人员<text>{{info.accept_admin.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accept_admin.name}}</text></view>
</view>
</view>
</view>
<block v-if="info.visit_area.name=='生产区'">
<view class="dbtext">陪同人员</view>
<view class="dbtext label-with-en-inline">
<view>陪同人员</view>
<view class="en-text">Escort Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accompany.department.name}}</text>
<view class="label-with-en-inline">
<view>部门<text>{{info.accompany.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accompany.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accompany.name}}</text>
<view class="label-with-en-inline">
<view>人员<text>{{info.accompany.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accompany.name}}</text></view>
</view>
</view>
</view>
@ -130,21 +193,40 @@
<!-- 审核 -->
<view class="dbtext" v-if="info.audit_status==0"></view>
<view class="dbtext label-with-en-inline" v-if="info.audit_status==0">
<view>审核</view>
<view class="en-text">Review</view>
</view>
<view class="checkforms dbitem" style="padding-top:30rpx" v-if="info.audit_status==0&&isCheck">
<uni-forms ref="formdata" :model="checkForm" :rules="rules" labelWidth="100px" >
<uni-forms-item label="状态" required name="status">
<uni-forms ref="formdata" :model="checkForm" :rules="rules" labelWidth="140px" >
<uni-forms-item required name="status">
<template slot="label">
<view class="label-with-en-inline">
<view>状态</view>
<view class="en-text">Status</view>
</view>
</template>
<uni-data-checkbox v-model="checkForm.status" :localdata="statusList"/>
</uni-forms-item>
<uni-forms-item label="备注">
<uni-easyinput type="textarea" v-model="checkForm.reason" placeholder="请输入备注" />
<uni-forms-item>
<template slot="label">
<view class="label-with-en-inline">
<view>备注</view>
<view class="en-text">Remarks</view>
</view>
</template>
<uni-easyinput type="textarea" v-model="checkForm.reason" placeholder="请输入备注 / Please enter remarks" />
</uni-forms-item>
</uni-forms>
<button type="primary" style="background-color: #4f607e;" @click="checkSubmit"></button>
<button type="primary" style="background-color: #4f607e;" @click="checkSubmit" class="button-with-en">
<view>审核</view>
<view class="en-text">Review</view>
</button>
</view>
<view class="checkforms dbitem" style="padding-top:30rpx" v-if="info.audit_status==0&&!isCheck">
{{checkText}}
<view class="checkforms dbitem label-with-en-inline" style="padding-top:30rpx" v-if="info.audit_status==0&&!isCheck">
<view>{{checkText}}</view>
<view class="en-text">{{checkTextEn}}</view>
</view>
</view>
@ -157,11 +239,12 @@
<script>
import '@/static/css/bd.css'
export default {
data() {
data() {
return {
id: "",
info: {},
checkText:'',
checkTextEn:'',
checkLevel:[{
id:1,
value:'请等待一级审核完成'
@ -183,18 +266,20 @@
status: {
rules: [{
required: true,
errorMessage: '请选择状态'
errorMessage: '请选择状态 / Please select status'
}]
}
},
statusList: [
{
value: 1,
text: "通过"
text: "通过",
textEn: "Approve"
},
{
value: 2,
text: "驳回"
text: "驳回",
textEn: "Reject"
},
],
check_admin_name: "",
@ -266,6 +351,7 @@
return
}else{
that.checkText = "请等待"+item.audit_admin.name+"审核"
that.checkTextEn = "Please wait for "+item.audit_admin.name+" review"
// that.checkLevel.map(item1=>{
// if(item.level==item1.id){
// that.checkText = item1.value
@ -335,4 +421,41 @@
.company text{
color: #8f9596;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.en-text {
font-size: 20rpx;
color: #8f9596;
margin-top: 4rpx;
opacity: 0.8;
}
.dbtext.label-with-en-inline {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-left: 30rpx;
}
.button-with-en {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.button-with-en .en-text {
font-size: 18rpx;
margin-top: 4rpx;
}
/deep/ .uni-forms-item__label {
width: 140px;
min-width: 140px;
}
</style>

@ -18,13 +18,19 @@
</view>
<view @click='logout'>
<u--image :src="logo" width="280rpx" height="41rpx"></u--image>
<view class="logout" >退出</view>
<view class="logout label-with-en-inline">
<view>退出</view>
<view class="en-text">Logout</view>
</view>
</view>
</view>
<view class="search">
<view class="justify-between align-center">
<view>搜索</view>
<view class="label-with-en-inline">
<view>搜索</view>
<view class="en-text">Search</view>
</view>
<u--image :src="searchlogo" width="30rpx" height="27rpx"></u--image>
</view>
<view>
@ -36,14 +42,20 @@
</view>
<view class="mine">
<view class="mineicon justify-between align-center">
<view v-for="item in iconList">
<view v-for="(item, index) in iconList" :key="index">
<u--image @click="toUrl(item.isyy,item.url)" :src="item.src" width="145rpx" height="149rpx">
</u--image>
<view class="icontext">{{item.text}}</view>
<view class="icontext label-with-en-inline">
<view>{{item.text}}</view>
<view class="en-text">{{item.textEn}}</view>
</view>
</view>
</view>
<view class="db">
<view>待办</view>
<view class="label-with-en-inline">
<view>待办</view>
<view class="en-text">To Do</view>
</view>
<view class="dblist">
<view>
@ -53,26 +65,54 @@
<view class="dbstatus bm">
<view>{{item.audit_status_text}}</view>
<view>
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="label-with-en-inline">
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view class="en-text">Visit Date: {{item.date}}{{ item.end_date?' to '+item.end_date:'' }}</view>
</view>
<view class="label-with-en-inline">
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="en-text">Visit Time: {{item.visit_time.start_time}} to {{item.visit_time.end_time}}</view>
</view>
</view>
</view>
<view class="dbinfo justify-left">
<view>
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="label-with-en-inline">
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view class="en-text">Host: <text>{{item.accept_admin.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{item.accept_admin.department.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="en-text">Visit Area: <text>{{item.visit_area.name}}</text></view>
</view>
</view>
<view>
<view>拜访人<text>{{item.name}}</text></view>
<view>电话{{item.mobile}}</view>
<view v-if="item.type=='1'"><text>{{item.reason?info.reason:''}}</text></view>
<view v-else-if="item.type=='3'">车牌<text>{{item.plate}}</text></view>
<view class="label-with-en-inline">
<view>拜访人<text>{{item.name}}</text></view>
<view class="en-text">Visitor: <text>{{item.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>电话{{item.mobile}}</view>
<view class="en-text">Phone: {{item.mobile}}</view>
</view>
<view v-if="item.type=='1'" class="label-with-en-inline">
<view>事由<text>{{item.reason}}</text></view>
<view class="en-text">Reason: <text>{{item.reason}}</text></view>
</view>
<view v-else-if="item.type=='3'" class="label-with-en-inline">
<view>车牌<text>{{item.plate}}</text></view>
<view class="en-text">License Plate: <text>{{item.plate}}</text></view>
</view>
</view>
</view>
<view class="company">
<view>
拜访公司<text>{{item.company_name?item.company_name:''}}</text>
<view class="label-with-en-inline">
<view>拜访公司<text>{{item.company_name?item.company_name:''}}</text></view>
<view class="en-text">Company: <text>{{item.company_name?item.company_name:''}}</text></view>
</view>
</view>
@ -93,11 +133,23 @@
<!-- 弹出选择 访客类型 -->
<u-popup :show="callshow" mode="center" @close="callshow=false">
<view class="popupVisit">
<view>请选择邀约访客类型</view>
<view class="label-with-en-inline">
<view>请选择邀约访客类型</view>
<view class="en-text">Please select visitor type</view>
</view>
<view class="justify-between">
<button @click="toForm(1)">访</button>
<button @click="toForm(2)"></button>
<button @click="toForm(3)"></button>
<button @click="toForm(1)" class="button-with-en">
<view>普通访客</view>
<view class="en-text">Regular Visitor</view>
</button>
<button @click="toForm(2)" class="button-with-en">
<view>施工人员</view>
<view class="en-text">Construction Worker</view>
</button>
<button @click="toForm(3)" class="button-with-en">
<view>物流车辆</view>
<view class="en-text">Logistics Vehicle</view>
</button>
</view>
</view>
</u-popup>
@ -121,22 +173,26 @@
iconList: [{
src: require("../../static/img/wdsh.png"),
text: '我的审核',
textEn: 'My Review',
url: "/pages/bd/record?type=mycheck"
},
{
src: require("../../static/img/bfjl.png"),
text: '被访记录',
textEn: 'Visit Records',
url: "/pages/bd/record?type=myrecord"
},
{
src: require("../../static/img/yy.png"),
text: '邀约',
textEn: 'Invite',
url: "/pages/bd/call",
isyy: true
},
{
src: require("../../static/img/dyyjl.png"),
text: '代邀约记录',
textEn: 'Invitation Records',
url: "/pages/bd/record?type=call"
}
],
@ -167,7 +223,7 @@
if (this.list.length >= this.select.total) {
//
uni.showToast({
title: '没有更多了',
title: '没有更多了 / No more data',
duration: 1000,
icon: 'none'
})
@ -266,8 +322,8 @@
},
logout() {
uni.showModal({
title: '提示',
content: '确认退出账号?',
title: '提示 / Notice',
content: '确认退出账号? / Confirm logout?',
success: function(res) {
if (res.confirm) {
uni.removeStorageSync('userInfo_BD_token')
@ -380,4 +436,36 @@
.company text{
color: #8f9596;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.en-text {
font-size: 20rpx;
color: #8f9596;
margin-top: 4rpx;
opacity: 0.8;
}
.button-with-en {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 10rpx 20rpx;
}
.button-with-en .en-text {
font-size: 18rpx;
margin-top: 4rpx;
}
.popupVisit>view:last-child {
display: flex;
justify-content: space-between;
gap: 10rpx;
}
</style>

@ -1,9 +1,10 @@
<template>
<view class="containers">
<view class="dbbtns justify-between">
<text v-for="item in btnList" :class="{'active':btnActive===item.value}" @click="btnActiveList(item.value)">
{{item.label}}
</text>
<view v-for="item in btnList" :key="item.value" :class="{'active':btnActive===item.value}" @click="btnActiveList(item.value)" class="label-with-en-inline btn-item">
<text>{{item.label}}</text>
<text class="en-text">{{item.labelEn}}</text>
</view>
<!-- <text >已完成</text>
<text>待完成</text> -->
</view>
@ -19,26 +20,54 @@
<!-- <button class="signBtn" @click.stop='signPic(item.id)' type="primary" v-if="nowadminID==item.accompany_id&&item.audit_status==3&&!item.accept_admin_sign"></button> -->
</view>
<view>
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="label-with-en-inline">
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view class="en-text">Visit Date: {{item.date}}{{ item.end_date?' to '+item.end_date:'' }}</view>
</view>
<view class="label-with-en-inline">
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="en-text">Visit Time: {{item.visit_time.start_time}} to {{item.visit_time.end_time}}</view>
</view>
</view>
</view>
<view class="dbinfo justify-left">
<view>
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="label-with-en-inline">
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view class="en-text">Host: <text>{{item.accept_admin.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{item.accept_admin.department.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="en-text">Visit Area: <text>{{item.visit_area.name}}</text></view>
</view>
</view>
<view>
<view>拜访人<text>{{item.name}}</text></view>
<view>电话{{item.mobile}}</view>
<view v-if="item.type=='1'"><text>{{item.reason?info.reason:''}}</text></view>
<view v-else-if="item.type=='3'">车牌<text>{{item.plate}}</text></view>
<view class="label-with-en-inline">
<view>拜访人<text>{{item.name}}</text></view>
<view class="en-text">Visitor: <text>{{item.name}}</text></view>
</view>
<view class="label-with-en-inline">
<view>电话{{item.mobile}}</view>
<view class="en-text">Phone: {{item.mobile}}</view>
</view>
<view v-if="item.type=='1'" class="label-with-en-inline">
<view>事由<text>{{item.reason}}</text></view>
<view class="en-text">Reason: <text>{{item.reason}}</text></view>
</view>
<view v-else-if="item.type=='3'" class="label-with-en-inline">
<view>车牌<text>{{item.plate}}</text></view>
<view class="en-text">License Plate: <text>{{item.plate}}</text></view>
</view>
</view>
</view>
<view class="company">
<view>
拜访公司<text>{{item.company_name?item.company_name:''}}</text>
<view class="label-with-en-inline">
<view>拜访公司<text>{{item.company_name?item.company_name:''}}</text></view>
<view class="en-text">Company: <text>{{item.company_name?item.company_name:''}}</text></view>
</view>
</view>
@ -71,14 +100,17 @@
nowadminID:'',
btnList: [{
label: "全部",
labelEn: "All",
value: ''
},
{
label: "已完成",
labelEn: "Completed",
value: 4
},
{
label: "待完成",
labelEn: "Pending",
value: 0
}
],
@ -117,7 +149,7 @@
if (this.list.length >= this.select.total) {
//
uni.showToast({
title: '没有更多了',
title: '没有更多了 / No more data',
duration: 1000,
icon: 'none'
})
@ -206,4 +238,50 @@
.company text{
color: #8f9596;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.en-text {
font-size: 20rpx;
color: #8f9596;
margin-top: 4rpx;
opacity: 0.8;
}
.dbbtns text{
padding: 0;
background:transparent;
border-radius: 20rpx 20rpx 0 0;
margin-bottom: 0px;
width: auto;
text-align: center;
}
.dbbtns .btn-item {
padding: 20rpx 50rpx;
background: #eceefe;
border-radius:20rpx 20rpx 0 0;
// margin-bottom: 10px;
width: 15%;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
}
.dbbtns .btn-item.active {
margin-bottom: 0;
border-radius: 20rpx 20rpx 0 0;
background-color: #4f607e;
color: #fff;
}
.dbbtns .btn-item.active .en-text {
color: #fff;
opacity: 0.9;
}
</style>

@ -6,8 +6,8 @@
</view>
<view class="visit-record">
<view class="visit-text">
<text @click="toUrl(0)">访</text>
<text class="english" @click="toUrl(0)">Visit Records</text>
<text>选择入口</text>
<text class="english">Select the entrance</text>
</view>
</view>
</view>
@ -16,7 +16,11 @@
<text class="chinese">迈柯唯访客</text>
<text class="english">Visitor</text>
</view>
</view>
<view class="title-text">
<text class="chinese" @click="toUrl(0)">访</text>
<text class="english" @click="toUrl(0)">Visit Records</text>
</view>
</view>
<view class="bdfk">
<view class="btn-card" @click="toUrl(5)">
<image :src="xxpx" class="btn-icon"></image>
@ -49,8 +53,8 @@
</view>
<view class="section-title admin-section">
<view class="title-text">
<text class="chinese">迈柯唯管理</text>
<text class="english">Administrator</text>
<text class="chinese">迈柯唯</text>
<text class="english">Employee</text>
</view>
</view>
<view class="admin-btn-container">
@ -59,8 +63,8 @@
<image :src="gly" class="admin-icon-img"></image>
</view>
<view class="admin-text">
<text class="chinese">迈柯唯管理</text>
<text class="english">Administrator</text>
<text class="chinese">迈柯唯</text>
<text class="english">Employee</text>
</view>
<view class="arrow">
<text>></text>
@ -243,6 +247,8 @@
.section-title {
position: relative;
padding: 16% 0 2% 0;
display: flex;
justify-content: space-between;
}
.admin-section {

@ -8,15 +8,32 @@
<view class="login">
<uni-forms ref="formdata" :model="form" :border="true" :rules="rules" labelWidth="100px" label-position="top">
<uni-forms-item label="用户名" name="name">
<uni-easyinput :inputBorder="false" v-model="form.name" placeholder="请输入用户名" />
<uni-forms-item name="name">
<template slot="label">
<view class="label-with-en-inline">
<text>用户名</text>
<text class="en-text">Username</text>
</view>
</template>
<uni-easyinput :inputBorder="false" v-model="form.name" placeholder="请输入用户名 / Please enter username" />
</uni-forms-item>
<uni-forms-item label="密码" name="password">
<uni-easyinput :inputBorder="false" type="password" v-model="form.password" placeholder="请输入密码" />
<uni-forms-item name="password">
<template slot="label">
<view class="label-with-en-inline">
<text>密码</text>
<text class="en-text">Password</text>
</view>
</template>
<uni-easyinput :inputBorder="false" type="password" v-model="form.password" placeholder="请输入密码 / Please enter password" />
</uni-forms-item>
</uni-forms>
<view class="sbtn">
<u-button type="primary" size="large" :custom-style="{'background-color': '#182849','border-color': '#182849'}" @click="submit"></u-button>
<u-button type="primary" size="large" :custom-style="{'background-color': '#182849','border-color': '#182849'}" @click="submit">
<view class="button-text">
<view>登录</view>
<view class="en-text">Login</view>
</view>
</u-button>
</view>
</view>
</view>
@ -29,17 +46,17 @@
logo: require("../../static/img/bdlogo.png"),
winHeight: 0,
form: {},
rules: {
rules: {
name: {
rules: [{
required: true,
errorMessage: '请输入用户名'
errorMessage: '请输入用户名 / Please enter username'
}]
},
password: {
rules: [{
required: true,
errorMessage: '请输入密码'
errorMessage: '请输入密码 / Please enter password'
}]
}
},
@ -73,7 +90,7 @@
},
utilFail: function(res) {
uni.showToast({
title: '登陆失败',
title: '登陆失败 / Login failed',
duration: 2000,
icon:'none'
})
@ -97,7 +114,7 @@
// that.userEmail = res.email?res.email:''
uni.setStorageSync('userInfo_Bd',res)
uni.showToast({
title:"登录成功",
title:"登录成功 / Login successful",
success() {
uni.redirectTo({
url:"/pages/bd/mine"
@ -107,7 +124,7 @@
},
utilFail: function(res) {
uni.showToast({
title: '登陆失败',
title: '登陆失败 / Login failed',
duration: 2000,
icon: 'none'
})
@ -135,4 +152,32 @@
.sbtn{
margin-top:60rpx
}
.label-with-en-inline {
display: flex;
flex-direction: column;
font-weight: 500;
}
.label-with-en-inline text {
display: block;
line-height: 1.5;
}
.label-with-en-inline .en-text {
font-size: 20rpx;
color: #999;
margin-top: 4rpx;
font-weight: normal;
}
.button-text {
display: flex;
flex-direction: column;
align-items: center;
}
.button-text .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
}
/deep/ .uni-forms-item__label {
padding-bottom: 8rpx;
}
</style>

@ -12,7 +12,7 @@
</view>
<view style="text-align: center;">
<view class="configbtn" @click="closeConfig">
确认
<view>确认/Confirm</view>
</view>
</view>
@ -22,19 +22,25 @@
<!-- 普通访客 先选择区域 -->
<u-popup :show="areaShow" class="configwrap" mode="bottom">
<view class="configtitle">
前往区域
<view class="configtitle label-with-en">
<view>前往区域</view>
<view class="en-text">Visit Area</view>
</view>
<block v-if="visitArea.length>0">
<view class="configvalue areavalue">
<uni-data-checkbox mode="button" @change='changeVisitArea' v-model="form.visit_area_id"
:localdata="visitArea" :map="{text:'name',value:'id'}" />
</view>
<button class="areabtn" @click="closeArea" size="large" type="primary">确认</button>
<button class="areabtn button-with-en" @click="closeArea" size="large" type="primary">
<view>确认/Confirm</view>
</button>
</block>
<view class="configvalue configload" v-else>
<text>数据加载中...</text>
<view class="label-with-en">
<text>数据加载中...</text>
<text class="en-text">Loading data...</text>
</view>
<u-icon @click="getVisitArea" name="reload" color="#2979ff" size="28"></u-icon>
</view>
@ -43,128 +49,294 @@
<view class="steps">
<uni-steps :options="steps" :active="stepActive" active-color="#4f607e" />
</view>
<uni-forms ref="formdata" :model="form" :rules="rules" labelWidth="120px">
<view class="formtext">拜访信息</view>
<uni-forms-item label="开始日期" required name="start_date">
<uni-forms ref="formdata" :model="form" :rules="rules" labelWidth="140px">
<view class="formtext label-with-en">
<view>拜访信息</view>
<view class="en-text">Visit Information</view>
</view>
<uni-forms-item required name="start_date">
<template slot="label">
<view class="label-with-en-inline">
<text>开始日期</text>
<text class="en-text">Start Date</text>
</view>
</template>
<uni-datetime-picker type="date" :start="toadyStart" return-type="string" v-model="form.start_date" @change="onStartDateChange" style="width: 100%;" />
</uni-forms-item>
<uni-forms-item label="结束日期" required name="end_date">
<uni-forms-item required name="end_date">
<template slot="label">
<view class="label-with-en-inline">
<text>结束日期</text>
<text class="en-text">End Date</text>
</view>
</template>
<uni-datetime-picker type="date" :start="toadyStart" return-type="string" v-model="form.end_date" @change="onEndDateChange" style="width: 100%;" />
</uni-forms-item>
<uni-forms-item label="到访时段" required name="visit_time_id">
<uni-forms-item required name="visit_time_id">
<template slot="label">
<view class="label-with-en-inline">
<text>到访时段</text>
<text class="en-text">Visit Time</text>
</view>
</template>
<uni-data-checkbox v-model="form.visit_time_id" :localdata="visitTime"
:map="{text:'visitTimeRange',value:'id'}" />
</uni-forms-item>
<uni-forms-item label="前往区域" required name="visit_area_id">
<uni-forms-item required name="visit_area_id">
<template slot="label">
<view class="label-with-en-inline">
<text>前往区域</text>
<text class="en-text">Visit Area</text>
</view>
</template>
<uni-data-checkbox @change='changeVisitArea' v-model="form.visit_area_id" :localdata="visitArea"
:map="{text:'name',value:'id'}" />
</uni-forms-item>
<uni-forms-item label="到访事由" v-if="form.type==1">
<uni-forms-item v-if="form.type==1">
<template slot="label">
<view class="label-with-en-inline">
<text>到访事由</text>
<text class="en-text">Visit Reason</text>
</view>
</template>
<uni-data-select v-model="form.reason" :localdata="reasonList">
</uni-data-select>
</uni-forms-item>
<uni-forms-item label="施工开始时段" v-if="form.type==2">
<uni-forms-item v-if="form.type==2">
<template slot="label">
<view class="label-with-en-inline">
<text>施工开始时段</text>
<text class="en-text">Construction Start Time</text>
</view>
</template>
<uni-datetime-picker type="date" :start="toadyStart" return-type="string"
v-model="form.work_start_time" />
</uni-forms-item>
<uni-forms-item label="施工结束时段" v-if="form.type==2">
<uni-forms-item v-if="form.type==2">
<template slot="label">
<view class="label-with-en-inline">
<text>施工结束时段</text>
<text class="en-text">Construction End Time</text>
</view>
</template>
<uni-datetime-picker type="date" :start="toadyStart" return-type="string"
v-model="form.work_end_time" />
</uni-forms-item>
<!-- <uni-forms-item label="车牌号" v-if="form.type==3"> -->
<uni-forms-item label="车辆类型" required name="plate" v-if="form.type==3">
<uni-forms-item required name="plate" v-if="form.type==3">
<template slot="label">
<view class="label-with-en-inline">
<text>车辆类型</text>
<text class="en-text">Vehicle Type</text>
</view>
</template>
<uni-data-checkbox v-model="form.plate" :localdata="parkAreaList" :map="{text:'value',value:'value'}" />
</uni-forms-item>
<uni-forms-item label="备注">
<uni-easyinput type="textarea" v-model="form.remark" placeholder="请输入自我备注" />
<uni-forms-item>
<template slot="label">
<view class="label-with-en-inline">
<text>备注</text>
<text class="en-text">Remark</text>
</view>
</template>
<uni-easyinput type="textarea" v-model="form.remark" placeholder="请输入自我备注 / Please enter remarks" />
</uni-forms-item>
<view class="formtext" style="display: flex;justify-content: space-between;align-items: center;">
<text>拜访人信息</text>
<view class="label-with-en" style="flex: 1;">
<text>拜访人信息</text>
<text class="en-text">Visitor Information</text>
</view>
<button style="background-color: #4f607e!important;" type="primary" size="mini"
@click="pullVisitorInfo">拉取拜访人信息</button>
@click="pullVisitorInfo" class="button-mini-with-en">
<view>拉取拜访人信息</view>
<view class="en-text">Pull Visitor Info</view>
</button>
</view>
<uni-forms-item label="姓名" required name="name">
<uni-easyinput v-model="form.name" placeholder="请输入姓名" />
<uni-forms-item required name="name">
<template slot="label">
<view class="label-with-en-inline">
<text>姓名</text>
<text class="en-text">Name</text>
</view>
</template>
<uni-easyinput v-model="form.name" placeholder="请输入姓名 / Please enter name" />
</uni-forms-item>
<uni-forms-item label="联系电话" required name="mobile">
<uni-easyinput v-model="form.mobile" placeholder="请输入联系电话" />
<uni-forms-item required name="mobile">
<template slot="label">
<view class="label-with-en-inline">
<text>联系电话</text>
<text class="en-text">Phone Number</text>
</view>
</template>
<uni-easyinput v-model="form.mobile" placeholder="请输入联系电话 / Please enter phone number" />
</uni-forms-item>
<uni-forms-item label="证件类型" required name="credent">
<uni-forms-item required name="credent">
<template slot="label">
<view class="label-with-en-inline">
<text>证件类型</text>
<text class="en-text">ID Type</text>
</view>
</template>
<uni-data-select v-model="form.credent" :localdata="credentList">
</uni-data-select>
</uni-forms-item>
<uni-forms-item label="证件号码" required name="idcard" v-if="form.credent==1">
<uni-easyinput type="idcard" v-model="form.idcard" placeholder="请输入证件号码" />
<uni-forms-item required name="idcard" v-if="form.credent==1">
<template slot="label">
<view class="label-with-en-inline">
<text>证件号码</text>
<text class="en-text">ID Card Number</text>
</view>
</template>
<uni-easyinput type="idcard" v-model="form.idcard" placeholder="请输入证件号码 / Please enter ID card number" />
</uni-forms-item>
<uni-forms-item label="护照号码" required name="passcard" v-if="form.credent==2">
<uni-easyinput type="text" v-model="form.passcard" placeholder="请输入证件号码" />
<uni-forms-item required name="passcard" v-if="form.credent==2">
<template slot="label">
<view class="label-with-en-inline">
<text>护照号码</text>
<text class="en-text">Passport Number</text>
</view>
</template>
<uni-easyinput type="text" v-model="form.passcard" placeholder="请输入证件号码 / Please enter passport number" />
</uni-forms-item>
<uni-forms-item label="单位名称" required name="company_name">
<uni-easyinput v-model="form.company_name" placeholder="请输入单位名称" />
<uni-forms-item required name="company_name">
<template slot="label">
<view class="label-with-en-inline">
<text>单位名称</text>
<text class="en-text">Company Name</text>
</view>
</template>
<uni-easyinput v-model="form.company_name" placeholder="请输入单位名称 / Please enter company name" />
</uni-forms-item>
<uni-forms-item label="CDA编号" required name="cda" v-if="form.type==1&&visitAreaText=='生产区'">
<uni-easyinput type='textarea' v-model="form.cda" placeholder="请输入CDA编号(如无注明原因)" />
<uni-forms-item required name="cda" v-if="form.type==1&&visitAreaText=='生产区'">
<template slot="label">
<view class="label-with-en-inline">
<text>CDA编号</text>
<text class="en-text">CDA Number</text>
</view>
</template>
<uni-easyinput type='textarea' v-model="form.cda" placeholder="请输入CDA编号(如无注明原因) / Please enter CDA number (if none, specify reason)" />
</uni-forms-item>
<uni-forms-item label="到访车辆" v-if="form.type!=3">
<uni-forms-item v-if="form.type!=3">
<template slot="label">
<view class="label-with-en-inline">
<text>到访车辆</text>
<text class="en-text">Visiting Vehicles</text>
</view>
</template>
<view style="text-align: right;">
<button style="background-color: #4f607e;" type="primary" size="mini"
@click="form.cars.push('')">新增车辆</button>
@click="form.cars.push('')" class="button-mini-with-en">
<view>新增车辆</view>
<view class="en-text">Add Vehicle</view>
</button>
</view>
<view v-for='(item,index) in form.cars' class="justify-between align-center"
<view v-for='(item,index) in form.cars' :key="index" class="justify-between align-center"
style="margin-bottom:20rpx">
<uni-easyinput disabled @tap="plateShow=true,carindex=index" v-model.trim="form.cars[index]"
placeholder="请输入到访车辆" />
<text @click="form.cars.splice(index,1)" style="color: red;margin-left:20rpx">删除</text>
placeholder="请输入到访车辆 / Please enter license plate" />
<view @click="form.cars.splice(index,1)" style="color: red;margin-left:20rpx" class="label-with-en-inline-del">
<text>删除</text>
<text class="en-text">Delete</text>
</view>
</view>
<plate-input v-if="plateShow" :plate="form.cars[carindex]" @export="setCars"
@close="plateShow = false" />
</uni-forms-item>
<uni-forms-item label="到访车辆" required name="cars" v-else>
<uni-forms-item required name="cars" v-else>
<template slot="label">
<view class="label-with-en-inline">
<text>到访车辆</text>
<text class="en-text">Visiting Vehicles</text>
</view>
</template>
<view style="text-align: right;">
<button style="background-color: #4f607e;" type="primary" size="mini"
@click="form.cars.push('')">新增车辆</button>
@click="form.cars.push('')" class="button-mini-with-en">
<view>新增车辆</view>
<view class="en-text">Add Vehicle</view>
</button>
</view>
<view v-for='(item,index) in form.cars' class="justify-between align-center"
<view v-for='(item,index) in form.cars' :key="index" class="justify-between align-center"
style="margin-bottom:20rpx">
<uni-easyinput disabled @tap="plateShow=true,carindex=index" v-model.trim="form.cars[index]"
placeholder="请输入到访车辆" />
<text @click="form.cars.splice(index,1)" style="color: red;margin-left:20rpx">删除</text>
placeholder="请输入到访车辆 / Please enter license plate" />
<view @click="form.cars.splice(index,1)" style="color: red;margin-left:20rpx" class="label-with-en-inline-del">
<text>删除</text>
<text class="en-text">Delete</text>
</view>
</view>
<plate-input v-if="plateShow" :plate="form.cars[carindex]" @export="setCars"
@close="plateShow = false" />
</uni-forms-item>
<template v-if="form.type!=3">
<view class="formtext" style="display: flex;justify-content: space-between;">
<text>随访人员</text>
<view class="label-with-en">
<text>随访人员</text>
<text class="en-text">Follow-up Personnel</text>
</view>
<button style="background-color: #4f607e!important;" type="primary" size="mini"
@click="$refs.showRight.open(),follw_people_obj={credent:1},follow_people_index=-1">新增随访人员</button>
@click="$refs.showRight.open(),follw_people_obj={credent:1},follow_people_index=-1" class="button-mini-with-en">
<view>新增随访人员</view>
<view class="en-text">Add Personnel</view>
</button>
</view>
<!-- 随访人员表格 -->
<template>
<uni-table ref="table" border emptyText="暂无更多数据">
<uni-table ref="table" border emptyText="暂无更多数据 / No more data">
<uni-tr>
<uni-th width="160" align="center">操作</uni-th>
<uni-th width="120" align="center">姓名</uni-th>
<uni-th width="120" align="left">联系电话</uni-th>
<uni-th width="120" align="center">证件类型</uni-th>
<uni-th width="120" align="left">证件号码</uni-th>
<uni-th width="160" align="center">
<view class="label-with-en-table">
<text>操作</text>
<text class="en-text">Action</text>
</view>
</uni-th>
<uni-th width="120" align="center">
<view class="label-with-en-table">
<text>姓名</text>
<text class="en-text">Name</text>
</view>
</uni-th>
<uni-th width="120" align="left">
<view class="label-with-en-table">
<text>联系电话</text>
<text class="en-text">Phone</text>
</view>
</uni-th>
<uni-th width="120" align="center">
<view class="label-with-en-table">
<text>证件类型</text>
<text class="en-text">ID Type</text>
</view>
</uni-th>
<uni-th width="120" align="left">
<view class="label-with-en-table">
<text>证件号码</text>
<text class="en-text">ID Number</text>
</view>
</uni-th>
</uni-tr>
<uni-tr style="vertical-align: middle;" v-for="(item, index) in form.follw_people" :key="index">
<uni-td>
<view class="uni-group">
<text @click="editFollwPeople(index)"
style="color: #4f607e;margin-right:8px">修改</text>
<text @click="form.follw_people.splice(index,1)"
style="color: red;margin-right:8px">删除</text>
<view @click="editFollwPeople(index)"
style="color: #4f607e;margin-right:8px" class="label-with-en-inline-del">
<text>修改</text>
<text class="en-text">Edit</text>
</view>
<view @click="form.follw_people.splice(index,1)"
style="color: red;margin-right:8px" class="label-with-en-inline-del">
<text>删除</text>
<text class="en-text">Delete</text>
</view>
</view>
</uni-td>
<uni-td>{{ item.name }}</uni-td>
<uni-td>
<view class="name">{{ item.mobile }}</view>
</uni-td>
<uni-td align="center">{{ item.credent==1?'身份证':"护照" }}</uni-td>
<uni-td align="center">{{ item.credent==1?'身份证 / ID Card':"护照 / Passport" }}</uni-td>
<uni-td align="center">{{ item.idcard }}</uni-td>
</uni-tr>
</uni-table>
@ -183,55 +355,120 @@
<uni-datetime-picker type="date" :start="toadyStart" return-type="string" v-model="form.end_date" />
</uni-forms-item>
</template> -->
<view class="formtext" v-if="form.type==1||form.type==2">访</view>
<uni-forms-item label="被访人" required name="acceptName" v-if="form.type==1||form.type==2">
<view class="formtext label-with-en" v-if="form.type==1||form.type==2">
<view>被访人信息</view>
<view class="en-text">Host Information</view>
</view>
<uni-forms-item required name="acceptName" v-if="form.type==1||form.type==2">
<template slot="label">
<view class="label-with-en-inline">
<text>被访人</text>
<text class="en-text">Host</text>
</view>
</template>
<uni-easyinput @clear="clearAccept('accept')" disabled v-model="form.acceptName"
@tap="adminListShowOpen('accept')" placeholder="请选择联系人员" />
@tap="adminListShowOpen('accept')" placeholder="请选择联系人员 / Please select contact person" />
</uni-forms-item>
<view class="formtext" v-if="form.type==3"></view>
<uni-forms-item label="收货人" v-if="form.type==3" required name="goodsName">
<view class="formtext label-with-en" v-if="form.type==3">
<view>收货人信息</view>
<view class="en-text">Consignee Information</view>
</view>
<uni-forms-item v-if="form.type==3" required name="goodsName">
<template slot="label">
<view class="label-with-en-inline">
<text>收货人</text>
<text class="en-text">Consignee</text>
</view>
</template>
<uni-easyinput @clear="clearAccept('goods')" disabled v-model="form.goodsName"
@tap="adminListShowOpen('goods')" placeholder="请选择联系人员" />
@tap="adminListShowOpen('goods')" placeholder="请选择联系人员 / Please select contact person" />
</uni-forms-item>
<view class="formtext" v-if="visitAreaText=='生产区'"></view>
<uni-forms-item label="陪同人" required name="accompanyName" v-if="visitAreaText=='生产区'">
<view class="formtext label-with-en" v-if="visitAreaText=='生产区'">
<view>陪同人信息</view>
<view class="en-text">Accompanying Personnel Information</view>
</view>
<uni-forms-item required name="accompanyName" v-if="visitAreaText=='生产区'">
<template slot="label">
<view class="label-with-en-inline">
<text>陪同人</text>
<text class="en-text">Accompanying Personnel</text>
</view>
</template>
<uni-easyinput @clear="clearAccept('accompany')" disabled v-model="form.accompanyName"
@tap="adminListShowOpen('accompany')" placeholder="请选择联系人员" />
@tap="adminListShowOpen('accompany')" placeholder="请选择联系人员 / Please select contact person" />
</uni-forms-item>
<qianziyu-select :show="adminListShow" type="radio" :popupTitle="'联系人员'" name="cworkStationName"
<qianziyu-select :show="adminListShow" type="radio" :popupTitle="'联系人员 / Contact Personnel'" name="cworkStationName"
:dataLists="adminList" placeholder="输入陪同人具体姓名或手机号搜索" @search="selectSearch" @submit="submitAccept"
placeholderEnText="请输入陪同人具体姓名或手机号搜索/Enter name or phone number to search"
@cancel="cancelAccept" />
</uni-forms>
<button type="primary" style="background-color: #4f607e!important;" @click="getStudy">{{goStudy}}</button>
<button type="primary" style="background-color: #4f607e!important;" @click="getStudy" class="button-with-en-submit">
<view>{{goStudy}} / Submit</view>
<!-- <view class="en-text"></view> -->
</button>
<!-- 随访人员弹出 -->
<uni-drawer ref="showRight" mode="right" :mask-click="true">
<uni-drawer ref="showRight" mode="right" :mask-click="true" :width="300">
<uni-forms ref="peopleform" :model="follw_people_obj" :rules="peoplerules" labelWidth="80px">
<uni-forms-item label="姓名" required name='name'>
<uni-easyinput v-model="follw_people_obj.name" placeholder="请输入姓名" />
<uni-forms-item required name='name'>
<template slot="label">
<view class="label-with-en-inline">
<text>姓名</text>
<text class="en-text">Name</text>
</view>
</template>
<uni-easyinput v-model="follw_people_obj.name" placeholder="请输入姓名 / Please enter name" />
</uni-forms-item>
<uni-forms-item label="联系电话" required name='mobile'>
<uni-easyinput v-model="follw_people_obj.mobile" placeholder="请输入联系电话" />
<uni-forms-item required name='mobile'>
<template slot="label">
<view class="label-with-en-inline">
<text>联系电话</text>
<text class="en-text">Phone Number</text>
</view>
</template>
<uni-easyinput v-model="follw_people_obj.mobile" placeholder="请输入联系电话 / Please enter phone number" />
</uni-forms-item>
<uni-forms-item label="证件类型" required name='credent'>
<uni-forms-item required name='credent'>
<template slot="label">
<view class="label-with-en-inline">
<text>证件类型</text>
<text class="en-text">ID Type</text>
</view>
</template>
<uni-data-select @change="chooseCredent" v-model="follw_people_obj.credent"
:localdata="credentList">
</uni-data-select>
</uni-forms-item>
<uni-forms-item label="证件号码" required name='idcard' v-if="follw_people_obj.credent==1">
<uni-easyinput type="idcard" v-model="follw_people_obj.idcard" placeholder="请输入证件号码" />
<uni-forms-item required name='idcard' v-if="follw_people_obj.credent==1">
<template slot="label">
<view class="label-with-en-inline">
<text>证件号码</text>
<text class="en-text">ID Card Number</text>
</view>
</template>
<uni-easyinput type="idcard" v-model="follw_people_obj.idcard" placeholder="请输入证件号码 / Please enter ID card number" />
</uni-forms-item>
<uni-forms-item label="护照号码" required name='passcard' v-if="follw_people_obj.credent==2">
<uni-easyinput type="text" v-model="follw_people_obj.passcard" placeholder="请输入证件号码" />
<uni-forms-item required name='passcard' v-if="follw_people_obj.credent==2">
<template slot="label">
<view class="label-with-en-inline">
<text>护照号码</text>
<text class="en-text">Passport Number</text>
</view>
</template>
<uni-easyinput type="text" v-model="follw_people_obj.passcard" placeholder="请输入证件号码 / Please enter passport number" />
</uni-forms-item>
</uni-forms>
<view class="uni-group" style="text-align: right;">
<button @click="closeDrawer" size="mini">取消</button>
<button @click="closeDrawer" size="mini" class="button-mini-with-en">
<view>取消/Cancel</view>
</button>
<button @click="pushFollowPeople" size="mini" type="primary"
style="background-color: #4f607e!important;margin-left:8px">确认</button>
style="background-color: #4f607e!important;margin-left:8px" class="button-mini-with-en">
<view>确认/Confirm</view>
</button>
</view>
</uni-drawer>
@ -250,11 +487,11 @@
data() {
return {
steps: [{
title: '填报'
title: '填报\nRegistration'
}, {
title: '学习'
title: '学习\nStudy'
}, {
title: '完成'
title: '完成\nComplete'
}],
stepActive: 0,
configshow: false,
@ -309,106 +546,106 @@
start_date: {
rules: [{
required: true,
errorMessage: '请选择开始日期'
errorMessage: '请选择开始日期 / Please select start date'
}]
},
end_date: {
rules: [{
required: true,
errorMessage: '请选择结束日期'
errorMessage: '请选择结束日期 / Please select end date'
}]
},
visit_time_id: {
rules: [{
required: true,
errorMessage: '请选择拜访时段'
errorMessage: '请选择拜访时段 / Please select visit time'
}]
},
visit_area_id: {
rules: [{
required: true,
errorMessage: '请选择前往区域'
errorMessage: '请选择前往区域 / Please select visit area'
}]
},
plate: {
rules: [{
required: true,
errorMessage: '请选择车辆类型'
errorMessage: '请选择车辆类型 / Please select vehicle type'
}]
},
name: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
errorMessage: '姓名不能为空 / Name cannot be empty'
}]
},
mobile: {
rules: [{
required: true,
errorMessage: '联系电话不能为空'
errorMessage: '联系电话不能为空 / Phone number cannot be empty'
}, {
pattern: '^[1][3-9][\\d]{9}',
errorMessage: '联系号码格式错误'
errorMessage: '联系号码格式错误 / Invalid phone number format'
}]
},
credent: {
rules: [{
required: true,
errorMessage: '请选择身份证类型'
errorMessage: '请选择身份证类型 / Please select ID type'
}]
},
idcard: {
rules: [{
required: true,
errorMessage: '身份证号码不能为空'
errorMessage: '身份证号码不能为空 / ID card number cannot be empty'
}, {
pattern: '^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]',
errorMessage: '身份证格式错误'
errorMessage: '身份证格式错误 / Invalid ID card format'
}]
},
passcard: {
rules: [{
required: true,
errorMessage: '护照号码不能为空'
errorMessage: '护照号码不能为空 / Passport number cannot be empty'
}, {
pattern: '/^([a-zA-z]|[0-9]){5,17}$/',
errorMessage: '护照格式错误'
errorMessage: '护照格式错误 / Invalid passport format'
}]
},
company_name: {
rules: [{
required: true,
errorMessage: '单位名称不能为空'
errorMessage: '单位名称不能为空 / Company name cannot be empty'
}]
},
cda: {
rules: [{
required: true,
errorMessage: 'CDA编号不能为空'
errorMessage: 'CDA编号不能为空 / CDA number cannot be empty'
}]
},
cars: {
rules: [{
required: true,
errorMessage: '车牌号不能为空'
errorMessage: '车牌号不能为空 / License plate cannot be empty'
}]
},
acceptName: {
rules: [{
required: true,
errorMessage: '请选择被访人'
errorMessage: '请选择被访人 / Please select host'
}]
},
accompanyName: {
rules: [{
required: true,
errorMessage: '请选择陪同人'
errorMessage: '请选择陪同人 / Please select accompanying personnel'
}]
},
goodsName: {
rules: [{
required: true,
errorMessage: '请选择收货人'
errorMessage: '请选择收货人 / Please select consignee'
}]
}
},
@ -416,40 +653,40 @@
name: {
rules: [{
required: true,
errorMessage: '随访人姓名不能为空'
errorMessage: '随访人姓名不能为空 / Follower name cannot be empty'
}]
},
mobile: {
rules: [{
required: true,
errorMessage: '联系电话不能为空'
errorMessage: '联系电话不能为空 / Phone number cannot be empty'
}, {
pattern: '^[1][3-9][\\d]{9}',
errorMessage: '联系号码格式错误'
errorMessage: '联系号码格式错误 / Invalid phone number format'
}]
},
credent: {
rules: [{
required: true,
errorMessage: '请选择身份证类型'
errorMessage: '请选择身份证类型 / Please select ID type'
}]
},
idcard: {
rules: [{
required: true,
errorMessage: '身份证号码不能为空'
errorMessage: '身份证号码不能为空 / ID card number cannot be empty'
}, {
pattern: '^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]',
errorMessage: '身份证格式错误'
errorMessage: '身份证格式错误 / Invalid ID card format'
}]
},
passcard: {
rules: [{
required: true,
errorMessage: '护照号码不能为空'
errorMessage: '护照号码不能为空 / Passport number cannot be empty'
}, {
pattern: '/^([a-zA-z]|[0-9]){5,17}$/',
errorMessage: '护照格式错误'
errorMessage: '护照格式错误 / Invalid passport format'
}]
}
},
@ -460,11 +697,11 @@
parkAreaList: [],
credentList: [{
value: 1,
text: "身份证"
text: "身份证 / ID Card"
},
{
value: 2,
text: "护照"
text: "护照 / Passport"
}
],
longList: [{
@ -587,7 +824,7 @@
},
closeArea() {
if (!this.form.visit_area_id) {
this.util.alert("请先选择前往区域")
this.util.alert("请先选择前往区域 / Please select visit area first")
return
}
if (this.visitAreaText == "生产区") {
@ -763,7 +1000,7 @@
//
// 访
async showStudy() {
this.util.alert("请确保每位访客都已通过学习培训,方可提交拜访")
this.util.alert("请确保每位访客都已通过学习培训,方可提交拜访 / Please ensure all visitors have completed the training before submitting the visit")
// let that = this
// let id_arr = []
// id_arr.push(this.form.idcard)
@ -822,7 +1059,7 @@
},
utilSuccess: function(res) {
if (res.length > 0) {
let str = res.join("") + '未完成学习培训'
let str = res.join("") + '未完成学习培训 / Not completed training'
that.util.alert(str)
uni.setStorageSync('formdata', that.form)
} else {
@ -1026,13 +1263,13 @@
}
uni.showToast({
title: '拜访人信息已自动填充',
title: '拜访人信息已自动填充 / Visitor information auto-filled',
duration: 2000,
icon: 'success'
})
} else {
uni.showToast({
title: '暂无拜访人历史记录,请手动输入!',
title: '暂无拜访人历史记录,请手动输入! / No visitor history, please enter manually!',
duration: 2000,
icon: 'none'
})
@ -1040,7 +1277,7 @@
},
utilFail: function(res) {
uni.showToast({
title: '拉取失败,请手动输入',
title: '拉取失败,请手动输入 / Pull failed, please enter manually',
duration: 2000,
icon: 'none'
})
@ -1155,4 +1392,102 @@
flex: 1 !important;
min-width: 0 !important;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
width: 80px;
min-width: 80px;
font-weight: 500;
}
.label-with-en-inline text {
display: block;
line-height: 1.5;
}
.label-with-en-inline .en-text {
font-size: 20rpx;
color: #999;
margin-top: 4rpx;
font-weight: normal;
}
.label-with-en-inline-del {
display: inline-flex;
flex-direction: column;
align-items: flex-start;
}
.label-with-en-inline-del text {
display: block;
line-height: 1.2;
}
.label-with-en-inline-del .en-text {
font-size: 18rpx;
color: #999;
margin-top: 2rpx;
font-weight: normal;
}
.button-with-en {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.button-with-en .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
font-weight: normal;
}
.button-with-en-submit {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.button-with-en-submit .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
font-weight: normal;
}
.button-mini-with-en {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 8rpx 16rpx;
}
.button-mini-with-en view {
line-height: 1.2;
}
.button-mini-with-en .en-text {
font-size: 18rpx;
opacity: 0.9;
margin-top: 2rpx;
font-weight: normal;
}
.label-with-en {
display: flex;
flex-direction: column;
}
.label-with-en .en-text {
font-size: 24rpx;
color: #999;
margin-top: 4rpx;
}
.label-with-en-table {
display: flex;
flex-direction: column;
align-items: center;
}
.label-with-en-table .en-text {
font-size: 20rpx;
color: #999;
margin-top: 2rpx;
}
/deep/ .uni-forms-item__label {
width: 140px !important;
min-width: 140px !important;
padding-right: 16rpx;
display: flex;
align-items: flex-start;
}
</style>

@ -9,27 +9,58 @@
<view class="dbstatus bm">
<view>{{info.audit_status_text}}</view>
<view>
<view>访问日期{{info.date}}{{ info.end_date?'至'+info.end_date:'' }}</view>
<view class="label-with-en">
<view>访问日期{{info.date}}{{ info.end_date?'至'+info.end_date:'' }}</view>
<view class="en-text">Visit Date: {{info.date}}{{ info.end_date?' to '+info.end_date:'' }}</view>
</view>
<view class="label-with-en">
<view>访问时间{{info.visit_time.start_time}}{{info.visit_time.end_time}}</view>
<view class="en-text">Visit Time: {{info.visit_time.start_time}} to {{info.visit_time.end_time}}</view>
</view>
</view>
<view v-if="info.type=='2'" class="label-with-en">
<view>施工时段{{info.work_start_time}}{{info.work_end_time}}</view>
<view class="en-text">Construction Period: {{info.work_start_time}} to {{info.work_end_time}}</view>
</view>
<view v-if="info.type=='2'">{{info.work_start_time}}{{info.work_end_time}}</view>
</view>
<view class="dbinfo justify-left">
<view>
<view>被访人<text>{{info.accept_admin.name}}</text></view>
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view>访问区域<text>{{info.visit_area.name}}</text></view>
<view class="label-with-en">
<view>被访人<text>{{info.accept_admin.name}}</text></view>
<view class="en-text">Host: <text>{{info.accept_admin.name}}</text></view>
</view>
<view class="label-with-en">
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_admin.department.name}}</text></view>
</view>
<view class="label-with-en">
<view>访问区域<text>{{info.visit_area.name}}</text></view>
<view class="en-text">Visit Area: <text>{{info.visit_area.name}}</text></view>
</view>
</view>
<view>
<view>拜访人<text>{{info.name}}</text></view>
<view>电话{{info.mobile}}</view>
<view v-if="info.type=='1'"><text>{{item.reason?info.reason:''}}</text></view>
<view v-else-if="info.type=='3'">车辆类型<text>{{info.plate}}</text></view>
<view class="label-with-en">
<view>拜访人<text>{{info.name}}</text></view>
<view class="en-text">Visitor: <text>{{info.name}}</text></view>
</view>
<view class="label-with-en">
<view>电话{{info.mobile}}</view>
<view class="en-text">Phone: {{info.mobile}}</view>
</view>
<view class="label-with-en" v-if="info.type=='1'">
<view>事由<text>{{item.reason?info.reason:''}}</text></view>
<view class="en-text">Reason: <text>{{item.reason?info.reason:''}}</text></view>
</view>
<view class="label-with-en" v-else-if="info.type=='3'">
<view>车辆类型<text>{{info.plate}}</text></view>
<view class="en-text">Vehicle Type: <text>{{info.plate}}</text></view>
</view>
</view>
</view>
<view class="company">
<view>
拜访公司<text>{{info.company_name?info.company_name:''}}</text>
<view class="label-with-en">
<view>拜访公司<text>{{info.company_name?info.company_name:''}}</text></view>
<view class="en-text">Company: <text>{{info.company_name?info.company_name:''}}</text></view>
</view>
</view>
@ -42,79 +73,115 @@
</view>
</view>
<template v-if="info.type!='3'">
<view class="dbtext">随访人员</view>
<view class="dbtext label-with-en">
<view>随访人员</view>
<view class="en-text">Follow-up Personnel</view>
</view>
<view class="dbitem sfyritem">
<template v-if="info.follw_people && info.follw_people.length>0">
<view class="dbinfo justify-left" v-for="people in info.follw_people">
<view class="dbinfo justify-left" v-for="people in info.follw_people" :key="people.id || people.name">
<view>
<view>
随访人<text>{{people.name}}</text>
<view class="label-with-en">
<view>随访人<text>{{people.name}}</text></view>
<view class="en-text">Follower: <text>{{people.name}}</text></view>
</view>
<view class="label-with-en">
<view>证件类型<text>{{people.credent==1?'身份证':'护照'}}</text></view>
<view class="en-text">ID Type: <text>{{people.credent==1?'ID Card':'Passport'}}</text></view>
</view>
<view class="label-with-en">
<view>证件号<text>{{people.idcard}}</text></view>
<view class="en-text">ID Number: <text>{{people.idcard}}</text></view>
</view>
<view>证件类型<text>{{people.credent==1?'身份证':'护照'}}</text></view>
<view>证件号<text>{{people.idcard}}</text></view>
</view>
<view>
电话<text>{{people.mobile}}</text>
<view class="label-with-en">
<view>电话<text>{{people.mobile}}</text></view>
<view class="en-text">Phone: <text>{{people.mobile}}</text></view>
</view>
</view>
</view>
</template>
<template v-else>
<view class="dbinfo justify-left">
<view class="label-with-en">
<view></view>
<view class="en-text">None</view>
</view>
</view>
</template>
</view>
</template>
<template>
<view class="dbtext">到访车辆</view>
<view class="dbtext label-with-en">
<view>到访车辆</view>
<view class="en-text">Visiting Vehicles</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo dbcars" v-if="info.cars && info.cars.length>0">
<view class="onechild" v-for="item in info.cars">
车牌<text>{{item?item:'无'}}</text>
<view class="onechild label-with-en" v-for="(item, index) in info.cars" :key="index">
<view>车牌<text>{{item?item:'无'}}</text></view>
<view class="en-text">License Plate: <text>{{item?item:'None'}}</text></view>
</view>
</view>
<view class="dbinfo dbcars" v-else>
<view class="onechild">
<view class="onechild label-with-en">
<view></view>
<view class="en-text">None</view>
</view>
</view>
</view>
</template>
<template v-if="info.type=='3'">
<view class="dbtext">收货人</view>
<view class="dbtext label-with-en">
<view>收货人</view>
<view class="en-text">Consignee</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accept_goods_admin.department.name}}</text>
<view class="label-with-en">
<view>部门<text>{{info.accept_goods_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_goods_admin.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accept_goods_admin.name}}</text>
<view class="label-with-en">
<view>人员<text>{{info.accept_goods_admin.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accept_goods_admin.name}}</text></view>
</view>
</view>
</view>
</template>
<view class="dbtext">被访人员</view>
<view class="dbtext label-with-en">
<view>被访人员</view>
<view class="en-text">Host Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accept_admin.department.name}}</text>
<view class="label-with-en">
<view>部门<text>{{info.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accept_admin.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accept_admin.name}}</text>
<view class="label-with-en">
<view>人员<text>{{info.accept_admin.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accept_admin.name}}</text></view>
</view>
</view>
</view>
<block v-if="info.visit_area.name=='生产区'">
<view class="dbtext">陪同人员</view>
<view class="dbtext label-with-en">
<view>陪同人员</view>
<view class="en-text">Accompanying Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<view>
部门<text>{{info.accompany.department.name}}</text>
<view class="label-with-en">
<view>部门<text>{{info.accompany.department.name}}</text></view>
<view class="en-text">Department: <text>{{info.accompany.department.name}}</text></view>
</view>
<view>
人员<text>{{info.accompany.name}}</text>
<view class="label-with-en">
<view>人员<text>{{info.accompany.name}}</text></view>
<view class="en-text">Personnel: <text>{{info.accompany.name}}</text></view>
</view>
</view>
</view>
@ -130,10 +197,15 @@
</template> -->
<view class="justify-between cancelcode">
<button :class="info.audit_status<1?'wd100 cancelbtn':'cancelbtn'" v-if="info.audit_status<2&&info.audit_status!=5" @click="showCancelM"
type="primary">取消拜访</button>
type="primary" class="button-with-en">
<view>取消拜访/Cancel Visit</view>
</button>
<button :class="info.audit_status==3?'wd100 codebtn':'codebtn'" v-if="info.audit_status==1||info.audit_status==3" @click="createdCode"
type="primary" style="">出示二维码</button>
type="primary" class="button-with-en">
<view>出示二维码</view>
<view class="en-text">Show QR Code</view>
</button>
</view>
</view>
@ -143,7 +215,10 @@
<u-popup class="codepop" :show="showCodes" mode="center" closeable="true" @close="closeshowCodes">
<view class="userBox" style="padding:0 120rpx 0rpx 120rpx;">
<view class="userInfoContent" style="padding: 40rpx;font-size: 28rpx;">
<text class="">核销码{{info.code}}</text>
<view class="label-with-en">
<text>核销码{{info.code}}</text>
<text class="en-text">Verification Code: {{info.code}}</text>
</view>
</view>
<view class="qrcode">
<canvas canvas-id='qrcode' style="width: 170px;height:170px;margin: 0 auto;">
@ -159,11 +234,20 @@
<u-popup class="cancelpop" :show="showCancel" mode="center" closeable="true" @close="cancelCancel">
<view class="userBox" style="padding:0 120rpx 0rpx 120rpx;">
<view class="userInfoContent" style="padding: 40rpx;font-size: 36rpx;">
<text class="">是否确认取消此次拜访?</text>
<view class="label-with-en">
<text>是否确认取消此次拜访?</text>
<text class="en-text">Are you sure to cancel this visit?</text>
</view>
</view>
<view class="justify-between cancelbtns">
<button @click="cancelCancel" class="cancelbtn">取消</button>
<button @click="confirmCancel" class="codebtn">确认</button>
<button @click="cancelCancel" class="cancelbtn button-with-en">
<view>取消</view>
<view class="en-text">Cancel</view>
</button>
<button @click="confirmCancel" class="codebtn button-with-en">
<view>确认</view>
<view class="en-text">Confirm</view>
</button>
</view>
</view>
</u-popup>
@ -340,5 +424,48 @@
.company text{
color: #8f9596;
}
.label-with-en {
margin-bottom: 8rpx;
display: flex;
flex-direction: column;
}
.label-with-en .en-text {
font-size: 24rpx;
color: #999;
margin-top: 4rpx;
}
.dbtext.label-with-en {
display: flex;
flex-direction: column;
padding-top: 10rpx;
margin-bottom: 30rpx;
color: #303639;
font-size: 40rpx;
padding-left: 30rpx;
}
.dbtext.label-with-en .en-text {
font-size: 28rpx;
color: #999;
margin-top: 6rpx;
}
.button-with-en {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.button-with-en .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
font-weight: normal;
}
.userInfoContent .label-with-en {
text-align: center;
}
.userInfoContent .label-with-en .en-text {
font-size: 22rpx;
margin-top: 8rpx;
}
</style>

@ -4,38 +4,38 @@
<uni-steps :options="steps" :active="stepActive" active-color="#4f607e" />
</view>
<view class="study" style="padding:0 20rpx">
<view class="service-show" v-if="studyInfo.file_detail.length>0">
<view v-if="picList.length>0&&showSwiperFlag==0">
<u-swiper :list="picList" @change="changeImg" keyName="url"
:height="'360rpx'" :interval='4000' :duration='500' :autoplay='false' circular>
<view slot="indicator" class="indicator">
<view class="indicator__dot" v-for="(item, index) in picList" :key="index"
:class="[index === imgcurrent && 'indicator__dot--active']">
</view>
</view>
</u-swiper>
</view>
<view v-if="videoList.length>0&&showSwiperFlag==1">
<u-swiper :list="videoList" @change="changeVideo" keyName="url"
:height="'360rpx'" :interval='4000' :duration='500' :autoplay='false' circular>
<view slot="indicator" class="indicator">
<view class="indicator__dot" v-for="(item, index) in videoList" :key="index"
:class="[index === videocurrent && 'indicator__dot--active']">
</view>
</view>
</u-swiper>
</view>
<view class="changePicVideo">
<view @click='changeSwiperImg' v-if="picList.length>0">
<image src="../../static/img/pic.png">
</image>{{picList.length}}
</view>
<view @click='changeSwiperVideo' v-if="videoList.length>0">
<image src="../../static/img/video.png">
</image>{{videoList.length}}
</view>
<view class="service-show" v-if="studyInfo.file_detail.length>0">
<view v-if="picList.length>0&&showSwiperFlag==0">
<u-swiper :list="picList" @change="changeImg" keyName="url"
:height="'360rpx'" :interval='4000' :duration='500' :autoplay='false' circular>
<view slot="indicator" class="indicator">
<view class="indicator__dot" v-for="(item, index) in picList" :key="index"
:class="[index === imgcurrent && 'indicator__dot--active']">
</view>
</view>
</u-swiper>
</view>
<view v-if="videoList.length>0&&showSwiperFlag==1">
<u-swiper :list="videoList" @change="changeVideo" keyName="url"
:height="'360rpx'" :interval='4000' :duration='500' :autoplay='false' circular>
<view slot="indicator" class="indicator">
<view class="indicator__dot" v-for="(item, index) in videoList" :key="index"
:class="[index === videocurrent && 'indicator__dot--active']">
</view>
</view>
</u-swiper>
</view>
<view class="changePicVideo">
<view @click='changeSwiperImg' v-if="picList.length>0">
<image src="../../static/img/pic.png">
</image>{{picList.length}}
</view>
<view @click='changeSwiperVideo' v-if="videoList.length>0">
<image src="../../static/img/video.png">
</image>{{videoList.length}}
</view>
</view>
</view>
@ -47,9 +47,14 @@
</view>
<button @click="goTest" :class="studyMin==-1?'goTest':'noTest'" :disabled="studyMin==-1?false:true">
<text v-if="studyMin==-1"></text>
<text v-else>{{studyInfo.minute?studyInfo.minute:""}}({{studyTime}})</text>
<view v-if="studyMin==-1" class="button-text">
<view>去测验</view>
<view class="en-text">Go to Test</view>
</view>
<view v-else class="button-text">
<view>需要学习{{studyInfo.minute?studyInfo.minute:""}}分钟可去测验({{studyTime}})</view>
<view class="en-text">Need to study {{studyInfo.minute?studyInfo.minute:""}} minutes before test ({{studyTime}})</view>
</view>
</button>
</view>
</template>
@ -60,28 +65,28 @@
return {
type: 1,
steps: [{
title: '填报'
title: '填报\nRegistration'
}, {
title: '学习'
title: '学习\nStudy'
}, {
title: '完成'
title: '完成\nComplete'
}],
stepActive: 1,
studyInfo: {},
picList:[],
videoList:[],
studyInfo: {},
picList:[],
videoList:[],
showSwiperFlag:0,
imgcurrent: 0,
imgcurrent: 0,
videocurrent:0,
studyTime: "00:00", //
studyMin: -1, //
timer: null,
}
},
onLoad(options) {
// uni.navigateTo({
// url:'/pages/visit/testStudy?type=1'
// })
onLoad(options) {
// uni.navigateTo({
// url:'/pages/visit/testStudy?type=1'
// })
// return
let that = this
this.type = options.type
@ -104,14 +109,14 @@
type: that.type
},
utilSuccess: function(res) {
that.studyInfo = res
for(var k of res.file_detail){
if(k.extension=='mp4'){
that.videoList.push(k)
}else{
that.picList.push(k)
}
}
that.studyInfo = res
for(var k of res.file_detail){
if(k.extension=='mp4'){
that.videoList.push(k)
}else{
that.picList.push(k)
}
}
that.showSwiperFlag = that.picList.length==0? 1 : 0
that.studyMin = res.minute * 60
// that.studyMin = .1 * 60
@ -135,21 +140,21 @@
uni.redirectTo({
url: '/pages/visit/testStudy?type=' + this.type
})
},
changeImg(e){
this.imgcurrent = e.current
},
changeImg(e){
this.videocurrent = e.current
},
changeSwiperImg(){
this.showSwiperFlag=0
this.imgcurrent=0
},
changeSwiperVideo(){
this.showSwiperFlag=1
this.videocurrent=0
}
},
changeImg(e){
this.imgcurrent = e.current
},
changeImg(e){
this.videocurrent = e.current
},
changeSwiperImg(){
this.showSwiperFlag=0
this.imgcurrent=0
},
changeSwiperVideo(){
this.showSwiperFlag=1
this.videocurrent=0
}
}
@ -180,7 +185,7 @@
background-color: #fff;
min-height: 100vh;
padding: 20rpx;
padding-bottom: 60rpx;
/* padding-bottom: 60rpx; */
position: relative;
}
@ -209,24 +214,39 @@
width: 100%;
height: 360rpx;
position: relative;
}
.service-show .changePicVideo{
position: absolute;
right: 80rpx;
bottom: 25rpx;
}
.service-show .changePicVideo view{
background: rgba(0,0,0,0.5);
display: inline-block;
padding: 5rpx 20rpx;
margin: 6rpx;
border-radius: 15rpx;
color: #fff;
font-size: 28rpx;
}
.service-show .changePicVideo view image{
width:24rpx;
height:21rpx;
margin-right: 10rpx;
}
</style>
.service-show .changePicVideo{
position: absolute;
right: 80rpx;
bottom: 25rpx;
}
.service-show .changePicVideo view{
background: rgba(0,0,0,0.5);
display: inline-block;
padding: 5rpx 20rpx;
margin: 6rpx;
border-radius: 15rpx;
color: #fff;
font-size: 28rpx;
}
.service-show .changePicVideo view image{
width:24rpx;
height:21rpx;
margin-right: 10rpx;
}
.button-text {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.button-text .en-text {
font-size: 20rpx;
opacity: 0.85;
margin-top: -25rpx;
font-weight: normal;
}
.button-text > view:first-child {
font-size: 28rpx;
}
</style>

@ -2,10 +2,19 @@
<view class="containers">
<view>
<img :src="succ" alt="">
<view>提交成功{{!iscall?',等待审核':''}}</view>
<view v-if="!iscall"></view>
<view class="success-title">
<view>提交成功{{!iscall?',等待审核':''}}</view>
<view class="en-text">{{!iscall?'Submit Successfully, Waiting for Approval':'Submit Successfully'}}</view>
</view>
<view v-if="!iscall" class="success-tip">
<view>审核通过后系统将在第一时间通知你</view>
<view class="en-text">After approval, the system will notify you as soon as possible</view>
</view>
<view>
<button @click="toHistory">访</button>
<button @click="toHistory" class="history-btn">
<view>我的拜访记录</view>
<view class="en-text">My Visit Records</view>
</button>
</view>
</view>
</view>
@ -15,20 +24,20 @@
export default {
data() {
return {
succ: require('../../static/img/success.png'),
iscall:false
succ: require('../../static/img/success.png'),
iscall:false
}
},
onLoad(options) {
this.iscall=options.iscall?true:false
this.iscall=options.iscall?true:false
},
methods: {
toHistory() {
let url = '/pages/visit/visithistory'
if(this.iscall){
url = '/pages/bd/record?type=call'
toHistory() {
let url = '/pages/visit/visithistory'
if(this.iscall){
url = '/pages/bd/record?type=call'
}
uni.redirectTo({
url: url
@ -64,13 +73,45 @@
margin-bottom: 40rpx
}
.containers>view view:first-child {
.success-title {
display: flex;
flex-direction: column;
align-items: center;
font-size: 40rpx;
color: #000
color: #000;
margin-bottom: 40rpx;
}
.containers>view button {
.success-title .en-text {
font-size: 28rpx;
color: #999;
margin-top: 8rpx;
font-weight: normal;
}
.success-tip {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 40rpx;
font-size: 32rpx;
color: #666;
}
.success-tip .en-text {
font-size: 24rpx;
color: #999;
margin-top: 8rpx;
}
.history-btn {
background-color: #4f607e;
color: #fff
color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20rpx 40rpx;
}
.history-btn .en-text {
font-size: 22rpx;
opacity: 0.9;
margin-top: 4rpx;
}
</style>
</style>

@ -2,13 +2,16 @@
<view class="containers">
<view class="steps">
<uni-steps :options="steps" :active="stepActive" active-color="#4f607e" />
</view>
<view class="expire" v-if="studyInfo.expire_day">
通过测验后{{studyInfo.expire_day}}天内可不再重复学习
</view>
<view class="expire" v-if="studyInfo.expire_day">
<view>通过测验后{{studyInfo.expire_day}}天内可不再重复学习</view>
<view class="en-text">After passing the test, you don't need to repeat learning within {{studyInfo.expire_day}} days.</view>
</view>
<view class="asks">
<view v-for="(item,index) in askList">
<view>{{index+1}}{{item.title}}({{item.type==1?'单选':'多选'}})</view>
<view v-for="(item,index) in askList" :key="index">
<view class="question-title">
<view>{{index+1}}{{item.title}}({{item.type==1?'单选':'多选'}}{{item.type==1?'Single Choice':'Multiple Choice'}})</view>
</view>
<view v-if="item.type==1">
<uni-data-checkbox v-model="result[index]" @change="e=>radioAnswer(e,index)"
:localdata="item.answer" :wrap='true' :map="{text:'content',value:'content'}" />
@ -18,11 +21,17 @@
:localdata="item.answer" :wrap='true' multiple :map="{text:'content',value:'content'}" />
</view>
</view>
</view>
</view>
<view disabled class="justify-between submitBtn">
<text>需要正确率达{{rate}}%</text>
<text @click="submitAnswer"></text>
<view class="submit-text">
<text>需要正确率达{{rate}}%</text>
<text class="en-text">Need {{rate}}% accuracy rate</text>
</view>
<view class="submit-btn" @click="submitAnswer">
<text>提交</text>
<text class="en-text">Submit</text>
</view>
</view>
</view>
@ -34,11 +43,11 @@
return {
type: 1,
steps: [{
title: '填报'
title: '填报\nRegistration'
}, {
title: '测验'
title: '测验\nTest'
}, {
title: '完成'
title: '完成\nComplete'
}],
stepActive: 1,
studyInfo: {},
@ -48,29 +57,29 @@
answerList: [],
result: {}, //
resultArr: [], //
formData: {},
askData:{},
formData: {},
askData:{},
askContent:[],
}
},
onLoad(options) {
let that = this
this.type = options.type
this.askData.type = parseInt(options.type)
// for(let i=0;i<20;i++){
// this.resultArr.push([])
// }
this.type = options.type
this.askData.type = parseInt(options.type)
// for(let i=0;i<20;i++){
// this.resultArr.push([])
// }
this.getFormdata()
this.getStudy()
this.getStudy()
},
methods: {
getFormdata(){
// let res = uni.getStorageSync('formdata')
// this.formData = res
let res = uni.getStorageSync('studydata')
this.askData = res
methods: {
getFormdata(){
// let res = uni.getStorageSync('formdata')
// this.formData = res
let res = uni.getStorageSync('studydata')
this.askData = res
},
async getStudy() {
let that = this
@ -82,11 +91,11 @@
utilSuccess: function(res) {
that.studyInfo = res
that.askList = res.asks
that.rate = parseInt(res.rate)
that.askData.ask = res.asks
that.askData.expire_day = res.expire_day
for(let i=0;i<res.asks.length;i++){
that.resultArr.push([])
that.rate = parseInt(res.rate)
that.askData.ask = res.asks
that.askData.expire_day = res.expire_day
for(let i=0;i<res.asks.length;i++){
that.resultArr.push([])
}
},
utilFail: function(res) {}
@ -94,7 +103,7 @@
},
//
radioAnswer(e, index) {
this.correctNum[index] = e.detail.data.result
this.correctNum[index] = e.detail.data.result
this.askContent[index] = e.detail.data.content
},
chenckAnswer(e, item, index) {
@ -122,7 +131,7 @@
},
//
submitAnswer() {
let correctLength = 0
let correctLength = 0
console.log("this.correctNum",this.correctNum)
for (var key in this.correctNum) {
if (this.correctNum[key] == 1) {
@ -131,109 +140,109 @@
}
let per = parseFloat(correctLength / this.askList.length) * 100
if (per < this.rate) {
this.util.alert("正确率不达标")
this.util.alert("正确率不达标/The accuracy rate does not meet the standard")
} else {
this.submitForm()
}
},
submitForm() {
let that = this
this.resultArr.map((k,index)=>{
if(k.length>0){
this.askContent[index] = k
}
})
this.askData.content = this.askContent
console.log(this.result,this.resultArr,'---',this.askContent)
console.log("askdata",this.askData)
that.submitStudy()
let that = this
this.resultArr.map((k,index)=>{
if(k.length>0){
this.askContent[index] = k
}
})
this.askData.content = this.askContent
console.log(this.result,this.resultArr,'---',this.askContent)
console.log("askdata",this.askData)
that.submitStudy()
return
this.util.request({
api: '/api/mobile/visit/visit-save',
method: "POST",
data: that.formData,
utilSuccess: function(res) {
uni.showToast({
title: res.msg,
duration: 2000,
icon: 'none'
})
uni.showToast({
title: res.msg,
duration: 2000,
icon: 'none'
})
that.newsSubscription()
},
utilFail: function(res) {
console.log(res)
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
utilFail: function(res) {
console.log(res)
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
}
})
},
submitStudy() {
let that = this
console.log("that.askData",that.askData)
// return
this.util.request({
api: '/api/mobile/visit/ask-save',
method: "POST",
data: that.askData,
utilSuccess: function(res) {
if(uni.getStorageSync('studydata')){
uni.removeStorageSync('studydata')
}
uni.showToast({
title: '提交成功',
duration: 1500,
icon: 'none'
})
setTimeout(function(){
uni.redirectTo({
url: '/pages/index/index'
})
},1500)
},
utilFail: function(res) {
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
}
})
},
submitStudy() {
let that = this
console.log("that.askData",that.askData)
// return
this.util.request({
api: '/api/mobile/visit/ask-save',
method: "POST",
data: that.askData,
utilSuccess: function(res) {
if(uni.getStorageSync('studydata')){
uni.removeStorageSync('studydata')
}
uni.showToast({
title: '提交成功',
duration: 1500,
icon: 'none'
})
setTimeout(function(){
uni.redirectTo({
url: '/pages/index/index'
})
},1500)
},
utilFail: function(res) {
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
}
})
},
newsSubscription() {
uni.getSetting({
withSubscriptions: true, //false
success(res) {
if (res.authSetting['scope.subscribeMessage']) {
uni.removeStorageSync('formdata')
uni.redirectTo({
url: '/pages/visit/successform'
})
} else {
//
uni.requestSubscribeMessage({
},
newsSubscription() {
uni.getSetting({
withSubscriptions: true, //false
success(res) {
if (res.authSetting['scope.subscribeMessage']) {
uni.removeStorageSync('formdata')
uni.redirectTo({
url: '/pages/visit/successform'
})
} else {
//
uni.requestSubscribeMessage({
tmplIds: ['OfDFwAIZyXqvPgmc_czIXhveVtp3n_ftyWJEks1DSi4',
'r8n41lmkGeob15YBuuxhG7MbpgVSsUxKnK9ORPtr5VY'],
success(res) {
console.log("res", res)
uni.showToast({
title:'订阅成功'
})
uni.removeStorageSync('formdata')
uni.redirectTo({
url: '/pages/visit/successform'
})
}
})
}
}
});
'r8n41lmkGeob15YBuuxhG7MbpgVSsUxKnK9ORPtr5VY'],
success(res) {
console.log("res", res)
uni.showToast({
title:'订阅成功'
})
uni.removeStorageSync('formdata')
uni.redirectTo({
url: '/pages/visit/successform'
})
}
})
}
}
});
},
}
@ -245,14 +254,14 @@
background-color: #fff;
padding: 20rpx;
padding-bottom: 60rpx;
position: relative;
position: relative;
overflow: hidden;
}
.asks {
min-height: 80vh;
overflow-y: auto;
padding-bottom:60rpx
.asks {
min-height: 80vh;
overflow-y: auto;
padding-bottom:60rpx
}
.asks>view,
@ -263,40 +272,72 @@
.containers>.submitBtn {
position: fixed;
bottom: 0;
width: 100%;
width: 100%;
left:0
}
.containers>.submitBtn text {
display: inline-block;
padding: 0 10px;
text-align: center;
.containers>.submitBtn .submit-text {
display: flex;
padding: 28rpx 20rpx;
width: 70%;
background-color: #f8f8f8;
font-size: 36rpx;
border-radius: 10rpx;
padding: 28rpx;
}
.containers>.submitBtn text:first-child {
border-radius: 0rpx 0 0 10rpx;
border-radius: 10rpx 0 0 10rpx;
}
.containers>.submitBtn text:last-child {
.containers>.submitBtn .submit-btn {
width: 30%;
background-color: #4f607e;
color: #fff;
display: inline-block;
border-radius: 0 0rpx 10rpx 0;
display: flex;
border-radius: 0 10rpx 10rpx 0;
padding: 28rpx 10rpx;
cursor: pointer;
}
.steps {
margin-bottom: 40rpx
}
.expire{
text-align: center;
font-size: 40rpx;
/* padding: 10px; */
margin-bottom: 40rpx;
}
</style>
.expire{
text-align: center;
font-size: 40rpx;
/* padding: 10px; */
margin-bottom: 40rpx;
display: flex;
flex-direction: column;
}
.expire .en-text {
font-size: 28rpx;
color: #999;
margin-top: 8rpx;
}
.question-title {
margin-bottom: 20rpx;
}
.question-title .en-text {
font-size: 24rpx;
color: #999;
margin-top: 6rpx;
}
.submit-text {
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 20rpx;
}
.submit-text .en-text {
font-size: 22rpx;
color: #666;
margin-top: 4rpx;
}
.submit-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.submit-btn .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
}
</style>

@ -7,23 +7,54 @@
<view class="steps">
<uni-steps :options="steps" :active="stepActive" active-color="#4f607e" />
</view>
<uni-forms ref="formdata" :model="form" :rules="rules" labelWidth="100px">
<view class="formtext">基础信息</view>
<uni-forms-item label="学习类型" required>
<uni-forms ref="formdata" :model="form" :rules="rules" labelWidth="140px">
<view class="formtext label-with-en">
<view>基础信息</view>
<view class="en-text">Basic Information</view>
</view>
<uni-forms-item required>
<template slot="label">
<view class="label-with-en-inline">
<text>学习类型</text>
<text class="en-text">Study Type</text>
</view>
</template>
<uni-data-select @change='changeType' v-model="form.type" :localdata="typeList">
</uni-data-select>
</uni-forms-item>
<uni-forms-item label="姓名" required name="name">
<uni-easyinput v-model="form.name" placeholder="请输入姓名" />
<uni-forms-item required name="name">
<template slot="label">
<view class="label-with-en-inline">
<text>姓名</text>
<text class="en-text">Name</text>
</view>
</template>
<uni-easyinput v-model="form.name" placeholder="请输入姓名 / Please enter name" />
</uni-forms-item>
<uni-forms-item label="联系电话" required name="mobile">
<uni-easyinput v-model="form.mobile" placeholder="请输入联系电话" />
<uni-forms-item required name="mobile">
<template slot="label">
<view class="label-with-en-inline">
<text>联系电话</text>
<text class="en-text">Phone Number</text>
</view>
</template>
<uni-easyinput v-model="form.mobile" placeholder="请输入联系电话 / Please enter phone number" />
</uni-forms-item>
<uni-forms-item label="身份证号" required name="idcard">
<uni-easyinput type="idcard" v-model="form.idcard" placeholder="请输入证件号码" />
<uni-forms-item required name="idcard">
<template slot="label">
<view class="label-with-en-inline">
<text>身份证号</text>
<text class="en-text">ID Card Number</text>
</view>
</template>
<uni-easyinput type="idcard" v-model="form.idcard" placeholder="请输入证件号码 / Please enter ID card number" />
</uni-forms-item>
</uni-forms>
<button class='study' type="primary" style="background-color: #4f607e;" @click="toUrl"></button>
<button class='study' type="primary" style="background-color: #4f607e;" @click="toUrl">
<view class="button-text">
<view>开始学习 / Start Learning</view>
</view>
</button>
</view>
</template>
@ -36,11 +67,11 @@
data(){
return{
steps: [{
title: '填报'
title: '填报\nRegistration'
}, {
title: '学习'
title: '学习\nStudy'
}, {
title: '完成'
title: '完成\nComplete'
}],
stepActive: 0,
form:{
@ -83,13 +114,13 @@
},
typeList:[{
value:1,
text:'普通访客'
text:'普通访客 / Regular Visitor'
},{
value:2,
text:'施工人员'
text:'施工人员 / Construction Worker'
},{
value:3,
text:'物流司机'
text:'物流司机 / Logistics Driver'
}]
}
},
@ -168,8 +199,8 @@
padding: 20rpx;
padding-bottom: 60rpx;
}
.formtext {
margin-bottom: 20rpx
.formtext {
margin-bottom: 20rpx
}
.steps {
margin-bottom: 40rpx
@ -181,4 +212,59 @@
margin: 20rpx;
width: 90%;
}
.label-with-en {
display: flex;
flex-direction: column;
font-weight: 500;
}
.label-with-en .en-text {
font-size: 24rpx;
color: #999;
margin-top: 4rpx;
font-weight: normal;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
width: 140px;
min-width: 140px;
font-weight: 500;
}
.label-with-en-inline text {
display: block;
line-height: 1.5;
}
.label-with-en-inline .en-text {
font-size: 20rpx;
color: #999;
margin-top: 4rpx;
font-weight: normal;
}
/deep/ .uni-forms-item__label {
width: 140px !important;
min-width: 140px !important;
padding-right: 16rpx;
display: flex;
align-items: flex-start;
}
/deep/ .uni-forms-item__content {
flex: 1;
min-width: 0;
}
/deep/ .uni-easyinput__content-input {
width: 100%;
}
/deep/ .uni-data-select {
width: 100%;
}
.button-text {
display: flex;
flex-direction: column;
align-items: center;
}
.button-text .en-text {
font-size: 20rpx;
opacity: 0.9;
margin-top: 2rpx;
}
</style>

@ -14,26 +14,54 @@
<view class="dbstatus bm">
<view>{{item.audit_status_text}}</view>
<view>
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="label-with-en">
<view>访问日期{{item.date}}{{ item.end_date?'至'+item.end_date:'' }}</view>
<view class="en-text">Visit Date: {{item.date}}{{ item.end_date?' to '+item.end_date:'' }}</view>
</view>
<view class="label-with-en">
<view>访问时间{{item.visit_time.start_time}}{{item.visit_time.end_time}}</view>
<view class="en-text">Visit Time: {{item.visit_time.start_time}} to {{item.visit_time.end_time}}</view>
</view>
</view>
</view>
<view class="dbinfo justify-left">
<view>
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="label-with-en">
<view>被访人<text>{{item.accept_admin.name}}</text></view>
<view class="en-text">Host: <text>{{item.accept_admin.name}}</text></view>
</view>
<view class="label-with-en">
<view>部门<text>{{item.accept_admin.department.name}}</text></view>
<view class="en-text">Department: <text>{{item.accept_admin.department.name}}</text></view>
</view>
<view class="label-with-en">
<view>访问区域<text>{{item.visit_area.name}}</text></view>
<view class="en-text">Visit Area: <text>{{item.visit_area.name}}</text></view>
</view>
</view>
<view>
<view>拜访人<text>{{item.name}}</text></view>
<view>电话{{item.mobile}}</view>
<view v-if="item.type=='1'"><text>{{item.reason?info.reason:''}}</text></view>
<view v-else-if="item.type=='3'">车牌<text>{{item.plate}}</text></view>
<view class="label-with-en">
<view>拜访人<text>{{item.name}}</text></view>
<view class="en-text">Visitor: <text>{{item.name}}</text></view>
</view>
<view class="label-with-en">
<view>电话{{item.mobile}}</view>
<view class="en-text">Phone: {{item.mobile}}</view>
</view>
<view class="label-with-en" v-if="item.type=='1'">
<view>事由<text>{{item.reason?item.reason:''}}</text></view>
<view class="en-text">Reason: <text>{{item.reason?item.reason:''}}</text></view>
</view>
<view class="label-with-en" v-else-if="item.type=='3'">
<view>车牌<text>{{item.plate}}</text></view>
<view class="en-text">License Plate: <text>{{item.plate}}</text></view>
</view>
</view>
</view>
<view class="company">
<view>
拜访公司<text>{{item.company_name?item.company_name:''}}</text>
<view class="label-with-en">
<view>拜访公司<text>{{item.company_name?item.company_name:''}}</text></view>
<view class="en-text">Company: <text>{{item.company_name?item.company_name:''}}</text></view>
</view>
</view>
@ -172,4 +200,13 @@
.company text{
color: #8f9596;
}
.label-with-en {
margin-bottom: 8rpx;
}
.en-text {
font-size: 24rpx;
color: #999;
margin-top: 4rpx;
padding-left: 0;
}
</style>

Loading…
Cancel
Save