disableCreateButton(); $grid->disableRowSelector(); $grid->disableActions(); $grid->model()->where('supplier_id', Admin::user()->id); $grid->column('id')->sortable(); $grid->column('agent.name', '代理商名称'); $grid->column('order_no'); $grid->column('num'); $grid->column('price'); $grid->column('name'); $grid->column('mobile'); $grid->column('industry_product_id', '产品ID'); $grid->column('title'); $grid->column('picture')->image('', 60, 60); $grid->column('status') ->using(OrderStatus::array()) ->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID) ->action(new IndustryOrderStatus); $grid->column('paid_at'); $grid->column('verify_qrcode', '核销二维码') ->if(fn() => $this->verify_code) ->then(function ($column) { $verify_code = $this->id . '-' . $this->verify_code; $column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60); $column->append('
' . $verify_code); }) ->else() ->display(''); // $grid->column('timeout'); $grid->column('created_at'); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id')->width(2); $filter->equal('order_no')->width(3); }); }); } //生成核销二维码,行业产品订单使用支付小程序核销 public function qrcode() { $verify_code = request()->route('verify_code'); $qrcode = storage_path("app/public/industry_verify_code/$verify_code.jpg"); if (file_exists($qrcode)) { return redirect(Storage::disk('public')->url("industry_verify_code/$verify_code.jpg")); } $setting = AdminSetting::val(['payee_appid', 'payee_appsecret']); $config = [ 'app_id' => $setting['payee_appid'], 'secret' => $setting['payee_appsecret'], ]; $app = Factory::miniProgram($config); //由于参数最多只能32个字符,故通过下面这种方式传参 //0$表示使用普通订单,使用api/verification/verify接口核销; //1$表示行业产品订单,使用api/verification/industry_verify接口核销 $response = $app->app_code->getUnlimit('1$' . $verify_code, ['page' => 'pages/verification/index']); if ($response instanceof StreamResponse) { $filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码 // $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径 header("Content-Type: " . $response->getHeaderLine('Content-Type')); exit($response); //输出图片 } } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { /*return Show::make($id, new IndustryOrder(), function (Show $show) { $show->field('id'); $show->field('agent_id'); $show->field('supplier_id'); $show->field('order_no'); $show->field('industry_product_id'); $show->field('num'); $show->field('price'); $show->field('name'); $show->field('mobile'); $show->field('title'); $show->field('picture'); $show->field('status'); $show->field('paid_at'); $show->field('verify_code'); $show->field('timeout'); $show->field('created_at'); $show->field('updated_at'); });*/ } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new IndustryOrder(), function (Form $form) { $form->display('id'); // $form->select('status')->options([OrderStatus::OFFLINE_PAID => '已付款']); })->saving(function(Form $form) { return $form->response()->error('操作禁止'); })->deleting(function(Form $form) { return $form->response()->error('操作禁止'); }); } }