'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('', cType.text[value], ' ');
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');
});
});
});