Ldc
2024-04-10 a6fc2d55fc81302a900a702e70f2a18ea550eded
Merge remote-tracking branch 'origin/master'
已修改14个文件
已删除1个文件
已添加106个文件
1702 ■■■■■ 文件已修改
Bin/lib/client/flatlaf-2.3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/icegridgui.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/jgoodies-common-1.8.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/jgoodies-looks-2.5.3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/jgraph.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/jgraphx-3.1.0.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/nativeskin.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/pinyin4j-2.5.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/plt-client.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/plt-clientbase.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/poi-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/poi-ooxml-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/poi-ooxml-schemas-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/poi-scratchpad-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/protege35.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/skinlf.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/swingx-1.6.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/swixml.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/uitheme-1.3.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/commons-lang3-3.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/dom4j-1.6.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/fastjson-1.2.83.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/freemarker.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/icegridgui.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/junit-4.8.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/log4j-api-2.12.4.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/log4j-core-2.12.4.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/mail.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/plt-common.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/common/plt-slice.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/BOFService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/CacheService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/FrameService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/OMDService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/OQService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/ServiceBase.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/UIService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/VciServiceMain.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/VolumeService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/WFPlugins.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/service/WFService.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/IKAnalyzer2012FF_u1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/XmlSchema-1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/activation.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/antlr-2.7.6.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/avalon-framework-4.1.5.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/axis-ant.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/axis.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/bsf-2.3.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/bsh.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/c3p0-0.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-codec-1.3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-collections-3.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-dbcp-1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-discovery-0.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-fileupload-1.2.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-httpclient-3.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-io-2.0.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-logging-1.0.4.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-net-1.4.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/commons-pool2-2.6.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/geronimo-stax-api_1.0_spec-1.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/guava-20.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/hibernate-jpa-2.0-api-1.0.1.Final.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/hibernate3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/inforbroker-core-5.1.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/javassist-3.12.0.GA.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jaxen-1.1-beta-9.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jaxrpc.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jbpm-4.3.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jcalendar-1.3.3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jcommon-1.0.17.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jdom-1.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jdsl.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jedis-2.9.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jee-management-1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jfreechart-1.0.14.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jms-1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/jta-1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/juel-engine.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/juel-impl.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/juel.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/livetribe-jsr223.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/logkit-1.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/ognl-2.6.11.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/ojdbc8.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/picocontainer-1.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/plugin.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/poi-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/poi-ooxml-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/poi-ooxml-schemas-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/poi-scratchpad-3.9-20121203.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/portalcustom.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/proxool-0.8.3.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/quartz-all-1.8.6.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/rsyntax.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/saaj.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/sapjco.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/slf4j-api-1.7.14.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/slf4j-jdk14-1.7.14.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/xml-apis.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/xmlbeans-2.3.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/xmlsec-1.3.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/thrid/xstream-1.3.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/actions/AddAction.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/actions/BaseAction.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/page/index/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/page/index/layout.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/views/base/UIContentViewer.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js 1469 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/DateUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/Func.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Bin/lib/client/flatlaf-2.3.jar
Binary files differ
Bin/lib/client/icegridgui.jar
Binary files differ
Bin/lib/client/jgoodies-common-1.8.1.jar
Binary files differ
Bin/lib/client/jgoodies-looks-2.5.3.jar
Binary files differ
Bin/lib/client/jgraph.jar
Binary files differ
Bin/lib/client/jgraphx-3.1.0.0.jar
Binary files differ
Bin/lib/client/nativeskin.jar
Binary files differ
Bin/lib/client/pinyin4j-2.5.0.jar
Binary files differ
Bin/lib/client/plt-client.jar
Binary files differ
Bin/lib/client/plt-clientbase.jar
Binary files differ
Bin/lib/client/poi-3.9-20121203.jar
Binary files differ
Bin/lib/client/poi-ooxml-3.9-20121203.jar
Binary files differ
Bin/lib/client/poi-ooxml-schemas-3.9-20121203.jar
Binary files differ
Bin/lib/client/poi-scratchpad-3.9-20121203.jar
Binary files differ
Bin/lib/client/protege35.jar
Binary files differ
Bin/lib/client/skinlf.jar
Binary files differ
Bin/lib/client/swingx-1.6.1.jar
Binary files differ
Bin/lib/client/swixml.jar
Binary files differ
Bin/lib/client/uitheme-1.3.1.jar
Binary files differ
Bin/lib/common/commons-lang3-3.1.jar
Binary files differ
Bin/lib/common/dom4j-1.6.1.jar
Binary files differ
Bin/lib/common/fastjson-1.2.83.jar
Binary files differ
Bin/lib/common/freemarker.jar
Binary files differ
Bin/lib/common/icegridgui.jar
Binary files differ
Bin/lib/common/junit-4.8.jar
Binary files differ
Bin/lib/common/log4j-api-2.12.4.jar
Binary files differ
Bin/lib/common/log4j-core-2.12.4.jar
Binary files differ
Bin/lib/common/mail.jar
Binary files differ
Bin/lib/common/plt-common.jar
Binary files differ
Bin/lib/common/plt-slice.jar
Binary files differ
Bin/lib/service/BOFService.jar
Binary files differ
Bin/lib/service/CacheService.jar
Binary files differ
Bin/lib/service/FrameService.jar
Binary files differ
Bin/lib/service/OMDService.jar
Binary files differ
Bin/lib/service/OQService.jar
Binary files differ
Bin/lib/service/ServiceBase.jar
Binary files differ
Bin/lib/service/UIService.jar
Binary files differ
Bin/lib/service/VciServiceMain.jar
Binary files differ
Bin/lib/service/VolumeService.jar
Binary files differ
Bin/lib/service/WFPlugins.jar
Binary files differ
Bin/lib/service/WFService.jar
Binary files differ
Bin/lib/thrid/IKAnalyzer2012FF_u1.jar
Binary files differ
Bin/lib/thrid/XmlSchema-1.1.jar
Binary files differ
Bin/lib/thrid/activation.jar
Binary files differ
Bin/lib/thrid/antlr-2.7.6.jar
Binary files differ
Bin/lib/thrid/avalon-framework-4.1.5.jar
Binary files differ
Bin/lib/thrid/axis-ant.jar
Binary files differ
Bin/lib/thrid/axis.jar
Binary files differ
Bin/lib/thrid/bsf-2.3.0.jar
Binary files differ
Bin/lib/thrid/bsh.jar
Binary files differ
Bin/lib/thrid/c3p0-0.9.1.jar
Binary files differ
Bin/lib/thrid/commons-codec-1.3.jar
Binary files differ
Bin/lib/thrid/commons-collections-3.1.jar
Binary files differ
Bin/lib/thrid/commons-dbcp-1.1.jar
Binary files differ
Bin/lib/thrid/commons-discovery-0.2.jar
Binary files differ
Bin/lib/thrid/commons-fileupload-1.2.2.jar
Binary files differ
Bin/lib/thrid/commons-httpclient-3.0.jar
Binary files differ
Bin/lib/thrid/commons-io-2.0.1.jar
Binary files differ
Bin/lib/thrid/commons-logging-1.0.4.jar
Binary files differ
Bin/lib/thrid/commons-net-1.4.1.jar
Binary files differ
Bin/lib/thrid/commons-pool2-2.6.2.jar
Binary files differ
Bin/lib/thrid/geronimo-stax-api_1.0_spec-1.0.jar
Binary files differ
Bin/lib/thrid/guava-20.0.jar
Binary files differ
Bin/lib/thrid/hibernate-jpa-2.0-api-1.0.1.Final.jar
Binary files differ
Bin/lib/thrid/hibernate3.jar
Binary files differ
Bin/lib/thrid/inforbroker-core-5.1.0.jar
Binary files differ
Bin/lib/thrid/javassist-3.12.0.GA.jar
Binary files differ
Bin/lib/thrid/jaxen-1.1-beta-9.jar
Binary files differ
Bin/lib/thrid/jaxrpc.jar
Binary files differ
Bin/lib/thrid/jbpm-4.3.2.jar
Binary files differ
Bin/lib/thrid/jcalendar-1.3.3.jar
Binary files differ
Bin/lib/thrid/jcommon-1.0.17.jar
Binary files differ
Bin/lib/thrid/jdom-1.0.jar
Binary files differ
Bin/lib/thrid/jdsl.jar
Binary files differ
Bin/lib/thrid/jedis-2.9.0.jar
Binary files differ
Bin/lib/thrid/jee-management-1.1.jar
Binary files differ
Bin/lib/thrid/jfreechart-1.0.14.jar
Binary files differ
Bin/lib/thrid/jms-1.1.jar
Binary files differ
Bin/lib/thrid/jta-1.1.jar
Binary files differ
Bin/lib/thrid/juel-engine.jar
Binary files differ
Bin/lib/thrid/juel-impl.jar
Binary files differ
Bin/lib/thrid/juel.jar
Binary files differ
Bin/lib/thrid/livetribe-jsr223.jar
Binary files differ
Bin/lib/thrid/logkit-1.2.jar
Binary files differ
Bin/lib/thrid/ognl-2.6.11.jar
Binary files differ
Bin/lib/thrid/ojdbc8.jar
Binary files differ
Bin/lib/thrid/picocontainer-1.2.jar
Binary files differ
Bin/lib/thrid/plugin.jar
Binary files differ
Bin/lib/thrid/poi-3.9-20121203.jar
Binary files differ
Bin/lib/thrid/poi-ooxml-3.9-20121203.jar
Binary files differ
Bin/lib/thrid/poi-ooxml-schemas-3.9-20121203.jar
Binary files differ
Bin/lib/thrid/poi-scratchpad-3.9-20121203.jar
Binary files differ
Bin/lib/thrid/portalcustom.jar
Binary files differ
Bin/lib/thrid/proxool-0.8.3.jar
Binary files differ
Bin/lib/thrid/quartz-all-1.8.6.jar
Binary files differ
Bin/lib/thrid/rsyntax.jar
Binary files differ
Bin/lib/thrid/saaj.jar
Binary files differ
Bin/lib/thrid/sapjco.jar
Binary files differ
Bin/lib/thrid/slf4j-api-1.7.14.jar
Binary files differ
Bin/lib/thrid/slf4j-jdk14-1.7.14.jar
Binary files differ
Bin/lib/thrid/xml-apis.jar
Binary files differ
Bin/lib/thrid/xmlbeans-2.3.0.jar
Binary files differ
Bin/lib/thrid/xmlsec-1.3.0.jar
Binary files differ
Bin/lib/thrid/xstream-1.3.1.jar
Binary files differ
Source/ProjectWeb/src/actions/AddAction.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
/**
 * æŒ‰é’®å¤„理 ä¸šåŠ¡ç±»åž‹æ–°å¢ž
 */
import BaseAction from './BaseAction';
Source/ProjectWeb/src/actions/BaseAction.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
import {validatenull} from "@/util/validate";
import {findArray} from "@/util/util";
/**
 * æŒ‰é’®çš„基础服务
 */
/**
 * æ›¿æ¢æ–‡æœ¬ä¸­çš„${xxx}
 * @param text æ–‡æœ¬
 * @param dataStore é€‰æ‹©çš„æ•°æ®
 * @param sourceData æ¥æºæ•°æ®
 * @returns æ›¿æ¢åŽçš„值,字符串
 */
export const replaceFreeMarker = (text,dataStore,sourceData) => {
  //替换表达式
  if (!sourceData) {
    sourceData = {};
  }
  if (!dataStore) {
    dataStore = [];
  }
  let replaceData = dataStore.length > 0 ? dataStore[0] : {};
  if (text && text.indexOf("${") > -1 && text.indexOf("}")) {
    //js只能使用${xxx}这种的方式
    let reg = "root.${";
    while (text.indexOf(reg) > -1) {
      let temp = text.substring(0, text.indexOf(reg));
      let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
      let end = text.substring(text.indexOf("}") + 1);
      field = replaceData[field] || sourceData[field] || '';
      text = temp + field + end;
    }
    reg = "sourceData.${";
    while (text.indexOf(reg) > -1) {
      let temp = text.substring(0, text.indexOf(reg));
      let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
      let end = text.substring(text.indexOf("}") + 1);
      field = replaceData[field] || sourceData[field] || '';
      text = temp + field + end;
    }
    reg = "${";
    while (text.indexOf(reg) > -1) {
      let temp = text.substring(0, text.indexOf(reg));
      let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
      let end = text.substring(text.indexOf("}") + 1);
      field = replaceData[field] || sourceData[field] || '';
      text = temp + field + end;
    }
  }
  return text;
};
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -39,6 +39,17 @@
        {{ item.name }}
      </el-button>
    </div>
    <div v-else-if="type === 'tree'" class="tree-buttons">
      <el-button v-for="item in basicButtonList"
                 :key="item.oid"
                 :icon="item.paramVOS.webUiButtonIcon"
                 :type="(item.paramVOS.webUiButtonType !== 'text' ? item.paramVOS.webUiButtonType : 'primary') || 'primary'"
                 plain
                 size="small"
                 @click="buttonClick(item)">
        {{ item.name }}
      </el-button>
    </div>
  </div>
</template>
@@ -240,7 +251,7 @@
    basicButtonList() {
      const basicColumn = this.butttonList;
      if (this.type === 'form') {
      if (this.type === 'form' || this.type=='tree') {
        return basicColumn;
      } else if (this.type === 'table' || this.type === 'TreeTable') {
        const top = basicColumn.filter(item => item.paramVOS.webUiButtonLocation === 'top' || func.isEmpty(item.paramVOS.webUiButtonLocation)); // è¿‡æ»¤å‡ºæ¥è¡¨æ ¼ä¸Šé¢åŒºåŸŸå±•示的按钮
Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -1,6 +1,13 @@
<template>
  <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
    <div v-if="isError" style="color: #F56C6C">这个自定义页面的地址格式不正确。推荐使用bs=组件name?type=xxx&context=yyy&pparam=zzz这种形式</div>
    <el-alert
      class="alert"
      v-if="isError"
      title="自定义组件配置信息错误!"
      type="error"
      show-icon
      description="这个自定义页面的地址格式不正确。推荐使用bs=组件name?type=xxx&context=yyy&pparam=zzz这种形式">
    </el-alert>
    <component v-else :is="currentComponent"
               :btmType="btmType"
               :content="content"
@@ -115,6 +122,6 @@
}
</script>
<style scoped>
<style scoped lang="scss">
</style>
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -25,7 +25,6 @@
</template>
<script>
import {treeMenu} from '@/api/treeMyMenu'
import {validatenull} from '@/util/validate'
export default {
  name: "dynamic-table",
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -1,5 +1,6 @@
<template>
  <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
    <dynamic-button v-if="componentVO.buttons && componentVO.buttons.length>0" :butttonList="componentVO.buttons" :selectList="checkDatas" type="tree" style="margin-bottom: 10px;"></dynamic-button>
    <el-input
      placeholder="输入关键字进行过滤"
      v-model="filterText">
@@ -82,8 +83,7 @@
    sourceData:{
      handler(newval) {
        //源数据有变化时变更当前区域数据
        console.log(this.areasName);
        console.log(newval);
        this.initData();
      }
    }
  },
@@ -95,7 +95,7 @@
        label: 'text'
      },
      lazy:this.componentVO.treeDefineVO.loadType == 'node',
      isMuti:true,
      isMuti:false,
      data:[],
      checkDatas:[]
    }
@@ -104,7 +104,9 @@
    this.initData();
  },
  mounted() {
    console.log(this.$el.clientHeight)
    if(this.componentVO.buttons && this.componentVO.buttons.length>0){
      this.$children[2].$el.style.height = 'calc(100% - 50px - '+this.$children[0].$el.clientHeight+'px - 10px)';
    }
  },
  methods: {
    filterNode(value, data) {
@@ -2000,12 +2002,7 @@
      //逐级加载
      const parentOid = (node.level === 0) ? 0 : node.data.oid;
      setTimeout(() => {
        const data = [{
          name: 'leaf',
          leaf: true
        }, {
          name: 'zone'
        }];
        const data = this.data;
        resolve(data);
      }, 500);
Source/ProjectWeb/src/page/index/index.vue
@@ -16,7 +16,7 @@
          <search class="avue-view" v-show="isSearch"></search>
        </transition>
        <!-- ä¸»ä½“视图层 -->
        <div style="height:100%;overflow-y:auto;overflow-x:hidden;" id="avue-view" v-show="!isSearch">
        <div style="height:100%;overflow-y:auto;overflow-x:hidden;padding-bottom: 38px;box-sizing: border-box" id="avue-view" v-show="!isSearch">
          <keep-alive>
            <router-view class="avue-view" v-if="$route.meta.keepAlive"/>
          </keep-alive>
@@ -152,6 +152,6 @@
<style lang="scss">
#avue-view > .avue-view{
  height: 100%;
  padding: 0 6px !important;
  padding: 0 !important;
}
</style>
Source/ProjectWeb/src/page/index/layout.vue
@@ -6,3 +6,8 @@
    <router-view class="avue-view" v-if="!$route.meta.keepAlive" />
  </div>
</template>
<style lang="scss">
.avue-view{
  padding: 0 6px!important;
}
</style>
Source/ProjectWeb/src/views/base/UIContentViewer.vue
@@ -1,6 +1,6 @@
<template>
  <!--UI上下文的展示器-->
  <div style="height:calc(100% - 4px);min-width:1200px">
  <div style="height:calc(100% - 4px);min-width:1200px" >
    <el-header v-if="uiDefineVO.northAreas && uiDefineVO.northAreas.length>0">
      <UIContentArea :key="'northArea-'+uiDefineVO.oid" :areasData="uiDefineVO.northAreas"
                     :dataStore="checkedData.northArea"
@@ -24,8 +24,8 @@
                       @setDataStore="setDataStore">
        </UIContentArea>
      </el-aside>
      <el-container style="height: 100%">
        <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'height: '+centerHeight">
      <el-container style="height: 100%;display: block">
        <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 300px;height: '+centerHeight">
          <UIContentArea :key="'centerArea-'+uiDefineVO.oid" :areasData="uiDefineVO.centerAreas"
                         :dataStore="checkedData.centerArea"
                         :inDialog="inDialog"
@@ -36,7 +36,7 @@
          </UIContentArea>
        </el-main>
        <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%"
                   style="max-height: 300px">
                   style="min-height: 150px;">
          <UIContentArea :key="'southArea-'+uiDefineVO.oid" :areasData="uiDefineVO.southAreas"
                         :dataStore="checkedData.southArea"
                         :inDialog="inDialog"
@@ -78,13 +78,9 @@
    }
  },
  watch: {
    typeAContent:{
      handler(newV,oldV){
        if(oldV!=newV && !verifyNull(newV)){
          this.initUI();
        }
      },
      immediate: true,
    $route(to, from) {
      this.getTheParameters()
      this.initUI();
    }
  },
  computed: {
@@ -97,21 +93,24 @@
      this.$message.error("配置的信息错误,请参考bs=组件name?type=xxx&context=yyy&param=zzz这种形式。其中type是业务类型(或链接类型),context是UI上下文的名称");
      return false;
    }
    this.btmType = this.$route.query.type;
    this.content = this.$route.query.context || this.$route.query.content;
    this.sourceData = this.$route.query;
    this.getTheParameters()
    this.initUI();
  },
  methods: {
    getTheParameters(){
      this.btmType = this.$route.query.type;
      this.content = this.$route.query.context || this.$route.query.content;
      this.sourceData = this.$route.query;
    },
    initUI() {
      getUIContent({btmType: this.btmType, id: this.content}).then(res => {
        console.log(res.data.obj)
        this.uiDefineVO = res.data.obj;
        this.initContent();
      })
    },
    initContent() {
      if (this.uiDefineVO.southAreas && this.uiDefineVO.southAreas.length > 0) {
        this.centerHeight = 'calc(100% - 310px)';
        this.centerHeight = '65%';
      } else {
        this.centerHeight = '100%';
      }
Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
@@ -23,8 +23,8 @@
                       @setDataStore="setDataStore">
        </UIContentArea>
      </el-aside>
      <el-container style="height: 100%">
        <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'height: '+centerHeight">
      <el-container style="height: 100%;display: block">
        <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 260px;height: '+centerHeight">
          <UIContentArea :key="'centerArea-'+uiDefineVO.oid" areas-name="centerAreaInDialog"
                         cradStyle=""
                         :areasData="uiDefineVO.centerAreas"
@@ -35,7 +35,7 @@
                         @setDataStore="setDataStore">
          </UIContentArea>
        </el-main>
        <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%" style="max-height: 300px">
        <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%" style="min-height: 150px;">
          <UIContentArea :key="'southArea-'+uiDefineVO.oid" areas-name="southAreaInDialog"
                         cradStyle=""
                         :areasData="uiDefineVO.southAreas"
@@ -122,14 +122,13 @@
  methods: {
    initUI() {
      getUIContent({btmType: this.btmType, id: this.content}).then(res => {
        console.log(res.data.obj)
        this.uiDefineVO = res.data.obj;
        this.initContent();
      })
    },
    initContent() {
      if (this.uiDefineVO.southAreas && this.uiDefineVO.southAreas.length > 0) {
        this.centerHeight = 'calc(100% - 310px)';
        this.centerHeight = '65%';
      } else {
        this.centerHeight = '100%';
      }
Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js
ÎļþÒÑɾ³ý
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -13,8 +13,7 @@
import com.vci.web.constant.CacheKeyConstant;
import com.vci.web.pageModel.*;
import com.vci.web.service.*;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import com.vci.web.util.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -140,9 +139,11 @@
            vo.setCreator(btmItem.creator);
            vo.setLastModifier(btmItem.modifier);
            try {
                vo.setCreateTime(VciDateUtil.str2Date(String.valueOf(btmItem.createTime),VciDateUtil.DateTimeFormat));
                vo.setLastModifyTime(VciDateUtil.str2Date(String.valueOf(btmItem.modifyTime),VciDateUtil.DateTimeFormat));
                vo.setTs(VciDateUtil.str2Date(String.valueOf(btmItem.ts),VciDateUtil.DateTimeMillFormat));
                // btmItem.createTime拿到的是时间戳,但是这儿要的是例如2017-12-27 09:32:20.034这样的格式,所以不调用这个方法,改调用其他方法
                //vo.setCreateTime(VciDateUtil.str2Date(String.valueOf(btmItem.createTime),VciDateUtil.DateTimeFormat));
                vo.setCreateTime(Func.parse(btmItem.createTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat)));
                vo.setLastModifyTime( Func.parse(btmItem.modifyTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat)));
                vo.setTs(Func.parse(btmItem.ts, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat)));
            } catch (Exception e) {
                e.printStackTrace();
            }
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -327,6 +327,7 @@
     * æ ‘节点的分隔符不一样
     */
    private static final String TREE_NODE_ID_SEP = "@vcitreesep@";
    /**
     * èŽ·å–æ ‘å½¢æ•°æ®
     *
@@ -429,7 +430,6 @@
                if (StringUtils.isNotBlank(queryTemplate)) {
                    thisChildren = boService.queryCBOByScheme(queryTemplate, treeQuery.getConditionMap(), replaceMap, null, queryFieldList);
                } else {
                    thisChildren = boService.queryCBO(treeQuery.getParentBtmName(), treeQuery.getConditionMap(), null, queryFieldList);
                }
                return cbo2Trees(thisChildren, valueField, textField, parentFieldName, treeQuery.isShowCheckBox(), null);
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
@@ -2,12 +2,16 @@
import com.alibaba.fastjson.JSONObject;
import com.vci.base.common.utility.ObjectUtility;
import com.vci.client.common.providers.ServiceProvider;
import com.vci.corba.common.VCIError;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.query.ObjectQueryService;
import com.vci.corba.query.ObjectQueryServicePrx;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.mw.client.InvocationUtility;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.constant.VciSystemVarConstants;
import com.vci.corba.query.data.BtmRefQueryOption;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
@@ -19,10 +23,11 @@
import com.vci.web.pageModel.*;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.poi.ss.formula.functions.T;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.omg.CORBA.IntHolder;
@@ -34,10 +39,8 @@
import plm.bs.bom.clientobject.ClientBusinessObject;
import plm.bs.bom.clientobject.ClientLinkObject;
import plm.bs.bom.common.*;
import plm.corba.qt.BtmRefQueryOption;
import plm.corba.qt.KV;
import plm.corba.qt.QTServiceOperations;
import plm.corba.qt.QTWrapper;
import plm.oq.objectQuery.common.*;
import java.lang.reflect.Field;
@@ -140,7 +143,6 @@
            });
        }
    }
    /**
     * åˆå§‹åŒ–业务类型
@@ -465,7 +467,6 @@
        return checkDataExsitByColumn(btmName,columnName,Arrays.asList(columnValues.split(",")));
    }
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢ä¸šåŠ¡ç±»åž‹ä¸‹çš„æ•°æ®
     * @param btmType ä¸šåŠ¡ç±»åž‹çš„åç§°ï¼Œä¼šè‡ªåŠ¨å˜æˆå°å†™
@@ -567,7 +568,7 @@
            clauseList.add("*");
        }
        setRightValueToQueryTemplate(qt,conditionMap);//设置密级查询,和数据权限控制
        List<BtmRefQueryOption> refOpts = new ArrayList<BtmRefQueryOption>();
        List<com.vci.corba.query.data.BtmRefQueryOption> refOpts = new ArrayList<BtmRefQueryOption>();
        List<String> enumAttrName = new ArrayList<String>();
        List<String> thisQueryAttr = new ArrayList<String>();
        if(clauseList!=null && clauseList.size()>0){
@@ -614,24 +615,27 @@
        //设置分页信息和排序
        setPageAndOrderToQT(qt,ph);
        try {
            QTServiceOperations qtService = platformClientUtil.getQueryService();
            // QTServiceOperations qtService = platformClientUtil.getQueryService();
            ObjectQueryServicePrx qtService = ServiceProvider.getOQService();
            if(qtService == null){
                logger.error("没有找到查询服务");
                throw new VciBaseException(msgCodePrefix+"qtServerNull", new String[]{});
            }
            IntHolder count = new IntHolder();
            BusinessObject[] bos = null;
            ObjectQueryService.FindBTMObjectsV3Result bos = null;
            String invo = JSONObject.toJSONString(InvocationUtility.getInvocation());
            try{
                bos = qtService.findBTMObjectsV4(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
                //bos = qtService.findBTMObjectsV3(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
                bos = qtService.findBTMObjectsV3(qt.getId(), Tool.qtTOXMl(qt).asXML(), refOpts.toArray(new BtmRefQueryOption[0]));
            }catch (VCIError e){
                bos = qtService.findBTMObjectsV4(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
                //bos = qtService.findBTMObjectsV4(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
                bos = qtService.findBTMObjectsV3(qt.getId(), Tool.qtTOXMl(qt).asXML(), refOpts.toArray(new BtmRefQueryOption[0]));
            }
            if (bos != null && bos.length > 0) {
                for (BusinessObject bo : bos) {
            if (bos != null && bos.count > 0) {
                for (com.vci.corba.omd.data.BusinessObject bo : bos.returnValue) {
                    ClientBusinessObject cbo = new ClientBusinessObject();
                    cbo.setBusinessObject(bo);
                    BusinessObject businessObject = Func.copyProperties(bo, BusinessObject.class);
                    cbo.setBusinessObject(businessObject);
                    queryEnumText(cbo,enumAttrName);
                    allCbos.add(cbo);
                }
@@ -639,8 +643,8 @@
            }
            queryLcStatus(allCbos);
        } catch (VCIError e) {
//            logger.error(e.error_code,e);
//            throw WebUtil.getVciBaseException(e);
            //logger.error(e.error_code,e);
            throw WebUtil.getVciBaseException(e);
        }
        return allCbos;
    }
@@ -942,14 +946,15 @@
        QueryTemplate qt = null;
        try{
            VciBaseUtil.alertNotNull(name,"查询模板的名称");
            QTWrapper wrapper = platformClientUtil.getQueryService().getQT(name);
            // QTWrapper wrapper = platformClientUtil.getQueryService().getQT(name);
            QTInfo wrapper = ServiceProvider.getOMDService().getQTDService().getQT(name);
            qt = Tool.getQTByDoc(DocumentHelper.parseText(wrapper.qtText), name);
            //因为之前平台的Tool.replaceQTValues æ²¡æœ‰å¤„理 ${xxx}。, ä¸ºäº†å¿½ç•¥å¤§å°å†™ï¼Œæˆ‘们这里单独处理 weidy@2021-3-10
            //我们转换为小写
            Condition condition = qt.getCondition();
            Map<String,String> replaceLowMap = new HashMap<>();
            if(condition !=null && condition.getCIMap()!=null){
                Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
                // Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
                if(!CollectionUtils.isEmpty(replaceMap)){
                    replaceMap.forEach((key,value)->{
                        replaceLowMap.put(key.toLowerCase(),value);
@@ -963,7 +968,7 @@
                        if(StringUtils.isNotBlank(value)){
                            if(value.contains("#")){
                                //系统变量.支持一个
                                lInfo.getValue().setOrdinaryValue(systemVarValueMap.getOrDefault(value.toUpperCase(),""));
                                //lInfo.getValue().setOrdinaryValue(systemVarValueMap.getOrDefault(value.toUpperCase(),""));
                            }else if(value.contains("${")){
                                //有${xxxx}的方式
                                if(!CollectionUtils.isEmpty(replaceLowMap)) {
@@ -981,8 +986,8 @@
                });
            }
        }catch(VCIError e){
//            logger.error(e.error_code,e);
//            throw WebUtil.getVciBaseException(e);
            //logger.error(e.error_code,e);
            //throw WebUtil.getVciBaseException(e);
        } catch (DocumentException e) {
            logger.error("查询模板转换",e);
            throw new VciBaseException(this.msgCodePrefix + "qtError", new Object[]{name});
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java
@@ -127,7 +127,6 @@
    @Autowired
    private OsDDLExportWordFieldProperties wordFieldProperties;
    /**
     * å¯¼å…¥ä¸šåŠ¡ç±»åž‹å’Œé“¾æŽ¥ç±»åž‹ï¼ŒåŒ…å«å±žæ€§ï¼Œæžšä¸¾ï¼ŒçŠ¶æ€ï¼Œç”Ÿå‘½å‘¨æœŸï¼Œç‰ˆæœ¬è§„åˆ™ç­‰å…¨å¥—å†…å®¹
     *
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/DateUtil.java
@@ -631,4 +631,16 @@
        return NumberUtil.toInt(format(new Date(), "HH"));
    }
    /**
     * æ—¶é—´æˆ³è½¬æ¢ä¸ºDate
     * @return
     */
    public static Date parseByLong(Long dateLong, ConcurrentDateFormat format){
        try {
            return format.parse(format.format(new Date(dateLong)));
        } catch (ParseException e) {
            throw Exceptions.unchecked(e);
        }
    }
}
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/Func.java
@@ -1727,6 +1727,17 @@
    }
    /**
     * å°†æ—¶é—´æˆ³è½¬æ¢ä¸ºDate时间
     *
     * @param dateLong æ—¶é—´æˆ³
     * @param format  ConcurrentDateFormat
     * @return æ—¶é—´
     */
    public static Date parse(Long dateLong, ConcurrentDateFormat format) {
        return DateUtil.parseByLong(dateLong, format);
    }
    /**
     * æ—¥æœŸæ—¶é—´æ ¼å¼åŒ–
     *
     * @param temporal æ—¶é—´