logologo
Mulai
Panduan
Pengembangan
Plugin
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Mulai
Panduan
Pengembangan
Plugin
API
logologo
Pengguna

Peran dan Izin

Konfigurasi Peran
Konfigurasi Izin
Terapkan di UI
Gabungan Peran

Panduan Pengembang

Perluas Bar Konfigurasi Izin

Departemen

Manajemen Departemen
Manajemen Peran Departemen

Sinkronisasi Data Pengguna

Manajemen Sinkronisasi

Sumber Data

WeChat Work
HTTP API

Panduan Pengembang

Perluas Sumber Data Sinkronisasi
Perluas Sumber Daya Target Sinkronisasi
Previous PageGabungan Peran
Next PageManajemen Departemen
TIP

Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris

#Memperluas Tab Konfigurasi Izin

Berikut adalah contoh item konfigurasi "Menu Seluler", yang menunjukkan cara memperluas tab konfigurasi izin baru. Hasilnya dapat dilihat pada gambar di bawah ini:

20240903210248

Berikut adalah kodenya:

import { Plugin } from '@nocobase/client';
import PluginACLClient from '@nocobase/plugin-acl/client';

class PluginMobileClient extends Plugin {
  async load() {
    const aclInstance = this.app.pm.get(PluginACLClient);

    aclInstance?.settingsUI.addPermissionsTab(({ t, TabLayout, activeKey }) => ({
      key: 'mobile-menu',
      label: t('Mobile menu', {
        ns: 'plugin-mobile',
      }),
      children: (
        <TabLayout>
          <MenuPermissions />
        </TabLayout>
      ),
    }));
  }
}

Pertama, kita perlu mendapatkan instance dari plugin PluginACLClient (metode lain untuk mendapatkan instance plugin), dan menambahkan tab konfigurasi izin baru menggunakan metode settingsUI.addPermissionsTab. Dalam contoh ini, kita menambahkan tab konfigurasi izin yang bernama "Menu Seluler".

Nilai properti settingsUI adalah instance dari kelas bernama ACLSettingsUI, dan informasi tipenya adalah sebagai berikut:

import { TabsProps } from 'antd/es/tabs/index';

interface ACLSettingsUI {
  addPermissionsTab(tab: Tab | TabCallback): void;
  getPermissionsTabs(props: PermissionsTabsProps): Tab[];
}

type Tab = TabsProps['items'][0];

type TabCallback = (props: PermissionsTabsProps) => Tab;

interface PermissionsTabsProps {
  /**
   * the key of the currently active tab panel
   */
  activeKey: string;
  /**
   * the currently selected role
   */
  role: Role;
  /**
   * translation function
   */
  t: TFunction;
  /**
   * used to constrain the size of the container in the Tab
   */
  TabLayout: React.FC;
}