Browse Source

Configuration 系统配置

ajun 5 years ago
parent
commit
88f4aa7a8e

+ 12 - 4
app/Configuration.php

@@ -4,16 +4,24 @@ namespace App;
 
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
-
 use App\Traits\LogModelChanging;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
 
 class Configuration extends Model
 {
     use LogModelChanging;
     use ModelTimeFormat;
-
     protected $fillable = [
-
+        'name','value','description','operator'
     ];
-    //
+
+    public function operator():BelongsTo
+    {
+        return $this->belongsTo(User::class,'operator');
+    }
+
+    public function scopeFilter($query,$filter)
+    {
+        return $filter->apply($query);
+    }
 }

+ 71 - 0
app/Filters/ConfigurationFilters.php

@@ -0,0 +1,71 @@
+<?php
+
+
+namespace App\Filters;
+
+
+use Illuminate\Http\Request;
+
+class ConfigurationFilters
+{
+    protected $request;
+    protected $queryBuilder;
+    protected $filters = [];
+    protected $array_filter;
+    protected $params = [
+        'name', 'contact_man', 'phone', 'invoice_title', 'bank', 'bank_account', 'opening_bank'
+    ];
+
+    public function __construct(Request $request)
+    {
+        $this->request = $request;
+    }
+
+    public function apply($builder)
+    {
+        $this->queryBuilder = $builder;
+        $filters = array_filter($this->request->only($this->filters));
+        foreach ($filters as $filter => $value) {
+            if (method_exists($this, $filter)) {
+                $this->$filter($value, $this->queryBuilder);
+            }
+        }
+        $this->afterApply();
+        return $this->queryBuilder;
+    }
+
+    private function afterApply()
+    {
+
+    }
+
+    private function name($name)
+    {
+
+    }
+
+    private function contact_man($contact_man)
+    {
+
+    }
+
+    private function phone($phone)
+    {
+
+    }
+
+    private function invoice_title($invoice_title)
+    {
+
+    }
+
+    private function opening_bank($opening_bank)
+    {
+
+    }
+
+    private function bank($bank)
+    {
+
+    }
+}

+ 21 - 6
app/Http/Controllers/ConfigurationController.php

@@ -2,28 +2,43 @@
 
 namespace App\Http\Controllers;
 
+use App\Components\AsyncResponse;
 use App\Configuration;
+use App\Filters\ConfigurationFilters;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
 
 class ConfigurationController extends Controller
 {
-    public function index(Request $request)
+    use AsyncResponse;
+    public function index(Request $request,ConfigurationFilters $filters)
     {
-
+        $configurations = Configuration::query()->orderBy('id')->filter($filters)->paginate($request['paginate'] ?? 50);
+        return view('/maintenance/configuration/index',compact('configurations'));
     }
 
     public function storeApi(Request $request)
     {
-
+        $params = $request->all();
+        $params['operator'] = Auth::user()['id'];
+        $configuration = Configuration::query()->create($params);
+        if($configuration)$this->success($configuration->loadMissing('operator'));
+        $this->error('创建失败');
     }
 
     public function updateApi(Request $request)
     {
-
+        $configuration = Configuration::query()->find($request['id']);
+        if(!$configuration)$this->error('更新异常');
+        $params = $request->only(['name','value','description']);
+        $params['operator'] = Auth::user()['id'];
+        $configuration->update($params);
+        $this->success($configuration->loadMissing('operator'));
     }
 
-    public function destroyApi(Request $request)
+    public function destroyApi($id)
     {
-
+        Configuration::query()->where('id',$id)->delete();
+        $this->success();
     }
 }

+ 2 - 0
app/Supplier.php

@@ -7,11 +7,13 @@ use Illuminate\Database\Eloquent\Model;
 
 use App\Traits\LogModelChanging;
 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
+use Illuminate\Database\Eloquent\SoftDeletes;
 
 class Supplier extends Model
 {
     use LogModelChanging;
     use ModelTimeFormat;
+    use SoftDeletes;
     protected $fillable = ['name','contact_man','phone','invoice_title','bank','bank_account','opening_bank'];
 
     public function material():BelongsToMany

+ 8 - 2
database/factories/ConfigurationFactory.php

@@ -1,12 +1,18 @@
 <?php
 
-/** @var \Illuminate\Database\Eloquent\Factory $factory */
+/** @var Factory $factory */
 
 use App\Configuration;
 use Faker\Generator as Faker;
+use \Illuminate\Database\Eloquent\Factory;
 
 $factory->define(Configuration::class, function (Faker $faker) {
     return [
-        //
+        'name' => $faker->domainName,
+        'value' => $faker->title,
+        'description' => $faker->title(100),
+        'created_at' => $faker->dateTime,
+        'updated_at' =>$faker->dateTime,
+        'operator' => 1
     ];
 });

+ 3 - 2
database/seeds/ConfigurationSeeder.php

@@ -1,7 +1,7 @@
 <?php
 
 use Illuminate\Database\Seeder;
-
+use App\Configuration;
 class ConfigurationSeeder extends Seeder
 {
     /**
@@ -11,6 +11,7 @@ class ConfigurationSeeder extends Seeder
      */
     public function run()
     {
-        //
+        $configurations = factory(Configuration::class)->times(100)->make()->toArray();
+        Configuration::query()->insert($configurations);
     }
 }

+ 2 - 2
resources/views/maintenance/configuration/_edit.blade.php

@@ -1,4 +1,4 @@
-<div class="modal " id="add-configuration" tabindex="-1" >
+<div class="modal " id="edit-configuration" tabindex="-1" >
     <div class="modal-dialog modal-lg modal-dialog-centered">
         <div class="modal-content">
             <div class="modal-header">
@@ -31,7 +31,7 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary"  data-dismiss="modal" @click="editConfiguration={}">关闭</button>
-                <button type="button" class="btn btn-primary" @click="udpate">保存</button>
+                <button type="button" class="btn btn-primary" @click="update">保存</button>
             </div>
         </div>
     </div>

+ 1 - 1
resources/views/maintenance/configuration/_table.blade.php

@@ -9,7 +9,7 @@
         <th>修改时间</th>
         <th>操作</th>
     </tr>
-    <tr class="text-center" v-for="(configuration,i) in configurations">
+    <tr class="text-center" v-for="(configuration,i) in configurations" :key="configuration.id">
         <td>@{{ i+1 }}</td>
         <td>@{{ configuration.name }}</td>
         <td>@{{ configuration.value  }}</td>

+ 4 - 27
resources/views/maintenance/configuration/index.blade.php

@@ -30,13 +30,9 @@
                 addConfiguration:{},
                 editConfiguration:{},
                 index:'',
-                filterOwners:'',
-                filterMaterials:'',
             },
             mounted(){
                 $('#configuration').removeClass('d-none');
-                this.filterOwners = JSON.parse(JSON.stringify(this.owners));
-                this.filterMaterials = JSON.parse(JSON.stringify(this.materials));
             },
             methods:{
                 destroy(id,index){
@@ -57,7 +53,7 @@
                     });
                 },
                 edit(configuration,i){
-                    this.editConfiguration = configuration;
+                    this.editConfiguration = JSON.parse(JSON.stringify(configuration));
                     this.index = i;
                     $('#edit-configuration').modal('show');
                 },
@@ -79,32 +75,13 @@
                     let url = '{{url('apiLocal/configuration/store')}}';
                     let params = this.addConfiguration;
                     window.tempTip.postBasicRequest(url,params,res=>{
-                        this.$set(this.configurations,this.configurations.length,res);
+                        this.configurations.unshift(res);
+                        this.$forceUpdate();
                         this.addConfiguration = {};
                         $("#add-configuration").modal('hide');
-                        return "OK";
+                        return "添加成功";
                     },true);
-                },
-                filterMaterial(e){
-                    let value = $(e.target).val();
-                    console.log(value);
-                    if(value==='' || value===null)this.filterMaterials = this.materials;
-                    else {
-                        this.filterMaterials = this.materials.filter(function(item){
-                            return item.code.indexOf(value) !== -1;
-                        });
-                    }
-                },
-                filterOwner(e){
-                    let value = $(e.target).val();
-                    if(value==='' || value===null)this.filterMaterials = this.materials;
-                    else {
-                        this.filterOwners = this.owners.filter(function(item){
-                            return item.name.indexOf(value) !== -1;
-                        });
-                    }
                 }
-
             }
         });
     </script>

+ 1 - 1
resources/views/maintenance/material/index.blade.php

@@ -49,7 +49,7 @@
                 });
             },
             edit(material,i){
-                this.editMaterial = material;
+                this.editMaterial =JSON.parse(JSON.stringify(material));
                 this.index = i;
                 $('#editModal').modal('show');
             },

+ 3 - 0
resources/views/maintenance/menu.blade.php

@@ -111,6 +111,9 @@
                 <li class="nav-item">
                     <a class="nav-link text-muted" href="{{url('maintenance/supplier')}}" :class="{active:isActive('supplier',2)}">供应商</a>
                 </li>
+                <li class="nav-item">
+                    <a class="nav-link text-muted" href="{{url('maintenance/configuration')}}" :class="{active:isActive('configuration',2)}">系统配置</a>
+                </li>
         </ul>
     </div>
 </div>

+ 1 - 1
resources/views/maintenance/ownerMaterial/index.blade.php

@@ -59,7 +59,7 @@
                 });
             },
             edit(ownerMaterial,i){
-                this.editOwnerMaterial = ownerMaterial;
+                this.editOwnerMaterial = JSON.parse(JSON.stringify(ownerMaterial));
                 this.index = i;
                 $('#edit-ownerMaterial').modal('show');
             },

+ 1 - 1
resources/views/maintenance/supplier/index.blade.php

@@ -50,7 +50,7 @@
                     });
                 },
                 edit(suppliers,i){
-                    this.editSupplier = suppliers;
+                    this.editSupplier = JSON.parse(JSON.stringify(suppliers));
                     this.index = i;
                     $('#edit-supplier').modal('show');
                 },