Convert Figma logo to code with AI

macrozheng logomall-admin-web

mall-admin-web是一个电商后台管理系统的前端项目,基于Vue 3+Element Plus实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。

12,526
7,452
12,526
3

Top Related Projects

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

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

Vue 2.0 admin management system template based on iView

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

A admin template based on vue + element-ui. 基于vue + element-ui的后台管理系统基于 vue + element-ui 的后台管理系统

12,649

An elegant dashboard

Quick Overview

Mall-admin-web is a front-end project for an e-commerce management system. It's built using Vue.js and Element UI, providing a user-friendly interface for managing products, orders, and other aspects of an online store. The project is designed to work in conjunction with the mall backend system.

Pros

  • Comprehensive e-commerce management features
  • Clean and modern UI design using Element UI
  • Well-structured Vue.js codebase with reusable components
  • Detailed documentation and setup instructions

Cons

  • Limited multilingual support
  • Dependency on specific backend implementation
  • Lack of extensive unit tests
  • Some components may require optimization for better performance

Code Examples

  1. Example of a Vue component for product list:
<template>
  <div class="product-list">
    <el-table :data="products" border>
      <el-table-column prop="id" label="ID" width="80"></el-table-column>
      <el-table-column prop="name" label="Name"></el-table-column>
      <el-table-column prop="price" label="Price" width="100"></el-table-column>
      <el-table-column label="Actions" width="150">
        <template slot-scope="scope">
          <el-button @click="editProduct(scope.row)" type="text" size="small">Edit</el-button>
          <el-button @click="deleteProduct(scope.row)" type="text" size="small">Delete</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: []
    }
  },
  methods: {
    editProduct(product) {
      // Implementation for editing a product
    },
    deleteProduct(product) {
      // Implementation for deleting a product
    }
  }
}
</script>
  1. Example of API call using Axios:
import axios from 'axios'

export function getProductList(params) {
  return axios({
    url: '/product/list',
    method: 'get',
    params: params
  })
}
  1. Example of Vuex store module:
const product = {
  state: {
    list: [],
    total: 0
  },
  mutations: {
    SET_PRODUCT_LIST: (state, list) => {
      state.list = list
    },
    SET_TOTAL: (state, total) => {
      state.total = total
    }
  },
  actions: {
    getProductList({ commit }, params) {
      return new Promise((resolve, reject) => {
        getProductList(params).then(response => {
          commit('SET_PRODUCT_LIST', response.data.list)
          commit('SET_TOTAL', response.data.total)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    }
  }
}

export default product

Getting Started

  1. Clone the repository:

    git clone https://github.com/macrozheng/mall-admin-web.git
    
  2. Install dependencies:

    cd mall-admin-web
    npm install
    
  3. Configure the API base URL in config/dev.env.js:

    'use strict'
    const merge = require('webpack-merge')
    const prodEnv = require('./prod.env')
    
    module.exports = merge(prodEnv, {
      NODE_ENV: '"development"',
      BASE_API: '"http://localhost:8080"'
    })
    
  4. Run the development server:

    npm run dev
    
  5. Access the application at http://localhost:8090

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 wider range of components and functionalities
  • Better documentation and community support, making it easier for developers to get started and find solutions
  • Regular updates and maintenance, ensuring compatibility with the latest Vue.js and Element UI versions

Cons of vue-element-admin

  • Steeper learning curve due to its complexity and extensive feature set
  • Potentially overkill for smaller projects or those with specific requirements
  • May require more customization to fit specific business needs

Code Comparison

mall-admin-web:

import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/login/index'
import Layout from '@/views/layout/Layout'

Vue.use(Router)

vue-element-admin:

import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/layout'

Vue.use(Router)

export const constantRoutes = [
  // ... route definitions
]

Both projects use Vue Router, but vue-element-admin has a more structured approach to route management with separate constant and dynamic routes.

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

Pros of vue-manage-system

  • Simpler and more lightweight, making it easier to understand and customize
  • Includes a variety of pre-built components and charts for quick development
  • Regularly updated with new features and improvements

Cons of vue-manage-system

  • Less comprehensive than mall-admin-web for e-commerce specific functionality
  • May require more customization for complex business logic
  • Fewer integrations with backend services out of the box

Code Comparison

vue-manage-system:

<template>
    <div class="header">
        <!-- Header content -->
    </div>
</template>

<script>
export default {
    name: 'Header',
    // Component logic
}
</script>

mall-admin-web:

<template>
  <el-card class="form-container" shadow="never">
    <el-form :model="brand" :rules="rules" ref="brandForm" label-width="150px">
      <!-- Form fields -->
    </el-form>
  </el-card>
</template>

<script>
import {createBrand, getBrand, updateBrand} from '@/api/brand'
// Component logic
</script>

The code comparison shows that vue-manage-system tends to have simpler component structures, while mall-admin-web includes more complex forms and API integrations specific to e-commerce functionality.

Vue 2.0 admin management system template based on iView

Pros of iview-admin

  • More comprehensive UI component library with iView
  • Better internationalization support
  • More flexible and customizable layout options

Cons of iview-admin

  • Less focused on e-commerce specific features
  • Steeper learning curve for developers new to iView

Code Comparison

mall-admin-web:

<template>
  <div class="app-container">
    <el-card class="filter-container" shadow="never">
      <!-- Filter components -->
    </el-card>
    <div class="table-container">
      <!-- Data table -->
    </div>
  </div>
</template>

iview-admin:

<template>
  <div>
    <Card>
      <Form ref="filterForm" :model="filterForm" inline>
        <!-- Filter components -->
      </Form>
    </Card>
    <Table :columns="columns" :data="data">
      <!-- Table content -->
    </Table>
  </div>
</template>

Key Differences

  • mall-admin-web uses Element UI components, while iview-admin uses iView components
  • iview-admin's code structure is more modular and component-based
  • mall-admin-web is tailored for e-commerce admin panels, while iview-admin is a more general-purpose admin template

Conclusion

Both projects offer robust admin panel solutions, but cater to different needs. mall-admin-web is more suitable for e-commerce projects, while iview-admin provides a more flexible foundation for various types of admin interfaces.

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

Pros of ant-design-vue-pro

  • More comprehensive UI component library with Ant Design Vue
  • Better internationalization support out-of-the-box
  • More robust and scalable project structure for large applications

Cons of ant-design-vue-pro

  • Steeper learning curve due to more complex architecture
  • Potentially overkill for smaller projects
  • Less focused on e-commerce specific features compared to mall-admin-web

Code Comparison

ant-design-vue-pro:

<template>
  <a-config-provider :locale="locale">
    <div id="app">
      <router-view/>
    </div>
  </a-config-provider>
</template>

mall-admin-web:

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

The ant-design-vue-pro example showcases the use of Ant Design's ConfigProvider for internationalization, while mall-admin-web has a simpler structure. This reflects the difference in complexity and feature set between the two projects.

ant-design-vue-pro is better suited for large-scale, multi-language applications with complex UI requirements, while mall-admin-web is more focused on providing a straightforward e-commerce admin interface. The choice between them depends on the specific project needs and the development team's expertise.

A admin template based on vue + element-ui. 基于vue + element-ui的后台管理系统基于 vue + element-ui 的后台管理系统

Pros of vue2-manage

  • Simpler and more lightweight project structure, making it easier for beginners to understand and navigate
  • Includes a variety of common components and features for a typical management system
  • Uses Vue 2, which may be more familiar to developers working on legacy projects

Cons of vue2-manage

  • Less comprehensive and feature-rich compared to mall-admin-web
  • Older technology stack, potentially lacking some modern Vue ecosystem features
  • May require more manual configuration and setup for advanced functionalities

Code Comparison

vue2-manage:

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store/'

Vue.config.productionTip = false

new Vue({
	el: '#app',
	router,
	store,
	template: '<App/>',
	components: { App }
})

mall-admin-web:

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-chalk/index.css'

Vue.use(ElementUI)
Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})

The code comparison shows that mall-admin-web uses the more modern render function syntax and includes ElementUI, indicating a more feature-rich and up-to-date approach. vue2-manage uses the older template syntax, which aligns with its simpler structure but may lack some modern optimizations.

12,649

An elegant dashboard

Pros of d2-admin

  • More comprehensive and feature-rich admin template
  • Better documentation and examples
  • Active community and regular updates

Cons of d2-admin

  • Steeper learning curve due to more complex structure
  • May be overkill for smaller projects
  • Potentially slower performance due to additional features

Code Comparison

mall-admin-web:

<template>
  <div class="app-container">
    <el-card class="filter-container" shadow="never">
      <div>
        <i class="el-icon-search"></i>
        <span>筛选搜索</span>

d2-admin:

<template>
  <d2-container>
    <template slot="header">Page 1 header</template>
    <d2-crud
      :columns="columns"
      :data="data"
      :options="options"/>

The code comparison shows that d2-admin uses custom components like d2-container and d2-crud, which provide more built-in functionality. mall-admin-web uses more standard Element UI components, which may be easier to understand for beginners but require more manual setup.

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

mall-admin-web

公众号 交流 后台项目 SpringCloud版本 码云

友情提示

  1. **快速体验项目**:在线访问地址 。
  2. 全套学习教程:《mall学习教程》 。
  3. 分支说明:master分支基于Vue3+Element-Plus,dev-v2分支基于Vue2+Element。

前言

该项目为前后端分离项目的前端部分,后端项目mall地址:传送门 。

项目介绍

mall-admin-web是一个电商后台管理系统的前端项目,基于Vue3+Element-Plus实现。主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。

项目演示

项目在线演示地址:https://www.macrozheng.com/admin/

后台管理系统功能演示

技术选型

技术说明官网
Vue前端框架https://cn.vuejs.org/
Element Plus前端UI框架https://element-plus.org/
Vue Router路由框架https://router.vuejs.org/
Pinia全局状态管理框架https://pinia.vuejs.org/
Pinia Plugin PersistedstatePinia持久化插件https://prazdevs.github.io/pinia-plugin-persistedstate/
Axios前端HTTP框架https://github.com/axios/axios
vue-charts基于Echarts的图表框架https://github.com/ecomfe/vue-echarts
TinyMCE Vue富文本编辑器https://github.com/tinymce/tinymce-vue
Js-cookiecookie管理工具https://github.com/js-cookie/js-cookie
vue-element-admin项目脚手架https://github.com/PanJiaChen/vue-element-admin

项目布局

src -- 源码目录
├── apis -- axios网络请求接口定义
├── assets -- 静态图片资源文件
├── components -- 通用组件封装
├── icons -- svg矢量图片文件
├── router -- vue-router路由配置
├── store -- pinia的状态管理
├── styles -- 全局css样式
├── types -- 类型定义
├── utils -- 工具类
└── views -- 前端页面
    ├── home -- 首页
    ├── layout -- 通用页面框架
    ├── normal -- 常用页面(login和404)
    ├── oms -- 订单模块页面
    ├── pms -- 商品模块页面
    ├── sms -- 商品模块页面
    └── ums -- 用户模块页面

搭建步骤

  • 下载node并安装,支持v20以上版本(建议下载v20 LTS版本):https://nodejs.org/zh-cn/download/archive/v20.20.0
  • 该项目为前后端分离项目,访问本地访问接口需搭建后台环境,搭建请参考后端项目传送门;
  • 访问在线接口无需搭建后台环境,只需将.env.development文件中的VITE_BASE_SERVER_URL改为https://admin-api.macrozheng.com即可;
  • 如果你对接的是mall-swarm 微服务后台的话,所有接口都需要通过网关访问,需要将.env.development文件中的VITE_BASE_SERVER_URL改为http://localhost:8201/mall-admin ;
  • 克隆源代码到本地,使用VSCode打开,并完成编译;
  • 在命令行中运行命令:npm install,下载相关依赖;
  • 在命令行中运行命令:npm run dev,运行项目;
  • 访问地址:http://localhost:5173即可打开后台管理系统页面;
  • 具体部署过程请参考:mall前端项目的安装与部署
  • 前端自动化部署请参考:使用Jenkins一键打包部署前端应用,就是这么6!

公众号

加微信群交流,公众号后台回复「**加群**」即可。

公众号图片

许可证

Apache License 2.0

Copyright (c) 2018-2026 macrozheng