1.3.4 • Published 5 years ago

mvp-cli v1.3.4

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

image

Merculet 前端基础工程

Node 版本要求10 以上

功能介绍

  • 一行命令初始化您的 Vue 项目 已经完成基础配置
  • 命令行加配置文件简便的初始化后台系统页面

使用方式

安装

yarn 安装方法
sudo yarn global add mvp-cli

npm 安装方法
sudo npm i mvp-cli -g

升级

sudo yarn global upgrade mvp-cli

sudo npm update mvp-cli -g

初始化项目

mvp --init=你项目的名称  --type=mobile  默认 mobile 后续兼容pc站

封装说明

axios基础封装

  • request拦截器 默认去storage取token 放入header里面
  • response拦截器 对全部错误拦截 拦截特定code 提示错误
  • 封装get post请求 统一接收2个参数一个url 一个params 不用关心参数不一致

storage 基础封装

  • 重写 set get remove clear 方法让默认支持json方式参数
  • 默认写入 sessionStorage 需要localStorage 传入第三参数即可

vuex 封装

  • vuex默认按照模块拆分
  • vuex添加 syncData 插件 每次同步把vux 数据写入 sessionStorage

手机版

postcss

  • 添加 autoprefixer 自动浏览器添加兼容前缀
  • 添加 px-to-vw 自动将px单位转换为自适应的vw单位 配置文件详见 .postcss.js
  • 手机版默认安装vant 组件库 已经打包为按需加载

pc版本

= 文档编译中

部署

安装依赖

yarn  || npm i

测试环境编译

yarn test-cn || npm run test-cn

生成环境编译

yarn prod-cn || npm run prod-cn

生成文件目录结构

├── README.md
├── babel.config.js babel配置文件 编译js
├── copy-map.js 后期接口前端监控sdk相关 先忽悠
├── eslintrc.js eslint配置文件
├── env.production 生产配置
├── env.local 本地开发变量
├── env.development 测试环境变量
├── browserslistrc 浏览器配置文件
├── package.json
├── public
│   ├── favicon.ico
│   └── index.html
├── src
│   ├── App.vue
│   ├── api
│   │   └── index.js 统一封装的api
│   ├── assets
│   │   └── less
│           └── index.less 重置浏览器默认样式
│   ├── components
│       └── main.vue
│   ├── config
│       └── index.js 配置文件主入口
│   ├── main.js vue主入口
│   ├── routers
│       └── index.js 路由主入口
│   ├── serving
│       ├── http.serving.js 统一封装的http请求
│       └── storage.serving.js 统一封装的缓存
│   ├── store
│       └── index.js vuex主入口
│   └── views
│       ├── home.vue
│       └── index.vue
├── vue.config.js vuecli3 相关配置文件
└── yarn.lock yarn版本锁

生成后台页面

生成的文件依赖一些基础的组件 目前还不支持在我司以外的项目中使用,使用的全局组件如,分页 侧滑 图片上传。

mvp --create

// 也可以指定配置文件名称 mvp --create=mvp-config.js
// 默认不指定会取目录下面的 mvp-config.js

配置文件介绍

在你项目下新增 mvp-config.js 为默认配置文件

参数介绍
title当前模块的标题
moduleName当前模块的名称默认会按照这个名称生成目录
apiName前端定义的请求api的名称
api当前模块请求的后端接口地址
tablePagetabs页面的配置文件
addPage新增页面的配置文件

form 表单支持的 type 类型介绍 正在努力新增添加中...

类型介绍
text普通的文本输入框
textarea长文本输入框
upload图片上传组件
select下拉选择框,注意一般下拉框有下拉选项 下拉选项记得去 extendData 配置扩展字段

配置文件详解

以下以机器人页面也配置介绍

module.exports = {
  // 标题
  title: "机器人",
  // 模块名称
  moduleName: "chat-ro-bot",
  apiName: "chatRoBot",
  // 请求接口
  api: "/v1/merculetManagement/community/chatRobotCommands",
  // list 页面配置
  tablePage: {
    list: [
      {
        prop: "key",
        label: "指令"
      },

      {
        prop: "command_value",
        label: "指令值"
      },
      {
        prop: "desc",
        label: "指令描述",
        type: "template"
      },
      {
        prop: "update_date_time",
        label: "更新时间",
        type: "template",
        // 如果是时间 这里可以配置前端过滤器来格式化时间
        filter: "dateTime"
      },

      {
      // 如果配置类型为 edit 会显示编辑和删除按钮
        type: "edit"
      }
    ]
  },
  addPage: {
    // 扩展字段 会直接填入data
    extendData:{
      options:[
        {
          label:'文本',
          value:0
        },
        {
          label:'卡片',
          value:1
        },
      ],
    },
    forms: [
      {
        value: "key",
        defaultValue: `''`,
        label: "指令",
        placeholder: "请输入指令",
        type: "text",
        rule: {
          required: true,
          validator: "checkNameFun",
          name: "指令",
          trigger:'blur',
        }
      },
      {
        value: "command_type",
        defaultValue: 0,
        label: "指令类型",
        placeholder: "请选择类型",
        type: "select",
        optionName:'options',
        rule: {
          required: true,
          validator: "checkNameFun",
          trigger:'change',
          name: "指令类型",
        }
      },
      {
        value: "command_value",
        defaultValue: `''`,
        label: "指令值",
        placeholder: "请输入指令值",
        type: "textarea",
        rule: {
          required: true,
          validator: "checkNameFun",
          name: "指令值",
          trigger:'blur',
        }
      },
      {
        value: "title",
        defaultValue: `''`,
        label: "分享标题",
        placeholder: "请输入分享标题",
        type: "text",
        rule: {
          required: true,
          validator: "checkNameFun",
          name: "分享标题",
          trigger:'blur',
        }
      },
      {
        value: "intro",
        defaultValue: `''`,
        label: "分享描述",
        placeholder: "请输入分享标题",
        type: "text",
        rule: {
          required: true,
          validator: "checkNameFun",
          name: "分享描述",
          trigger:'blur',
        }
      },
      {
        value: "content_url",
        defaultValue: `''`,
        label: "分享图片",
        placeholder: "图片大小建议为30k",
        type: "upload",
        rule: {
          required: true,
          validator: "checkNameFun",
          name: "分享图片",
          trigger:'blur',
        }
      },
    ]
  }
};
1.3.4

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.9

5 years ago

1.2.8

5 years ago

1.2.7

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago