|  |  |  | 
|---|
|  |  |  | @confirm="confirm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form :model="form" ref="form" :rules="rules"> | 
|---|
|  |  |  | <el-form-item label="用户名" prop="username" required> | 
|---|
|  |  |  | <el-input v-model="form.username" placeholder="请输入用户名" v-trim maxlength="50"/> | 
|---|
|  |  |  | <el-form-item label="账号" prop="username" required> | 
|---|
|  |  |  | <el-input v-model="form.username" placeholder="请输入" v-trim maxlength="50"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="姓名" prop="realname" required> | 
|---|
|  |  |  | <el-input v-model="form.realname" placeholder="请输入姓名" v-trim maxlength="50"/> | 
|---|
|  |  |  | <el-form-item label="名称" prop="realname" required> | 
|---|
|  |  |  | <el-input v-model="form.realname" placeholder="请输入" v-trim maxlength="50"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="性别" prop="sex" required> | 
|---|
|  |  |  | <el-radio-group v-model="form.sex"> | 
|---|
|  |  |  | <el-radio label="1">男</el-radio> | 
|---|
|  |  |  | <el-radio label="0">女</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | <el-form-item label="联系方式" prop="mobile"> | 
|---|
|  |  |  | <el-input v-model="form.mobile" placeholder="请输入" v-trim maxlength="11"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="头像" prop="avatar" required> | 
|---|
|  |  |  | <el-radio-group v-model="form.avatar" class="form-item-avatar"> | 
|---|
|  |  |  | <el-radio label="https://dmtest.ahapp.net/preselectfile/man.png" border><img src="https://dmtest.ahapp.net/preselectfile/man.png" alt=""></el-radio> | 
|---|
|  |  |  | <el-radio label="https://dmtest.ahapp.net/preselectfile/woman.png" border><img src="https://dmtest.ahapp.net/preselectfile/woman.png" alt=""></el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | <el-form-item label="验证码" prop="captcha"> | 
|---|
|  |  |  | <div style="width: 100%; display: flex; align-items: center;"> | 
|---|
|  |  |  | <el-input v-model="form.captcha" maxlength="11" type="number" style="flex: 1;" placeholder="请输入" v-trim/> | 
|---|
|  |  |  | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">发送验证码</el-button> | 
|---|
|  |  |  | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item v-if="form.id == null" label="初始密码" prop="password" required> | 
|---|
|  |  |  | <el-input v-model="form.password" type="password" placeholder="请输入初始密码" maxlength="30" show-password/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="所属部门" prop="departmentId" required> | 
|---|
|  |  |  | <DepartmentSelect v-model="form.departmentId" placeholder="请选择用户所属部门" :inline="false" clearable/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="岗位" prop="positionId"> | 
|---|
|  |  |  | <PositionSelect v-model="form.positionIds" placeholder="请选择用户所在岗位" :inline="false" :multiple="true" clearable/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="工号" prop="empNo"> | 
|---|
|  |  |  | <el-input v-model="form.empNo" placeholder="请输入工号" v-trim maxlength="50"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="手机号码" prop="mobile"> | 
|---|
|  |  |  | <el-input v-model="form.mobile" placeholder="请输入手机号码" v-trim maxlength="11"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="邮箱" prop="email"> | 
|---|
|  |  |  | <el-input v-model="form.email" placeholder="请输入邮箱" v-trim maxlength="200"/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="生日" prop="birthday"> | 
|---|
|  |  |  | <el-date-picker v-model="form.birthday" value-format="yyyy-MM-dd" placeholder="请选择用户生日"/> | 
|---|
|  |  |  | <el-form-item label="抄送文件邮箱" prop="email"> | 
|---|
|  |  |  | <el-input v-model="form.email" placeholder="请输入" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | 
|---|
|  |  |  | import DepartmentSelect from '@/components/common/DepartmentSelect' | 
|---|
|  |  |  | import PositionSelect from '@/components/common/PositionSelect' | 
|---|
|  |  |  | import { checkMobile, checkEmail } from '@/utils/form' | 
|---|
|  |  |  | import { sendSms } from '@/api/business/smsEmail' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperaUserWindow', | 
|---|
|  |  |  | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | username: '', // 用户名 | 
|---|
|  |  |  | realname: '', // 姓名 | 
|---|
|  |  |  | empNo: '', // 工号 | 
|---|
|  |  |  | departmentId: null, //  所属部门ID | 
|---|
|  |  |  | positionIds: [], //  所属岗位ID集 | 
|---|
|  |  |  | avatar: '/avatar/man.png', // 头像 | 
|---|
|  |  |  | password: '', // 密码 | 
|---|
|  |  |  | mobile: '', // 手机号码 | 
|---|
|  |  |  | email: '', // 邮箱 | 
|---|
|  |  |  | sex: '1', // 性别 | 
|---|
|  |  |  | birthday: '' // 生日 | 
|---|
|  |  |  | email: '', | 
|---|
|  |  |  | captcha: '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | num: 0, | 
|---|
|  |  |  | timer: null, | 
|---|
|  |  |  | // 验证规则 | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | username: [ | 
|---|
|  |  |  | 
|---|
|  |  |  | realname: [ | 
|---|
|  |  |  | { required: true, message: '请输入姓名' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | password: [ | 
|---|
|  |  |  | { required: true, message: '请输入密码' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | departmentId: [ | 
|---|
|  |  |  | { required: true, message: '请选择部门' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | avatar: [ | 
|---|
|  |  |  | { required: true, message: '请选择用户头像' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | sex: [ | 
|---|
|  |  |  | { required: true, message: '请选择用户性别' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | mobile: [ | 
|---|
|  |  |  | { required: true, validator: checkMobile } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | email: [ | 
|---|
|  |  |  | { validator: checkEmail } | 
|---|
|  |  |  | { required: true, message: '请输入邮箱' } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | send() { | 
|---|
|  |  |  | if (!this.form.mobile) { | 
|---|
|  |  |  | this.$message.warning('请输入手机号') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sendSms({ phone: this.form.mobile }) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | this.num = 60 | 
|---|
|  |  |  | this.setTime() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | setTime() { | 
|---|
|  |  |  | this.timer = setInterval(() => { | 
|---|
|  |  |  | this.num -= 1 | 
|---|
|  |  |  | if (this.num === 0) { | 
|---|
|  |  |  | clearInterval(this.timer) | 
|---|
|  |  |  | this.num = 0 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, 1000) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @title 窗口标题 | 
|---|
|  |  |  | * @target 编辑的用户对象 | 
|---|
|  |  |  | 
|---|
|  |  |  | open (title, target) { | 
|---|
|  |  |  | this.title = title | 
|---|
|  |  |  | this.visible = true | 
|---|
|  |  |  | clearInterval(this.timer) | 
|---|
|  |  |  | this.num = 0 | 
|---|
|  |  |  | // 新建 | 
|---|
|  |  |  | if (target == null) { | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|