define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
function parseCompanyTypeVal(s) {
s = (s || '').trim();
if (!s) {
return [];
}
return s.split(/[、,,]+/).map(function (x) {
return $.trim(x);
}).filter(Boolean);
}
function ensureCompanyTypeOneboxCss() {
if ($('#company-type-onebox-style').length) {
return;
}
$('head').append(
''
);
}
var Controller = {
index: function () {
Table.api.init({
extend: {
index_url: 'customer/index' + location.search,
add_url: 'customer/add',
edit_url: 'customer/edit',
del_url: 'customer/del',
multi_url: 'customer/multi',
import_url: 'customer/import',
table: 'customer',
}
});
var table = $("#table");
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
columns: [
[
{checkbox: true},
{field: 'id', title: __('序号')},
{field: 'company_name', title: __('客户名称'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'username', title: __('姓名'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'email', title: __('邮箱'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'phone', title: __('手机号'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'company_type', title: __('业务分类'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
});
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
setTimeout(function () {
Controller.api.initCompanyType();
}, 50);
},
edit: function () {
Controller.api.bindevent();
setTimeout(function () {
Controller.api.initCompanyType();
}, 50);
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
},
initCompanyType: function () {
var $hidden = $('#c-company_type');
var $sel = $('#c-company_type_select');
var $count = $('#c-company_type_count');
if (!$hidden.length || !$sel.length || !$count.length) {
return;
}
ensureCompanyTypeOneboxCss();
var initialParts = parseCompanyTypeVal($hidden.val());
function syncHidden() {
var v = $sel.selectpicker('val');
if (!$.isArray(v)) {
v = v ? [v] : [];
}
v = v.filter(function (x) {
return x != null && String(x).trim() !== '';
});
$hidden.val(v.join('、'));
}
function updateCount() {
var v = $sel.selectpicker('val');
var n = 0;
if ($.isArray(v)) {
n = v.filter(function (x) {
return x != null && String(x).trim() !== '';
}).length;
} else if (v) {
n = 1;
}
$count.text('已选 ' + n);
}
require(['bootstrap-select', 'bootstrap-select-lang'], function () {
try {
if ($sel.data('selectpicker')) {
$sel.selectpicker('destroy');
}
} catch (e) {
// ignore
}
$.each(initialParts, function (i, p) {
if (!p) {
return;
}
if (!$sel.find('option').filter(function () {
return $(this).val() === p;
}).length) {
$sel.append($('