变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· kamo-shared-library
POSService 的企业验证
- 创建零售命令: 请求时无效检查 - 创建Line 项目: 无效检查, 数量 > 0, 单位Price + 0 验证
· kamo-internal
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: formatCurrency, formatDate, toCSV, downloadBlob - PipelineOrdersTab: search, sort, pagination, CSV export, skeleton loading, toast notifications, empty state CTA, confirm empty order - PipelineApplicationsTab: search, CSV export, skeleton, toast - PipelineProductsTab: search, delete confirmation dialog, skeleton, toast - PipelineInventoryTab: toast notifications - PipelineDashboardTab: skeleton loading, refresh, export summary, toast - PipelinePOSDomainConfigTab: toast on save
· kamo-internal
POS domain config, retail order line items, dynamic pipeline tabs
- Add getPOSConfig/updatePOSConfig to posApi, posDomainLabels utility - Extend createOrder with lineItems, add getOrder, RetailOrderLineItem type - PipelineOrdersTab: product-based order creation, line item selector, order detail drawer - Pipeline: dynamic tabs from POS config, domain-specific titles (Orders, Applications) - PipelineDashboardTab: metrics filtered by enabled domains - Settings POS: Domains tab with enable/disable toggles for RETAIL, MORTGAGE, RENTAL, VENDOR, SUBSCRIPTION - Empty state when no domains enabled
· SecurityService
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
· kamo-shared-library
添加 POS/ 库存域实体、 DTO、 repos 和服务
- 增加POS豆(零售、租赁、抵押、订阅、供应商) - 添加零售产品、零售库存、零售订单、抵押款App DVDO - 添加零售服务、零售库存服务、软件服务 - 增加零售、抵押、租赁、订阅、供应商的储存库 - 更新嵌入状态
· kamo-shared-library
获取线索时与供应商的关系
更新 leadsByOrganizationId( ) 以充电@ Translient sparker 字段,用于每个有供应商的线索。 这确保了供应商 和产品数据可供铅发组织制图.
· kamo-internal
Improve lead grid with base30 IDs, raven icon, All Markets tab, and Market column
- Add toBase30() function for consistent ID representation across LeadManager and DocManager - Fix Grim status icon in tabs to use raven.ico (matching the datagrid status renderer) - Add "All Markets" tab as first option in market tabs to show leads from all markets - Add Market column between Street and Status columns in datagrid - Update currentMarket logic to support tab 0 as "All Markets" (no filter)
· kamo-shared-library
添加状态、子状态、来源和日期创建字段
- 添加状态、子状态、来源、日期和主动字段到牵头实体 - 更新前端相容字段(状态、子状态、来源、)的铅DTO 创建At,主要联系人,销售商,产品,代理商 - 为前端兼容性而添加的初级连接DTO - 添加了 @ PrePersist 钩钩以设定新线索的默认值 此处修正了线索页数据网格, 显示用于联系人、 状态的空列, 子状态、供应商、产品、源、代理、创建和指定字段.
· kamo-shared-library
从字符串到雇员参考
- 将铅.指定用户(String)改为铅.指定雇员(雇员) - 添加铅分配实体,以跟踪任务历史 - 添加了各种派任类型的铅分配图 - 新增铅信用实体,用于跟踪雇员铅信用 - 增加领导拨款实体,以管理雇员领导拨款 - 增加相应的储存库和服务 - 更新领导服务,自动记录任务 - 更新了铅DTO,并要求为新结构提供DTO - 增加会员服务方法,按组织招聘雇员 - 数据库日期时间字段现在使用 DB 级别默认值来表示一致性
· KlusterServices
Add HTTP to HTTPS redirect middleware and IngressRoute
- Create redirect-to-https middleware for permanent redirects - Add catch-all IngressRoute on web entrypoint to redirect all kamocrm.com domains to HTTPS - Fixes 404 errors when users access sites via HTTP instead of HTTPS
· KlusterServices
Add automatic *** secret creation
- Create *** secret on both k1m1 and k2m1 - Secret contains MINIO_CURRENT_HOST pointing to k0m1 MinIO instance (http://10.8.0.1:9000) - Fixes kamowssecurity-deployment CreateContainerConfigError
· kamo-internal
Reorganize form layout for better field grouping
· kamo-internal
Reposition Add Lead tab and improve market tab UX
· kamo-internal
Add live tab label updates based on first/last name input
· kamo-internal
Convert Add Lead button to tab and implement data persistence
· kamo-internal
Overhaul lead creation UI with pane-based interface
· kamo-internal
将添加线索按钮以过滤行并转换为弹出对话框
· kamo-internal
Reorganize lead creation form into elegant two-column layout
- 将窗体字段分为两个栏:联系人/个人信息(左)和铅/企业信息(右) - 增加具有半透明背景、边框和阴影的视觉分离 - 改进形式组织和视觉结构 - 维持移动设备的响应性设计
· kamo-marketing
启用涡轮包以更快地构建 (Next.js 16)
· kamo-register
启用涡轮包以更快地构建 (Next.js 16)
· kamo-login
启用涡轮包以更快地构建 (Next.js 16)
· kamo-internal
启用涡轮包以更快地构建 (Next.js 16)
· kamo-internal
重新设计包含完整名称字段的铅创建格式,适当降幅大小,乡村字段,并改进电话布局
· kamo-internal
用现代UI增强铅创建形式,验证,错误处理,并改进UX
· kamo-shared-library
添加电话扩展支持到 CreateLead Request, 更新Lead Request, 以及 LeadDTO
· kamo-internal
添加铅矿、销售商/产品、最佳接触 时间、电话扩展/iText和住宅抵押区,以引导创建形式
· kamo-shared-library
将销售 SubType 字段添加到 MainMarketDTO 中用于抵押字段检测
- 添加销售 SubType 字段,以区分母型 SaleType 和子型 - 当SaleType有父母(例如,RESIDENTIAL MORTGAGE)时,销售Type成为父母(服务),销售SubType成为孩子(RESIDENTIAL MORTGAGE) 这使得前端能够正确检测何时显示来自Lead Clear Mortgage的抵押地. 贾瓦
· kamo-internal
Add missing Next.js API routes for leads endpoints
- Added /api/security/leads route for GET (all leads) and POST (create lead) - Added /api/security/leads/[id] route for GET, PUT, DELETE operations - Added **************** route for market configuration - Fixes 'Unknown error' when accessing /leads page by properly proxying requests to backend
· SecurityService
Add backend validation for required fields in lead imports
- Add validateRequiredFields method to check required fields before import - Validate email, firstName, and lastName are present - Validate mortgage-specific fields (loanAmount) when market is mortgage type - Skip rows with missing required fields and add to error list - Use LeadMarketService to determine market type for validation
· kamo-internal
Add validation for required fields in lead imports
- Mark email, firstName, and lastName as required fields in leadFields.ts - Add validation in handleStartImport to check all required fields are mapped - Add validation in ReviewStep to show errors for missing required field mappings - Display user-friendly error messages when required fields are missing
