Browse Source

1. 调整顶部菜单结构
2. 启动gzip压缩
3. 增加postData等待时长

MaiXinRong 5 years ago
parent
commit
732f713155

+ 1 - 1
app/public/js/global.js

@@ -128,7 +128,7 @@ const postData = function (url, data, successCallback, errorCallBack) {
         data: {'data': JSON.stringify(data)},
         dataType: 'json',
         cache: false,
-        timeout: 5000,
+        timeout: 40000,
         beforeSend: function(xhr) {
             let csrfToken = Cookies.get('csrfToken');
             xhr.setRequestHeader('x-csrf-token', csrfToken);

+ 20 - 8
app/public/js/ledger.js

@@ -82,6 +82,7 @@ $(document).ready(function() {
             const preNode = tree.getPreSiblingNode(node);
             const valid = !sheet.zh_setting.readOnly;
 
+            setObjEnable($('#insert'), valid);
             setObjEnable($('#delete'), valid && node);
             setObjEnable($('#up-move'), valid && node && preNode);
             setObjEnable($('#down-move'), valid && node && !tree.isLastSibling(node));
@@ -94,6 +95,8 @@ $(document).ready(function() {
                 setObjEnable($('#up-level'), valid && node && tree.getParent(node));
                 setObjEnable($('#down-level'), valid && node && preNode);
             }
+            setObjEnable($('#cut'), valid);
+            setObjEnable($('#paste'), valid);
         },
         refreshTree: function (sheet, data) {
             SpreadJsObj.massOperationSheet(sheet, function () {
@@ -511,6 +514,9 @@ $(document).ready(function() {
         });
 
         // 绑定 删除等 顶部按钮
+        $('#insert').click(() => {
+            treeOperationObj.addNode(ledgerSpread);
+        });
         $('#delete').click(function () {
             treeOperationObj.deleteNode(ledgerSpread);
         });
@@ -657,7 +663,11 @@ $(document).ready(function() {
                 }
             }
         });
+    } else {
+        SpreadJsObj.forbiddenSpreadContextMenu('#ledger-spread', ledgerSpread);
     }
+    SpreadJsObj.forbiddenSpreadContextMenu('#pos-spread', posSpread);
+
     treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet());
 
     const posSearch = (function () {
@@ -1054,7 +1064,7 @@ $(document).ready(function() {
             showSideTools(tab.hasClass('active'));
             if (tab.attr('content') === '#std-chapter') {
                 if (!stdChapter) {
-                    stdChapter = new stdLib($('#std-chapter-spread')[0], 'chapter', {
+                    stdChapter = new stdLib('#std-chapter-spread', 'chapter', {
                         id: 'chapter_id',
                         pid: 'pid',
                         order: 'order',
@@ -1078,7 +1088,7 @@ $(document).ready(function() {
                 stdChapter.spread.refresh();
             } else if (tab.attr('content') === '#std-bills') {
                 if (!stdBills) {
-                    stdBills = new stdLib($('#std-bills-spread')[0], 'bills', {
+                    stdBills = new stdLib('#std-bills-spread', 'bills', {
                         id: 'bill_id',
                         pid: 'pid',
                         order: 'order',
@@ -1102,7 +1112,7 @@ $(document).ready(function() {
                 stdBills.spread.refresh();
             } else if (tab.attr('content') === '#deal-bills') {
                 if (!dealBills) {
-                    dealBills = new DealBills($('#deal-bills-spread')[0], {
+                    dealBills = new DealBills('#deal-bills-spread', {
                         cols: [
                             {title: '清单编号', field: 'code', hAlign: 0, width: 120, formatter: '@', readOnly: true},
                             {title: '名称', field: 'name', hAlign: 0, width: 230, formatter: '@', readOnly: true},
@@ -1150,14 +1160,15 @@ $(document).ready(function() {
     });
 
     class stdLib {
-        constructor(obj, stdType, treeSetting, spreadSetting) {
-            this.obj = obj;
+        constructor(selector, stdType, treeSetting, spreadSetting) {
+            this.obj = $(selector)[0];
             this.url = '/std/' + stdType;
             this.treeSetting = treeSetting;
             treeSetting.preUrl = this.url;
             this.spreadSetting = spreadSetting;
             this.spread = SpreadJsObj.createNewSpread(this.obj);
             SpreadJsObj.initSheet(this.spread.getActiveSheet(), this.spreadSetting);
+            SpreadJsObj.forbiddenSpreadContextMenu(selector, this.spread);
             this.spread.getActiveSheet().bind(GC.Spread.Sheets.Events.CellDoubleClick, function (e, info) {
                 const stdSheet = info.sheet;
                 const mainSheet = ledgerSpread.getActiveSheet();
@@ -1191,9 +1202,9 @@ $(document).ready(function() {
         }
     }
     class DealBills {
-        constructor (obj, spreadSetting) {
+        constructor (selector, spreadSetting) {
             const self = this;
-            this.obj = obj;
+            this.obj = $(selector)[0];
             this.url = '/tender/' + getTenderId() + '/deal';
             this.spreadSetting = spreadSetting;
             this.spread = SpreadJsObj.createNewSpread(this.obj);
@@ -1226,6 +1237,7 @@ $(document).ready(function() {
                     treeOperationObj.refreshOperationValid(mainSheet);
                 });
             });
+            SpreadJsObj.forbiddenSpreadContextMenu(selector, this.spread);
             $('#upload-deal-bills').click(function () {
                 const file = $('#deal-bills-file')[0];
                 const formData = new FormData();
@@ -1429,7 +1441,7 @@ $(document).ready(function() {
             this.spreadSetting = spreadSetting;
             this.spread = SpreadJsObj.createNewSpread($('#search-result', this.obj)[0]);
             SpreadJsObj.initSheet(this.spread.getActiveSheet(), this.spreadSetting);
-
+            SpreadJsObj.forbiddenSpreadContextMenu('#search-result', this.spread);
             $('#searchLedger', this.obj).bind('click', function () {
                 const keyword = $('input', self.obj).val();
                 this.searchResult = [];

+ 14 - 0
app/public/js/spreadjs_rela/spreadjs_zh.js

@@ -196,6 +196,20 @@ const SpreadJsObj = {
         return target;
     },
     /**
+     * 禁用右键菜单
+     * @param selector
+     * @param spread
+     */
+    forbiddenSpreadContextMenu: function (selector, spread) {
+        $.contextMenu({
+            selector: selector,
+            build: function ($trigger, e) {
+                const target = SpreadJsObj.safeRightClickSelection($trigger, e, spread);
+                return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
+            }
+        });
+    },
+    /**
      * 获取写入sheet的数据序列
      * data:sheet.zh_data, tree: sheet.zh_tree.nodes
      * @param sheet

+ 9 - 18
app/view/ledger/explode.ejs

@@ -20,24 +20,15 @@
                     </div>
                 </div>
                 <div class="d-inline-block">
-                    <a href="javascript:void(0)" id="insert" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="插入"><i class="fa fa-sign-in" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="copy" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="cut" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="paste" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="delete" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="up-level" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="升级"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="down-level" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="down-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="up-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
-                       data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="insert" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-plus" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="delete" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="up-level" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="升级"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="down-level" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="down-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="up-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="copy" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="cut" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
+                    <a href="javascript:void(0)" id="paste" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
                 </div>
                 <div class="d-inline-block">
                     <div class="input-group input-group-sm ml-2 mt-1">

+ 26 - 8
app/view/ledger/revise_info.ejs

@@ -1,22 +1,38 @@
 <% include ../tender/tender_sub_menu.ejs %>
 <div class="panel-content">
     <div class="panel-title">
-        <div class="title-main  d-flex justify-content-between">
+        <div class="title-main  d-flex">
             <!--工具-->
             <% if ((revise.status === audit.status.uncheck || revise.status === audit.status.checkNo) && revise.uid === ctx.session.sessionUser.accountId) { %>
             <div>
+                <div class="d-inline-block">
+                    <div class="dropdown">
+                        <button class="btn btn-sm btn-light dropdown-toggle text-primary" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            <i class="fa fa-list-ol"></i> 显示层级
+                        </button>
+                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                            <a class="dropdown-item" name="showLevel" tag="1" href="javascirpt: void(0);">第一层</a>
+                            <a class="dropdown-item" name="showLevel" tag="2" href="javascirpt: void(0);">第二层</a>
+                            <a class="dropdown-item" name="showLevel" tag="3" href="javascirpt: void(0);">第三层</a>
+                            <a class="dropdown-item" name="showLevel" tag="4" href="javascirpt: void(0);">第四层</a>
+                            <a class="dropdown-item" name="showLevel" tag="5" href="javascirpt: void(0);">第五层</a>
+                            <a class="dropdown-item" name="showLevel" tag="last" href="javascirpt: void(0);">最底层</a>
+                            <a class="dropdown-item" name="showLevel" tag="leafXmj" href="javascirpt: void(0);">只显示项目节</a>
+                        </div>
+                    </div>
+                </div>
                 <!--编制人工具-->
-                <div class="d-inline-flex">
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
+                <div class="d-inline-block">
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-plus" aria-hidden="true"></i></a>
                     <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
                     <a href="" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="升级"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
                     <a href="" class="btn btn-sm disabled" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
                     <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
                     <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
+                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
                 </div>
-
                 <div class="d-inline-block">
                     <div class="input-group input-group-sm ml-2 mt-1">
                         <div class="input-group-prepend">
@@ -137,8 +153,10 @@
 </div>
 <script>
     const readOnly = <%- readOnly %>;
+    const isTz = <%- ctx.tender.data.measure_type === measureType.tz.value %>;
+    //const info = JSON.parse(<%- JSON.stringify(ctx.tender.info) %>);
     const billsSpreadSetting = JSON.parse('<%- JSON.stringify(ledgerSpread) %>');
     const posSpreadSetting = JSON.parse('<%- JSON.stringify(posSpread) %>');
-    const bills = JSON.parse('<%- JSON.stringify(reviseBills) %>');
-    const pos = JSON.parse('<%- JSON.stringify(revisePos) %>');
+    const billsData = JSON.parse('<%- JSON.stringify(reviseBills) %>');
+    const posData = JSON.parse('<%- JSON.stringify(revisePos) %>');
 </script>

+ 1 - 1
config/config.default.js

@@ -55,7 +55,7 @@ module.exports = appInfo => {
     config.pageSize = 15;
 
     // 中间件
-    config.middleware = ['urlParse', 'sortFilter', 'autoLogger'];
+    config.middleware = ['gzip', 'urlParse', 'sortFilter', 'autoLogger'];
 
     // session配置
     config.session = {