订单录入

This commit is contained in:
hant 2025-03-08 16:24:54 +08:00
parent 7690b1e40f
commit 7228cc267a
6 changed files with 110 additions and 102 deletions

View File

@ -119,13 +119,15 @@ class Order extends Backend
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
$list = $this->model
->field(['id','order_no','user_id','customer','tel','status','area_id','address',
'source','source_shop','source_uid','source','item_title','item_id',
'source','source_shop','source_uid','source','item_title','item_id','work_tel_id',
'detail','remark','images','create_time','update_time'])
->where($where)
->with(['user' => function($q){
$q->field('id,nickname');
},'area' => function($q){
$q->field('id,area_code,merge_name');
},'phone' => function($q){
$q->field('id,model');
}])
->order($sort, $order)
->paginate($limit);
@ -204,14 +206,27 @@ class Order extends Backend
// 判断是否为POST请求进行更新操作
if (request()->isPost()) {
// 获取表单提交的数据
$data = input('post.row/a');
$data['update_time'] = date('Y-m-d H:i:s');
$params = input('post.row/a');
$params['update_time'] = date('Y-m-d H:i:s');
$sources = $this->sources;
$sources = array_column($sources,'title','id');
// $data['user_id'] = $this->auth->id;
$data['source_shop'] = $sources[$data['source']] ?? null;
$params['source_shop'] = $sources[$params['source']] ?? null;
$sources = $this->sources;
$items = $this->items;
$sources = array_column($sources,'title','id');
$items = array_column($items,'title','id');
$params['source_shop'] = $sources[$params['source']] ?? null;
$params['item_title'] = $items[$params['item_id']] ?? null;
$params['create_time'] = date('Y-m-d H:i:s');
$params['update_time'] = date('Y-m-d H:i:s');
// 更新订单信息
$order->save($data);
$order->save($params);
// 返回成功信息
$this->success('更新成功', 'index');

View File

@ -106,4 +106,7 @@ class Order extends Model
public function area(){
return $this->belongsTo(Area::class,'area_id','area_code');
}
public function phone(){
return $this->belongsTo(Phones::class,'work_tel_id',);
}
}

View File

@ -77,7 +77,7 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Work_tel_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="Work_tel_id" data-live-search="true" title="请选择" data-rule="required" name="row[item_id]" class="form-control selectpicker show-tick">
<select id="Work_tel_id" data-live-search="true" title="请选择" data-rule="required" name="row[work_tel_id]" class="form-control selectpicker show-tick">
{foreach $phones as $item}
<option data-subtext="{$item['phone_number']}" value="{$item['id']}">{$item['model']}</option>
{/foreach}

View File

@ -5,27 +5,24 @@
<div class="form-area">
<div class="w-75">
<div class="card-body">
<h5 class="card-title">复制订单</h5>
<h5 class="card-title">编辑订单</h5>
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="{:url('order/add')}">
<input type="hidden" name="id" value="{$row.id}"> <!-- 订单ID用于提交编辑的对象 -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Customer')}:</label>
<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" value="{$row.customer}">
<input id="c-customer" data-rule="required" class="form-control" name="row[customer]" type="text" value="{$row.customer}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Tel')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Tel')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-tel" class="form-control" name="row[tel]" type="number" value="{$row.tel}">
<input id="c-tel" data-rule="required" class="form-control" name="row[tel]" type="number" value="{$row.tel}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Area_id')}:</label>
<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="{$row.area_name}" />
<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>
@ -34,43 +31,69 @@
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Address')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Address')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-address" class="form-control" name="row[address]" type="text" value="{$row.address}">
<input id="c-address" data-rule="required" class="form-control" name="row[address]" type="text" value="{$row.address}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Source')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Source')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-source" class="form-control" name="row[source]" type="number" value="{$row.source}">
<select id="c-source" data-live-search="true" title="请选择" data-rule="required" name="row[source]" class="form-control selectpicker show-tick">
{foreach $sources as $item}
<option {if $item['id'] == $row.source} selected {/if} data-subtext="{$item['ptitle']}" value="{$item['id']}">{$item['title']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Service_title')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-service_title" class="form-control" name="row[service_title]" type="text" value="{$row.service_title}">
<!-- 选项下拉框 -->
<ul id="service-list" class="dropdown-menu" style="display: none;"></ul>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Coupons')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-coupon" data-live-search="true" title="请选择" data-rule="required" name="row[coupon_id]" class="form-control selectpicker show-tick">
<option {if $item['id'] == $row.coupon_id} selected {/if} selected value="0">不使用优惠</option>
{foreach $coupons as $item}
<option {if $item['id'] == $row.coupon_id} selected {/if} data-subtext="{$item['description']}" value="{$item['id']}">{$item['code']}</option>
{/foreach}
</select>
</div>
</div>
<!-- 存储选择的 service_id -->
<input type="hidden" id="selected-service_id" name="row[service_id]" value="{$row.service_id}">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Item_title')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="citem" data-live-search="true" title="请选择" data-rule="required" name="row[item_id]" class="form-control selectpicker show-tick">
{foreach $items as $item}
<option {if $item['id'] == $row.item_id} selected {/if} data-subtext="{$item['key_word']}" value="{$item['id']}">{$item['title']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Work_tel_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="Work_tel_id" data-live-search="true" title="请选择" data-rule="required" name="row[work_tel_id]" class="form-control selectpicker show-tick">
{foreach $phones as $item}
<option {if $item['id'] == $row.work_tel_id} selected {/if} data-subtext="{$item['phone_number']}" value="{$item['id']}">{$item['model']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Detail')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Detail')}:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-detail" rows="4" style="width: 100%;resize: vertical" class="form-control" name="row[detail]">{$row.detail}</textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Remark')}:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-remark" rows="4" style="width: 100%;resize: vertical" class="form-control" name="row[remark]">{$row.remark}</textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Images')}:</label>
<label class="control-label col-xs-12 col-sm-3">{:__('Images')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-images" class="form-control" size="50" name="row[images]" type="text" value="{$row.images}">
@ -84,9 +107,9 @@
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-8">
<button type="submit" class="btn btn-primary btn-embossed">保存订单</button>
<button type="submit" class="btn btn-primary btn-embossed">创建订单</button>
</div>
</div>
</form>

View File

@ -42,23 +42,45 @@
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Source')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-source" data-live-search="true" data-value="{$row.source}" data-rule="required" name="row[source]" class="form-control selectpicker">
{foreach $users as $item}
<option data-subtext="{$item['ptitle']}" {if $item['id'] == $row.source} selected {/if} value="{$item['id']}">{$item['title']}</option>
<select id="c-source" data-live-search="true" title="请选择" data-rule="required" name="row[source]" class="form-control selectpicker show-tick">
{foreach $sources as $item}
<option {if $item['id'] == $row.source} selected {/if} data-subtext="{$item['ptitle']}" value="{$item['id']}">{$item['title']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Coupons')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-coupon" data-live-search="true" title="请选择" data-rule="required" name="row[coupon_id]" class="form-control selectpicker show-tick">
<option {if $item['id'] == $row.coupon_id} selected {/if} selected value="0">不使用优惠</option>
{foreach $coupons as $item}
<option {if $item['id'] == $row.coupon_id} selected {/if} data-subtext="{$item['description']}" value="{$item['id']}">{$item['code']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Item_title')}:</label>
<div class="col-xs-12 col-sm-8">
<input data-rule="required" id="c-service_title" class="form-control" name="row[item_title]" type="text" value="{$row.item_title}">
<select id="citem" data-live-search="true" title="请选择" data-rule="required" name="row[item_id]" class="form-control selectpicker show-tick">
{foreach $items as $item}
<option {if $item['id'] == $row.item_id} selected {/if} data-subtext="{$item['key_word']}" value="{$item['id']}">{$item['title']}</option>
{/foreach}
</select>
</div>
</div>
<!-- 选项下拉框 -->
<ul id="service-list" class="dropdown-menu" style="display: none;"></ul>
<!-- 存储选择的 service_id -->
<input type="hidden" id="selected-service_id" name="row[item_id]" value="{$row.item_id}">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">{:__('Work_tel_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="Work_tel_id" data-live-search="true" title="请选择" data-rule="required" name="row[work_tel_id]" class="form-control selectpicker show-tick">
{foreach $phones as $item}
<option {if $item['id'] == $row.work_tel_id} selected {/if} data-subtext="{$item['phone_number']}" value="{$item['id']}">{$item['model']}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">

View File

@ -56,7 +56,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
class: 'autocontent',
formatter: Table.api.formatter.content
},
{field: 'work_tel_id', title: __('Work_tel_id')},
{field: 'phone.model', title: __('Work_tel_id')},
// {field: 'worker_id', title: __('Worker_id')},
{field: 'source_shop', title: __('Source')},
// {field: 'source_uid', title: __('Source_uid'), operate: 'LIKE'},
@ -155,6 +155,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
Table.api.bindevent(table);
},
add: function () {
console.log(1);
Controller.api.bindevent();
},
edit: function () {
@ -165,7 +166,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
Form.api.bindevent($("form[role=form]"),function (success,ret) {
console.log(success);
});
}
}
};
@ -233,64 +236,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
}
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 = $("<li class='dropdown-item'></li>")
.text('未搜索到结果')
.attr("data-value", 0);
$dropdownService.append($option);
} else {
data.forEach(item => {
let $option = $("<li class='dropdown-item'></li>")
.html(item.title + `<span class="text-muted small ms-1 ml-2">${item.key_word}</span>`)
.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) {