'use strict';
/**
*
*
* @author Mai
* @date 2018/9/26
* @version
*/
let editCate;
// 初始化分类数据
function InitCategoryData(category) {
const data = category instanceof Array ? category : [category];
for (const d of data) {
d.typeStr = cType.text[d.type];
}
}
// 获取自定义分类可选类型Html(下拉、单选)
function getTypeHtml() {
const html = [];
for (const k in cType.key) {
const value = cType.key[k];
html.push('
');
html.push('');
html.push('');
html.push('
');
}
return html.join('');
}
// 获取自定义分类html
function getCategoryHtml(category) {
const data = category instanceof Array ? category : [category];
const html = [];
for (const d of data) {
html.push('
');
}
return html.join('');
}
// 根据分类id查找分类
function findCategory(cid) {
for (const c of cData) {
if (c.id === cid) {
return c;
}
}
}
// 删除值 获取其他可用值的html
function getValidValueHtml(vid) {
const html = [];
const values = $('tr:not(.table-danger)[name=value]', '#value-list');
for (const value of values) {
const v = $(value);
if (v.attr('vid') === vid || $('input', v).val() === '') { continue }
html.push('
');
html.push('');
html.push('');
html.push('
');
}
return html.join('');
}
// 初始化 添加值 编辑数据
function getEditCate(category) {
function findTenderCate(tender, value) {
for (const c of tender.category) {
if (c.cid == value.cid) {
return c;
}
}
}
editCate = JSON.parse(JSON.stringify(category));
for (const v of editCate.value) {
v.relaTenders = tenders.filter(function (t) {
const cate = findTenderCate(t, v);
return cate ? cate.value == v.id : false;
});
v.newTenders = [];
}
}
// 绑定编辑值、删除值
function bindCategoryValueControl() {
$('body').on('click', 'a[name="del-value"]', function () {
const vid = $(this).attr('vid');
const value = _.find(editCate.value, function (v) {
return v.id == vid;
});
if (value.delete) { return; }
if (value.relaTenders.length > 0) {
// 提示用户转移标段
$('#tender-count').text(value.relaTenders.length).attr('vid', vid);
$('#tender-target').html(getValidValueHtml(vid));
$('input[type=radio]', '#tender-target')[0].checked = true;
$('#del-cate-value-ok').click(function () {
const delVid = $('#tender-count').attr('vid');
const tarVid = $('input:checked', '#tender-target').val();
const delValue = _.find(editCate.value, function (v) {
return v.id == delVid;
});
const tarValue = _.find(editCate.value, function (v) {
return v.id == tarVid;
});
tarValue.newTenders = tarValue.newTenders.concat(delValue.relaTenders, delValue.newTenders);
delValue.relaTenders = [];
delValue.newTenders = [];
delValue.delete = true;
const delTr = $('tr[vid=' + delVid + ']');
delTr.addClass('table-danger');
$('input', delTr).attr('disabled', '');
delTr.children()[1].innerText = '移动到其他项';
$('tr[vid=' + tarVid + ']').children()[1].innerText = tarValue.relaTenders.length + tarValue.newTenders.length;
$('#del-cate-value').modal('hide');
});
$('#del-cate-value').modal('show');
} else {
value.delete = true;
const tr = $('tr[vid=' + vid + ']');
tr.addClass('table-danger');
$('input', tr).attr('disabled', '');
}
});
}
// 绑定分类控制等(添加值、编辑、删除)
function bindCategoryControl() {
// 弹出添加值
$('body').on('click', 'a[name=add]', function () {
const id = parseInt($(this).attr('cid'));
const category = findCategory(id);
getEditCate(category);
$('#add-ok').attr('cid', id);
if (editCate) {
const list = $('#value-list');
list.html(getValueHtml(editCate.value) + '