城市选择

This commit is contained in:
hant 2025-03-10 15:26:58 +08:00
parent e00dd9ce0f
commit 46596e3f30
5 changed files with 31 additions and 92 deletions

View File

@ -233,7 +233,7 @@ class Order extends Backend
}
$area = new \app\admin\model\Area();
$area_name = $area->getNameByCode($order->area_id);
$order->area_name = $area_name;
$order->area_name = str_replace(',','/',$area_name);
// dd($area_name);
// 将订单数据传递到视图
$this->assign('row', $order);
@ -258,7 +258,7 @@ class Order extends Backend
$area = new \app\admin\model\Area();
$area_name = $area->getNameByCode($order->area_id);
$order->area_name = $area_name;
$order->area_name = str_replace(',','/',$area_name);
// 将订单数据传递到视图
$this->assign('row', $order);

View File

@ -12,7 +12,7 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Customer')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-customer" class="form-control" name="row[customer]" type="text">
<input id="c-customer" data-rule="required" class="form-control" name="row[customer]" type="text">
</div>
</div>
<div class="form-group">
@ -24,13 +24,10 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Area_id')}:</label>
<div class='col-xs-12 col-sm-8'>
<input id="c-area_id" class="form-control" type="text" value="" />
<!-- 选项下拉框 -->
<ul id="address-list" class="dropdown-menu" style="display: none;"></ul>
<!-- 存储选择的 area_code -->
<input type="hidden" id="selected-area-code" name="row[area_id]">
<div class="col-xs-12 col-sm-8">
<input id="c-city" data-rule="required" class="form-control" data-toggle="city-picker" name="row[address]" type="text" value="" />
<input id="area_id" style="display: none" class="form-control" name="row[area_id]" hidden type="text" value="" />
</div>
</div>
</div>
<div class="form-group">
@ -116,8 +113,8 @@
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-8">
<button type="submit" data-id="submit" class="btn btn-primary btn-embossed disabled">录入</button>
<button type="submit" data-id="submit_save" class="btn btn-primary btn-embossed disabled">录入并保留基本信息</button>
<button type="submit" data-id="submit" class="btn btn-primary btn-embossed disabled">录入并清空</button>
<button id="mybuttom" class="btn btn-primary btn-embossed">录入并保留信息</button>
</div>
</div>
</form>

View File

@ -22,12 +22,8 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Area_id')}:</label>
<div class='col-xs-12 col-sm-8'>
<input id="c-area_id" data-rule="required" class="form-control" type="text" value="{$row.area_name}" />
<!-- 选项下拉框 -->
<ul id="address-list" class="dropdown-menu" style="display: none;"></ul>
<!-- 存储选择的 area_code -->
<input type="hidden" id="selected-area-code" name="row[area_id]" value="{$row.area_id}">
<input id="c-city" data-rule="required" class="form-control" data-toggle="city-picker" value="{$row.area_name}" type="text" name="row[address]" />
<input id="area_id" style="display: none" class="form-control" name="row[area_id]" hidden type="text" value="{$row.area_id}" />
</div>
</div>
<div class="form-group">

View File

@ -25,12 +25,8 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Area_id')}:</label>
<div class='col-xs-12 col-sm-8'>
<input id="c-area_id" data-rule="required" class="form-control" type="text" value="{$row.area_name}" />
<!-- 选项下拉框 -->
<ul id="address-list" class="dropdown-menu" style="display: none;"></ul>
<!-- 存储选择的 area_code -->
<input type="hidden" id="selected-area-code" name="row[area_id]" value="{$row.area_id}">
<input id="c-city" data-rule="required" class="form-control" data-toggle="city-picker" value="{$row.area_name}" type="text" name="row[address]" />
<input id="area_id" style="display: none" class="form-control" name="row[area_id]" hidden type="text" value="{$row.area_id}" />
</div>
</div>
<div class="form-group">

View File

@ -1,5 +1,11 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
function clearInfo() {
$('[name^="row["]').val('');
$("#c-city").citypicker('reset');
$(".selectpicker").val('').selectpicker('refresh');
}
var Controller = {
index: function () {
// 初始化表格参数配置
@ -177,7 +183,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
Table.api.bindevent(table);
},
add: function () {
console.log(1);
$("#c-city").on("cp:updated", function() {
var citypicker = $(this).data("citypicker");
var code = citypicker.getCode("district") || citypicker.getCode("city") || citypicker.getCode("province");
$("#area_id").val(code);
});
$("#c-city").on("click", function() {
Form.api.submit($("form[role=form]"),);
return false;
});
Controller.api.bindevent();
},
edit: function () {
@ -189,8 +203,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"),function (success,ret) {
console.log(success);
});
clearInfo();
return false;
},);
}
}
};
@ -199,71 +214,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
// 获取左侧输入框的内容
}
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 = $("<li class='dropdown-item'></li>")
.text('未搜索到结果')
.attr("data-value", 0);
$dropdown.append($option);
} else {
data.forEach(item => {
let $option = $("<li class='dropdown-item'></li>")
.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(); // 显示下拉框
}
// 点击外部隐藏下拉框
$(document).on("click", function (e) {
if (!$(e.target).closest("#c-address, #address-list").length) {
$dropdown.hide();
}
});
return Controller;
});