ajun 5 лет назад
Родитель
Сommit
bd5c36e5a9

+ 67 - 0
app/Http/Requests/Configuration/ConfigurationRequest.php

@@ -0,0 +1,67 @@
+<?php
+
+
+namespace App\Http\Requests\Configuration;
+
+use App\Traits\RequestApiFormValidation;
+use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Support\Facades\Route;
+
+class ConfigurationRequest extends FormRequest
+{
+    use RequestApiFormValidation;
+
+    protected $storeApiRules =[
+        'name' => 'required',
+        'value' => 'required',
+        'description' => 'required',
+    ];
+    protected $storeApiMessage = [
+        'name.required' => '系统配置名称为必填项',
+        'value.required' => '系统配置值为必填项',
+        'description.required' => '系统配置值描述为必填项',
+    ];
+
+    protected $updateApiRules = [
+        'name' => 'required',
+        'value' => 'required',
+        'description' =>  'required'
+    ];
+
+    protected $updateApiMessage = [
+        'name.required' => '系统配置名称为必填项',
+        'value.required' => '系统配置值为必填项',
+        'description.required' => '系统配置值描述为必填项',
+    ];
+
+    public function authorize(): bool
+    {
+        return true;
+    }
+
+
+    public function rules():array
+    {
+        $routeName = Route::currentRouteName();
+        switch ($routeName){
+            case 'configuration.storeApi':
+                return $this->storeApiRules;
+            case 'configuration.updateApi':
+                return $this->updateApiRules;
+            default:
+                return [];
+        }
+    }
+    public function messages():array
+    {
+        $routeName = Route::currentRouteName();
+        switch ($routeName){
+            case 'configuration.storeApi':
+                return $this->storeApiMessage;
+            case 'configuration.updateApi':
+                return $this->updateApiMessage;
+            default:
+                return [];
+        }
+    }
+}

+ 22 - 6
resources/views/maintenance/configuration/_create.blade.php

@@ -3,7 +3,7 @@
         <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={}">
+                <button type="button" class="close" data-dismiss="modal" >
                     <span>&times;</span>
                 </button>
             </div>
@@ -12,26 +12,42 @@
                     <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">
+                            <input type="text" name="name" id="add-name" class="form-control col-sm-10" placeholder="输入配置名称" v-model="addConfiguration.name"
+                                   :class="configurationErrors.name?'is-invalid':''"
+                                   @focus="configurationErrors.name!==null ? configurationErrors.name=null:''">
+                            <div class="invalid-feedback" v-if="configurationErrors.name">
+                                @{{ configurationErrors.name[0] }}
+                            </div>
                         </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">
+                            <input type="text" id="add-value" class="form-control col-10" name="value" placeholder="输入配置值" v-model="addConfiguration.value"
+                                   :class="configurationErrors.value?'is-invalid':''"
+                                   @focus="configurationErrors.value!==null ? configurationErrors.value=null:''">
+                            <div class="invalid-feedback" v-if="configurationErrors.value">
+                                @{{ configurationErrors.value[0] }}
+                            </div>
                         </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>
+                            <textarea name="description" id="add-description" cols="30" rows="5"  class="form-control form-text col-10" v-model="addConfiguration.description"
+                                      :class="configurationErrors.description?'is-invalid':''"
+                                      @focus="configurationErrors.description!==null ? configurationErrors.description=null:''">
+                            ></textarea>
+                            <div class="invalid-feedback" v-if="configurationErrors.description">
+                                @{{ configurationErrors.description[0] }}
+                            </div>
                         </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>
+                <button type="button" class="btn btn-secondary"  data-dismiss="modal" >关闭</button>
+                <button type="button" class="btn btn-primary" @click="create(addConfiguration)">提交</button>
             </div>
         </div>
     </div>

+ 19 - 3
resources/views/maintenance/configuration/_edit.blade.php

@@ -12,19 +12,35 @@
                     <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" readonly>
+                            <input type="text" name="name" id="add-name" class="form-control col-sm-10" placeholder="输入配置名称" v-model="editConfiguration.name" readonly
+                                   :class="configurationErrors.name?'is-invalid':''"
+                                   @focus="configurationErrors.name!==null ? configurationErrors.name=null:''">
+                            <div class="invalid-feedback" v-if="configurationErrors.name">
+                                @{{ configurationErrors.name[0] }}
+                            </div>
                         </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">
+                            <input type="text" id="add-value" class="form-control col-10" name="value" placeholder="输入配置值" v-model="editConfiguration.value"
+                                   :class="configurationErrors.value?'is-invalid':''"
+                                   @focus="configurationErrors.value!==null ? configurationErrors.value=null:''">
+                            <div class="invalid-feedback" v-if="configurationErrors.value">
+                                @{{ configurationErrors.value[0] }}
+                            </div>
                         </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>
+                            <textarea name="description" id="add-description" cols="30" rows="5"  class="form-control form-text col-10" v-model="editConfiguration.description"
+                                      :class="configurationErrors.description?'is-invalid':''"
+                                      @focus="configurationErrors.description!==null ? configurationErrors.description=null:''">
+                            </textarea>
+                            <div class="invalid-feedback" v-if="configurationErrors.description">
+                                @{{ configurationErrors.description[0] }}
+                            </div>
                         </div>
                     </div>
                 </form>

+ 60 - 17
resources/views/maintenance/configuration/index.blade.php

@@ -34,7 +34,8 @@
                 addConfiguration:{},
                 editConfiguration:{},
                 index:'',
-                selectTr:''
+                selectTr:'',
+                configurationErrors:{},
             },
             mounted(){
                 $('#configuration').removeClass('d-none');
@@ -60,32 +61,74 @@
                 edit(configuration,i){
                     this.editConfiguration = JSON.parse(JSON.stringify(configuration));
                     this.index = i;
+                    this.configurationErrors ={};
                     $('#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);
+                    if(!this.validateConfiguration(params))return;
+                    window.axios.post(url,params).then(res=>{
+                        if(res.data.success){
+                            this.$set(this.configurations,this.index,res.data.data);
+                            this.index = null;
+                            this.editConfiguration = {};
+                            $("#edit-configuration").modal('hide');
+                            window.tempTip.showSuccess('修改成功');
+                            return ;
+                        }
+                        if(res.data.errors){
+                            this.configurationErrors = res.data.errors;
+                            return;
+                        }
+                        window.tempTip.show(res.data.message ?? '修改失败');
+                    }).catch(err=>{
+                        window.tempTip.show('修改失败'+err);
+                    });
                 },
                 store(){
+                    this.addConfiguration = {};
+                    this.configurationErrors ={};
                     $('#add-configuration').modal('show');
                 },
-                create(){
+                create(params){
                     let url = '{{url('apiLocal/configuration/store')}}';
-                    let params = this.addConfiguration;
-                    window.tempTip.postBasicRequest(url,params,res=>{
-                        this.configurations.unshift(res);
-                        this.$forceUpdate();
-                        this.addConfiguration = {};
-                        $("#add-configuration").modal('hide');
-                        return "添加成功";
-                    },true);
+                    if(!this.validateConfiguration(params))return;
+                    window.tempTip.setIndex(1099);
+                    window.tempTip.setDuration(3000);
+                    window.axios.post(url,params).then(res=>{
+                        if(res.data.success){
+                            this.configurations.unshift(res.data.data);
+                            this.$forceUpdate();
+                            $("#add-configuration").modal('hide');
+                            window.tempTip.showSuccess('添加成功');
+                            return ;
+                        }
+                        if(res.data.errors){
+                            this.configurationErrors = res.data.errors;
+                            return ;
+                        }
+                        window.tempTip.show(res.data.message ?? '修改失败');
+                    }).catch(err=>{
+                        window.tempTip.show('修改失败'+err);
+                    });
+                },
+                validateConfiguration(configuration){
+                    let bool = true;
+                    if(!configuration.hasOwnProperty('name') || configuration.name.trim() === ''){
+                        this.$set(this.configurationErrors,'name',['名称为必填项'])
+                        bool = false;
+                    }
+                    if(!configuration.hasOwnProperty('value') || configuration.value.trim() === ''){
+                        this.$set(this.configurationErrors,'value',['值为必填项'])
+                        bool = false;
+                    }
+                    if(!configuration.hasOwnProperty('description') || configuration.description.trim() === ''){
+                        this.$set(this.configurationErrors,'description',['描述为必填项'])
+                        bool = false;
+                    }
+                    if(!bool)this.$forceUpdate();
+                    return bool;
                 }
             }
         });

+ 3 - 3
routes/apiLocal.php

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