'use strict';
/**
*
* @author LanJianRong
* @date 2020/11/13
* @version
*/
const tenderTree = [];
let parentId = 0;
// 查询方法
function findNode (key, value, arr) {
for (const a of arr) {
if (a[key] && a[key] === value) {
return a;
}
}
}
// 分类数据排序
function sortCategory() {
category.sort(function (a, b) {
return a.level ? (b.level ? a.level - b.level : -1) : a.id - b.id;
});
}
// 初始化TenderTree数据
function initTenderTree () {
const levelCategory = category.filter(function (c) {
return c.level && c.level > 0;
});
function findCategoryNode(cid, value, array) {
for (const a of array) {
if (a.cid === cid && a.vid === value) {
return a;
}
}
}
function getCategoryNode(category, value, parent, i = null) {
const array = parent ? parent.children : tenderTree;
let cate = findCategoryNode(category.id, value, array);
if (!cate) {
const cateValue = findNode('id', value, category.value);
if (!cateValue) return null;
cate = {
cid: category.id,
vid: value,
name: cateValue.value,
children: [],
level: i ? i : category.level,
sort_id: ++parentId,
sort: cateValue.sort,
};
array.push(cate);
}
return cate;
}
function loadTenderCategory (tender) {
let tenderCategory = null;
for (const [index,lc] of levelCategory.entries()) {
const tenderCate = findNode('cid', lc.id, tender.category);
if (tenderCate) {
tenderCategory = getCategoryNode(lc, tenderCate.value, tenderCategory);
} else {
if (index === 0 && tender.category) {
for (const [i,c] of tender.category.entries()) {
const cate = findNode('id', c.cid, category);
tenderCategory = getCategoryNode(cate, c.value, tenderCategory, i+1);
}
}
return tenderCategory;
}
}
return tenderCategory;
}
tenderTree.splice(0, tenderTree.length);
for (const t of tenders) {
t.valid = true;
delete t.level;
if (t.category && levelCategory.length > 0) {
const parent = loadTenderCategory(t);
if (parent) {
t.level = parent.level + 1;
parent.children.push(t);
} else {
tenderTree.push(t);
}
} else {
tenderTree.push(t);
}
}
sortTenderTree();
}
function recursiveGetTenderNodeHtml (node, arr, pid) {
// console.log(node, tender)
const html = [];
html.push('
');
// 名称
html.push('');
if (node.cid) {
html.push(' ', node.name);
} else {
html.push('');
html.push(arr.indexOf(node) === arr.length - 1 ? '└' : '├');
html.push(' ');
//html.push('', node[c.field], ' ');
html.push('', node.name, ' ');
}
html.push(' ');
// 创建人
html.push('');
if (!node.cid) {
// html.push(' '+ (node.copy_id === tender.copy_id ? 'checked' : '') + '/>');
html.push(` `);
}
html.push(' ');
html.push(' ');
if (node.children) {
for (const c of node.children) {
html.push(recursiveGetTenderNodeHtml(c, node.children, node.sort_id));
}
}
return html.join('');
}
// 根据TenderTree数据获取Html代码
function getTenderTreeHtml () {
if (tenderTree.length > 0) {
const html = [];
// html.push('');
return html.join('');
} else {
return EmptyTenderHtml.join('');
}
}
$(document).ready(function () {
sortCategory();
initTenderTree();
$('#tenderBtn').click(() => {
tenderListOrder.reOrderTenders('', '#copyModalContent', false);
// const html = getTenderTreeHtml();
// $('#copyModalContent').html(html);
$('#sort input[value="'+ addDataCollect +'"]').prop('checked', true);
if($('#copyModalContent input[type="checkbox"]:not(:checked)').length === 0) {
$('#select-tender-all').prop('checked', true);
} else {
$('#select-tender-all').prop('checked', false);
}
$('#sort').modal('show');
});
$('#tender_dataCollect_btn').click(function () {
// 获取是否新增展示到决策大屏
const add_datacollect = $('input[name="add_datacollect"]:checked').val();
const noTidList = [];
$("#copyModalContent input[type='checkbox']:not(:checked)").each(function () {
noTidList.push($(this).data('tid'));
});
const dcTidList = _.map(dcTenders, 'tid');
let is_list_update = true;
let is_collect_update = true;
if (_.isEqual(_.sortBy(dcTidList), _.sortBy(noTidList))) {
is_list_update = false;
}
if (parseInt(add_datacollect) === addDataCollect) {
is_collect_update = false;
}
if (is_list_update || is_collect_update) {
postData('/setting/datacollect/save', { type: 'tender', add_datacollect: parseInt(add_datacollect), tids: noTidList }, function (result) {
addDataCollect = result.addDataCollect;
dcTenders = result.dcTenders;
toastr.success('修改成功');
})
}
$('#sort').modal('hide');
});
$('#select-tender-all').click(function () {
const is_checked = $(this).is(':checked');
if(is_checked) {
$("#copyModalContent input[type='checkbox']").prop('checked', true);
} else {
$("#copyModalContent input[type='checkbox']").prop('checked', false);
}
});
$('body').on('click', "#copyModalContent input[type='checkbox']", function () {
if($('#copyModalContent input[type="checkbox"]:not(:checked)').length === 0) {
$('#select-tender-all').prop('checked', true);
} else {
$('#select-tender-all').prop('checked', false);
}
})
});