Browse Source

sync 2017-01-19

TonyKang 8 năm trước cách đây
mục cha
commit
d2653e5cfb
3 tập tin đã thay đổi với 113 bổ sung126 xóa
  1. 44 105
      .idea/workspace.xml
  2. 7 3
      protect/models/bills.js
  3. 62 18
      src/BillsDemo.html

+ 44 - 105
.idea/workspace.xml

@@ -24,31 +24,31 @@
       <file leaf-file-name="BillsDemo.html" pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/BillsDemo.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.30319148">
-              <caret line="60" column="38" selection-start-line="60" selection-start-column="38" selection-end-line="60" selection-end-column="38" />
+            <state vertical-scroll-proportion="0.24813154">
+              <caret line="86" column="8" selection-start-line="86" selection-start-column="8" selection-end-line="86" selection-end-column="8" />
               <folding>
-                <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
                 <element signature="n#style#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+                <element signature="n#style#0;n#div#2;n#body#0;n#html#0;n#!!top" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="wijmo.grid.min.js" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/wijmo/controls/wijmo.grid.min.js">
+      <file leaf-file-name="RptHome.html" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/RptHome.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="140.32">
-              <caret line="12" column="45350" selection-start-line="12" selection-start-column="45341" selection-end-line="12" selection-end-column="45350" />
+            <state vertical-scroll-proportion="-20.357143">
+              <caret line="30" column="75" selection-start-line="30" selection-start-column="75" selection-end-line="30" selection-end-column="75" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="WijmoDemo.html" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/WijmoDemo.html">
+      <file leaf-file-name="server.js" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/server.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="-14.75">
-              <caret line="67" column="53" selection-start-line="67" selection-start-column="53" selection-end-line="67" selection-end-column="53" />
+            <state vertical-scroll-proportion="0.0">
+              <caret line="33" column="24" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="24" />
               <folding />
             </state>
           </provider>
@@ -58,7 +58,7 @@
         <entry file="file://$PROJECT_DIR$/protect/models/bills.js">
           <provider selected="true" editor-type-id="text-editor">
             <state vertical-scroll-proportion="0.0">
-              <caret line="38" column="41" selection-start-line="38" selection-start-column="41" selection-end-line="38" selection-end-column="41" />
+              <caret line="25" column="2" selection-start-line="25" selection-start-column="2" selection-end-line="25" selection-end-column="2" />
               <folding>
                 <element signature="e#0#40#0" expanded="false" />
               </folding>
@@ -66,16 +66,6 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="server.js" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/server.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0">
-              <caret line="33" column="24" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="24" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -103,8 +93,8 @@
         <option value="$PROJECT_DIR$/protect/db/demodb.js" />
         <option value="$PROJECT_DIR$/server.js" />
         <option value="$PROJECT_DIR$/src/standalone.html" />
-        <option value="$PROJECT_DIR$/protect/models/bills.js" />
         <option value="$PROJECT_DIR$/src/WijmoDemo.html" />
+        <option value="$PROJECT_DIR$/protect/models/bills.js" />
         <option value="$PROJECT_DIR$/src/BillsDemo.html" />
       </list>
     </option>
@@ -145,6 +135,8 @@
       <sortByType />
     </navigator>
     <panes>
+      <pane id="Scope" />
+      <pane id="Scratches" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -209,54 +201,6 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="models" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="rpt_component" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="smartconstruct" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="smartconstruct" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="protect" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="models" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="rpt_component" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="helper" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="smartconstruct" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="smartconstruct" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="protect" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
               <option name="myItemId" value="db" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
@@ -299,8 +243,6 @@
           </PATH>
         </subPane>
       </pane>
-      <pane id="Scratches" />
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -401,7 +343,7 @@
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32864866" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21513514" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 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" weight="0.32972974" 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" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
@@ -722,15 +664,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="-0.5405405">
           <caret line="3" column="14" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="14" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/server.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0">
-          <caret line="33" column="24" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="24" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -742,19 +675,10 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/RptHome.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.7039007">
-          <caret line="124" column="34" selection-start-line="124" selection-start-column="34" selection-end-line="124" selection-end-column="34" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/wijmo/wijmo.grid.min.js">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.3474427">
           <caret line="12" column="32269" selection-start-line="12" selection-start-column="32258" selection-end-line="12" selection-end-column="32269" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -762,38 +686,53 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="1.3031915">
           <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/protect/models/rpt_component/Jpc_CrossTab.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0">
+          <caret line="113" column="34" selection-start-line="113" selection-start-column="29" selection-end-line="113" selection-end-column="34" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/wijmo/controls/wijmo.grid.min.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0">
+          <caret line="12" column="45350" selection-start-line="12" selection-start-column="45341" selection-end-line="12" selection-end-column="45350" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/WijmoDemo.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="-14.75">
+        <state vertical-scroll-proportion="-10.107142">
           <caret line="67" column="53" selection-start-line="67" selection-start-column="53" selection-end-line="67" selection-end-column="53" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/protect/models/rpt_component/Jpc_CrossTab.js">
+    <entry file="file://$PROJECT_DIR$/protect/models/rpt_component/helper/Jpc_Helper_CrossTab.js">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0">
-          <caret line="113" column="34" selection-start-line="113" selection-start-column="29" selection-end-line="113" selection-end-column="34" />
+          <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$/protect/models/rpt_component/helper/Jpc_Helper_CrossTab.js">
+    <entry file="file://$PROJECT_DIR$/src/RptHome.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0">
-          <caret line="53" column="0" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
+        <state vertical-scroll-proportion="-20.357143">
+          <caret line="30" column="75" selection-start-line="30" selection-start-column="75" selection-end-line="30" selection-end-column="75" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/wijmo/controls/wijmo.grid.min.js">
+    <entry file="file://$PROJECT_DIR$/server.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="140.32">
-          <caret line="12" column="45350" selection-start-line="12" selection-start-column="45341" selection-end-line="12" selection-end-column="45350" />
+        <state vertical-scroll-proportion="0.0">
+          <caret line="33" column="24" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="24" />
           <folding />
         </state>
       </provider>
@@ -801,7 +740,7 @@
     <entry file="file://$PROJECT_DIR$/protect/models/bills.js">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0">
-          <caret line="38" column="41" selection-start-line="38" selection-start-column="41" selection-end-line="38" selection-end-column="41" />
+          <caret line="25" column="2" selection-start-line="25" selection-start-column="2" selection-end-line="25" selection-end-column="2" />
           <folding>
             <element signature="e#0#40#0" expanded="false" />
           </folding>
@@ -810,11 +749,11 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/src/BillsDemo.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.30319148">
-          <caret line="60" column="38" selection-start-line="60" selection-start-column="38" selection-end-line="60" selection-end-column="38" />
+        <state vertical-scroll-proportion="0.24813154">
+          <caret line="86" column="8" selection-start-line="86" selection-start-column="8" selection-end-line="86" selection-end-column="8" />
           <folding>
-            <element signature="n#style#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
             <element signature="n#style#0;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" />
+            <element signature="n#style#0;n#div#2;n#body#0;n#html#0;n#!!top" expanded="true" />
           </folding>
         </state>
       </provider>

+ 7 - 3
protect/models/bills.js

@@ -15,12 +15,16 @@ var BillsSchema = new Schema({
     "FullCode": String,
     "Name": String,
     "Units": String,
-    "Quantity": String,
+    "Quantity": Number,
+    "DesignQuantity": Number,
+    "DesignQuantity2": Number,
+    "DesignPrice": Number,
+    "TotalPrice": Number,
     "Memostr": String
 });
 
-var BillsData = demodb.mongoose.model("bills", BillsSchema);
-//var TemplateData = demodb.model("TestBills", BillsSchema);
+//var BillsData = demodb.mongoose.model("bills", BillsSchema);
+var BillsData = demodb.mongoose.model("gd_bills", BillsSchema);
 
 var BillDataDAO = function(){};
 

+ 62 - 18
src/BillsDemo.html

@@ -14,10 +14,10 @@
 </head>
 <script src="/src/lib/jquery-1.9.1.min.js"></script>
 <script type="text/javascript" src="/src/wijmo/controls/wijmo.min.js"></script>
-<script type="text/javascript" src="/src/wijmo/controls/wijmo.grid.sheet.min.js"></script>
 <link href="/src/wijmo/styles/wijmo.min.css" rel="stylesheet"/>
-<!-- Wijmo controls (optional, include the controls you need) -->
-<script src="/src/wijmo/controls/wijmo.grid.min.js"></script>
+
+<script type="text/javascript" src="/src/wijmo/controls/wijmo.grid.min.js"></script>
+<script type="text/javascript" src="/src/wijmo/controls/wijmo.grid.sheet.min.js"></script>
 <body>
     <nav class="navbar navbar-light bg-faded p-0 ">
                 <span class="header-logo px-1" >
@@ -42,6 +42,14 @@
     </nav>
 
     <p>测试 FlexGrid 控件:</p>
+    <div>
+        <input type="button" value="新增" onclick="billOperation('insert')"/>
+        <input type="button" value="删除" onclick="billOperation('remove')"/>
+        <input type="button" value="升级" onclick="billOperation('upgrade')"/>
+        <input type="button" value="降级级" onclick="billOperation('downgrade')"/>
+        <input type="button" value="上移" onclick="billOperation('moveup')"/>
+        <input type="button" value="下移" onclick="billOperation('movedown')"/>
+    </div>
     <div id="theGrid" style="width:100%;height:auto;"></div>
     <p>测试 FlexSheet 控件:</p>
     <div id="flexsheet" style="width:100%;height:auto;"></div>
@@ -64,7 +72,7 @@
                 for (var i = 0; i < data.length; i++) {
                     data[i]["chk"] = (i%2 == 0);
                 }
-                sortData(data);
+                sortDataBySerial(data);
                 buildGrid(data);
                 //buildSheet(data);
             },
@@ -75,7 +83,32 @@
         });
     });
 
-    function sortData(data) {
+    function buildTreeData(data) {
+        //
+    }
+
+    function sortByCustId(data, IdStr, IdVal) {
+        //
+    }
+
+    function billOperation(opr) {
+        switch (opr) {
+            case  'insert':
+                break;
+            case  'remove':
+                break;
+            case  'upgrade':
+                break;
+            case  'downgrade':
+                break;
+            case  'moveup':
+                break;
+            case  'movedown':
+                break;
+        }
+    }
+
+    function sortDataBySerial(data) {
         data.sort(function(item1, item2) {
             var rst = 0;
             if (item1["SerialNo"] > item2["SerialNo"]) {
@@ -92,12 +125,18 @@
                 {
                     autoGenerateColumns: false,
                     columns: [
-                        { header: '项目节', name: "", binding: 'FullCode', allowSorting: false, width: 160 },
+                        { header: '项目节', name: "", binding: 'Code', allowSorting: false, width: 160 },
+                        { header: '清单子目号', name: "", binding: 'B_Code', allowSorting: false, width: 160 },
                         { header: '名称', name: "", binding: 'Name', allowSorting: false, width: 380 },
                         { header: '单位', name: "", binding: 'Units', allowSorting: false, align: 'Center', width: 100 },
-                        { header: '数量', name: "", binding: 'Quantity', allowSorting: false, align: 'Right', width: 100 },
-                        { header: '备注', name: "", binding: "Memostr", allowSorting: false, width: 300 },
-                        { header: ' ', name: "button", binding: "button", allowSorting: false, width: 100 },
+                        { header: '清单数量', name: "", binding: 'Quantity', allowSorting: false, align: 'Right', width: 100 },
+                        { header: '设计数量1', name: "", binding: 'DesignQuantity', allowSorting: false, align: 'Right', width: 100 },
+                        { header: '设计数量2', name: "", binding: 'DesignQuantity2', allowSorting: false, align: 'Right', width: 100 },
+                        { header: '清单单价', name: "", binding: 'UnitPrice', allowSorting: false, align: 'Right', width: 100 },
+                        { header: '经济指标', name: "", binding: "DesignPrice", allowSorting: false, width: 100 },
+                        { header: '金额', name: "", binding: "TotalPrice", allowSorting: false, width: 100 },
+                        { header: '备注', name: "", binding: "Memostr", allowSorting: false, width: 200 },
+                        //{ header: ' ', name: "button", binding: "button", allowSorting: false, width: 100 },
                         { header: ' ', name: "check", binding: "chk", allowSorting: false, width: 100 }
                     ]
                 }
@@ -105,20 +144,19 @@
         grid.itemsSource = data;
         grid.itemFormatter = function(panel, r, c, cell) {
             if (wijmo.grid.CellType.Cell == panel.cellType) {
-                // "ColumnHeader" "RowHeader"
-                var html = '<div>' +
-                        '  ' +
-                        '<button class="btn btn-default btn-sm" onclick="editRow(' + r + ' )">' +
-                        '<span class="glyphicon glyphicon-pencil"></span> Edit' +
-                        '</button>' +
-                        '</div>';
                 var col = panel.columns[c];
                 if (col.name == 'button') {
+                    var html = '<div>' +
+                            '  ' +
+                            '<button class="btn btn-default btn-sm" onclick="editRow(' + r + ' )">' +
+                            '<span class="glyphicon glyphicon-pencil"></span> Edit' +
+                            '</button>' +
+                            '</div>';
                     cell.innerHTML = html;
                 }
             } else if (wijmo.grid.CellType.ColumnHeader == panel.cellType) {
                 cell.style["text-align"] = "center";
-                cell.onclick = function(){alert('Hey! You click this column: ' + panel.columns[c].header)}
+                cell.onclick = function() {selectCol(grid, c)};
             } else if (wijmo.grid.CellType.RowHeader == panel.cellType) {
                 cell.innerHTML = r + 1;
                 cell.style["font-weight"] = "normal";
@@ -129,7 +167,13 @@
     }
 
     function editRow(row) {
-        alert('Editing...');
+        alert(colHeaders.length);
+    }
+
+    function selectCol(grid, colIdx) {
+        if (grid.rows.length > 0) {
+            grid.selection = new wijmo.grid.CellRange(0, colIdx, grid.rows.length - 1, colIdx);
+        }
     }
 
     function buildSheet(sheetData) {