派单员添加区域过滤
This commit is contained in:
parent
cee37cad21
commit
ed63962d56
|
|
@ -42,7 +42,7 @@ return [
|
|||
'title' => 'Endpoint',
|
||||
'type' => 'string',
|
||||
'content' => [],
|
||||
'value' => 'allocatr.oss-cn-hangzhou.aliyuncs.com',
|
||||
'value' => 'oss-cn-hangzhou.aliyuncs.com',
|
||||
'rule' => 'required;endpoint',
|
||||
'msg' => '',
|
||||
'tip' => '请填写从阿里云存储获取的Endpoint',
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\addresmart\Address;
|
||||
use app\admin\model\AuthGroupAccess;
|
||||
use app\admin\model\OrderDispatch;
|
||||
use app\admin\model\Worker;
|
||||
use app\admin\model\WorkerItem;
|
||||
|
|
@ -28,6 +29,7 @@ class Order extends Backend
|
|||
protected $model = null;
|
||||
protected $sources = null;
|
||||
protected $items = null;
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
|
|
@ -100,7 +102,6 @@ class Order extends Backend
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
||||
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
||||
|
|
@ -108,10 +109,13 @@ class Order extends Backend
|
|||
*/
|
||||
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
$group = \model('auth_group_access')->find($this->auth->id)->group_id ?? 0;
|
||||
$user = \model('admin')->find($this->auth->id);
|
||||
|
||||
|
||||
if (false === $this->request->isAjax()) {
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
|
@ -120,11 +124,25 @@ class Order extends Backend
|
|||
return $this->selectpage();
|
||||
}
|
||||
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
|
||||
$list = $this->model
|
||||
$build = $this->model
|
||||
->field(['id', 'order_no', 'admin_id', 'customer', 'tel', 'status', 'area_id', 'address',
|
||||
'source', 'source_shop', 'source_uid', 'source', 'item_title', 'item_id', 'work_tel_id',
|
||||
'detail', 'remark', 'images', 'create_time', 'update_time', 'admin_id', 'dispatch_type', 'receive_type'])
|
||||
->where($where)
|
||||
->where($where);
|
||||
|
||||
if ($group == 2) {
|
||||
// 生成 SQL 语句
|
||||
$area_codes = $this->filterAreaCodes(explode(',', $user->area_ids));
|
||||
$build->where(function ($q) use ($area_codes) {
|
||||
foreach ($area_codes as $area_code) {
|
||||
$q->whereOr('area_id', 'like', $area_code . '%');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
$list = $build
|
||||
->with(['user' => function ($q) {
|
||||
$q->field('id,nickname');
|
||||
}, 'area' => function ($q) {
|
||||
|
|
@ -280,7 +298,8 @@ class Order extends Backend
|
|||
return $this->fetch();
|
||||
}
|
||||
|
||||
function generateOrderNumber($prefix = 'ORD') {
|
||||
function generateOrderNumber($prefix = 'ORD')
|
||||
{
|
||||
// 获取当前时间戳(精确到毫秒)
|
||||
$timestamp = microtime(true);
|
||||
$date = date('YmdHis', (int)$timestamp); // 格式:YYYYMMDDHHMMSS
|
||||
|
|
@ -293,7 +312,8 @@ class Order extends Backend
|
|||
}
|
||||
|
||||
|
||||
private function autoDispatch($order) {
|
||||
private function autoDispatch($order)
|
||||
{
|
||||
if ($order->dispatch_type != 2) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -340,7 +360,47 @@ class Order extends Backend
|
|||
}
|
||||
|
||||
|
||||
public function smart(){
|
||||
public function smart()
|
||||
{
|
||||
$this->success(data: Address::smart(request()->get('str')));
|
||||
}
|
||||
|
||||
|
||||
public function reminder($ids = null)
|
||||
{
|
||||
if ($ids) {
|
||||
$order = $this->model->where('id', $ids)->find();
|
||||
}
|
||||
$this->success($order['order_no']);
|
||||
}
|
||||
|
||||
private function filterAreaCodes(array $area_codes)
|
||||
{
|
||||
// 提取所有两位区号
|
||||
$prefix_2_digits = [];
|
||||
foreach ($area_codes as $code) {
|
||||
if (strlen($code) == 2) {
|
||||
$prefix_2_digits[] = $code;
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤数组
|
||||
$filtered_codes = array_filter($area_codes, function ($code) use ($prefix_2_digits) {
|
||||
// 如果是两位区号,直接保留
|
||||
if (strlen($code) == 2) {
|
||||
return true;
|
||||
}
|
||||
// 检查是否有对应的两位前缀,如果有,则排除四位区号
|
||||
foreach ($prefix_2_digits as $prefix) {
|
||||
if (strpos($code, $prefix) === 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 如果没有匹配的两位前缀,则保留
|
||||
return true;
|
||||
});
|
||||
|
||||
// 重新索引数组
|
||||
return array_values($filtered_codes);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
define([], function () {
|
||||
require([], function () {
|
||||
//绑定data-toggle=addresspicker属性点击事件
|
||||
console.log('111');
|
||||
|
||||
$(document).on('click', "[data-toggle='addresspicker']", function () {
|
||||
var that = this;
|
||||
var callback = $(that).data('callback');
|
||||
|
|
@ -10,9 +12,9 @@ define([], function () {
|
|||
var zoom_id = $(that).data("zoom-id") ? $(that).data("zoom-id") : "";
|
||||
var lat = lat_id ? $("#" + lat_id).val() : '';
|
||||
var lng = lng_id ? $("#" + lng_id).val() : '';
|
||||
var city_code = $("#area_name").val();
|
||||
var city_code = $("#area_id").val();
|
||||
var zoom = zoom_id ? $("#" + zoom_id).val() : '';
|
||||
var url = "/addons/address/index/select?abc=1";
|
||||
var url = "/addons/address/index/select?1=1";
|
||||
url += (lat && lng) ? 'lat=' + lat + '&lng=' + lng +
|
||||
(input_id ? "&address=" + $("#" + input_id).val() : "")
|
||||
+(zoom ? "&zoom=" + zoom : "") : ''
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree'],
|
|||
},
|
||||
success: function (data) {
|
||||
// console.log(data);
|
||||
// Controller.api.rendertree(data);
|
||||
Controller.api.rendertree(data);
|
||||
},
|
||||
error: function () {
|
||||
console.error("请求失败");
|
||||
|
|
|
|||
|
|
@ -169,6 +169,30 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','cascader'], function
|
|||
},
|
||||
refresh:true,
|
||||
},
|
||||
{
|
||||
name:"reminder",
|
||||
text:"催单",
|
||||
title:"派单",
|
||||
extend: 'data-toggle="tooltip" data-container="body"',
|
||||
classname: 'btn btn-xs btn-info btn-magic btn-ajax',
|
||||
icon: 'fa fa-bolt',
|
||||
url: 'order/reminder',
|
||||
success: function (data, ret) {
|
||||
if (ret.code === 1){
|
||||
Layer.alert('催单成功');
|
||||
}else {
|
||||
Layer.alert(ret.msg);
|
||||
}
|
||||
return false;
|
||||
//如果需要阻止成功提示,则必须使用return false;
|
||||
//return false;
|
||||
},
|
||||
error: function (data, ret) {
|
||||
console.log(data, ret);
|
||||
Layer.alert(ret.msg);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
],
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user