ajun 4 лет назад
Родитель
Сommit
068dcd93b7

+ 14 - 3
app/Http/Controllers/PrintController.php

@@ -11,11 +11,22 @@ class PrintController extends Controller
     //
     use AsyncResponse;
 
+    public function index()
+    {
+        return view('maintenance.expressPrinting.print.template');
+    }
+
     public function getPrintDataApi(Request $request,PrintService $service): array
     {
-        if(!$request->has('printStr')) $this->error('输入条件进行查询');
-        $printData = $service->getPrintData($request->input('printStr'));
-        return ['success' => true,'data' => $printData];
+        $result = [
+            ["encryptedData"=>"AES:rU904rj6UH2oqfSUb43+Z5CuoOkTVqESmlQ0tcJbrUAuXZFoV8Alh6XzZ02viDHO8CQZFc6Z7G1O/rHrPwUvRV2XnKc/FVCulnA0ItCq5bqMmWnp7SFP+LmSvZBheXaz0zOmC29GXzzV4obhd7B8BaKWsdMqPZIdYWdlTkoSTSzl28ppJ/x9TnjIeef9j6U2jJlp6e0hT/i5kr2QYXl2s9MzpgtvRl881eKG4XewfAVz60kACshDXGvuGMuATt9Us5UGOWqTdcMIGeYF1fCJofrOGkNbEzz1VsMlo3C7y1sVWXgOd35AC/qVsix0rznnnsigmiP7M/Ir+4tzJQkQ9/bVj8t+TzpC8ck3kmqxrqCzVGmjk0KB0HBP+C1TRHIcU6nNkbu3As9vEFCY97bmVsvY4HB/UUipvFvlmJeE/+/4aokTK//5/viaH7X8I2CCWHNfdjZWfe64MIH1yFeXNHfxyitTQyQ/Cap9K7GxsvgpEx+9z9vYXkfzghrE36Gk8Dxe+LJAhOYXfzFzOxU8P0deIuGp6hqsyGBOwzxuy5sndxp5W7oV8xt0f7kEOrPGUQXZthqxNctuXxlyGMr5Z+w5lGGiKgGrEnlE3jau1tC/F3I2fAuazJtL8nNk1PtMKNe1yRkw//tJcGuBrkqG6VQ06LQDzsdDBQ1iunwYxf1URgwOdtC6DBalish71+4SOyiHyiTgnw67CCMEQZ5zfsywBrQzj+KNmL5ayoRborWiMgYN4LEvhkuB8OmcBPtb1u0ie0byUG8Pn44Wns7dKegDAjpr5yHuSCwGYcEDhCb8WVmV4yYK4m+ViXcIaS4Lil0qIDqR1m3uZj0VAY5Snyqw7J8NiQjXtJs1PVtuaAgOIkFqDEdmpDAL/9jkQltrUz1BUdC2sv1YDDQROzRz1FTw5Is8HQWPglEfdiTMIJUvIT9u0u90WC2hqlTkVUZHhhFUG3nN8wIYqqdwBzlm8WpEpQhN+8Z3dUU721awuWIr6qjv226oidVjXlG/hVVT9vZd+V2Roo3uMpYsvvPJbuH5PYG7wAGtXXc4yzICRYIrjCX7xJ2SlJQGbfBObEHBhEDPGnEfPDV9jLZNpgXso54xo2tT5wRzzW1UfvbXVSo3dy6AJ353/6MvbfEhZg74By5llFoj3P00GP4g/cUFajtAxj8Ax9Y+7ZiqhOMeQ2QiAtSdYGSX74yoevG8TTx+X5Cn9tRWEM2Kdlvdfd7kTpc8lXDf3j0RXvRhSUGE+bFH2rsVNhumeiI4//pndho0Dbat5rYhBt3S7QPNcxcLNnfRwezzl+o/OXKr+AJDLUlj+zSTSRUvynPYYKYbWndyeBJxA38rH355S/8xeLW4n2VPRFg02MqE7hVuj4928D3yNqOOZCHyGM5ODT5PrEplTH1exmmJnpFdiBhpmNg4zOqHvXlRwOnNu3EipP+HF0PPRRKHlWYInYRpGDBNb37DRwEDfFQUY6iKg/zsA0aVg1pnE3ndNap+ioOuXTsK++kR+1KJL1gLrn2pZO/X2v1rqPdHP1lVyup7TrfZkpKsL6BQA4FKXWK6JvzSv4Igf8ilSQV1g+aqhz0eNNCKunlYrUG3EO6CQPnTJB1DZT9VLw==","signature"=>"MD:igmNRTCKVIhAL18yj0OsRg==","templateURL"=>"http://cloudprint.cainiao.com/template/standard/300336/9","ver"=>"waybill_print_secret_version_1"]
+        ];
+        return ['success' => true,'data' => $result];
+    }
+
+    public function uploadApi(Request $request)
+    {
+        dd($request->input());
     }
 
 

+ 122 - 0
resources/views/maintenance/expressPrinting/print/template.blade.php

@@ -0,0 +1,122 @@
+@extends('layouts.app')
+
+@section('title','面单打印')
+
+@section('content')
+    <div class="container  " id="list">
+        <div class="card">
+            <div class="card-header">
+                <label>
+                    <input type="text" name="printStr" class="form-control">
+                </label>
+            </div>
+            <div class="card-body">
+                <button @click="getPrintRequest">获取</button>
+                <button @click="pushGoPrintData">打印</button>
+                <input type="file" id="uploadInput">
+{{--                <template v-for="image in printImage">--}}
+{{--                    <div class="print-div">--}}
+{{--                        <template v-if="image.type === 'image'">--}}
+{{--                            <img :src="image.uri" class="print-image">--}}
+{{--                        </template>--}}
+{{--                        <template v-else-if="image.type === 'pdf'">--}}
+{{--                            <embed :src="image.uri" type="application/pdf" width="100%" height="100%" class="print-pdf">--}}
+{{--                        </template>--}}
+{{--                    </div>--}}
+{{--                </template>--}}
+            </div>
+            <div class="alert-success" v-if="goWebSocketStatus">
+                链接成功
+            </div>
+            <div v-else class="alert-primary">
+                链接失败
+            </div>
+            <div class="card-footer">
+                <canvas id="canvas-div" class="d-none"></canvas>
+            </div>
+        </div>
+    </div>
+@endsection
+
+
+@section('lastScript')
+    <script>
+        let vue = new Vue({
+            el: '#list',
+            data: {
+                data: [],
+                goWebSocketPath: 'ws://127.0.0.1:11101/',
+                goWebSocket:null,
+                goWebSocketStatus:false,
+                printData:[]
+            },
+            created() {
+
+            },
+            mounted() {
+                this.getGoWebSocket();
+            },
+            methods: {
+                getGoWebSocket(){
+                    let self = this;
+                    if(this.goWebSocket)return this.goWebSocket;
+                    let socket= new window.WebSocket(this.goWebSocketPath);
+                    socket.onopen  = function(){
+                        self.goWebSocketStatus = true;
+                    }
+                    console.log(123);
+                    return this.goWebSocket = socket;
+                },
+                getPrintRequest() {
+                    let self = this;
+                    let url = '{{url('apiLocal/maintenance/print/getData')}}'
+                    window.axios.post(url).then(res => {
+                        res.data.data.forEach(function (item) {
+                            self.printData.push({
+                                type:"CAINIAO",
+                                data:self.getPreviewRequest(item,null)
+                            });
+                        });
+                        this.$forceUpdate();
+                        console.log(this.printData);
+                    }).catch(err => {
+                        console.log(err);
+                    });
+                },
+                pushGoPrintData(){
+                    let socket = this.getGoWebSocket();
+                    this.printData.forEach(function(item){
+                        let json =  JSON.stringify(item);
+                        socket.send(json);
+                    })
+                },
+                getPreviewRequest(item,taskId){
+                    return {
+                        cmd: "print",
+                        requestID: "123458976",
+                        letsion: '1.0',
+                        firstDocumentNumber: 0,
+                        totalDocumentCount: 1,
+                        task: {
+                            taskID: '123458976123',
+                            preview: true,
+                            printer: '',
+                            notifyMode: 'allInOne',
+                            previewType: 'image',
+                            documents: [{
+                                documentID: "123123123",
+                                contents: [{
+                                    encryptedData: item['encryptedData'],
+                                    signature: item['encryptedData'],
+                                    templateURL: item['templateURL'],
+                                    ver: item['ver']
+                                }],
+                            }],
+                        }
+                    };
+                }
+            }
+        });
+
+    </script>
+@endsection

+ 4 - 0
routes/apiLocal.php

@@ -117,6 +117,10 @@ Route::group(['prefix'=>'maintenance'],function (){
     Route::group(['prefix'=>'owner'],function (){
         Route::post('getOwners','OwnerController@getOwners');
     });
+    Route::group(['prefix' => 'print'],function(){
+        Route::post('getData','PrintController@getPrintDataApi');
+        Route::post('upload','PrintController@uploadApi');
+    });
     Route::group(['prefix'=>'expressPrinting'],function (){
         Route::group(['prefix'=>'part'],function(){
             Route::post('create','PrintPartController@storeApi');

+ 2 - 0
routes/web.php

@@ -231,6 +231,7 @@ Route::group(['prefix'=>'maintenance'],function(){
     /** 服务商 */
     Route::resource('facilitator','FacilitatorController');
     /** 快递打印 */
+    Route::get('/print/index','PrintController@index');
     Route::group(['prefix'=>'expressPrinting'],function(){
         Route::get('/part','PrintPartController@index');
         Route::get('/part/create','PrintPartController@create');
@@ -240,6 +241,7 @@ Route::group(['prefix'=>'maintenance'],function(){
         });
     });
 
+
     Route::get('syncRedisLogs','LogController@syncRedisLogs');
     Route::get('region', 'RegionController@index');
     Route::get('taxRate', 'TaxRateController@index');