| | |
| | | <TableLayout :permissions="['system:user:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline> |
| | | <el-form-item label="用户名" prop="username"> |
| | | <el-input v-model="searchForm.username" v-trim placeholder="请输入用户名" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="用户名" prop="username">--> |
| | | <!-- <el-input v-model="searchForm.username" v-trim placeholder="请输入用户名" @keypress.enter.native="search"/>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="姓名" prop="realname"> |
| | | <el-input v-model="searchForm.realname" v-trim placeholder="请输入姓名" @keypress.enter.native="search"/> |
| | | <el-input v-model="searchForm.realname" v-trim placeholder="请输入" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="手机号码" prop="mobile"> |
| | | <el-input v-model="searchForm.mobile" v-trim placeholder="请输入手机号码" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="所属部门" prop="rootDeptId"> |
| | | <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="请选择所属部门" clearable/> |
| | | </el-form-item> |
| | | <el-form-item label="岗位" prop="positionId"> |
| | | <PositionSelect v-model="searchForm.positionId" placeholder="请选择岗位" clearable/> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="手机号码" prop="mobile">--> |
| | | <!-- <el-input v-model="searchForm.mobile" v-trim placeholder="请输入手机号码" @keypress.enter.native="search"/>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="所属部门" prop="rootDeptId">--> |
| | | <!-- <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="请选择所属部门" clearable/>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="岗位" prop="positionId">--> |
| | | <!-- <PositionSelect v-model="searchForm.positionId" placeholder="请选择岗位" clearable/>--> |
| | | <!-- </el-form-item>--> |
| | | <section> |
| | | <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']"> |
| | | <li v-permissions="['system:user:create']"><el-button icon="el-icon-plus" type="primary" @click="$refs.operaUserWindow.open('新建用户')">新建</el-button></li> |
| | | <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">删除</el-button></li> |
| | | <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('新增账号')">新增账号</el-button></li> |
| | | <!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">删除</el-button></li>--> |
| | | </ul> |
| | | <!-- @selection-change="handleSelectionChange"--> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | :default-sort = "{prop: 'createTime', order: 'descending'}" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <!-- <el-table-column prop="avatar" label="头像" width="80px" class-name="table-column-avatar" fixed="left"> |
| | | <template slot-scope="{row}"> |
| | | <img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar"> |
| | | <el-table-column label="序号" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="realname" label="姓名" min-width="100px" fixed="left"></el-table-column> |
| | | <el-table-column prop="username" label="用户名" min-width="120px"></el-table-column> |
| | | <el-table-column prop="empNo" label="工号" sortable="custom" sort-by="EMP_NO" min-width="80px"></el-table-column> |
| | | <el-table-column prop="department" label="部门" min-width="120px"> |
| | | <template slot-scope="{row}">{{row.department == null ? '' : row.department.name}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="position" label="岗位" min-width="160px" class-name="table-column-strings"> |
| | | <el-table-column prop="username" label="账号" min-width="120px"></el-table-column> |
| | | <el-table-column prop="realname" label="姓名" min-width="100px"></el-table-column> |
| | | <el-table-column prop="mobile" label="联系方式" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roles" label="角色" min-width="160px" class-name="table-column-strings"> |
| | | <template slot-scope="{row}"> |
| | | <ul> |
| | | <li v-for="position in row.positions" :key="position.id">{{position.name}}</li> |
| | | <li v-for="role in row.roles" :key="role.id">{{role.name}}</li> |
| | | </ul> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sex" label="性别" sortable="custom" sort-by="SEX" min-width="80px"> |
| | | <el-table-column label="启用状态" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{row.sex | sex}} |
| | | <el-switch |
| | | @change="changeStatus($event, row)" |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="mobile" label="手机号码" min-width="100px"></el-table-column> |
| | | <el-table-column prop="email" label="邮箱" min-width="180px"></el-table-column> |
| | | <el-table-column prop="birthday" label="生日" sortable="custom" sort-by="BIRTHDAY" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roles" label="角色" min-width="160px" class-name="table-column-strings"> |
| | | <template slot-scope="{row}"> |
| | | <ul> |
| | | <li v-for="role in row.roles" :key="role.id">{{role.name}}</li> |
| | | </ul> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUser" label="创建人" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间" sortable="custom" sort-by="CREATE_TIME" min-width="140px"></el-table-column> |
| | | <el-table-column prop="updateUser" label="更新人" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="updateTime" label="更新时间" sortable="custom" sort-by="UPDATE_TIME" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])" |
| | | label="操作" |
| | |
| | | > |
| | | <template v-if="isAdmin || (row.id !== userInfo.id && row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('编辑用户', row)" v-permissions="['system:user:update']">编辑</el-button> |
| | | <el-button type="text" @click="$refs.allocationEnterprises.open('分配企业', row)">分配企业</el-button> |
| | | <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">配置角色</el-button> |
| | | <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">重置密码</el-button> |
| | | <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">删除</el-button> |
| | | <!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">删除</el-button>--> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> |
| | | <!-- 重置密码 --> |
| | | <ResetPwdWindow ref="resetPwdWindow"/> |
| | | <!-- 分配企业 --> |
| | | <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import OperaUserWindow from '@/components/system/user/OperaUserWindow' |
| | | import allocationEnterprises from '@/components/system/user/allocationEnterprises' |
| | | import RoleConfigWindow from '@/components/system/user/RoleConfigWindow' |
| | | import ResetPwdWindow from '@/components/system/user/ResetPwdWindow' |
| | | import DepartmentSelect from '@/components/common/DepartmentSelect' |
| | | import PositionSelect from '@/components/common/PositionSelect' |
| | | import { updUserStatus } from '@/api/system/user' |
| | | |
| | | export default { |
| | | name: 'SystemUser', |
| | | extends: BaseTable, |
| | | components: { PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination }, |
| | | components: { allocationEnterprises, PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // 搜索 |
| | | searchForm: { |
| | | type:0, |
| | | username: '', // 名字 |
| | | realname: '', // 姓名 |
| | | rootDeptId: null, // 部门ID |
| | |
| | | }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeStatus(status, row) { |
| | | updUserStatus({ |
| | | id: row.id, |
| | | status |
| | | }).then(res => { |
| | | this.search() |
| | | }).catch(err => { |
| | | row.status = row.status === 0 ? 1 : 0 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |