129 lines
No EOL
3.7 KiB
Markdown
129 lines
No EOL
3.7 KiB
Markdown
# 少プロジェクト短期実装計画(担当者に限定版)
|
||
|
||
## 1. プロジェクト概要
|
||
|
||
**目標**: 担当者マスタ画面のリッチ編集機能を実現し、販売・仕入れ業務との連携を整える
|
||
|
||
**期間**: 1-2 ヶ月程度で MVP をリリース
|
||
**優先度**: 担当者マスタ → サンプルデータ → ビルド検証
|
||
|
||
---
|
||
|
||
## 2. ワークフロー
|
||
|
||
```mermaid
|
||
graph TD
|
||
A[担当者マスタ画面] --> B[MasterEditDialog 作成]
|
||
B --> C[sample_employee.dart 定義]
|
||
C --> D[employee_master_screen.dart リッチ化]
|
||
D --> E[サンプルデータ追加]
|
||
E --> F[ビルド検証]
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 実装順序
|
||
|
||
### フェーズ 1: 編集ダイアログの整備 (1-2 週間)
|
||
1. `MasterEditDialog` を共有ライブラリとして作成
|
||
- TextFormField で全てのフィールドを編集可能
|
||
- 保存/キャンセルボタン付き
|
||
- 無効な場合のバリデーション表示
|
||
|
||
2. `sample_employee.dart` にサンプルデータ追加
|
||
- 初期担当者データ(5-10 件程度)
|
||
- employee_id, name, email, tel, department, role
|
||
|
||
### フェーズ 2: マスタ画面の連携 (2-3 週間)
|
||
3. `employee_master_screen.dart` のリッチ化
|
||
- MasterEditDialog で編集画面を表示
|
||
- リストビューに編集ボタン付き
|
||
- 追加ダイアログを統合
|
||
|
||
4. シンプルなリスト管理から開始
|
||
- ListView.builder で担当者一覧表示
|
||
- Card に編集ボタンを追加
|
||
|
||
### フェーズ 3: 業務連携の準備 (1-2 週間)
|
||
5. 販売画面への担当者紐付機能
|
||
6. 仕入れ画面への担当者紐付機能
|
||
7. 簡易な在庫管理と売上照会
|
||
|
||
---
|
||
|
||
## 4. テックスタック
|
||
|
||
| カテゴリ | ツール |
|
||
|---------|--------|
|
||
| State Management | setState (シンプル) |
|
||
| フォーム編集 | TextField + TextEditingController |
|
||
| ダイアログ | AlertDialog で標準ダイアログ利用 |
|
||
| データ永続化 | 当面はメモリ保持(後日 Sqflite) |
|
||
| ロギング | 簡易な print 出力 |
|
||
|
||
---
|
||
|
||
## 5. デリべラブル
|
||
|
||
- [x] `MasterEditDialog` の実装
|
||
- [ ] `sample_employee.dart` のサンプルデータ追加
|
||
- [x] `employee_master_screen.dart` の簡素リスト実装(完了)
|
||
- [ ] リッチ編集画面の実装
|
||
- [ ] ビルドと動作確認
|
||
|
||
---
|
||
|
||
## 6. 定義済みインターフェース
|
||
|
||
### MasterEditDialog インターフェース:
|
||
```dart
|
||
class MasterEditDialog<T> {
|
||
final String title;
|
||
final Map<String, dynamic> initialData; // editMode の時だけ使用
|
||
final Future<bool> Function(Map<String, dynamic>) saveCallback;
|
||
|
||
static const String idKey = 'id';
|
||
static const String nameKey = 'name';
|
||
static const String emailKey = 'email';
|
||
static const String telKey = 'tel';
|
||
}
|
||
```
|
||
|
||
### sample_employee.dart の形式:
|
||
```dart
|
||
class SampleEmployee {
|
||
final int id;
|
||
final String name;
|
||
final String email;
|
||
final String tel;
|
||
final String department;
|
||
final String role;
|
||
|
||
// factory で作成可能
|
||
|
||
Map<String, dynamic> toJson() => {...};
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 7. ビルド検証手順
|
||
|
||
1. `flutter build apk --debug` でビルド
|
||
2. Android エミュレータまたは物理デバイスで動作確認
|
||
3. マスタ登録・編集のフローテスト
|
||
4. 画面遷移の確認
|
||
|
||
---
|
||
|
||
## 8. リスク管理
|
||
|
||
- **State Management の複雑化**: setState を使いすぎると再描画が増える → 最小限に抑える
|
||
- **データ永続化なし**: アプリ再起動で失われる → MVP で OK、後日改善
|
||
- **サンプルデータ不足**: ユーザーに手入力させる → コード内で初期化
|
||
|
||
---
|
||
|
||
## 9. まとめ
|
||
|
||
担当者のみから着手し、マスター管理機能とサンプルデータを整備。その後に他のマスタ画面を順次実装する方針で進める。 |