123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 'use strict';
- /**
- *
- *
- * @author Mai
- * @date
- * @version
- */
- const Tender2Tree = (function () {
- const treeSetting = {
- id: 'tmt_id',
- pid: 'tmt_pid',
- order: 'sort',
- level: 'level',
- rootId: -1,
- fullPath: 'full_path',
- };
- const tenderTree = createNewPathTree('gather', treeSetting);
- // 查询方法
- function findNode (key, value, arr) {
- for (const a of arr) {
- if (a[key] && a[key] === value) {
- return a;
- }
- }
- }
- function findCategoryTreeNode(cid, value, array) {
- for (const a of array) {
- if (a.cid === cid && a.vid === value) {
- return a;
- }
- }
- }
- function getCategoryTreeNode (category, value, parent) {
- const array = parent ? parent.children : tenderTree.children;
- let cate = findCategoryTreeNode(category.id, value, array);
- if (!cate) {
- const cateValue = findNode('id', value, category.value);
- if (!cateValue) return null;
- cate = tenderTree.addNode({
- cid: category.id,
- vid: value,
- name: cateValue.value,
- }, parent);
- if (cateValue.sort) cate.sort = cateValue.sort;
- }
- return cate;
- }
- function loadCategoryTreeNode (category, tender, levelCate) {
- let tenderCategory = null;
- for (const [i, lc] of levelCate.entries()) {
- const tenderCate = findNode('cid', lc.id, tender.category);
- if (tenderCate) {
- tenderCategory = getCategoryTreeNode(lc, tenderCate.value, tenderCategory);
- } else {
- if (i === 0 && tender.category) {
- for (const [j, c] of tender.category.entries()) {
- const cate = findNode('id', c.cid, category);
- tenderCategory = getCategoryTreeNode(cate, c.value, tenderCategory);
- }
- }
- return tenderCategory;
- }
- }
- return tenderCategory;
- }
- function convert (category, tenders, ledgerAuditConst, stageAuditConst, loadFun) {
- tenderTree.clearDatas();
- const levelCategory = category.filter(function (c) {
- return c.level && c.level > 0;
- });
- for (const t of tenders) {
- const parent = (t.category && levelCategory.length > 0) ? loadCategoryTreeNode(category, t, levelCategory) : null;
- const node = {
- tid: t.id,
- name: t.name,
- phase: t.lastStage ? '第' + t.lastStage.order + '期' : '台账',
- stageCount: t.lastStage ? t.lastStage.order : 0,
- measure_type: t.measure_type,
- };
- if (ledgerAuditConst && stageAuditConst) {
- node.status = t.lastStage ? stageAuditConst.statusString[t.lastStage.status] : ledgerAuditConst.statusString[t.ledger_status];
- }
- if (loadFun) loadFun(node, t);
- tenderTree.addNode(node, parent);
- }
- tenderTree.sortTreeNode(true);
- return tenderTree;
- }
- return { convert }
- })();
|