Merge remote-tracking branch 'origin/develop' into feature/hant
# Conflicts: # application/admin/controller/aftersales/Aftersale.php # application/admin/view/aftersales/aftersale/add.html # public/assets/js/backend/order.js
This commit is contained in:
commit
1a285481dc
|
|
@ -136,7 +136,7 @@ class Order extends Backend
|
||||||
$build = $this->model
|
$build = $this->model
|
||||||
->field(['id', 'order_no', 'admin_id', 'customer', 'tel', 'status', 'area_id', 'address',
|
->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',
|
'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'])
|
'detail', 'remark', 'images', 'create_time', 'update_time', 'admin_id', 'dispatch_type', 'receive_type','aftersale_id'])
|
||||||
->where($where);
|
->where($where);
|
||||||
|
|
||||||
if ($type == 1){
|
if ($type == 1){
|
||||||
|
|
@ -169,6 +169,16 @@ class Order extends Backend
|
||||||
}])
|
}])
|
||||||
->order($sort, $order)
|
->order($sort, $order)
|
||||||
->paginate($limit);
|
->paginate($limit);
|
||||||
|
|
||||||
|
foreach ($list as &$item){
|
||||||
|
$item->aftersale_btn = false;
|
||||||
|
if($item->status == \app\admin\model\Order::STATUS_FINISHED && $item->aftersale_id==0){
|
||||||
|
if($this->auth->check('aftersales/aftersale/add')){
|
||||||
|
$item->aftersale_btn = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
||||||
return json($result);
|
return json($result);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,16 @@ class Aftersale extends Backend
|
||||||
if ($ids){
|
if ($ids){
|
||||||
$order = model('order')->get($ids);
|
$order = model('order')->get($ids);
|
||||||
$this->view->assign('order',$order);
|
$this->view->assign('order',$order);
|
||||||
|
}else{
|
||||||
|
$order_id = $this->request->param('order_id');
|
||||||
|
if(empty($order_id)){
|
||||||
|
$this->error('请选择订单');
|
||||||
|
}
|
||||||
|
$order = Order::get($order_id);
|
||||||
|
if(empty($order)){
|
||||||
|
$this->error('订单不存在');
|
||||||
|
}
|
||||||
|
$this->assign('order',$order);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->view->fetch();
|
return $this->view->fetch();
|
||||||
|
|
@ -117,22 +127,27 @@ class Aftersale extends Backend
|
||||||
if(empty($order)){
|
if(empty($order)){
|
||||||
$this->error('订单不存在');
|
$this->error('订单不存在');
|
||||||
}
|
}
|
||||||
if($order->status != Order::STATUS_FINISHED){
|
/* if($order->status != Order::STATUS_FINISHED){
|
||||||
$this->error('订单不是完成状态,不可进行今后');
|
$this->error('订单不是完成状态,不可创建售后');
|
||||||
}
|
}*/
|
||||||
if(model('aftersale')->where('order_id',$params['order_id'])
|
if(\app\admin\model\Aftersale::where('order_id',$params['order_id'])->find()){
|
||||||
->whereIn('status',[1,2,3])->find()){
|
|
||||||
$this->error('订单已存在售后信息,不可重复创建');
|
$this->error('订单已存在售后信息,不可重复创建');
|
||||||
}
|
}
|
||||||
$params['admin_id'] = $this->auth->id;
|
$params['admin_id'] = $this->auth->id;
|
||||||
$params['admin_user'] = $this->auth->nickname;
|
$params['admin_user'] = $this->auth->nickname;
|
||||||
$params['worker_id'] = $order->dispatch->worker_id;
|
if(!empty($order->dispatch)){
|
||||||
$params['worker_name'] = $order->dispatch->worker_name;
|
$params['worker_id'] = $order->dispatch->worker_id;
|
||||||
|
$params['worker_name'] = $order->dispatch->worker_name;
|
||||||
|
}
|
||||||
|
$params['status'] = 1;
|
||||||
|
$params['refund_amount'] = bcadd($params['company_refund_amount'],$params['worker_refund_amount'],2);
|
||||||
$result = $this->model->allowField(true)->save($params);
|
$result = $this->model->allowField(true)->save($params);
|
||||||
|
$order->aftersale_id = $this->model->id;
|
||||||
|
$order->save();
|
||||||
Db::commit();
|
Db::commit();
|
||||||
} catch (Exception $e) {
|
} catch (ValidateException|PDOException|Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
throw $e;
|
$this->error($e->getMessage());
|
||||||
}
|
}
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
$this->error(__('No rows were inserted'));
|
$this->error(__('No rows were inserted'));
|
||||||
|
|
@ -163,11 +178,6 @@ class Aftersale extends Backend
|
||||||
if(empty($order)){
|
if(empty($order)){
|
||||||
$this->error('订单不存在');
|
$this->error('订单不存在');
|
||||||
}
|
}
|
||||||
|
|
||||||
if($order->status != Order::STATUS_FINISHED){
|
|
||||||
$this->error('订单不是完成状态,不可进行今后');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->view->assign('order',$order);
|
$this->view->assign('order',$order);
|
||||||
$this->view->assign('row', $row);
|
$this->view->assign('row', $row);
|
||||||
return $this->view->fetch();
|
return $this->view->fetch();
|
||||||
|
|
@ -188,6 +198,15 @@ class Aftersale extends Backend
|
||||||
}
|
}
|
||||||
$params['handle_admin_id'] = $this->auth->id;
|
$params['handle_admin_id'] = $this->auth->id;
|
||||||
$params['handle_admin_user'] = $this->auth->nickname;
|
$params['handle_admin_user'] = $this->auth->nickname;
|
||||||
|
$params['refund_amount'] = bcadd($params['company_refund_amount'],$params['worker_refund_amount'],2);
|
||||||
|
|
||||||
|
if(empty($params['company_refund_time'])){
|
||||||
|
$params['company_refund_time'] = date('Y-m-d H:i:s');
|
||||||
|
}
|
||||||
|
if(empty($params['worker_refund_time'])){
|
||||||
|
$params['worker_refund_time'] = date('Y-m-d H:i:s');
|
||||||
|
}
|
||||||
|
|
||||||
$result = $row->allowField(true)->save($params);
|
$result = $row->allowField(true)->save($params);
|
||||||
Db::commit();
|
Db::commit();
|
||||||
} catch (ValidateException|PDOException|Exception $e) {
|
} catch (ValidateException|PDOException|Exception $e) {
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ class Auditorder extends Backend
|
||||||
if($audit_status){
|
if($audit_status){
|
||||||
$params['status'] = Order::STATUS_FINISHED;
|
$params['status'] = Order::STATUS_FINISHED;
|
||||||
}else{
|
}else{
|
||||||
$params['status'] = Order::STATUS_CHECKING;
|
$params['status'] = Order::STATUS_CHECKONCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
$params['audit_admin_id'] = $this->auth->id;
|
$params['audit_admin_id'] = $this->auth->id;
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ class Configorder extends Backend
|
||||||
}
|
}
|
||||||
$params = $this->preExcludeFields($params);
|
$params = $this->preExcludeFields($params);
|
||||||
|
|
||||||
if($row->status != Order::STATUS_CHECKING){
|
if(!in_array($row->status,[Order::STATUS_CHECKING,Order::STATUS_CHECKONCE])){
|
||||||
$this->error('订单不允许操作');
|
$this->error('订单不允许操作');
|
||||||
}
|
}
|
||||||
$result = false;
|
$result = false;
|
||||||
|
|
@ -128,7 +128,8 @@ class Configorder extends Backend
|
||||||
'offline_amount' => $params['offline_amount'],
|
'offline_amount' => $params['offline_amount'],
|
||||||
'refund_amount' => $params['refund_amount'],
|
'refund_amount' => $params['refund_amount'],
|
||||||
'cost' => $params['cost'],
|
'cost' => $params['cost'],
|
||||||
'offline_amount_type'=> $params['offline_amount_type']
|
'offline_amount_type'=> $params['offline_amount_type'],
|
||||||
|
'amount_images' => $params['amount_images'],
|
||||||
];
|
];
|
||||||
|
|
||||||
$last_amount = bcadd($params['online_amount_last'],$params['offline_amount'],2);
|
$last_amount = bcadd($params['online_amount_last'],$params['offline_amount'],2);
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,15 @@ class Dispatchrecord extends Backend
|
||||||
|
|
||||||
$params['admin_id'] = $this->auth->id;
|
$params['admin_id'] = $this->auth->id;
|
||||||
$result = $this->model->allowField(true)->save($params);
|
$result = $this->model->allowField(true)->save($params);
|
||||||
OrderDispatch::where('id',$params['dispatch_id'])->where('follow',0)->update(['follow'=>1]);
|
$dispatch = OrderDispatch::get($params['dispatch_id']);
|
||||||
|
|
||||||
|
if(empty($dispatch)){
|
||||||
|
$this->error('任务不存在');
|
||||||
|
}
|
||||||
|
$dispatch->follow = 1;
|
||||||
|
$dispatch->record_count += 1;
|
||||||
|
$dispatch->save();
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
} catch (ValidateException|PDOException|Exception $e) {
|
} catch (ValidateException|PDOException|Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace app\admin\controller\orders;
|
namespace app\admin\controller\orders;
|
||||||
|
|
||||||
|
use app\admin\model\Aftersale;
|
||||||
use app\admin\model\Order;
|
use app\admin\model\Order;
|
||||||
use app\common\controller\Backend;
|
use app\common\controller\Backend;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
@ -50,7 +51,7 @@ class Review extends Backend
|
||||||
public function edit($ids=null)
|
public function edit($ids=null)
|
||||||
{
|
{
|
||||||
if (false === $this->request->isPost()) {
|
if (false === $this->request->isPost()) {
|
||||||
|
$this->assign('statusList',['0'=>'否','1'=>'是']);
|
||||||
//$ids = $this->request->request('ids');
|
//$ids = $this->request->request('ids');
|
||||||
|
|
||||||
if(empty($ids)){
|
if(empty($ids)){
|
||||||
|
|
@ -63,14 +64,16 @@ class Review extends Backend
|
||||||
$this->error('订单不存在');
|
$this->error('订单不存在');
|
||||||
}
|
}
|
||||||
|
|
||||||
if($order->status != Order::STATUS_FINISHED){
|
/* if($order->status != Order::STATUS_FINISHED){
|
||||||
$this->error('订单未完成,不能回访');
|
$this->error('订单未完成,不能回访');
|
||||||
}
|
}*/
|
||||||
if($order->revisit_id > 0){
|
if($order->revisit_id > 0){
|
||||||
$this->error('订单已完成回访');
|
$this->error('订单已完成回访');
|
||||||
}
|
}
|
||||||
|
if($order->aftersale_id){
|
||||||
$this->assign('order',$order);
|
$order->aftersale = Aftersale::get($order->aftersale_id);
|
||||||
|
}
|
||||||
|
$this->assign('row',$order);
|
||||||
return $this->view->fetch();
|
return $this->view->fetch();
|
||||||
}
|
}
|
||||||
$params = $this->request->post('row/a');
|
$params = $this->request->post('row/a');
|
||||||
|
|
@ -101,7 +104,13 @@ class Review extends Backend
|
||||||
}
|
}
|
||||||
$params['admin_id'] = $this->auth->id;
|
$params['admin_id'] = $this->auth->id;
|
||||||
$params['admin_user'] = $this->auth->nickname;
|
$params['admin_user'] = $this->auth->nickname;
|
||||||
$params['worker_id'] = $order->dispatch->worker_id;
|
|
||||||
|
if(!empty($order->dispatch->worker_id)){
|
||||||
|
$params['worker_id'] = $order->dispatch;
|
||||||
|
}
|
||||||
|
if($order->status == 60){
|
||||||
|
$params['is_star'] = 1;
|
||||||
|
}
|
||||||
$result = $this->model->allowField(true)->save($params);
|
$result = $this->model->allowField(true)->save($params);
|
||||||
$order->revisit_id = $this->auth->id;
|
$order->revisit_id = $this->auth->id;
|
||||||
$order->save();
|
$order->save();
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class Revisitorder extends Backend
|
||||||
$list = $this->model
|
$list = $this->model
|
||||||
//->with(['orderreview'])
|
//->with(['orderreview'])
|
||||||
->where($where)
|
->where($where)
|
||||||
->where('status',Order::STATUS_FINISHED)
|
->whereIn('status',[Order::STATUS_FINISHED,Order::STATUS_CANCEL])
|
||||||
->order($sort, $order)
|
->order($sort, $order)
|
||||||
->paginate($limit);
|
->paginate($limit);
|
||||||
|
|
||||||
|
|
@ -77,6 +77,10 @@ class Revisitorder extends Backend
|
||||||
foreach ($list as $row) {
|
foreach ($list as $row) {
|
||||||
if($row->revisit_id && isset($reviews[$row->revisit_id])){
|
if($row->revisit_id && isset($reviews[$row->revisit_id])){
|
||||||
$row->review = $reviews[$row->revisit_id];
|
$row->review = $reviews[$row->revisit_id];
|
||||||
|
if(empty($row->review) || $row->review['is_star'] == 0){
|
||||||
|
$row->pt_star = '-';
|
||||||
|
$row->worker_star = '-';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ return [
|
||||||
'Id' => 'ID',
|
'Id' => 'ID',
|
||||||
'Order_id' => '订单ID',
|
'Order_id' => '订单ID',
|
||||||
'Status' => '状态',
|
'Status' => '状态',
|
||||||
'Status 1' => '售后中',
|
'Status 1' => '待处理',
|
||||||
'Set status to 1' => '设为售后中',
|
'Set status to 1' => '设为待处理',
|
||||||
'Status 2' => '已办结',
|
'Status 2' => '已办结',
|
||||||
'Set status to 2' => '设为已办结',
|
'Set status to 2' => '设为已办结',
|
||||||
'Status 3' => '已退款',
|
'Status 3' => '已退款',
|
||||||
|
|
@ -25,6 +25,7 @@ return [
|
||||||
'Company_refund_amount' => '公司退款金额',
|
'Company_refund_amount' => '公司退款金额',
|
||||||
'Worker_refund_amount' => '师傅退款金额',
|
'Worker_refund_amount' => '师傅退款金额',
|
||||||
'Refund_type' => '退款方式',
|
'Refund_type' => '退款方式',
|
||||||
|
'Refund_type 0' => '无',
|
||||||
'Refund_type 1' => '微信支付',
|
'Refund_type 1' => '微信支付',
|
||||||
'Refund_type 2' => '平台退款',
|
'Refund_type 2' => '平台退款',
|
||||||
'Worker_refund_entry' => '师傅退款入账',
|
'Worker_refund_entry' => '师傅退款入账',
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,10 @@ return [
|
||||||
'Set status to 30' => '设为进行中',
|
'Set status to 30' => '设为进行中',
|
||||||
'Status 40' => '待配置',
|
'Status 40' => '待配置',
|
||||||
'Set status to 40' => '设为待配置',
|
'Set status to 40' => '设为待配置',
|
||||||
'Status 41' => '审核驳回',
|
'Status 41' => '结算驳回',
|
||||||
'Set status to 41' => '设为审核驳回',
|
'Set status to 41' => '设为结算驳回',
|
||||||
'Status 50' => '待财务审核',
|
'Status 50' => '待结算',
|
||||||
'Set status to 50' => '设为待财务审核',
|
'Set status to 50' => '设为待结算',
|
||||||
'Status 60' => '已完成',
|
'Status 60' => '已完成',
|
||||||
'Set status to 60' => '设为已完成',
|
'Set status to 60' => '设为已完成',
|
||||||
'Status -10' => '取消',
|
'Status -10' => '取消',
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ return [
|
||||||
'Set status to 30' => '设为进行中',
|
'Set status to 30' => '设为进行中',
|
||||||
'Status 40' => '待配置',
|
'Status 40' => '待配置',
|
||||||
'Set status to 40' => '设为待配置',
|
'Set status to 40' => '设为待配置',
|
||||||
'Status 50' => '待财务审核',
|
'Status 50' => '待结算',
|
||||||
'Set status to 50' => '设为待财务审核',
|
'Set status to 50' => '设为待结算',
|
||||||
'Status 60' => '已完成',
|
'Status 60' => '已完成',
|
||||||
'Set status to 60' => '设为已完成',
|
'Set status to 60' => '设为已完成',
|
||||||
'Status -10' => '取消',
|
'Status -10' => '取消',
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ return [
|
||||||
'Order.status 30' => '进行中',
|
'Order.status 30' => '进行中',
|
||||||
'Order.status 40' => '待配置',
|
'Order.status 40' => '待配置',
|
||||||
'Order.status 41' => '审核驳回',
|
'Order.status 41' => '审核驳回',
|
||||||
'Order.status 50' => '待财务审核',
|
'Order.status 50' => '待结算',
|
||||||
'Order.status 60' => '已完成',
|
'Order.status 60' => '已完成',
|
||||||
'Order.status -10' => '取消',
|
'Order.status -10' => '取消',
|
||||||
'Order.area_id' => '地域',
|
'Order.area_id' => '地域',
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ return [
|
||||||
'Order.status 30' => '进行中',
|
'Order.status 30' => '进行中',
|
||||||
'Order.status 40' => '待配置',
|
'Order.status 40' => '待配置',
|
||||||
'Order.status 41' => '审核驳回',
|
'Order.status 41' => '审核驳回',
|
||||||
'Order.status 50' => '待财务审核',
|
'Order.status 50' => '待结算',
|
||||||
'Order.status 60' => '已完成',
|
'Order.status 60' => '已完成',
|
||||||
'Order.status -10' => '取消',
|
'Order.status -10' => '取消',
|
||||||
'Order.area_id' => '地域',
|
'Order.area_id' => '地域',
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
return [
|
return [
|
||||||
'Dispatch_id' => '任务ID',
|
'Dispatch_id' => '任务ID',
|
||||||
'Worker_id' => '师傅ID',
|
'Worker_id' => '师傅ID',
|
||||||
'Remark' => '备注',
|
'Remark' => '跟进内容',
|
||||||
'Need_notice' => '是否提醒',
|
'Need_notice' => '是否提醒',
|
||||||
'Need_notice 0' => '不需要',
|
'Need_notice 0' => '不需要',
|
||||||
'Need_notice 1' => '需要',
|
'Need_notice 1' => '需要',
|
||||||
|
|
@ -12,7 +12,7 @@ return [
|
||||||
'Set status to 0'=> '设为未通知',
|
'Set status to 0'=> '设为未通知',
|
||||||
'Status 1' => '已通知',
|
'Status 1' => '已通知',
|
||||||
'Set status to 1'=> '设为已通知',
|
'Set status to 1'=> '设为已通知',
|
||||||
'Notice_time' => '提醒时间',
|
'Notice_time' => '下次跟进',
|
||||||
'Create_time' => '创建时间',
|
'Create_time' => '创建时间',
|
||||||
'Update_time' => '更新时间',
|
'Update_time' => '更新时间',
|
||||||
'Admin_id' => '管理员ID'
|
'Admin_id' => '管理员ID'
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ return [
|
||||||
'Set status to 30' => '设为进行中',
|
'Set status to 30' => '设为进行中',
|
||||||
'Status 40' => '待验收',
|
'Status 40' => '待验收',
|
||||||
'Set status to 40' => '设为待验收',
|
'Set status to 40' => '设为待验收',
|
||||||
'Status 50' => '待财务审核',
|
'Status 50' => '待结算',
|
||||||
'Set status to 50' => '设为待财务审核',
|
'Set status to 50' => '设为待结算',
|
||||||
'Status 60' => '已完成',
|
'Status 60' => '已完成',
|
||||||
'Set status to 60' => '设为已完成',
|
'Set status to 60' => '设为已完成',
|
||||||
'Status -10' => '取消',
|
'Status -10' => '取消',
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ class Aftersale extends Model
|
||||||
|
|
||||||
public function getRefundTypeList()
|
public function getRefundTypeList()
|
||||||
{
|
{
|
||||||
return ['1' => __('Refund_type 1'), '2' => __('Refund_type 2')];
|
return ['0' => __('Refund_type 0'),'1' => __('Refund_type 1'), '2' => __('Refund_type 2')];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getWorkerRefundEntryList()
|
public function getWorkerRefundEntryList()
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,8 @@ class Order extends Model
|
||||||
const STATUS_DISPATCHING = 10; //待派单
|
const STATUS_DISPATCHING = 10; //待派单
|
||||||
const STATUS_DISPATCHED = 20; //已派单
|
const STATUS_DISPATCHED = 20; //已派单
|
||||||
//const STATUS_ING = 30; //进行中
|
//const STATUS_ING = 30; //进行中
|
||||||
const STATUS_CHECKING = 40; //待派单
|
const STATUS_CHECKING = 40; //待审核
|
||||||
|
const STATUS_CHECKONCE = 41; //审核未通过
|
||||||
const STATUS_AUDITING = 50; //审核中
|
const STATUS_AUDITING = 50; //审核中
|
||||||
const STATUS_FINISHED = 60; //已完成
|
const STATUS_FINISHED = 60; //已完成
|
||||||
const STATUS_CANCEL = -10; //取消
|
const STATUS_CANCEL = -10; //取消
|
||||||
|
|
@ -61,7 +62,9 @@ class Order extends Model
|
||||||
{
|
{
|
||||||
return ['0' => __('Status 0'),'10' => __('Status 10'), '20' => __('Status 20'),
|
return ['0' => __('Status 0'),'10' => __('Status 10'), '20' => __('Status 20'),
|
||||||
//'30' => __('Status 30'),
|
//'30' => __('Status 30'),
|
||||||
'40' => __('Status 40'), '50' => __('Status 50'), '60' => __('Status 60'), '-10' => __('Status -10')];
|
'40' => __('Status 40'),
|
||||||
|
'41' => __('Status 41'),
|
||||||
|
'50' => __('Status 50'), '60' => __('Status 60'), '-10' => __('Status -10')];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -146,7 +149,8 @@ class Order extends Model
|
||||||
self::STATUS_FINISHED
|
self::STATUS_FINISHED
|
||||||
],
|
],
|
||||||
self::TAB_SETTING => [
|
self::TAB_SETTING => [
|
||||||
self::STATUS_CHECKING
|
self::STATUS_CHECKING,
|
||||||
|
self::STATUS_CHECKONCE
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
return $tabStatus[$tab] ?? [];
|
return $tabStatus[$tab] ?? [];
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||||
|
|
||||||
<div class="form-group">
|
<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="col-xs-12 col-sm-8">
|
||||||
{if isset($order)}
|
{if isset($order)}
|
||||||
<input id="c-order_sn" disabled data-rule="required" value="{$order.order_no}" class="form-control" type="text" >
|
<input id="c-order_sn" disabled data-rule="required" value="{$order.order_no}" class="form-control" type="text" >
|
||||||
<input id="c-order_id" value="{$order.id}" style="display: none" class="form-control" name="row[order_id]" type="text" >
|
<input id="c-order_id" value="{$order.id}" style="display: none" class="form-control" name="row[order_id]" type="text" >
|
||||||
{else /}value3
|
{else /}value3
|
||||||
<input id="c-order_id" data-field="order_no" data-rule="required" data-source="order/index" class="form-control selectpage" name="row[order_id]" type="text" value="">
|
<input id="c-order_no" readonly data-rule="required" class="form-control" type="text" value="{$order.order_no}">
|
||||||
|
<input type="hidden" name="row[order_id]" value="{$order.id}">
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -36,22 +37,17 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_amount')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-refund_amount" data-rule="required" class="form-control" step="0.01" name="row[refund_amount]" type="number" value="0.00">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-company_refund_amount" data-rule="required" class="form-control" step="0.01" name="row[company_refund_amount]" type="number" value="0.00">
|
<input id="c-company_refund_amount" data-rule="required" min="0" class="form-control" step="0.01" name="row[company_refund_amount]" type="number" value="0.00">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-worker_refund_amount" data-rule="required" class="form-control" step="0.01" name="row[worker_refund_amount]" type="number" value="0.00">
|
<input id="c-worker_refund_amount" data-rule="required" min="0" class="form-control" step="0.01" name="row[worker_refund_amount]" type="number" value="0.00">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -78,12 +74,12 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<!-- <div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_time')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_time')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refund_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
<input id="c-refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refund_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>-->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_appeal')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_appeal')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
|
@ -93,7 +89,15 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_qrcode')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_qrcode')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-customer_qrcode" class="form-control" name="row[customer_qrcode]" type="text">
|
<div class="input-group">
|
||||||
|
<input id="c-customer_qrcode" class="form-control" size="50" name="row[customer_qrcode]" type="text" value="">
|
||||||
|
<div class="input-group-addon no-border no-padding">
|
||||||
|
<span><button type="button" id="faupload-customer_qrcode" class="btn btn-danger faupload" data-input-id="c-customer_qrcode" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple=false data-preview-id="p-customer_qrcode"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||||
|
<span><button type="button" id="fachoose-customer_qrcode" class="btn btn-primary fachoose" data-input-id="c-customer_qrcode" data-mimetype="image/*" data-multiple=false><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||||
|
</div>
|
||||||
|
<span class="msg-box n-right" for="c-customer_qrcode"></span>
|
||||||
|
</div>
|
||||||
|
<ul class="row list-inline faupload-preview" id="p-customer_qrcode"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -117,43 +121,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_time')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-company_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[company_refund_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_time')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-worker_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[worker_refund_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-star" data-rule="required" class="form-control" name="row[star]" type="number" value="0">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
|
|
||||||
<div class="radio">
|
|
||||||
{foreach name="statusList" item="vo"}
|
|
||||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
|
|
||||||
{/foreach}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group layer-footer">
|
<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-2"></label>
|
||||||
|
|
|
||||||
|
|
@ -31,22 +31,17 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_amount')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-refund_amount" data-rule="required" class="form-control" step="0.01" name="row[refund_amount]" type="number" value="{$row.refund_amount|htmlentities}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-company_refund_amount" data-rule="required" class="form-control" step="0.01" name="row[company_refund_amount]" type="number" value="{$row.company_refund_amount|htmlentities}">
|
<input id="c-company_refund_amount" data-rule="required" min="0" class="form-control" step="0.01" name="row[company_refund_amount]" type="number" value="{$row.company_refund_amount|htmlentities}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-worker_refund_amount" data-rule="required" class="form-control" step="0.01" name="row[worker_refund_amount]" type="number" value="{$row.worker_refund_amount|htmlentities}">
|
<input id="c-worker_refund_amount" data-rule="required" min="0" class="form-control" step="0.01" name="row[worker_refund_amount]" type="number" value="{$row.worker_refund_amount|htmlentities}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -73,12 +68,26 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<!-- <div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_time')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_time')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refund_time]" type="text" value="{$row.refund_time}">
|
<input id="c-refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refund_time]" type="text" value="{$row.refund_time}">
|
||||||
</div>
|
</div>
|
||||||
|
</div>-->
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_time')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-company_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[company_refund_time]" type="text" value="{$row.company_refund_time}">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_time')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-worker_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[worker_refund_time]" type="text" value="{$row.worker_refund_time}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_appeal')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Customer_appeal')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
|
@ -122,18 +131,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Company_refund_time')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-company_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[company_refund_time]" type="text" value="{$row.company_refund_time}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_refund_time')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-worker_refund_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[worker_refund_time]" type="text" value="{$row.worker_refund_time}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
<div class="widget-body no-padding">
|
<div class="widget-body no-padding">
|
||||||
<div id="toolbar" class="toolbar">
|
<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-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('aftersales/aftersale/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('aftersales/aftersale/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('aftersales/aftersale/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('aftersales/aftersale/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('aftersales/aftersale/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('aftersales/aftersale/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||||
|
|
||||||
|
-->
|
||||||
<div class="dropdown btn-group {:$auth->check('aftersales/aftersale/multi')?'':'hide'}">
|
<div class="dropdown btn-group {:$auth->check('aftersales/aftersale/multi')?'':'hide'}">
|
||||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||||
<ul class="dropdown-menu text-left" role="menu">
|
<ul class="dropdown-menu text-left" role="menu">
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Abnormal_id')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Abnormal_id')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-abnormal_id" data-field="title" data-rule="required" data-source="setting/abnormal/index" class="form-control selectpage" name="row[abnormal_id]" type="text" value="">
|
<input id="c-abnormal_id" data-field="title" data-params='{"custom[type]":"1"}' data-rule="required" data-source="setting/abnormal/index" class="form-control selectpage" name="row[abnormal_id]" type="text" value="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Handle_detail')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Handle_detail')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<textarea id="c-handle_detail" class="form-control" rows="5" name="row[handle_detail]" cols="50">{$row.handle_detail|htmlentities}</textarea>
|
<textarea id="c-handle_detail" data-rule="required" class="form-control" rows="5" name="row[handle_detail]" cols="50">{$row.handle_detail|htmlentities}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
<div class="form-group">
|
<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-2">{:__('Detail')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-detail" readonly class="form-control" type="text" value="{$row.detail|htmlentities}">
|
<textarea id="c-detail" readonly class="form-control" placeholder="订单详情" >{$row.detail|htmlentities}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -36,12 +36,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Address')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-address" class="form-control" readonly type="text" value="{$row.address|htmlentities}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
@ -76,6 +70,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount_type')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input readonly class="form-control" value="{$row['offline_amount_type_text']}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
|
@ -85,12 +90,18 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount_type')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('收款依据')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input readonly class="form-control" value="{$row['offline_amount_type_text']}">
|
<div class="input-group">
|
||||||
|
<input id="c-amount_images" class="form-control" size="50" type="text" value="{$order.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>
|
||||||
|
</div>
|
||||||
|
<span class="msg-box n-right" for="c-amount_images"></span>
|
||||||
|
</div>
|
||||||
|
<ul class="row list-inline faupload-preview" id="p-amount_images"></ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,12 @@
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
{:build_heading(null,FALSE)}
|
{:build_heading(null,FALSE)}
|
||||||
<ul class="nav nav-tabs" data-field="status">
|
<ul class="nav nav-tabs" data-field="status">
|
||||||
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
<li class="active">
|
||||||
{foreach name="statusList" item="vo"}
|
<a href="#t-50" data-value="50" data-toggle="tab">待结算</a>
|
||||||
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
</li>
|
||||||
{/foreach}
|
<li class="{:$Think.get.status === '60' ? 'active' : ''}">
|
||||||
|
<a href="#t-60" data-value="60" data-toggle="tab">已完成</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-offline_amount" data-rule="required" class="form-control" step="0.01" name="row[offline_amount]" type="number" value="{$row.dispatch.total|htmlentities}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount_type')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount_type')}:</label>
|
||||||
|
|
@ -70,6 +64,30 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Offline_amount')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-offline_amount" data-rule="required" class="form-control" step="0.01" name="row[offline_amount]" type="number" value="{$row.dispatch.total|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">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="c-amount_images" class="form-control" size="50" name="row[amount_images]" type="text" value="{$order.dispatch.image}" >
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<span class="msg-box n-right" for="c-amount_images"></span>
|
||||||
|
</div>
|
||||||
|
<ul class="row list-inline faupload-preview" id="p-amount_images"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_amount')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Refund_amount')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('orders/dispatch/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('orders/dispatch/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<a href="javascript:;" class="btn btn-warning btn-disabled disabled btn-add-normal {:$auth->check('orders/abnormal/add')}?'':'hide'}" title="{:__('创建异常')}" ><i class="fa fa-plus"></i> {:__('创建异常')}</a>
|
<a href="javascript:;" class="btn btn-warning btn-disabled disabled btn-add-normal {:$auth->check('orders/abnormal/add')}?'':'hide'}" title="{:__('上报错误')}" ><i class="fa fa-plus"></i> {:__('上报错误')}</a>
|
||||||
|
|
||||||
<a href="javascript:;" class="btn btn-danger btn-cancel-selected btn-disabled disabled {:$auth->check('orders/dispatch2/del')?'':'hide'}" title="{:__('取消任务')}" ><i class="fa fa-trash"></i> {:__('取消任务')}</a>
|
<a href="javascript:;" class="btn btn-danger btn-cancel-selected btn-disabled disabled {:$auth->check('orders/dispatch2/del')?'':'hide'}" title="{:__('取消任务')}" ><i class="fa fa-trash"></i> {:__('取消任务')}</a>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<!--<div class="panel-lead"><em>多表格(Multitable)</em>用于展示在一个页面展示多个表格数据,并且每次切换时刷新</div>-->
|
<!--<div class="panel-lead"><em>多表格(Multitable)</em>用于展示在一个页面展示多个表格数据,并且每次切换时刷新</div>-->
|
||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active"><a href="#first" data-toggle="tab">任务变更日志</a></li>
|
<li class="active"><a href="#first" data-toggle="tab">跟进记录</a></li>
|
||||||
<li><a href="#second" data-toggle="tab">跟进记录</a></li>
|
<li><a href="#second" data-toggle="tab">任务变更日志</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -21,5 +21,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,33 @@
|
||||||
<textarea id="c-remark" data-rule="required" class="form-control" placeholder="跟进内容" name="row[remark]" ></textarea>
|
<textarea id="c-remark" data-rule="required" class="form-control" placeholder="跟进内容" name="row[remark]" ></textarea>
|
||||||
</div>
|
</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-images" class="form-control" size="50" name="row[images]" 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>
|
||||||
|
</div>
|
||||||
|
<span class="msg-box n-right" for="c-images"></span>
|
||||||
|
</div>
|
||||||
|
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Notice_time')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-notice_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[notice_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Need_notice')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('Need_notice')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
|
||||||
|
|
@ -23,19 +49,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Notice_time')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-notice_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[notice_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group layer-footer">
|
<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-2"></label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('提交')}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -1,59 +1,108 @@
|
||||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||||
|
|
||||||
|
|
||||||
<input name="row[order_id]" type="hidden" value="{$order.id}">
|
<input name="row[order_id]" type="hidden" value="{$row.id}">
|
||||||
|
|
||||||
<div class="form-group">
|
<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="col-xs-12 col-sm-8">
|
||||||
<input id="c-order_no" readonly class="form-control" type="text" value="{$order.order_no|htmlentities}">
|
<input id="c-order_no" readonly class="form-control" type="text" value="{$row.order_no|htmlentities}">
|
||||||
</div>
|
</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">
|
|
||||||
<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-detail" readonly class="form-control" type="text" value="{$order.detail|htmlentities}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
<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="col-xs-12 col-sm-8">
|
||||||
<input id="c-customer"readonly class="form-control" type="text" value="{$order.customer|htmlentities}">
|
<input id="c-customer" class="form-control" readonly type="text" value="{$row.customer|htmlentities}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<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="col-xs-12 col-sm-8">
|
||||||
<input id="c-tel" readonly class="form-control" name="row[tel]" type="text" value="{$order.tel|htmlentities}">
|
<input id="c-tel" class="form-control" readonly type="text" value=" {$row.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-item_title" readonly class="form-control" type="text" value="{$row.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">
|
||||||
|
<textarea id="c-detail" readonly class="form-control" placeholder="订单详情" >{$row.detail|htmlentities}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{if condition='$row.cancel_detail neq ""'}
|
||||||
|
|
||||||
|
{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.cancel_detail|htmlentities}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
{notempty name='row.aftersale'}
|
||||||
|
{if condition='$row.aftersale.refund_amount > 0'}
|
||||||
|
<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.aftersale.remark|htmlentities}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{/notempty}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pt_star')}:</label>
|
<label class="control-label col-xs-12 col-sm-2">{:__('回访情况属实')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-pt_star" data-rule="required" class="form-control" min="1" max="5" step="1" name="row[pt_star]" type="number" value="5">
|
|
||||||
|
<div class="radio">
|
||||||
|
{foreach name="statusList" item="vo"}
|
||||||
|
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[is_same]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
|
||||||
|
{/foreach}
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_star')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<input id="c-worker_star" data-rule="required" min="1" max="5" step="1" class="form-control" name="row[worker_star]" type="number" value="5">
|
{if condition ='$row.status eq 60'}
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Pt_star')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-pt_star" data-rule="required" class="form-control" min="1" max="5" step="1" name="row[pt_star]" type="number" value="5">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Worker_star')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-worker_star" data-rule="required" min="1" max="5" step="1" class="form-control" name="row[worker_star]" type="number" value="5">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<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-2">{:__('回访备注')}:</label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<input id="c-remark" data-rule="required" class="form-control" name="row[remark]" type="text">
|
<textarea id="c-remark" data-rule="required" class="form-control" name="row[remark]" placeholder="填写回访备注" ></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,10 @@ class CheckOrdeRecordCommand extends Command
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OrderDispatchRecord::whereIn('id',$ids)->update(['status'=>1]);
|
OrderDispatchRecord::whereIn('id',$ids)->update(['status'=>1]);
|
||||||
OrderDispatch::where('id',$dispatchIds)->where('follow',1)->update(['follow'=>0]);
|
OrderDispatch::whereIn('id',$dispatchIds)->where('follow',1)->update(['follow'=>0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$output->info('OVER');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@ class CheckOrderDispatchCommand extends Command
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$output->info('OVER');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class CheckOrderDispatchGotCommand extends Command
|
||||||
$OrderLogic->noWorkerCanGetIt($item);
|
$OrderLogic->noWorkerCanGetIt($item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$output->info('OVER');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ class UpdateWorkerManCommand extends Command
|
||||||
$worker->save();
|
$worker->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$output->info('OVER');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
10652
dbbackup/wanyu-20250418.sql
Normal file
10652
dbbackup/wanyu-20250418.sql
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -8,7 +8,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
index_url: 'aftersales/aftersale/index' + location.search,
|
index_url: 'aftersales/aftersale/index' + location.search,
|
||||||
add_url: 'aftersales/aftersale/add',
|
add_url: 'aftersales/aftersale/add',
|
||||||
edit_url: 'aftersales/aftersale/edit',
|
edit_url: 'aftersales/aftersale/edit',
|
||||||
del_url: 'aftersales/aftersale/del',
|
// del_url: 'aftersales/aftersale/del',
|
||||||
multi_url: 'aftersales/aftersale/multi',
|
multi_url: 'aftersales/aftersale/multi',
|
||||||
import_url: 'aftersales/aftersale/import',
|
import_url: 'aftersales/aftersale/import',
|
||||||
table: 'aftersale',
|
table: 'aftersale',
|
||||||
|
|
@ -29,18 +29,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
// {checkbox: true},
|
// {checkbox: true},
|
||||||
{field: 'id', title: __('Id')},
|
{field: 'id', title: __('Id')},
|
||||||
// {field: 'order_id', title: __('Order_id')},
|
// {field: 'order_id', title: __('Order_id')},
|
||||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE'},
|
{field: 'order.order_no', title: __('Order.order_no'), operate: '='},
|
||||||
{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
|
{field: 'order.customer', title: __('Order.customer'), operate: false},
|
||||||
{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
|
{field: 'order.tel', title: __('Order.tel'), operate: '='},
|
||||||
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2'),"3":__('Status 3'),"-1":__('Status -1')}, formatter: Table.api.formatter.status},
|
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2'),"3":__('Status 3'),"-1":__('Status -1')}, formatter: Table.api.formatter.status},
|
||||||
{field: 'handle_type', title: __('Handle_type'), searchList: {"1":__('Handle_type 1'),"2":__('Handle_type 2'),"3":__('Handle_type 3'),"4":__('Handle_type 4')}, formatter: Table.api.formatter.normal},
|
{field: 'handle_type', title: __('Handle_type'), searchList: {"1":__('Handle_type 1'),"2":__('Handle_type 2'),"3":__('Handle_type 3'),"4":__('Handle_type 4')}, formatter: Table.api.formatter.normal},
|
||||||
{field: 'from', title: __('From'), searchList: {"1":__('From 1'),"2":__('From 2'),"3":__('From 3')}, formatter: Table.api.formatter.normal},
|
{field: 'from', title: __('From'), searchList: {"1":__('From 1'),"2":__('From 2'),"3":__('From 3')}, formatter: Table.api.formatter.normal},
|
||||||
{field: 'refund_amount', title: __('Refund_amount'), operate:false},
|
{field: 'refund_amount', title: __('Refund_amount'), operate:false},
|
||||||
{field: 'company_refund_amount', title: __('Company_refund_amount'), operate:false},
|
{field: 'company_refund_amount', title: __('Company_refund_amount'), operate:false},
|
||||||
{field: 'worker_refund_amount', title: __('Worker_refund_amount'), operate:false},
|
{field: 'worker_refund_amount', title: __('Worker_refund_amount'), operate:false},
|
||||||
{field: 'refund_type', title: __('Refund_type'), searchList: {"1":__('Refund_type 1'),"2":__('Refund_type 2')}, formatter: Table.api.formatter.normal},
|
{field: 'refund_type', title: __('Refund_type'), searchList: {"0":__('Refund_type 0'),"1":__('Refund_type 1'),"2":__('Refund_type 2')}, formatter: Table.api.formatter.normal},
|
||||||
{field: 'worker_refund_entry', title: __('Worker_refund_entry'), searchList: {"0":__('Worker_refund_entry 0'),"1":__('Worker_refund_entry 1')}, formatter: Table.api.formatter.normal},
|
{field: 'worker_refund_entry', title: __('Worker_refund_entry'), searchList: {"0":__('Worker_refund_entry 0'),"1":__('Worker_refund_entry 1')}, formatter: Table.api.formatter.normal},
|
||||||
{field: 'refund_time', title: __('Refund_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'company_refund_time', title: __('Company_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
|
{field: 'worker_refund_time', title: __('Worker_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
|
//{field: 'refund_time', title: __('Refund_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'customer_appeal', title: __('Customer_appeal'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'customer_appeal', title: __('Customer_appeal'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
//{field: 'customer_qrcode', title: __('Customer_qrcode'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
//{field: 'customer_qrcode', title: __('Customer_qrcode'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
|
||||||
|
|
@ -48,16 +50,33 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
|
|
||||||
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
{field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
{field: 'company_refund_time', title: __('Company_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
|
||||||
{field: 'worker_refund_time', title: __('Worker_refund_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
|
||||||
//{field: 'admin_id', title: __('Admin_id')},
|
//{field: 'admin_id', title: __('Admin_id')},
|
||||||
{field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'},
|
{field: 'admin_user', title: __('Admin_user'), operate: '='},
|
||||||
//{field: 'handle_admin_id', title: __('Handle_admin_id')},
|
//{field: 'handle_admin_id', title: __('Handle_admin_id')},
|
||||||
{field: 'handle_admin_user', title: __('Handle_admin_user'), operate: 'LIKE'},
|
{field: 'handle_admin_user', title: __('Handle_admin_user'), operate: '='},
|
||||||
{field: 'star', title: __('Star'),operate:false},
|
{field: 'star', title: __('Star'),operate:false},
|
||||||
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
{field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
name: 'edit',
|
||||||
|
text:"处理",
|
||||||
|
title:"售后处理",
|
||||||
|
icon: 'fa fa-pencil',
|
||||||
|
//title: __('Edit'),
|
||||||
|
extend: 'data-toggle="tooltip" data-container="body"',
|
||||||
|
classname: 'btn btn-xs btn-success btn-editone',
|
||||||
|
visible:function(row){
|
||||||
|
if(row.status === 1){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -458,6 +458,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'cascader'], function
|
||||||
copy: function () {
|
copy: function () {
|
||||||
Controller.api.bindevent();
|
Controller.api.bindevent();
|
||||||
},
|
},
|
||||||
|
saleafter: function () {
|
||||||
|
Controller.api.bindevent();
|
||||||
|
},
|
||||||
addabnormal: function () {
|
addabnormal: function () {
|
||||||
console.log('abnormal');
|
console.log('abnormal');
|
||||||
Form.api.bindevent($("#add-form"), null, null, function (data) {
|
Form.api.bindevent($("#add-form"), null, null, function (data) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
index_url: 'orders/abnormal/index' + location.search,
|
index_url: 'orders/abnormal/index' + location.search,
|
||||||
add_url: 'orders/abnormal/add',
|
add_url: 'orders/abnormal/add',
|
||||||
edit_url: 'orders/abnormal/edit',
|
edit_url: 'orders/abnormal/edit',
|
||||||
del_url: 'orders/abnormal/del',
|
//del_url: 'orders/abnormal/del',
|
||||||
multi_url: 'orders/abnormal/multi',
|
multi_url: 'orders/abnormal/multi',
|
||||||
import_url: 'orders/abnormal/import',
|
import_url: 'orders/abnormal/import',
|
||||||
table: 'order_abnormal',
|
table: 'order_abnormal',
|
||||||
|
|
@ -42,20 +42,34 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
{field: 'abnormal_title', title: __('Abnormal_title'), operate: false},
|
{field: 'abnormal_title', title: __('Abnormal_title'), operate: false},
|
||||||
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1'),"-1":__('Status -1')}, formatter: Table.api.formatter.status},
|
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1'),"-1":__('Status -1')}, formatter: Table.api.formatter.status},
|
||||||
|
|
||||||
{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
|
//{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
|
||||||
{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
|
//{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
|
||||||
// {field: 'order.worker_name', title: __('Order.worker_name'), operate: 'LIKE'},
|
// {field: 'order.worker_name', title: __('Order.worker_name'), operate: 'LIKE'},
|
||||||
// {field: 'order.worker_tel', title: __('Order.worker_tel'), operate: 'LIKE'},
|
// {field: 'order.worker_tel', title: __('Order.worker_tel'), operate: 'LIKE'},
|
||||||
//{field: 'handle_admin_id', title: __('Handle_admin_id')},
|
//{field: 'handle_admin_id', title: __('Handle_admin_id')},
|
||||||
{field: 'handle_admin_user', title: __('Handle_admin_user'), operate: 'LIKE'},
|
|
||||||
{field: 'handle_time', title: __('Handle_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
|
||||||
{field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'},
|
{field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'},
|
||||||
|
{field: 'handle_admin_user', title: __('Handle_admin_user'), operate: 'LIKE'},
|
||||||
// {field: 'admin_id', title: __('Admin_id')},
|
// {field: 'admin_id', title: __('Admin_id')},
|
||||||
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
|
{field: 'handle_time', title: __('Handle_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
|
|
||||||
{field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
{field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
|
|
||||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
||||||
formatter: Table.api.formatter.operate,
|
formatter: Table.api.formatter.operate,
|
||||||
|
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
name: 'edit',
|
||||||
|
text:"编辑",
|
||||||
|
title:"编辑",
|
||||||
|
icon: 'fa fa-pencil',
|
||||||
|
//title: __('Edit'),
|
||||||
|
extend: 'data-toggle="tooltip" data-container="body"',
|
||||||
|
classname: 'btn btn-xs btn-success btn-editone',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
// buttons:[
|
// buttons:[
|
||||||
// {
|
// {
|
||||||
// name:"detail",
|
// name:"detail",
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
|
|
||||||
// 初始化表格
|
// 初始化表格
|
||||||
table.bootstrapTable({
|
table.bootstrapTable({
|
||||||
|
|
||||||
|
queryParams: function (params) {
|
||||||
|
var filter = params.filter ? JSON.parse(params.filter) : {};
|
||||||
|
var op = params.op ? JSON.parse(params.op) : {};
|
||||||
|
|
||||||
|
// 如果没有 status 参数,则默认使用 50
|
||||||
|
if (!('status' in filter)) {
|
||||||
|
filter.status = '50';
|
||||||
|
op.status = '=';
|
||||||
|
}
|
||||||
|
|
||||||
|
params.filter = JSON.stringify(filter);
|
||||||
|
params.op = JSON.stringify(op);
|
||||||
|
return params;
|
||||||
|
},
|
||||||
|
|
||||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||||
pk: 'id',
|
pk: 'id',
|
||||||
sortName: 'id',
|
sortName: 'id',
|
||||||
|
|
@ -27,30 +43,39 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
columns: [
|
columns: [
|
||||||
[
|
[
|
||||||
// {checkbox: true},
|
// {checkbox: true},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
title: __('Status'),
|
||||||
|
searchList: {"50":__('Status 50'),"60":__('Status 60')},
|
||||||
|
formatter: Table.api.formatter.label,
|
||||||
|
custom: {
|
||||||
|
'50': 'warning', // 待跟进:灰蓝色(默认 Bootstrap info)
|
||||||
|
'60': 'success', // 已跟进:绿色
|
||||||
|
}
|
||||||
|
},
|
||||||
{field: 'id', title: __('Id'),operate: false},
|
{field: 'id', title: __('Id'),operate: false},
|
||||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
{field: 'order_no', title: __('Order_no'), operate: '='},
|
||||||
{field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
{field: 'customer', title: __('Customer'), operate: false},
|
||||||
{field: 'tel', title: __('Tel'), operate: 'LIKE'},
|
{field: 'tel', title: __('Tel'), operate: '='},
|
||||||
{field: 'status', title: __('Status'), searchList: {"50":__('Status 50'),"60":__('Status 60')}, formatter: Table.api.formatter.status},
|
|
||||||
//{field: 'area_id', title: __('Area_id')},
|
//{field: 'area_id', title: __('Area_id')},
|
||||||
//{field: 'address', title: __('Address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
//{field: 'address', title: __('Address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
// {field: 'lng', title: __('Lng'), operate:'BETWEEN'},
|
// {field: 'lng', title: __('Lng'), operate:'BETWEEN'},
|
||||||
// {field: 'lat', title: __('Lat'), operate:'BETWEEN'},
|
// {field: 'lat', title: __('Lat'), operate:'BETWEEN'},
|
||||||
//{field: 'work_tel_id', title: __('Work_tel_id')},
|
//{field: 'work_tel_id', title: __('Work_tel_id')},
|
||||||
{field: 'source_shop', title: __('Source_shop'), operate: 'LIKE'},
|
{field: 'source_shop', title: __('Source_shop'), operate: '='},
|
||||||
{field: 'source', title: __('Source')},
|
{field: 'source', title: __('Source'), operate: false},
|
||||||
{field: 'source_uid', title: __('Source_uid'), operate: 'LIKE'},
|
{field: 'source_uid', title: __('Source_uid'), operate: '='},
|
||||||
// {field: 'item_id', title: __('Item_id')},
|
// {field: 'item_id', title: __('Item_id')},
|
||||||
{field: 'item_title', title: __('Item_title'), operate: 'LIKE'},
|
{field: 'item_title', title: __('Item_title'), operate: false},
|
||||||
{field: 'detail', title: __('Detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'detail', title: __('Detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
{field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
// {field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
|
||||||
// {field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
// {field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'admin_id', title: __('Admin_id')},
|
{field: 'admin_id', title: __('Admin_id'), operate: false},
|
||||||
{field: 'online_amount', title: __('Online_amount'), operate:false},
|
{field: 'online_amount', title: __('Online_amount'), operate:false},
|
||||||
{field: 'online_amount_last', title: __('Online_amount_last'), operate:false},
|
{field: 'online_amount_last', title: __('Online_amount_last'), operate:false},
|
||||||
{field: 'offline_amount', title: __('Offline_amount'), operate:false},
|
{field: 'offline_amount', title: __('Offline_amount'), operate:false},
|
||||||
{field: 'offline_amount_type_text', title: __('Offline_amount_type'), operate:false},
|
{field: 'offline_amount_type_text', title: __('Offline_amount_type'), operate:false},
|
||||||
|
{field: 'amount_images', title: __('收款凭据'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
{field: 'total', title: __('Total'), operate:'BETWEEN'},
|
{field: 'total', title: __('Total'), operate:'BETWEEN'},
|
||||||
{field: 'discount_amount', title: __('Discount_amount'), operate:false},
|
{field: 'discount_amount', title: __('Discount_amount'), operate:false},
|
||||||
{field: 'real_amount', title: __('Real_amount'), operate:false},
|
{field: 'real_amount', title: __('Real_amount'), operate:false},
|
||||||
|
|
@ -61,9 +86,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
//{field: 'cancel_detail', title: __('Cancel_detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
//{field: 'cancel_detail', title: __('Cancel_detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
// {field: 'audit_admin_id', title: __('Audit_admin_id')},
|
// {field: 'audit_admin_id', title: __('Audit_admin_id')},
|
||||||
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
//{field: 'auditadmin.username', title: __('Admin.username'), operate: 'LIKE'},
|
//{field: 'auditadmin.username', title: __('Admin.username'), operate: 'LIKE'},
|
||||||
{field: 'auditadmin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
|
{field: 'auditadmin.nickname', title: __('Admin.nickname'), operate: '='},
|
||||||
{field: 'audit_remark', title: __('Audit_remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'audit_remark', title: __('Audit_remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
||||||
formatter: Table.api.formatter.operate,
|
formatter: Table.api.formatter.operate,
|
||||||
|
|
|
||||||
|
|
@ -27,25 +27,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
columns: [
|
columns: [
|
||||||
[
|
[
|
||||||
{field: 'id', title: __('Id')},
|
{field: 'id', title: __('Id')},
|
||||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
{field: 'order_no', title: __('Order_no'), operate: '='},
|
||||||
// {field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
// {field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
||||||
//{field: 'tel', title: __('Tel'), operate: 'LIKE'},
|
//{field: 'tel', title: __('Tel'), operate: 'LIKE'},
|
||||||
|
|
||||||
//{field: 'dispatch.worker_name', title: __('Dispatch.worker_name'), operate: 'LIKE'},
|
//{field: 'dispatch.worker_name', title: __('Dispatch.worker_name'), operate: 'LIKE'},
|
||||||
//{field: 'dispatch.worker_tel', title: __('Dispatch.worker_tel'), operate: 'LIKE'},
|
//{field: 'dispatch.worker_tel', title: __('Dispatch.worker_tel'), operate: 'LIKE'},
|
||||||
|
|
||||||
{field: 'dispatch.admin_user', title: __('Dispatch.admin_user'), operate: 'LIKE'},
|
{field: 'dispatch.admin_user', title: __('Dispatch.admin_user'), operate: '='},
|
||||||
|
|
||||||
|
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"30":__('Status 30'),"40":__('Status 40'),"41":__('Status 41'),"50":__('Status 50'),"60":__('Status 60'),"-10":__('Status -10')}, formatter: Table.api.formatter.status},
|
||||||
|
|
||||||
|
{field: 'audit_remark', title: __('审核备注'), operate:false},
|
||||||
|
|
||||||
|
|
||||||
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"30":__('Status 30'),"40":__('Status 40'),"50":__('Status 50'),"60":__('Status 60'),"-10":__('Status -10')}, formatter: Table.api.formatter.status},
|
|
||||||
|
|
||||||
// {field: 'address', title: __('Address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
// {field: 'address', title: __('Address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
|
||||||
{field: 'source_shop', title: __('Source_shop'), operate: 'LIKE'},
|
{field: 'source_shop', title: __('Source_shop'), operate: '='},
|
||||||
// {field: 'source', title: __('Source')},
|
// {field: 'source', title: __('Source')},
|
||||||
// {field: 'source_uid', title: __('Source_uid'), operate: 'LIKE'},
|
// {field: 'source_uid', title: __('Source_uid'), operate: 'LIKE'},
|
||||||
{field: 'item_title', title: __('Item_title'), operate: false},
|
{field: 'item_title', title: __('Item_title'), operate: false},
|
||||||
|
|
||||||
{field: 'total', title: __('Total'), operate:'BETWEEN'},
|
{field: 'total', title: __('Total'), operate:false},
|
||||||
{field: 'online_amount', title: __('Online_amount'), operate:false},
|
{field: 'online_amount', title: __('Online_amount'), operate:false},
|
||||||
{field: 'online_amount_last', title: __('Online_amount_last'), operate:false},
|
{field: 'online_amount_last', title: __('Online_amount_last'), operate:false},
|
||||||
{field: 'offline_amount', title: __('Offline_amount'), operate:false},
|
{field: 'offline_amount', title: __('Offline_amount'), operate:false},
|
||||||
|
|
|
||||||
|
|
@ -38,16 +38,31 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
|
||||||
return '';
|
return '';
|
||||||
}},
|
}},
|
||||||
|
|
||||||
{field: 'id', title: __('Id')},
|
{
|
||||||
|
field: 'follow',
|
||||||
|
title: '跟进状态',
|
||||||
|
searchList: {
|
||||||
|
'0':'待跟进',
|
||||||
|
"1": '已跟进',
|
||||||
|
"2": '已结束',
|
||||||
|
},
|
||||||
|
formatter: Table.api.formatter.label,
|
||||||
|
custom: {
|
||||||
|
'0': 'warning', // 待跟进:灰蓝色(默认 Bootstrap info)
|
||||||
|
'1': 'success', // 已跟进:绿色
|
||||||
|
'2': 'default', // 已结束:红色
|
||||||
|
},
|
||||||
|
defaultValue: '0'
|
||||||
|
},
|
||||||
|
|
||||||
|
{field: 'record_count', title: '跟进次数',operate: false},
|
||||||
|
|
||||||
|
{field: 'id', title: __('Id'), operate: '='},
|
||||||
|
|
||||||
|
|
||||||
//{field: 'order_id', title: __('Order_id')},
|
//{field: 'order_id', title: __('Order_id')},
|
||||||
|
|
||||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE'},
|
{field: 'order.order_no', title: __('Order.order_no'), operate: '='},
|
||||||
|
|
||||||
|
|
||||||
// {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')}, formatter: Table.api.formatter.normal},
|
|
||||||
|
|
||||||
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"25":__('Status 25'),"30":__('Status 30'),"60":__('Status 60'),"-10":__('Status -10'),
|
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"25":__('Status 25'),"30":__('Status 30'),"60":__('Status 60'),"-10":__('Status -10'),
|
||||||
//"-20":__('Status -20'),
|
//"-20":__('Status -20'),
|
||||||
|
|
@ -55,6 +70,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
|
||||||
formatter: Table.api.formatter.status,
|
formatter: Table.api.formatter.status,
|
||||||
custom:{25:"red"}
|
custom:{25:"red"}
|
||||||
},
|
},
|
||||||
|
//{field: 'follow', title: __('跟进状态'), searchList: {"0":__('待跟进'),"1":__('已跟进'),"2":__('已结束')}, formatter: Table.api.formatter.normal},
|
||||||
|
|
||||||
|
// {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')}, formatter: Table.api.formatter.normal},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,
|
{field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,
|
||||||
formatter:function(value,row,index){
|
formatter:function(value,row,index){
|
||||||
|
|
@ -65,20 +88,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
|
||||||
{field: 'follow', title: __('跟进状态'), searchList: {"0":__('待跟进'),"1":__('已跟进'),"2":__('已结束')}, formatter: Table.api.formatter.normal},
|
{field: 'order.source_shop', title: __('Order.source_shop'), operate: '='},
|
||||||
|
|
||||||
{field: 'order.source_shop', title: __('Order.source_shop'), operate: 'LIKE'},
|
|
||||||
// {field: 'order.source', title: __('Order.source')},
|
// {field: 'order.source', title: __('Order.source')},
|
||||||
{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
|
{field: 'order.customer', title: __('Order.customer'), operate: false},
|
||||||
{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
|
{field: 'order.tel', title: __('Order.tel'), operate: '='},
|
||||||
{field: 'order.address', title: __('Order.address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'order.address', title: __('Order.address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
|
||||||
{field: 'order.item_title', title: __('Order.item_title'), operate: 'LIKE'},
|
{field: 'order.item_title', title: __('Order.item_title'), operate: false},
|
||||||
{field: 'order.detail', title: __('Order.detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'order.detail', title: __('Order.detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
|
||||||
{field: 'order.images', title: __('Order.images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
{field: 'order.images', title: __('Order.images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
|
{field: 'arrive_time', title: __('上门时间'), operate:false, addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'arrive_image', title: __('上门照片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
|
|
||||||
// {field: 'is_notice', title: __('Is_notice'), searchList: {"0":__('Is_notice 0'),"1":__('Is_notice 1')}, formatter: Table.api.formatter.normal},
|
// {field: 'is_notice', title: __('Is_notice'), searchList: {"0":__('Is_notice 0'),"1":__('Is_notice 1')}, formatter: Table.api.formatter.normal},
|
||||||
// {field: 'admin_id', title: __('Admin_id')},
|
// {field: 'admin_id', title: __('Admin_id')},
|
||||||
|
|
@ -177,56 +198,61 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 弹出确认框并要求输入文本
|
// 弹出确认框并要求输入文本
|
||||||
Layer.prompt({
|
|
||||||
title: "请输入操作理由",
|
|
||||||
formType: 2, // 多行文本输入框
|
|
||||||
}, function (inputValue, index) {
|
|
||||||
if (!inputValue) {
|
|
||||||
Layer.alert("输入内容不能为空!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 关闭弹出框
|
Layer.open({
|
||||||
Layer.close(index);
|
type: 1,
|
||||||
|
title: '请输入操作理由',
|
||||||
|
area: ['450px', '280px'], // 宽高可调
|
||||||
|
btn: ['提交', '取消'],
|
||||||
|
content: '<div style="padding: 20px;">' +
|
||||||
|
'<div style="margin-bottom: 10px; color: #f39c12; font-size: 14px;">' +
|
||||||
|
'提示:取消后该订单会重新进入待派单状态' +
|
||||||
|
'</div>' +
|
||||||
|
'<textarea id="input-reason" class="form-control" rows="4" placeholder="请输入操作理由"></textarea>' +
|
||||||
|
'</div>',
|
||||||
|
yes: function(index, layero) {
|
||||||
|
var inputValue = $("#input-reason").val().trim();
|
||||||
|
|
||||||
// 显示 loading 层
|
if (!inputValue) {
|
||||||
var loadingIndex = Layer.load(1, {
|
Layer.msg('输入内容不能为空!');
|
||||||
shade: [0.1, '#fff'], // 背景遮罩,可选
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//这里可以加入 Ajax 请求处理逻辑
|
|
||||||
$.ajax({
|
|
||||||
url: 'orders/dispatch2/del',
|
|
||||||
type: 'POST',
|
|
||||||
data: {
|
|
||||||
ids: selectedIds,
|
|
||||||
reason: inputValue,
|
|
||||||
},
|
|
||||||
success: function (response,data) {
|
|
||||||
Layer.close(loadingIndex); // 关闭 loading
|
|
||||||
if(response.code == 1){
|
|
||||||
// 成功提示
|
|
||||||
Toastr.success(data.message || "操作成功!");
|
|
||||||
// 刷新表格
|
|
||||||
table.bootstrapTable('refresh');
|
|
||||||
}else{
|
|
||||||
Toastr.error(response.msg || "操作失败!");
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
},
|
|
||||||
error: function () {
|
|
||||||
Layer.close(loadingIndex); // 关闭 loading
|
|
||||||
Toastr.error("操作失败,请重试!");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
|
Layer.close(index);
|
||||||
|
|
||||||
|
var loadingIndex = Layer.load(1, {
|
||||||
|
shade: [0.2, '#ccc']
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: 'orders/dispatch2/del',
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
ids: selectedIds, // 确保 selectedIds 已定义
|
||||||
|
reason: inputValue
|
||||||
|
},
|
||||||
|
success: function(response) {
|
||||||
|
Layer.close(loadingIndex);
|
||||||
|
if (response.code == 1) {
|
||||||
|
Toastr.success(response.message || "操作成功!");
|
||||||
|
table.bootstrapTable('refresh');
|
||||||
|
} else {
|
||||||
|
Toastr.error(response.msg || "操作失败!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
Layer.close(loadingIndex);
|
||||||
|
Toastr.error("操作失败,请重试!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取选中项
|
// 获取选中项
|
||||||
$(document).on("click", ".btn-add-normal", function () {
|
$(document).on("click", ".btn-add-normal", function () {
|
||||||
// 获取选中项的 ID
|
// 获取选中项的 ID
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,48 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
// 表格1
|
// 表格1
|
||||||
var table1 = $("#table1");
|
var table1 = $("#table1");
|
||||||
table1.bootstrapTable({
|
table1.bootstrapTable({
|
||||||
|
url: 'orders/dispatchrecord/index' + location.search,
|
||||||
|
/* extend: {
|
||||||
|
index_url: '',
|
||||||
|
add_url: '',
|
||||||
|
edit_url: '',
|
||||||
|
del_url: '',
|
||||||
|
multi_url: '',
|
||||||
|
table: '',
|
||||||
|
},*/
|
||||||
|
toolbar: '#toolbar2',
|
||||||
|
sortName: 'id',
|
||||||
|
search: false,
|
||||||
|
commonSearch:false,
|
||||||
|
visible: false,
|
||||||
|
showToggle: false,
|
||||||
|
showColumns: false,
|
||||||
|
showExport: false,
|
||||||
|
columns: [
|
||||||
|
[
|
||||||
|
{field: 'id', title: __('Id')},
|
||||||
|
//{field: 'dispatch_id', title: __('Dispatch_id')},
|
||||||
|
//{field: 'worker_id', title: __('Worker_id')},
|
||||||
|
{field: 'remark', title: __('跟进内容'), operate: 'LIKE', table: table2, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
{field: 'images', title: __('跟进依据'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
|
/* {field: 'need_notice', title: __('需要提醒'), searchList: {"0":__('否'),"1":__('是')}, formatter: Table.api.formatter.normal},
|
||||||
|
{field: 'notice_time', title: __('提醒时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},*/
|
||||||
|
{field: 'status', title: __('状态'), searchList: {"0":__('进行中'),"1":__('已完成')}, formatter: Table.api.formatter.status},
|
||||||
|
{field: 'create_time', title: __('创建时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
|
//{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// 为表格1绑定事件
|
||||||
|
Table.api.bindevent(table1);
|
||||||
|
},
|
||||||
|
second: function () {
|
||||||
|
// 表格2
|
||||||
|
var table2 = $("#table2");
|
||||||
|
table2.bootstrapTable({
|
||||||
url: 'orders/dispatchlog/index' + location.search,
|
url: 'orders/dispatchlog/index' + location.search,
|
||||||
toolbar: '#toolbar1',
|
toolbar: '#toolbar1',
|
||||||
sortName: 'id',
|
sortName: 'id',
|
||||||
|
|
@ -85,45 +127,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
// 为表格1绑定事件
|
|
||||||
Table.api.bindevent(table1);
|
|
||||||
},
|
|
||||||
second: function () {
|
|
||||||
// 表格2
|
|
||||||
var table2 = $("#table2");
|
|
||||||
table2.bootstrapTable({
|
|
||||||
url: 'orders/dispatchrecord/index' + location.search,
|
|
||||||
/* extend: {
|
|
||||||
index_url: '',
|
|
||||||
add_url: '',
|
|
||||||
edit_url: '',
|
|
||||||
del_url: '',
|
|
||||||
multi_url: '',
|
|
||||||
table: '',
|
|
||||||
},*/
|
|
||||||
toolbar: '#toolbar2',
|
|
||||||
sortName: 'id',
|
|
||||||
search: false,
|
|
||||||
commonSearch:false,
|
|
||||||
visible: false,
|
|
||||||
showToggle: false,
|
|
||||||
showColumns: false,
|
|
||||||
showExport: false,
|
|
||||||
columns: [
|
|
||||||
[
|
|
||||||
{field: 'id', title: __('Id')},
|
|
||||||
//{field: 'dispatch_id', title: __('Dispatch_id')},
|
|
||||||
//{field: 'worker_id', title: __('Worker_id')},
|
|
||||||
{field: 'remark', title: __('跟进内容'), operate: 'LIKE', table: table2, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
||||||
{field: 'need_notice', title: __('需要提醒'), searchList: {"0":__('否'),"1":__('是')}, formatter: Table.api.formatter.normal},
|
|
||||||
{field: 'notice_time', title: __('提醒时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
||||||
{field: 'status', title: __('状态'), searchList: {"0":__('进行中'),"1":__('已完成')}, formatter: Table.api.formatter.status},
|
|
||||||
{field: 'create_time', title: __('创建时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
||||||
//{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
||||||
]
|
|
||||||
]
|
|
||||||
});
|
|
||||||
// 为表格2绑定事件
|
// 为表格2绑定事件
|
||||||
Table.api.bindevent(table2);
|
Table.api.bindevent(table2);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,19 +30,23 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
[
|
[
|
||||||
// {checkbox: true},
|
// {checkbox: true},
|
||||||
{field: 'id', title: __('Id')},
|
{field: 'id', title: __('Id')},
|
||||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
{field: 'order_no', title: __('Order_no'), operate: '='},
|
||||||
|
|
||||||
|
{field: 'status', title: __('Status'), searchList: {"60":__('Status 60'),"-10":__('Status -10')}, formatter: Table.api.formatter.status},
|
||||||
|
{field: 'aftersale_id', title: __('是否退款'),operate:false,formatter: function (val) {
|
||||||
|
return val >0 ? '是' : '否';
|
||||||
|
}},
|
||||||
|
|
||||||
// {field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"30":__('Status 30'),"40":__('Status 40'),"50":__('Status 50'),"60":__('Status 60'),"-10":__('Status -10')}, formatter: Table.api.formatter.status},
|
|
||||||
// {field: 'area_id', title: __('Area_id'), operate: 'LIKE'},
|
// {field: 'area_id', title: __('Area_id'), operate: 'LIKE'},
|
||||||
{field: 'address', title: __('Address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'address', title: __('Address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
|
|
||||||
// {field: 'source_shop', title: __('Source_shop'), operate: 'LIKE'},
|
// {field: 'source_shop', title: __('Source_shop'), operate: 'LIKE'},
|
||||||
// {field: 'source', title: __('Source')},
|
// {field: 'source', title: __('Source')},
|
||||||
|
|
||||||
{field: 'item_title', title: __('Item_title'), operate: 'LIKE'},
|
{field: 'item_title', title: __('Item_title'), operate: false},
|
||||||
{field: 'detail', title: __('Detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
{field: 'detail', title: __('Detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
{field: 'customer', title: __('Customer'), operate: 'LIKE'},
|
{field: 'customer', title: __('Customer'), operate: false},
|
||||||
{field: 'tel', title: __('Tel'), operate: 'LIKE'},
|
{field: 'tel', title: __('Tel'), operate: '='},
|
||||||
// {field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
// {field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||||
// {field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
// {field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||||
// {field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
// {field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user