feat: 优化前端界面,新增数据仪表板、全局搜索与快速添加功能,并改进客户管理导航。

This commit is contained in:
zulifeng 2026-01-28 21:03:33 +08:00
parent c1d1be8e27
commit 04968517b6

View File

@ -1,26 +1,35 @@
<!DOCTYPE html> <!doctype html>
<html lang="zh-CN"> <html lang="zh-CN">
<head>
<head> <meta charset="UTF-8" />
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CRM客户管理系统</title> <title>CRM客户管理系统</title>
<link rel="stylesheet" href="/static/css/style.css?v=1.2"> <link rel="stylesheet" href="/static/css/style.css?v=1.2" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
/>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2"></script> <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2"></script>
</head> </head>
<body> <body>
<div class="app-container"> <div class="app-container">
<!-- Sidebar --> <!-- Sidebar -->
<aside class="sidebar" id="sidebar"> <aside class="sidebar" id="sidebar">
<div class="sidebar-header"> <div class="sidebar-header">
<div class="logo"> <div class="logo">
<svg width="24" height="24" viewBox="0 0 50 43" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg
width="24"
height="24"
viewBox="0 0 50 43"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path <path
d="M30.8799 0.0634766C32.1561 0.191098 35.0914 0.25518 40.1953 3.12598C46.9838 7.51557 49.4463 14.7383 49.8291 17.8008C50.297 20.8846 50.084 28.5324 45.4902 34.4531C40.8966 40.3736 33.8362 42.194 30.8799 42.3643H9.95215V31.1357C4.45541 31.1354 0 26.6803 0 21.1836C2.62861e-05 15.6869 4.45542 11.2308 9.95215 11.2305V0H30.8799V0.0634766ZM30.8799 11.3564C28.7219 11.1986 15.882 11.302 11.4531 11.3428C16.2383 12.0662 19.9062 16.1966 19.9062 21.1836C19.9062 26.1365 16.288 30.2432 11.5508 31.0078H30.8799C33.2407 30.4973 39.1744 27.7535 38.6641 20.2891C38.2557 14.3174 33.3045 11.8457 30.8799 11.3564Z" d="M30.8799 0.0634766C32.1561 0.191098 35.0914 0.25518 40.1953 3.12598C46.9838 7.51557 49.4463 14.7383 49.8291 17.8008C50.297 20.8846 50.084 28.5324 45.4902 34.4531C40.8966 40.3736 33.8362 42.194 30.8799 42.3643H9.95215V31.1357C4.45541 31.1354 0 26.6803 0 21.1836C2.62861e-05 15.6869 4.45542 11.2308 9.95215 11.2305V0H30.8799V0.0634766ZM30.8799 11.3564C28.7219 11.1986 15.882 11.302 11.4531 11.3428C16.2383 12.0662 19.9062 16.1966 19.9062 21.1836C19.9062 26.1365 16.288 30.2432 11.5508 31.0078H30.8799C33.2407 30.4973 39.1744 27.7535 38.6641 20.2891C38.2557 14.3174 33.3045 11.8457 30.8799 11.3564Z"
fill="currentColor"></path> fill="currentColor"
></path>
</svg> </svg>
<span>CRM系统</span> <span>CRM系统</span>
</div> </div>
@ -86,17 +95,33 @@
<div class="global-search-container"> <div class="global-search-container">
<div class="search-box"> <div class="search-box">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
<input type="text" id="globalSearchInput" placeholder="搜索客户、进度、跟进..." autocomplete="off"> <input
type="text"
id="globalSearchInput"
placeholder="搜索客户、进度、跟进..."
autocomplete="off"
/>
<kbd class="search-shortcut">⌘K</kbd> <kbd class="search-shortcut">⌘K</kbd>
</div> </div>
<!-- Search Results Dropdown --> <!-- Search Results Dropdown -->
<div class="search-results-dropdown" id="searchResultsDropdown" style="display: none;"> <div
class="search-results-dropdown"
id="searchResultsDropdown"
style="display: none"
>
<div class="search-history" id="searchHistory"> <div class="search-history" id="searchHistory">
<div class="search-section-title"><i class="fas fa-history"></i> 搜索历史</div> <div class="search-section-title">
<div class="search-history-items" id="searchHistoryItems"></div> <i class="fas fa-history"></i> 搜索历史
</div>
<div
class="search-history-items"
id="searchHistoryItems"
></div>
</div> </div>
<div class="search-results" id="searchResults"> <div class="search-results" id="searchResults">
<div class="search-section-title"><i class="fas fa-search"></i> 搜索结果</div> <div class="search-section-title">
<i class="fas fa-search"></i> 搜索结果
</div>
<div class="search-results-items" id="searchResultsItems"> <div class="search-results-items" id="searchResultsItems">
<div class="search-empty">输入关键词开始搜索...</div> <div class="search-empty">输入关键词开始搜索...</div>
</div> </div>
@ -111,7 +136,11 @@
<span>快速添加</span> <span>快速添加</span>
<i class="fas fa-caret-down"></i> <i class="fas fa-caret-down"></i>
</button> </button>
<div class="quick-add-dropdown" id="headerQuickAddDropdown" style="display: none;"> <div
class="quick-add-dropdown"
id="headerQuickAddDropdown"
style="display: none"
>
<div class="quick-add-menu-item" data-action="trial"> <div class="quick-add-menu-item" data-action="trial">
<i class="fas fa-clock"></i> <i class="fas fa-clock"></i>
<span>添加试用客户</span> <span>添加试用客户</span>
@ -127,7 +156,6 @@
</div> </div>
</div> </div>
<button class="icon-btn" id="logoutBtn" title="退出登录"> <button class="icon-btn" id="logoutBtn" title="退出登录">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
</button> </button>
@ -175,11 +203,15 @@
</div> </div>
<div class="filter-group"> <div class="filter-group">
<label for="customerStartDate">开始日期:</label> <label for="customerStartDate">开始日期:</label>
<input type="date" id="customerStartDate" class="filter-input"> <input
type="date"
id="customerStartDate"
class="filter-input"
/>
</div> </div>
<div class="filter-group"> <div class="filter-group">
<label for="customerEndDate">结束日期:</label> <label for="customerEndDate">结束日期:</label>
<input type="date" id="customerEndDate" class="filter-input"> <input type="date" id="customerEndDate" class="filter-input" />
</div> </div>
</div> </div>
@ -188,15 +220,27 @@
<div class="card-header"> <div class="card-header">
<!-- Tab Navigation (Left Aligned) --> <!-- Tab Navigation (Left Aligned) -->
<div class="customer-tabs"> <div class="customer-tabs">
<button class="customer-tab active" data-tab="progress-list" id="progressListTab"> <button
class="customer-tab active"
data-tab="progress-list"
id="progressListTab"
>
<i class="fas fa-table"></i> 客户进度 <i class="fas fa-table"></i> 客户进度
</button> </button>
<button class="customer-tab" data-tab="weekly-summary" id="weeklySummaryTab"> <button
class="customer-tab"
data-tab="weekly-summary"
id="weeklySummaryTab"
>
<i class="fas fa-file-alt"></i> 周报汇总 <i class="fas fa-file-alt"></i> 周报汇总
</button> </button>
</div> </div>
<div class="table-actions"> <div class="table-actions">
<button id="refreshCustomersBtn" class="icon-btn" title="刷新"> <button
id="refreshCustomersBtn"
class="icon-btn"
title="刷新"
>
<i class="fas fa-sync-alt"></i> <i class="fas fa-sync-alt"></i>
</button> </button>
<button id="exportCustomersBtn" class="icon-btn" title="导出"> <button id="exportCustomersBtn" class="icon-btn" title="导出">
@ -222,8 +266,7 @@
<th>操作</th> <th>操作</th>
</tr> </tr>
</thead> </thead>
<tbody id="customerTableBody"> <tbody id="customerTableBody"></tbody>
</tbody>
</table> </table>
</div> </div>
@ -239,8 +282,7 @@
<button id="prevPage" class="pagination-btn" disabled> <button id="prevPage" class="pagination-btn" disabled>
<i class="fas fa-angle-left"></i> <i class="fas fa-angle-left"></i>
</button> </button>
<div id="pageNumbers" class="page-numbers"> <div id="pageNumbers" class="page-numbers"></div>
</div>
<button id="nextPage" class="pagination-btn" disabled> <button id="nextPage" class="pagination-btn" disabled>
<i class="fas fa-angle-right"></i> <i class="fas fa-angle-right"></i>
</button> </button>
@ -267,21 +309,40 @@
<span id="currentWeekRange">本周</span> <span id="currentWeekRange">本周</span>
</div> </div>
<div class="week-navigation"> <div class="week-navigation">
<button id="prevWeekBtn" class="week-nav-btn" title="上一周"> <button
id="prevWeekBtn"
class="week-nav-btn"
title="上一周"
>
<i class="fas fa-chevron-left"></i> <i class="fas fa-chevron-left"></i>
</button> </button>
<button id="currentWeekBtn" class="week-nav-btn" title="回到本周"> <button
id="currentWeekBtn"
class="week-nav-btn"
title="回到本周"
>
<i class="fas fa-home"></i> 本周 <i class="fas fa-home"></i> 本周
</button> </button>
<button id="nextWeekBtn" class="week-nav-btn" title="下一周"> <button
id="nextWeekBtn"
class="week-nav-btn"
title="下一周"
>
<i class="fas fa-chevron-right"></i> <i class="fas fa-chevron-right"></i>
</button> </button>
</div> </div>
<button id="exportWeeklySummaryBtn" class="btn-secondary" title="导出周报"> <button
id="exportWeeklySummaryBtn"
class="btn-secondary"
title="导出周报"
>
<i class="fas fa-file-export"></i> 导出周报 <i class="fas fa-file-export"></i> 导出周报
</button> </button>
</div> </div>
<div id="weeklySummaryContainer" class="weekly-summary-container"> <div
id="weeklySummaryContainer"
class="weekly-summary-container"
>
<!-- Weekly summary cards will be rendered here --> <!-- Weekly summary cards will be rendered here -->
<div class="weekly-summary-empty"> <div class="weekly-summary-empty">
<i class="fas fa-inbox"></i> <i class="fas fa-inbox"></i>
@ -295,7 +356,7 @@
<!-- Trial Periods Section --> <!-- Trial Periods Section -->
<section id="trialPeriodsSection" class="content-section"> <section id="trialPeriodsSection" class="content-section">
<div class="section-title" style="justify-content: flex-end;"> <div class="section-title" style="justify-content: flex-end">
<button id="addTrialBtn" class="btn-primary"> <button id="addTrialBtn" class="btn-primary">
<i class="fas fa-plus"></i> <i class="fas fa-plus"></i>
添加客户 添加客户
@ -306,11 +367,19 @@
<div class="filter-bar"> <div class="filter-bar">
<div class="filter-group"> <div class="filter-group">
<label for="trialStartDateFilter">开始日期:</label> <label for="trialStartDateFilter">开始日期:</label>
<input type="date" id="trialStartDateFilter" class="filter-input"> <input
type="date"
id="trialStartDateFilter"
class="filter-input"
/>
</div> </div>
<div class="filter-group"> <div class="filter-group">
<label for="trialEndDateFilter">结束日期:</label> <label for="trialEndDateFilter">结束日期:</label>
<input type="date" id="trialEndDateFilter" class="filter-input"> <input
type="date"
id="trialEndDateFilter"
class="filter-input"
/>
</div> </div>
<div class="filter-group"> <div class="filter-group">
<label for="trialSortOrder">排序:</label> <label for="trialSortOrder">排序:</label>
@ -321,8 +390,8 @@
</div> </div>
</div> </div>
<div class="trial-periods-container"> <div class="card trial-periods-container">
<div class="table-container"> <div class="card-body table-container">
<table> <table>
<thead> <thead>
<tr> <tr>
@ -354,8 +423,7 @@
<button id="trialPrevPage" class="pagination-btn" disabled> <button id="trialPrevPage" class="pagination-btn" disabled>
<i class="fas fa-angle-left"></i> <i class="fas fa-angle-left"></i>
</button> </button>
<div id="trialPageNumbers" class="page-numbers"> <div id="trialPageNumbers" class="page-numbers"></div>
</div>
<button id="trialNextPage" class="pagination-btn" disabled> <button id="trialNextPage" class="pagination-btn" disabled>
<i class="fas fa-angle-right"></i> <i class="fas fa-angle-right"></i>
</button> </button>
@ -419,9 +487,9 @@
<div class="dashboard-filters"> <div class="dashboard-filters">
<div class="filter-group"> <div class="filter-group">
<label>日期范围:</label> <label>日期范围:</label>
<input type="date" id="startDate"> <input type="date" id="startDate" />
<span></span> <span></span>
<input type="date" id="endDate"> <input type="date" id="endDate" />
<button id="applyFilters" class="btn-primary"> <button id="applyFilters" class="btn-primary">
<i class="fas fa-filter"></i> <i class="fas fa-filter"></i>
应用筛选 应用筛选
@ -449,7 +517,10 @@
<div class="card-header"> <div class="card-header">
<h3><i class="fas fa-chart-doughnut"></i> 客户类型</h3> <h3><i class="fas fa-chart-doughnut"></i> 客户类型</h3>
<div class="chart-controls"> <div class="chart-controls">
<select id="typeChartFieldSelect" class="chart-field-select"> <select
id="typeChartFieldSelect"
class="chart-field-select"
>
<option value="customerName">客户</option> <option value="customerName">客户</option>
<option value="type">类型</option> <option value="type">类型</option>
<option value="module">模块</option> <option value="module">模块</option>
@ -463,8 +534,8 @@
</div> </div>
<!-- Trend Line Chart --> <!-- Trend Line Chart -->
<div class="dashboard-grid" style="margin-top: 20px;"> <div class="dashboard-grid" style="margin-top: 20px">
<div class="card chart-card" style="grid-column: 1 / -1;"> <div class="card chart-card" style="grid-column: 1 / -1">
<div class="card-header"> <div class="card-header">
<h3><i class="fas fa-chart-line"></i> 时间趋势分析</h3> <h3><i class="fas fa-chart-line"></i> 时间趋势分析</h3>
<div class="chart-controls"> <div class="chart-controls">
@ -487,13 +558,26 @@
<section id="followupSection" class="content-section"> <section id="followupSection" class="content-section">
<!-- Smart Reminder Banner --> <!-- Smart Reminder Banner -->
<div class="smart-reminder" id="followupReminder"> <div class="smart-reminder" id="followupReminder">
<div class="reminder-item warning" id="todayFollowupReminder" style="display: none;"> <div
class="reminder-item warning"
id="todayFollowupReminder"
style="display: none"
>
<i class="fas fa-exclamation-circle"></i> <i class="fas fa-exclamation-circle"></i>
<span>今日待跟进:<strong id="todayFollowupCount">0</strong> 个客户</span> <span
>今日待跟进:<strong id="todayFollowupCount">0</strong>
个客户</span
>
</div> </div>
<div class="reminder-item urgent" id="overdueReminder" style="display: none;"> <div
class="reminder-item urgent"
id="overdueReminder"
style="display: none"
>
<i class="fas fa-bell"></i> <i class="fas fa-bell"></i>
<span>逾期未跟进:<strong id="overdueCount">0</strong> 个客户</span> <span
>逾期未跟进:<strong id="overdueCount">0</strong> 个客户</span
>
</div> </div>
</div> </div>
@ -505,7 +589,11 @@
</div> </div>
<!-- Follow-up Form --> <!-- Follow-up Form -->
<div class="card" id="followupFormCard" style="display: none; margin-bottom: 20px;"> <div
class="card"
id="followupFormCard"
style="display: none; margin-bottom: 20px"
>
<div class="card-header"> <div class="card-header">
<h3><i class="fas fa-plus-circle"></i> 新增客户跟进</h3> <h3><i class="fas fa-plus-circle"></i> 新增客户跟进</h3>
</div> </div>
@ -513,15 +601,26 @@
<form id="followupForm"> <form id="followupForm">
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="followupCustomerName">客户名称 <span <label for="followupCustomerName"
style="color: red;">*</span></label> >客户名称 <span style="color: red">*</span></label
<select id="followupCustomerName" name="customerName" required> >
<select
id="followupCustomerName"
name="customerName"
required
>
<option value="">请选择客户</option> <option value="">请选择客户</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="followupDealStatus">成交状态 <span style="color: red;">*</span></label> <label for="followupDealStatus"
<select id="followupDealStatus" name="dealStatus" required> >成交状态 <span style="color: red">*</span></label
>
<select
id="followupDealStatus"
name="dealStatus"
required
>
<option value="">请选择</option> <option value="">请选择</option>
<option value="未成交">未成交</option> <option value="未成交">未成交</option>
<option value="已成交">已成交</option> <option value="已成交">已成交</option>
@ -530,9 +629,14 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="followupCustomerLevel">客户级别 <span <label for="followupCustomerLevel"
style="color: red;">*</span></label> >客户级别 <span style="color: red">*</span></label
<select id="followupCustomerLevel" name="customerLevel" required> >
<select
id="followupCustomerLevel"
name="customerLevel"
required
>
<option value="">请选择</option> <option value="">请选择</option>
<option value="A">A级 (重点客户)</option> <option value="A">A级 (重点客户)</option>
<option value="B">B级 (潜在客户)</option> <option value="B">B级 (潜在客户)</option>
@ -540,20 +644,38 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="followupIndustry">客户行业 <span style="color: red;">*</span></label> <label for="followupIndustry"
<input type="text" id="followupIndustry" name="industry" required> >客户行业 <span style="color: red">*</span></label
>
<input
type="text"
id="followupIndustry"
name="industry"
required
/>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="followupTime">跟进时间 <span style="color: red;">*</span></label> <label for="followupTime"
<input type="datetime-local" id="followupTime" name="followUpTime" required> >跟进时间 <span style="color: red">*</span></label
>
<input
type="datetime-local"
id="followupTime"
name="followUpTime"
required
/>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn-primary"> <button type="submit" class="btn-primary">
<i class="fas fa-save"></i> <i class="fas fa-save"></i>
确认 确认
</button> </button>
<button type="button" class="btn-secondary" id="cancelFollowupBtn"> <button
type="button"
class="btn-secondary"
id="cancelFollowupBtn"
>
<i class="fas fa-times"></i> <i class="fas fa-times"></i>
取消 取消
</button> </button>
@ -567,7 +689,11 @@
<div class="card-header"> <div class="card-header">
<h3><i class="fas fa-list"></i> 客户跟进列表</h3> <h3><i class="fas fa-list"></i> 客户跟进列表</h3>
<div class="table-actions"> <div class="table-actions">
<button id="refreshFollowupsBtn" class="icon-btn" title="刷新"> <button
id="refreshFollowupsBtn"
class="icon-btn"
title="刷新"
>
<i class="fas fa-sync-alt"></i> <i class="fas fa-sync-alt"></i>
</button> </button>
</div> </div>
@ -586,8 +712,7 @@
<th>操作</th> <th>操作</th>
</tr> </tr>
</thead> </thead>
<tbody id="followupTableBody"> <tbody id="followupTableBody"></tbody>
</tbody>
</table> </table>
</div> </div>
@ -597,18 +722,33 @@
<span id="followupPaginationInfo">显示 0-0 共 0 条</span> <span id="followupPaginationInfo">显示 0-0 共 0 条</span>
</div> </div>
<div class="pagination-controls"> <div class="pagination-controls">
<button id="followupFirstPage" class="pagination-btn" disabled> <button
id="followupFirstPage"
class="pagination-btn"
disabled
>
<i class="fas fa-angle-double-left"></i> <i class="fas fa-angle-double-left"></i>
</button> </button>
<button id="followupPrevPage" class="pagination-btn" disabled> <button
id="followupPrevPage"
class="pagination-btn"
disabled
>
<i class="fas fa-angle-left"></i> <i class="fas fa-angle-left"></i>
</button> </button>
<div id="followupPageNumbers" class="page-numbers"> <div id="followupPageNumbers" class="page-numbers"></div>
</div> <button
<button id="followupNextPage" class="pagination-btn" disabled> id="followupNextPage"
class="pagination-btn"
disabled
>
<i class="fas fa-angle-right"></i> <i class="fas fa-angle-right"></i>
</button> </button>
<button id="followupLastPage" class="pagination-btn" disabled> <button
id="followupLastPage"
class="pagination-btn"
disabled
>
<i class="fas fa-angle-double-right"></i> <i class="fas fa-angle-double-right"></i>
</button> </button>
</div> </div>
@ -640,7 +780,11 @@
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="createIntendedProduct">咨询时间</label> <label for="createIntendedProduct">咨询时间</label>
<input type="date" id="createIntendedProduct" name="intendedProduct"> <input
type="date"
id="createIntendedProduct"
name="intendedProduct"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="createCustomerName">客户名称</label> <label for="createCustomerName">客户名称</label>
@ -652,16 +796,20 @@
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="createVersion">版本</label> <label for="createVersion">版本</label>
<input type="text" id="createVersion" name="version"> <input type="text" id="createVersion" name="version" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="createType">类型</label> <label for="createType">类型</label>
<input type="text" id="createType" name="type"> <input type="text" id="createType" name="type" />
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="createDescription">描述</label> <label for="createDescription">描述</label>
<textarea id="createDescription" name="description" rows="3"></textarea> <textarea
id="createDescription"
name="description"
rows="3"
></textarea>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="createSolution">解决方案</label> <label for="createSolution">解决方案</label>
@ -680,8 +828,13 @@
<option value="镜像管理">镜像管理</option> <option value="镜像管理">镜像管理</option>
<option value="其他">其他</option> <option value="其他">其他</option>
</select> </select>
<input type="text" id="createModuleOther" name="moduleOther" placeholder="请输入其他模块名称" <input
style="display: none; margin-top: 8px;"> type="text"
id="createModuleOther"
name="moduleOther"
placeholder="请输入其他模块名称"
style="display: none; margin-top: 8px"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="createStatusProgress">状态与进度</label> <label for="createStatusProgress">状态与进度</label>
@ -723,7 +876,13 @@
<label for="importFile">选择文件支持CSV和XLSX</label> <label for="importFile">选择文件支持CSV和XLSX</label>
<div class="file-upload"> <div class="file-upload">
<i class="fas fa-cloud-upload-alt"></i> <i class="fas fa-cloud-upload-alt"></i>
<input type="file" id="importFile" name="file" accept=".csv,.xlsx" required> <input
type="file"
id="importFile"
name="file"
accept=".csv,.xlsx"
required
/>
<span id="fileName">选择文件...</span> <span id="fileName">选择文件...</span>
</div> </div>
</div> </div>
@ -752,30 +911,38 @@
<div class="modal-body"> <div class="modal-body">
<!-- Customer Form --> <!-- Customer Form -->
<form id="editCustomerForm"> <form id="editCustomerForm">
<input type="hidden" id="editCustomerId"> <input type="hidden" id="editCustomerId" />
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="editIntendedProduct">咨询时间</label> <label for="editIntendedProduct">咨询时间</label>
<input type="date" id="editIntendedProduct" name="intendedProduct"> <input
type="date"
id="editIntendedProduct"
name="intendedProduct"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editCustomerName">客户名称</label> <label for="editCustomerName">客户名称</label>
<input type="text" id="editCustomerName" name="customerName"> <input type="text" id="editCustomerName" name="customerName" />
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="editVersion">版本</label> <label for="editVersion">版本</label>
<input type="text" id="editVersion" name="version"> <input type="text" id="editVersion" name="version" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editType">类型</label> <label for="editType">类型</label>
<input type="text" id="editType" name="type"> <input type="text" id="editType" name="type" />
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editDescription">描述</label> <label for="editDescription">描述</label>
<textarea id="editDescription" name="description" rows="3"></textarea> <textarea
id="editDescription"
name="description"
rows="3"
></textarea>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editSolution">解决方案</label> <label for="editSolution">解决方案</label>
@ -794,8 +961,13 @@
<option value="镜像管理">镜像管理</option> <option value="镜像管理">镜像管理</option>
<option value="其他">其他</option> <option value="其他">其他</option>
</select> </select>
<input type="text" id="editModuleOther" name="moduleOther" placeholder="请输入其他模块名称" <input
style="display: none; margin-top: 8px;"> type="text"
id="editModuleOther"
name="moduleOther"
placeholder="请输入其他模块名称"
style="display: none; margin-top: 8px"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editStatusProgress">状态与进度</label> <label for="editStatusProgress">状态与进度</label>
@ -835,52 +1007,104 @@
<form id="addTrialPeriodForm"> <form id="addTrialPeriodForm">
<div class="form-group"> <div class="form-group">
<label for="trialCustomerInput">客户名称</label> <label for="trialCustomerInput">客户名称</label>
<input type="text" id="trialCustomerInput" name="customerName" placeholder="请输入客户名称" required> <input
type="text"
id="trialCustomerInput"
name="customerName"
placeholder="请输入客户名称"
required
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="trialCustomerSource">客户来源</label> <label for="trialCustomerSource">客户来源</label>
<input type="text" id="trialCustomerSource" name="source" placeholder="请输入客户来源(如:官网、展会、推荐等)"> <input
type="text"
id="trialCustomerSource"
name="source"
placeholder="请输入客户来源(如:官网、展会、推荐等)"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>意向产品(可多选)</label> <label>意向产品(可多选)</label>
<div class="checkbox-group" id="trialIntendedProductGroup"> <div class="checkbox-group" id="trialIntendedProductGroup">
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="intendedProduct" value="数据闭环"> <input
type="checkbox"
name="intendedProduct"
value="数据闭环"
/>
<span>数据闭环</span> <span>数据闭环</span>
</label> </label>
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="intendedProduct" value="robogo"> <input
type="checkbox"
name="intendedProduct"
value="robogo"
/>
<span>robogo</span> <span>robogo</span>
</label> </label>
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="intendedProduct" value="其他" <input
id="trialIntendedProductOtherCheckbox"> type="checkbox"
name="intendedProduct"
value="其他"
id="trialIntendedProductOtherCheckbox"
/>
<span>其他</span> <span>其他</span>
</label> </label>
</div> </div>
<input type="text" id="trialIntendedProductOther" name="intendedProductOther" <input
placeholder="请输入其他意向产品" style="display: none; margin-top: 8px;"> type="text"
id="trialIntendedProductOther"
name="intendedProductOther"
placeholder="请输入其他意向产品"
style="display: none; margin-top: 8px"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>是否试用</label> <label>是否试用</label>
<div style="display: flex; gap: 20px; align-items: center;"> <div style="display: flex; gap: 20px; align-items: center">
<label style="display: flex; align-items: center; gap: 5px; cursor: pointer;"> <label
<input type="radio" name="isTrial" value="true" checked> style="
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
"
>
<input type="radio" name="isTrial" value="true" checked />
<span></span> <span></span>
</label> </label>
<label style="display: flex; align-items: center; gap: 5px; cursor: pointer;"> <label
<input type="radio" name="isTrial" value="false"> style="
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
"
>
<input type="radio" name="isTrial" value="false" />
<span></span> <span></span>
</label> </label>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="trialStartTime">开始时间</label> <label for="trialStartTime">开始时间</label>
<input type="datetime-local" id="trialStartTime" name="startTime" required> <input
type="datetime-local"
id="trialStartTime"
name="startTime"
required
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="trialEndTime">结束时间</label> <label for="trialEndTime">结束时间</label>
<input type="datetime-local" id="trialEndTime" name="endTime" required> <input
type="datetime-local"
id="trialEndTime"
name="endTime"
required
/>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn-primary"> <button type="submit" class="btn-primary">
@ -906,51 +1130,97 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form id="editTrialPeriodForm"> <form id="editTrialPeriodForm">
<input type="hidden" id="editTrialPeriodId"> <input type="hidden" id="editTrialPeriodId" />
<div class="form-group"> <div class="form-group">
<label for="editTrialCustomerSource">客户来源</label> <label for="editTrialCustomerSource">客户来源</label>
<input type="text" id="editTrialCustomerSource" name="source" placeholder="请输入客户来源:如社区、销售、推荐等"> <input
type="text"
id="editTrialCustomerSource"
name="source"
placeholder="请输入客户来源:如社区、销售、推荐等"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>意向产品(可多选)</label> <label>意向产品(可多选)</label>
<div class="checkbox-group" id="editTrialIntendedProductGroup"> <div class="checkbox-group" id="editTrialIntendedProductGroup">
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="editIntendedProduct" value="数据闭环"> <input
type="checkbox"
name="editIntendedProduct"
value="数据闭环"
/>
<span>数据闭环</span> <span>数据闭环</span>
</label> </label>
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="editIntendedProduct" value="robogo"> <input
type="checkbox"
name="editIntendedProduct"
value="robogo"
/>
<span>robogo</span> <span>robogo</span>
</label> </label>
<label class="checkbox-label"> <label class="checkbox-label">
<input type="checkbox" name="editIntendedProduct" value="其他" <input
id="editTrialIntendedProductOtherCheckbox"> type="checkbox"
name="editIntendedProduct"
value="其他"
id="editTrialIntendedProductOtherCheckbox"
/>
<span>其他</span> <span>其他</span>
</label> </label>
</div> </div>
<input type="text" id="editTrialIntendedProductOther" name="intendedProductOther" <input
placeholder="请输入其他意向产品" style="display: none; margin-top: 8px;"> type="text"
id="editTrialIntendedProductOther"
name="intendedProductOther"
placeholder="请输入其他意向产品"
style="display: none; margin-top: 8px"
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>是否试用</label> <label>是否试用</label>
<div style="display: flex; gap: 20px; align-items: center;"> <div style="display: flex; gap: 20px; align-items: center">
<label style="display: flex; align-items: center; gap: 5px; cursor: pointer;"> <label
<input type="radio" name="editIsTrial" value="true" checked> style="
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
"
>
<input type="radio" name="editIsTrial" value="true" checked />
<span></span> <span></span>
</label> </label>
<label style="display: flex; align-items: center; gap: 5px; cursor: pointer;"> <label
<input type="radio" name="editIsTrial" value="false"> style="
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
"
>
<input type="radio" name="editIsTrial" value="false" />
<span></span> <span></span>
</label> </label>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editTrialStartTime">开始时间</label> <label for="editTrialStartTime">开始时间</label>
<input type="datetime-local" id="editTrialStartTime" name="startTime" required> <input
type="datetime-local"
id="editTrialStartTime"
name="startTime"
required
/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editTrialEndTime">结束时间</label> <label for="editTrialEndTime">结束时间</label>
<input type="datetime-local" id="editTrialEndTime" name="endTime" required> <input
type="datetime-local"
id="editTrialEndTime"
name="endTime"
required
/>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn-primary"> <button type="submit" class="btn-primary">
@ -978,13 +1248,21 @@
<form id="addFollowupModalForm"> <form id="addFollowupModalForm">
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="addFollowupCustomerName">客户名称 <span style="color: red;">*</span></label> <label for="addFollowupCustomerName"
<select id="addFollowupCustomerName" name="customerName" required> >客户名称 <span style="color: red">*</span></label
>
<select
id="addFollowupCustomerName"
name="customerName"
required
>
<option value="">请选择客户</option> <option value="">请选择客户</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="addFollowupDealStatus">成交状态 <span style="color: red;">*</span></label> <label for="addFollowupDealStatus"
>成交状态 <span style="color: red">*</span></label
>
<select id="addFollowupDealStatus" name="dealStatus" required> <select id="addFollowupDealStatus" name="dealStatus" required>
<option value="">请选择</option> <option value="">请选择</option>
<option value="未成交">未成交</option> <option value="未成交">未成交</option>
@ -994,8 +1272,14 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="addFollowupCustomerLevel">客户级别 <span style="color: red;">*</span></label> <label for="addFollowupCustomerLevel"
<select id="addFollowupCustomerLevel" name="customerLevel" required> >客户级别 <span style="color: red">*</span></label
>
<select
id="addFollowupCustomerLevel"
name="customerLevel"
required
>
<option value="">请选择</option> <option value="">请选择</option>
<option value="A">A级 (重点客户)</option> <option value="A">A级 (重点客户)</option>
<option value="B">B级 (潜在客户)</option> <option value="B">B级 (潜在客户)</option>
@ -1003,13 +1287,27 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="addFollowupIndustry">客户行业 <span style="color: red;">*</span></label> <label for="addFollowupIndustry"
<input type="text" id="addFollowupIndustry" name="industry" required> >客户行业 <span style="color: red">*</span></label
>
<input
type="text"
id="addFollowupIndustry"
name="industry"
required
/>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="addFollowupTime">跟进时间 <span style="color: red;">*</span></label> <label for="addFollowupTime"
<input type="datetime-local" id="addFollowupTime" name="followUpTime" required> >跟进时间 <span style="color: red">*</span></label
>
<input
type="datetime-local"
id="addFollowupTime"
name="followUpTime"
required
/>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn-primary"> <button type="submit" class="btn-primary">
@ -1035,16 +1333,24 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form id="editFollowupForm"> <form id="editFollowupForm">
<input type="hidden" id="editFollowupId"> <input type="hidden" id="editFollowupId" />
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="editFollowupCustomerName">客户名称 <span style="color: red;">*</span></label> <label for="editFollowupCustomerName"
<select id="editFollowupCustomerName" name="customerName" required> >客户名称 <span style="color: red">*</span></label
>
<select
id="editFollowupCustomerName"
name="customerName"
required
>
<option value="">请选择客户</option> <option value="">请选择客户</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editFollowupDealStatus">成交状态 <span style="color: red;">*</span></label> <label for="editFollowupDealStatus"
>成交状态 <span style="color: red">*</span></label
>
<select id="editFollowupDealStatus" name="dealStatus" required> <select id="editFollowupDealStatus" name="dealStatus" required>
<option value="">请选择</option> <option value="">请选择</option>
<option value="未成交">未成交</option> <option value="未成交">未成交</option>
@ -1054,8 +1360,14 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="editFollowupCustomerLevel">客户级别 <span style="color: red;">*</span></label> <label for="editFollowupCustomerLevel"
<select id="editFollowupCustomerLevel" name="customerLevel" required> >客户级别 <span style="color: red">*</span></label
>
<select
id="editFollowupCustomerLevel"
name="customerLevel"
required
>
<option value="">请选择</option> <option value="">请选择</option>
<option value="A">A级 (重点客户)</option> <option value="A">A级 (重点客户)</option>
<option value="B">B级 (潜在客户)</option> <option value="B">B级 (潜在客户)</option>
@ -1063,13 +1375,27 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editFollowupIndustry">客户行业 <span style="color: red;">*</span></label> <label for="editFollowupIndustry"
<input type="text" id="editFollowupIndustry" name="industry" required> >客户行业 <span style="color: red">*</span></label
>
<input
type="text"
id="editFollowupIndustry"
name="industry"
required
/>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="editFollowupTime">跟进时间 <span style="color: red;">*</span></label> <label for="editFollowupTime"
<input type="datetime-local" id="editFollowupTime" name="followUpTime" required> >跟进时间 <span style="color: red">*</span></label
>
<input
type="datetime-local"
id="editFollowupTime"
name="followUpTime"
required
/>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn-primary"> <button type="submit" class="btn-primary">
@ -1086,10 +1412,8 @@
</div> </div>
</div> </div>
<script src="/static/js/trial-periods.js?v=1.3"></script> <script src="/static/js/trial-periods.js?v=1.3"></script>
<script src="/static/js/trial-periods-page.js?v=1.3"></script> <script src="/static/js/trial-periods-page.js?v=1.3"></script>
<script src="/static/js/main.js?v=1.4"></script> <script src="/static/js/main.js?v=1.4"></script>
</body> </body>
</html> </html>