|  | @@ -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,
 |