123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- <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>
|