'use strict'; /** * * * @author Mai * @date 2018/9/26 * @version */ function InitCategoryData(category) { const data = category instanceof Array ? category : [category]; for (const d of data) { // d.valueArr = d.value && d.value !== '' ? JSON.parse(d.value) : []; d.typeStr = cType.text[d.type]; } } 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(''); } function getCategoryHtml(category) { const data = category instanceof Array ? category : [category]; const html = []; for (const d of data) { html.push(' 0 ? '' : 'class="table-warning"', 'cid="' + d.id + '">'); html.push('', d.name, ''); html.push('', d.typeStr, ''); html.push(''); if (d.value && d.value.length > 0) { for (const v of d.value) { html.push('', v.value, '\n'); } } else { html.push('请在右侧添加值'); } html.push(''); html.push(''); html.push('添加值\n'); html.push('编辑\n'); html.push('删除 '); html.push(''); html.push(''); } return html.join(''); } function getValueTenderCount(value) { function findTenderCate(tender) { for (const c of tender.category) { if (c.cid == value.cid) { return c; } } } const valueTender = tenders.filter(function (t) { const cate = findTenderCate(t); console.log(cate); return cate ? cate.value == value.id : false; }); return valueTender ? valueTender.length : 0; } function getValueHtml(value) { const html = []; for (const v of value) { html.push(''); html.push(''); console.log(v); html.push('', getValueTenderCount(v) ,''); html.push('删除'); html.push(''); } return html.join(''); } function findCategory(cid) { for (const c of cData) { if (c.id === cid) { return c; } } } function bindCategoryControl() { // 弹出添加值 $('a[name=add]').bind('click', function () { const id = parseInt($(this).attr('cid')); const category = findCategory(id); $('#add-ok').attr('cid', id); if (category) { const list = $('#value-list'); list.html(getValueHtml(category.value) + '添加新值'); $('#add-value-row').click(function () { $(this).before('0删除'); }); $('#add').modal('show'); } }); // 弹出 编辑 $('a[name=edit-cate]').bind('click', function () { const id = parseInt($(this).attr('cid')); const category = findCategory(id); $('input[name=name]', '#edit-cate').val(category.name); $('div[name=type]', '#edit-cate').html(getTypeHtml()); $('#inlineRadio' + category.type, '#edit-cate')[0].checked = true; $('#edit-cate-ok').attr('cid', $(this).attr('cid')); $('#edit-cate').modal('show'); }); // 弹出 删除类别 $('a[name=del]').bind('click', function () { $('#del-cate-ok').attr('cid', $(this).attr('cid')); $('#del-cate').modal('show'); }); } $(document).ready(() => { InitCategoryData(cData); $('#categoryList').html(getCategoryHtml(cData)); bindCategoryControl(); $('div[name=type]', '#add-cate').html(getTypeHtml()); // 新增分类 $('#add-cate-ok').click(function () { const name = $('input[name=name]', '#add-cate'); const type = $('input[type=radio]:checked', '#add-cate'); const data = { name: name.val(), type: parseInt(type.val()), }; postData('/setting/category/add', data, function (data) { InitCategoryData(data); $('#categoryList').append(getCategoryHtml(data)); bindCategoryControl(); cData.push(data); $('#add-cate').modal('hide'); name.val(''); type[0].checked = false; }, function (msg) { $('#add-cate').modal('hide'); }); }); // 添加值 $('#add-ok').click(function () { const valueArr = []; const value = $('input[name=value]'); for (const v of value) { if (v.value !== '') { valueArr.push({ id: $(v).attr('id'), value: $(v).val(), }); } } const data = { id: parseInt($(this).attr('cid')), value: valueArr, }; postData('/setting/category/value', data, function (data) { tenders = data.tenders; const category = findCategory(data.category.id); category.value = data.category.value; InitCategoryData(category); $('tr[cid=' + data.category.id + ']')[0].outerHTML = getCategoryHtml(category); bindCategoryControl(); $('#add').modal('hide'); }, function () { $('#add').modal('hide'); }); }); // 编辑 $('#edit-cate-ok').click(function () { const name = $('input[name=name]', '#edit-cate'); const type = $('input[type=radio]:checked', '#edit-cate'); const data = { id: parseInt($(this).attr('cid')), name: name.val(), type: parseInt(type.val()), } postData('/setting/category/update', data, function (data) { const category = findCategory(data.id); for (const c in data) { category[c] = data[c]; } InitCategoryData(category); $('tr[cid=' + data.id + ']')[0].outerHTML = getCategoryHtml(category); bindCategoryControl(); $('#edit-cate').modal('hide'); }, function () { $('#edit-cate').modal('hide'); }); }); // 删除类别 $('#del-cate-ok').click(function () { const data = { id: parseInt($(this).attr('cid')), } postData('/setting/category/del', data, function () { $('tr[cid=' + data.id + ']').remove(); $('#del-cate').modal('hide'); }, function () { $('#del-cate').modal('hide'); }); }); });