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

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>
<!-- 动火人弹出框 -->
<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>