No Description

editUser.vue 8.4KB

    <template> <el-dialog title="编辑用户" ref="ruleForm" :visible.sync="dialogTableVisible" width="860px" @close='closed'> <el-form class="form-main" :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position='top' status-icon> <el-row> <el-col :span="12"> <el-form-item label="账号" prop='account'> <el-input placeholder="请输入账号" v-model="ruleForm2.account" maxlength=11></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="用户姓名" prop='name'> <el-input placeholder="请输入用户姓名" v-model="ruleForm2.name" maxlength=20></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="职位" prop='job'> <el-input placeholder="请输入用户职位" v-model="ruleForm2.job" maxlength=100></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="用户所在机构" prop='comp'> <el-input placeholder="请输入用户所在机构" v-model="ruleForm2.comp" maxlength=200></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="用户类型" prop='type'> <el-select v-model="ruleForm2.type" placeholder="请选择用户类型"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="联系电话" prop='phone'> <el-input placeholder="请输入手机号码" v-model="ruleForm2.phone" maxlength=11></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="联系邮箱" prop='email'> <el-input placeholder="请输入邮箱地址" v-model="ruleForm2.email" maxlength=100></el-input> </el-form-item> </el-col> <el-col :span="24" > <el-form-item label="备注" prop='remark'> <el-input type="textarea" rows=4 v-model="ruleForm2.remark" maxlength=500></el-input> </el-form-item> </el-col> <el-col :span="24" class="el-btn-col"> <div class="el-btn-col-box"> <el-button type="primary" @click="submitForm('ruleForm2')">确认</el-button> <el-button type="info" @click="resetForm('ruleForm2')">返回</el-button> </div> </el-col> </el-row> </el-form> </el-dialog> </template> <script> import { checkRegister, addRegister, updateRegister, queryRegister } from '@/api/userManagemen' export default { props: ['dialog', 'id'], data() { var account = (rule, value, callback) => { const regTel = /^1[3|4|5|7|8][0-9]\d{8}$/ if (value === '') { callback(new Error('请输入账号')) } else { if (!regTel.test(value)) { callback(new Error('账号为手机号格式')) } else { if (this.edit) { checkRegister({ account: value, id: this.edit }).then(response => { if (!response.data) { callback(new Error('账户已存在,请重新输入')) } else { callback() } }) } else { checkRegister({ account: value }).then(response => { if (!response.data) { callback(new Error('账户已存在,请重新输入')) } else { callback() } }) } } } } var phone = (rule, value, callback) => { const regTel = /^1[3|4|5|7|8][0-9]\d{8}$/ if (value === '') { callback() } else { if (!regTel.test(value)) { callback(new Error('手机号码格式不正确')) } else { callback() } } } var email = (rule, value, callback) => { const regTel = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ if (value === '') { callback() } else { if (!regTel.test(value)) { callback(new Error('邮箱格式不正确')) } else { callback() } } } return { options: [{ value: 0, label: '普通用户' }, { value: 1, label: '管理员' }], dialogTableVisible: false, ruleForm2: { edit: '', account: '', name: '', comp: '', job: '', phone: '', email: '', remark: '', type: 0 }, rules2: { account: [ { required: true, validator: account, trigger: 'blur' } ], name: [ { required: true, message: '请输入用户姓名', trigger: 'blur' } ], comp: [ { required: true, message: '请输入用户所在机构', trigger: 'blur' } ], job: [ { required: true, message: '请输入用户职位', trigger: 'blur' } ], phone: [ { validator: phone, trigger: 'blur' } ], email: [ { validator: email, trigger: 'blur' } ] } } }, watch: { dialog() { this.dialogTableVisible = true this.edit = this.id if (this.edit) { queryRegister({ id: this.edit }).then(response => { if (response.success) { const $data = response.data this.ruleForm2 = { account: $data.account, name: $data.name, comp: $data.comp, job: $data.job, phone: $data.phone || '', email: $data.email || '', remark: $data.remark || '', type: $data.type } } }) } } }, methods: { submitForm(formName) { const that = this this.$refs[formName].validate((valid) => { if (valid) { if (!this.edit) { addRegister(this.ruleForm2).then(response => { if (response.success) { this.$emit('chilF') setTimeout(function() { that.pop('已成功添加') }, 1000) this.resetForm(this.ruleForm2) this.dialogTableVisible = false } }).catch(error => { console.log(error) }) } else { const par = this.ruleForm2 par.id = this.edit updateRegister(par).then(response => { if (response.success) { setTimeout(function() { that.pop('已成功更新用户信息') }, 1000) this.resetForm('ruleForm2') this.$emit('chilF') this.dialogTableVisible = false this.edit = '' this.ruleForm2 = { account: '', name: '', comp: '', job: '', phone: '', email: '', remark: '', type: 0 } } }) } } }) }, resetForm(formName) { this.dialogTableVisible = false this.$refs[formName].resetFields() this.edit = '' this.$emit('chilF', true) }, closed() { this.$refs['ruleForm2'].resetFields() this.edit = '' this.$emit('chilF', true) }, pop($par) { this.$confirm($par, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'success', showCancelButton: false, center: true }).then(() => { }).catch(() => { }) }, resetTemp(row) { this.ruleForm2 = { account: row.account, name: row.name, comp: row.comp, job: row.job, phone: row.phone, email: row.email, remark: row.remark, type: row.type } this.edit = row.id } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> .el-form-item{ margin: 0px 10px } .el-select{ width: 100% } .el-col{ margin-bottom: 15px } .el-form--label-top .el-form-item__label { padding: 0 } </style>