123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- let compareObject = {
- setting:{
- header: [
- {headerName: "审定", headerWidth: 240, dataCode: "name", dataType: "String"},
- {headerName: "送审", headerWidth: 240, dataCode: "compare", dataType: "String"}
- ],
- view:{ lockColumns: ["name","compare"]}
- },
- initSpread:function(){
- if(!this.spread){
- this.spread = SheetDataHelper.createNewSpread($("#compareProjectSpread")[0]);
- sheetCommonObj.spreadDefaultStyle(this.spread);
- let sheet = this.spread.getSheet(0);
- sheetCommonObj.initSheet(sheet,this.setting,0);
- }else{
- this.spread.repaint();
- }
- },
- showDatas:function(){
- this.getCompareDatas();
- sheetCommonObj.showTreeData(this.spread.getSheet(0), this.setting,this.datas);
- },
- datas:[],
- getCompareDatas:function(){
- let datas = [];
- let me = compareObject;
- let compareID = projectObj.project.projectInfo.compareID;
- let rootProjectID = projectObj.project.property.rootProjectID;
- if(gljUtil.isNotEmpty(compareID)){
- let rootProject = _.find(me.projects,{'ID':rootProjectID});
- let compareProject = _.find(me.projects,{'ID':compareID});
- rootProject.compare = compareProject.name;
- rootProject.matchID = compareID;
- rootProject.collapsed = false;
- datas.push(rootProject);
- setDatas(rootProjectID,compareID,datas);
- }
- this.datas = datas;
- function setDatas(nID,cID,mdatas){
- let nameMap = {};
- if(cID && me.parentMap[cID]){
- for(let c of me.parentMap[cID]){
- nameMap[c.name] = c;
- }
- }
- if(me.parentMap[nID]){
- for(let n of me.parentMap[nID]){
- if(nameMap[n.name]){//找到同名的项目时,匹配上
- n.compare = n.name;
- n.matchID = nameMap[n.name].ID
- }
- n.collapsed = false;
- mdatas.push(n);
- setDatas(n.ID,n.matchID,mdatas)
- }
- }
- }
- },
- initProjectDatas:async function(){
- let projects = await ajaxGet("/project/getCompareProjects");
- let parentMap=_.groupBy(projects, 'ParentID');
- for(let key in parentMap){
- parentMap[key] = sortTreeChildren(parentMap[key]);
- }
- compareObject.parentMap = parentMap;
- compareObject.projects = projects;
- let rootParjects = parentMap['-1'];
- let options = [];
- for(let r of rootParjects){
- [newPath,project] = setProjectPath(r,parentMap,"");
- if(newPath && project)options.push({path:newPath,ID:project.ID})
- }
- compareObject.options = options;
- let rootProject = _.find(projects,{'ID':projectObj.project.property.rootProjectID});
- projectObj.project.projectInfo.compareID = rootProject.compareID;
- function setProjectPath(project,parentMap,namePath){
- let newPath = project.ParentID == -1?project.name:`${namePath}/${project.name}`;
- if(project.projType === commonConstants.projectType.Project) return [newPath,project];
-
- if(parentMap[project.ID]){
- for(let c of parentMap[project.ID]){
- return setProjectPath(c,parentMap,newPath)
- }
- }
- }
- },
- getCompareID:async function(){
- if(!this.parentMap){
- await this.initProjectDatas();
- }
- this.getCompareDatas();
- for(let d of this.datas){
- if(d.ID == projectObj.project.ID()) return d.matchID;
- }
- return null;
- }
- }
- $(document).ready(function () {
- $('#tab_compare').on('shown.bs.tab', async function () {
- await compareObject.initProjectDatas();
- let optionString = `<option value=""></option>`;
- for(let o of compareObject.options){
- if(o.ID === projectObj.project.property.rootProjectID) continue;
- optionString += `<option value="${o.ID}">${o.path}</option>`
- }
- $("#audiCompareID").html(optionString);
- $("#audiCompareID").val(projectObj.project.projectInfo.compareID);
- compareObject.initSpread();
- compareObject.showDatas();
- });
- $("#audiCompareID").change(async function(){
- //compareID 保存在建设项目上,为方便使用,获取后挂在projectInfo上
- let updateData = {type:ModuleNames.project,isInfo:true,data:{'ID' : projectObj.project.property.rootProjectID,compareID:parseInt(this.value)}};
- $.bootstrapLoading.start();
- await projectObj.project.syncUpdateNodesAndRefresh([updateData]);
- compareObject.showDatas();
- $.bootstrapLoading.end();
- })
- })
|