From 3342e77756618c7b6ee47dbb309401696d4d72d1 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 05 六月 2023 18:07:53 +0800
Subject: [PATCH] 修改前端页面

---
 src/components/page/parkticket/index.vue       |  210 ++++
 src/components/page/user/index.vue             |    8 
 vue.config.js                                  |   14 
 package-lock.json                              |   88 +
 src/components/page/zfticket/index.vue         |  188 ++++
 src/components/page/EditParkNum.vue            |    6 
 src/components/page/Login.vue                  |    2 
 src/components/page/ticket/word-view/index.vue |   46 +
 src/libs/word.js                               |   89 +
 src/components/page/Index2.vue                 |   57 
 src/components/page/enterpark/index.vue        |  145 +++
 src/components/page/park/index2.vue            |    2 
 src/components/page/outPark/index.vue          |  371 +++----
 src/components/page/whiteList/index.vue        |    8 
 src/assets/js/ByUtils.js                       |   14 
 src/components/page/street/index.vue           |   18 
 src/components/page/park/index.vue             |    2 
 src/components/page/Index.vue                  |    2 
 src/components/page/costRule/index.vue         |    8 
 src/components/common/Sidebar.vue              |  155 +-
 src/libs/dialogDrag.js                         |   75 +
 src/router/index.js                            |   61 
 src/components/page/ticket/index.vue           |  430 ++++----
 /dev/null                                      |  155 ---
 src/components/page/IndexTest.vue              |   11 
 src/components/page/orderRecord/index.vue      |   10 
 src/components/page/Index4.vue                 |  198 ++++
 package.json                                   |    6 
 src/components/page/ticket/ticket-form.vue     |  222 ++++
 src/components/page/violationType/index.vue    |    6 
 src/components/page/ticket/picture-form.vue    |   74 +
 31 files changed, 1,953 insertions(+), 728 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 5a3f3ef..d677d25 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2636,6 +2636,11 @@
         "@xtuc/long": "4.2.2"
       }
     },
+    "@xmldom/xmldom": {
+      "version": "0.8.8",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/@xmldom/xmldom/-/xmldom-0.8.8.tgz",
+      "integrity": "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q=="
+    },
     "@xtuc/ieee754": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -5495,6 +5500,37 @@
         "buffer-indexof": "^1.0.0"
       }
     },
+    "docx-preview": {
+      "version": "0.1.15",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/docx-preview/-/docx-preview-0.1.15.tgz",
+      "integrity": "sha512-qeYNwA+HF0e+GLxH/yltGdaBVQHoQrscfCwR2p7fRGCMjPBohdd36L7xDi1wdErS3ZnV/uh4kx5+tXOXgzq/dQ==",
+      "requires": {
+        "jszip": ">=3.0.0"
+      }
+    },
+    "docxtemplater": {
+      "version": "3.37.9",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/docxtemplater/-/docxtemplater-3.37.9.tgz",
+      "integrity": "sha512-0FYopqsEe8dpN2mILn8qINzXXXZ25qnbXYVJtgjxar3VI0IfUd7nPfZGRffWvAKgLQupPs2dGJDzjRI60TmD8A==",
+      "requires": {
+        "@xmldom/xmldom": "^0.8.7"
+      }
+    },
+    "docxtemplater-image-module-free": {
+      "version": "1.1.1",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/docxtemplater-image-module-free/-/docxtemplater-image-module-free-1.1.1.tgz",
+      "integrity": "sha512-aWOzVQN7ggDYjfoy3pTTNrcrZ7/CJrQcI9cT+hmyHE6nRLR67nt5yPFPe9hm9VWbfYIED2fi+3itOnF0TE/RWQ==",
+      "requires": {
+        "xmldom": "^0.1.27"
+      },
+      "dependencies": {
+        "xmldom": {
+          "version": "0.1.31",
+          "resolved": "https://mirrors.cloud.tencent.com/npm/xmldom/-/xmldom-0.1.31.tgz",
+          "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
+        }
+      }
+    },
     "dom-converter": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -6197,6 +6233,11 @@
           }
         }
       }
+    },
+    "file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/file-saver/-/file-saver-2.0.5.tgz",
+      "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
     },
     "file-type": {
       "version": "9.0.0",
@@ -7215,6 +7256,11 @@
       "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
       "dev": true
     },
+    "immediate": {
+      "version": "3.0.6",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/immediate/-/immediate-3.0.6.tgz",
+      "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+    },
     "import-cwd": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
@@ -7822,6 +7868,22 @@
         "verror": "1.10.0"
       }
     },
+    "jszip": {
+      "version": "3.10.1",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/jszip/-/jszip-3.10.1.tgz",
+      "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
+      "requires": {
+        "lie": "~3.3.0",
+        "pako": "~1.0.2",
+        "readable-stream": "~2.3.6",
+        "setimmediate": "^1.0.5"
+      }
+    },
+    "jszip-utils": {
+      "version": "0.1.0",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/jszip-utils/-/jszip-utils-0.1.0.tgz",
+      "integrity": "sha512-tBNe0o3HAf8vo0BrOYnLPnXNo5A3KsRMnkBFYjh20Y3GPYGfgyoclEMgvVchx0nnL+mherPi74yLPIusHUQpZg=="
+    },
     "keyv": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz",
@@ -7893,6 +7955,14 @@
       "resolved": "https://mirrors.cloud.tencent.com/npm/lib-flexible/-/lib-flexible-0.3.2.tgz",
       "integrity": "sha1-BvWnSDIxSi01wSA5vJw8otrqpCY=",
       "dev": true
+    },
+    "lie": {
+      "version": "3.3.0",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/lie/-/lie-3.3.0.tgz",
+      "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+      "requires": {
+        "immediate": "~3.0.5"
+      }
     },
     "lighthouse-logger": {
       "version": "1.2.0",
@@ -9412,6 +9482,21 @@
           "version": "3.4.0",
           "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
           "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+        }
+      }
+    },
+    "pizzip": {
+      "version": "3.1.4",
+      "resolved": "https://mirrors.cloud.tencent.com/npm/pizzip/-/pizzip-3.1.4.tgz",
+      "integrity": "sha512-08yol1Of5Og1E0a1R56c+Z1jVkvfTEBUouwG9WYwCqpj8BjdcpEpLgZsrdLFNQYRgtxK0OOe0JpmBWJdrPr6Dg==",
+      "requires": {
+        "pako": "^2.1.0"
+      },
+      "dependencies": {
+        "pako": {
+          "version": "2.1.0",
+          "resolved": "https://mirrors.cloud.tencent.com/npm/pako/-/pako-2.1.0.tgz",
+          "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
         }
       }
     },
@@ -11405,8 +11490,7 @@
     "setimmediate": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
     },
     "setprototypeof": {
       "version": "1.1.1",
diff --git a/package.json b/package.json
index 06d7052..700a450 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,18 @@
     "appium-chromedriver": "^4.11.0",
     "axios": "^0.18.0",
     "babel-polyfill": "^6.26.0",
+    "docx-preview": "^0.1.15",
+    "docxtemplater": "^3.37.9",
+    "docxtemplater-image-module-free": "^1.1.1",
     "echarts": "^4.9.0",
     "element-ui": "^2.13.1",
+    "file-saver": "^2.0.5",
     "jquery": "^3.5.1",
+    "jszip-utils": "^0.1.0",
     "mavon-editor": "^2.6.17",
     "moment": "^2.29.4",
     "node-sass": "^4.14.1",
+    "pizzip": "^3.1.4",
     "qs": "^6.9.4",
     "sass-loader": "^10.0.4",
     "v-distpicker": "^1.2.1",
diff --git a/src/assets/js/ByUtils.js b/src/assets/js/ByUtils.js
index b885c52..c296143 100644
--- a/src/assets/js/ByUtils.js
+++ b/src/assets/js/ByUtils.js
@@ -111,8 +111,17 @@
                     vm.$router.push({'path': '/login'});
                     vm.$alert('浼氳瘽缁撴潫锛岃閲嶆柊鐧诲綍', {'title': '鎻愮ず', 'type': 'warning', 'center': true, 'showClose': false});
                 }else{
-                    vm.$alert('鎿嶄綔澶辫触锛�' + data.message, {'title': '鎻愮ず', 'type': 'warning', 'center': true, 'showClose': false});
-                }
+                    let a = '';
+                    if(response.data){
+                        if(response.data.msg){
+                            a=response.data.msg
+                        }else {
+                            a='鏈嶅姟鍣ㄦ晠闅�'
+                        }
+                    }else {
+                        a="鏁版嵁閿欒"
+                    }
+                    vm.$alert(a , {'title': '鎻愮ず', 'type': 'warning', 'center': true, 'showClose': false});                }
             }
         }).catch((e) => {
             vm.$loading().close();
@@ -265,6 +274,7 @@
         }).then((response) => {
             //vm.$loading().close();
             let data = response.data;
+            console.log(response)
         if (data && data.code==0) {
                 callBackFunction(data);
             } else {
diff --git a/src/components/common/Sidebar.vue b/src/components/common/Sidebar.vue
index df487fa..17ede75 100644
--- a/src/components/common/Sidebar.vue
+++ b/src/components/common/Sidebar.vue
@@ -46,80 +46,103 @@
             return {
                 collapse: false,
                 items: [
-                    {
+                  {
+                    id:1,
+                    icon: 'el-icon-folder-opened',
+                    indexUrl: '1',
+                    name: '绯荤粺绠$悊',
+                    children:[
+                      {
                         id:1,
                         icon: 'el-icon-user-solid',
                         name: '浜哄憳绠$悊',
+                        parentId: 1,
                         indexUrl: 'user'
-                    },
-                    {
-                        id:2,
-                        icon: 'el-icon-place',
-                        name: '鍋滆溅鍦虹鐞�',
-                        indexUrl: 'park'
-                    },
-                    {
-                        id:3,
+                      }
+                    ]
+                  },
+                  {
+                      id:2,
+                      icon: 'el-icon-folder-opened',
+                      indexUrl: '2',
+                      name: '鏅烘収娉婅溅绠$悊',
+                      children:[
+                          {
+                              icon: 'el-icon-document',
+                              name: '鍋滆溅鍦虹鐞�',
+                              parentId: 2,
+                              indexUrl: "park"
+                          },
+                          {
+                              icon: 'el-icon-document',
+                              name: '鏀惰垂瑙勫垯绠$悊',
+                              parentId: 2,
+                              indexUrl: "costRule"
+                          },
+                          {
+                            icon: 'el-icon-document',
+                            name: '杞﹁締鍏ュ満绠$悊',
+                            parentId: 2,
+                            indexUrl: "enterPark"
+                          },
+                          {
+                            icon: 'el-icon-document',
+                            name: '杞﹁締鍑哄満绠$悊',
+                            parentId: 2,
+                            indexUrl: "outPark"
+                          },
+                          {
+                            icon: 'el-icon-document',
+                            name: '鐧藉悕鍗曠鐞�',
+                            parentId: 2,
+                            indexUrl: "whiteList"
+                          },
+                          {
+                            icon: 'el-icon-document',
+                            name: '娉婅溅鍙戠エ绠$悊',
+                            parentId: 2,
+                            indexUrl: "parkticket"
+                          },
+                          {
+                            icon: 'el-icon-document',
+                            name: '璁㈠崟缁熻',
+                            parentId: 2,
+                            indexUrl: "orderRecord"
+                          },
+                      ]
+                  },
+                  {
+                    id:3,
+                    icon: 'el-icon-folder-opened',
+                    indexUrl: '3',
+                    name: '鏅烘収缃氭病绠$悊',
+                    children:[
+                      {
                         icon: 'el-icon-document',
                         name: '杩濈珷绫诲瀷绠$悊',
-                        indexUrl: 'violationType'
-                    },
-                    // {
-                    //     id:4,
-                    //     icon: 'el-icon-document',
-                    //     name: '璁㈠崟绠$悊',
-                    //     indexUrl: 'outPark'
-                    // },
-                    // {
-                    //     id:5,
-                    //     icon: 'el-icon-document',
-                    //     name: '缃氬崟绠$悊',
-                    //     indexUrl: 'ticket'
-                    // },
-                    {
-                        id:6,
-                        icon: 'el-icon-document-checked',
-                        name: '鐧藉悕鍗�',
-                        indexUrl: 'whiteList'
-                    },
-                    {
-                        id:7,
-                        icon: 'el-icon-s-fold',
+                        parentId: 3,
+                        indexUrl: "violationType"
+                      },
+                      {
+                        icon: 'el-icon-document',
                         name: '琛楅亾绠$悊',
-                        indexUrl: 'street'
-                    },
-                  {
-                    id:8,
-                    icon: 'el-icon-document',
-                    name: '鏀惰垂瑙勫垯绠$悊',
-                    indexUrl: 'costRule'
+                        parentId: 3,
+                        indexUrl: "street"
+                      },
+                      {
+                        icon: 'el-icon-document',
+                        name: '缃氬崟绠$悊',
+                        parentId: 3,
+                        indexUrl: "ticket"
+                      },
+                      {
+                        icon: 'el-icon-document',
+                        name: '缃氭病鍙戠エ绠$悊',
+                        parentId: 3,
+                        indexUrl: "zfticket"
+                      },
+                    ]
                   },
-                  {
-                    id:9,
-                    icon: 'el-icon-document',
-                    name: '璁㈠崟缁熻',
-                    indexUrl: 'orderRecord'
-                  },
-                    // {
-                    //     id:3,
-                    //     icon: 'el-icon-folder-opened',
-                    //     indexUrl: '2',
-                    //     name: '缁熻鎶ヨ〃',
-                    //     children:[
-                    //         {
-                    //             icon: 'el-icon-document',
-                    //             name: '鏅�氬憳宸ユ湀搴﹁瘎浠�',
-                    //             parentId: 3,
-                    //             indexUrl: "puTongYuanGongStatistic"
-                    //         },
-                    //         {
-                    //             icon: 'el-icon-document',
-                    //             name: '鑱岃兘閮ㄩ棬璇勪环缁撴灉',
-                    //             parentId: 3,
-                    //             indexUrl: "leaderStatistic"
-                    //         }
-                    //     ]
-                    // }
                 ]
             }
         },
diff --git a/src/components/page/EditParkNum.vue b/src/components/page/EditParkNum.vue
index 7a9c1f1..1678bd5 100644
--- a/src/components/page/EditParkNum.vue
+++ b/src/components/page/EditParkNum.vue
@@ -68,13 +68,13 @@
         num:'',
         carNum:''
       },
-      urlPath:this.$systemconfig.basePath + '/park/',
+      urlPath:this.$systemconfig.basePath + '/ffzf/park/',
       table1:[],
       table2:[],
     }
   },
   mounted() {
-    this.$byutil.postData(this, this.$systemconfig.basePath+'/park/findAll', this.formData, res => {
+    this.$byutil.postData(this, this.urlPath+'findAll', this.formData, res => {
       this.table1 = res.data;
     })
   },
@@ -150,4 +150,4 @@
   height: 500px;
 }
 
-</style>
\ No newline at end of file
+</style>
diff --git a/src/components/page/Index.vue b/src/components/page/Index.vue
index 74c00e6..118392d 100644
--- a/src/components/page/Index.vue
+++ b/src/components/page/Index.vue
@@ -74,7 +74,7 @@
                 cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1]
             }
             this.ticketId = cs.id;
-            this.$byutil.postData(this, this.$systemconfig.basePath + '/ticket/findById', {id:cs.id}, res => {
+            this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/ticket/findById', {id:cs.id}, res => {
                 this.statisticData = res.data;
             })
         },
diff --git a/src/components/page/Index2.vue b/src/components/page/Index2.vue
index d431dc7..a5ed5f6 100644
--- a/src/components/page/Index2.vue
+++ b/src/components/page/Index2.vue
@@ -37,14 +37,22 @@
                             <el-button class="jiaofei-btn" type="primary" @click="pay()" :loading="payFlag">鍘荤即璐�</el-button>
                         </el-form-item>
                     </el-form>
-<!--                    <el-form label-width="100px" label-position="left">-->
-<!--                        <el-form-item label="璇疯緭鍏ユ墜鏈哄彿" style="margin-left: 5px;">-->
-<!--                            <el-input v-model="carNo" placeholder="璇疯緭鍏ユ墜鏈哄彿"></el-input>-->
-<!--                        </el-form-item>-->
-<!--                        <el-form-item style="display: flex;justify-content: center;margin-top: 2px" label-width="0">-->
-<!--                            <el-button class="jiaofei-btn" type="primary" @click="noCarOut()" v-show="showFlag">鏃犵墝鍑哄満缂磋垂</el-button>-->
-<!--                        </el-form-item>-->
-<!--                    </el-form>-->
+                    <el-form
+                        class="carSearch"
+                        label-position="left">
+                        <el-form-item
+                            class='formLabel'
+                            style="display: flex;
+                            flex-direction: column;align-items: center;justify-content: center"
+                            label="鏃� 鐗� 杞� 杈� 鏌� 璇�">
+                            <el-input prefix-icon="el-icon-search" style="margin-top: 20px;border: solid 1px #ccc!important;" v-model="carNo" placeholder="璇疯緭鍏ユ墜鏈哄彿"></el-input>
+                        </el-form-item>
+                        <el-form-item class="weizhang-footer-box" style="display: flex;justify-content: center;margin-top: 5.498vh" label-width="0">
+                            <el-button
+                                style="borderColor:'none';background:#121215e0 "
+                                class="jiaofei-btn" type="primary" @click="noCarOut()" v-show="showFlag">鏌ヨ</el-button>
+                        </el-form-item>
+                    </el-form>
 
                 </div>
 
@@ -113,26 +121,18 @@
             },
             noCarOut(){
                 if(this.carNo){
-                    this.$byutil.postData(this, this.$systemconfig.basePath + '/outpark/outPark2', {code2:this.code2,carNo:this.carNo}, res => {
-                        if(res.success){
-                            this.outParkId = res.data.id;
-                            this.pay();
-                            this.showFlag = false;
-                        }else{
-                            this.$message({
-                                message: res.msg, type: 'error', duration:2000,
-                            });
+                    this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/car/outParkByPhone', {code2:this.code2,carNo:this.carNo}, res => {
+                        if(res.code===0){
+                          this.statisticData = res.data;
+                          this.outParkId = this.statisticData.id;
                         }
-
                     })
                 }else{
                     this.$message({
                         message: '璇疯緭鍏ユ墜鏈哄彿',
                         type: 'error',
-                        duration:2000,
                     });
                 }
-
             },
         }
     }
@@ -245,4 +245,21 @@
     .weizhang-main-bootom{
         margin-top: 0.333rem  /* 25/75 */;
     }
+    .formLabel{
+      ::v-deep .el-form-item__label{
+        font-size: 18px;
+      }
+      ::v-deep el-input{
+        border: solid 1px #ccc!important;
+
+      }
+
+    }
+    .carSearch{
+      border:solid 1px #ccc;
+      margin-top: 15%;
+      border-radius: 4%;
+      box-shadow: 0px 0px 0px 10px;
+
+    }
 </style>
diff --git a/src/components/page/Index3.vue b/src/components/page/Index3.vue
deleted file mode 100644
index b6c6baf..0000000
--- a/src/components/page/Index3.vue
+++ /dev/null
@@ -1,195 +0,0 @@
-<template>
-    <div class="weizhang-box">
-        <!--<div class="weizhang-header">-->
-            <!--<div class="iconfont leftjiantou">&#xe606;</div>-->
-            <!--<div class="text"><h1>宄板嘲鐭垮尯缁煎悎琛屾斂鎵ф硶灞�</h1></div>-->
-            <!--<div class="right"></div>-->
-        <!--</div>-->
-        <div class="weizhang-main-box">
-            <div class="weizhang-main-top">
-                <img class="logoPhone" src="../../assets/images/logoImg.png" alt="">
-                <!--<span class="money">锟{this.statisticData.price}}</span>-->
-                <span class="weizhang">鏃犵墝鍋滆溅</span>
-            </div>
-            <div class="weizhang-main-bootom">
-                <div class="weizhang-main-form">
-                    <el-form label-width="100px" :model="statisticData" label-position="left">
-                        <el-form-item label="璇疯緭鍏ユ墜鏈哄彿" style="margin-left: 5px;">
-                            <el-input v-model="statisticData.carNo" placeholder="璇疯緭鍏ユ墜鏈哄彿"></el-input>
-                        </el-form-item>
-                        <el-form-item style="display: flex;justify-content: center;margin-top: 4.498vh" label-width="0">
-                            <el-button class="jiaofei-btn" type="primary" @click="pay()" v-show="showFlag">纭杩涘叆</el-button>
-                        </el-form-item>
-                    </el-form>
-                </div>
-            </div>
-        </div>
-
-    </div>
-</template>
-
-<script>
-    export default {
-        name: 'dashboard',
-        data() {
-            return {
-                outParkId:"",
-                statisticData:{
-                    carNo:""
-                },
-                showFlag:true,
-                status3:0,
-                code2:"",
-            }
-        },
-        created(){
-            var url = window.location.href;
-            var cs = url.split('?')[1];
-            var cs_arr = cs.split('&');
-            var cs={};
-            for(var i=0;i<cs_arr.length;i++){
-                cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1]
-            }
-            this.code2 = cs.code;
-            //this.outParkId = cs.code;
-            // this.$byutil.postData(this, this.$systemconfig.basePath + '/outPark/findByBarrierCode', {code:cs.code}, res => {
-            //     this.statisticData = res.obj;
-            //     this.outParkId = this.statisticData.id;
-            //     this.status3 = this.statisticData.status3;
-            //     if(this.status3==1){
-            //         this.$message({
-            //             message: '鎮ㄦ湁杩濈珷鏈鐞嗭紝璇峰厛澶勭悊鎴栬仈绯诲仠杞﹀満绠$悊浜哄憳',
-            //             type: 'error',
-            //             duration:5000,
-            //         });
-            //     }
-            // })
-        },
-        methods: {
-            pay(){
-                if(this.statisticData.carNo){
-                    this.$byutil.postData(this, this.$systemconfig.basePath + '/outPark/enterPark2', {code2:this.code2,carNo:this.statisticData.carNo}, res => {
-                        this.$message({
-                            message: '璇锋眰鎴愬姛',
-                            type: 'success',
-                            duration:5000,
-                        });
-                        this.showFlag = false;
-                    })
-                }else{
-                    this.$message({
-                        message: '璇疯緭鍏ユ墜鏈哄彿',
-                        type: 'error',
-                        duration:2000,
-                    });
-                }
-                // if(this.status3==1){
-                //     this.$message({
-                //         message: '鎮ㄦ湁杩濈珷鏈鐞嗭紝璇峰厛澶勭悊鎴栬仈绯诲仠杞﹀満绠$悊浜哄憳',
-                //         type: 'error',
-                //         duration:5000,
-                //     });
-                //     return;
-                // }
-                // this.$byutil.postData(this, this.$systemconfig.basePath + '/ffPay/park', {id:this.outParkId}, res => {
-                //     this.$message({
-                //         message: '10绉掑悗鑷姩璺宠浆鍒版敮浠橀〉闈紝闃叉鍐呭缃戞暟鎹悓姝ュ欢杩燂紝璇风◢绛�',
-                //         type: 'success',
-                //         duration:10000,
-                //     });
-                //     setTimeout(function(){window.location.href = res.obj;},10000);
-                //     this.showFlag = false;
-                // })
-            }
-        }
-    }
-
-</script>
-
-
-<style lang="scss">
-    .weizhang-main-bootom{
-    .el-input__inner{
-        border:none;
-    }
-    .el-form-item__label{
-        color: #999999;
-    }
-    }
-
-</style>
-<style lang="scss" scoped>
-    h1,h2,h3,h4,h5{
-        font-family: '鑻规柟 涓瓑';
-        font-weight: normal;
-    }
-    .weizhang-header{
-        display: flex;
-        height: 12.8vw  /* 96/7.5 */;
-        align-items: center;
-        border-bottom:1px solid rgba(154,154,154,0.2);
-    .text{
-        flex: 1;
-        text-align: center;
-    h1{
-        font-size: 2.699vh  /* 36/13.34 */;
-    }
-    }
-    .right{
-        width: 6.747vh  /* 90/13.34 */;
-    }
-    .leftjiantou{
-        font-size: 5.33vw;
-        width: 6.747vh  /* 90/13.34 */;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-    }
-    }
-    .weizhang-main-box{
-        width: 100%;
-        display: flex;
-        flex-direction: column;
-        padding:5.33vw  /* 40/7.5 */;
-    }
-    .weizhang-main-top{
-        height: 22.489vh  /* 300/13.34 */;
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        align-items: center;
-    .money{
-        font-size: 6.93vw  /* 52/7.5 */;
-        font-weight: 550;
-    }
-    .weizhang{
-        font-size: 4.8vw  /* 36/7.5 */;
-        margin-top:1.33vw  /* 10/7.5 */;
-    }
-    }
-    .weizhang-main-form{
-    }
-    .weizhang-tiaokuan{
-        margin-top: 2.67vw  /* 20/7.5 */;
-    h1{
-        font-size:3.2vw  /* 24/7.5 */;
-        color: #999999;
-        text-indent: 2.5em;
-        line-height: 2;
-    }
-    }
-    .jiaofei-btn{
-        width: 64.53vw  /* 484/7.5 */;
-        border-radius: 5.33vw  /* 40/7.5 */;
-        background-image: linear-gradient(to right,#33b1fe,#0679dc);
-    }
-
-    .logoPhone{
-        margin-top: 0.67vw;
-        width: 20vw  /* 180/7.5 */;
-        height: 20vw  /* 180/7.5 */;
-    }
-    .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
-        margin-bottom: 10px;
-    }
-</style>
diff --git a/src/components/page/Index4.vue b/src/components/page/Index4.vue
new file mode 100644
index 0000000..081de05
--- /dev/null
+++ b/src/components/page/Index4.vue
@@ -0,0 +1,198 @@
+<template>
+    <div class="weizhang-box">
+        <!--<div class="weizhang-header">-->
+            <!--<div class="iconfont leftjiantou">&#xe606;</div>-->
+            <!--<div class="text"><h1>宄板嘲鐭垮尯缁煎悎琛屾斂鎵ф硶灞�</h1></div>-->
+            <!--<div class="right"></div>-->
+        <!--</div>-->
+        <div class="weizhang-main-box">
+            <div class="weizhang-main-top">
+                <img class="logoPhone" src="../../assets/images/logoImg.png" alt="">
+                <span class="weizhang">鏃犵墝杞﹁締鍏ュ満</span>
+
+            </div>
+            <div class="weizhang-main-bootom">
+                <div class="weizhang-main-form">
+                    <el-form label-width="80px" :model="statisticData" label-position="left">
+                        <el-form-item label="鍋滆溅鍦�:" style="margin-left: 25px;">
+                            {{this.statisticData.parkName}}
+                        </el-form-item>
+                        <el-form-item label="閬撻椄:" style="margin-left: 25px;">
+                            {{this.statisticData.name}}
+                        </el-form-item>
+                      <el-form-item label="鎵嬫満鍙�:" style="margin-left: 25px;">
+                        <el-input v-model="enterPark.carNo"></el-input>
+                      </el-form-item>
+                        <el-form-item class="weizhang-footer-box" style="display: flex;justify-content: center;margin-top: 5.498vh" label-width="0" v-if="statisticData.type==1">
+                            <el-button class="jiaofei-btn" type="primary" @click="pay()" :loading="payFlag">杩涘満</el-button>
+                        </el-form-item>
+                    </el-form>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'dashboard',
+        data() {
+            return {
+                payFlag:false,
+                outParkId:"",
+                statisticData:{
+
+                },
+                enterPark:{
+                  barrierId:"",
+                  carNo:"",
+                  parkId:"",
+                },
+                showFlag:true,
+                showFlag2:true,
+                status3:0,
+                carNo:"",
+                code2:""
+            }
+        },
+        created(){
+            var url = window.location.href;
+            var cs = url.split('?')[1];
+            var cs_arr = cs.split('&');
+            var cs={};
+            for(var i=0;i<cs_arr.length;i++){
+                cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1]
+            }
+            this.code2 = cs.code;
+            this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/barrier/getByCode', {code:cs.code}, res => {
+                this.statisticData = res.data;
+            })
+        },
+        methods: {
+            pay(){
+              if(this.enterPark.carNo === null || this.enterPark.carNo === ""){
+                this.$message.error("璇峰~鍐欐墜鏈哄彿");
+                return;
+              }
+              this.enterPark.parkId = this.statisticData.parkId,
+              this.enterPark.barrierId = this.statisticData.id,
+                this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/car/inParkByPhone', this.enterPark, res => {
+                  if(res.code===0){
+                    this.$message.success("鎿嶄綔鎴愬姛");
+                  }else {
+                    this.$message.error(res.msg);
+                  }
+                })
+            },
+        }
+    }
+
+</script>
+
+
+<style lang="scss">
+    .weizhang-main-bootom{
+        .el-input__inner{
+            border:none;
+        }
+        .el-form-item__label{
+            color: #000;
+            font-weight: 600;
+        }
+    }
+    .weizhang-footer-box{
+        .el-form-item__content{
+            width: 100%;
+            display: flex;
+            justify-content: center;
+        }
+        .el-button--small{
+            padding: 11px 15px;
+            font-size: 0.347rem  /* 26/75 */;
+        }
+    }
+
+</style>
+<style lang="scss" scoped>
+    h1,h2,h3,h4,h5{
+        font-family: '鑻规柟 涓瓑';
+        font-weight: normal;
+    }
+    .weizhang-header{
+        display: flex;
+        height: 12.8vw  /* 96/7.5 */;
+        align-items: center;
+        border-bottom:1px solid rgba(154,154,154,0.2);
+    .text{
+        flex: 1;
+        text-align: center;
+    h1{
+        font-size: 2.699vh  /* 36/13.34 */;
+    }
+    }
+    .right{
+        width: 6.747vh  /* 90/13.34 */;
+    }
+    .leftjiantou{
+        font-size: 5.33vw;
+        width: 6.747vh  /* 90/13.34 */;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+    }
+    }
+    .weizhang-main-box{
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        padding:5.33vw  /* 40/7.5 */;
+    }
+    .weizhang-main-top{
+        height: 22.489vh  /* 300/13.34 */;
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        border-bottom: 1px solid #f0f0f0;
+    .money{
+        font-size: 6.93vw  /* 52/7.5 */;
+        font-weight: 550;
+        color: #000;
+    }
+    .weizhang{
+        font-size: 0.4rem  /* 30/75 */;
+        line-height: 2;
+        font-weight: normal;
+        margin-top:1.33vw  /* 10/7.5 */;
+        color: #000;
+    }
+    }
+    .weizhang-main-form{
+    }
+    .weizhang-tiaokuan{
+        margin-top: 2.67vw  /* 20/7.5 */;
+    h1{
+        font-size:3.2vw  /* 24/7.5 */;
+        color: #999999;
+        text-indent: 2.5em;
+        line-height: 2;
+    }
+    }
+    .jiaofei-btn{
+        width: 80%;
+        border-radius: 5.33vw  /* 40/7.5 */;
+        background-image: linear-gradient(to right,#33b1fe,#0679dc);
+    }
+
+    .logoPhone{
+        margin-top: 0.67vw;
+        width: 1.333rem  /* 100/75 */;
+        height: 1.333rem  /* 100/75 */;
+    }
+    .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
+        margin-bottom: 10px;
+    }
+    .weizhang-main-bootom{
+        margin-top: 0.333rem  /* 25/75 */;
+    }
+</style>
diff --git a/src/components/page/IndexTest.vue b/src/components/page/IndexTest.vue
index a19a9c0..e4fa7b8 100644
--- a/src/components/page/IndexTest.vue
+++ b/src/components/page/IndexTest.vue
@@ -107,13 +107,10 @@
                     return;
                 }
                 this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/api/park', {id:this.outParkId}, res => {
-                    this.$message({
-                        message: '2绉掑悗鑷姩璺宠浆鍒版敮浠橀〉闈紝闃叉鍐呭缃戞暟鎹悓姝ュ欢杩燂紝璇风◢绛�',
-                        type: 'success',
-                        duration:2000,
-                    });
-                  setTimeout(function(){window.location.href = res.msg;},2000);
-                    this.showFlag = false;
+                  if(res.code === 0){
+                    window.location.href = res.msg
+                    this.showFlag = false
+                  }
                 })
             },
             noCarOut(){
diff --git a/src/components/page/Login.vue b/src/components/page/Login.vue
index 691914d..2ecaa84 100644
--- a/src/components/page/Login.vue
+++ b/src/components/page/Login.vue
@@ -48,7 +48,7 @@
             submitForm(formName) {
                 this.$refs[formName].validate((valid) => {
                     if (valid) {
-                        var url = this.$systemconfig.basePath + '/user/login';
+                        var url = this.$systemconfig.basePath + '/ffzf/user/login';
                         this.$byutil.postData(this,url,this.ruleForm,res=>{
                             let data = res.data;
                           if (data) {
diff --git a/src/components/page/costRule/index.vue b/src/components/page/costRule/index.vue
index 4dce309..16a8784 100644
--- a/src/components/page/costRule/index.vue
+++ b/src/components/page/costRule/index.vue
@@ -12,7 +12,7 @@
             </el-form>
         </div>
 
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
+        <el-table :data="pageData.rows"  :height="tableHeight" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
             <el-table-column type="index" width="50" label="搴忓彿" align="center"> </el-table-column>
             <el-table-column prop="parkName" label="鍋滆溅鍦�" align="center" width="150"></el-table-column>
             <el-table-column prop="armyCar" label="鍐涜溅鏄惁鍏嶈垂" align="center" width="100">
@@ -173,15 +173,17 @@
                     freeTime:0,
                     parkId:null
                 },
-                urlPath:this.$systemconfig.basePath + '/rule/',
+                urlPath:this.$systemconfig.basePath + '/ffzf/rule/',
                 table1:[],
+               tableHeight:500,
             }
         },
         mounted() {
             this.loadData();
-            this.$byutil.postData(this, this.$systemconfig.basePath+'/park/findAll', this.formData, res => {
+            this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
                 this.table1 = res.data;
             })
+          this.tableHeight = window.innerHeight - 260
         },
         methods: {
             onSave(){
diff --git a/src/components/page/enterpark/index.vue b/src/components/page/enterpark/index.vue
new file mode 100644
index 0000000..485e1b7
--- /dev/null
+++ b/src/components/page/enterpark/index.vue
@@ -0,0 +1,145 @@
+<template>
+  <div class="mod-config">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="杞︾墝鍙�">
+          <el-input v-model="searchForm.carNo" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="鍋滆溅鍦�">
+          <el-select v-model="searchForm.parkId" clearable>
+            <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id" ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="閫夋嫨鍏ュ満鏃堕棿">
+          <div class="date-box">
+            <el-date-picker type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
+                            v-model="searchForm.date" placeholder="">
+            </el-date-picker>
+          </div>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button>
+        </el-form-item>
+      </el-form>
+
+      <div class="avue-crud">
+        <el-table
+              :height="tableHeight"
+               :data="pageData.rows"
+                border
+               v-loading="pageData.isLoading">
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            align="center">
+          </el-table-column>
+          <el-table-column label="鍏ュ満鍥�" width="200" header-align="center" align="center">
+            <template slot-scope="scope">
+              <!-- trigger(瑙﹀彂鏂瑰紡)銆乸lacement(鍑虹幇浣嶇疆) -->
+              <el-popover trigger="hover" placement="right" v-if="scope.row.imgPath != null">
+                <img :src="scope.row.imgPath"  style="height: 800px;width: 800px"/>
+                <img slot="reference" :src="scope.row.imgPath" :alt="scope.row.imgPath" style="height: 50px;width: 150px">
+              </el-popover>
+            </template>
+          </el-table-column>
+            <el-table-column
+                    prop="carNo"
+                    header-align="center"
+                    align="center"
+                    label="杞︾墝鍙�">
+            </el-table-column>
+            <el-table-column
+                    prop="parkName"
+                    header-align="center"
+                    align="center"
+                    label="鍋滆溅鍦�">
+            </el-table-column>
+            <el-table-column
+              prop="createTime"
+              header-align="center"
+              align="center"
+              label="鍏ュ満鏃堕棿">
+            </el-table-column>
+            <el-table-column
+                    prop="status"
+                    header-align="center"
+                    align="center"
+                    label="鍙戠幇杩濈珷">
+              <template slot-scope="scope">
+                <p v-if="scope.row.status==0">鏈繚绔�</p>
+                <p v-if="scope.row.status==1" style="color: red">鏈夎繚绔�</p>
+              </template>
+            </el-table-column>
+        </el-table>
+        <el-pagination background @size-change="onPageSizeChange" @current-change="onCurrentPageChange" :current-page="pageData.currentPage" :page-size="pageData.pageSize" :total="pageData.total" style="float: right"></el-pagination>
+
+      </div>
+
+  </div>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        tableHeight:500,
+        dataForm: {
+          key: ''
+        },
+        table1:[],
+        pageData: this.$byutil.defaultPageData(),
+        searchForm: {
+          current: this.pageIndex,
+          size: this.pageSize,
+          carNo:'',
+          parkId:'',
+          date: new Date,
+        },
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 100,
+        totalPage: 0,
+        dataListLoading: false,
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+    },
+    created () {
+      this.getAllPark()
+      this.getDataList()
+      this.tableHeight = window.innerHeight - 260
+    },
+    computed: {
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁鍒楄〃
+      getDataList () {
+        this.dataListLoading = true
+        this.searchForm.current = this.pageIndex
+        this.searchForm.size = this.pageSize
+        this.$byutil.loadPageData(this, this.$systemconfig.basePath+'/ffzf/enterpark/findPage', this.searchForm);
+        this.dataListLoading = false
+      },
+      getAllPark(){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
+          this.table1 = res.data;
+        })
+      },
+      onPageSizeChange(val) {
+        this.pageData.pageSize = val;
+        this.loadData();
+      },
+      onCurrentPageChange(val) {
+        this.pageData.page = val;
+        this.loadData();
+      },
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.fenye-box{
+  width: calc(70% - 20px);
+}
+</style>
diff --git a/src/components/page/orderRecord/index.vue b/src/components/page/orderRecord/index.vue
index 666e134..f7cbed2 100644
--- a/src/components/page/orderRecord/index.vue
+++ b/src/components/page/orderRecord/index.vue
@@ -16,7 +16,6 @@
               </el-form-item>
                 <el-form-item>
                     <el-button type="primary" size="small" @click="onSearch" icon="el-icon-search">鏌ヨ</el-button>
-                    <el-button type="primary" size="small" @click="onSearch2" icon="el-icon-search">鏌ヨ</el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -48,14 +47,14 @@
                   orderNum:'',
                   orderMoney:''
                 },
-                urlPath:this.$systemconfig.basePath + '/orderrecord/',
+                urlPath:this.$systemconfig.basePath + '/ffzf/orderrecord/',
                 table1:[],
                 table2:[],
             }
         },
         mounted() {
             this.defaultDate();
-            this.$byutil.postData(this, this.$systemconfig.basePath+'/park/findAll', this.formData, res => {
+            this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
                 this.table1 = res.data;
             })
         },
@@ -75,11 +74,6 @@
             onSearch() {
                 this.loadData();
             },
-          onSearch2() {
-            this.$byutil.postData(this, this.urlPath+'getById/1000', null,res => {
-              console.log(res.data)
-            });
-          },
           //璁剧疆榛樿鏃ユ湡
           defaultDate(){
             //鑾峰彇鏂扮殑鏃堕棿
diff --git a/src/components/page/outPark/AddDialog.vue b/src/components/page/outPark/AddDialog.vue
deleted file mode 100644
index 4f5edf5..0000000
--- a/src/components/page/outPark/AddDialog.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-<template>
-    <el-dialog :title="dialogTitle" :visible.sync="dialogVisible">
-        <el-form :model="formData" ref="formData">
-            <el-form-item label="鐧诲綍鍚�" label-width="120px" prop="loginName"
-                          :rules="[{required: true, message: '璇疯緭鍏ョ櫥褰曞悕', trigger: 'blur'}]">
-                <el-input v-model="formData.loginName" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="濮撳悕" label-width="120px" prop="name"
-                          :rules="[{required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'blur'}]">
-                <el-input v-model="formData.name" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="鎵嬫満鍙�" prop="phone" label-width="120px"
-                          :rules="[{ required: true, message: '鎵嬫満鍙蜂笉鑳戒负绌�'},{ type: 'number', message: '鎵嬫満鍙峰繀椤讳负鏁板瓧'}]">
-                <el-input v-model.number="formData.phone" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="瑙掕壊" label-width="120px" prop="roleIds" :rules="[{required: true, message: '璇烽�夋嫨瑙掕壊', trigger: 'blur'}]">
-                <select-role-widget ref="selectRoleWidget" @backData="rolesBack" ></select-role-widget>
-            </el-form-item>
-            <el-form-item label="閮ㄩ棬" label-width="120px" prop="deptId" :rules="[{required: false, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'blur'}]">
-                <select-department-widget ref="selectDepartmentWidget" @backData="deptBack" ></select-department-widget>
-            </el-form-item>
-            <el-form-item label="鎵�灞炲叕鍙�" label-width="120px" prop="roleIds" :rules="[{required: false, message: '鏂板鎶曞叆鍝佷紒涓氱鐞嗗憳鎴栦腑鑽夎嵂浼佷笟绠$悊鍛樹娇鐢�'}]">
-                <select-zcy-and-trp-company-widget ref="SelectZcyAndTrpCompanyWidget" @backData="companyBack"></select-zcy-and-trp-company-widget>
-            </el-form-item>
-            <el-form-item label="鎵�鍦ㄥ湴鍖�" label-width="120px" prop="area"
-                          :rules="[{required: true, message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�', trigger: 'blur'}]">
-                <v-distpicker  :province="formData.province"
-                               :city="formData.city"
-                               :area="formData.area"
-                               @province="onChangeProvince" @city="onChangeCity" @area="onChangeArea">
-                </v-distpicker>
-            </el-form-item>
-            <el-form-item label="澶囨敞" label-width="120px" prop="description"
-                          :rules="[{required: false, message: '璇疯緭鍏ュ娉�', trigger: 'blur'}]">
-                <el-input v-model="formData.description" auto-complete="off"></el-input>
-            </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-            <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="onSave">纭� 瀹�</el-button>
-        </div>
-    </el-dialog>
-</template>
-
-<script>
-    export default {
-        name: "AddDialog",
-        data() {
-            return {
-                pageConfig: {
-                    saveUrl: this.$systemconfig.basePath + '/security/user/save',
-                    findRoles:this.$systemconfig.basePath+'/security/user/findRoles'
-                },
-                // 绐椾綋鏄剧ず鎴栭殣钘�
-                dialogVisible: false,
-                dialogTitle: '鏂板',
-                //琛ㄥ崟鏁版嵁
-                formData: {
-                    name: '',
-                    loginName: '',
-                    phone: '',
-                    roleIds: '',
-                    description: '',
-                    deptId: '',
-                    companyId:'',
-                    province:'',
-                    city:'',
-                    area:'',
-                }
-            }
-        },
-        mounted() {
-        },
-        methods: {
-            // 鏈獥浣撴樉绀烘垨闅愯棌
-            showDialog(val) {
-                this.dialogVisible = val;
-            },
-            //淇敼
-            initData(row) {
-                this.dialogTitle = '淇敼';
-                this.formData.id = row.id;
-                this.formData.name = row.name;
-                this.formData.loginName = row.loginName;
-                this.formData.phone = Number(row.phone);
-                this.formData.description = row.description;
-                this.formData.deptId = row.deptId;
-                setTimeout(()=>{
-                    this.$refs.selectDepartmentWidget.initData(row.deptId);
-                },500);
-                this.$byutil.postData(this,this.pageConfig.findRoles,{userId:row.id},res=>{
-                    let roleIds = []
-                    for (let i in res.obj) {
-                        roleIds.push(res.obj[i].roleId)
-                    }
-                    this.formData.roleIds = roleIds;
-                    setTimeout(()=>{
-                        this.$refs.selectRoleWidget.initData(roleIds);
-                    },500);
-
-                });
-                this.formData.province = row.province;
-                this.formData.city = row.city;
-                this.formData.area = row.area;
-            },
-            rolesBack(val){
-                this.formData.roleIds = val;
-            },
-            companyBack(val){
-                this.formData.companyId = val;
-            },
-            deptBack(val){
-                this.formData.deptId = val;
-            },
-
-            // 淇濆瓨
-            onSave() {
-                // if(this.formData.province == ''|| this.formData.city == ''||this.formData.area == ''){
-                //     this.$message({message: '璇峰皢鐪佸競鍘�/鍖哄~鍐欏畬鏁�', type: 'fail'});
-                //     return;
-                // }
-                this.formData.roleIds = this.formData.roleIds.join(",");
-                this.$refs['formData'].validate((valid) => {
-                    if (valid) {
-                        this.$byutil.postData(this, this.pageConfig.saveUrl, this.formData, response => {
-                            this.$refs['formData'].resetFields();
-                            this.showDialog(false);
-                            this.$emit('reloadData');
-                            this.$message({message: '鎿嶄綔鎴愬姛', type: 'success'});
-
-                        })
-                        // })
-                    } else {
-                        return false;
-                    }
-                });
-            },
-
-            /********************浠ヤ笅鏄渷甯傚幙涓夌骇鑱斿姩缁勪欢鏂规硶*********************/
-            onChangeProvince(a){
-                this.formData.province = a.value;
-            },
-            onChangeCity(a){
-                this.formData.city = a.value;
-            },
-            onChangeArea(a){
-                this.formData.area = a.value;
-            },
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/src/components/page/outPark/index.vue b/src/components/page/outPark/index.vue
index aabbb65..c316190 100644
--- a/src/components/page/outPark/index.vue
+++ b/src/components/page/outPark/index.vue
@@ -1,226 +1,179 @@
 <template>
-    <section>
-        <el-card class="box-card toolCard">
-            <div slot="header" class="clearfix">
-                <!--鏄剧ず瀵艰埅-->
-                <el-breadcrumb separator="/">
-                    <el-breadcrumb-item :to="{ path: '/' }">棣栭〉</el-breadcrumb-item>
-                    <el-breadcrumb-item>
-                        <a href="javascript:void(0);">绯荤粺绠$悊</a>
-                    </el-breadcrumb-item>
-                    <el-breadcrumb-item>鐢ㄦ埛绠$悊</el-breadcrumb-item>
-                </el-breadcrumb>
-            </div>
-            <!--<div class="text item">-->
-            <!--宸ュ叿鏉�-->
-            <!--<section class="toolbar">-->
+  <div class="mod-config">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="杞︾墝鍙�">
+          <el-input v-model="searchForm.carNo" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="鏀粯鐮�">
+          <el-input v-model="searchForm.payCode" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="鍋滆溅鍦�">
+          <el-select v-model="searchForm.parkId" clearable>
+            <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id" ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="閫夋嫨鍑哄満鏃堕棿">
+          <div class="date-box">
+            <el-date-picker type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
+                            v-model="searchForm.date" placeholder="">
+            </el-date-picker>
+          </div>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button>
+        </el-form-item>
+      </el-form>
 
-            <!--</section>-->
-            <el-form :inline="true" :model="searchForm">
-                <el-form-item label="鍚嶇О">
-                    <el-input v-model="searchForm.name" placeholder="鍚嶇О"></el-input>
-                </el-form-item>
-                <el-form-item label="鎵嬫満鍙�">
-                    <el-input v-model="searchForm.phone" placeholder="鎵嬫満鍙�"></el-input>
-                </el-form-item>
-                <el-form-item>
-                    <el-button type="primary" size="small" @click="onSearch" icon="el-icon-search">鏌ヨ</el-button>
-                    <el-button type="primary" size="small" @click="onAdd" icon="el-icon-plus">澧炲姞</el-button>
-                    <el-button type="primary" size="small" @click="onInitPassword" icon="el-icon-refresh">鍒濆鍖栧瘑鐮�</el-button>
-                    <el-button type="primary" size="small" @click="onSetUserImage" icon="el-icon-picture-outline">璁剧疆澶村儚</el-button>
-                    <el-button type="primary" size="small" @click="onChangeDept" icon="el-icon-picture-outline">璋冩崲閮ㄩ棬</el-button>
-                </el-form-item>
-            </el-form>
-
-            <!--</div>-->
-        </el-card>
-
-        <!--鍒楄〃鏁版嵁-->
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" :element-loading-text="pageData.loadingText"
-                  border
-                  :height="pageConfig.maxHeight"
-                  stripe  tooltip-effect="dark" style="width:100%; height:100%" @selection-change="onSelectionChange" @row-click="clickRow"
-                  ref="mulTable">
-            <!--<el-table-column-->
-            <!--type="selection"-->
-            <!--width="50">
-    </el-table-column>-->
-            <el-table-column prop="loginName" label="鐧诲綍鍚�">
+      <div class="avue-crud">
+        <el-table
+            :height="tableHeight"
+            :data="pageData.rows"
+            border
+            v-loading="pageData.isLoading">
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            align="center">
+          </el-table-column>
+          <el-table-column label="鍑哄満鍥�" width="200" header-align="center" align="center">
+            <template slot-scope="scope">
+              <!-- trigger(瑙﹀彂鏂瑰紡)銆乸lacement(鍑虹幇浣嶇疆) -->
+              <el-popover trigger="hover" placement="right" v-if="scope.row.imgPath != null">
+                <img :src="scope.row.imgPath"  style="height: 800px;width: 800px"/>
+                <img slot="reference" :src="scope.row.imgPath" :alt="scope.row.imgPath" style="height: 50px;width: 150px">
+              </el-popover>
+            </template>
+          </el-table-column>
+            <el-table-column
+                    prop="carNo"
+                    header-align="center"
+                    align="center"
+                    label="杞︾墝鍙�">
             </el-table-column>
-            <el-table-column prop="name" label="濮撳悕">
+            <el-table-column
+                    prop="enterTime"
+                    header-align="center"
+                    align="center"
+                    label="鍏ュ満鏃堕棿">
             </el-table-column>
-            <el-table-column prop="sexStr" label="鎬у埆鍚�">
+          <el-table-column
+            prop="createTime"
+            header-align="center"
+            align="center"
+            label="鍑哄満鏃堕棿">
+          </el-table-column>
+          <el-table-column
+            prop="timeStr"
+            header-align="center"
+            align="center"
+            label="鍋滆溅鏃堕暱">
+          </el-table-column>
+            <el-table-column
+                    prop="parkName"
+                    header-align="center"
+                    align="center"
+                    label="鍋滆溅鍦�">
             </el-table-column>
-            <el-table-column prop="age" label="骞撮緞">
+            <el-table-column
+                    prop="payCode"
+                    header-align="center"
+                    align="center"
+                    label="鏀粯鐮�">
             </el-table-column>
-            <el-table-column prop="deptName" label="鎵�鍦ㄩ儴闂�">
+            <el-table-column
+                    prop="price"
+                    width="100px"
+                    header-align="center"
+                    align="center"
+                    label="鍋滆溅閲戦(鍏�)">
             </el-table-column>
-            <el-table-column prop="post" label="鑱屼綅">
+            <el-table-column
+                    prop="status"
+                    width="120px"
+                    header-align="center"
+                    align="center"
+                    label="缂磋垂鐘舵��">
+              <template slot-scope="scope">
+                <p v-if="scope.row.status==0">鏈即璐�</p>
+                <p v-if="scope.row.status==1">宸茬即璐�</p>
+              </template>
             </el-table-column>
-            <el-table-column prop="phone" label="鎵嬫満鍙�">
-            </el-table-column>
-            <el-table-column prop="roleNames" label="瑙掕壊">
-            </el-table-column>
-            <el-table-column prop="status" label="鐘舵��">
-            </el-table-column>
-            <el-table-column prop="lastLoginTime" label="鏈�杩戠櫥褰曟椂闂�">
-            </el-table-column>
-
-            <el-table-column label="鎿嶄綔" fixed="right" width="250">
-                <template slot-scope="scope">
-                    <el-button
-                            size="mini"
-                            @click="onEdit(scope.$index, scope.row)">缂栬緫
-                    </el-button>
-                    <el-button
-                            size="mini"
-                            type="danger"
-                            @click="onStop(scope.$index, scope.row)">鍋滅敤
-                    </el-button>
-                    <el-button
-                            size="mini"
-                            @click="onStart(scope.$index, scope.row)">鍚敤
-                    </el-button>
-                </template>
+            <el-table-column
+                    prop="status3"
+                    width="120px"
+                    header-align="center"
+                    align="center"
+                    label="杩濈珷鐘舵��">
+              <template slot-scope="scope">
+                <p v-if="scope.row.status3==0">鏈繚绔�</p>
+                <p v-if="scope.row.status3==1" style="color: red">鏈夎繚绔�</p>
+              </template>
             </el-table-column>
         </el-table>
-        <!--鍒嗛〉淇℃伅-->
-        <el-pagination
-                background
-                @size-change="onPageSizeChange"
-                @current-change="onCurrentPageChange"
-                :current-page="pageData.currentPage"
-                :page-sizes="[10, 20, 30, 40, 50, 100, 200]"
-                :page-size="pageData.pageSize"
-                layout="total, sizes, jumper, prev, pager, next"
-                :total="pageData.total">
-        </el-pagination>
-    </section>
+        <el-pagination background @size-change="onPageSizeChange" @current-change="onCurrentPageChange" :current-page="pageData.currentPage" :page-size="pageData.pageSize" :total="pageData.total" style="float: right"></el-pagination>
+
+      </div>
+  </div>
 </template>
 
 <script>
-    // 瀵煎叆鏂板缁勪欢
-    import addDialog from './AddDialog'
-    export default {
-        name: "UserIndex",
-        data: function () {
-            return {
-                pageConfig: {
-                    pageDataUrl: this.$systemconfig.basePath + '/security/user/list',
-                    stopUrl: this.$systemconfig.basePath + '/security/user/stop',
-                    startUrl: this.$systemconfig.basePath + '/security/user/start',
-                    initPasswordUrl:this.$systemconfig.basePath+'/security/user/restoreInitialPassword',
-                },
-                // 鏌ヨ鏁版嵁
-                searchForm: {
-                    name: ''
-                },
-                // 椤甸潰鏁版嵁
-                pageData: this.$byutil.defaultPageData()
-            }
+  export default {
+    data () {
+      return {
+        tableHeight:500,
+        dataForm: {
+          key: ''
         },
-        // 寮曞叆缁勪欢
-        components: {
-            addDialog: addDialog
+        table1:[],
+        pageData: this.$byutil.defaultPageData(),
+        searchForm: {
+          current: this.pageIndex,
+          size: this.pageSize,
+          carNo:'',
+          parkId:'',
+          payCode:'',
+          date: new Date(),
         },
-        // 鎵ц鍒濆鍖栨暟鎹�
-        mounted() {
-            this.$byutil.initTableMaxHeight(this);
-            this.loadData();
-        },
-        // 鏂规硶
-        methods: {
-            //鍔犺浇鏁版嵁
-            loadData() {
-                this.$byutil.loadPageData(this, this.pageConfig.pageDataUrl, this.searchForm);
-            },
-            // 鐐瑰嚮鏌ヨ鎸夐挳
-            onSearch() {
-                this.pageData = this.$byutil.defaultPageData();
-                this.loadData();
-            },
-            // 鐐瑰嚮鏂板鎸夐挳
-            onAdd() {
-                this.$refs.addDialog.showDialog(true);
-            },
-            // 鐐瑰嚮缂栬緫鎸夐挳
-            onEdit(index, row) {
-                this.$refs.addDialog.showDialog(true);
-                //鍒濆鍖栨棫鏁版嵁
-                this.$refs.addDialog.initData(row);
-            },
-            // 鐐瑰嚮鍋滅敤
-            onStop(index, row) {
-                if(row.status == "鍒犻櫎"){
-                    alert("宸茬粡鍋滅敤锛屼笉鑳藉啀娆″仠鐢�");
-                    return;
-                }
-                this.$byutil.stopData(this, this.pageConfig.stopUrl, row);
-            },
-            // 鐐瑰嚮鍚敤
-            onStart(index, row) {
-                if(row.status == "姝e父"){
-                    alert("姝e父鐘舵�侊紝涓嶈兘鍐嶆鍚敤");
-                    return;
-                }
-                this.$byutil.startData(this, this.pageConfig.startUrl, row);
-            },
-            // 澶氶�夋椂
-            onSelectionChange(val) {
-                // this.pageData.multipleSelection = val
-            },
-            // 鍒囨崲姣忛〉鏄剧ず鏉℃暟
-            onPageSizeChange(val) {
-                this.pageData.pageSize = val;
-                this.loadData();
-            },
-            // 璺宠浆椤�
-            onCurrentPageChange(val) {
-                this.pageData.page = val;
-                this.loadData();
-            },
-            //鍗曢��
-            clickRow(val){
-                this.pageData.signSelection = val
-
-            },
-            // 璁剧疆澶村儚
-            onSetUserImage (){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$refs.setUserImageDialog.showDialog(true);
-                this.$refs.setUserImageDialog.initData(row);
-            },
-
-            // 璋冩崲閮ㄩ棬
-            onChangeDept (){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$refs.changeDeptDialog.showDialog(true);
-                this.$refs.changeDeptDialog.initData(row);
-            },
-
-            //鍒濆鍖栧瘑鐮�
-            onInitPassword(){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$byutil.postData(this,this.pageConfig.initPasswordUrl,row,res=>{
-                    this.$alert(row.name+'鍒濆鍖栧瘑鐮佹垚鍔�', {'title': '鎻愮ず','type': 'success','center': true,'showClose': false});
-                })
-            }
-        }
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 100,
+        totalPage: 0,
+        dataListLoading: false,
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+    },
+    created () {
+      this.getAllPark()
+      this.getDataList()
+      this.tableHeight = window.innerHeight - 260
+    },
+    computed: {
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁鍒楄〃
+      getDataList () {
+        this.dataListLoading = true
+        this.searchForm.current = this.pageIndex
+        this.searchForm.size = this.pageSize
+        this.$byutil.loadPageData(this, this.$systemconfig.basePath+'/ffzf/outpark/findPage', this.searchForm);
+        this.dataListLoading = false
+      },
+      getAllPark(){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
+          this.table1 = res.data;
+        })
+      },
+      onPageSizeChange(val) {
+        this.pageData.pageSize = val;
+        this.loadData();
+      },
+      onCurrentPageChange(val) {
+        this.pageData.page = val;
+        this.loadData();
+      },
     }
+  }
 </script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/components/page/park/index.vue b/src/components/page/park/index.vue
index 67f44ad..a22b3c6 100644
--- a/src/components/page/park/index.vue
+++ b/src/components/page/park/index.vue
@@ -83,7 +83,7 @@
                     phone: '',
                     type: '',
                 },
-                urlPath:this.$systemconfig.basePath + '/park/',
+                urlPath:this.$systemconfig.basePath + '/ffzf/park/',
                 id:null,
             }
         },
diff --git a/src/components/page/park/index2.vue b/src/components/page/park/index2.vue
index 7ce2bb3..977c2e5 100644
--- a/src/components/page/park/index2.vue
+++ b/src/components/page/park/index2.vue
@@ -90,7 +90,7 @@
                     ipAddress:'',
                     port:'',
                 },
-                urlPath:this.$systemconfig.basePath + '/barrier/',
+                urlPath:this.$systemconfig.basePath + '/ffzf/barrier/',
             }
         },
         watch:{
diff --git a/src/components/page/parkticket/index.vue b/src/components/page/parkticket/index.vue
new file mode 100644
index 0000000..fce0c41
--- /dev/null
+++ b/src/components/page/parkticket/index.vue
@@ -0,0 +1,210 @@
+<template>
+  <div class="mod-config">
+    <basic-container>
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="杞︾墝鍙�">
+          <el-input v-model="searchForm.carNo" clearable></el-input>
+        </el-form-item>
+<!--        <el-form-item label="鍋滆溅鍦�">-->
+<!--          <el-select v-model="searchForm.parkId" clearable>-->
+<!--            <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id" ></el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button>
+        </el-form-item>
+      </el-form>
+
+      <div class="avue-crud">
+        <el-table
+            :height="tableHeight"
+            :data="pageData.rows"
+            border
+            v-loading="pageData.isLoading">
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            align="center">
+          </el-table-column>
+          <el-table-column label="鍏ュ満鍥�" width="200" header-align="center" align="center">
+            <template slot-scope="scope">
+              <!-- trigger(瑙﹀彂鏂瑰紡)銆乸lacement(鍑虹幇浣嶇疆) -->
+              <el-popover trigger="hover" placement="right" v-if="scope.row.imgInPath != null">
+                <img :src="scope.row.imgInPath"  style="height: 800px;width: 800px"/>
+                <img slot="reference" :src="scope.row.imgInPath" :alt="scope.row.imgInPath" style="height: 50px;width: 150px">
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column label="鍑哄満鍥�" width="200" header-align="center" align="center">
+            <template slot-scope="scope">
+              <!-- trigger(瑙﹀彂鏂瑰紡)銆乸lacement(鍑虹幇浣嶇疆) -->
+              <el-popover trigger="hover" placement="right" v-if="scope.row.imgOutPath != null">
+                <img :src="scope.row.imgOutPath"  style="height: 800px;width: 800px"/>
+                <img slot="reference" :src="scope.row.imgOutPath" :alt="scope.row.imgOutPath" style="height: 50px;width: 150px">
+              </el-popover>
+            </template>
+          </el-table-column>
+            <el-table-column
+                    prop="carNo"
+                    header-align="center"
+                    align="center"
+                    label="杞︾墝鍙�">
+            </el-table-column>
+            <el-table-column
+                    prop="code"
+                    header-align="center"
+                    align="center"
+                    label="璁㈠崟鍙�">
+            </el-table-column>
+          <el-table-column
+            prop="updateTime"
+            header-align="center"
+            align="center"
+            label="寮�绁ㄦ椂闂�">
+          </el-table-column>
+            <el-table-column
+                    prop="money"
+                    header-align="center"
+                    align="center"
+                    width="100px"
+                    label="閲戦">
+            </el-table-column>
+            <el-table-column
+                    prop="payCode"
+                    header-align="center"
+                    align="center"
+                    label="鐢靛瓙缂存鐮�">
+            </el-table-column>
+            <el-table-column
+                    prop="ticketStatus"
+                    header-align="center"
+                    align="center"
+                    width="100px"
+                    label="寮�绁ㄧ姸鎬�">
+              <template slot-scope="scope">
+                <p v-if="scope.row.ticketStatus==2" style="color: red">鏈紑绁�</p>
+                <p v-if="scope.row.ticketStatus==1" >宸插紑绁�</p>
+              </template>
+            </el-table-column>
+          <el-table-column
+                  header-align="center"
+                  align="center"
+                  label="鎿嶄綔">
+            <template slot-scope="scope">
+              <el-button type="text" size="small" icon="el-icon-view" @click="watchTicket(scope.row.fileId)">鏌ョ湅鍙戠エ</el-button>
+              <el-button type="text" size="small" icon="el-icon-download" @click="downTicket(scope.row.fileId)">涓嬭浇鍙戠エ</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background @size-change="onPageSizeChange" @current-change="onCurrentPageChange" :current-page="pageData.currentPage" :page-size="pageData.pageSize" :total="pageData.total" style="float: right"></el-pagination>
+
+      </div>
+
+      <el-dialog append-to-body title="鏌ョ湅鍙戠エ" :visible.sync="imgFlag" width="60%" :close-on-click-modal="closeDialog">
+        <el-image
+          class = "my-img"
+          ref = "myImg"
+          :src="imageUrl"
+          :preview-src-list="srcList">
+        </el-image>
+      </el-dialog>
+
+    </basic-container>
+  </div>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        tableHeight:500,
+        dataForm: {
+          key: ''
+        },
+        table1:[],
+        pageData: this.$byutil.defaultPageData(),
+        searchForm: {
+          carNo:'',
+          parkId:'',
+          type:1,
+          current:this.pageIndex,
+          size:this.pageSize
+        },
+        imageUrl:'',
+        imgFlag:false,
+        srcList:'',
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 50,
+        totalPage: 0,
+        dataListLoading: false,
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+    },
+    created () {
+      this.getDataList()
+      this.getAllPark()
+      this.tableHeight = window.innerHeight - 260
+    },
+    computed: {
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁鍒楄〃
+      getDataList () {
+        this.dataListLoading = true
+        this.searchForm.current = this.pageIndex
+        this.searchForm.size = this.pageSize
+        this.$byutil.loadPageData(this, this.$systemconfig.basePath+'/ffzf/orderrecord/findPage', this.searchForm);
+        this.dataListLoading = false
+      },
+      getAllPark(){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
+          this.table1 = res.data;
+        })
+      },
+      closeDialog(){
+        this.imgFlag = false
+      },
+      watchTicket(fileId){
+        this.imgFlag = true
+        this.imageUrl = "/ffzf/fileinfo/showImgById/"+fileId
+      },
+      downTicket(fileId){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/fileinfo/download/downloadPng', {fileId:fileId}, res => {
+
+        })
+      },
+      onPageSizeChange(val) {
+        this.pageData.pageSize = val;
+        this.loadData();
+      },
+      onCurrentPageChange(val) {
+        this.pageData.page = val;
+        this.loadData();
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+.fenye-box2{
+  width: calc(80% - 20px);
+}
+.per-up{
+  position: relative;
+  .my-img{
+    width: 100px;
+    height: 100px;
+    .el-image__inner{
+      visibility: hidden ;
+    }
+  }
+  .my-pre{
+    position: absolute;
+    margin-left: 111px;
+    margin-top: -156px;
+  }
+}
+</style>
diff --git a/src/components/page/street/index.vue b/src/components/page/street/index.vue
index 230c2ce..2ebc0d9 100644
--- a/src/components/page/street/index.vue
+++ b/src/components/page/street/index.vue
@@ -16,7 +16,7 @@
             </el-form>
         </div>
 
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;margin-top: 10px;">
+        <el-table :data="pageData.rows" :height="tableHeight" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;margin-top: 10px;">
             <el-table-column type="index" width="50" label="搴忓彿" align="center"> </el-table-column>
             <el-table-column prop="name" label="閬撹矾鍚嶇О" align="center"></el-table-column>
             <el-table-column prop="code" label="缂栧彿" align="center"></el-table-column>
@@ -113,6 +113,7 @@
                 searchForm: {
                     type: null
                 },
+                tableHeight:500,
                 pageData: this.$byutil.defaultPageData(),
                 formData: {
                     name: '',
@@ -123,11 +124,12 @@
         },
         mounted() {
             this.loadData();
+            this.tableHeight = window.innerHeight - 260
         },
         methods: {
             onSave3(){
                 for(var i=0;i<this.streetIds.length;i++){
-                    this.$byutil.postData(this, this.$systemconfig.basePath + '/street/save2', {roadId:this.roadId,streetId:this.streetIds[i]}, res => {
+                    this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/street/save2', {roadId:this.roadId,streetId:this.streetIds[i]}, res => {
                         this.streetEdit(this.roadId);
                     })
                 }
@@ -149,21 +151,21 @@
                 this.loadSelect();
             },
             loadSelect(){
-                this.$byutil.postData(this, this.$systemconfig.basePath + '/street/findList', {}, res => {
+                this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/street/findList', {}, res => {
                     this.select3 = res.data.list2
                 })
             },
             streetEdit(id){
                 this.flag2 = true;
                 this.roadId = id;
-                this.$byutil.postData(this, this.$systemconfig.basePath + '/street/findById', {id:id,type:0}, res => {
+                this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/street/findById', {id:id,type:0}, res => {
                     this.table2 = res.data;
                 })
             },
             onSave(){
                 this.$refs['formData'].validate((valid) => {
                     if (valid) {
-                        this.$byutil.postData(this, this.$systemconfig.basePath + '/street/save', this.formData, res => {
+                        this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/street/save', this.formData, res => {
                             this.$refs['formData'].resetFields();
                             this.flag=false;
                             this.$message({message: '淇濆瓨鎴愬姛', type: 'success'});
@@ -176,7 +178,7 @@
                 });
             },
             loadData() {
-                this.$byutil.loadPageData(this, this.$systemconfig.basePath + '/street/findPage', this.searchForm);
+                this.$byutil.loadPageData(this, this.$systemconfig.basePath + '/ffzf/street/findPage', this.searchForm);
             },
             onSearch() {
                 this.pageData = this.$byutil.defaultPageData();
@@ -196,13 +198,13 @@
                 this.formData  = row;
             },
             onDelete(index, row) {
-                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/street/delete",{id:row.id}, res => {
+                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/ffzf/street/delete",{id:row.id}, res => {
                     this.$message({message: '鍒犻櫎鎴愬姛', type: 'success'});
                     this.loadData();
                 })
             },
             onDelete2(index, row) {
-                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/street/delete2",{id:row.id}, res => {
+                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/ffzf/street/delete2",{id:row.id}, res => {
                     this.$message({message: '鍒犻櫎鎴愬姛', type: 'success'});
                     this.streetEdit(this.roadId)
                 })
diff --git a/src/components/page/ticket/AddDialog.vue b/src/components/page/ticket/AddDialog.vue
deleted file mode 100644
index 4f5edf5..0000000
--- a/src/components/page/ticket/AddDialog.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-<template>
-    <el-dialog :title="dialogTitle" :visible.sync="dialogVisible">
-        <el-form :model="formData" ref="formData">
-            <el-form-item label="鐧诲綍鍚�" label-width="120px" prop="loginName"
-                          :rules="[{required: true, message: '璇疯緭鍏ョ櫥褰曞悕', trigger: 'blur'}]">
-                <el-input v-model="formData.loginName" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="濮撳悕" label-width="120px" prop="name"
-                          :rules="[{required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'blur'}]">
-                <el-input v-model="formData.name" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="鎵嬫満鍙�" prop="phone" label-width="120px"
-                          :rules="[{ required: true, message: '鎵嬫満鍙蜂笉鑳戒负绌�'},{ type: 'number', message: '鎵嬫満鍙峰繀椤讳负鏁板瓧'}]">
-                <el-input v-model.number="formData.phone" auto-complete="off"></el-input>
-            </el-form-item>
-            <el-form-item label="瑙掕壊" label-width="120px" prop="roleIds" :rules="[{required: true, message: '璇烽�夋嫨瑙掕壊', trigger: 'blur'}]">
-                <select-role-widget ref="selectRoleWidget" @backData="rolesBack" ></select-role-widget>
-            </el-form-item>
-            <el-form-item label="閮ㄩ棬" label-width="120px" prop="deptId" :rules="[{required: false, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'blur'}]">
-                <select-department-widget ref="selectDepartmentWidget" @backData="deptBack" ></select-department-widget>
-            </el-form-item>
-            <el-form-item label="鎵�灞炲叕鍙�" label-width="120px" prop="roleIds" :rules="[{required: false, message: '鏂板鎶曞叆鍝佷紒涓氱鐞嗗憳鎴栦腑鑽夎嵂浼佷笟绠$悊鍛樹娇鐢�'}]">
-                <select-zcy-and-trp-company-widget ref="SelectZcyAndTrpCompanyWidget" @backData="companyBack"></select-zcy-and-trp-company-widget>
-            </el-form-item>
-            <el-form-item label="鎵�鍦ㄥ湴鍖�" label-width="120px" prop="area"
-                          :rules="[{required: true, message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�', trigger: 'blur'}]">
-                <v-distpicker  :province="formData.province"
-                               :city="formData.city"
-                               :area="formData.area"
-                               @province="onChangeProvince" @city="onChangeCity" @area="onChangeArea">
-                </v-distpicker>
-            </el-form-item>
-            <el-form-item label="澶囨敞" label-width="120px" prop="description"
-                          :rules="[{required: false, message: '璇疯緭鍏ュ娉�', trigger: 'blur'}]">
-                <el-input v-model="formData.description" auto-complete="off"></el-input>
-            </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-            <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="onSave">纭� 瀹�</el-button>
-        </div>
-    </el-dialog>
-</template>
-
-<script>
-    export default {
-        name: "AddDialog",
-        data() {
-            return {
-                pageConfig: {
-                    saveUrl: this.$systemconfig.basePath + '/security/user/save',
-                    findRoles:this.$systemconfig.basePath+'/security/user/findRoles'
-                },
-                // 绐椾綋鏄剧ず鎴栭殣钘�
-                dialogVisible: false,
-                dialogTitle: '鏂板',
-                //琛ㄥ崟鏁版嵁
-                formData: {
-                    name: '',
-                    loginName: '',
-                    phone: '',
-                    roleIds: '',
-                    description: '',
-                    deptId: '',
-                    companyId:'',
-                    province:'',
-                    city:'',
-                    area:'',
-                }
-            }
-        },
-        mounted() {
-        },
-        methods: {
-            // 鏈獥浣撴樉绀烘垨闅愯棌
-            showDialog(val) {
-                this.dialogVisible = val;
-            },
-            //淇敼
-            initData(row) {
-                this.dialogTitle = '淇敼';
-                this.formData.id = row.id;
-                this.formData.name = row.name;
-                this.formData.loginName = row.loginName;
-                this.formData.phone = Number(row.phone);
-                this.formData.description = row.description;
-                this.formData.deptId = row.deptId;
-                setTimeout(()=>{
-                    this.$refs.selectDepartmentWidget.initData(row.deptId);
-                },500);
-                this.$byutil.postData(this,this.pageConfig.findRoles,{userId:row.id},res=>{
-                    let roleIds = []
-                    for (let i in res.obj) {
-                        roleIds.push(res.obj[i].roleId)
-                    }
-                    this.formData.roleIds = roleIds;
-                    setTimeout(()=>{
-                        this.$refs.selectRoleWidget.initData(roleIds);
-                    },500);
-
-                });
-                this.formData.province = row.province;
-                this.formData.city = row.city;
-                this.formData.area = row.area;
-            },
-            rolesBack(val){
-                this.formData.roleIds = val;
-            },
-            companyBack(val){
-                this.formData.companyId = val;
-            },
-            deptBack(val){
-                this.formData.deptId = val;
-            },
-
-            // 淇濆瓨
-            onSave() {
-                // if(this.formData.province == ''|| this.formData.city == ''||this.formData.area == ''){
-                //     this.$message({message: '璇峰皢鐪佸競鍘�/鍖哄~鍐欏畬鏁�', type: 'fail'});
-                //     return;
-                // }
-                this.formData.roleIds = this.formData.roleIds.join(",");
-                this.$refs['formData'].validate((valid) => {
-                    if (valid) {
-                        this.$byutil.postData(this, this.pageConfig.saveUrl, this.formData, response => {
-                            this.$refs['formData'].resetFields();
-                            this.showDialog(false);
-                            this.$emit('reloadData');
-                            this.$message({message: '鎿嶄綔鎴愬姛', type: 'success'});
-
-                        })
-                        // })
-                    } else {
-                        return false;
-                    }
-                });
-            },
-
-            /********************浠ヤ笅鏄渷甯傚幙涓夌骇鑱斿姩缁勪欢鏂规硶*********************/
-            onChangeProvince(a){
-                this.formData.province = a.value;
-            },
-            onChangeCity(a){
-                this.formData.city = a.value;
-            },
-            onChangeArea(a){
-                this.formData.area = a.value;
-            },
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/src/components/page/ticket/index.vue b/src/components/page/ticket/index.vue
index aabbb65..e8ab463 100644
--- a/src/components/page/ticket/index.vue
+++ b/src/components/page/ticket/index.vue
@@ -1,226 +1,236 @@
 <template>
-    <section>
-        <el-card class="box-card toolCard">
-            <div slot="header" class="clearfix">
-                <!--鏄剧ず瀵艰埅-->
-                <el-breadcrumb separator="/">
-                    <el-breadcrumb-item :to="{ path: '/' }">棣栭〉</el-breadcrumb-item>
-                    <el-breadcrumb-item>
-                        <a href="javascript:void(0);">绯荤粺绠$悊</a>
-                    </el-breadcrumb-item>
-                    <el-breadcrumb-item>鐢ㄦ埛绠$悊</el-breadcrumb-item>
-                </el-breadcrumb>
-            </div>
-            <!--<div class="text item">-->
-            <!--宸ュ叿鏉�-->
-            <!--<section class="toolbar">-->
+  <div class="mod-config">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="杞︾墝鍙�">
+          <el-input v-model="searchForm.carNo" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="浜嬩欢绫诲瀷">
+          <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨" clearable>
+            <el-option label="鐜板満澶勭綒" :value="0"></el-option>
+            <el-option label="涓婄骇浠诲姟" :value="1"></el-option>
+            <el-option label="杩濈珷鎷栬溅" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="缂磋垂鐘舵��">
+          <el-select v-model="searchForm.payStatus" placeholder="璇烽�夋嫨" clearable>
+            <el-option label="寰呯即璐�" :value="0"></el-option>
+            <el-option label="宸茬即璐�" :value="1"></el-option>
+            <el-option label="缂磋垂澶辫触" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杩濈珷绫诲瀷">
+          <el-select v-model="searchForm.violationTypeId" clearable>
+            <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id" ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button>
+        </el-form-item>
+      </el-form>
 
-            <!--</section>-->
-            <el-form :inline="true" :model="searchForm">
-                <el-form-item label="鍚嶇О">
-                    <el-input v-model="searchForm.name" placeholder="鍚嶇О"></el-input>
-                </el-form-item>
-                <el-form-item label="鎵嬫満鍙�">
-                    <el-input v-model="searchForm.phone" placeholder="鎵嬫満鍙�"></el-input>
-                </el-form-item>
-                <el-form-item>
-                    <el-button type="primary" size="small" @click="onSearch" icon="el-icon-search">鏌ヨ</el-button>
-                    <el-button type="primary" size="small" @click="onAdd" icon="el-icon-plus">澧炲姞</el-button>
-                    <el-button type="primary" size="small" @click="onInitPassword" icon="el-icon-refresh">鍒濆鍖栧瘑鐮�</el-button>
-                    <el-button type="primary" size="small" @click="onSetUserImage" icon="el-icon-picture-outline">璁剧疆澶村儚</el-button>
-                    <el-button type="primary" size="small" @click="onChangeDept" icon="el-icon-picture-outline">璋冩崲閮ㄩ棬</el-button>
-                </el-form-item>
-            </el-form>
-
-            <!--</div>-->
-        </el-card>
-
-        <!--鍒楄〃鏁版嵁-->
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" :element-loading-text="pageData.loadingText"
-                  border
-                  :height="pageConfig.maxHeight"
-                  stripe  tooltip-effect="dark" style="width:100%; height:100%" @selection-change="onSelectionChange" @row-click="clickRow"
-                  ref="mulTable">
-            <!--<el-table-column-->
-            <!--type="selection"-->
-            <!--width="50">
-    </el-table-column>-->
-            <el-table-column prop="loginName" label="鐧诲綍鍚�">
+      <div class="avue-crud">
+        <el-table
+            :height="tableHeight"
+            :data="pageData.rows"
+            border
+            v-loading="pageData.isLoading">
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            align="center">
+          </el-table-column>
+          <el-table-column
+            prop="carNo"
+            width="100px"
+            header-align="center"
+            align="center"
+            label="杞︾墝鍙�">
+          </el-table-column>
+          <el-table-column
+            prop="type"
+            width="100px"
+            header-align="center"
+            align="center"
+            label="浜嬩欢绫诲瀷">
+            <template slot-scope="scope">
+              <p v-if="scope.row.type==0" >鐜板満澶勭綒</p>
+              <p v-if="scope.row.type==1">涓婄骇浠诲姟</p>
+              <p v-if="scope.row.type==2">杩濈珷鎷栬溅</p>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="carType"
+            width="90px"
+            header-align="center"
+            align="center"
+            label="杞﹁締绫诲瀷">
+          </el-table-column>
+          <el-table-column
+            prop="color"
+            width="90px"
+            header-align="center"
+            align="center"
+            label="杞﹁締棰滆壊">
+          </el-table-column>
+            <el-table-column
+                    prop="address"
+                    header-align="center"
+                    align="center"
+                    label="杩濇硶鍦扮偣">
             </el-table-column>
-            <el-table-column prop="name" label="濮撳悕">
-            </el-table-column>
-            <el-table-column prop="sexStr" label="鎬у埆鍚�">
-            </el-table-column>
-            <el-table-column prop="age" label="骞撮緞">
-            </el-table-column>
-            <el-table-column prop="deptName" label="鎵�鍦ㄩ儴闂�">
-            </el-table-column>
-            <el-table-column prop="post" label="鑱屼綅">
-            </el-table-column>
-            <el-table-column prop="phone" label="鎵嬫満鍙�">
-            </el-table-column>
-            <el-table-column prop="roleNames" label="瑙掕壊">
-            </el-table-column>
-            <el-table-column prop="status" label="鐘舵��">
-            </el-table-column>
-            <el-table-column prop="lastLoginTime" label="鏈�杩戠櫥褰曟椂闂�">
+            <el-table-column
+                    prop="money"
+                    width="100px"
+                    header-align="center"
+                    align="center"
+                    label="搴旂即閲戦">
             </el-table-column>
 
-            <el-table-column label="鎿嶄綔" fixed="right" width="250">
-                <template slot-scope="scope">
-                    <el-button
-                            size="mini"
-                            @click="onEdit(scope.$index, scope.row)">缂栬緫
-                    </el-button>
-                    <el-button
-                            size="mini"
-                            type="danger"
-                            @click="onStop(scope.$index, scope.row)">鍋滅敤
-                    </el-button>
-                    <el-button
-                            size="mini"
-                            @click="onStart(scope.$index, scope.row)">鍚敤
-                    </el-button>
-                </template>
+            <el-table-column
+                    prop="payStatus"
+                    width="100px"
+                    header-align="center"
+                    align="center"
+                    label="缂磋垂鐘舵��">
+              <template slot-scope="scope">
+                <p v-if="scope.row.payStatus==0" style="color: red">寰呯即璐�</p>
+                <p v-if="scope.row.payStatus==1">宸茬即璐�</p>
+                <p v-if="scope.row.payStatus==2" style="color: blue">缂磋垂澶辫触</p>
+              </template>
             </el-table-column>
+            <el-table-column
+                    prop="userName"
+                    width="100px"
+                    header-align="center"
+                    align="center"
+                    label="澶勭悊浜�">
+            </el-table-column>
+            <el-table-column
+                    prop="violationTypeName"
+                    header-align="center"
+                    align="center"
+                    width="100px"
+                    label="杩濈珷绫诲瀷">
+            </el-table-column>
+          <el-table-column
+            prop="remark"
+            header-align="center"
+            align="center"
+            label="澶囨敞">
+          </el-table-column>
+          <el-table-column
+                  fixed="right"
+                  header-align="center"
+                  align="center"
+                  label="鎿嶄綔">
+            <template slot-scope="scope">
+              <el-button  type="text" size="small" icon="el-icon-view" @click="addOrUpdateHandle(scope.row.id)">澶勫喅涔�</el-button>
+              <el-button  type="text" size="small" icon="el-icon-view" @click="pictureHandle(scope.row)">鍥惧儚璇佹嵁</el-button>
+              <el-button  type="text" size="small" icon="el-pay6zhifu" @click="jiaofeiHandle(scope.row.id)">鐜板満缂磋垂</el-button>
+            </template>
+          </el-table-column>
         </el-table>
-        <!--鍒嗛〉淇℃伅-->
-        <el-pagination
-                background
-                @size-change="onPageSizeChange"
-                @current-change="onCurrentPageChange"
-                :current-page="pageData.currentPage"
-                :page-sizes="[10, 20, 30, 40, 50, 100, 200]"
-                :page-size="pageData.pageSize"
-                layout="total, sizes, jumper, prev, pager, next"
-                :total="pageData.total">
-        </el-pagination>
-    </section>
+        <el-pagination background @size-change="onPageSizeChange" @current-change="onCurrentPageChange" :current-page="pageData.currentPage" :page-size="pageData.pageSize" :total="pageData.total" style="float: right"></el-pagination>
+
+      </div>
+
+      <!-- 寮圭獥, 鏂板 / 淇敼 -->
+      <table-form v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></table-form>
+      <!--鍥惧儚璇佹嵁-->
+      <pictureForm v-if="pictureFormVisiable" ref="pictureForm"></pictureForm>
+  </div>
 </template>
 
 <script>
-    // 瀵煎叆鏂板缁勪欢
-    import addDialog from './AddDialog'
-    export default {
-        name: "UserIndex",
-        data: function () {
-            return {
-                pageConfig: {
-                    pageDataUrl: this.$systemconfig.basePath + '/security/user/list',
-                    stopUrl: this.$systemconfig.basePath + '/security/user/stop',
-                    startUrl: this.$systemconfig.basePath + '/security/user/start',
-                    initPasswordUrl:this.$systemconfig.basePath+'/security/user/restoreInitialPassword',
-                },
-                // 鏌ヨ鏁版嵁
-                searchForm: {
-                    name: ''
-                },
-                // 椤甸潰鏁版嵁
-                pageData: this.$byutil.defaultPageData()
-            }
+  import TableForm from './ticket-form'
+  import pictureForm from './picture-form'
+  export default {
+    data () {
+      return {
+        tableHeight:650,
+        dataForm: {
+          key: ''
         },
-        // 寮曞叆缁勪欢
-        components: {
-            addDialog: addDialog
+        table1:[],
+        pageData: this.$byutil.defaultPageData(),
+        searchForm: {
+          current:this.pageIndex,
+          size:this.pageSize,
+          carNo:'',
+          type:null,
+          violationTypeId:null,
+          payStatus:null,
         },
-        // 鎵ц鍒濆鍖栨暟鎹�
-        mounted() {
-            this.$byutil.initTableMaxHeight(this);
-            this.loadData();
-        },
-        // 鏂规硶
-        methods: {
-            //鍔犺浇鏁版嵁
-            loadData() {
-                this.$byutil.loadPageData(this, this.pageConfig.pageDataUrl, this.searchForm);
-            },
-            // 鐐瑰嚮鏌ヨ鎸夐挳
-            onSearch() {
-                this.pageData = this.$byutil.defaultPageData();
-                this.loadData();
-            },
-            // 鐐瑰嚮鏂板鎸夐挳
-            onAdd() {
-                this.$refs.addDialog.showDialog(true);
-            },
-            // 鐐瑰嚮缂栬緫鎸夐挳
-            onEdit(index, row) {
-                this.$refs.addDialog.showDialog(true);
-                //鍒濆鍖栨棫鏁版嵁
-                this.$refs.addDialog.initData(row);
-            },
-            // 鐐瑰嚮鍋滅敤
-            onStop(index, row) {
-                if(row.status == "鍒犻櫎"){
-                    alert("宸茬粡鍋滅敤锛屼笉鑳藉啀娆″仠鐢�");
-                    return;
-                }
-                this.$byutil.stopData(this, this.pageConfig.stopUrl, row);
-            },
-            // 鐐瑰嚮鍚敤
-            onStart(index, row) {
-                if(row.status == "姝e父"){
-                    alert("姝e父鐘舵�侊紝涓嶈兘鍐嶆鍚敤");
-                    return;
-                }
-                this.$byutil.startData(this, this.pageConfig.startUrl, row);
-            },
-            // 澶氶�夋椂
-            onSelectionChange(val) {
-                // this.pageData.multipleSelection = val
-            },
-            // 鍒囨崲姣忛〉鏄剧ず鏉℃暟
-            onPageSizeChange(val) {
-                this.pageData.pageSize = val;
-                this.loadData();
-            },
-            // 璺宠浆椤�
-            onCurrentPageChange(val) {
-                this.pageData.page = val;
-                this.loadData();
-            },
-            //鍗曢��
-            clickRow(val){
-                this.pageData.signSelection = val
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        addOrUpdateVisible: false,
+        pictureFormVisiable:false, //鍥惧儚璇佹嵁寮规
+      }
+    },
+    components: {
+      TableForm,
+      pictureForm
+    },
+    created () {
+      this.getDataList()
+      this.findAllViolation()
+      this.tableHeight = window.innerHeight - 255
+    },
+    computed: {
 
-            },
-            // 璁剧疆澶村儚
-            onSetUserImage (){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$refs.setUserImageDialog.showDialog(true);
-                this.$refs.setUserImageDialog.initData(row);
-            },
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁鍒楄〃
+      getDataList () {
+        this.dataListLoading = true
+        this.searchForm.current=this.pageIndex
+        this.searchForm.size=this.pageSize
+        this.$byutil.loadPageData(this, this.$systemconfig.basePath+'/ffzf/ticket/findPage', this.searchForm);
+        this.dataListLoading = false
+      },
+      findAllViolation(){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/violationType/findAll', this.formData, res => {
+          this.table1 = res.data;
+        })
+      },
+      onPageSizeChange(val) {
+        this.pageData.pageSize = val;
+        this.loadData();
+      },
+      onCurrentPageChange(val) {
+        this.pageData.page = val;
+        this.loadData();
+      },
+      pictureHandle(data) {
+         console.log(data,'data=====')
+          let imgArry = []
+          if(data.img) {
+              imgArry = data.img.split(',')
+              console.log(imgArry,'imgArry====')
+          }
+          this.pictureFormVisiable = true
+          this.$nextTick(() => {
+              this.$refs.pictureForm.init(imgArry)
+          })
 
-            // 璋冩崲閮ㄩ棬
-            onChangeDept (){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$refs.changeDeptDialog.showDialog(true);
-                this.$refs.changeDeptDialog.initData(row);
-            },
-
-            //鍒濆鍖栧瘑鐮�
-            onInitPassword(){
-                let row = this.pageData.signSelection;
-                if(!row){
-                    this.$alert('璇烽�夋嫨鐢ㄦ埛', {'title': '鎻愮ず','type': 'warning','center': true,'showClose': false});
-                    return;
-                }
-                this.$byutil.postData(this,this.pageConfig.initPasswordUrl,row,res=>{
-                    this.$alert(row.name+'鍒濆鍖栧瘑鐮佹垚鍔�', {'title': '鎻愮ず','type': 'success','center': true,'showClose': false});
-                })
-            }
-        }
+      },
+      // 鏂板 / 淇敼
+      addOrUpdateHandle (id) {
+        this.addOrUpdateVisible = true
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init(id)
+        })
+      },
+      //鐜板満缂磋垂
+      jiaofeiHandle(id){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/ticket/jiaofei', {id:id}, res => {
+          this.getDataList()
+        })
+      },
     }
+  }
 </script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/components/page/ticket/picture-form.vue b/src/components/page/ticket/picture-form.vue
new file mode 100644
index 0000000..0f2715d
--- /dev/null
+++ b/src/components/page/ticket/picture-form.vue
@@ -0,0 +1,74 @@
+<template>
+    <div>
+      <el-dialog
+        title="鍥惧儚璇佹嵁"
+        :close-on-click-modal="false"
+        :visible.sync="visible"
+        v-dialogDrag>
+        <div class="previewDialog" v-for="(item,index) in pictureList" :key="index">
+          <img
+            style="width: 100%"
+            :src="item.url"
+            :preview="item.preview"
+            :preview-text="item.title"
+            alt="">
+          <!--<div class="enlargeBox">
+            <img
+              :src="item.larg"
+              alt="">
+          </div>-->
+        </div>
+      </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: "pictureForm",
+        data() {
+            return {
+                visible:false,
+                pictureList: []
+            }
+        },
+        methods: {
+            init(data) {
+
+                this.visible = true
+                this.pictureList = data.map((item,index) => {
+                    return {
+                        url: '/ffzf/fileinfo/showImg/'+item,
+                        title: item,
+                        preview:'1',
+                        //larg: require('@/assets/img/enlarge.png')
+                    }
+                })
+                this.$previewRefresh();
+                console.log(this.pictureList,'pictureList-----pictureList')
+            }
+        }
+    }
+</script>
+
+<style lang="scss">
+  .pswp{
+    z-index: 9999;
+  }
+
+</style>
+<style lang="scss" scoped>
+  .previewDialog{
+    position: relative;
+    cursor: pointer;
+    /*.enlargeBox{*/
+    /*  position: absolute;*/
+    /*  z-index: 99999;*/
+    /*  left: 50%;*/
+    /*  top: 50%;*/
+    /*  background: rgba(0,0,0,0.5);*/
+    /*  padding: 20px;*/
+    /*  border-radius: 20px;*/
+    /*  box-shadow:inset 0 0 2px 3px rgba(255,255,255,0.2), 0 0 8px rgba(255,255,255,0.6),0 0 20px rgba(255,255,255,0.3);*/
+    /*}*/
+  }
+</style>
diff --git a/src/components/page/ticket/ticket-form.vue b/src/components/page/ticket/ticket-form.vue
new file mode 100644
index 0000000..e91e364
--- /dev/null
+++ b/src/components/page/ticket/ticket-form.vue
@@ -0,0 +1,222 @@
+<template>
+  <div>
+    <el-dialog
+      :title="!dataForm.id ? '鏂板' : '瀹屽杽淇℃伅'"
+      append-to-body
+      :close-on-click-modal="false"
+      :visible.sync="visible"
+      v-dialogDrag>
+      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
+               label-width="140px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="骞翠唤">
+              <el-date-picker
+                style="width: 100%"
+                v-model="dataForm.year"
+                value-format="yyyy"
+                type="year"
+                placeholder="閫夋嫨骞�">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鏂囦功鍙�">
+              <el-input v-model="dataForm.number"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <!--<el-col :span="12">
+            <el-form-item label="鍐冲畾涔﹀彿">
+              <el-input
+                v-model="dataForm.unitName"
+                placeholder="宄扮患褰撶綒鍐炽��     銆曠    鍙�"
+              ></el-input>
+            </el-form-item>
+          </el-col>-->
+
+          <el-col :span="12">
+            <el-form-item label="褰撲簨浜�" prop="personName">
+              <el-input v-model="dataForm.personName" placeholder="璇疯緭鍏ュ綋浜嬩汉"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="韬唤璇佸彿鐮�" prop="idCard">
+              <el-input v-model="dataForm.idCard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙风爜"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+
+          <el-col :span="12">
+            <el-form-item label="浣忓潃" prop="personAddress">
+              <el-input v-model="dataForm.personAddress" placeholder="璇疯緭鍏ヤ綇鍧�"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵ц鏈熼檺" prop="days">
+              <el-input v-model="dataForm.days" placeholder="璇疯緭鍏ユ墽琛屾湡闄�"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="鎵ф硶浜哄憳" prop="zfName1">
+              <el-input v-model="dataForm.zfName1" placeholder="璇疯緭鍏ヨ处鍙�"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵ф硶璇佸彿" prop="zfNum1">
+              <el-input v-model="dataForm.zfNum1" placeholder="璇疯緭鍏ユ埛鍚�"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="鎵ф硶浜哄憳" prop="zfName2">
+              <el-input v-model="dataForm.zfName2" placeholder="璇疯緭鍏ヨ处鍙�"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵ф硶璇佸彿" prop="zfNum2">
+              <el-input v-model="dataForm.zfNum2" placeholder="璇疯緭鍏ユ埛鍚�"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">鍙栨秷</el-button>
+      <el-button type="primary" @click="dataFormSubmit()" :loading="loadingSubmit">纭畾</el-button>
+      <el-button type="primary" @click="viewVord(dataForm)">棰勮</el-button>
+      <el-button type="success" @click="downloadWord(dataForm)">涓嬭浇</el-button>
+    </span>
+    </el-dialog>
+    <WordView v-if="WordViewShow" ref="WordView"></WordView>
+  </div>
+</template>
+
+<script>
+  import WordView from './word-view/index'
+  import {exportDoc} from '../../../libs/word'
+
+  export default {
+    components: {
+        WordView
+    },
+    data() {
+      return {
+        WordViewShow: false,   //word鏂囨。鏄惁鏄剧ず
+        visible: false,
+        loadingSubmit:false,
+        dataForm: {
+            year:'',
+            number:'',
+            personName:'',
+            idCard: '',
+            chufaCheckList:[],
+            fakuanCheckList:[],
+            personAddress:'',
+            zfName1:'',
+            zfName2:'',
+            zfNum1:'',
+            zfNum2:'',
+            id:'',
+            days: '0'
+
+        },
+        dataRule: {
+
+          personName: [
+                {required: true, message: '褰撲簨浜轰笉鑳戒负绌�', trigger: 'blur'}
+              ],
+          personAddress: [
+            {required: true, message: '褰撲簨浜哄湴鍧�涓嶈兘涓虹┖', trigger: 'blur'}
+          ],
+          idCard: [
+                {required: true, message: '韬唤璇佸彿涓嶈兘涓虹┖', trigger: 'blur'}
+              ],
+          zfName1: [
+                {required: true, message: '鎵ф硶浜哄憳1涓嶈兘涓虹┖', trigger: 'blur'}
+              ],
+          zfName2: [
+                {required: true, message: '鎵ф硶浜哄憳2涓嶈兘涓虹┖', trigger: 'blur'}
+              ],
+        }
+      }
+    },
+    methods: {
+      init(id) {
+        this.dataForm.id = id || null;
+        this.visible = true;
+        this.$nextTick(() => {
+          this.$refs['dataForm'].resetFields()
+          if (this.dataForm.id) {
+            this.$byutil.getData(this,this.$systemconfig.basePath+'/ffzf/ticket/'+id,null,res=>{
+              this.dataForm = res.data
+            })
+          }
+        })
+      },
+      viewVord(data) {  //word棰勮
+          this.WordViewShow = true
+          this.$nextTick(() => {
+              this.$refs.WordView.initWord(data,'/words/administrativeDecisionLetter.docx')
+          })
+      },
+      downloadWord(data) {  //word涓嬭浇
+
+          exportDoc(data,'/words/administrativeDecisionLetter.docx','褰撳満琛屾斂澶勭綒鍐冲畾涔�')
+      },
+      // 琛ㄥ崟鎻愪氦
+      dataFormSubmit() {
+      this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.loadingSubmit = true;
+            if (this.dataForm.id) {
+              this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/ticket/updateById', this.formData, res => {
+                if (res.code === 0) {
+                  this.$notify.success('淇敼鎴愬姛')
+                  this.visible = false
+                  this.loadingSubmit = false;
+                  this.$emit('refreshDataList')
+                } else {
+                  this.loadingSubmit = false;
+                }
+              })
+            } else {
+              alert("鏈�夋嫨杩濈珷杞﹁締")
+            }
+          }
+        })
+      }
+    }
+  }
+</script>
+<style lang="scss">
+  .el-checkbox.flexDate{
+    display: flex;
+    align-items: baseline;
+    .el-checkbox__label{
+      display: flex;
+      flex-wrap: wrap;
+      line-height: 2;
+      white-space: initial;
+    }
+  }
+</style>
+<style lang="scss" scoped>
+  .flexDate{
+    display: flex;
+    span{
+      margin-left: 5px;
+    }
+  }
+  .dialog-footer{
+    display: flex;
+    justify-content: center;
+    .el-button{
+      margin: 0 5px;
+    }
+  }
+</style>
diff --git a/src/components/page/ticket/word-view/index.vue b/src/components/page/ticket/word-view/index.vue
new file mode 100644
index 0000000..9266fd5
--- /dev/null
+++ b/src/components/page/ticket/word-view/index.vue
@@ -0,0 +1,46 @@
+<template>
+  <el-dialog
+    title="棰勮"
+    :visible.sync="dialogVisible"
+    class="dialogStyle"
+    v-dialogDrag>
+    <div ref="word"></div>
+  </el-dialog>
+</template>
+
+<script>
+    import {viewD} from '../../../../libs/word'
+    export default {
+        name: "index",
+        data() {
+            return {
+                dialogVisible: false,
+            }
+        },
+        methods: {
+            initWord(data,url) {
+                this.dialogVisible = true
+                setTimeout(() => {
+                    viewD(data,url,this.$refs.word)
+                },1000)
+            }
+        }
+    }
+</script>
+
+<style lang="scss">
+  .dialogStyle{
+    .el-dialog{
+      width: clamp(860px,47%,960px) !important;
+    }
+    .docx-wrapper{
+      background:#fff!important;
+    }
+  }
+
+</style>
+<style lang="scss" scoped>
+  :v-deep{
+
+  }
+</style>
diff --git a/src/components/page/user/index.vue b/src/components/page/user/index.vue
index bda0419..882343d 100644
--- a/src/components/page/user/index.vue
+++ b/src/components/page/user/index.vue
@@ -102,7 +102,7 @@
                 this.formData.parkIds = this.parkIds.toString()
                 this.$refs['formData'].validate((valid) => {
                     if (valid) {
-                        this.$byutil.postData(this, this.$systemconfig.basePath + '/user/save', this.formData, res => {
+                        this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/user/save', this.formData, res => {
                             this.$refs['formData'].resetFields();
                             this.flag=false;
                             this.$message({message: '淇濆瓨鎴愬姛', type: 'success'});
@@ -114,10 +114,10 @@
                 });
             },
             loadData() {
-                this.$byutil.loadPageData(this, this.$systemconfig.basePath + '/user/findPage', this.searchForm);
+                this.$byutil.loadPageData(this, this.$systemconfig.basePath + '/ffzf/user/findPage', this.searchForm);
             },
             getParkList(){
-              this.$byutil.postData(this, this.$systemconfig.basePath + '/park/findAll',null,res => {
+              this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/park/findAll',null,res => {
                 this.parkList = res.data
               });
             },
@@ -154,7 +154,7 @@
               console.log(this.parkIds)
             },
             onDelete(index, row) {
-                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/user/delete",{id:row.id}, res => {
+                this.$byutil.deleteData(this,this.$systemconfig.basePath+"/ffzf/user/delete",{id:row.id}, res => {
                     this.$message({message: '鍒犻櫎鎴愬姛', type: 'success'});
                     this.loadData();
                 })
diff --git a/src/components/page/violationType/index.vue b/src/components/page/violationType/index.vue
index 6e7c4aa..24de8db 100644
--- a/src/components/page/violationType/index.vue
+++ b/src/components/page/violationType/index.vue
@@ -12,7 +12,7 @@
             </el-form>
         </div>
 
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
+        <el-table :data="pageData.rows" :height="tableHeight" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
             <el-table-column type="index" width="50" label="搴忓彿" align="center"> </el-table-column>
             <el-table-column prop="code" label="杩濈珷浠g爜" align="center" width="80"></el-table-column>
             <el-table-column prop="name" label="绠�绉�" align="center" width="200"></el-table-column>
@@ -63,6 +63,7 @@
                 searchForm: {
                     name: ''
                 },
+              tableHeight:500,
                 pageData: this.$byutil.defaultPageData(),
                 formData: {
                     name: '',
@@ -70,11 +71,12 @@
                     reducePoint: 0,
                     content: '',
                 },
-                urlPath:this.$systemconfig.basePath + '/violationType/'
+                urlPath:this.$systemconfig.basePath + '/ffzf/violationType/'
             }
         },
         mounted() {
             this.loadData();
+          this.tableHeight = window.innerHeight - 260
         },
         methods: {
             onSave(){
diff --git a/src/components/page/whiteList/index.vue b/src/components/page/whiteList/index.vue
index 9d28e3b..2153b46 100644
--- a/src/components/page/whiteList/index.vue
+++ b/src/components/page/whiteList/index.vue
@@ -12,7 +12,7 @@
             </el-form>
         </div>
 
-        <el-table :data="pageData.rows" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
+        <el-table :height="tableHeight" :data="pageData.rows" v-loading="pageData.isLoading" border style="width:100%;border:1px solid #bcbec2;">
             <el-table-column type="index" width="50" label="搴忓彿" align="center"> </el-table-column>
             <el-table-column prop="carNo" label="杞︾墝鍙�" align="center" width="150"></el-table-column>
             <el-table-column prop="type" label="绫诲瀷" align="center" width="100">
@@ -84,15 +84,17 @@
                     name: '',
                 },
                 ids:[],
-                urlPath:this.$systemconfig.basePath + '/whiteList/',
+                urlPath:this.$systemconfig.basePath + '/ffzf/whiteList/',
                 table1:[],
+              tableHeight:500,
             }
         },
         mounted() {
             this.loadData();
-            this.$byutil.postData(this, this.$systemconfig.basePath+'/park/findAll', this.formData, res => {
+            this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
                 this.table1 = res.data;
             })
+          this.tableHeight = window.innerHeight - 260
         },
         methods: {
             selectChange(value){
diff --git a/src/components/page/zfticket/index.vue b/src/components/page/zfticket/index.vue
new file mode 100644
index 0000000..3231ff0
--- /dev/null
+++ b/src/components/page/zfticket/index.vue
@@ -0,0 +1,188 @@
+<template>
+  <div class="mod-config">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="杞︾墝鍙�">
+          <el-input v-model="searchForm.carNo" clearable></el-input>
+        </el-form-item>
+<!--        <el-form-item label="鍋滆溅鍦�">-->
+<!--          <el-select v-model="searchForm.parkId" clearable>-->
+<!--            <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id" ></el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button>
+        </el-form-item>
+      </el-form>
+
+      <div class="avue-crud">
+        <el-table
+            :height="tableHeight"
+            :data="pageData.rows"
+            border
+            v-loading="pageData.isLoading">
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            align="center">
+          </el-table-column>
+            <el-table-column
+                    prop="carNo"
+                    header-align="center"
+                    align="center"
+                    label="杞︾墝鍙�">
+            </el-table-column>
+            <el-table-column
+                    prop="code"
+                    header-align="center"
+                    align="center"
+                    label="璁㈠崟鍙�">
+            </el-table-column>
+          <el-table-column
+            prop="updateTime"
+            header-align="center"
+            align="center"
+            label="寮�绁ㄦ椂闂�">
+          </el-table-column>
+            <el-table-column
+                    prop="money"
+                    header-align="center"
+                    align="center"
+                    width="100px"
+                    label="閲戦">
+            </el-table-column>
+            <el-table-column
+                    prop="payCode"
+                    header-align="center"
+                    align="center"
+                    label="鐢靛瓙缂存鐮�">
+            </el-table-column>
+            <el-table-column
+                    prop="ticketStatus"
+                    header-align="center"
+                    align="center"
+                    width="100px"
+                    label="寮�绁ㄧ姸鎬�">
+              <template slot-scope="scope">
+                <p v-if="scope.row.ticketStatus==0" style="color: red">鏈紑绁�</p>
+                <p v-if="scope.row.ticketStatus==1" >宸插紑绁�</p>
+              </template>
+            </el-table-column>
+          <el-table-column
+                  header-align="center"
+                  align="center"
+                  label="鎿嶄綔">
+            <template slot-scope="scope">
+              <el-button type="text" size="small" icon="el-icon-view" @click="watchTicket(scope.row.fileId)">鏌ョ湅鍙戠エ</el-button>
+              <el-button type="text" size="small" icon="el-icon-download" @click="downTicket(scope.row.fileId)">涓嬭浇鍙戠エ</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background @size-change="onPageSizeChange" @current-change="onCurrentPageChange" :current-page="pageData.currentPage" :page-size="pageData.pageSize" :total="pageData.total" style="float: right"></el-pagination>
+
+      </div>
+
+      <el-dialog append-to-body title="鏌ョ湅鍙戠エ" :visible.sync="imgFlag" width="60%" >
+        <el-image
+          class = "my-img"
+          ref = "myImg"
+          :src="imageUrl"
+          :preview-src-list="srcList">
+        </el-image>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        tableHeight:500,
+        dataForm: {
+          key: ''
+        },
+        table1:[],
+        pageData: this.$byutil.defaultPageData(),
+        searchForm: {
+          carNo:'',
+          parkId:'',
+          type:0,
+          current:this.pageIndex,
+          size:this.pageSize
+        },
+        imageUrl:'',
+        imgFlag:false,
+        srcList:'',
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 50,
+        totalPage: 0,
+        dataListLoading: false,
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+    },
+    created () {
+      this.getDataList()
+      this.tableHeight = window.innerHeight - 260
+    },
+    computed: {
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁鍒楄〃
+      getDataList () {
+        this.dataListLoading = true
+        this.searchForm.current = this.pageIndex
+        this.searchForm.size = this.pageSize
+        this.$byutil.loadPageData(this, this.$systemconfig.basePath+'/ffzf/orderrecord/findPage', this.searchForm);
+        this.dataListLoading = false
+      },
+      getAllPark(){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/park/findAll', this.formData, res => {
+          this.table1 = res.data;
+        })
+      },
+      closeDialog(){
+        this.imgFlag = false
+      },
+      watchTicket(fileId){
+        this.imgFlag = true
+        this.imageUrl = "/ffzf/fileinfo/showImgById/"+fileId
+      },
+      downTicket(fileId){
+        this.$byutil.postData(this, this.$systemconfig.basePath+'/ffzf/fileinfo/download/downloadPng', {fileId:fileId}, res => {
+
+        })
+      },
+      onPageSizeChange(val) {
+        this.pageData.pageSize = val;
+        this.loadData();
+      },
+      onCurrentPageChange(val) {
+        this.pageData.page = val;
+        this.loadData();
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+.fenye-box2{
+  width: calc(80% - 20px);
+}
+.per-up{
+  position: relative;
+  .my-img{
+    width: 100px;
+    height: 100px;
+    .el-image__inner{
+      visibility: hidden ;
+    }
+  }
+  .my-pre{
+    position: absolute;
+    margin-left: 111px;
+    margin-top: -156px;
+  }
+}
+</style>
diff --git a/src/libs/dialogDrag.js b/src/libs/dialogDrag.js
new file mode 100644
index 0000000..a138096
--- /dev/null
+++ b/src/libs/dialogDrag.js
@@ -0,0 +1,75 @@
+import Vue from 'vue';
+// v-dialogDrag: 寮圭獥鎷栨嫿灞炴��
+Vue.directive('dialogDrag', {
+  bind(el, binding, vnode, oldVnode) {
+    const dialogHeaderEl = el.querySelector('.el-dialog__header');
+    const dragDom = el.querySelector('.el-dialog');
+    // dialogHeaderEl.style.cursor = 'move';
+    dialogHeaderEl.style.cssText += ';cursor:move;';
+    dragDom.style.cssText += ';top:0px;';
+
+    // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null);
+    const sty = (function() {
+      if (window.document.currentStyle) {
+        return (dom, attr) => dom.currentStyle[attr];
+      } else {
+        return (dom, attr) => getComputedStyle(dom, false)[attr];
+      }
+    })();
+    dialogHeaderEl.onmousedown = e => {
+      // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
+      const disX = e.clientX - dialogHeaderEl.offsetLeft;
+      const disY = e.clientY - dialogHeaderEl.offsetTop;
+      const screenWidth = document.body.clientWidth; // body褰撳墠瀹藉害
+      const screenHeight = document.documentElement.clientHeight; // 鍙鍖哄煙楂樺害(搴斾负body楂樺害锛屽彲鏌愪簺鐜涓嬫棤娉曡幏鍙�)
+      const dragDomWidth = dragDom.offsetWidth; // 瀵硅瘽妗嗗搴�
+      const dragDomheight = dragDom.offsetHeight; // 瀵硅瘽妗嗛珮搴�
+      const minDragDomLeft = dragDom.offsetLeft;
+      const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth;
+      const minDragDomTop = dragDom.offsetTop;
+      const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight;
+      // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲
+      let styL = sty(dragDom, 'left');
+      let styT = sty(dragDom, 'top');
+      // 娉ㄦ剰鍦╥e涓� 绗竴娆¤幏鍙栧埌鐨勫�间负缁勪欢鑷甫50% 绉诲姩涔嬪悗璧嬪�间负px
+      if (styL.includes('%')) {
+        // eslint-disable-next-line no-useless-escape
+        styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100);
+        // eslint-disable-next-line no-useless-escape
+        styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100);
+      } else {
+        styL = +styL.replace(/\px/g, '');
+        styT = +styT.replace(/\px/g, '');
+      }
+
+      document.onmousemove = function(e) {
+        // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
+        let left = e.clientX - disX;
+        let top = e.clientY - disY;
+
+        // 杈圭晫澶勭悊
+        if (-left > minDragDomLeft) {
+          left = -minDragDomLeft;
+        } else if (left > maxDragDomLeft) {
+          left = maxDragDomLeft;
+        }
+        if (-top > minDragDomTop) {
+          top = -minDragDomTop;
+        } else if (top > maxDragDomTop) {
+          top = maxDragDomTop;
+        }
+
+        // 绉诲姩褰撳墠鍏冪礌
+        dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`;
+      };
+
+      document.onmouseup = function(e) {
+        document.onmousemove = null;
+        document.onmouseup = null;
+      };
+      return false;
+    };
+  }
+});
+
+
diff --git a/src/libs/word.js b/src/libs/word.js
new file mode 100644
index 0000000..8990427
--- /dev/null
+++ b/src/libs/word.js
@@ -0,0 +1,89 @@
+import PizZip from 'pizzip'
+import docxtemplater from 'docxtemplater'
+import JSZipUtils from 'jszip-utils'
+import { saveAs } from 'file-saver'
+let docx = require("docx-preview");
+const ImageModule = require("docxtemplater-image-module-free");
+
+//涓嬭浇word锛屼笉甯﹀浘鐗�
+export const exportDoc = (e,path,dname) => {
+  for(let i in e) {
+    if(e[i] == null) {
+      e[i] = ''
+    }
+  }
+  let docxsrc = path;        //妯℃澘鏂囦欢鐨勪綅缃�
+  let docxname = dname;        //瀵煎嚭鏂囦欢鐨勫悕瀛�
+  // 璇诲彇骞惰幏寰楁ā鏉挎枃浠剁殑浜岃繘鍒跺唴瀹�
+  JSZipUtils.getBinaryContent(docxsrc,function (error, content) {
+    if (error) throw error // 鎶涘嚭寮傚父
+    let zip = new PizZip(content) // 鍒涘缓涓�涓狫SZip瀹炰緥锛屽唴瀹逛负妯℃澘鐨勫唴瀹�
+    let doc = new docxtemplater().loadZip(zip) // 鍒涘缓骞跺姞杞絛ocxtemplater瀹炰緥瀵硅薄
+    doc.setData(e)  // 璁剧疆妯℃澘鍙橀噺鐨勫��
+    try {
+      doc.render() // 鐢ㄦā鏉垮彉閲忕殑鍊兼浛鎹㈡墍鏈夋ā鏉垮彉閲�
+    } catch(error) {
+      let e = {
+        message: error.message,
+        name: error.name,
+        stack: error.stack,
+        properties: error.properties
+      }
+      console.log(JSON.stringify({ error: e }))
+      throw error // 鎶涘嚭寮傚父
+    }
+    // 鐢熸垚涓�涓唬琛╠ocxtemplater瀵硅薄鐨剒ip鏂囦欢锛堜笉鏄竴涓湡瀹炵殑鏂囦欢锛岃�屾槸鍦ㄥ唴瀛樹腑鐨勮〃绀猴級
+    let out = doc.getZip().generate({
+      type: "blob",
+      mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+    });
+    // 灏嗙洰鏍囨枃浠跺璞′繚瀛樹负鐩爣绫诲瀷鐨勬枃浠讹紝骞跺懡鍚�
+    saveAs(out, docxname);
+  })
+}
+
+//棰勮word锛屼笉甯﹀浘鐗囩殑
+export const viewD = (e, path , continer) => {
+  for (let attr in e) {
+    if (e[attr] == null) {
+      e[attr] = "";
+    }
+  }
+  let docxsrc = path;        //妯℃澘鏂囦欢鐨勪綅缃�
+  // 璇诲彇骞惰幏寰楁ā鏉挎枃浠剁殑浜岃繘鍒跺唴瀹�
+  JSZipUtils.getBinaryContent(docxsrc, function (error, content) {
+    // docxsrc鏄ā鏉裤�傛垜浠湪瀵煎嚭鐨勬椂鍊欙紝浼氭牴鎹妯℃澘鏉ュ鍑哄搴旂殑鏁版嵁
+    // 鎶涘嚭寮傚父
+    if (error) {
+      throw error;
+    }
+
+    // 鍒涘缓涓�涓狿izZip瀹炰緥锛屽唴瀹逛负妯℃澘鐨勫唴瀹�
+    let zip = new PizZip(content);
+    // 鍒涘缓骞跺姞杞絛ocx templater瀹炰緥瀵硅薄
+    let doc = new docxtemplater().loadZip(zip);
+    // 璁剧疆妯℃澘鍙橀噺鐨勫��
+    doc.setData(e);
+
+    try {
+      //鏇挎崲鎵�鏈夋ā鏉垮彉閲�
+      doc.render();
+    } catch (error) {
+      let e = {
+        message: error.message,
+        name: error.name,
+        stack: error.stack,
+        properties: error.properties
+      };
+      console.log(JSON.stringify({error: e}));
+      throw error;
+    }
+
+    // 鐢熸垚涓�涓唬琛╠ocxtemplater瀵硅薄鐨剒ip鏂囦欢锛堜笉鏄竴涓湡瀹炵殑鏂囦欢锛岃�屾槸鍦ㄥ唴瀛樹腑鐨勮〃绀猴級
+    let out = doc.getZip().generate({
+      type: "blob",
+      mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+    });
+    docx.renderAsync(out, continer); // 娓叉煋鍒伴〉闈㈤瑙�
+  });
+};
diff --git a/src/router/index.js b/src/router/index.js
index bcc4c1f..86c3599 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -18,35 +18,31 @@
                     path: '/user',
                     component: resolve => require(['../components/page/user/index.vue'], resolve),
                     meta: { title: '浜哄憳绠$悊' }
-                },{
+                },
+                {
                     path: '/park',
                     component: resolve => require(['../components/page/park/index.vue'], resolve),
                     meta: { title: '鍋滆溅鍦虹鐞�' }
                 },
                 {
-                    path: '/violationType',
-                    component: resolve => require(['../components/page/violationType/index.vue'], resolve),
-                    meta: { title: '杩濈珷绫诲瀷绠$悊' }
+                    path: '/enterPark',
+                    component: resolve => require(['../components/page/enterpark/index.vue'], resolve),
+                    meta: { title: '杞﹁締鍏ュ満绠$悊' }
                 },
                 {
                     path: '/outPark',
                     component: resolve => require(['../components/page/outPark/index.vue'], resolve),
-                    meta: { title: '璁㈠崟绠$悊' }
+                    meta: { title: '杞﹁締鍑哄満绠$悊' }
+                },
+                {
+                    path: '/parkticket',
+                    component: resolve => require(['../components/page/parkticket/index.vue'], resolve),
+                    meta: { title: '娉婅溅鍙戠エ绠$悊' }
                 },
                 {
                     path: '/whiteList',
                     component: resolve => require(['../components/page/whiteList/index.vue'], resolve),
                     meta: { title: '鐧藉悕鍗�' }
-                },
-                {
-                    path: '/ticket',
-                    component: resolve => require(['../components/page/ticket/index.vue'], resolve),
-                    meta: { title: '缃氬崟绠$悊' }
-                },
-                {
-                    path: '/street',
-                    component: resolve => require(['../components/page/street/index.vue'], resolve),
-                    meta: { title: '缃氬崟绠$悊' }
                 },
                 {
                     path: '/costRule',
@@ -57,6 +53,26 @@
                     path: '/orderRecord',
                     component: resolve => require(['../components/page/orderRecord/index.vue'], resolve),
                     meta: { title: '璁㈠崟缁熻' }
+                },
+                {
+                    path: '/violationType',
+                    component: resolve => require(['../components/page/violationType/index.vue'], resolve),
+                    meta: { title: '杩濈珷绫诲瀷绠$悊' }
+                },
+                {
+                    path: '/ticket',
+                    component: resolve => require(['../components/page/ticket/index.vue'], resolve),
+                    meta: { title: '缃氬崟绠$悊' }
+                },
+                {
+                    path: '/zfticket',
+                    component: resolve => require(['../components/page/zfticket/index.vue'], resolve),
+                    meta: { title: '缃氭病鍙戠エ绠$悊' }
+                },
+                {
+                    path: '/street',
+                    component: resolve => require(['../components/page/street/index.vue'], resolve),
+                    meta: { title: '琛楅亾绠$悊' }
                 },
             ]
         },
@@ -79,15 +95,20 @@
             component: resolve => require(['../components/page/Index2.vue'], resolve),
             meta: { title: '鏅烘収娉婅溅' }
         },
+        // {
+        //     path: '/index3',
+        //     component: resolve => require(['../components/page/Index3.vue'], resolve),
+        //     meta: { title: '鏃犵墝鍋滆溅' }
+        // },
+        {
+            path: '/index4',
+            component: resolve => require(['../components/page/Index4.vue'], resolve),
+            meta: { title: '鏃犵墝鍏ュ満' }
+        },
         {
             path: '/indexTest',
             component: resolve => require(['../components/page/IndexTest.vue'], resolve),
             meta: { title: '閭偍娴嬭瘯' }
-        },
-        {
-            path: '/index3',
-            component: resolve => require(['../components/page/Index3.vue'], resolve),
-            meta: { title: '鏃犵墝鍋滆溅' }
         },
         {
             path: '/invoice',
diff --git a/vue.config.js b/vue.config.js
index 5921df5..f7f0fd9 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,12 +1,22 @@
+var path = require("path")
 module.exports = {
     baseUrl: './',
+    configureWebpack: {
+        resolve: {
+            alias: {
+                '@': path.join(__dirname, 'src')
+            }
+        }
+    },
     assetsDir: 'static',
     productionSourceMap: false,
     devServer: {
+        sockHost: 'demo.my-domain.com',
+        disableHostCheck: true,
         proxy: {
             '/api':{
-                target:'http://183.196.93.178',
-                //target:'http://127.0.0.1',
+                //target:'http://183.196.93.178',
+                target:'http://127.0.0.1',
                 changeOrigin:true,
                 pathRewrite:{
                     '/api':''

--
Gitblit v1.9.1