@ -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'); |
@ -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(''); |
||||||
|
|
||||||
|
} |
@ -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} |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 299 KiB |
@ -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); |
||||||
|
} |
@ -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); |
||||||
|
|
||||||
|
}); |
@ -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 = ''; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
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"></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></i> ' + |
||||||
|
'<i class="layui-icon" id="'+ PAGE_ID +'-next" data-index="2" next></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 ["&#xe6c9;","&#xe67b;","&#xe67a;","&#xe678;","&#xe679;","&#xe677;","&#xe676;","&#xe675;","&#xe673;","&#xe66f;","&#xe9aa;","&#xe672;","&#xe66b;","&#xe668;","&#xe6b1;","&#xe702;","&#xe66e;","&#xe68e;","&#xe674;","&#xe669;","&#xe666;","&#xe66c;","&#xe66a;","&#xe667;","&#xe7ae;","&#xe665;","&#xe664;","&#xe716;","&#xe656;","&#xe653;","&#xe663;","&#xe6c6;","&#xe6c5;","&#xe662;","&#xe661;","&#xe660;","&#xe65d;","&#xe65f;","&#xe671;","&#xe65e;","&#xe659;","&#xe735;","&#xe756;","&#xe65c;","&#xe715;","&#xe705;","&#xe6b2;","&#xe6af;","&#xe69c;","&#xe698;","&#xe657;","&#xe65b;","&#xe65a;","&#xe681;","&#xe67c;","&#xe601;","&#xe857;","&#xe655;","&#xe770;","&#xe670;","&#xe63d;","&#xe63e;","&#xe654;","&#xe652;","&#xe651;","&#xe6fc;","&#xe6ed;","&#xe688;","&#xe645;","&#xe64f;","&#xe64e;","&#xe64b;","&#xe62b;","&#xe64d;","&#xe64a;","&#xe64c;","&#xe650;","&#xe649;","&#xe648;","&#xe647;","&#xe646;","&#xe644;","&#xe62a;","&#xe643;","&#xe63f;","&#xe642;","&#xe641;","&#xe640;","&#xe63c;","&#xe63b;","&#xe63a;","&#xe639;","&#xe638;","&#xe637;","&#xe636;","&#xe635;","&#xe634;","&#xe633;","&#xe632;","&#xe631;","&#xe630;","&#xe62f;","&#xe62e;","&#xe62d;","&#xe62c;","&#xe629;","&#xe628;","&#xe625;","&#xe623;","&#xe621;","&#xe620;","&#xe61f;","&#xe61c;","&#xe60b;","&#xe619;","&#xe61a;","&#xe603;","&#xe602;","&#xe617;","&#xe615;","&#xe614;","&#xe613;","&#xe612;","&#xe611;","&#xe60f;","&#xe60e;","&#xe60d;","&#xe60c;","&#xe60a;","&#xe609;","&#xe605;","&#xe607;","&#xe606;","&#xe604;","&#xe600;","&#xe658;","&#x1007;","&#x1006;","&#x1005;","&#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); |
||||||
|
|
||||||
|
}); |
@ -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; |
||||||
|
} |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 2.3 KiB |