No Description

index.vue 7.0KB

    <template> <div class="app-container"> <div class="filter-container" style="margin-bottom:20px"> <el-input style="width: 200px;" class="filter-item" placeholder="账号" v-model="listQuery.account"> </el-input> <el-input style="width: 200px;" class="filter-item" placeholder="用户姓名" v-model="listQuery.name"> </el-input> <el-input style="width: 250px;" class="filter-item" placeholder="所在机构" v-model="listQuery.comp"> </el-input> <el-button v-waves class="filter-item" style="margin-left: 10px;" @click="handleFilter" type="primary" icon="el-icon-search">查找</el-button> <el-button v-waves class="filter-item" style="margin-left: 10px;" @click="handleCreate" type="primary" icon="el-icon-edit">添加用户</el-button> </div> <el-table :key='tableKey' :data="list" v-loading="listLoading" border fit highlight-current-row style="width: 100%;min-height:550px;"> <el-table-column width="110px" align="center" label="账号"> <template slot-scope="scope"> <span>{{scope.row.account}}</span> </template> </el-table-column> <el-table-column width="80px" align="center" label="用户姓名"> <template slot-scope="scope"> <span>{{scope.row.name}}</span> </template> </el-table-column> <el-table-column width="200px" align="center" label="职位"> <template slot-scope="scope"> <span>{{scope.row.job}}</span> </template> </el-table-column> <el-table-column width="110px" align="center" label="联系电话"> <template slot-scope="scope"> <span>{{scope.row.phone}}</span> </template> </el-table-column> <el-table-column width="100px" align="center" label="用户类型"> <template slot-scope="scope"> <span>{{(scope.row.type) ? '管理员' : '普通用户'}}</span> </template> </el-table-column> <el-table-column width="100px" align="center" label="账户状态"> <template slot-scope="scope"> <span :class="{ active: !scope.row.active}">{{(scope.row.active) ? '未停用' : '已停用'}}</span> </template> </el-table-column> <el-table-column min-width="200px" align="center" label="所在机构"> <template slot-scope="scope"> <span>{{scope.row.comp}}</span> </template> </el-table-column> <el-table-column min-width="200px" align="center" label="负责桥梁"> <template slot-scope="scope"> <span>{{scope.row.bridgeName}}</span> </template> </el-table-column> <el-table-column align="center" label="操作" width="260px" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button v-waves :type="((!scope.row.active) ? 'info' : 'primary')" size="mini" @click="handleUpdate(scope.row)" :disabled='!scope.row.active'>编辑</el-button> <el-button v-waves size="mini" :type="((!scope.row.active) ? 'info' : 'danger')" @click="handleModifyStatus(scope.row,'deleted')" :disabled='!scope.row.active'>停用 </el-button> <el-button v-waves size="mini" :type="((!scope.row.active) ? 'info' : 'primary')" @click="distribution(scope.row)" :disabled='!scope.row.active'>分配权限 </el-button> </template> </el-table-column> </el-table> <editUser :dialog="dialogTableVisible" @chilF='chilF' :id='edit'></editUser> <editUserPermissions :dialog='dialogPerssion' @chilF='chilF' :id='edit'></editUserPermissions> <div class="pagination-container" style="text-align:center;"> <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.page" :page-size="listQuery.limit" layout="prev, pager, next, jumper" :total="total"> </el-pagination> </div> </div> </template> <script> import { deleteUser, queryResponsibleBridge, pageQueryUser } from '@/api/userManagemen' import waves from '@/directive/waves' import editUser from './editUser' import editUserPermissions from './editUserPermissions' export default { name: 'complexTable', directives: { waves }, data() { return { edit: '', tableKey: 0, list: null, total: null, listLoading: true, dialogPerssion: false, dialogTableVisible: false, listQuery: { account: '', name: '', comp: '', pageSize: 10, pageNo: 1 } } }, filters: { typeFilter(type) { } }, created() { this.getList() }, components: { editUser, editUserPermissions }, methods: { getList() { this.listLoading = true pageQueryUser(this.listQuery).then(response => { if (response.success) { if (response.data === null) { this.list = [] this.total = 0 setTimeout(() => { this.listLoading = false }, 1.5 * 1000) return } const $data = response.data.data for (let i = 0; i < $data.length; i++) { $data[i].bridgeName = '' queryResponsibleBridge({ uid: $data[i].id, active: 1 }).then(response => { if (response.success) { const arr = [] const $info = response.data for (let j = 0; j < $info.length; j++) { arr.push($info[j].shortName) } $data[i].bridgeName = arr.join(',') } }) } this.list = $data this.total = response.data.total setTimeout(() => { this.listLoading = false }, 1.5 * 1000) } }) }, handleFilter() { this.listQuery.pageNo = 1 this.getList() }, handleSizeChange(val) { this.listQuery.pageNo = val this.getList() }, chilF(val) { if (!val) { this.getList() } this.edit = '' }, handleCurrentChange(val) { this.listQuery.pageNo = val this.getList() }, handleModifyStatus(row, status) { this.$confirm('确实要停用:用户' + row.name + '吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', center: true }).then(() => { deleteUser({ id: row.id }).then(response => { if (response.success) { this.getList() this.pop('已成功停用该用户') } }) }).catch(() => { }) }, handleCreate() { this.dialogTableVisible = !this.dialogTableVisible }, handleUpdate(row) { this.edit = row.id this.dialogTableVisible = !this.dialogTableVisible }, distribution(row) { this.edit = row.id this.dialogPerssion = !this.dialogPerssion } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> .el-autocomplete{ display: block } .el-btn-col{ margin-top: 45px } .editTe{ margin: 10px 0 0 22px } .active{ color: red } </style>