From 56f398e4ca6c38f3194c97d23aaeb63cd2fd47ab Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Mon, 15 Dec 2025 10:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=9C=8D=E5=90=8E=E5=8F=B0=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/xyzh/agent/client/DifyClient.java | 5 + .../workcase/src/assets/css/common.scss | 283 +++++++++++++++++- .../workcase/src/views/admin/AdminLayout.vue | 93 ++++-- .../src/views/admin/agent/AgentView.vue | 231 ++++++++++++-- .../admin/customerChat/CustomerChatView.vue | 252 ++++++++++++++-- .../views/admin/knowledge/KnowLedgeView.vue | 282 ++++++++++++++--- .../log/knowledgeLog/KnowledgeLogView.vue | 177 +++++++++-- .../admin/log/systemLog/SystemLogView.vue | 176 +++++++++-- .../admin/log/workcaseLog/WorkcaseLogView.vue | 177 +++++++++-- .../src/views/admin/overview/OverviewView.vue | 220 ++++++++++---- .../src/views/admin/workcase/WorkcaseView.vue | 271 +++++++++++++++-- 11 files changed, 1903 insertions(+), 264 deletions(-) create mode 100644 urbanLifelineServ/agent/src/main/java/org/xyzh/agent/client/DifyClient.java diff --git a/urbanLifelineServ/agent/src/main/java/org/xyzh/agent/client/DifyClient.java b/urbanLifelineServ/agent/src/main/java/org/xyzh/agent/client/DifyClient.java new file mode 100644 index 00000000..eeaa0bc1 --- /dev/null +++ b/urbanLifelineServ/agent/src/main/java/org/xyzh/agent/client/DifyClient.java @@ -0,0 +1,5 @@ +package org.xyzh.agent.client; + +public class DifyClient { + +} diff --git a/urbanLifelineWeb/packages/workcase/src/assets/css/common.scss b/urbanLifelineWeb/packages/workcase/src/assets/css/common.scss index cfcb7ab9..4d0034e4 100644 --- a/urbanLifelineWeb/packages/workcase/src/assets/css/common.scss +++ b/urbanLifelineWeb/packages/workcase/src/assets/css/common.scss @@ -1 +1,282 @@ -// 全局EL分页组件样式 \ No newline at end of file +// 全局EL分页组件样式 + +.content-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 16px; +} + +.content-header h1 { + font-size: 18px; + font-weight: 600; + color: #303133; +} + +.content-header .subtitle { + margin-top: 4px; + color: #909399; + font-size: 13px; +} + +.card-header { + display: flex; + align-items: center; + justify-content: space-between; +} + +.dashboard-stats, +.dashboard-cards, +.quick-entries { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 16px; +} + +.stat-card { + display: flex; + align-items: center; + background: #fff; + border: 1px solid #ebeef5; + border-radius: 8px; + padding: 14px 16px; + transition: all .2s ease; +} + +.stat-card.clickable { + cursor: pointer; +} + +.stat-card:hover { + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); + transform: translateY(-1px); +} + +.stat-icon { + width: 44px; + height: 44px; + border-radius: 10px; + color: #fff; + display: flex; + align-items: center; + justify-content: center; + margin-right: 12px; +} + +.stat-info { + display: flex; + flex-direction: column; + gap: 4px; +} + +.stat-value { + font-size: 20px; + font-weight: 700; + color: #303133; +} + +.stat-label { + font-size: 12px; + color: #909399; +} + +.stat-trend { + display: flex; + align-items: center; + gap: 4px; + color: #909399; + font-size: 12px; +} + +.stat-trend.up { + color: #67c23a; +} + +.chart-card { + margin-top: 16px; +} + +.question-stats { + display: flex; + flex-direction: column; + gap: 12px; +} + +.question-stat-item { + border: 1px solid #ebeef5; + border-radius: 8px; + padding: 10px 12px; + background: #fff; +} + +.question-stat-item.clickable { + cursor: pointer; +} + +.stat-bar-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 8px; +} + +.stat-bar { + height: 8px; + background: #f5f7fa; + border-radius: 6px; + overflow: hidden; +} + +.stat-bar-fill { + height: 100%; + border-radius: 6px; +} + +.product-cloud { + display: flex; + flex-wrap: wrap; + gap: 8px 12px; + padding: 8px 0; +} + +.cloud-tag { + user-select: none; +} + +.quick-entry-card { + margin-top: 16px; +} + +.quick-entry-item { + display: flex; + align-items: center; + gap: 10px; + padding: 12px; + border: 1px solid #ebeef5; + border-radius: 8px; + background: #fff; + cursor: pointer; + transition: all .2s ease; +} + +.quick-entry-item:hover { + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); + transform: translateY(-1px); +} + +.quick-entry-item .entry-icon { + width: 36px; + height: 36px; + border-radius: 8px; + color: #fff; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.filter-card { + margin-bottom: 12px; +} + +.ticket-filters { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.ticket-filters .filter-right { + display: flex; + align-items: center; + gap: 10px; +} + +.table-pagination { + margin-top: 12px; + display: flex; + justify-content: flex-end; +} + +.file-name-cell { + display: flex; + align-items: center; + gap: 8px; +} + +.file-icon { + color: #909399; +} + +.unassigned { + color: #909399; +} + +.section-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 10px; +} + +.kb-categories { + display: grid; + grid-template-columns: repeat(6, minmax(0, 1fr)); + gap: 12px; + margin: 8px 0 12px; +} + +.kb-category-card { + display: flex; + flex-direction: column; + gap: 6px; + align-items: center; + justify-content: center; + padding: 12px; + background: #fff; + border: 1px solid #ebeef5; + border-radius: 8px; + cursor: pointer; + transition: all .2s ease; +} + +.kb-category-card.active, +.kb-category-card:hover { + border-color: #409eff; + box-shadow: 0 6px 18px rgba(64, 158, 255, 0.12); +} + +.kb-category-card .cat-name { + font-weight: 600; + color: #303133; +} + +.kb-category-card .cat-count { + font-size: 12px; + color: #909399; +} + +.kb-files-section { + margin-top: 8px; +} + +@media (max-width: 1280px) { + .dashboard-stats, + .dashboard-cards, + .quick-entries { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .kb-categories { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } +} + +@media (max-width: 768px) { + .dashboard-stats, + .dashboard-cards, + .quick-entries { + grid-template-columns: 1fr; + } + .kb-categories { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/views/admin/AdminLayout.vue b/urbanLifelineWeb/packages/workcase/src/views/admin/AdminLayout.vue index 7fa64963..b8f5a990 100644 --- a/urbanLifelineWeb/packages/workcase/src/views/admin/AdminLayout.vue +++ b/urbanLifelineWeb/packages/workcase/src/views/admin/AdminLayout.vue @@ -1,39 +1,80 @@ - \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/views/admin/agent/AgentView.vue b/urbanLifelineWeb/packages/workcase/src/views/admin/agent/AgentView.vue index 27320bb0..61d85466 100644 --- a/urbanLifelineWeb/packages/workcase/src/views/admin/agent/AgentView.vue +++ b/urbanLifelineWeb/packages/workcase/src/views/admin/agent/AgentView.vue @@ -1,30 +1,221 @@ + + \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/views/admin/customerChat/CustomerChatView.vue b/urbanLifelineWeb/packages/workcase/src/views/admin/customerChat/CustomerChatView.vue index 2c8bf7b0..639915e7 100644 --- a/urbanLifelineWeb/packages/workcase/src/views/admin/customerChat/CustomerChatView.vue +++ b/urbanLifelineWeb/packages/workcase/src/views/admin/customerChat/CustomerChatView.vue @@ -1,35 +1,245 @@