From 0f74abc5d49a81ce92a2bd5f28491ac8ff48f86b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com>
Date: Sat, 5 Sep 2026 17:28:40 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96backend=E7=AB=AF=E7=9B=B8?=
=?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
backend/components.d.ts | 1 +
backend/src/App.vue | 5 +-
backend/src/api/contactOA.js | 8 +
backend/src/api/login.js | 8 +
backend/src/components/CommonHeader.vue | 22 +
backend/src/stores/auth.js | 25 +-
.../src/views/apps/oa/compensation/index.vue | 14 +-
.../components/contactDetailDialog.vue | 3 +
.../contact/components/contactEditDialog.vue | 378 ++++++++++--------
backend/src/views/apps/oa/contact/index.vue | 65 ++-
backend/src/views/apps/oa/dashboard/index.vue | 201 +++++++++-
.../apps/oa/schedule/components/detail.vue | 3 +-
backend/src/views/login/index.vue | 4 +-
go/controllers/backend_admin_user.go | 6 +
go/controllers/backend_auth.go | 37 +-
go/controllers/backend_contact.go | 122 +++++-
go/controllers/backend_employee_file.go | 38 +-
go/controllers/backend_oa_compensation.go | 21 +-
go/controllers/backend_organization.go | 28 +-
go/controllers/backend_organization_dto.go | 24 +-
go/models/contact.go | 1 +
go/routers/backend/backend.go | 3 +
go/services/platform_auth.go | 30 +-
.../src/views/apps/erp/organization/index.vue | 132 +-----
sql/alter_contact_add_qq.sql | 42 ++
25 files changed, 781 insertions(+), 440 deletions(-)
create mode 100644 sql/alter_contact_add_qq.sql
diff --git a/backend/components.d.ts b/backend/components.d.ts
index e281758..2483e63 100644
--- a/backend/components.d.ts
+++ b/backend/components.d.ts
@@ -29,6 +29,7 @@ declare module 'vue' {
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElCollapseTransition: typeof import('element-plus/es')['ElCollapseTransition']
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
+ ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
diff --git a/backend/src/App.vue b/backend/src/App.vue
index 3e92a0b..6c5c720 100644
--- a/backend/src/App.vue
+++ b/backend/src/App.vue
@@ -1,8 +1,11 @@
-
+
+
+
diff --git a/sql/alter_contact_add_qq.sql b/sql/alter_contact_add_qq.sql
new file mode 100644
index 0000000..d684dfa
--- /dev/null
+++ b/sql/alter_contact_add_qq.sql
@@ -0,0 +1,42 @@
+-- 通讯录表新增 QQ 字段
+-- 对应模型:go/models/contact.go BackendErpContact
+--
+-- 说明:历史迁移 alter_contact_rename_to_global.sql 把表名从 yz_backend_erp_contact
+-- 改名为 yz_backend_contact,但模型 BackendErpContact.TableName() 仍返回旧表名。
+-- 为避免不同环境表名不一致导致字段加不上,这里按实际存在的表逐个补齐,可重复执行。
+
+SET @db := DATABASE();
+
+-- 旧表名(模型当前使用的表名)
+SET @tbl := 'yz_backend_erp_contact';
+SET @table_exists := (
+ SELECT COUNT(*) FROM information_schema.TABLES
+ WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl
+);
+SET @column_exists := (
+ SELECT COUNT(*) FROM information_schema.COLUMNS
+ WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl AND COLUMN_NAME = 'qq'
+);
+SET @sql := IF(@table_exists > 0 AND @column_exists = 0,
+ CONCAT('ALTER TABLE `', @tbl, '` ADD COLUMN `qq` VARCHAR(20) NULL COMMENT ''QQ号'' AFTER `wechat`'),
+ 'SELECT 1');
+PREPARE stmt FROM @sql;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+-- 新表名(执行过改名迁移的环境)
+SET @tbl := 'yz_backend_contact';
+SET @table_exists := (
+ SELECT COUNT(*) FROM information_schema.TABLES
+ WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl
+);
+SET @column_exists := (
+ SELECT COUNT(*) FROM information_schema.COLUMNS
+ WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl AND COLUMN_NAME = 'qq'
+);
+SET @sql := IF(@table_exists > 0 AND @column_exists = 0,
+ CONCAT('ALTER TABLE `', @tbl, '` ADD COLUMN `qq` VARCHAR(20) NULL COMMENT ''QQ号'' AFTER `wechat`'),
+ 'SELECT 1');
+PREPARE stmt FROM @sql;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;