Commit Graph
256 Commits
Author SHA1 Message Date
nebula_chen c02435da28 Merge branch pis:develop into develop 2026-04-07 08:07:22 +00:00
nebula_chen 8259cd797a refactor(system, pisadmin):修改供应商账号登录时角色标识的校验逻辑,暂时改为 supplier_*;同步修改仪表盘 2026-04-07 16:06:39 +08:00
lewis e5957e989a Merge branch 'develop' into 'develop'
feat(pissupplier):新增供应商用户账号登录系统,报价单页面仅展示对应供应商的报价单

See merge request pisteams/pis!53
2026-04-07 03:52:21 +00:00
nebula_chen 31f8d073a8 Merge branch pis:develop into develop 2026-04-07 03:22:48 +00:00
lewis 742b5e8482 Merge branch 'feat/dashboard-home-notification' into 'develop'
feat(dashboard): add semantic icons to KPI cards

See merge request pisteams/pis!52
2026-04-07 03:19:30 +00:00
lewis 52a7ebfe3e Merge branch 'develop' into 'develop'
refactor(pisadmin):修改材料制程最低价与杂采材料表的关联逻辑;修改履历表的写入逻辑与前端实现

See merge request pisteams/pis!51
2026-04-07 03:14:48 +00:00
Lewis_yan 3ddea70c55 feat(dashboard): add system notification card to right sidebar
Reference the original django-vue3-admin framework home page, combine
the home image and notification card into one layout. The notification
list appears below the image, matching the original framework's style
with creator name, datetime, and title for each notification item.
2026-04-07 11:13:47 +08:00
Lewis_yan 4c681805cd fix(dashboard): replace .extra() with TruncDate to fix SQL Server column name issues
.extra(select={'day': 'DAY(create_time)'}) uses Django field name but
Inquiry.create_time has db_column='CreateTime' causing SQL Server error.
TruncDate is the proper ORM approach for date truncation.
2026-04-07 11:02:51 +08:00
Lewis_yan d1c54290c5 debug(dashboard): add debug print to track buyer_data exception 2026-04-07 10:59:59 +08:00
Lewis_yan 32377898ab fix(dashboard): use SuccessResponse from dvadmin.utils.json_response instead of manual Response 2026-04-07 10:50:36 +08:00
Lewis_yan 0a5b72fdba fix(dashboard): wrap response with code:200 and update store to extract data from res.data
Backend: Response() now returns {code:200, msg, data: {buyer, supplier}}
Frontend: store extracts buyer/supplier from res.data since axios interceptor returns full response
2026-04-07 10:48:32 +08:00
nebula_chen 58dcd730f1 feat(pissupplier):新增供应商用户账号登录系统,报价单页面仅展示对应供应商的报价单 2026-04-07 10:35:16 +08:00
Lewis_yan f373252760 fix(dashboard): add missing method/quote_deadline/bid_*_time fields to BuyerTaskSerializer and SupplierQuoteSerializer
The serializers.py had incomplete field definitions - missing the deadline
and method fields that views.py correctly builds. Also fixed quantity type
(CharField to match view's empty string fallback) and added status field
to SupplierQuoteSerializer.
2026-04-07 10:23:21 +08:00
nebula_chen b31588d7ad feat(pisadmin):新增供应商用户创建关联系统的用户创建 2026-04-07 10:22:58 +08:00
Lewis_yan 3c2ae69383 debug: log full task object to identify actual API field names 2026-04-07 10:19:08 +08:00
Lewis_yan 2a753d7cfd debug(dashboard): add console.log debugging for buyer/supplier task list data flow
Trace points:
- Dashboard Store: API response, buyer/supplier data, tasks/pending_quotes
- BuyerDashboard: computed tasks, onMounted, getDeadlineClass, getRemainingTimeText
- SupplierDashboard: computed pendingQuotes, onMounted, getDeadlineClass, getRemainingTimeText
2026-04-07 10:18:08 +08:00
Lewis_yan c862c33ff0 fix(dashboard): add method and deadline fields to API responses
BuyerDashboard API:
- Add buying_method, quote_deadline, bid_start_time, bid_end_time to tasks
- Add daily trend data with day field instead of monthly

SupplierDashboard API:
- Add buying_method, quote_deadline, bid_start_time, bid_end_time to pending_quotes
- Add daily trend data with day field instead of monthly

These fields are needed by the frontend to display procurement method
badges and deadline countdown with color-coded urgency.
2026-04-07 10:09:44 +08:00
Lewis_yan 9ebda50083 docs: update README with project architecture and startup scripts
- Replace dvadmin3 framework intro with PIS project content
- Add project architecture section (tech stack, directory structure, modules)
- Add startup scripts documentation (start-backend.sh, start-frontend.sh, etc.)
- Update all 4 README files (EN/ZH for root and web/)
2026-04-07 10:07:03 +08:00
Lewis_yan 41ad7b67c2 feat(dashboard): enhance todo task rendering with procurement method and deadline styling
BuyerDashboard:
- Added procurement method column (询价/招标 badge)
- Added deadline/remaining time with color coding:
  - <24h: red bold
  - 24-48h: yellow bold
  - expired: strikethrough
- 询价 uses quote_deadline, 招标 uses bid_end_time

SupplierDashboard:
- Added procurement method badge
- Time display varies by method:
  - 询价: shows quote deadline + remaining time
  - 招标: shows bid time range (bid_start ~ bid_end) + remaining time
- Same deadline color coding as buyer
2026-04-07 10:06:07 +08:00
Lewis_yan 6123b6ef17 fix(dashboard): render all days of current month in trend chart
Generate all calendar days of current month and map backend data to
each day. Missing days display as 0 instead of being omitted from
the x-axis.
2026-04-07 09:59:49 +08:00
Lewis_yan 22f8caa6d4 fix(dashboard): use day field for 30-day trend chart x-axis
Change from d.month to d.day to properly display daily
data instead of monthly aggregation on the 30-day trend chart.
2026-04-07 09:57:48 +08:00
Lewis_yan 829b030828 fix(dashboard): replace non-existent FA4.7 icons with valid alternatives
- fa-chart-pie → fa-pie-chart
- fa-file-invoice → fa-file-text-o
- fa-pen-to-square → fa-pencil-square-o
2026-04-07 09:52:28 +08:00
Lewis_yan 4d61d34c56 fix(dashboard): use fa-clock-o for FontAwesome 4.7 compatibility
fa-clock (solid) only exists in FA5+, FA4.7 uses fa-clock-o (outline)
2026-04-07 09:51:28 +08:00
Lewis_yan 2e49fa1449 feat(dashboard): add semantic icons to KPI cards
Add FontAwesome icons to all 7 KPI metric cards in buyer and
supplier dashboards for better visual semantics:

BuyerDashboard:
- fa-check-circle (completed inquiries)
- fa-clock (pending inquiries)
- fa-chart-pie (quote timeliness rate)

SupplierDashboard:
- fa-file-invoice (total quotes)
- fa-pen-to-square (pending quotes)
- fa-trophy (won bids)
- fa-bullseye (win rate)
2026-04-07 09:46:09 +08:00
nebula_chen 7935527618 Merge branch pis:develop into develop 2026-04-03 12:24:00 +00:00
nebula_chen 28d799c2e4 refactor(pisadmin):修改材料制程最低价与杂采材料表的关联逻辑;修改履历表的写入逻辑与前端实现 2026-04-03 20:22:52 +08:00
lewis cb781ab1ed Merge branch 'develop' into 'develop'
refactor(pisadmin):修改制程最低价和平均价的计算逻辑

See merge request pisteams/pis!50
2026-04-03 11:05:53 +00:00
nebula_chen 3e9fcc0198 Merge branch pis:develop into develop 2026-04-03 11:02:29 +00:00
nebula_chen 7a9822740c refactor(pisadmin):修改制程最低价和平均价的计算逻辑 2026-04-03 18:57:09 +08:00
lewis d3397b493d Merge branch 'sync/pnpm-fix-to-develop' into 'develop'
refactor(storage): rename MinIO to RustFS throughout backend

See merge request pisteams/pis!49
2026-04-03 10:21:57 +00:00
lewis f8214b1264 Merge branch 'develop' into 'develop'
feat(pisadmin):新增供应商用户信息页

See merge request pisteams/pis!48
2026-04-03 10:19:15 +00:00
lewis_yan 9a040f5836 chore(storage): update RustFS credentials for testing 2026-04-03 18:14:45 +08:00
nebula_chen 32c1488d5f feat(pisadmin):新增杂采材料/加工制程最低信息表模型定义及序列化器 2026-04-03 17:32:29 +08:00
lewis_yan a90809c3fc refactor(storage): rename MinIO to RustFS throughout backend
- Rename minio_storage.py to rustfs_storage.py
- Update all MINIO_* settings to RUSTFS_* in env.py
- Update file_list.py to import rustfs_upload_file
- Update test files and factory to use rustfs engine
2026-04-03 17:12:04 +08:00
lewis_yan 1959f83d77 chore(deps): add pytest-django and factory_boy for testing 2026-04-03 16:53:25 +08:00
lewis_yan 5d0274c519 test: add MinIO file upload integration tests
- Add FileListFactory for test data creation
- Add TestFileUpload with 4 test cases:
  - test_upload_file_success (requires MinIO running)
  - test_upload_file_unauthenticated (passes without MinIO)
  - test_upload_image_success (requires MinIO running)
  - test_upload_without_file (passes without MinIO)
- Fix admin_user/normal_user fixtures to use factory_boy
  sequence to avoid username collision
2026-04-03 16:52:56 +08:00
lewis_yan 7885d7a759 chore(deps): add boto3, remove unused oss2 and cos-python-sdk 2026-04-03 16:42:52 +08:00
lewis_yan 08a904ef2a refactor(storage): remove aliyunoss and tencentcos storage engines 2026-04-03 16:42:14 +08:00
lewis_yan 076c3a5a43 feat(storage): simplify FileSerializer.create to use MinIO only 2026-04-03 16:41:50 +08:00
lewis_yan c337707e05 feat(storage): add MinIO storage utility (boto3-based) 2026-04-03 16:41:04 +08:00
lewis_yan 671f9f4478 feat(storage): add MinIO configuration to env.py 2026-04-03 16:40:12 +08:00
nebula_chen cb91c7c4f5 fix(pisadmin):修改制程最低价计算逻辑 2026-04-03 16:32:13 +08:00
nebula_chen 28f327b01d Merge branch 'develop' of http://192.168.80.90:8086/nebula_chen/pis into develop 2026-04-03 15:19:28 +08:00
nebula_chen 59fb404460 feat(pisadmin):新增供应商用户信息页 2026-04-03 15:17:43 +08:00
lewis 4da9c01d70 Merge branch 'sync/pnpm-fix-to-develop' into 'develop'
chore: update .gitignore and CLAUDE.md to exclude superpowers files

See merge request pisteams/pis!47
2026-04-03 06:18:09 +00:00
lewis c50d7219bd Merge branch 'sync/pnpm-fix' into 'main'
chore: update pnpm-lock.yaml for husky and lint-staged

See merge request pisteams/pis!46
2026-04-03 06:12:37 +00:00
lewis_yan a4ecd7cade chore: update pnpm-lock.yaml for husky and lint-staged 2026-04-03 14:11:54 +08:00
lewis 82b29209c0 Merge branch 'chore/exclude-superpowers-from-repo' into 'main'
chore: update .gitignore and CLAUDE.md to exclude superpowers files

See merge request pisteams/pis!42
2026-04-03 05:58:15 +00:00
lewis_yan abadbdc4ab Merge docs/gitlab-mr-template into chore/exclude-superpowers-from-repo 2026-04-03 13:57:19 +08:00
lewis_yan 6dcd44ba42 docs: add Docs option to MR template change type 2026-04-03 13:56:10 +08:00