From 0c25c46646d8a565ff1f975f7cec3d8d712bb01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A6=8D=E6=B4=81?= <16391855+wang-yanjie1218@user.noreply.gitee.com> Date: Wed, 11 Feb 2026 18:55:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BD=E5=8C=BBPC=E7=AB=AF=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chenhai-ui/src/views/syd.vue | 179 ++++---- .../src/views/system/recommendation/index.vue | 5 +- chenhai-ui/src/views/vet/product/index.vue | 410 ++++++------------ 3 files changed, 238 insertions(+), 356 deletions(-) diff --git a/chenhai-ui/src/views/syd.vue b/chenhai-ui/src/views/syd.vue index 5e77f0f..7dc56a7 100644 --- a/chenhai-ui/src/views/syd.vue +++ b/chenhai-ui/src/views/syd.vue @@ -11,10 +11,10 @@ 查看全部 - +
-
- + - + = 0; i--) { const date = new Date(); date.setDate(date.getDate() - i); @@ -874,7 +877,7 @@ export default { applicationData.push(Math.floor(Math.random() * 20) + 10); approvalData.push(Math.floor(Math.random() * 15) + 5); } - + const option = { tooltip: { trigger: 'axis', @@ -953,14 +956,14 @@ export default { } ] }; - + this.trendChart.setOption(option); }, - + /** 更新资质类型分布图 */ updateQualificationChart() { if (!this.qualificationChart) return; - + const option = { tooltip: { trigger: 'axis', @@ -1023,10 +1026,10 @@ export default { } ] }; - + this.qualificationChart.setOption(option); }, - + /** 刷新图表数据 */ refreshCharts() { this.$message({ @@ -1034,19 +1037,19 @@ export default { type: 'info', duration: 1000 }); - + // 重新获取统计数据 this.getcountSummary(); - + // 更新趋势图 this.updateTrendChart(); - + // 模拟数据更新 setTimeout(() => { this.platformUserValue += Math.floor(Math.random() * 100); this.vetCount += Math.floor(Math.random() * 10); this.shopCount += Math.floor(Math.random() * 5); - + this.$message({ message: '数据刷新完成', type: 'success', @@ -1134,26 +1137,26 @@ export default { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04); - + &.has-unread { background: linear-gradient(145deg, #fff2f0, #ffe7e7); border-left: 6px solid #ff6b6b; animation: softPulse 2s infinite; - + .notification-title { color: #c92a2a; } } - + &.no-unread { background: linear-gradient(145deg, #f0f9ff, #e6f4ff); border-left: 6px solid #339af0; - + .notification-title { color: #1971c2; } } - + &:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12); @@ -1174,14 +1177,14 @@ export default { justify-content: center; background: rgba(255, 255, 255, 0.8); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); - + i { font-size: 28px; - + .has-unread & { color: #ff6b6b; } - + .no-unread & { color: #339af0; } @@ -1225,11 +1228,11 @@ export default { padding: 2px 8px; border-radius: 20px; background: rgba(0, 0, 0, 0.04); - + .has-unread & { background: rgba(255, 107, 107, 0.1); } - + .no-unread & { background: rgba(51, 154, 240, 0.1); } @@ -1240,24 +1243,24 @@ export default { align-items: center; font-size: 14px; color: #5a6a7e; - + .stat-dot { width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; - + &.unread { background: #ff6b6b; box-shadow: 0 0 0 2px rgba(255, 107, 107, 0.2); } - + &.read { background: #51cf66; box-shadow: 0 0 0 2px rgba(81, 207, 102, 0.2); } } - + .stat-divider { margin: 0 10px; color: #d0d7dd; @@ -1270,20 +1273,20 @@ export default { border-radius: 16px; transition: all 0.3s ease; border: 1px solid #f0f0f0; - + &:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08); } - + &-total { background: linear-gradient(145deg, #fff7e6, #fff2db); } - + &-read { background: linear-gradient(145deg, #e8f5e9, #dff0df); } - + &-unread { background: linear-gradient(145deg, #ffebee, #ffe4e4); } @@ -1306,22 +1309,22 @@ export default { display: flex; align-items: center; justify-content: center; - + i { font-size: 26px; color: white; } - + &.icon-total { background: linear-gradient(145deg, #ff9a44, #ff6b08); box-shadow: 0 6px 12px rgba(255, 107, 8, 0.2); } - + &.icon-read { background: linear-gradient(145deg, #51cf66, #37b24d); box-shadow: 0 6px 12px rgba(81, 207, 102, 0.2); } - + &.icon-unread { background: linear-gradient(145deg, #ff6b6b, #fa5252); box-shadow: 0 6px 12px rgba(255, 107, 107, 0.2); @@ -1351,15 +1354,15 @@ export default { color: #7c8b9c; display: flex; align-items: center; - + i { margin-right: 4px; } - + &.positive { color: #51cf66; } - + &.warning { color: #ff922b; } @@ -1396,7 +1399,7 @@ export default { .refresh-btn { background: #f0f2f5; border: none; - + &:hover { background: #e4e7ed; transform: rotate(180deg); @@ -1409,11 +1412,11 @@ export default { display: grid; gap: 24px; margin-bottom: 24px; - + &.two-cols { grid-template-columns: 1fr 1fr; } - + &:last-child { margin-bottom: 0; } @@ -1427,21 +1430,21 @@ export default { transition: all 0.3s ease; border: 1px solid #f0f4f8; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03); - + &:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08); border-color: transparent; } - + &.gradient-blue { background: linear-gradient(145deg, #fff, #f9fcff); } - + &.gradient-purple { background: linear-gradient(145deg, #fff, #faf9ff); } - + &.gradient-green { background: linear-gradient(145deg, #fff, #f9fffb); } @@ -1462,7 +1465,7 @@ export default { font-weight: 600; font-size: 16px; color: #2c3e50; - + i { margin-right: 10px; color: #409EFF; @@ -1474,7 +1477,7 @@ export default { color: #a0b3c2; font-size: 16px; cursor: pointer; - + &:hover { color: #409EFF; } @@ -1501,13 +1504,13 @@ export default { align-items: center; gap: 8px; font-size: 14px; - + .dot { width: 10px; height: 10px; border-radius: 50%; } - + strong { font-size: 16px; color: #1e293b; @@ -1534,7 +1537,7 @@ export default { border-radius: 16px; transition: all 0.2s ease; border: 1px solid #f0f4f8; - + &:hover { background: #f9fcff; border-color: #409EFF; @@ -1550,7 +1553,7 @@ export default { align-items: center; justify-content: center; margin-right: 14px; - + i { font-size: 22px; color: white; @@ -1578,15 +1581,15 @@ export default { font-size: 11px; display: flex; align-items: center; - + &.positive { color: #51cf66; } - + &.negative { color: #ff6b6b; } - + i { margin-right: 2px; } @@ -1735,11 +1738,11 @@ export default { .notification-grid { grid-template-columns: repeat(2, 1fr); } - + .chart-grid.two-cols { grid-template-columns: 1fr; } - + .kpi-grid { grid-template-columns: repeat(2, 1fr); } @@ -1749,35 +1752,35 @@ export default { .box { padding: 12px; } - + .notification-section, .dashboard-section { padding: 18px; } - + .notification-grid { grid-template-columns: 1fr; } - + .notification-card-main { grid-column: span 1; } - + .dashboard-header { flex-direction: column; align-items: flex-start; gap: 12px; } - + .header-right { width: 100%; justify-content: space-between; } - + .kpi-grid { grid-template-columns: 1fr; } - + .chart-card-footer { flex-wrap: wrap; gap: 12px; @@ -1802,4 +1805,4 @@ export default { .certificate-upload-container::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } - \ No newline at end of file + diff --git a/chenhai-ui/src/views/system/recommendation/index.vue b/chenhai-ui/src/views/system/recommendation/index.vue index 1f0cab6..05a5d25 100644 --- a/chenhai-ui/src/views/system/recommendation/index.vue +++ b/chenhai-ui/src/views/system/recommendation/index.vue @@ -524,10 +524,10 @@ -
提示:经纬度用于地图定位,如不清楚可留空
+
@@ -658,6 +658,9 @@ export default { ], specification: [ { required: true, message: "规格不能为空", trigger: "blur" } + ], + expertId:[ + { required: true, message: "推荐专家不能为空", trigger: "blur" } ] } }; diff --git a/chenhai-ui/src/views/vet/product/index.vue b/chenhai-ui/src/views/vet/product/index.vue index d3ae0ab..5080e74 100644 --- a/chenhai-ui/src/views/vet/product/index.vue +++ b/chenhai-ui/src/views/vet/product/index.vue @@ -453,241 +453,115 @@ />
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -738,9 +612,9 @@ - - - + + + @@ -756,37 +630,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -889,6 +763,8 @@ export default { showSearch: true, // 总条数 total: 0, + // 兽医产品信息分页参数 + activeName: 'first', // 步骤 activeStep: 0, // 兽医产品信息表格数据