|
|
@ -1,34 +1,52 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="user-add-or-update"> |
|
|
<div class="user-add-or-update"> |
|
|
<el-dialog |
|
|
<el-dialog |
|
|
|
|
|
|
|
|
width="25%" |
|
|
|
|
|
|
|
|
width="530px" |
|
|
:title="!dataForm.id ? '新增' : '修改'" |
|
|
:title="!dataForm.id ? '新增' : '修改'" |
|
|
:close-on-click-modal="false" |
|
|
:close-on-click-modal="false" |
|
|
:visible.sync="visible"> |
|
|
:visible.sync="visible"> |
|
|
<!-- 取消 :rules="dataRule"--> |
|
|
<!-- 取消 :rules="dataRule"--> |
|
|
<el-form :model="dataForm" label-position="top" ref="dataForm" @keyup.enter.native="dataFormSubmit()" |
|
|
|
|
|
|
|
|
<el-form :inline="true" :model="dataForm" label-position="top" ref="dataForm" |
|
|
|
|
|
@keyup.enter.native="dataFormSubmit()" |
|
|
label-width="80px"> |
|
|
label-width="80px"> |
|
|
<el-form-item label="用户名" prop="userName"> |
|
|
|
|
|
<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input> |
|
|
|
|
|
|
|
|
<el-form> |
|
|
|
|
|
<el-form-item label="用户账号" prop="userName"> |
|
|
|
|
|
<el-input v-model="dataForm.userName" style="width: 150px;" placeholder="登录帐号"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }"> |
|
|
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }"> |
|
|
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="dataForm.password" style="width: 150px;" type="password" placeholder="密码"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }"> |
|
|
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }"> |
|
|
<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="dataForm.comfirmPassword" style="width: 150px;" type="password" |
|
|
|
|
|
placeholder="确认密码"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form> |
|
|
|
|
|
<el-form-item label="用户名" prop="email"> |
|
|
|
|
|
<el-input v-model="dataForm.userDisplay" style="width: 150px;" placeholder="用户昵称"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="邮箱" prop="email"> |
|
|
<el-form-item label="邮箱" prop="email"> |
|
|
<el-input v-model="dataForm.email" placeholder="邮箱"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="dataForm.email" style="width: 150px;" placeholder="邮箱"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="手机号" prop="mobile"> |
|
|
<el-form-item label="手机号" prop="mobile"> |
|
|
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input> |
|
|
|
|
|
|
|
|
<el-input v-model="dataForm.mobile" style="width: 150px;" placeholder="手机号"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form> |
|
|
<el-form-item label="工厂" size="mini" prop="site"> |
|
|
<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-select filterable v-model="dataForm.site" style="width: 150px;"> |
|
|
|
|
|
<el-option :value="item.site" :label="item.baseDesc" v-for="(item,index) in factorys" :key="index" |
|
|
|
|
|
></el-option> |
|
|
|
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="语言" prop="languageDefault"> |
|
|
|
|
|
<el-select filterable v-model="dataForm.languageDefault" clearable style="width: 150px;"> |
|
|
|
|
|
<el-option :label="item.languageName" :value="item.languageCode" v-for="(item,index) in languageList " |
|
|
|
|
|
:key="index"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form> |
|
|
<el-form-item label="角色" size="mini" prop="roleIdList"> |
|
|
<el-form-item label="角色" size="mini" prop="roleIdList"> |
|
|
<el-checkbox-group v-model="dataForm.roleIdList"> |
|
|
<el-checkbox-group v-model="dataForm.roleIdList"> |
|
|
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{ |
|
|
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{ |
|
|
@ -37,6 +55,8 @@ |
|
|
</el-checkbox> |
|
|
</el-checkbox> |
|
|
</el-checkbox-group> |
|
|
</el-checkbox-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<el-form> |
|
|
<el-form-item label="状态" size="mini" prop="status"> |
|
|
<el-form-item label="状态" size="mini" prop="status"> |
|
|
<el-radio-group v-model="dataForm.status"> |
|
|
<el-radio-group v-model="dataForm.status"> |
|
|
<el-radio :label="0">禁用</el-radio> |
|
|
<el-radio :label="0">禁用</el-radio> |
|
|
@ -44,9 +64,10 @@ |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
|
|
|
</el-form> |
|
|
<span slot="footer" class="dialog-footer"> |
|
|
<span slot="footer" class="dialog-footer"> |
|
|
<el-button @click="visible = false">取消</el-button> |
|
|
|
|
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
|
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
|
|
|
|
|
<el-button @click="visible = false">取消</el-button> |
|
|
</span> |
|
|
</span> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
</div> |
|
|
</div> |
|
|
@ -54,88 +75,60 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import {isEmail, isMobile} from '@/utils/validate' |
|
|
|
|
|
|
|
|
|
|
|
import {getFactory} from "@/api/factory"; |
|
|
import {getFactory} from "@/api/factory"; |
|
|
|
|
|
import {searchSysLanguage} from "@/api/sysLanguage.js" |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
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 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() |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return { |
|
|
return { |
|
|
visible: false, |
|
|
visible: false, |
|
|
roleList: [], |
|
|
roleList: [], |
|
|
factorys: [], |
|
|
factorys: [], |
|
|
|
|
|
languageList: [], |
|
|
dataForm: { |
|
|
dataForm: { |
|
|
id: 0, |
|
|
id: 0, |
|
|
userName: '', |
|
|
userName: '', |
|
|
password: '', |
|
|
password: '', |
|
|
comfirmPassword: '', |
|
|
comfirmPassword: '', |
|
|
|
|
|
languageDefault: '', |
|
|
salt: '', |
|
|
salt: '', |
|
|
email: '', |
|
|
email: '', |
|
|
mobile: '', |
|
|
mobile: '', |
|
|
roleIdList: [], |
|
|
roleIdList: [], |
|
|
status: 1, |
|
|
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'} |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
site: '', |
|
|
|
|
|
userDisplay: '' |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
|
|
|
|
|
|
// 获取多语言列表 |
|
|
|
|
|
getLanguageList() { |
|
|
|
|
|
let queryLanguage = {} |
|
|
|
|
|
searchSysLanguage(queryLanguage).then(({data}) => { |
|
|
|
|
|
this.languageList = data.rows |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 获取工厂信息 |
|
|
// 获取工厂信息 |
|
|
factoryList() { |
|
|
factoryList() { |
|
|
getFactory().then((data) => { |
|
|
|
|
|
this.factorys = data.list |
|
|
|
|
|
|
|
|
getFactory().then(({data}) => { |
|
|
|
|
|
this.factorys = data.list.map(item => { |
|
|
|
|
|
let factory = { |
|
|
|
|
|
site: item.baseData, |
|
|
|
|
|
baseDesc: item.baseDesc |
|
|
|
|
|
} |
|
|
|
|
|
return factory; |
|
|
|
|
|
}) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
init(id) { |
|
|
init(id) { |
|
|
this.dataForm.id = id || 0 |
|
|
this.dataForm.id = id || 0 |
|
|
this.factoryList() |
|
|
|
|
|
|
|
|
this.factoryList(); |
|
|
|
|
|
this.getLanguageList(); |
|
|
this.$http({ |
|
|
this.$http({ |
|
|
url: this.$http.adornUrl('/sys/role/select'), |
|
|
url: this.$http.adornUrl('/sys/role/select'), |
|
|
method: 'get', |
|
|
method: 'get', |
|
|
@ -161,6 +154,9 @@ export default { |
|
|
this.dataForm.mobile = data.user.mobile |
|
|
this.dataForm.mobile = data.user.mobile |
|
|
this.dataForm.roleIdList = data.user.roleIdList |
|
|
this.dataForm.roleIdList = data.user.roleIdList |
|
|
this.dataForm.status = data.user.status |
|
|
this.dataForm.status = data.user.status |
|
|
|
|
|
this.dataForm.languageDefault = data.user.languageDefault |
|
|
|
|
|
this.dataForm.site = data.user.site.toString() |
|
|
|
|
|
this.dataForm.userDisplay = data.user.userDisplay |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
@ -181,7 +177,10 @@ export default { |
|
|
'email': this.dataForm.email, |
|
|
'email': this.dataForm.email, |
|
|
'mobile': this.dataForm.mobile, |
|
|
'mobile': this.dataForm.mobile, |
|
|
'status': this.dataForm.status, |
|
|
'status': this.dataForm.status, |
|
|
'roleIdList': this.dataForm.roleIdList |
|
|
|
|
|
|
|
|
'roleIdList': this.dataForm.roleIdList, |
|
|
|
|
|
'languageDefault': this.dataForm.languageDefault, |
|
|
|
|
|
'site': this.dataForm.site, |
|
|
|
|
|
'userDisplay': this.dataForm.userDisplay, |
|
|
}) |
|
|
}) |
|
|
}).then(({data}) => { |
|
|
}).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
@ -201,6 +200,10 @@ export default { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
created() { |
|
|
|
|
|
// this.factoryList() |
|
|
|
|
|
// this.getLanguageList() |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|