<template> <!-- 授权用户 --> <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body > <el-form v-show="!isSolo" :model="queryParams" ref="queryForm" size="small" :inline="true" > <el-form-item label="用户名称" prop="userName"> <el-input v-model.trim="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="手机号码" prop="phonenumber"> <el-input v-model.trim="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button > </el-form-item> </el-form> <el-row> <el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" /> <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" /> <el-table-column label="部门" prop="deptId" :show-overflow-tooltip="true" /> <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" /> <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" /> <el-table-column label="状态" align="center" prop="status"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" /> </template> </el-table-column> <el-table-column label="创建时间" align="center" prop="createTime" width="180" > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> </el-table> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> </el-row> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="handleSelectUser">确 定</el-button> <el-button @click="visible = false">取 消</el-button> </div> </el-dialog> </template> <script> import { listUserNew } from "@/api/system/user"; import { number } from "echarts"; export default { dicts: ["sys_normal_disable"], props: { deptId: { type: String, default: "", }, isSolo: { type: Boolean, default: true, }, // 回显数据传值 // selectValues: { // type: Number | String | Array, // default: null, // required: false, // }, }, data() { return { type: 1, // 遮罩层 visible: false, // 选中数组值 ids: [], // 总条数 total: 0, // 未授权用户数据 userList: [], // 查询参数 queryParams: { pageNum: 1, pageSize: 10, status: "0", userName: "", phonenumber: "", deptId: "", orderByColumn: "createTime", isAsc: "desc", }, }; }, methods: { // 显示弹框 show(type, promoterId) { this.queryParams.deptId = this.deptId; if (type) { this.type = type; } this.getList(promoterId); this.visible = true; }, clickRow(row) { this.$refs.table.toggleRowSelection(row); }, // 多选框选中数据 handleSelectionChange(selection) { if (this.type == 1) { if (selection.length > 1) { this.$modal.msg("只能选择一个跟进人"); this.$refs.table.clearSelection(); return; } if (this.ids.length == 0) { this.ids = selection; } else { this.$modal.msg("只能选择一个跟进人"); this.ids = []; // table与table的ref绑定的一样 this.$refs.table.clearSelection(); } } else { this.ids = selection; } }, // 查询表数据 getList(promoterId) { listUserNew(this.queryParams).then((res) => { this.userList = res.rows; this.total = res.total; if (promoterId) { promoterId = parseInt(promoterId); this.$nextTick(() => { this.$refs.table.toggleRowSelection( this.userList.find((item) => { if (promoterId == item.userId) { return item; } }), true ); }); } }); }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.resetForm("queryForm"); this.queryParams.orderByColumn = "createTime"; this.queryParams.isAsc = "desc"; this.handleQuery(); }, /** 选择用户操作 */ handleSelectUser() { const deptId = this.queryParams.deptId; if (this.type === 2) { this.$emit("getDeptMoreUserInfo", this.ids); } else { this.$emit("getDeptUserInfo", this.ids); } this.visible = false; }, }, }; </script>