3 changed files with 202 additions and 186 deletions
-
14src/assets/scss/global.scss
-
7src/views/common/login.vue
-
367src/views/modules/sys/user-add-or-update.vue
@ -1,198 +1,209 @@ |
|||||
<template> |
<template> |
||||
<el-dialog |
|
||||
width="25%" |
|
||||
v-drag |
|
||||
:title="!dataForm.id ? '新增' : '修改'" |
|
||||
:close-on-click-modal="false" |
|
||||
:visible.sync="visible"> |
|
||||
<!-- 取消 :rules="dataRule"--> |
|
||||
<el-form :model="dataForm" label-position="top" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px"> |
|
||||
<el-form-item label="用户名" prop="userName"> |
|
||||
<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }"> |
|
||||
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }"> |
|
||||
<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="邮箱" prop="email"> |
|
||||
<el-input v-model="dataForm.email" placeholder="邮箱"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="手机号" prop="mobile"> |
|
||||
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="工厂" size="mini" prop="site"> |
|
||||
<el-checkbox-group v-model="dataForm.site"> |
|
||||
<el-checkbox v-for="item in factorys" :key="item.id" :label="role.roleId">{{ role.roleName }}</el-checkbox> |
|
||||
</el-checkbox-group> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="角色" size="mini" prop="roleIdList"> |
|
||||
<el-checkbox-group v-model="dataForm.roleIdList"> |
|
||||
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{ role.roleName }}</el-checkbox> |
|
||||
</el-checkbox-group> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="状态" size="mini" prop="status"> |
|
||||
<el-radio-group v-model="dataForm.status"> |
|
||||
<el-radio :label="0">禁用</el-radio> |
|
||||
<el-radio :label="1">正常</el-radio> |
|
||||
</el-radio-group> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
<span slot="footer" class="dialog-footer"> |
|
||||
|
<div class="user-add-or-update"> |
||||
|
<el-dialog |
||||
|
|
||||
|
width="25%" |
||||
|
:title="!dataForm.id ? '新增' : '修改'" |
||||
|
:close-on-click-modal="false" |
||||
|
:visible.sync="visible"> |
||||
|
<!-- 取消 :rules="dataRule"--> |
||||
|
<el-form :model="dataForm" label-position="top" ref="dataForm" @keyup.enter.native="dataFormSubmit()" |
||||
|
label-width="80px"> |
||||
|
<el-form-item label="用户名" prop="userName"> |
||||
|
<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }"> |
||||
|
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }"> |
||||
|
<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="邮箱" prop="email"> |
||||
|
<el-input v-model="dataForm.email" placeholder="邮箱"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="手机号" prop="mobile"> |
||||
|
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="工厂" size="mini" prop="site"> |
||||
|
<el-checkbox-group v-model="dataForm.site"> |
||||
|
<el-checkbox v-for="item in factorys" :key="item.id" :label="role.roleId">{{ role.roleName }}</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="角色" size="mini" prop="roleIdList"> |
||||
|
<el-checkbox-group v-model="dataForm.roleIdList"> |
||||
|
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{ |
||||
|
role.roleName |
||||
|
}} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="状态" size="mini" prop="status"> |
||||
|
<el-radio-group v-model="dataForm.status"> |
||||
|
<el-radio :label="0">禁用</el-radio> |
||||
|
<el-radio :label="1">正常</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
<el-button @click="visible = false">取消</el-button> |
<el-button @click="visible = false">取消</el-button> |
||||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
||||
</span> |
</span> |
||||
</el-dialog> |
|
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
|
||||
</template> |
</template> |
||||
|
|
||||
<script> |
<script> |
||||
import { isEmail, isMobile } from '@/utils/validate' |
|
||||
import {getFactory} from "@/api/factory"; |
|
||||
export default { |
|
||||
data () { |
|
||||
var validatePassword = (rule, value, callback) => { |
|
||||
if (!this.dataForm.id && !/\S/.test(value)) { |
|
||||
callback(new Error('密码不能为空')) |
|
||||
} else { |
|
||||
callback() |
|
||||
} |
|
||||
|
import {isEmail, isMobile} from '@/utils/validate' |
||||
|
import {getFactory} from "@/api/factory"; |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
var validatePassword = (rule, value, callback) => { |
||||
|
if (!this.dataForm.id && !/\S/.test(value)) { |
||||
|
callback(new Error('密码不能为空')) |
||||
|
} else { |
||||
|
callback() |
||||
} |
} |
||||
var validateComfirmPassword = (rule, value, callback) => { |
|
||||
if (!this.dataForm.id && !/\S/.test(value)) { |
|
||||
callback(new Error('确认密码不能为空')) |
|
||||
} else if (this.dataForm.password !== value) { |
|
||||
callback(new Error('确认密码与密码输入不一致')) |
|
||||
} else { |
|
||||
callback() |
|
||||
} |
|
||||
|
} |
||||
|
var validateComfirmPassword = (rule, value, callback) => { |
||||
|
if (!this.dataForm.id && !/\S/.test(value)) { |
||||
|
callback(new Error('确认密码不能为空')) |
||||
|
} else if (this.dataForm.password !== value) { |
||||
|
callback(new Error('确认密码与密码输入不一致')) |
||||
|
} else { |
||||
|
callback() |
||||
} |
} |
||||
var validateEmail = (rule, value, callback) => { |
|
||||
if (!isEmail(value)) { |
|
||||
callback(new Error('邮箱格式错误')) |
|
||||
} else { |
|
||||
callback() |
|
||||
} |
|
||||
|
} |
||||
|
var validateEmail = (rule, value, callback) => { |
||||
|
if (!isEmail(value)) { |
||||
|
callback(new Error('邮箱格式错误')) |
||||
|
} else { |
||||
|
callback() |
||||
} |
} |
||||
var validateMobile = (rule, value, callback) => { |
|
||||
if (!isMobile(value)) { |
|
||||
callback(new Error('手机号格式错误')) |
|
||||
} else { |
|
||||
callback() |
|
||||
} |
|
||||
|
} |
||||
|
var validateMobile = (rule, value, callback) => { |
||||
|
if (!isMobile(value)) { |
||||
|
callback(new Error('手机号格式错误')) |
||||
|
} else { |
||||
|
callback() |
||||
} |
} |
||||
return { |
|
||||
visible: false, |
|
||||
roleList: [], |
|
||||
factorys: [], |
|
||||
dataForm: { |
|
||||
id: 0, |
|
||||
userName: '', |
|
||||
password: '', |
|
||||
comfirmPassword: '', |
|
||||
salt: '', |
|
||||
email: '', |
|
||||
mobile: '', |
|
||||
roleIdList: [], |
|
||||
status: 1, |
|
||||
site: 0 |
|
||||
}, |
|
||||
dataRule: { |
|
||||
userName: [ |
|
||||
{ required: true, message: '用户名不能为空', trigger: 'blur' } |
|
||||
], |
|
||||
password: [ |
|
||||
{ validator: validatePassword, trigger: 'blur' } |
|
||||
], |
|
||||
comfirmPassword: [ |
|
||||
{ validator: validateComfirmPassword, trigger: 'blur' } |
|
||||
], |
|
||||
email: [ |
|
||||
{ required: true, message: '邮箱不能为空', trigger: 'blur' }, |
|
||||
{ validator: validateEmail, trigger: 'blur' } |
|
||||
], |
|
||||
mobile: [ |
|
||||
{ required: true, message: '手机号不能为空', trigger: 'blur' }, |
|
||||
{ validator: validateMobile, trigger: 'blur' } |
|
||||
] |
|
||||
} |
|
||||
|
} |
||||
|
return { |
||||
|
visible: false, |
||||
|
roleList: [], |
||||
|
factorys: [], |
||||
|
dataForm: { |
||||
|
id: 0, |
||||
|
userName: '', |
||||
|
password: '', |
||||
|
comfirmPassword: '', |
||||
|
salt: '', |
||||
|
email: '', |
||||
|
mobile: '', |
||||
|
roleIdList: [], |
||||
|
status: 1, |
||||
|
site: 0 |
||||
|
}, |
||||
|
dataRule: { |
||||
|
userName: [ |
||||
|
{required: true, message: '用户名不能为空', trigger: 'blur'} |
||||
|
], |
||||
|
password: [ |
||||
|
{validator: validatePassword, trigger: 'blur'} |
||||
|
], |
||||
|
comfirmPassword: [ |
||||
|
{validator: validateComfirmPassword, trigger: 'blur'} |
||||
|
], |
||||
|
email: [ |
||||
|
{required: true, message: '邮箱不能为空', trigger: 'blur'}, |
||||
|
{validator: validateEmail, trigger: 'blur'} |
||||
|
], |
||||
|
mobile: [ |
||||
|
{required: true, message: '手机号不能为空', trigger: 'blur'}, |
||||
|
{validator: validateMobile, trigger: 'blur'} |
||||
|
] |
||||
} |
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取工厂信息 |
||||
|
factoryList() { |
||||
|
getFactory().then((data) => { |
||||
|
this.factorys = data.list |
||||
|
}) |
||||
}, |
}, |
||||
methods: { |
|
||||
// 获取工厂信息 |
|
||||
factoryList(){ |
|
||||
getFactory().then((data) =>{ |
|
||||
this.factorys = data.list |
|
||||
|
init(id) { |
||||
|
this.dataForm.id = id || 0 |
||||
|
this.factoryList() |
||||
|
this.$http({ |
||||
|
url: this.$http.adornUrl('/sys/role/select'), |
||||
|
method: 'get', |
||||
|
params: this.$http.adornParams() |
||||
|
}).then(({data}) => { |
||||
|
this.roleList = data && data.code === 0 ? data.list : [] |
||||
|
}).then(() => { |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
}) |
}) |
||||
}, |
|
||||
init (id) { |
|
||||
this.dataForm.id = id || 0 |
|
||||
this.factoryList() |
|
||||
this.$http({ |
|
||||
url: this.$http.adornUrl('/sys/role/select'), |
|
||||
method: 'get', |
|
||||
params: this.$http.adornParams() |
|
||||
}).then(({data}) => { |
|
||||
this.roleList = data && data.code === 0 ? data.list : [] |
|
||||
}).then(() => { |
|
||||
this.visible = true |
|
||||
this.$nextTick(() => { |
|
||||
this.$refs['dataForm'].resetFields() |
|
||||
|
}).then(() => { |
||||
|
if (this.dataForm.id) { |
||||
|
this.$http({ |
||||
|
url: this.$http.adornUrl(`/sys/user/info/${this.dataForm.id}`), |
||||
|
method: 'get', |
||||
|
params: this.$http.adornParams() |
||||
|
}).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataForm.userName = data.user.username |
||||
|
this.dataForm.salt = data.user.salt |
||||
|
this.dataForm.email = data.user.email |
||||
|
this.dataForm.mobile = data.user.mobile |
||||
|
this.dataForm.roleIdList = data.user.roleIdList |
||||
|
this.dataForm.status = data.user.status |
||||
|
} |
||||
}) |
}) |
||||
}).then(() => { |
|
||||
if (this.dataForm.id) { |
|
||||
this.$http({ |
|
||||
url: this.$http.adornUrl(`/sys/user/info/${this.dataForm.id}`), |
|
||||
method: 'get', |
|
||||
params: this.$http.adornParams() |
|
||||
}).then(({data}) => { |
|
||||
if (data && data.code === 0) { |
|
||||
this.dataForm.userName = data.user.username |
|
||||
this.dataForm.salt = data.user.salt |
|
||||
this.dataForm.email = data.user.email |
|
||||
this.dataForm.mobile = data.user.mobile |
|
||||
this.dataForm.roleIdList = data.user.roleIdList |
|
||||
this.dataForm.status = data.user.status |
|
||||
} |
|
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmit() { |
||||
|
this.$refs['dataForm'].validate((valid) => { |
||||
|
if (valid) { |
||||
|
this.$http({ |
||||
|
url: this.$http.adornUrl(`/sys/user/${!this.dataForm.id ? 'save' : 'update'}`), |
||||
|
method: 'post', |
||||
|
data: this.$http.adornData({ |
||||
|
'userId': this.dataForm.id || undefined, |
||||
|
'username': this.dataForm.userName, |
||||
|
'password': this.dataForm.password, |
||||
|
'salt': this.dataForm.salt, |
||||
|
'email': this.dataForm.email, |
||||
|
'mobile': this.dataForm.mobile, |
||||
|
'status': this.dataForm.status, |
||||
|
'roleIdList': this.dataForm.roleIdList |
||||
}) |
}) |
||||
} |
|
||||
}) |
|
||||
}, |
|
||||
// 表单提交 |
|
||||
dataFormSubmit () { |
|
||||
this.$refs['dataForm'].validate((valid) => { |
|
||||
if (valid) { |
|
||||
this.$http({ |
|
||||
url: this.$http.adornUrl(`/sys/user/${!this.dataForm.id ? 'save' : 'update'}`), |
|
||||
method: 'post', |
|
||||
data: this.$http.adornData({ |
|
||||
'userId': this.dataForm.id || undefined, |
|
||||
'username': this.dataForm.userName, |
|
||||
'password': this.dataForm.password, |
|
||||
'salt': this.dataForm.salt, |
|
||||
'email': this.dataForm.email, |
|
||||
'mobile': this.dataForm.mobile, |
|
||||
'status': this.dataForm.status, |
|
||||
'roleIdList': this.dataForm.roleIdList |
|
||||
|
}).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message({ |
||||
|
message: '操作成功', |
||||
|
type: 'success', |
||||
|
duration: 1500, |
||||
|
onClose: () => { |
||||
|
this.visible = false |
||||
|
this.$emit('refreshDataList') |
||||
|
} |
||||
}) |
}) |
||||
}).then(({data}) => { |
|
||||
if (data && data.code === 0) { |
|
||||
this.$message({ |
|
||||
message: '操作成功', |
|
||||
type: 'success', |
|
||||
duration: 1500, |
|
||||
onClose: () => { |
|
||||
this.visible = false |
|
||||
this.$emit('refreshDataList') |
|
||||
} |
|
||||
}) |
|
||||
} else { |
|
||||
this.$message.error(data.msg) |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
} |
} |
||||
} |
} |
||||
|
} |
||||
</script> |
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
|
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue