modules/00_Admin/Admin.UI/src/views/role/bind-menu/index.vue

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<template>
  <m-container>
    <m-box page :title="$t('mod.admin.menu_authorization')" icon="link" :loading="loading" show-fullscreen>
      <el-alert :title="$t('mod.admin.menu_authorization_alert')" type="warning" class="m-margin-b-20"> </el-alert>
      <el-tree ref="treeRef" class="m-admin-bind-menu" :data="treeData" node-key="id" show-checkbox default-expand-all>
        <template #default="{ node, data }">
          <m-icon class="m-admin-bind-menu_icon" :name="data.item.icon || 'folder-o'" :style="{ color: data.item.iconColor }" />
          <span class="m-admin-bind-menu_label">{{ data.item.locales[$i18n.locale] || node.label }}</span>
          <div class="m-admin-bind-menu_buttons">
            <template v-if="data.id === 0">
              <el-checkbox v-model="checkedAllButton" :label="$t('mod.admin.select_all')" @change="handleCheckedAllButton"></el-checkbox>
            </template>
            <template v-else>
              <el-checkbox v-for="b in data.buttons" :key="b.code" v-model="b.checked" :label="$t(b.text)" :disabled="!node.checked" @change="handleCheckedButton"></el-checkbox>
            </template>
          </div>
        </template>
      </el-tree>
      <template #footer>
        <m-button type="success" icon="save" @click="submit">{{ $t('mkh.save') }}</m-button>
      </template>
    </m-box>
  </m-container>
</template>
<script setup lang="ts">
  import type { MenuTreeNode } from '@/types/menu'
  import { nextTick, Ref, ref, toRefs, watch } from 'vue'
  import { mkh, useProfileStore, PageDefinition, useMessage } from 'mkh-ui'
  import { useI18n } from '@/locales'
  import menuApi from '@/api/menu'
  import roleApi from '@/api/role'

  const { t } = useI18n()

  const props = defineProps({
    role: {
      type: Object,
      required: true,
    },
  })

  const profileStore = useProfileStore()

  const message = useMessage()

  const { role } = toRefs(props)
  const treeRef = ref()
  const treeData: Ref<MenuTreeNode[]> = ref([])
  const checkedAllButton = ref(false) //选中所有按钮
  const allButtons: Ref<any[]> = ref([]) //保存所有的按钮对象引用,方便全选时切换
  const loading = ref(false)

  //解析所有页面信息
  let pages: PageDefinition[] = []
  mkh.modules.forEach((m) => {
    pages = pages.concat(m.pages)
  })

  //刷新菜单树
  const refreshTree = () => {
后面还有 169 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。