doum
2025-09-11 7298d5354963a88643a543b51b90192dc9fc934c
admin/src/views/system/role.vue
@@ -20,6 +20,7 @@
        <li v-permissions="['system:role:delete']"><el-button @click="deleteByIdInBatch" icon="el-icon-delete">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        :default-sort = "{prop: 'createTime', order: 'descending'}"
@@ -28,25 +29,26 @@
        @sort-change="handleSortChange"
      >
        <el-table-column type="selection" fixed="left" width="55"></el-table-column>
        <el-table-column prop="code" label="角色编码" fixed="left" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="角色名称" fixed="left" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="角色备注" min-width="120px"></el-table-column>
        <el-table-column prop="code" label="角色编码" show-overflow-tooltip fixed="left" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="角色名称" show-overflow-tooltip fixed="left" min-width="140px"></el-table-column>
        <el-table-column prop="remark" label="角色备注" min-width="130px" show-overflow-tooltip></el-table-column>
        <el-table-column prop="createUser" label="创建人" min-width="100px">
          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
        </el-table-column>
        <el-table-column prop="createTime" label="创建时间" min-width="140px" sortable="custom" sort-by="role.CREATE_TIME"></el-table-column>
        <el-table-column prop="createTime" label="创建时间" min-width="150px" sortable="custom" sort-by="role.CREATE_TIME"></el-table-column>
        <el-table-column prop="updateUser" label="更新人" min-width="100px">
          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
        </el-table-column>
        <el-table-column prop="updateTime" label="更新时间" min-width="140px"></el-table-column>
        <el-table-column prop="updateTime" label="更新时间" min-width="150px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['system:role:update', 'system:role:createRolePermission', 'system:role:createRoleMenu', 'system:role:delete'])"
          v-if="containPermissions(['system:role:update', 'system:role:createRolePermission','system:datapermission:create', 'system:role:createRoleMenu', 'system:role:delete'])"
          label="操作"
          min-width="270"
          min-width="300"
          fixed="right"
        >
          <template v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)" slot-scope="{row}">
            <el-button type="text" @click="$refs.operaRoleWindow.open('编辑角色', row)" icon="el-icon-edit" v-permissions="['system:role:update']">编辑</el-button>
            <el-button type="text" @click="$refs.operaRoleWindow.open('编辑角色', row)"   v-permissions="['system:role:update']">编辑</el-button>
            <el-button type="text" @click="setData(row)" v-permissions="['system:datapermission:create']">数据权限</el-button>
            <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">配置权限</el-button>
            <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">授权菜单</el-button>
            <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">删除</el-button>
@@ -65,6 +67,7 @@
    <PermissionConfigWindow ref="permissionConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
    <!-- 授权菜单 -->
    <MenuConfigWindow ref="menuConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
    <OperaSystemRoleDataWindow  ref="OperaSystemRoleDataWindow"  @success="handlePageChange(tableData.pagination.pageIndex)"    />
  </TableLayout>
</template>
@@ -75,10 +78,12 @@
import OperaRoleWindow from '@/components/system/role/OperaRoleWindow'
import PermissionConfigWindow from '@/components/system/role/PermissionConfigWindow'
import MenuConfigWindow from '@/components/system/role/MenuConfigWindow'
import OperaSystemRoleDataWindow from '@/components/system/role/OperaSystemRoleDataWindow'
import { findByRoleId } from '@/api/system/role'
export default {
  name: 'SystemRole',
  extends: BaseTable,
  components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, Pagination },
  components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, OperaSystemRoleDataWindow, Pagination },
  data () {
    return {
      // 搜索
@@ -99,6 +104,21 @@
      }]
    })
    this.search()
  },
  methods: {
    setData (row) {
      findByRoleId({ roleId: row.id })
        .then(res => {
          if (!res) {
            this.$refs.OperaSystemRoleDataWindow.open('数据权限', { roleId: row.id },row)
          } else {
            this.$refs.OperaSystemRoleDataWindow.open('数据权限', res,row)
          }
        })
        .catch(err => {
          this.$tip.error(err)
        })
    }
  }
}
</script>