Browse Source

参考文件

MaiXinRong 5 months ago
parent
commit
14475d62db

+ 1 - 0
app/controller/file_controller.js

@@ -63,6 +63,7 @@ module.exports = app => {
                 renderData.canUpload = ctx.subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.upload.value) >= 0;
                 renderData.canDelete = ctx.subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.delete.value) >= 0;
                 renderData.filingTypes = ctx.service.filing.analysisFilingType(renderData.filing);
+                renderData.fileReferenceList = await ctx.service.subProject.getFileReference(ctx.subProject);
                 await this.layout('file/file.ejs', renderData, 'file/file_modal.ejs');
             } catch (err) {
                 ctx.log(err);

+ 6 - 0
app/controller/standard_lib_controller.js

@@ -33,6 +33,9 @@ module.exports = app => {
                     case 'glj':
                         responseData.data = await this.ctx.service.gljLib.getData(data.list_id);
                         break;
+                    case 'reference':
+                        responseData.data = await this.ctx.service.fileReference.getData(data.list_id);
+                        break;
                     default:
                         throw '查询的标准清单不存在';
                 }
@@ -72,6 +75,9 @@ module.exports = app => {
                     case 'glj':
                         responseData.data = await this.ctx.service.gljLib.getAllDataByCondition({ where: condition });
                         break;
+                    case 'reference':
+                        responseData.data = await this.ctx.service.fileReference.getAllDataByCondition({ where: condition });
+                        break;
                     default:
                         throw '查询的标准清单不存在';
                 }

+ 39 - 2
app/public/js/file_detail.js

@@ -1,5 +1,5 @@
 $(document).ready(function() {
-    let fileSearch;
+    let fileSearch, fileReference;
     autoFlashHeight();
     $('#filing').height($(".sjs-height-0").height() - $('#add-slibing').parent().parent().height() - 10);
     class FilingObj {
@@ -1477,7 +1477,9 @@ $(document).ready(function() {
             const self = this;
             $.divResizer({
                 select: '#right-spr',
-                callback: function() {},
+                callback: function() {
+                    if (fileReference) fileReference.spread.refresh();
+                },
             });
             $('input', '#search').bind('keydown', function (e) {
                 if (e.keyCode == 13) self.search();
@@ -1557,6 +1559,41 @@ $(document).ready(function() {
             tabPanel.addClass('active');
             // $('.tab-content .tab-pane').removeClass('active');
             showSideTools(tab.hasClass('active'));
+            if (tab.attr('content') === '#reference') {
+                if (!fileReference) {
+                    fileReference = $.stdLib({
+                        selector: '#reference',
+                        stdType: 'reference',
+                        libs: fileReferenceList,
+                        treeSetting: {
+                            id: 'template_id',
+                            pid: 'pid',
+                            order: 'order',
+                            level: 'level',
+                            rootId: -1,
+                            keys: ['id', 'list_id', 'template_id'],
+                        },
+                        spreadSetting: {
+                            cols: [
+                                {title: '名称', field: 'name', hAlign: 0, width: 300, formatter: '@', cellType: 'tree', wordWrap: true},
+                                {title: '备注', field: 'remark', hAlign: 1, width: 150, formatter: '@', wordWrap: true}
+                            ],
+                            treeCol: 0,
+                            emptyRows: 0,
+                            headRows: 1,
+                            headRowHeight: [32],
+                            defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
+                            headColWidth: [30],
+                            selectedBackColor: '#fffacd',
+                            readOnly: true,
+                        },
+                        page: 'ledger',
+                    });
+                }
+                fileReference.spread.refresh();
+            }
         } else { // 收起工具栏
             tab.removeClass('active');
             tabPanel.removeClass('active');

+ 39 - 0
app/service/file_reference.js

@@ -0,0 +1,39 @@
+'use strict';
+
+/**
+ * 标准项目节业务逻辑
+ *
+ * @author Mai
+ * @date 2018/3/13
+ * @version
+ */
+
+const StandardLib = require('./standard_lib');
+module.exports = app => {
+
+    class FileReference extends StandardLib {
+
+        /**
+         * 构造函数
+         *
+         * @param {Object} ctx - egg全局变量
+         * @return {void}
+         */
+        constructor(ctx) {
+            super(ctx, {
+                mid: 'list_id',
+                kid: 'template_id',
+                pid: 'pid',
+                order: 'order',
+                level: 'level',
+                isLeaf: 'is_leaf',
+                fullPath: 'full_path',
+                keyPre: 'file_reference_maxLid:'
+            }, 'file_reference');
+            this.stdType = 'reference';
+        }
+
+    }
+
+    return FileReference;
+};

+ 4 - 0
app/service/sub_project.js

@@ -505,6 +505,10 @@ module.exports = app => {
             });
             return this._filterEmptyFolder(result);
         }
+
+        async getFileReference(subProject) {
+            return await this.db.query(`SELECT id, name FROM zh_file_reference_list`);
+        };
     }
 
     return SubProject;

+ 6 - 0
app/view/file/file.ejs

@@ -88,6 +88,8 @@
                             </table>
                         </div>
                     </div>
+                    <div id="reference" class="tab-pane tab-select-show">
+                    </div>
                 </div>
             </div>
         </div>
@@ -97,6 +99,9 @@
                 <li>
                     <a class="nav-link" content="#search" href="javascript: void(0);">查找定位</a>
                 </li>
+                <li>
+                    <a class="nav-link" content="#reference" href="javascript: void(0);">参考文件</a>
+                </li>
             </ul>
         </div>
     </div>
@@ -107,4 +112,5 @@
     const category = JSON.parse(unescape('<%- escape(JSON.stringify(categoryData)) %>'));
     const whiteList = JSON.parse('<%- JSON.stringify(ctx.app.config.multipart.whitelist) %>');
     const canDelete = <%- canDelete %>;
+    const fileReferenceList = JSON.parse('<%- JSON.stringify(fileReferenceList) %>');
 </script>

+ 3 - 0
config/web.js

@@ -1294,12 +1294,15 @@ const JsFiles = {
                     '/public/js/axios/axios.min.js', '/public/js/file-saver/FileSaver.js', '/public/js/js-xlsx/jszip.min.js',
                     '/public/js/moment/moment.min.js', '/public/js/ztree/jquery.ztree.core.js', '/public/js/ztree/jquery.ztree.exedit.js',
                     '/public/js/shares/aliyun-oss-sdk.min.js',
+                    '/public/js/spreadjs/sheets/v11/gc.spread.sheets.all.11.2.2.min.js',
                 ],
                 mergeFiles: [
                     '/public/js/div_resizer.js',
                     '/public/js/shares/ali_oss.js',
                     '/public/js/shares/drag_tree.js',
                     '/public/js/path_tree.js',
+                    '/public/js/spreadjs_rela/spreadjs_zh.js',
+                    '/public/js/shares/cs_tools.js',
                     '/public/js/shares/tenders2tree.js',
                     '/public/js/file_detail.js',
                 ],