Pārlūkot izejas kodu

【Add】新增产品分类功能

liuxiangxin 1 nedēļu atpakaļ
vecāks
revīzija
b6236379fa

+ 19 - 4
app/Http/Controllers/Admin/Product.php

@@ -9,6 +9,7 @@ use App\Models\Product as Model;
 use Illuminate\Support\Carbon;
 use App\Models\Product\Spec as ProductSpec;
 use App\Models\Product\Type as ProductType;
+use App\Models\Product\Classs as ProductClass;
 use App\Models\Product\Attr as ProductAttr;
 use App\Models\Product\Skus as ProductSkus;
 use App\Models\Product\City as ProductCity;
@@ -37,13 +38,14 @@ class Product extends Auth{
 	 * 首页列表
 	 * 
 	 * */
-    public function index(Model $Model,City $City,ProductCity $ProductCity,OrdersProduct $OrdersProduct,Business $Business){
+    public function index(Model $Model,City $City,ProductCity $ProductCity,ProductClass $ProductClass,OrdersProduct $OrdersProduct,Business $Business){
 		// 接受参数
 		$code					= request('product_code','');
 		$name					= request('name','');
 		$status					= request('status');
 		$startTime				= request('start_time','');
 		$businessId				= request('business_id','');
+		$classId				= request('class_id',0);
 		$provinceId				= request('province_id','');
 		$cityIds				= request('city_ids',[]);
 		$cityList				= $City->getCityList();
@@ -67,6 +69,7 @@ class Product extends Auth{
 		// 编码ID
 		if( $id )				$map[] = ['product.id','=',$id];
 		if( $businessId )		$map[] = ['product.business_id','=',$businessId];
+		if( $classId )			$map[] = ['product.class_id','=',$classId];
 		if( $name )				$map[] = ['product.name','like','%'.$name.'%'];
 		if( $startTime )		$map[] = ['product.insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()];
 		if( $startTime )		$map[] = ['product.insert_time','<=',Carbon::createFromFormat('Y-m-d',$startTime)->endOfDay()->getTimestamp()];
@@ -117,8 +120,11 @@ class Product extends Auth{
 		}
 		// 获取列表
         $businessList 			    = $Business->getListByAdmin();
+		// 获取列表
+        $classList 			    	= $ProductClass->getList();
 		// 分配数据
 		$this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
+		$this->assign('classList',$classList);
 		$this->assign('cityList',$cityList);
 		$this->assign('businessList',$businessList);
 		$this->assign('list', $list);
@@ -246,7 +252,7 @@ class Product extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
+	public function add(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType,ProductClass $ProductClass, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -259,6 +265,7 @@ class Product extends Auth{
 			$data['market_price']	= request('market_price',0);
 			$data['producer_id']	= request('producer_id',0);
 			$data['business_id']	= request('business_id',0);
+			$data['class_id']		= request('class_id',0);
 			$data['quota']			= request('quota',0);
 			$data['min_quota']		= request('min_quota',0);
 			$data['hide_orderbtn']	= request('hide_orderbtn',0);
@@ -444,6 +451,7 @@ class Product extends Auth{
 		}
 		// 获取类型数据
 		$typeList				= $ProductType->getList();
+        $classList 			    = $ProductClass->getList();
 		$cityList				= $City->getCityList();
 		$businessList 			= $Business->getListByAdmin();
 		$producerList			= $Producer->getList();
@@ -460,6 +468,7 @@ class Product extends Auth{
 		$this->assign('tagList',$tagList);
 		$this->assign('typeList',$typeList);
 		$this->assign('cityList',$cityList);
+		$this->assign('classList',$classList);
 		$this->assign('businessList',$businessList);
 		$this->assign('producerList',$producerList);
 		// 加载模板
@@ -470,7 +479,7 @@ class Product extends Auth{
 	 * 编辑
 	 * 
 	 * */
-	public function edit(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
+	public function edit(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType,ProductClass $ProductClass, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询数据
@@ -497,6 +506,7 @@ class Product extends Auth{
 			$data['putoff_time']	= request('putoff_time','');
 			$data['producer_id']	= request('producer_id',0);
 			$data['business_id']	= request('business_id',0);
+			$data['class_id']		= request('class_id',0);
 			$data['type_id']		= request('type_id',0);
 			$data['stock']			= request('stock',0);
 			$data['status']			= 1;
@@ -697,6 +707,7 @@ class Product extends Auth{
 		}
 		// 获取类型数据
 		$typeList				= $ProductType->getList();
+		$classList 			    = $ProductClass->getList();
 		$cityList				= $City->getCityList();
 		$businessList 			= $Business->getListByAdmin();
 		$producerList			= $Producer->getList();
@@ -712,6 +723,7 @@ class Product extends Auth{
 		$this->assign('tagList',$tagList);
 		$this->assign('typeList',$typeList);
 		$this->assign('cityList',$cityList);
+		$this->assign('classList',$classList);
 		$this->assign('businessList',$businessList);
 		$this->assign('producerList',$producerList);
 		$this->assign('oldData',$oldData);
@@ -728,7 +740,7 @@ class Product extends Auth{
 	 * 编辑
 	 * 
 	 * */
-	public function copy(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
+	public function copy(Request $request, Model $Model, WeiBanTagList $WeiBanTagList, ProductPhoto $ProductPhoto, Producer $Producer, Business $Business, ProductType $ProductType,ProductClass $ProductClass, ProductSpec $ProductSpec, ProductAttr $ProductAttr, ProductSkus $ProductSkus, City $City, ProductCity $ProductCity){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -741,6 +753,7 @@ class Product extends Auth{
 			$data['market_price']	= request('market_price',0);
 			$data['producer_id']	= request('producer_id',0);
 			$data['business_id']	= request('business_id',0);
+			$data['class_id']		= request('class_id',0);
 			$data['quota']			= request('quota',0);
 			$data['min_quota']		= request('min_quota',0);
 			$data['hide_orderbtn']	= request('hide_orderbtn',0);
@@ -967,12 +980,14 @@ class Product extends Auth{
 		// 获取类型数据
 		$typeList				= $ProductType->getList();
 		$cityList				= $City->getCityList();
+		$classList 			    = $ProductClass->getList();
 		$businessList 			= $Business->getListByAdmin();
 		$producerList			= $Producer->getList();
 		// 分配数据
 		$this->assign('tagList',$tagList);
 		$this->assign('typeList',$typeList);
 		$this->assign('cityList',$cityList);
+		$this->assign('classList',$classList);
 		$this->assign('businessList',$businessList);
 		$this->assign('producerList',$producerList);
 		$this->assign('oldData',$oldData);

+ 131 - 0
app/Http/Controllers/Admin/ProductClass.php

@@ -0,0 +1,131 @@
+<?php namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\Admin\Product\Classs as Request;
+use App\Models\Product\Classs as Model;
+use Illuminate\Support\Carbon;
+
+/**
+ * 产品管理
+ *
+ * @author    刘相欣
+ *
+ */
+class ProductClass extends Auth{
+	
+	protected function _initialize(){
+		parent::_initialize();
+		$this->assign('breadcrumb1','基础信息');
+		$this->assign('breadcrumb2','产品分类');
+	}
+	
+	/**
+	 * 首页列表
+	 * 
+	 * */
+    public function index(Model $Model){
+		// 接受参数
+		$name					= request('name','');
+		$status					= request('status');
+		$startTime				= request('start_time','');
+		// 查询条件
+		$map 					= [];
+		// 编码ID
+		if( $name )				$map[] = ['name','=',$name];
+		if( $startTime )		$map[] = ['insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()];
+		if( $startTime )		$map[] = ['insert_time','<=',Carbon::createFromFormat('Y-m-d',$startTime)->endOfDay()->getTimestamp()];
+		if( !is_null($status) )	$map[] = ['status','=',$status];
+		// 查询数据
+		$list					= $Model->query()->where($map)->orderByDesc('id')->paginate(request('limit',config('page_num',10)))->appends(request()->all());
+		// 循环处理数据
+		foreach ($list as $key => $value) {
+			// 重组
+			$list[$key]			= $value;
+		}
+		// 分配数据
+		$this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
+		$this->assign('list', $list);
+		// 加载模板
+		return $this->fetch();
+    }
+
+	/**
+	 * 添加
+	 * 
+	 * */
+	public function add( Request $request, Model $Model){
+		if( request()->isMethod('post') ){
+			// 验证参数
+			$request->scene('add')->validate();
+			// 组合数据
+			$data['name']			= request('name','');
+			// 写入
+			$id						= $Model->add($data);
+			// 提示新增失败
+			if( !$id )				return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
+		}
+		// 分配数据
+		$this->assign('crumbs','新增');
+		// 加载模板
+		return 					$this->fetch();
+	}
+	
+	/**
+	 * 编辑
+	 * 
+	 * */
+	public function edit( Request $request, Model $Model){
+		if(request()->isMethod('post')){
+			// 验证参数
+			$request->scene('edit')->validate();
+			// 组合数据
+			$id						= request('id',0);
+			$data['name']			= request('name','');
+			// 写入
+			$result					= $Model->edit($id,$data);
+			// 提示新增失败
+			if( !$result )			return json_send(['code'=>'error','msg'=>'修改失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);			
+		}
+		// 接收参数
+		$id							= request('id',0);
+		// 查询数据
+		$oldData					= $Model->where(['id'=>$id])->first();
+		// 如果是没有数据
+		if( !$oldData ) 			return $this->error('查无数据');
+		// 产品信息转格式
+		$oldData					= $oldData->toArray();
+		// 分配数据
+		$this->assign('oldData',$oldData);
+		$this->assign('crumbs','修改');
+		// 加载模板
+		return 						$this->fetch();
+	}
+
+	/**
+	 * 状态
+	 * 
+	 * */
+	public function set_status( Request $request, Model $Model ){
+		// 验证参数
+		$request->scene('set_status')->validate();
+		// 接收参数
+		$id				= request('id',0);
+		$status			= request('status',0);
+		// 查询数据
+		$result			= $Model->edit($id,['status'=>$status]);
+		// 提示新增失败
+		if( !$result )	return json_send(['code'=>'error','msg'=>'设置失败']);
+		// 记录行为
+		$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],['status'=>$status]);
+		// 告知结果
+		return			json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
+	}
+
+}

+ 6 - 2
app/Http/Controllers/Api/Product.php

@@ -33,7 +33,7 @@ class Product extends Api{
 	 * @param	int		$limit			每页条数,默认10条
 	 * 
 	 * */
-	public function get_list(Request $request,Model $Model,Custom $Custom,RegimentActive $RegimentActive,WeiBanTags $WeiBanTags){
+	public function get_list(Request $request,Model $Model,Custom $Custom,Business $Business,RegimentActive $RegimentActive,WeiBanTags $WeiBanTags){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -44,11 +44,14 @@ class Product extends Api{
 		$custom						= $uid ? $Custom->getOne($uid) : [];
 		// 接收参数
 		$name					    = request('name','');
+        $classId					= request('class_id',0);
 		$limit						= request('limit',10);
         $cityId                     = empty($custom['city_id']) ? 0 : $custom['city_id'];
 		// 显示
 		$map						= [['status','=','0'],['stock','>',0]];
 		// 分类ID
+		if( $classId )				$map[] = ['class_id','=',$classId];
+        // 分类ID
 		if( $name )					$map[] = ['name','like','%'.$name.'%'];
 		// 是否有城市
 		$wherIn						= empty($custom['city_id']) ? [1] : [1,$custom['city_id']];
@@ -60,7 +63,7 @@ class Product extends Api{
 										->groupBy('product_id')
 										->orderBy('product.sort')
 										->orderBy('product.id')
-										->paginate($limit,['product.id','product.sort','product.name','product.tag_scope','product.tag_exclude','product.thumb','product.spec','product.price','product.market_price','product.stock']);
+										->paginate($limit,['product.id','product.sort','product.business_id','product.name','product.tag_scope','product.tag_exclude','product.thumb','product.spec','product.price','product.market_price','product.stock']);
 		// 获取数据
 		$data['total']				= $Paginator->total();
 		$data['current_page']		= $Paginator->currentPage();
@@ -115,6 +118,7 @@ class Product extends Api{
 			$value['thumb'] 				= path_compat($value['thumb']);
 			$value['regiment_active_id'] 	= null;
 			$value['regiment_title'] 		= '';
+            $value['business_name'] 		= $Business->getOne($value['business_id'],'name');
 			// 查询产品拼团信息
             $regiment 						= $RegimentActive::query()->where([['status','=',1],['start_time','<=',$time],['end_time','>=',$time],['product_id','=',$value['id']]])->first(['id as active_id','number','automatic']);
 			// 如果有拼团信息

+ 50 - 0
app/Http/Requests/Admin/Product/Classs.php

@@ -0,0 +1,50 @@
+<?php namespace App\Http\Requests\Admin\Product;
+
+use App\Http\Requests\BaseRequest;
+
+/**
+ * 类型验证器
+ * 
+ */
+class Classs extends BaseRequest
+{
+    /**
+     * 获取应用于请求的规则
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        // 返回结果
+        return      [
+            // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
+            // 验证字段,验证规则,提示信息
+	        'name' 			    => 'required|unique:product_class,name,'.request('id',0),
+	        'id'                => 'required|integer|gt:0',
+        ];
+    }
+    
+    // 场景列表
+    protected   $scenes         = [
+		'add'  		            => ['name'],
+        'edit'  		        => ['id','name'],
+        'set_status'  		    => ['id'],
+	];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @return array
+     */
+    public function messages()
+    {
+        return [
+            'name.required'     => '分类名称必填',
+            'name.unique'	    => '分类名称已经存在',
+            'id.required'       => 'ID未知',
+            'id.integer'        => 'ID格式错误',
+            'id.gt'   		    => 'ID格式错误',
+        ];
+    }
+    
+}

+ 105 - 0
app/Models/Product/Classs.php

@@ -0,0 +1,105 @@
+<?php namespace App\Models\Product;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 产品类型
+ * 
+ */
+class Classs extends Model
+{
+    use HasFactory;
+
+    // 与模型关联的表名
+    protected $table = 'product_class';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function add($data)
+    {
+        // 时间
+        $data['insert_time']				= time();
+        $data['update_time']				= time();
+        // 写入数据表
+        $id						            = $this->query()->insertGetId($data);
+        // 如果操作失败
+        if( !$id )                          return $id;
+        // 更新缓存
+        $this->getList(true);
+        // 返回结果
+        return                              $id;
+    }
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function edit($id,$data)
+    {
+        // 更新时间
+        $data['update_time']                = time();
+        // 写入数据表
+        $result						        = $this->query()->where([['id','=',$id]])->update($data);
+        // 如果操作失败
+        if( !$result )                      return $result;
+        // 更新缓存
+        $this->getList(true);
+        // 返回结果
+        return                              $result;
+    }
+
+    /**
+     * 获取列表
+     * @param   Bool    $force  是否强制更新
+     * 
+     */
+    public function getList($force = false)
+    {
+        // 结果数据
+        $list                  = $force ? [] : cache('admin:product:class:list');
+        // 不存在数据
+        if ( !$list ) {
+            // 从数据库获取数据
+            $data              = $this->query()->where([['status','=',0]])->get(['id','name']);
+            // 是否有数据
+            $data              = $data ? $data->toArray() : [];
+            // 循环处理数据
+            $list              = [];
+            // 进行更新
+            foreach ($data as $value) {
+                // 重组数据
+                $list[$value['id']] = $value;
+            }
+            // 存起来
+            cache(['admin:product:class:list'=>$list]);
+        }
+        // 返回结果
+        return                  $list;
+    }
+
+    /**
+     * 获取配置平台对应的应用数据
+     * 
+     * @param   int      用户ID
+     * @param   string     指定字段
+     * 
+     */
+    public function getOne($id,$field='')
+    {
+        // 获取列表数据
+        $list                   = $this->getList();
+        // 获取数据
+        $one                    = isset($list[$id]) ? $list[$id] : [];
+        // 返回值
+        return                  empty($field) ? $one : ( isset($one[$field]) ? $one[$field] : null);
+    }
+
+}

+ 9 - 0
resources/views/admin/product/add.blade.php

@@ -124,6 +124,15 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">商品分类</label>
+		<select name="class_id" class="form-control" >
+			<option value="0" >选择分类</option>
+			@foreach ($classList as $value)
+				<option value="{{$value['id']}}"  >{{$value['name']}}</option>
+			@endforeach
+		</select>
+	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">服务城市</label>
 		<select name="city_ids[]" class="form-control selectpicker" data-max-options="20" data-live-search="true" data-live-search-placeholder="搜索城市" data-none-results-text="未搜索到 {0}" title="选择城市" multiple>

+ 9 - 0
resources/views/admin/product/copy.blade.php

@@ -110,6 +110,15 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">商品分类</label>
+		<select name="class_id" class="form-control">
+			<option value="0" >选择分类</option>
+			@foreach ($classList as $value)
+				<option value="{{$value['id']}}" @if( $oldData['class_id'] == $value['id'] ) selected @endif  >{{$value['name']}}</option>
+			@endforeach
+		</select>
+	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">立即下单</label>
 		<select name="hide_orderbtn" class="form-control" >

+ 9 - 0
resources/views/admin/product/edit.blade.php

@@ -110,6 +110,15 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">商品分类</label>
+		<select name="class_id" class="form-control" >
+			<option value="0" >选择分类</option>
+			@foreach ($classList as $value)
+				<option value="{{$value['id']}}" @if( $oldData['class_id'] == $value['id'] ) selected @endif  >{{$value['name']}}</option>
+			@endforeach
+		</select>
+	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">立即下单</label>
 		<select name="hide_orderbtn" class="form-control" >

+ 11 - 3
resources/views/admin/product/index.blade.php

@@ -46,9 +46,17 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	</div>
 	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-12" style="margin-right: 2px;">
 		<select name="business_id" class="form-control">
-			<option value="" >店铺</option>
-			@foreach ($businessList as $business)
-			<option value="{{$business['id']}}" @if (request('business_id') === $business['id'] ) selected="selected" @endif >{{$business['name']}}</option>
+			<option value="" >选择店铺</option>
+			@foreach ($businessList as $value)
+			<option value="{{$value['id']}}" @if (request('business_id') == $value['id'] ) selected="selected" @endif >{{$value['name']}}</option>
+			@endforeach
+		</select>
+	</div>
+	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-12" style="margin-right: 2px;">
+		<select name="class_id" class="form-control">
+			<option value="0" >选择分类</option>
+			@foreach ($classList as $value)
+			<option value="{{$value['id']}}" @if (request('class_id') == $value['id'] ) selected="selected" @endif >{{$value['name']}}</option>
 			@endforeach
 		</select>
 	</div>

+ 16 - 0
resources/views/admin/product_class/add.blade.php

@@ -0,0 +1,16 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+<form class="post-form" action="" method="post">
+	<div class="form-group col-sm-12">
+		<label class="control-label">分类名称</label>
+		<input class="form-control" required="required" type="text" placeholder="分类名称" name="name" maxlength="10" value="" />
+	</div>
+	<div class="form-group col-sm-12">
+		@csrf
+		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />
+	</div>
+</form>
+@endsection

+ 17 - 0
resources/views/admin/product_class/edit.blade.php

@@ -0,0 +1,17 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+<form class="post-form" action="" method="post">
+	<div class="form-group col-sm-12">
+		<label class="control-label">分类名称</label>
+		<input class="form-control" required="required" type="text" placeholder="分类名称" name="name" maxlength="10" value="{{$oldData['name']}}" />
+	</div>
+	<div class="form-group col-sm-12">
+		@csrf
+		<input type="hidden" name="id" id="id" value="{{$oldData['id']}}" />
+		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />
+	</div>
+</form>
+@endsection

+ 59 - 0
resources/views/admin/product_class/index.blade.php

@@ -0,0 +1,59 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+
+@if(check_auth('admin/product_class/add'))
+	<div class="page-header">
+		<a href="{{url('admin/product_class/add')}}" class="btn btn-primary">新增</a>
+	</div>
+@endif
+
+<form action="" method="get" class="form-horizontal form-line">
+	<div class="form-group col col-lg-2 col-md-4 col-sm-6 col-xs-12" style="margin-right: 2px;">
+		<input type="text" class="form-control" name="name" value="{{request('name','')}}" placeholder="请输入分类名称查询" />
+	</div>
+	<input type="submit" class="btn btn-sm btn-primary" value="查询"/>
+	<a href="{{url('admin/product_class/index')}}" class="btn btn-sm btn-default" >重置</a>
+</form>
+
+<div class="row">
+	<div class="col-xs-12">	
+		<div class="table-responsive">
+			<table class="table table-striped table-bordered table-hover">
+				<thead>
+					<tr>
+						<th>id</th>
+						<th>分类名称</th>
+						<th>修改时间</th>
+						<th>操作</th>									
+					</tr>
+				</thead>
+				
+				<tbody>
+						@foreach ($list as $a)
+						<tr>
+							<th>{{$a['id']}}</th>
+							<td>{{$a['name']}}</td>
+							<td> {{date('Y/m/d H:i:s',$a['update_time'])}}</td>
+							<td>
+								@if(check_auth('admin/product_class/edit'))
+								<a href="{{url('admin/product_class/edit?'.http_build_query(['id'=>$a['id']]))}}" class="btn btn-sm btn-warning" >编辑</a>
+								@endif
+							</td>							
+						</tr>  
+						@endforeach
+						<tr>
+							<td colspan="20" class="page">{{$list->render()}}</td>
+						</tr>
+						<tr>
+							<td colspan="20">总计 {{$list->total()}} 个分类</td>
+						</tr>
+				</tbody>
+				
+			</table>
+		</div>
+	</div>
+</div>
+@endsection

+ 10 - 0
routes/web.php

@@ -348,6 +348,16 @@ Route::middleware('admin')->prefix('admin')->group(function(){
     // 状态
     Route::any('product_spec/set_status',[App\Http\Controllers\Admin\ProductSpec::class,'set_status']);
 
+    /* 产品分类 */
+    // 列表
+    Route::any('product_class/index',[App\Http\Controllers\Admin\ProductClass::class,'index']);
+    // 添加
+    Route::any('product_class/add',[App\Http\Controllers\Admin\ProductClass::class,'add']);
+    // 编辑
+    Route::any('product_class/edit',[App\Http\Controllers\Admin\ProductClass::class,'edit']);
+    // 状态
+    Route::any('product_class/set_status',[App\Http\Controllers\Admin\ProductClass::class,'set_status']);
+
 
     /* 微伴客户 */
     // 列表