| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730 | /** * Created by Zhong on 2017/10/30. */let gcTree = null;let decDate = null;//恢复后的名称后缀(时间+恢复)//恢复路径t = tender, e = engineering, p = projectconst recPath = {t: 'T', t_e: 'T_E', t_e_p: 'T_E_P', e: 'E', e_p: 'E_P', p: 'P'};let gcTreeSetting = {    tree: {        id: 'ID',        pid: 'ParentID',        nid: 'NextSiblingID',        btnColumn: 1,        nullId: -1    },    columns: [        {            head: '',            data: '',            width: '40',            event: {}        },        {            head: '工程列表',            data: 'name',            width: '50%',            event: {                getText: function (html, node, text) {                    let className = '';                    switch (node.data.projType) {                        case projectType.folder:                            className = "fa fa-folder-open-o";                            break;                        case projectType.tender:                            className = "fa fa-sticky-note-o";                            break;                        case projectType.project:                            className = "fa fa-cubes";                            break;                        case projectType.engineering:                            className = "fa fa-cube";                            break;                    }                    let icon = '<i class ="tree-icon '+ className +'"></i>';                    html.push(icon, ' ', text);                },                getIcon: function (html, node) {                    if (node.data.projType === projectType.tender) {                        html.push('<span class="poj-icon">└</span>');                    }                }            }        },        {            head: '删除日期',            data: 'deleteDateTime',            width: '10%',            event: {                getText: function (html, node, text) {                    if (node.data.projType === projectType.tender) {                        if(deleted(node)){                            let localDateTime = new Date(node.data.deleteInfo.deleteDateTime).toLocaleDateString();                            html.push(new Date(localDateTime).Format('yyyy-MM-dd'));                        }                        else{                            html.push('');                        }                    }                }            }        },        {            head: '创建日期',            data: 'createDateTime',            width: '10%',            event: {                getText: function (html, node, text) {                    if (node.data.projType === projectType.tender) {                        if(deleted(node)){                            let localDateTime = new Date(text).toLocaleDateString();                            html.push(new Date(localDateTime).Format('yyyy-MM-dd'));                        }                        else{                            html.push('');                        }                    }                }            }        },        {            head: '恢复',            data: 'recovery',            width: '10%',            event: {                getText: function (html, node, text) {                    if(node.data.projType === projectType.project && deleted(node)){                        html.push('<a href="javascript:void(0);" data-toggle="modal" data-target="#rePoj">恢复</a>');                    }                    else if(node.data.projType === projectType.engineering && deleted(node)){                        html.push('<a href="javascript:void(0);" data-toggle="modal" data-target="#rePoj">恢复</a>');                    }                    else if(node.data.projType === projectType.tender && deleted(node)){                        html.push('<a href="javascript:void(0);" data-toggle="modal" data-target="#rePoj">恢复</a>');                    }                    else {                        html.push('');                    }                },                tdBindEvent: function(td, node){                    $('a:eq(0)' ,td).bind('click', function () {                        let tenderNodes = m_getTenders(node);                        $('#rePoj .modal-header').empty();                        $('p', '#rePoj .modal-body').remove();                        $('#rePoj .modal-header').html(v_getTitle(node));                        $('#rePoj .modal-body').html(v_getMoBody(node, tenderNodes));                    });                }            }        },        {            head: '单价文件',            data: 'unitPriceFiles',            width: '10%',            event: {                getText: function (html, node, text) {                    if(node.data.projType === projectType.project && node.data.unitPriceFiles !== undefined && node.data.unitPriceFiles.length > 0){                        html.push('<a href="javascript:void(0);" data-toggle="modal" data-target="#reFile">恢复</a>');                    }                },                tdBindEvent: function (td, node) {                    $('a:eq(0)', td).bind('click', function () {                        let unitPriceFiles = node.data.unitPriceFiles;                        $('#reFile h5').text('恢复单价文件');                        $('tr', '#reFile tbody').remove();                        $('#reFile tbody').html(v_getFiles(fileType.unitPriceFile, unitPriceFiles));                    });                }            }        },        {            head: '费率文件',            data: 'feeRateFiles',            width: '10%',            event: {                getText: function (html, node, text) {                    if(node.data.projType === projectType.project && node.data.feeRateFiles !== undefined && node.data.feeRateFiles.length > 0){                        html.push('<a href="javascript:void(0);" data-toggle="modal" data-target="#reFile">恢复</a>');                    }                },                tdBindEvent: function (td, node) {                    $('a:eq(0)', td).bind('click', function () {                        let feeRateFiles = node.data.feeRateFiles;                       $('#reFile h5').text('恢复费率文件');                        $('tr', '#reFile tbody').remove();                        $('#reFile tbody').html(v_getFiles(fileType.feeRateFile, feeRateFiles));                    });                }            }        }    ]};$(document).ready(function () {    $('#tab_pm_gc').on('show.bs.tab', function () {        //侧滑隐藏        $('.slide-sidebar').removeClass('open');        $('.slide-sidebar').css('width', '0');        $('#gc_waiting').show();        gc_init();        Tree = null;    });    e_recFiles($('#reFileBtn'));    e_recProj($('#rePojBtn'));});function gc_init(){    let table = $('#gcTree');    $('thead', table).remove();    $('tbody', table).remove();    a_getGC(function (datas) {        m_buildVirtualTree(datas);        let normalDatas = m_VTreeToDatas(datas);        gcTree = $.fn.treeTable.init(table, gcTreeSetting, normalDatas);        $('#gc_waiting').hide();    });}//项目恢复模态框标题function v_getTitle(node){    let html = '';    html += '<h5 class="modal-title">恢复 ';    if(node.data.projType === projectType.project){        html += '<i class="fa fa-cubes"></i>建设项目</h5>';    }    else if(node.data.projType === projectType.engineering){        html += '<i class="fa fa-cube"></i>单项工程</h5>';    }    else if(node.data.projType === projectType.tender){        html += '<i class="fa fa-sticky-note-o"></i>单位工程</h5>';    }    html += '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>';    return html;}//项目恢复模态框主体function v_getMoBody(oprNode, nodes){    let html = '';    if(oprNode.data.projType === projectType.tender){        decDate = '(' + new Date().Format('MM-dd hh:mm:ss') + '恢复)';        let recName = oprNode.data.name + decDate;        html += '<p>恢复后将重命名为 <b>' + recName + '</b></p>';    }    else {        if(oprNode.data.projType === projectType.project){            html += '<p><i class="fa fa-cubes"></i> ' + oprNode.data.name + '下的单位工程都将恢复都将恢复,恢复后将重命名为</p>';        }        else if(oprNode.data.projType === projectType.engineering){            html += '<p><i class="fa fa-cube"></i> ' + oprNode.data.name + '下的单位工程都将恢复都将恢复,恢复后将重命名为</p>';        }        html += ('<p>');        for(let i = 0, len = nodes.length; i < len; i++){            let recName = nodes[i].data.name + '(' + new Date().Format('MM-dd hh:mm:ss') +'恢复)';            html += '<b>' + recName + '</b>、';        }        html = html.slice(0, html.length - 1);        html += ('</p>');    }    html += ('<p>点“确定”按钮,确认从回收站中恢复</p>');    return html;}//单价、费率文件恢复弹出框数据function v_getFiles(type, files){    let html = '';    for(let i = 0, len = files.length; i < len; i ++){        let recName = type === fileType.unitPriceFile ?  files[i].name + '单价文件' : files[i].name + '费率文件';        let fileId = type === fileType.unitPriceFile ? files[i].id : files[i].ID;        let recTimeA = formatDate(new Date(files[i].deleteInfo.deleteDateTime), 'yyyy-MM-dd');        let recTimeB = formatDate(new Date(files[i].deleteInfo.deleteDateTime), 'HH:mm:ss');        html += '<tr><td>'+ recName +'</td><td>' + recTimeA + '<br>' + recTimeB + '</td><td><input name="fileItems" type="checkbox" fileId = "' + fileId + '" fileType = "' + type + '"></td></tr>';    }    return html;}//恢复单价、费率文件后前端显示变化function v_recFiles(project, fileIds, type){    let projFiles;    if(type === fileType.unitPriceFile){        projFiles = project.data.unitPriceFiles;    }    else if(type === fileType.feeRateFile){        projFiles = project.data.feeRateFiles;    }    if(projFiles && projFiles.length > 0){        let tempFiles = [];        for(let i = 0, len = projFiles.length; i < len; i++){            let isExist = false;            for(let j = 0, jLen = fileIds.length; j < jLen; j++){                let id = projFiles[i].id || projFiles[i].ID || null;                if(id && id === fileIds[j]){                    isExist = true;                    break;                }            }            if(!isExist){                tempFiles.push(projFiles[i]);            }        }        if(type === fileType.unitPriceFile){            project.data.unitPriceFiles = tempFiles;        }        else if(type === fileType.feeRateFile){           project.data.feeRateFiles = tempFiles;        }    }}function v_removeNode(node){    gcTree.removeNode(node);    let parent = node.parent || null;    if(parent && parent.children.length === 0 && parent.data !== undefined){        if(parent.data.projType === projectType.project && fileEmpty(parent)){            v_removeNode(parent);        }        else if(parent.data.projType !== projectType.project){            v_removeNode(parent);        }    }}function v_refreshNode(node){    if(deleted(node)){        delete node.data.deleteInfo;    }    gcTree.refreshNodesDom([node]);    let parent = node.parent || null;    if(parent && parent.data !== undefined){        v_refreshNode(parent);    }}//将获取的回收站中的数据建虚拟树function m_buildVirtualTree(datas){    for(let i = 0, len = datas.length; i < len; i++){        if(datas[i].projType === projectType.project){            datas[i].ParentID = -1;        }        let children = datas[i].children || null;        if(children){            m_buildVirtualTree(children);        }        let next = datas[i+1] || null;        if(next){            datas[i].NextSiblingID = next.ID;        }        else {            datas[i].NextSiblingID = -1;        }    }}function m_VTreeToDatas(datas){    let rst = [];    let projs = datas;    rst = rst.concat(projs);    for(let i = 0, len = projs.length; i < len; i++){        let p_engs = projs[i].children || null;        if(p_engs){            rst = rst.concat(p_engs);            for(let j = 0, jLen = p_engs.length; j < jLen; j ++){                let e_tenders = p_engs[j].children || null;                if(e_tenders){                    rst = rst.concat(e_tenders);                }            }        }    }    return rst;}//获得当前节点的tenders数据,模态提示框用function m_getTenders(node){    if(node.data.projType === projectType.tender) return [node];    else {        let rst = [];        if(node.children.length > 0){            node.children.forEach(function (cNode) {                if(cNode.children.length > 0){                    cNode.children.forEach(function (ccNode) {                       if(ccNode.data.projType === projectType.tender) rst.push(ccNode);                    });                }                else if(cNode.children.length === 0 && cNode.data.projType === projectType.tender){                    rst.push(cNode);                }            });        }        return rst;    }}//获得要更新的数据(包含恢复的数据,维护项目管理树的数据)function m_getRecDatas(oprNode){    let rst = Object.create(null);    let rstProj = [], rstFile = [];    let path;    if(oprNode.data.projType === projectType.tender){        path = recPath.t;        let engineering = oprNode.parent || null;        if(!engineering) return null;        let project = engineering.parent || null;        if(!project) return null;        if(engineering && deleted(engineering)){            path = recPath.t_e;        }        //恢复建设项目        if(project && deleted(project)){            path = recPath.t_e_p;        }        //恢复单价、费率文件        rstFile = rstFile.concat(getUpdateFiles([oprNode], project));        if(path === recPath.t){            rstProj = rstProj.concat(getUpdateDatas(projectType.tender, oprNode, true, true));        }        else if(path === recPath.t_e){            rstProj = rstProj.concat(getUpdateDatas(projectType.tender, oprNode, true, false));            rstProj = rstProj.concat(getUpdateDatas(projectType.engineering, engineering, true, true));        }        else if(path === recPath.t_e_p){            rstProj = rstProj.concat(getUpdateDatas(projectType.tender, oprNode, true, false));            rstProj = rstProj.concat(getUpdateDatas(projectType.engineering, engineering, true, false));            rstProj = rstProj.concat(getUpdateDatas(projectType.project, project, true, false));        }    }    else if(oprNode.data.projType === projectType.engineering){        path = recPath.e;        let project = oprNode.parent || null;        if(!project) return null;        //恢复建设项目        if(project && deleted(project)){            path = recPath.e_p;        }        let tenders = oprNode.children;        if(tenders.length > 0){            for(let i = 0, len = tenders.length; i < len; i++){                rstProj = rstProj.concat(getUpdateDatas(projectType.tender, tenders[i], true, false));            }            rstProj = deWeightName(rstProj);            //恢复单价、费率文件            rstFile = rstFile.concat(getUpdateFiles(tenders, project));        }        if(path === recPath.e){            rstProj= rstProj.concat(getUpdateDatas(projectType.engineering, oprNode, true, true));        }        else if(path === recPath.e_p){            rstProj= rstProj.concat(getUpdateDatas(projectType.engineering, oprNode, true, false));            rstProj= rstProj.concat(getUpdateDatas(projectType.project, project, true, false));        }    }    else if(oprNode.data.projType === projectType.project){        path = recPath.p;        let engineerings = oprNode.children;        if(engineerings.length > 0){            let allTenders = [], rstEngs = [];            for(let i = 0, len = engineerings.length; i < len; i++){                //恢复单项工程                rstEngs = rstEngs.concat(getUpdateDatas(projectType.engineering, engineerings[i], false, false));                let tenders = engineerings[i].children;                allTenders = allTenders.concat(tenders);                let rstTends = [];                for(let j = 0, jLen = tenders.length; j < jLen; j++){                    //恢复单位工程                    rstTends = rstTends.concat(getUpdateDatas(projectType.tender, tenders[j], false, false));                }                //去除重名                rstTends = deWeightName(rstTends);                rstProj = rstProj.concat(rstTends);            }            //去除重名            rstEngs = deWeightName(rstEngs);            rstProj = rstProj.concat(rstEngs);            //恢复单价、费率文件            rstFile = rstFile.concat(getUpdateFiles(allTenders, oprNode));        }        //恢复建设项目        rstProj = rstProj.concat(getUpdateDatas(projectType.project, oprNode, false, false));    }    rst.proj = rstProj;    rst.file = rstFile;    return rst;}//获得勾选的单价、费率文件的idfunction m_getFilesObjs(nodes){    let rst = [];    for(let i = 0, len = nodes.length; i < len; i++){        let fileId = $(nodes[i]).attr('fileId') || null;        if(fileId){            let dispName = $('td:eq(0)', $(nodes[i])[0].parentNode.parentNode)[0].textContent;            let name = dispName.slice(0, dispName.length - 4);            if($(nodes[i]).attr('fileType') === fileType.unitPriceFile){                fileId = parseInt(fileId);            }            let obj = Object.create(null);            obj.id = fileId;            obj.name = name;            rst.push(obj);        }    }    return rst;}function m_project(node){    if(node && node.data.projType === projectType.project) return node;    if(!node) return null;    let parent = node.parent || null;    if(!parent) return null;    if(parent && parent.data.projType === projectType.project) return parent;    let gParent = parent.parent || null;    if(!gParent) return null;    if(gParent && gParent.data.projType === projectType.project) return gParent;    return null;}//点击单价文件、费率文件下的恢复操作(确认)function e_recFiles(btn){    btn.bind('click', function () {        decDate = '(' + new Date().Format('MM-dd hh:mm:ss') + '恢复)';        let recObjs = m_getFilesObjs($('[name = "fileItems"]:checked'));        let recIds = [];        for(let i of recObjs){            recIds.push(i.id);        }        let type = $('[name = "fileItems"]:checked').attr('fileType');        let selected = gcTree.selected();        //backend        let updateDatas = [];        for(let i = 0, len = recObjs.length; i < len; i++){            let findData = type === fileType.unitPriceFile ? {id: recObjs[i].id} : {ID: recObjs[i].id};            updateDatas.push(getUpdateObj(type, findData, {deleteInfo: null, name: delPostFix(recObjs[i].name) + decDate}));        }        //恢复建设项目        if(updateDatas.length > 0 && deleted(selected)){            updateDatas.push(getUpdateObj(projectType.project, {ID: selected.data.ID}, {deleteInfo: null, name: delPostFix(selected.data.name) + decDate}));        }        updateDatas = deWeightName(updateDatas);        a_rec(updateDatas, caller);        function caller(){            //front            if(recIds.length > 0){                v_recFiles(selected, recIds, type);                if(deleted(selected)){                    delete selected.data.deleteInfo;                }                if(fileEmpty(selected) && selected.children.length === 0){                    gcTree.removeNode(selected);                }                else {                    gcTree.refreshNodesDom([selected]);                }            }        }    });}//点击项目下的恢复操作(确认function e_recProj(btn){    btn.bind('click', function () {        let selected = gcTree.selected();        //backend        let updateObj = m_getRecDatas(selected);        let updateDatas = updateObj.proj.concat(updateObj.file);        let fileObj = getRecFileObj(updateObj.file);        //保存成功后回调front        a_rec(updateDatas, caller);        function caller() {            let project = m_project(selected);            if(project){                if(fileObj[fileType.unitPriceFile].length > 0){                    v_recFiles(project, fileObj[fileType.unitPriceFile], fileType.unitPriceFile);                }                if(fileObj[fileType.feeRateFile].length > 0){                    v_recFiles(project, fileObj[fileType.feeRateFile], fileType.feeRateFile);                }            }            v_removeNode(selected);            v_refreshNode(selected);        }    });}function a_getGC(callback){    CommonAjax.post('/pm/api/getGCDatas', {user_id: userID}, function (rstData) {        if(callback){            callback(rstData);        }    });}function a_rec(nodes, callback){    CommonAjax.post('/pm/api/recGC', {user_id: userID, nodes: nodes}, function (rstData) {        if(callback){            callback();        }    });}//去除重名,回收站不处理重名,只保证恢复到项目管理中不出现重名function deWeightName(datas){    let rst = [];    let _deWeight = Object.create(null), prefix = 'name_';    //按同名分组    for(let i = 0, len = datas.length; i < len; i++){        let data = datas[i];        let _names = _deWeight[prefix + data.updateData.name] || null;        if(!_names){            _names = _deWeight[prefix + data.updateData.name] = [];        }        if(_names){            _names.push(data);        }    }    for(let _name in _deWeight){        let sameNameDatas = _deWeight[_name];        let count = 0;        for(let i = 0, len = sameNameDatas.length; i < len; i++){            let postFix = '(' + count + ')';            if(i > 0){                sameNameDatas[i].updateData.name = sameNameDatas[i].updateData.name + postFix;            }            count ++;            rst.push(sameNameDatas[i]);        }    }    return rst;}//去除名称后缀(Date恢复)function delPostFix (str){    let rst = '';    rst = delPostRecFix(delPostNameFix(str));    return rst;}function delPostRecFix (str){    let rst = '';    let re = /(+[0-9]{2}-[0-9]{2}\s+[0-9]{2}:[0-9]{2}:[0-9]{2}恢复)/g;    rst = str.replace(re, '');    return rst;}function delPostNameFix (str){    let rst = '';    let re = /(+[0-9][0-9]*)/g;    rst = str.replace(re, '');    return rst;}function deleted(node){    return node.data.deleteInfo !== undefined && node.data.deleteInfo && node.data.deleteInfo.deleted;}function fileEmpty(node){    return node.data.unitPriceFiles.length === 0 && node.data.feeRateFiles.length === 0;}function fIsExist(files, id, type){    let isExist = false;    for(let i = 0, len = files.length; i < len; i++){        if((type === fileType.unitPriceFile && files[i].id === parseInt(id)) || (type === fileType.feeRateFile && files[i].ID === id)){            isExist = true;            break;        }    }    return isExist;}function getRecFileObj(files){    let rst = Object.create(null);    let rst_UF = [], rst_FF = [];    for(let i = 0, len = files.length; i < len; i++){        if(files[i].findData !== undefined){            if(files[i].updateType === fileType.unitPriceFile && files[i].findData.id !== undefined){                rst_UF.push(files[i].findData.id);            }            else if(files[i].updateType === fileType.feeRateFile && files[i].findData.ID !== undefined){                rst_FF.push(files[i].findData.ID);            }        }    }    rst[fileType.unitPriceFile] = rst_UF;    rst[fileType.feeRateFile] = rst_FF;    return rst;}function getUpdateObj(updateType, findData, updateData){    let obj = Object.create(null);    obj.updateType = updateType;    obj.findData = findData;    obj.updateData = updateData;    return obj;}function getUpdateDatas(updateType, node, mtNID, mtPM){    let rst = [];    decDate = '(' + new Date().Format('MM-dd hh:mm:ss') + '恢复)';    let newName = delPostFix(node.data.name) + decDate;    if(updateType === projectType.tender || updateType === projectType.engineering){        //维护项目管理树        if(mtPM){            rst.push(getUpdateObj(updateType, {ParentID: node.data.ParentID, NextSiblingID: -1, deleteInfo: null}, {NextSiblingID: node.data.ID}));        }        //恢复        if(mtNID){            rst.push(getUpdateObj(updateType, {ID: node.data.ID}, {name: newName, deleteInfo: null, NextSiblingID: -1}));        }        else {            rst.push(getUpdateObj(updateType, {ID: node.data.ID}, {name: newName, deleteInfo: null}));        }    }    else if(updateType === projectType.project){        //恢复        rst.push(getUpdateObj(updateType, {ID: node.data.ID}, {deleteInfo: null, name: newName}));//NextSibling为undefined,后端处理    }    return rst;}//unitPriceFile or feeRateFilefunction getUpdateFiles(tenders, project){    let rstUF = [], rstFF = [], rst = [];    let _unitFiles = Object.create(null), _feeFiles = Object.create(null), prefix = '_id';    decDate = '(' + new Date().Format('MM-dd hh:mm:ss') + '恢复)';    for(let i = 0, len = tenders.length; i < len; i++){        //恢复单价文件        if(project && project.data.unitPriceFiles.length > 0 && fIsExist(project.data.unitPriceFiles, tenders[i].data.property.unitPriceFile.id, fileType.unitPriceFile)){            //unitFiles.push(tenders[i].data.property.unitPriceFile.id);            let propId = tenders[i].data.property.unitPriceFile.id;            let propName = tenders[i].data.property.unitPriceFile.name;            let _uf = _unitFiles[prefix + propId] || null;            if(!_uf){                let obj = Object.create(null);                obj.id = parseInt(propId);                obj.name = propName;                _unitFiles[prefix + propId] = obj;            }        }        //恢复费率文件        if(project && project.data.feeRateFiles.length > 0 && fIsExist(project.data.feeRateFiles, tenders[i].data.property.feeFile.id, fileType.feeRateFile)){            //feeFiles.push(tenders[i].data.property.feeFile.id);            let propId = tenders[i].data.property.feeFile.id;            let propName = tenders[i].data.property.feeFile.name;            let _ff = _feeFiles[prefix + propId] || null;            if(!_ff){                let obj = Object.create(null);                obj.id = propId;                obj.name = propName;                _feeFiles[prefix + propId] = obj;            }        }    }    for(let uf in _unitFiles){        rstUF.push(getUpdateObj(fileType.unitPriceFile, {id: _unitFiles[uf].id}, {deleteInfo: null, name: delPostFix(_unitFiles[uf].name) + decDate}));    }    for(let ff in _feeFiles){        rstFF.push(getUpdateObj(fileType.feeRateFile, {ID: _feeFiles[ff].id}, {deleteInfo: null, name: delPostFix(_feeFiles[ff].name) + decDate}));    }    rst = rst.concat(deWeightName(rstUF));    rst = rst.concat(deWeightName(rstFF));    return rst;}
 |