Przeglądaj źródła

在线编辑XML

Chente 10 lat temu
rodzic
commit
ca9005c4de

+ 452 - 42
.idea/workspace.xml

@@ -20,35 +20,86 @@
     <favorites_list name="jszfver" />
   </component>
   <component name="FileEditorManager">
-    <leaf>
-      <file leaf-file-name="edit-formcate.html" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/edit-formcate.html">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="add-formver.html" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/add-formver.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="267">
-              <caret line="54" column="212" selection-start-line="54" selection-start-column="212" selection-end-line="54" selection-end-column="212" />
+            <state relative-caret-position="22">
+              <caret line="16" column="32" selection-start-line="16" selection-start-column="32" selection-end-line="16" selection-end-column="32" />
+              <folding>
+                <element signature="n#style#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+                <element signature="n#style#0;n#textarea#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="test.js" pinned="false" current-in-tab="false">
+        <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/test.js">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="0">
+              <caret line="1" column="66" selection-start-line="1" selection-start-column="66" selection-end-line="1" selection-end-column="66" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="edit-formpoj.html" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/edit-formpoj.html">
+      <file leaf-file-name="xml.js" pinned="false" current-in-tab="false">
+        <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/xml.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-1031">
-              <caret line="50" column="209" selection-start-line="50" selection-start-column="209" selection-end-line="50" selection-end-column="209" />
+            <state relative-caret-position="22">
+              <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="server-list.html" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/server-list.html">
+      <file leaf-file-name="index.html" pinned="false" current-in-tab="false">
+        <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/htmlmixed/index.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="421">
-              <caret line="151" column="8" selection-start-line="151" selection-start-column="8" selection-end-line="151" selection-end-column="63" />
-              <folding>
-                <element signature="n#div#0;n#div#1;n#div#0;n#div#0;n#div#2;n#body#0;n#html#0;n#!!top" expanded="false" />
-              </folding>
+            <state relative-caret-position="105">
+              <caret line="59" column="24" selection-start-line="59" selection-start-column="15" selection-end-line="59" selection-end-column="24" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="codemirror.css" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/css/codemirror/codemirror.css">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="660">
+              <caret line="30" column="24" selection-start-line="30" selection-start-column="24" selection-end-line="30" selection-end-column="24" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="add-form.html" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/add-form.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="831">
+              <caret line="54" column="20" selection-start-line="54" selection-start-column="20" selection-end-line="54" selection-end-column="20" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="edit-formver.html" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/edit-formver.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="325">
+              <caret line="42" column="30" selection-start-line="42" selection-start-column="30" selection-end-line="42" selection-end-column="30" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="form-list.html" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/form-list.html">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="484">
+              <caret line="73" column="23" selection-start-line="73" selection-start-column="23" selection-end-line="73" selection-end-column="23" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -64,9 +115,19 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/add-form.html" />
+        <option value="$PROJECT_DIR$/edit-form.html" />
+        <option value="$PROJECT_DIR$/../ynqdshujuku/censor-pojManage - list2.html" />
+        <option value="$PROJECT_DIR$/../ynqdshujuku/report-myPoj - list.html" />
+        <option value="$PROJECT_DIR$/../cost/officialPrice.html" />
         <option value="$PROJECT_DIR$/edit-formcate.html" />
         <option value="$PROJECT_DIR$/edit-formpoj.html" />
+        <option value="$USER_HOME$/Desktop/codepress/codepress.html" />
+        <option value="$PROJECT_DIR$/css/codemirror/dracula.css" />
+        <option value="$PROJECT_DIR$/add-form.html" />
+        <option value="$PROJECT_DIR$/form-list.html" />
+        <option value="$PROJECT_DIR$/css/codemirror/codemirror.css" />
+        <option value="$PROJECT_DIR$/add-formver.html" />
+        <option value="$PROJECT_DIR$/edit-formver.html" />
       </list>
     </option>
   </component>
@@ -107,8 +168,6 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
-      <pane id="Scratches" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -127,17 +186,106 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="jszfver" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="jszfver" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="css" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="jszfver" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="jszfver" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="css" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="codemirror" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
         </subPane>
       </pane>
+      <pane id="Scope" />
+      <pane id="Scratches" />
     </panes>
   </component>
   <component name="PropertiesComponent">
-    <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
+    <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors" />
     <property name="settings.editor.splitter.proportion" value="0.66111654" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="HbShouldOpenHtmlAsHb" value="" />
   </component>
+  <component name="RunManager">
+    <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
+      <method />
+    </configuration>
+    <configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test">
+      <method />
+    </configuration>
+    <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma">
+      <config-file value="" />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+      <method />
+    </configuration>
+    <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir="">
+      <method />
+    </configuration>
+    <configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
+      <option name="cucumberJsArguments" value="" />
+      <option name="executablePath" />
+      <option name="filePath" />
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+      <node-interpreter>project</node-interpreter>
+      <node-options />
+      <gulpfile />
+      <tasks />
+      <arguments />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+      <command value="run-script" />
+      <scripts />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
+      <node-interpreter>project</node-interpreter>
+      <node-options />
+      <working-directory />
+      <pass-parent-env>true</pass-parent-env>
+      <envs />
+      <ui>bdd</ui>
+      <extra-mocha-options />
+      <test-kind>DIRECTORY</test-kind>
+      <test-directory />
+      <recursive>false</recursive>
+      <method />
+    </configuration>
+  </component>
   <component name="ShelveChangesManager" show_recycled="false">
     <option name="remove_strategy" value="false" />
   </component>
@@ -152,30 +300,36 @@
       <option name="presentableId" value="Default" />
       <updated>1468566079538</updated>
       <workItem from="1468566080906" duration="6566000" />
+      <workItem from="1468807835303" duration="3991000" />
+      <workItem from="1468894498911" duration="1298000" />
+      <workItem from="1468910032077" duration="91000" />
+      <workItem from="1468912371617" duration="2156000" />
+      <workItem from="1469590209416" duration="4445000" />
+      <workItem from="1469599259465" duration="4506000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="6566000" />
+    <option name="totallyTimeSpent" value="23053000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="1912" y="71" width="1456" height="886" extended-state="6" />
-    <editor active="false" />
+    <editor active="true" />
     <layout>
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.14587738" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980132" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
     </layout>
@@ -199,7 +353,7 @@
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/edit-cate.html">
+    <entry file="file://$USER_HOME$/Desktop/codepress/index.html">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
@@ -207,44 +361,300 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/add-form.html">
+    <entry file="file://$PROJECT_DIR$/add-formver.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="n#style#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+            <element signature="n#style#0;n#textarea#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="594">
+          <caret line="27" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="36" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formpoj.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formver.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/censor-pojManage - list2.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="17204">
+          <caret line="782" column="27" selection-start-line="782" selection-start-column="27" selection-end-line="782" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/report-myPoj - list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1100">
+          <caret line="50" column="29" selection-start-line="50" selection-start-column="29" selection-end-line="50" selection-end-column="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formver.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1100">
+          <caret line="50" column="44" selection-start-line="50" selection-start-column="44" selection-end-line="50" selection-end-column="44" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/censor-pojManage - list2.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="17204">
+          <caret line="782" column="27" selection-start-line="782" selection-start-column="27" selection-end-line="782" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/report-myPoj - list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1100">
+          <caret line="50" column="29" selection-start-line="50" selection-start-column="29" selection-end-line="50" selection-end-column="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../cost/officialPrice.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-form.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1760">
+          <caret line="80" column="12" selection-start-line="80" selection-start-column="12" selection-end-line="80" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/form-list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1474">
+          <caret line="67" column="26" selection-start-line="67" selection-start-column="26" selection-end-line="67" selection-end-column="26" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formver.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-883">
-          <caret line="70" column="20" selection-start-line="70" selection-start-column="20" selection-end-line="70" selection-end-column="20" />
+        <state relative-caret-position="1100">
+          <caret line="50" column="44" selection-start-line="50" selection-start-column="44" selection-end-line="50" selection-end-column="44" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/censor-pojManage - list2.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="17204">
+          <caret line="782" column="27" selection-start-line="782" selection-start-column="27" selection-end-line="782" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/report-myPoj - list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-form.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1760">
+          <caret line="80" column="12" selection-start-line="80" selection-start-column="12" selection-end-line="80" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/form-list.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="875">
-          <caret line="140" column="0" selection-start-line="140" selection-start-column="0" selection-end-line="158" selection-end-column="13" />
+        <state relative-caret-position="1474">
+          <caret line="67" column="26" selection-start-line="67" selection-start-column="26" selection-end-line="67" selection-end-column="26" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formcate.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1188">
+          <caret line="54" column="212" selection-start-line="54" selection-start-column="212" selection-end-line="54" selection-end-column="212" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formpoj.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/server-list.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="421">
+        <state relative-caret-position="3168">
+          <caret line="151" column="8" selection-start-line="151" selection-start-column="8" selection-end-line="151" selection-end-column="63" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-cate.html" />
+    <entry file="file://$PROJECT_DIR$/server-list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3168">
           <caret line="151" column="8" selection-start-line="151" selection-start-column="8" selection-end-line="151" selection-end-column="63" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/censor-pojManage - list2.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="17204">
+          <caret line="782" column="27" selection-start-line="782" selection-start-column="27" selection-end-line="782" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../ynqdshujuku/report-myPoj - list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1100">
+          <caret line="50" column="29" selection-start-line="50" selection-start-column="29" selection-end-line="50" selection-end-column="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/../cost/officialPrice.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="655">
+          <caret line="269" column="25" selection-start-line="269" selection-start-column="25" selection-end-line="269" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-form.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1760">
+          <caret line="80" column="12" selection-start-line="80" selection-start-column="12" selection-end-line="80" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formcate.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="531">
+          <caret line="126" column="28" selection-start-line="126" selection-start-column="28" selection-end-line="126" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codepress/codepress.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="421">
+          <caret line="29" column="72" selection-start-line="29" selection-start-column="72" selection-end-line="29" selection-end-column="72" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formpoj.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1550">
+          <caret line="88" column="46" selection-start-line="88" selection-start-column="46" selection-end-line="88" selection-end-column="46" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="594">
+          <caret line="27" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="36" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/css/codemirror/dracula.css">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="132">
+          <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codepress/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/form-list.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="484">
+          <caret line="73" column="23" selection-start-line="73" selection-start-column="23" selection-end-line="73" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/htmlmixed/index.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="105">
+          <caret line="59" column="24" selection-start-line="59" selection-start-column="15" selection-end-line="59" selection-end-column="24" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/test.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="1" column="66" selection-start-line="1" selection-start-column="66" selection-end-line="1" selection-end-column="66" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/Desktop/codemirror/codemirror-5.17.0/mode/xml/xml.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="22">
+          <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/add-formver.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="22">
+          <caret line="16" column="32" selection-start-line="16" selection-start-column="32" selection-end-line="16" selection-end-column="32" />
           <folding>
-            <element signature="n#div#0;n#div#1;n#div#0;n#div#0;n#div#2;n#body#0;n#html#0;n#!!top" expanded="false" />
+            <element signature="n#style#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+            <element signature="n#style#0;n#textarea#0;n#div#0;n#div#0;n#div#2;n#div#0;n#div#0;n#div#1;n#div#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/edit-formcate.html">
+    <entry file="file://$PROJECT_DIR$/css/codemirror/codemirror.css">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="267">
-          <caret line="54" column="212" selection-start-line="54" selection-start-column="212" selection-end-line="54" selection-end-column="212" />
+        <state relative-caret-position="660">
+          <caret line="30" column="24" selection-start-line="30" selection-start-column="24" selection-end-line="30" selection-end-column="24" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/edit-formpoj.html">
+    <entry file="file://$PROJECT_DIR$/add-form.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="831">
+          <caret line="54" column="20" selection-start-line="54" selection-start-column="20" selection-end-line="54" selection-end-column="20" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/edit-formver.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1031">
-          <caret line="50" column="209" selection-start-line="50" selection-start-column="209" selection-end-line="50" selection-end-column="209" />
+        <state relative-caret-position="325">
+          <caret line="42" column="30" selection-start-line="42" selection-start-column="30" selection-end-line="42" selection-end-column="30" />
           <folding />
         </state>
       </provider>

+ 0 - 32
add-form.html

@@ -53,22 +53,6 @@
                   </div>
                 </div>
               </div>
-              <div class="form-group">
-                <label>报表文件</label>
-                <div class="row">
-                  <div class="col-xs-5">
-                    <input type="file" >
-                  </div>
-                </div>
-              </div>
-              <div class="form-group">
-                <label>版本信息</label>
-                <div class="row">
-                  <div class="col-xs-5">
-                    <textarea class="form-control"></textarea>
-                  </div>
-                </div>
-              </div>
               <div class="form-group ">
                 <label></label>
                 <div class="row">
@@ -103,22 +87,6 @@
                   </div>
                 </div>
               </div>
-              <div class="form-group">
-                <label>报表文件</label>
-                <div class="row">
-                  <div class="col-xs-5">
-                    <input type="file" >
-                  </div>
-                </div>
-              </div>
-              <div class="form-group">
-                <label>版本信息</label>
-                <div class="row">
-                  <div class="col-xs-5">
-                    <textarea class="form-control"></textarea>
-                  </div>
-                </div>
-              </div>
               <div class="form-group ">
                 <label></label>
                 <div class="row">

+ 197 - 0
add-formver.html

@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html lang=zh-cn> 
+<head>
+  <meta charset=utf-8> 
+  <title>VC</title> 
+  <meta name=description content="VC">   
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="renderer" content="webkit">
+  <meta name=copyright content=smartcost.com.cn> 
+  <link rel=stylesheet href=css/bootstrap.css> 
+  <link rel=stylesheet href=css/style.css> 
+  <script src=js/jquery-1.9.1.min.js></script> 
+  <script src=js/bootstrap.js></script> 
+  <script src=js/global.js></script>
+  <script src="js/codemirror/codemirror.js"></script>
+  <link rel="stylesheet" href="css/codemirror/codemirror.css">
+  <script src="js/codemirror/xml.js"></script>
+  <link rel="stylesheet" href="css/codemirror/dracula.css">
+</head>
+<body>
+  <div class="side-nav">
+    <h1>VC</h1>
+    <ul>
+      <li data-toggle="tooltip" data-placement="right" title="客户机列表"><a href="server-list.html"><i class="glyphicon glyphicon-list"></i></a></li>
+      <li data-toggle="tooltip" data-placement="right" title="报表库"><a href="form-list.html" class="active"><i class="glyphicon glyphicon-list-alt"></i></a></li>
+      <li data-toggle="tooltip" data-placement="right" title="退出登录"><a href="login.html"><i class="glyphicon glyphicon-off"></i></a></li>
+    </ul>
+  </div>
+  <div class="warp-content">
+    <div class="container">
+      <div class="page-header">
+        <h2 id="basis-info">添加新版本</h2>
+      </div>
+      <div class="row">
+        <div class="col-md-12">
+          <div class="tc-section">
+              <div class="form-group">
+                <label>版本时间</label>
+                <div class="row">
+                  <div class="col-xs-5">
+                    <input type="text" class="form-control input-sm" value="2016-07-21" disabled>
+                  </div>
+                </div>
+              </div>
+            <div class="form-group">
+              <label>版本信息</label>
+              <div class="row">
+                <div class="col-xs-5">
+                  <textarea class="form-control"></textarea>
+                </div>
+              </div>
+            </div>
+            <div class="form-group">
+              <label>报表代码</label>
+              <div class="row">
+                <div class="col-xs-12" style="font-size:14px">
+                  <textarea  id="editor" name="editor" style="height:1000px">
+<?xml version="1.0" encoding="gb2312" ?>
+<报表 名称="【09】材料暂估价清单计价表" 主版本="招投标版" 调价前="是" 分类="7" 编号格式="标准编号" 分类名称="重庆(2016)">
+  <主表信息
+          版本信息="[0][8]"
+          名称="【09】材料暂估价清单计价表"
+          页面信息="[A4][纵]"
+          单位="CM"
+          页边距="[1.0][1.0][1.0][1.0]"
+          显示调整参数="[分栏数量^1][缩放比例^1][空行提上^F][空行显示^T]"
+          临时目录="D:\TEMP"
+          数据库信息="[驱动^4][ADO^Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\PrintCom_Demo\AccessDB\项目文件.mdb;Persist Security Info=True]"
+  ></主表信息>
+  <查询语句>
+    <流水查询对象 SQL语句="SELECT B1.ChapterID, B1.FullCode, B1.Name, B1.TotalPrice,
+                           B1.SerialNo, B1.Units,B1.Quantity,B1.UnitPrice,''
+                           FROM Bills AS B1
+                           WHERE (B1.InterimType=1) AND (B1.IsSpecialInterim=true) and (B1.isleaf=true)
+                           ORDER BY B1.SerialNO">
+      <指标对象 内容="[名称^清单编号][ID^1][数据类型^3]"></指标对象>
+      <指标对象 内容="[名称^细目号][ID^2][数据类型^8]"></指标对象>
+      <指标对象 内容="[名称^@名称][ID^3][数据类型^8]"></指标对象>
+      <指标对象 内容="[名称^估计金额][ID^4][数据类型^5]"></指标对象>
+      <指标对象 内容="[名称^序号][ID^5][数据类型^3]"></指标对象>
+      <指标对象 内容="[名称^单位][ID^6][数据类型^8]"></指标对象>
+      <指标对象 内容="[名称^数量][ID^7][数据类型^8]"></指标对象>
+      <指标对象 内容="[名称^单价][ID^8][数据类型^5]"></指标对象>
+      <指标对象 内容="[名称^备注][ID^9][数据类型^8]"></指标对象>
+   </流水查询对象>
+  </查询语句>
+  <表题信息 高度="1.2" 层数="2">
+     <标题 内容="[名称^材料暂估价清单计价表][ID^1][内容^材料暂估价清单计价表][字体^黑体|32|0|400|0|0|0|0][对齐^中][上下层^2|1][左右位置^0|100]"></标题>
+  </表题信息>
+  <表头信息 高度="1.2" 层数="2">
+	<表头信息 内容="[名称^单位工程名称][ID^1][前缀^项目名称: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^1001][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^0.00|70.00]"/>
+	<表头信息 内容="[名称^单位工程名称][ID^2][前缀^合 同 段: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^1002][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^70|100.00]"/>
+	<表头信息 内容="[名称^单位工程名称][ID^2][前缀^合 同 段: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^1002][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^70|100.00]"/>
+  </表头信息>
+  <表尾信息 高度="0.60" 层数="1">
+	<表尾信息 内容="[名称^单位工程名称][ID^1][前缀^编制: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^1006][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^10.00|25.00]"/>
+	<表尾信息 内容="[名称^单位工程名称][ID^2][前缀^复核: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^1008][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^40.00|65.00]"/>
+	<表尾信息 内容="[名称^单位工程名称][ID^3][前缀^编制日期: ][默认值^][字体^宋体|16|0|400|0|0|0|0.00][指标ID^-1][参数ID^-1][对齐^左][上下层^1.00|1.00][左右位置^70.00|100.00]"/>
+  </表尾信息>
+  <栏头信息 高度="1.0" 层数="1">
+     <栏头 内容="[ID^1][名称^序号][内容^序号][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^0|10][边框^0,0,0|1,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^2][名称^名称][内容^名称][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^10|40][边框^1,0,0|1,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^3][名称^单位][内容^单位][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^40|50][边框^1,0,0|1,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^4][名称^数量][内容^数量][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^50|60][边框^1,0,0|0,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^5][名称^单价][内容^单价][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^60|70][边框^1,0,0|0,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^6][名称^合价][内容^合价][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^70|80][边框^1,0,0|0,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+     <栏头 内容="[ID^7][名称^备注][内容^备注][字体^Arial|14|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^80|100][边框^1,0,0|0,0,0|0,0,0|1,0,0][分栏^F]"></栏头>
+  </栏头信息>
+  <流水显示对象信息 层高="0.8">
+     <显示对象 内容="[名称^][指标ID^201][字体^Arial|12|0|400|0|0|0|0][对齐^中下][合并^F][上下层^0|100][表栏ID^1][边框^0,0,0|1,0,0|1,0,0|1,0,0][缩放^T][显示0^F][精度^0][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^3][字体^Arial|12|0|400|0|0|0|0][对齐^左下][合并^F][上下层^0|100][表栏ID^2][边框^1,0,0|1,0,0|1,0,0|1,0,0][缩放^T][显示0^F][精度^0][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^6][字体^Arial|12|0|400|0|0|0|0][对齐^中下][合并^F][上下层^0|100][表栏ID^3][边框^1,0,0|1,0,0|1,0,0|1,0,0][缩放^T][显示0^T][精度^0][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^7][字体^Arial|12|0|400|0|0|0|0][对齐^右下][合并^F][上下层^0|100][表栏ID^4][边框^1,0,0|0,0,0|1,0,0|1,0,0][缩放^T][显示0^T][精度^3][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^8][字体^Arial|12|0|400|0|0|0|0][对齐^右下][合并^F][上下层^0|100][表栏ID^5][边框^1,0,0|0,0,0|1,0,0|1,0,0][缩放^T][显示0^T][精度^2][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^4][字体^Arial|12|0|400|0|0|0|0][对齐^右下][合并^F][上下层^0|100][表栏ID^6][边框^1,0,0|0,0,0|1,0,0|1,0,0][缩放^T][显示0^T][精度^0][前缀^]"></显示对象>
+     <显示对象 内容="[名称^][指标ID^9][字体^Arial|12|0|400|0|0|0|0][对齐^左下][合并^F][上下层^0|100][表栏ID^7][边框^1,0,0|0,0,0|1,0,0|1,0,0][缩放^T][显示0^T][精度^0][前缀^]"></显示对象>
+  </流水显示对象信息>
+  <页码信息>
+	<页码 内容="[名称^当前页码][ID^1][所属区域^表头|F|70,90.00,2.00,1.00][类型^1][字体^宋体|12|0|400|0|0|0|0.00][对齐^中][前缀^第][后缀^页][启始页码^0][显示^T]"></页码>
+	<页码 内容="[名称^总页码数][ID^2][所属区域^表头|F|90.00,100.00,2.00,1.00][类型^0][字体^宋体|12|0|400|0|0|0|0.00][对齐^左][前缀^共][后缀^页][启始页码^0][显示^T]"></页码>
+  </页码信息>
+  <合计信息 高度="0.8" 层数="1">
+     <合计 内容="[名称^材料暂估价小计(计入&quot;暂估价汇总表&quot;)][ID^1][指标ID^-1][类型^1][字体^Arial|12|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^0|70][边框^0,0,0|0.3,0,0|0,0,0|0.3,0,0][缩放^T][显示0^F][精度^0][后缀^]"></合计>
+     <合计 内容="[名称^][ID^1][指标ID^4][类型^1][字体^Arial|12|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^70|80][边框^0,0,0|0.3,0,0|0,0,0|0.3,0,0][缩放^T][显示0^F][精度^0][后缀^]"></合计>
+     <合计 内容="[名称^][ID^1][指标ID^-1][类型^1][字体^Arial|12|0|400|0|0|0|0][对齐^中][上下层^1|1][左右位置^80|100][边框^0,0,0|0,0,0|0,0,0|0.3,0,0][缩放^T][显示0^F][精度^0][后缀^]"></合计>
+  </合计信息>
+  <图形信息>
+     <图形对象 内容="[名称^线1][ID^1][所属区域^流水|T|0,0,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+     <图形对象 内容="[名称^线2][ID^2][所属区域^流水|T|100,100,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+
+     <图形对象 内容="[名称^线3][ID^3][所属区域^栏头|T|0,0,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+     <图形对象 内容="[名称^线4][ID^4][所属区域^栏头|T|100,100,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+     <图形对象 内容="[名称^线3][ID^3][所属区域^栏头|T|0,100,0,0][类型^1][画笔^1|0|0][图形^]"></图形对象>
+
+     <图形对象 内容="[名称^线3][ID^3][所属区域^合计|T|0,0,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+     <图形对象 内容="[名称^线4][ID^4][所属区域^合计|T|100,100,0,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+     <图形对象 内容="[名称^线4][ID^4][所属区域^合计|T|0,100,100,100][类型^1][画笔^1|0|0][图形^]"></图形对象>
+  </图形信息>
+  <参数图形信息>
+  </参数图形信息>
+  <独立参数信息>
+     <参数对象 内容="[名称^@C][ID^12][条件类型^0][数据类型^8][默认值^]"></参数对象>
+     <参数对象 内容="[名称^@D][ID^13][条件类型^0][数据类型^8][默认值^]"></参数对象>
+     <参数对象 内容="[名称^@A][ID^1018][条件类型^0][数据类型^8][默认值^2000-01-01]"></参数对象>
+     <参数对象 内容="[名称^@表编号][ID^1017][条件类型^0][数据类型^8][默认值^标表1-1]"></参数对象>
+     <参数对象 内容="[名称^@表头表尾SQL][ID^1000][条件类型^0][数据类型^8][默认值^SELECT BuildProjectName,ProjectLocation,BuildUnit,Author,AuthorCertificate,Auditor,AuditorCertificate,BudgetProjectName,EditRange,EditDate,Bidder FROM ProjData ]"></参数对象>
+     <参数对象 内容="[名称^][ID^3001][条件类型^0][数据类型^8][默认值^1]"></参数对象>
+  </独立参数信息>
+  <独立字段信息>
+     <指标对象 内容="[名称^@BF][ID^201][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@建设项目名称][ID^1001][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@单位工程名称][ID^1002][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@工程地点][ID^1003][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@建设单位][ID^1004][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@投标人][ID^1005][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@编制][ID^1006][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@编制人证号][ID^1007][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@复核][ID^1008][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@复核人证号][ID^1009][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@编制范围][ID^1010][数据类型^8]"></指标对象>
+     <指标对象 内容="[名称^@编制时间(年月日)][ID^1011][数据类型^10]"></指标对象>
+  </独立字段信息>
+  <计算式信息>
+     <计算式 内容="[名称^取序号][ID^8][表达式^SetSerialno(@BF,@名称,0,@C,@D,1)]"></计算式>
+     <计算式 内容="[名称^取当前时间][ID^1][表达式^@A:=Now(0)]"></计算式>
+     <计算式 内容="[名称^取序号][ID^17][表达式^ExtractInteger(f(1),f(6))]"></计算式>
+     <计算式 内容="[名称^表头尾SQL][ID^1000][表达式^SQL(4,10,f(1),0,P(1000),0,11,F(1001),F(1003),F(1004),F(1006),F(1007),F(1008),F(1009),F(1002),F(1010),F(1011),F(1005))]"></计算式>
+  </计算式信息>
+</报表>
+                  </textarea>
+                </div>
+              </div>
+            </div>
+              <div class="form-group ">
+                <label></label>
+                <div class="row">
+                  <div class="col-xs-12">
+                    <a href="form-list.html" class="btn btn-default">返回</a>
+                    <a href="form-list.html" class="btn btn-info">确认添加</a>
+                  </div>
+                </div>
+              </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+<script>
+  var myTextarea = document.getElementById('editor');
+  var myCodeMirror = CodeMirror.fromTextArea(myTextarea, {
+    mode: "text/html",
+    lineNumbers: true,
+    theme:"dracula"
+  });
+  editor.setSize('auto', 'auto');
+</script>
+</body>

+ 347 - 0
css/codemirror/codemirror.css

@@ -0,0 +1,347 @@
+/* BASICS */
+
+.CodeMirror {
+  /* Set height, width, borders, and global font properties here */
+  font-family: monospace;
+  height:500px;
+  color: black;
+}
+
+/* PADDING */
+
+.CodeMirror-lines {
+  padding: 4px 0; /* Vertical padding around content */
+}
+.CodeMirror pre {
+  padding: 0 4px; /* Horizontal padding of content */
+}
+
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  background-color: white; /* The little square between H and V scrollbars */
+}
+
+/* GUTTER */
+
+.CodeMirror-gutters {
+  border-right: 1px solid #ddd;
+  background-color: #f7f7f7;
+  white-space: nowrap;
+}
+.CodeMirror-linenumbers {}
+.CodeMirror-linenumber {
+  padding: 0 3px 0 5px;
+  min-width: 20px;
+  text-align: right;
+  color: #999;
+  white-space: nowrap;
+}
+
+.CodeMirror-guttermarker { color: black; }
+.CodeMirror-guttermarker-subtle { color: #999; }
+
+/* CURSOR */
+
+.CodeMirror-cursor {
+  border-left: 1px solid black;
+  border-right: none;
+  width: 0;
+}
+/* Shown when moving in bi-directional text */
+.CodeMirror div.CodeMirror-secondarycursor {
+  border-left: 1px solid silver;
+}
+.cm-fat-cursor .CodeMirror-cursor {
+  width: auto;
+  border: 0 !important;
+  background: #7e7;
+}
+.cm-fat-cursor div.CodeMirror-cursors {
+  z-index: 1;
+}
+
+.cm-animate-fat-cursor {
+  width: auto;
+  border: 0;
+  -webkit-animation: blink 1.06s steps(1) infinite;
+  -moz-animation: blink 1.06s steps(1) infinite;
+  animation: blink 1.06s steps(1) infinite;
+  background-color: #7e7;
+}
+@-moz-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@-webkit-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+
+/* Can style cursor different in overwrite (non-insert) mode */
+.CodeMirror-overwrite .CodeMirror-cursor {}
+
+.cm-tab { display: inline-block; text-decoration: inherit; }
+
+.CodeMirror-rulers {
+  position: absolute;
+  left: 0; right: 0; top: -50px; bottom: -20px;
+  overflow: hidden;
+}
+.CodeMirror-ruler {
+  border-left: 1px solid #ccc;
+  top: 0; bottom: 0;
+  position: absolute;
+}
+
+/* DEFAULT THEME */
+
+.cm-s-default .cm-header {color: blue;}
+.cm-s-default .cm-quote {color: #090;}
+.cm-negative {color: #d44;}
+.cm-positive {color: #292;}
+.cm-header, .cm-strong {font-weight: bold;}
+.cm-em {font-style: italic;}
+.cm-link {text-decoration: underline;}
+.cm-strikethrough {text-decoration: line-through;}
+
+.cm-s-default .cm-keyword {color: #708;}
+.cm-s-default .cm-atom {color: #219;}
+.cm-s-default .cm-number {color: #164;}
+.cm-s-default .cm-def {color: #00f;}
+.cm-s-default .cm-variable,
+.cm-s-default .cm-punctuation,
+.cm-s-default .cm-property,
+.cm-s-default .cm-operator {}
+.cm-s-default .cm-variable-2 {color: #05a;}
+.cm-s-default .cm-variable-3 {color: #085;}
+.cm-s-default .cm-comment {color: #a50;}
+.cm-s-default .cm-string {color: #a11;}
+.cm-s-default .cm-string-2 {color: #f50;}
+.cm-s-default .cm-meta {color: #555;}
+.cm-s-default .cm-qualifier {color: #555;}
+.cm-s-default .cm-builtin {color: #30a;}
+.cm-s-default .cm-bracket {color: #997;}
+.cm-s-default .cm-tag {color: #170;}
+.cm-s-default .cm-attribute {color: #00c;}
+.cm-s-default .cm-hr {color: #999;}
+.cm-s-default .cm-link {color: #00c;}
+
+.cm-s-default .cm-error {color: #f00;}
+.cm-invalidchar {color: #f00;}
+
+.CodeMirror-composing { border-bottom: 2px solid; }
+
+/* Default styles for common addons */
+
+div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
+div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
+.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
+.CodeMirror-activeline-background {background: #e8f2ff;}
+
+/* STOP */
+
+/* The rest of this file contains styles related to the mechanics of
+   the editor. You probably shouldn't touch them. */
+
+.CodeMirror {
+  position: relative;
+  overflow: hidden;
+  background: white;
+}
+
+.CodeMirror-scroll {
+  overflow: scroll !important; /* Things will break if this is overridden */
+  /* 30px is the magic margin used to hide the element's real scrollbars */
+  /* See overflow: hidden in .CodeMirror */
+  margin-bottom: -30px; margin-right: -30px;
+  padding-bottom: 30px;
+  height: 100%;
+  outline: none; /* Prevent dragging from highlighting the element */
+  position: relative;
+}
+.CodeMirror-sizer {
+  position: relative;
+  border-right: 30px solid transparent;
+}
+
+/* The fake, visible scrollbars. Used to force redraw during scrolling
+   before actual scrolling happens, thus preventing shaking and
+   flickering artifacts. */
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  position: absolute;
+  z-index: 6;
+  display: none;
+}
+.CodeMirror-vscrollbar {
+  right: 0; top: 0;
+  overflow-x: hidden;
+  overflow-y: scroll;
+}
+.CodeMirror-hscrollbar {
+  bottom: 0; left: 0;
+  overflow-y: hidden;
+  overflow-x: scroll;
+}
+.CodeMirror-scrollbar-filler {
+  right: 0; bottom: 0;
+}
+.CodeMirror-gutter-filler {
+  left: 0; bottom: 0;
+}
+
+.CodeMirror-gutters {
+  position: absolute; left: 0; top: 0;
+  min-height: 100%;
+  z-index: 3;
+}
+.CodeMirror-gutter {
+  white-space: normal;
+  height: 100%;
+  display: inline-block;
+  vertical-align: top;
+  margin-bottom: -30px;
+  /* Hack to make IE7 behave */
+  *zoom:1;
+  *display:inline;
+}
+.CodeMirror-gutter-wrapper {
+  position: absolute;
+  z-index: 4;
+  background: none !important;
+  border: none !important;
+}
+.CodeMirror-gutter-background {
+  position: absolute;
+  top: 0; bottom: 0;
+  z-index: 4;
+}
+.CodeMirror-gutter-elt {
+  position: absolute;
+  cursor: default;
+  z-index: 4;
+}
+.CodeMirror-gutter-wrapper {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  user-select: none;
+}
+
+.CodeMirror-lines {
+  cursor: text;
+  min-height: 1px; /* prevents collapsing before first draw */
+}
+.CodeMirror pre {
+  /* Reset some styles that the rest of the page might have set */
+  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
+  border-width: 0;
+  background: transparent;
+  font-family: inherit;
+  font-size: inherit;
+  margin: 0;
+  white-space: pre;
+  word-wrap: normal;
+  line-height: inherit;
+  color: inherit;
+  z-index: 2;
+  position: relative;
+  overflow: visible;
+  -webkit-tap-highlight-color: transparent;
+  -webkit-font-variant-ligatures: none;
+  font-variant-ligatures: none;
+}
+.CodeMirror-wrap pre {
+  word-wrap: break-word;
+  white-space: pre-wrap;
+  word-break: normal;
+}
+
+.CodeMirror-linebackground {
+  position: absolute;
+  left: 0; right: 0; top: 0; bottom: 0;
+  z-index: 0;
+}
+
+.CodeMirror-linewidget {
+  position: relative;
+  z-index: 2;
+  overflow: auto;
+}
+
+.CodeMirror-widget {}
+
+.CodeMirror-code {
+  outline: none;
+}
+
+/* Force content-box sizing for the elements where we expect it */
+.CodeMirror-scroll,
+.CodeMirror-sizer,
+.CodeMirror-gutter,
+.CodeMirror-gutters,
+.CodeMirror-linenumber {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+
+.CodeMirror-measure {
+  position: absolute;
+  width: 100%;
+  height: 0;
+  overflow: hidden;
+  visibility: hidden;
+}
+
+.CodeMirror-cursor {
+  position: absolute;
+  pointer-events: none;
+}
+.CodeMirror-measure pre { position: static; }
+
+div.CodeMirror-cursors {
+  visibility: hidden;
+  position: relative;
+  z-index: 3;
+}
+div.CodeMirror-dragcursors {
+  visibility: visible;
+}
+
+.CodeMirror-focused div.CodeMirror-cursors {
+  visibility: visible;
+}
+
+.CodeMirror-selected { background: #d9d9d9; }
+.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
+.CodeMirror-crosshair { cursor: crosshair; }
+.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
+.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
+
+.cm-searching {
+  background: #ffa;
+  background: rgba(255, 255, 0, .4);
+}
+
+/* IE7 hack to prevent it from returning funny offsetTops on the spans */
+.CodeMirror span { *vertical-align: text-bottom; }
+
+/* Used to force a border model for a node */
+.cm-force-border { padding-right: .1px; }
+
+@media print {
+  /* Hide the cursor when printing */
+  .CodeMirror div.CodeMirror-cursors {
+    visibility: hidden;
+  }
+}
+
+/* See issue #2901 */
+.cm-tab-wrap-hack:after { content: ''; }
+
+/* Help users use markselection to safely style text background */
+span.CodeMirror-selectedtext { background: none; }

+ 41 - 0
css/codemirror/dracula.css

@@ -0,0 +1,41 @@
+/*
+
+    Name:       dracula
+    Author:     Michael Kaminsky (http://github.com/mkaminsky11)
+
+    Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
+
+*/
+
+
+.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
+  background-color: #282a36 !important;
+  color: #f8f8f2 !important;
+  border: none;
+}
+.cm-s-dracula .CodeMirror-gutters { color: #282a36; }
+.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
+.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
+.cm-s-dracula.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
+.cm-s-dracula span.cm-comment { color: #6272a4; }
+.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
+.cm-s-dracula span.cm-number { color: #bd93f9; }
+.cm-s-dracula span.cm-variable { color: #50fa7b; }
+.cm-s-dracula span.cm-variable-2 { color: white; }
+.cm-s-dracula span.cm-def { color: #ffb86c; }
+.cm-s-dracula span.cm-keyword { color: #ff79c6; }
+.cm-s-dracula span.cm-operator { color: #ff79c6; }
+.cm-s-dracula span.cm-keyword { color: #ff79c6; }
+.cm-s-dracula span.cm-atom { color: #bd93f9; }
+.cm-s-dracula span.cm-meta { color: #f8f8f2; }
+.cm-s-dracula span.cm-tag { color: #ff79c6; }
+.cm-s-dracula span.cm-attribute { color: #50fa7b; }
+.cm-s-dracula span.cm-qualifier { color: #50fa7b; }
+.cm-s-dracula span.cm-property { color: #66d9ef; }
+.cm-s-dracula span.cm-builtin { color: #50fa7b; }
+.cm-s-dracula span.cm-variable-3 { color: #50fa7b; }
+
+.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
+.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

+ 0 - 81
edit-form.html

@@ -79,87 +79,6 @@
           </div>
         </div>
       </div>
-      <div class="page-header">
-        <a href="#addver"  data-toggle="modal" class="btn btn-info pull-right">添加新版本</a>
-        <h2 id="basis-info">报表历史版本</h2>
-      </div>
-      <table class="table table-hover">
-        <thead>
-          <tr>
-            <th>版本时间</th>
-            <th>报表文件</th>
-            <th>版本内容</th>
-            <th>操作</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>2016-04-03</td>
-            <td><a href="#">下载</a></td>
-            <td>内容文本</td>
-            <td><a href="#" class="text-danger">删除</a></td>
-          </tr>
-          <tr>
-            <td>2016-03-15</td>
-            <td><a href="#">下载</a></td>
-            <td>内容文本</td>
-            <td><a href="#" class="text-danger">删除</a></td>
-          </tr>
-          <tr>
-            <td>2015-11-21</td>
-            <td><a href="#">下载</a></td>
-            <td>内容文本</td>
-            <td><a href="#" class="text-danger">删除</a></td>
-          </tr>
-          <tr>
-            <td>2015-11-14</td>
-            <td><a href="#">下载</a></td>
-            <td>内容文本</td>
-            <td><a href="#" class="text-danger">删除</a></td>
-          </tr>
-        </tobdy>
-      </table>
-    </div>
-  </div>
-<!--弹框-添加新版本-->
-<div class="modal fade " tabindex="-1" role="dialog" aria-hidden="true" id="addver">
-  <div class="modal-dialog ">
-    <div class="modal-content">
-      <div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
-        <h4 class="modal-title" >添加新版本</h4>
-      </div>
-      <div class="modal-body">
-        <div class="form-group">
-          <label>版本时间</label>
-          <div class="row">
-            <div class="col-xs-5">
-              <input type="text" class="form-control input-sm" value="2016-06-30"><!--默认当前时间-->
-            </div>
-          </div>
-        </div>
-        <div class="form-group">
-          <label>报表文件</label>
-          <div class="row">
-            <div class="col-xs-5">
-              <input type="file" >
-            </div>
-          </div>
-        </div>
-        <div class="form-group">
-          <label>版本信息</label>
-          <div class="row">
-            <div class="col-xs-6">
-              <textarea class="form-control"></textarea>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="modal-footer">
-        <a type="button" class="btn btn-info" href="#">确定添加</a>
-      </div>
     </div>
   </div>
-</div>
-<!--弹框-结束-->  
 </body>

+ 18 - 18
edit-formcate.html

@@ -50,16 +50,16 @@
             </div>
             <div class="col-md-8 col-md-offset-1">
                 <table class="table table-hover">
-                    <thead><tr><th>父级类别</th><th>子级类别</th><th width="70">报表</th><th width="110">操作</th></tr></thead>
+                    <thead><tr><th>类别名称</th><th>父级类别</th><th width="70">报表</th><th width="110">操作</th></tr></thead>
                     <tbody>
-                    <tr><td>父级类别1</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别2</td><td></td><td>2</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td>子级类别1</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td>子级类别2</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别4</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别5</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别6</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别1</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别2</td><td></td><td>2</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别3</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别4</td><td>类别3</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别5</td><td>类别3</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别6</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别7</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别8</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
                     </tbody>
                 </table>
                 <nav>
@@ -114,16 +114,16 @@
                     </div>
                 </div>
                 <table class="table table-hover">
-                    <thead><tr><th>父级类别</th><th>子级类别</th><th width="70">报表</th><th width="110">操作</th></tr></thead>
+                    <thead><tr><th>类别名称</th><th>父级类别</th><th width="70">报表</th><th width="110">操作</th></tr></thead>
                     <tbody>
-                    <tr><td>父级类别1</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别2</td><td></td><td>2</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td>子级类别1</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别3</td><td>子级类别2</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别4</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别5</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
-                    <tr><td>父级类别6</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别1</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别2</td><td></td><td>2</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别3</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别4</td><td>类别3</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别5</td><td>类别3</td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别6</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别7</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
+                    <tr><td>类别8</td><td></td><td>0</td><td><a href="#edit-cate" data-toggle="modal" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="#del-cate" data-toggle="modal"  class="btn btn-xs text-danger">删除</a></td></tr>
                     </tbody>
                 </table>
                 <nav>

+ 4 - 4
edit-formpoj.html

@@ -86,7 +86,7 @@
                   <div class="form-group">
                       <label>项目名称</label>
                       <div class="row">
-                          <div class="col-xs-4">
+                          <div class="col-xs-9">
                               <input type="text" class="form-control input-sm" value="" >
                           </div>
                       </div>
@@ -108,9 +108,9 @@
                   <h4 class="modal-title" >删除类别</h4>
               </div>
               <div class="modal-body">
-                  <h3>该类别下包含子类别,无法删除</h3>
-                  <h3>该类别下包含报表,无法删除</h3>
-                  <h3>是否删除 <b>项目1</b></h3>
+                  <h3 class="text-center">该类别下包含子类别,无法删除</h3>
+                  <h3 class="text-center">该类别下包含报表,无法删除</h3>
+                  <h3 class="text-center">是否删除 <b>项目1</b></h3>
               </div>
               <div class="modal-footer">
                   <a type="button" class="btn btn-danger" href="#">确认删除</a>

+ 87 - 0
edit-formver.html

@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang=zh-cn> 
+<head>
+  <meta charset=utf-8> 
+  <title>VC</title> 
+  <meta name=description content="VC">   
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="renderer" content="webkit">
+  <meta name=copyright content=smartcost.com.cn> 
+  <link rel=stylesheet href=css/bootstrap.css> 
+  <link rel=stylesheet href=css/style.css> 
+  <script src=js/jquery-1.9.1.min.js></script> 
+  <script src=js/bootstrap.js></script> 
+  <script src=js/global.js></script> 
+</head>
+<body>
+  <div class="side-nav">
+    <h1>VC</h1>
+    <ul>
+      <li data-toggle="tooltip" data-placement="right" title="客户机列表"><a href="server-list.html"><i class="glyphicon glyphicon-list"></i></a></li>
+      <li data-toggle="tooltip" data-placement="right" title="报表库"><a href="form-list.html" class="active"><i class="glyphicon glyphicon-list-alt"></i></a></li>
+      <li data-toggle="tooltip" data-placement="right" title="退出登录"><a href="login.html"><i class="glyphicon glyphicon-off"></i></a></li>
+    </ul>
+  </div>
+  <div class="warp-content">
+    <div class="container">
+      <div class="page-header">
+        <a href="add-formver.html" class="btn btn-info pull-right">添加新版本</a>
+        <h2 id="basis-info">报表历史版本</h2>
+      </div>
+      <table class="table table-hover">
+        <thead>
+          <tr>
+            <th>版本时间</th>
+            <th>报表文件</th>
+            <th>版本内容</th>
+            <th>操作</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr>
+            <td>2016-04-03</td>
+            <td><a href="#">编辑</a></td>
+            <td>内容文本</td>
+            <td><a href="#delver" class="text-danger"  data-toggle="modal">删除(点我)</a></td>
+          </tr>
+          <tr>
+            <td>2016-03-15</td>
+            <td><a href="#">编辑</a></td>
+            <td>内容文本</td>
+            <td><a href="#" class="text-danger">删除</a></td>
+          </tr>
+          <tr>
+            <td>2015-11-21</td>
+            <td><a href="#">编辑</a></td>
+            <td>内容文本</td>
+            <td><a href="#" class="text-danger">删除</a></td>
+          </tr>
+          <tr>
+            <td>2015-11-14</td>
+            <td><a href="#">编辑</a></td>
+            <td>内容文本</td>
+            <td><a href="#" class="text-danger">删除</a></td>
+          </tr>
+        </tobdy>
+      </table>
+    </div>
+  </div>
+<!--弹框-删除版本-->
+<div class="modal fade " tabindex="-1" role="dialog" aria-hidden="true" id="delver">
+  <div class="modal-dialog ">
+    <div class="modal-content">
+      <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
+        <h4 class="modal-title" >删除版本</h4>
+      </div>
+      <div class="modal-body">
+        <h3 class="text-center">是否删除版本 <b>2016-04-03</b> ?</h3>
+      </div>
+      <div class="modal-footer">
+        <a type="button" class="btn btn-danger" href="#">确认删除</a>
+      </div>
+    </div>
+  </div>
+</div>
+<!--弹框-结束-->
+</body>

+ 48 - 23
form-list.html

@@ -58,16 +58,23 @@
           <tr>
             <td>6.结算表</td>
             <td>【结算】封面</td>
-            <td>2016-04-05</td>
-            <td>23</td>
-            <td><a href="edit-form.html">编辑(点我)</a></td>
+            <td>2016-04-03</td>
+            <td><a href="edit-formver.html">23</a></td>
+            <td><a href="edit-form.html">编辑(点我)</a>&nbsp;<a href="#delform"  data-toggle="modal" class="text-danger">删除(点我)</a></td>
           </tr>
           <tr>
             <td>6.结算表</td>
             <td>【结算】封面2</td>
-            <td>2016-04-05</td>
-            <td>23</td>
-            <td><a href="#">编辑</a></td>
+            <td>2016-04-03</td>
+            <td><a href="edit-formver.html">23</a></td>
+            <td><a href="#">编辑</a>&nbsp;<a href="" class="text-danger">删除</a></td>
+          </tr>
+          <tr>
+            <td>6.结算表</td>
+            <td>【结算】封面3</td>
+            <td>2016-04-03</td>
+            <td><a href="edit-formver.html">0</a></td>
+            <td><a href="#">编辑</a>&nbsp;<a href="" class="text-danger">删除</a></td>
           </tr>
         </tobdy>
       </table>
@@ -102,16 +109,16 @@
             <td>类别</td>
             <td>【结算】封面</td>
             <td>2016-04-05</td>
-            <td>3</td>
-            <td><a href="#">编辑</a></td>
+            <td><a href="edit-formver.html">23</a></td>
+            <td><a href="#">编辑</a>&nbsp;<a href="" class="text-danger">删除</a></td>
           </tr>
           <tr>
             <td>佛青从</td>
             <td>类别</td>
             <td>【结算】表名</td>
             <td>2016-04-05</td>
-            <td>3</td>
-            <td><a href="#">编辑</a></td>
+            <td><a href="edit-formver.html">23</a></td>
+            <td><a href="#">编辑</a>&nbsp;<a href="" class="text-danger">删除</a></td>
           </tr>
         </tobdy>
       </table>
@@ -138,23 +145,41 @@
       </nav>
     </div>
   </div>
-<!--弹框-领取码-->
-<div class="modal fade " tabindex="-1" role="dialog" aria-hidden="true" id="sharekey">
-  <div class="modal-dialog ">
-    <div class="modal-content">
-      <div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
-        <h4 class="modal-title" >定制报表领取码</h4>
-      </div>
-      <div class="modal-body">
+  <!--弹框-领取码-->
+  <div class="modal fade " tabindex="-1" role="dialog" aria-hidden="true" id="sharekey">
+    <div class="modal-dialog ">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
+          <h4 class="modal-title" >定制报表领取码</h4>
+        </div>
+        <div class="modal-body">
           <p class="text-center">佛青从</p>
           <h1 class="text-center"><span class="label label-default">XJDH21</span></h1>
+        </div>
+        <div class="modal-footer">
+
+        </div>
       </div>
-      <div class="modal-footer">
-        
+    </div>
+  </div>
+  <!--弹框-结束-->
+  <!--弹框-删除报表-->
+  <div class="modal fade " tabindex="-1" role="dialog" aria-hidden="true" id="delform">
+    <div class="modal-dialog ">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
+          <h4 class="modal-title" >删除报表</h4>
+        </div>
+        <div class="modal-body">
+          <h3 class="text-center">是否删除 <b>【结算】封面</b> ?</h3>
+        </div>
+        <div class="modal-footer">
+          <a type="button" class="btn btn-danger" href="#">确认删除</a>
+        </div>
       </div>
     </div>
   </div>
-</div>
-<!--弹框-结束-->  
+  <!--弹框-结束-->
 </body>

Plik diff jest za duży
+ 8935 - 0
js/codemirror/codemirror.js


+ 394 - 0
js/codemirror/xml.js

@@ -0,0 +1,394 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: http://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+"use strict";
+
+var htmlConfig = {
+  autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
+                    'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
+                    'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
+                    'track': true, 'wbr': true, 'menuitem': true},
+  implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
+                     'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
+                     'th': true, 'tr': true},
+  contextGrabbers: {
+    'dd': {'dd': true, 'dt': true},
+    'dt': {'dd': true, 'dt': true},
+    'li': {'li': true},
+    'option': {'option': true, 'optgroup': true},
+    'optgroup': {'optgroup': true},
+    'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
+          'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
+          'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
+          'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
+          'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
+    'rp': {'rp': true, 'rt': true},
+    'rt': {'rp': true, 'rt': true},
+    'tbody': {'tbody': true, 'tfoot': true},
+    'td': {'td': true, 'th': true},
+    'tfoot': {'tbody': true},
+    'th': {'td': true, 'th': true},
+    'thead': {'tbody': true, 'tfoot': true},
+    'tr': {'tr': true}
+  },
+  doNotIndent: {"pre": true},
+  allowUnquoted: true,
+  allowMissing: true,
+  caseFold: true
+}
+
+var xmlConfig = {
+  autoSelfClosers: {},
+  implicitlyClosed: {},
+  contextGrabbers: {},
+  doNotIndent: {},
+  allowUnquoted: false,
+  allowMissing: false,
+  caseFold: false
+}
+
+CodeMirror.defineMode("xml", function(editorConf, config_) {
+  var indentUnit = editorConf.indentUnit
+  var config = {}
+  var defaults = config_.htmlMode ? htmlConfig : xmlConfig
+  for (var prop in defaults) config[prop] = defaults[prop]
+  for (var prop in config_) config[prop] = config_[prop]
+
+  // Return variables for tokenizers
+  var type, setStyle;
+
+  function inText(stream, state) {
+    function chain(parser) {
+      state.tokenize = parser;
+      return parser(stream, state);
+    }
+
+    var ch = stream.next();
+    if (ch == "<") {
+      if (stream.eat("!")) {
+        if (stream.eat("[")) {
+          if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
+          else return null;
+        } else if (stream.match("--")) {
+          return chain(inBlock("comment", "-->"));
+        } else if (stream.match("DOCTYPE", true, true)) {
+          stream.eatWhile(/[\w\._\-]/);
+          return chain(doctype(1));
+        } else {
+          return null;
+        }
+      } else if (stream.eat("?")) {
+        stream.eatWhile(/[\w\._\-]/);
+        state.tokenize = inBlock("meta", "?>");
+        return "meta";
+      } else {
+        type = stream.eat("/") ? "closeTag" : "openTag";
+        state.tokenize = inTag;
+        return "tag bracket";
+      }
+    } else if (ch == "&") {
+      var ok;
+      if (stream.eat("#")) {
+        if (stream.eat("x")) {
+          ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
+        } else {
+          ok = stream.eatWhile(/[\d]/) && stream.eat(";");
+        }
+      } else {
+        ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
+      }
+      return ok ? "atom" : "error";
+    } else {
+      stream.eatWhile(/[^&<]/);
+      return null;
+    }
+  }
+  inText.isInText = true;
+
+  function inTag(stream, state) {
+    var ch = stream.next();
+    if (ch == ">" || (ch == "/" && stream.eat(">"))) {
+      state.tokenize = inText;
+      type = ch == ">" ? "endTag" : "selfcloseTag";
+      return "tag bracket";
+    } else if (ch == "=") {
+      type = "equals";
+      return null;
+    } else if (ch == "<") {
+      state.tokenize = inText;
+      state.state = baseState;
+      state.tagName = state.tagStart = null;
+      var next = state.tokenize(stream, state);
+      return next ? next + " tag error" : "tag error";
+    } else if (/[\'\"]/.test(ch)) {
+      state.tokenize = inAttribute(ch);
+      state.stringStartCol = stream.column();
+      return state.tokenize(stream, state);
+    } else {
+      stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
+      return "word";
+    }
+  }
+
+  function inAttribute(quote) {
+    var closure = function(stream, state) {
+      while (!stream.eol()) {
+        if (stream.next() == quote) {
+          state.tokenize = inTag;
+          break;
+        }
+      }
+      return "string";
+    };
+    closure.isInAttribute = true;
+    return closure;
+  }
+
+  function inBlock(style, terminator) {
+    return function(stream, state) {
+      while (!stream.eol()) {
+        if (stream.match(terminator)) {
+          state.tokenize = inText;
+          break;
+        }
+        stream.next();
+      }
+      return style;
+    };
+  }
+  function doctype(depth) {
+    return function(stream, state) {
+      var ch;
+      while ((ch = stream.next()) != null) {
+        if (ch == "<") {
+          state.tokenize = doctype(depth + 1);
+          return state.tokenize(stream, state);
+        } else if (ch == ">") {
+          if (depth == 1) {
+            state.tokenize = inText;
+            break;
+          } else {
+            state.tokenize = doctype(depth - 1);
+            return state.tokenize(stream, state);
+          }
+        }
+      }
+      return "meta";
+    };
+  }
+
+  function Context(state, tagName, startOfLine) {
+    this.prev = state.context;
+    this.tagName = tagName;
+    this.indent = state.indented;
+    this.startOfLine = startOfLine;
+    if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))
+      this.noIndent = true;
+  }
+  function popContext(state) {
+    if (state.context) state.context = state.context.prev;
+  }
+  function maybePopContext(state, nextTagName) {
+    var parentTagName;
+    while (true) {
+      if (!state.context) {
+        return;
+      }
+      parentTagName = state.context.tagName;
+      if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||
+          !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
+        return;
+      }
+      popContext(state);
+    }
+  }
+
+  function baseState(type, stream, state) {
+    if (type == "openTag") {
+      state.tagStart = stream.column();
+      return tagNameState;
+    } else if (type == "closeTag") {
+      return closeTagNameState;
+    } else {
+      return baseState;
+    }
+  }
+  function tagNameState(type, stream, state) {
+    if (type == "word") {
+      state.tagName = stream.current();
+      setStyle = "tag";
+      return attrState;
+    } else {
+      setStyle = "error";
+      return tagNameState;
+    }
+  }
+  function closeTagNameState(type, stream, state) {
+    if (type == "word") {
+      var tagName = stream.current();
+      if (state.context && state.context.tagName != tagName &&
+          config.implicitlyClosed.hasOwnProperty(state.context.tagName))
+        popContext(state);
+      if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {
+        setStyle = "tag";
+        return closeState;
+      } else {
+        setStyle = "tag error";
+        return closeStateErr;
+      }
+    } else {
+      setStyle = "error";
+      return closeStateErr;
+    }
+  }
+
+  function closeState(type, _stream, state) {
+    if (type != "endTag") {
+      setStyle = "error";
+      return closeState;
+    }
+    popContext(state);
+    return baseState;
+  }
+  function closeStateErr(type, stream, state) {
+    setStyle = "error";
+    return closeState(type, stream, state);
+  }
+
+  function attrState(type, _stream, state) {
+    if (type == "word") {
+      setStyle = "attribute";
+      return attrEqState;
+    } else if (type == "endTag" || type == "selfcloseTag") {
+      var tagName = state.tagName, tagStart = state.tagStart;
+      state.tagName = state.tagStart = null;
+      if (type == "selfcloseTag" ||
+          config.autoSelfClosers.hasOwnProperty(tagName)) {
+        maybePopContext(state, tagName);
+      } else {
+        maybePopContext(state, tagName);
+        state.context = new Context(state, tagName, tagStart == state.indented);
+      }
+      return baseState;
+    }
+    setStyle = "error";
+    return attrState;
+  }
+  function attrEqState(type, stream, state) {
+    if (type == "equals") return attrValueState;
+    if (!config.allowMissing) setStyle = "error";
+    return attrState(type, stream, state);
+  }
+  function attrValueState(type, stream, state) {
+    if (type == "string") return attrContinuedState;
+    if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;}
+    setStyle = "error";
+    return attrState(type, stream, state);
+  }
+  function attrContinuedState(type, stream, state) {
+    if (type == "string") return attrContinuedState;
+    return attrState(type, stream, state);
+  }
+
+  return {
+    startState: function(baseIndent) {
+      var state = {tokenize: inText,
+                   state: baseState,
+                   indented: baseIndent || 0,
+                   tagName: null, tagStart: null,
+                   context: null}
+      if (baseIndent != null) state.baseIndent = baseIndent
+      return state
+    },
+
+    token: function(stream, state) {
+      if (!state.tagName && stream.sol())
+        state.indented = stream.indentation();
+
+      if (stream.eatSpace()) return null;
+      type = null;
+      var style = state.tokenize(stream, state);
+      if ((style || type) && style != "comment") {
+        setStyle = null;
+        state.state = state.state(type || style, stream, state);
+        if (setStyle)
+          style = setStyle == "error" ? style + " error" : setStyle;
+      }
+      return style;
+    },
+
+    indent: function(state, textAfter, fullLine) {
+      var context = state.context;
+      // Indent multi-line strings (e.g. css).
+      if (state.tokenize.isInAttribute) {
+        if (state.tagStart == state.indented)
+          return state.stringStartCol + 1;
+        else
+          return state.indented + indentUnit;
+      }
+      if (context && context.noIndent) return CodeMirror.Pass;
+      if (state.tokenize != inTag && state.tokenize != inText)
+        return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
+      // Indent the starts of attribute names.
+      if (state.tagName) {
+        if (config.multilineTagIndentPastTag !== false)
+          return state.tagStart + state.tagName.length + 2;
+        else
+          return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);
+      }
+      if (config.alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
+      var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
+      if (tagAfter && tagAfter[1]) { // Closing tag spotted
+        while (context) {
+          if (context.tagName == tagAfter[2]) {
+            context = context.prev;
+            break;
+          } else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {
+            context = context.prev;
+          } else {
+            break;
+          }
+        }
+      } else if (tagAfter) { // Opening tag spotted
+        while (context) {
+          var grabbers = config.contextGrabbers[context.tagName];
+          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
+            context = context.prev;
+          else
+            break;
+        }
+      }
+      while (context && context.prev && !context.startOfLine)
+        context = context.prev;
+      if (context) return context.indent + indentUnit;
+      else return state.baseIndent || 0;
+    },
+
+    electricInput: /<\/[\s\w:]+>$/,
+    blockCommentStart: "<!--",
+    blockCommentEnd: "-->",
+
+    configuration: config.htmlMode ? "html" : "xml",
+    helperType: config.htmlMode ? "html" : "xml",
+
+    skipAttribute: function(state) {
+      if (state.state == attrValueState)
+        state.state = attrState
+    }
+  };
+});
+
+CodeMirror.defineMIME("text/xml", "xml");
+CodeMirror.defineMIME("application/xml", "xml");
+if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
+  CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
+
+});