Convert Figma logo to code with AI

herozhou logovue-framework-wz

👏vue后台管理框架👏

4,327
1,344
4,327
73

Top Related Projects

:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin

40,922

Large single page application with 45 pages built on vue2 + vuex. 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用

Vue3、Element Plus、typescript后台管理系统

Vue 2.0 admin management system template based on iView

👨🏻‍💻👩🏻‍💻 Use Ant Design Vue like a Pro! (vue2)

Vuestic Admin is an open-source, ready-to-use admin template suite designed for rapid development, easy maintenance, and high accessibility. Built on Vuestic UI, Vue 3, Vite, Pinia, and Tailwind CSS. Maintained by Epicmax (@epicmaxco).

Quick Overview

The herozhou/vue-framework-wz repository is a Vue.js framework that provides a set of pre-built components and utilities to help developers build web applications more efficiently. It is designed to be a lightweight and flexible solution for building modern, responsive web applications.

Pros

  • Comprehensive Component Library: The framework includes a wide range of pre-built components, including buttons, forms, modals, and more, which can be easily customized and integrated into your project.
  • Responsive Design: The framework is designed with responsive design in mind, ensuring that your application looks great on a variety of devices and screen sizes.
  • Customizable Styling: The framework uses Sass for styling, allowing you to easily customize the look and feel of your application to match your brand.
  • Efficient Development: By providing a set of pre-built components and utilities, the framework can help you save time and effort during the development process.

Cons

  • Learning Curve: As with any new framework, there may be a learning curve for developers who are not familiar with the project's structure and conventions.
  • Potential Vendor Lock-in: By using a specific framework, you may become more dependent on that framework and its ecosystem, which could make it more difficult to migrate to a different solution in the future.
  • Limited Documentation: The project's documentation may not be as comprehensive as some other popular Vue.js frameworks, which could make it more difficult to get started or troubleshoot issues.
  • Potential Performance Overhead: Depending on the size and complexity of your application, the framework's additional layer of abstraction could potentially impact performance.

Code Examples

Here are a few examples of how you can use the herozhou/vue-framework-wz framework in your Vue.js project:

  1. Creating a Button Component:
<template>
  <wz-button type="primary" @click="handleClick">
    Click me
  </wz-button>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Button clicked!');
    }
  }
}
</script>
  1. Building a Form with Validation:
<template>
  <wz-form ref="form" @submit="handleSubmit">
    <wz-form-item label="Name" name="name" :rules="[{ required: true, message: 'Please enter your name' }]">
      <wz-input v-model="form.name" />
    </wz-form-item>
    <wz-form-item label="Email" name="email" :rules="[{ required: true, type: 'email', message: 'Please enter a valid email address' }]">
      <wz-input v-model="form.email" />
    </wz-form-item>
    <wz-form-actions>
      <wz-button type="primary" native-type="submit">Submit</wz-button>
    </wz-form-actions>
  </wz-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        email: ''
      }
    }
  },
  methods: {
    handleSubmit() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          console.log('Form submitted:', this.form);
        }
      });
    }
  }
}
</script>
  1. Creating a Modal:
<template>
  <wz-button type="primary" @click="showModal = true">
    Open Modal
  </wz-button>
  <wz-modal v-model="showModal" title="My Modal">
    <p>This is the content of the modal.</p>
    <template #footer>
      <wz-button type="primary" @click="showModal = false">
        Close
      </wz-button>
    </template>
  </wz-modal>
</template>

<script>
export default {
  data() {
    return {
      showModal: false
    }
  }
}
</script>

Competitor Comparisons

:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin

Pros of vue-element-admin

  • More comprehensive and feature-rich, offering a complete admin panel solution
  • Better documentation and community support
  • Regular updates and maintenance

Cons of vue-element-admin

  • Steeper learning curve due to its complexity
  • Potentially overkill for smaller projects
  • Heavier bundle size

Code Comparison

vue-element-admin:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export const constantRoutes = [
  {
    path: '/redirect',
    component: Layout,
    hidden: true,
    children: [
      {
        path: '/redirect/:path(.*)',
        component: () => import('@/views/redirect/index')
      }
    ]
  }
]

vue-framework-wz:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Hello',
      component: Hello
    }
  ]
})

The code comparison shows that vue-element-admin uses a more complex routing structure with nested routes and dynamic imports, while vue-framework-wz has a simpler routing setup. This reflects the overall difference in complexity and feature set between the two projects.

40,922

Large single page application with 45 pages built on vue2 + vuex. 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用

Pros of vue2-elm

  • More comprehensive real-world application example (food delivery app)
  • Larger community and more stars on GitHub
  • Includes backend API implementation

Cons of vue2-elm

  • Less focus on project structure and best practices
  • Older project with potentially outdated dependencies
  • Limited documentation and comments in English

Code Comparison

vue2-elm:

import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from './router/router'
import store from './store/'
import {routerMode} from './config/env'
import './config/rem'
import FastClick from 'fastclick'

vue-framework-wz:

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-default/index.css'

vue2-elm focuses on a specific application (food delivery), providing a more comprehensive example of a real-world Vue.js project. It includes both frontend and backend implementations, making it valuable for developers looking to understand full-stack Vue applications.

vue-framework-wz, on the other hand, emphasizes project structure and best practices. It provides a cleaner, more organized codebase that may be easier for beginners to understand and adapt to their own projects.

The code comparison shows that vue2-elm includes more configuration and utilities, such as FastClick and rem settings, while vue-framework-wz focuses on core Vue.js setup with ElementUI integration.

Both projects offer valuable learning resources for Vue.js developers, with vue2-elm providing a more complex, real-world example and vue-framework-wz offering a cleaner, more structured approach to Vue.js application development.

Vue3、Element Plus、typescript后台管理系统

Pros of vue-manage-system

  • More comprehensive documentation, including detailed setup instructions and feature explanations
  • Regular updates and maintenance, with the latest commit more recent than vue-framework-wz
  • Includes a wider range of pre-built components and layouts for rapid development

Cons of vue-manage-system

  • Less focus on performance optimization compared to vue-framework-wz
  • Fewer custom directives and utilities for advanced Vue.js development
  • Less emphasis on modular architecture and code organization

Code Comparison

vue-manage-system:

import Vue from 'vue';
import App from './App.vue';
import router from './router';
import ElementUI from 'element-ui';
import VueI18n from 'vue-i18n';
import { messages } from './components/common/i18n';

vue-framework-wz:

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
import * as filters from './filters'
import './directives'

The code comparison shows that vue-manage-system includes additional dependencies like ElementUI and VueI18n for internationalization, while vue-framework-wz focuses on custom filters and directives. This reflects the different priorities of each project, with vue-manage-system emphasizing ready-to-use components and vue-framework-wz prioritizing customization and performance.

Vue 2.0 admin management system template based on iView

Pros of iview-admin

  • More comprehensive and feature-rich admin template
  • Better documentation and community support
  • Regular updates and maintenance

Cons of iview-admin

  • Steeper learning curve due to more complex structure
  • Potentially heavier and slower performance for simpler projects

Code Comparison

vue-framework-wz:

<template>
  <div class="app-wrapper" :class="{hideSidebar:!sidebar.opened}">
    <div class="sidebar-wrapper">
      <sidebar class="sidebar-container"></sidebar>
    </div>
    <div class="main-container">
      <navbar></navbar>
      <app-main></app-main>
    </div>
  </div>
</template>

iview-admin:

<template>
    <Layout style="height: 100%" class="main">
        <Sider hide-trigger collapsible :width="256" :collapsed-width="64" v-model="collapsed" class="left-sider" :style="{overflow: 'hidden'}">
            <side-menu accordion ref="sideMenu" :active-name="$route.name" :collapsed="collapsed" @on-select="turnToPage" :menu-list="menuList">
                <!-- 需要放在菜单上面的内容,如Logo,写在side-menu标签内部,如下 -->
                <div class="logo-con">
                    <img v-show="!collapsed" :src="maxLogo" key="max-logo" />
                    <img v-show="collapsed" :src="minLogo" key="min-logo" />
                </div>
            </side-menu>
        </Sider>
        <Layout>
            <Header class="header-con">
                <header-bar :collapsed="collapsed" @on-coll-change="handleCollapsedChange">
                    <user :message-unread-count="unreadCount" :user-avator="userAvator"/>
                    <language v-if="$config.useI18n" @on-lang-change="setLocal" style="margin-right: 10px;" :lang="local"/>
                    <error-store v-if="$config.plugin['error-store'] && $config.plugin['error-store'].showInHeader" :has-read="hasReadErrorPage" :count="errorCount"></error-store>
                    <fullscreen v-model="isFullscreen" style="margin-right: 10px;"/>
                </header-bar>
            </Header>
            <Content class="main-content-con">
                <Layout class="main-layout-con">
                    <div class="tag-nav-wrapper">
                        <tags-nav :value="$route" @input="handleClick" :list="tagNavList" @on-close="handleCloseTag"/>
                    </div>
                    <Content class="content-wrapper">
                        <keep-alive :include="cacheList">
                            <router-view/>
                        </keep-alive>
                        <ABackTop :height="100" :bottom="80" :right="50" container=".content-wrapper"></ABackTop>
                    </Content>
                </Layout>
            </Content>
        </Layout>
    </Layout>
</template>

The code comparison shows that iview-admin has a more complex and feature-rich structure, while vue-framework-wz has a simpler layout. This reflects the overall difference in complexity and feature set between the two projects.

👨🏻‍💻👩🏻‍💻 Use Ant Design Vue like a Pro! (vue2)

Pros of ant-design-vue-pro

  • More comprehensive UI components and layouts based on Ant Design Vue
  • Better documentation and examples for enterprise-level applications
  • Active development and maintenance with frequent updates

Cons of ant-design-vue-pro

  • Larger bundle size due to the inclusion of Ant Design Vue components
  • Steeper learning curve for developers unfamiliar with Ant Design
  • Less flexibility for customization compared to a lightweight framework

Code Comparison

vue-framework-wz:

<template>
  <div class="app-container">
    <div class="filter-container">
      <!-- Custom filter components -->
    </div>
    <!-- Custom table implementation -->
  </div>
</template>

ant-design-vue-pro:

<template>
  <a-card :bordered="false">
    <a-table
      :columns="columns"
      :dataSource="data"
      :loading="loading"
      :pagination="pagination"
    />
  </a-card>
</template>

The code comparison shows that ant-design-vue-pro utilizes pre-built Ant Design Vue components, such as a-card and a-table, while vue-framework-wz relies more on custom implementations. This demonstrates the trade-off between ease of use and flexibility in the two frameworks.

Vuestic Admin is an open-source, ready-to-use admin template suite designed for rapid development, easy maintenance, and high accessibility. Built on Vuestic UI, Vue 3, Vite, Pinia, and Tailwind CSS. Maintained by Epicmax (@epicmaxco).

Pros of vuestic-admin

  • More comprehensive UI component library with a wider range of pre-built elements
  • Better documentation and examples, making it easier for developers to get started
  • More active development and community support, with frequent updates and bug fixes

Cons of vuestic-admin

  • Larger file size and potentially slower initial load times due to the extensive component library
  • Steeper learning curve for developers new to Vue.js or complex admin dashboards
  • Less flexibility for customization compared to vue-framework-wz's more minimalist approach

Code Comparison

vuestic-admin:

<va-card>
  <va-card-title>{{ title }}</va-card-title>
  <va-card-content>{{ content }}</va-card-content>
</va-card>

vue-framework-wz:

<el-card class="box-card">
  <div slot="header" class="clearfix">
    <span>{{ title }}</span>
  </div>
  <div class="text item">{{ content }}</div>
</el-card>

The code comparison shows that vuestic-admin uses custom components (va-card) with a more straightforward structure, while vue-framework-wz relies on Element UI components (el-card) with additional wrapper elements.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

vue-framework-wz

TeamCity CodeBetter npm npm Chrome Web StoreSourcegraph for Repo Reference CountGitHub watchers

立即体验(国内)

online-website

Englist Document

本项目是后台管理框架,集成了权限管理、登录功能、UI组件、七牛上传等功能,建议直接使用。

注意:便于前端调试,所以数据请求都是用了mockjs模拟。**在需要请求外部api时请移除mock文件**。

有话要说

非常感谢大家喜欢这个项目,但是由于工作太忙实在是没时间维护这个项目,所以耽搁了一大段时间,给大家带来的麻烦我非常抱歉。
接下来我会抽时间维护这个项目,有什么问题可以随时找我,或者提issue,我看到就会直接回。
并且我在开发一系列新的开源项目,目的是帮助大家提升生产力,解放双手。
我建了一个qq群 1051755653 ,方便大家交流,提升前端技能,分享招聘信息等等。

Features 特性

  • 👍wz脚手架👍(脚手架助你安装/卸载组件更方便)
  • **工业化UI组件**(上手即用,无需自己造轮子)
  • 自适应布局(完美适配大中小屏)
  • 登录/注销
  • 权限验证
  • 👉多TAB导航(没有多TAB怎么能称为后台管理界面呢?)
  • Markdown 编辑器
  • 动态侧边栏(支持多级路由)
  • 面包屑导航
  • JSON展示组件
  • echartjs图表
  • 404错误页面
  • 表格数据直接导出cvs
  • 多环境发布
  • mock数据
  • 炫酷hover特效

Preview 效果图

自适应布局

自适应布局 手机端

多TAB效果

第二个Tab

炫酷登录界面

炫酷登录界面

炫酷图表

炫酷图表

编辑器

丰富功能表格

更多demo

Run 开发

    # 克隆项目
    git clone https://github.com/herozhou/vue-framework-wz.git

    # 安装依赖
    npm install
    //or 
    npm install --registry=https://registry.npm.taobao.org


    # 本地开发 开启服务
    npm run dev


浏览器访问 http://localhost:9001

wz脚手架 (随意开发,不建议使用)

为了便于大家使用和精简体积 故开发了基于node的命令行构建工具,可安装/删除插件,比如你所开发的项目无需Tinymce插件就 wz remove -p Tinymce 删除Tinymce 。需要请求外部API就 执行 wz remove -p Mockjs,并根据提示修改相应的api地址

请在项目初期对结构改动不大时使用cli

    # 如需使用脚手架在npm install 之后执行
    npm link
   
    # 随后即可使用wz脚手架
    wz remove -p Tinymce  //卸载Tinymce插件
    wz remove -p Mockjs  //卸载Mock.js插件
    wz  -h 查看命令帮助

当前可卸载的插件有 Tinymce|Markdown|Mockjs|Jsontree 不久会支持卸载更多插件,便于开发精简体积

Build 发布

    # 发布测试环境 带webpack ananalyzer
    npm run build:sit-preview

    # 构建生成环境
    npm run build:prod

FileTree 目录结构

├── bin                       // node 命令行构建工具 
├── build                      // 构建相关  
├── config                     // 配置相关
├── src                        // 源代码
│   ├── api                    // 所有请求
│   ├── components             // 全局UI组件
│   ├── mock                   // mock数据
│   ├── router                 // 路由
│   ├── store                  // 全局store管理
│   ├── utils                  // 全局公用方法
│   ├── containers              // 自适应布局组合
│   ├── view                   // view界面
│   │    ├── charts             //图表组件
│   │    ├── components         //首页组件
│   │    ├── login              //登录界面
│   │    ├── errorPages           //错误界面
│   │    └── permission        //权限测试界面
│   ├── App.vue                // 入口页面
│   └── main.js                // 入口 加载组件 初始化等
├── static                     // 静态资源
│   ├── bower_components        //七牛SDK
│   ├── css                     //css
│   ├── js                      //js
├── .babelrc                   // babel-loader 配置
├── eslintrc.js                // eslint 配置项
├── .gitignore                 // git 忽略项
├── favicon.ico                // favicon图标
├── index.html                 // html模板
└── package.json               // package.json

License

MIT