Browse Source

选择分类自动选择产品模板

master
李可松 4 years ago
parent
commit
8b0be2a3c0
  1. 18
      MySQL_change.sql
  2. 5
      app/AdminAgent/Actions/Tree/LoadSystemCategory.php
  3. 9
      app/AdminAgent/Controllers/AgentProductController.php
  4. 3
      app/AdminAgent/Controllers/CategoryController.php
  5. 9
      app/AdminSupplier/Controllers/ProductController.php
  6. 2
      resources/lang/zh_CN/category.php

18
MySQL_change.sql

@ -452,3 +452,21 @@ ALTER TABLE `collect_products`
CHANGE COLUMN `verify_mobile` `verify_mobile` CHAR(11) NOT NULL DEFAULT '' COMMENT '核销人员手机号' COLLATE 'utf8_general_ci' AFTER `agent_id`; CHANGE COLUMN `verify_mobile` `verify_mobile` CHAR(11) NOT NULL DEFAULT '' COMMENT '核销人员手机号' COLLATE 'utf8_general_ci' AFTER `agent_id`;
ALTER TABLE `industry_products` ALTER TABLE `industry_products`
CHANGE COLUMN `verify_mobile` `verify_mobile` CHAR(11) NOT NULL DEFAULT '' COMMENT '核销人员手机号' COLLATE 'utf8_general_ci' AFTER `min_sale`; CHANGE COLUMN `verify_mobile` `verify_mobile` CHAR(11) NOT NULL DEFAULT '' COMMENT '核销人员手机号' COLLATE 'utf8_general_ci' AFTER `min_sale`;
# 17:50 ‎2021/‎11/‎06
ALTER TABLE `categories`
ADD COLUMN `publish_type` TINYINT NOT NULL DEFAULT 0 COMMENT '发布模板:0:旅游线路、1:酒店、2:景区、3:餐厅、4:车队、5:单项' COLLATE 'utf8mb4_general_ci' AFTER `sort`;
# 18:57 ‎2021/‎11/‎06
UPDATE `categories` SET `publish_type`=1 WHERE `name`='酒店住宿';
UPDATE `categories` SET `publish_type`=2 WHERE `name`='景点综合';
UPDATE `categories` SET `publish_type`=3 WHERE `name`='餐饮娱乐';
UPDATE `categories` SET `publish_type`=4 WHERE `name`='旅游交通';
UPDATE `categories` SET `publish_type`=5 WHERE `name`='旅游购物';
UPDATE `categories` a
LEFT JOIN `categories` b ON b.id=a.pid
SET a.`publish_type`=b.`publish_type`
WHERE a.`pid`<>0;

5
app/AdminAgent/Actions/Tree/LoadSystemCategory.php

@ -30,18 +30,21 @@ class LoadSystemCategory extends AbstractTool
$system_cate = Category::where('agent_id', 0)->orderBy('pid')->get(); $system_cate = Category::where('agent_id', 0)->orderBy('pid')->get();
$system_name = $system_cate->pluck('name')->toArray(); $system_name = $system_cate->pluck('name')->toArray();
$name2publish_type = $system_cate->pluck('publish_type', 'name')->toArray();
$own_cate = Category::where('agent_id', Admin::user()->id)->get(); $own_cate = Category::where('agent_id', Admin::user()->id)->get();
$own_name = $own_cate->pluck('name')->toArray(); $own_name = $own_cate->pluck('name')->toArray();
$no_name = array_diff($system_name, $own_name); //找到系统有,但自己没有的分类名 $no_name = array_diff($system_name, $own_name); //找到系统有,但自己没有的分类名
$max_id = Category::where('agent_id', Admin::user()->id)->max('id'); $max_id = Category::where('agent_id', Admin::user()->id)->max('id');
Category::insert(array_map(function ($name) {
Category::insert(array_map(function ($name) use ($name2publish_type) {
return [ return [
'agent_id' => Admin::user()->id, 'agent_id' => Admin::user()->id,
'name' => $name, 'name' => $name,
'pid' => 0, 'pid' => 0,
'sort' => 255, 'sort' => 255,
'publish_type' => $name2publish_type[$name],
]; ];
}, $no_name)); }, $no_name));

9
app/AdminAgent/Controllers/AgentProductController.php

@ -259,6 +259,15 @@ class AgentProductController extends AdminController
->options(array_slice($options, 1, null, true)) ->options(array_slice($options, 1, null, true))
->required(); ->required();
$cat2publish_type = json_encode(Category::where('agent_id', $agent_id)->pluck('publish_type', 'id'));
Admin::script(<<<JS
var PublishType = $cat2publish_type;
$('select[name="category_id"]').change(function () {
var SelectId = $(this).val();
$('input[name="tpl_type"][value="'+PublishType[SelectId]+'"]').click();
});
JS);
if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::UNAUDITED, ProductStatus::REFUSE])) { if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::UNAUDITED, ProductStatus::REFUSE])) {
$form->display('status')->customFormat(fn($v) => ProductStatus::array()[$form->model()->status]); $form->display('status')->customFormat(fn($v) => ProductStatus::array()[$form->model()->status]);
} else { } else {

3
app/AdminAgent/Controllers/CategoryController.php

@ -46,6 +46,7 @@ class CategoryController extends AdminController
$grid->column('name'); $grid->column('name');
$grid->column('pid'); $grid->column('pid');
$grid->column('sort'); $grid->column('sort');
$grid->column('publish_type')->using(admin_trans('product.options.publish_type'));
}); });
} }
@ -68,6 +69,7 @@ class CategoryController extends AdminController
$show->field('name'); $show->field('name');
$show->field('pid'); $show->field('pid');
$show->field('sort'); $show->field('sort');
$show->field('publish_type')->using(admin_trans('product.options.publish_type'));
}); });
} }
@ -91,6 +93,7 @@ class CategoryController extends AdminController
$form->select('pid')->options($options)->required(); $form->select('pid')->options($options)->required();
$form->text('name')->required(); $form->text('name')->required();
$form->text('sort')->default(255)->help('越小越靠前'); $form->text('sort')->default(255)->help('越小越靠前');
$form->radio('publish_type')->options(admin_trans('product.options.publish_type'))->required();
})->saving(function (Form $form) { })->saving(function (Form $form) {
//不允许修改非自己的数据 //不允许修改非自己的数据
if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) { if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) {

9
app/AdminSupplier/Controllers/ProductController.php

@ -148,6 +148,15 @@ class ProductController extends AdminController
$options = Category::selectOptions(fn($query) => $query->where('agent_id', 0)); $options = Category::selectOptions(fn($query) => $query->where('agent_id', 0));
$form->select('category_id')->options(array_slice($options, 1, null, true))->required(); $form->select('category_id')->options(array_slice($options, 1, null, true))->required();
$cat2publish_type = json_encode(Category::where('agent_id', 0)->pluck('publish_type', 'id'));
Admin::script(<<<JS
var PublishType = $cat2publish_type;
$('select[name="category_id"]').change(function () {
var SelectId = $(this).val();
$('input[name="type"][value="'+PublishType[SelectId]+'"]').click();
});
JS);
//信息收集表单 //信息收集表单
$options = DiyForm::where(['merchant_id' => Admin::user()->id, 'type' => 1])->pluck('name', 'id'); $options = DiyForm::where(['merchant_id' => Admin::user()->id, 'type' => 1])->pluck('name', 'id');
if ($options->isEmpty()) { if ($options->isEmpty()) {

2
resources/lang/zh_CN/category.php

@ -9,7 +9,7 @@ return [
'pid' => '上级分类', 'pid' => '上级分类',
'name' => '分类名称', 'name' => '分类名称',
'sort' => '排序', 'sort' => '排序',
'template' => '产品模板',
'publish_type' => '产品模板',
], ],
'options' => [ 'options' => [
], ],

Loading…
Cancel
Save