| | |
| | | <template> |
| | | <el-container> |
| | | <el-header>交通统计报表审核系统 - 用户管理</el-header> |
| | | <el-container direction="vertical"> |
| | | <app-header title="交通统计报表审核系统 - 用户管理"></app-header> |
| | | <el-container> |
| | | <el-aside width="200px"> |
| | | <el-menu router :default-active="activeMenu"> |
| | | <el-menu ref="sideMenu" router :default-active="$route.path" @select="onMenuSelect"> |
| | | <el-menu-item index="/dashboard">工作台</el-menu-item> |
| | | <el-menu-item index="/import">数据导入</el-menu-item> |
| | | <el-menu-item index="/data">数据查看</el-menu-item> |
| | |
| | | <el-menu-item index="/report">报表生成</el-menu-item> |
| | | <el-menu-item index="/rules">规则管理</el-menu-item> |
| | | <el-menu-item index="/users">用户管理</el-menu-item> |
| | | <el-menu-item index="/login" @click="logout">退出登录</el-menu-item> |
| | | </el-menu> |
| | | </el-aside> |
| | | <el-main> |
| | |
| | | <el-table-column label="操作" width="140" align="center"> |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" size="mini" @click="openEdit(row)">编辑</el-button> |
| | | <el-button v-if="isAdmin" type="text" size="mini" @click="resetPwd(row)">重置密码</el-button> |
| | | <el-button type="text" size="mini" style="color:#f56c6c" @click="removeUser(row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </template> |
| | | <script> |
| | | import api from '@/api' |
| | | import AppHeader from '@/components/AppHeader.vue' |
| | | const MODULE_OPTIONS = [ |
| | | { key: 'freight', label: '货运报表' }, |
| | | { key: 'passenger', label: '公路旅客报表' }, |
| | |
| | | { key: 'cityPassenger', label: '城市客运报表' } |
| | | ] |
| | | export default { |
| | | components: { AppHeader }, |
| | | name: 'UserManage', |
| | | data() { |
| | | return { |
| | | activeMenu: '/users', |
| | | keyword: '', |
| | | list: [], |
| | | loading: false, |
| | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | isAdmin() { |
| | | return sessionStorage.getItem('username') === 'admin' |
| | | } |
| | | }, |
| | | mounted() { this.loadList() }, |
| | | methods: { |
| | | logout() { |
| | | localStorage.removeItem('token'); localStorage.removeItem('username'); localStorage.removeItem('realName'); localStorage.removeItem('modules') |
| | | this.$router.push('/login') |
| | | }, |
| | | loadList() { |
| | | this.loading = true |
| | | api.get('/user/list', { params: { keyword: this.keyword } }) |
| | | .then(res => { this.list = res.data || [] }) |
| | | .catch(() => this.$message.error('用户列表加载失败')) |
| | | .catch(e => { if (e && e._toast) return; this.$message.error('用户列表加载失败') }) |
| | | .finally(() => { this.loading = false }) |
| | | }, |
| | | moduleKeys(modules) { |
| | |
| | | this.loadList() |
| | | }) |
| | | .catch(err => { |
| | | if (err && err._toast) return |
| | | const d = err && err.response && err.response.data |
| | | this.$message.error((d && d.message) || '保存失败') |
| | | }) |
| | | .finally(() => { this.saving = false }) |
| | | }) |
| | | }, |
| | | resetPwd(row) { |
| | | this.$confirm('确定将用户「' + (row.realName || row.username) + '」的密码重置为 123456 吗?', '重置密码', { type: 'warning' }) |
| | | .then(() => api.post('/user/reset-password', { id: row.id })) |
| | | .then(() => { this.$message.success('已重置为 123456'); this.loadList() }) |
| | | .catch(() => {}) |
| | | }, |
| | | removeUser(row) { |
| | | this.$confirm('确定删除用户「' + (row.realName || row.username) + '」吗?', '删除确认', { type: 'warning' }) |
| | | .then(() => api.post('/user/delete', null, { params: { id: row.id } })) |