|  |  |  | 
|---|
|  |  |  | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="部门" prop="departmentId"> | 
|---|
|  |  |  | <el-cascader | 
|---|
|  |  |  | :options="organization" | 
|---|
|  |  |  | v-model="form.departmentId" | 
|---|
|  |  |  | placeholder="请选择" | 
|---|
|  |  |  | :props="{ label: 'name', value: 'id', children: 'childList', checkStrictly: true }" | 
|---|
|  |  |  | clearable /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="抄送文件邮箱" prop="email"> | 
|---|
|  |  |  | <el-input v-model="form.email" placeholder="请输入" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | 
|---|
|  |  |  | import PositionSelect from '@/components/common/PositionSelect' | 
|---|
|  |  |  | import { checkMobile, checkEmail } from '@/utils/form' | 
|---|
|  |  |  | import { sendSms } from '@/api/business/smsEmail' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import { tree } from '@/api/business/companyDepartment' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperaUserWindow', | 
|---|
|  |  |  | extends: BaseOpera, | 
|---|
|  |  |  | 
|---|
|  |  |  | realname: '', // 姓名 | 
|---|
|  |  |  | mobile: '', // 手机号码 | 
|---|
|  |  |  | email: '', | 
|---|
|  |  |  | captcha: '' | 
|---|
|  |  |  | captcha: '', | 
|---|
|  |  |  | departmentId: '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | num: 0, | 
|---|
|  |  |  | timer: null, | 
|---|
|  |  |  | organization: [], | 
|---|
|  |  |  | // 验证规则 | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | username: [ | 
|---|
|  |  |  | 
|---|
|  |  |  | mobile: [ | 
|---|
|  |  |  | { required: true, validator: checkMobile } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | departmentId: [ | 
|---|
|  |  |  | { required: true, message: '请选择部门' } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | email: [ | 
|---|
|  |  |  | { required: true, message: '请输入邮箱' } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | __confirmCreate () { | 
|---|
|  |  |  | this.$refs.form.validate((valid) => { | 
|---|
|  |  |  | if (!valid) { | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let obj = JSON.parse(JSON.stringify(this.form)) | 
|---|
|  |  |  | obj.departmentId = obj.departmentId[obj.departmentId.length - 1] | 
|---|
|  |  |  | // 调用新建接口 | 
|---|
|  |  |  | this.isWorking = true | 
|---|
|  |  |  | this.api.create(obj) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | this.visible = false | 
|---|
|  |  |  | this.$tip.apiSuccess('新建成功') | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(e => { | 
|---|
|  |  |  | this.$tip.apiFailed(e) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .finally(() => { | 
|---|
|  |  |  | this.isWorking = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | __confirmEdit () { | 
|---|
|  |  |  | this.$refs.form.validate((valid) => { | 
|---|
|  |  |  | if (!valid) { | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let obj = JSON.parse(JSON.stringify(this.form)) | 
|---|
|  |  |  | obj.departmentId = obj.departmentId[obj.departmentId.length - 1] | 
|---|
|  |  |  | // 调用新建接口 | 
|---|
|  |  |  | this.isWorking = true | 
|---|
|  |  |  | this.api.updateById(obj) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | this.visible = false | 
|---|
|  |  |  | this.$tip.apiSuccess('修改成功') | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(e => { | 
|---|
|  |  |  | this.$tip.apiFailed(e) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .finally(() => { | 
|---|
|  |  |  | this.isWorking = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | send() { | 
|---|
|  |  |  | if (!this.form.mobile) { | 
|---|
|  |  |  | this.$message.warning('请输入手机号') | 
|---|
|  |  |  | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | this.num = 60 | 
|---|
|  |  |  | this.setTime() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getTree() { | 
|---|
|  |  |  | tree() | 
|---|
|  |  |  | .then(records => { | 
|---|
|  |  |  | this.organization = records | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | setTime() { | 
|---|
|  |  |  | 
|---|
|  |  |  | open (title, target) { | 
|---|
|  |  |  | this.title = title | 
|---|
|  |  |  | this.visible = true | 
|---|
|  |  |  | this.getTree() | 
|---|
|  |  |  | clearInterval(this.timer) | 
|---|
|  |  |  | this.num = 0 | 
|---|
|  |  |  | // 新建 | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.$refs.form.resetFields() | 
|---|
|  |  |  | this.form.id = null | 
|---|
|  |  |  | this.form.departmentId = null | 
|---|
|  |  |  | this.form.positionIds = [] | 
|---|
|  |  |  | // this.form.departmentId = null | 
|---|
|  |  |  | // this.form.positionIds = [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | for (const key in this.form) { | 
|---|
|  |  |  | this.form[key] = target[key] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.form.departmentId = target.department == null ? null : target.department.id | 
|---|
|  |  |  | this.form.positionIds = target.positions == null ? [] : target.positions.map(p => p.id) | 
|---|
|  |  |  | // this.form.departmentId = target.department == null ? null : target.department.id | 
|---|
|  |  |  | // this.form.positionIds = target.positions == null ? [] : target.positions.map(p => p.id) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|