|
|
@@ -52,8 +52,8 @@
|
|
|
<h4 class="form-header h4">工资明细信息</h4>
|
|
|
<div class="row">
|
|
|
<div class="col-xs-12">
|
|
|
-<!-- <button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button>-->
|
|
|
-<!-- <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>-->
|
|
|
+ <button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button>
|
|
|
+ <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
|
|
|
<div class="col-sm-12 select-table table-striped">
|
|
|
<table id="bootstrap-table"></table>
|
|
|
</div>
|
|
|
@@ -64,6 +64,7 @@
|
|
|
<th:block th:include="include :: footer" />
|
|
|
<th:block th:include="include :: datetimepicker-js" />
|
|
|
<script th:inline="javascript">
|
|
|
+ var baseFlagDatas = [[${@dict.getType('sys_yes_no')}]];
|
|
|
var prefix = ctx + "business/salary"
|
|
|
$("#form-salary-add").validate({
|
|
|
focusCleanup: true
|
|
|
@@ -102,20 +103,44 @@
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- field: 'salarySubjectId',
|
|
|
+ field: 'subjectName',
|
|
|
align: 'center',
|
|
|
- title: '工资科目',
|
|
|
+ title: '科目名',
|
|
|
formatter: function(value, row, index) {
|
|
|
- var html = $.common.sprintf("<input class='form-control' type='text' name='salaryDetailList[%s].salarySubjectId' value='%s'>", index, value);
|
|
|
+ var html = $.common.sprintf("<input class='form-control' type='text' name='salaryDetailList[%s].subjectName' value='%s'>", index, value);
|
|
|
return html;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- field: 'subjectName',
|
|
|
- align: 'center',
|
|
|
- title: '科目名',
|
|
|
+ field: 'baseFlag',
|
|
|
+ title: '基准标记',
|
|
|
+ visible: false,
|
|
|
formatter: function(value, row, index) {
|
|
|
- var html = $.common.sprintf("<input class='form-control' type='text' name='salaryDetailList[%s].subjectName' value='%s'>", index, value);
|
|
|
+ console.log(index + "|" + value);
|
|
|
+ var html = $.common.sprintf("<input class='form-control' type='text' name='salaryDetailList[%s].baseFlag' value='%s'>", index, value)
|
|
|
+ return html;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'baseFlagName',
|
|
|
+ title: '基准标记',
|
|
|
+ formatter: function(value, row, index) {
|
|
|
+ return $.table.selectDictLabel(baseFlagDatas, row.baseFlag);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'percent',
|
|
|
+ title: '占比',
|
|
|
+ formatter: function(value, row, index) {
|
|
|
+ var html = $.common.sprintf("<input class='form-control' readonly='readonly' type='text' name='salaryDetailList[%s].percent' value='%s'>", index, value);
|
|
|
+ return html;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'formula',
|
|
|
+ title: '公式',
|
|
|
+ formatter: function(value, row, index) {
|
|
|
+ var html = $.common.sprintf("<input class='form-control' readonly='readonly' type='text' name='salaryDetailList[%s].formula' value='%s'>", index, value);
|
|
|
return html;
|
|
|
}
|
|
|
},
|
|
|
@@ -124,7 +149,7 @@
|
|
|
align: 'center',
|
|
|
title: '金额',
|
|
|
formatter: function(value, row, index) {
|
|
|
- var html = $.common.sprintf("<input class='form-control' type='text' name='salaryDetailList[%s].amount' value='%s'>", index, value);
|
|
|
+ var html = $.common.sprintf("<input class='form-control detail-amount' type='text' name='salaryDetailList[%s].amount' value='%s'>", index, value);
|
|
|
return html;
|
|
|
}
|
|
|
},
|
|
|
@@ -144,19 +169,72 @@
|
|
|
var count = $("#" + table.options.id).bootstrapTable('getData').length;
|
|
|
var row = {
|
|
|
index: $.table.serialNumber(count),
|
|
|
- salarySubjectId: "",
|
|
|
subjectName: "",
|
|
|
+ baseFlag: "",
|
|
|
+ percent: 0,
|
|
|
+ formula: "",
|
|
|
amount: "",
|
|
|
}
|
|
|
sub.addRow(row);
|
|
|
}
|
|
|
|
|
|
+ $(document).on("blur", "input[type='text'].detail-amount", function () {
|
|
|
+ let name = $(this).attr("name");
|
|
|
+ const index = name.split('[')[1].split(']')[0];
|
|
|
+
|
|
|
+ $("#" + table.options.id).bootstrapTable('updateRow', {
|
|
|
+ index: index, // 你想修改哪行,0表示第一行
|
|
|
+ row: {
|
|
|
+ index: $.table.serialNumber(index + 1),
|
|
|
+ subjectName: $("#" + table.options.id).bootstrapTable('getData')[index].subjectName,
|
|
|
+ baseFlag: $("#" + table.options.id).bootstrapTable('getData')[index].baseFlag,
|
|
|
+ percent: $("#" + table.options.id).bootstrapTable('getData')[index].percent,
|
|
|
+ formula: $("#" + table.options.id).bootstrapTable('getData')[index].formula,
|
|
|
+ amount: $(this).val(),
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ let allData = $("#" + table.options.id).bootstrapTable('getData');
|
|
|
+ let changeRow = allData[index];
|
|
|
+
|
|
|
+ if (changeRow.baseFlag === "Y") {
|
|
|
+ let baseValue = changeRow.amount;
|
|
|
+
|
|
|
+ for (let i = 0; i < allData.length; i++) {
|
|
|
+ if (i !== index) {
|
|
|
+ let curRow = allData[i];
|
|
|
+ let curAmt = 0;
|
|
|
+ if ($.common.isEmpty(curRow.formula)) {
|
|
|
+ // 使用percent计算
|
|
|
+ let curPercent = parseFloat(curRow.percent) || 0;
|
|
|
+ curAmt = (baseValue * curPercent / 100).toFixed(2);
|
|
|
+ } else {
|
|
|
+ // 使用formula计算
|
|
|
+ curAmt = eval(curRow.formula).toFixed(2);
|
|
|
+ }
|
|
|
+ $("#" + table.options.id).bootstrapTable('updateRow', {
|
|
|
+ index: i, // 你想修改哪行,0表示第一行
|
|
|
+ row: {
|
|
|
+ index: $.table.serialNumber(i+1),
|
|
|
+ subjectName: curRow.subjectName,
|
|
|
+ baseFlag: curRow.baseFlag,
|
|
|
+ percent: curRow.percent,
|
|
|
+ formula: curRow.formula,
|
|
|
+ amount: curAmt,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
$("#subjectType").blur(function(){
|
|
|
|
|
|
$("#" + table.options.id).bootstrapTable('removeAll');
|
|
|
+ console.log($("#subjectType").val());
|
|
|
|
|
|
$.ajax({
|
|
|
- url: ctx + "business/subject/getlist/" + $("input[name='subjectType']:checked").val(),
|
|
|
+ url: ctx + "business/subject/getlist/" + $("#subjectType").val(),
|
|
|
type: "get",
|
|
|
processData: false,
|
|
|
contentType: false,
|
|
|
@@ -166,22 +244,25 @@
|
|
|
},
|
|
|
success: function (result) {
|
|
|
if (result.code === web_status.SUCCESS) {
|
|
|
- if (result.data.length > 0) {
|
|
|
- for (var i = 0; i < result.data.length; i++) {
|
|
|
+ console.log(result.rows);
|
|
|
+ if (result.rows.length > 0) {
|
|
|
+ for (var i = 0; i < result.rows.length; i++) {
|
|
|
var count = $("#" + table.options.id).bootstrapTable('getData').length;
|
|
|
|
|
|
- time += i + 1 +"、" + result.data[i] + "<br/>"
|
|
|
var row = {
|
|
|
index: $.table.serialNumber(count),
|
|
|
- salarySubjectId: "",
|
|
|
- subjectName: result.data[i].subjectName,
|
|
|
+ subjectName: result.rows[i].subjectName,
|
|
|
+ baseFlag: result.rows[i].baseFlag,
|
|
|
+ percent: result.rows[i].percent,
|
|
|
+ formula: result.rows[i].formula,
|
|
|
amount: "0",
|
|
|
}
|
|
|
+ console.log(row);
|
|
|
sub.addRow(row);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $.modal.alertSuccess(result.msg)
|
|
|
+ // $.modal.alertSuccess(result.msg)
|
|
|
} else if (result.code === web_status.WARNING) {
|
|
|
$.modal.alertWarning(result.msg)
|
|
|
} else {
|