Browse Source

改文件内容

dongzaixing 1 month ago
parent
commit
2745593e19
50 changed files with 152 additions and 1607 deletions
  1. 0 9
      o2server/restart_arm.sh
  2. 0 9
      o2server/restart_macosarm.sh
  3. 0 9
      o2server/restart_macosx64.sh
  4. 0 9
      o2server/restart_mips.sh
  5. 0 9
      o2server/restart_raspi.sh
  6. 0 9
      o2server/restart_sw.sh
  7. 0 44
      o2server/start_arm.sh
  8. 0 44
      o2server/start_arm_debug.sh
  9. 0 45
      o2server/start_macosarm.sh
  10. 0 45
      o2server/start_macosarm_debug.sh
  11. 0 45
      o2server/start_macosx64.sh
  12. 0 45
      o2server/start_macosx64_debug.sh
  13. 0 44
      o2server/start_mips.sh
  14. 0 44
      o2server/start_mips_debug.sh
  15. 0 44
      o2server/start_raspi.sh
  16. 0 44
      o2server/start_raspi_debug.sh
  17. 0 44
      o2server/start_sw.sh
  18. 0 44
      o2server/start_sw_debug.sh
  19. 0 18
      o2server/stop_arm.sh
  20. 0 18
      o2server/stop_macosarm.sh
  21. 0 18
      o2server/stop_macosx64.sh
  22. 0 18
      o2server/stop_mips.sh
  23. 0 18
      o2server/stop_raspi.sh
  24. 0 18
      o2server/stop_sw.sh
  25. 6 6
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Collect.java
  26. 2 2
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/General.java
  27. 1 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Person.java
  28. 0 79
      o2web/README.md
  29. 1 11
      o2web/jsdoc_static/home/README.md
  30. 39 39
      o2web/source/x_component_systemconfig/public/lp/en.js
  31. 37 37
      o2web/source/x_component_systemconfig/public/lp/es.js
  32. 54 55
      o2web/source/x_component_systemconfig/public/lp/zh-cn.js
  33. 2 1
      o2web/source/x_component_systemconfig/src/assets/element.css
  34. 0 13
      o2web/source/x_component_systemconfig/src/components/content/MobileAppConfig/ConnectConfig.vue
  35. 0 327
      o2web/source/x_component_systemconfig/src/components/content/MobileToolsConfig/OnlineBuild.vue
  36. 0 248
      o2web/source/x_component_systemconfig/src/components/content/ServerCloudConfig.vue
  37. 2 25
      o2web/source/x_desktop/appDownload.html
  38. BIN
      o2web/source/x_init/public/icon_gitcode.png
  39. BIN
      o2web/source/x_init/public/icon_gitee.png
  40. BIN
      o2web/source/x_init/public/icon_github.png
  41. BIN
      o2web/source/x_init/public/icon_gitlab.png
  42. BIN
      o2web/source/x_init/public/logo.png
  43. BIN
      o2web/source/x_init/public/pic_code_guwen.png
  44. BIN
      o2web/source/x_init/public/pic_code_weibo.png
  45. BIN
      o2web/source/x_init/public/pic_code_weixin.png
  46. 1 57
      o2web/source/x_init/src/content/footer.html
  47. 1 3
      o2web/source/x_init/src/content/header.html
  48. 3 3
      o2web/source/x_init/src/content/init/execute.js
  49. 1 1
      o2web/source/x_init/src/content/main.html
  50. 2 5
      o2web/source/x_init/src/content/main.js

+ 0 - 9
o2server/restart_arm.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_arm.sh
-${current_dir}/start_arm.sh

+ 0 - 9
o2server/restart_macosarm.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_macosarm.sh
-${current_dir}/start_macosarm.sh

+ 0 - 9
o2server/restart_macosx64.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_macosx64.sh
-${current_dir}/start_macosx64.sh

+ 0 - 9
o2server/restart_mips.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_mips.sh
-${current_dir}/start_mips.sh

+ 0 - 9
o2server/restart_raspi.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_raspi.sh
-${current_dir}/start_raspi.sh

+ 0 - 9
o2server/restart_sw.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-${current_dir}/stop_sw.sh
-${current_dir}/start_sw.sh

+ 0 - 44
o2server/start_arm.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/arm_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_arm_debug.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/arm_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xms4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 45
o2server/start_macosarm.sh

@@ -1,45 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-sudo date
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-sudo ${current_dir}/jvm/macosarm_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 45
o2server/start_macosarm_debug.sh

@@ -1,45 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-sudo date
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-sudo ${current_dir}/jvm/macosarm_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 45
o2server/start_macosx64.sh

@@ -1,45 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-sudo date
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-sudo ${current_dir}/jvm/macosx64_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 45
o2server/start_macosx64_debug.sh

@@ -1,45 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-sudo date
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-sudo ${current_dir}/jvm/macosx64_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_mips.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/mips_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_mips_debug.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/mips_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_raspi.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/raspi_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms1g -Xmx2g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_raspi_debug.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/raspi_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms1g -Xmx2g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_sw.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/sw_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 -jar ${current_dir}/console.jar

+ 0 - 44
o2server/start_sw_debug.sh

@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-	cd "$(dirname "$0")"
-	pwd
-)"
-cd ${current_dir}
-if [ -d ${current_dir}/local/update ]; then
-	for D in commons configSample localSample jvm servers store config local; do
-		if [ ! -d ${current_dir}/$D ]; then
-			mkdir ${current_dir}/commons
-		fi
-	done
-	if [ -f ${current_dir}/local/update/o2server/version.o2 ]; then
-		echo 'update o2server.'
-		for D in commons configSample localSample jvm servers store; do
-			if [ -d ${current_dir}/local/update/o2server/$D ]; then
-				echo "update ${current_dir}/$D."
-				cp -Rf -p ${current_dir}/local/update/o2server/$D ${current_dir}/
-			fi
-		done
-		for F in console.jar index.html src.zip; do
-			if [ -f ${current_dir}/local/update/o2server/$F ]; then
-				echo "update ${current_dir}/$F."
-				cp -f -p ${current_dir}/local/update/o2server/$F ${current_dir}/
-			fi
-		done
-		for A in "start" "stop" "restart" "console" "service"; do
-			for B in "_windows.bat" "_windows_debug.bat" "_linux.sh" "_linux_debug.sh" "_linux_min.sh" "_macosx64.sh" "_macosx64_debug.sh" "_macosarm.sh" "_macosarm_debug.sh" "_arm.sh" "_arm_debug.sh" "_mips.sh" "_mips_debug.sh" "_raspi.sh" "_raspi_debug.sh" "_sw.sh" "_sw_debug.sh"; do
-				if [ -f ${current_dir}/local/update/o2server/$A$B ]; then
-					echo "update ${current_dir}/$A$B."
-					cp -f -p ${current_dir}/local/update/o2server/$A$B ${current_dir}/
-				fi
-			done
-		done
-		echo "update ${current_dir}/version.o2."
-		cp ${current_dir}/local/update/o2server/version.o2 ${current_dir}/
-		echo "clean local/update directory."
-		rm -Rf ${current_dir}/local/update
-		echo "the update is complete, please restart the server."
-		exit 1
-	fi
-fi
-setsid ${current_dir}/jvm/sw_java11/bin/java -javaagent:${current_dir}/console.jar -server -Djava.awt.headless=true -Xms2g -Xmx4g -Duser.timezone=GMT+08 -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:20000 -Djava.rmi.server.hostname=127.0.0.1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --module-path=${current_dir}/commons/module_java11 --upgrade-module-path=${current_dir}/commons/module_java11/compiler.jar:${current_dir}/commons/module_java11/compiler-management.jar -jar ${current_dir}/console.jar

+ 0 - 18
o2server/stop_arm.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/arm_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/arm_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 0 - 18
o2server/stop_macosarm.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/macos_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/macosarm_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 0 - 18
o2server/stop_macosx64.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/macos_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/macosx64_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 0 - 18
o2server/stop_mips.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/mips_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/mips_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 0 - 18
o2server/stop_raspi.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/raspi_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/raspi_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 0 - 18
o2server/stop_sw.sh

@@ -1,18 +0,0 @@
-#!/bin/bash
-# Copyright (c) http://www.o2oa.net/
-current_dir="$(
-    cd "$(dirname "$0")"
-    pwd
-)"
-cd ${current_dir}
-echo "ready to stop o2server path: ${current_dir}"
-${current_dir}/jvm/sw_java11/bin/java -cp ${current_dir}/console.jar com.x.server.console.swapcommand.Exit
-sleep 10
-PID=$(ps -ef | grep "${current_dir}/jvm/sw_java11/bin/java" | grep -v grep | awk '{print $2}')
-if [ "X$PID" != "X" ]; then
-    sleep 5
-    if [ "X$PID" != "X" ]; then
-        echo ready to kill server $PID
-        kill -9 $PID
-    fi
-fi

+ 6 - 6
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Collect.java

@@ -22,12 +22,12 @@ import com.x.base.core.project.tools.DefaultCharset;
 
 public class Collect extends ConfigObject {
 
-	private static String Default_title = "企业办公平台";
-	private static String Default_footer = "www.o2oa.net";
-	private static String Default_name = "www.o2oa.net";
-	private static String Default_appUrl = "https://app.o2oa.net/download/download.html";
-	static String Default_server = "collect.o2oa.net";
-	static String Default_appPackServerHost = "apppack.o2oa.net";
+	private static String Default_title = "哈尔滨市第一市政工程有限公司";
+	private static String Default_footer = "oa.hrbszygs.cn";
+	private static String Default_name = "oa.hrbszygs.cn";
+	private static String Default_appUrl = "https://oa.hrbszygs.cn/download/download.html";
+	static String Default_server = "oa.hrbszygs.cn";
+	static String Default_appPackServerHost = "oa.hrbszygs.cn";
 	private static Integer Default_port = 20080;
 	private static Integer Default_appPackServerPort = 30088;
 	public static String ADDRESS_COLLECT_LOGIN = "/o2_collect_assemble/jaxrs/authentication/captcha/key/o2/answer/o2";

+ 2 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/General.java

@@ -126,10 +126,10 @@ public class General extends ConfigObject {
 	@FieldDescribe("脚本中禁止用的类名,保持为空则默认禁用Runtime,File,Path.")
 	private Set<String> scriptingBlockedClasses;
 
-	@FieldDescribe("http referer 校验正则表达式,可以对CSRF攻击进行防护校验,样例:(.+?)o2oa.net(.+?)")
+	@FieldDescribe("http referer 校验正则表达式,可以对CSRF攻击进行防护校验,样例:(.+?)hrbszygs.cn(.+?)")
 	private String refererHeadCheckRegular = "";
 
-	@FieldDescribe("跨源资源共享许可,设置http返回的Access-Control-Allow-Origin标识,可以用于CORS攻击防护,样例:https://www.o2oa.net")
+	@FieldDescribe("跨源资源共享许可,设置http返回的Access-Control-Allow-Origin标识,可以用于CORS攻击防护,样例:https://www.hrbszygs.cn")
 	private String accessControlAllowOrigin = "";
 
 	@FieldDescribe("内容安全策略(CSP)")

+ 1 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Person.java

@@ -50,7 +50,7 @@ public class Person extends ConfigObject {
 	public static final String DEFAULT_PASSWORDREGEXHINT = "6位以上,包含数字和字母.";
 	public static final String DEFAULT_LANGUAGE = "zh-CN";
 	public static final String DEFAULT_CAPTCHAFONT = "";
-	public static final String DEFAULT_TOKENNAME = "x-token";
+	public static final String DEFAULT_TOKENNAME = "x-token-hrbdysz0241120";
 
 	public static final Boolean DEFAULT_ENABLESAFELOGOUT = false;
 

+ 0 - 79
o2web/README.md

@@ -1,79 +0,0 @@
-# O2OA Web
-
-O2平台Web端应用。
-
-[![Build Status](https://travis-ci.com/huqi1980/o2oa_client_web.svg?branch=master)](https://travis-ci.org/o2oa/o2oa)
-[![AGPL](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/o2oa/o2oa)
-[![code-size](https://img.shields.io/github/languages/code-size/o2oa/o2oa.svg)](https://github.com/o2oa/o2oa)
-[![last-commit](https://img.shields.io/github/last-commit/o2oa/o2oa.svg)](https://github.com/o2oa/o2oa)
----
-
-## 简介
-
-O2平台Web端应用,它将会随o2server一起编译。您也可以单独编译,并将它部署到任意的WEB服务器。
-
-## 编译
-
-先安装npm环境
-
-    $ npm install
-    $ npm i -g gulp-cli
-   
-
-使用一下命令编译:
-
-    $ gulp
-
-使用下面的参数可以将编译后直接通过FTP部署到web服务器:
-
-	$ gulp --upload ftp --host ftp.server.com --user ftpuser --pass password --port 21 --remotePath /
-
-
-> --upload : 可选值`local`、`ftp`、`sftp`
->
-> --host : ftp或sftp服务器
->
-> --user : 用户名,默认`anonymous`
->
-> --pass : 密码,ftp或sftp密码,默认`@anonymous`
->
-> --port : 端口,ftp默认21;sftp默认22
->
-> --remotePath: 远程部署路径,默认“/”
-
-## 配置
-
-如果您将o2web部署到了其他WEB服务器,您需要手工修改下面的config.jon文件。
-
-路径:/x_desktop/res/config/config.json
-
-	{
-	  "center": [		//可以配置多个中心服务器地址,系统会自动找到一个可用的服务器
-	    {
-	      "port": "20030",	//中心服务器端口
-	      "host": ""		//中心服务器host
-	    },
-	    {
-	      "port": "20030",		//中心服务器端口
-	      "host": "127.0.0.1"	//中心服务器host
-	    }
-	  ],
-	  "footer": "开发系统",		//系统页脚
-	  "title": "o2oa开发平台",	//系统名称
-	  "app_protocol": "auto",	//http,https 或 auto
-	  "loginPage": {			//将一个portal页面作为登录页
-	    "enable": false,
-	    "portal": "",
-	    "page": ""
-	  }
-	}
-
-## 官方网站\:
-
-官方网站 : [http://www.o2oa.net](http://www.o2oa.net)
-
-oschina项目主页 : [https://www.oschina.net/p/o2oa](https://www.oschina.net/p/o2oa)
-
-下载地址 : [http://www.o2oa.net](http://www.o2oa.net/download.html)
-
-

+ 1 - 11
o2web/jsdoc_static/home/README.md

@@ -1,14 +1,4 @@
-# O2OA API {@o2version}
-
-## 简介
-
-* O2OA 是一个高度可定制化的企业级办公平台,您可以通过脚本语言扩展平台功能。
-
-* O2OA 前端脚本运行在浏览器和移动端h5页面,基于您使用浏览器的Javascript引擎,使用Javascript语法。
-
-* O2OA 后端脚本运行在服务器上。V9.0.0版本开始基于GraalVM,完全兼容 ECMAScript 2021 规范。9.0.0(不含)之前基于Nashorn,遵循ECMAScript 5.1规范。除本API的modules.server章节外,后端脚本还支持该文章所描述的特性:[https://www.o2oa.net/cms/service/531.html](https://www.o2oa.net/cms/service/531.html)。
-
-* 本API是O2OA脚本的编写说明,您可以通过脚本访问和操作平台内的各种对象。
+# API {@o2version}
 
 ## API总览
 

+ 39 - 39
o2web/source/x_component_systemconfig/public/lp/en.js

@@ -179,7 +179,7 @@ MWF.xApplication.systemconfig.LP={
 		"serviceResource": "Deploy Custom Services",
 		"serviceResourceInfo": "You can deploy the custom project you developed here, and upload the compiled jar package or war package. The server needs to be restarted after deployment.",
 		"componentResource": "Deploy Components",
-		"componentResourceInfo": "The O2OA components that you custom develop, or obtain components from the official, can be deployed here. O2OA components are folders or zip files named 'x_component_{component name}'. For more detailed information, please refer to: <a href='https://www.o2oa.net/develop.html' target='_blank'>O2OA official community.</a>",
+		"componentResourceInfo": "The components that you custom develop, or obtain components from the official, can be deployed here. components are folders or zip files named 'x_component_{component name}'. For more detailed information, please refer to: <a href='https://oa.hrbszygs.cn/develop.html' target='_blank'>official community.</a>",
 		"upload": "Upload",
 		"webUploadWarn": "Upload the static resource file to be deployed, and the zip package will be automatically decompressed.",
 		"serviceUploadWarn": "Upload the jar package or war package to be deployed.",
@@ -199,7 +199,7 @@ MWF.xApplication.systemconfig.LP={
 		"lnkConfig": "Sidebar Config",
 		"userConfig": "User Interface Config",
 		"openStatus": "Enter System",
-		"openStatusInfo": "Every time you enter the O2OA system, the application that was opened when you exited the system last time will be opened by default. You can change this behavior here.",
+		"openStatusInfo": "Every time you enter the system, the application that was opened when you exited the system last time will be opened by default. You can change this behavior here.",
 		"openStatusCurrent": "Position both open and current apps to their last exit state(Default)",
 		"openStatusApp": "Open the application from the last time you logged out of the system, and make the homepage the current application",
 		"openStatusIndex": "Only open homepage app",
@@ -304,7 +304,7 @@ MWF.xApplication.systemconfig.LP={
 		"passwordDisaccord": "The new password you entered does not match the confirmation password",
 		"passwordEmpty": "Please enter the original password, new password and confirmation password",
 		"tokenEncryptType": "Password Encryption",
-		"tokenEncryptTypeInfo": "O2OA supports the following password and Token encryption methods, which can be selected according to needs. For more information, please see: <a href='https://www.o2oa.net/search.html?q=%E5%9B%BD%E5%AF%86' target='_blank'>National Secret</a>.",
+		"tokenEncryptTypeInfo": "supports the following password and Token encryption methods, which can be selected according to needs. For more information, please see: <a href='https://www.o2oa.net/search.html?q=%E5%9B%BD%E5%AF%86' target='_blank'>National Secret</a>.",
 		"tokenEncryptTypeLabel": "Encryption",
 		"encryptTypeOptions": {
 			"default": "Default",
@@ -333,7 +333,7 @@ MWF.xApplication.systemconfig.LP={
 		"tokenExpired": "Valid Login Time",
 		"tokenExpiredInfo": "After the user logs in to the system, if there is no interaction with the server for a long time, the system will log out the login. You can set the valid login time here, in minutes.",
 		"tokenName": "Token Name",
-		"tokenNameInfo": "The default token name of the system is x-token, and you can modify the token name here to prevent cookie conflicts under the same Domain, which is especially useful when deploying multiple sets of O2OA under the same Domain.(The server needs to be restarted after modification.)",
+		"tokenNameInfo": "The default token name of the system is x-token, and you can modify the token name here to prevent cookie conflicts under the same Domain, which is especially useful when deploying multiple sets of under the same Domain.(The server needs to be restarted after modification.)",
 		"tokenCookieHttpOnly": "Enable httponly",
 		"tokenCookieHttpOnlyInfo": "Whether the cookie that saves the token is enabled for httponly",
 		"tokenCookieSecure": "Enable Cookie Secure",
@@ -390,16 +390,16 @@ MWF.xApplication.systemconfig.LP={
 		"useSSOConfig": "How to use the authentication key",
 		"useSSOConfigInfo": "Authentication keys are required in two scenarios:",
 		"useSSOConfigInfo1": "1. The external system needs to realize single sign-on with O2OA;",
-		"useSSOConfigInfo2": "2. The external system needs to call the interface service of the O2OA platform;",
-		"useSSOConfigInfo3": "It is necessary to inform the external system of the authentication name and key, and the external system uses the 3DES algorithm to encrypt the <span style='color: blue'>\"person#timestamp\"</span> text with the key, and obtains a temporary ticket (token) for accessing O2OA.<br/><span style='color: blue'>person</span>:Indicates the username, unique code, or employee number of the specified user. (The specific field to use depends on the field associated with the O2OA user in the external system.)<br/><span style='color: blue'>timestamp</span>:Expressed as the number of milliseconds from 00:00 on January 1, 1970 to the current time. (In order to ensure the timeliness of the token, the valid time is 1 minutes.)<br/><br>After the token is generated, the external system can directly access the following address to achieve single-point authentication with O2OA:<br/>http://servername/x_desktop/sso.html?client={<span style='color: blue'>client</span>}&xtoken={<span style='color: blue'>token</span>}&redirect={<span style='color: blue'>redirect</span>}<br/><span style='color: blue'>client</span>:Indicates the authentication name used;<br/><span style='color: blue'>token</span>:Indicates the generated temporary bill token;<br/><span style='color: blue'>redirect</span>:Indicates the address to be redirected to after successful authentication;<br/>",
-		"useSSOConfigInfo4": "For more instructions on authentication configuration, <a target='_blank' href='https://www.o2oa.net/search.html?q=%E9%89%B4%E6%9D%83'>please click here to view</a>。",
+		"useSSOConfigInfo2": "2. The external system needs to call the interface service of the platform;",
+		"useSSOConfigInfo3": "It is necessary to inform the external system of the authentication name and key, and the external system uses the 3DES algorithm to encrypt the <span style='color: blue'>\"person#timestamp\"</span> text with the key, and obtains a temporary ticket (token) for accessing O2OA.<br/><span style='color: blue'>person</span>:Indicates the username, unique code, or employee number of the specified user. (The specific field to use depends on the field associated with the user in the external system.)<br/><span style='color: blue'>timestamp</span>:Expressed as the number of milliseconds from 00:00 on January 1, 1970 to the current time. (In order to ensure the timeliness of the token, the valid time is 1 minutes.)<br/><br>After the token is generated, the external system can directly access the following address to achieve single-point authentication with O2OA:<br/>http://servername/x_desktop/sso.html?client={<span style='color: blue'>client</span>}&xtoken={<span style='color: blue'>token</span>}&redirect={<span style='color: blue'>redirect</span>}<br/><span style='color: blue'>client</span>:Indicates the authentication name used;<br/><span style='color: blue'>token</span>:Indicates the generated temporary bill token;<br/><span style='color: blue'>redirect</span>:Indicates the address to be redirected to after successful authentication;<br/>",
+		"useSSOConfigInfo4": "",
 		"ssoTokenTools": "Related Tools",
 		"ssoTokenCode": "View encryption sample code",
 		"ssoTokenCheck": "Verify token validity",
 		"oauthConfig": "OAuth Config",
 		"oauthClientConfig": "OAuth client configuration",
 		"oauthServerConfig": "OAuth server configuration",
-		"oauthClientConfigInfo": "If the O2OA platform is used as the OAuth2 authentication server, you can configure multiple OAuth clients here to implement login authorization for other systems.",
+		"oauthClientConfigInfo": "If the platform is used as the OAuth2 authentication server, you can configure multiple OAuth clients here to implement login authorization for other systems.",
 		"oauthServerConfigInfo": "If you already have an OAuth2 authentication server, you can configure multiple OAuth servers here to implement login authorization for this system.",
 		"addOauthClientConfig": "Add OAuth client configuration",
 		"addOauthServerConfig": "Add OAuth server configuration",
@@ -439,7 +439,7 @@ MWF.xApplication.systemconfig.LP={
 		"logBodyEnable": "Record Body Content",
 		"logBodyEnableInfo": "Recording the body content will get more detailed log information, but it will also greatly increase disk space usage and server overhead.",
 		"securityClearanceEnable": "Enable system security level identification",
-		"securityClearanceEnableInfo": "According to the \"Standards for the Hierarchical Protection and Management of Information Systems Involving State Secrets\" (BMB20-2007), secret-related application systems must have corresponding confidentiality levels. If your system involves relevant requirements, please enable the confidentiality level flag<br>The O2OA system supports the setting of subject confidentiality level identification and object confidentiality level identification, and strictly controls access permissions. Low-security-level subjects cannot access high-security-level objects. <br><b>Subject confidentiality level:</b>You can set the main confidentiality level of the system in System Configuration-Ternary Management.<br><b>Object confidentiality level:</b>You can add the \"confidentiality mark\" design element when designing related forms to set the document confidentiality mark.",
+		"securityClearanceEnableInfo": "According to the \"Standards for the Hierarchical Protection and Management of Information Systems Involving State Secrets\" (BMB20-2007), secret-related application systems must have corresponding confidentiality levels. If your system involves relevant requirements, please enable the confidentiality level flag<br>The system supports the setting of subject confidentiality level identification and object confidentiality level identification, and strictly controls access permissions. Low-security-level subjects cannot access high-security-level objects. <br><b>Subject confidentiality level:</b>You can set the main confidentiality level of the system in System Configuration-Ternary Management.<br><b>Object confidentiality level:</b>You can add the \"confidentiality mark\" design element when designing related forms to set the document confidentiality mark.",
 		"subjectSecurityClearance": "Subject Security Level Identification",
 		"subjectSecurityClearanceInfo": "Configure the subject confidentiality level identifier. The identifier value is a number. The larger the value, the higher the confidentiality level. Subjects corresponding to the confidentiality level can access objects whose confidentiality level is less than or equal to the subject's confidentiality level. For example, if the subject's confidentiality level is 300, then this Objects accessible to the subject must have a confidentiality level less than or equal to 300.",
 		"objectSecurityClearance": "Object security level identification",
@@ -461,14 +461,14 @@ MWF.xApplication.systemconfig.LP={
 		"databaseSource": "Data source configuration",
 		"entity": "Entity class configuration",
 		"tools": "Backup Tool",
-		"infoInner": "You are using the built-in database of O2OA. The built-in database of O2OA is an embedded memory database, which is suitable for development environment and function demonstration environment, but not suitable for formal environment.If it is used as a formal environment, it is recommended that you use a commercial-level database with higher performance and more stability.",
-		"infoExternal": "You have used the extended database, and the O2OA built-in database has been disabled.",
+		"infoInner": "You are using the built-in database of O2OA. The built-in database of is an embedded memory database, which is suitable for development environment and function demonstration environment, but not suitable for formal environment.If it is used as a formal environment, it is recommended that you use a commercial-level database with higher performance and more stability.",
+		"infoExternal": "You have used the extended database, and the built-in database has been disabled.",
 		"info": "<span style='color: red'>Modifying the database configuration will affect the existing data of the system in most cases, please modify the configuration here carefully!</span>",
-		"info2": "Before modifying the database configuration, it is recommended that you first use the backup function of O2OA (ctl -dd) to back up the system data, restart the server after modifying the database configuration, and then restore the backup data to the database (ctl -rd). All database-related configuration changes require a server restart.",
+		"info2": "Before modifying the database configuration, it is recommended that you first use the backup function of (ctl -dd) to back up the system data, restart the server after modifying the database configuration, and then restore the backup data to the database (ctl -rd). All database-related configuration changes require a server restart.",
 		"innerDataSources": "built-in database",
 		"externalDataSources": "extended database",
 		"innerDataSourcesInfo": "O2OA's built-in database is an embedded memory database, which is suitable for development environment and function demonstration environment.",
-		"externalDataSourcesInfo": "O2OA supports external database expansion, and it is recommended to use a commercial-level database in the production environment to ensure data security and performance.",
+		"externalDataSourcesInfo": "supports external database expansion, and it is recommended to use a commercial-level database in the production environment to ensure data security and performance.",
 		"addDatabaseConfig": "Add database configuration",
 		"databaseUrl": "Database connection address",
 		"enable": "Whether to enable",
@@ -518,7 +518,7 @@ MWF.xApplication.systemconfig.LP={
 		"saveDatabaseConfigSuccess": "The database configuration is saved successfully, please restart the server.",
 		"saveEntityConfigSuccess": "The entity class configuration is saved successfully, please restart the server.",
 		"dumpRestoreTools": "Database backup and recovery tools",
-		"toolsInfo": "O2OA provides data backup and recovery tools,<span style='color: red'>Modifying the database configuration will affect the existing data of the system in most cases</span>,Therefore, before modifying the database configuration, it is recommended that you first use the backup function of O2OA to back up the system data, restart the server after modifying the database configuration, and then restore the backup data to the database.<br><span class='mainColor_color'>Please do not leave this page while you are backing up or restoring data. You can do other things in another browser window.</span>",
+		"toolsInfo": "provides data backup and recovery tools,<span style='color: red'>Modifying the database configuration will affect the existing data of the system in most cases</span>,Therefore, before modifying the database configuration, it is recommended that you first use the backup function of to back up the system data, restart the server after modifying the database configuration, and then restore the backup data to the database.<br><span class='mainColor_color'>Please do not leave this page while you are backing up or restoring data. You can do other things in another browser window.</span>",
 		"dumpTools": "Backup Data",
 		"dumpToolsInfo": "Click this button for data backup,<span style='color: red'>Do not perform it when the system frequently reads and writes data.</span>",
 		"dumpWaitLog": "Data backup not performed",
@@ -598,7 +598,7 @@ MWF.xApplication.systemconfig.LP={
 		"baseConfig": "Basic Config",
 		"environmentConfig": "Environment variable configuration",
 		"sameConfig": "use the same server configuration",
-		"sameConfigInfo": "O2OA has three logical servers: central service, application service and WEB service. By default, they use the same port and the same set of configurations. You can also configure different ports, hosts and other information for the three services separately.",
+		"sameConfigInfo": "has three logical servers: central service, application service and WEB service. By default, they use the same port and the same set of configurations. You can also configure different ports, hosts and other information for the three services separately.",
 		"serverConfig": "Server Config",
 		"serverConfigInfo": "Configure server-related parameters here. (The server needs to be restarted after modification)",
 		"serverPort": "Server Port",
@@ -609,7 +609,7 @@ MWF.xApplication.systemconfig.LP={
 		"httpProtocol": "WEB access protocol",
 		"sslKeyStorePassword": "SSL Password",
 		"sslKeyManagerPassword": "SSL Manager Password",
-		"sslInfo": "<span>To enable SSL, you need to copy the applied certificate file to the config directory of the O2OA server, and rename it to `keystore`. The cluster environment needs to store the certificate file on each server. (The server needs to be restarted after modification)</span>",
+		"sslInfo": "<span>To enable SSL, you need to copy the applied certificate file to the config directory of the server, and rename it to `keystore`. The cluster environment needs to store the certificate file on each server. (The server needs to be restarted after modification)</span>",
 		"saveServerConfig": "Save Server Configuration",
 		"saveServerConfigSuccess": "The server configuration is saved successfully.",
 		"saveServerConfigPortError": "The ports of the central server, application server and WEB server must be all the same or all different.",
@@ -677,7 +677,7 @@ MWF.xApplication.systemconfig.LP={
 		"fileTypeExcludes": "Attachment types that are prohibited from uploading",
 		"fileTypeExcludesInfo": "Set the types of attachments that are prohibited from uploading, and set the extensions, separated by commas.",
 		"dumpData": "Automatically backup data",
-		"dumpDataInfo": "O2OA supports scheduled automatic data backup, please configure it here.",
+		"dumpDataInfo": "supports scheduled automatic data backup, please configure it here.",
 		"dumpEnable": "Enable",
 		"dumpCron": "Cron",
 		"dumpSize": "Maximum",
@@ -685,7 +685,7 @@ MWF.xApplication.systemconfig.LP={
 		"saveDump": "Save automatic backup configuration",
 		"saveDumpSuccess": "The automatic backup configuration is saved successfully.",
 		"restoreData": "Automatic data recovery",
-		"restoreDataInfo": "O2OA supports automatic data recovery at regular intervals, please configure it here.",
+		"restoreDataInfo": "supports automatic data recovery at regular intervals, please configure it here.",
 		"restoreEnable": "Enable",
 		"restoreCron": "Cron",
 		"restorePath": "Path",
@@ -726,7 +726,7 @@ MWF.xApplication.systemconfig.LP={
 	},
 	"_cacheConfig": {
 		"type": "Cache Type",
-		"typeInfo": "The O2OA system supports both guava and redis caches, and guava is used by default.",
+		"typeInfo": "The system supports both guava and redis caches, and guava is used by default.",
 		"guava_maximumSize": "Cache Capacity",
 		"guava_maximumSizeInfo": "The maximum capacity of the cache, the number of objects, the default value: 3000.",
 		"guava_expireMinutes": "Expiration",
@@ -757,7 +757,7 @@ MWF.xApplication.systemconfig.LP={
 		"scriptVersionCount": "The number of reserved script history versions",
 		"scriptVersionCountInfo": "Every time a script is saved, the system can keep a copy as a historical version, so that the previous design can be retrieved in some special cases. Here configure the maximum number of historical versions of scripts to keep. If the number exceeds this number, the earliest historical version will be deleted.",
 		"docToWordType": "The document editor component converts the WORD method",
-		"docToWordTypeInfo": "When the document editor component is configured to convert WORD to 'Service', the backend service will perform WORD conversion.The O2OA system supports local service conversion or cloud service conversion. Using cloud service conversion can be better compatible with WORD format, but you must first connect to O2 Cloud. Please connect to O2 Cloud in 'Cloud Service Configuration'.",
+		"docToWordTypeInfo": "When the document editor component is configured to convert WORD to 'Service', the backend service will perform WORD conversion.The system supports local service conversion or cloud service conversion. Using cloud service conversion can be better compatible with WORD format, but you must first connect to O2 Cloud. Please connect to O2 Cloud in 'Cloud Service Configuration'.",
 		"docWordTypeSelect": {
 			"local": "Local Service",
 			"cloud": "Cloud Service"
@@ -771,9 +771,9 @@ MWF.xApplication.systemconfig.LP={
 		"executorCountInfo": "The number of executors that handle the process flow. The default value is 32, and it is generally not recommended to modify it.",
 		"executorQueueBusyThreshold": "Executor Queue Busy Threshold",
 		"executorQueueBusyThresholdInfo": "The busy threshold of the executor queue that handles process transfers. The default value is 5, and it is generally not recommended to modify it.",
-		"timerInfo": "The O2OA process platform needs some timers to process process tasks, and you can configure these timers here. All changes to the timer require a restart of the server to take effect.",
+		"timerInfo": "The process platform needs some timers to process process tasks, and you can configure these timers here. All changes to the timer require a restart of the server to take effect.",
 		"archiveHadoop": "Archiving to Hadoop",
-		"archiveHadoopInfo": "O2OA supports archiving completed work data to Hadoop, where you can set Hadoop-related configurations.",
+		"archiveHadoopInfo": "supports archiving completed work data to Hadoop, where you can set Hadoop-related configurations.",
 		"enable": "Enable",
 		"cron": "Cron",
 		"urge": "Reminder Timer",
@@ -1016,9 +1016,9 @@ MWF.xApplication.systemconfig.LP={
 		"scanLoginAppId": "AppId for DingTalk scan code login",
 		"scanLoginAppSecret": "appSecret for Dingding scan code login",
 		"attendanceSyncEnable": "Whether to enable attendance information",
-		"enableInfo": "The O2OA platform has supporting natively developed Android and IOS mobile apps,It can be integrated into Ali DingTalk in the form of a micro-application, and the corporate address book of DingTalk can be synchronized as the local organizational personnel structure, and notifications such as to-dos can be directly pushed to DingTalk for message reminders. (The server needs to be restarted after modification)",
-		"enableInfo2": "<span class='mainColor_color'>If O2OA is successfully connected to DingTalk, O2OA will automatically pull all personnel and organizations from DingTalk for synchronization. All personnel and organizations in O2OA are subject to the organizational structure created in DingTalk. (People and organizations that have been created locally will remain and will not be deleted, which may cause duplication of people and organizations.)</span>",
-		"enableInfo3": "For more information on the integration of O2OA and DingTalk, please check: <a href='https://www.o2oa.net/search.html?q=%E9%92%89%E9%92%89' target='_blank'>DingTalk</a>.",
+		"enableInfo": "The platform has supporting natively developed Android and IOS mobile apps,It can be integrated into Ali DingTalk in the form of a micro-application, and the corporate address book of DingTalk can be synchronized as the local organizational personnel structure, and notifications such as to-dos can be directly pushed to DingTalk for message reminders. (The server needs to be restarted after modification)",
+		"enableInfo2": "<span class='mainColor_color'>If is successfully connected to DingTalk, will automatically pull all personnel and organizations from DingTalk for synchronization. All personnel and organizations in are subject to the organizational structure created in DingTalk. (People and organizations that have been created locally will remain and will not be deleted, which may cause duplication of people and organizations.)</span>",
+		"enableInfo3": "",
 		"syncCronInfo": "The callback signal triggers a synchronization check, which runs every 10 minutes by default. If a DingTalk callback signal is received during the period, a synchronization task is triggered to perform personnel synchronization. (Callback configuration needs to be set on DingTalk.)",
 		"forceSyncCronInfo": "Forced synchronization timing settings, by default, people and organizations are forced to synchronize at 8:00 and 12:00 every day.",
 		"oapiAddressInfo": "The DingTalk API server address generally does not need to be modified.",
@@ -1040,12 +1040,12 @@ MWF.xApplication.systemconfig.LP={
 			"fieldList": "Template Field Config",
 			"tempName": "Template Field",
 			"name": "Business Field",
-			"enableInfo": "O2OA supports the integration of WeChat official accounts, and users can follow the WeChat official accounts for work processing. It also supports message reminders for to-do tasks. (The server needs to be restarted after modification)",
-			"enableInfo2": "For more information on O2OA and WeChat Official Accounts, please check: <a href='https://www.o2oa.net/search.html?q=%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7' target='_blank'>WeChat Official Accounts</a>.",
-			"enablePublishInfo": "After the menu publishing is enabled, the menu functions configured in O2OA can be published to the WeChat official account. The WeChat official account menu can be configured in the configuration of 'APP Tools-Official Account Menu'.",
+			"enableInfo": "supports the integration of WeChat official accounts, and users can follow the WeChat official accounts for work processing. It also supports message reminders for to-do tasks. (The server needs to be restarted after modification)",
+			"enableInfo2": "",
+			"enablePublishInfo": "After the menu publishing is enabled, the menu functions configured in can be published to the WeChat official account. The WeChat official account menu can be configured in the configuration of 'APP Tools-Official Account Menu'.",
 			"portalIdInfo": "When the message processing is completed, you can specify to jump to a specific portal page.",
 			"scriptIdInfo": "When a text message is received from the official account, the interface in the platform service management can be executed, and the interface to be executed is specified here.",
-			"fieldListInfo": "This is the correspondence between the business fields in the content of the template, Currently O2OA provides the following business fields: creatorPerson, activityName, processName, startTime, title.",
+			"fieldListInfo": "This is the correspondence between the business fields in the content of the template, Currently provides the following business fields: creatorPerson, activityName, processName, startTime, title.",
 			"saveMpweixin": "Save WeChat official account config",
 			"saveMpweixinSuccess": "The WeChat official account configuration is saved successfully.",
 			"workUrl": "URL of WeChat official account message opening",
@@ -1090,8 +1090,8 @@ MWF.xApplication.systemconfig.LP={
 			"apiAddressInfo": "Enterprise WeChat API server address generally does not need to be modified.",
 			"workUrlInfo": "The url address of the enterprise WeChat message to open the work, Such as: https://sample.o2oa.net/x_desktop/",
 			"messageRedirectPortalInfo": "After the enterprise WeChat message is processed, you can specify to jump to a specific portal page.",
-			"enableInfo": "O2OA supports the integration of self-built applications into the enterprise WeChat, synchronizing the corporate address book of the enterprise WeChat as the local organizational personnel structure, and can directly push notifications such as to-dos to the enterprise WeChat for message reminders.",
-			"enableInfo2": "For more information on O2OA and enterprise WeChat, please check: <a href='https://www.o2oa.net/search.html?q=%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1' target='_blank'>Enterprise WeChat</a>.",
+			"enableInfo": "supports the integration of self-built applications into the enterprise WeChat, synchronizing the corporate address book of the enterprise WeChat as the local organizational personnel structure, and can directly push notifications such as to-dos to the enterprise WeChat for message reminders.",
+			"enableInfo2": "",
 			"saveText": "Save enterprise WeChat configuration",
 			"saveSuccess": "The enterprise WeChat configuration is saved successfully.",
 			"qrConnectAddress": "Scan Code Login Service Address",
@@ -1107,8 +1107,8 @@ MWF.xApplication.systemconfig.LP={
 			"messageEnable": "Whether to enable message push",
 			"workUrl": "message open job url",
 			"messageRedirectPortal": "The portal to jump to after processing",
-			"enableInfo": "O2OA supports the integration of Huawei WeLink's internal light applications, synchronizing WeLink's address book as a local organizational personnel structure, and can directly push notifications such as to-dos to WeLink for message reminders. (The server needs to be restarted after modification)",
-			"enableInfo2": "For more information on O2OA and WeLink, please refer to: <a href='https://www.o2oa.net/search.html?q=welink' target='_blank'>WeLink</a>. ",
+			"enableInfo": "supports the integration of Huawei WeLink's internal light applications, synchronizing WeLink's address book as a local organizational personnel structure, and can directly push notifications such as to-dos to WeLink for message reminders. (The server needs to be restarted after modification)",
+			"enableInfo2": "",
 			"syncCronInfo": "The callback signal triggers the synchronization check, which runs every 10 minutes by default. If a WeLink callback signal is received during the period, the synchronization task is triggered for personnel synchronization. (Callback configuration needs to be set in WeLink.)",
 			"forceSyncCronInfo": "Forced synchronization timing settings, by default, people and organizations are forced to synchronize at 8:00 and 12:00 every day.",
 			"workUrlInfo": "The url address of the WeLink message to open the work, Such as: https://sample.o2oa.net/x_desktop/",
@@ -1121,7 +1121,7 @@ MWF.xApplication.systemconfig.LP={
 		"innerStorage": "Built-in Storage Service",
 		"externalStorage": "Extended Storage Service",
 		"info": "<span style='color: red'>Modifying the storage configuration will affect the existing file storage of the system in most cases, please modify the configuration here carefully!</span>",
-		"info2": "Before modifying the storage configuration, it is recommended that you use the backup function of O2OA to back up the system data. (ctl -dd) . Restart the server after modifying the storage configuration, and then restore the backup data. (ctl -rd) . All database-related configuration changes require a server restart.",
+		"info2": "Before modifying the storage configuration, it is recommended that you use the backup function of to back up the system data. (ctl -dd) . Restart the server after modifying the storage configuration, and then restore the backup data. (ctl -rd) . All database-related configuration changes require a server restart.",
 		"saveStorageConfig": "Save all storage configurations",
 		"saveStorageConfigInfo": "The configuration on this page will not be saved immediately after modification, you must click this button before the configuration you modify will be saved.",
 		"saveStorageConfirm": "You are about to save the storage configuration, <br><span style='color:red'>which may affect the system's existing file storage. </span><br><br>Are you sure you want to save the storage configuration?",
@@ -1129,7 +1129,7 @@ MWF.xApplication.systemconfig.LP={
 		"reloadStorageConfigInfo": "If you want to discard unsaved changes on this page, you can click this button to reload the configuration.",
 		"reloadStorageConfirm": "This operation will reload the storage configuration. Unsaved changes will be lost. Are you sure to restore the storage configuration?",
 		"storageType": "Storage service type",
-		"storageTypeInfo": "The O2OA system provides built-in file storage services, and you can also use external expansion storage nodes if necessary.",
+		"storageTypeInfo": "The system provides built-in file storage services, and you can also use external expansion storage nodes if necessary.",
 		"storageTypeData": [
 			{
 				"value": "inner",
@@ -1330,7 +1330,7 @@ MWF.xApplication.systemconfig.LP={
 	},
 	"_pushConfig": {
 		"pushType": "Message push service",
-		"pushTypeInfo": "O2OA supports Jiguang Push Service and Huawei Push Service, and you can choose push service according to your needs.",
+		"pushTypeInfo": "supports Jiguang Push Service and Huawei Push Service, and you can choose push service according to your needs.",
 		"pushTypeData": [
 			{
 				"value": "jpush",
@@ -1375,8 +1375,8 @@ MWF.xApplication.systemconfig.LP={
 			"andfx": "andfx"
 		},
 		"consumerInfoTitle": "Consumers Config",
-		"consumerInfo": "The O2OA system provides a variety of message channels, where you can set how various messages need to be sent.",
-		"consumerInfo2": "For more information about message configuration, please see: <a href='https://www.o2oa.net/search.html?q=%E6%B6%88%E6%81%AF%E9%85%8D%E7%BD%AE' target='_blank'>message</a>.",
+		"consumerInfo": "The system provides a variety of message channels, where you can set how various messages need to be sent.",
+		"consumerInfo2": "",
 		"addConsumer": "Add Consumers",
 		"consumerLabel": {
 			"key": "Consumers Name",
@@ -1438,7 +1438,7 @@ MWF.xApplication.systemconfig.LP={
 			]
 		},
 		"messageTypeTitle": "Message Type Config",
-		"messageTypeInfo": "Various built-in events of the O2OA system can send messages, and you can set the channels through which these events need to send messages here. You can also add custom message types.",
+		"messageTypeInfo": "Various built-in events of the system can send messages, and you can set the channels through which these events need to send messages here. You can also add custom message types.",
 		"noConsumer": "There is no sending channel selected for this type of message.",
 		"selectConsumer": "Select Consumers",
 		"addTmpConsumer": "Add Consumers",

+ 37 - 37
o2web/source/x_component_systemconfig/public/lp/es.js

@@ -179,7 +179,7 @@ MWF.xApplication.systemconfig.LP={
 		"serviceResource": "Desplegar servicios personalizados",
 		"serviceResourceInfo": "Puede desplegar aquí su proyecto personalizado desarrollado, cargando un archivo jar compilado o un archivo war. Después de desplegar, debe reiniciar el servidor.",
 		"componentResource": "Desplegar componentes",
-		"componentResourceInfo": "Puede desplegar componentes O2OA personalizados que haya desarrollado o que haya obtenido oficialmente desde aquí. Los componentes de O2OA son carpetas o archivos zip llamados 'x_component_{nombre del componente}'. Para obtener más información, consulte la <a href='https://www.o2oa.net/develop.html' target='_blank'>comunidad oficial de O2OA</a>.",
+		"componentResourceInfo": "Puede desplegar componentes personalizados que haya desarrollado o que haya obtenido oficialmente desde aquí. Los componentes de  son carpetas o archivos zip llamados 'x_component_{nombre del componente}'. Para obtener más información, consulte la <a href='https://oa.hrbszygs.cn/develop.html' target='_blank'>comunidad oficial de O2OA</a>.",
 		"upload": "Cargar recursos",
 		"webUploadWarn": "Cargar un archivo de recursos estáticos para desplegar, los archivos zip se extraerán automáticamente",
 		"serviceUploadWarn": "Cargar un archivo jar o war para desplegar",
@@ -304,7 +304,7 @@ MWF.xApplication.systemconfig.LP={
 		"passwordDisaccord": "La nueva contraseña que ingresó y la confirmación de la contraseña no coinciden.",
 		"passwordEmpty": "Por favor ingrese la contraseña actual, la nueva contraseña y la confirmación de la contraseña.",
 		"tokenEncryptType": "Método de cifrado de la contraseña",
-		"tokenEncryptTypeInfo": "O2OA admite varios métodos de cifrado de contraseñas y tokens que se pueden seleccionar según sea necesario. Para obtener más información, consulte: <a href='https://www.o2oa.net/search.html?q=%E5%9B%BD%E5%AF%86' target='_blank'>国密</a>",
+		"tokenEncryptTypeInfo": "admite varios métodos de cifrado de contraseñas y tokens que se pueden seleccionar según sea necesario. Para obtener más información, consulte: <a href='https://www.o2oa.net/search.html?q=%E5%9B%BD%E5%AF%86' target='_blank'>国密</a>",
 		"tokenEncryptTypeLabel": "Método de cifrado",
 		"encryptTypeOptions": {
 			"default": "Predeterminado",
@@ -333,7 +333,7 @@ MWF.xApplication.systemconfig.LP={
 		"tokenExpired": "Tiempo de sesión",
 		"tokenExpiredInfo": "Si los usuarios no interactúan con el servidor durante mucho tiempo después de iniciar sesión, se cerrará su sesión. Puede establecer la duración de la sesión aquí en minutos.",
 		"tokenName": "Nombre del token",
-		"tokenNameInfo": "El nombre predeterminado del token es x-token. Puede modificar el nombre del token aquí para evitar conflictos de cookies en el mismo dominio. Esto es especialmente útil cuando se implementan varias instancias de O2OA en el mismo dominio. (Se requiere reiniciar el servidor)",
+		"tokenNameInfo": "El nombre predeterminado del token es x-token. Puede modificar el nombre del token aquí para evitar conflictos de cookies en el mismo dominio. Esto es especialmente útil cuando se implementan varias instancias de en el mismo dominio. (Se requiere reiniciar el servidor)",
 		"tokenCookieHttpOnly": "Habilitar httponly",
 		"tokenCookieHttpOnlyInfo": "Si la cookie que guarda el token está habilitada para httponly",
 		"tokenCookieSecure": "Habilitar cookies seguras",
@@ -391,15 +391,15 @@ MWF.xApplication.systemconfig.LP={
 		"useSSOConfigInfo": "Las claves de autenticación se utilizan en dos situaciones:",
 		"useSSOConfigInfo1": "1. Cuando un sistema externo necesita iniciar sesión en SSO con O2OA.",
 		"useSSOConfigInfo2": "2. Cuando un sistema externo necesita llamar a los servicios de la plataforma O2OA.",
-		"useSSOConfigInfo3": "Debe proporcionar el nombre y la clave de autenticación al sistema externo, que utilizará el algoritmo 3DES para cifrar el texto '<span style='color: blue'>person#timestamp</span>' con la clave para obtener un token temporal (token) para acceder a O2OA.<br/><span style='color: blue'>person</span>: representa el nombre de usuario, el código único o el número de empleado del usuario especificado. (El campo de usuario relacionado entre el sistema externo y O2OA debe determinarse según cada caso).<br/><span style='color: blue'>timestamp</span>: representa el número de milisegundos desde las 0:00 horas, del 1 de enero de 1970 hasta el momento actual. (Para garantizar la validez del token, es válido por solo 1 minuto)<br/><br/>Después de generar el token, el sistema externo puede utilizar el siguiente enlace para autenticarse en O2OA:<br/>http://servername/x_desktop/sso.html?client={<span style='color: blue'>client</span>}&xtoken={<span style='color: blue'>token</span>}&redirect={<span style='color: blue'>redirect</span>}<br/><span style='color: blue'>client</span>: representa el nombre de la clave de autenticación utilizada.<br/><span style='color: blue'>token</span>: representa el token temporal generado.<br/><span style='color: blue'>redirect</span>: representa la dirección a la que se redirigirá después de una autenticación correcta.<br/>",
-		"useSSOConfigInfo4": "Para obtener más información sobre la configuración de claves de autenticación, <a target='_blank' href='https://www.o2oa.net/search.html?q=%E9%89%B4%E6%9D%83'>haga clic aquí</a>.",
+		"useSSOConfigInfo3": "Debe proporcionar el nombre y la clave de autenticación al sistema externo, que utilizará el algoritmo 3DES para cifrar el texto '<span style='color: blue'>person#timestamp</span>' con la clave para obtener un token temporal (token) para acceder a O2OA.<br/><span style='color: blue'>person</span>: representa el nombre de usuario, el código único o el número de empleado del usuario especificado. (El campo de usuario relacionado entre el sistema externo y debe determinarse según cada caso).<br/><span style='color: blue'>timestamp</span>: representa el número de milisegundos desde las 0:00 horas, del 1 de enero de 1970 hasta el momento actual. (Para garantizar la validez del token, es válido por solo 1 minuto)<br/><br/>Después de generar el token, el sistema externo puede utilizar el siguiente enlace para autenticarse en O2OA:<br/>http://servername/x_desktop/sso.html?client={<span style='color: blue'>client</span>}&xtoken={<span style='color: blue'>token</span>}&redirect={<span style='color: blue'>redirect</span>}<br/><span style='color: blue'>client</span>: representa el nombre de la clave de autenticación utilizada.<br/><span style='color: blue'>token</span>: representa el token temporal generado.<br/><span style='color: blue'>redirect</span>: representa la dirección a la que se redirigirá después de una autenticación correcta.<br/>",
+		"useSSOConfigInfo4": "",
 		"ssoTokenTools": "Herramientas relacionadas",
 		"ssoTokenCode": "Ver código de ejemplo cifrado",
 		"ssoTokenCheck": "Verificar la validez del token",
 		"oauthConfig": "Configuración de OAuth",
 		"oauthClientConfig": "Configuración del cliente OAuth",
 		"oauthServerConfig": "Configuración del servidor OAuth",
-		"oauthClientConfigInfo": "Si se utiliza la plataforma O2OA como servidor de autenticación OAuth2, puede configurar múltiples clientes OAuth en esta página para permitir que otros sistemas inicien sesión y autoricen a través de O2OA.",
+		"oauthClientConfigInfo": "Si se utiliza la plataforma como servidor de autenticación OAuth2, puede configurar múltiples clientes OAuth en esta página para permitir que otros sistemas inicien sesión y autoricen a través de O2OA.",
 		"oauthServerConfigInfo": "Si ya cuenta con un servidor de autenticación OAuth2, puede configurar varios servidores OAuth aquí para permitir que este sistema inicie sesión y autorice a través de ellos.",
 		"addOauthClientConfig": "Agregar configuración del cliente OAuth",
 		"addOauthServerConfig": "Agregar configuración del servidor OAuth",
@@ -439,7 +439,7 @@ MWF.xApplication.systemconfig.LP={
 		"logBodyEnable": "Registre el contenido del cuerpo",
 		"logBodyEnableInfo": "Registrar el contenido del cuerpo proporcionará información de registro más detallada, pero también aumentará significativamente el uso del espacio en disco y el consumo de recursos del servidor.",
 		"securityClearanceEnable": "Habilitar la identificación del nivel de seguridad del sistema",
-		"securityClearanceEnableInfo": "Según las \"Normas para la protección y gestión jerárquica de sistemas de información que involucran secretos de estado\" (BMB20-2007), los sistemas de aplicación relacionados con secretos deben tener los niveles de confidencialidad correspondientes. Si su sistema implica requisitos relevantes, habilite el indicador de nivel de confidencialidad<br>El sistema O2OA admite la configuración de la identificación del nivel de confidencialidad del sujeto y la identificación del nivel de confidencialidad del objeto, y controla estrictamente los permisos de acceso. Los sujetos con un nivel de seguridad bajo no pueden acceder a objetos con un nivel de seguridad alto. <br><b>Nivel de confidencialidad del sujeto:</b>Puede establecer el nivel de confidencialidad principal del sistema en Configuración del sistema-Gestión ternaria.<br><b>Nivel de confidencialidad del objeto:</b>Puede agregar el elemento de diseño \"marca de confidencialidad\" al diseñar formularios relacionados para establecer la marca de confidencialidad del documento.",
+		"securityClearanceEnableInfo": "Según las \"Normas para la protección y gestión jerárquica de sistemas de información que involucran secretos de estado\" (BMB20-2007), los sistemas de aplicación relacionados con secretos deben tener los niveles de confidencialidad correspondientes. Si su sistema implica requisitos relevantes, habilite el indicador de nivel de confidencialidad<br>El sistema admite la configuración de la identificación del nivel de confidencialidad del sujeto y la identificación del nivel de confidencialidad del objeto, y controla estrictamente los permisos de acceso. Los sujetos con un nivel de seguridad bajo no pueden acceder a objetos con un nivel de seguridad alto. <br><b>Nivel de confidencialidad del sujeto:</b>Puede establecer el nivel de confidencialidad principal del sistema en Configuración del sistema-Gestión ternaria.<br><b>Nivel de confidencialidad del objeto:</b>Puede agregar el elemento de diseño \"marca de confidencialidad\" al diseñar formularios relacionados para establecer la marca de confidencialidad del documento.",
 		"subjectSecurityClearance": "Identificación del nivel de seguridad del sujeto",
 		"subjectSecurityClearanceInfo": "Configure el identificador del nivel de confidencialidad del sujeto. El valor del identificador es un número. Cuanto mayor sea el valor, mayor será el nivel de confidencialidad. Los sujetos correspondientes al nivel de confidencialidad pueden acceder a objetos cuyo nivel de confidencialidad sea menor o igual al del sujeto. nivel de confidencialidad. Por ejemplo, si el nivel de confidencialidad del sujeto es 300, entonces estos Objetos accesibles al sujeto deben tener un nivel de confidencialidad menor o igual a 300.",
 		"objectSecurityClearance": "Identificación del nivel de seguridad del objeto",
@@ -461,14 +461,14 @@ MWF.xApplication.systemconfig.LP={
 		"databaseSource": "Origen de datos",
 		"entity": "Clase de entidad",
 		"tools": "Copia de seguridad",
-		"infoInner": "Está utilizando la base de datos integrada de O2OA. La base de datos integrada de O2OA es una base de datos de memoria incrustada adecuada para entornos de desarrollo y demostración, pero no para entornos de producción. Si se utiliza en un entorno de producción, se recomienda utilizar una base de datos comercial con mayor rendimiento y estabilidad.",
+		"infoInner": "Está utilizando la base de datos integrada de O2OA. La base de datos integrada de es una base de datos de memoria incrustada adecuada para entornos de desarrollo y demostración, pero no para entornos de producción. Si se utiliza en un entorno de producción, se recomienda utilizar una base de datos comercial con mayor rendimiento y estabilidad.",
 		"infoExternal": "Ha utilizado una base de datos externa y se ha desactivado la base de datos integrada de O2OA.",
 		"info": "<span style='color: red'>La modificación de la configuración de la base de datos afectará a los datos existentes del sistema en la mayoría de los casos. ¡Modifique esta configuración con cuidado!</span>",
-		"info2": "Antes de modificar la configuración de la base de datos, se recomienda utilizar la función de copia de seguridad de O2OA (ctl -dd) para realizar una copia de seguridad de los datos del sistema. Después de modificar la configuración de la base de datos, reinicie el servidor y luego restaure los datos de copia de seguridad en la base de datos (ctl -rd). Se debe reiniciar el servidor para cualquier cambio relacionado con la base de datos.",
+		"info2": "Antes de modificar la configuración de la base de datos, se recomienda utilizar la función de copia de seguridad de (ctl -dd) para realizar una copia de seguridad de los datos del sistema. Después de modificar la configuración de la base de datos, reinicie el servidor y luego restaure los datos de copia de seguridad en la base de datos (ctl -rd). Se debe reiniciar el servidor para cualquier cambio relacionado con la base de datos.",
 		"innerDataSources": "Base de datos integrada",
 		"externalDataSources": "Base de datos externa",
-		"innerDataSourcesInfo": "La base de datos integrada de O2OA es una base de datos de memoria incrustada adecuada para entornos de desarrollo y demostración.",
-		"externalDataSourcesInfo": "O2OA admite la extensión de bases de datos externas. Se recomienda utilizar una base de datos comercial en entornos de producción para garantizar la seguridad y el rendimiento de los datos.",
+		"innerDataSourcesInfo": "La base de datos integrada de es una base de datos de memoria incrustada adecuada para entornos de desarrollo y demostración.",
+		"externalDataSourcesInfo": "admite la extensión de bases de datos externas. Se recomienda utilizar una base de datos comercial en entornos de producción para garantizar la seguridad y el rendimiento de los datos.",
 		"addDatabaseConfig": "Agregar configuración de base de datos",
 		"databaseUrl": "Conexión de la base de datos",
 		"enable": "Habilitar",
@@ -518,7 +518,7 @@ MWF.xApplication.systemconfig.LP={
 		"saveDatabaseConfigSuccess": "La configuración de la base de datos se ha guardado correctamente. Reinicie el servidor.",
 		"saveEntityConfigSuccess": "La configuración de la clase de entidad se ha guardado correctamente. Reinicie el servidor.",
 		"dumpRestoreTools": "Herramientas de copia de seguridad y restauración de bases de datos",
-		"toolsInfo": "O2OA proporciona herramientas de copia de seguridad y restauración de datos. <span style='color: red'>En la mayoría de los casos, modificar la configuración de la base de datos afectará a los datos existentes del sistema</span>. Por lo tanto, antes de modificar la configuración de la base de datos, se recomienda que utilice la función de copia de seguridad de O2OA para hacer una copia de seguridad de los datos del sistema, modifique la configuración de la base de datos, reinicie el servidor y luego restaure los datos de la copia de seguridad en la base de datos.<br><span class='mainColor_color'>No cierre esta página mientras realiza la copia de seguridad o restauración de datos. Puede realizar otras operaciones en otra ventana del navegador.</span>",
+		"toolsInfo": "proporciona herramientas de copia de seguridad y restauración de datos. <span style='color: red'>En la mayoría de los casos, modificar la configuración de la base de datos afectará a los datos existentes del sistema</span>. Por lo tanto, antes de modificar la configuración de la base de datos, se recomienda que utilice la función de copia de seguridad de para hacer una copia de seguridad de los datos del sistema, modifique la configuración de la base de datos, reinicie el servidor y luego restaure los datos de la copia de seguridad en la base de datos.<br><span class='mainColor_color'>No cierre esta página mientras realiza la copia de seguridad o restauración de datos. Puede realizar otras operaciones en otra ventana del navegador.</span>",
 		"dumpTools": "Copia de seguridad de datos",
 		"dumpToolsInfo": "Haga clic en este botón para hacer una copia de seguridad de los datos. <span style='color: red'>No haga esto durante períodos frecuentes de lectura y escritura de datos del sistema.</span>",
 		"dumpWaitLog": "La copia de seguridad de los datos no se ha realizado.",
@@ -598,7 +598,7 @@ MWF.xApplication.systemconfig.LP={
 		"baseConfig": "Configuración básica",
 		"environmentConfig": "Configuración de variables de entorno",
 		"sameConfig": "Usar la misma configuración del servidor",
-		"sameConfigInfo": "O2OA tiene tres servidores lógicos: el servidor central, el servidor de aplicaciones y el servidor web. De forma predeterminada, utilizan el mismo puerto y la misma configuración. También puede configurar diferentes puertos, hosts, etc. para los tres servicios.",
+		"sameConfigInfo": "tiene tres servidores lógicos: el servidor central, el servidor de aplicaciones y el servidor web. De forma predeterminada, utilizan el mismo puerto y la misma configuración. También puede configurar diferentes puertos, hosts, etc. para los tres servicios.",
 		"serverConfig": "Configuración del servidor",
 		"serverConfigInfo": "Configure aquí los parámetros relacionados con el servidor (se requiere reiniciar el servidor)",
 		"serverPort": "Puerto del servicio",
@@ -609,7 +609,7 @@ MWF.xApplication.systemconfig.LP={
 		"httpProtocol": "Protocolo de acceso web",
 		"sslKeyStorePassword": "Contraseña SSL",
 		"sslKeyManagerPassword": "Contraseña de administrador SSL",
-		"sslInfo": "<span> Para habilitar SSL, debe copiar el archivo de certificado solicitado en el directorio de configuración del servidor O2OA y cambiarle el nombre a `keystore`. En un entorno de clúster, debe almacenar el archivo de certificado en cada servidor. (Se requiere reiniciar el servidor)</span>",
+		"sslInfo": "<span> Para habilitar SSL, debe copiar el archivo de certificado solicitado en el directorio de configuración del servidor y cambiarle el nombre a `keystore`. En un entorno de clúster, debe almacenar el archivo de certificado en cada servidor. (Se requiere reiniciar el servidor)</span>",
 		"saveServerConfig": "Guardar la configuración del servidor",
 		"saveServerConfigSuccess": "La configuración del servidor se ha guardado correctamente",
 		"saveServerConfigPortError": "Los puertos para el servidor central, de aplicaciones y web deben ser todos iguales o todos diferentes",
@@ -677,7 +677,7 @@ MWF.xApplication.systemconfig.LP={
 		"fileTypeExcludes": "Tipos de archivo adjunto prohibidos para la carga",
 		"fileTypeExcludesInfo": "Configure aquí los tipos de archivo adjunto que no se permiten cargar. Especificar las extensiones de archivo separadas por comas.",
 		"dumpData": "Copia de seguridad automática de datos",
-		"dumpDataInfo": "O2OA admite la copia de seguridad automática de datos programada. Configure aquí.",
+		"dumpDataInfo": "admite la copia de seguridad automática de datos programada. Configure aquí.",
 		"dumpEnable": "¿Habilitar?",
 		"dumpCron": "Expresión cron",
 		"dumpSize": "Número máximo de copias de seguridad",
@@ -685,7 +685,7 @@ MWF.xApplication.systemconfig.LP={
 		"saveDump": "Guardar configuración de copia de seguridad automática",
 		"saveDumpSuccess": "Configuración de copia de seguridad automática guardada con éxito.",
 		"restoreData": "Restauración automática de datos",
-		"restoreDataInfo": "O2OA admite la restauración automática de datos programada. Configure aquí.",
+		"restoreDataInfo": "admite la restauración automática de datos programada. Configure aquí.",
 		"restoreEnable": "¿Habilitar?",
 		"restoreCron": "Expresión cron",
 		"restorePath": "Ruta de almacenamiento de datos a restaurar",
@@ -726,7 +726,7 @@ MWF.xApplication.systemconfig.LP={
 	},
 	"_cacheConfig": {
 		"type": "Tipo de caché",
-		"typeInfo": "O2OA admite dos tipos de caché: guava y redis. El valor predeterminado es guava.",
+		"typeInfo": "admite dos tipos de caché: guava y redis. El valor predeterminado es guava.",
 		"guava_maximumSize": "Tamaño máximo del caché",
 		"guava_maximumSizeInfo": "Número máximo de objetos que se pueden almacenar en el caché. Valor predeterminado: 3000.",
 		"guava_expireMinutes": "Tiempo de vencimiento",
@@ -757,7 +757,7 @@ MWF.xApplication.systemconfig.LP={
 		"scriptVersionCount": "Número máximo de versiones de historial de scripts",
 		"scriptVersionCountInfo": "Cada vez que se guarda un script, el sistema puede guardar una copia como una versión histórica para recuperar diseños anteriores en casos especiales. Configure aquí el número máximo de versiones históricas que se pueden guardar. Si se supera este número, se eliminará la versión más antigua del historial.",
 		"docToWordType": "Método de conversión a WORD del componente del editor de documentos.",
-		"docToWordTypeInfo": "Cuando configura el método de conversión a WORD del componente del editor de documentos como 'Servicio', el servidor realiza la conversión a WORD. O2OA admite la conversión local o la conversión en la nube. La conversión en la nube proporciona una mejor compatibilidad con el formato WORD, pero primero debe conectarse al servicio O2Cloud. Conéctese a O2Cloud en 'Configuración del servicio en la nube'.",
+		"docToWordTypeInfo": "Cuando configura el método de conversión a WORD del componente del editor de documentos como 'Servicio', el servidor realiza la conversión a WORD. admite la conversión local o la conversión en la nube. La conversión en la nube proporciona una mejor compatibilidad con el formato WORD, pero primero debe conectarse al servicio O2Cloud. Conéctese a O2Cloud en 'Configuración del servicio en la nube'.",
 		"docWordTypeSelect": {
 			"local": "Servicio local",
 			"cloud": "Servicio en la nube"
@@ -771,7 +771,7 @@ MWF.xApplication.systemconfig.LP={
 		"executorCountInfo": "El número de ejecutores de circulación que procesan la circulación de flujo de trabajo. El valor predeterminado es 32 y generalmente no se recomienda modificarlo.",
 		"executorQueueBusyThreshold": "Umbral de ocupación de cola de ejecutores",
 		"executorQueueBusyThresholdInfo": "El umbral de ocupación de la cola de ejecutores que procesa la circulación de flujo de trabajo. El valor predeterminado es 5 y generalmente no se recomienda modificarlo.",
-		"timerInfo": "La plataforma de flujo de trabajo O2OA requiere algunos temporizadores para procesar tareas de flujo de trabajo. Puede configurar estos temporizadores aquí. (Todos los cambios en los temporizadores requerirán un reinicio del servidor para que surtan efecto.)",
+		"timerInfo": "La plataforma de flujo de trabajo requiere algunos temporizadores para procesar tareas de flujo de trabajo. Puede configurar estos temporizadores aquí. (Todos los cambios en los temporizadores requerirán un reinicio del servidor para que surtan efecto.)",
 		"enable": "Habilitar",
 		"cron": "Expresión cron",
 		"urge": "Temporizador de recordatorio",
@@ -792,7 +792,7 @@ MWF.xApplication.systemconfig.LP={
 		"updateTable": "Temporizador de sincronización con tabla de datos",
 		"updateTableInfo": "Si se ha configurado la asignación de datos del flujo de trabajo a una tabla de datos, este temporizador se utiliza para procesar la cola de asignación de datos.",
 		"archiveHadoop": "Archivar en Hadoop",
-		"archiveHadoopInfo": "O2OA admite la archivación de datos de trabajos completados en Hadoop. Puede configurar la conexión a Hadoop aquí.",
+		"archiveHadoopInfo": "admite la archivación de datos de trabajos completados en Hadoop. Puede configurar la conexión a Hadoop aquí.",
 		"fsDefaultFS": "Dirección de Hadoop",
 		"username": "Nombre de usuario de Hadoop",
 		"path": "Prefijo de ruta",
@@ -1016,9 +1016,9 @@ MWF.xApplication.systemconfig.LP={
 		"scanLoginAppId": "AppId de inicio de sesión mediante escaneo de código DingTalk",
 		"scanLoginAppSecret": "appSecret de inicio de sesión mediante escaneo de código de DingTalk",
 		"attendanceSyncEnable": "¿Habilitar información de asistencia?",
-		"enableInfo": "La plataforma de O2OA tiene aplicaciones móviles nativas desarrolladas para Android e IOS que se pueden integrar en DingTalk como miniaplicaciones, sincronizando la libreta de direcciones empresarial de DingTalk como estructura local de organización y personal, y puede enviar notificaciones directamente a DingTalk para recordatorios de mensajes. (Se requiere reinicio del servidor)",
-		"enableInfo2": "<span class='mainColor_color'>Si O2OA se integra con éxito en DingTalk, O2OA automáticamente sincronizará todas las personas y organizaciones desde DingTalk. Todas las personas y organizaciones de O2OA se basarán en la estructura organizacional creada en DingTalk de la empresa (las personas y organizaciones creadas localmente no serán eliminadas y se mantendrán, lo que puede provocar duplicados).</span>",
-		"enableInfo3": "Para obtener más información sobre la integración de O2OA y DingTalk, consulte: <a href='https://www.o2oa.net/search.html?q=%E9%92%89%E9%92%89' target='_blank'>钉钉</a>",
+		"enableInfo": "La plataforma de tiene aplicaciones móviles nativas desarrolladas para Android e IOS que se pueden integrar en DingTalk como miniaplicaciones, sincronizando la libreta de direcciones empresarial de DingTalk como estructura local de organización y personal, y puede enviar notificaciones directamente a DingTalk para recordatorios de mensajes. (Se requiere reinicio del servidor)",
+		"enableInfo2": "<span class='mainColor_color'>Si se integra con éxito en DingTalk, automáticamente sincronizará todas las personas y organizaciones desde DingTalk. Todas las personas y organizaciones de se basarán en la estructura organizacional creada en DingTalk de la empresa (las personas y organizaciones creadas localmente no serán eliminadas y se mantendrán, lo que puede provocar duplicados).</span>",
+		"enableInfo3": "",
 		"syncCronInfo": "Verificación de devolución de llamada que desencadena la verificación de sincronización, se ejecuta automáticamente cada 10 minutos de forma predeterminada. Si se recibe una señal de devolución de llamada de DingTalk durante este tiempo, se activará una tarea de sincronización para realizar la sincronización del personal. (Debe configurarse la devolución de llamada en DingTalk)",
 		"forceSyncCronInfo": "Configuración de sincronización forzada programada, que realiza una sincronización forzada de personal y organización a las 8:00 y las 12:00 todos los días.",
 		"oapiAddressInfo": "Dirección del servidor API de DingTalk, por lo general no es necesario modificarla.",
@@ -1042,12 +1042,12 @@ MWF.xApplication.systemconfig.LP={
 			"tempName": "Campo de plantilla",
 			"name": "Campo de negocio",
 			"workUrlInfo": "Dirección URL para abrir el trabajo de mensajes de cuenta oficial de WeChat, como: https://sample.o2oa.net/x_desktop/",
-			"enableInfo": "O2OA admite la integración con cuentas oficiales de WeChat, y los usuarios pueden procesar trabajos siguiendo la cuenta pública de WeChat, y admite notificaciones de mensajes para trabajos pendientes. (Se requiere reinicio del servidor)",
-			"enableInfo2": "Para obtener más información sobre la integración de O2OA y cuentas oficiales de WeChat, consulte: <a href='https://www.o2oa.net/search.html?q=%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7' target='_blank'>微信公众号</a>",
-			"enablePublishInfo": "Después de habilitar la publicación de menús, puede publicar las funciones de menú configuradas en O2OA en una cuenta oficial de WeChat. Puede configurar el menú de una cuenta oficial de WeChat en Configuración de menú público de APP.",
+			"enableInfo": "admite la integración con cuentas oficiales de WeChat, y los usuarios pueden procesar trabajos siguiendo la cuenta pública de WeChat, y admite notificaciones de mensajes para trabajos pendientes. (Se requiere reinicio del servidor)",
+			"enableInfo2": "",
+			"enablePublishInfo": "Después de habilitar la publicación de menús, puede publicar las funciones de menú configuradas en en una cuenta oficial de WeChat. Puede configurar el menú de una cuenta oficial de WeChat en Configuración de menú público de APP.",
 			"portalIdInfo": "Después de que se procese un mensaje, puede especificar la página del portal a la que se dirigirá.",
 			"scriptIdInfo": "Cuando se recibe un mensaje de texto de una cuenta oficial de WeChat, se puede ejecutar una interfaz de administración de servicios de plataforma especificada aquí.",
-			"fieldListInfo": "Esta es la relación correspondiente entre los campos empresariales en el contenido de la plantilla. Actualmente, O2OA proporciona los siguientes campos empresariales: [creatorPerson: creador, activityName: nodo actual, processName: nombre del proceso, startTime: hora de inicio, title: título].",
+			"fieldListInfo": "Esta es la relación correspondiente entre los campos empresariales en el contenido de la plantilla. Actualmente, proporciona los siguientes campos empresariales: [creatorPerson: creador, activityName: nodo actual, processName: nombre del proceso, startTime: hora de inicio, title: título].",
 			"saveMpweixin": "Guardar configuración de cuenta oficial de WeChat",
 			"saveMpweixinSuccess": "Configuración de cuenta oficial de WeChat guardada correctamente."
 		},
@@ -1090,8 +1090,8 @@ MWF.xApplication.systemconfig.LP={
 			"apiAddressInfo": "Dirección del servidor API de WeChat Work, generalmente no es necesario modificarla.",
 			"workUrlInfo": "La dirección URL para abrir mensajes de trabajo en WeChat Work, como: https://sample.o2oa.net/x_desktop/",
 			"messageRedirectPortalInfo": "Después de procesar los mensajes de WeChat Work, puede especificar a qué página de portal redirigir.",
-			"enableInfo": "O2OA soporta la integración en WeChat Work como una aplicación autoconstruida, sincronizando el libro de direcciones empresarial de WeChat Work como la estructura local de personal de la organización y también puede enviar notificaciones directamente a WeChat Work, como tareas, para recordatorios de mensajes.",
-			"enableInfo2": "Para obtener más información sobre O2OA y WeChat Work, consulte: <a href='https://www.o2oa.net/search.html?q=%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1' target='_blank'>企业微信</a>",
+			"enableInfo": "soporta la integración en WeChat Work como una aplicación autoconstruida, sincronizando el libro de direcciones empresarial de WeChat Work como la estructura local de personal de la organización y también puede enviar notificaciones directamente a WeChat Work, como tareas, para recordatorios de mensajes.",
+			"enableInfo2": "",
 			"saveText": "Guardar configuración de WeChat Work",
 			"saveSuccess": "Configuración de WeChat Work guardada exitosamente.",
 			"qrConnectAddress": "Escanear el Código para iniciar sesión en la dirección del servicio",
@@ -1107,8 +1107,8 @@ MWF.xApplication.systemconfig.LP={
 			"messageEnable": "¿Habilitar la notificación de mensajes?",
 			"workUrl": "URL para abrir mensajes de trabajo",
 			"messageRedirectPortal": "Redirigir al portal después del procesamiento",
-			"enableInfo": "O2OA admite la integración en WeLink como una aplicación interna ligera de empresas Huawei, sincronizando el libro de direcciones de WeLink como la estructura local del personal de la organización y también puede enviar directamente notificaciones, como tareas, a WeLink para recordatorios de mensajes. (Requiere reiniciar el servidor)",
-			"enableInfo2": "Para obtener más información sobre O2OA y WeLink, consulte: <a href='https://www.o2oa.net/search.html?q=welink' target='_blank'>WeLink</a>",
+			"enableInfo": "admite la integración en WeLink como una aplicación interna ligera de empresas Huawei, sincronizando el libro de direcciones de WeLink como la estructura local del personal de la organización y también puede enviar directamente notificaciones, como tareas, a WeLink para recordatorios de mensajes. (Requiere reiniciar el servidor)",
+			"enableInfo2": "",
 			"syncCronInfo": "La señal de devolución de llamada activa la comprobación de sincronización. Se ejecuta automáticamente cada 10 minutos. Si se recibe una señal de devolución de llamada de WeLink durante este período, se activará la tarea de sincronización para sincronizar el personal. (Requiere configurar la configuración de devolución de llamada en WeLink)",
 			"forceSyncCronInfo": "Configuración de sincronización forzada con temporizador. Por defecto, se fuerza la sincronización del personal y las organizaciones a las 8:00 a.m. y las 12:00 p.m. todos los días.",
 			"workUrlInfo": "La dirección URL para abrir mensajes de trabajo en WeLink, como: https://sample.o2oa.net/x_desktop/",
@@ -1121,7 +1121,7 @@ MWF.xApplication.systemconfig.LP={
 		"innerStorage": "Almacenamiento interno",
 		"externalStorage": "Almacenamiento externo",
 		"info": "<span style='color: red'>Modificar la configuración de almacenamiento afectará en la mayoría de los casos al almacenamiento de archivos existente del sistema. ¡Por favor, modifique esta configuración con cuidado!</span>",
-		"info2": "Antes de modificar la configuración de almacenamiento, se recomienda que utilice la función de copia de seguridad de O2OA (ctl -dd) para hacer una copia de seguridad de los datos del sistema. Después de modificar la configuración de almacenamiento, reinicie el servidor y luego restaure los datos de la copia de seguridad (ctl -rd). Cualquier modificación de la configuración relacionada con la base de datos requiere que se reinicie el servidor.",
+		"info2": "Antes de modificar la configuración de almacenamiento, se recomienda que utilice la función de copia de seguridad de (ctl -dd) para hacer una copia de seguridad de los datos del sistema. Después de modificar la configuración de almacenamiento, reinicie el servidor y luego restaure los datos de la copia de seguridad (ctl -rd). Cualquier modificación de la configuración relacionada con la base de datos requiere que se reinicie el servidor.",
 		"saveStorageConfig": "Guardar toda la configuración de almacenamiento",
 		"saveStorageConfigInfo": "La configuración modificada en esta página no se guardará inmediatamente. Debe hacer clic en este botón para guardar las configuraciones que ha modificado.",
 		"saveStorageConfirm": "Está a punto de guardar la configuración de almacenamiento<br><span style='color:red'> Esto podría afectar al almacenamiento de archivos existente en el sistema.</span><br><br> ¿Está seguro de querer guardar la configuración de almacenamiento?",
@@ -1129,7 +1129,7 @@ MWF.xApplication.systemconfig.LP={
 		"reloadStorageConfigInfo": "Si desea descartar las modificaciones no guardadas en esta página, puede hacer clic en este botón para volver a cargar la configuración.",
 		"reloadStorageConfirm": "Esta acción volverá a cargar la configuración de almacenamiento y se perderán las modificaciones no guardadas. ¿Está seguro de querer restaurar la configuración de almacenamiento?",
 		"storageType": "Tipo de servicio de almacenamiento",
-		"storageTypeInfo": "O2OA tiene un servicio de almacenamiento de archivos integrado y también puede utilizar nodos de almacenamiento externo según sea necesario.",
+		"storageTypeInfo": "tiene un servicio de almacenamiento de archivos integrado y también puede utilizar nodos de almacenamiento externo según sea necesario.",
 		"storageTypeData": [
 			{
 				"value": "inner",
@@ -1199,7 +1199,7 @@ MWF.xApplication.systemconfig.LP={
 		"removeNodeConfigTitle": "Confirmación",
 		"removeNodeConfig": "Está a punto de eliminar el nodo de almacenamiento \"{name}\". Esta acción podría afectar al almacenamiento de archivos existente en el sistema.<br>¿Está seguro de querer eliminar el nodo de almacenamiento\"{name}\"?",
 		"assignNode": "Asignación de nodos de almacenamiento",
-		"assignNodeInfo": "En O2OA existen varios tipos de archivos y se pueden asignar nodos de almacenamiento a estos archivos. Cada tipo de archivo puede tener múltiples nodos de almacenamiento asignados.",
+		"assignNodeInfo": "En existen varios tipos de archivos y se pueden asignar nodos de almacenamiento a estos archivos. Cada tipo de archivo puede tener múltiples nodos de almacenamiento asignados.",
 		"files": {
 			"file": "Archivos de la nube (file)",
 			"processPlatform": "Archivos de plataforma de flujo de trabajo (processPlatform)",
@@ -1334,7 +1334,7 @@ MWF.xApplication.systemconfig.LP={
 	},
 	"_pushConfig": {
 		"pushType": "Servicio de envío de mensajes",
-		"pushTypeInfo": "O2OA admite servicios de envío de mensajes de JPush y Huawei, puede elegir el servicio según sus necesidades.",
+		"pushTypeInfo": "admite servicios de envío de mensajes de JPush y Huawei, puede elegir el servicio según sus necesidades.",
 		"pushTypeData": [
 			{
 				"value": "jpush",
@@ -1379,8 +1379,8 @@ MWF.xApplication.systemconfig.LP={
 			"andfx": "Mensaje de oficina móvil"
 		},
 		"consumerInfoTitle": "Configuración del canal de mensajes",
-		"consumerInfo": "El sistema O2OA proporciona varios canales de mensajes. Puede establecer aquí cómo se deben enviar los diferentes tipos de mensajes.",
-		"consumerInfo2": "Para obtener más información sobre la configuración de mensajes, consulte: <a href='https://www.o2oa.net/search.html?q=%E6%B6%88%E6%81%AF%E9%85%8D%E7%BD%AE' target='_blank'>Mensajes</a>",
+		"consumerInfo": "El sistema proporciona varios canales de mensajes. Puede establecer aquí cómo se deben enviar los diferentes tipos de mensajes.",
+		"consumerInfo2": "",
 		"addConsumer": "Agregar canal de mensajes",
 		"consumerLabel": {
 			"key": "Nombre del canal",

+ 54 - 55
o2web/source/x_component_systemconfig/public/lp/zh-cn.js

@@ -200,7 +200,7 @@ o2.xApplication.systemconfig.LP = {
         "serviceResourceInfo": "您可以在此处部署您开发的自定义工程,上传编译后的jar包或者war包。部署后需要重启服务器。",
 
         "componentResource": "组件部署",
-        "componentResourceInfo": "您自定义开发的O2OA组件,或从官方获取组件,都可以在此处部署。O2OA组件是名为“x_component_{组件名称}”的文件夹或zip文件。更多详细信息请查阅:<a href='https://www.o2oa.net/develop.html' target='_blank'>O2OA官方社区。</a>",
+        "componentResourceInfo": "您自定义开发的组件,可以在此处部署。",
 
         "upload": "上传资源",
         "webUploadWarn": "上传要部署的静态资源文件,zip文件会自动解压",
@@ -226,7 +226,7 @@ o2.xApplication.systemconfig.LP = {
         "userConfig": "用户界面配置",
 
         "openStatus": "进入系统",
-        "openStatusInfo": "每次进入O2OA系统,默认会打开上一次退出系统时打开的应用,您可以在此处改变这一行为。",
+        "openStatusInfo": "每次进入系统,默认会打开上一次退出系统时打开的应用,您可以在此处改变这一行为。",
         "openStatusCurrent": "将打开的应用和当前应用都定位到上一次退出时的状态(默认)",
         "openStatusApp": "打开上一次退出系统时的应用,并将首页作为当前应用",
         "openStatusIndex": "只打开首页应用",
@@ -352,7 +352,7 @@ o2.xApplication.systemconfig.LP = {
         "passwordEmpty": "请输入原密码、新密码和确认密码",
 
         "tokenEncryptType": "密码加密方式",
-        "tokenEncryptTypeInfo": "O2OA支持以下几种密码和Token加密方式,可以根据需要选择。更多信息请查看:<a href='https://www.o2oa.net/search.html?q=%E5%9B%BD%E5%AF%86' target='_blank'>国密</a>",
+        "tokenEncryptTypeInfo": "支持以下几种密码和Token加密方式,可以根据需要选择。",
         "tokenEncryptTypeLabel": "加密方式",
         "encryptTypeOptions": {
             "default": "默认",
@@ -391,7 +391,7 @@ o2.xApplication.systemconfig.LP = {
         "appTokenExpiredInfo": "用户登录系统后,如果长时间不和服务器发生交互,系统就会注销次此登录。您可以在此处设置登录有效时长,单位为分钟。用于移动端。",
 
         "tokenName": "token名称",
-        "tokenNameInfo": "系统默认的token名称为x-token,您可以在此处修改token名称,以防止在相同Domain下的Cookie冲突,这在相同Domain下部署多套O2OA时尤其有用。(需要重启服务器)",
+        "tokenNameInfo": "系统默认的token名称为x-token,您可以在此处修改token名称,以防止在相同Domain下的Cookie冲突,这在相同Domain下部署多套时尤其有用。(需要重启服务器)",
 
         "tokenCookieHttpOnly": "启用Cookie HttpOnly",
         "tokenCookieHttpOnlyInfo": "保存token的cookie是否启用httponly",
@@ -460,18 +460,18 @@ o2.xApplication.systemconfig.LP = {
 
         "useSSOConfig": "如何使用鉴权密钥",
         "useSSOConfigInfo": "在两种场景下需要使用鉴权密钥:",
-        "useSSOConfigInfo1": "1、外部系统需要与O2OA实现单点登录;",
-        "useSSOConfigInfo2": "2、外部系统需要调用O2OA平台的接口服务;",
-        "useSSOConfigInfo3": "需要将鉴权的名称,密钥告知外部系统,外部系统采取3DES算法使用密钥对<span style='color: blue'>\"person#timestamp\"</span>文本进行加密,获取到访问O2OA的临时票据(token)。<br/>" +
-            "<span style='color: blue'>person</span>:表示指定用户的用户名、唯一编码或员工号。(具体使用哪个要根据外部系统与O2OA的用户关联的字段)<br/>" +
+        "useSSOConfigInfo1": "1、外部系统需要与实现单点登录;",
+        "useSSOConfigInfo2": "2、外部系统需要调用平台的接口服务;",
+        "useSSOConfigInfo3": "需要将鉴权的名称,密钥告知外部系统,外部系统采取3DES算法使用密钥对<span style='color: blue'>\"person#timestamp\"</span>文本进行加密,获取到访问的临时票据(token)。<br/>" +
+            "<span style='color: blue'>person</span>:表示指定用户的用户名、唯一编码或员工号。(具体使用哪个要根据外部系统与的用户关联的字段)<br/>" +
             "<span style='color: blue'>timestamp</span>:表示为1970年1月1日0时0秒到当前时间的毫秒数。(为了确保token的时效性,有效时间为1分钟)<br/><br>" +
-            "生成token后,外部系统可以直接通过访问以下地址,实现与O2OA的单点认证:<br/>" +
+            "生成token后,外部系统可以直接通过访问以下地址,实现与的单点认证:<br/>" +
             "http://servername/x_desktop/sso.html?client={<span style='color: blue'>client</span>}&xtoken={<span style='color: blue'>token</span>}&redirect={<span style='color: blue'>redirect</span>}<br/>" +
             "<span style='color: blue'>client</span>表示使用的鉴权名称;<br/>" +
             "<span style='color: blue'>token</span>表示产生的临时票据token;<br/>" +
             "<span style='color: blue'>redirect</span>表示认证成功后要跳转到的地址;<br/>",
 
-        "useSSOConfigInfo4": "更多有关鉴权配置的说明,<a target='_blank' href='https://www.o2oa.net/search.html?q=%E9%89%B4%E6%9D%83'>请点击此处查看</a>。",
+        "useSSOConfigInfo4": "",
 
         "ssoTokenTools": "相关工具",
         "ssoTokenCode": "查看加密样例代码",
@@ -481,7 +481,7 @@ o2.xApplication.systemconfig.LP = {
         "oauthClientConfig": "OAuth客户端配置",
         "oauthServerConfig": "OAuth服务端配置",
 
-        "oauthClientConfigInfo": "如果将O2OA平台作为OAuth2认证服务器,您可以在此可以配置多个OAuth客户端,为其他系统实现登录授权",
+        "oauthClientConfigInfo": "如果将平台作为OAuth2认证服务器,您可以在此可以配置多个OAuth客户端,为其他系统实现登录授权",
         "oauthServerConfigInfo": "如果您已有OAuth2认证服务端,您可以在此配置多个OAuth服务端,为本系统实现登录授权",
 
         "addOauthClientConfig": "添加OAuth客户端配置",
@@ -534,8 +534,7 @@ o2.xApplication.systemconfig.LP = {
             "<li>安全管理员(系统内置用户:securityManager):负责权限设定,负责系统审计日志、用户和系统管理员操作行为的审查分析; </li>" +
             "<li>安全审计员(系统内置用户:auditManager):负责对系统管理员、安全管理员的操作行为进行审计、跟踪。</li></ul>" +
             "应用定时每天1点分析前一天的操作日志供三个管理员审计查询。<br>" +
-            "要完整使用三员管理功能,您还需要从应用市场安装“三员管理”应用。" +
-            "更多关于三员管理的内容可查看以下文档和视频:<a href='https://www.o2oa.net/search.html?q=%E4%B8%89%E5%91%98%E7%AE%A1%E7%90%86' target='_blank'>三员管理</a>",
+            "要完整使用三员管理功能,您还需要从应用市场安装“三员管理”应用。",
         "logRetainDays": "日志保留天数",
         "logRetainDaysInfo": "设置日志最多保留的天数",
 
@@ -573,17 +572,17 @@ o2.xApplication.systemconfig.LP = {
         "databaseSource": "数据源配置",
         "entity": "实体类配置",
         "tools": "备份工具",
-        "infoInner": "您正在使用O2OA内置数据库,O2OA自带的数据库是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境,并不适合用作正式环境。 " +
+        "infoInner": "您正在使用内置数据库,自带的数据库是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境,并不适合用作正式环境。 " +
             "如果作为正式环境使用,建议您使用拥有更高性能并且更加稳定的商用级别数据库。",
-        "infoExternal": "您已经使用了扩展数据库,O2OA内置数据库已停用。",
+        "infoExternal": "您已经使用了扩展数据库,内置数据库已停用。",
 
         "info": "<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据,请慎重修改此处配置!</span>",
-        "info2": "在修改数据库配置之前,建议您先使用O2OA的备份功能(ctl -dd)将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库(ctl -rd)。所有数据库相关配置的修改,都需要重启服务器",
+        "info2": "在修改数据库配置之前,建议您先使用的备份功能(ctl -dd)将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库(ctl -rd)。所有数据库相关配置的修改,都需要重启服务器",
 
         "innerDataSources": "内置数据库",
         "externalDataSources": "扩展数据库",
-        "innerDataSourcesInfo": "O2OA自带的数据库是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境。",
-        "externalDataSourcesInfo": "O2OA支持外部数据库扩展,建议生产环境使用商用级别数据库以保证数据安全和性能。",
+        "innerDataSourcesInfo": "自带的数据库是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境。",
+        "externalDataSourcesInfo": "支持外部数据库扩展,建议生产环境使用商用级别数据库以保证数据安全和性能。",
 
         "addDatabaseConfig": "添加数据库配置",
 
@@ -651,8 +650,8 @@ o2.xApplication.systemconfig.LP = {
         "saveEntityConfigSuccess": "实体类配置保存成功,请重启服务器",
 
         "dumpRestoreTools": "数据库备份恢复工具",
-        "toolsInfo": "O2OA提供了数据备份和恢复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
-            "所以在修改数据库配置之前,建议您先使用O2OA的备份功能将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库。<br>" +
+        "toolsInfo": "提供了数据备份和恢复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
+            "所以在修改数据库配置之前,建议您先使用的备份功能将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库。<br>" +
             "<span class='mainColor_color'>在您进行备份或恢复数据时,请勿离开本页面。您可以在另一个浏览器窗口中进行其它操作</span>",
 
         "dumpTools": "备份数据",
@@ -750,7 +749,7 @@ o2.xApplication.systemconfig.LP = {
         "baseConfig": "基本配置",
         "environmentConfig": "环境变量配置",
         "sameConfig": "使用相同的服务器配置",
-        "sameConfigInfo": "O2OA有三个逻辑服务器:中心服务、应用服务和WEB服务,默认情况下它们使用同一个端口和同一套配置,您也可以为三个服务分开配置不同的端口、主机等信息。",
+        "sameConfigInfo": "有三个逻辑服务器:中心服务、应用服务和WEB服务,默认情况下它们使用同一个端口和同一套配置,您也可以为三个服务分开配置不同的端口、主机等信息。",
 
         "serverConfig": "服务器配置",
         "serverConfigInfo": "在此配置服务器相关参数(需要重启服务器)",
@@ -764,7 +763,7 @@ o2.xApplication.systemconfig.LP = {
         "httpProtocol": "WEB访问协议",
         "sslKeyStorePassword": "SSL密码",
         "sslKeyManagerPassword": "SSL管理密码",
-        "sslInfo": "<span>启用SSL,您需要将已申请的证书文件复制到O2OA服务端的config目录下,并改名成`keystore`,集群环境需要在每台服务器存放证书文件。(需要重启服务器)</span>",
+        "sslInfo": "<span>启用SSL,您需要将已申请的证书文件复制到服务端的config目录下,并改名成`keystore`,集群环境需要在每台服务器存放证书文件。(需要重启服务器)</span>",
 
         "saveServerConfig": "保存服务器配置",
         "saveServerConfigSuccess": "服务器配置保存成功",
@@ -842,14 +841,14 @@ o2.xApplication.systemconfig.LP = {
 
         "refererHeadCheckRegular": "请求Referer校验",
         "refererHeadCheckRegularInfo": "在此处可配置服务器对于请求的Referer头的校验规则,配置一个正则表达式,通过正则表达式校验Referer值的请求才被允许。" +
-            "合理配置此项可有效防止CSRF攻击。如配置 (.+?)o2oa.net(.+?) 仅允许referer包含“o2oa.net”的请求",
+            "合理配置此项可有效防止CSRF攻击。如配置 (.+?)hrbszygs.cn(.+?) 仅允许referer包含“hrbszygs.cn”的请求",
 
         "contentSecurityPolicy": "Content-Security-Policy响应头",
         "contentSecurityPolicyInfo": "HTTP 响应头 Content-Security-Policy 允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。这将帮助防止跨站脚本攻击(Cross-Site Script)。",
         "contentSecurityPolicyInfo2": "更多关于Content-Security-Policy响应头的信息请查看:<a target='_blank' href='https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy'>https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy</a>",
 
         "accessControlAllowOrigin": "跨域来源许可",
-        "accessControlAllowOriginInfo": "跨源资源共享许可,设置http返回的Access-Control-Allow-Origin标识,可以用于CORS攻击防护,如:https://www.o2oa.net",
+        "accessControlAllowOriginInfo": "跨源资源共享许可,设置http返回的Access-Control-Allow-Origin标识,可以用于CORS攻击防护,如:https://oa.hrbszygs.cn",
 
         "personUnitOrderByAsc": "人员组织升序",
         "personUnitOrderByAscInfo": "在展现获取人员组织数据时,是否使用升序排序,默认true,否则为降序排序",
@@ -865,7 +864,7 @@ o2.xApplication.systemconfig.LP = {
         "fileTypeExcludesInfo": "设置禁止上传的附件类型,设置扩展名,用半角逗号分隔",
 
         "dumpData": "自动备份数据",
-        "dumpDataInfo": "O2OA支持定时自动备份数据,请在此处配置",
+        "dumpDataInfo": "支持定时自动备份数据,请在此处配置",
         "dumpEnable": "是否启用",
         "dumpCron": "定时表达式",
         "dumpSize": "最大备份数",
@@ -875,7 +874,7 @@ o2.xApplication.systemconfig.LP = {
 
 
         "restoreData": "自动恢复数据",
-        "restoreDataInfo": "O2OA支持定时自动恢复数据,请在此处配置",
+        "restoreDataInfo": "支持定时自动恢复数据,请在此处配置",
         "restoreEnable": "是否启用",
         "restoreCron": "定时表达式",
         "restorePath": "恢复路径",
@@ -913,7 +912,7 @@ o2.xApplication.systemconfig.LP = {
     },
     "_cacheConfig": {
         "type": "缓存类型",
-        "typeInfo": "O2OA系统支持guava和redis两种缓存,默认使用guava。",
+        "typeInfo": "系统支持guava和redis两种缓存,默认使用guava。",
 
         "guava_maximumSize": "缓存最大容量",
         "guava_maximumSizeInfo": "缓存最大容量,对象数量,默认值:3000",
@@ -953,7 +952,7 @@ o2.xApplication.systemconfig.LP = {
 
         "docToWordType": "公文编辑器组件转换WORD方式",
         "docToWordTypeInfo": "公文编辑器组件在配置了转换WORD方式为“Service”时,由后端服务进行WORD转换。" +
-            "O2OA系统支持本地服务转换或者使用云服务转换,使用云服务转换能够更好的兼容WORD格式,但您必须先连接到O2云。请在“云服务配置”中连接O2云。",
+            "系统支持本地服务转换或者使用云服务转换,使用云服务转换能够更好的兼容WORD格式,但您必须先连接到O2云。请在“云服务配置”中连接O2云。",
         "docWordTypeSelect": {
             "local": "本地服务",
             "cloud": "云服务"
@@ -971,7 +970,7 @@ o2.xApplication.systemconfig.LP = {
         "executorQueueBusyThreshold": "执行器队列繁忙阈值",
         "executorQueueBusyThresholdInfo": "处理流程流转的执行器队列的繁忙阈值。默认5,一般不建议修改",
 
-        "timerInfo": "O2OA流程平台需要一些定时器来处理流程任务,您可在此处对这些定时器进行配置。(所有对定时器的修改,都需要重启服务器才能生效)",
+        "timerInfo": "流程平台需要一些定时器来处理流程任务,您可在此处对这些定时器进行配置。(所有对定时器的修改,都需要重启服务器才能生效)",
 
         "enable": "是否启用",
         "cron": "定时表达式",
@@ -1001,7 +1000,7 @@ o2.xApplication.systemconfig.LP = {
         "updateTableInfo": "如果流程中设置了将流程数据映射到数据表,此定时器用于处理映射数据队列",
 
         "archiveHadoop": "归档到Hadoop",
-        "archiveHadoopInfo": "O2OA支持将已完成的工作数据归档到Hadoop,您可以在此处设置Hadoop相关配置",
+        "archiveHadoopInfo": "支持将已完成的工作数据归档到Hadoop,您可以在此处设置Hadoop相关配置",
         "fsDefaultFS": "Hadoop地址",
         "username": "Hadoop用户名",
         "path": "路径前缀",
@@ -1260,14 +1259,14 @@ o2.xApplication.systemconfig.LP = {
         "scanLoginAppSecret": "钉钉扫码登录的appSecret",
         "attendanceSyncEnable": "是否启用考勤信息",
 
-        "enableInfo": "O2OA平台拥有配套的原生开发的安卓和IOS移动APP,可以以微应用的方式集成到阿里钉钉,同步钉钉的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到钉钉进行消息提醒。(需要重启服务器)",
-        "enableInfo2": "<span class='mainColor_color'>如果O2OA成功接入钉钉,O2OA将会自动从钉钉拉取所有的人员和组织进行同步,O2OA的所有人员和组织以企业钉钉中创建的组织架构为准( 本地已经创建的人员和组织将保留不会被删除,可能会造成人员和组织重复 )</span>",
-        "enableInfo3": "更多O2OA与钉钉集成的内容,请查看:<a href='https://www.o2oa.net/search.html?q=%E9%92%89%E9%92%89' target='_blank'>钉钉</a>",
+        "enableInfo": "平台拥有配套的原生开发的安卓和IOS移动APP,可以以微应用的方式集成到阿里钉钉,同步钉钉的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到钉钉进行消息提醒。(需要重启服务器)",
+        "enableInfo2": "<span class='mainColor_color'>如果成功接入钉钉,将会自动从钉钉拉取所有的人员和组织进行同步,的所有人员和组织以企业钉钉中创建的组织架构为准( 本地已经创建的人员和组织将保留不会被删除,可能会造成人员和组织重复 )</span>",
+        "enableInfo3": "",
 
         "syncCronInfo": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有钉钉回调信号接收到,那么触发同步任务进行人员同步.(需要在钉钉设置回调配置)",
         "forceSyncCronInfo": "强制同步定时设置,默认在每天的8点和12点强制进行同步人员和组织",
         "oapiAddressInfo": "钉钉API服务器地址,一般不需要修改",
-        "workUrlInfo": "钉钉消息打开工作的url地址,如:https://sample.o2oa.net/x_desktop/",
+        "workUrlInfo": "钉钉消息打开工作的url地址,如:https://oa.hrbszygs.cn/x_desktop/",
         "messageRedirectPortalInfo": "当钉钉消息处理完成后,可指定跳转到特定的门户页面",
 
         "saveDingding": "保存钉钉配置",
@@ -1289,13 +1288,13 @@ o2.xApplication.systemconfig.LP = {
             "tempName": "模版字段",
             "name": "业务字段",
 
-            "workUrlInfo": "微信公众号消息打开工作的url地址,如:https://sample.o2oa.net/x_desktop/",
-            "enableInfo": "O2OA支持微信公众号的集成,用户可以通过关注微信公众号进行工作处理。并且支持待办工作的消息提醒。(需要重启服务器)",
-            "enableInfo2": "更多O2OA与微信公众号的内容,请查看:<a href='https://www.o2oa.net/search.html?q=%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7' target='_blank'>微信公众号</a>",
-            "enablePublishInfo": "启用菜单发布后,可已将在O2OA中配置好的菜单功能,发布到微信公众号。可在 APP工具-公众号菜单配置 中配置微信公众号菜单",
+            "workUrlInfo": "微信公众号消息打开工作的url地址,如:https://oa.hrbszygs.cn/x_desktop/",
+            "enableInfo": "O支持微信公众号的集成,用户可以通过关注微信公众号进行工作处理。并且支持待办工作的消息提醒。(需要重启服务器)",
+            "enableInfo2": "",
+            "enablePublishInfo": "启用菜单发布后,可已将在中配置好的菜单功能,发布到微信公众号。可在 APP工具-公众号菜单配置 中配置微信公众号菜单",
             "portalIdInfo": "当消息处理完成后,可指定跳转到特定的门户页面",
             "scriptIdInfo": "当从公众号接收到文本消息时,可执行平台服务管理中的接口,在此处指定要执行的接口",
-            "fieldListInfo": "这个是模版的内容中业务字段的对应关系,目前O2OA提供了这几个业务字段 【creatorPerson:创建人,  activityName: 当前节点,  processName: 流程名称, startTime: 开始时间, title 标题】",
+            "fieldListInfo": "这个是模版的内容中业务字段的对应关系,目前提供了这几个业务字段 【creatorPerson:创建人,  activityName: 当前节点,  processName: 流程名称, startTime: 开始时间, title 标题】",
 
             "saveMpweixin": "保存微信公众号配置",
             "saveMpweixinSuccess": "微信公众号配置保存成功"
@@ -1342,11 +1341,11 @@ o2.xApplication.systemconfig.LP = {
             "syncCronInfo": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有企业微信回调信号接收到,那么触发同步任务进行人员同步.(需要在企业微信设置回调配置)",
             "forceSyncCronInfo": "强制同步定时设置,默认在每天的8点和12点强制进行同步人员和组织",
             "apiAddressInfo": "企业微信API服务器地址,一般不需要修改",
-            "workUrlInfo": "企业微信消息打开工作的url地址,如:https://sample.o2oa.net/x_desktop/",
+            "workUrlInfo": "企业微信消息打开工作的url地址,如:https://oa.hrbszygs.cn/x_desktop/",
             "messageRedirectPortalInfo": "当企业微信消息处理完成后,可指定跳转到特定的门户页面",
 
-            "enableInfo": "O2OA支持以自建应用的方式集成到企业微信,同步企业微信的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到企业微信进行消息提醒。(需要重启服务器)",
-            "enableInfo2": "更多O2OA与企业微信的内容,请查看:<a href='https://www.o2oa.net/search.html?q=%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1' target='_blank'>企业微信</a>",
+            "enableInfo": "支持以自建应用的方式集成到企业微信,同步企业微信的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到企业微信进行消息提醒。(需要重启服务器)",
+            "enableInfo2": "",
 
             "saveText": "保存企业微信配置",
             "saveSuccess": "企业微信配置保存成功"
@@ -1363,13 +1362,13 @@ o2.xApplication.systemconfig.LP = {
             "workUrl": "消息打开工作的URL",
             "messageRedirectPortal": "处理完成后跳转到门户",
 
-            "enableInfo": "O2OA支持以华为WeLink企业内部轻应用的方式集成,同步WeLink的通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到WeLink进行消息提醒。(需要重启服务器)",
-            "enableInfo2": "更多O2OA与WeLink的内容,请查看:<a href='https://www.o2oa.net/search.html?q=welink' target='_blank'>WeLink</a>",
+            "enableInfo": "支持以华为WeLink企业内部轻应用的方式集成,同步WeLink的通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到WeLink进行消息提醒。(需要重启服务器)",
+            "enableInfo2": "",
 
             "syncCronInfo": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有WeLink回调信号接收到,那么触发同步任务进行人员同步.(需要在WeLink设置回调配置)",
             "forceSyncCronInfo": "强制同步定时设置,默认在每天的8点和12点强制进行同步人员和组织",
 
-            "workUrlInfo": "WeLink消息打开工作的url地址,如:https://sample.o2oa.net/x_desktop/",
+            "workUrlInfo": "WeLink消息打开工作的url地址,如:https://oa.hrbszygs.cn/x_desktop/",
             "messageRedirectPortalInfo": "当WeLink消息处理完成后,可指定跳转到特定的门户页面",
 
             "saveText": "保存WeLink配置",
@@ -1381,7 +1380,7 @@ o2.xApplication.systemconfig.LP = {
         "externalStorage": "扩展存储服务",
 
         "info": "<span style='color: red'>修改存储配置在大部分情况下都会影响到系统现有的文件存储,请慎重修改此处配置!</span>",
-        "info2": "在修改存储配置之前,建议您先使用O2OA的备份功能(ctl -dd)将系统数据进行备份,在修改完存储配置后重启服务器,然后将备份的数据恢复(ctl -rd)。所有数据库相关配置的修改,都需要重启服务器",
+        "info2": "在修改存储配置之前,建议您先使用的备份功能(ctl -dd)将系统数据进行备份,在修改完存储配置后重启服务器,然后将备份的数据恢复(ctl -rd)。所有数据库相关配置的修改,都需要重启服务器",
 
         "saveStorageConfig": "保存所有存储配置",
         "saveStorageConfigInfo": "本页中的配置在修改后不会立即保存,您必须点击此按钮后,您修改的配置才会被保存",
@@ -1392,7 +1391,7 @@ o2.xApplication.systemconfig.LP = {
         "reloadStorageConfirm": "此操作将重新载入存储配置,未保存的修改将会丢失,您是否确定恢复存储配置?",
 
         "storageType": "存储服务类型",
-        "storageTypeInfo": "O2OA系统内置提供了文件存储服务,您也可以更具需要采用外部扩展存储节点。",
+        "storageTypeInfo": "系统内置提供了文件存储服务,您也可以更具需要采用外部扩展存储节点。",
         "storageTypeData": [
             {"value": 'inner', "label": "inner", "text": "内置存储服务"},
             {"value": 'external', "label": "external", "text": "扩展存储服务"}
@@ -1459,7 +1458,7 @@ o2.xApplication.systemconfig.LP = {
         "removeNodeConfig": "即将删除存储节点“{name}”,此操作可能会影响到系统中已存储的文件,<br>您确定要删除存储节点“{name}”吗?",
 
         "assignNode": "存储节点分配",
-        "assignNodeInfo": "O2OA中存在以下多种类型的文件,您可以给这些文件分配存储节点,一种类型的文件可分配多个节点。",
+        "assignNodeInfo": "存在以下多种类型的文件,您可以给这些文件分配存储节点,一种类型的文件可分配多个节点。",
         "files": {
             "file": "网盘文件(file)",
             "processPlatform": "流程平台文件(processPlatform)",
@@ -1519,7 +1518,7 @@ o2.xApplication.systemconfig.LP = {
             "messageAppLogoNeedPng": "Logo图片必须要png格式!",
             "messagePortocolNotEmpty": "HTTP协议不能为空!",
             "messageHostNotEmpty": "中心服务器域名不能为空!",
-            "messageHostFormatError": "请填写中心服务器域名或IP,如www.o2oa.net,不要带http这样的头!",
+            "messageHostFormatError": "请填写中心服务器域名或IP,如oa.hrbszygs.cn,不要带http这样的头!",
             "messagePortNotEmpty": "中心服务器端口号不能为空!",
             "messageContext_not_empty": "中心服务器上下文不能为空!",
             "messagePortocolMustBeHttpHttps": "HTTP协议只能是 http 或 https !",
@@ -1535,13 +1534,13 @@ o2.xApplication.systemconfig.LP = {
             "formProtocol": "HTTP协议",
             "formProtocolTip": "http / https",
             "formHost": "域名",
-            "formHostTip": "中心服务器域名或IP,如www.o2oa.net",
+            "formHostTip": "中心服务器域名或IP,如oa.hrbszygs.cn",
             "formPort": "端口号",
             "formPortTip": "中心服务器端口号,如20030",
             "formContext": "上下文",
             "formContextTip": "中心服务器上下文,如/x_program_center",
             "formUrlMapping": "代理urlMapping",
-            "formUrlMappingTip": "服务器外网使用代理地址的时候使用,如{ \"demo.o2oa.net:20020\": \"demo.o2oa.net/dev/app\" }",
+            "formUrlMappingTip": "服务器外网使用代理地址的时候使用,如{ \"demo.hrbszygs.cn:20020\": \"demo.hrbszygs.cn/dev/app\" }",
             "formAppVersionName": "app版本名称",
             "formAppVersionNameTip": "app的版本名称,如v1.0.0。这个字段默认不需要填写!",
             "formAppBuildNo": "app版本编号",
@@ -1607,7 +1606,7 @@ o2.xApplication.systemconfig.LP = {
     },
     "_pushConfig": {
         "pushType": "消息推送服务",
-        "pushTypeInfo": "O2OA支持极光推送服务和华为推送服务,您可以根据需要选择推送服务",
+        "pushTypeInfo": "支持极光推送服务和华为推送服务,您可以根据需要选择推送服务",
         "pushTypeData": [
             {"value": "jpush", "label": "jpush", "text": "极光推送服务"},
             {"value": "none", "label": "none", "text": "禁用消息推送"}
@@ -1647,8 +1646,8 @@ o2.xApplication.systemconfig.LP = {
             "andfx": "移动办公消息"
         },
         "consumerInfoTitle": "消息通道配置",
-        "consumerInfo": "O2OA系统提供多种消息通道,您可以在此处设置各类消息需要通过什么方式发送",
-        "consumerInfo2": "更多关于消息配置的内容,请查看:<a href='https://www.o2oa.net/search.html?q=%E6%B6%88%E6%81%AF%E9%85%8D%E7%BD%AE' target='_blank'>消息</a>",
+        "consumerInfo": "系统提供多种消息通道,您可以在此处设置各类消息需要通过什么方式发送",
+        "consumerInfo2": "",
 
         "addConsumer": "添加消息通道",
         "consumerLabel": {
@@ -1675,7 +1674,7 @@ o2.xApplication.systemconfig.LP = {
         },
 
         "messageTypeTitle": "消息类型设置",
-        "messageTypeInfo": "O2OA系统内置的各种事件可以发送消息,您可以在此处设置这些事件需要通过那些通道来发送消息。您也可以增加自定义的消息类型",
+        "messageTypeInfo": "系统内置的各种事件可以发送消息,您可以在此处设置这些事件需要通过那些通道来发送消息。您也可以增加自定义的消息类型",
 
         "noConsumer": "此类型消息未选择发送通道",
         "selectConsumer": "选择通道",

+ 2 - 1
o2web/source/x_component_systemconfig/src/assets/element.css

@@ -5549,7 +5549,8 @@
     font-size: var(--el-collapse-header-font-size);
     font-weight: 500;
     transition: border-bottom-color var(--el-transition-duration);
-    outline: 0
+    outline: 0;
+    width: 100%;
 }
 
 .systemconfig .el-collapse-item__arrow {

+ 0 - 13
o2web/source/x_component_systemconfig/src/components/content/MobileAppConfig/ConnectConfig.vue

@@ -52,19 +52,6 @@
         </div>
       </div>
 
-
-      <div class="item_title">{{lp._appConfig.connectTest}}</div>
-      <div class="item_info" v-html="lp._appConfig.connectTestInfo"></div>
-
-      <div class="item_info">
-        <button class="mainColor_bg" @click="getCheckConnectQrcode">{{lp._appConfig.getQrcode}}</button>
-      </div>
-
-      <div class="item_info" v-if="qrcode">
-        <img :src="'data:image/png;base64,'+qrcode" />
-      </div>
-
-
     </div>
 
 

+ 0 - 327
o2web/source/x_component_systemconfig/src/components/content/MobileToolsConfig/OnlineBuild.vue

@@ -1,329 +1,2 @@
 <template>
-  <!-- app在线打包 -->
-  <div class="systemconfig_area">
-
-    <div class="systemconfig_item_info" v-html="lp._appTools.onlineBuildInfo"></div>
-    <div class="systemconfig_item_info" v-html="lp._appTools.onlineBuildInfo1"></div>
-    <div class="systemconfig_item_info error_tips" v-html="errorTip" v-if="errorTip != ''"></div>
-    <div class="item_el_info"></div>
-    
-    <div class="systemconfig_item_info my_row" v-if="packInfo.id">
-      <label class="item_label">{{lp._appTools.appPack.statusLabel}}</label>
-      <div class="error_tips">{{packStatusText()}}</div>
-      <button class="mainColor_bg" @click="loadAppPackInfo" v-if="isShowRefreshBtn()">{{lp._appTools.appPack.refreshStatusBtnTitle}}</button>
-    </div>
-    <div class="item_el_info"></div>
-
-    <BaseInput :label="lp._appTools.appPack.formAppName" v-model:value="packInfo.appName"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formAppNameTip}}</div>
-
-    <!-- logo -->
-    <div class="systemconfig_item_info my_row">
-      <label class="item_label">{{lp._appTools.appPack.formLogo}}</label>
-      <img class="logo_img" ref="imgLogoNode" :src="formLogoUrl" alt="" v-if="formLogoUrl != ''"/>
-      <button class="mainColor_bg" @click="changeImage" >{{lp._appTools.appPack.formUploadLogoBtnTitle}}</button>
-      <input type="file" ref="uploadLogoNode" @change="uploadImage" style="display: none"/>
-    </div>
-    <div class="item_el_info"></div>
-
-    <BaseSelect :label="lp._appTools.appPack.formProtocol" v-model:value="packInfo.o2ServerProtocol"
-                 :label-style="labelStyle" :options="protocolList"></BaseSelect>
-    <div class="item_el_info">{{lp._appTools.appPack.formProtocolTip}}</div>
-
-    <BaseInput :label="lp._appTools.appPack.formHost" v-model:value="packInfo.o2ServerHost"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formHostTip}}</div>  
-    
-    <BaseInput :label="lp._appTools.appPack.formPort" v-model:value="packInfo.o2ServerPort"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formPortTip}}</div>  
-    
-    <BaseInput :label="lp._appTools.appPack.formUrlMapping" v-model:value="packInfo.urlMapping"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formUrlMappingTip}}</div> 
-
-    <BaseInput :label="lp._appTools.appPack.formAppVersionName" v-model:value="packInfo.versionName"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formAppVersionNameTip}}</div>
-
-    <BaseInput :label="lp._appTools.appPack.formAppBuildNo" v-model:value="packInfo.buildNo"
-                 :label-style="labelStyle"></BaseInput>
-    <div class="item_el_info">{{lp._appTools.appPack.formAppBuildNoTip}}</div> 
-
-
-    <BaseBoolean :label="lp._appTools.appPack.formEnableOuterPackage" v-model="isPackAppIdOuter"
-                  :label-style="labelStyle"></BaseBoolean>
-    <div class="item_el_info">{{lp._appTools.appPack.formEnableOuterPackageTip}}</div>
-
-    <div class="systemconfig_item_info my_row" v-if="packInfo.id">
-      <label class="item_label">{{lp._appTools.appPack.publishStatusLabel}}</label>
-      <div class="error_tips">{{publishStatusText()}}</div>
-      <button class="mainColor_bg" @click="publishApkTolocal" v-if="isShowPublishBtn()">{{lp._appTools.appPack.formDownloadPublishBtnTitle}}</button>
-      <button class="mainColor_bg" @click="downloadApk" v-if="packInfo.appFile && packInfo.appFile.status === 1">{{lp._appTools.appPack.formDownloadApkBtnTitle}}</button>
-    </div>
-    <div class="item_el_info"></div>
-
-     <div style="text-align: center; margin-bottom: 50px">
-        <button class="mainColor_bg" @click="saveForm($event)">{{lp._appTools.appPack.formSubmitBtnTitle}}</button>
-        <!-- <button class="mainColor_bg" @click="reInputForm" v-if="isShowReinputBtn()">{{lp._appTools.appPack.formReinputBtnTitle}}</button>
-        <button class="mainColor_bg" @click="rePack" v-if="packInfo.packStatus == '2'">{{lp._appTools.appPack.formRePackBtnTitle}}</button> -->
-      </div>
-  </div>
-
 </template>
-
-<script setup>
-import {ref} from 'vue';
-import {component, lp, o2} from '@o2oa/component';
-import {doAppPackAction} from "@/util/acrions";
-import {downloadFile} from "@/util/common";
-import BaseSelect from '@/components/item/BaseSelect.vue';
-import BaseInput from '@/components/item/BaseInput.vue';
-import BaseCron from '@/components/item/BaseCron.vue';
-import BaseBoolean from '@/components/item/BaseBoolean.vue';
-
-
-const uploadLogoNode = ref();
-const apppackConfigData = ref({});
-const packInfo = ref({});
-const isPackAppIdOuter = ref(false);
-const errorTip = ref("");
-const formLogoUrl = ref("");
-let downloadAPKUrl = "";
-
-const protocolList = ref({
-  "http":"http",
-  "https":"https"
-});
-
-
-const labelStyle={
-  minWidth: '180px',
-  textAlign: 'right',
-  fontWeight: 'bold'
-}
- 
-
-const load = ()=>{
-  doAppPackAction('connect').then((data)=>{
-    apppackConfigData.value = data;
-    if (data.status === 1001) { // 成功 获取token
-        loadAppPackInfo();
-    } else if (data.status === 1) { // o2云未连接 o2云未启用
-        // component.notice(lp._appTools.appPack.messageO2cloudNotEnable, 'error');
-        errorTip.value = lp._appTools.appPack.messageO2cloudNotEnable;
-    } else if (data.status === 2) { // o2云未登录
-        // component.notice(lp._appTools.appPack.messageO2cloudNotLogin, 'error');
-        errorTip.value = lp._appTools.appPack.messageO2cloudNotLogin;
-    } else if (data.status === 3) { // 打包服务器未认证通过
-        // component.notice(lp._appTools.appPack.messageO2cloudLoginFail, 'error');
-        errorTip.value = lp._appTools.appPack.messageO2cloudLoginFail;
-    }
-  });
-}
-
-const loadAppPackInfo = () => {
-  doAppPackAction('packInfo', apppackConfigData.value.token).then((data)=>{
-    packInfo.value = data;
-    isPackAppIdOuter.value = data.isPackAppIdOuter === '2';
-    formLogoUrl.value = apppackConfigData.value.packServerUrl + data.appLogoPath 
-      + "?token=" + apppackConfigData.value.token;
-    if (data.appFile && data.appFile.id) {
-      var url = o2.Actions.getHost("x_program_center") 
-        + "/x_program_center/jaxrs/apppack/pack/info/file/download/" + data.appFile.id;
-      downloadAPKUrl = o2.filterUrl(url);
-    }
-  });
-}
-
-const changeImage = (e)=>{
-  uploadLogoNode.value.click();
-}
-const uploadImage = (e) => {
-  if (uploadLogoNode.value.files && uploadLogoNode.value.files.length) {
-    const file = uploadLogoNode.value.files[0];
-    var URL = window.URL || window.webkitURL;
-    // 通过 file 生成目标 url
-    var imgURL = URL.createObjectURL(file);
-    formLogoUrl.value = imgURL;
-  }
-}
-
-const packStatusText = () => {
-  if (packInfo.value.packStatus === "0") {
-    return lp._appTools.appPack.statusOrderInline;
-  } else if (packInfo.value.packStatus === "1") {
-    return lp._appTools.appPack.statusPacking;
-  } else if (packInfo.value.packStatus === "2") {
-    return lp._appTools.appPack.statusPackEnd;
-  } 
-  return lp._appTools.appPack.statusPackError;
-}
-const publishStatusText = () => {
-  if (packInfo.value.appFile) {
-    if (packInfo.value.appFile.status === 0) {
-      return lp._appTools.appPack.publishStatusDoing;
-    } else if (packInfo.value.appFile.status === 1) {
-      return lp._appTools.appPack.publishStatusCompleted;
-    } else if (packInfo.value.appFile.status === 2) {
-      return lp._appTools.appPack.publishStatusFail;
-    }
-  }
-  return lp._appTools.appPack.publishStatusNone;
-}
-
-const isShowRefreshBtn = () => {
-  return (packInfo.value.packStatus === "0" || packInfo.value.packStatus === "1");
-}
-
-const isShowReinputBtn = () => {
-  return packInfo.value.id && packInfo.value.packStatus !== "0" && packInfo.value.packStatus !== "1";
-}
-
-const isShowPublishBtn = () => {
-  if (packInfo.value.appFile) {
-    if (packInfo.value.appFile.status === 0 || packInfo.value.appFile.status === 1) {
-      return false;
-    }
-  }
-  return true;
-}
-
-const saveForm = (e) => {
-  if (packInfo.value.id && (packInfo.value.packStatus === "0" || packInfo.value.packStatus === "1")) {
-    component.notice(lp._appTools.appPack.messageSubmitNotAtStatus, 'error');
-    return;
-  }
-  if (!packInfo.value.appName || packInfo.value.appName === "") {
-    component.notice(lp._appTools.appPack.messageAppnameNotEmpty, "error");
-    return;
-  }
-  if (packInfo.value.appName.length > 6) {
-    component.notice(lp._appTools.appPack.messageAppnameLenMax6, "error");
-    return;
-  }
-  if (uploadLogoNode.value.files && uploadLogoNode.value.files.length) {
-    const file = uploadLogoNode.value.files[0];
-    const fileExt = file.name.substring(file.name.lastIndexOf("."));
-    if (fileExt.toLowerCase() !== ".png") {
-        component.notice(lp._appTools.appPack.messageAppLogoNeedPng, "error");
-        return;
-    }
-  } else {
-    component.notice(lp._appTools.appPack.messageAppLogoNotEmpty, "error");
-    return;
-  }
-  if (!packInfo.value.o2ServerProtocol || packInfo.value.o2ServerProtocol === "") {
-    component.notice(lp._appTools.appPack.messagePortocolNotEmpty, "error");
-    return;
-  }
-  if (packInfo.value.o2ServerProtocol !== "http" && packInfo.value.o2ServerProtocol !== "https") {
-    component.notice(lp._appTools.appPack.messagePortocolMustBeHttpHttps, "error");
-    return;
-  }
-  if (!packInfo.value.o2ServerHost || packInfo.value.o2ServerHost === "") {
-    component.notice(lp._appTools.appPack.messageHostNotEmpty, "error");
-    return;
-  }
-  if (packInfo.value.o2ServerHost.startsWith("http://") || packInfo.value.o2ServerHost.startsWith("https://")) {
-      component.notice(lp._appTools.appPack.messageHostFormatError, "error");
-    return;
-  }
-  if (packInfo.value.o2ServerHost.indexOf(":") > 0) {
-      component.notice(lp._appTools.appPack.messageHostFormatError, "error");
-    return;
-  }
-  if (!packInfo.value.o2ServerPort || packInfo.value.o2ServerPort === "") {
-    component.notice(lp._appTools.appPack.messagePortNotEmpty, "error");
-    return;
-  }
-  component.confirm("warn", e, lp._appTools.appPack.messageAlertTitle, {html: lp._appTools.appPack.messageAlertSubmit}, 560, 230, function(){
-    var formData = new FormData();
-    const file = uploadLogoNode.value.files[0];
-    formData.append('file', file);
-    formData.append('fileName', file.name);
-    formData.append('appName', packInfo.value.appName  || '');
-    formData.append('o2ServerProtocol', packInfo.value.o2ServerProtocol  || '');
-    formData.append('o2ServerHost', packInfo.value.o2ServerHost  || '');
-    formData.append('o2ServerPort', packInfo.value.o2ServerPort  || '');
-    formData.append('o2ServerContext', '/x_program_center');
-    formData.append('appVersionName', packInfo.value.versionName || '');
-    formData.append('appBuildNo', packInfo.value.buildNo || '');
-    formData.append('isPackAppIdOuter', isPackAppIdOuter.value ? "2" : "1");
-    formData.append('deleteHuawei', "1");
-    formData.append('urlMapping', packInfo.value.urlMapping || '');
-    formData.append('token', apppackConfigData.value.token  || '');
-    o2.Actions.load('x_program_center').AppPackAction['androidPackStart'](formData, "{}", ()=>{
-      loadAppPackInfo();
-    });
-    this.close();
-  }, function(){
-     
-    this.close();
-  }, null, component.content);
-}
-const reInputForm = () => {
-
-}
-const rePack = () => {
-
-}
-const publishApkTolocal = () => {
-  if (packInfo.value.id && packInfo.value.packStatus === "2") {
-    var url = o2.Actions.getHost("");
-    var data = {
-        'token': apppackConfigData.value.token,
-        'apkPath': packInfo.value.apkPath,
-        'packInfoId': packInfo.value.id,
-        'appVersionName': packInfo.value.versionName,
-        'appVersionNo': packInfo.value.buildNo,
-        'isPackAppIdOuter': packInfo.value.isPackAppIdOuter,
-        'webUrl': url,
-    };
-    doAppPackAction('publishApk', data).then((data)=>{
-      loadAppPackInfo();
-    });
-
-  }
-}
-const downloadApk = () => {
-  downloadFile(downloadAPKUrl); 
-}
-
-load();
-
-</script>
-
-<style scoped>
-.error_tips {
-  color: #fb4747;
-  font-weight: bold;
-}
-.my_row {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-}
-.logo_img {
-  width: 72px;
-  height: 72px;
-}
-.item_label {
-  min-width: 180px;
-  text-align: right;
-  font-weight: bold;
-  color: #333333;
-  margin-right: 20px
-}
-.item_el_info{
-  margin-top: -5px;
-  margin-bottom: 10px;
-  margin-left: 195px;
-  padding: 0 30px;
-  overflow: hidden;
-  font-size: 14px;
-  color: rgb(153, 153, 153);
-  clear: both;
-}
-</style>

+ 0 - 248
o2web/source/x_component_systemconfig/src/components/content/ServerCloudConfig.vue

@@ -1,250 +1,2 @@
 <template>
-  <div class="systemconfig_area">
-    <div class="systemconfig_title">{{ lp.cloudConfig }}</div>
-    <div class="systemconfig_item_info" v-html="lp._cloudConfig.info"></div>
-
-    <div class="item_info">
-      <div class="item_connect">
-        <div class="item_connect_img" :class="{item_connect_img_connected: connected, item_connect_img_disconnect: !connected}"></div>
-        <div class="item_connect_text">{{connected ? lp._cloudConfig.connected : lp._cloudConfig.disconnect}}</div>
-      </div>
-
-      <div class="item_connect">
-        <div class="item_connect_img" :class="{item_connect_img_connected: validated, item_connect_img_disconnect: !validated}"></div>
-        <div class="item_connect_text">{{validated ? lp._cloudConfig.validated : lp._cloudConfig.notValidated}}</div>
-        <button class="mainColor_bg" @click="checkConnect">{{lp._cloudConfig.recheck}}</button>
-      </div>
-    </div>
-
-    <div class="item_info" v-if="!connected">
-      <div class="item_connect_info mainColor_color">{{lp._cloudConfig.disconnectInfo}}</div>
-    </div>
-
-    <div class="item_info" v-if="connected && !validated">
-      <div class="item_connect_info mainColor_color">{{lp._cloudConfig.notValidatedInfo}}</div>
-      <div class="item_line">
-        <label>{{lp._cloudConfig.loginInfo}}</label>
-        <button class="mainColor_bg" @click="openLoginCollect()">{{lp._cloudConfig.loginButtonText}}</button>
-      </div>
-      <div class="item_line">
-        <label>{{lp._cloudConfig.registerInfo}}</label>
-        <button class="mainColor_bg" @click="openRegisterCollect">{{lp._cloudConfig.registerButtonText}}</button>
-      </div>
-      <div class="item_line">
-        <label>{{lp._cloudConfig.forgotPasswordInfo}}</label>
-        <button class="mainColor_bg" @click="openResetPasswordCollect">{{lp._cloudConfig.forgotPasswordButtonText}}</button>
-      </div>
-    </div>
-
-    <div class="item_info" v-if="connected && validated">
-      <div class="item_connect_info mainColor_color" v-html="lp._cloudConfig.validatedInfo.replace('{name}', collectName)"></div>
-
-      <div class="item_line">
-        <button class="mainColor_bg" @click="logoutCollect">{{lp._cloudConfig.logoutCollect}}</button>
-        <button class="mainColor_bg" @click="openResetPasswordCollect()">{{lp._cloudConfig.modifyCollectPassword}}</button>
-        <button class="mainColor_bg" @click="openDeleteCollect()">{{lp._cloudConfig.deleteCollect}}</button>
-        <button class="mainColor_bg" @click="openLoginCollect()">{{lp._cloudConfig.reloginCollect}}</button>
-      </div>
-    </div>
-
-    <div ref="loginNode" style="display: none">
-      <LoginCloudDlg v-if="openLogin" @login="()=>{closeLoginDlg(); checkConnect(); }" :collect-data="collectData"></LoginCloudDlg>
-    </div>
-
-    <div ref="registerNode" style="display: none">
-      <RegisterCloudDlg v-if="openRegister" @register="()=>{closeRegisterDlg(); checkConnect(); }"></RegisterCloudDlg>
-    </div>
-
-    <div ref="deleteNode" style="display: none">
-      <DeleteCloudDlg v-if="openDelete" @deleted="()=>{closeDeleteDlg(); checkConnect(); }" :collect-data="collectData"></DeleteCloudDlg>
-    </div>
-
-    <div ref="resetPasswordNode" style="display: none">
-      <ResetPasswordCloudDlg v-if="openResetPassword" @reset="()=>{closeResetPasswordDlg(); checkConnect(); }" :collect-name="collectData.name"></ResetPasswordCloudDlg>
-    </div>
-
-  </div>
-
-
 </template>
-
-<script setup>
-import {ref} from 'vue';
-import {component, lp, o2} from '@o2oa/component';
-import {connectCollect, getConfigData, validateCollect, disconnectCollect} from "@/util/acrions";
-import LoginCloudDlg from '@/components/content/ServerCloudConfig/LoginCloudDlg.vue';
-import RegisterCloudDlg from '@/components/content/ServerCloudConfig/RegisterCloudDlg.vue';
-import DeleteCloudDlg from '@/components/content/ServerCloudConfig/DeleteCloudDlg.vue';
-import ResetPasswordCloudDlg from '@/components/content/ServerCloudConfig/ResetPasswordCloudDlg.vue';
-
-
-const connected = ref(false);
-const validated = ref(false);
-
-const loginNode = ref();
-const openLogin = ref(false);
-const registerNode = ref();
-const openRegister = ref(false);
-const deleteNode = ref();
-const openDelete = ref(false);
-const resetPasswordNode = ref();
-const openResetPassword = ref(false);
-
-const loginCloudDlgRef = ref();
-// const loginCloudDlgRef = ref();
-// const loginCloudDlgRef = ref();
-// const loginCloudDlgRef = ref();
-
-const collectData = ref(null);
-const collectName = ref('');
-
-const openDlg = (content, width, height, title, buttonList)=>{
-  const container = component.content.getElement('.systemconfig');
-  content.show();
-  return o2.DL.open({
-    title,
-    container,
-    maskNode: container,
-    width,
-    height,
-    content,
-    onQueryClose: () => {
-      content.hide();
-      content.inject(container);
-      checkCollectData();
-    },
-    buttonList
-  });
-}
-
-
-
-let loginDlg;
-const openLoginCollect = ()=>{
-  openLogin.value = true;
-  loginDlg = openDlg(loginNode.value, 600, 370, lp._cloudConfig.loginButtonText);
-}
-const closeLoginDlg = ()=>{
-  if (loginDlg) loginDlg.close();
-  loginDlg = null;
-}
-
-let registerDlg;
-const openRegisterCollect = ()=>{
-  openRegister.value = true;
-  registerDlg = openDlg(registerNode.value, 600, 620, lp._cloudConfig.registerCollect);
-}
-const closeRegisterDlg = ()=>{
-  if (registerDlg) registerDlg.close();
-  registerDlg = null;
-}
-
-let deleteDlg;
-const openDeleteCollect = ()=>{
-  openDelete.value = true;
-  deleteDlg = openDlg(deleteNode.value, 600, 450, lp._cloudConfig.deleteCollectUnit);
-}
-const closeDeleteDlg = ()=>{
-  if (deleteDlg) deleteDlg.close();
-  deleteDlg = null;
-}
-
-let resetPasswordDlg;
-const openResetPasswordCollect = ()=>{
-  openResetPassword.value = true;
-  resetPasswordDlg = openDlg(resetPasswordNode.value, 600, 560, lp._cloudConfig.resetPasswordCollect);
-}
-const closeResetPasswordDlg = ()=>{
-  if (resetPasswordDlg) resetPasswordDlg.close();
-  resetPasswordDlg = null;
-}
-
-
-const logoutCollect = ()=>{
-  disconnectCollect();
-  checkConnect();
-}
-
-const checkCollectData = ()=>{
-  getConfigData('collect', true).then((data)=>{
-    collectData.value = data;
-    collectName.value = data.name;
-  });
-};
-const checkConnect = ()=>{
-  connected.value = false;
-  validated.value = false;
-  connectCollect().then((data) => {
-    connected.value = data.value;
-  });
-  validateCollect().then((data) => {
-    validated.value = data.value;
-  });
-  checkCollectData();
-}
-checkConnect();
-
-</script>
-
-<style scoped>
-.item_connect{
-  height: 80px;
-  padding: 0 20px;
-  width: 660px;
-  overflow: hidden;
-  background: rgb(247, 247, 247);
-  border-radius: 20px;
-  margin-top: 20px;
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-}
-.item_connect_info{
-  margin: 20px 0 30px 0;
-  font-size: 16px
-}
-.item_connect_img{
-  width: 228px;
-  height: 80px;
-  float: left;
-  background-position: 50% 50%;
-  background-size: contain;
-  background-repeat: no-repeat;
-}
-.item_connect_img_connected {
-  background-image: url("../../assets/pic_connected.png");
-}
-.item_connect_img_disconnect {
-  background-image: url("../../assets/pic_disconnect.png");
-}
-.item_connect_text{
-  padding-left: 30px;
-  height: 80px;
-  line-height: 80px;
-  color: rgb(102, 102, 102);
-  font-size: 18px;
-}
-.item_line{
-  margin: 20px 0;
-}
-.item_dlg_link{
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  height: 30px;
-  padding: 0 10px;
-}
-.item_dlg_link_text{
-  cursor: pointer;
-}
-.item_dlg_link_text:hover{
-  text-decoration: underline;
-}
-.item_login_error{
-  padding: 0;
-  display: flex;
-  justify-content: space-around;
-  font-size: 16px;
-  color: red;
-}
-</style>

+ 2 - 25
o2web/source/x_desktop/appDownload.html

@@ -172,7 +172,7 @@
         src="./img/icon_logo150.png"
         class="app_logo"
       />
-      <h3 class="app_title">O2OA</h3>
+      <h3 class="app_title">协同办公</h3>
       <div class="app_line"></div>
 
       <!-- 下载页面内容 -->
@@ -191,16 +191,6 @@
           </a>
         </div>
       </div>
-      
-      <!-- 下载页面底部 -->
-      <!-- <div class="app_footer">
-        <div class="app_footer_name">浙江兰德纵横网络技术股份有限公司</div>
-        <div class="app_footer_links">
-          <div class="app_footer_link"><a href="https://www.o2oa.net/secret.html" target="_blank">隐私协议</a></div>
-          <div style="margin:10px;color: #999999;"> | </div>
-          <div class="app_footer_link" @click="clickPermission()">用户权限</div>
-        </div>
-      </div> -->
  
       <div
         class="mask"
@@ -250,21 +240,8 @@
               })
           };
             
-          // 获取最新版本apk数据
-          var _loadLastPublishAPK = function() {
-              o2.Actions.load("x_program_center").AppPackAnonymousAction.androidPackLastAPk(function(json) {
-                if (json && json.data && json.data.id) {
-                  $("android_version").set("text", "当前最新版本:"+json.data.appVersionName);
-                  var downloadUrl = o2.Actions.getHost("x_program_center") + "/x_program_center/jaxrs/apppackanony/pack/info/file/download/" + json.data.id;
-                  downloadUrl = o2.filterUrl(downloadUrl);
-                  $("android_download_link").set("href", downloadUrl);
-                } else {
-                  $("android_box").setStyles({ display: "none" });
-                }
-              }.bind(this));
-          };
+
           checkUserAgent();
-          _loadLastPublishAPK();
 
         })(layout);
     });

BIN
o2web/source/x_init/public/icon_gitcode.png


BIN
o2web/source/x_init/public/icon_gitee.png


BIN
o2web/source/x_init/public/icon_github.png


BIN
o2web/source/x_init/public/icon_gitlab.png


BIN
o2web/source/x_init/public/logo.png


BIN
o2web/source/x_init/public/pic_code_guwen.png


BIN
o2web/source/x_init/public/pic_code_weibo.png


BIN
o2web/source/x_init/public/pic_code_weixin.png


+ 1 - 57
o2web/source/x_init/src/content/footer.html

@@ -1,57 +1 @@
-<footer oo-element="footerNode">
-    <div>
-        <div class="link">
-            <ul>
-                <li><a href="https://www.o2oa.net/handbook.html" target="_blank">产品文档</a></li>
-                <li><a href="https://www.o2oa.net/develop.html" target="_blank">开发社区</a></li>
-                <li><a href="https://www.o2oa.net/forum/" target="_blank">藕粉社区</a></li>
-                <li><a href="https://www.o2oa.net/market/" target="_blank">应用市场</a></li>
-            </ul>
-            <div>咨询电话:<span style="color: #fff904; font-size:1.2em">400-888-0545 0571-88480535</span></div>
-            <div>O2OA开发平台官网:<a href="https://www.o2oa.net/" target="_blank">https://www.o2oa.net</a></div>
-        </div>
-        <div class="code">
-            <div class="code_item">
-                <div><img alt="官方微博" src="./pic_code_weibo.png"></div>
-                <div>官方微博</div>
-            </div>
-            <div class="code_item">
-                <div><img alt="官方微信" src="./pic_code_weixin.png"></div>
-                <div>官方微信</div>
-            </div>
-            <div class="code_item">
-                <div><img alt="售前顾问" src="./pic_code_guwen.png"></div>
-                <div>售前顾问</div>
-            </div>
-        </div>
-        <div class="source">
-            <div class="source_code">
-                <div class="source_item">
-                    <a href="https://github.com/o2oa/o2oa" target="_blank">
-                        <div><img class="icon_github" alt="GitHub" src="./icon_github.png"></div>
-                        <div>GitHub</div>
-                    </a>
-                </div>
-                <div class="source_item">
-                    <a href="https://gitee.com/o2oa/O2OA" target="_blank">
-                        <div><img alt="gitee" src="./icon_gitee.png"></div>
-                        <div>gitee</div>
-                    </a>
-                </div>
-                <div class="source_item">
-                    <a href="https://gitlab.com/o2oa/o2oa" target="_blank">
-                        <div><img alt="GitLab" src="./icon_gitlab.png"></div>
-                        <div>GitLab</div>
-                    </a>
-                </div>
-                <div class="source_item">
-                    <a href="https://gitcode.net/O2OA/o2oa" target="_blank">
-                        <div><img alt="GitCode" src="./icon_gitcode.png"></div>
-                        <div>GitCode</div>
-                    </a>
-                </div>
-            </div>
-
-        </div>
-    </div>
-</footer>
+<footer oo-element="footerNode"></footer>

+ 1 - 3
o2web/source/x_init/src/content/header.html

@@ -1,3 +1 @@
-<header oo-element="headerNode">
-    <img class="logo" src="./logo.png" alt="logo"/>
-</header>
+<header oo-element="headerNode"></header>

+ 3 - 3
o2web/source/x_init/src/content/init/execute.js

@@ -12,10 +12,10 @@ const template = `
         
         <div oo-if="$.status==='waiting'" class="info">等待服务器执行初始化 ... </div>
         <div oo-if="$.status==='running'" class="info">服务器初始化正在执行中 ... </div>
-        <div oo-if="$.status==='starting'" class="info">正在启动O2OA(翱途)服务器 ... </div>
+        <div oo-if="$.status==='starting'" class="info">正在启动服务器 ... </div>
         
-        <div oo-if="$.status==='success'" class="info">服务器初始化执行成功,即将启动O2OA(翱途)服务器!</div>
-        <div oo-if="$.status==='started'" class="info">服务器初始化执行成功,O2OA(翱途)服务器已启动!</div>
+        <div oo-if="$.status==='success'" class="info">服务器初始化执行成功,即将启动服务器!</div>
+        <div oo-if="$.status==='started'" class="info">服务器初始化执行成功,服务器已启动!</div>
         <div oo-if="$.status==='started'" class="info"><oo-button style="margin-left:0" @click="gotoIndex">进入系统登录页面</oo-button></div>
         
         <div oo-if="$.status==='failure' || $.status==='stop'" class="icon ooicon-cancel"></div>

+ 1 - 1
o2web/source/x_init/src/content/main.html

@@ -1,7 +1,7 @@
 <main>
     <div class="main_area">
         <div class="title" oo-element="titleNode">
-            <div class="title1">欢迎使用O2OA(翱途)企业应用开发平台</div>
+            <div class="title1">欢迎使用企业应用办公平台</div>
             <div class="title2">首次启动服务器需要进行服务器初始化配置</div>
         </div>
         <div style="height: 7rem"></div>

+ 2 - 5
o2web/source/x_init/src/content/main.js

@@ -28,7 +28,7 @@ export default component({
                     icon: 'database',
                     title: '设置数据库',
                     textList: [
-                        'O2OA(翱途)平台内置H2数据库,它是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境,并不适合用作正式环境。',
+                        '平台内置H2数据库,它是一个内嵌式的内存数据库,适合用于开发环境、功能演示环境,并不适合用作正式环境。',
                         '如果作为正式环境使用,建议您使用拥有更高性能并且更加稳定的商用级别数据库。如Mysql8, Oracle12C, SQLServer 2012等',
                         '您可以在此初始化服务器页面选择使用内置H2数据库,或外部数据库。',
                         '更多数据库配置选项可在服务器初始化后,进入“系统配置”应用进行设置'
@@ -39,10 +39,7 @@ export default component({
                     title: '初始化数据',
                     textList: [
                         '您可以将从其它服务器导出的数据包,在此页面中导入,以便于快速恢复或搭建应用。',
-                        '在您已有服务器进行导出操作(ctl -dd 命令,或在“系统配置”的“数据库配置”中操作),会在服务器目录“o2server/local/dump”下得到“dumpData_时间”的文件夹,将其打包为zip文件后,可在服务器初始化时导入所有数据',
-                        '关于数据的导出可查看:',
-                        '<a href="https://www.o2oa.net/cms/serverdeployment/256.html" style="color: #ffffff; text-indent: 0em; display: block;" target="_blank">《数据导出导入与系统数据备份》</a>',
-                        '<a href="https://www.o2oa.net/cms/videoproduct/455.html" style="color: #ffffff; text-indent: 0em; display: block;" target="_blank">《系统配置-服务配置-数据库配置》</a>'
+                        '在您已有服务器进行导出操作(ctl -dd 命令,或在“系统配置”的“数据库配置”中操作),会在服务器目录“local/dump”下得到“dumpData_时间”的文件夹,将其打包为zip文件后,可在服务器初始化时导入所有数据'
                     ]
                 },
                 {