diff --git a/client-deployment/docker-compose.yml b/client-deployment/docker-compose.yml
index bf7314f..bc65c90 100644
--- a/client-deployment/docker-compose.yml
+++ b/client-deployment/docker-compose.yml
@@ -140,7 +140,7 @@ services:
VITE_APP_TITLE: ${VITE_APP_TITLE:-穿戴管理演示系统}
TZ: Asia/Shanghai
ports:
- - "8080:80"
+ - "8088:80"
volumes:
- ./logs/ljwx-admin:/var/log/nginx
- ./custom-admin-config.js:/tmp/custom-admin-config.js:ro
diff --git a/cookies.txt b/cookies.txt
new file mode 100644
index 0000000..c31d989
--- /dev/null
+++ b/cookies.txt
@@ -0,0 +1,4 @@
+# Netscape HTTP Cookie File
+# https://curl.se/docs/http-cookies.html
+# This file was generated by libcurl! Edit at your own risk.
+
diff --git a/ljwx-admin/README.md b/ljwx-admin/README.md
index ad6c587..aff6326 100644
--- a/ljwx-admin/README.md
+++ b/ljwx-admin/README.md
@@ -400,8 +400,95 @@ Content-Type: application/json
}
```
+### 🔧 微信告警配置管理 (最新)
+
+#### 功能概述
+- 支持企业微信和微信公众号两种类型的告警配置管理
+- 动态表格列显示,根据配置类型自适应显示相应字段
+- 完整的CRUD操作支持,包含新增、编辑、删除和批量删除功能
+- 智能数据过滤和状态管理
+
+#### 功能特点
+1. **双类型支持**:
+ - **企业微信配置**:显示企业ID、应用ID、应用Secret等企业微信专属字段
+ - **微信公众号配置**:显示AppID、AppSecret、微信ID等公众号专属字段
+
+2. **智能表格**:
+ - 标签页切换时动态调整表格列
+ - 自适应字段显示,避免冗余列
+ - 统一的通用字段:模板ID、启用状态、创建时间、操作等
+
+3. **数据管理**:
+ - 实时数据同步和状态更新
+ - 完整的权限控制和操作验证
+ - 敏感信息脱敏显示(Secret字段只显示后4位)
+
+#### 使用方法
+1. **查看配置**:
+ - 点击"企业微信配置"标签查看企业微信告警配置
+ - 点击"微信公众号配置"标签查看公众号告警配置
+ - 支持按类型、启用状态等条件搜索过滤
+
+2. **新增配置**:
+ - 点击"新增"按钮打开配置表单
+ - 根据当前标签页自动设置配置类型
+ - 填写对应类型的必要字段信息
+
+3. **编辑配置**:
+ - 点击表格中的"编辑"按钮修改配置
+ - 支持修改除ID和类型外的所有字段
+ - 实时保存并更新表格显示
+
+#### 技术实现
+- **动态列定义**:基于 `activeTab` 值动态生成表格列配置
+- **状态管理**:使用 Vue 3 的响应式系统实现状态同步
+- **API集成**:与后端 `/t_wechat_alarm_config/page` 接口完整对接
+- **类型安全**:完整的 TypeScript 类型定义和验证
+
+#### 数据字段映射
+```typescript
+// 企业微信配置
+{
+ corpId: string; // 企业ID
+ agentId: string; // 应用ID
+ secret: string; // 应用Secret
+}
+
+// 微信公众号配置
+{
+ appid: string; // AppID
+ appsecret: string; // AppSecret
+ wechatId: string; // 微信ID (映射自appid)
+}
+
+// 通用字段
+{
+ templateId: string; // 模板ID
+ enabled: boolean; // 启用状态
+ createTime: string; // 创建时间
+}
+```
+
## 📝 更新日志
+### v1.3.5 (2025-08-27)
+- ✨ **新增微信告警配置管理功能**
+ - 支持企业微信和微信公众号两种配置类型
+ - 动态表格列显示,根据类型自适应字段
+ - 完整的CRUD操作和批量管理
+ - 敏感信息安全脱敏显示
+ - 智能数据过滤和实时状态同步
+- 🔧 **修复表格组件显示问题**
+ - 解决NDataTable组件数据绑定问题
+ - 修复TableHeaderOperation组件导入缺失
+ - 优化标签页切换时的数据加载逻辑
+ - 完善列定义动态更新机制
+- 🐛 **修复数据过滤和状态管理**
+ - 修复标签切换时数据不更新的问题
+ - 优化searchParams参数传递机制
+ - 改进API参数验证和错误处理
+ - 增强前后端数据同步稳定性
+
### v1.3.4 (2025-08-25)
- ✨ **新增健康数据源过滤功能**
- 健康数据查看时自动过滤通用事件上传的数据
diff --git a/ljwx-admin/src/hooks/common/table.ts b/ljwx-admin/src/hooks/common/table.ts
index db6482d..f91248c 100644
--- a/ljwx-admin/src/hooks/common/table.ts
+++ b/ljwx-admin/src/hooks/common/table.ts
@@ -31,7 +31,9 @@ export function useTable(config: NaiveUI.NaiveTabl
apiParams,
columns: config.columns,
transformer: res => {
+ console.log('[DEBUG] API Raw Response:', res);
const { records = [], page = 1, pageSize = 20, total = 0 } = res.data || {};
+ console.log('[DEBUG] Extracted:', { records, page, pageSize, total });
// Ensure that the size is greater than 0, If it is less than 0, it will cause paging calculation errors.
const rPageSize = pageSize <= 0 ? 20 : pageSize;
const recordsWithIndex = records.map((item, index) => {
@@ -40,6 +42,7 @@ export function useTable(config: NaiveUI.NaiveTabl
index: (page - 1) * rPageSize + index + 1
};
});
+ console.log('[DEBUG] Final data with index:', recordsWithIndex);
return {
data: recordsWithIndex,
diff --git a/ljwx-admin/src/typings/api/health/alert-info.d.ts b/ljwx-admin/src/typings/api/health/alert-info.d.ts
index bf84dd6..4986318 100644
--- a/ljwx-admin/src/typings/api/health/alert-info.d.ts
+++ b/ljwx-admin/src/typings/api/health/alert-info.d.ts
@@ -31,14 +31,22 @@ declare namespace Api {
type AlertConfigWechat = Common.CommonRecord<{
customerId: number;
- /** WeChat App ID */
- appId: string;
- /** WeChat App Secret */
- appSecret: string;
+ /** WeChat Type: enterprise/official */
+ type: string;
+ /** Enterprise WeChat Corp ID */
+ corpId: string;
+ /** Enterprise WeChat Agent ID */
+ agentId: string;
+ /** Enterprise WeChat Secret */
+ secret: string;
+ /** Official WeChat App ID */
+ appid: string;
+ /** Official WeChat App Secret */
+ appsecret: string;
/** WeChat Template ID */
templateId: string;
- /** WeChat User OpenID */
- userOpenid: string;
+ /** Whether enabled */
+ enabled: boolean;
/** User who created the record */
createUser: string;
/** Creation timestamp */
@@ -47,13 +55,13 @@ declare namespace Api {
/** Wechaalerconfig search params */
type AlertConfigWechatSearchParams = CommonType.RecordNullable<
- Pick & Api.Common.CommonSearchParams
+ Pick & Api.Common.CommonSearchParams
>;
/** Wechaalerconfig edit model */
type AlertConfigWechatEdit = Pick<
Api.Health.AlertConfigWechat,
- 'id' | 'appId' | 'appSecret' | 'templateId' | 'userOpenid' | 'createUser' | 'createTime'
+ 'id' | 'customerId' | 'type' | 'corpId' | 'agentId' | 'secret' | 'appid' | 'appsecret' | 'templateId' | 'enabled' | 'createUser' | 'createTime'
>;
/** Wechaalerconfig list */
diff --git a/ljwx-admin/src/views/alert/config/index.vue b/ljwx-admin/src/views/alert/config/index.vue
index 0cecf3a..66c3cb9 100644
--- a/ljwx-admin/src/views/alert/config/index.vue
+++ b/ljwx-admin/src/views/alert/config/index.vue
@@ -1,7 +1,7 @@
@@ -302,36 +246,37 @@ function handleTabChange(value: string) {
@@ -341,36 +286,37 @@ function handleTabChange(value: string) {
@@ -380,19 +326,11 @@ function handleTabChange(value: string) {
-
-
diff --git a/ljwx-bigscreen/bigscreen/.gitignore b/ljwx-bigscreen/bigscreen/.gitignore
index be15f64..f514b74 100644
--- a/ljwx-bigscreen/bigscreen/.gitignore
+++ b/ljwx-bigscreen/bigscreen/.gitignore
@@ -1,116 +1,2 @@
-# ================================
-# BigScreen 项目 .gitignore
-# ================================
-
-# 配置文件
-uploader_config.ini
-
-# Python 环境和缓存
-./myenv/
-__pycache__/
-*.pyc
-*.pyo
-*.pyd
-
-# ================================
-# 日志文件 (所有日志)
-# ================================
-*.log
-*.log.*
-logs/
-log/
-
-# ================================
-# 大文件和数据
-# ================================
-# SQL 文件 (通常很大)
-*.sql
-!*_schema.sql
-!migration*.sql
-
-# 数据库文件
-*.db
-*.sqlite
-*.sqlite3
-
-# Excel 数据文件
-*.xlsx
-*.xls
-
-# CSV 数据文件 (大于1MB的)
-worker_health_*.csv
-
-# ================================
-# 缓存和临时文件
-# ================================
-cache/
-.cache/
-uploads/
-temp/
-tmp/
-
-# 性能测试数据
-performance_*.json
-*_report.json
-*_report.log
-
-# ================================
-# 静态资源构建输出
-# ================================
-static/
-dist/
-build/
-
-# ================================
-# HTML 大文件
-# ================================
-# 交互式地图文件 (通常很大)
-interactive_*.html
-mine_topology_map.html
-map.html
-
-# 模板文件 (如果是临时的)
-templates/personal_cool.html
-templates/index.html
-./bigScreen/template/index.html
-
-# ================================
-# 证书和密钥
-# ================================
-*.pem
-*.key
-*.crt
-
-# ================================
-# 运行时文件
-# ================================
-# 进程ID文件
-*.pid
-
-# 备份文件
-*.backup
-*.bak
-
-# 测试输出
-test_*.json
-test_*.html
-test_progress.json
-
-# ================================
-# Docker 和部署相关
-# ================================
-.dockerignore
-
-# ================================
-# IDE 和编辑器
-# ================================
-.vscode/
-.idea/
-*.swp
-*.swo
-
-# ================================
-# OS 生成文件
-# ================================
-.DS_Store
-Thumbs.db
+# Created by venv; see https://docs.python.org/3/library/venv.html
+*
diff --git a/ljwx-boot/ljwx-boot-modules/src/main/java/com/ljwx/modules/health/domain/vo/TWechatAlertConfigVO.java b/ljwx-boot/ljwx-boot-modules/src/main/java/com/ljwx/modules/health/domain/vo/TWechatAlertConfigVO.java
index 8f8f18f..7389015 100644
--- a/ljwx-boot/ljwx-boot-modules/src/main/java/com/ljwx/modules/health/domain/vo/TWechatAlertConfigVO.java
+++ b/ljwx-boot/ljwx-boot-modules/src/main/java/com/ljwx/modules/health/domain/vo/TWechatAlertConfigVO.java
@@ -44,17 +44,32 @@ import java.time.LocalDateTime;
@Schema(name = "TWechatAlertConfigVO", description = "Table to store WeChat alert configuration VO 对象")
public class TWechatAlertConfigVO extends BaseVO {
- @Schema(description = "WeChat App ID")
- private String appId;
+ @Schema(description = "Client ID")
+ private Long customerId;
- @Schema(description = "WeChat App Secret")
- private String appSecret;
+ @Schema(description = "WeChat Type: enterprise/official")
+ private String type;
+
+ @Schema(description = "Enterprise WeChat Corp ID")
+ private String corpId;
+
+ @Schema(description = "Enterprise WeChat Agent ID")
+ private String agentId;
+
+ @Schema(description = "Enterprise WeChat Secret")
+ private String secret;
+
+ @Schema(description = "Official WeChat App ID")
+ private String appid;
+
+ @Schema(description = "Official WeChat App Secret")
+ private String appsecret;
@Schema(description = "WeChat Template ID")
private String templateId;
- @Schema(description = "WeChat User OpenID")
- private String userOpenid;
+ @Schema(description = "Whether enabled")
+ private Boolean enabled;
@Schema(description = "User who created the record")
private String createUser;
diff --git a/ljwx-watch/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/ljwx-watch/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 51e8efa..244cf75 100644
Binary files a/ljwx-watch/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/ljwx-watch/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/ljwx-watch/.gradle/buildOutputCleanup/cache.properties b/ljwx-watch/.gradle/buildOutputCleanup/cache.properties
index ef1b5c2..e1791e9 100644
--- a/ljwx-watch/.gradle/buildOutputCleanup/cache.properties
+++ b/ljwx-watch/.gradle/buildOutputCleanup/cache.properties
@@ -1,2 +1,2 @@
-#Sun Aug 24 15:47:42 IRKT 2025
-gradle.version=7.3
+#Wed Aug 27 19:09:11 CST 2025
+gradle.version=8.9
diff --git a/ljwx-watch/.gradle/buildOutputCleanup/outputFiles.bin b/ljwx-watch/.gradle/buildOutputCleanup/outputFiles.bin
deleted file mode 100644
index 4fd0d26..0000000
Binary files a/ljwx-watch/.gradle/buildOutputCleanup/outputFiles.bin and /dev/null differ
diff --git a/ljwx-watch/.settings/org.eclipse.buildship.core.prefs b/ljwx-watch/.settings/org.eclipse.buildship.core.prefs
index 1d415de..1f2415f 100644
--- a/ljwx-watch/.settings/org.eclipse.buildship.core.prefs
+++ b/ljwx-watch/.settings/org.eclipse.buildship.core.prefs
@@ -1,11 +1,11 @@
-arguments=--init-script /var/folders/9_/swlb2qbs6qxctt1zx7cq4m3h0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/9_/swlb2qbs6qxctt1zx7cq4m3h0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
+arguments=--init-script /var/folders/mm/vmpdh9394f764qzjhxshxd0m0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/mm/vmpdh9394f764qzjhxshxd0m0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
auto.sync=true
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
-java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
+java.home=/opt/homebrew/Cellar/openjdk@21/21.0.7/libexec/openjdk.jdk/Contents/Home
jvm.arguments=
offline.mode=false
override.workspace.settings=true