CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a uni-app mobile application project for Quality Control (QC) and Warehouse management in a Manufacturing Execution System (MES). The application is built for PDA devices and supports quality inspection processes and warehouse operations.
- Framework: uni-app (Vue 2.x based)
- App Name: GS-MES-AP (广深科技 MES Application)
- Target Platform: Android mobile/PDA devices
- UI Framework: uView UI library
Build and Development Commands
This is a uni-app project that builds through HBuilderX IDE or uni-app CLI. The build output is generated in the unpackage/ directory:
- Development Build: Use HBuilderX IDE or
npm run dev:app-plus for development
- Production Build: APK files are generated in
unpackage/release/apk/
- Cache: Build cache and temporary files are stored in
unpackage/cache/
- Testing: Use HBuilderX IDE's built-in testing tools or deploy to PDA devices for testing
Note: This project does not have traditional npm scripts. Development and building are primarily done through HBuilderX IDE.
Architecture Overview
Core Structure
- Entry Point:
main.js - Contains Vue prototypes, global mixins, and API configuration
- State Management:
store/index.js - Vuex store with server configuration and minimal state
- Routing:
pages.json - uni-app page configuration with tabBar navigation
- Global Config:
manifest.json - App configuration including permissions and build settings
Key Directories
pages/BasePages/ - Core app pages (login, main menu, user profile)
pages/QC/ - Quality Control modules (来料检验 LLJ, 巡检 XJ, 首检 SJ, 入库检 RKJ)
pages/Warehouse/ - Warehouse operations (inventory, purchasing, allocation)
components/ - Reusable UI components and third-party integrations
static/ - Static assets (images, audio files, CSS)
uni_modules/ - uni-app plugin modules including uView UI
API Architecture
- Base API: Configured in Vuex store with environment-specific URLs
- Request Methods: Custom Vue prototypes (
$post, $get, $uni_request) with loading states
- Authentication: User login state managed globally via
$loginInfo
- Error Handling: Centralized error handling with toast messages
Main Features
- Quality Control (QC):
- 来料检验 (LLJ) - Incoming Material Inspection
- 巡检 (XJ) - Patrol Inspection
- 首检 (SJ) - First Article Inspection
- 入库检 (RKJ) - Warehouse Inspection
- Warehouse Operations:
- Purchase inventory management
- Material allocation and transfers
- Barcode printing and scanning
- Common Functions:
- Barcode/QR code scanning
- Photo capture and upload
- Bluetooth printing integration
- Offline data synchronization
Navigation Structure
- Tab Bar: 3 main tabs (首页/Home, 消息中心/Message Center, 我的/Profile)
- Menu System: Dynamic menu loading based on user permissions via
$getUserMenu()
- Page Flow: List → Detail → Form pattern for most workflows
Development Guidelines
Server Configuration
The app connects to different servers based on environment:
- Development: http://localhost:10054 or http://192.168.1.104:10056/api
- Check store/index.js for current active server endpoints
Global Utilities
$showMessage() - Display toast notifications
$showDialog() - Show confirmation dialogs
$camera() - Camera/photo selection functionality
$getDate() - Date formatting utilities
$getUrlParams() - URL parameter parsing
Component Dependencies
- uView UI: Primary UI component library
- Custom Components: Scanner, printer utilities in
components/kk-printer/
- Third-party: Charts (u-charts), maps (amap), markdown parsing
File Upload System
Image uploads use base64 encoding via $fileUpload() method, sending to /Base/saveImage endpoint.
Authentication System
- User authentication is managed through
$loginInfo object in main.js
- Login state persists using
uni.getStorageSync() and uni.setStorageSync()
- Global mixin
globalMixin.js provides checkUserAuth() for automatic login verification
- Users are redirected to
/pages/BasePages/login if not authenticated
Request Architecture
- $post() and $get(): Standard API requests with automatic loading indicators
- $uni_request(): Core request method with error handling and status checking
- $toERP(): External ERP system integration requests
- $postSyncPost(): Promise-based synchronous POST requests
- All requests automatically handle loading states, error messages, and network failures
Hardware Integration
- Camera: Native camera access via
$camera() with image compression options
- Barcode Scanner: QR/barcode scanning capabilities for PDA devices
- Bluetooth Printing: Printer integration through
components/kk-printer/
- Device Permissions: Configured in
manifest.json for camera, storage, network, and Bluetooth access
Page Architecture Patterns
- List Pages: Pagination with pull-to-refresh and infinite scroll
- Detail Pages: Read-only view with navigation to edit forms
- Add/Edit Forms: Input validation and submission with photo upload capabilities
- Scan Pages: Barcode scanning with immediate data processing
Environment Configuration
Current server endpoints are configured in store/index.js:
- Development: http://localhost:5184/api
- Internal Network: http://192.168.11.251:10054
- Testing: http://192.168.1.104:10056/api or 10057/api
- Switch between environments by updating serverAPI in the Vuex store