问题修复

This commit is contained in:
hant 2025-06-15 18:34:41 +08:00
parent d619f3a376
commit d0938fc804
10 changed files with 406 additions and 101 deletions

View File

@ -148,4 +148,33 @@ class Message extends Backend
}
public function markallread(){
$list = $this->model
->where('type',1)
->where('to_id',$this->auth->id)
//->auth($this->auth)
//->whereRaw("FIND_IN_SET(?, read_uid) = 0 OR read_uid IS NULL OR read_uid = ''", [$this->auth->id])
->whereRaw("FIND_IN_SET({$this->auth->id}, read_uid) = 0 OR read_uid = '' or read_uid is null")
->whereTime('create_time', '>=', '-3 days')
->select();
$update = [];
foreach ($list as &$item){
$readUids = explode(',',$item->read_uid??'');
$item->status = 1;
if(!in_array($this->auth->id,$readUids)){
$readUids[] = $this->auth->id;
$update[] = [
'id' => $item->id,
'read_uid' => implode(',',$readUids),
'update_time' => date('Y-m-d H:i:s')
];
$item->status = 0;
}
}
if($update){
$this->batchUpdateByIdSimple('fa_message',$update);
}
$this->success("全部已读");
}
}

View File

@ -13,6 +13,8 @@ use app\admin\model\Worker;
use app\admin\model\WorkerItem;
use app\common\controller\Backend;
use app\common\Logic\OrderLogic;
use Carbon\Carbon;
use Carbon\Traits\Creator;
use fast\Tree;
use think\Db;
use think\Exception;
@ -146,6 +148,7 @@ class Order extends Backend
'receive_type',
'plan_time',
'coupon_id',
'create_time',
'total',
'online_amount',
'aftersale_id'
@ -153,18 +156,33 @@ class Order extends Backend
->where($where);
$filter = (array)json_decode(input()['filter'] ?? '', true);
$admin_filter = $filter['user.nickname'] ?? false;
$is_timeout = $filter['is_timeout'] ?? null;
// dd($create_time,$filter);
if ($admin_filter) {
$admin_ids = Admin::where('nickname', 'like', '%' . $admin_filter . '%')->column('id');
$build->whereIn('admin_id', $admin_ids);
}
if (!is_null($is_timeout)) {
if ($is_timeout == 1){
$build->where('status', '>=', \app\admin\model\Order::STATUS_DISPATCHING)
->where('create_time', '<=', (new Carbon())->subMinutes(20)
->format('Y-m-d H:i:s'));
}else{
$build->where('status', '>=', \app\admin\model\Order::STATUS_DISPATCHING)
->where('create_time', '>', (new Carbon())->subMinutes(20)
->format('Y-m-d H:i:s'));
}
}
if ($type == 1) {
$build->where('status', '>=', 0);
}
if ($type == 2) {
}elseif ($type == 2) {
$build->where('status', '<', 0);
}elseif ($type == 3){
$build->where('status', '>=', \app\admin\model\Order::STATUS_DISPATCHING)
->where('create_time', '<=', (new Carbon())->subMinutes(20)
->format('Y-m-d H:i:s'));
}
if ($group == 2 || $group == 6) {
// 生成 SQL 语句
@ -449,7 +467,7 @@ class Order extends Backend
$insert [] = [
'to_id' => $re,
'type' => 1,
'title' => '订单报错通知',
'title' => '催单通知',
'content' => '【催单通知】您有一条订单号为' . $order->order_no . '的订单被催单,请立即派单!'
];
}
@ -823,7 +841,7 @@ class Order extends Backend
$index = 0;
foreach ($filter as $k => $v) {
if ($k == 'user.nickname') continue;
if ($k == 'user.nickname' || $k =='is_timeout') continue;
if (!preg_match('/^[a-zA-Z0-9_\-\.]+$/', $k)) {
continue;
}

View File

@ -16,6 +16,7 @@ use think\exception\DbException;
use think\exception\PDOException;
use think\exception\ValidateException;
use think\Hook;
use think\Loader;
/**
* 派单列管理
@ -68,12 +69,16 @@ class Dispatch2 extends Backend
return $this->selectpage();
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
// $filter = (array)json_decode(input()['filter'] ?? '', true);
// $type = $filter['dispatch_type'] ?? false;
// dd($where,$filter);
$list = $this->model
->with(['orderb','lastRecord'])
->auth($this->auth)
->where($where)
->order($sort, $order)
->where($where);
$list = $list->order($sort, $order)
->paginate($limit);
foreach ($list as &$row) {
@ -488,4 +493,192 @@ class Dispatch2 extends Backend
$this->success(__('取消成功'));
}
/**
* 生成查询所需要的条件,排序方式
* @param mixed $searchfields 快速查询的字段
* @param boolean $relationSearch 是否关联查询
* @return array
*/
protected function buildparams($searchfields = null, $relationSearch = null)
{
$searchfields = is_null($searchfields) ? $this->searchFields : $searchfields;
$relationSearch = is_null($relationSearch) ? $this->relationSearch : $relationSearch;
$search = $this->request->get("search", '');
$filter = $this->request->get("filter", '');
$op = $this->request->get("op", '', 'trim');
$sort = $this->request->get("sort", !empty($this->model) && $this->model->getPk() ? $this->model->getPk() : 'id');
$order = $this->request->get("order", "DESC");
$offset = max(0, $this->request->get("offset/d", 0));
$limit = max(0, $this->request->get("limit/d", 0));
$limit = $limit ?: 999999;
//新增自动计算页码
$page = $limit ? intval($offset / $limit) + 1 : 1;
if ($this->request->has("page")) {
$page = max(0, $this->request->get("page/d", 1));
}
$this->request->get([config('paginate.var_page') => $page]);
$filter = (array)json_decode($filter, true);
$op = (array)json_decode($op, true);
$filter = $filter ? $filter : [];
$where = [];
$alias = [];
$bind = [];
$name = '';
$aliasName = '';
if (!empty($this->model) && $relationSearch) {
$name = $this->model->getTable();
$alias[$name] = Loader::parseName(basename(str_replace('\\', '/', get_class($this->model))));
$aliasName = $alias[$name] . '.';
}
$sortArr = explode(',', $sort);
foreach ($sortArr as $index => & $item) {
$item = stripos($item, ".") === false ? $aliasName . trim($item) : $item;
}
unset($item);
$sort = implode(',', $sortArr);
$adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) {
$where[] = [$aliasName . $this->dataLimitField, 'in', $adminIds];
}
if ($search) {
$searcharr = is_array($searchfields) ? $searchfields : explode(',', $searchfields);
foreach ($searcharr as $k => &$v) {
$v = stripos($v, ".") === false ? $aliasName . $v : $v;
}
unset($v);
$where[] = [implode("|", $searcharr), "LIKE", "%{$search}%"];
}
$index = 0;
if (!isset($filter['type'])){
$filter['type'] = 1;
}
foreach ($filter as $k => $v) {
if (!preg_match('/^[a-zA-Z0-9_\-\.]+$/', $k)) {
continue;
}
$sym = $op[$k] ?? '=';
if (stripos($k, ".") === false) {
$k = $aliasName . $k;
}
$v = !is_array($v) ? trim($v) : $v;
$sym = strtoupper($op[$k] ?? $sym);
//null和空字符串特殊处理
if (!is_array($v)) {
if (in_array(strtoupper($v), ['NULL', 'NOT NULL'])) {
$sym = strtoupper($v);
}
if (in_array($v, ['""', "''"])) {
$v = '';
$sym = '=';
}
}
switch ($sym) {
case '=':
case '<>':
$where[] = [$k, $sym, (string)$v];
break;
case 'LIKE':
case 'NOT LIKE':
case 'LIKE %...%':
case 'NOT LIKE %...%':
$where[] = [$k, trim(str_replace('%...%', '', $sym)), "%{$v}%"];
break;
case '>':
case '>=':
case '<':
case '<=':
$where[] = [$k, $sym, intval($v)];
break;
case 'FINDIN':
case 'FINDINSET':
case 'FIND_IN_SET':
$v = is_array($v) ? $v : explode(',', str_replace(' ', ',', $v));
$findArr = array_values($v);
foreach ($findArr as $idx => $item) {
$bindName = "item_" . $index . "_" . $idx;
$bind[$bindName] = $item;
$where[] = "FIND_IN_SET(:{$bindName}, `" . str_replace('.', '`.`', $k) . "`)";
}
break;
case 'IN':
case 'IN(...)':
case 'NOT IN':
case 'NOT IN(...)':
$where[] = [$k, str_replace('(...)', '', $sym), is_array($v) ? $v : explode(',', $v)];
break;
case 'BETWEEN':
case 'NOT BETWEEN':
$arr = array_slice(explode(',', $v), 0, 2);
if (stripos($v, ',') === false || !array_filter($arr, function ($v) {
return $v != '' && $v !== false && $v !== null;
})) {
continue 2;
}
//当出现一边为空时改变操作符
if ($arr[0] === '') {
$sym = $sym == 'BETWEEN' ? '<=' : '>';
$arr = $arr[1];
} elseif ($arr[1] === '') {
$sym = $sym == 'BETWEEN' ? '>=' : '<';
$arr = $arr[0];
}
$where[] = [$k, $sym, $arr];
break;
case 'RANGE':
case 'NOT RANGE':
$v = str_replace(' - ', ',', $v);
$arr = array_slice(explode(',', $v), 0, 2);
if (stripos($v, ',') === false || !array_filter($arr)) {
continue 2;
}
//当出现一边为空时改变操作符
if ($arr[0] === '') {
$sym = $sym == 'RANGE' ? '<=' : '>';
$arr = $arr[1];
} elseif ($arr[1] === '') {
$sym = $sym == 'RANGE' ? '>=' : '<';
$arr = $arr[0];
}
$tableArr = explode('.', $k);
if (count($tableArr) > 1 && $tableArr[0] != $name && !in_array($tableArr[0], $alias)
&& !empty($this->model) && $this->relationSearch) {
//修复关联模型下时间无法搜索的BUG
$relation = Loader::parseName($tableArr[0], 1, false);
$alias[$this->model->$relation()->getTable()] = $tableArr[0];
}
$where[] = [$k, str_replace('RANGE', 'BETWEEN', $sym) . ' TIME', $arr];
break;
case 'NULL':
case 'IS NULL':
case 'NOT NULL':
case 'IS NOT NULL':
$where[] = [$k, strtolower(str_replace('IS ', '', $sym))];
break;
default:
break;
}
$index++;
}
if (!empty($this->model)) {
$this->model->alias($alias);
}
$model = $this->model;
$where = function ($query) use ($where, $alias, $bind, &$model) {
if (!empty($model)) {
$model->alias($alias);
$model->bind($bind);
}
foreach ($where as $k => $v) {
if (is_array($v)) {
call_user_func_array([$query, 'where'], $v);
} else {
$query->where($v);
}
}
};
return [$where, $sort, $order, $offset, $limit, $page, $alias, $bind];
}
}

View File

@ -7,11 +7,13 @@
<div class="widget-body no-padding">
<div id="toolbar" class="toolbar">
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('message/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('message/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('message/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-->
<a href="javascript:;" class="btn btn-success btn-all-read"><i class="fa fa-check-square-o"></i> 全部标记已读</a>
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('message/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('message/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('message/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-->
</div>
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
data-operate-edit="{:$auth->check('message/edit')}"

View File

@ -6,6 +6,7 @@
<ul class="nav nav-tabs" data-field="status">
<li class="{:$Think.get.status === (string)1 ? 'active' : ''}"><a href="#t-active" data-value="1" data-toggle="tab">正常订单</a></li>
<li class="{:$Think.get.status === (string)2 ? 'active' : ''}"><a href="#t-cancel" data-value="2" data-toggle="tab">取消订单</a></li>
<li class="{:$Think.get.status === (string)2 ? 'active' : ''}"><a href="#t-overtime" data-value="3" data-toggle="tab">超时订单</a></li>
</ul>
</div>

View File

@ -16,40 +16,40 @@
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-customer" readonly class="form-control" type="text" value="{$order.customer|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input id="c-customer" readonly class="form-control" type="text" value="{$order.customer|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('客户电话')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-tel" readonly class="form-control" type="text" value="{$order.tel|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('客户电话')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input id="c-tel" readonly class="form-control" type="text" value="{$order.tel|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('客户地址')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-address" readonly class="form-control" type="text" value="{$order.area.short_merge_name|htmlentities} {$order.address|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('客户地址')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input id="c-address" readonly class="form-control" type="text" value="{$order.area.short_merge_name|htmlentities} {$order.address|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('服务类目')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-item_title" readonly class="form-control" type="text" value="{$order.item_title|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('服务类目')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input id="c-item_title" readonly class="form-control" type="text" value="{$order.item_title|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Order.detail')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-detail" readonly class="form-control" type="text" value="{$order.detail|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Order.detail')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input id="c-detail" readonly class="form-control" type="text" value="{$order.detail|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
{notempty name ='action'}
@ -69,12 +69,15 @@
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('当前进度')}:</label>
<div class="col-xs-12 col-sm-8">
<input readonly type="text" class="form-control" value="{$row.status_text|htmlentities}">
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('当前进度')}:</label>-->
<!-- <div class="col-xs-12 col-sm-8">-->
<!-- <input readonly type="text" class="form-control" value="{$row.status_text|htmlentities}">-->
<!-- </div>-->
<!-- </div>-->
@ -135,7 +138,7 @@
<label for="c-image" class="control-label col-xs-12 col-sm-2">{:__('收款凭据')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-image" class="form-control" size="35" name="row[image]" type="text" value="">
<input id="c-image" data-rule="required" class="form-control" size="35" name="row[image]" type="text" value="">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
@ -148,8 +151,29 @@
{/if}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('材料成本(¥)')}:</label>
<div class="col-xs-12 col-sm-8">
<input name="order[material_cost]" min="1" step="0.01" type="number" class="form-control" value="{$order.material_cost}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('材料凭证')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-material_images" class="form-control" size="50" value="{$order.material_images}" name="order[material_images]" type="text">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-material_images" class="btn btn-danger faupload" data-input-id="c-material_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-material_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-material_images" class="btn btn-primary fachoose" data-input-id="c-material_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-material_images"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('完成图片')}:</label>
<div class="col-xs-12 col-sm-8">
@ -166,12 +190,7 @@
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
<div class="col-xs-12 col-sm-8">
<textarea class="form-control" data-rule="required" placeholder="备注" name="row[remark]" >{$row.remark|htmlentities}</textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('师傅提点(%)')}:</label>
@ -193,31 +212,13 @@
<input data-rule="required" name="order[cost]" type="number" min="0" max="100" step="1" class="form-control" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('材料成本(¥)')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
<div class="col-xs-12 col-sm-8">
<input data-rule="required" name="order[material_cost]" min="1" step="0.01" type="number" class="form-control" value="{$order.material_cost}">
<textarea class="form-control" placeholder="备注" name="row[remark]" >{$row.remark|htmlentities}</textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('材料凭证')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-material_images" class="form-control" size="50" value="{$order.material_images}" name="order[material_images]" type="text">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-material_images" class="btn btn-danger faupload" data-input-id="c-material_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-material_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-material_images" class="btn btn-primary fachoose" data-input-id="c-material_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-material_images"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8">

View File

@ -3,7 +3,7 @@
<div class="panel-heading">
{:build_heading(null, FALSE)}
<ul class="nav nav-tabs" data-field="type">
<li class="{:$Think.get.type === null || $Think.get.type == '1' ? 'active' : ''}">
<li class="{:$Think.get.type === null || $Think.get.type == '1'|| $Think.get.type == '0' ? 'active' : ''}">
<a href="#t-1" data-value="1" data-toggle="tab">手动派单</a>
</li>
<li class="{:$Think.get.type == '2' ? 'active' : ''}">

View File

@ -54,6 +54,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
// 为表格绑定事件
Table.api.bindevent(table);
$(".btn-all-read").click(function () {
Layer.confirm("确定要将所有消息标记为已读吗?", function (index) {
Fast.api.ajax({
url: 'message/markallread',
},function (){
Layer.close(index);
table.bootstrapTable('refresh');
});
});
});
},
add: function () {
Controller.api.bindevent();

View File

@ -83,7 +83,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'cascader'], function
fixed: true,
searchList: {
"0": __('Status 0'),
"10": __('Status 10'),
"10": __('Status 10'),
"20": __('Status 20'),
"30": __('Status 30'),
"40": __('Status 40'),
@ -101,6 +101,33 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'cascader'], function
"10": "my_dispatch"
}
},
{
field: 'is_timeout',
title: '是否超时',
formatter: function (value, row) {
value = row.create_time;
if (row.status !== 10 || !value) {
return '';
}
// 解析 create_time 时间戳或字符串为时间对象
var createTime = typeof value === 'string' ? new Date(value.replace(/-/g, '/')) : new Date(value * 1000); // 兼容时间戳和时间字符串
var now = new Date();
var diffMinutes = (now - createTime) / (1000 * 60); // 计算分钟差
return diffMinutes > 20 ? '<span style="color: red;">超时</span>' : '<span class="label label-success">未超时</span>';;
},
searchList: {
"1": '超时',
"0": '未超时',
},
searchable: true,
custom: {
'1': 'danger',
'0': 'success'
},
operate: '=',
},
{
field: 'dispatch_type',
title: '派单方式',
@ -219,24 +246,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'cascader'], function
},
dropdown: "更多"
},
{
name: "dispatch",
text: "派单",
title: "派单",
extend: 'data-toggle="tooltip" data-container="body"',
classname: 'btn btn-xs btn-info btn-dialog',
icon: 'fa fa-add',
url: function (row) {
return 'orders/dispatch/add?order_id=' + row.id;
},
visible: function (row) {
if (row.status == 10) {
return true;
}
return false;
},
refresh: true,
},
{
name: "warning",

View File

@ -89,7 +89,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
// {field: 'worker_id', title: __('Worker_id')},
{field: 'worker_name', title: __('Worker_name'), operate: 'LIKE'},
{field: 'worker_tel', title: __('Worker_tel'), operate: 'LIKE'},
{field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('自动')}, formatter: Table.api.formatter.normal,
{field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('自动')}, formatter: Table.api.formatter.normal
// defaultValue: '1'
},
@ -186,7 +186,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
return true;
}
},
// {
// name: "dispatch",
// text: "派单",
// title: "派单",
// extend: 'data-toggle="tooltip" data-container="body"',
// classname: 'btn btn-xs btn-info btn-dialog',
// icon: 'fa fa-add',
// url: function (row) {
// return 'orders/dispatch/add?order_id=' + row.order_id;
// },
// visible: function (row) {
// if (row.type == 2) {
// return true;
// }
// return false;
// },
// refresh: true,
// },
{
name: 'addrecord',
text:"跟进",
@ -231,7 +248,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
dropdown: "更多",
visible: function (row) {
if (row.orderb.status >= 0 && row.orderb.status < 60 && row.status >0 && row.status < 60) {
return true;
if (row.orderb.status >= 0 && row.orderb.status < 60 && row.status >=0 && row.status < 60) {
return true;
}
return false;
@ -250,7 +268,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
refresh:true,
dropdown: "更多",
visible: function (row) {
if (row.orderb.status != 60 && row.status > 0 && row.status < 60) {
return true;
if (row.orderb.status != 60 && row.status >=0 && row.status < 60) {
return true;
}
return false;
@ -268,7 +287,26 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
dropdown: "更多",
visible: function (row) {
if (row.orderb.status == 60 && row.status>0) {
return true;
if (row.orderb.status == 60 && row.status>=0) {
return true;
}
return false;
},
},
{
name: 'aftersale',
text: '申请售后',
title: '申请售后',
classname: 'btn btn-dialog',
icon: 'fa fa-phone-square',
url: function(row){
return 'aftersales/aftersale/add/'+row.order_id;
},
dropdown: "更多",
visible: function (row) {
return true;
if (row.orderb.status !== -10 && row.orderb.status !== 70) {
return true;
}
return false;