* @Date : 2019/9/18 14:50 * @return Grid */ protected function grid() { $grid = new Grid(new WoCoupon); $grid->model()->with(['user']); $grid->disableCreateButton(); $grid->disableBatchActions(); // $grid->disableActions(); $grid->model()->whereIn('status', [1, 2, 3])->orderBy('id', 'desc'); $grid->actions(function ($actions) { $actions->disableDelete(); $actions->disableView(); $actions->disableEdit(); if ($actions->row->status == 1 && $actions->row->service == 'ticketGrant') { $actions->add(new Unsubscribe); } }); $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->equal('status', '状态')->select([ '1' => '成功', '2' => '失败', '3' => '退订', ]); $filter->equal('service', '业务')->select([ 'ticketGrant' => '发券请求', 'ticketBuyback' => '返销请求', 'ticketInvalid' => '作废请求', ]); $filter->like('mobile', '手机号'); $filter->like('logNo', '发券流水号'); }); $filter->column(1 / 2, function ($filter) { $filter->like('number', '工号'); $users = User::query() ->whereHas('identity', function ($query) { $query->where('identity_id', 1); }) ->where('type', 'wo') ->get() ->pluck('nickname', 'id'); $filter->equal('user_id', '渠道')->select($users); $filter->equal('activityId', '活动')->select([ '97LJ202025' => '25元兑换券', '97LJ202010' => '100元兑换券', '97LJ202018' => '180元话费券', ]); $filter->between('created_at', '处理时间')->datetime(); }); }); $grid->column('id', '#ID#'); $grid->column('渠道')->display(function () { return $this->user->nickname; }); $grid->column('number', '工号'); $grid->column('业务')->display(function () { return $this->service_text; }); $grid->column('活动')->display(function () { return $this->activity_text; }); $grid->column('mobile', '手机号')->display(function ($title, $column) { return $this->mobile; })->modal(function ($model) { $datas = $model->logs->map(function ($data) { return [ 'mobile' => $data->mobile, 'service_text' => $data->coupon->service_text ?? '---', 'activity_text' => $data->coupon->activity_text ?? '---', 'status_text' => $data->coupon->status_text ?? '---', 'created_at' => $data->created_at, ]; }); return new Table(['手机号', '业务', '活动', '结果', '时间'], $datas->toArray()); }); $grid->column('ticketAmt', '电子券面值'); $grid->column('status', '状态')->display(function () { switch ($this->status) { case 1: return "" . $this->status_text . ""; break; case 2: return "" . $this->status_text . ""; break; case 3: return "" . $this->status_text . ""; break; default: return $this->status_text; break; } }); $grid->column('remark', '处理结果'); $grid->column('原发放流水')->display(function () { return $this->ologNo ?? '---'; }); $grid->column('logNo', '发券流水号'); $grid->column('created_at', '处理时间'); $grid->disableExport(false); $grid->export(function ($export) { $export->column('status', function ($value, $original) { return strip_tags($value); }); $export->column('mobile', function ($value, $original) { return $original . "\t"; }); $export->column('ticketAmt', function ($value, $original) { return $value . "\t"; }); $export->filename('沃钱包业务' . date("YmdHis")); }); return $grid; } }