init commit

master
Guo XIn 1 year ago
commit 7419289519
  1. 8
      .idea/.gitignore
  2. 32
      .idea/compiler.xml
  3. 13
      .idea/dataSources.xml
  4. 426
      .idea/dbnavigator.xml
  5. 16
      .idea/encodings.xml
  6. 25
      .idea/jarRepositories.xml
  7. 12
      .idea/misc.xml
  8. 44
      dbsql/bianmu-clean.sql
  9. 383
      dbsql/bianmu-data.sql
  10. 1742
      dbsql/bianmu-struct.sql
  11. 224
      pom.xml
  12. 46
      shandan-basedata/pom.xml
  13. 11
      shandan-basedata/src/main/java/com/keyware/shandan/BaseDataApplication.java
  14. 22
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/config/mybatis/MyBatisConfiguration.java
  15. 104
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/config/spring/ContextHelper.java
  16. 20
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/config/web/DynamicFormConfiguration.java
  17. 369
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/controller/DynamicDataController.java
  18. 163
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/controller/DynamicFormController.java
  19. 23
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/DefaultDynamicFormEventListener.java
  20. 26
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/DynamicFormEventListener.java
  21. 11
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/entity/DynamicData.java
  22. 128
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/entity/FormInfoPo.java
  23. 192
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/entity/QueryParam.java
  24. 197
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/entity/QueryParamBuilder.java
  25. 9
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/mapper/FormInfoMapper.java
  26. 7
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/parser/FormInfoParser.java
  27. 4
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/parser/pojo/FormFieldConfig.java
  28. 4
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/parser/pojo/FormQueryConfig.java
  29. 129
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/services/DynamicDataService.java
  30. 116
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/services/DynamicFormService.java
  31. 11
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/services/FormInfoService.java
  32. 18
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/basic/services/impl/FormInfoServiceImpl.java
  33. 254
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/SqlHelper.java
  34. 44
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/enums/DbColumns.java
  35. 11
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/enums/SqlType.java
  36. 215
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/executor/SqlExecutor.java
  37. 7
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/parser/DbDefault.java
  38. 97
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/parser/TableInfoParser.java
  39. 43
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/pojo/Column.java
  40. 9
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/pojo/DbColumnType.java
  41. 33
      shandan-basedata/src/main/java/com/keyware/shandan/dynacmicform/core/db/pojo/Table.java
  42. 18
      shandan-basedata/src/main/resources/application.yml
  43. 236
      shandan-basedata/src/main/resources/static/script/common/common.js
  44. 13
      shandan-basedata/src/main/resources/static/script/common/config.js
  45. 409
      shandan-basedata/src/main/resources/static/script/common/htmlformat.js
  46. 568
      shandan-basedata/src/main/resources/static/script/common/jsformat.js
  47. 1
      shandan-basedata/src/main/resources/static/script/layui/css/layui.css
  48. 1
      shandan-basedata/src/main/resources/static/script/layui/css/modules/code.css
  49. 1
      shandan-basedata/src/main/resources/static/script/layui/css/modules/laydate/default/laydate.css
  50. BIN
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/icon-ext.png
  51. BIN
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/icon.png
  52. 1
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/layer.css
  53. BIN
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/loading-0.gif
  54. BIN
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/loading-1.gif
  55. BIN
      shandan-basedata/src/main/resources/static/script/layui/css/modules/layer/default/loading-2.gif
  56. BIN
      shandan-basedata/src/main/resources/static/script/layui/font/iconfont.eot
  57. 554
      shandan-basedata/src/main/resources/static/script/layui/font/iconfont.svg
  58. BIN
      shandan-basedata/src/main/resources/static/script/layui/font/iconfont.ttf
  59. BIN
      shandan-basedata/src/main/resources/static/script/layui/font/iconfont.woff
  60. BIN
      shandan-basedata/src/main/resources/static/script/layui/font/iconfont.woff2
  61. 1
      shandan-basedata/src/main/resources/static/script/layui/layui.js
  62. 56
      shandan-basedata/src/main/resources/static/script/modules/HandwrittenSignature.css
  63. 1
      shandan-basedata/src/main/resources/static/script/modules/HandwrittenSignature.js
  64. 3709
      shandan-basedata/src/main/resources/static/script/modules/Sortable/Sortable.js
  65. 2
      shandan-basedata/src/main/resources/static/script/modules/Sortable/Sortable.min.js
  66. 178
      shandan-basedata/src/main/resources/static/script/modules/cron.css
  67. 1066
      shandan-basedata/src/main/resources/static/script/modules/cron.js
  68. 779
      shandan-basedata/src/main/resources/static/script/modules/formDesigner.css
  69. 4752
      shandan-basedata/src/main/resources/static/script/modules/formDesigner.js
  70. 545
      shandan-basedata/src/main/resources/static/script/modules/formField.js
  71. 1918
      shandan-basedata/src/main/resources/static/script/modules/iceEditor/iceEditor.js
  72. 400
      shandan-basedata/src/main/resources/static/script/modules/iconPicker.js
  73. 4
      shandan-basedata/src/main/resources/static/script/modules/labelGeneration.css
  74. 282
      shandan-basedata/src/main/resources/static/script/modules/labelGeneration.js
  75. 204
      shandan-basedata/src/main/resources/static/script/modules/numberInput.js
  76. 355
      shandan-basedata/src/main/resources/static/script/modules/staticField.js
  77. 8
      shandan-basedata/src/main/resources/static/script/modules/xmSelect.js
  78. 26
      shandan-basedata/src/main/resources/static/style/css/common.css
  79. BIN
      shandan-basedata/src/main/resources/static/style/images/88_thumb.gif
  80. BIN
      shandan-basedata/src/main/resources/static/style/images/angrya_thumb.gif
  81. BIN
      shandan-basedata/src/main/resources/static/style/images/banner1.PNG
  82. BIN
      shandan-basedata/src/main/resources/static/style/images/banner2.PNG
  83. BIN
      shandan-basedata/src/main/resources/static/style/images/banner3.PNG
  84. BIN
      shandan-basedata/src/main/resources/static/style/images/bba_thumb.gif
  85. BIN
      shandan-basedata/src/main/resources/static/style/images/bs2_thumb.gif
  86. BIN
      shandan-basedata/src/main/resources/static/style/images/bs_thumb.gif
  87. BIN
      shandan-basedata/src/main/resources/static/style/images/bz_thumb.gif
  88. BIN
      shandan-basedata/src/main/resources/static/style/images/cake.gif
  89. BIN
      shandan-basedata/src/main/resources/static/style/images/cj_thumb.gif
  90. BIN
      shandan-basedata/src/main/resources/static/style/images/come_thumb.gif
  91. BIN
      shandan-basedata/src/main/resources/static/style/images/cool_thumb.gif
  92. BIN
      shandan-basedata/src/main/resources/static/style/images/crazya_thumb.gif
  93. BIN
      shandan-basedata/src/main/resources/static/style/images/cry.gif
  94. BIN
      shandan-basedata/src/main/resources/static/style/images/cza_thumb.gif
  95. BIN
      shandan-basedata/src/main/resources/static/style/images/dizzya_thumb.gif
  96. BIN
      shandan-basedata/src/main/resources/static/style/images/good_thumb.gif
  97. BIN
      shandan-basedata/src/main/resources/static/style/images/gza_thumb.gif
  98. BIN
      shandan-basedata/src/main/resources/static/style/images/h_thumb.gif
  99. BIN
      shandan-basedata/src/main/resources/static/style/images/hatea_thumb.gif
  100. BIN
      shandan-basedata/src/main/resources/static/style/images/hearta_thumb.gif
  101. Some files were not shown because too many files have changed in this diff Show More

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="shandan-browser" />
<module name="shandan-bianmu" />
<module name="shandan-basedata" />
<module name="shandan-desktop" />
<module name="shandan-oauth" />
<module name="shandan-system" />
<module name="shandan-control" />
<module name="shandan-common" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="shandan-basedata" options="-parameters" />
<module name="shandan-bianmu" options="-parameters" />
<module name="shandan-browser" options="-parameters" />
<module name="shandan-common" options="-parameters" />
<module name="shandan-control" options="-parameters" />
<module name="shandan-desktop" options="-parameters" />
<module name="shandan-oauth" options="-parameters" />
<module name="shandan-system" options="-parameters" />
</option>
</component>
</project>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="Dameng 8" uuid="bce36d92-47f1-46e3-94db-353fd18ad440">
<driver-ref>java.sql.Driver</driver-ref>
<synchronize>true</synchronize>
<configured-by-url>true</configured-by-url>
<jdbc-driver>dm.jdbc.driver.DmDriver</jdbc-driver>
<jdbc-url>jdbc:dm://127.0.0.1:5236/BIANMU</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

@ -0,0 +1,426 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="JSP" enabled="true" />
<content-type name="JSPx" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="FTL" enabled="true" />
<content-type name="VTL" enabled="true" />
<content-type name="AIDL" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
</project>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/shandan-basedata/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-bianmu/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-browser/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-control/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-desktop/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-oauth/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/shandan-system/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/../../.dev_env/apache-maven-3.9.0/repository/org/springframework/boot/spring-boot-starter-parent/2.2.13.RELEASE/src/main/resources" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://maven.aliyun.com/repository/public" />
</remote-repository>
</component>
</project>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
</project>

@ -0,0 +1,44 @@
-- 数据库清理脚本
-- 指定数据库模式名
set SCHEMA BIANMU;
--
delete from B_DATA_SOURCE;
--
delete from B_DIRECTORY T1 where T1.ID not in('-');
--
delete from B_METADATA_BASIC;
delete from B_METADATA_DETAILS;
--
delete from B_DIRECTORY_METADATA;
--
delete from B_REVIEW_RECORD;
-- 清理用户表
delete from SYS_USER where SYS_USER.USER_ID not in('sa','admin','zhangsan','artisan');
-- 清理机构表
delete from SYS_ORG where SYS_ORG.ID <> 'ROOT';
-- 清理角色表
delete from SYS_ROLE where SYS_ROLE.ROLE_ID not in('3fb1c570496d4c09ab99b8d31b06ccc','3fb1c570496d4c09ab99b8d31b06xxx','3fb1c570496d4c09ab99b8d31b06zzz');
-- 清理权限表
delete from SYS_PERMISSIONS where PERMIS_ID not in('PERMIS_ONLY_ORG','PERMIS_ONLY_SELF','PERMIS_ORG_LEADER','PERMIS_ROOT');
--
delete from SYS_OPERATE_LOG;
--
delete from SYS_NOTIFICATION;
delete from SYS_NOTIFICATION_UNREAD;
--
delete from SYS_FILE;
delete from SYS_FILE_CHUNK;
-- 清理用户角色关系表
delete from SYS_USER_ROLE T1 where T1.ROLE_ID not in(select ROLE_ID from SYS_ROLE);
delete from SYS_USER_ROLE T1 where T1.USER_ID not in(select USER_ID from SYS_USER);
-- 清理角色权限表
delete from SYS_ROLE_PERMISSIONS T1 where T1.ROLE_ID not in(select ROLE_ID from SYS_ROLE);
delete from SYS_ROLE_PERMISSIONS T1 where T1.PERMIS_ID not in(select PERMIS_ID from SYS_PERMISSIONS);
-- 清理权限机构表
delete from SYS_PERMIS_ORG T1 where T1.PERMIS_ID not in(select PERMIS_ID from SYS_PERMISSIONS);
delete from SYS_PERMIS_ORG T1 where T1.ORG_ID not in(select ID from SYS_ORG);
-- 清理用户客户端关系表
delete from SYS_USER_CLIENT T1 where T1.USER_ID not in(select USER_ID from SYS_USER);
delete from SYS_USER_CLIENT T1 where T1.CLIENT_ID not in(select CLIENT_ID from OAUTH_CLIENT_DETAILS);
--
delete from SYS_ROLE_MENU T1 where T1.ROLE_ID not in(select ROLE_ID from SYS_ROLE);

@ -0,0 +1,383 @@
SET IDENTITY_INSERT "BIANMU"."B_DATA_LABELS" ON;
INSERT INTO "BIANMU"."B_DATA_LABELS"("ID","PARENT_ID","TITLE","DESCRIPTION","ID_PATH","TITLE_PATH","LEVEL","IS_LABEL","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES(1000,0,'参演单位实体','','/','/',1,0,'admin','2023-02-08 17:28:49.446000','admin','2023-02-08 17:28:49.446000');
INSERT INTO "BIANMU"."B_DATA_LABELS"("ID","PARENT_ID","TITLE","DESCRIPTION","ID_PATH","TITLE_PATH","LEVEL","IS_LABEL","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES(1010,0,'人员实体','','/','/',1,0,'admin','2023-02-08 17:41:45.696000','admin','2023-02-08 17:41:45.697000');
INSERT INTO "BIANMU"."B_DATA_LABELS"("ID","PARENT_ID","TITLE","DESCRIPTION","ID_PATH","TITLE_PATH","LEVEL","IS_LABEL","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES(1025,0,'装备实体','','/','/',1,0,'admin','2023-02-08 17:48:10.006000','admin','2023-02-08 17:48:10.006000');
INSERT INTO "BIANMU"."B_DATA_LABELS"("ID","PARENT_ID","TITLE","DESCRIPTION","ID_PATH","TITLE_PATH","LEVEL","IS_LABEL","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES(1091,0,'军事活动','','/','/',1,0,'admin','2023-02-08 18:11:22.916000','admin','2023-02-08 18:11:22.917000');
SET IDENTITY_INSERT "BIANMU"."B_DATA_LABELS" OFF;
INSERT INTO "BIANMU"."B_DATA_SOURCE"("ID","NAME","TYPE","DB_TYPE","DB_VERSION","JDBC_DRIVER_CLASS","JDBC_URL","JDBC_USER_NAME","JDBC_PASSWORD","JDBC_SCHEMA","HOST","PORT","REMARK","IS_DELETE","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","DRIVER_ID") VALUES('1600472446585028609','BIANMU','0','dm',null,'dm.jdbc.driver.DmDriver','jdbc:dm://127.0.0.1:5236','BIANMU','123456789','BIANMU','127.0.0.1',5236,' ','0','2022-12-07 20:49:01.263000','2022-12-12 15:03:24.988000','1600386113170587650','1515970557288169473','dm-driver');
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ROOT','数据资源目录','','SUBMITTED','ROOT','sa','2021-12-21 15:55:08.965000','sa','2021-12-21 15:57:08.967000','DIRECTORY','/数据资源目录','部门根节点','ROOT','org',null,null,null,null,null,null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1521844139501588481','我的形状','34a29ee5-4d1a-41f5-831f-36f8290a201c','SUBMITTED','5e0a2c8d85624be2b05c0c3b65bb88b8','1515972191707774977','2022-05-04 21:28:12.011000','1515972191707774977','2022-05-04 21:28:12.011000','DIRECTORY','/数据资源目录/指控站测试目录/我的形状','指挥控制站','1515972191707774977','user',null,null,null,null,null,null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('34a29ee5-4d1a-41f5-831f-36f8290a201c','指控站测试目录','ROOT','SUBMITTED','5e0a2c8d85624be2b05c0c3b65bb88b8','1515972191707774977','2022-05-04 20:02:16.569000','1515972191707774977','2022-05-04 20:02:16.569000','DIRECTORY','/数据资源目录/指控站测试目录','指挥控制站','1515972191707774977','user',null,null,null,null,null,null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('5466c5cd-26da-4eaa-b719-38fe51c05197','基础数据','ROOT','UN_SUBMIT','ROOT','admin','2022-09-07 04:04:35.000000','admin','2022-09-07 09:29:17.312000','DIRECTORY','/数据资源目录/基础数据','管理员','admin','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ROOT_THEME','主题目录','','SUBMITTED','ROOT','sa','2021-12-21 15:57:08.000000','sa','2021-12-21 15:57:08.000000','DIRECTORY','/主题目录','部门根节点','ROOT','org',null,null,null,null,null,null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('9fede6e2-e117-4e2a-8a62-108d2c8538ba','按权浏览测试目录','ROOT','SUBMITTED','16639022986321001','1573147353282596866','2022-09-23 21:22:05.633000','1573147353282596866','2022-09-23 21:22:05.633000','DIRECTORY','/数据资源目录/按权浏览测试目录',' 测试3-2','1573147353282596866','user','unset','unset','read','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('3d694df2-43a2-4ef6-8858-6ecc89125b49','任务','15f29fde-fb22-4210-a28c-4f28c5e9d9b3','SUBMITTED','ROOT','admin','2022-09-25 19:47:33.079000','admin','2022-09-25 19:47:33.079000','DIRECTORY','/主题目录/测试主题/任务','管理员','admin','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('15f29fde-fb22-4210-a28c-4f28c5e9d9b3','测试主题','ROOT_THEME','SUBMITTED','ROOT','admin','2022-09-25 19:47:13.866000','admin','2022-09-25 19:47:13.866000','DIRECTORY','/主题目录/测试主题','管理员','admin','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('7efea7a2-b81a-423b-8308-db2425891d54','测试2','ROOT_THEME','UN_SUBMIT','ROOT','admin','2022-09-25 19:52:20.330000','admin','2022-09-25 19:52:20.330000','DIRECTORY','/主题目录/测试2','管理员','admin','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('813c7738-36a5-4d8e-858b-9db3fe180bd0','反导队','ROOT_THEME','UN_SUBMIT','a41eea9430274012a7a8afb236d8b6d3','1515977199866134529','2022-12-06 16:17:07.189000','1515977199866134529','2022-12-06 16:17:07.189000','DIRECTORY','/主题目录/反导队','反导训练保障队','1515977199866134529','user','read,write','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600310471989137410','一级测试部门','ROOT','UN_SUBMIT','16639022279851001','admin','2022-12-07 10:05:23.510000','admin','2022-12-07 10:05:23.510000','DIRECTORY','/数据资源目录/一级测试部门','一级测试部门','16639022279851001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600310473406812162','外驻单位','1600310471989137410','UN_SUBMIT','16703787234581001','admin','2022-12-07 10:05:23.849000','admin','2022-12-07 10:05:23.849000','DIRECTORY','/数据资源目录/一级测试部门/外驻单位','一级测试部门','16639022279851001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('70643913-5b8c-4722-8fff-601ed7387c7c','纪检科','ROOT_THEME','UN_SUBMIT','afdeb73508054ee8922868ff8fa7ad51','1515969455482257409','2022-12-07 15:55:25.150000','1515969455482257409','2022-12-07 15:55:25.150000','DIRECTORY','/主题目录/纪检科','纪检监察科','1515969455482257409','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ab7cd79e-efdf-411e-8bd7-4415e44f4f55','1','ROOT','UN_SUBMIT','b9f0df9ce8584cafbb2f93d88295d111','1515970557288169473','2022-12-07 16:18:17.179000','1515970557288169473','2022-12-07 16:18:17.179000','DIRECTORY','/数据资源目录/1','靶标科','1515970557288169473','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ecc1bd8d-e7f7-482b-9e09-af7f5b63e18a','装备科测试','ROOT_THEME','UN_SUBMIT','aeedfebb88914728bf155860a99ab71d','1515970233110413314','2022-12-07 16:23:02.357000','1515970233110413314','2022-12-07 16:23:02.357000','DIRECTORY','/主题目录/装备科测试','试验训练保障科','1515970233110413314','user','unset','unset','read,write','unset','read,write',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600407734518284289','新建文件夹 (3)','ecc1bd8d-e7f7-482b-9e09-af7f5b63e18a','UN_SUBMIT','aeedfebb88914728bf155860a99ab71d','1515970233110413314','2022-12-07 16:31:52.704000','1515970233110413314','2022-12-07 16:31:52.704000','DIRECTORY','/主题目录/装备科测试/新建文件夹 (3)','试验训练保障科','1515970233110413314','user','unset','unset','read,write','unset','read,write',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('7244c6bd-e8b6-4d76-9be8-fb0f4b715004','功能测试目录2','ROOT','SUBMITTED','ROOT','admin','2022-09-28 10:49:07.000000','admin','2022-12-08 10:08:33.069000','DIRECTORY','/数据资源目录/功能测试目录2','管理员','admin','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600404257746452482','测试','9dd47681-d2ee-4008-aeaf-d3e773e1303c','SUBMITTED','d799f5f5b14a41bd9684a02fd366c829','1515971227902853121','2022-12-07 16:18:03.777000','1515971227902853121','2022-12-07 16:18:03.777000','DIRECTORY','/主题目录/bgs/测试','弹炮靶场','1515971227902853121','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600404257746452483','数据库测试','1600404257746452482','SUBMITTED','d799f5f5b14a41bd9684a02fd366c829','1515971227902853121','2022-12-07 16:18:03.778000','1515971227902853121','2022-12-07 16:18:03.778000','DIRECTORY','/主题目录/bgs/测试/数据库测试','弹炮靶场','1515971227902853121','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('9dd47681-d2ee-4008-aeaf-d3e773e1303c','bgs','ROOT_THEME','SUBMITTED','d799f5f5b14a41bd9684a02fd366c829','1515971227902853121','2022-12-07 15:56:36.830000','1515971227902853121','2022-12-07 15:56:36.830000','DIRECTORY','/主题目录/bgs','弹炮靶场','1515971227902853121','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('cf4c11f8-e1a2-42e3-8137-27fe4c41b3c9','三院','ROOT','SUBMITTED','16703842025841001','1600386113170587650','2022-12-07 22:48:03.368000','1600386113170587650','2022-12-07 22:48:03.368000','DIRECTORY','/数据资源目录/三院','二院','16703842025841001','org','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('6973cf0d-7ddf-4b9c-85a9-18fa30c19524','rzx','cf4c11f8-e1a2-42e3-8137-27fe4c41b3c9','REJECTED','16703842025841001','1600385053328687106','2022-12-08 15:27:03.569000','1600385053328687106','2022-12-08 15:27:03.569000','DIRECTORY','/数据资源目录/三院/rzx','任子强','1600385053328687106','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('611ae812-38e3-4b2e-a555-d2cca66b8c71','试训保障科测试','ROOT_THEME','UN_SUBMIT','aeedfebb88914728bf155860a99ab71d','1515970233110413314','2022-12-08 16:07:30.178000','1515970233110413314','2022-12-08 16:07:30.178000','DIRECTORY','/主题目录/试训保障科测试','试验训练保障科','1515970233110413314','user','unset','read','read','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('763cb384-bb8b-4639-8960-b8a67d447961','李四的目录','ROOT','SUBMITTED','c6c9fe2fe0e344f4b1e093ae3d507faf','1521860277264289793','2022-12-02 17:28:33.000000','admin','2022-12-02 18:11:00.843000','DIRECTORY','/数据资源目录/李四的目录','李四','1521860277264289793','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('eeabd89f-09e2-42d5-9e1c-11d517ffe363','按权浏览测试目录2','ROOT','SUBMITTED','ROOT','admin','2022-09-28 11:05:10.000000','1515970670538571778','2022-12-07 16:16:01.362000','DIRECTORY','/数据资源目录/按权浏览测试目录2','管理员','admin','user','read','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600765492266541058','新建文件夹 (3)','611ae812-38e3-4b2e-a555-d2cca66b8c71','UN_SUBMIT','aeedfebb88914728bf155860a99ab71d','1515970233110413314','2022-12-08 16:13:28.799000','1515970233110413314','2022-12-08 16:13:28.799000','DIRECTORY','/主题目录/试训保障科测试/新建文件夹 (3)','试验训练保障科','1515970233110413314','user','unset','read','read','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('48aa4475-e475-4e8c-a0c4-da121f819fc6','弹炮靶场文印室','ROOT_THEME','SUBMITTED','d799f5f5b14a41bd9684a02fd366c829','1515971227902853121','2022-12-08 16:15:38.927000','1515971227902853121','2022-12-08 16:15:38.927000','DIRECTORY','/主题目录/弹炮靶场文印室','弹炮靶场','1515971227902853121','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600805346782232578','测试部门一','ROOT','UN_SUBMIT','16704967108291001','1600803588995563522','2022-12-08 18:51:50.856000','1600803588995563522','2022-12-08 18:51:50.856000','DIRECTORY','/数据资源目录/测试部门一','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600805470841356290','二级权限','1600805346782232578','UN_SUBMIT','16704967403871001','1600803588995563522','2022-12-08 18:52:20.433000','1600803588995563522','2022-12-08 18:52:20.433000','DIRECTORY','/数据资源目录/测试部门一/二级权限','二级权限','16704967403871001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600805540391305217','三级权限','1600805470841356290','UN_SUBMIT','16704967569711001','1600803588995563522','2022-12-08 18:52:37.015000','1600803588995563522','2022-12-08 18:52:37.015000','DIRECTORY','/数据资源目录/测试部门一/二级权限/三级权限','三级权限','16704967569711001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1600805609442131970','四级权限','1600805540391305217','UN_SUBMIT','16704967734341001','1600803588995563522','2022-12-08 18:52:53.479000','1600803588995563522','2022-12-08 18:52:53.479000','DIRECTORY','/数据资源目录/测试部门一/二级权限/三级权限/四级权限','四级权限','16704967734341001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ROOT_BASIC_DATA','基础数据目录','','SUBMITTED','ROOT','admin','2022-09-07 04:21:15.000000','admin','2022-09-07 09:19:33.654000','DIRECTORY','/基础数据目录','三区机关','001','org','','','','','',null,1);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('44bb81ed-7c17-4bde-b850-36dfa8cb13c5','测试目录','ROOT_BASIC_DATA','SUBMITTED','ROOT','admin','2022-12-11 19:19:20.231000','admin','2022-12-11 19:19:20.231000','DIRECTORY','/基础数据目录/测试目录','管理员','admin','user','unset','unset','unset','unset','unset',null,1);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('48f9f44a-7663-443f-9131-b79c9dbb70ea','郭鑫','cd27af6b-d3e3-462a-9e4c-c4f5adeeddbe','SUBMITTED','16703842025841001','1600386113170587650','2022-12-07 15:54:35.839000','1600386113170587650','2022-12-07 15:54:35.839000','DIRECTORY','/数据资源目录/二院/郭鑫','郭鑫','1600386113170587650','user','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('cd27af6b-d3e3-462a-9e4c-c4f5adeeddbe','二院','ROOT','SUBMITTED','ROOT','admin','2022-12-07 15:33:57.000000','admin','2022-12-08 10:08:51.940000','DIRECTORY','/数据资源目录/二院','二院','16703842025841001','org','read','unset','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('6871536f-6e79-45fe-af84-230cd53ea2ad','测试目录33','ROOT','SUBMITTED','16703787402581001','1600311669353877506','2022-12-15 06:40:08.000000','1600311669353877506','2022-12-15 06:41:17.747000','DIRECTORY','/数据资源目录/测试目录33','实习生','1600311669353877506','user','unset','unset','read,write','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('998e54a4-b7e5-46a7-8b55-c854cc11659e','给二院的目录','cd27af6b-d3e3-462a-9e4c-c4f5adeeddbe','UN_SUBMIT','ROOT','admin','2022-12-06 16:12:07.000000','admin','2022-12-06 16:13:53.473000','DIRECTORY','/数据资源目录/二院/给二院的目录','二院','16703842025841001','org','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('8b6fa2d0-6af8-45cb-b0e8-7ef6a35dc78e','二院二部','998e54a4-b7e5-46a7-8b55-c854cc11659e','UN_SUBMIT','16703842025841001','1600385053328687106','2022-12-07 15:07:21.949000','1600385053328687106','2022-12-07 15:07:21.951000','DIRECTORY','/数据资源目录/二院/给二院的目录/二院二部','二院','16703842025841001','org','unset','unset','unset','unset','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('ee9006b4-5abe-48cd-8572-193f7dc305e4','adsf','ROOT','SUBMITTED','ROOT','undefined','2023-02-08 20:20:15.917000','admin','2023-02-08 20:20:15.917000','DIRECTORY','/数据资源目录/adsf','管理员','admin','user','unset','unset','unset','unset','unset',null,1);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430434974294017','12-5','1600805346782232578','UN_SUBMIT','ROOT','admin','2023-02-14 17:43:09.393000','admin','2023-02-14 17:43:09.393000','DIRECTORY','/数据资源目录/测试部门一/12-5','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430434978488321','screen','1625430434974294017','UN_SUBMIT','ROOT','admin','2023-02-14 17:43:09.394000','admin','2023-02-14 17:43:09.394000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430556240011266','会上演示视频','1625430434978488321','UN_SUBMIT','ROOT','admin','2023-02-14 17:43:38.305000','admin','2023-02-14 17:43:38.305000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/会上演示视频','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430673521139713','分析挖掘录屏','1625430434978488321','UN_SUBMIT','ROOT','admin','2023-02-14 17:44:06.266000','admin','2023-02-14 17:44:06.266000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/分析挖掘录屏','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430906388897793','抽取转换其它系统截图','1625430434978488321','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:01.787000','admin','2023-02-14 17:45:01.787000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/抽取转换其它系统截图','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430906393092098','日常','1625430906388897793','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:01.788000','admin','2023-02-14 17:45:01.788000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/抽取转换其它系统截图/日常','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430912512581634','物资','1625430906388897793','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:03.247000','admin','2023-02-14 17:45:03.247000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/抽取转换其它系统截图/物资','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430937024094209','抽取转换','1625430434978488321','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:09.091000','admin','2023-02-14 17:45:09.091000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/抽取转换','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625430977402658817','数据安全','1625430434978488321','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:18.717000','admin','2023-02-14 17:45:18.717000','DIRECTORY','/数据资源目录/测试部门一/12-5/screen/数据安全','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
INSERT INTO "BIANMU"."B_DIRECTORY"("ID","DIRECTORY_NAME","PARENT_ID","REVIEW_STATUS","ORG_ID","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","DIRECTORY_TYPE","DIRECTORY_PATH","OWNER","OWNER_ID","OWNER_TYPE","PERMIS_EVERYONE","PERMIS_ALL_PARENT","PERMIS_PARENT","PERMIS_ALL_CHILD","PERMIS_CHILD","RESOURCE_ID","IS_BASIC_DIR") VALUES('1625431015054925826','培训','1625430434974294017','UN_SUBMIT','ROOT','admin','2023-02-14 17:45:27.695000','admin','2023-02-14 17:45:27.695000','DIRECTORY','/数据资源目录/测试部门一/12-5/培训','测试部门一','16704967108291001','org','unset','read','unset','read','unset',null,0);
SET IDENTITY_INSERT "BIANMU"."B_DIRECTORY_MEMBERS" ON;
SET IDENTITY_INSERT "BIANMU"."B_DIRECTORY_MEMBERS" OFF;
SET IDENTITY_INSERT "BIANMU"."B_DIRECTORY_TABLE" ON;
SET IDENTITY_INSERT "BIANMU"."B_DIRECTORY_TABLE" OFF;
INSERT INTO "BIANMU"."B_DRIVERS"("ID","NAME","PATH","DRIVER_CLASS","VERSION","MD5","CONN_TYPE","INNER","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('dm-driver','达梦数据库驱动(内置)','','dm.jdbc.driver.DmDriver','8.1.1.49','','JDBC',1,'2022-03-31 17:09:44.000000','2022-03-31 17:09:47.000000','sa','sa');
SET IDENTITY_INSERT "BIANMU"."B_FORM_LABEL_CONFIG" ON;
SET IDENTITY_INSERT "BIANMU"."B_FORM_LABEL_CONFIG" OFF;
SET IDENTITY_INSERT "BIANMU"."FORM_INFO" ON;
SET IDENTITY_INSERT "BIANMU"."FORM_INFO" OFF;
SET IDENTITY_INSERT "BIANMU"."MARK_TYPE" ON;
SET IDENTITY_INSERT "BIANMU"."MARK_TYPE" OFF;
INSERT INTO "BIANMU"."OAUTH_CLIENT_DETAILS"("CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","TITLE","TARGET","ICON","SORT","USER_SYNC","INSERT_URI","UPDATE_URI","DELETE_URI","VERIFY_URI","LOGOUT_URI") VALUES('123','E10ADC3949BA59ABBE56E057F20F883E',null,'all','authorization_code,refresh_token','http:/localhost:18300/dbtool','all',7200,7200,null,'true','统一查询工具','_blank','/upload/2022/09/19/b87527be200d4d5389c2016deb4ba993.png',5,'0','','','','','');
INSERT INTO "BIANMU"."OAUTH_CLIENT_DETAILS"("CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","TITLE","TARGET","ICON","SORT","USER_SYNC","INSERT_URI","UPDATE_URI","DELETE_URI","VERIFY_URI","LOGOUT_URI") VALUES('bianmu','0CE1331B040C1572F5A95F0EE54DBE53',null,'all','authorization_code,refresh_token','http://localhost:8080/bianmu/login','all',7200,7200,null,'true','编目系统','_blank','/upload/2022/09/19/7b7fe3180d564f2fab2090a464df3a36.png',1,'0','','','','','http://192.168.102.110:18080/bianmu/logout/single');
INSERT INTO "BIANMU"."OAUTH_CLIENT_DETAILS"("CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","TITLE","TARGET","ICON","SORT","USER_SYNC","INSERT_URI","UPDATE_URI","DELETE_URI","VERIFY_URI","LOGOUT_URI") VALUES('browser','052B915E573CFA9C260431F473202235',null,'all','authorization_code,refresh_token','http://localhost:8090/browser/login','all',7200,7200,null,'true','综合浏览系统','_blank','/upload/2022/09/19/c6b96231877b42cfae01632aec1641fd.png',2,'0','','','','','http://192.168.102.111:18090/browser/logout/single');
INSERT INTO "BIANMU"."OAUTH_CLIENT_DETAILS"("CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","TITLE","TARGET","ICON","SORT","USER_SYNC","INSERT_URI","UPDATE_URI","DELETE_URI","VERIFY_URI","LOGOUT_URI") VALUES('control','5E08B374444263144692F2A60DF97D03',null,'all','authorization_code,refresh_token','http://localhost:8100/control/login','all',7200,7200,null,'true','管控系统','_blank','/upload/2022/09/19/8b32b83beda24c47a0ce294c8c291fa3.png',3,'1','','','','','http://192.168.102.110:18100/control/logout/single');
INSERT INTO "BIANMU"."OAUTH_CLIENT_DETAILS"("CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","TITLE","TARGET","ICON","SORT","USER_SYNC","INSERT_URI","UPDATE_URI","DELETE_URI","VERIFY_URI","LOGOUT_URI") VALUES('desktop','0CE1331B040C1572F5A95F0EE54DBE53',null,'all','authorization_code,refresh_token','http://localhost:8000/desktop/login','all',7200,7200,null,'true','桌面应用','_blank','icon-macappstorealt',99,'1','','','','','http://192.168.102.111:18000/desktop/logout/single');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1','0','secret_level','公开','0','',1,1,'sa','2021-11-18 00:21:44.000000','sa','2021-11-18 03:18:20.000000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462615960750309378','drill_base','data_type','演习基础数据','drill_base','',1,1,'sa','2021-11-22 10:56:33.803000','sa','2021-11-22 10:56:33.803000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462616409293373441','drill_dynamic','data_type','演习动态数据','drill_dynamic','',2,1,'sa','2021-11-22 10:58:20.731000','sa','2021-11-22 10:58:20.731000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462616700394848257','drill_anaysis','data_type','演习分析评估数据','drill_anaysis','',3,1,'sa','2021-11-22 10:59:30.135000','sa','2021-11-22 10:59:30.135000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462617579097341953','comprehensive_data','data_type','综合数据','comprehensive_data','',4,1,'sa','2021-11-22 11:02:59.634000','sa','2021-11-22 11:02:59.634000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462618857080799233','management_data','data_type','基地管理数据','management_data','',5,1,'sa','2021-11-22 11:08:04.329000','sa','2021-11-22 11:08:04.330000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462618942489411585','other','data_type','其他','other','',6,1,'sa','2021-11-22 11:08:24.693000','sa','2021-11-22 11:08:24.694000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1462667219683426306','source_bachang','data_source','靶场','source_bachang','',1,1,'sa','2021-11-22 14:20:14.872000','sa','2021-11-22 14:20:14.872000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1475401958026567681','OFFICE_ONLINE_SERVER','PUBLIC_SETTING','office在线预览服务地址','http://24.47.112.32:6688/onlinePreview','office在线预览服务地址',1,1,'sa','2021-12-27 17:43:33.107000','admin','2022-03-11 11:00:01.474000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1496415081813594113','DESKTOP_LOGO_TEXT','PUBLIC_SETTING','应用桌面Logo显示文本','综合数据管理系统','',1,1,'sa','2022-02-23 17:22:12.210000','sa','2022-02-23 17:22:12.213000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1496415520894308354','OAUTH_LOGIN_TEXT','PUBLIC_SETTING','认证服务登录页面LOGO显示文本','综合数据管理系统','',1,1,'sa','2022-02-23 17:23:56.894000','sa','2022-02-23 17:23:56.894000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1524296290972176386','other','task_nature','其他','other','',99,1,'admin','2022-05-11 15:52:10.000000','admin','2022-05-11 15:52:10.000000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1524296488960102402','other','target_type','其他','other','',99,1,'admin','2022-05-11 15:52:57.000000','admin','2022-05-11 15:52:57.000000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593255919079425','实弹射击','task_nature','实弹射击',null,'',1,1,'admin','2022-09-24 16:40:42.818000','admin','2022-09-24 16:40:42.818000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593361909141506','模拟对抗','task_nature','模拟对抗',null,'',1,1,'admin','2022-09-24 16:41:08.087000','admin','2022-09-24 16:41:08.087000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593446143348737','实兵演练','task_nature','实兵演练',null,'',1,1,'admin','2022-09-24 16:41:28.171000','admin','2022-09-24 16:41:28.171000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593591601811458','网络攻防','task_nature','网络攻防',null,'',1,1,'admin','2022-09-24 16:42:02.850000','admin','2022-09-24 16:42:02.850000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593665979404289','课题研究','task_nature','课题研究',null,'',1,1,'admin','2022-09-24 16:42:20.583000','admin','2022-09-24 16:42:20.583000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593730580074497','模拟演练','task_nature','模拟演练',null,'',1,1,'admin','2022-09-24 16:42:35.986000','admin','2022-09-24 16:42:35.986000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593789564571649','推演','task_nature','推演',null,'',1,1,'admin','2022-09-24 16:42:50.048000','admin','2022-09-24 16:42:50.048000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573593980778696706','实弹打靶','task_nature','实弹打靶',null,'',1,1,'admin','2022-09-24 16:43:35.637000','admin','2022-09-24 16:43:35.637000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1573594074299092994','跟飞','task_nature','跟飞',null,'',1,1,'admin','2022-09-24 16:43:57.934000','admin','2022-09-24 16:43:57.934000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1574027034420580354','指挥推演','task_nature','指挥推演',null,'',1,1,'admin','2022-09-25 21:24:23.671000','admin','2022-09-25 21:24:23.672000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1574371492928425985','战场机动','task_nature','战场机动',null,'',1,1,'admin','2022-09-26 20:13:08.980000','admin','2022-09-26 20:13:08.980000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1574371532874977282','专题验证','task_nature','专题验证',null,'',1,1,'admin','2022-09-26 20:13:18.504000','admin','2022-09-26 20:13:18.504000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1574371593067433986','实弹检验','task_nature','实弹检验',null,'',1,1,'admin','2022-09-26 20:13:32.855000','admin','2022-09-26 20:13:32.855000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1574377773370183682','实兵对抗','task_nature','实兵对抗',null,'',1,1,'admin','2022-09-26 20:38:06.354000','admin','2022-09-26 20:38:06.354000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1600770594628976641','基地','data_source','基地',null,'',2,1,'admin','2022-12-08 16:33:45.296000','admin','2022-12-08 16:33:45.296000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1604412071963959298','erbu_jna_address','PUBLIC_SETTING','二部文件解析服务地址','http://192.168.102.110:9059/jna/calljna','',4,1,'admin','2022-12-18 17:43:41.149000','admin','2022-12-18 17:43:41.151000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1625434392686063618','其他','task_code','其他',null,'',99,1,'admin','2023-02-14 17:58:52.984000','admin','2023-02-14 17:58:52.984000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1625435499437060098','其他','troop_code','其他',null,'',99,1,'admin','2023-02-14 18:03:16.854000','admin','2023-02-14 18:03:16.855000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1625436199743221761','其他','equipment_model','其他',null,'',99,1,'admin','2023-02-14 18:06:03.821000','admin','2023-02-14 18:06:03.821000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('1625436267909050369','其他','missile_number','其他',null,'',99,1,'admin','2023-02-14 18:06:20.072000','admin','2023-02-14 18:06:20.072000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('2','1','secret_level','内部','1','',2,0,'sa','2021-11-18 00:21:46.000000','sa','2021-11-22 17:21:50.395000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('3','2','secret_level','秘密','2',null,3,1,'sa','2021-11-18 00:21:46.000000','sa','2021-11-18 00:21:59.000000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('4','3','secret_level','机密','3',null,4,1,'sa','2021-11-18 00:21:47.000000','sa','2021-11-18 00:22:00.000000');
INSERT INTO "BIANMU"."SYS_DICT"("ID","DICT_CODE","TYPE_ID","DICT_NAME","DICT_VALUE","DICT_DESC","DICT_ORDER","DICT_STATE","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME") VALUES('5','4','secret_level','绝密','4',null,5,1,'sa','2021-11-18 00:21:48.000000','sa','2021-11-18 00:22:00.000000');
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('PUBLIC_SETTING','系统公共配置','sa','2021-12-27 17:41:02.372000','sa','2021-12-27 17:41:02.389000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('data_source','数据来源','sa','2021-11-22 10:45:42.286000','sa','2021-11-22 10:45:42.286000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('data_type','数据类型','sa','2021-11-22 10:45:24.348000','sa','2021-11-22 10:45:24.348000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('equipment_model','装备型号','sa','2022-04-02 17:07:33.688000','sa','2022-04-02 17:07:33.688000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('missile_number','导弹编号','sa','2022-04-02 17:07:33.688000','sa','2022-04-02 17:07:33.688000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('secret_level','密级','sa','2021-11-18 00:12:15.000000','sa','2021-11-18 00:12:19.000000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('target_type','目标/靶标类型','admin','2022-05-10 16:44:28.000000','admin','2022-05-10 16:44:28.000000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('task_code','任务代号','sa','2022-04-02 17:07:33.688000','sa','2022-04-02 17:07:33.688000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('task_nature','任务性质','admin','2022-05-10 16:44:55.000000','admin','2022-05-10 16:44:55.000000',null);
INSERT INTO "BIANMU"."SYS_DICT_TYPE"("ID","NAME","CREATE_USER","CREATE_TIME","MODIFY_USER","MODIFY_TIME","REMARK") VALUES('troop_code','部队代号','sa','2022-04-02 17:07:33.688000','sa','2022-04-02 17:07:33.688000',null);
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('35cb950cebb04bb18bb1d8b742a02005','资源注册','/business/metadata/','BIANMU',2,'2019-09-11 18:05:21','2022-09-26 22:58:08',null,'admin','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('35cb950cebb04bb18bb1d8b742a02xaa','部门管理','/sys/org/','35cb950cebb04bb18bb1d8b742a02xxx',2,'2019-09-10 10:08:58','2021-08-26 14:48:52',null,'sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('35cb950cebb04bb18bb1d8b742a02xcc','菜单管理','/sys/menu/','35cb950cebb04bb18bb1d8b742a02xxx',4,'2019-09-10 10:08:58','2021-05-20 15:32:41',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('35cb950cebb04bb18bb1d8b742a02xxx','系统管理','/sys','CONTROL',9,'2019-09-10 10:08:58','2021-05-24 11:50:48',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('35cb950cebb04bb18bb1d8b742a02xzz','用户管理','/sys/sysUser/','35cb950cebb04bb18bb1d8b742a02xxx',1,'2019-09-10 10:08:58','2021-05-12 16:37:25',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('74315e162f524a4d88aa931f02416f26','实时监控','/monitor','35cb950cebb04bb18bb1d8b742a02xxx',7,'2020-06-10 15:07:07','2021-05-20 08:57:03',null,'admin','1','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('914aa22c78af4327822061f3eada4067','实时日志','/logging','35cb950cebb04bb18bb1d8b742a02xxx',8,'2019-09-11 11:19:52','2021-05-20 08:57:13',null,'admin','1','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('bcf17dc0ce304f0ba02d64ce21ddb4f9','系统设置','/sys/sysSetting/setting','35cb950cebb04bb18bb1d8b742a02xxx',9,'2019-09-17 10:46:11','2021-05-24 13:29:04',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('d6d8b301316b43f2a9fb33caf1286376','新增测试','/aa','35cb950cebb04bb18bb1d8b742a02xxx',9,'2020-10-30 17:02:15','2021-05-20 08:57:22',null,'admin','1','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('d6d8b301316b43f2a9fb33caf1286365','角色管理','/sys/role/','35cb950cebb04bb18bb1d8b742a02xxx',3,'2019-09-10 10:08:58','2021-05-20 15:32:34',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1394608708724883458','数据源管理','/business/datasource/index','CONTROL',3,'2021-05-18 19:00:01','2021-12-15 14:49:53','admin','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1395181308886904834','权限管理','/sys/permissions/','35cb950cebb04bb18bb1d8b742a02xxx',5,'2021-05-20 08:55:20','2021-05-20 08:55:20','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1395683641940930561','元数据注册','/business/metadata/','35cb950cebb04bb18bb1d8b742a02005',1,'2021-05-21 18:11:25','2021-08-23 18:26:32','admin','sa','1','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('ROOT','系统菜单根目录','/','-',0,'2019-09-10 10:08:58','2021-05-18 18:57:58',null,'admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1398212349469814786','目录整编','/business/directory/','BIANMU',1,'2021-05-28 17:39:36','2022-09-26 22:58:00','admin','admin','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1398220652371406850','资源审核','/business/review/','CONTROL',1,'2021-05-28 18:12:36','2021-08-28 18:09:37','admin','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1398220873180540930','数据资源审核','/business/review/metadata','1398220652371406850',1,'2021-05-28 18:13:29','2022-03-23 11:40:08','admin','sa','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1398220980760244226','资源目录审核','/business/review/directory','1398220652371406850',2,'2021-05-28 18:13:54','2022-03-23 11:40:21','admin','sa','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1398221289695899650','关联关系分析','/business/analysis/','BIANMU',4,'2021-05-28 18:15:08','2021-05-28 18:17:19','admin','admin','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('BIANMU','数据分类编目','/bianmu','ROOT',1,'2021-08-24 14:53:08','2021-08-24 14:53:08','sa','sa','0','BIANMU');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('BROWSER','数据综合浏览','/browser','ROOT',2,'2021-08-24 14:54:07','2021-08-24 14:54:07','sa','sa','0','BROWSER');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('CONTROL','数据管控','/control','ROOT',3,'2021-08-24 14:54:37','2021-08-24 14:54:37','sa','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1430502156178780162','目录管理','/business/directory/','CONTROL',2,'2021-08-25 20:07:46','2021-08-28 18:23:42','sa','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1461008460238610433','数据字典','/sys/dict/','35cb950cebb04bb18bb1d8b742a02xxx',6,'2021-11-18 00:28:56','2021-11-18 00:28:56','sa','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1465521243592024066','客户端管理','/sys/oauth/client/','35cb950cebb04bb18bb1d8b742a02xxx',7,'2021-11-30 11:21:07','2021-11-30 11:21:07','sa','sa','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1525058137475338242','表单置标配置','/mark/view/config','35cb950cebb04bb18bb1d8b742a02xxx',7,'2022-05-13 18:19:29','2022-05-13 18:19:29','admin','admin','1','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1525054211350941698','置标类型管理','/data-label/manager/view/index','35cb950cebb04bb18bb1d8b742a02xxx',6,'2022-05-13 18:03:53','2023-01-13 15:41:49','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1569588347926491137','基础数据管理','/dynamic-form','CONTROL',4,'2022-09-13 15:26:38','2022-10-31 16:43:29','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1569589135918772225','表单维护','/dynamic-form/view/form/list','1569588347926491137',9,'2022-09-13 15:29:46','2022-11-14 10:37:16','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1569590220817444866','数据管理','/dynamic-data/view/data/list/','1569588347926491137',2,'2022-09-13 15:34:05','2022-11-14 10:37:36','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1587002190982574082','基础数据目录','/basic-data/view/index','CONTROL',3,'2022-10-31 16:43:02','2022-10-31 16:49:21','admin','admin','1','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1591983469444546561','数据目录','/basic-data/view/index','1569588347926491137',1,'2022-11-14 10:36:51','2022-11-14 10:36:51','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('1','用户表(测试)管理','/dynamic-data/view/data/list/1','1569590220817444866',0,'2022-12-10 19:01:44','2023-02-14 00:48:58','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_MENU"("MENU_ID","MENU_NAME","MENU_PATH","MENU_PARENT_ID","SORT_WEIGHT","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER","IS_DELETE","SYSTEM") VALUES('2','测试123管理','/dynamic-data/view/data/list/2','1569590220817444866',0,'2023-02-14 01:05:27','2023-02-14 01:05:27','admin','admin','0','CONTROL');
INSERT INTO "BIANMU"."SYS_ORG"("ID","ORG_NUMBER","ORG_NAME","ORG_SHORT_NAME","ORG_PARENT_ID","ORG_PATH","REMARK","SORT","IS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER","ORG_PARENT_NAME","LEADER_NAME","LEADER_USER_ID") VALUES('ROOT','000000','部门根节点','部门根节点',null,'ROOT','部门根节点',0,'0','2021-05-12 14:57:48.000000','sa','2021-05-12 14:58:03.000000','sa',null,'张三','1519219458585751553');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1513837482408206337','test','test','SPECIAL','0','0','0','0','2022-04-12 19:12:36.203000','admin','2022-04-12 19:12:36.203000','admin');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1600804148310196226','ad','高权限','ALL_SCOPE','0','0','0','0','2022-12-08 18:47:05.118000','admin','2022-12-08 18:47:05.118000','admin');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('PERMIS_ONLY_ORG','本级部门管理权限','仅可对本级部门数据进行增删改查操作','ONLY_CURRENT_ORG','1','1','1','1','2021-05-21 14:02:57.612000','admin','2021-05-21 14:02:57.612000','admin');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('PERMIS_ONLY_SELF','普通用户权限','仅可对当前用户数据进行增删改查操作','ONLY_SELF','1','1','1','1','2021-05-21 14:45:54.428000','admin','2021-05-21 14:45:54.428000','admin');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('PERMIS_ORG_LEADER','部门数据管理权限','可对当前部门及子部门数据进行增删改查','CURRENT_ORG_CHILDRENS','1','1','1','1','2021-05-21 13:12:19.840000','admin','2021-06-09 11:58:15.516000','1402430112333717505');
INSERT INTO "BIANMU"."SYS_PERMISSIONS"("PERMIS_ID","PERMIS_NAME","PERMIS_REMARK","PERMIS_SCOPE","HAS_SELECT","HAS_ADD","HAS_EDIT","HAS_DELETE","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('PERMIS_ROOT','超级管理权限','系统最高权限,可操作所有数据','ALL_SCOPE','1','1','1','1','2021-05-21 13:09:00.867000','admin','2021-05-21 13:09:00.869000','admin');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('1507891625389215746','test1','test1','2022-03-27 09:25:53','2022-03-27 09:25:53',null,'sa','sa');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('1510170192173154306','test2','123','2022-04-02 16:20:06','2022-04-28 16:35:36',null,'sa','admin');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('1519596232532348929','test3','test3','2022-04-28 16:35:49','2022-04-28 16:36:03',null,'admin','admin');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('1600804431832563714','ROLE_ad','admin','2022-12-08 18:48:13','2022-12-08 18:48:13',null,'admin','admin');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('3fb1c570496d4c09ab99b8d31b06ccc','ROLE_USER','普通用户','2019-09-10 10:08:58','2021-10-21 01:52:26','',null,'sa');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('3fb1c570496d4c09ab99b8d31b06xxx','ROLE_ADMIN','部门管理员','2019-09-10 10:08:58','2022-04-12 19:12:13','/sys/**',null,'admin');
INSERT INTO "BIANMU"."SYS_ROLE"("ROLE_ID","ROLE_NAME","ROLE_REMARK","CREATE_TIME","MODIFY_TIME","ROLE_CONTENT","CREATE_USER","MODIFY_USER") VALUES('3fb1c570496d4c09ab99b8d31b06zzz','ROLE_SA','超级管理员','2019-09-10 10:08:58','2022-03-27 18:54:22','/sys/**,/logging',null,'sa');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138546384898','1510170192173154306','CONTROL','2022-04-28 16:35:26.818000','admin','2022-04-28 16:35:26.818000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138550579202','1510170192173154306','1398220652371406850','2022-04-28 16:35:26.819000','admin','2022-04-28 16:35:26.819000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138550579203','1510170192173154306','1398220873180540930','2022-04-28 16:35:26.819000','admin','2022-04-28 16:35:26.819000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138554773506','1510170192173154306','1398220980760244226','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138554773507','1510170192173154306','1430502156178780162','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138554773508','1510170192173154306','1394608708724883458','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138554773509','1510170192173154306','35cb950cebb04bb18bb1d8b742a02xxx','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138554773510','1510170192173154306','35cb950cebb04bb18bb1d8b742a02xzz','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967810','1510170192173154306','35cb950cebb04bb18bb1d8b742a02xaa','2022-04-28 16:35:26.820000','admin','2022-04-28 16:35:26.820000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967811','1510170192173154306','d6d8b301316b43f2a9fb33caf1286365','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967812','1510170192173154306','35cb950cebb04bb18bb1d8b742a02xcc','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967813','1510170192173154306','1395181308886904834','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967814','1510170192173154306','1461008460238610433','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967815','1510170192173154306','1465521243592024066','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967816','1510170192173154306','74315e162f524a4d88aa931f02416f26','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967817','1510170192173154306','914aa22c78af4327822061f3eada4067','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138558967818','1510170192173154306','d6d8b301316b43f2a9fb33caf1286376','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596138563162113','1510170192173154306','bcf17dc0ce304f0ba02d64ce21ddb4f9','2022-04-28 16:35:26.821000','admin','2022-04-28 16:35:26.821000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230017','1519596232532348929','CONTROL','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230018','1519596232532348929','1398220652371406850','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230019','1519596232532348929','1398220873180540930','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230020','1519596232532348929','1398220980760244226','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230021','1519596232532348929','1430502156178780162','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230022','1519596232532348929','1394608708724883458','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273414230023','1519596232532348929','35cb950cebb04bb18bb1d8b742a02xxx','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424321','1519596232532348929','35cb950cebb04bb18bb1d8b742a02xzz','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424322','1519596232532348929','35cb950cebb04bb18bb1d8b742a02xaa','2022-04-28 16:35:58.973000','admin','2022-04-28 16:35:58.973000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424323','1519596232532348929','d6d8b301316b43f2a9fb33caf1286365','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424324','1519596232532348929','35cb950cebb04bb18bb1d8b742a02xcc','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424325','1519596232532348929','1395181308886904834','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424326','1519596232532348929','1461008460238610433','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424327','1519596232532348929','1465521243592024066','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424328','1519596232532348929','74315e162f524a4d88aa931f02416f26','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424329','1519596232532348929','914aa22c78af4327822061f3eada4067','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424330','1519596232532348929','d6d8b301316b43f2a9fb33caf1286376','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596273418424331','1519596232532348929','bcf17dc0ce304f0ba02d64ce21ddb4f9','2022-04-28 16:35:58.974000','admin','2022-04-28 16:35:58.974000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497496887298','3fb1c570496d4c09ab99b8d31b06xxx','BIANMU','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081602','3fb1c570496d4c09ab99b8d31b06xxx','35cb950cebb04bb18bb1d8b742a02005','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081603','3fb1c570496d4c09ab99b8d31b06xxx','1395683641940930561','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081604','3fb1c570496d4c09ab99b8d31b06xxx','1398212349469814786','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081605','3fb1c570496d4c09ab99b8d31b06xxx','1398221289695899650','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081606','3fb1c570496d4c09ab99b8d31b06xxx','BROWSER','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081607','3fb1c570496d4c09ab99b8d31b06xxx','CONTROL','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081608','3fb1c570496d4c09ab99b8d31b06xxx','1398220652371406850','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081609','3fb1c570496d4c09ab99b8d31b06xxx','1398220873180540930','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081610','3fb1c570496d4c09ab99b8d31b06xxx','1398220980760244226','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081611','3fb1c570496d4c09ab99b8d31b06xxx','1430502156178780162','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081612','3fb1c570496d4c09ab99b8d31b06xxx','1394608708724883458','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081613','3fb1c570496d4c09ab99b8d31b06xxx','35cb950cebb04bb18bb1d8b742a02xxx','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081614','3fb1c570496d4c09ab99b8d31b06xxx','35cb950cebb04bb18bb1d8b742a02xzz','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1521752497501081615','3fb1c570496d4c09ab99b8d31b06xxx','35cb950cebb04bb18bb1d8b742a02xaa','2022-05-04 15:24:02.855000','admin','2022-05-04 15:24:02.855000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1574412977128345601','3fb1c570496d4c09ab99b8d31b06xxx','1398212349469814786','2022-09-26 22:57:59.584000','admin','2022-09-26 22:57:59.584000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1574413010485645314','3fb1c570496d4c09ab99b8d31b06xxx','35cb950cebb04bb18bb1d8b742a02005','2022-09-26 22:58:07.537000','admin','2022-09-26 22:58:07.537000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1578649323611136002','3fb1c570496d4c09ab99b8d31b06ccc','1398212349469814786','2022-10-08 15:31:43.293000','admin','2022-10-08 15:31:43.293000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1578649323611136003','3fb1c570496d4c09ab99b8d31b06ccc','35cb950cebb04bb18bb1d8b742a02005','2022-10-08 15:31:43.293000','admin','2022-10-08 15:31:43.293000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1578649323611136004','3fb1c570496d4c09ab99b8d31b06ccc','BROWSER','2022-10-08 15:31:43.293000','admin','2022-10-08 15:31:43.293000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844169261057','3fb1c570496d4c09ab99b8d31b06zzz','BIANMU','2022-12-10 16:43:35.099000','admin','2022-12-10 16:43:35.099000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844173455361','3fb1c570496d4c09ab99b8d31b06zzz','1398212349469814786','2022-12-10 16:43:35.100000','admin','2022-12-10 16:43:35.100000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844177649666','3fb1c570496d4c09ab99b8d31b06zzz','35cb950cebb04bb18bb1d8b742a02005','2022-12-10 16:43:35.101000','admin','2022-12-10 16:43:35.101000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844177649667','3fb1c570496d4c09ab99b8d31b06zzz','1398221289695899650','2022-12-10 16:43:35.101000','admin','2022-12-10 16:43:35.101000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844181843970','3fb1c570496d4c09ab99b8d31b06zzz','BROWSER','2022-12-10 16:43:35.102000','admin','2022-12-10 16:43:35.102000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844181843971','3fb1c570496d4c09ab99b8d31b06zzz','CONTROL','2022-12-10 16:43:35.102000','admin','2022-12-10 16:43:35.102000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844181843972','3fb1c570496d4c09ab99b8d31b06zzz','1398220652371406850','2022-12-10 16:43:35.102000','admin','2022-12-10 16:43:35.102000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844186038274','3fb1c570496d4c09ab99b8d31b06zzz','1398220873180540930','2022-12-10 16:43:35.103000','admin','2022-12-10 16:43:35.103000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844186038275','3fb1c570496d4c09ab99b8d31b06zzz','1398220980760244226','2022-12-10 16:43:35.103000','admin','2022-12-10 16:43:35.103000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844186038276','3fb1c570496d4c09ab99b8d31b06zzz','1430502156178780162','2022-12-10 16:43:35.103000','admin','2022-12-10 16:43:35.103000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844190232577','3fb1c570496d4c09ab99b8d31b06zzz','1394608708724883458','2022-12-10 16:43:35.104000','admin','2022-12-10 16:43:35.104000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844190232578','3fb1c570496d4c09ab99b8d31b06zzz','1569588347926491137','2022-12-10 16:43:35.104000','admin','2022-12-10 16:43:35.104000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844190232579','3fb1c570496d4c09ab99b8d31b06zzz','1591983469444546561','2022-12-10 16:43:35.104000','admin','2022-12-10 16:43:35.104000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844194426882','3fb1c570496d4c09ab99b8d31b06zzz','1569590220817444866','2022-12-10 16:43:35.105000','admin','2022-12-10 16:43:35.105000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844194426883','3fb1c570496d4c09ab99b8d31b06zzz','1569589135918772225','2022-12-10 16:43:35.105000','admin','2022-12-10 16:43:35.105000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844194426884','3fb1c570496d4c09ab99b8d31b06zzz','35cb950cebb04bb18bb1d8b742a02xxx','2022-12-10 16:43:35.105000','admin','2022-12-10 16:43:35.105000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844198621186','3fb1c570496d4c09ab99b8d31b06zzz','35cb950cebb04bb18bb1d8b742a02xzz','2022-12-10 16:43:35.106000','admin','2022-12-10 16:43:35.106000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844198621187','3fb1c570496d4c09ab99b8d31b06zzz','35cb950cebb04bb18bb1d8b742a02xaa','2022-12-10 16:43:35.106000','admin','2022-12-10 16:43:35.106000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844202815490','3fb1c570496d4c09ab99b8d31b06zzz','d6d8b301316b43f2a9fb33caf1286365','2022-12-10 16:43:35.107000','admin','2022-12-10 16:43:35.107000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844202815491','3fb1c570496d4c09ab99b8d31b06zzz','35cb950cebb04bb18bb1d8b742a02xcc','2022-12-10 16:43:35.107000','admin','2022-12-10 16:43:35.107000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844202815492','3fb1c570496d4c09ab99b8d31b06zzz','1395181308886904834','2022-12-10 16:43:35.107000','admin','2022-12-10 16:43:35.107000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844202815493','3fb1c570496d4c09ab99b8d31b06zzz','1525054211350941698','2022-12-10 16:43:35.107000','admin','2022-12-10 16:43:35.107000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844207009793','3fb1c570496d4c09ab99b8d31b06zzz','1461008460238610433','2022-12-10 16:43:35.108000','admin','2022-12-10 16:43:35.108000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844207009794','3fb1c570496d4c09ab99b8d31b06zzz','1525058137475338242','2022-12-10 16:43:35.108000','admin','2022-12-10 16:43:35.108000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844207009795','3fb1c570496d4c09ab99b8d31b06zzz','1465521243592024066','2022-12-10 16:43:35.108000','admin','2022-12-10 16:43:35.108000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601497844207009796','3fb1c570496d4c09ab99b8d31b06zzz','bcf17dc0ce304f0ba02d64ce21ddb4f9','2022-12-10 16:43:35.108000','admin','2022-12-10 16:43:35.108000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601532609006104578','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-10 19:01:43.682000','admin','2022-12-10 19:01:43.682000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601532609014493185','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-10 19:01:43.683000','admin','2022-12-10 19:01:43.683000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601533685767827457','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-10 19:06:00.402000','admin','2022-12-10 19:06:00.402000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601533685772021761','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-10 19:06:00.403000','admin','2022-12-10 19:06:00.403000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601537301257781249','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-10 19:20:22.402000','admin','2022-12-10 19:20:22.402000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601537301266169857','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-10 19:20:22.403000','admin','2022-12-10 19:20:22.403000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601537961978101762','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-10 19:22:59.929000','admin','2022-12-10 19:22:59.929000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601537961982296066','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-10 19:22:59.931000','admin','2022-12-10 19:22:59.931000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601562156841779202','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-10 20:59:08.435000','admin','2022-12-10 20:59:08.435000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601562156850167810','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-10 20:59:08.436000','admin','2022-12-10 20:59:08.436000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601881440717631489','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-11 18:07:51.643000','admin','2022-12-11 18:07:51.643000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601881440726020097','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-11 18:07:51.645000','admin','2022-12-11 18:07:51.645000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601913455521267714','3fb1c570496d4c09ab99b8d31b06xxx','1','2022-12-11 20:15:04.567000','admin','2022-12-11 20:15:04.567000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1601913455529656322','3fb1c570496d4c09ab99b8d31b06zzz','1','2022-12-11 20:15:04.568000','admin','2022-12-11 20:15:04.569000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166530','1600804431832563714','BIANMU','2022-12-15 06:49:54.118000','admin','2022-12-15 06:49:54.118000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166531','1600804431832563714','1398212349469814786','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166532','1600804431832563714','35cb950cebb04bb18bb1d8b742a02005','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166533','1600804431832563714','1398221289695899650','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166534','1600804431832563714','BROWSER','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166535','1600804431832563714','CONTROL','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166536','1600804431832563714','1398220652371406850','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166537','1600804431832563714','1398220873180540930','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166538','1600804431832563714','1398220980760244226','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166539','1600804431832563714','1430502156178780162','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166540','1600804431832563714','1394608708724883458','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166541','1600804431832563714','1569588347926491137','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166542','1600804431832563714','1591983469444546561','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166543','1600804431832563714','1569590220817444866','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166544','1600804431832563714','1','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166545','1600804431832563714','1569589135918772225','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166546','1600804431832563714','35cb950cebb04bb18bb1d8b742a02xxx','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166547','1600804431832563714','35cb950cebb04bb18bb1d8b742a02xzz','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166548','1600804431832563714','35cb950cebb04bb18bb1d8b742a02xaa','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166549','1600804431832563714','d6d8b301316b43f2a9fb33caf1286365','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166550','1600804431832563714','35cb950cebb04bb18bb1d8b742a02xcc','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166551','1600804431832563714','1395181308886904834','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166552','1600804431832563714','1525054211350941698','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166553','1600804431832563714','1461008460238610433','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166554','1600804431832563714','1525058137475338242','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166555','1600804431832563714','1465521243592024066','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1603160378278166556','1600804431832563714','bcf17dc0ce304f0ba02d64ce21ddb4f9','2022-12-15 06:49:54.119000','admin','2022-12-15 06:49:54.119000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623125841317830657','3fb1c570496d4c09ab99b8d31b06xxx','2','2023-02-08 09:05:31.448000','admin','2023-02-08 09:05:31.448000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623125841317830658','3fb1c570496d4c09ab99b8d31b06zzz','2','2023-02-08 09:05:31.450000','admin','2023-02-08 09:05:31.450000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623250576643026946','3fb1c570496d4c09ab99b8d31b06xxx','1525054211350941698','2023-02-08 17:21:10.668000','admin','2023-02-08 17:21:10.668000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623250576643026947','3fb1c570496d4c09ab99b8d31b06zzz','1525054211350941698','2023-02-08 17:21:10.670000','admin','2023-02-08 17:21:10.670000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623295194063532033','3fb1c570496d4c09ab99b8d31b06xxx','3','2023-02-08 20:18:28.289000','admin','2023-02-08 20:18:28.289000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623295194067726338','3fb1c570496d4c09ab99b8d31b06zzz','3','2023-02-08 20:18:28.289000','admin','2023-02-08 20:18:28.289000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623309601015427073','3fb1c570496d4c09ab99b8d31b06xxx','3','2023-02-08 21:15:43.174000','admin','2023-02-08 21:15:43.174000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_MENU"("RM_ID","ROLE_ID","MENU_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1623309601023815681','3fb1c570496d4c09ab99b8d31b06zzz','3','2023-02-08 21:15:43.175000','admin','2023-02-08 21:15:43.175000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1395632845882814465','3fb1c570496d4c09ab99b8d31b06ccc','PERMIS_ONLY_SELF','2021-05-21 14:49:34.720000','admin','2021-05-21 14:49:34.720000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1501793827853627393','3fb1c570496d4c09ab99b8d31b06ccc','PERMIS_ONLY_ORG','2022-03-10 13:35:25.198000','admin','2022-03-10 13:35:25.200000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1508034649071116290','3fb1c570496d4c09ab99b8d31b06zzz','PERMIS_ROOT','2022-03-27 18:54:12.925000','sa','2022-03-27 18:54:12.928000','sa');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1508034651017273345','3fb1c570496d4c09ab99b8d31b06zzz','PERMIS_ORG_LEADER','2022-03-27 18:54:13.389000','sa','2022-03-27 18:54:13.389000','sa');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1508034653030539265','3fb1c570496d4c09ab99b8d31b06zzz','PERMIS_ONLY_ORG','2022-03-27 18:54:13.868000','sa','2022-03-27 18:54:13.868000','sa');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1508034655513567233','3fb1c570496d4c09ab99b8d31b06zzz','PERMIS_ONLY_SELF','2022-03-27 18:54:14.461000','sa','2022-03-27 18:54:14.461000','sa');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1513837271359217665','3fb1c570496d4c09ab99b8d31b06xxx','PERMIS_ONLY_ORG','2022-04-12 19:11:45.885000','admin','2022-04-12 19:11:45.885000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1513837281740120066','3fb1c570496d4c09ab99b8d31b06xxx','PERMIS_ONLY_SELF','2022-04-12 19:11:48.361000','admin','2022-04-12 19:11:48.361000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1513837370193797121','3fb1c570496d4c09ab99b8d31b06xxx','PERMIS_ORG_LEADER','2022-04-12 19:12:09.449000','admin','2022-04-12 19:12:09.449000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596169798144001','1510170192173154306','PERMIS_ONLY_SELF','2022-04-28 16:35:34.269000','admin','2022-04-28 16:35:34.269000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1519596282499092482','1519596232532348929','PERMIS_ONLY_ORG','2022-04-28 16:36:01.138000','admin','2022-04-28 16:36:01.138000','admin');
INSERT INTO "BIANMU"."SYS_ROLE_PERMISSIONS"("RP_ID","ROLE_ID","PERMIS_ID","CREATE_TIME","CREATE_USER","MODIFY_TIME","MODIFY_USER") VALUES('1578649293248569345','3fb1c570496d4c09ab99b8d31b06ccc','PERMIS_ORG_LEADER','2022-10-08 15:31:36.054000','admin','2022-10-08 15:31:36.054000','admin');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('BIANMU','数据分类编目分系统','','数据分类编目分系统','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/bianmu','http://192.168.102.110:18080/bianmu');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('BROWSER','数据综合浏览分系统','','数据综合浏览分系统','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/browser','http://192.168.102.111:18090/browser');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('CONTROL','数据管控分系统','','数据管控分系统','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/control','http://192.168.102.110:18100/control');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('DESKTOP','训练综合数据管理系统','','防空兵实战化训练综合数据管理系统','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/desktop','http://192.168.102.111:18000/desktop');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('OAUTH','统一认证服务','','统一认证服务','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/oauth-server','http://192.168.102.109:18888/oauth-server');
INSERT INTO "BIANMU"."SYS_SETTING"("ID","SYS_NAME","SYS_LOGO","SYS_BOTTOM_TEXT","SYS_NOTICE_TEXT","CREATE_TIME","MODIFY_TIME","USER_INIT_PASSWORD","SYS_COLOR","SYS_API_ENCRYPT","CREATE_USER","MODIFY_USER","SYS_ADDRESS","SYS_INTERNAL_ADDRESS") VALUES('DBTOOL','统一查询服务','','统一查询服务','<长文本>','2019-09-17 00:00:00','2021-05-14 12:34:11','123456','','1',null,'admin','http://24.47.112.32:6688/dbtool','http://192.168.102.109:18300/dbtool');
INSERT INTO "BIANMU"."SYS_USER"("USER_ID","LOGIN_NAME","USER_NAME","PASSWORD","VALID","LIMITED_IP","EXPIRED_TIME","LAST_CHANGE_PWD_TIME","LIMIT_MULTI_LOGIN","CREATE_TIME","MODIFY_TIME","ORG_ID","CREATE_USER","MODIFY_USER","IS_DELETE","ORG_LEADER") VALUES('sa','sa','超级管理员','E10ADC3949BA59ABBE56E057F20F883E','1','',null,'2019-09-17 12:00:36.000000','1','2019-07-19 16:36:03.000000','2021-05-12 16:00:36.000000','ROOT','sa','sa','0',null);
INSERT INTO "BIANMU"."SYS_USER"("USER_ID","LOGIN_NAME","USER_NAME","PASSWORD","VALID","LIMITED_IP","EXPIRED_TIME","LAST_CHANGE_PWD_TIME","LIMIT_MULTI_LOGIN","CREATE_TIME","MODIFY_TIME","ORG_ID","CREATE_USER","MODIFY_USER","IS_DELETE","ORG_LEADER") VALUES('admin','admin','管理员','E10ADC3949BA59ABBE56E057F20F883E','1','',null,'2019-09-17 12:00:36.000000','1','2019-07-19 16:36:03.000000','2021-05-11 11:43:10.000000','ROOT','sa','sa','0',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1471057110209306626','sa','bianmu','2021-12-15 17:58:41',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1471057111727644674','sa','browser','2021-12-15 17:58:41',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1471057113870934017','sa','control','2021-12-15 17:58:42',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1493949183244759042','sa','dbtool','2022-02-16 22:03:36',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1493949183244759043','sa','bigdata','2022-02-16 22:03:36',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1501401225761259522','sa','demo','2022-03-09 11:35:22',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1501401237660499970','sa','xiwang','2022-03-09 11:35:24',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597121875824641','sa','jms','2022-03-23 19:42:00',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597139739365377','admin','dbtool','2022-03-23 19:42:04',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597142297890818','admin','bianmu','2022-03-23 19:42:05',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597145019994113','admin','guiling','2022-03-23 19:42:05',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597147041648641','admin','browser','2022-03-23 19:42:06',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597149566619650','admin','control','2022-03-23 19:42:06',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597153739952130','admin','bigdata','2022-03-23 19:42:07',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597158877974529','admin','demo','2022-03-23 19:42:09',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597161105149954','admin','xiwang','2022-03-23 19:42:09',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597163055501314','admin','database_audit','2022-03-23 19:42:10',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1506597165064572929','admin','jms','2022-03-23 19:42:10',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1507615862769340417','sa','datasync','2022-03-26 15:10:06',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1507884140058136578','sa','yunwei','2022-03-27 08:56:09',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1507892289477562369','sa','guiling','2022-03-27 09:28:32',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1507892308024774658','sa','database_audit','2022-03-27 09:28:36',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508082982460375041','sa','111','2022-03-27 22:06:17',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508082990576353281','sa','123','2022-03-27 22:06:18',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508382626243461122','sa','765','2022-03-28 17:56:57',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508382630630703105','sa','034','2022-03-28 17:56:58',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508382633373777921','sa','823','2022-03-28 17:56:59',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810373633753089','admin','datasync','2022-03-29 22:16:40',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810382328545282','admin','123','2022-03-29 22:16:42',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810384773824514','admin','111','2022-03-29 22:16:43',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810386552209409','admin','034','2022-03-29 22:16:43',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810388527726593','admin','yunwei','2022-03-29 22:16:44',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810393263095810','admin','823','2022-03-29 22:16:45',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1508810394907262977','admin','765','2022-03-29 22:16:45',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1518047275012419585','sa','3066f77201824872a7a07526d9165607','2022-04-24 10:00:49',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1518049609411031042','sa','1b925ab0d883447593229ad59685ca00','2022-04-24 10:10:06',null,'sa',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1518383587267538946','admin','75baa9863cfe4ab88642bcc859a7cbca','2022-04-25 08:17:12',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1518383590002225153','admin','3066f77201824872a7a07526d9165607','2022-04-25 08:17:13',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1518383591507980290','admin','1b925ab0d883447593229ad59685ca00','2022-04-25 08:17:13',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1565308323576684545','admin','fortress_machine','2022-09-01 19:59:21',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1601152949134835713','sa','fortress_machine','2022-12-09 17:53:06',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1601152954390298626','sa','75baa9863cfe4ab88642bcc859a7cbca','2022-12-09 17:53:07',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1623969857659826177','admin','56463785ec05426ebad5987257f10ef0','2023-02-10 16:59:21',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_CLIENT"("USER_CLIENT_ID","USER_ID","CLIENT_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1623972418429218817','admin','ad53d234440849aea9244cb9a483918f','2023-02-10 17:09:31',null,'admin',null);
INSERT INTO "BIANMU"."SYS_USER_ROLE"("USER_ROLE_ID","USER_ID","ROLE_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('100000','sa','3fb1c570496d4c09ab99b8d31b06zzz',null,null,null,null);
INSERT INTO "BIANMU"."SYS_USER_ROLE"("USER_ROLE_ID","USER_ID","ROLE_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1442692423426117633','sa','3fb1c570496d4c09ab99b8d31b06zzz','2021-09-28 11:27:32','2021-09-28 11:27:32','sa','sa');
INSERT INTO "BIANMU"."SYS_USER_ROLE"("USER_ROLE_ID","USER_ID","ROLE_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1482969569597767682','sa','3fb1c570496d4c09ab99b8d31b06ccc','2022-01-17 14:54:32','2022-01-17 14:54:32','sa','sa');
INSERT INTO "BIANMU"."SYS_USER_ROLE"("USER_ROLE_ID","USER_ID","ROLE_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1482969641790128129','sa','3fb1c570496d4c09ab99b8d31b06xxx','2022-01-17 14:54:50','2022-01-17 14:54:50','sa','sa');
INSERT INTO "BIANMU"."SYS_USER_ROLE"("USER_ROLE_ID","USER_ID","ROLE_ID","CREATE_TIME","MODIFY_TIME","CREATE_USER","MODIFY_USER") VALUES('1519333468421349377','admin','3fb1c570496d4c09ab99b8d31b06zzz','2022-04-27 23:11:41','2022-04-27 23:11:41','admin','admin');

File diff suppressed because it is too large Load Diff

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.13.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.keyware.shandan</groupId>
<artifactId>shandan</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.boot.starter.version>2.2.13.RELEASE</spring.boot.starter.version>
<alibaba.fastjson.version>1.2.70</alibaba.fastjson.version>
<commons.beanutils.version>1.8.0</commons.beanutils.version>
<commons.collections.version>3.2.2</commons.collections.version>
<apache.commons.codec.version>1.8</apache.commons.codec.version>
<bcprov.jdk16.version>1.46</bcprov.jdk16.version>
<oshi.json.version>3.6.1</oshi.json.version>
<alibaba.druid.starter.version>1.2.6</alibaba.druid.starter.version>
<mybatis.plus.starter.version>3.4.3</mybatis.plus.starter.version>
<mybatis.plus.extension.version>3.4.3</mybatis.plus.extension.version>
<dynamic-datasource-starter.version>3.3.6</dynamic-datasource-starter.version>
<mybatis.plus.generator.version>1.4.5</mybatis.plus.generator.version>
<hutool.all.version>4.6.4</hutool.all.version>
<springframework.web.version>5.2.12.RELEASE</springframework.web.version>
<spring.security.oauth2.autoconfigure.version>2.1.3.RELEASE</spring.security.oauth2.autoconfigure.version>
<Dm8JdbcDriver18.version>8.1.1.49</Dm8JdbcDriver18.version>
<!--<elasticsearch>6.8.14</elasticsearch>
<elasticsearch.version>6.8.14</elasticsearch.version>
<spring.boot.starter.data.elasticsearch.version>2.2.13.RELEASE</spring.boot.starter.data.elasticsearch.version>
<spring.data.elasticsearch.version>3.2.13.RELEASE</spring.data.elasticsearch.version>-->
</properties>
<dependencies>
<!--lombok插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 阿里巴巴JSON插件-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${alibaba.fastjson.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- springboot web(MVC)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.starter.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springframework.web.version}</version>
<scope>compile</scope>
</dependency>
<!-- springboot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.starter.version}</version>
<scope>test</scope>
</dependency>
<!--aop 面向切面-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>${spring.boot.starter.version}</version>
</dependency>
<!-- springboot websocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>${spring.boot.starter.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring.boot.starter.version}</version>
<optional>true</optional>
</dependency>
<!-- security安全校验 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>${spring.boot.starter.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>${spring.security.oauth2.autoconfigure.version}</version>
</dependency>
<!-- thymeleaf模板 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>${spring.boot.starter.version}</version>
</dependency>
<!-- CopyUtil需要用到 -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons.beanutils.version}</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons.collections.version}</version>
</dependency>
<!-- Base64编码需要 -->
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.apache.commons.codec</artifactId>
<version>${apache.commons.codec.version}</version>
</dependency>
<!--提供更多的加密、填充方式-->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>${bcprov.jdk16.version}</version>
</dependency>
<!--https://github.com/oshi/oshi。-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-json</artifactId>
<version>${oshi.json.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${alibaba.druid.starter.version}</version>
</dependency>
<!--mybatis plus 数据持久化层-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.starter.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>${mybatis.plus.extension.version}</version>
</dependency>
<!-- mybatis plus 多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-datasource-starter.version}</version>
</dependency>
<!--基于mybatis plus的数据库反向代码生成工具-->
<dependency>
<groupId>com.github.davidfantasy</groupId>
<artifactId>mybatis-plus-generator-ui</artifactId>
<version>${mybatis.plus.generator.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.all.version}</version>
<scope>compile</scope>
</dependency>
<!--达梦数据库驱动-->
<!--达梦数据库驱动-->
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm8JdbcDriver18</artifactId>
<version>${Dm8JdbcDriver18.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<!-- 框架公共模块 -->
<module>shandan-common</module>
<!-- 统一认证服务 -->
<module>shandan-oauth</module>
<!-- 系统模块 -->
<module>shandan-system</module>
<!-- 数据分类编目子系统 -->
<module>shandan-bianmu</module>
<!-- 数据综合浏览子系统 -->
<module>shandan-browser</module>
<!-- 应用桌面子系统 -->
<module>shandan-desktop</module>
<!-- 数据管控子系统 -->
<module>shandan-control</module>
<!-- 基础数据子模块 -->
<module>shandan-basedata</module>
</modules>
</project>

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.keyware.shandan</groupId>
<artifactId>shandan</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>shandan-basedata</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--<dependency>
<groupId>com.diboot</groupId>
<artifactId>diboot-core-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>-->
<dependency>
<groupId>com.keyware.shandan</groupId>
<artifactId>shandan-common</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,11 @@
package com.keyware.shandan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@SpringBootApplication
public class BaseDataApplication {
public static void main(String[] args) {
SpringApplication.run(BaseDataApplication.class, args);
}
}

@ -0,0 +1,22 @@
package com.keyware.shandan.dynacmicform.config.mybatis;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisConfiguration {
@Bean
@ConditionalOnMissingBean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页配置
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));
return interceptor;
}
}

@ -0,0 +1,104 @@
package com.keyware.shandan.dynacmicform.config.spring;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ContextLoader;
@Component
@Lazy(false)
public class ContextHelper implements ApplicationContextAware {
private static final Logger log = LoggerFactory.getLogger(ContextHelper.class);
private static ApplicationContext APPLICATION_CONTEXT = null;
private static String DATABASE_TYPE = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
APPLICATION_CONTEXT = applicationContext;
}
public static ApplicationContext getApplicationContext() {
if (APPLICATION_CONTEXT == null) {
APPLICATION_CONTEXT = ContextLoader.getCurrentWebApplicationContext();
}
if (APPLICATION_CONTEXT == null) {
log.warn("无法获取ApplicationContext,请在Spring初始化之后调用!");
}
return APPLICATION_CONTEXT;
}
/***
* 获取指定类型的单个Bean实例
* @param clazz
* @return
*/
public static <T> T getBean(Class<T> clazz) {
try {
return getApplicationContext().getBean(clazz);
} catch (Exception e) {
log.debug("无法找到 bean: {}", clazz.getSimpleName());
return null;
}
}
/***
* 获取JdbcUrl
* @return
*/
public static String getJdbcUrl() {
Environment environment = getApplicationContext().getEnvironment();
String jdbcUrl = environment.getProperty("spring.datasource.url");
if (jdbcUrl == null) {
jdbcUrl = environment.getProperty("spring.datasource.druid.url");
}
if (jdbcUrl == null) {
String master = environment.getProperty("spring.datasource.dynamic.primary");
if (master != null) {
jdbcUrl = environment.getProperty("spring.datasource.dynamic.datasource." + master + ".url");
}
}
if (jdbcUrl == null) {
String names = environment.getProperty("spring.shardingsphere.datasource.names");
if (names != null) {
jdbcUrl = environment.getProperty("spring.shardingsphere.datasource." + names.split(",")[0] + ".url");
}
}
return jdbcUrl;
}
/**
* 获取数据库类型
*
* @return
*/
public static String getDatabaseType() {
if (DATABASE_TYPE != null) {
return DATABASE_TYPE;
}
String jdbcUrl = getJdbcUrl();
if (jdbcUrl != null) {
DbType dbType = JdbcUtils.getDbType(jdbcUrl);
DATABASE_TYPE = dbType.getDb();
if (DATABASE_TYPE.startsWith(DbType.SQL_SERVER.getDb())) {
DATABASE_TYPE = DbType.SQL_SERVER.getDb();
}
} else {
SqlSessionFactory sqlSessionFactory = getBean(SqlSessionFactory.class);
if (sqlSessionFactory != null) {
DATABASE_TYPE = sqlSessionFactory.getConfiguration().getDatabaseId();
}
}
if (DATABASE_TYPE == null) {
log.warn("无法识别数据库类型,请检查数据源配置:spring.datasource.url等");
}
return DATABASE_TYPE;
}
}

@ -0,0 +1,20 @@
package com.keyware.shandan.dynacmicform.config.web;
import com.keyware.shandan.dynacmicform.core.DefaultDynamicFormEventListener;
import com.keyware.shandan.dynacmicform.core.DynamicFormEventListener;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
@EnableAutoConfiguration
public class DynamicFormConfiguration implements WebMvcConfigurer {
@Bean
@ConditionalOnMissingBean(DynamicFormEventListener.class)
public DynamicFormEventListener dynamicFormEventListener(){
return new DefaultDynamicFormEventListener();
}
}

@ -0,0 +1,369 @@
package com.keyware.shandan.dynacmicform.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import cn.hutool.poi.excel.sax.handler.RowHandler;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.keyware.shandan.common.entity.Result;
import com.keyware.shandan.common.util.FileDownload;
import com.keyware.shandan.common.util.StreamUtil;
import com.keyware.shandan.dynacmicform.core.basic.entity.DynamicData;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.basic.entity.QueryParam;
import com.keyware.shandan.dynacmicform.core.basic.services.DynamicDataService;
import com.keyware.shandan.dynacmicform.core.basic.services.FormInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
* 动态数据前端视图接口控制器
*/
@Slf4j
@RestController
@RequestMapping("dynamic-data")
public class DynamicDataController {
@Autowired
private FormInfoService formInfoService;
@Autowired
private DynamicDataService dynamicDataService;
/**
* 动态数据视图 - 指定表单编辑视图
*
* @param mav 视图
* @param formId 表单ID
* @param id 数据ID
* @return 视图
* @throws Exception e
*/
@GetMapping("/view/data/edit/{formId}")
public ModelAndView dataListDefaultView(ModelAndView mav, @PathVariable String formId, Integer id) {
mav.setViewName("dynamicData/dataEdit");
try {
FormInfoPo formInfo = formInfoService.getById(formId);
Assert.notNull(formInfo, "没有查询到表单数据");
mav.addObject("formInfo", formInfo);
if (id != null) {
mav.addObject("dataInfo", dynamicDataService.getById(formInfo, id));
}
} catch (Exception e) {
mav.addObject("error", true);
mav.addObject("msg", e.getMessage());
}
return mav;
}
/**
* 视图 - 表单预览视图
*
* @return 视图
*/
@GetMapping("/view/data/preview/{formId}")
public ModelAndView previewView(ModelAndView mav, @PathVariable String formId, Integer id) {
mav.setViewName("dynamicData/dataPreview");
try {
FormInfoPo formInfo = formInfoService.getById(formId);
Assert.notNull(formInfo, "没有查询到表单数据");
mav.addObject("formInfo", formInfo);
Assert.notNull(id, "数据主键id为空,请检查数据");
mav.addObject("dataInfo", dynamicDataService.getById(formInfo, id));
} catch (Exception e) {
mav.addObject("error", true);
mav.addObject("msg", e.getMessage());
}
return mav;
}
/**
* 动态数据视图 - 指定表单的数据列表视图
*
* @param mav 视图
* @return 视图
*/
@GetMapping("/view/data/list/")
public ModelAndView dataListView(ModelAndView mav) {
mav.addObject("formInfo", new FormInfoPo());
mav.setViewName("dynamicData/dataList");
return mav;
}
@GetMapping("/view/data/list/{formId}")
public ModelAndView formDataListView(ModelAndView mav, @PathVariable Integer formId, @RequestParam(required = false) boolean preview) {
mav.setViewName("dynamicData/dataList");
mav.addObject("preview", preview);
mav.addObject("formInfo", formInfoService.getById(formId));
return mav;
}
/**
* 动态数据接口 - 分页查询指定表单的数据列表
*
* @param request 请求
* @param formId 表单ID
* @param current 当前页
* @param size 页大小
* @return 数据列表
*/
@PostMapping("/api/data/list/{formId}")
public Result<Page<Map<String, Object>>> dataList(HttpServletRequest request, @PathVariable String formId, int current, int size) throws Exception {
String param = request.getParameter("param");
String order = request.getParameter("order");
QueryParam queryParam = QueryParam.parse(param);
queryParam.setPage(current);
queryParam.setPageSize(size);
queryParam.parseOrder(order);
FormInfoPo formInfo = formInfoService.getById(formId);
return Result.of(dynamicDataService.pageList(formInfo, queryParam));
}
/**
* 动态数据接口 - 查询指定表单的单挑数据详细信息
*
* @param formId 表单ID
* @param id 数据ID
* @return 数据信息
* @throws Exception -
*/
@GetMapping("/api/data/get/{formId}")
public Result<Object> dataGet(@PathVariable String formId, Integer id) throws Exception {
FormInfoPo formInfoPo = formInfoService.getById(formId);
Assert.notNull(formInfoPo, "查询数据详细失败,数据库中没有找到相关表单信息");
return Result.of(dynamicDataService.getById(formInfoPo, id));
}
@PostMapping("/api/data/save/{formId}")
public Result<Object> dataSave(@PathVariable String formId, DynamicData data) throws Exception {
FormInfoPo form = formInfoService.getById(formId);
Assert.notNull(form, "没有找到相关表单信息");
return Result.of(dynamicDataService.saveOrUpdate(form, data.getData()));
}
/**
* 动态数据接口 - 删除指定表单的单条数据
*
* @param formId 表单ID
* @param id 数据ID
* @return 结果集
* @throws Exception -
*/
@PostMapping("/api/data/delete/{formId}")
public Result<Object> dataDelete(@PathVariable String formId, String id) throws Exception {
FormInfoPo formInfoPo = formInfoService.getById(formId);
Assert.notNull(formInfoPo, "查询数据详细失败,数据库中没有找到相关表单信息");
if (StringUtils.hasText(id)) {
for (String _id : id.split(",")) {
dynamicDataService.deleteById(formInfoPo, Integer.valueOf(_id));
}
return Result.of(null);
} else {
return Result.of(null, false, "参数错误");
}
}
/**
* 下载表单的Excel导入模板
*
* @param response
* @param formId
*/
@GetMapping("/api/data/download/template/{formId}")
public String downloadTemplate(HttpServletResponse response, @PathVariable String formId) {
FormInfoPo formInfo = formInfoService.getById(formId);
Assert.notNull(formInfo, "表单信息不存在");
File file = generateExcelTemplate(formInfo);
return FileDownload.download(response, file, formInfo.getFormName() + ".xlsx", true);
}
/**
* 下载Excel数据表格
*
* @param response
* @param formId
* @throws Exception
*/
@GetMapping("/api/data/download/excel/{formId}")
public String exportExcel(HttpServletResponse response, @PathVariable String formId) throws Exception {
FormInfoPo formInfo = formInfoService.getById(formId);
Assert.notNull(formInfo, "表单信息不存在");
File file = generateDatExcel(formInfo);
return FileDownload.download(response, file, formInfo.getFormName() + ".xlsx", true);
}
/**
* 导入Excel数据表格
*
* @param formId
* @param file
* @return
* @throws IOException
*/
@PostMapping("/api/data/import/excel/{formId}")
public Result<Object> importExcel(@PathVariable String formId, MultipartFile file) throws IOException {
FormInfoPo formInfo = formInfoService.getById(formId);
Assert.notNull(formInfo, "表单信息不存在");
ExcelUtil.readBySax(file.getInputStream(), -1, excelRowDataHandler(formInfo));
return Result.of(null);
}
/**
* Excel数据行解析函数
*
* @param formInfo
* @return
*/
private RowHandler excelRowDataHandler(FormInfoPo formInfo) {
List<String> tableCols = StreamUtil.as(getFormColumns(formInfo)).map(item -> item.get("column_id")).collect(Collectors.toList());
List<String> rowHeader = new ArrayList<>();
return (sheetIndex, rowIndex, rowList) -> {
List<String> strRows = null;
if (rowIndex == 1) {
rowHeader.clear();
rowHeader.addAll(parseExcelRowData(rowList));
} else if (rowIndex >= 3) {
strRows = parseExcelRowData(rowList);
Map<String, Object> map = new HashMap<>();
for (int i = 0; i < rowHeader.size(); i++) {
String head = rowHeader.get(i);
if (tableCols.contains(head)) {
map.put(head, strRows.get(i));
} else {
log.warn("基础数据导入时,数据行解析异常,数据库中没有该字段:{},已丢弃;表单:{}({}),数据:{}", head, formInfo.getFormId(), formInfo.getFormName(), String.join(",", strRows));
}
}
try {
dynamicDataService.saveOrUpdate(formInfo, map);
} catch (Exception e) {
log.error("基础数据导入时,数据插入异常,表单:{}({}),数据:{}", formInfo.getFormId(), formInfo.getFormName(), String.join(",", strRows));
}
System.out.println("formInfo = " + formInfo);
}
};
}
/**
* 生成包含数据的Excel
*
* @param formInfo
* @return
* @throws Exception
*/
private File generateDatExcel(FormInfoPo formInfo) throws Exception {
List<Object> colIds = new ArrayList<>();
List<Object> colNames = new ArrayList<>();
getFormColumns(formInfo).forEach(item -> {
colIds.add(item.get("column_id"));
colNames.add(item.get("column_name"));
});
List<List<Object>> rows = CollUtil.newArrayList(colIds, colNames);
// 加入数据
List<Map<String, Object>> dataList = dynamicDataService.list(formInfo);
Assert.isTrue(dataList.size() > 0, "没有可以导出的数据");
dataList.forEach(item -> {
List<Object> tempList = new ArrayList<>();
colIds.forEach(id -> {
tempList.add(item.get(id));
});
rows.add(tempList);
});
String filePath = System.getProperty("user.home") + File.separator + formInfo.getFormId() + ".xlsx";
File file = new File(filePath);
file.deleteOnExit();
ExcelWriter excelWriter = ExcelUtil.getWriter(file);
excelWriter.merge(colIds.size() - 1, formInfo.getFormName());
excelWriter.write(rows, true);
excelWriter.close();
return file;
}
/**
* 生成Excel模板
*
* @param formInfo
* @return
*/
private File generateExcelTemplate(FormInfoPo formInfo) {
List<String> colIds = new ArrayList<>();
List<String> colNames = new ArrayList<>();
getFormColumns(formInfo).forEach(item -> {
colIds.add(item.get("column_id"));
colNames.add(item.get("column_name"));
});
List<List<String>> rows = CollUtil.newArrayList(colIds, colNames);
String filePath = System.getProperty("user.home") + File.separator + formInfo.getFormId() + "_template.xlsx";
File file = new File(filePath);
file.deleteOnExit();
ExcelWriter excelWriter = ExcelUtil.getWriter(file);
excelWriter.merge(colIds.size() - 1, formInfo.getFormName());
excelWriter.write(rows, true);
excelWriter.close();
return file;
}
/**
* 获取表单信息的字段集合
*
* @param formInfo
* @return
*/
private List<Map<String, String>> getFormColumns(FormInfoPo formInfo) {
Assert.hasText(formInfo.getFieldConfig(), "表单配置验证失败,缺少字段配置");
JSONArray jsonArray = JSONArray.parseArray(formInfo.getFieldConfig());
return StreamUtil.as(jsonArray).map(item -> {
JSONObject json = (JSONObject) item;
Map<String, String> map = new HashMap<>();
map.put("column_id", json.getString("fieldId"));
map.put("column_name", json.getString("label"));
return map;
}).toList();
}
/**
* 解析Excel数据类型
*
* @param rowList
* @return
*/
private List<String> parseExcelRowData(List<Object> rowList) {
return StreamUtil.as(rowList).map(row -> {
if (row instanceof String) {
return (String) row;
} else if (row instanceof DateTime) {
DateTime dateTime = (DateTime) row;
return DateUtil.format(new Date(dateTime.getTime()), "yyyy-MM-dd HH:mm:ss");
} else if (row instanceof Date) {
return DateUtil.format((Date) row, "yyyy-MM-dd HH:mm:ss");
} else if (row instanceof Long) {
return ((Long) row).toString();
} else if (row instanceof Double) {
return ((Double) row).toString();
} else {
return row.toString();
}
}).collect(Collectors.toList());
}
}

@ -0,0 +1,163 @@
package com.keyware.shandan.dynacmicform.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.basic.services.DynamicFormService;
import com.keyware.shandan.dynacmicform.core.basic.services.FormInfoService;
import com.keyware.shandan.common.entity.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
/**
* 动态表单前端控制器
*/
@RestController
@RequestMapping("/dynamic-form")
public class DynamicFormController {
@Autowired
private FormInfoService formInfoService;
@Autowired
private DynamicFormService dynamicFormService;
/**
* 视图 - 表单列表视图
*
* @return 视图
*/
@GetMapping("/view/form/list")
public ModelAndView listView() {
return new ModelAndView("dynamicForm/formList");
}
/**
* 视图 - 表单编辑视图
*
* @return 视图
*/
@GetMapping("/view/form/edit")
public ModelAndView editView() {
return new ModelAndView("dynamicForm/formEdit");
}
/**
* 视图 - 表单预览视图
*
* @return 视图
*/
@GetMapping("/view/form/preview")
public ModelAndView previewView(ModelAndView mav, String formId) {
mav.setViewName("dynamicForm/preview");
return mav.addObject("formInfo", formInfoService.getById(formId));
}
/**
* 视图 - 表单设计视图
*
* @return 视图
*/
@GetMapping("/view/form/design")
public ModelAndView formDesignView() {
return new ModelAndView("dynamicForm/designForm");
}
/**
* 视图 - 数据查询列表设计视图
*
* @return 视图
*/
@GetMapping("/view/query/design")
public ModelAndView queryDesignView(ModelAndView mav, String formId) {
mav.setViewName("dynamicForm/querySetting");
return mav.addObject("formInfo", formInfoService.getById(formId));
}
@GetMapping("/api/form/get")
public Result<FormInfoPo> getFormInfo(String id) {
if (StringUtils.hasText(id)) {
return Result.of(formInfoService.getById(id));
}
return Result.of(null);
}
/**
* 分页列表
*
* @param page 分页参数
* @return 分页数据
*/
@GetMapping("/api/form/list")
public Result<Page<FormInfoPo>> list(Page<FormInfoPo> page, String searchText) {
QueryWrapper<FormInfoPo> param = new QueryWrapper<>();
if (StringUtils.hasText(searchText)) {
param.like("FORM_IDENTITY", searchText).or().like("FORM_NAME", searchText);
}
return Result.of(formInfoService.page(page, param));
}
/**
* 保存表单信息
*
* @param formInfo 表单信息
* @return 结果
*/
@PostMapping("/api/form/save")
public Result<Object> saveFormInfo(FormInfoPo formInfo) throws Exception {
return Result.of(dynamicFormService.saveForm(formInfo));
}
/**
* 保存查询列表配置
* @param formId 表单ID
* @param queryFieldConfig 配置数据
* @return -
* @throws Exception -
*/
@PostMapping("/api/form/query/save")
public Result<Object> saveFormQueryConfig(String formId, String queryFieldConfig) throws Exception {
if (StringUtils.isEmpty(formId) || StringUtils.isEmpty(queryFieldConfig)) {
return Result.of(null, false, "参数错误");
}
FormInfoPo formInfo = formInfoService.getById(formId);
formInfo.setQueryConfig(queryFieldConfig);
return Result.of(dynamicFormService.saveForm(formInfo));
}
/**
* 禁用表单
*
* @param id
* @return 结果集
*/
@PostMapping("/api/form/disabled")
public Result<Object> disabledForm(int id) {
return Result.of(dynamicFormService.disabledForm(id, true));
}
/**
* 启用表单
*
* @param id
* @return 结果集
*/
@PostMapping("/api/form/enabled")
public Result<Object> enabledForm(int id) {
return Result.of(dynamicFormService.disabledForm(id, false));
}
/**
* 删除表单信息
*
* @param id 表单ID
* @return 结果
*/
@PostMapping("/api/form/delete")
public Result<Object> deleteFormInfo(int id) {
return Result.of(dynamicFormService.delete(id));
}
}

@ -0,0 +1,23 @@
package com.keyware.shandan.dynacmicform.core;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
/**
* 默认的动态表单事件监听器的实现
*/
public class DefaultDynamicFormEventListener implements DynamicFormEventListener {
@Override
public void onSave(FormInfoPo form) {
}
@Override
public void onAlter(FormInfoPo form) {
}
@Override
public void onDrop(FormInfoPo form) {
}
}

@ -0,0 +1,26 @@
package com.keyware.shandan.dynacmicform.core;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
public interface DynamicFormEventListener {
/**
* 动态表单保存成功的监听回调
*
* @param form 表单信息
*/
void onSave(FormInfoPo form) throws Exception;
/**
* 动态表单修改成功的监听回调
*
* @param form 表单信息
*/
void onAlter(FormInfoPo form);
/**
* 动态表单删除成功的监听回调
*
* @param form 表单信息
*/
void onDrop(FormInfoPo form);
}

@ -0,0 +1,11 @@
package com.keyware.shandan.dynacmicform.core.basic.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
@Data
public class DynamicData implements Serializable {
private Map<String, Object> data;
}

@ -0,0 +1,128 @@
package com.keyware.shandan.dynacmicform.core.basic.entity;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import com.keyware.shandan.common.entity.BaseEntity;
import com.keyware.shandan.common.util.StreamUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.util.*;
/**
* 表单信息表
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "FORM_INFO")
public class FormInfoPo extends BaseEntity implements Serializable {
private static final long serialVersionUID = 3181477069579982429L;
@TableId(type = IdType.AUTO)
@TableField("ID")
private Integer id;
/**
* 表单唯一标识
*/
@TableField("FORM_IDENTITY")
private String formId;
/**
* 表单名称
*/
@TableField(value = "FORM_NAME", condition = SqlCondition.LIKE)
private String formName;
/**
* 字段配置
*/
@TableField("FIELD_CONFIG")
private String fieldConfig;
/**
* 查询列表配置
*/
@TableField("QUERY_CONFIG")
private String queryConfig;
/**
* 是否删除
*/
@TableField(value = "IS_DELETE")
@TableLogic(delval = "1", value = "0")
private Boolean deleted;
/**
* 是否禁用
*/
@TableField("IS_DISABLED")
private Boolean disabled;
/**
* @param param 查询参数
* @return 返回统计总行数Sql
*/
public String getCountSql(QueryParam param) {
return "select count(1) from \"" + formId + "\" where ";
}
/**
* @param param 查询参数
* @return 返回查询语句sql
*/
public String getSelectSql(QueryParam param) {
return "select * from \"" + formId + "\" where ";
}
/**
* @return 返回表单查询列表配置中fieldId的集合, 如果没有查询列表配置则返回表单字段配置
*/
public List<String> getQueryColumns() {
if (StringUtils.hasText(queryConfig)) {
JSONArray jsonArray = JSONArray.parseArray(queryConfig);
List<String> columns = StreamUtil.as(jsonArray).map(json -> "\"" + ((JSONObject) json).getString("fieldId") + "\"").toList();
if (!columns.contains("id") && !columns.contains("ID")) {
columns.add("\"ID\"");
}
return columns;
} else {
return getColumns(true);
}
}
/**
* @return 返回表单配置中fieldId的集合
*/
public List<String> getColumns(boolean containsId) {
if (StringUtils.hasText(fieldConfig)) {
JSONArray jsonArray = JSONArray.parseArray(fieldConfig);
List<String> columns = StreamUtil.as(jsonArray).map(json -> "\"" + ((JSONObject) json).getString("fieldId") + "\"").toList();
if (containsId) {
columns.add("\"ID\"");
}
return columns;
}
return new ArrayList<>();
}
/**
* @return 以逗号拼接的列名称字符串
*/
public String getQueryColumnsString() {
return String.join(",", getQueryColumns());
}
/**
* @return 返回基于查询列表配置字段的查询sql
*/
public String getBasicSelectSql() {
return "select " + getQueryColumnsString() + " from \"" + formId + "\" where ";
}
}

@ -0,0 +1,192 @@
package com.keyware.shandan.dynacmicform.core.basic.entity;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.keyware.shandan.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryParam extends LinkedHashMap<String, QueryParam.Param> {
private static final long serialVersionUID = -4759922534007993343L;
private Integer page = 0;
private Integer pageSize = 30;
private String orderField;
private String orderType = "ASC";
/**
* 返回一个查询参数构建器
*
* @return 查询参数构建器
*/
public static QueryParamBuilder builder() {
return new QueryParamBuilder();
}
/**
* 从Json字符串中解析出查询参数对象
*
* @param jsonText JSON字符串
* @return 查询参数对象
*/
public static QueryParam parse(String jsonText) {
JSONArray jsonArray = JSONArray.parseArray(jsonText);
QueryParamBuilder builder = builder();
if (jsonArray != null) {
jsonArray.forEach(obj -> {
JSONObject json = (JSONObject) obj;
builder.column(json.getString("column"))
.logic(json.getString("logic"))
.value(json.get("value"));
});
}
return builder.build();
}
/**
* 解析排序參數
*
* @param order
*/
public void parseOrder(String order) {
if (StringUtils.hasText(order)) {
JSONObject json = null;
try {
json = JSON.parseObject(order);
} catch (Exception e) {
log.error("动态数据查询,排序参数解析失败", e);
}
if (json != null) {
orderField = json.getString("field");
orderType = json.getString("type");
}
}
}
public String getOrderSqlSegment() {
if (StringUtils.hasText(orderField) && StringUtils.hasText(orderType)) {
return "ORDER BY \"" + orderField + "\" " + orderType;
}
return "";
}
/**
* 获取参数集的值
*
* @return 值的集合
*/
public List<Object> getParamValues() {
return values().stream().map(Param::getValue).collect(Collectors.toList());
}
/**
* 获取用and拼接的Sql片段
*
* @return sql片段
*/
public String getSqlSegment() {
List<String> likeSqlFragment = new ArrayList<>();
List<String> sqlFragment = new ArrayList<>();
this.values().forEach(param -> {
if (param.getLogic() == LogicSymbol.like
|| param.getLogic() == LogicSymbol.likeRight
|| param.getLogic() == LogicSymbol.likeLeft) {
likeSqlFragment.add(param.getSqlFragment());
} else {
sqlFragment.add(param.getSqlFragment());
}
});
String sql = " WHERE 1 = 1 ";
if(likeSqlFragment.size() > 0){
sql += " AND ( " + String.join(" OR ", likeSqlFragment) + " ) ";
}
if (sqlFragment.size() > 0) {
sql += " AND ( " + String.join(" AND ", sqlFragment) + " )";
}
return sql;
}
/**
* 查询参数子类
*/
@Data
public static class Param {
/**
* 参数查询的列名
*/
private String column;
/**
* 查询条件的判断符合 = != > <like
*/
private LogicSymbol logic;
/**
* 条件参数的值
*/
private Object value;
public String getSqlFragment() {
String col = "\"" + column + "\" ";
switch (logic) {
case lt:
case gt:
case le:
case ge:
case eq:
case ne:
case like:
case likeLeft:
case likeRight:
return col + logic.value;
case in:
case notIn:
String val = (String) value;
if (val.contains(",")) {
// 将所有的值替换为占位符?
List<String> temp = Arrays.stream(val.split(",")).map(v -> "?").collect(Collectors.toList());
val = String.join(",", temp);
} else {
val = "?";
}
return col + logic.value.replace("...?", val);
default:
return "";
}
}
}
@Getter
@AllArgsConstructor
public enum LogicSymbol {
lt("< ?"),
gt("> ?"),
le("<= ?"),
ge(">= ?"),
eq("= ?"),
ne("<> ?"),
like("like CONCAT('%', ?, '%')"),
likeLeft("like CONCAT('%', ?)"),
likeRight("like CONCAT(?, '%')"),
in("in (...?)"),
notIn("not in(...?)");
// 判定符号
private final String value;
}
}

@ -0,0 +1,197 @@
package com.keyware.shandan.dynacmicform.core.basic.entity;
import java.util.HashMap;
import java.util.Map;
/**
* 查询参数构建器
*/
public class QueryParamBuilder {
private final QueryParam queryParam = new QueryParam();
private final Map<String, ParamBuilder> builderMap = new HashMap<>();
/**
* 填充一个字段并生成一个参数构建器
*
* @param column 字段名
* @return 参数构建器
*/
public ParamBuilder column(String column) {
ParamBuilder paramBuilder = new ParamBuilder(this, column);
builderMap.put(column, paramBuilder);
return paramBuilder;
}
/**
* 开始构建参数并返回参数对象
*
* @return 参数对象
*/
public QueryParam build() {
if (builderMap.size() > 0) {
for (Map.Entry<String, ParamBuilder> entry : builderMap.entrySet()) {
queryParam.put(entry.getKey(), entry.getValue().build());
}
}
return queryParam;
}
/**
* 参数构建器
*/
public static class ParamBuilder {
private final QueryParam.Param param = new QueryParam.Param();
private final QueryParamBuilder parent;
public ParamBuilder(QueryParamBuilder parent, String column) {
this.parent = parent;
param.setColumn(column);
}
/**
* 设置判断逻辑符号并返回当前参数构建器
*
* @param logic 逻辑符号
* @return 返回当前参数构建器
*/
public ParamBuilder logic(String logic) {
param.setLogic(QueryParam.LogicSymbol.valueOf(logic));
return this;
}
public ParamBuilder logic(QueryParam.LogicSymbol logic){
param.setLogic(logic);
return this;
}
/**
* 设置参数值并返回父级构建器
*
* @param value
* @return 返回父级构建器
*/
public QueryParamBuilder value(Object value) {
param.setValue(value);
return parent;
}
public ParamBuilder eq(){
param.setLogic(QueryParam.LogicSymbol.eq);
return this;
}
public QueryParamBuilder eq(Object object){
param.setLogic(QueryParam.LogicSymbol.eq);
return value(object);
}
public ParamBuilder ne(){
param.setLogic(QueryParam.LogicSymbol.ne);
return this;
}
public QueryParamBuilder ne(Object object){
param.setLogic(QueryParam.LogicSymbol.ne);
return value(object);
}
public ParamBuilder lt(){
param.setLogic(QueryParam.LogicSymbol.lt);
return this;
}
public QueryParamBuilder lt(Object object){
param.setLogic(QueryParam.LogicSymbol.lt);
return value(object);
}
public ParamBuilder gt(){
param.setLogic(QueryParam.LogicSymbol.gt);
return this;
}
public QueryParamBuilder gt(Object object){
param.setLogic(QueryParam.LogicSymbol.gt);
return value(object);
}
public ParamBuilder le(){
param.setLogic(QueryParam.LogicSymbol.le);
return this;
}
public QueryParamBuilder le(Object object){
param.setLogic(QueryParam.LogicSymbol.le);
return value(object);
}
public ParamBuilder ge(){
param.setLogic(QueryParam.LogicSymbol.ge);
return this;
}
public QueryParamBuilder ge(Object object){
param.setLogic(QueryParam.LogicSymbol.ge);
return value(object);
}
public ParamBuilder like(){
param.setLogic(QueryParam.LogicSymbol.ge);
return this;
}
public QueryParamBuilder like(Object object){
param.setLogic(QueryParam.LogicSymbol.like);
return value(object);
}
public ParamBuilder likeLeft(){
param.setLogic(QueryParam.LogicSymbol.likeLeft);
return this;
}
public QueryParamBuilder likeLeft(Object object){
param.setLogic(QueryParam.LogicSymbol.likeLeft);
return value(object);
}
public ParamBuilder likeRight(){
param.setLogic(QueryParam.LogicSymbol.likeRight);
return this;
}
public QueryParamBuilder likeRight(Object object){
param.setLogic(QueryParam.LogicSymbol.likeRight);
return value(object);
}
public ParamBuilder in(){
param.setLogic(QueryParam.LogicSymbol.in);
return this;
}
public QueryParamBuilder in(Object object){
param.setLogic(QueryParam.LogicSymbol.in);
return value(object);
}
public ParamBuilder notIn(){
param.setLogic(QueryParam.LogicSymbol.notIn);
return this;
}
public QueryParamBuilder notIn(Object object){
param.setLogic(QueryParam.LogicSymbol.notIn);
return value(object);
}
/**
* 开始构建参数并将其返回
*
* @return 构建后的参数
*/
public QueryParam.Param build() {
return param;
}
}
}

@ -0,0 +1,9 @@
package com.keyware.shandan.dynacmicform.core.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface FormInfoMapper extends BaseMapper<FormInfoPo> {
}

@ -0,0 +1,7 @@
package com.keyware.shandan.dynacmicform.core.basic.parser;
/**
* 表单配置解析器
*/
public class FormInfoParser {
}

@ -0,0 +1,4 @@
package com.keyware.shandan.dynacmicform.core.basic.parser.pojo;
public class FormFieldConfig {
}

@ -0,0 +1,4 @@
package com.keyware.shandan.dynacmicform.core.basic.parser.pojo;
public class FormQueryConfig {
}

@ -0,0 +1,129 @@
package com.keyware.shandan.dynacmicform.core.basic.services;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.keyware.shandan.common.util.StringUtils;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.basic.entity.QueryParam;
import com.keyware.shandan.dynacmicform.core.db.SqlHelper;
import com.keyware.shandan.dynacmicform.core.db.executor.SqlExecutor;
import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull;
import java.util.*;
@Service
public class DynamicDataService {
/**
* 根据ID删除数据
*
* @param form 表单
* @param id 数据主键
* @return 是否删除成功
* @throws Exception -
*/
public boolean deleteById(FormInfoPo form, Integer id) throws Exception {
QueryParam param = QueryParam.builder().column("ID").eq(id).build();
return SqlExecutor.executeUpdate(SqlHelper.deleteSql(form, param), id);
}
/**
* 保存或者更新数据
*
* @param form 表单
* @param entity 待保存或者更新的数据
* @return 是否执行成功
* @throws Exception -
*/
public Object saveOrUpdate(FormInfoPo form, Map<String, Object> entity) throws Exception {
String id = (String) entity.get("ID");
if (StringUtils.isBlank(id)) {
return insert(form, entity);
}
return updateById(form, entity);
}
/**
* 插入数据
*
* @param form 表单
* @param params 待插入的数据
* @return 是否插入成功
* @throws Exception -
*/
public boolean insert(FormInfoPo form, Map<String, Object> params) throws Exception {
// 插入Sql,去除主键列
params.remove("ID");
LinkedHashMap<String, Object> data = new LinkedHashMap<>(params);
return SqlExecutor.executeUpdate(SqlHelper.insertSql(form, data), data.values().toArray());
}
/**
* 根据ID更新数据
*
* @param form 表单
* @param params 更新参数
* @return 是否更新成功
* @throws Exception -
*/
public boolean updateById(FormInfoPo form, Map<String, Object> params) throws Exception {
Object id = params.remove("ID");
LinkedHashMap<String, Object> dataMap = new LinkedHashMap<>(params);
QueryParam queryParam = QueryParam.builder().column("ID").eq(id).build();
List<Object> paramValues = new ArrayList<>(dataMap.values());
paramValues.addAll(queryParam.getParamValues());
return SqlExecutor.executeUpdate(SqlHelper.updateSql(form, dataMap, queryParam), paramValues.toArray());
}
/**
* 根据ID查询数据信息
*
* @param form 表单信息
* @param id 数据ID
* @return 数据
* @throws Exception -
*/
public Map<String, Object> getById(FormInfoPo form, @NotNull Integer id) throws Exception {
QueryParam param = QueryParam.builder().column("ID").eq(id).build();
List<Map<String, Object>> list = SqlExecutor.executeQuery(SqlHelper.selectSql(form, param), id);
if (list == null) {
return null;
}
return list.get(0);
}
/**
* 分页查询数据
*
* @param form 表单
* @param params 参数
* @return 分页数据
* @throws Exception -
*/
public Page<Map<String, Object>> pageList(FormInfoPo form, QueryParam params) throws Exception {
List<Map<String, Object>> countList = SqlExecutor.executeQuery(SqlHelper.countSql(form, params), params.getParamValues().toArray());
long count = 0;
if (countList != null && countList.size() > 0) {
count = (long) countList.get(0).get("COUNT");
}
List<Map<String, Object>> dataList = SqlExecutor.executeQuery(SqlHelper.pageSelectSql(form, params), params.getParamValues().toArray());
Page<Map<String, Object>> page = new Page<>(params.getPage(), params.getPageSize(), count);
page.setRecords(dataList);
return page;
}
/**
* 查询所有数据
*
* @param form
* @return
* @throws Exception
*/
public List<Map<String, Object>> list(FormInfoPo form) throws Exception {
return SqlExecutor.executeQuery(SqlHelper.selectSql(form, null));
}
}

@ -0,0 +1,116 @@
package com.keyware.shandan.dynacmicform.core.basic.services;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.keyware.shandan.common.util.StringUtils;
import com.keyware.shandan.dynacmicform.core.DynamicFormEventListener;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.db.SqlHelper;
import com.keyware.shandan.dynacmicform.core.db.executor.SqlExecutor;
import com.keyware.shandan.dynacmicform.core.db.parser.TableInfoParser;
import com.keyware.shandan.dynacmicform.core.db.pojo.Table;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 动态表单服务类
*/
@Slf4j
@Service
public class DynamicFormService {
private final FormInfoService formInfoService;
private final DynamicFormEventListener dynamicFormEventListener;
public DynamicFormService(FormInfoService formInfoService, DynamicFormEventListener dynamicFormEventListener) {
this.formInfoService = formInfoService;
this.dynamicFormEventListener = dynamicFormEventListener;
}
/**
* 保存动态表单并创建或者更新数据库表
*
* @param form 表单信息
* @return boolean
* @throws Exception 异常
*/
public boolean saveForm(FormInfoPo form) throws Exception {
FormInfoPo oldForm = formInfoService.getById(form.getId());
Table table = TableInfoParser.parseTable(form);
if (oldForm == null) {
String sql = SqlHelper.createSql(table);
SqlExecutor.execute(sql);
} else {
Table oldTable = TableInfoParser.parseTable(oldForm);
List<String> alterSqlList = SqlHelper.alterTableDropColumnSql(oldTable, table);
alterSqlList.addAll(SqlHelper.alterTableAlterColumnSql(oldTable, table));
alterSqlList.addAll(SqlHelper.alterTableModifyColumnSql(oldTable, table));
alterSqlList.addAll(SqlHelper.alterTableAddColumnSql(oldTable, table));
alterSqlList.addAll(SqlHelper.commentTableSql(oldTable, table));
alterSqlList.addAll(SqlHelper.commentColumnSql(oldTable, table));
SqlExecutor.executeBatch(alterSqlList);
}
if (StringUtils.isBlank(form.getQueryConfig())) {
generateQueryConfig(form);
}
boolean ok = formInfoService.saveOrUpdate(form);
if (ok) {
dynamicFormEventListener.onSave(form);
}
return ok;
}
/**
* 删除表单信息
*
* @param id
* @return
*/
public boolean delete(Integer id) {
FormInfoPo form = formInfoService.getById(id);
boolean ok = formInfoService.removeById(id);
if (ok) {
dynamicFormEventListener.onDrop(form);
}
return ok;
}
/**
* 禁用表单
*
* @param id 表单ID
* @param disable 是否禁用true禁用false启用
* @return
*/
public boolean disabledForm(int id, boolean disable) {
UpdateWrapper<FormInfoPo> wrapper = new UpdateWrapper<>();
wrapper.set("IS_DISABLED", disable).eq("ID", id);
return formInfoService.update(wrapper);
}
/**
* 生成查询配置信息
*
* @param form 表单数据
*/
private void generateQueryConfig(FormInfoPo form) {
JSONArray queryConfig = new JSONArray();
JSONArray.parseArray(form.getFieldConfig()).forEach(obj -> {
JSONObject field = (JSONObject) obj;
JSONObject config = new JSONObject();
config.put("fieldId", field.get("fieldId"));
config.put("label", field.get("label"));
config.put("tag", field.get("tag"));
config.put("allowQuery", false);
config.put("display", true);
config.put("allowSort", false);
config.put("headerOrder", 0);
queryConfig.add(config);
});
form.setQueryConfig(queryConfig.toString());
}
}

@ -0,0 +1,11 @@
package com.keyware.shandan.dynacmicform.core.basic.services;
import com.baomidou.mybatisplus.extension.service.IService;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
/**
* 表单信息服务类提供对表单信息数据的CURD等操作
*/
public interface FormInfoService extends IService<FormInfoPo> {
}

@ -0,0 +1,18 @@
package com.keyware.shandan.dynacmicform.core.basic.services.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.basic.mapper.FormInfoMapper;
import com.keyware.shandan.dynacmicform.core.basic.services.FormInfoService;
import org.springframework.stereotype.Service;
import java.io.Serializable;
@Service
public class FormInfoServiceImpl extends ServiceImpl<FormInfoMapper, FormInfoPo> implements FormInfoService {
@Override
public boolean removeById(Serializable id) {
return super.removeById(id);
}
}

@ -0,0 +1,254 @@
package com.keyware.shandan.dynacmicform.core.db;
import cn.hutool.core.lang.Assert;
import com.keyware.shandan.common.util.StreamUtil;
import com.keyware.shandan.common.util.StringUtils;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.basic.entity.QueryParam;
import com.keyware.shandan.dynacmicform.core.db.pojo.Column;
import com.keyware.shandan.dynacmicform.core.db.pojo.Table;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class SqlHelper {
/**
* 建表sql
*
* @param table
* @return
*/
public static String createSql(Table table) {
StringBuilder sqlBuilder = new StringBuilder("CREATE TABLE ");
sqlBuilder.append("\"").append(table.getName()).append("\" (");
Column primaryKey = table.getPrimaryKey();
sqlBuilder.append("\"").append(primaryKey.getName()).append("\" ").append(primaryKey.getType()).append(" IDENTITY(1, 1) NOT NULL,");
table.getColumns().forEach(col -> {
if (!col.isPrimary()) {
sqlBuilder.append("\"").append(col.getName()).append("\" ").append(col.getType());
// 根据类型判断是否追加长度参数
if (col.getLength() != null && col.getLength() != 0) {
sqlBuilder.append("(").append(col.getLength()).append(") ");
}
if (StringUtils.hasText(col.getDefaultValue())) {
sqlBuilder.append("default ").append(col.getDefaultValue());
}
sqlBuilder.append(",");
}
});
sqlBuilder.append("PRIMARY KEY(\"").append(primaryKey.getName()).append("\")").append(")");
return sqlBuilder.toString();
}
/**
* 修改表的sql
*
* @param columns 修改的列集合
* @return
*/
public static List<String> alterSql(Map<String, List<Column>> columns) {
List<String> alterSqlList = new ArrayList<>();
return alterSqlList;
}
/**
* 删除表sql
*
* @param table
* @return
*/
public static String dropSql(Table table) {
StringBuilder sqlBuilder = new StringBuilder();
return sqlBuilder.toString();
}
/**
* 数据插入sql
*
* @param data
* @return
*/
public static String insertSql(@NotNull FormInfoPo form, @NotNull Map<String, Object> data) {
List<String> placeholders = StreamUtil.as(data.keySet()).map((m) -> "?").toList();
return "INSERT INTO \"" + form.getFormId() + "\" (" + String.join(",", data.keySet()) + ") " +
"VALUES (" + String.join(",", placeholders) + ")";
}
/**
* 数据更新sql
*
* @param dataParam
* @return
*/
public static String updateSql(FormInfoPo form, Map<String, Object> dataParam, QueryParam queryParam) {
List<String> setDataSql = StreamUtil.as(dataParam.entrySet()).filter(entry -> !"id".equalsIgnoreCase(entry.getKey()))
.map(entry -> " \"" + entry.getKey() + "\" = " + "? ").toList();
return "UPDATE \"" + form.getFormId() + "\" SET " + String.join(",", setDataSql) + " " + queryParam.getSqlSegment();
}
/**
* 数据删除sql
*
* @param param
* @return
*/
public static String deleteSql(FormInfoPo form, QueryParam param) {
return "DELETE FROM \"" + form.getFormId() + "\" " + param.getSqlSegment();
}
/**
* 数据查询sql
*
* @param param
* @return
*/
public static String selectSql(FormInfoPo form, QueryParam param) {
if (param == null) {
return "SELECT " + form.getQueryColumnsString() + " FROM \"" + form.getFormId() + "\"";
}
return "SELECT " + form.getQueryColumnsString() + " FROM \"" + form.getFormId() + "\" " + param.getSqlSegment() + " " + param.getOrderSqlSegment();
}
/**
* 分页查询sql
*
* @param form 表单
* @param param 参数
* @return
*/
public static String pageSelectSql(FormInfoPo form, QueryParam param) {
Assert.isTrue(param.getPage() > 0 || param.getPageSize() > 0, "Sql语句构建异常,分页参数有误");
int endOffset = param.getPage() * param.getPageSize();
int startOffset = endOffset - param.getPageSize();
return "SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM (" + selectSql(form, param) + " ) TMP WHERE ROWNUM <= " + endOffset + " ) WHERE ROW_ID > " + startOffset;
}
/**
* 统计记录行数sql
*
* @param form 表单
* @param param 参数
* @return
*/
public static String countSql(FormInfoPo form, QueryParam param) {
return "SELECT COUNT(ID) AS \"COUNT\" FROM \"" + form.getFormId() + "\" " + param.getSqlSegment();
}
/**
* 生成SQL修改表-删除列的SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> alterTableDropColumnSql(Table oldTable, Table newTable) {
Map<String, Column> oldMap = new HashMap<>();
oldTable.getColumns().forEach(column -> oldMap.put(column.getId(), column));
newTable.getColumns().forEach(column -> {
oldMap.remove(column.getId());
});
if (oldMap.size() > 0) {
return oldMap.values().stream().map(column -> "alter table \"" + oldTable.getName() + "\" drop column \"" + column.getName() + "\"").collect(Collectors.toList());
}
return new ArrayList<>();
}
/**
* 生成SQL修改表-修改列名的SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> alterTableAlterColumnSql(Table oldTable, Table newTable) {
Map<String, String> newMap = new HashMap<>();
newTable.getColumns().forEach(column -> newMap.put(column.getId(), column.getName()));
List<String> sqlList = new ArrayList<>();
oldTable.getColumns().forEach(column -> {
String oldName = column.getName();
String newName = newMap.get(column.getId());
if (!oldName.equals(newName) && StringUtils.hasText(newName)) {
sqlList.add("alter table \"" + oldTable.getName() + "\" alter column \"" + oldName + "\" rename to \"" + newName + "\"");
}
});
return sqlList;
}
/**
* 生成SQL修改表-修改列类型的SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> alterTableModifyColumnSql(Table oldTable, Table newTable) {
return new ArrayList<>();
}
/**
* 生成SQL修改表-添加列的SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> alterTableAddColumnSql(Table oldTable, Table newTable) {
Map<String, Column> newMap = new HashMap<>();
newTable.getColumns().forEach(column -> newMap.put(column.getId(), column));
oldTable.getColumns().forEach(column -> {
newMap.remove(column.getId());
});
if (newMap.size() > 0) {
return newMap.values().stream().map(column -> {
String typeStr = column.getType();
if (column.getLength() != null && column.getLength() != 0) {
typeStr += "(" + column.getLength() + ")";
}
String defaultValue = "";
if (StringUtils.hasText(column.getDefaultValue())) {
defaultValue = "default " + column.getDefaultValue();
}
return "alter table \"" + oldTable.getName() + "\" add column(\"" + column.getName() + "\" " + typeStr + " " + defaultValue + ")";
}).collect(Collectors.toList());
}
return new ArrayList<>();
}
/**
* 生成SQL表的注释SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> commentTableSql(Table oldTable, Table newTable) {
return new ArrayList<>();
}
/**
* 生成SQL列的注释SQL
*
* @param oldTable
* @param newTable
* @return
*/
public static List<String> commentColumnSql(Table oldTable, Table newTable) {
return new ArrayList<>();
}
}

@ -0,0 +1,44 @@
package com.keyware.shandan.dynacmicform.core.db.enums;
import com.keyware.shandan.dynacmicform.core.db.parser.DbDefault;
import com.keyware.shandan.dynacmicform.core.db.pojo.Column;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum DbColumns {
dm((tag)->{
switch (tag){
case "input":
case "password":
case "select":
case "radio":
case "switch":
case "checkbox":
case "cron":
return Column.builder().type("VARCHAR2").length(50).defaultValue("''").build();
case "textarea":
return Column.builder().type("TEXT").length(null).defaultValue("''").build();
case "rate":
case "slider":
case "numberInput":
return Column.builder().type("INTEGER").length(null).build();
case "date":
return Column.builder().type("TIMESTAMP").length(6).build();
default:
return Column.builder().build();
}
}),
mysql(label -> {
throw new RuntimeException("暂不支持该数据库");
});
private final DbDefault dbDefault;
public DbDefault getDbDefault() {
return dbDefault;
}
}

@ -0,0 +1,11 @@
package com.keyware.shandan.dynacmicform.core.db.enums;
public enum SqlType {
table_create,
table_alter,
table_drop,
select,
insert,
update,
delete;
}

@ -0,0 +1,215 @@
package com.keyware.shandan.dynacmicform.core.db.executor;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.keyware.shandan.common.util.StringUtils;
import com.keyware.shandan.dynacmicform.config.spring.ContextHelper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.Reader;
import java.sql.Date;
import java.sql.*;
import java.util.*;
public class SqlExecutor {
private static final Logger log = LoggerFactory.getLogger(SqlExecutor.class);
/**
* 检查SQL是否可以正常执行
*
* @param sql sql
* @return boolean
*/
public static boolean validateQuery(String sql) {
// 获取SqlSessionFactory实例
SqlSessionFactory sqlSessionFactory = getSessionFactory();
try (SqlSession session = sqlSessionFactory.openSession(); Connection conn = session.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) {
ResultSet rs = stmt.executeQuery();
rs.close();
log.debug("==> {}", sql);
return true;
} catch (Exception e) {
log.trace("执行验证SQL:{} 失败:{}", sql, e.getMessage());
return false;
}
}
public static boolean execute(String sql) throws Exception {
if (StringUtils.isEmpty(sql)) {
return false;
}
// 获取SqlSessionFactory实例
SqlSessionFactory sqlSessionFactory = getSessionFactory();
log.debug("==> SQL: " + sql);
try (SqlSession session = sqlSessionFactory.openSession(); Connection conn = session.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) {
return stmt.execute();
} catch (Exception e) {
log.error("执行sql查询异常: " + sql, e);
throw e;
}
}
/**
* 批量执行sql语句
*
* @param sqlList
* @return
* @throws SQLException
*/
public static int[] executeBatch(Collection<String> sqlList) throws SQLException {
int[] count = new int[sqlList.size()];
if (sqlList.isEmpty()) {
return count;
}
SqlSessionFactory sqlSessionFactory = getSessionFactory();
PreparedStatement stmt = null;
try (SqlSession session = sqlSessionFactory.openSession(); Connection conn = session.getConnection()) {
conn.setAutoCommit(false);
for (String sql : sqlList) {
if (StringUtils.hasText(sql)) {
if (stmt == null) {
stmt = conn.prepareStatement(sql);
}
stmt.addBatch(sql);
}
}
if (stmt != null) {
count = stmt.executeBatch();
conn.commit();
}
return count;
} catch (Exception e) {
log.error("批量执行sql查询异常: ", e);
throw e;
} finally {
if (stmt != null) {
stmt.close();
}
}
}
/**
* 执行更新操作
*
* @param sql sql
* @param params 参数
* @return boolean
* @throws Exception -
*/
public static boolean executeUpdate(String sql, Object... params) throws Exception {
if (StringUtils.isEmpty(sql)) {
return false;
}
// 获取SqlSessionFactory实例
SqlSessionFactory sqlSessionFactory = getSessionFactory();
log.debug("==> SQL: " + sql);
// 替换单个?参数为多个,用于拼接IN参数
if (params != null && params.length > 0) {
log.debug("==> Params: {}", JSONArray.toJSONString(params));
if (params.length > 2000) {
log.warn("更新参数集合数量过多, size={},请检查调用是否合理!", params.length);
}
}
try (SqlSession session = sqlSessionFactory.openSession(); Connection conn = session.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) {
if (params != null && params.length > 0) {
for (int i = 0; i < params.length; i++) {
stmt.setObject(i + 1, params[i]);
}
}
int rs = stmt.executeUpdate();
return rs >= 0;
} catch (Exception e) {
log.error("执行sql查询异常: " + sql, e);
throw e;
}
}
/***
* 执行Select语句: SELECT user_id,role_id FROM user_role WHERE user_id IN (?,?,?,?)
* 查询结果如: [{"user_id":1001,"role_id":101},{"user_id":1001,"role_id":102},{"user_id":1003,"role_id":102},{"user_id":1003,"role_id":103}]
* @param sql
* @return
*/
public static List<Map<String, Object>> executeQuery(String sql, Object... params) throws Exception {
if (StringUtils.isBlank(sql)) {
return null;
}
// 获取SqlSessionFactory实例
SqlSessionFactory sqlSessionFactory = getSessionFactory();
log.debug("==> SQL: " + sql);
// 替换单个?参数为多个,用于拼接IN参数
if (params != null && params.length > 0) {
log.debug("==> Params: {}", JSONArray.toJSONString(params));
if (params.length > 2000) {
log.warn("查询参数集合数量过多, size={},请检查调用是否合理!", params.length);
}
}
try (SqlSession session = sqlSessionFactory.openSession(); Connection conn = session.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) {
if (params != null && params.length > 0) {
for (int i = 0; i < params.length; i++) {
stmt.setObject(i + 1, params[i]);
}
}
ResultSet rs = stmt.executeQuery();
ResultSetMetaData meta = rs.getMetaData();
List<Map<String, Object>> mapList = new ArrayList<>();
if (meta.getColumnCount() > 0) {
// 添加数据行
while (rs.next()) {
Map<String, Object> dataRow = new HashMap<>();
for (int i = 1; i <= meta.getColumnCount(); i++) {
Object obj = rs.getObject(i);
if (obj instanceof Clob) {
obj = clobRsConvert(rs.getClob(i));
} else if (obj instanceof Date || obj instanceof Timestamp) {
Date date = rs.getDate(i);
obj = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
}
dataRow.put(meta.getColumnLabel(i), obj);
}
mapList.add(dataRow);
}
rs.close();
}
log.debug("<== {}", JSONArray.toJSONString(mapList));
return mapList;
} catch (Exception e) {
log.error("执行Sql查询异常", e);
throw e;
}
}
private static SqlSessionFactory getSessionFactory() {
SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class);
if (sqlSessionFactory == null) {
log.warn("无法获取SqlSessionFactory实例,SQL将不被执行。");
throw new RuntimeException("获取SqlSessionFactory实例异常");
}
return sqlSessionFactory;
}
private static String clobRsConvert(Clob clob) {
String clobStr = "";
Reader inStream = null;
try {
inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
if (-1 == inStream.read(c)) {
clobStr = new String(c);
inStream.close();
} else {
clobStr = clob.getSubString(1, (int) clob.length());
}
} catch (IOException | SQLException e) {
log.error("转换Clob结果集时出现异常:", e);
}
return clobStr;
}
}

@ -0,0 +1,7 @@
package com.keyware.shandan.dynacmicform.core.db.parser;
import com.keyware.shandan.dynacmicform.core.db.pojo.Column;
public interface DbDefault {
Column getDbColumn(String tag);
}

@ -0,0 +1,97 @@
package com.keyware.shandan.dynacmicform.core.db.parser;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.keyware.shandan.dynacmicform.config.spring.ContextHelper;
import com.keyware.shandan.dynacmicform.core.basic.entity.FormInfoPo;
import com.keyware.shandan.dynacmicform.core.db.enums.DbColumns;
import com.keyware.shandan.dynacmicform.core.db.pojo.Column;
import com.keyware.shandan.dynacmicform.core.db.pojo.Table;
import org.springframework.util.Assert;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* 数据库表解析器
*/
public class TableInfoParser {
private static final String ALTER_ADD = "ALTER_ADD";
private static final String ALTER_MODIFY = "ALTER_MODIFY";
private static final String ALTER_DROP = "ALTER_DROP";
public static Table parseTable(@NotNull FormInfoPo form) {
Table table = Table.builder()
.name(form.getFormId())
.comment(form.getFormName())
.build();
String dbType = ContextHelper.getDatabaseType();
DbColumns dbColumns = DbColumns.valueOf(dbType);
Assert.notNull(dbColumns, "该数据库不支持:" + dbType);
JSONArray fieldConfigJson = JSONArray.parseArray(form.getFieldConfig());
Assert.isTrue(fieldConfigJson != null && fieldConfigJson.size() > 0, "表单解析失败,没有发现字段配置");
List<Column> columns = new ArrayList<>();
fieldConfigJson.forEach(obj -> {
JSONObject json = (JSONObject) obj;
Column col = dbColumns.getDbDefault().getDbColumn(json.getString("tag"));
col = parseColumn(json, col);
if (col.isPrimary()) {
Assert.isTrue(table.getPrimaryKey() == null, "表单信息解析失败,只能有一个字段为主键");
table.setPrimaryKey(col);
}
columns.add(col);
});
// 未指定主键,则添加自增主键列
if (table.getPrimaryKey() == null) {
Column col = newPrimaryCol();
table.setPrimaryKey(col);
columns.add(col);
}
table.setColumns(columns);
return table;
}
public static Column parseColumn(@NotNull JSONObject json, Column dbColumn) {
Integer length = json.getInteger("fieldLength");
if (length == null) {
length = dbColumn.getLength();
}
Integer precision = json.getInteger("precision");
if (precision == null) {
precision = dbColumn.getPrecision();
}
return Column.builder()
.id(json.getString("id"))
.name(json.getString("fieldId"))
.comment(json.getString("label"))
.type(dbColumn.getType())
.length(length)
.precision(precision)
.defaultValue(json.getString("defaultValue"))
.isPrimary(json.getBooleanValue("isPrimary"))
.notNull(json.getBooleanValue("notNull"))
.build();
}
private static Column newPrimaryCol() {
return Column.builder()
.isPrimary(true)
.name("ID")
.type("INTEGER")
.comment("自增主键")
.length(10)
.precision(null)
.defaultValue(null)
.build();
}
static class Comparator {
}
}

@ -0,0 +1,43 @@
package com.keyware.shandan.dynacmicform.core.db.pojo;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class Column {
private String id;
/**
* 列名称
*/
private String name;
/**
* 是否主键
*/
private boolean isPrimary;
/**
* 字段类型
*/
private String type;
/**
* 是否不为空
*/
private boolean notNull;
/**
* 列长度
*/
private Integer length;
/**
* 列精度
*/
private Integer precision;
/**
* 默认值
*/
private String defaultValue;
/**
* 列注释
*/
private String comment;
}

@ -0,0 +1,9 @@
package com.keyware.shandan.dynacmicform.core.db.pojo;
/**
* 数据库列类型
*/
public class DbColumnType {
private String column;
private String type;
}

@ -0,0 +1,33 @@
package com.keyware.shandan.dynacmicform.core.db.pojo;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* 数据表对象
*/
@Data
@Builder
public class Table {
/**
* 数据表名称
*/
private String name;
/**
* 数据表注释
*/
private String comment;
/**
* 主键列
*/
private Column primaryKey;
/**
* 数据列集合
*/
private List<Column> columns;
}

@ -0,0 +1,18 @@
server:
port: 8200
logging:
level:
root: info
com.keyware.shandan: debug
spring:
thymeleaf:
cache: false
prefix: classpath:/view/
# 达梦数据库配置
datasource:
url: jdbc:dm://192.168.134.128:5236
username: BIANMU
password: 123456789
driver-class-name: dm.jdbc.driver.DmDriver

@ -0,0 +1,236 @@
/**
* 计算字符串的哈希值
* @returns {number}
*/
String.prototype.hashCode = function () {
let hash = 0, i, chr;
if (this.length === 0) return hash;
for (i = 0; i < this.length; i++) {
chr = this.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0;
}
return hash;
};
/**
* 日期格式化
* @param format
* @returns {*}
*/
Date.prototype.format = function (format) {
let date = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S+": this.getMilliseconds()
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
}
/**
* 打开一个最大化的弹窗
* @param url 页面url
* @param options
*/
function openMaxLayer(url, options) {
let _options = Object.assign({
title: false,
type: 2,
area: [window.innerWidth - 30 + 'px', window.innerHeight - 26 + 'px'],
content: url,
success: function (layero, index) {
this.childElem = layer.getChildFrame('body', index);
this.childWindow = window[layero.find('iframe')[0]['name']];
}
}, options);
layer.open(_options);
}
function showOkMsg(msg = 'OK提示', options) {
layer.msg(msg, Object.assign({icon: 1, time: 1000}, options))
}
function showErrorMsg(msg = '系统异常', options) {
layer.msg(msg, Object.assign({icon: 2, time: 2000}, options))
}
function postRequest(url, data) {
return sendRequest(url, data, {type: 'post'});
}
function sendRequest(url, params, options = {}) {
let loadIndex = layer.load();
return new Promise(function (resolve, reject) {
$.ajax(Object.assign({
url,
type: 'get',
data: params,
dataType: 'json',
success: (res) => {
layer.close(loadIndex);
resolve && resolve(res);
},
error: (err) => {
layer.close(loadIndex);
reject && reject(err);
}
}, options))
});
}
/**
* 生成layui table组件的options
* @param options
* @returns {any}
*/
function generateTableOptions(options) {
return Object.assign({
page: true,
autoSort: false,
limit: 30,
limits: [20, 30, 50, 100],
height: 'full-20',
defaultToolbar: [],
text: {none: '没有查询到数据'},
request: {
pageName: 'current' //页码的参数名称,默认:page
, limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'flag' //规定数据状态的字段名称,默认:code
, statusCode: true //规定成功的状态码,默认:0
},
parseData: function (res) { //res 即为原始返回的数据
let data = res.data || {records: [], total: 0};
return {
"flag": res.flag, //解析接口状态
"msg": res.msg, //解析提示文本
"data": data.records,
"count": data.total
};
}
}, options);
}
/**
* 获取查询参数模型
* @returns {{column: string, logic: string, value: string}}
*/
function getQueryParamModel() {
return {
column: '',
logic: '',
value: ''
}
}
/**
* 查询参数中的判断逻辑符号的常量
* @type {{ne: string, lt: string, le: string, eq: string, gt: string, ge: string}}
*/
const Logic = {
lt: 'lt', // 小于
gt: 'gt', // 大于
le: 'le', // 小于等于
ge: 'ge', // 大于等于
eq: 'eq', // 等于
ne: 'ne', // 不等于
like: 'like', // like全匹配
likeLeft: 'likeLeft', // like左匹配
likeRight: 'likeRight', // like右匹配
in: 'in', // 包含在列表中
notIn: 'notIn' // 不包含在列表中
}
/**
* 解析数据
* @param row 数据行
* @param field 字段配置
*/
function parseValue(row, field) {
let {tag, fieldId, options} = field;
let value = row[fieldId];
if (!value || value === 'null' || value === '') {
return ''
}
switch (tag) {
case 'radio':
case 'select':
return matchValue(value)
case 'switch':
return value == 1 ? '是' : '否';
case 'checkbox':
let values = [];
for (let val of value.split(',')) {
values.push(matchValue(val));
}
return values.join(',');
case 'date':
return new Date(value).format(field.dateFormat);
case 'password':
return '******';
default:
return value;
}
function matchValue(value) {
for (let ops of options) {
if (ops.value === value) {
return ops.text;
}
}
return value;
}
}
/**
*
* 合并字段配置以及查询列表的字段配置
* @param formInfo
* @returns {any}
*/
function getTableHeaders(formInfo) {
let fieldConfig = JSON.parse(formInfo.fieldConfig);
if (formInfo.queryConfig) {
let queryConfig = JSON.parse(formInfo.queryConfig);
// 先进行排序并过滤不需要显示的字段
queryConfig = queryConfig.filter(conf => conf.display);
return fieldSort(queryConfig).map(conf => {
for (let cc of fieldConfig) {
if (cc.fieldId === conf.fieldId) {
Object.assign(conf, cc);
break;
}
}
return conf;
});
}
return fieldSort(fieldConfig);
}
/**
* 字段排序
* @param fieldList
*/
function fieldSort(fieldList = []) {
return fieldList.sort((a, b) => a.fieldId > b.fieldId)
.sort((a, b) => {
if (a.headerOrder !== undefined && b.headerOrder !== undefined) {
return a.headerOrder * 1 - b.headerOrder * 1
}
return 0 - 1;
});
}

@ -0,0 +1,13 @@
/**
* layui 项目的全局配置
*
*/
layui.config({
//dir: '/res/layui/', //layui.js 所在路径(注意,如果是 script 单独引入 layui.js,无需设定该参数。),一般情况下可以无视
version: false, //一般用于更新模块缓存,默认不开启。设为 true 即让浏览器不缓存。也可以设为一个固定的值,如:201610
debug: false, //用于开启调试模式,默认 false,如果设为 true,则JS模块的节点会保留在页面
base: `${ctx}/script/modules/`, //设定扩展的 layui 模块的所在目录,一般用于外部模块扩展
}).use(['layer'],function(){
window.$ = layui.jquery;
window.layer = layui.layer;
});

@ -0,0 +1,409 @@
function style_html(html_source, indent_size, indent_character, max_char) {
//Wrapper function to invoke all the necessary constructors and deal with the output.
var Parser, multi_parser;
function Parser() {
this.pos = 0; //Parser position
this.token = '';
this.current_mode = 'CONTENT'; //reflects the current Parser mode: TAG/CONTENT
this.tags = { //An object to hold tags, their position, and their parent-tags, initiated with default values
parent: 'parent1',
parentcount: 1,
parent1: ''
};
this.tag_type = '';
this.token_text = this.last_token = this.last_text = this.token_type = '';
this.Utils = { //Uilities made available to the various functions
whitespace: "\n\r\t ".split(''),
single_token: 'br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed'.split(','), //all the single tags for HTML
extra_liners: 'head,body,/html'.split(','), //for tags that need a line of whitespace before them
in_array: function (what, arr) {
for (var i=0; i<arr.length; i++) {
if (what === arr[i]) {
return true;
}
}
return false;
}
}
this.get_content = function () { //function to capture regular content between tags
var char = '';
var content = [];
var space = false; //if a space is needed
while (this.input.charAt(this.pos) !== '<') {
if (this.pos >= this.input.length) {
return content.length?content.join(''):['', 'TK_EOF'];
}
char = this.input.charAt(this.pos);
this.pos++;
this.line_char_count++;
if (this.Utils.in_array(char, this.Utils.whitespace)) {
if (content.length) {
space = true;
}
this.line_char_count--;
continue; //don't want to insert unnecessary space
}
else if (space) {
if (this.line_char_count >= this.max_char) { //insert a line when the max_char is reached
content.push('\n');
for (var i=0; i<this.indent_level; i++) {
content.push(this.indent_string);
}
this.line_char_count = 0;
}
else{
content.push(' ');
this.line_char_count++;
}
space = false;
}
content.push(char); //letter at-a-time (or string) inserted to an array
}
return content.length?content.join(''):'';
}
this.get_script = function () { //get the full content of a script to pass to js_beautify
var char = '';
var content = [];
var reg_match = new RegExp('\<\/script' + '\>', 'igm');
reg_match.lastIndex = this.pos;
var reg_array = reg_match.exec(this.input);
var end_script = reg_array?reg_array.index:this.input.length; //absolute end of script
while(this.pos < end_script) { //get everything in between the script tags
if (this.pos >= this.input.length) {
return content.length?content.join(''):['', 'TK_EOF'];
}
char = this.input.charAt(this.pos);
this.pos++;
content.push(char);
}
return content.length?content.join(''):''; //we might not have any content at all
}
this.record_tag = function (tag){ //function to record a tag and its parent in this.tags Object
if (this.tags[tag + 'count']) { //check for the existence of this tag type
this.tags[tag + 'count']++;
this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level
}
else { //otherwise initialize this tag type
this.tags[tag + 'count'] = 1;
this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level
}
this.tags[tag + this.tags[tag + 'count'] + 'parent'] = this.tags.parent; //set the parent (i.e. in the case of a div this.tags.div1parent)
this.tags.parent = tag + this.tags[tag + 'count']; //and make this the current parent (i.e. in the case of a div 'div1')
}
this.retrieve_tag = function (tag) { //function to retrieve the opening tag to the corresponding closer
if (this.tags[tag + 'count']) { //if the openener is not in the Object we ignore it
var temp_parent = this.tags.parent; //check to see if it's a closable tag.
while (temp_parent) { //till we reach '' (the initial value);
if (tag + this.tags[tag + 'count'] === temp_parent) { //if this is it use it
break;
}
temp_parent = this.tags[temp_parent + 'parent']; //otherwise keep on climbing up the DOM Tree
}
if (temp_parent) { //if we caught something
this.indent_level = this.tags[tag + this.tags[tag + 'count']]; //set the indent_level accordingly
this.tags.parent = this.tags[temp_parent + 'parent']; //and set the current parent
}
delete this.tags[tag + this.tags[tag + 'count'] + 'parent']; //delete the closed tags parent reference...
delete this.tags[tag + this.tags[tag + 'count']]; //...and the tag itself
if (this.tags[tag + 'count'] == 1) {
delete this.tags[tag + 'count'];
}
else {
this.tags[tag + 'count']--;
}
}
}
this.get_tag = function () { //function to get a full tag and parse its type
var char = '';
var content = [];
var space = false;
do {
if (this.pos >= this.input.length) {
return content.length?content.join(''):['', 'TK_EOF'];
}
char = this.input.charAt(this.pos);
this.pos++;
this.line_char_count++;
if (this.Utils.in_array(char, this.Utils.whitespace)) { //don't want to insert unnecessary space
space = true;
this.line_char_count--;
continue;
}
if (char === "'" || char === '"') {
if (!content[1] || content[1] !== '!') { //if we're in a comment strings don't get treated specially
char += this.get_unformatted(char);
space = true;
}
}
if (char === '=') { //no space before =
space = false;
}
if (content.length && content[content.length-1] !== '=' && char !== '>'
&& space) { //no space after = or before >
if (this.line_char_count >= this.max_char) {
this.print_newline(false, content);
this.line_char_count = 0;
}
else {
content.push(' ');
this.line_char_count++;
}
space = false;
}
content.push(char); //inserts character at-a-time (or string)
} while (char !== '>');
var tag_complete = content.join('');
var tag_index;
if (tag_complete.indexOf(' ') != -1) { //if there's whitespace, thats where the tag name ends
tag_index = tag_complete.indexOf(' ');
}
else { //otherwise go with the tag ending
tag_index = tag_complete.indexOf('>');
}
var tag_check = tag_complete.substring(1, tag_index).toLowerCase();
if (tag_complete.charAt(tag_complete.length-2) === '/' ||
this.Utils.in_array(tag_check, this.Utils.single_token)) { //if this tag name is a single tag type (either in the list or has a closing /)
this.tag_type = 'SINGLE';
}
else if (tag_check === 'script') { //for later script handling
this.record_tag(tag_check);
this.tag_type = 'SCRIPT';
}
else if (tag_check === 'style') { //for future style handling (for now it justs uses get_content)
this.record_tag(tag_check);
this.tag_type = 'STYLE';
}
else if (tag_check.charAt(0) === '!') { //peek for <!-- comment
if (tag_check.indexOf('[if') != -1) { //peek for <!--[if conditional comment
if (tag_complete.indexOf('!IE') != -1) { //this type needs a closing --> so...
var comment = this.get_unformatted('-->', tag_complete); //...delegate to get_unformatted
content.push(comment);
}
this.tag_type = 'START';
}
else if (tag_check.indexOf('[endif') != -1) {//peek for <!--[endif end conditional comment
this.tag_type = 'END';
this.unindent();
}
else if (tag_check.indexOf('[cdata[') != -1) { //if it's a <[cdata[ comment...
var comment = this.get_unformatted(']]>', tag_complete); //...delegate to get_unformatted function
content.push(comment);
this.tag_type = 'SINGLE'; //<![CDATA[ comments are treated like single tags
}
else {
var comment = this.get_unformatted('-->', tag_complete);
content.push(comment);
this.tag_type = 'SINGLE';
}
}
else {
if (tag_check.charAt(0) === '/') { //this tag is a double tag so check for tag-ending
this.retrieve_tag(tag_check.substring(1)); //remove it and all ancestors
this.tag_type = 'END';
}
else { //otherwise it's a start-tag
this.record_tag(tag_check); //push it on the tag stack
this.tag_type = 'START';
}
if (this.Utils.in_array(tag_check, this.Utils.extra_liners)) { //check if this double needs an extra line
this.print_newline(true, this.output);
}
}
return content.join(''); //returns fully formatted tag
}
this.get_unformatted = function (delimiter, orig_tag) { //function to return unformatted content in its entirety
if (orig_tag && orig_tag.indexOf(delimiter) != -1) {
return '';
}
var char = '';
var content = '';
var space = true;
do {
char = this.input.charAt(this.pos);
this.pos++
if (this.Utils.in_array(char, this.Utils.whitespace)) {
if (!space) {
this.line_char_count--;
continue;
}
if (char === '\n' || char === '\r') {
content += '\n';
for (var i=0; i<this.indent_level; i++) {
content += this.indent_string;
}
space = false; //...and make sure other indentation is erased
this.line_char_count = 0;
continue;
}
}
content += char;
this.line_char_count++;
space = true;
} while (content.indexOf(delimiter) == -1);
return content;
}
this.get_token = function () { //initial handler for token-retrieval
var token;
if (this.last_token === 'TK_TAG_SCRIPT') { //check if we need to format javascript
var temp_token = this.get_script();
if (typeof temp_token !== 'string') {
return temp_token;
}
token = js_beautify(temp_token, this.indent_size, this.indent_character, this.indent_level); //call the JS Beautifier
return [token, 'TK_CONTENT'];
}
if (this.current_mode === 'CONTENT') {
token = this.get_content();
if (typeof token !== 'string') {
return token;
}
else {
return [token, 'TK_CONTENT'];
}
}
if(this.current_mode === 'TAG') {
token = this.get_tag();
if (typeof token !== 'string') {
return token;
}
else {
var tag_name_type = 'TK_TAG_' + this.tag_type;
return [token, tag_name_type];
}
}
}
this.printer = function (js_source, indent_character, indent_size, max_char) { //handles input/output and some other printing functions
this.input = js_source || ''; //gets the input for the Parser
this.output = [];
this.indent_character = indent_character || ' ';
this.indent_string = '';
this.indent_size = indent_size || 2;
this.indent_level = 0;
this.max_char = max_char || 70; //maximum amount of characters per line
this.line_char_count = 0; //count to see if max_char was exceeded
for (var i=0; i<this.indent_size; i++) {
this.indent_string += this.indent_character;
}
this.print_newline = function (ignore, arr) {
this.line_char_count = 0;
if (!arr || !arr.length) {
return;
}
if (!ignore) { //we might want the extra line
while (this.Utils.in_array(arr[arr.length-1], this.Utils.whitespace)) {
arr.pop();
}
}
arr.push('\n');
for (var i=0; i<this.indent_level; i++) {
arr.push(this.indent_string);
}
}
this.print_token = function (text) {
this.output.push(text);
}
this.indent = function () {
this.indent_level++;
}
this.unindent = function () {
if (this.indent_level > 0) {
this.indent_level--;
}
}
}
return this;
}
/*_____________________--------------------_____________________*/
multi_parser = new Parser(); //wrapping functions Parser
multi_parser.printer(html_source, indent_character, indent_size); //initialize starting values
while (true) {
var t = multi_parser.get_token();
multi_parser.token_text = t[0];
multi_parser.token_type = t[1];
if (multi_parser.token_type === 'TK_EOF') {
break;
}
switch (multi_parser.token_type) {
case 'TK_TAG_START': case 'TK_TAG_SCRIPT': case 'TK_TAG_STYLE':
multi_parser.print_newline(false, multi_parser.output);
multi_parser.print_token(multi_parser.token_text);
multi_parser.indent();
multi_parser.current_mode = 'CONTENT';
break;
case 'TK_TAG_END':
multi_parser.print_newline(true, multi_parser.output);
multi_parser.print_token(multi_parser.token_text);
multi_parser.current_mode = 'CONTENT';
break;
case 'TK_TAG_SINGLE':
multi_parser.print_newline(false, multi_parser.output);
multi_parser.print_token(multi_parser.token_text);
multi_parser.current_mode = 'CONTENT';
break;
case 'TK_CONTENT':
if (multi_parser.token_text !== '') {
multi_parser.print_newline(false, multi_parser.output);
multi_parser.print_token(multi_parser.token_text);
}
multi_parser.current_mode = 'TAG';
break;
}
multi_parser.last_token = multi_parser.token_type;
multi_parser.last_text = multi_parser.token_text;
}
return multi_parser.output.join('');
}

@ -0,0 +1,568 @@
function js_beautify(js_source_text, indent_size, indent_character, indent_level)
{
var input, output, token_text, last_type, last_text, last_word, current_mode, modes, indent_string;
var whitespace, wordchar, punct, parser_pos, line_starters, in_case;
var prefix, token_type, do_block_just_closed, var_line, var_line_tainted;
function trim_output()
{
while (output.length && (output[output.length - 1] === ' ' || output[output.length - 1] === indent_string)) {
output.pop();
}
}
function print_newline(ignore_repeated)
{
ignore_repeated = typeof ignore_repeated === 'undefined' ? true: ignore_repeated;
trim_output();
if (!output.length) {
return; // no newline on start of file
}
if (output[output.length - 1] !== "\n" || !ignore_repeated) {
output.push("\n");
}
for (var i = 0; i < indent_level; i++) {
output.push(indent_string);
}
}
function print_space()
{
var last_output = output.length ? output[output.length - 1] : ' ';
if (last_output !== ' ' && last_output !== '\n' && last_output !== indent_string) { // prevent occassional duplicate space
output.push(' ');
}
}
function print_token()
{
output.push(token_text);
}
function indent()
{
indent_level++;
}
function unindent()
{
if (indent_level) {
indent_level--;
}
}
function remove_indent()
{
if (output.length && output[output.length - 1] === indent_string) {
output.pop();
}
}
function set_mode(mode)
{
modes.push(current_mode);
current_mode = mode;
}
function restore_mode()
{
do_block_just_closed = current_mode === 'DO_BLOCK';
current_mode = modes.pop();
}
function in_array(what, arr)
{
for (var i = 0; i < arr.length; i++)
{
if (arr[i] === what) {
return true;
}
}
return false;
}
function get_next_token()
{
var n_newlines = 0;
var c = '';
do {
if (parser_pos >= input.length) {
return ['', 'TK_EOF'];
}
c = input.charAt(parser_pos);
parser_pos += 1;
if (c === "\n") {
n_newlines += 1;
}
}
while (in_array(c, whitespace));
if (n_newlines > 1) {
for (var i = 0; i < 2; i++) {
print_newline(i === 0);
}
}
var wanted_newline = (n_newlines === 1);
if (in_array(c, wordchar)) {
if (parser_pos < input.length) {
while (in_array(input.charAt(parser_pos), wordchar)) {
c += input.charAt(parser_pos);
parser_pos += 1;
if (parser_pos === input.length) {
break;
}
}
}
// small and surprisingly unugly hack for 1E-10 representation
if (parser_pos !== input.length && c.match(/^[0-9]+[Ee]$/) && input.charAt(parser_pos) === '-') {
parser_pos += 1;
var t = get_next_token(parser_pos);
c += '-' + t[0];
return [c, 'TK_WORD'];
}
if (c === 'in') { // hack for 'in' operator
return [c, 'TK_OPERATOR'];
}
return [c, 'TK_WORD'];
}
if (c === '(' || c === '[') {
return [c, 'TK_START_EXPR'];
}
if (c === ')' || c === ']') {
return [c, 'TK_END_EXPR'];
}
if (c === '{') {
return [c, 'TK_START_BLOCK'];
}
if (c === '}') {
return [c, 'TK_END_BLOCK'];
}
if (c === ';') {
return [c, 'TK_END_COMMAND'];
}
if (c === '/') {
var comment = '';
// peek for comment /* ... */
if (input.charAt(parser_pos) === '*') {
parser_pos += 1;
if (parser_pos < input.length) {
while (! (input.charAt(parser_pos) === '*' && input.charAt(parser_pos + 1) && input.charAt(parser_pos + 1) === '/') && parser_pos < input.length) {
comment += input.charAt(parser_pos);
parser_pos += 1;
if (parser_pos >= input.length) {
break;
}
}
}
parser_pos += 2;
return ['/*' + comment + '*/', 'TK_BLOCK_COMMENT'];
}
// peek for comment // ...
if (input.charAt(parser_pos) === '/') {
comment = c;
while (input.charAt(parser_pos) !== "\x0d" && input.charAt(parser_pos) !== "\x0a") {
comment += input.charAt(parser_pos);
parser_pos += 1;
if (parser_pos >= input.length) {
break;
}
}
parser_pos += 1;
if (wanted_newline) {
print_newline();
}
return [comment, 'TK_COMMENT'];
}
}
if (c === "'" || // string
c === '"' || // string
(c === '/' &&
((last_type === 'TK_WORD' && last_text === 'return') || (last_type === 'TK_START_EXPR' || last_type === 'TK_END_BLOCK' || last_type === 'TK_OPERATOR' || last_type === 'TK_EOF' || last_type === 'TK_END_COMMAND')))) { // regexp
var sep = c;
var esc = false;
c = '';
if (parser_pos < input.length) {
while (esc || input.charAt(parser_pos) !== sep) {
c += input.charAt(parser_pos);
if (!esc) {
esc = input.charAt(parser_pos) === '\\';
} else {
esc = false;
}
parser_pos += 1;
if (parser_pos >= input.length) {
break;
}
}
}
parser_pos += 1;
if (last_type === 'TK_END_COMMAND') {
print_newline();
}
return [sep + c + sep, 'TK_STRING'];
}
if (in_array(c, punct)) {
while (parser_pos < input.length && in_array(c + input.charAt(parser_pos), punct)) {
c += input.charAt(parser_pos);
parser_pos += 1;
if (parser_pos >= input.length) {
break;
}
}
return [c, 'TK_OPERATOR'];
}
return [c, 'TK_UNKNOWN'];
}
//----------------------------------
indent_character = indent_character || ' ';
indent_size = indent_size || 4;
indent_string = '';
while (indent_size--) {
indent_string += indent_character;
}
input = js_source_text;
last_word = ''; // last 'TK_WORD' passed
last_type = 'TK_START_EXPR'; // last token type
last_text = ''; // last token text
output = [];
do_block_just_closed = false;
var_line = false;
var_line_tainted = false;
whitespace = "\n\r\t ".split('');
wordchar = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$'.split('');
punct = '+ - * / % & ++ -- = += -= *= /= %= == === != !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! !! , : ? ^ ^= |='.split(' ');
// words which should always start on new line.
line_starters = 'continue,try,throw,return,var,if,switch,case,default,for,while,break,function'.split(',');
// states showing if we are currently in expression (i.e. "if" case) - 'EXPRESSION', or in usual block (like, procedure), 'BLOCK'.
// some formatting depends on that.
current_mode = 'BLOCK';
modes = [current_mode];
indent_level = indent_level || 0;
parser_pos = 0; // parser position
in_case = false; // flag for parser that case/default has been processed, and next colon needs special attention
while (true) {
var t = get_next_token(parser_pos);
token_text = t[0];
token_type = t[1];
if (token_type === 'TK_EOF') {
break;
}
switch (token_type) {
case 'TK_START_EXPR':
var_line = false;
set_mode('EXPRESSION');
if (last_type === 'TK_END_EXPR' || last_type === 'TK_START_EXPR') {
// do nothing on (( and )( and ][ and ]( ..
} else if (last_type !== 'TK_WORD' && last_type !== 'TK_OPERATOR') {
print_space();
} else if (in_array(last_word, line_starters) && last_word !== 'function') {
print_space();
}
print_token();
break;
case 'TK_END_EXPR':
print_token();
restore_mode();
break;
case 'TK_START_BLOCK':
if (last_word === 'do') {
set_mode('DO_BLOCK');
} else {
set_mode('BLOCK');
}
if (last_type !== 'TK_OPERATOR' && last_type !== 'TK_START_EXPR') {
if (last_type === 'TK_START_BLOCK') {
print_newline();
} else {
print_space();
}
}
print_token();
indent();
break;
case 'TK_END_BLOCK':
if (last_type === 'TK_START_BLOCK') {
// nothing
trim_output();
unindent();
} else {
unindent();
print_newline();
}
print_token();
restore_mode();
break;
case 'TK_WORD':
if (do_block_just_closed) {
print_space();
print_token();
print_space();
break;
}
if (token_text === 'case' || token_text === 'default') {
if (last_text === ':') {
// switch cases following one another
remove_indent();
} else {
// case statement starts in the same line where switch
unindent();
print_newline();
indent();
}
print_token();
in_case = true;
break;
}
prefix = 'NONE';
if (last_type === 'TK_END_BLOCK') {
if (!in_array(token_text.toLowerCase(), ['else', 'catch', 'finally'])) {
prefix = 'NEWLINE';
} else {
prefix = 'SPACE';
print_space();
}
} else if (last_type === 'TK_END_COMMAND' && (current_mode === 'BLOCK' || current_mode === 'DO_BLOCK')) {
prefix = 'NEWLINE';
} else if (last_type === 'TK_END_COMMAND' && current_mode === 'EXPRESSION') {
prefix = 'SPACE';
} else if (last_type === 'TK_WORD') {
prefix = 'SPACE';
} else if (last_type === 'TK_START_BLOCK') {
prefix = 'NEWLINE';
} else if (last_type === 'TK_END_EXPR') {
print_space();
prefix = 'NEWLINE';
}
if (last_type !== 'TK_END_BLOCK' && in_array(token_text.toLowerCase(), ['else', 'catch', 'finally'])) {
print_newline();
} else if (in_array(token_text, line_starters) || prefix === 'NEWLINE') {
if (last_text === 'else') {
// no need to force newline on else break
print_space();
} else if ((last_type === 'TK_START_EXPR' || last_text === '=') && token_text === 'function') {
// no need to force newline on 'function': (function
// DONOTHING
} else if (last_type === 'TK_WORD' && (last_text === 'return' || last_text === 'throw')) {
// no newline between 'return nnn'
print_space();
} else if (last_type !== 'TK_END_EXPR') {
if ((last_type !== 'TK_START_EXPR' || token_text !== 'var') && last_text !== ':') {
// no need to force newline on 'var': for (var x = 0...)
if (token_text === 'if' && last_type === 'TK_WORD' && last_word === 'else') {
// no newline for } else if {
print_space();
} else {
print_newline();
}
}
} else {
if (in_array(token_text, line_starters) && last_text !== ')') {
print_newline();
}
}
} else if (prefix === 'SPACE') {
print_space();
}
print_token();
last_word = token_text;
if (token_text === 'var') {
var_line = true;
var_line_tainted = false;
}
break;
case 'TK_END_COMMAND':
print_token();
var_line = false;
break;
case 'TK_STRING':
if (last_type === 'TK_START_BLOCK' || last_type === 'TK_END_BLOCK') {
print_newline();
} else if (last_type === 'TK_WORD') {
print_space();
}
print_token();
break;
case 'TK_OPERATOR':
var start_delim = true;
var end_delim = true;
if (var_line && token_text !== ',') {
var_line_tainted = true;
if (token_text === ':') {
var_line = false;
}
}
if (token_text === ':' && in_case) {
print_token(); // colon really asks for separate treatment
print_newline();
break;
}
in_case = false;
if (token_text === ',') {
if (var_line) {
if (var_line_tainted) {
print_token();
print_newline();
var_line_tainted = false;
} else {
print_token();
print_space();
}
} else if (last_type === 'TK_END_BLOCK') {
print_token();
print_newline();
} else {
if (current_mode === 'BLOCK') {
print_token();
print_newline();
} else {
// EXPR od DO_BLOCK
print_token();
print_space();
}
}
break;
} else if (token_text === '--' || token_text === '++') { // unary operators special case
if (last_text === ';') {
// space for (;; ++i)
start_delim = true;
end_delim = false;
} else {
start_delim = false;
end_delim = false;
}
} else if (token_text === '!' && last_type === 'TK_START_EXPR') {
// special case handling: if (!a)
start_delim = false;
end_delim = false;
} else if (last_type === 'TK_OPERATOR') {
start_delim = false;
end_delim = false;
} else if (last_type === 'TK_END_EXPR') {
start_delim = true;
end_delim = true;
} else if (token_text === '.') {
// decimal digits or object.property
start_delim = false;
end_delim = false;
} else if (token_text === ':') {
// zz: xx
// can't differentiate ternary op, so for now it's a ? b: c; without space before colon
if (last_text.match(/^\d+$/)) {
// a little help for ternary a ? 1 : 0;
start_delim = true;
} else {
start_delim = false;
}
}
if (start_delim) {
print_space();
}
print_token();
if (end_delim) {
print_space();
}
break;
case 'TK_BLOCK_COMMENT':
print_newline();
print_token();
print_newline();
break;
case 'TK_COMMENT':
// print_newline();
print_space();
print_token();
print_newline();
break;
case 'TK_UNKNOWN':
print_token();
break;
}
last_type = token_type;
last_text = token_text;
}
return output.join('');
}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-view{display:block;position:relative;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#fafafa;color:#333;font-family:Courier New;font-size:13px}.layui-code-title{position:relative;padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee;font-size:12px}.layui-code-title>.layui-code-about{position:absolute;right:10px;top:0;color:#b7b7b7}.layui-code-about>a{padding-left:10px}.layui-code-view>.layui-code-ol,.layui-code-view>.layui-code-ul{position:relative;overflow:auto}.layui-code-view>.layui-code-ol>li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view>.layui-code-ol>li:first-child,.layui-code-view>.layui-code-ul>li:first-child{padding-top:10px}.layui-code-view>.layui-code-ol>li:last-child,.layui-code-view>.layui-code-ul>li:last-child{padding-bottom:10px}.layui-code-view>.layui-code-ul>li{position:relative;line-height:20px;padding:0 10px;list-style-type:none;*list-style-type:none;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-dark{border:1px solid #0c0c0c;border-left-color:#3f3f3f;background-color:#0c0c0c;color:#c2be9e}.layui-code-dark>.layui-code-title{border-bottom:none}.layui-code-dark>.layui-code-ol>li,.layui-code-dark>.layui-code-ul>li{background-color:#3f3f3f;border-left:none}.layui-code-dark>.layui-code-ul>li{margin-left:6px}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 299 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,56 @@
.signNameCanvasBox {
background: rgba(243, 243, 243, 1);
}
.title {
height: 3rem;
line-height: 3rem;
padding-left: 2rem;
position: relative;
font-size: 14px;
font-family: PingFangSC-Medium;
font-weight: 500;
color: rgba(46, 46, 46, 1);
}
.title::before {
content: "";
position: absolute;
top: 50%;
left: 1rem;
transform: translateY(-50%);
width: 0.29rem;
height: 1.14rem;
background: linear-gradient(225deg, rgba(87, 229, 199, 1) 0%, rgba(74, 192, 166, 1) 100%);
border-radius: 0.14rem;
}
.signToolLine {
overflow: hidden;
margin: 2rem 1rem 0;
}
.signToolLine .btnItem {
width: 44%;
height: 3rem;
text-align: center;
line-height: 3rem;
font-size: 1.14rem;
font-family: PingFangSC-Medium;
font-weight: 500;
}
.signToolLine .btnItem.chongxie {
float: left;
color: rgba(37, 170, 141, 1);
border-radius: 0.29rem;
border: 0.04rem solid rgba(45, 197, 165, .3);
box-sizing: border-box;
}
.signToolLine .btnItem.shengcheng {
float: right;
background: rgba(37, 170, 141, 1);
border-radius: 0.29rem;
color: rgba(255, 255, 255, 1);
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,178 @@
/* 样式加载完毕的标识 */
html #layuicss-cron {
display: none;
position: absolute;
width: 1989px;
}
/* 主体结构 */
.layui-cron {
position: absolute;
z-index: 1000;
margin: 5px 0;
border-radius: 2px;
font-size: 14px;
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
background-color: white;
display: flex;
flex-direction: column;
box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 5px 0px;
-webkit-animation-name: cron-upbit;
animation-name: cron-upbit;
border: 1px solid #e6e6e6;
}
@-webkit-keyframes cron-upbit {
/* 微微往上滑入 */
from {
-webkit-transform: translate3d(0, 20px, 0);
opacity: 0.3;
}
to {
-webkit-transform: translate3d(0, 0, 0);
opacity: 1;
}
}
@keyframes cron-upbit {
from {
transform: translate3d(0, 20px, 0);
opacity: 0.3;
}
to {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
/* tabs */
.layui-cron>.layui-tab {
margin: 0;
box-shadow: none;
border: none;
}
/* 表达式 */
.cron-title {
font-weight: 700;
font-size: 14px;
margin: 10px;
margin-bottom: 0;
}
.cron-box {
margin: 10px;
}
.cron-box+.cron-box {
margin-top: 0;
}
/* 按钮 */
.cron-footer-btns {
text-align: right;
}
.cron-footer-btns span {
height: 26px;
line-height: 26px;
margin: 0 0 0 -1px;
padding: 0 10px;
border: 1px solid #C9C9C9;
background-color: #fff;
white-space: nowrap;
vertical-align: top;
border-radius: 2px;
display: inline-block;
cursor: pointer;
font-size: 12px;
box-sizing: border-box;
color: #666;
}
.cron-footer-btns span:hover {
color: #5FB878;
}
/* 表单 */
.layui-cron .layui-form-radio {
margin-right: 0;
}
.cron-form {
line-height: 28px;
font-size: 14px;
}
.cron-input-mid {
display: inline-block;
vertical-align: middle;
margin-top: 6px;
background-color: #e5e5e5;
padding: 0 12px;
height: 28px;
line-height: 28px;
border: 1px solid #ccc;
box-sizing: border-box;
}
.cron-input {
display: inline-block;
vertical-align: middle;
margin-top: 6px;
padding: 0 8px;
background-color: #fff;
border: 1px solid #ccc;
height: 28px;
line-height: 28px;
box-sizing: border-box;
width: 80px;
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
}
.cron-input:focus {
outline: 0;
border: 1px solid #01AAED;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 4px 0px #01AAED;
translate: 1s;
}
.layui-cron .layui-form-checkbox[lay-skin="primary"] span {
padding-right: 10px;
min-width: 16px;
}
.layui-cron .layui-form-checkbox[lay-skin="primary"] {
padding-left: 22px;
margin-top: 5px;
}
.layui-cron input[type=number] {
-moz-appearance:textfield;
}
.layui-cron input[type=number]::-webkit-inner-spin-button,
.layui-cron input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.cron-tips{
color: grey;
line-height: 28px;
height: 28px;
display: inline-block;
vertical-align: middle;
margin-top: 8px;
margin-left: 5px;
}

@ -0,0 +1,779 @@
.layui-layout-admin .layui-logo {
color : #fff;
font-size: 20px;
}
.layui-side-right {
position : fixed;
right : 0;
top : 0;
bottom : 0;
z-index : 999;
width : 350px;
overflow-x: hidden
}
.layui-layout-admin .layui-side {
top : 60px;
width : 260px;
overflow-x: hidden
}
.layui-layout-admin .layui-side-right {
top : 60px;
width : 350px;
overflow-x: hidden
}
.layui-body {
position : absolute;
left : 260px;
right : 350px;
top : 0;
bottom : 0;
z-index : 998;
width : auto;
overflow-y : auto;
box-sizing : border-box;
min-width : 250px;
border-left : 1px solid #e6e6e6;
border-right: 1px solid #e6e6e6;
}
.layui-layout-admin .layui-body {
bottom: 0;
}
/* components-list*/
.components-list {
padding : 4px;
-webkit-box-sizing: border-box;
box-sizing : border-box;
height : 100%
}
.components-list .components-item {
display : inline-block;
width : 49%;
margin : 0.5%;
margin-top : 5px;
-webkit-transition: -webkit-transform 0ms !important;
transition : -webkit-transform 0ms !important;
transition : transform 0ms !important;
transition : transform 0ms, -webkit-transform 0ms !important
}
.components-draggable {
padding-bottom: 20px
}
.components-title {
font-size: 14px;
color : #2196f3;
margin : 6px 2px;
font-weight: bold;
}
.right-button {
float: right;
padding: 1px 3px;
border: none;
cursor: pointer;
}
.button--text {
color: #009688;
background: 0 0;
padding-left: 0;
padding-right: 0;
font-size: 10px;
}
.components-title .svg-icon {
color : #666;
font-size: 18px
}
.components-body {
padding : 8px 10px;
background : #f6f7ff;
font-size : 12px;
cursor : move;
border : 1px dashed #f6f7ff;
border-radius: 3px
}
.components-body .svg-icon {
color : #777;
font-size: 15px
}
.components-body:hover {
border: 1px dashed #787be8;
color : #787be8
}
.components-body:hover .svg-icon {
color: #787be8
}
.ghost {
border : 1px dashed #e06c1d;
outline-width: 0;
height : 39px;
box-sizing : border-box;
content : '';
padding : 0;
}
.ghost div {
color:#fff;
}
.layui-body .active {
outline : 2px solid #409EFF;
border : 1px solid #409EFF;
outline-offset: 0;
}
#formDesignerForm .layui-form-item {
position: relative;
}
#formDesignerForm .grid {
padding: 5px 5px;
}
#formDesignerForm .layui-form-item:hover {
border : 1px solid #409EFF;
background-color: #e9f4fd !important;
}
.widget-view-drag {
position : absolute;
left : -2px;
top : -2px;
bottom : -18px;
height : 28px;
line-height: 28px;
background : #409EFF;
z-index : 9;
}
.widget-view-drag i {
font-size: 14px;
color : #fff;
margin : 0 5px;
cursor : move;
}
.select-option-drag {
cursor: move;
}
.select-option-delete {
cursor: pointer;
}
.widget-view-action {
position : absolute;
right : 0;
bottom : 0;
height : 28px;
line-height: 28px;
background : #409EFF;
z-index : 9;
}
.widget-view-action i {
font-size: 14px;
color : #fff;
margin : 0 5px;
cursor : pointer;
}
#formDesignerForm {
background: #fff;
border : 1px dashed #999;
min-height: 100%;
margin : 10px;
padding : 10px 10px;
}
#formDesignerForm .widget-col-list {
min-height: 50px;
border : 1px dashed #ccc;
background: #fff;
}
#formDesignerForm .widget-slider {
margin: 18px 10px;
width : 90%;
position: absolute!important;
}
.layui-empty {
margin : 10px 60px;
color : #9e9e9e;
font-size : 16px;
text-align: center;
}
#columnProperty .layui-form-item.option {
margin-bottom: 2px;
}
#columnProperty .layui-form-item.option .layui-inline {
margin-bottom: 2px;
}
/* 图片上传 */
.uploader-list {
margin-left: -15px;
}
.uploader-list .info {
position : relative;
margin-top : -25px;
background-color: black;
color : white;
filter : alpha(Opacity=80);
-moz-opacity : 0.5;
opacity : 0.5;
width : 100px;
height : 25px;
text-align : center;
display : none;
}
.uploader-list .handle {
position : relative;
background-color: black;
color : white;
filter : alpha(Opacity=80);
-moz-opacity : 0.5;
opacity : 0.5;
width : 100px;
text-align : right;
height : 18px;
margin-bottom : -18px;
display : none;
}
.uploader-list .handle i {
margin-right: 5px;
}
.uploader-list .handle i:hover {
cursor: pointer;
}
.uploader-list .file-iteme {
margin : 12px 0 0 15px;
padding: 1px;
float : left;
}
/*自定义layer颜色*/
body .cool-black .layui-layer-title {
color : #fff;
height : 50px;
line-height : 50px;
background-color: #191a23;
border : none;
}
body .cool-black .layui-layer-setwin a {
color : #fff;
font-size : 16px;
font-style : normal;
font-family : layui-icon !important;
-webkit-font-smoothing : antialiased;
-moz-osx-font-smoothing: grayscale;
}
body .cool-black .layui-layer-btn a {
background: #333;
}
.htmlcodeview,
.importjsoncodeview {
position: relative;
display : none;
}
.htmlcodeview textarea,
.getFormData textarea,
.importjsoncodeview textarea {
display : block;
width : 760px;
height : 560px;
border : 10px solid #F8F8F8;
border-top-width: 0;
padding : 10px;
line-height : 20px;
overflow : auto;
background-color: #3F3F3F;
color : #eee;
font-size : 12px;
font-family : Courier New;
}
.htmlcodeview a,
.importjsoncodeview a {
position: absolute;
right : 20px;
bottom : 20px;
}
.htmlcodeview,
.importjsoncodedataview {
position: relative;
display : none;
}
.htmlcodeview textarea,
.getFormData textarea,
.importjsoncodedataview textarea {
display : block;
width : 760px;
height : 560px;
border : 10px solid #F8F8F8;
border-top-width: 0;
padding : 10px;
line-height : 20px;
overflow : auto;
background-color: #3F3F3F;
color : #eee;
font-size : 12px;
font-family : Courier New;
}
.htmlcodeview a,
.importjsoncodedataview a {
position: absolute;
right : 20px;
bottom : 20px;
}
.aboutusview .about {
display : block;
width : 760px;
height : 554px;
padding : 20px 20px;
overflow : hidden;
background-color: #191a23;
color : #ccc;
}
.aboutusview .about p{
line-height: 30px;
}
.aboutusview .about .yellow{
color:#e6ec8d;
}
.layui-disabled {
background-color: #f5f7fa;
border-color: #dfe4ed;
color: #c0c4cc;
}
.custom-lg{
margin: -3px 0px 0px 10px;
}
.custom-zc{
margin: 0px 0px 0px 10px;
}
.custom-sm{
margin: 5px 0px 0px 10px;
}
.custom-xs{
margin: 10px 0px 0px 10px;
}
.iceEditor-disabled {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(245,247,250,0.79) !important;
border-color: #dfe4ed !important;
color: #c0c4cc !important;
z-index: 1 !important;
display: block;
}
::-webkit-scrollbar {
width: 5px;
color: #000;
}
.component-group ol {
display: inline-block;
background: #fff;
color: #000;
min-width: 70px;
width: 32%;
height: 70px;
line-height: 1;
text-align: center;
transition: all .2s ease;
cursor: pointer;
}
.component-group ol:hover {
background: #009688;
border-radius: 5px;
color: #fff;
border-color: #fff;
}
.component-group ol .icon {
padding: 10px 5px 12px;
display: inline-block;
}
.component-group ol .icon i {
font-size: 18px;
}
.layui-icon-switch {
border: 1px solid #666;
border-radius: 20px;
display: inline-block;
width: 20px;
height: 10px;
position: relative;
}
.layui-icon-switch k {
position: absolute;
left: 4px;
top: 2px;
width: 6px;
height: 6px;
border-radius: 20px;
background-color: #666;
-webkit-transition: .1s linear;
transition: .1s linear;
}
.component {
margin-bottom: 15px;
}
.component-group ol:hover .layui-icon-switch {
color: #fff;
border-color: #fff;
}
.component-group ol:hover k {
background-color: #fff;
}
.component-group ol .name {
font-size: 12px;
}
.layui-col-md2,.layui-col-md8 {
border-right: 1px solid #f6f6ff;
}
.fr {
float: right;
}
.layui-form-footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: #fff;
box-shadow: 0 -1px 5px rgba(0,0,0,.15);
padding: 15px;
z-index: 9999;
margin-bottom: 0px;
margin-top: 10px;
text-align: center;
}
.layui-inlioc {
clear: both;
}
.layui-fluid {
padding-top: 20px;
}
#layui-form-attribute .layui-input-inline {
width: 169px;
margin-right: 0;
}
#layui-form-attribute .layui-form-label {
padding: 6px;
padding-right: 10px;
width: 60px!important;
}
.layui-minmax {
width: 76px;
display: inline-block;
}
.layui-input-inline em {
margin: 0px 5px;
}
.layui-component-tools {
position: absolute;
background: #009688;
right: 0;
bottom: 0;
padding: 1px 5px;
cursor: pointer;
z-index: 21;
color: #fff;
width: 32px;
height: 20px;
line-height: 20px;
text-align: center;
display: none;
}
.layui-input-none {
display: none;
}
.layui-component-tools i,.layui-component-move i {
font-size: 12px;
}
#layui-elem-field legend {
margin-left: 39%;
font-size: 14px;
}
#tab-options input {
width: 139px;
display: inline-block;
margin: 0px 8px;
}
#form-options .layui-add-option,#tab-options .layui-add-tab {
position: relative;
left: 26px;
}
.layui-slider {
margin-top: 3px;
}
#Propertie .layui-slider {
margin-top: 13px;
}
#tpl_main,#tpl_right_main {
margin: 25% auto;
text-align: center;
font-size: 18px;
color: #c9e0f3;
}
#layui-form-template .item-list {
padding: 8px 0px;
}
.item-body {
border: 1px solid #f6f6f6;
padding: 20px;
border-radius: 5px;
cursor: pointer;
margin-bottom: 10px;
}
.item-body:hover {
border: 1px solid #009688;
}
.item-body .item-img {
overflow: hidden;
}
.item-body .item-img img {
width: 100%;;
}
.item-body .item-desc {
margin-top: 10px;
}
.item-body .item-desc span.item-title{
font-size: 13px;
font-weight: 700;
}
.right-button {
float: right;
padding: 1px 3px;
border: none;
cursor: pointer;
}
.button--text {
color: #009688;
background: 0 0;
padding-left: 0;
padding-right: 0;
font-size: 10px;
}
.layui-htmlview {
position: relative;
}
.layui-htmlview textarea {
display: block;
width: 760px;
height: 566px;
border: 10px solid #F8F8F8;
border-top-width: 0;
padding: 10px;
line-height: 20px;
overflow: auto;
background-color: #3F3F3F;
color: #eee;
font-size: 12px;
font-family: Courier New;
}
.layui-htmlview .layui-htmlbtn{
position: absolute;
right: 20px;
bottom:20px;
}
#parse-table .layui-input {
height: 30px;
width: 139px;
font-size: 12px;
border: none;
}
.components-draggable ol {
display: inline-block;
background: #fff;
color: #000;
min-width: 70px;
width: 32%;
height: 70px;
line-height: 1;
text-align: center;
transition: all .2s ease;
cursor: pointer;
}
.components-draggable ol:hover {
background: #009688;
border-radius: 5px;
color: #fff;
border-color: #fff;
}
.components-draggable ol .icon {
padding: 10px 5px 12px;
display: inline-block;
}
.components-draggable ol .icon i {
font-size: 18px;
}
#formPreviewForm .widget-slider {
margin: 18px 10px;
width : 90%;
position: absolute!important;
}
.custom-lg{
margin: -3px 0px 0px 10px;
}
.custom-zc{
margin: 0px 0px 0px 10px;
}
.custom-sm{
margin: 5px 0px 0px 10px;
}
.custom-xs{
margin: 10px 0px 0px 10px;
}
.my-disabled{
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: rgba(191,191,191,.79);
}
.iceEditor-disabled {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(245,247,250,0.79) !important;
border-color: #dfe4ed !important;
color: #c0c4cc !important;
z-index: 1 !important;
display: block;
}
/* 图片上传 */
.uploader-list {
margin-left: -15px;
}
.uploader-list .info {
position: relative;
margin-top: -25px;
background-color: black;
color: white;
filter: alpha(Opacity=80);
-moz-opacity: 0.5;
opacity: 0.5;
width: 100px;
height: 25px;
text-align: center;
display: none;
}
.uploader-list .handle {
position: relative;
background-color: black;
color: white;
filter: alpha(Opacity=80);
-moz-opacity: 0.5;
opacity: 0.5;
width: 100px;
text-align: right;
height: 18px;
margin-bottom: -18px;
display: none;
}
.uploader-list .handle i {
margin-right: 5px;
}
.uploader-list .handle i:hover {
cursor: pointer;
}
.uploader-list .file-iteme {
margin: 12px 0 0 15px;
padding: 1px;
float: left;
}

@ -0,0 +1,545 @@
layui.define(['layer'], function (exports) {
var formField = {
components : {
input: {
id:'-1',
fieldId:'-1',
fieldLength: '50',
index:'-1',
label: "单行文本",
tag: "input",
tagIcon: 'input',
placeholder: "请输入",
defaultValue: null,
labelWidth: 110,
width:"100%",
clearable: true,
maxlength: null,
showWordLimit: false,
readonly: false,
disabled: false,
required: true,
expression:"",
document: ''
},
password: {
id:'-1',
fieldId:'-1',
fieldLength: '50',
index:'-1',
label: "密码框",
tag: "password",
tagIcon: 'password',
placeholder: "请输入",
defaultValue: null,
labelWidth: 110,
width:"100%",
clearable: true,
maxlength: null,
showWordLimit: false,
readonly: false,
disabled: false,
required: true,
document: ''
},
select: {
id:'-1',
fieldId:'-1',
fieldLength: '50',
index:'-1',
label: "下拉框",
tag: "select",
tagIcon: 'select',
labelWidth: 110,
width:"100%",
disabled: false,
required: true,
document: '',
datasourceType: 'local',
remoteUrl: 'http://',
remoteMethod: 'post',
remoteOptionText:'options.data.dictName',//映射到text
remoteOptionValue:'options.data.dictId',//映射到value text和value可以是一样的
remoteDefaultValue:'12',//表示对应的remoteOptionValue的值
options: [
{
text: 'option1',
value: 'value1',
checked: true,
},
{
text: 'option2',
value: 'value2',
checked: false,
},
{
text: 'option3',
value: 'value3',
checked: false,
},
]
},
radio: {
id:'-1',
fieldId:'-1',
fieldLength: '50',
index:'-1',
label: "单选组",
tag: "radio",
tagIcon: 'radio',
labelWidth: 110,
disabled: false,
document: '',
datasourceType: 'local',
remoteUrl: 'http://',
remoteMethod: 'post',
remoteOptionText:'options.data.dictName',//映射到text
remoteOptionValue:'options.data.dictId',//映射到value text和value可以是一样的
options: [
{
text: 'option1',
value: 'value1',
checked: true,
},
{
text: 'option2',
value: 'value2',
checked: false,
},
{
text: 'option3',
value: 'value3',
checked: false,
},
]
},
checkbox: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "复选组",
fieldLength: '50',
tag: "checkbox",
tagIcon: 'checkbox',
labelWidth: 110,
disabled: false,
required: true,
document: '',
datasourceType: 'local',
remoteUrl: 'http://',
remoteMethod: 'post',
remoteOptionText:'options.data.dictName',//映射到text
remoteOptionValue:'options.data.dictId',//映射到value text和value可以是一样的
options: [
{
text: 'option1',
value: 'value1',
checked: true,
},
{
text: 'option2',
value: 'value2',
checked: true,
},
{
text: 'option3',
value: 'value3',
checked: false,
},
]
},
switch: {
id:'-1',
fieldId:'-1',
fieldLength: '10',
index:'-1',
label: "开关",
tag: "switch",
tagIcon: 'switch',
labelWidth: 110,
width:"100%",
switchValue: false,
showWordLimit: false,
disabled: false,
document: '',
},
slider: {
id:'-1',
fieldId:'-1',
//fieldLength: '10',
index:'-1',
label: "滑块",
tag: "slider",
tagIcon: 'slider',
labelWidth: 110,
width:"100%",
defaultValue: 10,
maxValue: 100,
minValue: 1,
stepValue: 2,
isInput:true,
disabled: false,
document: '',
},
numberInput: {
id:'-1',
fieldId:'-1',
//fieldLength: '10',
index:'-1',
label: "排序文本框",
tag: "numberInput",
tagIcon: 'numberInput',
labelWidth: 110,
width:"100%",
defaultValue: 0,
maxValue: 100,
minValue: 0,
stepValue: 1,
disabled: false,
document: '',
},
labelGeneration: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "标签组件",
tag: "labelGeneration",
tagIcon: 'labelGeneration',
labelWidth: 110,
width:"100%",
isEnter: false,
disabled: false,
document: '',
},
bottom: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "按钮组件",
tag: "bottom",
tagIcon: 'bottom',
labelWidth: 110,
buttonIcon:"",
buttonVlaue:"按钮",
buttonType:"",
buttonSize:"",
isLabel:true,
disabled: false,
document: '',
},
sign: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "签名组件",
tag: "sign",
tagIcon: 'sign',
labelWidth: 110,
buttonVlaue:"手写签名",
buttonIcon:"",
data:"",
disabled: false,
document: '',
},
iconPicker: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "图标选择器",
tag: "iconPicker",
tagIcon: 'iconPicker',
labelWidth: 110,
defaultValue: '',
iconPickerSearch: true,
iconPickerPage: true,
iconPickerLimit: 12,
iconPickerCellWidth: '43px',
disabled: false,
document: '',
},
cron: {
id:'-1',
fieldId:'-1',
fieldLength: '50',
index:'-1',
label: "Cron表达式",
tag: "cron",
tagIcon: 'cron',
placeholder: "请输入cron表达式,如:0 0 12 * * ?",
labelWidth: 110,
width:"100%",
defaultValue: '* * * * * ?',
cronUrl: '',
disabled: false,
required: true,
document: '',
},
date: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "日期",
tag: "date",
tagIcon: 'date',
labelWidth: 110,
width:"100%",
clearable: true,
maxlength: null,
dateDefaultValue: '2021-05-25',
dateType: "date",//year month date time datetime
range: false,
dateFormat: "yyyy-MM-dd",
isInitValue: false,
dataMaxValue: "2088-12-31",
dataMinValue: "1900-01-01",
trigger: null,//自定义弹出控件的事件
position: "absolute",//fixed,static,abolute
theme: "default",
mark: null,//每年的日期 {'0-9-18': '国耻'} 0 即代表每一年
showBottom: true,
zindex:66666666,
disabled: false,
required: true,
document: '',
},
dateRange: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "日期范围",
tag: "dateRange",
tagIcon: 'dateRange',
labelWidth: 110,
//width:"100%",
dateRangeDefaultValue: "2021-06-19 - 2021-07-17",
clearable: true,
maxlength: null,
dateType: "date",//year month date time datetime
dateFormat: "yyyy-MM-dd",
isInitValue: true,
dataMaxValue: "2088-12-31",
dataMinValue: "1900-01-01",
trigger: null,//自定义弹出控件的事件
position: "absolute",//fixed,static,abolute
theme: "default",
mark: null,//每年的日期 {'0-9-18': '国耻'} 0 即代表每一年
showBottom: true,
zindex:66666666,
disabled: false,
required: true,
document: '',
},
rate: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "评分",
tag: "rate",
tagIcon: 'rate',
labelWidth: 110,
defaultValue: 0,
rateLength: 5,//星星长度
half: false,
text: false,
theme: "default",
showBottom: true,
readonly: false,
document: '',
},
carousel: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "轮播图",
tag: "carousel",
tagIcon: 'carousel',
width: "100%",
height: "500px",
full: false,//是否全屏
anim: "default", //轮播切换动画方式,
interval: 3000,//切换时间 毫秒
startIndex: 0,//初始索引
arrow: "hover",//切换箭头默认显示状态
autoplay: true,//是否自动切换
document: '',
datasourceType: 'local',
remoteUrl: 'http://',
remoteMethod: 'post',
remoteOptionText:'options.data.dictName',//映射到text
remoteOptionValue:'options.data.dictId',//映射到value text和value可以是一样的
options: [
{
text: 'banner1',
value: './style/images/banner1.PNG',
checked: true,
},
{
text: 'banner2',
value: './style/images/banner2.PNG',
checked: false,
},
{
text: 'banner3',
value: './style/images/banner3.PNG',
checked: false,
},
]
},
colorpicker: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "颜色选择器",
tag: "colorpicker",
tagIcon: 'colorpicker',
labelWidth: 110,
defaultValue: 'rgba(0, 0, 0, 1)',
colorformat: "#fff",
alpha: false,
colors: [],
size: "",
showBottom: true,
disabled: false,
document: '',
},
image: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "上传图片",
tag: "image",
tagIcon: 'image',
placeholder: "请输入",
defaultValue: null,
labelWidth: null,
disabled: false,
required: true,
document: '',
uploadUrl: '',
},
file: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "上传文件",
tag: "file",
tagIcon: 'file',
placeholder: "请输入",
defaultValue: null,
labelWidth: null,
disabled: false,
required: true,
document: '',
uploadUrl: '',
},
textarea: {
id:'-1',
fieldId:'-1',
//fieldLength: '50',
index:'-1',
label: "多行文本",
tag: "textarea",
tagIcon: 'textarea',
placeholder: "请输入",
defaultValue: null,
width:"100%",
readonly: false,
disabled: false,//这里就是readonly的医生
required: true,
document: ''
},
editor: {
id:'-1',
fieldId:'-1',
index:'-1',
label: "编辑器",
tag: "editor",
tagIcon: 'editor',
width:"100%",
clearable: true,
maxlength: null,
showWordLimit: false,
menu: ['backColor', 'fontSize', 'foreColor', 'bold', 'italic', 'underline', 'strikeThrough', 'justifyLeft', 'justifyCenter', 'justifyRight', 'indent', 'outdent', 'insertOrderedList', 'insertUnorderedList', 'superscript', 'subscript', 'createLink', 'unlink', 'hr', 'face','table', 'files', 'music', 'video', 'insertImage', 'removeFormat', 'code', 'line'],
height: "200px",
uploadUrl: '/upload/',
disabled:false,
defaultValue:'',
document: ''
},
grid:{
id:'-1',
index:'-1',
tag: 'grid',
span: 2,
columns: [
{
span: 12,
list: [],
},
{
span: 12,
list: [],
}
]
}
},
componentsLang : [
{
component : "c1",
name:"输入型组件(基于layui)",
list:[
{"key":"input","icon":"layui-icon layui-icon-layer"},
{"key":"password","icon":"layui-icon layui-icon-auz"},
{"key":"textarea","icon":"layui-icon layui-icon-list"}
]
},
{
component : "c2",
name:"选择型组件(基于layui)",
list:[
{"key":"select","icon":"layui-icon layui-icon-align-left"},
{"key":"radio","icon":"layui-icon layui-icon-radio"},
{"key":"checkbox","icon":"layui-icon layui-icon-list"},
{"key":"switch","icon":"layui-icon layui-icon-key"},
{"key":"slider","icon":"layui-icon layui-icon-slider"},
{"key":"date","icon":"layui-icon layui-icon-time"},
{"key":"rate","icon":"layui-icon layui-icon-rate-solid"}//,
//{"key":"carousel","icon":"layui-icon layui-icon-carousel"},
//{"key":"colorpicker","icon":"layui-icon layui-icon-theme"},
//{"key":"image","icon":"layui-icon layui-icon-picture"},
//{"key":"file","icon":"layui-icon layui-icon-export"},
/*{"key":"dateRange","icon":"layui-icon layui-icon-date"}*/
]
},
{
component : "c3",
name:"布局型组件(基于layui)",
list:[
{"key":"grid","icon":"layui-icon layui-icon-layer"},
//{"key":"bottom","icon":"layui-icon layui-icon-prev-circle"}
]
},
/*{
component : "c4",
name:"扩展组件(基于layui)",
list:[
{"key":"numberInput","icon":"layui-icon layui-icon-top"},
{"key":"iconPicker","icon":"layui-icon layui-icon-auz"},
{"key":"cron","icon":"layui-icon layui-icon-survey"},
//{"key":"labelGeneration","icon":"layui-icon layui-icon-auz"},
{"key":"sign","icon":"layui-icon layui-icon-layer"}
]
},
{
component : "c5",
name:"扩展组件(外部)",
list:[
{"key":"editor","icon":"layui-icon layui-icon-layer"}
]
}*/
],
}
exports('formField', formField);
});

File diff suppressed because one or more lines are too long

@ -0,0 +1,400 @@
/**
* Layui图标选择器
* @author wujiawei0926@yeah.net
* @version 1.1
*/
layui.define(['laypage', 'form'], function (exports) {
"use strict";
var IconPicker =function () {
this.v = '1.1';
}, _MOD = 'iconPicker',
_this = this,
$ = layui.jquery,
laypage = layui.laypage,
form = layui.form,
BODY = 'body',
TIPS = '请选择图标';
/**
* 渲染组件
*/
IconPicker.prototype.render = function(options){
var opts = options,
// DOM选择器
elem = opts.elem,
// 数据类型:fontClass/unicode
type = opts.type == null ? 'fontClass' : opts.type,
// 是否分页:true/false
page = opts.page == null ? true : opts.page,
// 每页显示数量
limit = opts.limit == null ? 12 : opts.limit,
// 是否开启搜索:true/false
search = opts.search == null ? true : opts.search,
// 每个图标格子的宽度:'43px'或'20%'
cellWidth = opts.cellWidth,
// 点击回调
click = opts.click,
// 渲染成功后的回调
success = opts.success,
// json数据
data = {},
// 唯一标识
tmp = new Date().getTime(),
// 是否使用的class数据
isFontClass = opts.type === 'fontClass',
// 初始化时input的值
ORIGINAL_ELEM_VALUE = $(elem).val(),
TITLE = 'layui-select-title',
TITLE_ID = 'layui-select-title-' + tmp,
ICON_BODY = 'layui-iconpicker-' + tmp,
PICKER_BODY = 'layui-iconpicker-body-' + tmp,
PAGE_ID = 'layui-iconpicker-page-' + tmp,
LIST_BOX = 'layui-iconpicker-list-box',
selected = 'layui-form-selected',
unselect = 'layui-unselect';
var a = {
init: function () {
data = common.getData[type]();
a.hideElem().createSelect().createBody().toggleSelect();
a.preventEvent().inputListen();
common.loadCss();
if (success) {
success(this.successHandle());
}
return a;
},
successHandle: function(){
var d = {
options: opts,
data: data,
id: tmp,
elem: $('#' + ICON_BODY)
};
return d;
},
/**
* 隐藏elem
*/
hideElem: function () {
$(elem).hide();
return a;
},
/**
* 绘制select下拉选择框
*/
createSelect: function () {
var oriIcon = '<i class="layui-icon">';
// 默认图标
if(ORIGINAL_ELEM_VALUE === '') {
if(isFontClass) {
ORIGINAL_ELEM_VALUE = 'layui-icon-circle-dot';
} else {
ORIGINAL_ELEM_VALUE = '&#xe617;';
}
}
if (isFontClass) {
oriIcon = '<i class="layui-icon '+ ORIGINAL_ELEM_VALUE +'">';
} else {
oriIcon += ORIGINAL_ELEM_VALUE;
}
oriIcon += '</i>';
var selectHtml = '<div class="layui-iconpicker layui-unselect layui-form-select" id="'+ ICON_BODY +'">' +
'<div class="'+ TITLE +'" id="'+ TITLE_ID +'">' +
'<div class="layui-iconpicker-item">'+
'<span class="layui-iconpicker-icon layui-unselect">' +
oriIcon +
'</span>'+
'<i class="layui-edge"></i>' +
'</div>'+
'</div>' +
'<div class="layui-anim layui-anim-upbit" style="">' +
'123' +
'</div>';
$(elem).after(selectHtml);
return a;
},
/**
* 展开/折叠下拉框
*/
toggleSelect: function () {
var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID + ' .layui-iconpicker-item .layui-edge';
a.event('click', item, function (e) {
var $icon = $('#' + ICON_BODY);
if ($icon.hasClass(selected)) {
$icon.removeClass(selected).addClass(unselect);
} else {
// 隐藏其他picker
$('.layui-form-select').removeClass(selected);
// 显示当前picker
$icon.addClass(selected).removeClass(unselect);
}
e.stopPropagation();
});
return a;
},
/**
* 绘制主体部分
*/
createBody: function () {
// 获取数据
var searchHtml = '';
if (search) {
searchHtml = '<div class="layui-iconpicker-search">' +
'<input class="layui-input">' +
'<i class="layui-icon">&#xe615;</i>' +
'</div>';
}
// 组合dom
var bodyHtml = '<div class="layui-iconpicker-body" id="'+ PICKER_BODY +'">' +
searchHtml +
'<div class="'+ LIST_BOX +'"></div> '+
'</div>';
$('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml);
a.search().createList().check().page();
return a;
},
/**
* 绘制图标列表
* @param text 模糊查询关键字
* @returns {string}
*/
createList: function (text) {
var d = data,
l = d.length,
pageHtml = '',
listHtml = $('<div class="layui-iconpicker-list">')//'<div class="layui-iconpicker-list">';
// 计算分页数据
var _limit = limit, // 每页显示数量
_pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页
_id = PAGE_ID;
// 图标列表
var icons = [];
for (var i = 0; i < l; i++) {
var obj = d[i];
// 判断是否模糊查询
if (text && obj.indexOf(text) === -1) {
continue;
}
// 是否自定义格子宽度
var style = '';
if (cellWidth !== null) {
style += ' style="width:' + cellWidth + '"';
}
// 每个图标dom
var icon = '<div class="layui-iconpicker-icon-item" title="'+ obj +'" '+ style +'>';
if (isFontClass){
icon += '<i class="layui-icon '+ obj +'"></i>';
} else {
icon += '<i class="layui-icon">'+ obj.replace('amp;', '') +'</i>';
}
icon += '</div>';
icons.push(icon);
}
// 查询出图标后再分页
l = icons.length;
_pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1);
for (var i = 0; i < _pages; i++) {
// 按limit分块
var lm = $('<div class="layui-iconpicker-icon-limit" id="layui-iconpicker-icon-limit-' + tmp + (i+1) +'">');
for (var j = i * _limit; j < (i+1) * _limit && j < l; j++) {
lm.append(icons[j]);
}
listHtml.append(lm);
}
// 无数据
if (l === 0) {
listHtml.append('<p class="layui-iconpicker-tips">无数据</p>');
}
// 判断是否分页
if (page){
$('#' + PICKER_BODY).addClass('layui-iconpicker-body-page');
pageHtml = '<div class="layui-iconpicker-page" id="'+ PAGE_ID +'">' +
'<div class="layui-iconpicker-page-count">' +
'<span id="'+ PAGE_ID +'-current">1</span>/' +
'<span id="'+ PAGE_ID +'-pages">'+ _pages +'</span>' +
' (<span id="'+ PAGE_ID +'-length">'+ l +'</span>)' +
'</div>' +
'<div class="layui-iconpicker-page-operate">' +
'<i class="layui-icon" id="'+ PAGE_ID +'-prev" data-index="0" prev>&#xe603;</i> ' +
'<i class="layui-icon" id="'+ PAGE_ID +'-next" data-index="2" next>&#xe602;</i> ' +
'</div>' +
'</div>';
}
$('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(listHtml).append(pageHtml);
return a;
},
// 阻止Layui的一些默认事件
preventEvent: function() {
var item = '#' + ICON_BODY + ' .layui-anim';
a.event('click', item, function (e) {
e.stopPropagation();
});
return a;
},
// 分页
page: function () {
var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon';
$(icon).unbind('click');
a.event('click', icon, function (e) {
var elem = e.currentTarget,
total = parseInt($('#' +PAGE_ID + '-pages').html()),
isPrev = $(elem).attr('prev') !== undefined,
// 按钮上标的页码
index = parseInt($(elem).attr('data-index')),
$cur = $('#' +PAGE_ID + '-current'),
// 点击时正在显示的页码
current = parseInt($cur.html());
// 分页数据
if (isPrev && current > 1) {
current=current-1;
$(icon + '[prev]').attr('data-index', current);
} else if (!isPrev && current < total){
current=current+1;
$(icon + '[next]').attr('data-index', current);
}
$cur.html(current);
// 图标数据
$('#'+ ICON_BODY + ' .layui-iconpicker-icon-limit').hide();
$('#layui-iconpicker-icon-limit-' + tmp + current).show();
e.stopPropagation();
});
return a;
},
/**
* 搜索
*/
search: function () {
var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input';
a.event('input propertychange', item, function (e) {
var elem = e.target,
t = $(elem).val();
a.createList(t);
});
return a;
},
/**
* 点击选中图标
*/
check: function () {
var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item';
a.event('click', item, function (e) {
var el = $(e.currentTarget).find('.layui-icon'),
icon = '';
if (isFontClass) {
var clsArr = el.attr('class').split(/[\s\n]/),
cls = clsArr[1],
icon = cls;
$('#' + TITLE_ID).find('.layui-iconpicker-item .layui-icon').html('').attr('class', clsArr.join(' '));
} else {
var cls = el.html(),
icon = cls;
$('#' + TITLE_ID).find('.layui-iconpicker-item .layui-icon').html(icon);
}
$('#' + ICON_BODY).removeClass(selected).addClass(unselect);
$(elem).val(icon).attr('value', icon);
// 回调
if (click) {
click({
icon: icon
});
}
});
return a;
},
// 监听原始input数值改变
inputListen: function(){
var el = $(elem);
a.event('change', elem, function(){
var value = el.val();
})
// el.change(function(){
// });
return a;
},
event: function (evt, el, fn) {
$(BODY).on(evt, el, fn);
}
};
var common = {
/**
* 加载样式表
*/
loadCss: function () {
var css = '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}';
var $style = $('head').find('style[iconpicker]');
if ($style.length === 0) {
$('head').append('<style rel="stylesheet" iconpicker>'+css+'</style>');
}
},
/**
* 获取数据
*/
getData: {
fontClass: function () {
var arr = ["layui-icon-rate-half","layui-icon-rate","layui-icon-rate-solid","layui-icon-cellphone","layui-icon-vercode","layui-icon-login-wechat","layui-icon-login-qq","layui-icon-login-weibo","layui-icon-password","layui-icon-username","layui-icon-refresh-3","layui-icon-auz","layui-icon-spread-left","layui-icon-shrink-right","layui-icon-snowflake","layui-icon-tips","layui-icon-note","layui-icon-home","layui-icon-senior","layui-icon-refresh","layui-icon-refresh-1","layui-icon-flag","layui-icon-theme","layui-icon-notice","layui-icon-website","layui-icon-console","layui-icon-face-surprised","layui-icon-set","layui-icon-template-1","layui-icon-app","layui-icon-template","layui-icon-praise","layui-icon-tread","layui-icon-male","layui-icon-female","layui-icon-camera","layui-icon-camera-fill","layui-icon-more","layui-icon-more-vertical","layui-icon-rmb","layui-icon-dollar","layui-icon-diamond","layui-icon-fire","layui-icon-return","layui-icon-location","layui-icon-read","layui-icon-survey","layui-icon-face-smile","layui-icon-face-cry","layui-icon-cart-simple","layui-icon-cart","layui-icon-next","layui-icon-prev","layui-icon-upload-drag","layui-icon-upload","layui-icon-download-circle","layui-icon-component","layui-icon-file-b","layui-icon-user","layui-icon-find-fill","layui-icon-loading","layui-icon-loading-1","layui-icon-add-1","layui-icon-play","layui-icon-pause","layui-icon-headset","layui-icon-video","layui-icon-voice","layui-icon-speaker","layui-icon-fonts-del","layui-icon-fonts-code","layui-icon-fonts-html","layui-icon-fonts-strong","layui-icon-unlink","layui-icon-picture","layui-icon-link","layui-icon-face-smile-b","layui-icon-align-left","layui-icon-align-right","layui-icon-align-center","layui-icon-fonts-u","layui-icon-fonts-i","layui-icon-tabs","layui-icon-radio","layui-icon-circle","layui-icon-edit","layui-icon-share","layui-icon-delete","layui-icon-form","layui-icon-cellphone-fine","layui-icon-dialogue","layui-icon-fonts-clear","layui-icon-layer","layui-icon-date","layui-icon-water","layui-icon-code-circle","layui-icon-carousel","layui-icon-prev-circle","layui-icon-layouts","layui-icon-util","layui-icon-templeate-1","layui-icon-upload-circle","layui-icon-tree","layui-icon-table","layui-icon-chart","layui-icon-chart-screen","layui-icon-engine","layui-icon-triangle-d","layui-icon-triangle-r","layui-icon-file","layui-icon-set-sm","layui-icon-add-circle","layui-icon-404","layui-icon-about","layui-icon-up","layui-icon-down","layui-icon-left","layui-icon-right","layui-icon-circle-dot","layui-icon-search","layui-icon-set-fill","layui-icon-group","layui-icon-friends","layui-icon-reply-fill","layui-icon-menu-fill","layui-icon-log","layui-icon-picture-fine","layui-icon-face-smile-fine","layui-icon-list","layui-icon-release","layui-icon-ok","layui-icon-help","layui-icon-chat","layui-icon-top","layui-icon-star","layui-icon-star-fill","layui-icon-close-fill","layui-icon-close","layui-icon-ok-circle","layui-icon-add-circle-fine"];
return arr;
},
unicode: function () {
return ["&amp;#xe6c9;","&amp;#xe67b;","&amp;#xe67a;","&amp;#xe678;","&amp;#xe679;","&amp;#xe677;","&amp;#xe676;","&amp;#xe675;","&amp;#xe673;","&amp;#xe66f;","&amp;#xe9aa;","&amp;#xe672;","&amp;#xe66b;","&amp;#xe668;","&amp;#xe6b1;","&amp;#xe702;","&amp;#xe66e;","&amp;#xe68e;","&amp;#xe674;","&amp;#xe669;","&amp;#xe666;","&amp;#xe66c;","&amp;#xe66a;","&amp;#xe667;","&amp;#xe7ae;","&amp;#xe665;","&amp;#xe664;","&amp;#xe716;","&amp;#xe656;","&amp;#xe653;","&amp;#xe663;","&amp;#xe6c6;","&amp;#xe6c5;","&amp;#xe662;","&amp;#xe661;","&amp;#xe660;","&amp;#xe65d;","&amp;#xe65f;","&amp;#xe671;","&amp;#xe65e;","&amp;#xe659;","&amp;#xe735;","&amp;#xe756;","&amp;#xe65c;","&amp;#xe715;","&amp;#xe705;","&amp;#xe6b2;","&amp;#xe6af;","&amp;#xe69c;","&amp;#xe698;","&amp;#xe657;","&amp;#xe65b;","&amp;#xe65a;","&amp;#xe681;","&amp;#xe67c;","&amp;#xe601;","&amp;#xe857;","&amp;#xe655;","&amp;#xe770;","&amp;#xe670;","&amp;#xe63d;","&amp;#xe63e;","&amp;#xe654;","&amp;#xe652;","&amp;#xe651;","&amp;#xe6fc;","&amp;#xe6ed;","&amp;#xe688;","&amp;#xe645;","&amp;#xe64f;","&amp;#xe64e;","&amp;#xe64b;","&amp;#xe62b;","&amp;#xe64d;","&amp;#xe64a;","&amp;#xe64c;","&amp;#xe650;","&amp;#xe649;","&amp;#xe648;","&amp;#xe647;","&amp;#xe646;","&amp;#xe644;","&amp;#xe62a;","&amp;#xe643;","&amp;#xe63f;","&amp;#xe642;","&amp;#xe641;","&amp;#xe640;","&amp;#xe63c;","&amp;#xe63b;","&amp;#xe63a;","&amp;#xe639;","&amp;#xe638;","&amp;#xe637;","&amp;#xe636;","&amp;#xe635;","&amp;#xe634;","&amp;#xe633;","&amp;#xe632;","&amp;#xe631;","&amp;#xe630;","&amp;#xe62f;","&amp;#xe62e;","&amp;#xe62d;","&amp;#xe62c;","&amp;#xe629;","&amp;#xe628;","&amp;#xe625;","&amp;#xe623;","&amp;#xe621;","&amp;#xe620;","&amp;#xe61f;","&amp;#xe61c;","&amp;#xe60b;","&amp;#xe619;","&amp;#xe61a;","&amp;#xe603;","&amp;#xe602;","&amp;#xe617;","&amp;#xe615;","&amp;#xe614;","&amp;#xe613;","&amp;#xe612;","&amp;#xe611;","&amp;#xe60f;","&amp;#xe60e;","&amp;#xe60d;","&amp;#xe60c;","&amp;#xe60a;","&amp;#xe609;","&amp;#xe605;","&amp;#xe607;","&amp;#xe606;","&amp;#xe604;","&amp;#xe600;","&amp;#xe658;","&amp;#x1007;","&amp;#x1006;","&amp;#x1005;","&amp;#xe608;"];
}
}
};
a.init();
return new IconPicker();
};
/**
* 选中图标
* @param filter lay-filter
* @param iconName 图标名称自动识别fontClass/unicode
*/
IconPicker.prototype.checkIcon = function (filter, iconName){
var el = $('*[lay-filter='+ filter +']'),
p = el.next().find('.layui-iconpicker-item .layui-icon'),
c = iconName;
if (c.indexOf('#xe') > 0){
p.html(c);
} else {
p.html('').attr('class', 'layui-icon ' + c);
}
el.attr('value', c).val(c);
};
var iconPicker = new IconPicker();
exports(_MOD, iconPicker);
});

@ -0,0 +1,4 @@
.none-transition{
transition: none;
-webkit-transition: none;
}

@ -0,0 +1,282 @@
layui.define(['form'], function (exports) {
var form = layui.form,
$ = layui.jquery,
layer = layui.layer,
index = 0,
oldId,
MOD_NAME = 'labelGeneration',
formField = {
label: {
id: '-1',
tag: "label",
},
},
labelGeneration = {
set: function (options) {
var that = this;
that.config = $.extend({}
, that.config
, options);
return that;
}
//事件监听
, on: function (events
, callback) {
return layui.onevent.call(this
, MOD_NAME
, events
, callback);
}
},
Class = function (options) {
var that = this;
that.config = $.extend({}
, that.config
, labelGeneration.config
, options);
that.render();
},
thisIns = function () {
var that = this
, options = that.config;
return {
reload: function (options) {
that.reload.call(that
, options);
}, getOptions: function () {
return options || null;
}, getData: function () {
return options.data || null;
}
}
}
Class.prototype.config = {
version: "1.0.0"
, Author: "谁家没一个小强"
, generateId: 0
, data: []
, isEnter: false
};
/* 自动生成ID 当前页面自动排序*/
Class.prototype.autoId = function (tag) {
var that = this,
options = that.config;
options.generateId = options.generateId + 1;
return tag + '_' + options.generateId;
}
Class.prototype.components = {
label: {
render: function (json,options) {
var _html = '<blockquote class="layui-elem-quote">';
_html += '<div class="layui-form layui-form-pane layui-form-item">';
_html += '<label class="layui-form-label">输入标签</label>';
_html += '<div class="layui-input-inline">';
if (options.isEnter) {
_html += '<input type="text" id="{0}" placeholder="按回车生成标签" autocomplete="off" class="layui-input">'
.format(json.id);
} else {
_html += '<input type="text" id="{0}" placeholder="通过按钮生成标签" autocomplete="off" class="layui-input">'
.format(json.id);
}
_html += '</div>';
if (!options.isEnter) {
_html += '<button type="button" id="{0}-button" class="layui-btn layui-btn-normal">确定</button>'.format(json.id);
}
_html += '<label class="layui-form-label">颜色选择</label>';
_html += '<div class="layui-input-inline">';
_html += '<select lay-filter="{0}-switchTest">'.format(json.id);
_html += '<option value="" selected>墨绿色</option>';
_html += '<option value="layui-btn-primary">原始色</option>';
_html += '<option value="layui-btn-normal">天蓝色</option>';
_html += '<option value="layui-btn-warm">暖黄色</option>';
_html += '<option value="layui-btn-danger">红色</option>';
_html += '</select>';
_html += '</div>';
_html += '</div>';
_html += '<div id="{0}-content" class="layui-btn-container"></div>'.format(json.id);
_html += '</blockquote>';
return _html;
},
update: function (json) {
},
/* 获取对象 */
jsonData: function (id, that) {
//分配一个新的ID
var _json = JSON.parse(JSON.stringify(formField.label));
_json.id = id == undefined ? that.autoId(_json.tag) : id;
that.checkId(_json,that);
return _json;
}
}
};
/* 判定id是否重复*/
Class.prototype.checkId = function (json,that) {
if ($("#" + json.id + "-content").length != 0) {
json.id = that.autoId(json.tag);
that.checkId(json);
} else {
return;
}
}
Class.prototype.bindGridSortEvent = function (json) {
var that = this
, options = that.config;
var formItemSort = Sortable.create(document.getElementById(json.id + "-content"), {
group: {
name: 'group' + json.id
},
animation: 1000,
onEnd: function (evt) {
var _values = $("#" + json.id + "-content").find("div");
var ops = [];
for (var i = 0; i < _values.length; i++) {
ops.push({"ngColor": $(_values[i]).attr("ng-color"), "value": $(_values[i]).text()});
}
options.data = ops;
}
});
}
/* 绑定事件*/
Class.prototype.deleteValue = function (value, ngValue) {
var that = this
, options = that.config;
for (var i = 0; i < options.data.length; i++) {
if (options.data[i].value === value && options.data[i].ngColor === ngValue) {
options.data.splice(i, 1);
break;
}
}
}
/* 绑定事件*/
Class.prototype.bindPropertyEvent = function (_json) {
var that = this
, options = that.config;
var colorClass = "";
if (options.isEnter) {
$("#" + _json.id).keypress(function (event) {
if (event.which === 13) {
var _value = $(this).val();
if (_value === "") {
layer.msg('标签值不能为空');
return;
}
index = index + 1;
var _html = '<div class="layui-btn {0} none-transition" id="{2}" ng-index="{3}" ng-color="{0}">{1}<i class="layui-icon layui-icon-close"></i></div>'
.format(colorClass, _value, _json.id + index, index);
$("#" + _json.id + "-content").append(_html);
options.data.push({"ngColor": colorClass, "value": _value});
$("#" + _json.id + index + " .layui-icon-close").click(function () {
that.deleteValue($(this).parent().text(), $(this).parent().attr("ng-color"));
$(this).parent().remove();
});
return false;
}
});
} else {
$("#" + _json.id + "-button").click(function (event) {
var _value = $("#" + _json.id).val();
if (_value === "") {
layer.msg('标签值不能为空');
return;
}
index = index + 1;
var _html = '<div class="layui-btn {0} none-transition" id="{2}" ng-index="{3}" ng-color="{0}">{1}<i class="layui-icon layui-icon-close"></i></div>'
.format(colorClass, _value, _json.id + index, index);
$("#" + _json.id + "-content").append(_html);
options.data.push({"ngColor": colorClass, "value": _value});
$("#" + _json.id + index + " .layui-icon-close").click(function () {
that.deleteValue($(this).parent().text(), $(this).parent().attr("ng-color"));
$(this).parent().remove();
});
});
}
form.on('select(' + _json.id + '-switchTest)', function (data) {
colorClass = data.value;
});
for (var i = 0; i < options.data.length; i++) {
index = index + 1;
var _html = '<div class="layui-btn {0} none-transition" id="{2}" ng-index="{3}" ng-color="{0}">{1}<i class="layui-icon layui-icon-close"></i></div>'
.format(options.data[i].ngColor, options.data[i].value, _json.id + index, index);
$("#" + _json.id + "-content").append(_html);
$("#" + _json.id + index + " .layui-icon-close").click(function () {
that.deleteValue($(this).parent().text(), $(this).parent().attr("ng-color"));
$(this).parent().remove();
});
}
}
/* 渲染组件 */
Class.prototype.renderComponents = function () {
var that = this
, options = that.config;
var elem = $(options.elem);
elem.empty();
var jsonData = that.components['label'].jsonData(undefined, that);
elem.append(that.components['label'].render(jsonData,options));
that.bindPropertyEvent(jsonData);
that.bindGridSortEvent(jsonData);
form.render();
}
Class.prototype.reload = function (options) {
var that = this;
options = options || {};//如果是空的话,就赋值 {}
that.config = $.extend({}
, that.config
, labelGeneration.config
, options);
that.render(options);
}
//核心入口 初始化一个 regionSelect 类
labelGeneration.render = function (options) {
var ins = new Class(options);
return thisIns.call(ins);
}
/**
* 渲染组件
*/
Class.prototype.render = function (options) {
var that = this
, options = that.config;
that.renderComponents();
}
String.prototype.format = function (args) {
var result = this;
if (arguments.length > 0) {
if (arguments.length == 1 && typeof (args) == "object") {
for (var key in args) {
if (args[key] != undefined) {
var reg = new RegExp("({" + key + "})"
, "g");
result = result.replace(reg
, args[key]);
}
}
} else {
for (var i = 0; i < arguments.length; i++) {
if (arguments[i] != undefined) {
var reg = new RegExp("({[" + i + "]})"
, "g");
result = result.replace(reg
, arguments[i]);
}
}
}
}
return result;
}
exports(MOD_NAME, labelGeneration);
});

@ -0,0 +1,204 @@
layui.define(['jquery','util','layer'],function (exports) {
var $ = layui.$,
util = layui.util,
layer = layui.layer,
input_elem = 'input[number-input]',
baseClassName = 'layui-input-number',
numberInputBtn = [
'<div class="layui-number-input-btn">',
'<i class="layui-icon layui-icon-up" lay-click="numberUp"></i>',
'<i class="layui-icon layui-icon-down" lay-click="numberDown"></i>',
'</div>',
].join(''),
style = [
'<style type="text/css">',
'.layui-number-input-container{position:relative;width:100%}',
'.'+baseClassName+'::-webkit-outer-spin-button,.'+baseClassName+'::-webkit-inner-spin-button{-webkit-appearance: none;}',
'.'+baseClassName+'{-moz-appearance: textfield;padding-right:22px}',
'.layui-number-input-btn{position:absolute;top:0;right:0;width:20px;height:100%;}',
'.layui-number-input-btn i{position:absolute;width:20px;height:50%;bottom:0;font-size:12px;text-align:center;line-height:16px;cursor: pointer;}',
'.layui-number-input-btn i:first-child{top:0}',
'.layui-number-input-btn i:hover{background:#eee;}',
'</style>'
].join('');
$('head link:last')[0] && $('head link:last').after(style) || $('head').append(style);
var numberInput = {
options:{
elem:input_elem
},
render:function (option) {
var _this = this;
_this.options = $.extend(_this.options, option);
$(_this.options.elem).not('[lay-ignore]').addClass(baseClassName).wrap('<div class="layui-number-input-container"></div>');
$(_this.options.elem).not('[lay-ignore]').after(numberInputBtn);
_this.listen();
},
listen:function () {
var _this = this;
$(_this.options.elem).bind('input propertychange',function () {
var value = $(this).val();
$(this).val(value.replace(/[^\-?\d.]/g,''));
});
$(_this.options.elem).keydown(function (event) {
var e = event||window.event;
var k = e.keyCode || e.which;
switch (k) {
case 38:
// 按下向上箭头
$(this).siblings('.layui-number-input-btn').children('[lay-click="numberUp"]').trigger('click').css('background','#eee');
break;
case 40:
// 按下向上箭头
$(this).siblings('.layui-number-input-btn').children('[lay-click="numberDown"]').trigger('click').css('background','#eee');
break;
default:
break;
}
return false;
});
$(_this.options.elem).keyup(function () {
var e = event||window.event;
var k = e.keyCode || e.which;
switch (k) {
case 38:
// 按下向上箭头
$(this).siblings('.layui-number-input-btn').children('[lay-click="numberUp"]').css('background','');
break;
case 40:
// 按下向上箭头
$(this).siblings('.layui-number-input-btn').children('[lay-click="numberDown"]').css('background','');
break;
default:
break;
}
return false;
});
var timeOut;
//长按
$('[lay-click="numberUp"],[lay-click="numberDown"]').mousedown(function () {
var $this = $(this);
timeOut = setInterval(function () {
$this.trigger('click');
},200)
});
$('[lay-click="numberUp"],[lay-click="numberDown"]').mouseup(function () {
clearInterval(timeOut);
});
$('[lay-click="numberUp"],[lay-click="numberDown"]').mouseout(function () {
clearInterval(timeOut);
});
util.event('lay-click',{
numberUp:function (othis) {
var thisInput = othis.parent().parent().children('.'+baseClassName);
var thisInputValue = Number(thisInput.val()||0);
var step = thisInput.attr('step')||1;
var maxValue = Number(thisInput.attr('max'));
if (maxValue!=undefined){
if (thisInputValue>=maxValue){
layer.tips('最大值'+maxValue,thisInput,{tips:1});
return false;
}
}
thisInputValue=_this.add(thisInputValue,parseFloat(step));
thisInput.val('').focus().val(thisInputValue);
},
numberDown:function(othis){
var thisInput = othis.parent().parent().children('.'+baseClassName);
var thisInputValue = thisInput.val()||0;
var step = thisInput.attr('step')||1;
var minValue = thisInput.attr('min');
if (minValue!=undefined){
if (thisInputValue<=minValue){
layer.tips('最小值'+minValue,thisInput,{tips:1});
return false;
}
}
thisInputValue = _this.subtraction(thisInputValue,step);
thisInput.val('').focus().val(thisInputValue);
}
});
},
/**
* 加法
* @param arg1
* @param arg2
* @returns {number}
*/
add:function (arg1, arg2) {
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (this.multiplication(arg1,m)+this.multiplication(arg2,m))/m
},
/**
* 减法
* @param arg1 被减数
* @param arg2 减数
* @returns {string}
*/
subtraction:function (arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
}
catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
}
catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
//last modify by deeka
//动态控制精度长度
n = (r1 >= r2) ? r1 : r2;
return ((arg1 * m - arg2 * m) / m).toFixed(n);
},
/**
* 乘法
* @param arg1
* @param arg2
* @returns {number}
*/
multiplication:function (arg1,arg2) {
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
},
/**
* 除法
* @param arg1
* @param arg2
* @returns {*|number}
*/
division:function (arg1,arg2) {
var t1 = 0, t2 = 0, r1, r2;
try {
t1 = arg1.toString().split(".")[1].length
} catch (e) {
}
try {
t2 = arg2.toString().split(".")[1].length
} catch (e) {
}
with (Math) {
r1 = Number(arg1.toString().replace(".", ""))
r2 = Number(arg2.toString().replace(".", ""))
return this.multiplication((r1 / r2), pow(10, t2 - t1));
}
}
};
//外部接口
var exportApi = {
render:function(option){
numberInput.render(option)
},
};
exports('numberInput',exportApi);
});

@ -0,0 +1,355 @@
layui.define(['layer'], function (exports) {
var staticField = {
lang: {
formId:'表单标识',
formName: '表单名称',
id: "字段id",
fieldId:'字段英文名',
label: "字段标题",
fieldLength: '字段长度',
fieldType: '字段类型',
index: "序号",
tag: "表单类型",
tagIcon: '图标',
width: '宽度',
height: "高度",
span: '网格宽度',
placeholder: "placeholder",
defaultValue: "默认值",
dateDefaultValue: '默认时间',
labelWidth: "文本宽度",
clearable: "是否清楚",
prepend: "前缀",
append: "追加",
prefixIcon: '前缀图标',
suffixIcon: '后缀图标',
maxlength: "最大长度",
showWordLimit: "是否限制字符",
readonly: "只读",
disabled: "禁用",
required: "必填",
columns: "列数",
options: "选项",
switchValue: "默认值",
maxValue: "最大值",
minValue: "最小值",
dataMaxValue: "最大日期",
dataMinValue: "最小日期",
stepValue: "步长",
dateType: "日期类型",
dateFormat: "日期格式",
half: "显示半星",
theme: "皮肤",
rateLength: "星星个数",
interval: "间隔毫秒",
startIndex: "开始位置",
full: "是否全屏",
arrow: "鼠标样式",
contents: "内容",
document: '帮助文档',
input: "输入框",
select: "下拉",
checkbox: "多选组",
radio: "单选组",
date: "日期",
editor: "iceEditor编辑器",
slider: "滑块",
image: "图片",
grid: "一行多列",
colorpicker: "颜色选择器",
textarea: "多行文本",
rate: "评分控件",
switch: "开关",
password: "密码框",
carousel: "轮播",
text: "显示文本",
uploadUrl: "上传路径",
expression: "验证",
file: "文件",
autoplay: "自动切换",
anim: "切换方式",
arrow: "切换箭头",
tab: "tab选项卡",
tabHeaders: "tab标题",
isInput: "显示输入框",
dateRange: "日期范围",
dateRangeDefaultValue: "默认范围",
menu: "头部菜单",
numberInput: "排序文本框",
iconPicker: "图标选择器",
iconPickerSearch: "是否搜索",
iconPickerPage: "是否分页",
iconPickerLimit: "显示数量",
iconPickerCellWidth: "图标宽度",
cron: "Cron表达式",
cronUrl: "运行路径",
labelGeneration: "标签组件",
isEnter: "是否回车",
buttonIcon: "按钮图标",
buttonType: "按钮类型",
isLabel: "显示标签",
buttonSize: "组件尺寸",
bottom: "按钮组件",
buttonVlaue: "按钮文字",
sign: "sign签名组件",
},
templateFormList: [
/*{text: '',imageUrl: "/style/images/11.PNG",
value:[
{
"id": "input_1",
"index": 0,
"label": "单行文本",
"tag": "input",
"tagIcon": "input",
"placeholder": "请输入",
"defaultValue": null,
"labelWidth": 110,
"width": "100%",
"clearable": true,
"maxlength": null,
"showWordLimit": false,
"readonly": false,
"disabled": false,
"required": true,
"expression": "",
"document": ""
}
]
}*/
],
expressions: [{text: '默认', value: ""}
, {text: '数字', value: 'number'}
, {text: '邮箱', value: 'email'}
, {text: '手机', value: 'phone'}
, {text: '身份证', value: 'identity'}
, {text: '日期', value: 'date'}
, {text: '网址', value: 'url'}
, {text: '密码', value: 'pass'}
],
anims: [{text: '左右切换', value: 'default'}
, {text: '上下切换', value: 'updown'}
, {text: '渐隐渐显切换', value: 'fade'}
],
arrows: [{text: '悬停显示', value: 'hover'}
, {text: '始终显示', value: 'always'}
, {text: '始终不显示', value: 'none'}]
,
dateTypes: [{text: '年选择器', value: 'year'}
, {text: '年月选择器', value: 'month'}
, {text: '时间选择器', value: 'time'}
, {text: '日期选择器', value: 'date'}
, {text: '日期时间选择器', value: 'datetime'}]
,
buttonTypes: [{text: '原始', value: 'layui-btn-primary'}
, {text: '默认', value: ""}
, {text: '百搭', value: 'layui-btn-normal'}
, {text: '暖色', value: 'layui-btn-warm'}
, {text: '警告', value: ' layui-btn-danger'}]
,
buttonSizes: [{text: '大型', value: 'layui-btn-lg'}
, {text: '默认', value: ""}
, {text: '小型', value: 'layui-btn-sm'}
, {text: '迷你', value: 'layui-btn-xs'}]
,
dateFormats: ["yyyy年MM月", "yyyy-MM-dd", "dd/MM/yyyy", "yyyyMMdd", "yyyy-MM-dd HH:mm:ss", "yyyy年MM月dd日 HH时mm分ss秒"]
,
iceEditMenus: [
{value: 'backColor', text: '字体背景颜色'}, {value: 'fontSize', text: '字体大小'}, {
value: 'foreColor',
text: '字体颜色'
}, {value: 'bold', text: '粗体'},
{value: 'italic', text: '斜体'}, {value: 'underline', text: '下划线'}, {
value: 'strikeThrough',
text: '删除线'
}, {value: 'justifyLeft', text: '左对齐'},
{value: 'justifyCenter', text: '居中对齐'}, {value: 'justifyRight', text: '右对齐'}, {
value: 'indent',
text: '增加缩进'
}, {value: 'outdent', text: '减少缩进'},
{value: 'insertOrderedList', text: '有序列表'}, {
value: 'insertUnorderedList',
text: '无序列表'
}, {value: 'superscript', text: '上标'}, {value: 'subscript', text: '下标'},
{value: 'createLink', text: '创建连接'}, {value: 'unlink', text: '取消连接'}, {
value: 'hr',
text: '水平线'
}, {value: 'face', text: '表情'}, {value: 'table', text: '表格'},
{value: 'files', text: '附件'}, {value: 'music', text: '音乐'}, {
value: 'video',
text: '视频'
}, {value: 'insertImage', text: '图片'},
{value: 'removeFormat', text: '格式化样式'}, {value: 'code', text: '源码'}, {value: 'line', text: '菜单分割线'}
],
formDesignerHtml: '<div class="layui-layout layui-layout-admin">\n' +
' <div class="layui-header">\n' +
' <div class="layui-logo">表单设计器</div>\n' +
' <!-- 头部区域(可配合layui已有的水平导航) -->\n' +
' <ul class="layui-nav layui-layout-left">\n' +
' <li class="layui-nav-item"><a href=""></a></li>\n' +
' </ul>\n' +
' <ul class="layui-nav layui-layout-right">\n' +
' <li class="layui-nav-item">\n' +
' <a id="saveJson" href="#" class="saveJson">保存</a>\n' +
' </li>\n' +
// ' <li class="layui-nav-item">\n' +
// ' <a id="btnImportJson" href="#" class="importJson">导入数据</a>\n' +
// ' </li>\n' +
// ' <li class="layui-nav-item">\n' +
// ' <a id="btnExportJson" href="#" class="exportJson">导出数据</a>\n' +
// ' </li>\n' +
' <li class="layui-nav-item">\n' +
' <a href="#" class="previewForm">预览</a>\n' +
' </li>\n' +
// ' <li class="layui-nav-item">\n' +
// ' <a href="#" class="generateCode">生成代码</a>\n' +
// ' </li>\n' +
' </ul>\n' +
' </div>\n' +
' <div class="layui-side">\n' +
' <div class="layui-side-scroll" style="width: 260px;">\n' +
' <!-- 左侧导航区域(可配合layui已有的垂直导航) -->\n' +
' <div class="layui-tab layui-tab-brief" lay-filter="components-list">\n' +
' <ul class="layui-tab-title">\n' +
' <li class="layui-this">组件</li>\n' +
//' <li class="">模板</li>\n' +
' </ul>\n' +
' <div class="layui-tab-content">\n' +
' <div class="layui-tab-item layui-show">\n' +
' <div class="components-list" id="components-form-list">\n' +
' </div>\n' +
' </div>\n' +
// ' <div class="layui-tab-item" >\n' +
// ' <div id="template-form-list" class="components-list">\n' +
// ' </div>\n' +
// ' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' <div class="layui-body">\n' +
' <!-- 内容主体区域 -->\n' +
' <form class="layui-form layui-form-pane" style="height:100%;">\n' +
' <div class="layui-form" id="formDesignerForm" lay-filter="formDesignerForm">\n' +
' <div class="layui-row layui-empty">\n' +
' 从左侧拖拽控件到此设计区域来添加字段\n' +
' </div>\n' +
' </div>\n' +
// ' <button type="button" class="layui-btn" style="display: none" lay-submit lay-filter="*">立即提交</button>\n' +
' </form>\n' +
' </div>\n' +
' <div class="layui-side-right">\n' +
' <div class="layui-side-scroll" style="width: 350px;">\n' +
' <!-- 属性导航 -->\n' +
' <form class="layui-form layui-form-pane">\n' +
' <div class="layui-tab layui-tab-brief">\n' +
' <ul class="layui-tab-title">\n' +
' <li class="layui-this">字段设置</li>\n' +
' <li>表单设置</li>\n' +
' </ul>\n' +
' <div class="layui-tab-content">\n' +
' <div class="layui-tab-item layui-show" id="columnProperty">\n' +
' </div>\n' +
' <div class="layui-form layui-tab-item" id="formProperty" lay-filter="form-attr">\n' +
' <!--表单ID-->\n' +
' <div class="layui-form-item">\n' +
' <label class="layui-form-label">表单标识</label>\n' +
' <div class="layui-input-block">\n' +
' <input type="text" name="formId" required="" lay-verify="required|columns"\n' +
' placeholder="请输入表单标识" autocomplete="off" class="layui-input">\n' +
' </div>\n' +
' <p style="color: #ff4f0b; padding: 0 10px">* 该值会同时用作数据库表名,只能输入英文、数字和下划线,且仅能以英文开头</p>\n' +
' </div>\n' +
' <!--//表单ID-->\n' +
' <!--表单名称-->\n' +
' <div class="layui-form-item">\n' +
' <label class="layui-form-label">表单名称</label>\n' +
' <div class="layui-input-block">\n' +
' <input type="text" name="formName" required="" lay-verify="required"\n' +
' placeholder="请输入表单名称" autocomplete="off" class="layui-input">\n' +
' </div>\n' +
' <p style="color: #ff4f0b; padding: 0 10px">* 该值会同时用作数据库表中文注释</p>\n' +
' </div>\n' +
' <!--//end-->\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </form>\n' +
' </div>\n' +
' </div>\n' +
'</div>',
formDefaultButton: '<div class="layui-form-item">\n' +
' <div class="layui-input-block">\n' +
' <button type="submit" class="layui-btn" id="dynamicFormSubmitBtn" lay-submit="" lay-filter="dynamicFormSubmitBtn">提交</button>\n' +
' <button type="reset" class="layui-btn layui-btn-primary" id="dynamicFormResetBtn" >重置</button>\n' +
' </div>\n' +
'</div>',
importHtml: '<div class="importjsoncodeview layui-layer-wrap" style="display: none;">\n' +
' <textarea class="site-demo-text" id="import-json-code-view"></textarea>\n' +
' <a href="javascript:;" class="layui-btn layui-btn-normal" style="margin-right:20px;" id="import-json-code">导入数据</a>\n' +
'</div>',
exportHtml: '<div class="htmlcodeview layui-layer-wrap" style="display: none;">\n' +
' <textarea class="site-demo-text" id="generate-code-view"></textarea>\n' +
' <a href="javascript:;" class="layui-btn layui-btn-normal" style="margin-right:20px;" id="copy-html-code">复制代码</a>\n' +
'</div>',
htmlCode: '<html>\n' +
'<head>\n' +
' <meta charset="utf-8">\n' +
' <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">\n' +
' <title>表单设计器代码</title>\n' +
' <link rel="stylesheet" th:href="@{/script/layui/css/layui.css}"/>\n' +
' <link rel="stylesheet" th:href="@{/script/modules/cron.css}" />\n' +
' <link rel="stylesheet" th:href="@{/script/modules/labelGeneration.css}" />\n' +
' <link rel="stylesheet" th:href="@{/script/modules/formDesigner.css}" />\n' +
'</head>\n' +
'<body>\n' +
'<div id="testdemo" style="margin: 10px 20px;">\n' +
' <form class="layui-form" style="height:100%;" id="formPreviewForm">\n' +
' {0}\n' +
' <div class="layui-form-item">\n' +
' <div class="layui-input-block">\n' +
' <button type="submit" class="layui-btn" lay-submit="" lay-filter="formPreviewForm">提交</button>\n' +
' <button type="reset" class="layui-btn layui-btn-primary">重置</button>\n' +
' </div>\n' +
' </div>\n' +
' </form>\n' +
'</div>\n' +
'<script type="text/javascript" th:src="@{/script/layui/layui.js}"></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/Sortable/Sortable.js"}></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/numberInput/numberInput.js"}></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/icon/iconPicker.js"}></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/cron/cron.js"}></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/iceEditor/iceEditor.js"}></script>\n' +
'<script type="text/javascript" th:src=@{"/script/modules/labelGeneration/labelGeneration.js"}></script>\n' +
'<script type="text/javascript" th:src="@{/script/common/config.js?v=100}"></script>\n' +
'<script>\n' +
' layui.use(["layer", "laytpl", "element", "form", "slider", "laydate", "rate", "colorpicker", "layedit", "carousel", "upload", "formField", "numberInput", "iconPicker", "cron", "labelGeneration"], function () {\n' +
' var $ = layui.jquery\n' +
' , layer = layui.layer\n' +
' , laytpl = layui.laytpl\n' +
' , setter = layui.cache\n' +
' , element = layui.element\n' +
' , slider = layui.slider\n' +
' , laydate = layui.laydate\n' +
' , rate = layui.rate\n' +
' , colorpicker = layui.colorpicker\n' +
' , carousel = layui.carousel\n' +
' , form = layui.form\n' +
' , upload = layui.upload\n' +
' , layedit = layui.layedit\n' +
' , formField = layui.formField\n' +
' , hint = layui.hint\n' +
' , numberInput = layui.numberInput\n' +
' , iconPicker = layui.iconPicker\n' +
' , cron = layui.cron\n' +
' , labelGeneration = layui.labelGeneration;\n' +
' {1}\n' +
' });\n' +
'</script>\n' +
'</body>\n' +
'</html>'
}
exports('staticField', staticField);
});

File diff suppressed because one or more lines are too long

@ -0,0 +1,26 @@
html, body {
width: 100%;
height: 100%;
}
html {
overflow: hidden
}
body {
overflow-x: hidden;
overflow-y: auto
}
.layui-table-tool-temp, .btn-comp, .search-comp{display: flex;align-items: center;}
.search-comp{
width: 300px;
margin-left: 10px;
justify-content: space-around;
}
.search-comp input{
width: calc(100% - 60px);
display: inline;
}
.layui-table-view{
background: #FFF;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Some files were not shown because too many files have changed in this diff Show More