Commit 51c3887d by suyuchen

feat(tickets): 重构工单管理界面并添加沟通功能

- 将服务管理重命名为收费管理 - 添加通信历史记录功能及样式 - 重置表格列结构,更新工单列表显示字段 - 添加服务订单号输入和显示功能 - 实现工单沟通弹窗和消息发送功能 - 添加工单删除确认功能 - 创建工单新增页面
parent 99f0dd86
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
</svg> </svg>
</div> </div>
<div class="nav-submenu"> <div class="nav-submenu">
<a href="客户信息.html" class="nav-subitem "> <!--<a href="客户信息.html" class="nav-subitem ">
客户信息 客户信息
</a> </a>-->
<a href="客户公司管理1.html" class="nav-subitem "> <a href="客户公司管理1.html" class="nav-subitem ">
客户公司管理 客户公司管理
</a> </a>
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
我的黄页 我的黄页
</a> </a>
</div> </div>
<div class="nav-item has-submenu expanded" onclick="toggleSubmenu(this)"> <!--<div class="nav-item has-submenu expanded" onclick="toggleSubmenu(this)">
<div style="display: flex; align-items: center; gap: 12px;"> <div style="display: flex; align-items: center; gap: 12px;">
<svg class="nav-icon" viewBox="0 0 20 20"> <svg class="nav-icon" viewBox="0 0 20 20">
<path d="M4 4h12a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2z"/> <path d="M4 4h12a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2z"/>
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
<a href="账户档案.html" class="nav-subitem "> <a href="账户档案.html" class="nav-subitem ">
账户档案 账户档案
</a> </a>
</div> </div>-->
<div class="nav-item has-submenu expanded" onclick="toggleSubmenu(this)"> <div class="nav-item has-submenu expanded" onclick="toggleSubmenu(this)">
<div style="display: flex; align-items: center; gap: 12px;"> <div style="display: flex; align-items: center; gap: 12px;">
<svg class="nav-icon" viewBox="0 0 20 20"> <svg class="nav-icon" viewBox="0 0 20 20">
......
...@@ -1343,6 +1343,7 @@ ...@@ -1343,6 +1343,7 @@
</div> </div>
</div> </div>
</div> </div>
<script src="./js.js"></script>
<script> <script>
let currentTab = 'issue'; let currentTab = 'issue';
...@@ -1842,7 +1843,6 @@ ...@@ -1842,7 +1843,6 @@
} }
</script> </script>
</body> </body>
<script src="./js.js"></script>
</html> </html>
...@@ -1562,7 +1562,7 @@ ...@@ -1562,7 +1562,7 @@
<span class="filter-tag active">全部</span> <span class="filter-tag active">全部</span>
<span class="filter-tag">待响应</span> <span class="filter-tag">待响应</span>
<span class="filter-tag">处理中</span> <span class="filter-tag">处理中</span>
<span class="filter-tag">待客户</span> <!-- <span class="filter-tag">待客户</span>-->
<span class="filter-tag">已关闭</span> <span class="filter-tag">已关闭</span>
<span class="filter-tag">SLA 预警</span> <span class="filter-tag">SLA 预警</span>
<span class="filter-tag">已逾期</span> <span class="filter-tag">已逾期</span>
...@@ -1599,7 +1599,7 @@ ...@@ -1599,7 +1599,7 @@
<th>创建时间</th> <th>创建时间</th>
<th>提交人员</th> <th>提交人员</th>
<th>更新时间</th> <th>更新时间</th>
<th>价格</th> <!-- <th>价格</th>-->
<th>SLA计时</th> <th>SLA计时</th>
<th>客户名称</th> <th>客户名称</th>
<th>服务订单号</th> <th>服务订单号</th>
...@@ -1623,7 +1623,7 @@ ...@@ -1623,7 +1623,7 @@
<td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">10:30:25</span></td> <td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">10:30:25</span></td>
<td>系统</td> <td>系统</td>
<td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">14:20:10</span></td> <td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">14:20:10</span></td>
<td>100 元</td> <!-- <td>100 元</td>-->
<td>2小时45分钟</td> <td>2小时45分钟</td>
<td>ABC 公司</td> <td>ABC 公司</td>
<td>SO-2024-001</td> <td>SO-2024-001</td>
...@@ -1632,7 +1632,7 @@ ...@@ -1632,7 +1632,7 @@
<td>中国</td> <td>中国</td>
<td> <td>
<div class="action-btns"> <div class="action-btns">
<button class="action-btn" onclick="openEditModal('TK-2024-001')">编辑</button> <!-- <button class="action-btn" onclick="openEditModal('TK-2024-001')">编辑</button>-->
<button class="action-btn" onclick="openDetailModal('TK-2024-001')">查看</button> <button class="action-btn" onclick="openDetailModal('TK-2024-001')">查看</button>
<button class="action-btn" onclick="openCommunicationModal('TK-2024-001')">沟通</button> <button class="action-btn" onclick="openCommunicationModal('TK-2024-001')">沟通</button>
<button class="action-btn" onclick="deleteTicket('TK-2024-001')">删除</button> <button class="action-btn" onclick="deleteTicket('TK-2024-001')">删除</button>
...@@ -1651,7 +1651,7 @@ ...@@ -1651,7 +1651,7 @@
<td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">09:15:30</span></td> <td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">09:15:30</span></td>
<td>王五</td> <td>王五</td>
<td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">09:15:30</span></td> <td>2024-01-15<br><span style="color: var(--text-tertiary); font-size: 12px;">09:15:30</span></td>
<td>50 元</td> <!-- <td>50 元</td>-->
<td>3小时10分钟</td> <td>3小时10分钟</td>
<td>XYZ 有限公司</td> <td>XYZ 有限公司</td>
<td>SO-2024-002</td> <td>SO-2024-002</td>
...@@ -1660,7 +1660,8 @@ ...@@ -1660,7 +1660,8 @@
<td>中国</td> <td>中国</td>
<td> <td>
<div class="action-btns"> <div class="action-btns">
<button class="action-btn" onclick="openEditModal('TK-2024-002')">编辑</button> <!-- <button class="action-btn" onclick="openEditModal('TK-2024-002')">编辑</button>-->
<button class="action-btn" onclick="openDetailModal('TK-2024-002')">查看</button> <button class="action-btn" onclick="openDetailModal('TK-2024-002')">查看</button>
<button class="action-btn" onclick="openCommunicationModal('TK-2024-002')">沟通</button> <button class="action-btn" onclick="openCommunicationModal('TK-2024-002')">沟通</button>
<button class="action-btn" onclick="deleteTicket('TK-2024-002')">删除</button> <button class="action-btn" onclick="deleteTicket('TK-2024-002')">删除</button>
...@@ -1679,8 +1680,8 @@ ...@@ -1679,8 +1680,8 @@
<td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">16:45:20</span></td> <td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">16:45:20</span></td>
<td>陈七</td> <td>陈七</td>
<td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">18:30:15</span></td> <td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">18:30:15</span></td>
<td>80 元</td> <!-- <td>80 元</td>-->
<td>22小时15分钟</td> <td>-2小时15分钟</td>
<td>DEF 集团</td> <td>DEF 集团</td>
<td>SO-2024-003</td> <td>SO-2024-003</td>
<td>路由器-RTR001</td> <td>路由器-RTR001</td>
...@@ -1688,7 +1689,7 @@ ...@@ -1688,7 +1689,7 @@
<td>美国</td> <td>美国</td>
<td> <td>
<div class="action-btns"> <div class="action-btns">
<button class="action-btn" onclick="openEditModal('TK-2024-003')">编辑</button> <!-- <button class="action-btn" onclick="openEditModal('TK-2024-003')">编辑</button>-->
<button class="action-btn" onclick="openDetailModal('TK-2024-003')">查看</button> <button class="action-btn" onclick="openDetailModal('TK-2024-003')">查看</button>
<button class="action-btn" onclick="openCommunicationModal('TK-2024-003')">沟通</button> <button class="action-btn" onclick="openCommunicationModal('TK-2024-003')">沟通</button>
<button class="action-btn" onclick="deleteTicket('TK-2024-003')">删除</button> <button class="action-btn" onclick="deleteTicket('TK-2024-003')">删除</button>
...@@ -1709,7 +1710,7 @@ ...@@ -1709,7 +1710,7 @@
<td>周九</td> <td>周九</td>
<td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">15:45:30</span></td> <td>2024-01-14<br><span style="color: var(--text-tertiary); font-size: 12px;">15:45:30</span></td>
<td>-</td> <td>-</td>
<td>-</td> <!-- <td>-</td>-->
<td>GHI 企业</td> <td>GHI 企业</td>
<td>SO-2024-004</td> <td>SO-2024-004</td>
<td>激光打印机-LP001</td> <td>激光打印机-LP001</td>
...@@ -1717,10 +1718,11 @@ ...@@ -1717,10 +1718,11 @@
<td>日本</td> <td>日本</td>
<td> <td>
<div class="action-btns"> <div class="action-btns">
<button class="action-btn" onclick="openEditModal('TK-2024-004')">编辑</button> <!-- <button class="action-btn" onclick="openEditModal('TK-2024-004')">编辑</button>-->
<button class="action-btn" onclick="openDetailModal('TK-2024-004')">查看</button> <button class="action-btn" onclick="openDetailModal('TK-2024-004')">查看</button>
<button class="action-btn" onclick="openCommunicationModal('TK-2024-004')">沟通</button> <button class="action-btn" onclick="openCommunicationModal('TK-2024-004')">沟通</button>
<button class="action-btn" onclick="deleteTicket('TK-2024-004')">删除</button> <button class="action-btn" onclick="deleteTicket('TK-2024-004')">删除</button>
<button class="action-btn" >关闭工单</button>
</div> </div>
</td> </td>
</tr> </tr>
...@@ -2062,7 +2064,7 @@ ...@@ -2062,7 +2064,7 @@
<option value="">请选择工单状态</option> <option value="">请选择工单状态</option>
<option value="待响应">待响应</option> <option value="待响应">待响应</option>
<option value="处理中">处理中</option> <option value="处理中">处理中</option>
<option value="待客户">待客户</option> <!-- <option value="待客户">待客户</option>-->
<option value="已关闭">已关闭</option> <option value="已关闭">已关闭</option>
</select> </select>
</div> </div>
...@@ -2782,7 +2784,7 @@ ...@@ -2782,7 +2784,7 @@
const s = t.status || ''; const s = t.status || '';
if (s.includes('待响应')) stats.waiting++; if (s.includes('待响应')) stats.waiting++;
if (s.includes('处理中')) stats.processing++; if (s.includes('处理中')) stats.processing++;
if (s.includes('待客户')) stats.customer++; // if (s.includes('待客户')) stats.customer++;
if (s.includes('已关闭')) stats.closed++; if (s.includes('已关闭')) stats.closed++;
if (s.includes('预警')) stats.warn++; if (s.includes('预警')) stats.warn++;
if (s.includes('逾期')) stats.overdue++; if (s.includes('逾期')) stats.overdue++;
...@@ -2791,7 +2793,7 @@ ...@@ -2791,7 +2793,7 @@
{ label:'全部工单', value:stats.total, icon:`<circle cx="10" cy="10" r="7"></circle><path d="M10 5v5h4"></path>` }, { label:'全部工单', value:stats.total, icon:`<circle cx="10" cy="10" r="7"></circle><path d="M10 5v5h4"></path>` },
{ label:'待响应', value:stats.waiting, icon:`<path d="M10 3v6l4 2"></path>` }, { label:'待响应', value:stats.waiting, icon:`<path d="M10 3v6l4 2"></path>` },
{ label:'处理中', value:stats.processing, icon:`<path d="M4 10h12M10 4v12"></path>` }, { label:'处理中', value:stats.processing, icon:`<path d="M4 10h12M10 4v12"></path>` },
{ label:'待客户', value:stats.customer, icon:`<path d="M6 8l4 4 4-4"></path>` }, // { label:'待客户', value:stats.customer, icon:`<path d="M6 8l4 4 4-4"></path>` },
{ label:'已关闭', value:stats.closed, icon:`<path d="M6 6l8 8M14 6l-8 8"></path>` }, { label:'已关闭', value:stats.closed, icon:`<path d="M6 6l8 8M14 6l-8 8"></path>` },
{ label:'SLA 预警', value:stats.warn, icon:`<path d="M10 4l6 10H4L10 4z"></path><path d="M10 8v3m0 2h.01"></path>` }, { label:'SLA 预警', value:stats.warn, icon:`<path d="M10 4l6 10H4L10 4z"></path><path d="M10 8v3m0 2h.01"></path>` },
{ label:'已逾期', value:stats.overdue, icon:`<circle cx="10" cy="10" r="7"></circle><path d="M10 6v4l2.5 2.5"></path>` } { label:'已逾期', value:stats.overdue, icon:`<circle cx="10" cy="10" r="7"></circle><path d="M10 6v4l2.5 2.5"></path>` }
...@@ -2851,7 +2853,7 @@ ...@@ -2851,7 +2853,7 @@
'全部': '', '全部': '',
'待响应': '待响应', '待响应': '待响应',
'处理中': '处理中', '处理中': '处理中',
'待客户': '待客户', // '待客户': '待客户',
'已关闭': '已关闭', '已关闭': '已关闭',
'SLA 预警': '预警', 'SLA 预警': '预警',
'已逾期': '逾期' '已逾期': '逾期'
...@@ -2886,8 +2888,8 @@ ...@@ -2886,8 +2888,8 @@
// 打开新增工单弹窗 // 打开新增工单弹窗
function openNewTicketModal() { function openNewTicketModal() {
window.location.href = '工单新增.html' // window.location.href = '工单新增.html'
// document.getElementById('newTicketModal').classList.add('active'); document.getElementById('newTicketModal').classList.add('active');
} }
...@@ -3339,7 +3341,7 @@ ...@@ -3339,7 +3341,7 @@
let statusClass = 'status-processing'; let statusClass = 'status-processing';
if (status === '待响应') statusClass = 'status-pending'; if (status === '待响应') statusClass = 'status-pending';
else if (status === '处理中') statusClass = 'status-processing'; else if (status === '处理中') statusClass = 'status-processing';
else if (status === '待客户') statusClass = 'status-waiting'; // else if (status === '待客户') statusClass = 'status-waiting';
else if (status === '已关闭') statusClass = 'status-closed'; else if (status === '已关闭') statusClass = 'status-closed';
cells[8].innerHTML = `<span class="status-badge ${statusClass}">${status}</span>`; cells[8].innerHTML = `<span class="status-badge ${statusClass}">${status}</span>`;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment