首先感谢前人的肩膀:https://github.com/lty5240/dcat-easy-sku
以及前人的前人的肩膀:https://github.com/jade-kun/sku
因改动太大,故没有往前面两位大佬的仓库中PR。
该插件是 Dcat Admin 的插件,安装方式遵循Dcat Admin官方文档。
默认规格带有图片
、库存
、价格
三个属性,可自行添加属性,自行处理。
- 增加了独立设置相关属性的模块;
- 增加了多图上传功能;
- 增加删除图片时操作确认;
- 增加删除图片时同时删除后端图片;
- 增加图片上传、删除的URL配置项,不用再去修改js文件中的相关变量;
- 可以独立设置规格属性,默认
输入框
,支持单选框
和复选框
。
-
在表单界面规格名位置选择下拉框中的相关属性或者手动输入,生成SKU相关信息。
-
插件配置页面可以配置图片上传、删除的URL。
composer require abbotton/dcat-sku-plus
等待Dcat Admin 上商店
// app/Admin/Controllers/ProductController.php
protected function form()
{
return Form::make(new Product(), function (Form $form) {
$skuParams = [
// 扩展第一列
[
'name' => '会员价', // table 第一行 title
'field' => 'member_price', // input 的 field_name 名称
'default' => 5, // 默认值
],
// 扩展第二列
];
// 新增时
$form->sku('sku', '生成SKU')->addColumn($skuParams);
// 编辑时
$skuData = []; // 数据结构见附录
$skuString = json_encode($skuData);
$form->sku('sku', '生成SKU')->addColumn($skuParams)->value($skuString);
// 获取提交的数据.
$form->saving(function (Form $form) {
// 拿到SKU数据,按照业务逻辑做响应处理即可。
dd($form->input('sku'));
});
});
}
{
"attrs": {
"测试": [
"测试1",
"测试2"
],
"颜色": [
"绿",
"黄"
],
"含电池": [
"含电池"
],
"内存": [
"8G"
]
},
"sku": [
{
"测试": "测试1",
"颜色": "绿",
"含电池": "含电池",
"内存": "8G",
"pic": [
{
"short_url": "sku/HjdrG0RpfIwI3kkgpNNFfmxPasgaOLg6bBPOCDxd.jpg",
"full_url": "http://127.0.0.1:8000/storage/sku/HjdrG0RpfIwI3kkgpNNFfmxPasgaOLg6bBPOCDxd.jpg"
},
{
"short_url": "sku/bkucABLjzRQ5pEHYX0gwdS1VxJrS6ObiQCIWVvIl.png",
"full_url": "http://127.0.0.1:8000/storage/sku/bkucABLjzRQ5pEHYX0gwdS1VxJrS6ObiQCIWVvIl.png"
}
],
"stock": "",
"price": "",
"member_price": 5
}
]
}