You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

462 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="containers">
<view class="db">
<view class="dblist">
<view>
<view class="dbitem">
<text class="dbtype">{{info.type_text}}</text>
<view class="dbstatus bm">
<view>{{info.audit_status_text}}</view>
<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>
<view class="dbinfo justify-left">
<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 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 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>
<!-- <view class="dblong">
<view>长期访客申请:<text>{{info.long_time==0?'否':'是'}}</text></view>
<view v-if="info.long_time==1">长期访问时间:{{info.start_date?info.start_date:''}} 至 {{info.end_date?info.end_date:''}}</view>
</view> -->
</view>
</view>
<template v-if="info.type!='3'">
<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, idx) in info.follw_people" :key="idx">
<view>
<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>
<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 label-with-en-inline">
<view>无</view>
<view class="en-text">None</view>
</view>
</template>
</view>
</template>
<template>
<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 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 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 label-with-en-inline">
<view>收货人</view>
<view class="en-text">Consignee</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<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 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 label-with-en-inline">
<view>被访人员</view>
<view class="en-text">Visited Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<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.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 label-with-en-inline">
<view>陪同人员</view>
<view class="en-text">Escort Personnel</view>
</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<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 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>
</block>
<!-- <template v-if="info.accept_admin_sign">
<view class="dbtext">签字</view>
<view class="dbitem sfyritem">
<view class="dbinfo justify-left">
<image style="width:100%" :src="info.accept_admin_sign_file.url" mode=""></image>
</view>
</view>
</template> -->
<!-- 审核 -->
<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="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>
<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" class="button-with-en">
<view>审核/Review</view>
</button>
</view>
<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>
</view>
</view>
</template>
<script>
import '@/static/css/bd.css'
export default {
data() {
return {
id: "",
info: {},
checkText:'',
checkTextEn:'',
checkLevel:[{
id:1,
value:'请等待一级审核完成'
},{
id:2,
value:'请等待二级审核完成'
},{
id:3,
value:'请等待三级审核完成'
}],
checkForm: {
level: "",
status: "",
audit_admin_id: "",
visit_id:"",
reason:""
},
rules: {
status: {
rules: [{
required: true,
errorMessage: '请选择状态 / Please select status'
}]
}
},
statusList: [
{
value: 1,
text: "通过/Approve",
textEn: "Approve"
},
{
value: 2,
text: "驳回/Reject",
textEn: "Reject"
},
],
check_admin_name: "",
userId:'',
isCheck:false,
}
},
onReady() {
},
onLoad(options) {
this.id = options.id
this.userId = uni.getStorageSync('userInfo_Bd').id
this.checkForm.visit_id = parseInt(options.id)
this.loadDetail()
},
methods: {
checkSubmit() {
let that = this
console.log(that.checkForm)
this.$refs['formdata'].validate().then(res => {
this.util.request({
api: '/api/admin/visit_audit/save',
method: "POST",
requestType:'bd',
data: that.checkForm,
utilSuccess: function(res) {
uni.showToast({
title: res.msg,
duration: 2000,
icon: 'none'
})
// uni.removeStorageSync('formData')
uni.redirectTo({
url:'/pages/bd/record?type=mycheck'
})
},
utilFail: function(res) {
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
}
})
}).catch(err => {
console.log('err', err);
})
},
loadDetail() {
let that = this
this.util.request({
api: '/api/admin/visit/show',
method: "get",
requestType: 'bd',
data: {
id: that.id
},
utilSuccess: function(res) {
that.info = res
for (let item of res.audit) {
if(item.status==0){
if(that.userId==item.audit_admin_id){
that.checkForm.level = item.level
that.checkForm.id = item.id
that.checkForm.audit_admin_id = item.audit_admin_id
that.isCheck = true
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
// }
// })
that.isCheck = false
return
}
}else{
that.isCheck = false
}
}
},
utilFail: function(res) {
uni.showToast({
title: res,
duration: 2000,
icon: 'none'
})
}
})
},
isnull(p) {
if (p == '' || p == undefined || p == null || p == 'undefined' || p == 'null') {
return ""
} else {
return p
}
}
}
}
</script>
<style scoped>
.containers {
background-color: #eceefe;
min-height: 100vh;
padding-top: 20rpx;
}
.dbtext {
padding-top: 10rpx;
margin-bottom: 30rpx;
color: #303639;
font-size: 40rpx;
padding-left: 30rpx
}
.dbcars>view{
width:100%;
padding-left:0
}
.sfyritem {
padding-bottom: 10rpx
}
.dbinfo>view text {
color: #8f9596;
}
.company{
padding-bottom:30rpx;
margin-top:-10rpx;
}
.company text{
color: #8f9596;
}
.label-with-en-inline {
display: flex;
flex-direction: column;
align-items: flex-start;
margin-right: 15rpx;
}
.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>