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.

234 lines
7.1 KiB

2 months ago
<template>
<view>
<!-- 动火人弹出框 -->
<u-popup :show="showPop" mode="right" customStyle="width: 100vw;height: 100vh;z-index:15;" class="popup">
<!-- 自定义导航栏 -->
<u-navbar bgColor="#ffffff" :placeholder="true" titleStyle="font-weight:600" title="选择人员">
<view slot="left"><!-- <p style="font-size: 18px;">取消</p> --></view>
<view slot="right" @click="goToPage()"><p style="font-size: 18px;color: #3C9CFF;">确定</p></view>
</u-navbar>
<view>
<!-- <u-row style="padding: 0 20rpx;margin-top: 25rpx;">
<u-col :span="12" style="border: 1px solid #dedede;">
<lin-select
:list="productList2"
loading-text="数据加载中"
value-key="deptName"
max-height="180"
placeholder="根据人员单位或部门名称查询"
@input="input2"
v-model="mytext2"
/>
</u-col>
</u-row> -->
<u-row style="padding: 0 20rpx;margin-top: 10rpx;">
<u-col :span="12" style="border: 1px solid #dedede;">
<uni-easyinput focus v-model="nameSouSuo" placeholder="根据人员姓名查询" :clear="true"></uni-easyinput>
</u-col>
</u-row>
<!-- <uni-section class="mb-10" :title="`已选择人员${numDou === 1 ? '(单选)' : '(可多选)'}`" type="line"></uni-section> -->
<u-row style="padding: 20rpx 0rpx 0rpx 10rpx;margin-bottom: 10rpx;font-size: 16px;color: #3C9CFF;">已选择人员{{ numDou === 1 ? '(单选)' : '(可多选)' }}</u-row>
<view style="padding: 10rpx 10rpx;display: flex; flex-wrap: wrap; justify-content: start;">
<template v-for="(item, index) in firepersonCheckList">
<u-tag :text="item.nickName" plain closable @close="closeName(item)"></u-tag>
<!-- <u-col :span="3">{{ index + 1 }}.{{ item.nickName }}</u-col>
<u-col :span="7">{{ item.deptName }}</u-col>
<u-col :span="2"><u--text @click="closeName(item)" type="error" text="取消"></u--text></u-col> -->
</template>
</view>
<u-gap height="0.5" bgColor="#d6d6d6"></u-gap>
<view>
<!-- 全部人员名单-->
<!-- <uni-section class="mb-10" title="人员名单" type="line"></uni-section> -->
<u-row style="padding: 20rpx 0rpx 0rpx 10rpx;font-size: 16px;color: #3C9CFF;">可选择人员名单</u-row>
<!-- 全部人员 -->
<!-- <u-row style="padding: 0rpx 0rpx 20rpx 10rpx;">
<u-col :span="3">姓名</u-col>
<u-col :span="7">部门名称</u-col>
<u-col :span="2">操作</u-col>
</u-row> -->
<scroll-view scroll-y="true" style="height: 900rpx;">
<template v-for="(item, index) in zyFzUserList">
<u-row style="padding: 20rpx 10rpx;">
<u-col :span="3">{{ index + 1 }}.{{ item.nickName }}</u-col>
<u-col :span="7">{{ item.deptName }}</u-col>
<u-col :span="2"><u--text @click="selectPerson(item)" type="primary" text="选择"></u--text></u-col>
</u-row>
<u-gap height="0.5" bgColor="#d6d6d6"></u-gap>
</template>
<view style="width: 100%;height: 180rpx;"></view>
</scroll-view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
//查询部门全部 //查询人员全部
import { selectUserListBaseInfo } from '@/api/system/user.js';
export default {
name: 'signPop',
props: {
nameSee: { type: Array, default: [] },
//显示隐藏
showPop: { type: Boolean, default: false },
signName: {
type: String,
default: '请传入签字人'
},
numDou: {
type: [Number, String],
default: 1
}
},
data() {
return {
// mytext2: '', //作业单位
deptID: '', //作业单位id
nameSouSuo: '',
productList2: [], //作业单位返回表单
zyFzUserList: [],
firepersonCheckList: this.nameSee //人员选择信息
};
},
mounted() {
this.zyFzUserList = [];
this.productList2 = [];
this.firepersonCheckList = this.nameSee;
// this.mytext2 = '';
this.deptID = '';
this.nameSouSuo = '';
},
watch: {
showPop(newdata, olddata) {
console.log(this.nameSee);
console.log(newdata);
this.zyFzUserList = [];
this.productList2 = [];
this.firepersonCheckList = this.nameSee;
// this.mytext2 = '';
this.deptID = '';
this.nameSouSuo = '';
},
// //监听作业单位值变化取作业单位id
// mytext2(newdata, olddata) {
// if (this.showPop) {
// if (this.mytext2.length < 2) {
// // console.log(this.mytext2.length);
// this.deptID = '';
// }
// if (this.productList2.length !== 0) {
// this.productList2.map(item => {
// if (item.deptName === newdata) {
// this.deptID = item.deptId;
// // console.log('mytexye');
// this.getUserDataList(item.deptId, this.nameSouSuo);
// }
// });
// }
// }
// },
//监听作业单位值变化取作业单位id
nameSouSuo(newdata, olddata) {
if (this.showPop) {
//部门id为空
if (this.deptID.length === 0) {
//名字为空
if (newdata.length === 0) {
return;
} else {
console.log('部门为空,名字有');
this.getUserDataList(this.deptID, newdata);
}
} else {
//部门id不为空 名字为空
if (newdata.length === 0) {
console.log('部门id不为空 名字为空');
this.getUserDataList(this.deptID);
} else {
//部门id不为空 名字不为空
console.log('部门id不为空 名字不为空');
this.getUserDataList(this.deptID, newdata);
}
}
}
}
},
methods: {
//取消
goToPage1() {
//参数1选择的人名信息参数2签字人
this.$emit('dataName', 'no', this.signName);
//传值完成,重置传值姓名数组
this.firepersonCheckList = [];
},
//确定
goToPage() {
//参数1选择的人名信息参数2签字人
this.$emit('dataName', this.firepersonCheckList, this.signName);
//传值完成,重置传值姓名数组
this.firepersonCheckList = [];
},
// 点击选择名字
selectPerson(item) {
//单选
if (this.numDou === 1) {
//防止选择重复
if (this.firepersonCheckList.indexOf(item) === -1) {
if (this.firepersonCheckList.length < 1) {
this.firepersonCheckList.push(item);
} else {
this.firepersonCheckList.splice(0, 1, item);
}
}
} else {
//防止选择重复
if (this.firepersonCheckList.indexOf(item) === -1) {
this.firepersonCheckList.push(item);
}
}
},
// 删除名字
closeName(id) {
// console.log(this.firepersonCheckList.indexOf(id));
this.firepersonCheckList.splice(this.firepersonCheckList.indexOf(id), 1);
},
// //作业单位搜索框
// input2(val) {
// //不等于空才执行
// if (val != '') {
// //防抖节流
// listDept({
// deptName: val
// }).then(res => {
// this.productList2 = [];
// res.data.map(item => {
// this.productList2.push({ deptId: item.deptId, deptName: item.deptName });
// });
// });
// }
// },
getUserDataList(id, name) {
selectUserListBaseInfo({
deptId: id,
nickName: name
}).then(res => {
this.zyFzUserList = [];
res.data.map(item => {
this.zyFzUserList.push({ userId: item.userId, nickName: item.nickName, deptName: item.deptName });
});
});
}
}
};
</script>
<style lang="scss"></style>