店滴开发者手册店滴开发者手册
首页
指南
插件
接口
智能设备
element后台
SDK
首页
指南
插件
接口
智能设备
element后台
SDK
  • 后台

    • 管理系统开发文档
    • ddButton 组件开发文档
    • DdDrawer 抽屉组件
    • DdOperMenu 操作区域按钮组组件
    • EleForm 基础表单组件
    • EleFormDynamic 动态表单组件
    • EleFormImageUploader 图片上传组件
    • EleFormMap 地图组件
    • EleFormTreeSelect 树形选择组件
    • VueUeditorWrap 百度编辑器组件
    • EleFormUploadFile 文件上传组件
    • EleFormVideoUploader 视频上传组件
    • 表单配置文档
    • DdLevelTable 层级表格组件
    • ListForm 弹窗表单组件
    • DdTable 组件使用文档

管理系统开发文档

项目概述

本项目是一个基于 Vue.js 的管理系统示例,主要用于演示各种管理功能的实现方式。系统采用组件化开发方式,使用 Element UI 作为 UI 框架。

技术栈

  • Vue.js
  • Element UI
  • Vuex
  • Vue Router
  • Axios

项目结构

scrm-admin/
├── src/
│   ├── projects/
│   │   └── scrm/
│   │       └── views/
│   │           └── diandi_business_opportunity/
│   │               ├── components/
│   │               │   ├── form/
│   │               │   └── list/
│   │               └── diandicustomerAll/

开发规范

1. 组件命名规范

  • 使用 PascalCase 命名组件
  • 组件文件名与组件名保持一致

2. 代码风格

  • 使用 ESLint 进行代码规范检查
  • 遵循 Vue.js 官方风格指南

3. 注释规范

  • 组件顶部添加功能说明注释
  • 复杂逻辑添加必要注释
  • API 接口添加参数说明注释

核心组件说明

1. 表单组件

Business.vue

  • 商机选择组件
  • 支持单选
  • 支持搜索和筛选

SelectCustom.vue

  • 客户选择组件
  • 支持客户信息关联
  • 支持清空和保存操作

Salesman.vue

  • 业务员选择组件
  • 支持员工信息关联

2. 列表组件

Contact.vue

  • 联系人列表管理
  • 支持增删改查
  • 支持批量操作

Device.vue

  • 设备列表管理
  • 支持设备信息维护
  • 支持设备状态管理

Quotation.vue

  • 报价管理
  • 支持报价信息维护
  • 支持报价状态管理

3. 交互组件

4. 抽屉组件

4.1 抽屉组件定义

抽屉组件用于显示详细信息,通常包含以下功能:

  • 可拖拽
  • 可调整大小
  • 可关闭
<template>
  <el-drawer
    title="详情"
    :visible.sync="drawerVisible"
    direction="rtl"
    size="50%"
  >
    <div class="drawer-content">
      <!-- 抽屉内容 -->
    </div>
  </el-drawer>
</template>

<script>
export default {
  data() {
    return {
      drawerVisible: false
    }
  },
  methods: {
    openDrawer() {
      this.drawerVisible = true
    },
    closeDrawer() {
      this.drawerVisible = false
    }
  }
}
</script>

5. 弹窗组件

5.1 弹窗组件定义

弹窗组件用于显示表单或确认信息,通常包含以下功能:

  • 可关闭
  • 可调整大小
  • 可拖拽
<template>
  <el-dialog
    title="弹窗标题"
    :visible.sync="dialogVisible"
    width="50%"
    :before-close="handleClose"
  >
    <div class="dialog-content">
      <!-- 弹窗内容 -->
    </div>
    <span slot="footer" class="dialog-footer">
      <el-button @click="dialogVisible = false">取 消</el-button>
      <el-button type="primary" @click="handleConfirm">确 定</el-button>
    </span>
  </el-dialog>
</template>

<script>
export default {
  data() {
    return {
      dialogVisible: false
    }
  },
  methods: {
    openDialog() {
      this.dialogVisible = true
    },
    handleClose() {
      this.dialogVisible = false
    },
    handleConfirm() {
      // 确认操作
      this.dialogVisible = false
    }
  }
}
</script>

6. 用户选择组件

6.1 用户选择组件定义

用户选择组件用于选择用户,通常包含以下功能:

  • 多选
  • 搜索
  • 分页
<template>
  <div>
    <el-input v-model="formData.username" placeholder="选择用户" readonly>
      <template slot="append">
        <el-button @click="dialogVisible = true">选择</el-button>
      </template>
    </el-input>
    <el-dialog
      title="选择用户"
      :visible.sync="dialogVisible"
      width="80%"
    >
      <el-table
        :data="userList"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="username" label="用户名"></el-table-column>
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dialogVisible: false,
      userList: [],
      selectedUsers: []
    }
  },
  methods: {
    handleSelectionChange(val) {
      this.selectedUsers = val
    },
    handleConfirm() {
      this.formData.username = this.selectedUsers.map(user => user.username).join(',')
      this.dialogVisible = false
    }
  }
}
</script>

API 接口

商机相关接口

// 获取商机列表
initList(data)

// 获取商机详情
getView(id)

// 创建商机
itemCreate(data)

// 更新商机
itemUpdate(id, data)

// 删除商机
itemDelete(id)

客户相关接口

// 获取客户列表
Cuslist(data)

// 获取客户商机信息
getCustomerOpportunityWithFollow(data)

// 变更跟进人
followerList(data)

// 取消跟进人
unfollowerList(data)

权限控制

系统使用权限码进行功能控制:

export const auth = {
  create: 'diandi-business-opportunity-diandicustomerAll-create',
  update: 'diandi-business-opportunity-diandicustomerAll-update',
  deletes: 'diandi-business-opportunity-diandicustomerAll-deletes-button',
  bglxr: 'diandi-business-opportunity-diandicustomerAll-bggjr-button',
  sf: 'diandi-business-opportunity-diandicustomerAll-sf-button',
  import: 'diandi-business-opportunity-diandicustomerAll-pldr-button',
  export: 'diandi-business-opportunity-diandicustomerAll-delete-btn-button',
  scgjr: 'diandi-business-opportunity-diandicustomerAll-unfollower-button'
}

部署说明

  1. 环境要求

    • Node.js >= 12.0.0
    • npm >= 6.0.0
  2. 安装依赖

npm install
  1. 开发环境运行
npm run dev
  1. 生产环境构建
npm run build

注意事项

  1. 数据安全

    • 敏感数据加密处理
    • 接口权限控制
    • 用户操作日志记录
  2. 性能优化

    • 组件按需加载
    • 大数据列表分页处理
    • 图片资源压缩
  3. 兼容性

    • 支持主流浏览器
    • 响应式布局适配
Next
ddButton 组件开发文档