编辑 | blame | 历史 | 原始文档

数据模拟 - 基础数据检测

涉及页面

  • 数据模拟操作页面(新增)

API

方法 路径 说明
POST /mock/dataCheck 检测指定模块的基础数据是否就绪

请求参数:

参数 类型 必填 说明
modules List<String> 要检测的模块列表,可选值:sales(销售)、purchase(采购)、quality(质量)

请求体示例:
json { "modules": ["sales", "purchase", "quality"] }

响应:
json { "code": 200, "msg": "操作成功", "data": { "totalItems": 6, "passedItems": 3, "items": [ { "module": "common", "itemName": "产品数据", "minRequired": 1, "currentCount": 5, "passed": true, "message": "通过" }, { "module": "sales", "itemName": "客户数据", "minRequired": 1, "currentCount": 0, "passed": false, "message": "缺少客户数据,请先在【基础数据-客户管理】中添加至少1条客户" } ] } }

检测规则

销售模块 (sales)

检测项 最低数量 未通过提示
产品数据 1 缺少产品数据,请先在【基础数据-产品管理】中添加至少1条产品
客户数据 1 缺少客户数据,请先在【基础数据-客户管理】中添加至少1条客户
报价审批模板 1 缺少报价审批模板,请先在【系统管理-审批模板】中创建报价审批模板
发货审批模板 1 缺少发货审批模板,请先在【系统管理-审批模板】中创建发货审批模板

采购模块 (purchase)

检测项 最低数量 未通过提示
产品数据 1 缺少产品数据,请先在【基础数据-产品管理】中添加至少1条产品
供应商数据 1 缺少供应商数据,请先在【基础数据-供应商管理】中添加至少1条供应商
采购审批模板 1 缺少采购审批模板,请先在【系统管理-审批模板】中创建采购审批模板

质量模块 (quality)

检测项 最低数量 未通过提示
产品数据 1 缺少产品数据,请先在【基础数据-产品管理】中添加至少1条产品
检测标准 1 缺少检测标准,请先在【质量管理-检测标准】中创建检测标准
指标绑定 1 缺少指标绑定,请先在【质量管理-检测标准绑定】中将检测标准与产品绑定

前端修改点

1. 数据模拟页面入口

在左侧菜单新增"数据模拟"菜单项,路由 /mock

2. 数据检测区域

<template>
  <div class="mock-container">
    <el-card header="基础数据检测">
      <el-checkbox-group v-model="selectedModules">
        <el-checkbox label="sales">销售模块</el-checkbox>
        <el-checkbox label="purchase">采购模块</el-checkbox>
        <el-checkbox label="quality">质量模块</el-checkbox>
      </el-checkbox-group>
      <el-button type="primary" @click="handleCheck" :loading="checking">
        开始检测
      </el-button>
    </el-card>

    <el-card v-if="checkResult" header="检测结果" style="margin-top: 16px">
      <el-alert
        :title="`通过 ${checkResult.passedItems} / ${checkResult.totalItems} 项`"
        :type="checkResult.passedItems === checkResult.totalItems ? 'success' : 'warning'"
        :closable="false"
        show-icon
      />
      <el-table :data="checkResult.items" style="margin-top: 12px">
        <el-table-column prop="module" label="模块" width="100" />
        <el-table-column prop="itemName" label="检测项" width="160" />
        <el-table-column prop="minRequired" label="最低要求" width="80" />
        <el-table-column prop="currentCount" label="当前数量" width="80" />
        <el-table-column label="状态" width="80">
          <template #default="{ row }">
            <el-tag :type="row.passed ? 'success' : 'danger'">
              {{ row.passed ? '通过' : '未通过' }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="message" label="提示" />
      </el-table>
    </el-card>
  </div>
</template>

3. data 数据

data() {
  return {
    selectedModules: ['sales', 'purchase', 'quality'],
    checking: false,
    checkResult: null,
  }
}

4. 方法

import request from '@/utils/request'

methods: {
  async handleCheck() {
    if (this.selectedModules.length === 0) {
      this.$message.warning('请至少选择一个模块')
      return
    }
    this.checking = true
    try {
      const res = await request.post('/mock/dataCheck', {
        modules: this.selectedModules
      })
      this.checkResult = res.data
    } finally {
      this.checking = false
    }
  }
}

注意事项

  • 产品数据(公共基础)在多个模块间共享,检测结果中只出现一次,不会重复展示
  • 检测仅做只读查询,不写入任何数据
  • 模块参数为空数组时返回空检测列表
  • 建议在数据模拟开始前先调用此接口确认基础数据就绪