Browse Source

修改添加角色模态框样式

GTong 8 months ago
parent
commit
87091ab777
29 changed files with 183 additions and 596 deletions
  1. 0 53
      CRLF_lic_op_20240925164406_标准版(单机).cfg
  2. 0 53
      CRLF_lic_op_20240925164511_标准版(单机).cfg
  3. 0 53
      CRLF_lic_op_20240925165611_标准版(单机).cfg
  4. 0 53
      CRLF_lic_op_20240925165631_企业版(双机).cfg
  5. 1 1
      config.toml
  6. 2 2
      internal/models/user_models.go
  7. 10 2
      internal/utils/utils.go
  8. 0 53
      lic_op_20240925164406_标准版(单机).cfg
  9. 0 53
      lic_op_20240925164511_标准版(单机).cfg
  10. 0 53
      lic_op_20240925165611_标准版(单机).cfg
  11. 0 53
      lic_op_20240925165631_企业版(双机).cfg
  12. 0 1
      license.dat@CRLF_lic_op_20240925164406_标准版(单机).cfg
  13. 0 1
      license.dat@CRLF_lic_op_20240925164511_标准版(单机).cfg
  14. 0 1
      license.dat@CRLF_lic_op_20240925165611_标准版(单机).cfg
  15. 0 1
      license.dat@CRLF_lic_op_20240925165631_企业版(双机).cfg
  16. 25 25
      static/license_info/bakup/license_info 9.11.html
  17. 25 25
      static/license_info/bakup/license_info copy 2.html
  18. 25 25
      static/license_info/bakup/license_info copy 主行分页展示版本.html
  19. 24 24
      static/license_info/bakup/license_info copy.html
  20. 5 5
      static/license_info/license_info.js
  21. 10 8
      static/license_info/license_info_distribution.js
  22. 1 1
      static/license_info/license_info_modal.js
  23. 26 26
      static/license_info/old/old_license_info.html
  24. 2 2
      static/login/login.js
  25. 8 5
      static/role/role.css
  26. 5 5
      static/role/role.js
  27. 1 1
      static/upload_xlsx/script.js
  28. 9 7
      static/user/user.js
  29. 4 4
      支持库建表语句.sql

+ 0 - 53
CRLF_lic_op_20240925164406_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = e8:61:1f:4b:8e:d3
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
CRLF_lic_op_20240925164511_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = e8:61:1f:4b:8e:d3
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
CRLF_lic_op_20240925165611_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = abc:abc:abc:avc
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
CRLF_lic_op_20240925165631_企业版(双机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 企业版(双机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = 192.168.100.2 18:c0:09:27:8d:0d
-	disk_id         = 未填写
-	ip_addr         = 未填写
-#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 3
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 1 - 1
config.toml

@@ -1,5 +1,5 @@
 [config]
-ip = "10.28.20.105"
+ip = "127.0.0.1"
 port = "8080"
 
 [database]

+ 2 - 2
internal/models/user_models.go

@@ -59,7 +59,7 @@ func CheckEmailOrTelphoneOrAccount(UserName string, Account string, email string
 	var user UserInfo
 	// 根据user_id从数据库查询数据
 	fmt.Println("Account: ", Account, email, telephone)
-	rows, err := global.XuguDB.Query("select ID,UNIQUEID,USERNAME,Account,PASSWORD,TELEPHONE,EMAIL,ROLE from lic_USER where username = ? or Account = ? or telephone = ? or email = ? and  deltime is null  ", UserName, Account, telephone, email)
+	rows, err := global.XuguDB.Query("select ID,UNIQUEID,USERNAME,Account,PASSWORD,TELEPHONE,EMAIL,ROLE  from lic_USER where (username = ? or Account = ? or telephone = ? or email = ?)  and  deltime is null  ", UserName, Account, telephone, email)
 	if err != nil {
 		global.Logger.Errorln(" rows user not found", err.Error())
 		return nil, errors.New(fmt.Sprintln(" rows user not found: ", err.Error()))
@@ -73,7 +73,7 @@ func CheckEmailOrTelphoneOrAccount(UserName string, Account string, email string
 			return nil, errors.New(fmt.Sprintln(" rows.Next  user not found: ", err.Error()))
 		}
 	}
-	fmt.Printf("user: %#v \n", user)
+
 	return &user, nil
 }
 

+ 10 - 2
internal/utils/utils.go

@@ -92,10 +92,18 @@ func CalculateFileHeaderMd5(fileHeader *multipart.FileHeader) (string, error) {
 }
 
 func GenerateShortIdentifier(username, email, telephone string) string {
-	input := fmt.Sprintf("%s%s%s", username, email, telephone)
+	// 获取当前时间的时间戳
+	timestamp := time.Now().UnixNano()
+
+	// 将时间戳加入输入字符串
+	input := fmt.Sprintf("%s%s%s%d", timestamp, email, telephone, username)
+
+	// 生成哈希值
 	hasher := sha1.New()
 	hasher.Write([]byte(input))
-	return hex.EncodeToString(hasher.Sum(nil))[:12] // 截取前8位作为唯一标识符
+
+	// 返回哈希的前12位作为唯一标识符
+	return hex.EncodeToString(hasher.Sum(nil))[:12]
 }
 
 func ToString(ns sql.NullString) string {

+ 0 - 53
lic_op_20240925164406_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = e8:61:1f:4b:8e:d3
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
lic_op_20240925164511_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = e8:61:1f:4b:8e:d3
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
lic_op_20240925165611_标准版(单机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 标准版(单机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = abc:abc:abc:avc
-	disk_id         = 未填写
-	ip_addr         = 未填写
-	#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 2
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 53
lic_op_20240925165631_企业版(双机).cfg

@@ -1,53 +0,0 @@
-
-#用户项目信息
-	project_name    = 虚谷数据库V12.0
-	user_name       = 企业版(双机)
-	user_addr       = 未填写
-	serial_number   = 未填写
-#环境信息
-	cpu_sn          = 未填写
-	baseboard_sn    = 未填写
-	mac_addr        = 192.168.100.2 18:c0:09:27:8d:0d
-	disk_id         = 未填写
-	ip_addr         = 未填写
-#License信息
-	gen_date        = 2024-07-15
-	expire_date     = 9999-12-31
-	license_type    = 3
-	license_version = 1
-	hard_type       = 3
-#企业版                                   
-    ha              = true
-    hint            = true
-    full_text_index = true
-    function_index  = true
-    batch_mode      = true
-    pl_sql          = true
-#分布式版
-    add_node            = false
-    auto_partition      = true
-    resource_quota      = true
-    net_channel         = 0
-    data_auto_rebalance = true
-#其他组件
-    black_white_list   = true
-    mac                = true
-    col_privilege      = true
-    transmit_encrypt   = true
-    store_encrypt      = true
-    backup_encrypt     = true
-    audit_mode         = 0
-    global_binlog_node = 0
-    dblink             = true
-    json               = true
-    spatial            = true
-    max_parallel       = 0
-    stream_load        = true
-#服务能力
-    instance_num   = 0
-    table_rows     = 0
-    connect_num    = 0
-    store_capacity = 0
-    max_node_num   = 0
-    listen_channel = 0
-	

+ 0 - 1
license.dat@CRLF_lic_op_20240925164406_标准版(单机).cfg

@@ -1 +0,0 @@
-QWVNgNjkiebQpe3WifziqNDPgc3jYmRuPD4ABAIvODAABiEpT05HbHFPhv7WpN/Zgdn8iePJqfb8OFZ+Yl9jbUU5HAsVEyIOAwJsbE9OR2xsUk6B7MuK6eGrxeeB28Sp4vuB0PaA0u5BRmYbFCk+MA8DKD5PTkdsbE9OWmyq88SC7eeK6P5BRmYdAj4lDgI4IjkCDAI+bE9OWmyq88SC7eeK6P5BRkyJ6eOpze2D8+2J78hBRmYNFzkTHABHbGxPTkdsbE9OWmyq88SC7eeK6P5BRmYMBj8pDQEGPigwHQlsbE9OWmyq88SC7eeK6P5BRmYDBi8TDgoDPmxPTkdsbE9OWmwpV1RRfXZeCF14LlVWAnYoXGNtRSgGHQwTJQtOR2xsT05HbGxSToHQ5orPzKnK9mNtRSUfMQYoKB1OR2xsT05HbGxSToHQ5orPzKnK9mNtRW8jBwQpIhwLg/Ptie/IQUZmCQIiEwsPEylsT05HbGxPTlpsfl9cU2F8WENWeUFlZwI0PAYcAhMoDhoCbGxPTkdxbFZXXnVhXlxKf31iZG4gJQwLCT8pMBoePClPTkdscU9cakZFAwcEKSIcCzg6KR0dDiMiT1NHfUFlZw8tPgsxEzU8Ck5HbGxPTkdxbFxjbW+o0++D9NaI5+9sbE9OR2xsT05HbGxPTkdsbE9OR2xsT05HbGxPTkdsbE9OR0FGT05HbCQOTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04PJSIbTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsCRsLIBMbCx84EwYAAyk0T1NHOD4aC2pGbE9ORyo5AQ0TJSMBMQ4iKAoWR2xxTxoVOSliZEdsbE8MBjgvBzEKIygKTkdsbE9OWmw4HRsCQUZPTkdsPAMxFD0gT05HbGxPTkdsbFJOEz45CmNtb6nn6IL0z4rS6KvF52NtbGxPTgYoKDAACCgpT05HbGxPTkdsbE9OWmwqDgIUKUFlTkdsbA4bEyMTHw8VOCUbBwgibE9OR2xsUk4TPjkKY21sbE9OFSk/ABsVLykwHxIjOA5OR2xsT05abDgdGwJBRk9OR2wiCho4LyQOAAkpIE9OR2xsT05HbHFPXmpGbE9ORygtGw84LTkbATg+KQ0PCy0iDAtHcWwbHBIpQWVNgsn6i9Xxq/fritz6QWVOR2xsDQIGLycwGQ8lOAoxCyU/G05HbHFPGhU5KWJkR2xsTwMGL2xPTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04EIyAwHhUlOgYCAispT05HbGxPU0c4PhoLakZsT05HOD4OABQhJRsxAiIvHRcXOGxPTlpsOB0bAkFGT05HbD8bARUpEwoABD41HxpHbGxPTkdxbBscEilBZU5HbGwNDwQnOR8xAiIvHRcXOGxPTkdscU8aFTkpYmRHbGxPDxIoJRsxCiMoCk5HbGxPTkdsbFJOV0FGT05HbCsDAQUtIDAMDiIgAAk4IiMLC0dxbF9jbWxsT04DLiAGAAxsbE9OR2xsT05HbGxPU0c4PhoLakZsT05HJj8AAEdsbE9OR2xsT05HbGxPTlpsOB0bAkFGT05HbD8fDxMlLQNOR2xsT05HbGxPTkdxbBscEilBZU5HbGwCDx8TPA4cBiAgCgJHbGxPTkdscU9eakZsT05HPzgdCwYhEwMBBihsT05HbGxPTlpsOB0bAkFGTIj7wanlz4/P8Yrk/EFGT05HbCUBHRMtIgwLOCI5Ak5HbHFPXmpGbE9ORzgtDQICEz4AGRRsbE9OR3FsX2NtbGxPTgQjIgELBDgTARsKbGxPTlpsfGJkR2xsTx0TIz4KMQQtPA4NDjg1T1NHfEFlTkdsbAIPHxMiAAoCEyIaA0dsbFJOV0FGT05HbCAGHRMpIjANDy0iAQsLbHFPXmpGRWJkzGJ6/vBjMNoGnkYYT50Aeg==

+ 0 - 1
license.dat@CRLF_lic_op_20240925164511_标准版(单机).cfg

@@ -1 +0,0 @@
-QWVNgNjkiebQpe3WifziqNDPgc3jYmRuPD4ABAIvODAABiEpT05HbHFPhv7WpN/Zgdn8iePJqfb8OFZ+Yl9jbUU5HAsVEyIOAwJsbE9OR2xsUk6B7MuK6eGrxeeB28Sp4vuB0PaA0u5BRmYbFCk+MA8DKD5PTkdsbE9OWmyq88SC7eeK6P5BRmYdAj4lDgI4IjkCDAI+bE9OWmyq88SC7eeK6P5BRkyJ6eOpze2D8+2J78hBRmYNFzkTHABHbGxPTkdsbE9OWmyq88SC7eeK6P5BRmYMBj8pDQEGPigwHQlsbE9OWmyq88SC7eeK6P5BRmYDBi8TDgoDPmxPTkdsbE9OWmwpV1RRfXZeCF14LlVWAnYoXGNtRSgGHQwTJQtOR2xsT05HbGxSToHQ5orPzKnK9mNtRSUfMQYoKB1OR2xsT05HbGxSToHQ5orPzKnK9mNtRW8jBwQpIhwLg/Ptie/IQUZmCQIiEwsPEylsT05HbGxPTlpsfl9cU2F8WENWeUFlZwI0PAYcAhMoDhoCbGxPTkdxbFZXXnVhXlxKf31iZG4gJQwLCT8pMBoePClPTkdscU9cakZFAwcEKSIcCzg6KR0dDiMiT1NHfUFlZw8tPgsxEzU8Ck5HbGxPTkdxbFxjbW+o0++D9NaI5+9sbE9OR2xsT05HbGxPTkdsbE9OR2xsT05HbGxPTkdsbE9OR0FGT05HbCQOTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04PJSIbTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsCRsLIBMbCx84EwYAAyk0T1NHOD4aC2pGbE9ORyo5AQ0TJSMBMQ4iKAoWR2xxTxoVOSliZEdsbE8MBjgvBzEKIygKTkdsbE9OWmw4HRsCQUZPTkdsPAMxFD0gT05HbGxPTkdsbFJOEz45CmNtb6nn6IL0z4rS6KvF52NtbGxPTgYoKDAACCgpT05HbGxPTkdsbE9OWmwqDgIUKUFlTkdsbA4bEyMTHw8VOCUbBwgibE9OR2xsUk4TPjkKY21sbE9OFSk/ABsVLykwHxIjOA5OR2xsT05abDgdGwJBRk9OR2wiCho4LyQOAAkpIE9OR2xsT05HbHFPXmpGbE9ORygtGw84LTkbATg+KQ0PCy0iDAtHcWwbHBIpQWVNgsn6i9Xxq/fritz6QWVOR2xsDQIGLycwGQ8lOAoxCyU/G05HbHFPGhU5KWJkR2xsTwMGL2xPTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04EIyAwHhUlOgYCAispT05HbGxPU0c4PhoLakZsT05HOD4OABQhJRsxAiIvHRcXOGxPTlpsOB0bAkFGT05HbD8bARUpEwoABD41HxpHbGxPTkdxbBscEilBZU5HbGwNDwQnOR8xAiIvHRcXOGxPTkdscU8aFTkpYmRHbGxPDxIoJRsxCiMoCk5HbGxPTkdsbFJOV0FGT05HbCsDAQUtIDAMDiIgAAk4IiMLC0dxbF9jbWxsT04DLiAGAAxsbE9OR2xsT05HbGxPU0c4PhoLakZsT05HJj8AAEdsbE9OR2xsT05HbGxPTlpsOB0bAkFGT05HbD8fDxMlLQNOR2xsT05HbGxPTkdxbBscEilBZU5HbGwCDx8TPA4cBiAgCgJHbGxPTkdscU9eakZsT05HPzgdCwYhEwMBBihsT05HbGxPTlpsOB0bAkFGTIj7wanlz4/P8Yrk/EFGT05HbCUBHRMtIgwLOCI5Ak5HbHFPXmpGbE9ORzgtDQICEz4AGRRsbE9OR3FsX2NtbGxPTgQjIgELBDgTARsKbGxPTlpsfGJkR2xsTx0TIz4KMQQtPA4NDjg1T1NHfEFlTkdsbAIPHxMiAAoCEyIaA0dsbFJOV0FGT05HbCAGHRMpIjANDy0iAQsLbHFPXmpGRWJkzGJ6/vBjMNoGnkYYT50Aeg==

+ 0 - 1
license.dat@CRLF_lic_op_20240925165611_标准版(单机).cfg

@@ -1 +0,0 @@
-QWVNgNjkiebQpe3WifziqNDPgc3jYmRuPD4ABAIvODAABiEpT05HbHFPhv7WpN/Zgdn8iePJqfb8OFZ+Yl9jbUU5HAsVEyIOAwJsbE9OR2xsUk6B7MuK6eGrxeeB28Sp4vuB0PaA0u5BRmYbFCk+MA8DKD5PTkdsbE9OWmyq88SC7eeK6P5BRmYdAj4lDgI4IjkCDAI+bE9OWmyq88SC7eeK6P5BRkyJ6eOpze2D8+2J78hBRmYNFzkTHABHbGxPTkdsbE9OWmyq88SC7eeK6P5BRmYMBj8pDQEGPigwHQlsbE9OWmyq88SC7eeK6P5BRmYDBi8TDgoDPmxPTkdsbE9OWmwtDQ1dLS4MVAYuL1UPES9BZWcDJT8EMQ4obE9OR2xsT05HcWyJ8s2p7cSL4dVBZWcOPBMOCgM+bE9OR2xsT05HcWyJ8s2p7cSL4dVBZWdEACUMCwk/KYvRxqrNwGNtRSsKADgoLRsLR2xsT05HbGxSTlV8fltDV3thXltqRkUKFhclPgoxAy04Ck5HbGxPU0d1dVZXSn1+Ql1WQUZmAg4vKQEdAhM4Fh4CbGxPTlpsfmJkbiAlDAsJPykwGAI+PwYBCWxxT19qRkUHDxUoExsXFylsT05HbGxPU0d/QWVNg/DNi9b9q8XnTkdsbE9OR2xsT05HbGxPTkdsbE9OR2xsT05HbGxPTkdsbE9jbWxsT04PLWxPTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsBwcJOGxPTkdsbE9OR2xsT1NHOD4aC2pGbE9ORyo5AwI4OCkXGjglIgsLH2xxTxoVOSliZEdsbE8IEiIvGwcIIhMGAAMpNE9OWmw4HRsCQUZPTkdsLg4aBCQTAgEDKWxPTkdsbFJOEz45CmNtbGxPThcgExwfC2xsT05HbGxPTkdxbBscEilBZU2CxMqK1uSp8OCJ7sRBZU5HbGwOCgMTIgAKAmxsT05HbGxPTkdsbFJOAS0gHAtqRmxPTkctORsBODwtHRoOOCUAAEdsbE9OR3FsGxwSKUFlTkdsbB0LFCM5HQ0CEz0aARMtbE9OR2xsUk4TPjkKY21sbE9OCSk4MA0PLSIBCwtsbE9OR2xsT05abHxiZEdsbE8KBjgtMA8SOCMwHAIuLQMPCS8pT1NHOD4aC2pGb4rr0aj3+YncyKjU2GpGbE9ORy4gDg0MEzsHBxMpEwMHFDhsT05abDgdGwJBRk9OR2whDg1HbGxPTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsDAELEzwdBxElIAoJAmxsT05HbHFPGhU5KWJkR2xsTxoVLSIcAw44EwoABD41HxpHbGxSThM+OQpjbWxsT04UOCMdCzgpIgwcHjw4T05HbGxPU0c4PhoLakZsT05HLi0MBRI8EwoABD41HxpHbGxPTlpsOB0bAkFGT05HbC0aCg44EwIBAylsT05HbGxPTkdxbF9jbWxsT04AICMNDwsTLgYACyMrMAAIKClPU0d8QWVOR2xsCwwLJSIETkdsbE9OR2xsT05HbHFPGhU5KWJkR2xsTwQUIyJPTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04UPC0bBwYgbE9OR2xsT05HbGxPU0c4PhoLakZsT05HIS0XMRctPg4CCykgT05HbGxPTlpsfGJkR2xsTx0TPikOAzggIw4KR2xsT05HbGxSThM+OQpjbW+q8+OCxu2H7dqpxvRjbWxsT04OIj8bDwkvKTAAEiFsT05abHxiZEdsbE8aBi4gCjEVIzscTkdsbE9TR3xBZU5HbGwMAQkiKQwaOCI5Ak5HbGxSTldBRk9OR2w/GwEVKRMMDxctLwYaHmxxT15qRmxPTkchLRcxCSMoCjEJOSFPTkdxbF9jbWxsT04LJT8bCwkTLwcPCSIpA05abHxiZG5BRu9U/D4DoAV+LOpNxJ6f328=

+ 0 - 1
license.dat@CRLF_lic_op_20240925165631_企业版(双机).cfg

@@ -1 +0,0 @@
-QWVNgNjkiebQpe3WifziqNDPgc3jYmRuPD4ABAIvODAABiEpT05HbHFPhv7WpN/Zgdn8iePJqfb8OFZ+Yl9jbUU5HAsVEyIOAwJsbE9OR2xsUk6D8M2L1v2rxeeB28Sp4OKB0PaA0u5BRmYbFCk+MA8DKD5PTkdsbE9OWmyq88SC7eeK6P5BRmYdAj4lDgI4IjkCDAI+bE9OWmyq88SC7eeK6P5BRkyJ6eOpze2D8+2J78hBRmYNFzkTHABHbGxPTkdsbE9OWmyq88SC7eeK6P5BRmYMBj8pDQEGPigwHQlsbE9OWmyq88SC7eeK6P5BRmYDBi8TDgoDPmxPTkdsbE9OWmx9VlxJfXpXQFZ8fEFcR310VQ1XdnxWVFV7dlcKXXwoYmRuKCUcBTglKE9OR2xsT05HbHFPiPvmqc7FgsrVYmRuJTwwDwMoPk9OR2xsT05HbHFPiPvmqc7FgsrVYmREACUMCwk/KYvRxqrNwGNtRSsKADgoLRsLR2xsT05HbGxSTlV8fltDV3thXltqRkUKFhclPgoxAy04Ck5HbGxPU0d1dVZXSn1+Ql1WQUZmAg4vKQEdAhM4Fh4CbGxPTlpsf2JkbiAlDAsJPykwGAI+PwYBCWxxT19qRkUHDxUoExsXFylsT05HbGxPU0d/QWVNg/DNi9b9q8XnTkdsbE9OR2xsT05HbGxPTkdsbE9OR2xsT05HbGxPTkdsbE9jbWxsT04PLWxPTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsBwcJOGxPTkdsbE9OR2xsT1NHOD4aC2pGbE9ORyo5AwI4OCkXGjglIgsLH2xxTxoVOSliZEdsbE8IEiIvGwcIIhMGAAMpNE9OWmw4HRsCQUZPTkdsLg4aBCQTAgEDKWxPTkdsbFJOEz45CmNtbGxPThcgExwfC2xsT05HbGxPTkdxbBscEilBZU2CxMqK1uSp8OCJ7sRBZU5HbGwOCgMTIgAKAmxsT05HbGxPTkdsbFJOAS0gHAtqRmxPTkctORsBODwtHRoOOCUAAEdsbE9OR3FsGxwSKUFlTkdsbB0LFCM5HQ0CEz0aARMtbE9OR2xsUk4TPjkKY21sbE9OCSk4MA0PLSIBCwtsbE9OR2xsT05abHxiZEdsbE8KBjgtMA8SOCMwHAIuLQMPCS8pT1NHOD4aC2pGb4rr0aj3+YncyKjU2GpGbE9ORy4gDg0MEzsHBxMpEwMHFDhsT05abDgdGwJBRk9OR2whDg1HbGxPTkdsbE9OR2xsT05HcWwbHBIpQWVOR2xsDAELEzwdBxElIAoJAmxsT05HbHFPGhU5KWJkR2xsTxoVLSIcAw44EwoABD41HxpHbGxSThM+OQpjbWxsT04UOCMdCzgpIgwcHjw4T05HbGxPU0c4PhoLakZsT05HLi0MBRI8EwoABD41HxpHbGxPTlpsOB0bAkFGT05HbC0aCg44EwIBAylsT05HbGxPTkdxbF9jbWxsT04AICMNDwsTLgYACyMrMAAIKClPU0d8QWVOR2xsCwwLJSIETkdsbE9OR2xsT05HbHFPGhU5KWJkR2xsTwQUIyJPTkdsbE9OR2xsT05HbGxSThM+OQpjbWxsT04UPC0bBwYgbE9OR2xsT05HbGxPU0c4PhoLakZsT05HIS0XMRctPg4CCykgT05HbGxPTlpsfGJkR2xsTx0TPikOAzggIw4KR2xsT05HbGxSThM+OQpjbW+q8+OCxu2H7dqpxvRjbWxsT04OIj8bDwkvKTAAEiFsT05abHxiZEdsbE8aBi4gCjEVIzscTkdsbE9TR3xBZU5HbGwMAQkiKQwaOCI5Ak5HbGxSTldBRk9OR2w/GwEVKRMMDxctLwYaHmxxT15qRmxPTkchLRcxCSMoCjEJOSFPTkdxbF9jbWxsT04LJT8bCwkTLwcPCSIpA05abHxiZG5BRue5gBYMxuQB6gvgovK/ze8=

+ 25 - 25
static/license_info/bakup/license_info 9.11.html

@@ -1352,7 +1352,7 @@ async function initialize() {
 //获取license展示信息
 function fetchApplications(page, size) {
     
-    fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1784,7 +1784,7 @@ function confirmGenerateLicense(id, isParentRow) {
 function generateLicense(id, isParentRow) {
     const payload = isParentRow ? { oa_request_id: id } : { uniqueID: id };
     
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1829,7 +1829,7 @@ function CaptureLicenseOncefunc() {
     });
 
     // 发起 GET 请求的 Promise
-    const fetchPromise = fetch('http://10.28.20.105:8080/api/admin/GetCaptureLicenseOnce', {
+    const fetchPromise = fetch('http://127.0.0.1:8080/api/admin/GetCaptureLicenseOnce', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2006,7 +2006,7 @@ function openUserActionModal(event, data, modalId) {
 
 // 为用户管理界面的每一行添加点击和右键事件监听器
 function fetchUsers() {
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2051,7 +2051,7 @@ function fetchUsers() {
 
 //查看用户lic历史
 function showUserLicenseHistory() {
-    fetch(`http://10.28.20.105:8080/api/admin/GetlicenseRecordInfoByUser`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetlicenseRecordInfoByUser`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2206,7 +2206,7 @@ function confirmDelete() {
 }
 
 function deleteRow() {
-            fetch(`http://10.28.20.105:8080/api/admin/deleteLicRow`, {
+            fetch(`http://127.0.0.1:8080/api/admin/deleteLicRow`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -2281,7 +2281,7 @@ function saveNewUser() {
         Email: email
     };
 
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2307,7 +2307,7 @@ function saveNewUser() {
 
 
 function deleteUser(uniqueID) {
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2354,7 +2354,7 @@ function showEmailModal(supportEmail, salesEmail, uniqueID,oa_request_id) {
     document.getElementById('userInputs').innerHTML = ''; // 清空用户输入
 
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2445,7 +2445,7 @@ function addUserInput() {
         .map(select => select.value);
 
     // 获取用户列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2504,7 +2504,7 @@ function updateUserOptions() {
         defaultOption.textContent = '请选择用户';
         select.appendChild(defaultOption);
 
-        fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+        fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2571,7 +2571,7 @@ function saveLicenseChanges() {
         NodeCount: parseInt(form.nodeCount.value, 10), // 将 NodeCount 转换为整数
     };
     
-    fetch(`http://10.28.20.105:8080/api/admin/UpdateLicense`, {
+    fetch(`http://127.0.0.1:8080/api/admin/UpdateLicense`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2605,7 +2605,7 @@ function updateUserOptions() {
         const currentValue = select.value;  // 保留当前选择值
         select.innerHTML = ''; // 清空现有选项
         
-        fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+        fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2698,7 +2698,7 @@ function sendEmail() {
     };
     console.log('requestData:', requestData);
 
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2733,7 +2733,7 @@ function sendEmail() {
 
 
 function showDistributionHistory() {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2893,7 +2893,7 @@ function showRoleManagement() {
 }
 
 function fetchRoles() {
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3235,7 +3235,7 @@ function getCheckboxOptions(selectedPermissions) {
 function fetchRoleInfo(roleName, callback) {
     console.log(`fetchRoleInfo called with roleName: ${roleName}`);
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3309,7 +3309,7 @@ function saveRoleChanges(roleId) {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3338,7 +3338,7 @@ function deleteRole(roleName) {
         return;
     }
 
-    fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+    fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3448,7 +3448,7 @@ function createNewRole() {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3508,7 +3508,7 @@ function showEditUserForm() {
         form.appendChild(roleSelectDiv);
 
         // 获取角色列表并填充到选择框中
-        fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+        fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3554,7 +3554,7 @@ function saveUserChanges() {
                 Role: formData.get('role')
             };
 
-            fetch(`http://10.28.20.105:8080/api/admin/updateUser`, {
+            fetch(`http://127.0.0.1:8080/api/admin/updateUser`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -3583,7 +3583,7 @@ function toggleUserInfo() {
     const windowWidth = window.innerWidth; // 浏览器窗口的宽度
 
     if (userModal.style.display === 'none' || userModal.style.display === '') {
-        fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3736,7 +3736,7 @@ function toggleSidebar() {
 
 
  function fetchUsername() {
-    fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+    fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3776,7 +3776,7 @@ function toggleSidebar() {
 }
 
 function fetchPermissionsByRole(role) {
-    return fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+    return fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,

+ 25 - 25
static/license_info/bakup/license_info copy 2.html

@@ -1362,7 +1362,7 @@ async function initialize() {
 //获取license展示信息
 function fetchApplications(page, size) {
     
-    fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1806,7 +1806,7 @@ function confirmGenerateLicense(id, isParentRow) {
 function generateLicense(id, isParentRow) {
     const payload = isParentRow ? { oa_request_id: id } : { uniqueID: id };
     
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1862,7 +1862,7 @@ function CaptureLicenseOncefunc() {
     });
 
     // 发起 GET 请求的 Promise
-    const fetchPromise = fetch('http://10.28.20.105:8080/api/admin/GetCaptureLicenseOnce', {
+    const fetchPromise = fetch('http://127.0.0.1:8080/api/admin/GetCaptureLicenseOnce', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2039,7 +2039,7 @@ function openUserActionModal(event, data, modalId) {
 
 // 为用户管理界面的每一行添加点击和右键事件监听器
 function fetchUsers() {
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2084,7 +2084,7 @@ function fetchUsers() {
 
 //查看用户lic历史
 function showUserLicenseHistory() {
-    fetch(`http://10.28.20.105:8080/api/admin/GetlicenseRecordInfoByUser`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetlicenseRecordInfoByUser`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2239,7 +2239,7 @@ function confirmDelete() {
 }
 
 function deleteRow() {
-            fetch(`http://10.28.20.105:8080/api/admin/deleteLicRow`, {
+            fetch(`http://127.0.0.1:8080/api/admin/deleteLicRow`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -2314,7 +2314,7 @@ function saveNewUser() {
         Email: email
     };
 
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2340,7 +2340,7 @@ function saveNewUser() {
 
 
 function deleteUser(uniqueID) {
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2387,7 +2387,7 @@ function showEmailModal(supportEmail, salesEmail, uniqueID,oa_request_id) {
     document.getElementById('userInputs').innerHTML = ''; // 清空用户输入
 
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2480,7 +2480,7 @@ function addUserInput() {
         .map(select => select.value);
 
     // 获取用户列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2539,7 +2539,7 @@ function updateUserOptions() {
         defaultOption.textContent = '请选择用户';
         select.appendChild(defaultOption);
 
-        fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+        fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2606,7 +2606,7 @@ function saveLicenseChanges() {
         NodeCount: parseInt(form.nodeCount.value, 10), // 将 NodeCount 转换为整数
     };
     
-    fetch(`http://10.28.20.105:8080/api/admin/UpdateLicense`, {
+    fetch(`http://127.0.0.1:8080/api/admin/UpdateLicense`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2640,7 +2640,7 @@ function updateUserOptions() {
         const currentValue = select.value;  // 保留当前选择值
         select.innerHTML = ''; // 清空现有选项
         
-        fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+        fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2738,7 +2738,7 @@ function sendEmail() {
     };
     console.log('requestData:', requestData);
 
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2779,7 +2779,7 @@ function sendEmail() {
 
 
 function showDistributionHistory() {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2939,7 +2939,7 @@ function showRoleManagement() {
 }
 
 function fetchRoles() {
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3281,7 +3281,7 @@ function getCheckboxOptions(selectedPermissions) {
 function fetchRoleInfo(roleName, callback) {
     console.log(`fetchRoleInfo called with roleName: ${roleName}`);
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3355,7 +3355,7 @@ function saveRoleChanges(roleId) {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3384,7 +3384,7 @@ function deleteRole(roleName) {
         return;
     }
 
-    fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+    fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3494,7 +3494,7 @@ function createNewRole() {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3554,7 +3554,7 @@ function showEditUserForm() {
         form.appendChild(roleSelectDiv);
 
         // 获取角色列表并填充到选择框中
-        fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+        fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3600,7 +3600,7 @@ function saveUserChanges() {
                 Role: formData.get('role')
             };
 
-            fetch(`http://10.28.20.105:8080/api/admin/updateUser`, {
+            fetch(`http://127.0.0.1:8080/api/admin/updateUser`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -3629,7 +3629,7 @@ function toggleUserInfo() {
     const windowWidth = window.innerWidth; // 浏览器窗口的宽度
 
     if (userModal.style.display === 'none' || userModal.style.display === '') {
-        fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3782,7 +3782,7 @@ function toggleSidebar() {
 
 
  function fetchUsername() {
-    fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+    fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3822,7 +3822,7 @@ function toggleSidebar() {
 }
 
 function fetchPermissionsByRole(role) {
-    return fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+    return fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,

+ 25 - 25
static/license_info/bakup/license_info copy 主行分页展示版本.html

@@ -1352,7 +1352,7 @@ async function initialize() {
 //获取license展示信息
 function fetchApplications(page, size) {
     
-    fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1784,7 +1784,7 @@ function confirmGenerateLicense(id, isParentRow) {
 function generateLicense(id, isParentRow) {
     const payload = isParentRow ? { oa_request_id: id } : { uniqueID: id };
     
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1829,7 +1829,7 @@ function CaptureLicenseOncefunc() {
     });
 
     // 发起 GET 请求的 Promise
-    const fetchPromise = fetch('http://10.28.20.105:8080/api/admin/GetCaptureLicenseOnce', {
+    const fetchPromise = fetch('http://127.0.0.1:8080/api/admin/GetCaptureLicenseOnce', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2029,7 +2029,7 @@ function openUserActionModal(event, data, modalId) {
 
 // 为用户管理界面的每一行添加点击和右键事件监听器
 function fetchUsers() {
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2074,7 +2074,7 @@ function fetchUsers() {
 
 //查看用户lic历史
 function showUserLicenseHistory() {
-    fetch(`http://10.28.20.105:8080/api/admin/GetlicenseRecordInfoByUser`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetlicenseRecordInfoByUser`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2229,7 +2229,7 @@ function confirmDelete() {
 }
 
 function deleteRow() {
-            fetch(`http://10.28.20.105:8080/api/admin/deleteLicRow`, {
+            fetch(`http://127.0.0.1:8080/api/admin/deleteLicRow`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -2304,7 +2304,7 @@ function saveNewUser() {
         Email: email
     };
 
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2330,7 +2330,7 @@ function saveNewUser() {
 
 
 function deleteUser(uniqueID) {
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2377,7 +2377,7 @@ function showEmailModal(supportEmail, salesEmail, uniqueID,oa_request_id) {
     document.getElementById('userInputs').innerHTML = ''; // 清空用户输入
 
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2468,7 +2468,7 @@ function addUserInput() {
         .map(select => select.value);
 
     // 获取用户列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2527,7 +2527,7 @@ function updateUserOptions() {
         defaultOption.textContent = '请选择用户';
         select.appendChild(defaultOption);
 
-        fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+        fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2594,7 +2594,7 @@ function saveLicenseChanges() {
         NodeCount: parseInt(form.nodeCount.value, 10), // 将 NodeCount 转换为整数
     };
     
-    fetch(`http://10.28.20.105:8080/api/admin/UpdateLicense`, {
+    fetch(`http://127.0.0.1:8080/api/admin/UpdateLicense`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2628,7 +2628,7 @@ function updateUserOptions() {
         const currentValue = select.value;  // 保留当前选择值
         select.innerHTML = ''; // 清空现有选项
         
-        fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+        fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2721,7 +2721,7 @@ function sendEmail() {
     };
     console.log('requestData:', requestData);
 
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2756,7 +2756,7 @@ function sendEmail() {
 
 
 function showDistributionHistory() {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2916,7 +2916,7 @@ function showRoleManagement() {
 }
 
 function fetchRoles() {
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3258,7 +3258,7 @@ function getCheckboxOptions(selectedPermissions) {
 function fetchRoleInfo(roleName, callback) {
     console.log(`fetchRoleInfo called with roleName: ${roleName}`);
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3332,7 +3332,7 @@ function saveRoleChanges(roleId) {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3361,7 +3361,7 @@ function deleteRole(roleName) {
         return;
     }
 
-    fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+    fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3471,7 +3471,7 @@ function createNewRole() {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3531,7 +3531,7 @@ function showEditUserForm() {
         form.appendChild(roleSelectDiv);
 
         // 获取角色列表并填充到选择框中
-        fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+        fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3577,7 +3577,7 @@ function saveUserChanges() {
                 Role: formData.get('role')
             };
 
-            fetch(`http://10.28.20.105:8080/api/admin/updateUser`, {
+            fetch(`http://127.0.0.1:8080/api/admin/updateUser`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -3606,7 +3606,7 @@ function toggleUserInfo() {
     const windowWidth = window.innerWidth; // 浏览器窗口的宽度
 
     if (userModal.style.display === 'none' || userModal.style.display === '') {
-        fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3759,7 +3759,7 @@ function toggleSidebar() {
 
 
  function fetchUsername() {
-    fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+    fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3799,7 +3799,7 @@ function toggleSidebar() {
 }
 
 function fetchPermissionsByRole(role) {
-    return fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+    return fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,

+ 24 - 24
static/license_info/bakup/license_info copy.html

@@ -1290,7 +1290,7 @@ function checkPermission(permission) {
 
 //获取license展示信息
 function fetchApplications(page, size) {
-    fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1650,7 +1650,7 @@ function confirmGenerateLicense(id, isParentRow) {
 function generateLicense(id, isParentRow) {
     const payload = isParentRow ? { oa_request_id: id } : { uniqueID: id };
     
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1809,7 +1809,7 @@ function openUserActionModal(event, data, modalId) {
 
 // 为用户管理界面的每一行添加点击和右键事件监听器
 function fetchUsers() {
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1854,7 +1854,7 @@ function fetchUsers() {
 
 //查看用户lic历史
 function showUserLicenseHistory() {
-    fetch(`http://10.28.20.105:8080/api/admin/GetlicenseRecordInfoByUser`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetlicenseRecordInfoByUser`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2054,7 +2054,7 @@ function saveNewUser() {
         Email: email
     };
 
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2080,7 +2080,7 @@ function saveNewUser() {
 
 
 function deleteUser(uniqueID) {
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2110,7 +2110,7 @@ function confirmDeleteUser(uniqueID) {
 }
 
  function deleteRow() {
-            fetch(`http://10.28.20.105:8080/api/admin/deleteLicRow`, {
+            fetch(`http://127.0.0.1:8080/api/admin/deleteLicRow`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -2149,7 +2149,7 @@ function showEmailModal(supportEmail, salesEmail, uniqueID) {
     document.getElementById('userInputs').innerHTML = ''; // 清空用户输入
 
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2240,7 +2240,7 @@ function addUserInput() {
         .map(select => select.value);
 
     // 获取用户列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2299,7 +2299,7 @@ function updateUserOptions() {
         defaultOption.textContent = '请选择用户';
         select.appendChild(defaultOption);
 
-        fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+        fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2366,7 +2366,7 @@ function saveLicenseChanges() {
         NodeCount: parseInt(form.nodeCount.value, 10), // 将 NodeCount 转换为整数
     };
     
-    fetch(`http://10.28.20.105:8080/api/admin/UpdateLicense`, {
+    fetch(`http://127.0.0.1:8080/api/admin/UpdateLicense`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2400,7 +2400,7 @@ function updateUserOptions() {
         const currentValue = select.value;  // 保留当前选择值
         select.innerHTML = ''; // 清空现有选项
         
-        fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+        fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2492,7 +2492,7 @@ function sendEmail() {
     };
     console.log('requestData:', requestData);
 
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2527,7 +2527,7 @@ function sendEmail() {
 
 
 function showDistributionHistory() {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2687,7 +2687,7 @@ function showRoleManagement() {
 }
 
 function fetchRoles() {
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3029,7 +3029,7 @@ function getCheckboxOptions(selectedPermissions) {
 function fetchRoleInfo(roleName, callback) {
     console.log(`fetchRoleInfo called with roleName: ${roleName}`);
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3103,7 +3103,7 @@ function saveRoleChanges(roleId) {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3132,7 +3132,7 @@ function deleteRole(roleName) {
         return;
     }
 
-    fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+    fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3242,7 +3242,7 @@ function createNewRole() {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3302,7 +3302,7 @@ function showEditUserForm() {
     extraInfoContent.appendChild(form);
 
     // 获取角色列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3336,7 +3336,7 @@ function saveUserChanges() {
                 Role: formData.get('role')
             };
 
-            fetch(`http://10.28.20.105:8080/api/admin/updateUser`, {
+            fetch(`http://127.0.0.1:8080/api/admin/updateUser`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -3365,7 +3365,7 @@ function toggleUserInfo() {
     const windowWidth = window.innerWidth; // 浏览器窗口的宽度
 
     if (userModal.style.display === 'none' || userModal.style.display === '') {
-        fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -3502,7 +3502,7 @@ function toggleSidebar() {
 
 
  function fetchUsername() {
-    fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+    fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -3538,7 +3538,7 @@ function toggleSidebar() {
 }
 
 function fetchPermissionsByRole(role) {
-    return fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+    return fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,

+ 5 - 5
static/license_info/license_info.js

@@ -130,7 +130,7 @@ function CaptureLicenseOncefunc() {
     });
 
     // 发起 GET 请求的 Promise
-    const fetchPromise = fetch('http://10.28.20.105:8080/api/admin/GetCaptureLicenseOnce', {
+    const fetchPromise = fetch('http://127.0.0.1:8080/api/admin/GetCaptureLicenseOnce', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${authToken}`, // 假设 token 已定义
@@ -287,7 +287,7 @@ roleManagementLink.addEventListener('click', function(event) {
 // 获取数据函数
 async function fetchLicenseData(page, pageSize) {
     try {
-        const response = await fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${pageSize}`, {
+        const response = await fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${pageSize}`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -523,7 +523,7 @@ initializeScrollListeners()
 ///-----------获取登录用户信息----------------------------------------
 async function fetchUsername() {
     try {
-        const response = await fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        const response = await fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -555,7 +555,7 @@ fetchUsername();
 // 将 fetchPermissionsByRole 转换为异步函数
 async function fetchPermissionsByRole(role) {
     try {
-        const response = await fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+        const response = await fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
             method: 'POST',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -674,7 +674,7 @@ function filterContent() {
 
     console.log("requestData",requestData);
     // 发送 POST 请求到接口
-    fetch('http://10.28.20.105:8080/api/admin/GetConditionalSearch', {
+    fetch('http://127.0.0.1:8080/api/admin/GetConditionalSearch', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,

+ 10 - 8
static/license_info/license_info_distribution.js

@@ -7,7 +7,7 @@ function showDistributeModal(item) {
 
     let usersInfo;
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${authToken}`, // 确保autoToken是您获取的用户授权令牌
@@ -119,9 +119,12 @@ function handleEmailSection(item, usersInfo) {
         return duplicates;
     }
 
-    // 点击确认按钮
+    // 绑定确认按钮点击事件前,先解除已有事件监听器
     const emailConfirmBtn = document.getElementById('DistributeModal-email-confirm-btn');
-    emailConfirmBtn.addEventListener('click', () => {
+    emailConfirmBtn.replaceWith(emailConfirmBtn.cloneNode(true));
+    const newEmailConfirmBtn = document.getElementById('DistributeModal-email-confirm-btn');
+
+    newEmailConfirmBtn.addEventListener('click', () => {
         // 收集邮箱信息
         let emails = Array.from(document.querySelectorAll('.DistributeModal-email-input'))
                             .map(input => input.value.trim())
@@ -153,7 +156,6 @@ function handleEmailSection(item, usersInfo) {
     });
 }
 
-
 function handleUserSection(item, usersInfo) { 
     console.log('handleUserSection 用户信息:', usersInfo); // 打印用户信息
     const userInputs = document.getElementById('DistributeModal-user-inputs'); 
@@ -335,7 +337,7 @@ function distributeEmails(item, emails, usersInfo) {
     console.log('即将发送的数据:', postData);
     showLoadingModal("正在分发邮箱中...");
     // 发送 POST 请求到 DistributeLicenseToEmail 接口
-    fetch('http://10.28.20.105:8080/api/admin/DistributeLicenseToEmail', {
+    fetch('http://127.0.0.1:8080/api/admin/DistributeLicenseToEmail', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`, // 使用 authToken
@@ -380,7 +382,7 @@ function distributeUser(item, uniqueIDArray, usernameArray, accountArray) {
     console.log('Sending user data:', postData);
     showLoadingModal("正在分发用户中...");
     // 发送 POST 请求到 DistributeLicenseToUser 接口
-    fetch('http://10.28.20.105:8080/api/admin/DistributeLicenseToUser', {
+    fetch('http://127.0.0.1:8080/api/admin/DistributeLicenseToUser', {
         method: 'POST',
         headers: {
             'Content-Type': 'application/json',
@@ -417,7 +419,7 @@ function distributeUser(item, uniqueIDArray, usernameArray, accountArray) {
 
 //--------------分发历史模态框------------------------
 // function showDistributionHistory(selectedRowData) {
-//     fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+//     fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
 //         method: 'POST',
 //         headers: {
 //             'Authorization': `Bearer ${authToken}`,
@@ -468,7 +470,7 @@ function distributeUser(item, uniqueIDArray, usernameArray, accountArray) {
 // }
 
 function showDistributionHistory(selectedRowData) {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,

+ 1 - 1
static/license_info/license_info_modal.js

@@ -367,7 +367,7 @@ function generateLicense(id, isParentRow) {
    : { uniqueID: parseInt(id, 10) };  // 将 id 转换为整数
 
     console.log("generateLicense",payload ,id, isParentRow)
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,

+ 26 - 26
static/license_info/old/old_license_info.html

@@ -382,7 +382,7 @@ async function initialize() {
 //获取license展示信息
 function fetchApplications(page, size) {
     
-    fetch(`http://10.28.20.105:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetAllLicenseInfo?page=${page}&pageSize=${size}`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -845,7 +845,7 @@ function confirmGenerateLicense(id, isParentRow) {
 function generateLicense(id, isParentRow) {
     const payload = isParentRow ? { oa_request_id: id } : { uniqueID: id };
     
-    fetch('http://10.28.20.105:8080/api/admin/GenerateLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/GenerateLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -901,7 +901,7 @@ function CaptureLicenseOncefunc() {
     });
 
     // 发起 GET 请求的 Promise
-    const fetchPromise = fetch('http://10.28.20.105:8080/api/admin/GetCaptureLicenseOnce', {
+    const fetchPromise = fetch('http://127.0.0.1:8080/api/admin/GetCaptureLicenseOnce', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1116,7 +1116,7 @@ function openUserActionModal(event, data, modalId) {
 
 // 为用户管理界面的每一行添加点击和右键事件监听器
 function fetchUsers() {
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1161,7 +1161,7 @@ function fetchUsers() {
 
 //查看用户lic历史
 function showUserLicenseHistory() {
-    fetch(`http://10.28.20.105:8080/api/admin/GetlicenseRecordInfoByUser`, {
+    fetch(`http://127.0.0.1:8080/api/admin/GetlicenseRecordInfoByUser`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1316,7 +1316,7 @@ function confirmDelete() {
 }
 
 function deleteRow() {
-            fetch(`http://10.28.20.105:8080/api/admin/deleteLicRow`, {
+            fetch(`http://127.0.0.1:8080/api/admin/deleteLicRow`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -1391,7 +1391,7 @@ function saveNewUser() {
         Email: email
     };
 
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1417,7 +1417,7 @@ function saveNewUser() {
 
 
 function deleteUser(uniqueID) {
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1455,7 +1455,7 @@ function distributeLicense(oa_id,supportEmail, salesEmail, uniqueID,oa_request_i
     showLoadingModal('正在分发...');
 
     // 将数据作为查询参数传递给 GET 请求
-    const url = `http://10.28.20.105:8080/api/admin/GetDistributeButtenCheckController?oa_request_id=${oa_id}`;
+    const url = `http://127.0.0.1:8080/api/admin/GetDistributeButtenCheckController?oa_request_id=${oa_id}`;
 
     // 向后端发送 GET 请求
     fetch(url, {
@@ -1504,7 +1504,7 @@ function showEmailModal(supportEmail, salesEmail, uniqueID,oa_request_id) {
     document.getElementById('userInputs').innerHTML = ''; // 清空用户输入
 
     // 获取用户信息并填充第一个用户输入框
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1597,7 +1597,7 @@ function addUserInput() {
         .map(select => select.value);
 
     // 获取用户列表并填充到选择框中
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1656,7 +1656,7 @@ function updateUserOptions() {
         defaultOption.textContent = '请选择用户';
         select.appendChild(defaultOption);
 
-        fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+        fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -1723,7 +1723,7 @@ function saveLicenseChanges() {
         NodeCount: parseInt(form.nodeCount.value, 10), // 将 NodeCount 转换为整数
     };
     
-    fetch(`http://10.28.20.105:8080/api/admin/UpdateLicense`, {
+    fetch(`http://127.0.0.1:8080/api/admin/UpdateLicense`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1757,7 +1757,7 @@ function updateUserOptions() {
         const currentValue = select.value;  // 保留当前选择值
         select.innerHTML = ''; // 清空现有选项
         
-        fetch('http://10.28.20.105:8080/api/admin/distributeLicenseByUserInfo', {
+        fetch('http://127.0.0.1:8080/api/admin/distributeLicenseByUserInfo', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -1857,7 +1857,7 @@ function sendEmail() {
     };
     console.log('requestData:', requestData);
 
-    fetch('http://10.28.20.105:8080/api/admin/distributeLicense', {
+    fetch('http://127.0.0.1:8080/api/admin/distributeLicense', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -1898,7 +1898,7 @@ function sendEmail() {
 
 
 function showDistributionHistory() {
-    fetch('http://10.28.20.105:8080/api/admin/GetlicenseRecord', {
+    fetch('http://127.0.0.1:8080/api/admin/GetlicenseRecord', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2082,7 +2082,7 @@ function showRoleManagement() {
 }
 
 function fetchRoles() {
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2424,7 +2424,7 @@ function getCheckboxOptions(selectedPermissions) {
 function fetchRoleInfo(roleName, callback) {
     console.log(`fetchRoleInfo called with roleName: ${roleName}`);
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2498,7 +2498,7 @@ function saveRoleChanges(roleId) {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2527,7 +2527,7 @@ function deleteRole(roleName) {
         return;
     }
 
-    fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+    fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2637,7 +2637,7 @@ function createNewRole() {
         Permissions: selectedPermissions
     };
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2697,7 +2697,7 @@ function showEditUserForm() {
         form.appendChild(roleSelectDiv);
 
         // 获取角色列表并填充到选择框中
-        fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+        fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2743,7 +2743,7 @@ function saveUserChanges() {
                 Role: formData.get('role')
             };
 
-            fetch(`http://10.28.20.105:8080/api/admin/updateUser`, {
+            fetch(`http://127.0.0.1:8080/api/admin/updateUser`, {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`,
@@ -2772,7 +2772,7 @@ function toggleUserInfo() {
     const windowWidth = window.innerWidth; // 浏览器窗口的宽度
 
     if (userModal.style.display === 'none' || userModal.style.display === '') {
-        fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+        fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${token}`,
@@ -2925,7 +2925,7 @@ function toggleSidebar() {
 
 
  function fetchUsername() {
-    fetch(`http://10.28.20.105:8080/api/admin/userInfo`, {
+    fetch(`http://127.0.0.1:8080/api/admin/userInfo`, {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${token}`,
@@ -2965,7 +2965,7 @@ function toggleSidebar() {
 }
 
 function fetchPermissionsByRole(role) {
-    return fetch(`http://10.28.20.105:8080/api/admin/GetSelfRoles`, {
+    return fetch(`http://127.0.0.1:8080/api/admin/GetSelfRoles`, {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${token}`,

+ 2 - 2
static/login/login.js

@@ -1,5 +1,5 @@
 document.addEventListener('DOMContentLoaded', () => {
-    fetch('http://10.28.20.105:8080/api/image')
+    fetch('http://127.0.0.1:8080/api/image')
         .then(response => response.blob())
         .then(imageBlob => {
             const imageObjectURL = URL.createObjectURL(imageBlob);
@@ -17,7 +17,7 @@ async function login(event) {
     const password = document.getElementById('password').value;
 
     try {
-        const response = await fetch('http://10.28.20.105:8080/api/login', {
+        const response = await fetch('http://127.0.0.1:8080/api/login', {
             method: 'POST',
             headers: {
                 'Content-Type': 'application/json'

+ 8 - 5
static/role/role.css

@@ -184,22 +184,25 @@ form button:hover {
 }
 
 #permissionsContainer label {
+    display: inline-block; /* 让复选框和文字同一行 */
     margin-left: 8px;
+    margin-bottom: 4px; /* 减少下方间距 */
     font-weight: 400;
     color: #3c3c43;
+    vertical-align: middle; /* 让标签和复选框对齐 */
 }
 
 /* 子权限复选框容器 */
 .role-sub-permissions {
     margin-left: 15px; /* 保持左侧缩进 */
+    margin-bottom: 4px; /* 减少子权限复选框的下方间距 */
 }
 
 .role-sub-permissions input[type="checkbox"] + label {
-    display: block; /* 使标签占据整行,便于添加边框 */
-    padding: 4px 0; /* 增加上下内边距,使边框不贴紧文本 */
-    /* 移除子权限项的上下边框 */
-    border: none;
-    margin: 0; /* 去除默认外边距 */
+    display: inline-block; /* 使标签和复选框同一行 */
+    margin-left: 8px;
+    vertical-align: middle;
+    padding: 0; /* 移除子权限项的内边距 */
 }
 
 /* 父权限容器样式 */

+ 5 - 5
static/role/role.js

@@ -18,7 +18,7 @@ document.getElementById('CreateRoleModa').addEventListener('submit', function(ev
 
 function fetchRoles() {
     
-    fetch('http://10.28.20.105:8080/api/admin/GetRoles', {
+    fetch('http://127.0.0.1:8080/api/admin/GetRoles', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,
@@ -122,7 +122,7 @@ function showRoleActionMenu(event, roleName,roleInfo) {
     menu.style.top = `${event.clientY}px`;
     menu.style.left = `${event.clientX}px`;
 
-    const topRoles = ['admin', 'guest', 'supportRole'];
+    const topRoles = ['admin', 'guest', 'support'];
 
     if (topRoles.includes(roleName)) {
         // 为置顶角色设置不可操作的提示
@@ -341,7 +341,7 @@ function modifyRole(roleId) {
     };
 
     // 发送修改请求
-    fetch('http://10.28.20.105:8080/api/admin/UpdateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/UpdateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,
@@ -373,7 +373,7 @@ function modifyRole(roleId) {
 // 示例的删除角色函数
 function deleteRole(roleName) {
     if (confirm(`确定要删除角色:${roleName} 吗?`)) {
-        fetch('http://10.28.20.105:8080/api/admin/DeleteRole', {
+        fetch('http://127.0.0.1:8080/api/admin/DeleteRole', {
             method: 'POST',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -553,7 +553,7 @@ function createRole() {
     };
     console.log("requestBody", requestBody);
 
-    fetch('http://10.28.20.105:8080/api/admin/CreateRole', {
+    fetch('http://127.0.0.1:8080/api/admin/CreateRole', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,

+ 1 - 1
static/upload_xlsx/script.js

@@ -46,7 +46,7 @@ document.addEventListener('DOMContentLoaded', () => {
 
             const token = localStorage.getItem('Authorization');
 
-            const response = await fetch('http://10.28.20.105:8080/api/admin/upfile', {
+            const response = await fetch('http://127.0.0.1:8080/api/admin/upfile', {
                 method: 'POST',
                 headers: {
                     'Authorization': `Bearer ${token}`

+ 9 - 7
static/user/user.js

@@ -37,7 +37,7 @@ document.getElementById("addUserButton").addEventListener('click', function() {
 fetchUsers();
 function fetchUsers() {
     console.log('Fetching users...');
-    fetch('http://10.28.20.105:8080/api/admin/userInfoAll', {
+    fetch('http://127.0.0.1:8080/api/admin/userInfoAll', {
         method: 'GET',
         headers: {
             'Authorization': `Bearer ${authToken}`,
@@ -93,11 +93,13 @@ function openUserActionModal(user) {
 
     // 处理删除用户按钮点击
     document.getElementById("deleteUserButton").onclick = () => {
-        deleteUser(user);
+        const userConfirmation = confirm("确定要删除该用户吗?");
+        if (userConfirmation) {
+            deleteUser(user);
+        }
     };
 
 
-
     // 关闭模态框的点击事件(右上角关闭按钮)
     document.querySelector(".user-info-close").onclick = function() {
         closeModal("userActionModal"); // 使用封装好的 closeModal 函数
@@ -133,7 +135,7 @@ function editUser(user) {
     // 检查权限并填充角色选择框
     if (currentUserPermissions.includes('update_role')) {
         roleSelectDiv.style.display = "block";
-        fetch('http://10.28.20.105:8080/api/admin/GetRoleNames', {
+        fetch('http://127.0.0.1:8080/api/admin/GetRoleNames', {
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -180,7 +182,7 @@ function editUser(user) {
         };
 
         // API 请求保存用户信息
-        fetch('http://10.28.20.105:8080/api/admin/updateUser', {
+        fetch('http://127.0.0.1:8080/api/admin/updateUser', {
             method: 'POST',
             headers: {
                 'Authorization': `Bearer ${authToken}`,
@@ -216,7 +218,7 @@ document.getElementById("editUserButton").onclick = () => {
 //删除用户
 function deleteUser(user) {
     const uniqueID = user.UniqueID; // 获取用户的唯一ID
-    fetch('http://10.28.20.105:8080/api/admin/deleteUser', {
+    fetch('http://127.0.0.1:8080/api/admin/deleteUser', {
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,
@@ -313,7 +315,7 @@ function saveNewUser() {
     };
 
     // 发起请求保存新用户
-    fetch('http://10.28.20.105:8080/api/register', {  // 修改为实际的API路径
+    fetch('http://127.0.0.1:8080/api/register', {  // 修改为实际的API路径
         method: 'POST',
         headers: {
             'Authorization': `Bearer ${authToken}`,  // 确保 authToken 是有效的

+ 4 - 4
支持库建表语句.sql

@@ -4,11 +4,11 @@ use license;
 CREATE TABLE lic_USER (
     id INT IDENTITY(10,1) PRIMARY KEY,         -- 自增主键,从10开始,每次递增1
     UNIQUEID VARCHAR(36) NOT NULL UNIQUE,     -- 唯一值ID
-    Username VARCHAR(255) NOT NULL UNIQUE DEFAULT '访客',     -- 用户名,不能为空且唯一
-    Account VARCHAR(255) NOT NULL UNIQUE,  --账号
+    Username VARCHAR(255) NOT NULL  DEFAULT '访客',     -- 用户名,不能为空且唯一
+    Account VARCHAR(255) NOT NULL ,  --账号
     PassWord VARCHAR(255) NOT NULL ,            -- 密码,不能为空
-    TELEPHONE VARCHAR(20) NOT NULL UNIQUE,                     -- 电话号码
-    EMAIL VARCHAR(100) NOT NULL UNIQUE,        -- 电子邮件,不能为空且唯一,长度调整为100
+    TELEPHONE VARCHAR(20) NOT NULL ,                     -- 电话号码
+    EMAIL VARCHAR(100) NOT NULL ,        -- 电子邮件,不能为空且唯一,长度调整为100
     Role VARCHAR(20) NOT NULL DEFAULT 'guest',   -- 角色,不能为空,默认值为 'user'
     DelTime DATETIME COMMENT '删除或失效的时间',
     groupId int COMMENT '组'