# new-shop **Repository Path**: abbasspace/new-shop ## Basic Information - **Project Name**: new-shop - **Description**: 商店年货及商品价格管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 货单管理系统 一个基于纸质货单的移动应用管理系统,支持 Android 和 iOS 平台。 ## 系统架构 - **前端**: Kotlin Multiplatform + Compose Multiplatform (支持 Android 和 iOS) - **后端**: Go + Gin 框架 + SQLite 数据库 ## 功能特性 ### 后端功能 - ✅ 货单 CRUD 操作(创建、读取、更新、删除) - ✅ 图片上传和存储(支持多张货单照片) - ✅ 按日期查询货单 - ✅ 按采购人搜索货单 - ✅ 日期列表统计 - ✅ CORS 跨域支持 ### 前端功能 - ✅ 货单列表(按日期 Tab 分组,显示采购人) - ✅ 采购人搜索 - ✅ 货单详情查看 - ✅ 新增/编辑货单 - ✅ 拍照上传图片 - ✅ 标记付款状态和金额 - ✅ 标记发货状态 ## 快速开始 ### 1. 启动后端服务器 ```bash cd go-newshoop-server go run . ``` 服务器将在 `http://localhost:8080` 启动 ### 2. 运行前端应用 #### Android ```bash cd NewShop ./gradlew :composeApp:installDebug ``` #### iOS ```bash cd NewShop/iosApp xcodebuild -scheme iosApp -destination 'platform=iOS Simulator,name=iPhone 15' run ``` ## API 接口 ### 货单管理 - `GET /api/orders` - 获取货单列表 - 参数: `date` (日期), `buyer` (采购人) - `GET /api/orders/:id` - 获取货单详情 - `POST /api/orders` - 创建货单 - `PUT /api/orders/:id` - 更新货单 - `DELETE /api/orders/:id` - 删除货单 ### 日期列表 - `GET /api/dates` - 获取日期列表(用于 Tab 页) ### 图片管理 - `POST /api/upload` - 上传图片 - `DELETE /api/images/:id` - 删除图片 ## 数据模型 ### 货单 (Order) ```json { "id": 1, "buyer": "张三", "date": "2026-02-11", "is_paid": true, "paid_amount": 1500.00, "is_shipped": false, "images": [...], "note": "备注信息", "created_at": "2026-02-11T10:00:00Z" } ``` ### 图片 (Image) ```json { "id": 1, "order_id": 1, "url": "/uploads/xxx.jpg" } ``` ## 配置 ### 后端配置 后端默认运行在 `localhost:8080`,数据库使用 SQLite (`orders.db`),图片存储在 `./uploads` 目录。 ### 前端配置 修改 `composeApp/src/commonMain/kotlin/hxy/dragon/newshop/data/api/OrderApi.kt` 中的 `BASE_URL`: ```kotlin object ApiConfig { const val BASE_URL = "http://192.168.1.100:8080" // 生产环境 // const val BASE_URL = "http://10.0.2.2:8080" // Android 模拟器 // const val BASE_URL = "http://localhost:8080" // iOS 模拟器 } ``` ## 注意事项 1. **图片存储**: 图片保存在后端的 `./uploads` 目录,请确保该目录可写 2. **数据库**: 使用 SQLite,数据保存在 `orders.db` 文件 3. **无登录**: 系统没有用户管理,所有设备都可以访问所有数据 4. **网络权限**: 确保 Android 和 iOS 应用有网络访问权限 ## 技术栈 ### 后端 - Go 1.23+ - Gin Web 框架 - GORM ORM - SQLite 数据库 ### 前端 - Kotlin 2.3+ - Compose Multiplatform 1.10+ - Ktor 客户端 - Coil 图片加载 - Kotlinx Serialization ## 开发计划 - [ ] 图片压缩和优化 - [ ] 离线缓存支持 - [ ] 货单导出功能 - [ ] 数据统计报表 - [ ] 多语言支持