数字文本框

1. 基本功能 1. 基本功能

1.1. 数字控件小数位填充配置 1.1. 数字控件小数位填充配置

默认数字控件小数位会自动填充零,支持配置不自动补齐后面的精度位数。
333

1.2. 格式化表达式 1.2. 格式化表达式

若要实现界面显示的小数位数和数据库设置的不一致,则需配置格式化表达式,格式化表达式只针对数字控件
格式化

2. 配置方法 2. 配置方法

2.1. 数字控件小数位填充配置 2.1. 数字控件小数位填充配置

  1. 项目管理–项目初始化–视图级配置菜单,新增【配置项类型】为是数字控件小数位填充零(Y/N),【配置内容】为N
    数字控件小数位填充零
  2. 设置完后点击保存,返回视图管理配置页面,勾选刚才新增的配置项,点击【批量提交】按钮。
  3. 重新生成代码。

2.2. 格式化表达式 2.2. 格式化表达式

配置

  1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮,找到要配置格式化表达式的属性,在右边属性列表里面的格式化表达式里面填写表达式。格式为【number:格式化小数位数】,其中【number】代表的是数字控件中的千位分隔符。
    格式化2

代码

在html中生成了g-format标签

<input id="testDengpp3101.itemLength" g-numeric="" allow-float="true" allow-negative="true" empty-zero="false" g-format="number:2" g-precision="3" rounding="true" zero-fill="true" max-length="19" integerpart-length="15" name="itemLength" class="input form-control" ng-model="testDengpp3101.itemLength" type="text" g-focus-select="" ng-disabled="testDengpp3101.testDengppId==null||$$isDeleted_=='Y'" />

3. 常用扩展 3. 常用扩展

3.1. 根据字段的值设置保留位数 3.1. 根据字段的值设置保留位数

  1. 数字控件根据某个或多个字段的值设置保留位数,常见场景例如:在油水加装业务中,不同的油种输入的数量的位数是不一样的,在输入的时候就需要控制其小数是否存在。
    2
  2. 代码部分,参考如下
    首先查询出所有的油种,然后根据油种判断是否保留小数
$scope.customOwConsumption2Init=function(){
                $scope.scaleInstall="0";
                $scope.scaleStorage="0";
                $scope.scaleConsumption="0";

                $scope.oilNames=[];
                $scope.oilScales=[];
                $scope.oilUnits=[];
                $http.post($config.ctx+"/owConsumption2/getScaleLength",{}).success(function(data){
                    if(data.success!=undefined&&data.success==true){
                        var mapOilNameAndScale=data.mapOilNameAndScale;
                        if(mapOilNameAndScale!=null){
                            var oilName=mapOilNameAndScale.oilName;   //油种名称
                            var oilScale=mapOilNameAndScale.oilScale;  //保留位数
                            var oilUnit=mapOilNameAndScale.oilUnit     //单位(规格)
                            $scope.oilNames=oilName;
                            $scope.oilScales=oilScale;
                            $scope.oilUnits=oilUnit;
                        }
                    }
                });
            };

然后在油水新增的时候选择哪个油种后,然后更具查询到的对应油种的保留位数来控制是否保留小数:
表格行选中事件绑定:

/**

* 设置保留位数

*/

$scope.setScale = function(type) {

    var selectRow = {};

    if (type == "lpOilWaterInstallation2") {

        selectRow = $scope.lpOilWaterInstallation2;

    } else if (type == "rptOilWaterStorage2") {

        selectRow = $scope.rptOilWaterStorage2;

    } else if (type == "evOilWaterConsumption2") {

        selectRow = $scope.evOilWaterConsumption2;

    }

    var variety = selectRow.variety;

    if (!variety) return;

    //通过循环匹配出对应品种的保留为数情况
    for (var i = 0; i & lt; $scope.oilNames.length; i++) {

        var oilName = $scope.oilNames[i];

        if (variety === oilName) {

            var oilScale = $scope.oilScales[i];

            if (type == "lpOilWaterInstallation2") {

                $scope.scaleInstall = oilScale;

            } else if (type == "rptOilWaterStorage2") {

                $scope.scaleStorage = oilScale;

            } else if (type == "evOilWaterConsumption2") {

                $scope.scaleConsumption = oilScale;

            }

        }

    }

}

表格中数字控件数据change事件:(标红的就是判断的依据)

$scope.controllValueMoreThanZero = function(type, ifTip) {

    if (ifTip == undefined) ifTip = '1';

    if (type == "quantity") {

        var selectRow = $scope.lpOilWaterInstallation2SelectedRow;

        var quantity = selectRow.quantity;

        if (quantity & amp; & amp; quantity != "") {

            if (Number(quantity) & lt; = 0) {

                GillionMsg.alert("提示", "【数量】必须大于零!");

                $scope.lpOilWaterInstallation2SelectedRow.quantity = 1;

                return;

            } else {

                var quantityNew = Number(Number(quantity) % 1);

                if ($scope.scaleInstall == "0") {

                    if (quantityNew & lt; 1 & amp; & amp; quantityNew & gt; 0) {

                        quantity = Math.round(quantity);

                        if (ifTip == "1") {

                            //GillionMsg.alert("提示","【润滑油类或水类】数量必须为整数!");
                        }

                        $scope.lpOilWaterInstallation2SelectedRow.quantity = quantity;

                        return;

                    }

                }

            }

        }

    } else if (type == "unitPrice") {

        var selectRow = $scope.lpOilWaterInstallation2SelectedRow;

        var unitPrice = selectRow.unitPrice;

        if (unitPrice & amp; & amp; unitPrice != "") {

            if (Number(unitPrice) & lt; = 0) {

                GillionMsg.alert("提示", "【单价】必须大于零!");

                $scope.lpOilWaterInstallation2SelectedRow.unitPrice = 1;

                return;

            }

        }

    } else if (type == "shipInventory") {

        var selectRow = $scope.rptOilWaterStorage2SelectedRow;

        var shipInventory = selectRow.shipInventory;

        if (shipInventory & amp; & amp; shipInventory != "") {

            if (Number(shipInventory) & lt; 0) {

                GillionMsg.alert("提示", "【本次结存量】必须大于等于零!");

                $scope.rptOilWaterStorage2SelectedRow.shipInventory = 0;

                return;

            } else {

                shipInventoryNew = Number(Number(shipInventory) % 1);

                if ($scope.scaleStorage == "0") {

                    if (shipInventoryNew & lt; 1 & amp; & amp; shipInventoryNew & gt; 0) {

                        shipInventory = Math.round(shipInventory);

                        var shipInventoryOld = selectRow.shipInventoryOld;

                        shipInventoryOld = Math.round(shipInventoryOld);

                        if (ifTip == "1") {

                            //GillionMsg.alert("提示","【润滑油类或水类】本次结存量必须为整数!");
                        }

                        $scope.rptOilWaterStorage2SelectedRow.shipInventory = shipInventory;

                        $scope.rptOilWaterStorage2SelectedRow.shipInventoryOld = shipInventoryOld;

                        return;

                    }

                }

            }

        }

    } else if (type == "shipInventoryOld") {

        var selectRow = $scope.rptOilWaterStorage2SelectedRow;

        var shipInventoryOld = selectRow.shipInventoryOld;

        if (shipInventoryOld & amp; & amp; shipInventoryOld != "") {

            if (Number(shipInventoryOld) & lt; 0) {

                GillionMsg.alert("提示", "【上次结存量】必须大于等于零!");

                $scope.rptOilWaterStorage2SelectedRow.shipInventoryOld = 0;

                return;

            } else {

                shipInventoryOldNew = Number(Number(shipInventoryOld) % 1);

                if ($scope.scaleStorage == "0") {

                    if (shipInventoryOldNew & lt; 1 & amp; & amp; shipInventoryOldNew & gt; 0) {

                        shipInventoryOld = Math.round(shipInventoryOld);

                        if (ifTip == "1") {

                            //GillionMsg.alert("提示","【润滑油类或水类】上次结存量必须为整数!");
                        }

                        $scope.rptOilWaterStorage2SelectedRow.shipInventoryOld = shipInventoryOld;

                        return;

                    }

                }

            }

        }

    } else if (type == "productionConsumption") {

        var selectRow = $scope.evOilWaterConsumption2SelectedRow;

        var productionConsumption = selectRow.productionConsumption;

        if (productionConsumption & amp; & amp; productionConsumption != "") {

            if (Number(productionConsumption) & lt; 0) {

                GillionMsg.alert("提示", "【生产耗量】必须大于等于零!");

                $scope.evOilWaterConsumption2SelectedRow.productionConsumption = 0;

                return;

            } else {

                productionConsumptionNew = Number(Number(productionConsumption) % 1);

                if ($scope.scaleConsumption == "0") {

                    if (productionConsumptionNew & lt; 1 & amp; & amp; productionConsumptionNew & gt; 0) {

                        productionConsumption = Math.round(productionConsumption);

                        var nonproductionConsumption = selectRow.nonproductionConsumption;

                        nonproductionConsumption = Math.round(nonproductionConsumption);

                        if (ifTip == "1") {

                            //GillionMsg.alert("提示","【润滑油类或水类】生产耗量必须为整数!");
                        }

                        $scope.evOilWaterConsumption2SelectedRow.productionConsumption = productionConsumption;

                        $scope.evOilWaterConsumption2SelectedRow.nonproductionConsumption = nonproductionConsumption;

                        return;

                    }

                }

            }

        }

    } else if (type == "nonProductionConsumption") {

        var selectRow = $scope.evOilWaterConsumption2SelectedRow;

        var nonproductionConsumption = selectRow.nonProductionConsumption;

        if (nonproductionConsumption & amp; & amp; nonproductionConsumption != "") {

            if (Number(nonproductionConsumption) & lt; 0) {

                GillionMsg.alert("提示", "【非生产耗量】必须大于等于零!");

                $scope.evOilWaterConsumption2SelectedRow.nonProductionConsumption = 0;

                return;

            } else {

                nonproductionConsumptionNew = Number(Number(nonproductionConsumption) % 1);

                if ($scope.scaleConsumption == "0") {

                    if (nonproductionConsumptionNew & lt; 1 & amp; & amp; nonproductionConsumptionNew & gt; 0) {

                        nonproductionConsumption = Math.round(nonproductionConsumption);

                        if (ifTip == "1") {

                            //GillionMsg.alert("提示","【润滑油类或水类】非生产耗量必须为整数!");
                        }

                        $scope.evOilWaterConsumption2SelectedRow.nonProductionConsumption = nonproductionConsumption;

                        return;

                    }

                }

            }

        }

    }

};

4. 版本更新 4. 版本更新