ajun 5 gadi atpakaļ
vecāks
revīzija
9ba16ff6a8

+ 29 - 27
app/Http/Controllers/FacilitatorController.php

@@ -8,6 +8,7 @@ use App\DischargeTask;
 use App\Filters\DischargeTaskFilters;
 use App\Http\Requests\DischargeTask\FacilitatorRequest;
 use App\Services\common\ExportService;
+use App\Services\FacilitatorService;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -40,11 +41,20 @@ class FacilitatorController extends Controller
             ->groupBy('months', 'facilitator_id')
             ->orderByDesc('months')
             ->paginate($request['paginate'] ?? 50);
-
         $facilitators = Facilitator::query()->get();
         return view('personnel.discharge.facilitator.index', compact('facilitatorStatements', 'facilitators'));
     }
 
+    // 二维码
+    public function getQrCode(Request $request)
+    {
+        /** @var FacilitatorService $service */
+        $service = app(FacilitatorService::class);
+        $qrCodeUrl = $service->getQrCode($request->all());
+        $facilitator = Facilitator::query()->find($request['facilitator_id']);
+        return view('personnel/discharge/facilitator/Qrcode',compact('qrCodeUrl','facilitator'));
+    }
+
     public function gainStatementApi(Request $request,DischargeTaskFilters $filters)
     {
         $this->gate('装卸队-对账单-查询');
@@ -55,14 +65,6 @@ class FacilitatorController extends Controller
         $this->success($facilitatorStatements);
     }
 
-    public function create()
-    {
-    }
-
-    public function store(Request $request)
-    {
-    }
-
     public function storeApi(FacilitatorRequest $request)
     {
         $this->gate('装卸队-创建');
@@ -70,19 +72,6 @@ class FacilitatorController extends Controller
         $this->success($facilitator);
     }
 
-    public function show(Facilitator $facilitator)
-    {
-
-    }
-
-    public function edit(Facilitator $facilitator)
-    {
-    }
-
-    public function update(Request $request, Facilitator $facilitator)
-    {
-    }
-
     public function updateApi(FacilitatorRequest $request)
     {
         $this->gate('装卸队-编辑');
@@ -91,10 +80,6 @@ class FacilitatorController extends Controller
         $this->error('更新失败');
     }
 
-    public function destroy(Facilitator $facilitator)
-    {
-    }
-
     public function destroyApi(FacilitatorRequest $request)
     {
         $this->gate('装卸队-删除');
@@ -116,11 +101,28 @@ class FacilitatorController extends Controller
             ->where('facilitator_id', '!=', '0')
             ->orderByDesc('id')->get();
 
-
         $row = ['日期', '装卸队', '数量', '单位', '单价', '总金额合计'];
         $json = app('DischargeTaskService')->getFacilitatorStatementsJson($facilitatorStatements);
         return app(ExportService::class)->json($row, $json, "装卸队对账单报表");
     }
 
 
+    public function create()
+    {
+    }
+    public function store(Request $request)
+    {
+    }
+    public function show(Facilitator $facilitator)
+    {
+    }
+    public function edit(Facilitator $facilitator)
+    {
+    }
+    public function update(Request $request, Facilitator $facilitator)
+    {
+    }
+    public function destroy(Facilitator $facilitator)
+    {
+    }
 }

+ 17 - 1
app/Services/FacilitatorService.php

@@ -4,10 +4,26 @@ namespace App\Services;
 
 use App\Traits\ServiceAppAop;
 use App\Facilitator;
+use Endroid\QrCode\QrCode;
 
 class FacilitatorService
 {
     use ServiceAppAop;
-    protected $modelClass=Facilitator::class;
+
+    protected $modelClass = Facilitator::class;
+
+    public function getQrCode(array $param): string
+    {
+        $url = url("/personnel/discharge/facilitator/search");
+        $url .= '?facilitator_id=' . $param['facilitator_id'];
+        $qrCode = new QrCode($url);
+        $fileURL=base_path('public/images/QRCodeIMG/facilitator_id_'.$param['facilitator_id'].'.png');
+        if(!file_exists($fileURL)){
+            $qrCode->writeFile($fileURL);
+        }
+        $url=url('images/QRCodeIMG/facilitator_id_'.$param['facilitator_id'].'.png');
+        return $url;
+    }
+
 
 }

+ 41 - 0
resources/views/personnel/discharge/facilitator/QRcode.blade.php

@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="icon" href="{{asset('icon/faviconc.ico')}}" type="image/x-icon"/>
+    <!-- CSRF Token -->
+    <meta name="csrf-token" content="{{ csrf_token() }}">
+    <title>显示二维码 BsWAS</title>
+    <!-- Styles -->
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
+</head>
+<body>
+<div class="container-fluid " id="page">
+    <div class="card ">
+        <div class="card-body">
+            <div class="align-content-center m-3">
+                <h3 class="text-center text-dark">卸货队@{{ facilitator.name }}二维码</h3><br>
+            </div>
+            <div class="row">
+                <div class="col text-center" style="float:left;">
+                    <img id="img" class="img-thumbnail" style="margin-top: 20px" :src="qrCodeUrl" width="35%"/>
+                    <p class="m-2 h1 text-center">@{{ facilitator.name }}</p>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="{{ mix('js/app.js') }}"></script>
+<script>
+    new Vue({
+        el: "#page",
+        data: {
+            qrCodeUrl: '{!! $qrCodeUrl !!}',
+            facilitator:{!! $facilitator !!},
+        },
+    });
+</script>
+</body>
+</html>

+ 4 - 7
resources/views/personnel/discharge/facilitator/_table.blade.php

@@ -25,8 +25,9 @@
                 <button class="align-self-center btn btn-outline-info m-0" @click="gainStatement(facilitatorStatement,index,$event)">点击展开</button>
             </td>
             <td class="align-text-bottom">
-                <button class="align-self-center btn btn-outline-primary m-0">查看</button>
-                <button class="align-self-center btn btn-outline-info m-0">打印</button>
+                <a :href="getQRCodeUrl(facilitatorStatement)">
+                    <button class="align-self-center btn btn-outline-primary m-0" @click="seekQrcode(facilitatorStatement)">查看</button>
+                </a>
             </td>
         </tr>
         <tr v-if="facilitatorStatement.showSubject" class="p-0 up" >
@@ -42,7 +43,6 @@
                             <th>单位</th>
                             <th>单价</th>
                             <th>总金额合计</th>
-                            <th>链接</th>
                         </tr>
                         </thead>
                         <tbody>
@@ -53,9 +53,6 @@
                             <td>@{{ item.expenditure_unit }}</td>
                             <td>@{{ item.expenditure_unit_price }}</td>
                             <td>@{{ item.expenditure_total_cost }}</td>
-                            <td>
-                                <a href="">服务商</a>
-                            </td>
                         </tr>
                         </tbody>
                     </table>
@@ -76,5 +73,5 @@
     </template>
     </tbody>
 </table>
-{{ $facilitatorStatements->withQueryString()->links() }}
 <hr>
+{{ $facilitatorStatements->withQueryString()->links() }}

+ 4 - 0
resources/views/personnel/discharge/facilitator/index.blade.php

@@ -119,6 +119,10 @@
                         window.tempTip.show(err);
                     });
                 },
+                getQRCodeUrl(facilitatorStatement){
+                    let url= '{{url('/personnel/discharge/facilitator/qrCode')}}'+'/?facilitator_id='+facilitatorStatement['id'];
+                    return url;
+                },
                 Export(isExportAll) {
                     let url = '{{url('personnel/discharge/facilitator/export')}}';
                     let token = '{{ csrf_token() }}';

+ 1 - 0
routes/web.php

@@ -579,6 +579,7 @@ Route::group(['prefix'=>'personnel'],function(){
         Route::group(['prefix'=>'facilitator'],function(){
             Route::get('index','FacilitatorController@statementIndex');
             Route::any('export','FacilitatorController@exportStatement');
+            Route::any('qrCode','FacilitatorController@getQrCode');
         });
     });
 });