リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: LeadPipeline
案件一覧ページの追加(テーブル形式で全案件を一覧・ソート・フィルタ)
## 1. 目的
現在のパイプラインボード(board.php)はカンバン形式のため、案件数が増えると全体を俯瞰しにくく、金額順・期日順などでの並び替えができない。テーブル形式の案件一覧ページを追加し、ソートとフィルタを組み合わせて素早く目的の案件を探せるようにする。
## 2. 具体的な仕様
### 新規ファイル: pages/deals.php
- 既存の `fetch_deals()` / `filters_from_request()` / `build_deal_where()` / `render_filters()` をそのまま流用する
- テーブルカラム: 会社名、案件名、ステージ、金額、確度、加重期待売上、担当営業、次回アクション期日、次回アクション内容、詳細リンク
- **ソート機能**: カラムヘッダーをクリックするとGETパラメータ `sort=amount&dir=desc` のようにURLに付加し、PHPでORDER BY句を切り替える
- ソート対象カラム: `amount`、`probability`、`next_action_date`、`updated_at`(安全なホワイトリスト方式で実装)
- デフォルトソート: `next_action_date ASC`
- ヘッダーに▲▼の向き表示(HTMLエンティティで可)
- **フィルタ**: 既存の `render_filters()` をそのまま使用(キーワード、担当者、ステージ、金額範囲、期日)
- **ページネーション**: 1ページ50件、GETパラメータ `p=1` で制御。LIMIT/OFFSETをSQL側で適用
- ステージ列はステージカラー付きのバッジ表示(span要素にインラインスタイルで背景色)
- `due_badge()` を期日列に表示
- CSVエクスポートボタン(`export=csv` パラメータ): 現在の絞り込み・ソート結果をそのまま出力。ヘッダー行は「会社名,案件名,ステージ,金額,確度,加重期待売上,担当営業,次回アクション期日,次回アクション」
### PHPロジック
```php
$allowed_sort = ['amount', 'probability', 'next_action_date', 'updated_at'];
$sort = in_array($_GET['sort'] ?? '', $allowed_sort) ? $_GET['sort'] : 'next_action_date';
$dir = (($_GET['dir'] ?? '') === 'desc') ? 'DESC' : 'ASC';
$per_page = 50;
$page_num = max(1, (int)($_GET['p'] ?? 1));
$offset = ($page_num - 1) * $per_page;
// fetch_deals を拡張するか、deals.php内でSQLを直接組み立てる
// ホワイトリスト済みの $sort/$dir を ORDER BY に使用し、LIMIT/OFFSET を付加
```
### ナビゲーションへの追加
- `lib.php` 内の `render_layout()` のナビゲーションメニューに「案件一覧」リンク(`?page=deals`)を追加する
- 既存の「パイプライン」「ダッシュボード」「失注アーカイブ」「月次レポート」と並べる
## 3. 既存機能との整合
- `fetch_deals()` / `build_deal_where()` は引数を変えず流用するため既存ページに影響なし
- board.php・list.php・archive.php・report.php はいずれも変更不要
- 新規ファイル deals.php の追加のみで完結する
- スマホ表示はテーブルに `overflow-x: auto` のラッパーdivを被せてスクロール対応
現在のパイプラインボード(board.php)はカンバン形式のため、案件数が増えると全体を俯瞰しにくく、金額順・期日順などでの並び替えができない。テーブル形式の案件一覧ページを追加し、ソートとフィルタを組み合わせて素早く目的の案件を探せるようにする。
## 2. 具体的な仕様
### 新規ファイル: pages/deals.php
- 既存の `fetch_deals()` / `filters_from_request()` / `build_deal_where()` / `render_filters()` をそのまま流用する
- テーブルカラム: 会社名、案件名、ステージ、金額、確度、加重期待売上、担当営業、次回アクション期日、次回アクション内容、詳細リンク
- **ソート機能**: カラムヘッダーをクリックするとGETパラメータ `sort=amount&dir=desc` のようにURLに付加し、PHPでORDER BY句を切り替える
- ソート対象カラム: `amount`、`probability`、`next_action_date`、`updated_at`(安全なホワイトリスト方式で実装)
- デフォルトソート: `next_action_date ASC`
- ヘッダーに▲▼の向き表示(HTMLエンティティで可)
- **フィルタ**: 既存の `render_filters()` をそのまま使用(キーワード、担当者、ステージ、金額範囲、期日)
- **ページネーション**: 1ページ50件、GETパラメータ `p=1` で制御。LIMIT/OFFSETをSQL側で適用
- ステージ列はステージカラー付きのバッジ表示(span要素にインラインスタイルで背景色)
- `due_badge()` を期日列に表示
- CSVエクスポートボタン(`export=csv` パラメータ): 現在の絞り込み・ソート結果をそのまま出力。ヘッダー行は「会社名,案件名,ステージ,金額,確度,加重期待売上,担当営業,次回アクション期日,次回アクション」
### PHPロジック
```php
$allowed_sort = ['amount', 'probability', 'next_action_date', 'updated_at'];
$sort = in_array($_GET['sort'] ?? '', $allowed_sort) ? $_GET['sort'] : 'next_action_date';
$dir = (($_GET['dir'] ?? '') === 'desc') ? 'DESC' : 'ASC';
$per_page = 50;
$page_num = max(1, (int)($_GET['p'] ?? 1));
$offset = ($page_num - 1) * $per_page;
// fetch_deals を拡張するか、deals.php内でSQLを直接組み立てる
// ホワイトリスト済みの $sort/$dir を ORDER BY に使用し、LIMIT/OFFSET を付加
```
### ナビゲーションへの追加
- `lib.php` 内の `render_layout()` のナビゲーションメニューに「案件一覧」リンク(`?page=deals`)を追加する
- 既存の「パイプライン」「ダッシュボード」「失注アーカイブ」「月次レポート」と並べる
## 3. 既存機能との整合
- `fetch_deals()` / `build_deal_where()` は引数を変えず流用するため既存ページに影響なし
- board.php・list.php・archive.php・report.php はいずれも変更不要
- 新規ファイル deals.php の追加のみで完結する
- スマホ表示はテーブルに `overflow-x: auto` のラッパーdivを被せてスクロール対応
💬 返信 (3)
🛠 開発を開始しました (機能追加 (leadpipeline))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「LeadPipeline」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=leadpipeline
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/leadpipeline/
ご利用ありがとうございます!
ご要望いただいた「LeadPipeline」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=leadpipeline
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/leadpipeline/
ご利用ありがとうございます!
Echo
Iris