<template>
|
<view class="visit">
|
<view class="head">拜访信息</view>
|
<view class="list">
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>被访人手机</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<input
|
type="number"
|
maxlength="11"
|
placeholder="请输入手机号"
|
placeholder-style="color: #999999;"
|
/>
|
</view>
|
</view>
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>被访人姓名</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<input
|
type="text"
|
placeholder="请输入姓名"
|
placeholder-style="color: #999999;"
|
/>
|
</view>
|
</view>
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>劳务班次</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<view class="list_item_content_item active">白班</view>
|
<view class="list_item_content_item">夜班</view>
|
</view>
|
</view>
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>预计入园时间</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<text>请选择</text>
|
<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
|
</view>
|
</view>
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>预计离园时间</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<text>请选择</text>
|
<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
|
</view>
|
</view>
|
<view class="list_item" @click="show = true">
|
<view class="list_item_label">
|
<text>访问门禁</text>
|
<text>*</text>
|
</view>
|
<view class="list_item_content">
|
<text>请选择</text>
|
<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
|
</view>
|
</view>
|
<view class="list_item">
|
<view class="list_item_label">
|
<text>拜访事由</text>
|
<text></text>
|
</view>
|
<view class="list_item_content">
|
<input
|
type="text"
|
placeholder="请输入来访事由,您来做什么的"
|
placeholder-style="color: #999999;"
|
/>
|
</view>
|
</view>
|
</view>
|
<view class="cate">
|
<view class="cate_head">车辆信息</view>
|
<view class="cate_list">
|
<view class="cate_list_item">
|
<text>皖AD12178</text>
|
<u-icon name="close" color="#999999" size="20"></u-icon>
|
</view>
|
</view>
|
<view class="cate_add" @click="show2 = true">+添加车辆</view>
|
</view>
|
<view class="cate">
|
<view class="cate_head">随访人员信息</view>
|
<view class="cate_list">
|
<view class="cate_list_item">
|
<text>何江宜</text>
|
<u-icon name="close" color="#999999" size="20"></u-icon>
|
</view>
|
</view>
|
<view class="cate_add" @click="show1 = true">+添加随访人员</view>
|
</view>
|
<view class="zw"></view>
|
<view class="footer">
|
<view class="footer_btn">提交</view>
|
</view>
|
<!-- 门禁 -->
|
<u-picker
|
:show="show"
|
:columns="columns"
|
:immediateChange="true"
|
keyName="name"
|
@cancel="show = false"
|
@confirm="confirm"
|
></u-picker>
|
<!-- 随行人员 -->
|
<!-- 选择随行人员 -->
|
<u-popup
|
:show="show1"
|
:round="10"
|
:safeAreaInsetBottom="true"
|
:closeable="true"
|
mode="bottom"
|
@close="show1 = false"
|
>
|
<view class="popup-content">
|
<view class="respondent-title"> 选择随行人员 </view>
|
<view class="search-box">
|
<view class="search-box-top">
|
<view class="search-box-top-ipt">
|
<image src="@/static/ic_search@2x.png" mode="widthFix"></image>
|
<input type="text" placeholder="搜索姓名/手机号" />
|
</view>
|
<text
|
@click="
|
show1 = false;
|
show3 = true;
|
"
|
>新增</text
|
>
|
</view>
|
<view class="search-box-total">共0条数据</view>
|
</view>
|
<scroll-view scroll-y class="list">
|
<view class="item" v-for="(item, index) in 8" :key="index">
|
<view class="item_a">
|
<!-- <image src="@/static/checkbox.png" mode="widthFix" v-if="!item.active" /> -->
|
<image src="@/static/checkbox_sel@2x.png" mode="widthFix" />
|
</view>
|
<view class="item_b">
|
<image src="@/static/ic_mima@2x.png" mode="widthFix" />
|
</view>
|
<view class="item_c">
|
<text>用户名</text>
|
<text>已拉黑</text>
|
</view>
|
</view>
|
</scroll-view>
|
<view class="footer1">
|
<view class="footer_left">
|
<text class="footer_left_a">已选择:0人</text>
|
<text class="footer_left_b">李伟;</text>
|
</view>
|
<view class="footer_btn">确认 0/0</view>
|
</view>
|
</view>
|
</u-popup>
|
<!-- 车辆 -->
|
<u-popup
|
:show="show2"
|
:round="10"
|
:safeAreaInsetBottom="true"
|
:closeable="true"
|
mode="bottom"
|
@close="show2 = false"
|
>
|
<view class="addcar">
|
<view class="addcar_head">添加车辆</view>
|
<view class="addcar_ipt">
|
<input type="text" placeholder="请输入车牌号" />
|
</view>
|
<view class="addcar_footer">
|
<view class="addcar_footer_item">取消</view>
|
<view class="addcar_footer_item t">提交</view>
|
</view>
|
</view>
|
</u-popup>
|
<!-- 添加随行人员 -->
|
<u-popup
|
:show="show3"
|
:round="10"
|
:safeAreaInsetBottom="true"
|
:closeable="true"
|
mode="bottom"
|
@close="show3 = false"
|
>
|
<view class="adduser">
|
<view class="adduser_head">随行人员</view>
|
<view class="adduser_list">
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>姓名</text>
|
<text>*</text>
|
</view>
|
<view class="adduser_list_item_ipt">
|
<input
|
type="text"
|
placeholder-style="color: #999999;"
|
placeholder="请输入您的真实姓名"
|
/>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>手机号</text>
|
<text>*</text>
|
</view>
|
<view class="adduser_list_item_ipt">
|
<input
|
type="number"
|
maxlength="11"
|
placeholder-style="color: #999999;"
|
placeholder="请输入您的手机号"
|
/>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>证件类型</text>
|
<text>*</text>
|
</view>
|
<view class="adduser_list_item_ipt">
|
<text>身份证</text>
|
<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>证件号码</text>
|
<text>*</text>
|
</view>
|
<view class="adduser_list_item_ipt">
|
<input
|
type="text"
|
placeholder-style="color: #999999;"
|
placeholder="请输入您的证件号码"
|
/>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>公司</text>
|
<text></text>
|
</view>
|
<view class="adduser_list_item_ipt">
|
<input
|
type="text"
|
placeholder-style="color: #999999;"
|
placeholder="请输入您的公司名称"
|
/>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>人脸照片</text>
|
<text>*</text>
|
</view>
|
<view class="adduser_list_item_ipt1">
|
<u-upload
|
:fileList="fileList"
|
@afterRead="afterRead"
|
@delete="deletePic"
|
name="1"
|
multiple
|
:maxCount="1"
|
></u-upload>
|
</view>
|
</view>
|
<view class="adduser_list_item">
|
<view class="adduser_list_item_label">
|
<text>健康证照片</text>
|
<text></text>
|
</view>
|
<view class="adduser_list_item_ipt1">
|
<u-upload
|
:fileList="fileList"
|
@afterRead="afterRead"
|
@delete="deletePic"
|
name="1"
|
multiple
|
:maxCount="1"
|
></u-upload>
|
</view>
|
</view>
|
</view>
|
<view class="adduser_footer">
|
<view class="adduser_footer_item">取消</view>
|
<view class="adduser_footer_item t">提交</view>
|
</view>
|
</view>
|
</u-popup>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
show: false,
|
show1: false,
|
show2: false,
|
show3: false,
|
fileList: [],
|
columns: [
|
[{
|
name: '东门',
|
id: 1
|
},
|
{
|
name: '西门',
|
id: 2
|
}
|
]
|
]
|
}
|
},
|
methods: {
|
confirm(e) {
|
console.log(e)
|
this.show = false
|
},
|
// 删除图片
|
deletePic(event) {
|
this[`fileList${event.name}`].splice(event.index, 1)
|
},
|
// 新增图片
|
async afterRead(event) {
|
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
let lists = [].concat(event.file)
|
let fileListLen = this[`fileList${event.name}`].length
|
lists.map((item) => {
|
this[`fileList${event.name}`].push({
|
...item,
|
status: 'uploading',
|
message: '上传中'
|
})
|
})
|
for (let i = 0; i < lists.length; i++) {
|
const result = await this.uploadFilePromise(lists[i].url)
|
let item = this[`fileList${event.name}`][fileListLen]
|
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
|
status: 'success',
|
message: '',
|
url: result
|
}))
|
fileListLen++
|
}
|
},
|
uploadFilePromise(url) {
|
return new Promise((resolve, reject) => {
|
let a = uni.uploadFile({
|
url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
|
filePath: url,
|
name: 'file',
|
formData: {
|
user: 'test'
|
},
|
success: (res) => {
|
setTimeout(() => {
|
resolve(res.data.data)
|
}, 1000)
|
}
|
})
|
})
|
},
|
}
|
}
|
</script>
|
<style>
|
page {
|
background-color: #f7f7f7 !important;
|
}
|
.u-upload__button {
|
margin: 0 !important;
|
}
|
</style>
|
<style lang="scss" scoped>
|
.visit {
|
width: 100%;
|
|
.adduser {
|
padding: 30rpx;
|
width: 100%;
|
box-sizing: border-box;
|
.adduser_head {
|
width: 100%;
|
text-align: center;
|
font-size: 32rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 600;
|
color: #222222;
|
}
|
.adduser_list {
|
width: 100%;
|
margin-top: 40rpx;
|
.adduser_list_item {
|
width: 100%;
|
padding: 24rpx 0;
|
box-sizing: border-box;
|
border-bottom: 1rpx solid #e5e5e5;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.adduser_list_item_label {
|
flex-shrink: 0;
|
display: flex;
|
align-items: center;
|
text {
|
&:nth-child(1) {
|
font-size: 30rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #222222;
|
}
|
&:nth-child(2) {
|
font-size: 30rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #e0312a;
|
}
|
}
|
}
|
.adduser_list_item_ipt {
|
flex: 1;
|
text-align: right;
|
font-size: 28rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #333333;
|
margin-left: 30rpx;
|
display: flex;
|
align-items: center;
|
justify-content: flex-end;
|
text {
|
font-size: 28rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #333333;
|
}
|
}
|
}
|
}
|
.adduser_footer {
|
width: 100%;
|
margin-top: 60rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.t {
|
background: #025eef !important;
|
color: #ffffff !important;
|
}
|
.adduser_footer_item {
|
width: 336rpx;
|
height: 88rpx;
|
line-height: 88rpx;
|
text-align: center;
|
border-radius: 44rpx;
|
border: 1rpx solid #025eef;
|
font-size: 32rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #025eef;
|
margin-right: 18rpx;
|
&:last-child {
|
margin: 0 !important;
|
}
|
}
|
}
|
}
|
|
.addcar {
|
padding: 30rpx;
|
width: 100%;
|
box-sizing: border-box;
|
.addcar_head {
|
text-align: center;
|
font-size: 32rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 600;
|
color: #222222;
|
}
|
.addcar_ipt {
|
width: 100%;
|
height: 100rpx;
|
line-height: 100rpx;
|
text-align: center;
|
background: #f7f7f7;
|
border-radius: 50rpx;
|
margin-top: 60rpx;
|
input {
|
width: 100%;
|
height: 100%;
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #999999;
|
text-align: center;
|
}
|
}
|
.addcar_footer {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
margin-top: 60rpx;
|
.t {
|
background: #025eef !important;
|
color: #ffffff !important;
|
}
|
.addcar_footer_item {
|
flex: 1;
|
height: 88rpx;
|
line-height: 88rpx;
|
font-size: 32rpx;
|
font-weight: 400;
|
color: #025eef;
|
text-align: center;
|
border-radius: 44rpx;
|
border: 1rpx solid #025eef;
|
margin-right: 18rpx;
|
&:last-child {
|
margin-right: 0 !important;
|
}
|
}
|
}
|
}
|
|
.popup-content {
|
padding: 30rpx 30rpx 0 30rpx;
|
overflow: hidden;
|
display: flex;
|
flex-flow: column;
|
.respondent-title {
|
width: 100%;
|
text-align: center;
|
font-size: 32rpx;
|
font-weight: 600;
|
color: #222222;
|
}
|
.search-box {
|
width: 100%;
|
margin-top: 40rpx;
|
.search-box-top {
|
width: 100%;
|
height: 68rpx;
|
display: flex;
|
align-items: center;
|
.search-box-top-ipt {
|
flex: 1;
|
height: 100%;
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
background: #f7f7f7;
|
border-radius: 4rpx;
|
display: flex;
|
align-items: center;
|
image {
|
width: 36rpx;
|
height: 36rpx;
|
flex-shrink: 0;
|
margin-right: 22rpx;
|
}
|
input {
|
flex: 1;
|
height: 100%;
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #b2b2b2;
|
}
|
}
|
text {
|
flex-shrink: 0;
|
margin-left: 30rpx;
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #025eef;
|
}
|
}
|
.search-box-total {
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #666666;
|
margin-top: 24rpx;
|
}
|
}
|
.list {
|
width: 100%;
|
height: 800rpx;
|
margin-top: 30rpx;
|
padding: 0 !important;
|
.item {
|
width: 100%;
|
height: 102rpx;
|
display: flex;
|
align-items: center;
|
border-bottom: 1rpx solid #e5e5e5;
|
.item_a {
|
flex-shrink: 0;
|
width: 36rpx;
|
height: 36rpx;
|
margin-right: 24rpx;
|
image {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
.item_b {
|
flex-shrink: 0;
|
width: 80rpx;
|
height: 80rpx;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
overflow: hidden;
|
margin-right: 24rpx;
|
image {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
.item_c {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
text {
|
&:nth-child(1) {
|
font-size: 30rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #222222;
|
}
|
&:nth-child(2) {
|
font-size: 20rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #999999;
|
padding: 1rpx 4rpx;
|
box-sizing: border-box;
|
background-color: #eeeeee;
|
margin-left: 12rpx;
|
}
|
}
|
}
|
}
|
}
|
.footer1 {
|
width: 100%;
|
height: 100rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
padding: 14rpx 0 0 0;
|
box-sizing: border-box;
|
.footer_left {
|
flex: 1;
|
display: flex;
|
flex-direction: column;
|
.footer_left_a {
|
font-size: 26rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #333333;
|
}
|
.footer_left_b {
|
font-size: 24rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #999999;
|
}
|
}
|
.footer_btn {
|
flex-shrink: 0;
|
width: 216rpx;
|
height: 72rpx;
|
line-height: 72rpx;
|
text-align: center;
|
background: #025eef;
|
border-radius: 8rpx;
|
font-size: 28rpx;
|
font-weight: 600;
|
color: #ffffff;
|
}
|
}
|
}
|
|
.head {
|
width: 100%;
|
padding: 20rpx 30rpx;
|
box-sizing: border-box;
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #666666;
|
}
|
|
.list {
|
width: 100%;
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
background-color: #ffffff;
|
|
.list_item {
|
width: 100%;
|
height: 98rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
border-bottom: 1rpx solid #e5e5e5;
|
|
.list_item_label {
|
flex-shrink: 0;
|
display: flex;
|
align-items: center;
|
|
text {
|
&:nth-child(1) {
|
font-size: 30rpx;
|
font-weight: 400;
|
color: #222222;
|
}
|
|
&:nth-child(2) {
|
font-size: 30rpx;
|
font-weight: 400;
|
color: #e42d2d;
|
}
|
}
|
}
|
|
.list_item_content {
|
flex: 1;
|
height: 100%;
|
margin-left: 30rpx;
|
display: flex;
|
align-items: center;
|
justify-content: flex-end;
|
|
.active {
|
background: #025eef !important;
|
color: #ffffff !important;
|
}
|
|
.list_item_content_item {
|
width: 104rpx;
|
height: 64rpx;
|
line-height: 64rpx;
|
text-align: center;
|
background: #eeeeee;
|
border-radius: 4rpx;
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #333333;
|
margin-left: 20rpx;
|
}
|
|
text {
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #999999;
|
margin-right: 6rpx;
|
}
|
|
input {
|
width: 100%;
|
height: 100%;
|
text-align: right;
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
}
|
}
|
|
.cate {
|
width: 100%;
|
padding: 30rpx;
|
box-sizing: border-box;
|
background-color: #ffffff;
|
margin-top: 20rpx;
|
|
.cate_head {
|
font-size: 32rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 600;
|
color: #222222;
|
}
|
|
.cate_list {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
flex-wrap: wrap;
|
margin-top: 30rpx;
|
|
.cate_list_item {
|
height: 64rpx;
|
padding: 0 20rpx;
|
box-sizing: border-box;
|
background-color: #eeeeee;
|
border-radius: 4rpx;
|
margin-right: 20rpx;
|
margin-bottom: 20rpx;
|
display: flex;
|
align-items: center;
|
|
&:last-child {
|
margin-right: 0 !important;
|
}
|
|
text {
|
font-size: 26rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
color: #333333;
|
margin-right: 30rpx;
|
}
|
}
|
}
|
|
.cate_add {
|
width: 200rpx;
|
height: 50rpx;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
background: rgba(2, 94, 239, 0);
|
border-radius: 25rpx;
|
border: 1rpx solid #025eef;
|
font-size: 22rpx;
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
margin-top: 20rpx;
|
color: #025eef;
|
margin: 0 auto;
|
}
|
}
|
|
.zw {
|
width: 100%;
|
height: calc(env(safe-area-inset-bottom) + 118rpx);
|
}
|
|
.footer {
|
width: 100%;
|
padding: 0 30rpx;
|
padding-bottom: env(safe-area-inset-bottom);
|
box-sizing: border-box;
|
position: fixed;
|
left: 0;
|
bottom: 30rpx;
|
|
.footer_btn {
|
width: 100%;
|
height: 88rpx;
|
line-height: 88rpx;
|
text-align: center;
|
background: #025eef;
|
border-radius: 44rpx;
|
font-size: 32rpx;
|
font-weight: 600;
|
color: #ffffff;
|
}
|
}
|
}
|
</style>
|