Переглянути джерело

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

TonyKang 6 роки тому
батько
коміт
101cfe6df8

+ 110 - 0
modules/bills_lib/controllers/bills_permissionController.js

@@ -3,6 +3,14 @@
  */
 let billsController = require("./bills_lib_controllers");
 import baseController from "../../common/base/base_controller";
+import fs from 'fs';
+import path from 'path';
+import multiparty from 'multiparty';
+const uuidV1 = require('uuid/v1');
+
+const shareDir = 'public/share/images';
+const imgTriggers = ['billsRecharge', 'rationExplanation', 'rationRuleText'];
+
 
 class billsPermContr extends baseController{
     getCurrentUniqId(req, res){
@@ -59,8 +67,110 @@ class billsPermContr extends baseController{
     isUsed(req, res){
         billsController.isUsed(req, res);
     }
+    /*
+    *上传图片
+    * */
     uploadImg(req, res){
+        let uploadDir = path.join(req.app.locals.rootDir, shareDir);
+        let form = new multiparty.Form({uploadDir: uploadDir});
+        form.parse(req, async function(err, fields, files){
+            try {
+                const file = typeof files.file !== 'undefined' ? files.file[0] : null;
+                if(err || !file) {
+                    throw '上传失败';
+                }
+                //触发上传图片的地方
+                const trigger = typeof fields.trigger !== 'undefined' && fields.trigger.length > 0 ? fields.trigger[0] : null;
+                if (!trigger || !imgTriggers.includes(trigger)) {
+                    throw '该操作没有上传权限'
+                }
+                //根据触发源放置文件到相关文件夹
+                let triggerPath = path.join(uploadDir, trigger);
+                if (!fs.existsSync(triggerPath)) {
+                    fs.mkdirSync(triggerPath);
+                }
+                //文件后缀
+                let px = file.originalFilename.split('.').pop();
+                //时间戳重命名图片并移动文件
+                let newFileName = Date.now() + '.' + px;
+                if (fs.existsSync(newPath)) {
+                    newFileName += uuidV1();
+                }
+                let newPath = path.join(triggerPath, newFileName);
+                fs.renameSync(file.path, newPath);
+                //返回图片域名后的url
+                res.json({error: 0, data: `${shareDir}/${trigger}/${newFileName}`, message: 'success'});
+            } catch (err) {
+                console.log(err);
+                res.json({error: 1, data: null, message: err});
+            }
+        });
+    }
+    /*
+    * 删除图片
+    * */
+    delImg(req, res){
+        try {
+            let data = JSON.parse(req.body.data),
+                trigger = data.trigger,
+                url = data.url;
+            if (!imgTriggers.includes(trigger)) {
+                throw '该操作没有权限';
+            }
+            //拼接完整的删除路径
+            let delUrl = path.join(req.app.locals.rootDir, url);
+            fs.unlinkSync(delUrl);
+            res.json({error: 0, data: null, message: 'success'});
+        } catch(err) {
+            res.json({error: 1, data: null, message: err});
+        }
+    }
+    /*
+     *  根据页码加载图片
+     *  返回总页码和当前页码的图片信息
+     * */
+    loadImgs(req, res){
+        try {
+            let data = JSON.parse(req.body.data),
+                trigger = data.trigger,
+                page = data.page;
+            if (!imgTriggers.includes(trigger)) {
+                throw '该操作没有权限';
+            }
+            //每页显示的图片数
+            const perImgs = 3;
+            //总的图片信息
+            let triggerPath = path.join(req.app.locals.rootDir, shareDir, trigger);
+            if (!fs.existsSync(triggerPath)) {
+                fs.mkdirSync(triggerPath);
+            }
+            let allImgs = fs.readdirSync(triggerPath);
+            //将图片按照时间排序,降序
+            allImgs.sort(function (a, b) {
+                let aV = a.split('.')[0],
+                    bV = b.split('.')[0];
+                    if(aV > bV) {
+                        return -1;
+                    } else if(aV < bV) {
+                        return 1;
+                    }
+                    return 0;
+            });
+            let pageCount = Math.ceil(allImgs.length / perImgs) || 1;
+            //当前页图片信息
+            let startIdx = (page - 1) * perImgs,
+                endIdx = startIdx + 3,
+                currentPageArr = allImgs.slice(startIdx, endIdx),
+                currentImgsUrl = [];
+            for (let img of currentPageArr){
+                currentImgsUrl.push(`${shareDir}/${trigger}/${img}`);
+            }
+            res.json({error: 0, data: {pageCount: pageCount, currentImgsUrl: currentImgsUrl}, message: 'success'});
 
+        } catch (err) {
+            console.log(err);
+            res.json({error: 1, data: {pageCount: 1, currentImgsUrl: []}, message: err});
+        }
     }
 
 }

+ 4 - 0
modules/bills_lib/routes/bills_lib_routes.js

@@ -31,6 +31,10 @@ module.exports =function (app) {
     billsRouter.post("/getStdBillsLibName", billsLibContr.auth, billsLibContr.init, billsLibContr.getStdBillsLibName);
     //上传图片
     billsRouter.post('/uploadImg', billsContr.uploadImg);
+    //删除图片
+    billsRouter.post('/delImg', billsContr.delImg);
+    //加载图片
+    billsRouter.post('/loadImgs', billsContr.loadImgs);
 
     billsRouter.post("/upMove", billsContr.auth, billsContr.init, billsContr.upMove);
     billsRouter.post("/downMove", billsContr.auth, billsContr.init, billsContr.downMove);

+ 63 - 0
modules/ration_repository/models/ration_item.js

@@ -940,6 +940,69 @@ rationItemDAO.prototype.exportExcelData = async function(rationRepId) {
         const ration = [sectionId, feeType, tmp.ID, tmp.code, tmp.name, tmp.caption, tmp.basePrice];
         rationData.push(ration);
     }
+    //根据编号排序,优先级:number-number-..., number, Anumber....
+    /*let regConnector = /-/g,
+        regLetter = /[a-z,A-Z]/g,
+        regNum = /\d+/g;
+    rationData.sort(function (a, b) {
+        let aCode = a[3],
+            bCode = b[3],
+            rst = 0;
+        function compareConnector(arrA, arrB) {
+            let lessArr = arrA.length <= arrB ? arrA : arrB;
+            for (let i = 0; i < lessArr.length; i++) {
+                let result = compareUnit(arrA[i], arrB[i]);
+                if (result !== 0) {
+                    return result;
+                } else {
+
+                }
+            }
+            function compareUnit(uA, uB) {
+                let uAV = parseFloat(uA),
+                    uBV = parseFloat(uB);
+                if (uAV > uBV) {
+                    return 1;
+                } else if (uAV < uBV) {
+                    return -1;
+                }
+                return 0;
+            }
+        }
+        if (regConnector.test(a) && !regConnector.test(b)) {
+            rst = -1;
+        } else if (!regConnector.test(a) && regConnector.test(b)) {
+            rst = 1;
+        } else if (regConnector.test(a) && regConnector.test(b)) {
+
+        }
+    });
+    rationData.sort(function (a, b) {
+        let aCode = a[3],
+            bCode = b[3],
+            rst = 0,
+            splitA = aCode.split('-'),
+            splitB = bCode.split('-');
+        if(splitA[0] > splitB[0]){
+            rst = 1;
+        }
+        else if(splitA[0] < splitB[0]){
+            rst = -1;
+        }
+        else {
+            if(splitA[1] && splitB[1]){
+                let floatA = parseFloat(splitA[1]),
+                    floatB = parseFloat(splitB[1]);
+                if(floatA > floatB){
+                    rst = 1;
+                }
+                else if(floatA < floatB){
+                    rst = -1;
+                }
+            }
+        }
+        return rst;
+    });*/
     const excelData = [['树ID', '取费专业', '定额ID', '定额编码', '定额名', '定额显示名称', '基价']];
     excelData.push.apply(excelData, rationData);
 

+ 3 - 0
public/web/PerfectLoad.js

@@ -3,6 +3,9 @@
  */
 
 jQuery.bootstrapLoading = {
+    isLoading: function () {
+        return $('#loadingPage').is(':visible');
+    },
     start: function (options) {
         var defaults = {
             opacity: 0.5,

+ 4 - 4
web/common/html/uploadImg.html

@@ -15,7 +15,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="row">
+                <div class="row" id="imgsDiv">
                     <div class="col-4">
                         <div class="card">
                             <img class="card-img-top" src="" alt="Card image cap" height="180px">
@@ -41,9 +41,9 @@
                         </div>
                     </div>
                     <div class="btn-group ml-3 mt-3">
-                        <button class="btn btn-sm btn-secondary" disabled="">上一页</button>
-                        <button class="btn btn-sm btn-secondary disabled">1 / 3</button>
-                        <button class="btn btn-sm btn-secondary">下一页</button>
+                        <button id="prevPage" class="btn btn-sm btn-secondary" disabled="">上一页</button>
+                        <button id="pageInfo" class="btn btn-sm btn-secondary disabled">1 / 3</button>
+                        <button id="nextPage" class="btn btn-sm btn-secondary">下一页</button>
                     </div>
                 </div>
             </div>

+ 187 - 0
web/common/js/slideResize.js

@@ -0,0 +1,187 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Zhong
+ * @date 2018/10/22
+ * @version
+ */
+
+let mouseMoveCount = 0;
+
+/**
+ * 拖动更改div大小
+ *
+ * @param {Object} eles - id:存储本地的标记 resize:拖动条 nearElement:左上外层div nearSpread:左上spread farElement:右下外层div evFixedSize:造价书左右拖动用
+ * @param {Object} limit - min/max
+ * @param {String} type - height/width
+ * @param {function} callback - 成功后执行
+ * @return {void}
+ */
+function slideResize(eles, limit, type, callback) {
+    if(type !== 'height' && type !== 'width'){
+        return;
+    }
+    //nearElement:左上, farElement:右下
+    let startP = 0;
+    let drag = false;
+    const resizeElement = eles.resize;
+    const nElement = eles.nearElement;
+    const fElement = eles.farElement;
+    const navContentEle = eles.nav ? eles.nav : null;
+    let nEleSize = 0;
+    let fEleSize = 0;
+    let navSize = 0;
+    let nEleChangeSize = 0;
+    let fEleChangeSize = 0;
+
+    // 鼠标点下时
+    resizeElement.mousedown(function(e) {
+        mouseMoveCount = 0;
+        drag = true;
+        startP = type === 'height' ? e.clientY : e.clientX;
+        // 获取左(上)部分的宽度(高度)
+        nEleSize = nElement[type]();
+        // 获取右(下)部分的宽度(高度)
+        fEleSize = fElement[type]();
+        // nav宽(高度)部分
+        if(navContentEle){
+            navSize = navContentEle[type]() + 4;
+        }
+        resizeElement.tooltip('hide');
+    });
+
+    // 鼠标移动
+    $("body").mousemove(function(e) {
+        if (drag) {
+            let moveSize = type === 'height' ? e.clientY - startP : e.clientX - startP;
+            // 判断拖动范围不能超出
+            nEleChangeSize = nEleSize + moveSize;
+            nEleChangeSize = nEleChangeSize < limit.min ? limit.min : nEleChangeSize;
+            nEleChangeSize = nEleChangeSize > limit.max ? limit.max + 9 : nEleChangeSize;
+
+            fEleChangeSize = fEleSize - moveSize;
+            fEleChangeSize = fEleChangeSize < limit.min ? limit.min : fEleChangeSize;
+            fEleChangeSize = fEleChangeSize > limit.max ? limit.max + 9 : fEleChangeSize;
+
+            if(type === 'width'){
+                if(eles.totalWidth) {
+                    nEleChangeSize = nEleChangeSize * eles.totalWidth;
+                    fEleChangeSize = fEleChangeSize * eles.totalWidth;
+                }
+                let rePercent = getResizeWidthPercent(nEleChangeSize, fEleChangeSize, eles.totalWidth);
+                eles.nearElement.css(type, rePercent.nearPercent);
+                eles.farElement.css(type, rePercent.farPercent);
+            }
+            else{
+                eles.nearSpread[type](nEleChangeSize);
+                eles.farSpread[type](fEleChangeSize - navSize);
+                eles.farElement[type](fEleChangeSize);
+            }
+            //实时刷新页面
+            mouseMoveCount+=Math.abs(moveSize);//取移动的决对值
+            if(mouseMoveCount >=5){//当累计移动超过5个像素时,才刷新,减少刷新次数
+                if(callback) callback();
+                mouseMoveCount = 0;
+            }
+        }
+    });
+
+    // 鼠标弹起
+    $("body").mouseup(function(e) {
+        if (drag) {
+            callback();
+            drag = false;
+            // 存入本地缓存
+            const id = eles.id;
+            nEleChangeSize = nEleChangeSize >= limit.max ? limit.max + 9  : nEleChangeSize;
+            fEleChangeSize = fEleChangeSize >= limit.max ? limit.max + 9  : fEleChangeSize;
+            setLocalCache(`near${type}:${id}`, nEleChangeSize);
+            setLocalCache(`far${type}:${id}`, fEleChangeSize);
+        }
+    });
+}
+
+/**
+ * 读取设置的高度
+ *
+ * @param {String} tag - 顶层div的id
+ * @param {function} callback - 回调函数
+ * @return {void}
+ */
+
+function loadSize(eles, type, callback) {
+    let tag = eles.id;
+    if (tag === '') {
+        return;
+    }
+    if(type !== 'height' && type !== 'width'){
+        return;
+    }
+    let o_nearSize = eles.nearSpread[type]();
+    let o_farSize = eles.farSpread[type]();
+    let nearSize = getLocalCache(`near${type}:${tag}`);
+    let farSize = getLocalCache(`far${type}:${tag}`);
+    if (nearSize === null || farSize === null) {
+        setDefaultSize(tag,eles,type);//zhang 2018-05-21
+        /* eles.nearSpread[type](o_nearSize);
+         eles.farSpread[type](o_farSize);*/
+    }else {
+        setSizeWithPercent(tag,eles,nearSize,farSize,type)//zhang 2018-06-04 改成按百分比设置
+    }
+    if(type === 'width'){//使用百分比
+        if (eles.totalWidth) {
+            o_nearSize = o_nearSize * eles.totalWidth;
+            o_farSize = o_farSize * eles.totalWidth;
+        }
+        let rePercent = getResizeWidthPercent(nearSize ? nearSize : o_nearSize, farSize ? farSize : o_farSize, eles.totalWidth);
+        eles.nearElement.css(type, rePercent.nearPercent);
+        eles.farElement.css(type, rePercent.farPercent);
+    }
+    callback();
+}
+
+function getResizeWidthPercent(nearSize, farSize, totalWidth = 1){
+    const resizeWidth = 6;
+    nearSize = parseFloat(nearSize);
+    farSize = parseFloat(farSize);
+    let nearPercent = (nearSize / (resizeWidth + nearSize + farSize) * totalWidth * 100) + '%';
+    let farPercent = (farSize / (resizeWidth + nearSize + farSize) * totalWidth * 100) + '%';
+    return {nearPercent, farPercent};
+}
+
+
+function setSizeWithPercent(tag,eles,nearSize,farSize,type) {
+    nearSize = parseFloat(nearSize);
+    farSize = parseFloat(farSize);
+    if(type !== 'width') {
+        let headerHeight = $(".header").height();
+        let toolsbarHeight = $(".toolsbar").height();
+        let exand = tag == "#main" ? 1:50;
+        let totalHeight = $(window).height() - headerHeight - toolsbarHeight-exand;
+        const navSize = eles.nav ? eles.nav[type]() + 4 : 0;
+        totalHeight = totalHeight - navSize;
+        nearSize = (nearSize/(nearSize + farSize))* totalHeight;
+        eles.nearSpread[type](nearSize);
+        eles.farSpread[type](totalHeight - nearSize);
+        eles.farElement[type](totalHeight - nearSize + navSize);
+    }
+}
+
+function setDefaultSize(tag,eles,type) {
+    let o_nearSize = 5;
+    let o_farSize = 2;
+    if(type == 'height'){
+        let headerHeight = $(".header").height();
+        let toolsbarHeight = $(".toolsbar").height();
+        let exand = tag == "#main" ? 1:50;
+        let totalHeight = $(window).height() - headerHeight - toolsbarHeight-exand;
+        const navSize = eles.nav ? eles.nav[type]() + 4 : 0;
+        totalHeight = totalHeight - navSize;
+        let nearSize = (o_nearSize/(o_nearSize + o_farSize))* totalHeight;
+        eles.nearSpread[type](nearSize);
+        eles.farSpread[type](totalHeight - nearSize);
+        eles.farElement[type](totalHeight - nearSize + navSize);
+    }
+}

+ 123 - 26
web/common/js/uploadImg.js

@@ -8,35 +8,132 @@
  * @version
  */
 
+$(document).ready(function () {
+    //每页显示的图片数(后端也进行了控制)
+    const perImgs = 3;
+    /*
+     * 上传图片,清单规则、定额说明、定额工程量计算规则共用
+     * 通过各自的上传图片按钮value值判定触发来源
+     * 根据触发来源放置图片位置,一个来源一个文件夹,便于管理
+     * */
+    let curTrigger = '';
+    //同一页面中的所有触发器(定额中的说明和工程量计算规则都能上传图片)
+    let allTriggers = $('.uploadImgTrigger');
+    for(let theTrigger of allTriggers){
+        //点击上传图片
+        $(theTrigger).click(function () {
+            curTrigger = $(theTrigger).attr('trigger');
+            loadImges(curTrigger, 1);
+        });
+    }
+    $('#uploadImgFile').change(function(){
+        let file = $(this)[0],
+            img = file.files[0],
+            trigger = curTrigger;//触发源
+        if(img){
+            let formData = new FormData();
+            formData.append('file', img);
+            formData.append('trigger', trigger);
+            $.ajax({
+                url: '/stdBillsEditor/uploadImg',
+                type: 'POST',
+                data: formData,
+                cache: false,
+                contentType: false,
+                processData: false,
+                beforeSend: function() {
+                    $.bootstrapLoading.start();
+                },
+                success: function(response){
+                    loadImges(trigger, 1);
+                },
+                error: function(){
+                    alert('上传失败');
+                    $.bootstrapLoading.end();
+                }
+            });
+        }
+    });
 
-/*
-* 上传图片,清单规则、定额说明、定额工程量计算规则共用
-* 通过各自的上传图片按钮value值判定触发来源
-* 根据触发来源放置图片位置,一个来源一个文件夹,便于管理
-* */
-$('#uploadImgFile').change(function(){
-    let file = $(this)[0],
-        img = file.files[0],
-        trigger = $('#uploadImgTrigger').val();//触发源
-    if(img){
-        let formData = new FormData();
-        formData.append('img', img);
-        formData.append('trigger', trigger);
-        $.ajax({
-            url: '/stdBillsEditor/uploadImg',
-            type: 'POST',
-            data: formData,
-            cache: false,
-            contentType: false,
-            beforeSend: function() {
-                $.bootstrapLoading.start();
-            },
-            success: function(response){
+    /*
+     * 根据触发源和页码,按时间大小降序加载图片
+     * @param {String}trigger(触发源,同源同文件夹) {Number}page(要展示的页码)
+     * */
+    function loadImges(trigger, page) {
+        if(!$.bootstrapLoading.isLoading()){
+            $.bootstrapLoading.start();
+        }
+        CommonAjax.post('/stdBillsEditor/loadImgs', {trigger, page}, function (rstData) {
+            initImgsDiv(page, rstData.pageCount, rstData.currentImgsUrl);
+            if($.bootstrapLoading.isLoading){
                 $.bootstrapLoading.end();
-            },
-            error: function(){
+            }
+        }, function () {
+            if($.bootstrapLoading.isLoading){
                 $.bootstrapLoading.end();
             }
         });
     }
-});
+
+    /*
+     * 根据图片路径删除图片
+     * @param {String}trigger(操作源) {String}url(要删除图片的url)
+     * */
+    function delImg(trigger, url) {
+        $.bootstrapLoading.start();
+        CommonAjax.post('/stdBillsEditor/delImg', {trigger, url}, function (rstData) {
+            let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]);
+            loadImges(trigger, curPage);
+        }, function () {
+            $.bootstrapLoading.end();
+        });
+    }
+
+    /*
+    * 设置图片展示DIV
+    * @param {Number}curPage(当前页码) {Number}pageCount(页面总数) {Array}imgsUrl(所要展示图片的Url域后片段)
+    * @return{void}
+    * */
+    function initImgsDiv(curPage, pageCount, imgsUrl) {
+        //去掉端口的源
+        let trigger = curTrigger;
+        $('#prevPage').removeAttr('disabled');
+        $('#nextPage').removeAttr('disabled');
+        if(curPage <= 1){
+            $('#prevPage').attr('disabled', '');
+        }
+        if(curPage == pageCount){
+            $('#nextPage').attr('disabled', '');
+        }
+        $('#pageInfo').text(`${curPage} / ${pageCount}`);
+        $('#imgsDiv').find('.card').remove();
+        for(let imgUrl of imgsUrl){
+            let idx = imgsUrl.indexOf(imgUrl);
+            if(idx < perImgs){
+                //时间戳转化成时间显示
+                let date = new Date(parseInt(imgUrl.split('/').pop().split('.')[0])).toLocaleString();
+                date = date.replace(new RegExp('/', 'g'), '-').split(' ')[0];
+                let cardHtml = `<div class="card"><img class="card-img-top" src="/${imgUrl}" alt="Card image cap" height="180px"><div class="card-block"><p class="card-text">
+                                <input class="form-control form-control-sm" value="<img src='/${imgUrl}'>" readonly="readonly"><small class="mr-2">${date} 上传</small>
+                                <a href="javascript:void(0);" class="text-danger" delUrl="${imgUrl}" id="del${idx}">删除</a></p></div></div>`;
+                $('#imgsDiv').find(`.col-4:eq(${idx})`).html(cardHtml);
+                //删除图片
+                $(`#del${idx}`).click(function () {
+                    delImg(trigger, $(this).attr('delUrl'));
+                });
+            }
+        }
+    }
+    //上一页
+    $('#prevPage').click(function () {
+        let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]) - 1;
+        //加载图片
+        loadImges(curTrigger, curPage);
+    });
+    //下一页
+    $('#nextPage').click(function () {
+        let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]) + 1;
+        //加载图片
+        loadImges(curTrigger, curPage);
+    });
+});

+ 74 - 65
web/maintain/billsGuidance_lib/js/billsGuidance.js

@@ -552,77 +552,86 @@ const billsGuidance = (function () {
             if(sheet && sheet.getParent().qo){
                 setting.pos = SheetDataHelper.getObjPos(sheet.getParent().qo);
             }
-            if (setting.pos && text && text !== '') {
-                //固定不显示的div,存储文本获取固定div宽度,toolTipElement由于显示和隐藏,获取宽度不正确
-                if(!this._fixedTipElement){
-                    let div = $('#fixedTip1')[0];
-                    if (!div) {
-                        div = document.createElement("div");
-                        $(div).css("padding", 5)
-                            .attr("id", 'fixedTip');
-                        $(div).hide();
-                        document.body.insertBefore(div, null);
-                    }
-                    this._fixedTipElement = div;
-                }
-                $(this._fixedTipElement).width('');
-                $(this._fixedTipElement).html(text);
-                if (!this._toolTipElement) {
-                    let div = $('#autoTip1')[0];
-                    if (!div) {
-                        div = document.createElement("div");
-                        $(div).css("position", "absolute")
-                            .css("border", "1px #C0C0C0 solid")
-                            .css("box-shadow", "1px 2px 5px rgba(0,0,0,0.4)")
-                            .css("font", "0.9rem Calibri")
-                            .css("background", "white")
-                            .css("padding", 5)
-                            .attr("id", 'autoTip1');
-                        $(div).hide();
-                        document.body.insertBefore(div, null);
-                    }
-                    this._toolTipElement = div;
-                    $(this._toolTipElement).width('');
-                    //实时读取位置信息
-                    if(hitinfo.sheet && hitinfo.sheet.getParent().qo){
-                        setting.pos = SheetDataHelper.getObjPos(hitinfo.sheet.getParent().qo);
-                    }
-                    $(this._toolTipElement).html(text);
-                    //定额库定额特殊处理
-                    if($(hitinfo.sheet.getParent().qo).attr('id') === 'rationSpread'){
-                        let divWidth = $(this._fixedTipElement).width(),
-                            divHeight = $(this._fixedTipElement).height();
-                        if(divWidth > 600){
-                            divWidth = 590;
-                            $(this._toolTipElement).width(divWidth);
+            let delayTimes = 500; //延时时间
+            let now_timeStamp = +new Date();
+            this.tipTimeStamp = now_timeStamp;
+            let me = this;
+            setTimeout(function () {
+                if(now_timeStamp - me.tipTimeStamp == 0){//鼠标停下的时候才显示
+                    if (setting.pos && text && text !== '') {
+                        //固定不显示的div,存储文本获取固定div宽度,toolTipElement由于显示和隐藏,获取宽度不正确
+                        if(!me._fixedTipElement){
+                            let div = $('#fixedTip1')[0];
+                            if (!div) {
+                                div = document.createElement("div");
+                                $(div).css("padding", 5)
+                                    .attr("id", 'fixedTip');
+                                $(div).hide();
+                                document.body.insertBefore(div, null);
+                            }
+                            me._fixedTipElement = div;
                         }
-                        let top = setting.pos.y  + hitinfo.y - divHeight < 0 ? 0 :  setting.pos.y + hitinfo.cellRect.y - divHeight;
-                        $(this._toolTipElement).css("top", top).css("left", setting.pos.x - divWidth);
-                    }
-                    else{
-                        $(this._toolTipElement).css("top", setting.pos.y + hitinfo.y +15).css("left", setting.pos.x + hitinfo.x + 15);
-                    }
-                    //名称
-                    if(hitinfo.col === 2){
-                        let acStyle = hitinfo.sheet.getActualStyle(hitinfo.row, hitinfo.col),
-                            zoom = hitinfo.sheet.zoom();
-                        let value = hitinfo.sheet.getValue(hitinfo.row, hitinfo.col);
-                        let textLength = this.getAutoFitWidth(value, text, acStyle, zoom, {sheet: hitinfo.sheet, row: hitinfo.row, col: hitinfo.col, sheetArea: GC.Spread.Sheets.SheetArea.viewport});
-                        let cellWidth = hitinfo.sheet.getCell(-1, hitinfo.col).width();
-                        if(textLength > cellWidth){
-                            $(this._toolTipElement).css("top", setting.pos.y + hitinfo.y +15).css("left", setting.pos.x + hitinfo.x + 15);
-                            $(this._toolTipElement).show("fast");
-                            ration.tipDiv = 'show';//做个标记
+                        $(me._fixedTipElement).width('');
+                        $(me._fixedTipElement).html(text);
+                        if (!me._toolTipElement) {
+                            let div = $('#autoTip1')[0];
+                            if (!div) {
+                                div = document.createElement("div");
+                                $(div).css("position", "absolute")
+                                    .css("border", "1px #C0C0C0 solid")
+                                    .css("box-shadow", "1px 2px 5px rgba(0,0,0,0.4)")
+                                    .css("font", "0.9rem Calibri")
+                                    .css("background", "white")
+                                    .css("padding", 5)
+                                    .attr("id", 'autoTip1');
+                                $(div).hide();
+                                document.body.insertBefore(div, null);
+                            }
+                            me._toolTipElement = div;
+                            $(me._toolTipElement).width('');
+                            //实时读取位置信息
+                            if(hitinfo.sheet && hitinfo.sheet.getParent().qo){
+                                setting.pos = SheetDataHelper.getObjPos(hitinfo.sheet.getParent().qo);
+                            }
+                            $(me._toolTipElement).html(text);
+                            //定额库定额特殊处理
+                            if($(hitinfo.sheet.getParent().qo).attr('id') === 'rationSpread'){
+                                let divWidth = $(me._fixedTipElement).width(),
+                                    divHeight = $(me._fixedTipElement).height();
+                                if(divWidth > 600){
+                                    divWidth = 590;
+                                    $(me._toolTipElement).width(divWidth);
+                                }
+                                let top = setting.pos.y  + hitinfo.y - divHeight < 0 ? 0 :  setting.pos.y + hitinfo.cellRect.y - divHeight;
+                                $(me._toolTipElement).css("top", top).css("left", setting.pos.x - divWidth);
+                            }
+                            else{
+                                $(me._toolTipElement).css("top", setting.pos.y + hitinfo.y +15).css("left", setting.pos.x + hitinfo.x + 15);
+                            }
+                            //名称
+                            if(hitinfo.col === 2){
+                                let acStyle = hitinfo.sheet.getActualStyle(hitinfo.row, hitinfo.col),
+                                    zoom = hitinfo.sheet.zoom();
+                                let value = hitinfo.sheet.getValue(hitinfo.row, hitinfo.col);
+                                let textLength = me.getAutoFitWidth(value, text, acStyle, zoom, {sheet: hitinfo.sheet, row: hitinfo.row, col: hitinfo.col, sheetArea: GC.Spread.Sheets.SheetArea.viewport});
+                                let cellWidth = hitinfo.sheet.getCell(-1, hitinfo.col).width();
+                                if(textLength > cellWidth){
+                                    $(me._toolTipElement).css("top", setting.pos.y + hitinfo.y +15).css("left", setting.pos.x + hitinfo.x + 15);
+                                    $(me._toolTipElement).show("fast");
+                                    ration.tipDiv = 'show';//做个标记
+                                }
+                            }
+                            else {
+                                $(me._toolTipElement).show("fast");
+                                ration.tipDiv = 'show';//做个标记
+                            }
                         }
                     }
-                    else {
-                        $(this._toolTipElement).show("fast");
-                        ration.tipDiv = 'show';//做个标记
-                    }
                 }
-            }
+            },delayTimes);
         };
         TipCellType.prototype.processMouseLeave = function (hininfo) {
+            this.tipTimeStamp = +new Date();
             ration.tipDiv = 'hide';
             if (this._toolTipElement) {
                 $(this._toolTipElement).hide();

+ 7 - 18
web/maintain/bills_lib/html/qingdan.html

@@ -85,7 +85,7 @@
                   </div>-->
                   <div class="form-group">
                       <a class="pull-right" href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a>
-                      <!--<a id="uploadImgTrigger" value="billsRecharge" class="pull-right mr-3" href="javacript:void(0);" data-toggle="modal" data-target="#uploadimg" ><i class="fa fa-image"></i>上传图片</a>-->
+                      <a trigger="billsRecharge" class="pull-right mr-3 uploadImgTrigger" href="javacript:void(0);" data-toggle="modal" data-target="#uploadimg" ><i class="fa fa-image"></i>上传图片</a>
                       <label for="exampleTextarea">补注:</label>
                       <textarea class="form-control" id="exampleTextarea" rows="8"></textarea>
                   </div>
@@ -266,6 +266,7 @@
         </div>
     </div>
     <!--弹出html填写帮助-->
+    <!--弹出html填写帮助-->
     <div class="modal fade" id="help" style="display: none;" aria-hidden="true">
         <div class="modal-dialog" role="document">
             <div class="modal-content">
@@ -276,28 +277,14 @@
                     </button>
                 </div>
                 <div class="modal-body">
-                    <p class="mb-0">标题:&lt;h3&gt;、&lt;h4&gt;、&lt;h5&gt;</p>
-                    <p class="text-primary mb-0">&lt;h3&gt;标题1&lt;/h3&gt;</p>
-                    <h3>标题1</h3>
-                    <p class="text-primary mb-0">&lt;h4&gt;标题2&lt;/h4&gt;</p>
-                    <h4>标题2</h4>
-                    <p class="text-primary mb-0">&lt;h5&gt;标题3&lt;/h5&gt;</p>
-                    <h5>标题3</h5>
-                    <p class="text-primary mb-0">&lt;p&gt;这是一行文本&lt;/p&gt;</p>
-                    <p>这是一行文本</p>
-                    <p class="mb-0">加粗:&lt;b&gt;</p>
-                    <p class="text-primary mb-0">&lt;p&gt;这是一行&lt;b&gt;文本&lt;/b&gt;&lt;/p&gt;</p>
-                    <p>这是一行<b>文本</b></p>
-                    <p class="mb-0">缩进:text-indent</p>
-                    <p class="text-primary mb-0">&lt;p class="text-indent" &gt;这是一行带缩进的文本&lt;/p&gt;</p>
-                    <p class="text-indent">这是一行带缩进的文本</p>
+                    <p class="text-primary">&lt;p&gt;这是一行文本&lt;/p&gt;</p>
                     <p class="mb-0">文本居中:text-center</p>
                     <p class="text-primary">&lt;p class="text-center" &gt;这是一行文本&lt;/p&gt;</p>
                     <p class="mb-0">文本居右:text-right</p>
                     <p class="text-primary">&lt;p class="text-right" &gt;这是一行文本&lt;/p&gt;</p>
                     <p class="mb-0">文本居左(默认已居左):text-left</p>
                     <p class="text-primary">&lt;p class="text-left" &gt;这是一行文本&lt;/p&gt;</p>
-                    <p class="mb-0">表格:&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;td&gt;</p>
+                    <p class="mb-0">表格:table、tr、th、td</p>
                     <p class="mb-0 text-primary">&lt;table&gt;</p>
                     <p class="mb-0 text-primary">&lt;tr&gt;&lt;th&gt;表头1&lt;/th&gt;&lt;th&gt;表头2&lt;/th&gt;&lt;th&gt;表头3&lt;/th&gt;&lt;/tr&gt;</p>
                     <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容1&lt;/td&gt;&lt;td&gt;内容2&lt;/td&gt;&lt;td&gt;内容3&lt;/td&gt;&lt;/tr&gt;</p>
@@ -331,7 +318,7 @@
                     <p class="mb-0 text-primary">&lt;/table&gt;</p>
                     <p>
                     <table class="table table-sm table-bordered">
-                        <tr><th colspan="2">表头1表头2</th><th>表头3</th></tr>
+                        <tr><th>表头1</th><th>表头2</th><th>表头3</th></tr>
                         <tr><td rowspan="2">内容1内容4</td><td>内容2</td><td>内容3</td></tr>
                         <tr><td>内容5</td><td>内容6</td></tr>
                     </table>
@@ -352,6 +339,8 @@
     <script src="/lib/tether/tether.min.js"></script>
     <script src="/lib/bootstrap/bootstrap.min.js"></script>
     <script src="/web/maintain/bills_lib/scripts/global.js"></script>
+    <script src="/public/web/PerfectLoad.js"></script>
+    <script src="/public/web/common_ajax.js"></script>
     <script src="/public/web/sheet/sheet_common.js"></script>
     <script src="/web/maintain/bills_lib/scripts/set_sheets.js"></script>
     <script src="/web/maintain/bills_lib/scripts/bills_lib_ajax.js"></script>

+ 21 - 13
web/maintain/ration_repository/dinge.html

@@ -58,7 +58,7 @@
         <div class="content">
             <div class="container-fluid">
                 <div class="row">
-                    <div class="main-side col-3 p-0" style="width: 100%; height: 100%; overflow: hidden">
+                    <div class="main-side p-0" style="width: 25%; height: 100%; overflow: hidden">
                         <div class="tab-bar">
                             <a href="javascript:void(0);" id="tree_Insert" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="插入"><i class="fa fa-plus" aria-hidden="true"></i></a>
                             <a href="javascript:void(0);" id="tree_remove" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
@@ -71,7 +71,7 @@
                             <!--<ul id="rationChapterTree" class="ztree"></ul>-->
                         </div>
                     </div>
-                    <div class="main-content col-9 p-0" id="mainContent">
+                    <div class="main-content p-0" id="mainContent" style="width: 75%">
                         <!-- 右标签 -->
                         <ul class="nav nav-tabs tools-bar" role="tablist">
                             <li class="nav-item">
@@ -124,7 +124,7 @@
                             <div class="tab-pane" id="tsm" role="tabpanel">
                                 <div class="main-data">
                                 <div class="main-content m-2">
-                                    <p class="ml-3 mt-3"><a href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a></p>
+                                    <a trigger="rationExplanation" class="mr-3 uploadImgTrigger" href="javacript:void(0);" data-toggle="modal" data-target="#uploadimg" ><i class="fa fa-image"></i>上传图片</a><a href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a></p>
                                     <textarea id="explanationShow" name="editor" class="form-control "></textarea>
                                     <!--<h5>说明</h5>
                                     <textarea id="explanationShow" class="form-control" style="background: white;"></textarea>-->
@@ -136,7 +136,7 @@
                                 <div class="main-data">
                                     <!--         <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#editTjs" title="编辑">编辑计算规则</a></div>-->
                                     <div class="main-content m-2">
-                                        <p class="ml-3 mt-3"><a href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a></p>
+                                        <a trigger="rationRuleText" class="mr-3 uploadImgTrigger" href="javacript:void(0);" data-toggle="modal" data-target="#uploadimg" ><i class="fa fa-image"></i>上传图片</a><a href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a></p>
                                         <textarea id="ruleTextShow" name="editor" class="form-control "></textarea>
                                         <!--<h5>计算规则</h5>
                                         <textarea id="ruleTextShow" class="form-control" style="background: white;"></textarea>-->
@@ -172,11 +172,14 @@
                                 </div>
                             </div>
                         </div>
-                    </div i>
-                    <div class="main-side col-3 p-0" id="zmhsContent" style="display: none">
-                        <div class="main-data-top-fluid" id="mainSpread">
-                        </div>
-                        <div class="bottom-content" id="contentSpread">
+                    </div>
+                    <div class="main-side p-0 main-side-right" id="zmhsContent" style="width: 25%; display: none">
+                        <div class="resize" id="sideResize" style="width: 1%; height: 100%; resize:horizontal; cursor: w-resize; float: left; background: #F1F1F1"></div>
+                        <div style="width: 99%; float: left">
+                            <div class="main-data-top-fluid" id="mainSpread">
+                            </div>
+                            <div class="bottom-content" id="contentSpread">
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -538,6 +541,8 @@
                 </div>
             </div>
         </div>
+        <%include ../../common/html/uploadImg.html %>
+        <!--弹出html填写帮助-->
         <!--弹出html填写帮助-->
         <div class="modal fade" id="help" style="display: none;" aria-hidden="true">
             <div class="modal-dialog" role="document">
@@ -571,7 +576,7 @@
                         <p class="mb-0">文本居左(默认已居左):text-left</p>
                         <p class="text-primary">&lt;p class="text-left" &gt;这是一行文本&lt;/p&gt;</p>
                         <p class="mb-0">表格:&lt;table&gt;、&lt;tr&gt;、&lt;th&gt;、&lt;td&gt;</p>
-                        <p class="mb-0 text-primary">&lt;table&gt;</p>
+                        <p class="mb-0 text-primary">&lt;table class="table table-sm table-border"&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;th&gt;表头1&lt;/th&gt;&lt;th&gt;表头2&lt;/th&gt;&lt;th&gt;表头3&lt;/th&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容1&lt;/td&gt;&lt;td&gt;内容2&lt;/td&gt;&lt;td&gt;内容3&lt;/td&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容4&lt;/td&gt;&lt;td&gt;内容5&lt;/td&gt;&lt;td&gt;内容6&lt;/td&gt;&lt;/tr&gt;</p>
@@ -584,7 +589,7 @@
                         </table>
                         </p>
                         <p class="mb-0">合并横向单元格(2格):colspan="2"</p>
-                        <p class="mb-0 text-primary">&lt;table&gt;</p>
+                        <p class="mb-0 text-primary">&lt;table class="table table-sm table-border"&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;th colspan="2"&gt;表头1表头2&lt;/th&gt;&lt;th&gt;表头3&lt;/th&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容1&lt;/td&gt;&lt;td&gt;内容2&lt;/td&gt;&lt;td&gt;内容3&lt;/td&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容4&lt;/td&gt;&lt;td&gt;内容5&lt;/td&gt;&lt;td&gt;内容6&lt;/td&gt;&lt;/tr&gt;</p>
@@ -597,14 +602,14 @@
                         </table>
                         </p>
                         <p class="mb-0">合并竖向单元格(2格):rowspan="2"</p>
-                        <p class="mb-0 text-primary">&lt;table&gt;</p>
+                        <p class="mb-0 text-primary">&lt;table class="table table-sm table-border"&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;th&gt;表头1&lt;/th&gt;&lt;th&gt;表头2&lt;/th&gt;&lt;th&gt;表头3&lt;/th&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td rowspan="2"&gt;内容1内容4&lt;/td&gt;&lt;td&gt;内容2&lt;/td&gt;&lt;td&gt;内容3&lt;/td&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;tr&gt;&lt;td&gt;内容5&lt;/td&gt;&lt;td&gt;内容6&lt;/td&gt;&lt;/tr&gt;</p>
                         <p class="mb-0 text-primary">&lt;/table&gt;</p>
                         <p>
                         <table class="table table-sm table-bordered">
-                            <tr><th colspan="2">表头1表头2</th><th>表头3</th></tr>
+                            <tr><th>表头1</th><th>表头2</th><th>表头3</th></tr>
                             <tr><td rowspan="2">内容1内容4</td><td>内容2</td><td>内容3</td></tr>
                             <tr><td>内容5</td><td>内容6</td></tr>
                         </table>
@@ -626,6 +631,7 @@
         <script src="/lib/bootstrap/bootstrap.min.js"></script>
         <script src="/lib/lodash/lodash.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/global.js"></script>
+        <script src="/public/web/PerfectLoad.js"></script>
         <!-- zTree -->
         <script type="text/javascript" src="/lib/ztree/jquery.ztree.core.js"></script>
         <script type="text/javascript" src="/lib/ztree/jquery.ztree.excheck.js"></script>
@@ -657,6 +663,8 @@
         <script type="text/javascript" src="/web/maintain/ration_repository/js/coe.js"></script>
         <script src="/lib/codemirror/codemirror.js"></script>
         <script src="/lib/codemirror/xml.js"></script>
+        <script src="/web/common/js/uploadImg.js"></script>
+        <script src="/web/common/js/slideResize.js"></script>
         <script type="text/javascript">
             var exEditor = CodeMirror.fromTextArea(document.getElementById("explanationShow"), {
                 mode: "text/html",

+ 25 - 4
web/maintain/ration_repository/js/coe.js

@@ -4,12 +4,34 @@
 //modiyied by zhong on 2017/9/21
 
 $(document).ready(function () {
+    //子目换算左右拖动
+    let sideResizeEles = {};
+    sideResizeEles.totalWidth = 0.75;
+    sideResizeEles.id = 'stdCoe';
+    sideResizeEles.resize = $('#sideResize');
+    sideResizeEles.evFixedSize = `$(window).width()-$('.main-nav').width()-5`;
+    sideResizeEles.nearElement = $('.main-content');
+    sideResizeEles.nearSpread = $('.main-content');
+    sideResizeEles.farElement = $('.main-side-right');
+    sideResizeEles.farSpread = $('.main-side-right');
+    sideResizeEles.nav = null;
+    slideResize(sideResizeEles, {min: 250, max: $('.content').width()-260}, 'width', function(){
+        if (sideResizeEles.id === 'stdCoe') {
+            coeOprObj.workBook.refresh();
+            gljAdjOprObj.workBook.refresh();
+            rationOprObj.workBook.refresh();
+            rationGLJOprObj.sheet.getParent().refresh();
+        }
+    });
+
     $('#zmhs').click(function () {
         if(!$(this).hasClass('active')){
             $(this).addClass('active');
-            $('#mainContent').removeClass('col-9');
-            $('#mainContent').addClass('col-6');
+            $('#mainContent').css('width', '50%');
             $('#zmhsContent').show();
+            loadSize(sideResizeEles, 'width', function(){
+
+            });
             if(!coeOprObj.workBook){
                 pageObj.initPage();
             }
@@ -19,8 +41,7 @@ $(document).ready(function () {
             rationGLJOprObj.sheet.getParent().refresh();
         } else {
             $(this).removeClass('active');
-            $('#mainContent').removeClass('col-6');
-            $('#mainContent').addClass('col-9');
+            $('#mainContent').css('width', '75%')
             $('#zmhsContent').hide();
             rationOprObj.workBook.refresh();
             rationGLJOprObj.sheet.getParent().refresh();

+ 38 - 0
web/maintain/ration_repository/js/global.js

@@ -54,3 +54,41 @@ $(function(){
     });
     /*工具提示*/
 });
+/**
+ * 设置本地缓存
+ *
+ * @param {String} key
+ * @param {String|Number} value
+ * @return {void}
+ */
+function setLocalCache(key, value) {
+    const storage = window.localStorage;
+    if (!storage || key === '' || value === '') {
+        return;
+    }
+
+    storage.setItem(key, value);
+}
+
+/**
+ * 获取本地缓存
+ *
+ * @param {String} key
+ * @return {String}
+ */
+function getLocalCache(key) {
+    const storage = window.localStorage;
+    if (!storage || key === '') {
+        return null;
+    }
+
+    return storage.getItem(key);
+}
+
+function removeLocalCache(key) {
+    const storage = window.localStorage;
+    if (!storage || key === '') {
+        return null;
+    }
+    return storage.removeItem(key);
+}

+ 20 - 5
web/maintain/ration_repository/js/ration.js

@@ -73,7 +73,8 @@ let rationOprObj = {
             me.rationSelInit(row);
         }
     },
-    rationSelInit: function (row) {
+    //focusOnSection将工作簿焦点移到章节表上
+    rationSelInit: function (row, focusOnSection = null) {
         let me = rationOprObj,
             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
@@ -86,20 +87,34 @@ let rationOprObj = {
         let cacheSection = me.getCache();
         if (cacheSection && row < cacheSection.length) {
             rationGLJOprObj.getGljItems(cacheSection[row], function () {
-                me.workBook.focus(true);
+                if (focusOnSection){
+                    sectionTreeObj.workBook.focus(true);
+                } else {
+                    me.workBook.focus(true);
+                }
             });
             rationCoeOprObj.getCoeItems(cacheSection[row], function () {
-                me.workBook.focus(true);
+                if (focusOnSection){
+                    sectionTreeObj.workBook.focus(true);
+                } else {
+                    me.workBook.focus(true);
+                }
             });
             rationAssistOprObj.getAssItems(cacheSection[row]);
             rationInstObj.getInstItems(cacheSection[row], function () {
-                me.workBook.focus(true);
+                if (focusOnSection){
+                    sectionTreeObj.workBook.focus(true);
+                } else {
+                    me.workBook.focus(true);
+                }
             });
         }
         else {
             rationGLJOprObj.currentRationItem = null;
         }
-        me.workBook.focus(true);
+        if (!focusOnSection) {
+            me.workBook.focus(true);
+        }
     },
 
     isInt: function (num) {

+ 1 - 1
web/maintain/ration_repository/js/section_tree.js

@@ -633,7 +633,7 @@ let sectionTreeObj = {
             rationOprObj.workBook.getSheet(0).clearSelection();
             rationOprObj.getRationItems(node.data.ID, function () {
                 rationOprObj.workBook.getActiveSheet().setActiveCell(0, 0);
-                rationOprObj.rationSelInit(0);
+                rationOprObj.rationSelInit(0, true);
             });
             rationOprObj.setCombo(rationOprObj.workBook.getSheet(0), 'dynamic');
         }