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;