define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'order/index' + location.search, add_url: 'order/add', edit_url: 'order/edit', del_url: 'order/del', multi_url: 'order/multi', import_url: 'order/import', push_url: 'order/status', table: 'order', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'order_no', title: __('Order_no'), operate: 'LIKE'}, {field: 'customer', title: __('Customer'), operate: 'LIKE'}, {field: 'tel', title: __('Tel'), operate: 'LIKE'}, { field: 'status', title: __('Status'), searchList: { "10": __('Status 10'), "20": __('Status 20'), "30": __('Status 30'), "40": __('Status 40'), "50": __('Status 50'), "-10": __('Status -10'), "-20": __('Status -20'), "-30": __('Status -30') }, formatter: Table.api.formatter.status }, {field: 'area_id', title: __('Area_id')}, { field: 'address', title: __('Address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content }, {field: 'work_tel_id', title: __('Work_tel_id')}, // {field: 'worker_id', title: __('Worker_id')}, {field: 'source', title: __('Source')}, // {field: 'source_uid', title: __('Source_uid'), operate: 'LIKE'}, {field: 'item_title', title: __('Item_title'), operate: 'LIKE'}, { field: 'detail', title: __('Detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content }, { field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content }, { field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images }, { field: 'create_time', title: __('Create_time'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false }, { field: 'update_time', title: __('Update_time'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false }, { field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, buttons: [ { name: 'edit', icon: 'fa fa-pencil', title: __('Edit'), extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-success btn-editone' }, { name: 'del', icon: 'fa fa-trash', title: __('Del'), extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-danger btn-delone' }, { name: 'push', icon: 'fa fa-copy', title: '复制', url: 'order/copy', extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-info btn-dialog', callback: function ($data){ console.log($data); } }, { name:"income", text:"新增收款", title:"新增收款", classname:"btn-view btn-dialog", icon:'fa fa-money', url: function(row){ return 'orders/income/add?order_id='+row.id }, dropdown:"更多", visible:function(row){ return true; }, refresh:true, } ], } ] ], }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, copy: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; function parseAndFill() { // 获取左侧输入框的内容 } let $input = $("#c-area_id"); let $dropdown = $("#address-list"); let $hiddenField = $("#selected-area-code"); let timer = null; // 定义定时器 // 监听输入框 $input.on("input", function () { clearTimeout(timer); // 清除上次的定时器 let keyword = $(this).val().trim(); if (keyword.length === 0) { $dropdown.hide(); return; } // 延迟 500 毫秒后执行 AJAX 查询(防止过快触发) timer = setTimeout(() => { $.ajax({ url: "/admin/area/search", // 你的 API 地址 type: "GET", data: {keyword: keyword}, dataType: "json", success: function (data) { renderDropdown(data.data); }, error: function () { console.error("请求失败"); } }); }, 200); // 500 毫秒防抖 }); // 渲染城市下拉选项 function renderDropdown(data) { $dropdown.empty(); // 清空列表 if (data.length === 0) { let $option = $("") .text('未搜索到结果') .attr("data-value", 0); $dropdown.append($option); } else { data.forEach(item => { let $option = $("") .text(item.merge_name) .attr("data-value", item.area_code) // 绑定 area_code .on("click", function () { $input.val(item.merge_name); // 选中后填充输入框 $hiddenField.val($(this).attr("data-value")); // 存储 area_code $dropdown.hide(); }); $dropdown.append($option); }); } $dropdown.show(); // 显示下拉框 } let $inputService = $("#c-service_title"); let $dropdownService = $("#service-list"); let $hiddenFieldService = $("#selected-service_id"); let timerService = null; // 定义定时器 $inputService.on("input", function () { clearTimeout(timerService); // 清除上次的定时器 let keyword = $(this).val().trim(); if (keyword.length === 0) { $dropdown.hide(); return; } // 延迟 500 毫秒后执行 AJAX 查询(防止过快触发) timerService = setTimeout(() => { $.ajax({ url: "/admin/item/search", // 你的 API 地址 type: "GET", data: {keyword: keyword}, dataType: "json", success: function (data) { renderDropdownService(data.data); }, error: function () { console.error("请求失败"); } }); }, 200); // 500 毫秒防抖 }); // 渲染资源城市下拉选项 function renderDropdownService(data) { $dropdownService.empty(); // 清空列表 if (data.length === 0) { let $option = $("") .text('未搜索到结果') .attr("data-value", 0); $dropdownService.append($option); } else { data.forEach(item => { let $option = $("") .html(item.title + `${item.key_word}`) .attr("data-value", item.id) // 绑定 area_code .on("click", function () { $inputService.val(item.title); // 选中后填充输入框 $hiddenFieldService.val($(this).attr("data-value")); // 存储 area_code $dropdownService.hide(); }); $dropdownService.append($option); }); } $dropdownService.show(); // 显示下拉框 } // 点击外部隐藏下拉框 $(document).on("click", function (e) { if (!$(e.target).closest("#c-address, #address-list").length) { $dropdown.hide(); } }); return Controller; });