🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

va-layout-admin

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

va-layout-admin

va-layout-admin 是一个由 Vue3 + TypeScript + Vite 集成的后台布局组件

latest
npmnpm
Version
1.0.6
Version published
Weekly downloads
8
100%
Maintainers
1
Weekly downloads
 
Created
Source

简介

va-layout-admin 是一个由 Vue3 + TypeScript + Vite 集成的后台布局组件

使用教程

npm install -S va-layout-admin

or

yarn add va-layout-admin

快速上手

在 main.ts 中写入以下内容:

// main.ts
import { createApp } from "vue";
import AdminLayout from "va-layout-admin";
import App from "./App.vue";

const app = createApp(App);

app.component("AdminLayout", AdminLayout);

app.mount("#app");
<template>
  <admin-layout
    :mode="mode"
    :is-mobile="isMobile"
    :fixed-header-and-tab="fixedHeaderAndTab"
    :fixed-footer="fixedFooter"
    :sider-collapse="siderCollapse"
    :hide-header-and-sider="visibleHeaderAndSider"
    @update:sider-collapse="setSiderCollapse"
  >
    <template #header>
      <div class="flex-center h-full bg-#e6e6e6">Header</div>
    </template>
    <template #tab>
      <div class="flex-center h-full bg-#cccccc">Tab</div>
    </template>
    <template #sider>
      <div class="h-full bg-#d9d9d9">
        <div class="flex-center h-56px">Sider</div>
      </div>
    </template>
    <template #footer>
      <div class="flex-center h-full bg-#e6e6e6">Footer</div>
    </template>
    <div class="fixed right-0 top-120px px-12px whitespace-nowrap">
      <div>
        <h4>layout mode:</h4>
        <div v-for="item in modeList" :key="item">
          <span class="pr-8px">{{ item }}</span>
          <input
            type="radio"
            name="mode"
            :value="item"
            :checked="item === mode"
            class="cursor-pointer"
            @change="setMode(item)"
          />
        </div>
      </div>
      <div class="pt-24px">
        <span class="pr-8px">isMobile</span>
        <input type="checkbox" :checked="isMobile" @change="toggleIsMobile" />
      </div>
      <div class="pt-24px">
        <span class="pr-8px">fixedHeaderAndTab</span>
        <input
          type="checkbox"
          :checked="fixedHeaderAndTab"
          @change="toggleFixedHeaderAndTab"
        />
      </div>
      <div class="pt-24px">
        <span class="pr-8px">fixedFooter</span>
        <input
          type="checkbox"
          :checked="fixedFooter"
          @change="toggleFixedFooter"
        />
      </div>
      <div class="pt-24px">
        <span class="pr-8px">siderCollapse</span>
        <input
          type="checkbox"
          :checked="siderCollapse"
          @change="toggleSiderCollapse"
        />
      </div>
      <div class="pt-24px">
        <span class="pr-8px">hideHeaderAndSider</span>
        <input
          type="checkbox"
          :checked="visibleHeaderAndSider"
          @change="toggleHideHeaderAndSider"
        />
      </div>
    </div>
    <div v-for="i in 50" :key="i" class="text-center">{{ i }}</div>
  </admin-layout>
</template>

<script setup lang="ts">
  import { ref } from "vue";
  import { useBoolean } from "@/hooks";
  import AdminLayout from "./index";

  type Mode = "vertical" | "horizontal";
  const mode = ref<Mode>("vertical");
  const modeList: Mode[] = ["vertical", "horizontal"];
  function setMode(value: Mode) {
    mode.value = value;
  }

  const { bool: isMobile, toggle: toggleIsMobile } = useBoolean();
  const { bool: fixedHeaderAndTab, toggle: toggleFixedHeaderAndTab } =
    useBoolean(true);
  const { bool: fixedFooter, toggle: toggleFixedFooter } = useBoolean();
  const {
    bool: siderCollapse,
    setBool: setSiderCollapse,
    toggle: toggleSiderCollapse,
  } = useBoolean();
  const {
    bool: visibleHeaderAndSider,
    setBool: setHideHeaderAndSider,
    toggle: toggleHideHeaderAndSider,
  } = useBoolean();
</script>

<style></style>

AdminLayout 属性

属性名说明类型默认值
mode布局模式string ('vertical', 'horizontal')'vertical'
isMobile是否是移动端booleanfalse
maskBg移动端时遮罩背景颜色string'rgba(0,0,0,0.3)'
useMinWidthLayout是否启用最小宽度的布局booleanfalse
minWidth最小宽度number1200
headerVisible头部可见booleantrue
headerHeight头部高度number56
tabVisible标签可见booleantrue
tabHeight标签页高度number44
fixedHeaderAndTab固定头部和标签booleantrue
addMainOverflowHidden给主体添加禁止溢出booleanfalse
footerVisible底部可见booleantrue
footerHeight底部高度number48
fixedFooter固定底部booleantrue
siderVisible侧边可见booleantrue
siderWidth侧边栏高度number200
siderCollapsedWidth侧边栏折叠状态的高度number64
siderCollapse侧边栏折叠状态booleanfalse
transitionDuration动画过渡时间number300
transitionTimingFunction动画过渡速度曲线string'ease-in-out'
hideHeaderAndSider隐藏头部和侧边栏booleanfalse

AdminLayout 事件

属性名说明回调参数
update:sider-collapse侧边栏伸缩时出发(collapse) collapse 伸缩属性

FAQs

Package last updated on 01 Feb 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts