Преглед на файлове

Merge branch '1.0.0_online' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost into 1.0.0_online

chenshilong преди 6 години
родител
ревизия
569a67fd45
променени са 25 файла, в които са добавени 127 реда и са изтрити 74 реда
  1. 2 0
      .gitignore
  2. 1 1
      modules/main/controllers/ration_controller.js
  3. 4 2
      modules/reports/rpt_component/jpc_flow_tab.js
  4. BIN
      modules/reports/util/pdf_base_files/simhei.ttf
  5. BIN
      modules/reports/util/pdf_base_files/simhei_bold.ttf
  6. BIN
      modules/reports/util/pdf_base_files/simhei_bold_italic.ttf
  7. BIN
      modules/reports/util/pdf_base_files/simhei_italic.ttf
  8. BIN
      modules/reports/util/pdf_base_files/simkai.ttf
  9. BIN
      modules/reports/util/pdf_base_files/simkai_bold.ttf
  10. BIN
      modules/reports/util/pdf_base_files/simkai_bold_italic.ttf
  11. BIN
      modules/reports/util/pdf_base_files/simkai_italic.ttf
  12. BIN
      modules/reports/util/pdf_base_files/simsun_1.ttf
  13. BIN
      modules/reports/util/pdf_base_files/simsun_1_bold.ttf
  14. BIN
      modules/reports/util/pdf_base_files/simsun_1_bold_italic.ttf
  15. BIN
      modules/reports/util/pdf_base_files/simsun_1_italic.ttf
  16. 16 7
      modules/reports/util/rpt_font_util.js
  17. 10 12
      modules/reports/util/rpt_pdf_util.js
  18. 1 1
      public/web/tree_sheet/tree_sheet_helper.js
  19. 17 1
      web/building_saas/css/main.css
  20. 1 1
      web/building_saas/fee_rates/fee_rate.html
  21. 1 3
      web/building_saas/main/js/models/ration_glj.js
  22. 4 9
      web/building_saas/main/js/views/fee_rate_view.js
  23. 10 10
      web/building_saas/main/js/views/glj_col.js
  24. 58 25
      web/building_saas/main/js/views/glj_view.js
  25. 2 2
      web/building_saas/main/js/views/project_glj_view.js

+ 2 - 0
.gitignore

@@ -7,3 +7,5 @@ tmp/*.pdf
 tmp/*.jsp
 test/unit/logs
 *.log
+modules/reports/util/pdf_base_files/*.ttf
+modules/reports/util/pdf_base_files/*.ttc

+ 1 - 1
modules/main/controllers/ration_controller.js

@@ -92,7 +92,7 @@ async function addMultiRation(req,res) {
 async function replaceRations(req,res) {
     let result={
         error:0
-    }
+    };
     try {
         let data = req.body.data;
         data = JSON.parse(data);

+ 4 - 2
modules/reports/rpt_component/jpc_flow_tab.js

@@ -10,6 +10,7 @@ let JpcTextHelper = require('./helper/jpc_helper_text');
 let JpcCommonOutputHelper = require('./helper/jpc_helper_common_output');
 let JpcAreaHelper = require('./helper/jpc_helper_area');
 let PDFKit = require('pdfkit');
+let fontUtil = require('../util/rpt_font_util');
 
 let JpcFlowTabSrv = function(){};
 JpcFlowTabSrv.prototype.createNew = function(){
@@ -316,10 +317,11 @@ JpcFlowTabSrv.prototype.createNew = function(){
                         if (values.length > rst) rst = values.length;
                         let font = private_get_font(tab_field[JV.PROP_FONT]);
                         if (font) {
-                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/simsun_1.ttf');
+                            let fontFile = __dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/' + fontUtil.getActualFont(font[JV.FONT_PROPS[0]], (font[JV.FONT_PROPS[3]] === 'T'), (font[JV.FONT_PROPS[4]] === 'T')) + '.ttf';
+                            doc.font(fontFile);
                             doc.fontSize(parseInt(font[JV.FONT_PROPS[JV.FONT_PROP_IDX_HEIGHT]]));
                         } else {
-                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/simsun_1.ttf');
+                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/Smart.ttf');
                             doc.fontSize(12);
                         }
                         let hasSplitStr = false, splitStrArr = [];

BIN
modules/reports/util/pdf_base_files/simhei.ttf


BIN
modules/reports/util/pdf_base_files/simhei_bold.ttf


BIN
modules/reports/util/pdf_base_files/simhei_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simhei_italic.ttf


BIN
modules/reports/util/pdf_base_files/simkai.ttf


BIN
modules/reports/util/pdf_base_files/simkai_bold.ttf


BIN
modules/reports/util/pdf_base_files/simkai_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simkai_italic.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_bold.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_italic.ttf


+ 16 - 7
modules/reports/util/rpt_font_util.js

@@ -3,20 +3,29 @@
  */
 
 let fontMapObj = {
-    "宋体": "simsun_1"
+    "宋体": "Smart"
     ,"楷体": "simkai"
     ,"黑体": "simhei"
-    // ,"Arial": "arial"
+    // ,"华文中宋": "STZHONGS"
+    // ,"华文宋体": "STSONG"
+    //"宋体": "Smart"
 };
-// 目前不支持下划线
+//下划线在option中支持
+//另注意:
 
 module.exports = {
     getActualFont: getActualFont
 }
 
 function getActualFont(mapName, isBold, isItalic) {
-    let rst = "simsun_1";
-    if (fontMapObj[mapName]) rst = fontMapObj[mapName];
-    rst = rst + (isBold?"_bold":"") + (isItalic?"_italic":"");
-    return rst;
+    let rst = ["Smart"];
+    if (fontMapObj[mapName]) rst[0] = fontMapObj[mapName];
+    // rst = rst + (isBold?"_bold":"") + (isItalic?"_italic":"");
+    if (isBold) {
+        rst.push("_bold");
+    }
+    if (isItalic) {
+        rst.push("_italic");
+    }
+    return rst.join("");
 }

+ 10 - 12
modules/reports/util/rpt_pdf_util.js

@@ -147,11 +147,10 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
         let fontFile = __dirname + '/pdf_base_files/simkai.ttf';
         if (font) {
             dftFontHeight = 1 * font[JV.FONT_PROPS[1]];
-            let dftFontBold = font[JV.FONT_PROPS[3]];
-            let dftFontItalic = font[JV.FONT_PROPS[4]];
-            fontFile = __dirname + '/pdf_base_files/' + fontUtil.getActualFont(font[JV.FONT_PROPS[0]], (dftFontBold === 'T'), (dftFontItalic === 'T')) + '.ttf';
+            fontFile = __dirname + '/pdf_base_files/' + fontUtil.getActualFont(font[JV.FONT_PROPS[0]], (font[JV.FONT_PROPS[3]] === 'T'), (font[JV.FONT_PROPS[4]] === 'T')) + '.ttf';
             doc.fontSize(dftFontHeight);
         }
+        doc.font(fontFile);
         let options={};
         if (control) {
             private_setupAreaH(area, control.Horizon, font.FontAngle, dftFontHeight, output,options);
@@ -164,23 +163,22 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
         if (parseInt(font.FontAngle) !== 0) {
             w = area[JV.IDX_BOTTOM] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_BOTTOM] - area[JV.IDX_TOP] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_TOP];
         }
-        doc.save();
+        // doc.save();
         //doc.translate(output[0], output[1]);
         if (w >= doc.widthOfString(val)) {
-            options.width=w;
-            options.height=dftFontHeight;
+            options.width = w;
+            options.height = dftFontHeight;
         } else {
             while (true) {
                 dftFontHeight--;
                 doc.fontSize(dftFontHeight);
                 if (w >= doc.widthOfString(val) || dftFontHeight < 6) {
-                    options.width=w;
-                    options.height=dftFontHeight;
+                    options.width = w;
+                    options.height = dftFontHeight;
                     break;
                 }
             }
         }
-
         function private_drawUnderline() {
             //A. 暂不支持角度; B. PDF输出时,坐标没有translate
             let ctx = doc;
@@ -232,9 +230,9 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
             }
             doc.rotate(font.FontAngle,rotateOptions);
         }
-        // doc.text(val,output[0], output[1],options);
-        doc.font(fontFile).text(val,output[0], output[1],options);
-        doc.restore();
+        doc.text(val,output[0], output[1], options);
+        doc.font(__dirname + '/pdf_base_files/Smart.ttf');
+        // doc.restore();
     }
 
     function private_setupAreaH(area, type, fontAngle, dftFontHeight, outputPoint,options) {

+ 1 - 1
public/web/tree_sheet/tree_sheet_helper.js

@@ -433,7 +433,7 @@ var TREE_SHEET_HELPER = {
             TREE_SHEET_HELPER.showTipsDiv(text,setting,hitinfo);
         };
         TipCellType.prototype.processMouseLeave = function (hitinfo) {
-            let me = this;
+            let me = TREE_SHEET_HELPER;
             TREE_SHEET_HELPER.tipDiv = 'hide';
             if (me._toolTipElement) {
                 $(me._toolTipElement).hide();

+ 17 - 1
web/building_saas/css/main.css

@@ -395,4 +395,20 @@ a{
 }
 .custom-file-input:lang(zh) ~ .custom-file-label::after {
     content: "浏览";
-}
+}
+/*.popover{position:absolute;
+    top:0;left:0;
+    z-index:1060;
+    display:block;
+    max-width:276px;
+    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;
+    background-color:black;
+    background-clip:padding-box;
+    border:1px solid black;
+    border-radius:.3rem}*/
+
+/*
+.arrow{
+    background-color:black;
+}
+*/

+ 1 - 1
web/building_saas/fee_rates/fee_rate.html

@@ -3,7 +3,7 @@
 <div >
 <div class="toolsbar_feeRate px-1 ">
     <div class="form-inline py-1">
-        <label class="mx-2" >当前使用:<span id="feeRateFileName">费率1</span>(<label class="a_color" id="pop-lv"><span id="projectCount">3</span> 个单位工程使用</label>)
+        <label  class="mx-2" >当前使用:<span id="feeRateFileName">费率1</span>(<label class="a_color" id="pop-lv"><span id="projectCount">3</span> 个单位工程使用</label>)
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#change-lv" id="changFeeRateFile"><i class="fa fa-exchange"></i> 选择其他</a>
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" id="saveAs" data-target="#copy-lv"><i class="fa fa-files-o"></i> 另存单独用</a></label>
     </div>

+ 1 - 3
web/building_saas/main/js/models/ration_glj.js

@@ -189,9 +189,7 @@ var ration_glj = {
                 if (this.needShowToTree(data)) {
                     gljOprObj.setGLJPrice(data);
                     this.transferToNodeData(data);
-                    let parentNode = _.find(projectObj.project.mainTree.items, function (n) {//找父节点
-                        return n.sourceType == ModuleNames.ration && n.data.ID == data.rationID;
-                    });
+                    let parentNode = projectObj.project.mainTree.findNode(data.rationID);
                     if (parentNode) {
                         let nextNodeID = null;
                         if (parentNode.children.length > 0) {

+ 4 - 9
web/building_saas/main/js/views/fee_rate_view.js

@@ -917,22 +917,17 @@ var feeRateObject={
 function getPopoverContent() {
     var feeRateFile = projectObj.project.FeeRate.getActivateFeeRate();
     var usageProjects = feeRateFile.usageProjects;
-    var popover_content = "";
-    _.forEach(usageProjects,function (p,index) {
-        if(index>0){
-            popover_content+='<br>';
-        }
-        popover_content+=p.name;
-    })
+    let names = _.map(usageProjects,'name');
+    let popover_content = names.join('<br>');
     return popover_content;
 }
 
 $(function(){
-    $('#pop-lv').popover({
+    $('#pop-lv').tooltip({
             placement:"bottom",
             html:true,
             trigger:"hover | focus",
-            content:getPopoverContent
+            title:getPopoverContent
         }
     );
 

+ 10 - 10
web/building_saas/main/js/views/glj_col.js

@@ -36,13 +36,13 @@ let gljCol = {
             {headerName: "总消耗量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
             {headerName: "暂估", headerWidth: 45, dataCode: "is_evaluate", hAlign: "center", dataType: "String",cellType:'checkBox'},
             {headerName: "主要\n材料", headerWidth: 45, dataCode: "is_main_material", hAlign: "center", dataType: "String",cellType:'checkBox'},
+            {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", dataType: "String",cellType: "checkBox"},
             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
             {headerName: "甲供数量", headerWidth: 90, dataCode: "supply_quantity", hAlign: "right", dataType: "Number",validator:"number",decimalField:'glj.quantity'},
             {headerName: "三材类别", headerWidth: 70, dataCode: "materialType", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:materialComboMap},
             {headerName: "三材系数", headerWidth: 70, dataCode: "materialCoe", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'material'
             {headerName: "交货方式", headerWidth: 70, dataCode: "delivery", hAlign: "left", dataType: "String"},
             {headerName: "送达地点", headerWidth: 70, dataCode: "delivery_address", hAlign: "left", dataType: "String"},
-            {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", dataType: "String",cellType: "checkBox"},
             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
         ],
         view: {
@@ -52,15 +52,15 @@ let gljCol = {
     },
     mixRatio_Setting:{
         header:[
-            {headerName: "编码", headerWidth: 120, dataCode: "code", dataType: "String"},
-            {headerName: "名称", headerWidth: 120, dataCode: "name", dataType: "String"},
-            {headerName: "规格型号", headerWidth: 120, dataCode: "specs", dataType: "String"},
-            {headerName: "单位", headerWidth: 120, dataCode: "unit", hAlign: "center", dataType: "String"},
-            {headerName: "类型", headerWidth: 120, dataCode: "short_name", hAlign: "center", dataType: "String"},
-            {headerName: "定额价", headerWidth: 120, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'glj.unitPrice'
-            {headerName: "调整价", headerWidth: 120, dataCode: "adjustPrice", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
-            {headerName: "市场价", headerWidth: 120, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
-            {headerName: "消耗量", headerWidth: 120, dataCode: "consumption", hAlign: "right", dataType: "Number",decimalField:"glj.quantity",validator:"number"}
+            {headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String"},
+            {headerName: "名称", headerWidth: 240, dataCode: "name", dataType: "String"},
+            {headerName: "规格型号", headerWidth: 190, dataCode: "specs", dataType: "String"},
+            {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
+            {headerName: "类型", headerWidth: 45, dataCode: "short_name", hAlign: "center", dataType: "String"},
+            {headerName: "定额价", headerWidth: 80, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'glj.unitPrice'
+            {headerName: "调整价", headerWidth: 80, dataCode: "adjustPrice", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
+            {headerName: "市场价", headerWidth: 80, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
+            {headerName: "消耗量", headerWidth: 80, dataCode: "consumption", hAlign: "right", dataType: "Number",decimalField:"glj.quantity",validator:"number"}
         ],
         view: {
             lockColumns: [0,1,2,3,4,5,6,7]

+ 58 - 25
web/building_saas/main/js/views/glj_view.js

@@ -106,12 +106,29 @@ var gljOprObj = {
         subSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, me.onButtonClick);
         if(!projectReadOnly){
             gljContextMenu.loadGLJSpreadContextMenu();
+            //me.bindGLJEnterKey(subSpread,sheet);
         }
         sheet.bind(GC.Spread.Sheets.Events.SelectionChanged,function (sender,args) {
             let selected = args.newSelections[0] ? args.newSelections[0] : {row: 0, col: 0};
             me.sheetInitSelection(selected);
         });
     },
+
+    bindGLJEnterKey:function (spread,sheet) {
+        let me = this;
+        subSpread.commandManager().register('myEnter', enterKeyAction);
+        subSpread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.enter, false, false, false, false);
+        subSpread.commandManager().setShortcutKey('myEnter', GC.Spread.Commands.Key.enter, false, false, false, false);
+
+        function enterKeyAction(spd,sheeName) {
+            let editRow = sheet.getActiveRowIndex(),orgCol = sheet.getActiveColumnIndex();
+            if(sheet.isEditing()) sheet.endEdit();
+             //GC.Spread.Sheets.Commands.commitInputNavigationDown.execute(spd,sheeName);
+            //sheet.setSelection(editRow,orgCol+1,1,1);
+            GC.Spread.Sheets.Commands.navigationRight.execute(spd,sheeName);
+            //sheet.setActiveCell(editRow, orgCol+1)
+        }
+    },
     sheetInitSelection: function (selected) {
         let me = gljOprObj;
         if(selected.row < me.sheetData.length){
@@ -553,12 +570,15 @@ var gljOprObj = {
         if(priceMap){
             for(let connectKey in priceMap){
                 let code = priceMap[connectKey].code;
+                let name = priceMap[connectKey].name;
+                let specs = priceMap[connectKey].specs;
                 if(code){
+                    let displayText = code +" "+name +" "+specs;
                    let preCode = code.split("-")[0];
                    if(codeMap[preCode]) {
-                       codeMap[preCode].push({text:code,value:connectKey});
+                       codeMap[preCode].push({text:displayText,value:connectKey});
                    }else {
-                       codeMap[preCode]=[{text:code ,value:connectKey}];
+                       codeMap[preCode]=[{text:displayText ,value:connectKey}];
                    }
                 }
             }
@@ -571,7 +591,8 @@ var gljOprObj = {
         this.sheet.suspendEvent();
         this.sheet.setRowCount(this.sheetData.length >30?this.sheetData.length:30);
         for (var i = 0; i < this.sheetData.length; i++) {
-            this.sheet.setCellType(i, 0,this.getTreeNodeCellType(this.sheetData,i,codeMap),GC.Spread.Sheets.SheetArea.viewport);
+            let options = this.getCodeOptions(this.sheetData[i],codeMap);
+            this.sheet.setCellType(i, 0,this.getTreeNodeCellType(this.sheetData,options),GC.Spread.Sheets.SheetArea.viewport);
             if (this.sheetData[i].hasOwnProperty('subList')) {
                 var collapsed = this.sheetData[i].collapsed == undefined ? true : this.sheetData[i].collapsed;
                 if (collapsed == true) {
@@ -582,6 +603,19 @@ var gljOprObj = {
         this.sheet.resumeEvent();
         this.sheet.resumePaint();
     },
+    getCodeOptions:function (recode,codeMap) {
+        let options = [];
+          if(recode.isMixRatio ===true){
+              return null;
+          }
+        let code = recode.code;
+        if(code) {
+            let preCode = code.split("-")[0];
+            if( codeMap[preCode]) options = codeMap[preCode];
+            if(options.length>0) _.remove(options,{'value':gljOprObj.getIndex(recode, gljKeyArray)})//去掉本身
+        }
+        return options;
+    },
     filterGljByRation: function (ration, datas) {
         var gljList = [];
         if (datas && datas.length > 0) {
@@ -669,11 +703,13 @@ var gljOprObj = {
         let decimalObj = projectInfoObj.projectInfo.property.decimal;
         let labourCoeDatas =  projectObj.project.labourCoe.datas;
         glj = glj?glj:_.find(proGLJ.datas.gljList, {'id': data.projectGLJID});
-        let result = gljUtil.getGLJPrice(glj,proGLJ.datas,calcOptions,labourCoeDatas,decimalObj,isRadio,_,scMathUtil);
-        data.marketPrice = result.marketPrice;
-        data.basePrice =  result.basePrice;
-        data.adjustPrice = result.adjustPrice;
-        data.marketUnitFee = data.marketPrice;//更新树节点市场单价列的值
+        if(glj){
+            let result = gljUtil.getGLJPrice(glj,proGLJ.datas,calcOptions,labourCoeDatas,decimalObj,isRadio,_,scMathUtil);
+            data.marketPrice = result.marketPrice;
+            data.basePrice =  result.basePrice;
+            data.adjustPrice = result.adjustPrice;
+            data.marketUnitFee = data.marketPrice;//更新树节点市场单价列的值
+        }
         return data;
 
     },
@@ -1196,7 +1232,7 @@ var gljOprObj = {
         }
         return node;
     },
-    getTreeNodeCellType: function (data,index,codeMap) {
+    getTreeNodeCellType: function (data,comboboxOptions) {
         var ns = GC.Spread.Sheets;
         var rectW = 10;
         var rectH = 10;
@@ -1258,12 +1294,17 @@ var gljOprObj = {
             return offset;
         }
 
-        if(isDef(index) && data[index] && data[index].isMixRatio !==true){
-            TreeNodeCellType.prototype =  sheetCommonObj.getDynamicCombo();
-        }else {
-            TreeNodeCellType.prototype =  new ns.CellTypes.Text();
-        }
+        TreeNodeCellType.prototype =  comboboxOptions?sheetCommonObj.getDynamicCombo():new ns.CellTypes.Text();
+
         TreeNodeCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
+            if (style.backColor) {//先画背景色
+                ctx.save();
+                ctx.fillStyle = style.backColor;
+                ctx.fillRect(x, y, w, h);
+                ctx.restore();
+            } else {
+                ctx.clearRect(x, y, w, h);
+            }
             if (value != null) {
                 var offset = margin + rectW + 6;
                 var recode = data[options.row];
@@ -1283,7 +1324,7 @@ var gljOprObj = {
             }
         };
         TreeNodeCellType.prototype.getHitInfo = function (x, y, cellStyle, cellRect, context) {
-            if(x < cellRect.x+cellRect.width -15){
+            if(x < cellRect.x+cellRect.width -15){//这里要判断点击的位置来决定return的内容,不能直接用combobox的方法
                 return {
                     x: x,
                     y: y,
@@ -1317,17 +1358,9 @@ var gljOprObj = {
            // GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, arguments);
         };
         let cellType = new TreeNodeCellType();
-        let options = [];
-        if(isDef(index) && data[index] && data[index].isMixRatio !==true){
-            let code = data[index].code;
-            if(code) {
-                let preCode = code.split("-")[0];
-                if( codeMap[preCode]) options = codeMap[preCode];
-                if(options.length>0) _.remove(options,{'value':gljOprObj.getIndex(data[index], gljKeyArray)})//去掉本身
-
-            }
+        if(comboboxOptions){
             cellType.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value);
-            cellType.itemHeight(options.length).items(options);
+            cellType.itemHeight(comboboxOptions.length).items(comboboxOptions);
         }
         return cellType;
     },

+ 2 - 2
web/building_saas/main/js/views/project_glj_view.js

@@ -1134,11 +1134,11 @@ $(function () {
      me.showProjectGljData();
      me.initMixRatio();
      });*/
-    $('#pop-used-list').popover({
+    $('#pop-used-list').tooltip({
             placement: "bottom",
             html: true,
             trigger: "hover | focus",
-            content: projectGljObject.getUsedTenderInfo
+            title: projectGljObject.getUsedTenderInfo
         }
     );
     // 单价文件切换弹框