@axewo/cnsframework

0.0.17 • Public • Published

@axewo/cnsframework

介绍

一个免费开源的中后台管理系统基础解决方案,基于 Vue3、TypeScript、Element Plus、Pinia 和 Vite 等主流技术

该框架整合了常用的vue后台系统平台,只需要安装该框架,页面就会根据views 目录结构生成相应的菜单功能。目前该框架集成了三种布局模式。left| top| top-left

或者 clone 例子

git clone https://github.com/charsle/vue3-basic-cnsframework.git

使用说明

1、使用该框架插件,要先安装依赖文件

pnpm install element-plus sass nprogress  @element-plus/icons-vue

安装教程

  1. 第一步 选择一个你喜欢的包管理器
# NPM
$ npm install @axewo/cnsframework --save

# Yarn
$ yarn add @axewo/cnsframework

# pnpm
$ pnpm install @axewo/cnsframework

  1. 框架整合

在main.js 或者main.ts 引入文件

import App from '@/App.vue'
import requestConfig from '@/config/requestConfig';
import systemConfig from '@/config/systemConfig';
import { createCNSFramewoke } from '@axewo/cnsframework'
import {initPermission} from "@/router/permission"

import '@axewo/cnsframework/style.css'
import "@/styles/index.scss"


const app = await createCNSFramewoke(App,{
    systemConfig, //系统配置
    requestConfig, //axios请求配置
    routers: import.meta.glob('./views/**/index.vue'),//文件目录,一个目录下只能有一个index.vue
    configs: import.meta.glob('./views/**/config.ts')// 目录配置文件,用于路由的展示和标题展示,name是必填
})
//路由权限加载
initPermission()
//注册
app.mount('#app')
  1. systemConfig配置
/** 项目配置类型 */
export default {
    /** 布局模式 */
  layoutMode: "left",
    /** 是否显示标签栏 */
  showSettings: true,
   /** 是否显示标签栏 */
  showTagsView: true,
    /** 是否固定 Header */
  fixedHeader: true,
    /** 是否显示页脚 Footer */
  showFooter: true,
    /** 是否显示 Logo */
  showLogo: false,
  /**菜单栏logo 路径,一般把logo放在public 下面的文件夹里面 */
  sideLogo:'/static/images/logo.png',
    /** 是否显示消息通知 */
  showNotify: true,
    /** 是否显示切换主题按钮 */
  showThemeSwitch: true,
    /** 是否显示全屏按钮 */
  showScreenfull: true,
    /** 是否显示搜索按钮 */
  showSearchMenu: true,
    /** 是否缓存标签栏 */
  cacheTagsView: false,
    /** 开启系统水印 */
  showWatermark: true,
    /** 是否显示灰色模式 */
  showGreyMode: false,
    /** 是否显示色弱模式 */
  showColorWeakness: false,
    // default language
    lang: 'zh-cn',
    // 标题
    title: '',
    // 系统名称
    systemName: '',
    // 版权信息
    copyrightZh: '版权所有 © xxxx科技有限公司',

  copyrightEn: 'Copyright © xxxx Technology Co., Ltd..All Rights Reserved',
}
  1. requestConfig 配置
/**
 * @description 配置axios请求基础信息
 */
export default {
  // axios 基础url地址
  baseURL: import.meta.env.VITE_BASE_API,
  // 根据后端定义配置
  responseType: 'json',
  // 最长请求时间
  timeout: 60000,
  // 请求拦截自定义函数,接收config参数
  handleRequest:undefined,
  // 返回成功拦截自定义函数,接收response参数
  handleResponse: undefined,
  // 返回成功拦截自定义函数,接收response error参数
  handleResponseError:undefined
}
  1. router 全局拦截配置
import { setRouteChange,getToken ,useTitle,fixBlankPage,useCNSRouteHook} from "@axewo/cnsframework"

import NProgress from "nprogress"
import "nprogress/nprogress.css"
export const initPermission=()=>{
  const {router}=useCNSRouteHook()

  const { setTitle } = useTitle()
  NProgress.configure({ showSpinner: false })
  
  router.beforeEach(async (to, _from, next) => {
    fixBlankPage()
    //这里根据业务场景进行配置和拦截
    NProgress.start()
    next()
    NProgress.done()
  })
  
  router.afterEach((to) => {
    setRouteChange(to)
    setTitle(to.meta.title)
    NProgress.done()
  })
  }

Package Sidebar

Install

npm i @axewo/cnsframework

Weekly Downloads

5

Version

0.0.17

License

MIT

Unpacked Size

2 MB

Total Files

16

Last publish

Collaborators

  • nathan_cai