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

+ 6 - 4
app/Http/Requests/Supplier/SupplierRequest.php

@@ -14,7 +14,7 @@ class SupplierRequest extends FormRequest
     protected $storeApiRules = [
         'name' => 'required',
         'contact_man' => 'required',
-        'phone' => 'required|numeric',
+        'phone' => 'required|numeric|mobile',
         'invoice_title' => 'required',
         'bank' => 'required',
         'bank_account' => 'required',
@@ -26,17 +26,18 @@ class SupplierRequest extends FormRequest
         'contact_man.required' => '联系人为必填项',
         'phone.required' => '联系电话为必填项',
         'phone.numeric' => '联系电话必须由数字组成',
+        'phone.mobile' => '输入正确的手机号码',
         'invoice_title.required' => '发票抬头为必填项',
         'bank.required' =>  '账户银行为必填项',
         'bank_account.required' => '收款账号为必填项',
-        'opening_bank.required' => '开户行为必填项',
+        'opening_bank.required' => '开户行为必填项',
         'material_id.required' => '耗材类型为必选项',
     ];
 
     protected $updateApiRules = [
         'name' => 'required',
         'contact_man' => 'required',
-        'phone' => 'required|numeric',
+        'phone' => 'required|numeric|mobile',
         'invoice_title' => 'required',
         'bank' => 'required',
         'bank_account' => 'required',
@@ -49,10 +50,11 @@ class SupplierRequest extends FormRequest
         'contact_man.required' => '联系人为必填项',
         'phone.required' => '联系电话为必填项',
         'phone.numeric' => '联系电话必须由数字组成',
+        'phone.mobile' => '输入正确的手机号码',
         'invoice_title.required' => '发票抬头为必填项',
         'bank.required' =>  '账户银行为必填项',
         'bank_account.required' => '收款账号为必填项',
-        'opening_bank.required' => '开户行必填项',
+        'opening_bank.required' => '开户行必填项',
         'material_id.required' => '耗材类型为必选项',
     ];
 

+ 2 - 2
resources/views/maintenance/supplier/_create.blade.php

@@ -110,7 +110,7 @@
                     </div>
                     <div class="form-group row">
                         <label class="col-sm-3 col-form-label text-right "></label>
-                        <span class="text-danger" v-if="supplierErrors.material_id">
+                        <span class="text-danger" v-if="supplierErrors.material_id ">
                                 @{{ supplierErrors.material_id[0] }}
                         </span>
                     </div>
@@ -118,7 +118,7 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
-                <button type="button" class="btn btn-primary" @focus="create(addSupplier)">提交</button>
+                <button type="button" class="btn btn-primary" @click="create(addSupplier)">提交</button>
             </div>
         </div>
     </div>

+ 4 - 4
resources/views/maintenance/supplier/_edit.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" @focus="editSupplier={},selectIndex=0">
+                <button type="button" class="close" data-dismiss="modal" >
                     <span>&times;</span>
                 </button>
             </div>
@@ -52,7 +52,7 @@
                                    :class="supplierErrors.invoice_title?'is-invalid':''"
                                    @focus="supplierErrors.invoice_title!==null ? supplierErrors.invoice_title=null:''"
                             >
-                            <div class="invalid-feedback" v-if="supplierErrors.contact_man">
+                            <div class="invalid-feedback" v-if="supplierErrors.invoice_title">
                                 @{{ supplierErrors.invoice_title[0]  }}
                             </div>
                         </div>
@@ -108,8 +108,8 @@
                 </form>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary"  data-dismiss="modal" @focus="editSupplier={},selectIndex=0">关闭</button>
-                <button type="button" class="btn btn-primary" @focus="update(editSupplier,selectIndex)">保存</button>
+                <button type="button" class="btn btn-secondary"  data-dismiss="modal">关闭</button>
+                <button type="button" class="btn btn-primary" @click="update(editSupplier,selectIndex)">保存</button>
             </div>
         </div>
     </div>

+ 43 - 3
resources/views/maintenance/supplier/index.blade.php

@@ -46,10 +46,10 @@
             },
             watch:{
                 'editSupplier.material_id':function(){
-                    this.supplierErrors.material_id = null;
+                    this.supplierErrors.material_id =[];
                 },
                 'addSupplier.material_id':function(){
-                    this.supplierErrors.material_id = null;
+                    this.supplierErrors.material_id = [];
                 },
             },
             methods:{
@@ -69,19 +69,21 @@
                     });
                 },
                 edit(supplier,i){
+                    this.selectIndex = i;
                     this.editSupplier = JSON.parse(JSON.stringify(supplier));
                     this.editSupplier.material_id = [];
                     this.supplierErrors = {material_id:[]};     // 重置异常信息
                     supplier.material.forEach((item)=>{
                         this.editSupplier.material_id.push(item.id);
                     });
-                    this.selectIndex = i;
                     $('#edit-supplier').modal('show');
                 },
                 update(editSupplier,index){
+                    this.supplierErrors = {material_id:[]};     // 重置异常信息
                     let url = '{{url('apiLocal/supplier/update')}}';
                     window.tempTip.setIndex(1099);
                     window.tempTip.setDuration(2000);
+                    if(!this.validatePhone(editSupplier))return;
                     window.axios.post(url,editSupplier).then(res=>{
                         if(res.data.success){
                             this.$set(this.suppliers,index,res.data.data);
@@ -108,6 +110,7 @@
                     let url = '{{url('apiLocal/supplier/store')}}';
                     window.tempTip.setIndex(1099);
                     window.tempTip.setDuration(2000);
+                    if(!this.validatePhone(supplier))return;
                     window.axios.post(url,supplier).then(res=>{
                         if(res.data.success){
                             this.suppliers.unshift(res.data.data);
@@ -124,6 +127,43 @@
                         window.tempTip.showSuccess(err)
                     });
                 },
+                validatePhone(param){
+                    let is_validate = true;
+                    if(!(/^1[34578]\d{9}$/.test(param['phone']))){
+                        this.$set(this.supplierErrors,'phone',['请输入正确的联系号码','']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('name') || (param['name'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'name',['供应商为必填项']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('contact_man') || (param['contact_man'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'contact_man',['联系人为必填项']);
+                        is_validate = false;
+                    }
+
+                    if(!param.hasOwnProperty('invoice_title') || (param['invoice_title'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'invoice_title',['发票抬头为必填项']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('bank') || (param['bank'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'bank',['账户银行必填项']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('bank_account') || (param['bank_account'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'bank_account',['收款账户为必填项']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('opening_bank') || (param['opening_bank'].trim().length === 0)){
+                        this.$set(this.supplierErrors,'opening_bank',['开户行为必填项']);
+                        is_validate = false;
+                    }
+                    if(!param.hasOwnProperty('material_id') || (param['material_id'].length === 0)){
+                        this.$set(this.supplierErrors,'material_id',['耗材类型为必填项']);
+                        is_validate = false;
+                    }
+                    return is_validate;
+                }
             }
         })
     </script>