Merge remote-tracking branch 'origin/feature/hant' into feature/hant
This commit is contained in:
commit
a7c8c023a8
|
|
@ -48,7 +48,8 @@ class OrderDispatchLog
|
|||
'type' => 1,
|
||||
'outid' => md5(time().rand(1000,9999).rand(1000,9999)),
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'status' => $alibaba_dyvms['sync']?1:0
|
||||
'status' => $alibaba_dyvms['sync']?1:0,
|
||||
'mobile' => $dispatch->worker_tel,
|
||||
];
|
||||
$service = new NoticeLogic();
|
||||
$service->dispatchNotice($dispatch);
|
||||
|
|
|
|||
|
|
@ -374,6 +374,6 @@ class Ajax extends Backend
|
|||
|
||||
|
||||
public function getItems(){
|
||||
return $items = \app\admin\model\Item::where('level',1)->field('id,title as name')->select();
|
||||
return $items = \app\admin\model\Item::where('level',1)->field('id,title as name')->order('sort','desc')->select();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -177,6 +177,11 @@ class Order extends Backend
|
|||
])
|
||||
->where($where);
|
||||
$filter = (array)json_decode(input()['filter'] ?? '', true);
|
||||
|
||||
if(isset($filter['audit_time'])){
|
||||
$build->where('status',\app\admin\model\Order::STATUS_FINISHED);
|
||||
}
|
||||
|
||||
$admin_filter = $filter['user.nickname'] ?? false;
|
||||
$area_id = $filter['area_id'] ?? false;
|
||||
$item_id = $filter['item_id'] ?? false;
|
||||
|
|
@ -252,6 +257,10 @@ class Order extends Backend
|
|||
}else{
|
||||
$item->source_total_name = ($item->getRelation('source')->title??'');
|
||||
}
|
||||
|
||||
if($item->status <60){
|
||||
$item->audit_time = null;
|
||||
}
|
||||
unset($item->source);
|
||||
}
|
||||
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
||||
|
|
@ -327,6 +336,7 @@ class Order extends Backend
|
|||
$params['create_time'] = date('Y-m-d H:i:s');
|
||||
$params['update_time'] = date('Y-m-d H:i:s');
|
||||
$params['receive_type'] = $params['receive_type']?: 1;
|
||||
$params['audit_time'] = date('Y-m-d H:i:s');
|
||||
|
||||
$result = $this->model->allowField(true)->save($params);
|
||||
$auth = clone $this->auth;
|
||||
|
|
@ -627,14 +637,16 @@ class Order extends Backend
|
|||
'update_time' => now()->format('Y-m-d H:m:s'),
|
||||
];
|
||||
|
||||
$orderDispatch = OrderDispatch::where('order_id',$order->id)->whereBetween('status','>=',0)->find();
|
||||
|
||||
if ($params['abnormal_id'] == 2 || $params['abnormal_id'] == 3) {
|
||||
|
||||
$order->status = \app\admin\model\Order::STATUS_CANCEL;
|
||||
$order->save();
|
||||
if (!empty($order->dispatch->id)) {
|
||||
|
||||
if (!empty($orderDispatch)) {
|
||||
$orderLogic = new OrderLogic();
|
||||
$orderLogic->cancelOrderDispatch($order->dispatch, $this->auth, '订单被取消', false);
|
||||
$orderLogic->cancelOrderDispatch($orderDispatch, $this->auth, '订单被取消', false);
|
||||
//日志
|
||||
$hookparams['order'] = $order;
|
||||
$hookparams['role'] = 1;
|
||||
|
|
@ -654,9 +666,9 @@ class Order extends Backend
|
|||
|
||||
$order->status = \app\admin\model\Order::STATUS_DISPATCHING;
|
||||
$order->save();
|
||||
if (!empty($order->dispatch->id)) {
|
||||
if (!empty($orderDispatch)) {
|
||||
$OrderLogic = new OrderLogic();
|
||||
$OrderLogic->noWorkerCanGetIt($order->dispatch, '系统取消' . $abnormal_title);
|
||||
$OrderLogic->noWorkerCanGetIt($orderDispatch, '系统取消' . $abnormal_title);
|
||||
AutoDispatchLogic::autoDispatch($order);
|
||||
}
|
||||
|
||||
|
|
@ -679,7 +691,6 @@ class Order extends Backend
|
|||
$result = \model('order_abnormal')->insert($insert);
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
throw $e;
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,13 +133,13 @@ class Orderplan extends Backend
|
|||
}
|
||||
|
||||
$build->field([
|
||||
'DATE(create_time) day',
|
||||
'DATE(audit_time) day',
|
||||
'sum(total) total',
|
||||
'count(id) count',
|
||||
'sum(performance) performance'
|
||||
])
|
||||
->where('status',\app\admin\model\Order::STATUS_FINISHED)
|
||||
->group(' DATE(create_time)');
|
||||
->group(' DATE(audit_time)');
|
||||
|
||||
$res = $this->buildDate($build)->select();
|
||||
$data = [];
|
||||
|
|
@ -300,17 +300,26 @@ class Orderplan extends Backend
|
|||
$start = now()->format('Y-m-d 00:00:00');
|
||||
$end_at = now()->format('Y-m-d 23:59:59');
|
||||
|
||||
$build = new \app\admin\model\Order();
|
||||
$build->whereBetween('audit_time', [$start, $end_at])
|
||||
->where('status',\app\admin\model\Order::STATUS_FINISHED);
|
||||
$data1 = $build->field([
|
||||
'sum(total) total',
|
||||
'count(*) count',
|
||||
])->select();
|
||||
|
||||
|
||||
$build = new \app\admin\model\Order();
|
||||
$build->whereBetween('create_time', [$start, $end_at]);
|
||||
$data = $build->field([
|
||||
'sum(total) total',
|
||||
'count(id) count',
|
||||
/* 'sum(total) total',
|
||||
'count(id) count',*/
|
||||
'count(if(status=-10,1,null)) cancel'
|
||||
])->select();
|
||||
|
||||
$today = [
|
||||
'total' => $data[0]->total ?? 0,
|
||||
'count' => $data[0]->count ?? 0,
|
||||
'total' => $data1[0]->total ?? 0,
|
||||
'count' => $data1[0]->count ?? 0,
|
||||
'cancel' => $data[0]->cancel ?? 0,
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -264,6 +264,7 @@ class Aftersale extends Backend
|
|||
$this->error('订单不存在');
|
||||
}
|
||||
$order->status = Order::STATUS_FINISHED;
|
||||
$order->audit_time = date('Y-m-d H:i:s');
|
||||
$order->save();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -478,6 +478,7 @@ class Aftersale2 extends Backend
|
|||
$order = Order::get($row->order_id);
|
||||
//重新计算订单利润
|
||||
$order->status = Order::STATUS_FINISHED;
|
||||
$order->audit_time = date('Y-m-d H:i:s');
|
||||
$order->save();
|
||||
$orderLogic = new OrderLogic();
|
||||
$orderLogic->recacle($order,$row);
|
||||
|
|
|
|||
|
|
@ -124,7 +124,8 @@ class Auditorder extends Backend
|
|||
if (false === $this->request->isPost()) {
|
||||
$order = Order::where('id',$ids)->find();
|
||||
$this->view->assign('row', $row);
|
||||
$this->view->assign('worker',Worker::where('id',$order->worker_id)->find());
|
||||
$worker = Worker::withTrashed()->where('id', $order->worker_id)->find();
|
||||
$this->view->assign('worker',$worker);
|
||||
$this->view->assign('cdnurl', config('upload.cdnurl'));
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,7 +118,8 @@ class Configorder extends Backend
|
|||
}
|
||||
if (false === $this->request->isPost()) {
|
||||
$this->view->assign('row', $row);
|
||||
$worker = Worker::where('id',$row->worker_id)->find();
|
||||
//$worker = Worker::where('id',$row->worker_id)->find();
|
||||
$worker = Worker::withTrashed()->where('id', $row->worker_id)->find();
|
||||
$this->view->assign('worker', $worker);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
|
@ -143,6 +144,7 @@ class Configorder extends Backend
|
|||
|
||||
$data = [
|
||||
'status' => Order::STATUS_AUDITING,
|
||||
'online_amount' => $params['online_amount'],
|
||||
'online_amount_last' => $params['online_amount_last'],
|
||||
'offline_amount' => $params['offline_amount'],
|
||||
// 'refund_amount' => $params['refund_amount'],
|
||||
|
|
@ -160,7 +162,7 @@ class Configorder extends Backend
|
|||
|
||||
$cost = bcadd($params['cost'],$params['material_cost'],2);
|
||||
|
||||
$data['total'] = bcadd($row->online_amount,$last_amount,2);
|
||||
$data['total'] = bcadd($params['online_amount'],$last_amount,2);
|
||||
$data['real_amount'] = $data['total'];
|
||||
$data['performance'] = bcsub($data['real_amount'],$cost,2);
|
||||
$result = $row->allowField(true)->save($data);
|
||||
|
|
|
|||
|
|
@ -323,6 +323,7 @@ class Dispatch2 extends Backend
|
|||
|
||||
//计算价格
|
||||
$data = [
|
||||
'online_amount' => $orderParsms['online_amount'], //线上尾款
|
||||
'online_amount_last' => $row->online_total, //线上尾款
|
||||
'offline_amount' => $row->total, //线下尾款
|
||||
'cost' => $orderParsms['cost'],
|
||||
|
|
@ -340,7 +341,7 @@ class Dispatch2 extends Backend
|
|||
|
||||
$cost = bcadd($data['cost'],$data['material_cost'],2);
|
||||
|
||||
$data['total'] = bcadd($order->online_amount,$last_amount,2);
|
||||
$data['total'] = bcadd($data['online_amount'],$last_amount,2);
|
||||
$data['real_amount'] = $data['total'];
|
||||
$data['performance'] = bcsub($data['real_amount'],$cost,2);
|
||||
$order->allowField(true)->save($data);
|
||||
|
|
|
|||
|
|
@ -137,14 +137,17 @@ class Dispatcher extends Backend
|
|||
// 使用 IFNULL 确保结果为 null 时返回 0
|
||||
"IFNULL(COUNT(CASE WHEN status = 60 THEN 1 END), 0) AS finish_num", //完成数
|
||||
"IFNULL(COUNT(CASE WHEN status IN (".$orderValid.") THEN 1 END), 0) AS count_num", //总订单数 (排除取消 和草稿)
|
||||
"IFNULL(COUNT(CASE WHEN is_overtime = 1 THEN 1 END), 0) AS overtime_num", //超时数
|
||||
"IFNULL(COUNT(CASE WHEN status = 60 AND is_overtime = 1 THEN 1 END), 0) AS overtime_num", //超时数
|
||||
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN total END), 0) AS total", //成效额
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN performance END), 0) AS performance", //业绩
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN (cost + material_cost) END), 0) AS cost_total", //总成本
|
||||
"IFNULL(SUM(CASE WHEN status = 60 THEN (refund_amount + worker_refund_amount) END), 0) AS refund_total", //退款总数
|
||||
"IFNULL(COUNT(CASE WHEN refund_amount > 0 OR worker_refund_amount > 0 THEN 1 END), 0) AS refund_count", //退款订单数量
|
||||
"IFNULL(AVG(CASE WHEN status > 10 THEN UNIX_TIMESTAMP(dispatch_time) - UNIX_TIMESTAMP(create_time) END), 0) AS avg_time_diff", //派单时效
|
||||
//"IFNULL(SUM(CASE WHEN status = 60 THEN (refund_amount + worker_refund_amount) END), 0) AS refund_total", //退款总数
|
||||
"SUM(
|
||||
CASE WHEN status = 60 THEN (refund_amount + worker_refund_amount) ELSE 0 END
|
||||
) AS refund_total",
|
||||
"IFNULL(COUNT(CASE WHEN status = 60 AND (refund_amount > 0 OR worker_refund_amount > 0) THEN 1 END), 0) AS refund_count", //退款订单数量
|
||||
"IFNULL(AVG(CASE WHEN status = 60 THEN UNIX_TIMESTAMP(dispatch_time) - UNIX_TIMESTAMP(create_time) END), 0) AS avg_time_diff", //派单时效
|
||||
// "SUM(CASE WHEN status = 60 THEN (field1 + field2) END) AS performance",
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use app\admin\model\OrderReview;
|
|||
use app\common\controller\Backend;
|
||||
use PDOStatement;
|
||||
use think\Collection;
|
||||
use think\Db;
|
||||
use think\Exception;
|
||||
use think\exception\DbException;
|
||||
use think\Loader;
|
||||
|
|
@ -24,7 +25,7 @@ use function Symfony\Component\Clock\now;
|
|||
*/
|
||||
class Item extends Backend
|
||||
{
|
||||
|
||||
protected $itemsformattedTree = null;
|
||||
|
||||
protected $noNeedRight = ['list','chartData'];
|
||||
|
||||
|
|
@ -33,6 +34,43 @@ class Item extends Backend
|
|||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
|
||||
$sources = Db::name('source')
|
||||
->where('status', 1)
|
||||
->field(['id', 'title', 'key_word', 'pid'])
|
||||
->order('pid', 'asc')
|
||||
->order('sort', 'desc')
|
||||
->select();
|
||||
$filtered = array_filter($sources, function ($item) {
|
||||
return $item['pid'] == 0;
|
||||
});
|
||||
|
||||
$pid_map = array_column($filtered, null, 'id');
|
||||
$res = [];
|
||||
foreach ($sources as $item) {
|
||||
if ($item['pid'] != 0 && isset($pid_map[$item['pid']])) {
|
||||
$res [] = [
|
||||
...$item, 'ptitle' => $pid_map[$item['pid']]['title']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/* $items = Db::name('item')
|
||||
->where('status', 1)
|
||||
->field(['id', 'title', 'key_word', 'pid'])
|
||||
->order('pid', 'asc')
|
||||
->order('sort', 'desc')
|
||||
->select();
|
||||
$tree = $this->buildTree($items);
|
||||
$formattedTree = $this->formatTree($tree);
|
||||
|
||||
$this->items = $items;
|
||||
$this->itemsformattedTree = $formattedTree;*/
|
||||
|
||||
$items = \app\admin\model\Item::where('level',1)->field('id,title')->order('sort','desc')->select();
|
||||
$this->view->assign("sources", $res);
|
||||
$this->view->assign("items", $items);
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
|
|
@ -48,6 +86,8 @@ class Item extends Backend
|
|||
public function list()
|
||||
{
|
||||
$build = new Order();
|
||||
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
|
||||
|
||||
|
||||
$start = now()->modify('-7 days')->format('Y-m-d');
|
||||
$end_at = now()->format('Y-m-d 23:29:59');
|
||||
|
|
@ -69,6 +109,21 @@ class Item extends Backend
|
|||
$build->where('area_id', 'like', $area_id . '%');
|
||||
}
|
||||
|
||||
//来源
|
||||
if(!empty(request()->get('source',null))){
|
||||
$build->where('source',request()->get('source'));
|
||||
}
|
||||
//城市
|
||||
/* if(!empty(request()->post('area_id',null))){
|
||||
$build->where('area_id','LIKE',request()->post('source').'%');
|
||||
}*/
|
||||
|
||||
if(!empty(request()->get('item_id',null))){
|
||||
$item_id =request()->get('item_id');
|
||||
$item_ids = $this->getItemsById($item_id);
|
||||
$item_ids [] = $item_id;
|
||||
$build->whereIn('item_id', $item_ids);
|
||||
}
|
||||
|
||||
$build->whereBetween('create_time', [$start, $end_at])
|
||||
->field([
|
||||
|
|
@ -86,7 +141,7 @@ class Item extends Backend
|
|||
])->group('item_title')
|
||||
->order('count_num', 'desc');
|
||||
// dd($total);
|
||||
$res = $build->paginate();
|
||||
$res = $build->paginate($limit);
|
||||
$total = $res->total();
|
||||
$ress = $res->items();
|
||||
$data = [];
|
||||
|
|
@ -103,7 +158,7 @@ class Item extends Backend
|
|||
$re['total_avg'] = $this->mydiv($re['total'],$re['count_num'],2,false);
|
||||
$re['performance_avg'] = $this->mydiv($re['performance'],$re['finish_num'],2,false);
|
||||
$re['avg_time_diff'] = $this->mydiv($re['avg_time_diff'],3600,2,false);
|
||||
$re['cost_total'] = $cost_total;
|
||||
$re['cost_total'] = number_format($cost_total,2,'.','');
|
||||
// $re['id'] = $re['item_id'];
|
||||
$data [] = $re;
|
||||
}
|
||||
|
|
@ -139,6 +194,8 @@ class Item extends Backend
|
|||
|
||||
$filter ['daterange'] = request()->post('daterange');
|
||||
|
||||
|
||||
|
||||
if (!empty($filter['daterange'])) {
|
||||
$arr = explode(' - ', $filter['daterange']);
|
||||
if (trim($arr[0])) {
|
||||
|
|
@ -149,9 +206,28 @@ class Item extends Backend
|
|||
}
|
||||
}
|
||||
|
||||
$res = $build
|
||||
->whereBetween('create_time', [$start, $end_at])
|
||||
->field([
|
||||
$build = $build
|
||||
->whereBetween('create_time', [$start, $end_at]);
|
||||
|
||||
//来源
|
||||
if(!empty(request()->post('source',null))){
|
||||
$build->where('source',request()->post('source'));
|
||||
}
|
||||
|
||||
//城市
|
||||
if(!empty(request()->post('area_id',null))){
|
||||
$build->where('area_id','LIKE',request()->post('source').'%');
|
||||
}
|
||||
|
||||
if(!empty(request()->post('item_id',null))){
|
||||
$item_id =request()->post('item_id');
|
||||
$item_ids = $this->getItemsById($item_id);
|
||||
$item_ids [] = $item_id;
|
||||
$build->whereIn('item_id', $item_ids);
|
||||
}
|
||||
|
||||
|
||||
$res = $build->field([
|
||||
'item_title name', // 类型
|
||||
'sum(total) total', // 营业额
|
||||
'count(id) count', // 单量
|
||||
|
|
|
|||
|
|
@ -167,7 +167,8 @@ class Order extends Model
|
|||
self::STATUS_CHECKING,
|
||||
self::STATUS_CHECKONCE,
|
||||
self::STATUS_AUDITING,
|
||||
self::STATUS_FINISHED
|
||||
self::STATUS_FINISHED,
|
||||
self::STATUS_AFTERSALE
|
||||
],
|
||||
];
|
||||
return $tabStatus[$tab] ?? [];
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
<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-order_id" data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.order_no|htmlentities}">
|
||||
<input id="c-order_id" data-field="order_no" class="form-control" readonly type="text" value="{$order.order_no|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 data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.customer|htmlentities}">
|
||||
<input data-field="order_no" class="form-control" readonly type="text" value="{$order.customer|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">客户电话:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.tel|htmlentities}">
|
||||
<input data-field="order_no" class="form-control" readonly type="text" value="{$order.tel|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
<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-order_id" data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.order_no|htmlentities}">
|
||||
<input id="c-order_id" data-field="order_no" class="form-control" readonly type="text" value="{$order.order_no|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 data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.customer|htmlentities}">
|
||||
<input data-field="order_no" class="form-control" readonly type="text" value="{$order.customer|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">客户电话:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input data-field="order_no" data-rule="required" class="form-control" readonly type="text" value="{$order.tel|htmlentities}">
|
||||
<input data-field="order_no" class="form-control" readonly type="text" value="{$order.tel|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,14 +11,12 @@
|
|||
<tr>
|
||||
<th>姓名</th>
|
||||
<th>录单数</th>
|
||||
<th>录单业绩</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{$adminname|htmlentities}</td>
|
||||
<td>{$data['total']|htmlentities}</td>
|
||||
<td>{$data['money']|htmlentities}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -8,20 +8,20 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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-detail" readonly class="form-control" placeholder="订单详情" value="{$row.source_shop|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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" class="form-control" readonly type="text" value="{$row.customer|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
|
|
@ -75,10 +75,10 @@
|
|||
|
||||
|
||||
<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">{:__('收款凭证')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-amount_images" class="form-control" size="50" type="text" value="{$row.amount_images}" >
|
||||
<input id="c-amount_images" readonly class="form-control" size="50" type="text" value="{$row.amount_images}" >
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-amount_images" class="btn btn-danger faupload" data-input-id="c-amount_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-amount_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-amount_images" class="btn btn-primary fachoose" data-input-id="c-amount_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
|
|
@ -111,13 +111,13 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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 class="form-control" type="text" value="{$worker.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -160,18 +160,20 @@
|
|||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<input id="c-material_cost" name="row[material_cost]" type="hidden" value="0">
|
||||
|
||||
<!--<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-material_cost" readonly class="form-control" step="0.01" name="row[material_cost]" type="number" value="{$row.material_cost|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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="{$row.material_images}" name="row[material_images]" type="text">
|
||||
<input id="c-material_images" readonly class="form-control" size="50" value="{$row.material_images}" name="row[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>
|
||||
|
|
@ -180,14 +182,14 @@
|
|||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
|
||||
</div>
|
||||
</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-off_images" class="form-control" size="50" value="{$row.off_images}" name="row[off_images]" type="text">
|
||||
<input id="c-off_images" readonly class="form-control" size="50" value="{$row.off_images}" name="row[off_images]" type="text">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-off_images" class="btn btn-danger faupload" data-input-id="c-off_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-off_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-off_images" class="btn btn-primary fachoose" data-input-id="c-off_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
|
|
@ -225,6 +227,7 @@
|
|||
|
||||
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('转账凭证')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
@ -239,6 +242,7 @@
|
|||
<ul class="row list-inline faupload-preview" id="p-trans_images"></ul>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Item_title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-item_title" readonly class="form-control" type="text" value="{$row.item_title|htmlentities}">
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-order_admin" readonly class="form-control" type="text" value="{$row.dispatch.admin_user|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
<!-- <div class="form-group">-->
|
||||
|
|
@ -51,11 +51,12 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Online_amount')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-online_amount" readonly class="form-control" step="0.01" name="row[online_amount]" type="number" value="{$row.online_amount|htmlentities}">
|
||||
<input id="c-online_amount" data-rule="required" class="form-control" step="0.01" name="row[online_amount]" type="number" value="{$row.online_amount|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{if condition='$row.status eq 40'}
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -82,7 +83,7 @@
|
|||
|
||||
|
||||
<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">{:__('收款凭证')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-amount_images" class="form-control" size="50" name="row[amount_images]" type="text" value="{$row.dispatch.image}" >
|
||||
|
|
@ -97,12 +98,12 @@
|
|||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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 min="0" max="100" step="1" class="form-control" value="{$worker->name}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('师傅提点(%)')}:</label>
|
||||
|
|
@ -111,12 +112,12 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<!-- <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="{$worker.rate_remark}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -126,6 +127,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<input id="c-material_cost" name="row[material_cost]" type="hidden" value="0">
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('材料成本')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
@ -148,6 +151,7 @@
|
|||
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
|
@ -181,7 +185,7 @@
|
|||
|
||||
|
||||
<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">{:__('收款凭证')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-amount_images" class="form-control" size="50" name="row[amount_images]" type="text" value="{$row.amount_images}" >
|
||||
|
|
@ -195,12 +199,12 @@
|
|||
</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 min="0" max="100" step="1" class="form-control" value="{$worker->name}" />
|
||||
</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 min="0" max="100" step="1" class="form-control" value="{$worker->name}" />-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('师傅提点(%)')}:</label>
|
||||
|
|
@ -208,13 +212,13 @@
|
|||
<input name="row[cost_rate]" readonly type="number" min="0" max="100" step="1" class="form-control" value="{$worker.rate|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="{$worker.rate_remark}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -224,29 +228,31 @@
|
|||
</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-material_cost" data-rule="required" class="form-control" step="0.01" name="row[material_cost]" type="number" value="{$row.material_cost|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<input id="c-material_cost" name="row[material_cost]" type="hidden" value="0">
|
||||
|
||||
|
||||
<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="{$row.material_images}" name="row[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 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-material_cost" data-rule="required" class="form-control" step="0.01" name="row[material_cost]" type="number" value="{$row.material_cost|htmlentities}">
|
||||
</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">
|
||||
<div class="input-group">
|
||||
<input id="c-material_images" class="form-control" size="50" value="{$row.material_images}" name="row[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>-->
|
||||
|
||||
{/if}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
<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="order-online-amount" readonly type="text" class="form-control" value="{$order.online_amount|htmlentities}">
|
||||
<input id="order-online-amount" name="order[online_amount]" type="text" class="form-control" value="{$order.online_amount|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
<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="order-online-amount" readonly type="text" class="form-control" value="{$order.online_amount|htmlentities}">
|
||||
<input id="order-online-amount" name="order[online_amount]" type="text" class="form-control" value="{$order.online_amount|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -153,28 +153,31 @@
|
|||
|
||||
{/if}
|
||||
|
||||
<div class="form-group">
|
||||
<!--<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="order-material_cost" data-rule="required" name="order[material_cost]" min="1" step="0.01" type="number" class="form-control" value="{$order.material_cost}">
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<input id="order-material_cost" name="order[material_cost]" min="1" step="0.01" type="hidden" class="form-control" value="0">
|
||||
|
||||
|
||||
<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 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>
|
||||
<span class="msg-box n-right" for="c-material_images"></span>
|
||||
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-material_images"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('完成图片')}:</label>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
</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">
|
||||
|
|
@ -33,13 +32,70 @@
|
|||
</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">{:__('线上预付')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-detail" readonly class="form-control" placeholder="订单详情" >{$row.detail|htmlentities}</textarea>
|
||||
<input id="c-online_amount" readonly class="form-control" type="number" value="{$row.online_amount|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{if condition='$row.status eq 60'}
|
||||
|
||||
|
||||
<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-online_amount_last" readonly class="form-control" step="0.01" type="number" value="{$row.online_amount_last|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">
|
||||
{:build_select('row[offline_amount_type]',$offlineTotalTypeList,$row['offline_amount_type'],['class'=>'form-control readonly','data-rule'=>'required'])}
|
||||
</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-offline_amount" readonly class="form-control" step="0.01" type="number" value="{$row.offline_amount|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-total" readonly class="form-control" type="number" value="{$row.online_amount|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{/if}
|
||||
|
||||
|
||||
<!--
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('订单详情')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-detail" readonly class="form-control" placeholder="订单详情" >{$row.detail|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
{if condition='$row.status eq -10'}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('订单备注')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" readonly >{$row.remark|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
|
||||
|
||||
{if condition='$row.cancel_detail neq ""'}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,34 @@
|
|||
<style>
|
||||
/* 保持 form-inline 中子元素水平排列 */
|
||||
#chart-filter-table > div {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* 城市选择的容器,定位弹层基准 */
|
||||
#select_city_wrapper {
|
||||
position: relative; /* 弹层相对定位 */
|
||||
width: 250px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* city-picker 弹层,确保宽度和输入框一致 */
|
||||
.city-picker-dropdown {
|
||||
position: absolute !important;
|
||||
top: 100% !important; /* 紧贴输入框下方 */
|
||||
left: 0 !important;
|
||||
width: 100% !important;
|
||||
max-height: 400px !important;
|
||||
overflow: auto !important;
|
||||
background: #fff !important;
|
||||
border: 1px solid #ccc !important;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
|
||||
z-index: 9999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs">
|
||||
|
|
@ -29,6 +60,9 @@
|
|||
<input type="text" class="form-control datetimerange" value = "{$default_daterange}" data-locale='{"format":"YYYY-MM-DD"}' placeholder="指定日期" name="filter[daterange]" id="daterange" autocomplete="off" style="width: 200px;">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 查询按钮 -->
|
||||
<button class="btn btn-default" id="filter-btn" style="margin-left: 15px;">查询</button>
|
||||
</div>
|
||||
|
|
@ -43,22 +77,55 @@
|
|||
</section>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="second">
|
||||
<div id="chart-filter-table" style="margin-top:20px;margin-bottom: 30px;">
|
||||
<div style="display: inline-block;width: 300px;position: relative">
|
||||
<input class="form-control" data-toggle="city-picker" type="text" placeholder="地区" id="area-table">
|
||||
<input style="display: none" type="text" id="area_id">
|
||||
<div id="chart-filter-table" class="form-inline">
|
||||
<!-- 地区选择,移除input-group,改成一个div包裹 -->
|
||||
<div id="select_city_wrapper">
|
||||
<input style="padding-left: 5px;" id="select_city" class="form-control" data-toggle="city-picker" type="text" placeholder="选择城市" />
|
||||
<input id="select_area_id" type="hidden" class="operate" name="area_id" />
|
||||
</div>
|
||||
|
||||
<!-- 渠道选择 -->
|
||||
<div class="input-group" style="width: 200px;">
|
||||
<select id="source" data-live-search="true" title="订单渠道" name="filter[source]" class="form-control selectpicker show-tick">
|
||||
<option value="">--订单渠道--</option>
|
||||
{foreach $sources as $item}
|
||||
<option value="{$item['id']}">【{$item['ptitle']}】{$item['title']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 项目组选择 -->
|
||||
<div class="input-group" style="width: 200px;">
|
||||
<select id="item_id" data-live-search="true" title="项目组" name="filter[item_id]" class="form-control selectpicker show-tick">
|
||||
<option value="">--项目组--</option>
|
||||
{foreach $items as $item}
|
||||
<option value="{$item['id']}">{$item['title']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 日期选择 -->
|
||||
<div class="input-group" style="width: 200px;">
|
||||
<input type="text" class="form-control datetimerange"
|
||||
data-locale='{"format":"YYYY-MM-DD"}'
|
||||
value="{$default_daterange}"
|
||||
placeholder="指定日期"
|
||||
name="filter[daterange]"
|
||||
id="daterange-table"
|
||||
autocomplete="off">
|
||||
</div>
|
||||
|
||||
<!-- 查询按钮 -->
|
||||
<div class="input-group">
|
||||
<button class="btn btn-default" id="filter-btn-table">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: inline-block;width: 200px;position: relative">
|
||||
<input type="text" class="form-control datetimerange" data-locale='{"format":"YYYY-MM-DD"}'
|
||||
value = "{$default_daterange}"
|
||||
placeholder="指定日期" name="filter[daterange]" id="daterange-table" autocomplete="off" style="width: 180px;">
|
||||
</div>
|
||||
<!-- 查询按钮 -->
|
||||
<button class="btn btn-default" id="filter-btn-table" style="margin-left: 15px;">查询</button>
|
||||
</div>
|
||||
<table id="table2" class="table table-striped table-bordered table-hover">
|
||||
|
||||
<table id="table2" class="table table-striped table-bordered table-hover">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
</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">收款码:</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">
|
||||
|
|
|
|||
|
|
@ -92,10 +92,10 @@
|
|||
</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">收款码:</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">
|
||||
<input id="c-images" class="form-control" size="50" name="row[images]" value="{$row.images|htmlentities}" type="text">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-images" class="btn btn-danger faupload" data-input-id="c-images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-images" class="btn btn-primary fachoose" data-input-id="c-images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ ${data.receive_type == 1 ? '已收定金' : '已收全款'}
|
|||
},
|
||||
operate: '=',
|
||||
},
|
||||
{field: 'dispatch_admin_user', title: '派单员',operate: 'LIKE'},
|
||||
{field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
||||
{
|
||||
field: 'dispatch_type',
|
||||
title: '派单方式',
|
||||
|
|
@ -161,7 +161,8 @@ ${data.receive_type == 1 ? '已收定金' : '已收全款'}
|
|||
|
||||
|
||||
{field: 'user.nickname', title: '录单员',operate: 'LIKE'},
|
||||
{field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
||||
{field: 'dispatch_admin_user', title: '派单员',operate: 'LIKE'},
|
||||
|
||||
{field: 'tel', title: __('Tel'), operate: 'LIKE'},
|
||||
{field: 'area.merge_name', title: __('Area_id'), searchable: false},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
|
||||
{field: 'dispatch_admin_id', title: __('派单员'), searchList:$.getJSON("orders/configorder/getadminuser"),operate: 'IN',visible:false},
|
||||
|
||||
{field: 'time_by', title: __('时间维度'), visible:false,searchList: {"1":__('录单时间'),"2":__('派单时间')},defaultValue:1, formatter: Table.api.formatter.normal},
|
||||
{field: 'time_by', title: __('时间维度'), visible:false,searchList: {"1":__('审核时间')},defaultValue:1, formatter: Table.api.formatter.normal},
|
||||
{field: 'daterange', title: __('时间筛选'), addclass:'datetimerange',
|
||||
autocomplete:false,
|
||||
operate: "RANGE",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-theme', 'template', 'addtabs', 'moment','citypicker'], function ($, undefined, Backend, Table, Form, echarts, undefined, Template, Datatable, Moment) {
|
||||
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-theme', 'template', 'addtabs', 'moment','citypicker','cascader'], function ($, undefined, Backend, Table, Form, echarts, undefined, Template, Datatable, Moment) {
|
||||
|
||||
|
||||
var Controller = {
|
||||
|
||||
|
|
@ -56,6 +57,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
});
|
||||
// 为表格2绑定事件
|
||||
Table.api.bindevent(table2);
|
||||
|
||||
setTimeout(function () {
|
||||
var $city = $('#select_city');
|
||||
if ($city.data('citypicker')) {
|
||||
$city.citypicker('destroy');
|
||||
}
|
||||
$city.citypicker();
|
||||
|
||||
$city.off("cp:updated").on("cp:updated", function () {
|
||||
var citypicker = $(this).data("citypicker");
|
||||
var code = citypicker.getCode("district") || citypicker.getCode("city") || citypicker.getCode("province");
|
||||
$("#select_area_id").val(code);
|
||||
});
|
||||
}, 500);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -74,20 +90,49 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
|
||||
$('#filter-btn-table').on('click', function () {
|
||||
|
||||
const area_id = $('#area_id').val();
|
||||
const area_id = $('#select_area_id').val();
|
||||
const range = $('#daterange-table').val();
|
||||
|
||||
const source1 = $('#source').val();
|
||||
const item_id = $('#item_id').val();
|
||||
|
||||
|
||||
let data = '';
|
||||
if (area_id !== ''){
|
||||
if (area_id !== '' ){
|
||||
data += 'area_id=' + area_id+'&';
|
||||
}
|
||||
if (range !== ''){
|
||||
data += 'range=' + range;
|
||||
data += 'range=' + range+'&';
|
||||
}
|
||||
|
||||
if (source1!== ''){
|
||||
data += 'source=' + source1+'&';
|
||||
}
|
||||
if (item_id !== '' && item_id !== 'undefined'){
|
||||
data +='item_id=' + item_id + '&';
|
||||
}
|
||||
|
||||
// data = encodeURIComponent(data);
|
||||
$("#table2").bootstrapTable('refresh',{
|
||||
url:'statistics/item/list?' + data,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* var _data = items;
|
||||
$('#select_item').zdCascader({
|
||||
data: _data,
|
||||
onChange: function ($this, data, allPathData) {
|
||||
// console.log(data,allPathData);
|
||||
$('#select_item_id').val(data.value);
|
||||
},
|
||||
clear: true,
|
||||
clickParent: true
|
||||
});*/
|
||||
|
||||
},
|
||||
|
||||
add: function () {
|
||||
|
|
@ -187,10 +232,16 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
getChartData: function () {
|
||||
// 获取日期范围值
|
||||
var daterange = $('#daterange').val();
|
||||
|
||||
/* var source = $('#source').val();
|
||||
var city_id = $('#area_id').val();
|
||||
var item_id = $('#item_id').val();
|
||||
*/
|
||||
// 构建查询参数
|
||||
var params = {
|
||||
'daterange': daterange,
|
||||
/* 'source': source,
|
||||
'area_id': city_id,
|
||||
'item_id': item_id,*/
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
|
|
@ -205,7 +256,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
console.error("图表数据加载失败");
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
|
|
|
|||
|
|
@ -83,8 +83,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
visible: false
|
||||
},
|
||||
|
||||
{field: 'item_id', title: __('工程'), searchList:$.getJSON("ajax/getItems"),operate: 'IN',visible:false},
|
||||
|
||||
{field: 'item_id', title: __('工种'), searchList:$.getJSON("ajax/getItems"),operate: 'IN',visible:false},
|
||||
|
||||
{field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
|
||||
buttons: [
|
||||
|
|
|
|||
|
|
@ -86,8 +86,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree','cascader'],
|
|||
}, visible: false
|
||||
},
|
||||
{
|
||||
field: '收款码',
|
||||
title: __('Images'),
|
||||
field: 'images',
|
||||
title: __('收款码'),
|
||||
operate: false,
|
||||
events: Table.api.events.image,
|
||||
formatter: Table.api.formatter.images
|
||||
|
|
|
|||
2
public/assets/js/require-backend.min.js
vendored
2
public/assets/js/require-backend.min.js
vendored
|
|
@ -11880,7 +11880,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
ignoreColumn: [0, 'operate'] //默认不导出第一列(checkbox)与操作(operate)列
|
||||
},
|
||||
pageSize: Config.pagesize || localStorage.getItem("pagesize") || 10,
|
||||
pageList: [10, 15, 20, 25, 50, 'All'],
|
||||
pageList: [10, 15, 20, 25, 50, 100],
|
||||
pagination: true,
|
||||
clickToSelect: true, //是否启用点击选中
|
||||
dblClickToEdit: true, //是否启用双击编辑
|
||||
|
|
|
|||
2
public/assets/js/require-frontend.min.js
vendored
2
public/assets/js/require-frontend.min.js
vendored
|
|
@ -11624,7 +11624,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
ignoreColumn: [0, 'operate'] //默认不导出第一列(checkbox)与操作(operate)列
|
||||
},
|
||||
pageSize: Config.pagesize || localStorage.getItem("pagesize") || 10,
|
||||
pageList: [10, 15, 20, 25, 50, 'All'],
|
||||
pageList: [10, 15, 20, 25, 50, 100],
|
||||
pagination: true,
|
||||
clickToSelect: true, //是否启用点击选中
|
||||
dblClickToEdit: true, //是否启用双击编辑
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
ignoreColumn: [0, 'operate'] //默认不导出第一列(checkbox)与操作(operate)列
|
||||
},
|
||||
pageSize: Config.pagesize || localStorage.getItem("pagesize") || 10,
|
||||
pageList: [10, 15, 20, 25, 50, 'All'],
|
||||
pageList: [10, 15, 20, 25, 50, 100],
|
||||
pagination: true,
|
||||
clickToSelect: true, //是否启用点击选中
|
||||
dblClickToEdit: true, //是否启用双击编辑
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user