You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

314 lines
15 KiB

6 months ago
# CRMEB Admin
## 开发规范
统一使用 ES6 语法
方法注释
/\*
- th => 表头
- data => 数据
- fileName => 文件名
- fileType => 文件类型
- sheetName => sheet 页名
\*/
export default function toExcel ({ th, data, fileName, fileType, sheetName })
行注释 //
### 命名
页面目录 文件夹命名格式骆驼式命名法,例如:用户列表 userList
例如:商品模块
store 商品
├─ store 商品管理
├─index.vue 首页
├─ creatStore 新建商品
├─ index.vue
├─ sort 商品分类
├─ index.vue
├─storeAttr 商品规格
├─ index.vue
├─storeComment 商品评论
├─ index.vue
页面命名、组建、文件夹 命名格式小驼峰命名法,例如:用户列表 userList
类名函数命名 大驼峰式 例如:addUser
变量命名 小驼峰式 例如:user 或者 userInfo
常量 采用全大些下划线命名 例如:VUE_APP_API_URl
### 文件管理规范
views 页面模块必须件文件夹区分
api 接口一个模块一个文件
组建 一个组建一个文件夹
plugins 插件一个插件一个文件夹
vuex 路由状态管理,一个模块在 modules 中建一个文件夹
router 一个模块一个模块在 modules 中建一个文件夹
style 样式尽量采用 iView 自带组建,common.less 系统通用样式不要轻易动
自定义通用样式 style.less,每次添加必须加注释,页面独立样式在在页面内写,后缀 less 格式
组建样式 styles 中添加文件夹 composents 对应 components 目录新建样式文件
utils 自定义工具 js 独立命名,一般不用新建文件夹
## 模块命名
```
├─ login 登录
├─ dashboard 首页
├─ store 商品管理
├─ order 系统订单管理
├─ distribution 分销
├─ user 用户管理
├─ content 内容管理
├─ appSetting 各个应用模块功能管理公众号、小程序、支付宝、百度小程序、今日头条小程序
├─ marketing 营销管理 优惠劵 积分 秒杀
├─ sms 设置 短信设置
├─ systemSetting 设置 管理员权限 系统设置 物流设置
├─ maintain 维护 配置分类 组合数据 表单配置
├─ error-page 错误页
```
## 目录结构
主要目录结构及说明:
```
├── public # 静态资源
│ ├── favicon.ico # favicon图标
│ └── index.html # html 模板
├── src # 源代码
│ ├── api # 所有请求
│ │ └──user.js # 有关登录/用户的接口
│ │ └──article.js # 有关内容的接口
│ │ └──categoryApi.js # 有关配置的接口
│ │ └──configTabApi.js # 有关配置分类的接口
│ │ └──dashboard.js # 有关控制台的接口
│ │ └──distribution.js # 有关分销的接口
│ │ └──logistics.js # 有关城市数据、物流配置的接口
│ │ └──marketing.js # 有关优惠券、签到配置的接口
│ │ └──order.js # 有关订单的接口
│ │ └──role.js # 有关权限的接口
│ │ └──roleApi.js # 有关菜单的接口
│ │ └──schedule.js # 有关定时任务的接口
│ │ └──sms.js # 有关短信的接口
│ │ └──product.js # 有关商品的接口
│ │ └──system.js # 有关协议的接口
│ │ └──systemadmin.js # 有关管理员的接口
│ │ └──systemConfig.js # 有关系统配置的接口
│ │ └──systemFormConfig.js # 有关表单配置的接口
│ │ └──systemGroup.js # 有关组合数据的接口
│ │ └──systemSetting.js # 有关上传文件的接口
│ │ └──user.js # 有关用户的接口
│ │ └──videoChannel.js # 有关视频号的接口
│ │ └──wxApi.js # 有关微信的接口
│ │ └──devise.js # 有关diy的接口
│ ├── assets # 图片、svg 等静态资源
│ ├── components # 公共组件
│ │ └──articleList # 文章列表
│ │ └──base # 公共组件
│ │ └──Breadcrumb # 头部标题标签
│ │ └──cards # 统计小方块
│ │ └──echartsNew # 统计图
│ │ └──Category # 商品分类、文字分类
│ │ └──FormGenerator # 表单配置
│ │ └──goodsList # 商品列表
│ │ └──Hamburger # 导航收缩组件
│ │ └──HeaderSearch # 导航搜索组件
│ │ └──linkaddress # 页面设计移动端页面路由
│ │ └──merchantName # 商户名称搜索组件
│ │ └──OrderDetail # 订单详情
│ │ └──RightPanel # 右侧设置按钮,设置导航相关
│ │ └──Screenfull # 全屏
│ │ └──SvgIcon # svg图标
│ │ └──Tinymce # 富文本编辑器
│ │ └──TopNav # 顶部一级导航
│ │ └──ThemePicker # 右侧设置按钮,设置组题颜色
│ │ └──Upload # 上传文件组件
│ │ └──UploadExcel # 下载Excel
│ │ └──userList # 用户列表
│ ├── layouts # 导航布局
│ │ ├──index # 主页面
│ │ ├──components # 导航组件
│ │ └──copyright # 脚部版权信息
│ │ └──Settings # 右边小按钮,设置导航等
│ │ └──Sidebar # 侧边导航
│ │ └──TagsView # tab标签页导航
│ │ └──Navbar # 头部导航
│ │ └──AppMain # 导航路由
│ │ └──index.js # 组件引用
│ │ └──mixins # 自适应大小
│ ├── libs # 公共js方法
│ │ └──settingMer # 配置请求地址
│ │ └──dialog # 移动端吐丝弹窗
│ │ └──index.js # 配置全局使用插件
│ │ └──modal-icon.js # 图标库插件
│ │ └──modal-parserFrom.js # 自定义表单弹窗插件
│ │ └──modal-sure.js # 确定弹窗插件
│ │ └──timeOptions.js # 当前时间日期选择器特有的选项
│ │ └──wechat.js # 微信相关
│ │ └──yearOptions.js # 当前年份选择器特有的选项
│ ├── views # 所有页面
│ │ └──login # 登录
│ │ └──index # 登录
│ │ └──dashboard # 首页
│ │ └──product # 商品
│ │ └──index # 添加列表
│ │ └──info # 商品详情
│ │ └──brand # 品牌列表
│ │ └──category # 商品分类
│ │ └──guarantee # 保障服务
│ │ └──comment # 商品评论
│ │ └──order # 订单管理
│ │ └──index # 订单列表
│ │ └──refund # 退款单
│ │ └──marketing # 营销
│ │ └──integral # 积分
│ │ └──sign # 签到
│ │ └──seckill # 秒杀
│ │ └──platformCoupon # 平台优惠券
│ │ └──atmosphere # 氛围图
│ │ └──border # 活动边框
│ │ └──broadcast # 小程序直播
│ │ └──systemSetting # 设置
│ │ └──administratorAuthority # 管理权限
│ │ └──adminList # 管理员列表
│ │ └──identityManager# 身份管理
│ │ └──permissionRules# 权限规则
│ │ └──agreement # 协议管理
│ │ └──setting # 平台设置
│ │ └──design # 装修
│ │ └──notification # 消息通知
│ │ └──application # 应用 小程序 公众号设置
│ │ └──content # 内容
│ │ └──article # 文章管理
│ │ └──articleclass # 文章分类
│ │ └──datas # 统计数据
│ │ └──user # 用户
│ │ └──list # 用户列表
│ │ └──level # 用户等级
│ │ └──label # 用户标签
│ │ └──videoChannel # 视频号管理
│ │ └──draftList # 待审核列表
│ │ └──apply # 申请接入
│ │ └──videoList # 商品列表
│ │ └──weChatcategoryAndBrand # 微信商品类目
│ │ └──distribution # 分销设置
│ │ └──maintain # 维护
│ │ └──devconfig # 组合数据
│ │ └──formConfig # 表单配置
│ │ └──authCRMEB # 用户授权
│ │ └──logistics # 物流设置
│ │ └──picture # 素材管理
│ │ └──user # 个人中心
│ │ └──schedule # 定时任务管理
│ │ └──sensitiveList # 敏感日志操作
│ │ └──merchant # 商户管理
│ │ └──application # 商户入驻申请
│ │ └──classify # 商户分类
│ │ └──list # 商户列表
│ │ └──system # 商户菜单管理
│ │ └──type # 店铺类型
│ │ └──financial # 财务
│ │ └──capitalFlow # 资金流水
│ │ └──closingSetting # 商户结算设置
│ │ └──statement # 账单管理
│ │ └──merchantClosing # 商户结算
│ │ └──userClosing # 用户结算
│ │ └──onePass # 一号通管理
│ │ └──smsConfig # 一号通列表
│ │ └──smsPay # 套餐购买
│ │ └──smsTemplate # 短信模板
│ │ └──pagediy # 装修
│ │ └──devise # 页面装修diy
│ │ └──viewDesign # 页面设计
│ │ └──theme # 一键换色
│ │ └──error-page # 错误页
│ │ └──404 # 错误页404
│ │ └──403 # 错误页403
│ ├── filters # 过滤器
│ ├── router # 路由配置
│ │ └──modules # 页面路由模块
│ │ └──user.js # 有关用户
│ │ └──application.js # 有关应用
│ │ └──marketing.js # 有关积分、签到
│ │ └──distribution.js # 有关分销
│ │ └──order.js # 有关订单
│ │ └──finance.js # 有关财务
│ │ └──product.js # 有关商品
│ │ └──maintain.js # 有关维护
│ │ └──operation.js # 有关设置
│ │ └──videoChannel.js # 有关视频号
│ │ └──index.js # 路由的汇总
│ ├── store # Vuex 状态管理
│ ├── utils # 全局公用方法
│ │ └──auth.js # Cookies管理
│ │ └──request.js # 请求封装
│ │ └──settingMer.js # 请求地址配置
│ │ └──ZBKJIutil.js # 公共函数工具
│ │ └──validate.js # 公共教校验工具
│ │ └──parsing.js # 通用js方法封装工具
│ │ └──constants.js # 全局静态变量工具
│ │ └──clipboard.js # 粘贴复制工具
│ │ └──permission.js # 权限判断
│ ├── styles # 样式管理
│ ├── permission.js # 路由拦截
│ ├── main.js # 入口文件 加载组件 初始化等
│ └── App.vue # 入口页面
├── tests # 测试
├── .env.xxx # 环境变量配置
├── .eslintrc.js # eslint 配置项
├── .babelrc # babel-loader 配置
├── .travis.yml # 自动化CI配置
├── vue.config.js # vue-cli 配置
├── postcss.config.js # postcss 配置
└── package.json # package.json
```
## 开发
```bash
# 克隆项目
git clone https://gitee.com/ZhongBangKeJi/crmeb_java/
# 进入项目目录
cd ##
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev
```
浏览器访问 http://localhost:9527
## 发布
```bash
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
```
## 其它
```bash
# 预览发布环境效果
npm run preview
# 预览发布环境效果 + 静态资源分析
npm run preview -- --report
# 代码格式检查并自动修复
npm run prettier
```