这几天做的一个项目,遇到了这样的需求,见图片。头一次做这样的需求,顿时感觉一脸懵逼,最后几乎弄了一周才出来的。
鼠标下面的红字是新的需求,暂时还没做。
要求:抽检信息里面的东西全都是动态获取的;任务详情里面的也是动态获取的;
首先点击下发给后台传送数据。()
传送的数据格式为[{接受单位:aaa,商品名称:啊啊啊,商品批次:121;接受单位id:1}]
上代码:
var arr_s = [];
var arr_con = []
$.each($("#wins .xz .contexts .contxt"), function (k, v) {
// console.log(k)
var ooo = {};
var aaa = {};
var _tree = $(this).find('.jieshoudanwei').combotree('tree');
// console.log(_tree)
var _val = _tree.tree('getSelected');
// console.log(_val)
var sp_val = $("#wins .xz .contexts .contxt").eq(k).find(".rwright tr")
$.each(sp_val, function (i, z) {
// console.log(z)
ooo = {
"checkTaskCode": row.checkTaskcode,
"productName": $(this).find('.shangpinmingc').combobox('getText'),
"productCount": $(this).children(".sp").find('.shangpinpici').val(),
"checkTaskItemCode": $(this).find('.shangpinmingc').combobox('getValue'),
"receAuth": _val.id,
}
aaa = {
"key": $(this).find('.shangpinmingc').combobox('getText'),
"value": $(this).children(".sp").find('.shangpinpici').val(),
}
arr_s.push(ooo)
arr_con.push(aaa)
})
})
然后判断是否商品全部下发
// 数组里面重复的相加
let result = {};
arr_con.value = parseInt(arr_con.value)
arr_con.forEach(item => {
if (result[item.key]) {
result[item.key] += parseInt(item.value);
} else {
result[item.key] = parseInt(item.value);
}
})
for (let k in result) {
arr_new_.push({
key: k,
value: result[k]
});
}
console.log(arr_new_)
//上面抽检信息里面的内容
var top_sy = []
$.each($("#wins .tops .xzxfrws li"), function (i, v) {
var aaa = {
"key": $(this).find('.sp_name_').html(),
"value": parseInt($(this).find('.sp_num_').html()),
}
top_sy.push(aaa)
})
console.log(top_sy)
var num_top = top_sy.length;
var p = 0;
// 判断2个数组是否相等
$.each(arr_new_, function (i, v) {
$.each(top_sy, function (k, m) {
if (v.key == m.key) {
if (v.value == m.value) {
p++
}
}
})
})
console.log(p)
整个的代码:
function spxf(row) {
console.log(row)
var arr = [{
"checkTaskCode": row.checkTaskcode
// 任务编号
}]
console.log(arr)
var arr_s = [];
var arr_con = []
// console.log($("#wins .xz .contexts .contxt"))
$.each($("#wins .xz .contexts .contxt"), function (k, v) {
// console.log(k)
var ooo = {};
var aaa = {};
var _tree = $(this).find('.jieshoudanwei').combotree('tree');
// console.log(_tree)
var _val = _tree.tree('getSelected');
// console.log(_val)
var sp_val = $("#wins .xz .contexts .contxt").eq(k).find(".rwright tr")
$.each(sp_val, function (i, z) {
// console.log(z)
ooo = {
"checkTaskCode": row.checkTaskcode,
"productName": $(this).find('.shangpinmingc').combobox('getText'),
"productCount": $(this).children(".sp").find('.shangpinpici').val(),
"checkTaskItemCode": $(this).find('.shangpinmingc').combobox('getValue'),
"receAuth": _val.id,
}
aaa = {
"key": $(this).find('.shangpinmingc').combobox('getText'),
"value": $(this).children(".sp").find('.shangpinpici').val(),
}
arr_s.push(ooo)
arr_con.push(aaa)
})
})
console.log(arr_s)
console.log(arr_con)
var arr_new_ = [];
// 数组里面重复的相加
let result = {};
arr_con.value = parseInt(arr_con.value)
arr_con.forEach(item => {
if (result[item.key]) {
result[item.key] += parseInt(item.value);
} else {
result[item.key] = parseInt(item.value);
}
})
for (let k in result) {
arr_new_.push({
key: k,
value: result[k]
});
}
console.log(arr_new_)
var top_sy = []
$.each($("#wins .tops .xzxfrws li"), function (i, v) {
var aaa = {
"key": $(this).find('.sp_name_').html(),
"value": parseInt($(this).find('.sp_num_').html()),
}
top_sy.push(aaa)
})
console.log(top_sy)
var num_top = top_sy.length;
var p = 0;
// 判断2个数组是否相等
$.each(arr_new_, function (i, v) {
$.each(top_sy, function (k, m) {
if (v.key == m.key) {
if (v.value == m.value) {
p++
}
}
})
})
console.log(p)
if (num_top == p) {
$.ajax({
url: 'gr/checkTaskDetail/addCheckTaskDetail.action',
contentType: 'application/json;charset=UTF-8',
data: JSON.stringify(arr_s),
type: 'post',
dataType: 'json',
traditional: true,
success: function (data) {
arr_s
$('#wins').window('close')
$('#dg').datagrid('reload');
}
})
} else {
$.messager.alert('下发任务', '添加内容错误!', 'info');
}
}
终于有学到了一点东西,填了一个小坑,为以后填大坑加油!!!