瀏覽代碼

添加Configuration model controller factory seeder factory migration view

ajun 5 年之前
父節點
當前提交
f57dc09ec0

+ 19 - 0
app/Configuration.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App;
+
+use App\Traits\ModelTimeFormat;
+use Illuminate\Database\Eloquent\Model;
+
+use App\Traits\LogModelChanging;
+
+class Configuration extends Model
+{
+    use LogModelChanging;
+    use ModelTimeFormat;
+
+    protected $fillable = [
+
+    ];
+    //
+}

+ 0 - 1
app/Filters/SupplierFilters.php

@@ -3,7 +3,6 @@
 
 namespace App\Filters;
 
-
 use Illuminate\Http\Request;
 
 class SupplierFilters

+ 29 - 0
app/Http/Controllers/ConfigurationController.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Configuration;
+use Illuminate\Http\Request;
+
+class ConfigurationController extends Controller
+{
+    public function index(Request $request)
+    {
+
+    }
+
+    public function storeApi(Request $request)
+    {
+
+    }
+
+    public function updateApi(Request $request)
+    {
+
+    }
+
+    public function destroyApi(Request $request)
+    {
+
+    }
+}

+ 12 - 0
database/factories/ConfigurationFactory.php

@@ -0,0 +1,12 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\Configuration;
+use Faker\Generator as Faker;
+
+$factory->define(Configuration::class, function (Faker $faker) {
+    return [
+        //
+    ];
+});

+ 35 - 0
database/migrations/2021_02_02_155946_create_configurations_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateConfigurationsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('configurations', function (Blueprint $table) {
+            $table->id();
+            $table->string('name')->index()->comment('名称');
+            $table->string('value')->index()->comment('值');
+            $table->string('description')->nullable()->comment('描述');
+            $table->bigInteger('operator')->comment('操作员');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('configurations');
+    }
+}

+ 16 - 0
database/seeds/ConfigurationSeeder.php

@@ -0,0 +1,16 @@
+<?php
+
+use Illuminate\Database\Seeder;
+
+class ConfigurationSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        //
+    }
+}

+ 38 - 0
resources/views/maintenance/configuration/_create.blade.php

@@ -0,0 +1,38 @@
+<div class="modal " id="add-configuration" tabindex="-1" >
+    <div class="modal-dialog modal-lg modal-dialog-centered">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title text-center">系统配置添加</h5>
+                <button type="button" class="close" data-dismiss="modal" @click="addConfiguration={}">
+                    <span>&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <form class="form">
+                    <div class="form-group row">
+                        <label for="add-name" class="col-sm-2 col-form-label text-right">名称</label>
+                        <div class="col-sm-10 form-inline">
+                            <input type="text" name="name" id="add-name" class="form-control col-sm-10" placeholder="输入配置名称" v-model="addConfiguration.name">
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="add-value" class="col-sm-2 col-form-label text-right">值</label>
+                        <div class="col-sm-10 form-inline">
+                            <input type="text" id="add-value" class="form-control col-10" name="value" placeholder="输入配置值" v-model="addConfiguration.value">
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="add-description" class="col-sm-2 col-form-label text-right">描述</label>
+                        <div class="col-sm-10 form-inline">
+                            <textarea name="description" id="add-description" cols="30" rows="5"  class="form-control form-text col-10" v-model="addConfiguration.description"></textarea>
+                        </div>
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary"  data-dismiss="modal" @click="addConfiguration={}">关闭</button>
+                <button type="button" class="btn btn-primary" @click="create">提交</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 38 - 0
resources/views/maintenance/configuration/_edit.blade.php

@@ -0,0 +1,38 @@
+<div class="modal " id="add-configuration" tabindex="-1" >
+    <div class="modal-dialog modal-lg modal-dialog-centered">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title text-center">系统配置编辑</h5>
+                <button type="button" class="close" data-dismiss="modal" @click="editConfiguration={}">
+                    <span>&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <form class="form">
+                    <div class="form-group row">
+                        <label for="add-name" class="col-sm-2 col-form-label text-right">名称</label>
+                        <div class="col-sm-10 form-inline">
+                            <input type="text" name="name" id="add-name" class="form-control col-sm-10" placeholder="输入配置名称" v-model="editConfiguration.name">
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="add-value" class="col-sm-2 col-form-label text-right">值</label>
+                        <div class="col-sm-10 form-inline">
+                            <input type="text" id="add-value" class="form-control col-10" name="value" placeholder="输入配置值" v-model="editConfiguration.value">
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="add-description" class="col-sm-2 col-form-label text-right">描述</label>
+                        <div class="col-sm-10 form-inline">
+                            <textarea name="description" id="add-description" cols="30" rows="5"  class="form-control form-text col-10" v-model="editConfiguration.description"></textarea>
+                        </div>
+                    </div>
+                </form>
+            </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>
+            </div>
+        </div>
+    </div>
+</div>

+ 28 - 0
resources/views/maintenance/configuration/_table.blade.php

@@ -0,0 +1,28 @@
+<table class="table table-striped table-sm table-hover" id="list">
+    <tr class="text-center">
+        <th>序号</th>
+        <th>名称</th>
+        <th>值</th>
+        <th>描述</th>
+        <th>操作员</th>
+        <th>创建时间</th>
+        <th>修改时间</th>
+        <th>操作</th>
+    </tr>
+    <tr class="text-center" v-for="(configuration,i) in configurations">
+        <td>@{{ i+1 }}</td>
+        <td>@{{ configuration.name }}</td>
+        <td>@{{ configuration.value  }}</td>
+        <td>@{{ configuration.description  }}</td>
+        <td>
+            <span v-if="configuration.operator">@{{ configuration.operator.name }}</span>
+        </td>
+        <td>@{{ configuration.created_at }}</td>
+        <td>@{{ configuration.updated_at }}</td>
+        <td>
+            <button type="button" class="btn btn-sm btn-outline-primary" @click="edit(configuration,i)">编辑</button>
+            <button type="button" class="btn btn-sm btn-outline-danger" @click="destroy(configuration.id,i)">删除</button>
+        </td>
+    </tr>
+</table>
+{{$configurations->links()}}

+ 112 - 0
resources/views/maintenance/configuration/index.blade.php

@@ -0,0 +1,112 @@
+@extends('layouts.app')
+
+@section('title','系统配置')
+
+@section('content')
+    <nav class="nav2">
+        @component('maintenance.menu')@endcomponent
+    </nav>
+
+    <div class="container-fluid d-none" id="configuration">
+        <div class="card">
+            @include('maintenance.configuration._create')
+            @include('maintenance.configuration._edit')
+            <div class="card-body">
+                <div class="row pull-left m-1">
+                    <button class="btn btn-outline-info mb-1 mr-3" @click="store"><span class="fa fa-plus"></span>&nbsp;新&nbsp;&nbsp;增</button>
+                </div>
+                @include('maintenance.configuration._table')
+            </div>
+        </div>
+    </div>
+@endsection
+
+@section('lastScript')
+    <script>
+        let vue = new Vue({
+            el:"#configuration",
+            data:{
+                configurations:{!! $configurations->toJson() !!}['data'],
+                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){
+                    if (!confirm('是否删除当前项目耗材')) return;
+                    axios.delete('{{url('apiLocal/configuration')}}/'+id).then(res=>{
+                        if(res.data.success){
+                            tempTip.setIndex(100);
+                            tempTip.setDuration(3000);
+                            tempTip.showSuccess('删除成功');
+                            this.$delete(this.configurations,index);
+                            return ;
+                        }
+                        tempTip.setDuration(3000);
+                        tempTip.show(res.data.message);
+                    }).catch(err=>{
+                        tempTip.setDuration(3000);
+                        tempTip.show('删除当前项目耗材失败:'+err);
+                    });
+                },
+                edit(configuration,i){
+                    this.editConfiguration = configuration;
+                    this.index = i;
+                    $('#edit-configuration').modal('show');
+                },
+                update(){
+                    let url = '{{url('apiLocal/configuration/update')}}';
+                    let params = this.editConfiguration;
+                    window.tempTip.postBasicRequest(url,params,res=>{
+                        this.$set(this.configurations,this.index,res);
+                        this.index = null;
+                        this.editConfiguration = {};
+                        $("#edit-configuration").modal('hide');
+                        return "修改完成";
+                    },true);
+                },
+                store(){
+                    $('#add-configuration').modal('show');
+                },
+                create(){
+                    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.addConfiguration = {};
+                        $("#add-configuration").modal('hide');
+                        return "OK";
+                    },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>
+@endsection
+

+ 7 - 0
routes/apiLocal.php

@@ -129,4 +129,11 @@ Route::group(['prefix' => 'supplier'],function(){
     Route::post('update','SupplierController@updateApi');
     Route::delete('{id}','SupplierController@destroyApi');
 });
+/** 系统配置 */
+Route::group(['prefix' => 'configuration'],function(){
+    Route::post('store','ConfigurationController@storeApi');
+    Route::post('update','ConfigurationController@updateApi');
+    Route::delete('{id}','ConfigurationController@destroyApi');
+});
+
 

+ 2 - 0
routes/web.php

@@ -202,6 +202,8 @@ Route::group(['prefix'=>'maintenance'],function(){
     Route::get('ownerMaterial','OwnerMaterialController@index');
     /** 供应商 */
     Route::get('supplier','SupplierController@index');
+    /** 系统配置 */
+    Route::get('configuration','ConfigurationController@index');
 
     Route::get('syncRedisLogs','LogController@syncRedisLogs');
     Route::resource('log', 'LogController');