header('产品管理');
$content->description('列表');
$content->body($this->grid());
});
}
/**
* Edit interface.
*
* @param $id
* @return Content
*/
public function edit($id)
{
return Admin::content(function (Content $content) use ($id) {
$content->header('产品管理');
$content->description('编辑');
$content->body($this->form()->edit($id));
});
}
/**
* Create interface.
*
* @return Content
*/
public function create()
{
return Admin::content(function (Content $content) {
$content->header('产品管理');
$content->description('创建');
$content->body($this->form());
});
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Admin::grid(Good::class, function (Grid $grid) {
$grid->id('ID')->sortable();
$grid->name('品种名称');
$grid->operator('生产经营者');
$grid->product_name('产品类型');
$grid->product_pici('产品批次');
$grid->number('数量');
$grid->group('分组单位');
$grid->trace('防伪码数量');
$grid->is_key('防伪码状态')->display(function ($v) {
switch ($v) {
case 'F':
return '未生成';
break;
case 'D':
return '正在生成';
break;
case 'T':
return '已生成';
break;
}
});
$grid->created_at();
$grid->updated_at();
$grid->disableFilter();
$grid->disableExport();
$grid->actions(function ($actions) {
if ($actions->row->group) {
$actions->prepend('');
}
// append一个操作
if ($actions->row->is_key !== 'G') {
$actions->append('');
}
if ($actions->row->is_key === 'T') {
$actions->append('');
}
});
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Admin::form(Good::class, function (Form $form) {
$form->display('id', 'ID');
//产品信息
$form->text('name', '产品名称')->rules('required');
$form->text('product_name', '产品类型');
$form->text('product_pici', '产品批次');
$form->text('standard', '包装规格');
$form->text('package', '包装比例');
$form->divide();
//厂商
$form->text('operator', '生产经营者')->rules('required');
$form->text('product_area', '产地');
$form->text('process_pici', '加工批次');
$form->divide();
//发货信息
$form->text('consignor', '发货商');
$form->date('delivery_time', '发货时间');
$form->text('dealer', '经销商');
$form->divide();
//生产设置
$form->text('higher_key', '上级码');
// $form->textarea('data','扩展字段');
$form->number('number', '数量');
$form->text('skey', '首部添加关键码');
$form->number('bit', '单元识别码的位数')->default(16);
$form->number('group', '多少个分组一组')->help('[注:不分组不用填]');
$form->select('templet', '前端模板')->options(collect(Good::$templetOption)->pluck('name', 'id'));
$form->textarea('remark', '备注');
$form->display('created_at', '创建时间');
$form->display('updated_at', '更新时间');
});
}
/**
* 生成key
* @param $id
* @return \Illuminate\Http\RedirectResponse
* User: Mead
*/
public function key($id)
{
admin_toastr('正在生成!请稍后!', 'success');
Artisan::call("generate:key", ['gid' => $id]);
return redirect()->back();
}
/**
* 导出excel
* @param $id
* @return mixed
* User: Mead
*/
public function export($id)
{
ini_set('memory_limit', '3072M');
set_time_limit(0);
return Excel::create(time(), function ($excel) use ($id) {
$excel->sheet('Sheet1', function ($sheet) use ($id) {
$sheet->setAutoSize(true);
$sheet->cells('A', function ($cells) {
$cells->setAlignment('center');
});
$sheet->cells('B', function ($cells) {
$cells->setAlignment('center');
});
$sheet->cells('C', function ($cells) {
$cells->setAlignment('center');
});
$sheet->cells('D', function ($cells) {
$cells->setAlignment('center');
});
$sheet->setColumnFormat(array(
'B' => '0',
'A' => '0'
));
$g = Trace::where('gid', $id)->distinct()->count();
$info = Good::where('id', $id)->first();
if ($g == 1) {
Trace::where('gid', $id)->select('id', 'key', 'group')->chunk(1000, function ($trace) use ($sheet) {
$sheet->rows($trace->toArray());
});
} else {
$num = $info->group;
Trace::where('gid', $id)->select('id', 'key', 'group', 'slug')->chunk($num, function ($trace) use ($sheet) {
// $data = $trace->map(function ($v) {
// $v['id'] = number_format(10000000 + $v['id'], 0, '', '');
//
//// $v['b'] = bcadd('1000000000000000', "{$v['id']}");
//
// return $v;
// });
$data = $trace->toArray();
$data[] = ['', '', '', ''];
$sheet->rows($data);
});
}
$sheet->prependRow(1, ['序号', '编码', '分组', '网址']);
});
})->download('xls');
}
}