|  |  | 
 |  |  |     @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="mobile"> | 
 |  |  |         <el-input v-model="form.mobile" placeholder="请输入" v-trim maxlength="11"/> | 
 |  |  |       <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> | 
 |  |  |       <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 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> --> | 
 |  |  |       <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="email"> | 
 |  |  |         <el-input v-model="form.email" placeholder="请输入" v-trim /> | 
 |  |  |             <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> | 
 |  |  |     </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: '', | 
 |  |  |         captcha: '' | 
 |  |  |         email: '', // 邮箱 | 
 |  |  |         sex: '1', // 性别 | 
 |  |  |         birthday: '' // 生日 | 
 |  |  |       }, | 
 |  |  |       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: [ | 
 |  |  |           { required: true, message: '请输入邮箱' } | 
 |  |  |           { validator: checkEmail } | 
 |  |  |         ] | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   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(() => { |