<template> 
 | 
  <!-- <TableLayout :permissions="['system:systemrole:query']"> --> 
 | 
  <TableLayout> 
 | 
    <!-- 搜索表单 --> 
 | 
    <el-form 
 | 
      ref="searchForm" 
 | 
      slot="search-form" 
 | 
      :model="searchForm" 
 | 
      label-width="100px" 
 | 
      inline 
 | 
    > 
 | 
      <el-form-item label="角色名称:" prop="name"> 
 | 
        <el-input 
 | 
          v-model="searchForm.name" 
 | 
          placeholder="请输入" 
 | 
          @keypress.enter.native="search" 
 | 
        ></el-input> 
 | 
      </el-form-item> 
 | 
      <section> 
 | 
        <el-button type="primary" @click="search">搜索</el-button> 
 | 
        <el-button @click="reset">重置</el-button> 
 | 
      </section> 
 | 
    </el-form> 
 | 
    <!-- 表格和分页 --> 
 | 
    <template v-slot:table-wrap> 
 | 
      <!-- <ul class="toolbar" v-permissions="['system:systemrole:create', 'system:systemrole:delete']"> 
 | 
        <li><el-button type="primary" @click="$refs.operaSystemRoleWindow.open('新建系统-角色基础信息表')" icon="el-icon-plus" v-permissions="['system:systemrole:create']">新建</el-button></li> 
 | 
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:systemrole:delete']">删除</el-button></li> 
 | 
      </ul> --> 
 | 
      <ul class="toolbar"> 
 | 
        <li> 
 | 
          <el-button 
 | 
            type="primary" 
 | 
            @click="$refs.operaRoleWindow.open('新建角色')" 
 | 
            >新建</el-button 
 | 
          > 
 | 
        </li> 
 | 
        <li> 
 | 
          <el-button @click="deleteByIdInBatch" type="danger" plain>删除</el-button> 
 | 
        </li> 
 | 
      </ul> 
 | 
      <el-table 
 | 
        v-loading="isWorking.search" 
 | 
        :data="tableData.list" 
 | 
        stripe 
 | 
        border 
 | 
        @selection-change="handleSelectionChange" 
 | 
      > 
 | 
        <el-table-column type="selection" fixed="left" width="55"></el-table-column> 
 | 
        <el-table-column 
 | 
          prop="code" 
 | 
          label="角色编码" 
 | 
          min-width="100px" 
 | 
          show-overflow-tooltip 
 | 
        > 
 | 
          <template slot-scope="{ row }"> 
 | 
            <span class="long-title-style">{{ row.code }}</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column 
 | 
          prop="name" 
 | 
          label="角色名称" 
 | 
          min-width="100px" 
 | 
        ></el-table-column> 
 | 
        <!-- <el-table-column prop="type" label="角色类型" min-width="100px"> 
 | 
          <template slot-scope="{ row }"> 
 | 
            <span v-if="row.type == '0'">企业默认角色</span> 
 | 
            <span v-else>企业自定义</span> 
 | 
          </template> 
 | 
        </el-table-column> --> 
 | 
        <el-table-column 
 | 
          prop="remark" 
 | 
          label="角色描述" 
 | 
          min-width="100px" 
 | 
          show-overflow-tooltip 
 | 
        > 
 | 
          <template slot-scope="{ row }"> 
 | 
            <span class="long-title-style">{{ row.remark ? row.remark : '-' }}</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column 
 | 
          prop="createUserInfo.username" 
 | 
          label="创建人" 
 | 
          min-width="80px" 
 | 
        ></el-table-column> 
 | 
        <el-table-column 
 | 
          prop="createTime" 
 | 
          label="创建时间" 
 | 
          min-width="140px" 
 | 
        ></el-table-column> 
 | 
        <!-- <el-table-column 
 | 
          prop="updateUserInfo.username" 
 | 
          label="更新人" 
 | 
          min-width="100px" 
 | 
        > 
 | 
          <template slot-scope="{ row }"> 
 | 
            {{ row.updateUserInfo ? row.updateUserInfo.username : '-' }} 
 | 
          </template> 
 | 
        </el-table-column> --> 
 | 
        <el-table-column 
 | 
          prop="updateTime" 
 | 
          label="更新时间" 
 | 
          min-width="140px" 
 | 
        > 
 | 
          <template slot-scope="{ row }"> 
 | 
            {{ row.updateTime ? row.updateTime : '-' }} 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <!-- <el-table-column 
 | 
          v-if="containPermissions(['system:systemrole:update', 'system:systemrole:delete'])" 
 | 
          label="操作" 
 | 
          min-width="120" 
 | 
          fixed="right" 
 | 
        > 
 | 
          <template slot-scope="{row}"> 
 | 
            <el-button type="text" @click="$refs.operaSystemRoleWindow.open('编辑系统-角色基础信息表', row)" icon="el-icon-edit" v-permissions="['system:systemrole:update']">编辑</el-button> 
 | 
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:systemrole:delete']">删除</el-button> 
 | 
          </template> 
 | 
        </el-table-column> --> 
 | 
        <el-table-column 
 | 
          label="操作" 
 | 
          min-width="320px" 
 | 
          fixed="right" 
 | 
          align="center" 
 | 
        > 
 | 
          <template slot-scope="{ row }"> 
 | 
            <div v-if="row.type == '0'"> 
 | 
              <el-button type="text"  @click="$refs.operaRoleWindow.open('复制角色', row,true)">复制</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.menuConfigWindow.open('查看菜单', row, true)" 
 | 
              >查看菜单</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.operaSystemRoleNone.open('查看权限', row)" 
 | 
              >查看权限</el-button> 
 | 
            </div> 
 | 
            <div v-else> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.operaRoleWindow.open('编辑信息', row)" 
 | 
              >编辑</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.menuConfigWindow.open('授权PC菜单', row, 1)" 
 | 
              >授权PC菜单</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.menuConfigWindow.open('授权H5菜单', row, 2)" 
 | 
              >授权H5菜单</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="$refs.operaSystemRoleApplysWindow.open(row)" 
 | 
              >配置权限</el-button> 
 | 
              <el-button 
 | 
                type="text" 
 | 
                @click="setData(row)" 
 | 
              >数据权限</el-button> 
 | 
            </div> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
      </el-table> 
 | 
      <pagination 
 | 
        @size-change="handleSizeChange" 
 | 
        @current-change="handlePageChange" 
 | 
        :pagination="tableData.pagination" 
 | 
      > 
 | 
      </pagination> 
 | 
    </template> 
 | 
    <!-- 新建/修改 --> 
 | 
    <OperaSystemRoleWindow 
 | 
      ref="operaSystemRoleWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
    <OperaSystemRolePowerWindow 
 | 
      ref="operaSystemRolePowerWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
    <OperaSystemRoleDataWindow 
 | 
      ref="operaSystemRoleDataWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
    <OperaSystemRoleApplysWindow 
 | 
      ref="operaSystemRoleApplysWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
    <MenuConfigWindow 
 | 
      ref="menuConfigWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
    <OperaRoleWindow 
 | 
      ref="operaRoleWindow" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
      <OperaSystemRoleNone 
 | 
      ref="operaSystemRoleNone" 
 | 
      @success="handlePageChange(tableData.pagination.pageIndex)" 
 | 
    /> 
 | 
  
 | 
  </TableLayout> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import BaseTable from '@/components/base/BaseTable' 
 | 
import TableLayout from '@/layouts/TableLayout' 
 | 
import Pagination from '@/components/common/Pagination' 
 | 
import OperaSystemRoleWindow from '@/components/system/OperaSystemRoleWindow' 
 | 
import OperaSystemRoleNone from '@/components/system/user/OperaSystemRoleNone' 
 | 
import OperaRoleWindow from '@/components/system/role/OperaRoleWindow' 
 | 
import MenuConfigWindow from '@/components/system/role/MenuConfigWindow' 
 | 
import OperaSystemRoleDataWindow from '@/components/system/OperaSystemRoleDataWindow' 
 | 
import OperaSystemRolePowerWindow from '@/components/system/OperaSystemRolePowerWindow' 
 | 
import OperaSystemRoleApplysWindow from '@/components/system/user/OperaSystemRoleApplysWindow' 
 | 
import { findByRoleId } from '@/api/system/systemRole' 
 | 
export default { 
 | 
  name: 'SystemRole', 
 | 
  extends: BaseTable, 
 | 
  components: { 
 | 
    TableLayout, 
 | 
    Pagination, 
 | 
    OperaSystemRoleWindow, 
 | 
    MenuConfigWindow, 
 | 
    OperaSystemRoleApplysWindow, 
 | 
    OperaSystemRoleDataWindow, 
 | 
    OperaSystemRolePowerWindow, 
 | 
    OperaRoleWindow, 
 | 
    OperaSystemRoleNone 
 | 
  }, 
 | 
  data () { 
 | 
    return { 
 | 
      // 搜索 
 | 
      searchForm: { 
 | 
        name: '' 
 | 
      }, 
 | 
      type: [ 
 | 
        { name: '全部', id: '1' }, 
 | 
        { name: '有效', id: '2' }, 
 | 
        { name: '失效', id: '3' } 
 | 
      ] 
 | 
    } 
 | 
  }, 
 | 
  created () { 
 | 
    this.config({ 
 | 
      module: '系统-角色基础信息表', 
 | 
      api: '/system/systemRole', 
 | 
      'field.id': 'id', 
 | 
      'field.main': 'name' 
 | 
    }) 
 | 
    this.search() 
 | 
  }, 
 | 
  methods: { 
 | 
    setData (row) { 
 | 
      findByRoleId({ roleId: row.id }) 
 | 
        .then(res => { 
 | 
          if (!res) { 
 | 
            this.$refs.operaSystemRoleDataWindow.open('数据权限', { roleId: row.id }) 
 | 
          } else { 
 | 
            this.$refs.operaSystemRoleDataWindow.open('数据权限', res) 
 | 
          } 
 | 
        }) 
 | 
        .catch(err => { 
 | 
          this.$tip.error(err) 
 | 
        }) 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 |