概算分隔符
parent
33636f811c
commit
6a80ae4316
|
@ -17,6 +17,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.format.datetime.DateFormatter;
|
||||
import org.springframework.format.number.NumberStyleFormatter;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
|
@ -551,6 +552,7 @@ public class ProjectController extends BaseController {
|
|||
@InitBinder
|
||||
public void initBinder(WebDataBinder webDataBinder) {
|
||||
webDataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
|
||||
webDataBinder.addCustomFormatter(new NumberStyleFormatter());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,7 +9,6 @@ var layuiAlert = function(msg) {
|
|||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* parse float保留两位小数,四舍五入
|
||||
* 空格或者非数字认为是0
|
||||
|
@ -20,6 +19,10 @@ function f2(x) {
|
|||
if(!x){
|
||||
return 0;
|
||||
}
|
||||
if(typeof x === 'string'){
|
||||
//这一步因为数字格式化为了包含分隔符,获取的时候就去掉这个分隔符
|
||||
x = x.replaceAll(",","");
|
||||
}
|
||||
var f = parseFloat(x);
|
||||
if (isNaN(f)) {
|
||||
return 0;
|
||||
|
@ -28,17 +31,24 @@ function f2(x) {
|
|||
}
|
||||
|
||||
/**
|
||||
* 给定一个数字,保留两位小数输出
|
||||
* 给定一个数字,保留两位小数输出,格式化为包含分隔符
|
||||
* @param f
|
||||
* @returns {string}
|
||||
*/
|
||||
function f2Fixed(f) {
|
||||
return Number(f).toFixed(2);
|
||||
|
||||
//格式化413,423,423.24,数字类型的输入框填入这样的有问题
|
||||
//return Number(f).toLocaleString('zh',{minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: true});
|
||||
//return Number(f).toFixed(2);
|
||||
//格式化413,423,423.24
|
||||
f = Number(f).toLocaleString('en-US',{minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: true});
|
||||
return f;
|
||||
}
|
||||
|
||||
function digitalSelf(name, action) {
|
||||
var self = inputVal(name);
|
||||
|
||||
var $action = $(action);
|
||||
|
||||
$action.val(f2Fixed(f2(self)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算利润率
|
||||
|
@ -56,32 +66,37 @@ function rate(r1,r2) {
|
|||
|
||||
|
||||
/**
|
||||
* 保留两位小数
|
||||
* 保留数字两位小数
|
||||
*/
|
||||
function bindNumberInput() {
|
||||
//所有的数字输入框
|
||||
var $inputs = $("input[type='number']");
|
||||
//所有的数字类型输入框
|
||||
var $numberTypeInputs = $("input[type='number']");
|
||||
inputKeepDigital($numberTypeInputs);
|
||||
|
||||
//所有的number类的输入框
|
||||
var $numberClassInputs = $("input.number");
|
||||
inputKeepDigital($numberClassInputs);
|
||||
}
|
||||
|
||||
function inputKeepDigital($inputs) {
|
||||
//键盘键弹起的时候
|
||||
$inputs.keyup(function () {
|
||||
keepDigital($(this));
|
||||
});
|
||||
//失去焦点时再校验一遍
|
||||
$inputs.blur(function() {
|
||||
|
||||
/*var reg = new RegExp("^(\-)?[0-9]+(.[0-9]{1,2})?$");
|
||||
if (reg.test(value)) {
|
||||
//是数字就是数字,可以两位或者不带小数
|
||||
$(this).val(value);
|
||||
} else {
|
||||
$(this).val("");
|
||||
}*/
|
||||
keepDigital($(this));
|
||||
});
|
||||
}
|
||||
|
||||
function keepDigital($input) {
|
||||
var value = $input.val();
|
||||
$input.val(keepDigitalVal($input.val()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 只保留数字
|
||||
*/
|
||||
function keepDigitalVal(value) {
|
||||
value = value.replace(/[^\-\d.]/g, ""); //清除“-”、“数字”和“.”以外的字符
|
||||
value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
|
||||
value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
|
||||
|
@ -90,7 +105,8 @@ function keepDigital($input) {
|
|||
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
||||
value = parseFloat(value);
|
||||
}
|
||||
$input.val(value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,30 +4,36 @@ function calIncomeAndCost() {
|
|||
calIncomeCost();
|
||||
|
||||
calIncomeDeviceTaxExclude();
|
||||
digitalSelf("incomeDeviceTaxInclude", "input[name='incomeDeviceTaxInclude']");
|
||||
});
|
||||
$("input[name='incomeEngineerTaxInclude']").change(function () {
|
||||
calIncomeInclude();
|
||||
calIncomeCost();
|
||||
|
||||
calIncomeEngineerTaxExclude();
|
||||
digitalSelf("incomeEngineerTaxInclude", "input[name='incomeEngineerTaxInclude']");
|
||||
});
|
||||
$("input[name='incomeServiceTaxInclude']").change(function () {
|
||||
calIncomeInclude();
|
||||
calIncomeCost();
|
||||
|
||||
calIncomeServiceTaxExclude();
|
||||
digitalSelf("incomeServiceTaxInclude", "input[name='incomeServiceTaxInclude']");
|
||||
});
|
||||
$("input[name='incomeDeviceTaxExclude']").change(function () {
|
||||
calIncomeExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("incomeDeviceTaxExclude", "input[name='incomeDeviceTaxExclude']");
|
||||
});
|
||||
$("input[name='incomeEngineerTaxExclude']").change(function () {
|
||||
calIncomeExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("incomeEngineerTaxExclude", "input[name='incomeEngineerTaxExclude']");
|
||||
});
|
||||
$("input[name='incomeServiceTaxExclude']").change(function () {
|
||||
calIncomeExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("incomeServiceTaxExclude", "input[name='incomeServiceTaxExclude']");
|
||||
});
|
||||
|
||||
|
||||
|
@ -38,24 +44,28 @@ function calIncomeAndCost() {
|
|||
calIncomeCost();
|
||||
|
||||
calCostPurchaseDeviceTaxInclude();
|
||||
digitalSelf("costPurchaseDeviceTaxInclude", "input[name='costPurchaseDeviceTaxInclude']");
|
||||
});
|
||||
$("input[name='costPurchaseBuildTaxInclude']").change(function () {
|
||||
calCostInclude();
|
||||
calIncomeCost();
|
||||
|
||||
calCostPurchaseBuildTaxInclude();
|
||||
digitalSelf("costPurchaseBuildTaxInclude", "input[name='costPurchaseBuildTaxInclude']");
|
||||
});
|
||||
$("input[name='costPurchaseServiceTaxInclude']").change(function () {
|
||||
calCostInclude();
|
||||
calIncomeCost();
|
||||
|
||||
calCostPurchaseServiceTaxInclude();
|
||||
digitalSelf("costPurchaseServiceTaxInclude", "input[name='costPurchaseServiceTaxInclude']");
|
||||
});
|
||||
$("input[name='costPurchaseOtherTaxInclude']").change(function () {
|
||||
calCostInclude();
|
||||
calIncomeCost();
|
||||
|
||||
calCostPurchaseOtherTaxInclude();
|
||||
digitalSelf("costPurchaseOtherTaxInclude", "input[name='costPurchaseOtherTaxInclude']");
|
||||
});
|
||||
/*$("input[name='costProjectManageTaxInclude']").change(function () {
|
||||
calCostInclude();
|
||||
|
@ -66,23 +76,28 @@ function calIncomeAndCost() {
|
|||
calIncomeCost();
|
||||
|
||||
calCostOtherOtherTaxInclude();
|
||||
digitalSelf("costOtherOtherTaxInclude", "input[name='costOtherOtherTaxInclude']");
|
||||
});
|
||||
|
||||
$("input[name='costPurchaseDeviceTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("costPurchaseDeviceTaxExclude", "input[name='costPurchaseDeviceTaxExclude']");
|
||||
});
|
||||
$("input[name='costPurchaseBuildTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("costPurchaseBuildTaxExclude", "input[name='costPurchaseBuildTaxExclude']");
|
||||
});
|
||||
$("input[name='costPurchaseServiceTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("costPurchaseServiceTaxExclude", "input[name='costPurchaseServiceTaxExclude']");
|
||||
});
|
||||
$("input[name='costPurchaseOtherTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("costPurchaseOtherTaxExclude", "input[name='costPurchaseOtherTaxExclude']");
|
||||
});
|
||||
$("input[name='costProjectManageTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
|
@ -93,17 +108,22 @@ function calIncomeAndCost() {
|
|||
calCostInclude();
|
||||
|
||||
calIncomeCost();
|
||||
digitalSelf("costProjectManageTaxExclude", "input[name='costProjectManageTaxExclude']");
|
||||
digitalSelf("costProjectManageTaxInclude", "input[name='costProjectManageTaxInclude']");
|
||||
});
|
||||
$("input[name='costOtherOtherTaxExclude']").change(function () {
|
||||
calCostExclude();
|
||||
calIncomeCost();
|
||||
digitalSelf("costOtherOtherTaxExclude", "input[name='costOtherOtherTaxExclude']");
|
||||
});
|
||||
|
||||
$("input[name='costExpropriationTaxExclude']").change(function () {
|
||||
calIncomeCost();
|
||||
digitalSelf("costExpropriationTaxExclude", "input[name='costExpropriationTaxExclude']");
|
||||
});
|
||||
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
||||
calIncomeCost();
|
||||
digitalSelf("costCompanyManageTaxExclude", "input[name='costCompanyManageTaxExclude']");
|
||||
});
|
||||
|
||||
//设备类收入
|
||||
|
@ -421,7 +441,7 @@ function calIncomeCost() {
|
|||
}
|
||||
|
||||
if ($projectGrossProfit.val()) {
|
||||
$projectContributionProfit.val(f2(f2Fixed($projectGrossProfit.val()) - f2(costCompanyManageTaxExclude)));
|
||||
$projectContributionProfit.val(f2Fixed(f2($projectGrossProfit.val()) - f2(costCompanyManageTaxExclude)));
|
||||
$projectContributionProfitRate.val(f2Fixed(f2($projectContributionProfit.val()) * 100 / f2(incomeTotalTaxExclude)))
|
||||
} else {
|
||||
$projectContributionProfit.val("");
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
|
||||
<#-- <div class="am-u-sm-6 am-u-md-6">-->
|
||||
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"-->
|
||||
<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
|
||||
<#-- name="advanceInterestAmount" placeholder="单位(元)" maxlength="16"-->
|
||||
<#-- value="" required />-->
|
||||
<#-- </div>-->
|
||||
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
|
||||
|
@ -122,7 +122,7 @@
|
|||
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
|
||||
<#-- <div class="am-u-sm-6 am-u-md-6">-->
|
||||
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"-->
|
||||
<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
|
||||
<#-- name="advancePeakAmount" placeholder="单位(元)" maxlength="16"-->
|
||||
<#-- value="" required />-->
|
||||
<#-- </div>-->
|
||||
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
|
||||
|
@ -131,7 +131,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validate-async data-validation-message="请输入合同金额"
|
||||
name="contractAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
|
||||
name="contractAmount" placeholder="单位(元)" maxlength="16"
|
||||
value="" required />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -149,7 +149,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right">华智产品金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validation-message="华智产品金额"
|
||||
name="huazhiProductAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13" value="" />
|
||||
name="huazhiProductAmount" placeholder="单位(元)" maxlength="16" value="" />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -157,7 +157,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right">其他产品金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validation-message="请输入其他产品金额"
|
||||
name="ziguangOtherAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13" value="" />
|
||||
name="ziguangOtherAmount" placeholder="单位(元)" maxlength="16" value="" />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -199,8 +199,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>设备类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeDeviceTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeDeviceTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeDeviceSelect" id="incomeDeviceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -217,8 +217,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>工程类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeEngineerTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeEngineerTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeEngineerSelect" id="incomeEngineerSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -235,8 +235,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>服务类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeServiceTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeServiceTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeServiceSelect" id="incomeServiceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -253,8 +253,8 @@
|
|||
<tr>
|
||||
<td>合计</td>
|
||||
<td></td>
|
||||
<td><input type="number" name="incomeTotalTaxInclude" readonly title="此列累计"></td>
|
||||
<td><input type="number" name="incomeTotalTaxExclude" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="incomeTotalTaxInclude" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="incomeTotalTaxExclude" readonly title="此列累计"></td>
|
||||
<td>/</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -274,8 +274,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>设备</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseDeviceTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseDeviceTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseDeviceSelect" id="costPurchaseDeviceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -293,8 +293,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>施工</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseBuildTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseBuildTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseBuildSelect" id="costPurchaseBuildSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -312,8 +312,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>服务</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseServiceTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseServiceTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseServiceSelect" id="costPurchaseServiceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -331,8 +331,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>其他</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseOtherTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseOtherTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseOtherSelect" id="costPurchaseOtherSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -350,8 +350,8 @@
|
|||
<td>成本</td>
|
||||
<td>项目管理成本</td>
|
||||
<td>项目管理成本</td>
|
||||
<td><input type="number" name="costProjectManageTaxInclude" required readonly></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costProjectManageTaxExclude" required></td>
|
||||
<td><input type="text" class="number" name="costProjectManageTaxInclude" required readonly></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costProjectManageTaxExclude" required></td>
|
||||
<td>/</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -359,8 +359,8 @@
|
|||
<td>其他</td>
|
||||
<td><input type="text" id="otherName" maxlength="10" data-validate-async data-validation-message="请输入其他类的名称(10字符以内)"
|
||||
value="" name="otherName" placeholder="请输入其他类的名称(10字符以内)" required/> </td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" readonly required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costOtherOtherTaxInclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costOtherOtherTaxExclude" readonly required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costOtherOtherSelect" id="costOtherOtherSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -378,8 +378,8 @@
|
|||
<td>合计</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><input type="number" name="costTotalTaxInclude" readonly title="此列累计"></td>
|
||||
<td><input type="number" name="costTotalTaxExclude" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="costTotalTaxInclude" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="costTotalTaxExclude" readonly title="此列累计"></td>
|
||||
<td>/</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -395,12 +395,12 @@
|
|||
<tr>
|
||||
<td>财务费用</td>
|
||||
<td>资金占用成本</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costExpropriationTaxExclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costExpropriationTaxExclude" required></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公司管理费用</td>
|
||||
<td></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costCompanyManageTaxExclude" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costCompanyManageTaxExclude" required></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -414,19 +414,19 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>项目毛利(元)</td>
|
||||
<td><input type="number" name="projectGrossProfit" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectGrossProfit" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目毛利率(%)</td>
|
||||
<td><input type="number" name="projectGrossProfitRate" readonly title="毛利(不含税)/收入总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectGrossProfitRate" readonly title="毛利(不含税)/收入总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目贡献利润(元)</td>
|
||||
<td><input type="number" name="projectContributionProfit" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectContributionProfit" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目贡献利润率(%)</td>
|
||||
<td><input type="number" name="projectContributionProfitRate" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectContributionProfitRate" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
|
||||
<#-- <div class="am-u-sm-6 am-u-md-6">-->
|
||||
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"-->
|
||||
<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
|
||||
<#-- name="advanceInterestAmount" placeholder="单位(元)" maxlength="16"-->
|
||||
<#-- value="${Utils.format(project.advanceInterestAmount)}" required />-->
|
||||
<#-- </div>-->
|
||||
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
|
||||
|
@ -129,7 +129,7 @@
|
|||
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
|
||||
<#-- <div class="am-u-sm-6 am-u-md-6">-->
|
||||
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"-->
|
||||
<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
|
||||
<#-- name="advancePeakAmount" placeholder="单位(元)" maxlength="16"-->
|
||||
<#-- value="${Utils.format(project.advancePeakAmount)}" required />-->
|
||||
<#-- </div>-->
|
||||
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
|
||||
|
@ -138,7 +138,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validate-async data-validation-message="请输入合同金额"
|
||||
name="contractAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
|
||||
name="contractAmount" placeholder="单位(元)" maxlength="16"
|
||||
value="${Utils.format(project.contractAmount)}" required />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -156,7 +156,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><#--<span style="color: red;">*</span>-->华智产品金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validation-message="华智产品金额"
|
||||
name="huazhiProductAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13" value="${Utils.format(project.huazhiProductAmount)}" />
|
||||
name="huazhiProductAmount" placeholder="单位(元)" maxlength="16" value="${Utils.format(project.huazhiProductAmount)}" />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><#--<span style="color: red;">*</span>-->其他产品金额</div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="number" class="am-input" data-validation-message="请输入其他产品金额"
|
||||
name="ziguangOtherAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13" value="${Utils.format(project.ziguangOtherAmount)}" />
|
||||
name="ziguangOtherAmount" placeholder="单位(元)" maxlength="16" value="${Utils.format(project.ziguangOtherAmount)}" />
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -206,8 +206,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>设备类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxInclude" value="${Utils.format(estimateBean.incomeDeviceTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" value="${Utils.format(estimateBean.incomeDeviceTaxExclude)}" <#if estimateBean.incomeDeviceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeDeviceTaxInclude" value="${Utils.format(estimateBean.incomeDeviceTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeDeviceTaxExclude" value="${Utils.format(estimateBean.incomeDeviceTaxExclude)}" <#if estimateBean.incomeDeviceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeDeviceSelect" id="incomeDeviceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -224,8 +224,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>工程类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxInclude" value="${Utils.format(estimateBean.incomeEngineerTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" value="${Utils.format(estimateBean.incomeEngineerTaxExclude)}" <#if estimateBean.incomeEngineerSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeEngineerTaxInclude" value="${Utils.format(estimateBean.incomeEngineerTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeEngineerTaxExclude" value="${Utils.format(estimateBean.incomeEngineerTaxExclude)}" <#if estimateBean.incomeEngineerSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeEngineerSelect" id="incomeEngineerSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -242,8 +242,8 @@
|
|||
<tr>
|
||||
<td>收入</td>
|
||||
<td>服务类</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxInclude" value="${Utils.format(estimateBean.incomeServiceTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" value="${Utils.format(estimateBean.incomeServiceTaxExclude)}" <#if estimateBean.incomeServiceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeServiceTaxInclude" value="${Utils.format(estimateBean.incomeServiceTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeServiceTaxExclude" value="${Utils.format(estimateBean.incomeServiceTaxExclude)}" <#if estimateBean.incomeServiceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="incomeServiceSelect" id="incomeServiceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -260,8 +260,8 @@
|
|||
<tr>
|
||||
<td>合计</td>
|
||||
<td></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeTotalTaxInclude" value="${Utils.format(estimateBean.incomeTotalTaxInclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.incomeTotalTaxExclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeTotalTaxInclude" value="${Utils.format(estimateBean.incomeTotalTaxInclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.incomeTotalTaxExclude)}" readonly title="此列累计"></td>
|
||||
<td>/</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -281,8 +281,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>设备</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxInclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude)}" <#if estimateBean.costPurchaseDeviceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseDeviceTaxInclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseDeviceTaxExclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude)}" <#if estimateBean.costPurchaseDeviceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseDeviceSelect" id="costPurchaseDeviceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -300,8 +300,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>施工</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxInclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude)}" <#if estimateBean.costPurchaseBuildSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseBuildTaxInclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseBuildTaxExclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude)}" <#if estimateBean.costPurchaseBuildSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseBuildSelect" id="costPurchaseBuildSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -319,8 +319,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>服务</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxInclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude)}" <#if estimateBean.costPurchaseServiceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseServiceTaxInclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseServiceTaxExclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude)}" <#if estimateBean.costPurchaseServiceSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseServiceSelect" id="costPurchaseServiceSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -338,8 +338,8 @@
|
|||
<td>成本</td>
|
||||
<td>采购成本</td>
|
||||
<td>其他</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxInclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxExclude)}" <#if estimateBean.costPurchaseOtherSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseOtherTaxInclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costPurchaseOtherTaxExclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxExclude)}" <#if estimateBean.costPurchaseOtherSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costPurchaseOtherSelect" id="costPurchaseOtherSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -357,16 +357,16 @@
|
|||
<td>成本</td>
|
||||
<td>项目管理成本</td>
|
||||
<td>项目管理成本</td>
|
||||
<td><input type="number" name="costProjectManageTaxInclude" value="${Utils.format(estimateBean.costProjectManageTaxInclude)}" required readonly></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costProjectManageTaxExclude" value="${Utils.format(estimateBean.costProjectManageTaxExclude)}" required></td>
|
||||
<td><input type="text" class="number" name="costProjectManageTaxInclude" value="${Utils.format(estimateBean.costProjectManageTaxInclude)}" required readonly></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costProjectManageTaxExclude" value="${Utils.format(estimateBean.costProjectManageTaxExclude)}" required></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>成本</td>
|
||||
<td>其他</td>
|
||||
<td><input type="text" id="otherName" maxlength="10" data-validate-async data-validation-message="请输入其他类的名称(10字符以内)"
|
||||
value="${project.otherName!}" name="otherName" placeholder="请输入其他类的名称(10字符以内)" required/> </td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" value="${Utils.format(estimateBean.costOtherOtherTaxInclude)}" required></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" <#if estimateBean.costOtherOtherSelect! !="自定义">readonly</#if> required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costOtherOtherTaxInclude" value="${Utils.format(estimateBean.costOtherOtherTaxInclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" <#if estimateBean.costOtherOtherSelect! !="自定义">readonly</#if> required></td>
|
||||
<td>
|
||||
<select data-am-selected name="costOtherOtherSelect" id="costOtherOtherSelect">
|
||||
<option value="请选择税率">请选择税率</option>
|
||||
|
@ -384,8 +384,8 @@
|
|||
<td>合计</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><input type="number" name="costTotalTaxInclude" value="${Utils.format(estimateBean.costTotalTaxInclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="number" name="costTotalTaxExclude" value="${Utils.format(estimateBean.costTotalTaxExclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="costTotalTaxInclude" value="${Utils.format(estimateBean.costTotalTaxInclude)}" readonly title="此列累计"></td>
|
||||
<td><input type="text" class="number" name="costTotalTaxExclude" value="${Utils.format(estimateBean.costTotalTaxExclude)}" readonly title="此列累计"></td>
|
||||
<td>/</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -401,12 +401,12 @@
|
|||
<tr>
|
||||
<td>财务费用</td>
|
||||
<td>资金占用成本</td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costExpropriationTaxExclude" value="${Utils.format(estimateBean.costExpropriationTaxExclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costExpropriationTaxExclude" value="${Utils.format(estimateBean.costExpropriationTaxExclude)}" required></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公司管理费用</td>
|
||||
<td></td>
|
||||
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costCompanyManageTaxExclude" value="${Utils.format(estimateBean.costCompanyManageTaxExclude)}" required></td>
|
||||
<td><input type="text" class="number" maxlength="16" name="costCompanyManageTaxExclude" value="${Utils.format(estimateBean.costCompanyManageTaxExclude)}" required></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -420,19 +420,19 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>项目毛利(元)</td>
|
||||
<td><input type="number" name="projectGrossProfit" value="${Utils.format(estimateBean.projectGrossProfit)}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectGrossProfit" value="${Utils.format(estimateBean.projectGrossProfit)}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目毛利率(%)</td>
|
||||
<td><input type="number" name="projectGrossProfitRate" value="${Utils.format(estimateBean.projectGrossProfitRate)}" readonly title="毛利(不含税)/收入总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(estimateBean.projectGrossProfitRate)}" readonly title="毛利(不含税)/收入总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目贡献利润(元)</td>
|
||||
<td><input type="number" name="projectContributionProfit" value="${Utils.format(estimateBean.projectContributionProfit)}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectContributionProfit" value="${Utils.format(estimateBean.projectContributionProfit)}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>项目贡献利润率(%)</td>
|
||||
<td><input type="number" name="projectContributionProfitRate" value="${Utils.format(estimateBean.projectContributionProfitRate)}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
|
||||
<td><input type="text" class="number" name="projectContributionProfitRate" value="${Utils.format(estimateBean.projectContributionProfitRate)}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
Loading…
Reference in New Issue