这几天给客户开发一个自定义模块的费用计算,发出来给需要的朋友们一个思路!
先看演示:

总体思路就是迅睿后台自定义字段,后台在前台加入JQ
代码如下:
<script>
$(function() {
//+号
var n = $('#dr_shuliang').val();//找到输入框的初始值
$('#dr_row_bzcl .bootstrap-touchspin-up').click(function() {// 谁家的表单就控制谁
n++;
$('#dr_shuliang').val(n);//运算后输出赋值
});
//-号
var n = $('#dr_shuliang').val();
$('#dr_row_bzcl .bootstrap-touchspin-down').click(function() { // 谁家的表单就控制谁
n = --n >= 0 ? n : 0;//边缘值
$('#dr_shuliang').val(n);
});
//+号
var nn = $('#dr_sgzsl').val();
$('#dr_row_shigongzheng .bootstrap-touchspin-up').click(function() {// 谁家的表单就控制谁
nn++;
$('#dr_sgzsl').val(nn);
});
//-号
var nn = $('#dr_sgzsl').val();
$('#dr_row_shigongzheng .bootstrap-touchspin-down').click(function() { // 谁家的表单就控制谁
nn = --nn >= 0 ? nn : 0;
$('#dr_sgzsl').val(nn);
});
});
</script>
<script type="text/javascript">
$(function() {
$("#dr_shigongzheng").TouchSpin({}).on("change",function(){
$('#dr_zongshu').attr('value',sum());
});
$("#dr_bzcl").TouchSpin({}).on("change", function(){
$('#dr_zongshu').attr('value',sum());
});
/**
给input赋值
**/
var chkItem = $('input[type=checkbox]');
chkItem.click(function(){
$('#dr_zongshu').attr('value',sum());
});
/**
*@功能 计算总和
*@param null
*@return int
**/
function sum(){
var valueArr= $('input[type=checkbox]');
var sumValue=0;
valueArr.each(function(index, element) {
if($(this).is(":checked")){
if(isNaN(valueArr[index].value)||valueArr[index].value==null||valueArr[index].value==""){
sumValue +=0;
}else{
sumValue +=parseFloat(valueArr[index].value);//强制转换为数字
}
}
});
if(sumValue>0){
sumValue = parseInt(sumValue);
}
else{
sumValue = 0;
}
sumValue+=parseInt($('#dr_shigongzheng').val())
sumValue+=parseInt($('#dr_bzcl').val())
return sumValue;
}
});
</script>前端{$myfield}表段没有动过,如果你需要修改前台的样式,那就只能把字段设置成{$diyfield},然后自己调样式,当然你必须要会写CSS啦!
本人开发能力有限,期间也咨询了迅睿的迅睿框架联合创始人 好多问题,谢谢您的解答。哪些地方写的有问题,希望JS大神可以帮忙优化一下。
总之都是为迅睿能发展的更好。迅睿真的强大!!
最后请不喜勿喷!!!!!!!!!!!!!!!!!!!