hz-zhhq-app/pages/visitorAppointment2/visitorAppointment2.vue

533 lines
16 KiB
Vue
Raw Normal View History

2025-01-22 10:53:47 +08:00
<template>
<view class="container">
<view class="interviewee">
<!-- <view>
<text class="input_left">到访地点</text>
<input type="text" placeholder="无到访地点名" :value="place" disabled="true">
</view> -->
<view>
<text class="input_left">申请状态</text>
<input type="text" placeholder="无申请状态" :value="status" disabled="true">
</view>
<view>
<text class="input_left">被访人部门</text>
<input type="text" placeholder="无申请部门" :value="dpnameCover || ''" disabled="true">
</view>
<view>
<text class="input_left">被访人姓名</text>
<input type="text" placeholder="无被访人姓名" :value="person" disabled="true">
</view>
<view>
<text class="input_left">手机号码</text>
<input type="tel" placeholder="无被访人手机号码" :value="visited_person_tel" disabled="true">
</view>
<view>
<text class="input_left">来访时间</text>
<input type="tel" placeholder="无来访时间" :value="start" disabled="true">
</view>
<view>
<text class="input_left">离开时间</text>
<input type="tel" placeholder="无离开时间" :value="end" disabled="true">
</view>
<view>
<text class="input_left">来访类型</text>
<input type="text" placeholder="无来访事由" :value="appointmentTypeList[appointmentType]" disabled="true">
</view>
<view>
<text class="input_left">来访事由</text>
<input type="text" placeholder="无来访事由" :value="reason" disabled="true">
</view>
</view>
<view class="visitor_2">
<view class="visitor_2_text mar-none">
<view><text>&nbsp;&nbsp;&nbsp;:</text>{{person2}}</view>
<view><text>&nbsp;&nbsp;&nbsp;:</text>{{orgName}}</view>
<view><text>手机号:</text>{{tel}}</view>
<view><text>身份证:</text>{{idcard}}{{identityAuth=='1'?'(身份已认证)':'(身份认证中)'}}</view>
<view v-if="licensePlate!=''"><text>车牌号:</text>{{licensePlate}}</view>
</view>
<view class="pic" v-if="picture0 || picture1 || picture2">
<image :src="picture0" mode="" @tap="previewImage(picture0)" v-if="picture0"></image>
<image :src="picture1" mode="" @tap="previewImage(picture1)" v-if="picture1"></image>
<image :src="picture2" mode="" @tap="previewImage(picture2)" v-if="picture2"></image>
</view>
<!-- <view class="pic" v-if="picture0 || picture1 || picture2">
<image :src="picture0" mode="" v-if="picture0"></image>
<image :src="picture1" mode="" v-if="picture1"></image>
<image :src="picture2" mode="" v-if="picture2"></image>
</view> -->
</view>
<view v-if="retinueList.length > 0">
<view class="visitor_2" v-for="(item,index) in retinueList" :key="index" >
<view class="visitor_2_text mar-none">
<view><text>&nbsp;&nbsp;&nbsp;:</text>{{item.retinue_name}}</view>
<view><text>手机号:</text>{{item.visitor_tel}}</view>
<view><text>身份证:</text>{{item.idcard}}</view>
</view>
</view>
</view>
<!-- <view id="result">
<view class="ing">
<i></i>
<text>被拜访人已同意 2019-11-28 19:36:24</text>
</view>
</view> -->
<view style="clear: both;"></view>
<view class="occupied"></view>
<view class="footer-btn" @click="submit(id,0)" v-if="role=='1' && first_status=='0'">
<view class="btn">{{button_text}}</view>
</view>
<!-- <view class="footer-btn footer-btn-two"
v-if="role==2 && first_status=='0'">
<view class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view class="btn btn-col1" @click="submit(id,2)">同意</view>
</view> -->
<!-- userLevel=0专责权限 -->
<view v-if="userLevel=='0' && appointmentType!='1'">
<view class="footer-btn footer-btn-two" v-if="first_status==0">
<view class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view class="btn btn-col1" @click="circulation()">同意</view>
</view>
<!-- <view class="footer-btn footer-btn-two" v-if=" first_status!=0">
<view style="width: 100%;" class="btn btn-col1" @click="circulation()">流转</view>
</view> -->
</view>
<view v-if="userLevel=='0' && appointmentType=='1'">
<view class="footer-btn footer-btn-two" v-if="first_status==0">
<view class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view class="btn btn-col1" @click="submit(id,2)">同意</view>
</view>
</view>
<view v-if="userLevel=='1'">
<view class="footer-btn footer-btn-two" v-if="second_status==0">
<view style="width: 33%;" class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view style="width: 34%;" class="btn btn-col1" @click="submit(id,2)">同意</view>
<view style="width: 33%;background: #348CF2;" class="btn btn-col1" @click="circulation()">流转</view>
</view>
</view>
<view v-if="userLevel=='2'">
<view class="footer-btn footer-btn-two" v-if="third_status==0">
<view class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view class="btn btn-col1" @click="submit(id,2)">同意</view>
<!-- <view style="width: 33%;background: #348CF2;" class="btn btn-col1" @click="circulation()">流转</view> -->
</view>
</view>
<view v-if="userLevel=='8'">
<view class="footer-btn footer-btn-two" v-if="current_status.charAt(current_status.length-1)==0">
<view class="btn btn-col" @click="submit(id,1)">拒绝</view>
<view class="btn btn-col1" @click="submit(id,2)">同意</view>
<!-- <view style="width: 33%;background: #348CF2;" class="btn btn-col1" @click="circulation()">流转</view> -->
</view>
</view>
<uni-popup ref="popup" type="center" style="">
<view style="background: white;width: 80%;height: 840upx;width: 600upx;position: relative;border-radius: 10upx;padding: 14upx;">
<view class="tab_rig visitorshow-box" ><!-- uinfo.orgName -->
<xfl-select
:list="finalList"
:clearable="true"
:listShow="showList"
:isCanInput="true"
:focusShowList = "true"
:style_Container="' font-size: 28upx;border-radius:10upx;border:1px solid #e5e5e5;width:95%'"
:placeholder = "'请输入姓名、手机号、部门搜索'"
@change="changeSel"
@input="inputSel"
@clear="clearSel"
:selectHideType="'hideAll'"
>
</xfl-select>
</view>
<view class="footer-btn footer-btn-two" style="position: absolute;margin-bottom: 20upx;">
<view class="btn btn-col" style="width:40%;margin-left:7%;margin-right: 6%;border-radius: 10upx;" @click="closeCirculation()">取消</view>
<view class="btn btn-col1" style="width:40%;border-radius: 10upx" @click="submitCirculation()">确定</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import {getApplyInfo,greenVisitorInfo,getCirculationList,submitCirculation} from '@/common/api.js';
import {callbackRequest,alertTip,getStorage} from '@/common/util.js';
import UniPopup from "@/components/uni-popup/uni-popup.vue"
import xflSelect from '../../components/xfl-select/xfl-select1.vue'
export default {
components: {
UniPopup,
xflSelect
},
data() {
return {
button_class:"submit_button",
button_text:"取消",
status:"未审批",
picture0:'../../static/IDpic1.png',
picture1:'../../static/IDpic1.png',
picture2:'../../static/IDpic1.png',
stateList: ['待审核', '已通过','已拒绝','待本人确认','已取消','','已流转'],
role:'',
userId:'',
id:'',//记录的id
person:'',
person2:'',
place:'',
tel:'',
visited_person_tel:'',
start:'',
end:'',
dpnameCover:'',
orgName:'',
reason:'',
idcard:'',
retinueList:[],
first_status:"",
second_status:"",
third_status:'',
current_status:'',
userLevel:getStorage('userInfo').userLevel,
identityAuth:0,//1.身份已认真 0身份认真中,
list: [],
finalList: [],
showList:true,
circulationId:"",
applyId:"",
appointmentTypeList:['普通访客','参会人员'],
appointmentType:"",
}
},
onLoad(options){
this.id = options.id;
this.role = options.role;
this.userId = options.userId;
this.reFresh(this.userId,this.id,"02");//必须是02
this.getCirculationList();
},
methods: {
previewImage(image) {
var imgArr = [];
imgArr.push(image);
//预览图片
uni.previewImage({
urls: imgArr,
current: imgArr[0]
});
},
reFresh(userId,id,type){
var data = {userId:this.userId,id:id,applyType:type};
let params = {
"method": getApplyInfo,//根据id和申请类型查询申请详情
"data": data
};
console.log(params);
callbackRequest(params)
.then(res =>{
console.log(res);
this.person = res.data.returnData[0].visited_person_name;
this.person2 = res.data.returnData[0].visitor_name;
this.place = res.data.returnData[0].visit_place;
this.tel = res.data.returnData[0].visitor_tel;
this.visited_person_tel = res.data.returnData[0].visited_person_tel;
this.start = res.data.returnData[0].visit_start_time;
this.end = res.data.returnData[0].visit_end_time;
this.dpnameCover = res.data.returnData[0].dpnameCover||res.data.returnData[0].orgNameCover;
this.orgName = res.data.returnData[0].orgName
this.reason = res.data.returnData[0].visit_reason;
this.idcard = res.data.returnData[0].idcard;
this.first_status = res.data.returnData[0].first_status;
this.second_status = res.data.returnData[0].second_status;
this.third_status = res.data.returnData[0].third_status;
this.current_status = res.data.returnData[0].current_status;
if(this.userLevel==0){
this.status = this.stateList[this.first_status];
}else if(this.userLevel==1){
this.status = this.stateList[this.second_status];
}else if(this.userLevel==2){
this.status = this.stateList[this.third_status];
}else{
this.status = this.stateList[this.current_status.charAt(this.current_status.length-1)];
}
this.picture0 = res.data.returnData[0].face_pic1;
this.picture1 = res.data.returnData[0].picture1;
this.picture2 = res.data.returnData[0].picture2;
this.retinueList = res.data.returnData[1].greenRetinueInfoList || [];
this.identityAuth = res.data.returnData[0].identityAuth;
this.applyId = res.data.returnData[0].id;
this.appointmentType = res.data.returnData[0].appointmentType;
this.licensePlate = res.data.returnData[0].licensePlate==null?"":res.data.returnData[0].licensePlate;
})
},
submit(id,type){
let params = {
"method": greenVisitorInfo,// 申请的审批
"data": {userId:this.userId,applyId:this.id,applyType:type,userLevel:this.userLevel,appointmentType:this.appointmentType,}//分三种情况
};
var self = this;
var content="是否确认拒绝";
if(type==2){
content="是否确认同意";
}
uni.showModal({
title: '提示',
content: content,
success: function(res){
if (res.confirm) {
callbackRequest(params)
.then(res =>{
const url = '/pages/invite2/invite2?type=2';
alertTip(res.data.returnMsg);
setTimeout(function() {
uni.redirectTo({
url
});
}, 10);
})
}
}
})
},
getCirculationList(){
let params = {
"method": getCirculationList,
"data": {userLevel:this.userLevel,deptName:getStorage("userInfo").deptName}
};
callbackRequest(params)
.then(res =>{
var resList = [];
resList = res.data.returnData;
var list = [];
for(var i=0;i<resList.length;i++){
var listObj = resList[i];
var obj={};
obj.value = listObj.real_name+"/"+listObj.mobile+"/"+listObj.department_name;
obj.id = listObj.id;
list.push(obj);
}
this.list = list;
this.finalList = list;
})
},
circulation(){
this.$refs.popup.open()
},
closeCirculation(){
this.$refs.popup.close()
},
inputSel(e){
this.circulationId="";
if(e.detail.value == ""){
this.finalList = this.list;
this.showList = true;
return
}
var finalList = [];
for (var i = 0; i < this.list.length; i++) {
let ite = this.list[i].value;
// 包含某一字符串
if(ite.indexOf(e.detail.value) !== -1){
finalList = finalList.concat(ite);
}
}
this.finalList = finalList;
this.showList = true;
},
changeSel(newVal){
//console.log(newVal);
this.circulationId = newVal.orignItem.id;
//this.uinfo.orgName = newVal.newVal;
},
clearSel(){
this.circulationId="";
this.finalList = this.list;
this.showList = true;
},
submitCirculation(){
if(this.circulationId==""){
alertTip("请选择流转人员");
return
}
let params={
method:submitCirculation,
data:{id:this.circulationId,applyId:this.applyId,userLevel:this.userLevel}
}
callbackRequest(params)
.then(res =>{
const url = '/pages/invite2/invite2?type=2';
alertTip(res.data.returnMsg);
setTimeout(function() {
uni.redirectTo({
url
});
}, 10);
})
}
}
}
</script>
<style lang="scss">
@import '@/static/css/common.scss';
.container{
min-height:100vh;
background: #f5f5f5;
overflow:hidden;
}
.interviewee{
padding: 0upx 30upx 0;
background: #fff;
margin:30rpx 30rpx 0;
border-radius: 10rpx;
.input_left{
width: 150rpx;
color: #333333;
font-size: 28rpx;
font-weight: bold;
}
}
.interviewee view{
line-height: 40rpx;
padding:20rpx 0;
color: #333333;
font-size: 28rpx;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
position: relative;
}
.interviewee view:last-child{
border-bottom:0px;
}
.interviewee view input{
font-size: 28rpx;
margin-left: 20rpx;
}
.visitor_2{
margin:20rpx 30rpx 20rpx;
background: #ffffff;
border-radius:10upx;
}
.visitor_2{
border-radius: 15upx;
padding:30rpx 30rpx;
overflow:hidden;
}
.visitor_2 .pic{
padding-top:20rpx;
}
.visitor_2 image{
width: 180rpx;
height:180rpx;
vertical-align:top;
margin-right:20rpx;
}
.visitor_2_text{
margin-left: 170upx;
padding:0rpx 0;
view{
font-size: 28upx;
color:#666;
line-height:40rpx;
text{
font-weight:bold;
display: inline-block;
width:110rpx;
text-align:right;
padding-right:10rpx;
color:#333;
}
}
}
.visitor_2 .mar-none{
margin-left:0;
}
/* 已同意 */
#result .ing {
background: #ffffff;
height: 2.2rem;
line-height: 1.2rem;
border-radius: .133333rem;
}
#result .ing i {
width: .566667rem;
height: .566667rem;
border: .033333rem solid #00c277;
display: inline-block;
margin-left: .8rem;
margin-right: .24rem;
border-radius: 50%;
margin-top: .9rem;
}
#result .ing text {
color: #00c277;
font-size: .745333rem;
}
.submit{
width: 100%;
position: fixed;
bottom: 20upx;
/* bottom: 0upx; */
height:80upx;
display: inline;
background-color: #00C277;
}
button{
font-size: 38upx;
font_weight: bold;
height:80upx;
}
.submit_button{
width: 100%;
color: #FFFFFF;
background-color: #00C277;
margin: 0;
}
.btn_refuse{
width: 50%;
color: #FFFFFF;
background-color: red;
margin: 0;
}
.btn_agree{
width: 50%;
color: #FFFFFF;
background-color: #00C277;
margin-left: 50%;
margin-top: -80upx;
}
.visitorshow-box{
.show-box{
text-align: left;
-webkit-appearance: none;
background-color: #fff;
background-image: none;
border-radius: 4px;
border: 1px solid #c0c4cc;
box-sizing: border-box;
color: #606266;
display: inline-block;
font-size: inherit;
height: 3em;
line-height: inherit;
outline: none;
padding: 0 12% 0 2%;
-webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
width: 100%;
position: relative;
width: 100%!important;
}
}
</style>