<template>
|
<div shadow="never" class="aui-card--fill" style="padding: 5px">
|
<div class="mod-sys__user">
|
<el-row :gutter="20">
|
<el-col :span="5">
|
<zt-dept-tree @on-selected="onDeptSelected"/>
|
</el-col>
|
<el-col :span="19">
|
<zt-table-wraper ref="tableObj" query-url="/sys/user/page" delete-url="/sys/user" export-url="/sys/user/export" v-slot="{ table }">
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
|
<el-form-item>
|
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable></el-input>
|
</el-form-item>
|
<el-form-item>
|
<zt-button type="query" @click="table.query()"/>
|
<zt-button type="add" perm="sys:user" @click="table.editHandle()"/>
|
<zt-button type="delete" perm="sys:user:delete" @click="table.deleteHandle()"/>
|
</el-form-item>
|
</el-form>
|
<el-table v-loading="table.dataLoading" :data="table.dataList" border
|
v-adaptive="{bottomOffset:50}"
|
style="margin-top:10px"
|
height="650px"
|
@selection-change="table.selectionChangeHandle" @sort-change="table.sortChangeHandle">
|
<el-table-column type="selection" width="40"/>
|
<el-table-column prop="username" :label="$t('user.username')" sortable="custom"/>
|
<el-table-column prop="realName" :label="$t('user.realName')" ></el-table-column>
|
<el-table-column prop="deptName" :label="$t('user.deptName')"/>
|
<el-table-column prop="mobile" :label="$t('user.mobile')"/>
|
<zt-table-column-dict prop="status" :label="$t('user.status')" dict="user_status" width="70"/>
|
<zt-table-column-handle :table="table" edit-perm="sys:user:update" delete-perm="sys:user:delete" width="160">
|
<template v-slot="{ row }">
|
<zt-dropdown>
|
<el-dropdown-item @click.native="setRole(row)">{{ $t('user.setRole') }}</el-dropdown-item>
|
<el-dropdown-item @click.native="resetPassword(row)">{{ $t('user.resetPassword')}}</el-dropdown-item>
|
</zt-dropdown>
|
</template>
|
</zt-table-column-handle>
|
</el-table>
|
<!-- 弹窗, 新增 / 修改 -->
|
<add-or-update @refreshDataList="table.query"/>
|
<user-role ref="userRole"></user-role>
|
</zt-table-wraper>
|
</el-col>
|
</el-row>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import AddOrUpdate from './user-add-or-update'
|
import UserRole from './user-role'
|
|
export default {
|
data() {
|
return {
|
selectDeptFlag: false,
|
dataForm: {
|
username: '',
|
deptId: '',
|
companyId: ''
|
}
|
}
|
},
|
watch: {
|
filterCompany(val) {
|
this.$refs.companyTree.filter(val)
|
}
|
},
|
methods: {
|
onDeptSelected(data) {
|
if (!data.company) {
|
this.dataForm.deptId = data.id
|
this.dataForm.companyId = data.companyId
|
this.selectDeptFlag = true
|
} else {
|
this.dataForm.deptId = ''
|
this.dataForm.companyId = data.id
|
this.selectDeptFlag = false
|
}
|
this.$refs.tableObj.query()
|
},
|
// 设置角色
|
async setRole(user) {
|
this.$refs['userRole'].$refs['dialog'].init(user.id, user)
|
},
|
// 重置用户密码
|
async resetPassword(row) {
|
let res = await this.$tip.confirm('确定要重置用户密码吗?')
|
if (res) {
|
let resUrl = await this.$http.get('/sys/user/resetPassword?id=' + row.id)
|
if (resUrl.success) {
|
await this.$tip.success()
|
}
|
}
|
}
|
},
|
mounted() {
|
},
|
components: {
|
AddOrUpdate,
|
UserRole
|
}
|
}
|
</script>
|