//获取href里面的参数 getQueryVariable = function (parameter) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] === parameter) { return pair[1]; } } return ""; } var nprojectid = 0; $(document).ready(function () { if (window.taskid != '') { } else { } }); $(document).on('change', $('#plc_cost_assessment_project_id'), function () { nprojectid = $(this).find('option:selected').val(); var projectName = $(this).find('option:selected').text(); LoadData(); LoadPage(); ProcesField(); }); ///数据加载 initData = function () { var isreaddonly = getQueryVariable('type'); var projectId = $.trim(getQueryVariable('projectId')); if (projectId != '') { $('#plc_cost_assessment_project_id').val(projectId); $('#plc_cost_assessment_project_id').attr('disabled', 'disabled'); $('#plc_cost_assessment_project_id').trigger("chosen:updated"); } else { projectId = $.trim($('#plc_cost_assessment_project_id').find('option:selected').val()); } nprojectid = projectId; if (isreaddonly == 'readonly') { $('button[onclick="WF_Submit()"]').hide(); } LoadData(); LoadPage(); ProcesField(); ResetShowType(); $('[name="plc_cost_assessment_dtl.type"]').css({ 'background-color': '#f5f5f5' }); } compute = function (value, date, endDate) { LoadData(value); LoadPage(1); ProcesField(); $('[name="plc_cost_assessment_dtl.type"]').css({ 'background-color': '#f5f5f5' }); } var CostAssessment = {}; // 加载入库单实体数据 function LoadData(month) { var sysid = window.sysid; var smonth = $.trim(month) == '' ? $('#plc_cost_assessment_month').val() : month; if ($.trim(nprojectid) != '') { // 主表数据 $.ajax({ url: "/PLC/PLC_CostAssessment/GetPageBizData?sysid=" + sysid + "&projectId=" + nprojectid + "&&month=" + smonth , async: false , cache: false , dataType: "json", success: function (data) { $('#plc_cost_assessment_month').val(JsonDateToDate(data.month).Format('yyyy-MM')); CostAssessment = data; } }); } } // 构建页面处理页面标签 function BuildPage() { var htmlMain = ''; htmlMain += '
'; $('[name="plc_cost_assessment.code"]').parent().parent().after(htmlMain); } // 加载页面绑定数据 function LoadPage(ischange) { // 绑定主表数据 $("[name='plc_cost_assessment.code']").val(CostAssessment.code); $("[name='plc_cost_assessment.ProjectName']").val(CostAssessment.ProjectName); //$('.subtradd_js').parent().parent().remove(); // 绑定子表数据 $('#girdtable').find('.body').remove(); var html = ''; $.each(CostAssessment.Children, function (i, r) { //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.relation_name']").val(r.relation_name); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.specification']").val(r.specification); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.unit']").val(r.unit); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.ratio_count']").val(r.ratio_count); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.ratio_percent']").val(r.ratio_percent.toFixed(2)); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.estimate_count']").val(r.estimate_count); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.estimate_price']").val(r.estimate_price); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.estimate_amount']").val(r.estimate_amount); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.actual_count']").val(r.actual_count); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.actual_price']").val(r.actual_price); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.actual_amount']").val(r.actual_amount); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.amount_difference']").val(r.amount_difference); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.count_difference']").val(r.count_difference); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.remark']").val(r.remark); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.type']").val(r.type); //$('#girdtable .body').eq(i).find("[name='plc_cost_assessment_dtl.type']").trigger("chosen:updated"); //if ($.trim(ischange) != '1') { // if (i + 1 != CostAssessment.Children.length) { // if (window.taskid == '') { // $(".subtradd_js").click(); // } // } //} html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; }); $('#girdtable').append(html); $('#girdtable .body').find("[name='plc_cost_assessment_dtl.type']").chosen({ search_contains: false }); } // 处理一些特殊字段 function ProcesField() { /* * 把页面上没展示的字段 对应生成出隐藏框 * 这样可以在提交的时候在表单里面取得到 */ $.each(CostAssessment, function (i, v) { if (!$("input[name='plc_cost_assessment." + i + "']").length > 0) { v = v == null ? "" : v; var hiddenHtml = ''; $("[name='plc_cost_assessment.code']").after(hiddenHtml); } }); $.each(CostAssessment.Children, function (itemIndex, itmeData) { $.each(itmeData, function (i, v) { if (!$('#girdtable .body').eq(itemIndex).find("[name='plc_cost_assessment_dtl." + i + "']").length > 0) { v = (v == "null" || v == null) ? "" : v; var hiddenHtml = ''; $("[name='plc_cost_assessment_dtl.type']").eq(itemIndex).after(hiddenHtml); } }); }); } // 重置展现方式(隐藏一下东西什么什么的) function ResetShowType() { $(".subtradd_js,.subtrdel_js").hide(); } /** * 乘法 * @param arg1 * @param arg2 * @returns {Number} */ function accMul(arg1, arg2) { var num1 = Number(arg1.toString()); var num2 = Number(arg2.toString()); return Number((num1 * num2).toFixed(2)); //var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); //try { m += s1.split(".")[1].length } catch (e) { } //try { m += s2.split(".")[1].length } catch (e) { } //return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) } /** * 除法 * @param arg1 * @param arg2 * @returns {Number} */ function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } with (Math) { r1 = Number(arg1.toString().replace(".", "")) r2 = Number(arg2.toString().replace(".", "")) return (r1 / r2) * pow(10, t2 - t1); } } /** * 加法 * @param arg1 * @param arg2 * @returns {Number} */ function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m } /** * 减法 * @param arg1 * @param arg2 * @returns */ function accSub(arg1, arg2) { var r1, r2, m, n; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度 n = (r1 >= r2) ? r1 : r2; return ((arg1 * m - arg2 * m) / m).toFixed(n); } function ConvertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); //基本单位 var cnIntRadice = new Array('', '拾', '佰', '仟'); //对应整数部分扩展单位 var cnIntUnits = new Array('', '万', '亿', '兆'); //对应小数部分单位 var cnDecUnits = new Array('角', '分', '厘', '毫'); //整数金额时后面跟的字符 var cnInteger = '整'; //整型完以后的单位 var cnIntLast = '元'; //最大处理的数字 var maxNum = 999999999999999.9999; //金额整数部分 var integerNum; //金额小数部分 var decimalNum; //输出的中文金额字符串 var chineseStr = ''; //分离金额后用的数组,预定义 var parts; if (money === '') { return ''; } money = parseFloat(money); if (money >= maxNum) { //超出最大处理数字 return ''; } if (money === 0) { chineseStr = cnNums[0] + cnIntLast + cnInteger; return chineseStr; } //转换为字符串 money = money.toString(); if (money.indexOf('.') == -1) { integerNum = money; decimalNum = ''; } else { parts = money.split('.'); integerNum = parts[0]; decimalNum = parts[1].substr(0, 4); } //获取整型部分转换 if (parseInt(integerNum, 10) > 0) { var zeroCount = 0; var IntLen = integerNum.length; for (var i = 0; i < IntLen; i++) { var n = integerNum.substr(i, 1); var p = IntLen - i - 1; var q = p / 4; var m = p % 4; if (n == '0') { zeroCount++; } else { if (zeroCount > 0) { chineseStr += cnNums[0]; } //归零 zeroCount = 0; chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; } if (m == 0 && zeroCount < 4) { chineseStr += cnIntUnits[q]; } } chineseStr += cnIntLast; } //小数部分 if (decimalNum != '') { var decLen = decimalNum.length; for (var i = 0; i < decLen; i++) { var n = decimalNum.substr(i, 1); if (n != '0') { chineseStr += cnNums[Number(n)] + cnDecUnits[i]; } } } if (chineseStr == '') { chineseStr += cnNums[0] + cnIntLast + cnInteger; } else if (decimalNum == '') { chineseStr += cnInteger; } return chineseStr; }