@@ -8,7 +8,7 @@
v-model = "deptName"
clearable
size = "mini"
placeholder= "请输入部门名称 "
: placeholder= "$t('user.table_title.enter_department_name') "
prefix -icon = " el -icon -search "
class = "filter-item"
@input ="getDeptDatas"
@@ -30,7 +30,7 @@
v-model = "query.blurry"
clearable
size = "mini"
placeholder = "输入账号或者名称 "
: placeholder = "$t('user.table_title.Enter_Account_Number (Name)') "
style = "width: 200px;"
class = "filter-item"
@keyup.enter.native ="crud.toQuery"
@@ -39,7 +39,7 @@
v-model = "query.is_used"
clearable
size = "mini"
placeholder= "状态 "
: placeholder= "$t('user.table_title.State') "
class = "filter-item"
style = "width: 90px"
@change ="crud.toQuery"
@@ -65,20 +65,20 @@
width=" 700 px "
>
<el-form ref=" form " :inline=" true " :model=" form " :rules=" rules " size=" mini " label-width=" 100 px ">
<el-form-item label=" 用户名 " prop=" username ">
<el-form-item : label=" $t ( 'user.table_value.Username' ) " prop=" username ">
<el-input v-model=" form . username " style=" width : 200 px ; " />
</el-form-item>
<el-form-item label=" 电话 " prop=" phone ">
<el-form-item : label=" $t ( 'user.table_value.Phone' ) " prop=" phone ">
<el-input v-model.number=" form . phone " style=" width : 200 px ; " />
</el-form-item>
<el-form-item label=" 姓名 " prop=" preson _name ">
<el-form-item : label=" $t ( 'user.table_value.Name' ) " prop=" preson _name ">
<el-input v-model=" form . person _name " style=" width : 200 px ; " />
</el-form-item>
<el-form-item label=" 邮箱 " prop=" email ">
<el-form-item : label=" $t ( 'user.table_value.Mailbox' ) " prop=" email ">
<el-input v-model=" form . email " style=" width : 200 px ; " />
</el-form-item>
<br v-if=" ! crud . status . edit ">
<el-form-item v-if=" crud . status . add " label=" 部门 " prop=" depts " :rules=" [ { required : true , message : '请选择部门' , trigger : 'change' } ] ">
<el-form-item v-if=" crud . status . add " : label=" $t ( 'user.table_value.Department' ) " prop=" depts " :rules=" [ { required : true , message : $t ( 'user.rules.department' ) , trigger : 'change' } ] ">
<treeselect
v-model=" form . depts "
:load-options=" loadDepts "
@@ -87,20 +87,20 @@
:multiple=" true "
:flat=" true "
:normalizer=" normalizer "
placeholder=" 选择部门类目 "
: placeholder=" $t ( 'user.table_value.Select_Sector_Categories' ) "
/>
</el-form-item>
<br v-if=" ! crud . status . add ">
<el-form-item v-if=" crud . status . add " label=" 密码 " prop=" password ">
<el-form-item v-if=" crud . status . add " : label=" $t ( 'user.table_value.Password' ) " prop=" password ">
<el-input v-model=" form . password " style=" width : 200 px ; " show-password auto-complete=" new - password " />
</el-form-item>
<el-form-item label=" 性别 ">
<el-form-item : label=" $t ( 'user.table_value.Sex' ) ">
<el-radio-group v-model=" form . gender " style=" width : 178 px ">
<el-radio label=" 男 ">男 </el-radio>
<el-radio label=" 女 ">女 </el-radio>
<el-radio : label=" $t ( 'user.table_value.boy' ) ">{{ $t('user.table_value.boy') }} </el-radio>
<el-radio : label=" $t ( 'user.table_value.girl' ) ">{{ $t('user.table_value.girl') }} </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label=" 状态 " prop=" is _uesd ">
<el-form-item : label=" $t ( 'user.table_value.State' ) " prop=" is _uesd ">
<el-switch
v-model=" form . is _used "
active-color=" # 409 EFF "
@@ -108,14 +108,14 @@
/>
</el-form-item>
<br v-if=" ! crud . status . edit ">
<el-form-item v-if=" crud . status . add " style=" margin - bottom : 0 ; " label=" 角色 " prop=" roles ">
<el-form-item v-if=" crud . status . add " style=" margin - bottom : 0 ; " : label=" $t ( 'role.table_value.Role' ) " prop=" roles ">
<el-select
v-model=" roleDatas "
style=" width : 512 px "
multiple
active-value=" 1 "
inactive-value=" 0 "
placeholder=" 请选择 "
: placeholder=" $t ( 'auto.common.please' ) "
@remove-tag=" deleteTag "
@change=" changeRole "
>
@@ -130,8 +130,8 @@
</el-form-item>
</el-form>
<div slot=" footer " class=" dialog - footer ">
<el-button type=" text " @click=" crud . cancelCU ">取消 </el-button>
<el-button :loading=" crud . status . cu === 2 " type=" primary " @click=" crud . submitCU ">确认 </el-button>
<el-button type=" text " @click=" crud . cancelCU ">{{ $t('auto.common.Cancel') }} </el-button>
<el-button :loading=" crud . status . cu === 2 " type=" primary " @click=" crud . submitCU ">{{ $t('auto.common.Confirm') }} </el-button>
</div>
</el-dialog>
<!--表格渲染-->
@@ -143,50 +143,50 @@
@selection-change=" crud . selectionChangeHandler "
>
<el-table-column :selectable=" checkboxT " type=" selection " width=" 55 " />
<el-table-column prop=" username " label=" 用户名 " :min-width=" flexWidth ( 'username' , crud . data , '用户名' ) " />
<el-table-column prop=" username " : label=" $t ( 'user.table_value.Username' ) " :min-width=" flexWidth ( 'username' , crud . data , $t ( 'user.table_value.Username' ) ) " />
<el-table-column
prop=" person _name "
label=" 姓名 "
:min-width=" flexWidth ( 'person_name' , crud . data , '姓名' ) "
: label=" $t ( 'user.table_value.Name' ) "
:min-width=" flexWidth ( 'person_name' , crud . data , $t ( 'user.table_value.Name' ) ) "
/>
<el-table-column prop=" gender " label=" 性别 " :min-width=" flexWidth ( 'gender' , crud . data , '性别' ) " />
<el-table-column prop=" phone " label=" 电话 " :min-width=" flexWidth ( 'phone' , crud . data , '电话' ) " />
<el-table-column prop=" email " label=" 邮箱 " :min-width=" flexWidth ( 'email' , crud . data , '邮箱' ) " />
<el-table-column show-overflow-tooltip prop=" depts " label=" 部门 " :min-width=" flexWidth ( 'depts' , crud . data , '邮箱' ) ">
<el-table-column prop=" gender " : label=" $t ( 'user.table_value.Sex' ) " :min-width=" flexWidth ( 'gender' , crud . data , $t ( 'user.table_value.Sex' ) ) " />
<el-table-column prop=" phone " : label=" $t ( 'user.table_value.Phone' ) " :min-width=" flexWidth ( 'phone' , crud . data , $t ( 'user.table_value.Phone' ) ) " />
<el-table-column prop=" email " : label=" $t ( 'user.table_value.Mailbox' ) " :min-width=" flexWidth ( 'email' , crud . data , $t ( 'user.table_value.Mailbox' ) ) " />
<el-table-column show-overflow-tooltip prop=" depts " : label=" $t ( 'user.table_value.Department' ) " :min-width=" flexWidth ( 'depts' , crud . data , $t ( 'user.table_value.Department' ) ) ">
<template slot-scope=" scope ">
<span v-for=" ( item , index ) in scope . row . depts " :key=" index ">
{{ item.name }}<span v-if=" index !== scope . row . depts . length - 1 ">、</span>
</span>
</template>
</el-table-column>
<el-table-column label=" 状态 " align=" center " prop=" enabled ">
<el-table-column : label=" $t ( 'user.table_value.State' ) " align=" center " prop=" enabled ">
<template slot-scope=" scope ">
<span :style=" { 'color' : caseStatusColorFilter ( scope . row . is _used ) } ">{{ enabledTypeOptions.find(item => {return item.key == scope.row.is_used}).display_name }}</span>
</template>
</el-table-column>
<el-table-column prop=" create _time " label=" 创建日期 " :min-width=" flexWidth ( 'create_time' , crud . data , '创建日期' ) " />
<el-table-column prop=" create _time " : label=" $t ( 'user.table_value.create_Date' ) " :min-width=" flexWidth ( 'create_time' , crud . data , $t ( 'user.table_value.create_Date' ) ) " />
<el-table-column
label=" 操作 "
: label=" $t ( 'user.table_value.Operate' ) "
fixed=" right "
align=" center "
width=" 200 "
>
<template slot-scope=" scope ">
<el-button size=" mini " type=" text " icon=" el - icon - edit " @click=" crud . toEdit ( scope . row ) ">修改 </el-button>
<el-button size=" mini " type=" text " icon=" el - icon - delete " @click=" handdeleted ( scope . row ) ">删除 </el-button>
<el-dropdown v-hasPermi=" [ 'system:user:resetPwd' , 'system:user:edit' ] " size=" mini ">
<el-button size=" mini " type=" text " icon=" el - icon - d - arrow - right ">更多 </el-button>
<el-button size=" mini " type=" text " icon=" el - icon - edit " @click=" crud . toEdit ( scope . row ) ">{{ $t('user.other.Revise') }} </el-button>
<el-button size=" mini " type=" text " icon=" el - icon - delete " @click=" handdeleted ( scope . row ) ">{{ $t('user.other.Delete') }} </el-button>
<el-dropdown size=" mini ">
<el-button size=" mini " type=" text " icon=" el - icon - d - arrow - right ">{{ $t('user.other.More') }} </el-button>
<el-dropdown-menu slot=" dropdown ">
<el-dropdown-item icon=" el - icon - refresh - right "><span @click=" resetPassword ( scope . row ) ">重置密码 </span></el-dropdown-item>
<el-dropdown-item icon=" el - icon - refresh - right "><span @click=" resetPassword ( scope . row ) ">{{ $t('user.other.Reset') }} </span></el-dropdown-item>
<el-dropdown-item icon=" el - icon - key ">
<span @click=" openDeptDrawer ( scope . row ) ">部门权限 </span>
<span @click=" openDeptDrawer ( scope . row ) ">{{ $t('user.other.Department_permissions') }} </span>
</el-dropdown-item>
<el-dropdown-item icon=" el - icon - key ">
<span @click=" openDataDialog ( scope . row ) ">数据权限 </span>
<span @click=" openDataDialog ( scope . row ) ">{{ $t('user.other.Data_Permissions') }} </span>
</el-dropdown-item>
<el-dropdown-item icon=" el - icon - lock "><span @click=" changeEnabled ( scope . row ) ">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}账号 </span></el-dropdown-item>
<el-dropdown-item icon=" el - icon - lock "><span @click=" changeEnabled ( scope . row ) ">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}{{ $t('user.other.Lock_account') }} </span></el-dropdown-item>
<el-dropdown-item icon=" el - icon - circle - check ">
<span @click=" openRoleDrawer ( scope . row ) ">分配角色 </span>
<span @click=" openRoleDrawer ( scope . row ) ">{{ $t('user.other.Assign_roles') }} </span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
@@ -323,7 +323,7 @@
<script>
import crudUser from '@/views/system/user/user'
import crudDept from '../dept /dept'
import crudDept from '@/api/system /dept'
import crudDataPermission from '@/views/system/dataPermission/dataPermission'
import { getAll, getLevel } from '@/views/system/role/role'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
@@ -336,6 +336,7 @@ import { mapGetters } from 'vuex'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import RelevanceUserDialog from '@/views/system/user/dialog/relevanceUserDialog'
import RelevanceDeptDialog from '@/views/system/user/dialog/relevanceDeptDialog'
import i18n from " @ / i18n ";
let userRoles = []
const defaultForm = {
@@ -354,7 +355,7 @@ export default {
name: 'User',
components: { RelevanceDeptDialog, RelevanceUserDialog, Treeselect, crudOperation, rrOperation, udOperation, pagination },
cruds() {
return CRUD({ title: '用户' , idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
return CRUD({ title: i18n.t('user.table_value.User') , idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
@@ -372,21 +373,17 @@ export default {
del: ['admin', 'user:del']
},
enabledTypeOptions: [
{ key: '1' , display_name: '激活' },
{ key: '0' , display_name: '锁定' }
{ key: true , display_name: i18n.t('user.table_value.activation') },
{ key: false , display_name: i18n.t('user.table_value.lock') }
],
rules: {
username: [
{ required: true, message: '请输入用户名' , trigger: 'blur' },
{ min: 2, max: 20, message: '长度在 2 到 20 个字符' , trigger: 'blur' }
{ required: true, message: i18n.t('user.rules.username1') , trigger: 'blur' },
{ min: 2, max: 20, message: i18n.t('user.rules.username2') , trigger: 'blur' }
],
person_name: [
{ required: true, message: '请输入用户姓名' , trigger: 'blur' },
{ min: 2, max: 20, message: '长度在 2 到 20 个字符' , trigger: 'blur' }
],
password: [
{ required: true, message: '请输入用户密码', trigger: 'blur' },
{ pattern: /^(?=.*\d)(?=.*[A-z])[\da-zA-Z]{6,12}$/, message: '长度6位以上, 数字+密码', trigger: 'blur' }
{ required: true, message: i18n.t('user.rules.person_name1') , trigger: 'blur' },
{ min: 2, max: 20, message: i18n.t('user.rules.person_name2') , trigger: 'blur' }
]
},
syncDrawer: false,
@@ -473,7 +470,7 @@ export default {
},
// 新增前将多选的值设置为空
[CRUD.HOOK.beforeToAdd]() {
this.form.password = 'HL 123456'
this.form.password = '123456'
this.roleDatas = []
},
// 初始化编辑时候的角色与岗位
@@ -631,10 +628,10 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
row.password = 'HL 123456'
row.password = '123456'
crudUser.edit(row).then(res => {
this.crud.toQuery()
this.crud.notify('密码重置成功,密码:HL 123456', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.notify('密码重置成功,密码:123456', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
})
},
@@ -684,11 +681,9 @@ export default {
this.multipleSelection = []
// 获取权限范围
crudDataPermission.getDataScopeType().then(res => {
console.log('权限范围', res)
this.dataDialog.dataScopeType = res
// permissions
crudDataPermission.getDataPermissionOption().then(res => {
console.log('数据权限', res)
this.permissions = res
this.dataDialog.person_name = row.person_name
this.dataDialog.username = row.username
@@ -697,7 +692,6 @@ export default {
this.dataPerm = true
// 回显数据
crudDataPermission.getDataShow(row.user_id).then(res => {
console.log('要回显的数据', res)
this.$nextTick(function() {
for (var index = 0; index < res.length; index++) {
for (var i = 0; i < this.dataDialog.dataScopeType.length; i++) {
@@ -845,7 +839,6 @@ export default {
},
checkChange(data, checked, indeterminate) {
const _this = this
// console.log(data, checked, indeterminate);
// 选中全部子节点,父节点也默认选中,但是子节点再次取消勾选或者全部子节点取消勾选也不会影响父节点勾选状态
const checkNode = _this.$refs.deptUser.getNode(data)// 获取当前节点
// 勾选部分子节点,父节点变为半选状态