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($('