ソースを参照

1. 大司空接口调整
2. 功能设置相关

MaiXinRong 5 ヶ月 前
コミット
c502132d13
3 ファイル変更55 行追加24 行削除
  1. 1 1
      app/lib/dsk.js
  2. 1 1
      app/middleware/sub_project_check.js
  3. 53 22
      app/public/js/shares/dsk.js

+ 1 - 1
app/lib/dsk.js

@@ -71,7 +71,7 @@ class DSK {
     }
 
     async getCompilation() {
-        const validName = ['全国公路(2018)', '广东公路(2018)', '浙江公路(2025)'];
+        const validName = ['全国公路(2018)', '广东公路(2018)', '浙江公路(2025)', '重庆建设(2018)', '广东建设(2018)'];
         const url = this.url + 'api/compilation/external/list';
         const postData = {};
         const result = this.dealWith(await this.ctx.helper.sendRequest(url, postData, 'GET', 'json', true));

+ 1 - 1
app/middleware/sub_project_check.js

@@ -30,7 +30,7 @@ module.exports = options => {
             // 解析属性并加载默认值
             this.subProject.page_show = this.service.subProject.getPageShow(this.subProject.page_show);
             this.subProject.fun_set = this.service.subProject.getFunSet(this.subProject.fun_set);
-            this.subProject.fun_rela = this.service.subProject.getFunRela(this.subProject.fun_rela);
+            this.subProject.fun_rela = this.service.subProject.getFunRela(this.subProject);
 
             if (this.session.sessionUser.is_admin) {
                 this.subProject.readOnly = false;

+ 53 - 22
app/public/js/shares/dsk.js

@@ -7,23 +7,51 @@ const dsk = (function () {
         { key: 'item', value: 3, name: '单项工程' },
         { key: 'unit', value: 4, name: '单位工程' },
     ];
-    const DefaultFileType = [
-        { key: 'submission', value: 1, name: '投标' },
-        { key: 'invitation', value: 2, name: '招标/预算' },
-        { key: 'control', value: 3, name: '控制价' },
-        { key: 'change_budget', value: 4, name: '变更预算' },
-        { key: 'estimate', value: 5, name: '概算' },
-        { key: 'settlement', value: 10, name: '结算' },
-        { key: 'gusuan', value: 15, name: '估算(可行性估算)' },
-        { key: 'suggest_gusuan', value: 16, name: '建议估算' },
-        { key: 'three_bill_budget', value: 18, name: '三级清单预算' },
-        { key: 'bills_budget', value: 19, name: '清单预算' },
-    ];
+    const FileType = {
+        default: [
+            { key: 'submission', value: 1, name: '投标' },
+            { key: 'invitation', value: 2, name: '招标/预算' },
+            { key: 'control', value: 3, name: '控制价' },
+            { key: 'change_budget', value: 4, name: '变更预算' },
+            { key: 'estimate', value: 5, name: '概算' },
+            { key: 'settlement', value: 10, name: '结算' },
+            { key: 'gusuan', value: 15, name: '估算(可行性估算)' },
+            { key: 'suggest_gusuan', value: 16, name: '建议估算' },
+            { key: 'three_bill_budget', value: 18, name: '三级清单预算' },
+            { key: 'bills_budget', value: 19, name: '清单预算' },
+        ],
+        gl: [
+            { key: 'submission', value: 1, name: '' },
+            { key: 'invitation', value: 2, name: '施工图预算' },
+            { key: 'control', value: 3, name: '' },
+            { key: 'change_budget', value: 4, name: '变更清单预算' },
+            { key: 'estimate', value: 5, name: '设计概算' },
+            { key: 'settlement', value: 10, name: '结算' },
+            { key: 'gusuan', value: 15, name: '可行性估算' },
+            { key: 'suggest_gusuan', value: 16, name: '建议估算' },
+            { key: 'three_bill_budget', value: 18, name: '分项清单预算' },
+            { key: 'bills_budget', value: 19, name: '工程量清单预算' },
+        ],
+        js: [
+            { key: 'submission', value: 1, name: '预算' },
+            { key: 'invitation', value: 2, name: '' },
+            { key: 'control', value: 3, name: '' },
+            { key: 'change_budget', value: 4, name: '变更清单预算' },
+            { key: 'estimate', value: 5, name: '概算' },
+            { key: 'settlement', value: 10, name: '结算' },
+            { key: 'gusuan', value: 15, name: '估算' },
+            { key: 'suggest_gusuan', value: 16, name: '' },
+            { key: 'three_bill_budget', value: 18, name: '' },
+            { key: 'bills_budget', value: 19, name: '' },
+        ]
+    };
     // todo 每个编办下,文件类型对应的值不同,待需求整理数据
     const CompilationFileType = [
-        { compliationId: '5de61133d46f6f000d15d347', name: '全国公路(2018)', fileType: DefaultFileType },
-        { compliationId: '63f31fe113566500140e4902', name: '广东公路(2018)', fileType: DefaultFileType },
-        { compliationId: '66b1f3f6ad66620013c13883', name: '浙江公路(2025)', fileType: DefaultFileType },
+        { compliationId: '5de61133d46f6f000d15d347', name: '全国公路(2018)', fileType: FileType.gl },
+        { compliationId: '63f31fe113566500140e4902', name: '广东公路(2018)', fileType: FileType.gl },
+        { compliationId: '66b1f3f6ad66620013c13883', name: '浙江公路(2025)', fileType: FileType.gl },
+        { compliationId: '5b52b027fd3bb0000b257cf8', name: '重庆建设(2018)', fileType: FileType.js },
+        { compliationId: '5c66649650da2d000d8d37ba', name: '广东建设(2018)', fileType: FileType.js },
     ];
     const projectTypeKey = (function(arr) {
         const result = {};
@@ -137,7 +165,13 @@ const dsk = (function () {
             if (!this.compliation) {
                 this.compliation = await loadCompilation();
                 for (const c of this.compliation) {
+                    const cft = CompilationFileType.find(x => { return x.compliationId === c.ID; });
+                    const FileType = cft ? cft.fileType : FileType.default;
                     c.project = await loadProject(c.ID);
+                    for (const p of c.project) {
+                        const pftype = p.property && p.property.fileType ? FileType.find(x => { return x.value === p.property.fileType; }) : null;
+                        p.file_type_str = pftype ? pftype.name : '';
+                    }
                 }
             }
 
@@ -165,11 +199,8 @@ const dsk = (function () {
                 if (data.type === projectTypeKey.project) {
                     cur = parent;
                 } else {
-                    console.log(data);
                     const type = projectType.find(x => { return x.value === data.type; });
-                    const FileType = CompilationFileType.find(x => { return x.compliationId === compilation.ID; }) || DefaultFileType;
-                    const pftype = data.property && data.property.file_type ? FileType.find(x => { return x.value === data.file_type; }) : null;
-                    const node = { type: type.value, type_str: type.name, file_type_str: pftype ? pftype.name : '', dsk_id: data.ID, name: data.name, project_id: project.ID, compilation_id: compilation.ID };
+                    const node = { type: type.value, type_str: type.name, dsk_id: data.ID, name: data.name, project_id: project.ID, compilation_id: compilation.ID };
                     cur = subjectTree.addNode(node, parent);
                 }
                 if (data.children) {
@@ -180,7 +211,7 @@ const dsk = (function () {
             };
             const loadTempTreeNode = function (data, parent) {
                 const type = projectType.find(x => { return x.value === data.type; });
-                const node = { type: type.value, type_str: type.name, dsk_id: data.ID, name: data.name, compilation_id: compilation.ID };
+                const node = { type: type.value, type_str: type.name, file_type_str: data.file_type_str, dsk_id: data.ID, name: data.name, compilation_id: compilation.ID };
                 const cur = subjectTree.addNode(node, parent);
                 if (data.children) {
                     data.children.forEach(c => {
@@ -256,8 +287,8 @@ const dsk = (function () {
             SpreadJsObj.initSheet(this.subjectSheet, {
                 cols: [
                     {title: '选择', field: 'selected', hAlign: 1, width: 60, formatter: '@', cellType: 'checkbox'},
-                    {title: '项目/分段名称', field: 'name', hAlign: 0, width: 660, formatter: '@', cellType: 'tree'},
-                    {title: '项目类型', field: 'file_type_str', hAlign: 1, width: 80, formatter: '@' },
+                    {title: '项目/分段名称', field: 'name', hAlign: 0, width: 640, formatter: '@', cellType: 'tree'},
+                    {title: '项目类型', field: 'file_type_str', hAlign: 1, width: 100, formatter: '@' },
                     {title: '类型', field: 'type_str', hAlign: 1, width: 80, formatter: '@' },
                 ],
                 emptyRows: 0,