ibms

shaun-sheep 7565fc33ed adm:feat> 修改文字 3 년 전
build d02c0a7035 '暂存' 5 년 전
config 363eaa59a5 adm:fix> 合并v3.8版本 3 년 전
src 7565fc33ed adm:feat> 修改文字 3 년 전
static d4f0d1a5b6 添加favicon图标 5 년 전
.babelrc 52ced77fac init 5 년 전
.editorconfig 70d0c46883 修改 说明 缩进为2 5 년 전
.gitignore 22614abba1 优化:gitignore 4 년 전
.postcssrc.js 52ced77fac init 5 년 전
README.md 61aa49d126 合并dev-master 4 년 전
index.html d2f833b92c 添加清除缓存mate 4 년 전
package.json 34d0d9b84f 解决image not exist问题 3 년 전
publish.js 6f5766e1e8 修改测试环境单点登录地址 4 년 전
tsconfig.json 750e460280 添加ts相关配置 5 년 전

README.md

sagacloud-admin

A Vue.js project

Build Setup

npm install
npm install vuex axios element-ui echarts font-awesome
npm install less less-loader node-sass sass-loader --save-dev

# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report

项目结构说明

目录结构

│  .editorconfig                        # 格式化配置,修改缩进为2
│  index.html                           # 修改页面title
│  package.json                         # 包
│  README.md                            # 说明文档
│
├─build                                 # 不变
│
├─config
│      dev.env.js                       # 开发环境变量
│      index.js                         # 设置代理
│      prod.env.js                      # 生产环境变量
│
├─src
│  ├─api                                # 业务逻辑api, http的请求都放在这里
│  │  |─framework.js                    # 框架预留接口,实现登录,权限校验等功能
│  │  └─httputils.js                    # http 工具类
│  ├─assets                             # 静态资源, 替换logo图片
│  ├─components                         # 业务相关组件
│  ├─data                               # 业务相关静态数据
│  │      menus.js                      # 菜单数据
│  ├─demo                               # Demo主目录
│  │  │  demo-menus.js                  # Demo按钮
│  │  │  demo-routes.js                 # Demo路由
│  │  └─views                           # Demo页面
│  ├─framework                          # 框架主目录
│  │  ├─components                      # 业务无关组件
│  │  │
│  │  ├─demo                            # Demo主目录
│  │  │  │  demo-menus.js               # Demo按钮
│  │  │  │  demo-routes.js              # Demo路由
│  │  │  └─views                        # Demo页面
│  │  │
│  │  ├─layout                          # 框架主目录
│  │  │      layout-store.js            # 框架状态定义
│  │  │      Login.vue                  # 登录页
│  │  │      Main.vue                   # 框架主页
│  │  │      PageHeader.vue             # 顶部栏
│  │  │      PageSidebar.vue            # 左侧菜单栏
│  │  │
│  │  ├─plugins                         # 插件,业务无关
│  │  │      components.js
│  │  ├─style                           # 样式
│  │  │
│  │  ├─template                        # 页面模板
│  │  │      TablePageTemplate.vue
│  │  │
│  │  └─utils                           # 工具类,业务无关
│  │
│  ├─router                             # 主路由
│  │      index.js
│  │      system.js
│  │
│  ├─store                              # vuex
│  │      index.js
│  │
│  └─views                              # 业务页面主路径
|
└─static
        .gitkeep

/api/framework.js

必须实现以下方法

export default {

    // 路由拦截
    routerBeforeEach: async function(to, from, next){},

    // 获取左侧菜单数据
    getMenus: function(permissions){},

    // 跳转到登录页面
    toLoginPage: function(){},

    // 登录接口
    login: function(username, password){}

    // 加载当前登录用户信息
    loadUserInfo: function(){},

    // 退出登录
    toLogout: function(){}
}

工具类说明

/src/utils/basicutils.js

    formatDateByPattern(date, pattern) // 日期格式化
    indexInArray(arr, key, val)        // 找出数组arr中第一个属性key的值等于val的元素的下标
    itemInArray(arr, key, val)         // 找出数组arr中第一个属性key的值等于val的元素
    deleteInArray(arr, key, val)       // 从数组中将属性key的值等于val的所有元素删除

/src/api/httputils.js // 一般在服务端接口 API 中使用,不建议在别的地方使用,有授权标记

    getCookie(name)                    // 获取cookie值
    getJson(url, params)               // 发送GET请求
    postJson(url, data)                // 发送POST请求

/src/utils/storage.js

    set(key, value, fn)                // 在浏览器缓存中设置数据, 如果value是对象会转化成json
    get(key, fn)                       // 在浏览器缓存中取出数据, 取出数据后会尝试js对象返回
    remove(key)                        // 在浏览器缓存中删除数据

设置面包屑方法

在路由router中配置meta.breadcrumbs,在进入路由页面时会自动解析为面包屑
this.$store.dispatch('setBreadcrumb', [{ label: 'Demo' }, { label: 'Form'  ])
this.$store.dispatch('setBreadcrumb', [{ label: 'Demo', path: '' }, { label: 'Form' , path: ''}])

上传管理器调用方法(上传较大文件时使用)

在组件中引入Bus中央时间总线
    Bus.$emit('openUploader', query, file)    //添加文件到上传管理器中, query为参数, file为H5原生的文件对象
    Bus.$on('fileAdded', () => {})            //文件选择后的回调
    Bus.$on('fileSuccess', () => {})          //文件上传成功后的回调