|
@ -5,27 +5,12 @@ |
|
|
<el-col :xs="9" :sm="6" :md="5" :lg="4" :xl="4"> |
|
|
<el-col :xs="9" :sm="6" :md="5" :lg="4" :xl="4"> |
|
|
|
|
|
|
|
|
<div class="head-container" style="padding-left:0"> |
|
|
<div class="head-container" style="padding-left:0"> |
|
|
<el-input |
|
|
|
|
|
v-model="deptName" |
|
|
|
|
|
clearable |
|
|
|
|
|
size="small" |
|
|
|
|
|
placeholder="输入部门名称搜索" |
|
|
|
|
|
prefix-icon="el-icon-search" |
|
|
|
|
|
class="filter-item" |
|
|
|
|
|
@input="getDeptDatas" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-input v-model="deptName" clearable size="small" placeholder="输入部门名称搜索" prefix-icon="el-icon-search" class="filter-item" @input="getDeptDatas" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="container-left" style="min-height: calc(100vh - 262px)"> |
|
|
<div class="container-left" style="min-height: calc(100vh - 262px)"> |
|
|
<span class="right-top-line" /> |
|
|
<span class="right-top-line" /> |
|
|
<span class="left-bottom-line" /> |
|
|
<span class="left-bottom-line" /> |
|
|
<el-tree |
|
|
|
|
|
:data="deptDatas" |
|
|
|
|
|
:load="getDeptDatas" |
|
|
|
|
|
:props="defaultProps" |
|
|
|
|
|
:expand-on-click-node="false" |
|
|
|
|
|
lazy |
|
|
|
|
|
@node-click="handleNodeClick" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-tree :data="deptDatas" :load="getDeptDatas" :props="defaultProps" :expand-on-click-node="false" lazy @node-click="handleNodeClick" /> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<!--用户数据--> |
|
|
<!--用户数据--> |
|
@ -34,33 +19,11 @@ |
|
|
<div class="head-container" style="padding:20px 0"> |
|
|
<div class="head-container" style="padding:20px 0"> |
|
|
<div v-if="crud.props.searchToggle" class="head-search"> |
|
|
<div v-if="crud.props.searchToggle" class="head-search"> |
|
|
<!-- 搜索 --> |
|
|
<!-- 搜索 --> |
|
|
<el-input |
|
|
|
|
|
v-model="query.blurry" |
|
|
|
|
|
clearable |
|
|
|
|
|
size="small" |
|
|
|
|
|
placeholder="输入名称或者邮箱搜索" |
|
|
|
|
|
prefix-icon="el-icon-search" |
|
|
|
|
|
style="width: 200px;" |
|
|
|
|
|
class="filter-item" |
|
|
|
|
|
@keyup.enter.native="crud.toQuery" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-input v-model="query.blurry" clearable size="small" placeholder="输入名称或者邮箱搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
<el-select |
|
|
|
|
|
v-model="query.enabled" |
|
|
|
|
|
clearable |
|
|
|
|
|
size="small" |
|
|
|
|
|
placeholder="状态" |
|
|
|
|
|
class="filter-item" |
|
|
|
|
|
style="width: 100px" |
|
|
|
|
|
@change="crud.toQuery" |
|
|
|
|
|
> |
|
|
|
|
|
|
|
|
<el-select v-model="query.enabled" clearable size="small" placeholder="状态" class="filter-item" style="width: 100px" @change="crud.toQuery"> |
|
|
<i slot="prefix" class="iconfont icon-zhuangtai-fanbai" /> |
|
|
<i slot="prefix" class="iconfont icon-zhuangtai-fanbai" /> |
|
|
<el-option |
|
|
|
|
|
v-for="item in enabledTypeOptions" |
|
|
|
|
|
:key="item.key" |
|
|
|
|
|
:label="item.display_name" |
|
|
|
|
|
:value="item.key" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<rrOperation /> |
|
|
<rrOperation /> |
|
|
</div> |
|
|
</div> |
|
@ -88,29 +51,11 @@ |
|
|
<el-input v-model="form.email" /> |
|
|
<el-input v-model="form.email" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="部门" prop="dept.id"> |
|
|
<el-form-item label="部门" prop="dept.id"> |
|
|
<treeselect |
|
|
|
|
|
v-model="form.dept.id" |
|
|
|
|
|
:options="depts" |
|
|
|
|
|
:load-options="loadDepts" |
|
|
|
|
|
style="width: 184px" |
|
|
|
|
|
placeholder="选择部门" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<treeselect v-model="form.dept.id" :options="depts" :load-options="loadDepts" style="width: 184px" placeholder="选择部门" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="岗位" prop="jobs"> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="jobDatas" |
|
|
|
|
|
style="width: 184px" |
|
|
|
|
|
multiple |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
@remove-tag="deleteTag" |
|
|
|
|
|
@change="changeJob" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in jobs" |
|
|
|
|
|
:key="item.name" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-form-item label="岗位" prop="jobs" class="is-required"> |
|
|
|
|
|
<el-select v-model="jobDatas" style="width: 184px" multiple placeholder="请选择" @remove-tag="deleteTag" @change="changeJob"> |
|
|
|
|
|
<el-option v-for="item in jobs" :key="item.name" :label="item.name" :value="item.id" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="性别"> |
|
|
<el-form-item label="性别"> |
|
@ -121,29 +66,12 @@ |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="状态"> |
|
|
<el-form-item label="状态"> |
|
|
<el-radio-group v-model="form.enabled" :disabled="form.id === user.id"> |
|
|
<el-radio-group v-model="form.enabled" :disabled="form.id === user.id"> |
|
|
<el-radio |
|
|
|
|
|
v-for="item in dict.user_status" |
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
:label="item.value" |
|
|
|
|
|
>{{ item.label }}</el-radio> |
|
|
|
|
|
|
|
|
<el-radio v-for="item in dict.user_status" :key="item.id" :label="item.value">{{ item.label }}</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item style="margin-bottom: 0;" label="角色" prop="roles"> |
|
|
<el-form-item style="margin-bottom: 0;" label="角色" prop="roles"> |
|
|
<el-select |
|
|
|
|
|
v-model="roleDatas" |
|
|
|
|
|
style="width: 437px" |
|
|
|
|
|
multiple |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
@remove-tag="deleteTag" |
|
|
|
|
|
@change="changeRole" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in roles" |
|
|
|
|
|
:key="item.name" |
|
|
|
|
|
:disabled="level !== 1 && item.level <= level" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-select v-model="roleDatas" style="width: 437px" multiple placeholder="请选择" @remove-tag="deleteTag" @change="changeRole"> |
|
|
|
|
|
<el-option v-for="item in roles" :key="item.name" :disabled="level !== 1 && item.level <= level" :label="item.name" :value="item.id" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
@ -168,13 +96,7 @@ |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column label="状态" align="center" prop="enabled"> |
|
|
<el-table-column label="状态" align="center" prop="enabled"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-switch |
|
|
|
|
|
v-model="scope.row.enabled" |
|
|
|
|
|
:disabled="user.id === scope.row.id" |
|
|
|
|
|
active-color="#409EFF" |
|
|
|
|
|
inactive-color="#F56C6C" |
|
|
|
|
|
@change="changeEnabled(scope.row, scope.row.enabled)" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<el-switch v-model="scope.row.enabled" :disabled="user.id === scope.row.id" active-color="#409EFF" inactive-color="#F56C6C" @change="changeEnabled(scope.row, scope.row.enabled)" /> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column :show-overflow-tooltip="true" prop="createTime" width="145" label="创建日期"> |
|
|
<el-table-column :show-overflow-tooltip="true" prop="createTime" width="145" label="创建日期"> |
|
@ -182,19 +104,9 @@ |
|
|
<div>{{ scope.row.createTime | parseTime }}</div> |
|
|
<div>{{ scope.row.createTime | parseTime }}</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
|
|
|
v-if="checkPer(['admin','user:edit','user:del'])" |
|
|
|
|
|
label="操作" |
|
|
|
|
|
width="120" |
|
|
|
|
|
align="center" |
|
|
|
|
|
fixed="right" |
|
|
|
|
|
> |
|
|
|
|
|
|
|
|
<el-table-column v-if="checkPer(['admin','user:edit','user:del'])" label="操作" width="120" align="center" fixed="right"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<udOperation |
|
|
|
|
|
:data="scope.row" |
|
|
|
|
|
:permission="permission" |
|
|
|
|
|
:disabled-dle="scope.row.id === user.id" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<udOperation :data="scope.row" :permission="permission" :disabled-dle="scope.row.id === user.id" /> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
@ -245,6 +157,14 @@ export default { |
|
|
callback() |
|
|
callback() |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
// var validateJob = (rule, value, callback) => { |
|
|
|
|
|
// console.log(value) |
|
|
|
|
|
// if (this.jobDatas.length > 0) { |
|
|
|
|
|
// callback() |
|
|
|
|
|
// } else { |
|
|
|
|
|
// callback(new Error('请选择岗位')) |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
return { |
|
|
return { |
|
|
height: document.documentElement.clientHeight - 180 + 'px;', |
|
|
height: document.documentElement.clientHeight - 180 + 'px;', |
|
|
deptName: '', depts: [], deptDatas: [], jobs: [], level: 3, roles: [], |
|
|
deptName: '', depts: [], deptDatas: [], jobs: [], level: 3, roles: [], |
|
@ -277,10 +197,11 @@ export default { |
|
|
], |
|
|
], |
|
|
'dept.id': [ |
|
|
'dept.id': [ |
|
|
{ required: true, trigger: 'blur', message: '请选择部门' } |
|
|
{ required: true, trigger: 'blur', message: '请选择部门' } |
|
|
], |
|
|
|
|
|
jobs: [ |
|
|
|
|
|
{ required: true, trigger: 'blur', message: '请选择岗位' } |
|
|
|
|
|
] |
|
|
] |
|
|
|
|
|
// , |
|
|
|
|
|
// jobs: [ |
|
|
|
|
|
// { trigger: 'blur', validator: validateJob } |
|
|
|
|
|
// ] |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
@ -502,8 +423,10 @@ export default { |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style rel="stylesheet/scss" lang="scss" scoped> |
|
|
<style rel="stylesheet/scss" lang="scss" scoped> |
|
|
::v-deep .vue-treeselect__control,::v-deep .vue-treeselect__placeholder,::v-deep .vue-treeselect__single-value { |
|
|
|
|
|
|
|
|
::v-deep .vue-treeselect__control, |
|
|
|
|
|
::v-deep .vue-treeselect__placeholder, |
|
|
|
|
|
::v-deep .vue-treeselect__single-value { |
|
|
height: 30px; |
|
|
height: 30px; |
|
|
line-height: 30px; |
|
|
line-height: 30px; |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |