ANG YU 4 лет назад
Родитель
Сommit
c5490b89dc

+ 9 - 0
app/Http/Controllers/LaborApplyController.php

@@ -14,10 +14,15 @@ use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
 use Illuminate\Routing\Redirector;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Gate;
 
 class LaborApplyController extends Controller
 {
+    //限制同一用户提交频率
+    const LABOR_APPLY_STORE_LIMIT = 'LABOR_APPLY_STORE_';
+    const LABOR_APPLY_STORE_LIMIT_TTL = 10;
+
     public function index(Request $request, LaborApplyFilters $filters)
     {
         $builder = LaborApply::query()
@@ -48,10 +53,14 @@ class LaborApplyController extends Controller
 
     public function store(LaborApplyRequest $request, LaborApply $laborApply)
     {
+        if (Cache::has(self::LABOR_APPLY_STORE_LIMIT . \auth()->id())) {
+            return redirect(route('laborApply.create'))->with('warning', "提交频率过高,请等待" . self::LABOR_APPLY_STORE_LIMIT_TTL . "s以上再试!");
+        }
         $laborApply->fill($request->all());
         $laborApply->apply_user_id = Auth::id();
         $laborApply->status = '创建';
         $laborApply->save();
+        Cache::add(self::LABOR_APPLY_STORE_LIMIT . \auth()->id(), true, self::LABOR_APPLY_STORE_LIMIT_TTL);
         return redirect(route('laborApply.index'))->with('success', '申请成功!');
     }
 

+ 6 - 6
resources/views/personnel/laborApply/dispatch/detail/create.blade.php

@@ -12,13 +12,13 @@
                     <div class="form-group">
                         <template v-for="(item,i) in items">
                             <div class="row mt-3">
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][name]'">姓名</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][name]'">姓名</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <input class="form-control" type="text" :name="'users['+i+'][name]'"
                                            :id="'users['+i+'][name]'" required>
                                 </div>
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][gender]'">性别</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][gender]'">性别</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <select class="form-control" :name="'users['+i+'][gender]'"
                                             required>
                                         <option value="" hidden disabled selected>性别</option>
@@ -26,8 +26,8 @@
                                         <option value="女">女</option>
                                     </select>
                                 </div>
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][age]'">年龄</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][age]'">年龄</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <input class="form-control" type="number" :name="'users['+i+'][age]'"
                                            :id="'users['+i+'][age]'">
                                 </div>

+ 6 - 6
resources/views/personnel/laborApply/dispatch/detail/edit.blade.php

@@ -12,22 +12,22 @@
                     <div class="form-group">
                         <template v-for="(item,i) in items">
                             <div class="row mt-3">
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][name]'">姓名</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][name]'">姓名</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <input class="form-control" type="text" :name="'users['+i+'][name]'"
                                            :value="item.name"
                                            :id="'users['+i+'][name]'" required>
                                 </div>
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][gender]'">性别</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][gender]'">性别</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <select class="form-control" :name="'users['+i+'][gender]'"
                                             required>
                                         <option value="男" :selected="item.gender==='男'">男</option>
                                         <option value="女" :selected="item.gender==='女'">女</option>
                                     </select>
                                 </div>
-                                <label class="col-1 col-form-label text-right" :for="'users['+i+'][age]'">年龄</label>
-                                <div class="col-2">
+                                <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][age]'">年龄</label>
+                                <div class="col-lg-2 col-sm-12">
                                     <input class="form-control" type="number" :name="'users['+i+'][age]'"
                                            :value="item.age"
                                            :id="'users['+i+'][age]'">