'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(''); for (const v of d.value) { html.push('', v, '\n'); } html.push(''); html.push(''); html.push('添加值\n'); html.push('编辑\n'); html.push('删除 '); html.push(''); html.push(''); } return html.join(''); } function getValueHtml(value) { const html = []; for (const v of value) { html.push(''); html.push(''); 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('删除'); }); $('#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(v.value); } } const data = { id: $(this).attr('cid'), value: valueArr, } 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); $('#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); $('#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'); }); }); });