k94314517
2024-11-23 3011b9800d6c5bee031d87bc4e225b5b1fb52571
company/src/views/business/userManagement.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
<template>
    <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="realname">
                <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="companyName">
                <el-input v-model="searchForm.companyName" v-trim placeholder="请输入" @keypress.enter.native="search"/>
            </el-form-item>
            <section>
                <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
                <el-button @click="reset">重置</el-button>
            </section>
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                :default-sort = "{prop: 'createTime', order: 'descending'}"
                stripe
                @sort-change="handleSortChange"
            >
                <el-table-column label="序号" width="80px">
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <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="companyName" label="归属公司" min-width="100px"></el-table-column>
                <el-table-column label="授权企业" min-width="100px">
                    <template slot-scope="{row}">
                        <span>{{row.authNum}}å®¶</span>
                    </template>
                </el-table-column>
                <el-table-column label="是否超管" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.isAdmin === '1'">是</span>
                        <span v-if="row.isAdmin === '0'">否</span>
                    </template>
                </el-table-column>
                <el-table-column label="状态" min-width="100px">
                    <template slot-scope="{row}">
                        <el-switch
                            v-if="!row.fixed"
                            @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
                    label="操作"
                    width="100"
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.authorizedEnterprise.open('授权企业记录', row.id)">授权企业</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            ></pagination>
        </template>
        <authorizedEnterprise ref="authorizedEnterprise" />
    </TableLayout>
</template>
<script>
  import Pagination from '@/components/common/Pagination'
  import TableLayout from '@/layouts/TableLayout'
  import BaseTable from '@/components/base/BaseTable'
  import { updUserStatus } from '@/api/system/user'
  import authorizedEnterprise from '@/components/business/authorizedEnterprise'
  export default {
    name: 'userManagement',
    extends: BaseTable,
    components: { TableLayout, Pagination, authorizedEnterprise },
    data () {
      return {
        // æœç´¢
        searchForm: {
          username: '',
          realname: '',
          mobile: '',
          companyName: '',
          type: 1
        }
      }
    },
    created () {
      this.config({
        module: '用户',
        api: '/system/user',
        'field.main': 'realname',
        sorts: [{
          property: 'CREATE_TIME',
          direction: 'DESC'
        }]
      })
      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>
<style scoped lang="scss">
    @import "@/assets/style/variables.scss";
    // åˆ—表头像处理
    .table-column-avatar {
        img {
            width: 48px;
        }
    }
</style>