فهرست منبع

前端代码合并提交

mashengyi 3 سال پیش
والد
کامیت
cd3efc7e89
32فایلهای تغییر یافته به همراه6617 افزوده شده و 51 حذف شده
  1. 54 0
      src/router/index.js
  2. 152 4
      src/views/Home.vue
  3. 29 21
      src/views/customer/Customer.vue
  4. 8 0
      src/views/customer/custRecMoney.vue
  5. 8 0
      src/views/customer/customerRecharge.vue
  6. 8 0
      src/views/noCar/billway.vue
  7. 5 0
      src/views/noCar/billwayException.vue
  8. 8 0
      src/views/noCar/calculateInfo.vue
  9. 9 1
      src/views/noCar/hcInvoice.vue
  10. 20 0
      src/views/noCar/invoice.vue
  11. 247 0
      src/views/personal/personal.vue
  12. 196 0
      src/views/platform/apply/already.vue
  13. 156 0
      src/views/platform/apply/apply.vue
  14. 201 0
      src/views/platform/apply/packaging.vue
  15. 301 0
      src/views/platform/car/carsuccess.vue
  16. 544 0
      src/views/platform/car/carupload.vue
  17. 353 0
      src/views/platform/carbinding/carbinding.vue
  18. 199 0
      src/views/platform/carbinding/carbindinglist.vue
  19. 432 0
      src/views/platform/check/check.vue
  20. 423 0
      src/views/platform/invoice/invoice.vue
  21. 450 0
      src/views/platform/invoice/list.vue
  22. 546 0
      src/views/platform/waybill/history.vue
  23. 476 0
      src/views/platform/waybill/over.vue
  24. 548 0
      src/views/platform/waybill/waybill.vue
  25. 393 0
      src/views/platform/waybillmanagement/noinvoice.vue
  26. 411 0
      src/views/platform/waybillmanagement/trueinvoice.vue
  27. 367 0
      src/views/platform/waybillmanagement/waybillList.vue
  28. 30 22
      src/views/selfCar/calculateInfo.vue
  29. 17 0
      src/views/selfCar/invoice.vue
  30. 9 1
      src/views/selfCar/selfCarTrade.vue
  31. 5 0
      src/views/selfCar/selfCarTradeException.vue
  32. 12 2
      src/views/sys/user.vue

+ 54 - 0
src/router/index.js

@@ -7,6 +7,9 @@ const Login = () => import('@/views/Login');
 const Home = () => import('@/views/Home');
 // 首页
 const Main = () => import('@/views/main/main');
+
+  // 个人中心
+  const Personal = () => import('@/views/personal/personal');
 // 个人中心
 const Customer = () => import('@/views/customer/Customer');
 const CustomerRecharge = () => import('@/views/customer/customerRecharge');
@@ -31,6 +34,32 @@ const selfInvoice = () => import('@/views/selfCar/invoice.vue');
 const selfCarTradeException = () => import('@/views/selfCar/selfCarTradeException.vue');
 const SelfCalculateInfo = () => import('@/views/selfCar/calculateInfo.vue');
 
+
+//平台菜单部分
+
+// 发票管理部分(企业注册部分)
+const Check = () => import('@/views/platform/check/check');
+//自有车
+const Apply = () => import('@/views/platform/apply/apply');
+const Already = () => import('@/views/platform/apply/already');
+const Packaging = () => import('@/views/platform/apply/packaging');
+
+const Carbinding = () => import('@/views/platform/carbinding/carbinding');
+const Carbindinglist = () => import('@/views/platform/carbinding/carbindinglist');
+
+const Carupload = () => import('@/views/platform/car/carupload');
+const Carsuccess = () => import('@/views/platform/car/carsuccess');
+
+const Waybill = () => import('@/views/platform/waybill/waybill');
+const Over = () => import('@/views/platform/waybill/over');
+const History = () => import('@/views/platform/waybill/history');
+
+const WaybillList = () => import('@/views/platform/waybillmanagement/waybillList');
+const Noinvoice = () => import('@/views/platform/waybillmanagement/noinvoice');
+const Trueinvoice = () => import('@/views/platform/waybillmanagement/trueinvoice');
+
+const Invoice = () => import('@/views/platform/invoice/invoice');
+const List = () => import('@/views/platform/invoice/list');
 // 参数管理
 const paramMagager = () => import('@/views/manager/paramMagager.vue');
 
@@ -49,6 +78,8 @@ const router = new Router({
       children: [
         // 首页
         { name: 'Main', path: '/main', component: Main },
+        //个人中心
+        {name: 'Personal', path: '/personal',component: Personal},
         // 客户管理
         { name: 'Customer', path: '/customer', component: Customer },
         { name: 'customerRecharge', path: '/CustomerRecharge', component: CustomerRecharge },
@@ -70,6 +101,29 @@ const router = new Router({
         { name: 'selfCarTradeException', path: '/selfCarTradeException', component: selfCarTradeException },
         { name: 'SelfCalculateInfo', path: '/SelfCalculateInfo', component: SelfCalculateInfo },
 
+        //平台菜单部分
+        {name: 'Check', path: '/check', component: Check},
+
+        {name: 'Apply', path: '/apply', component: Apply},
+        {name: 'Already', path: '/already', component: Already},
+        {name: 'Packaging', path: '/packaging', component: Packaging},
+
+        {name: 'Carbinding', path: '/carbinding', component: Carbinding},
+        {name: 'Carbindinglist', path: '/carbindinglist', component: Carbindinglist},
+
+        {name: 'Carupload', path: '/carupload', component: Carupload},
+        {name: 'Carsuccess', path: '/carsuccess', component: Carsuccess},
+
+        {name: 'Waybill', path: '/waybill', component: Waybill},
+        {name: 'Over', path: '/over', component: Over},
+        {name: 'History', path: '/history', component: History},
+
+        {name: 'WaybillList', path: '/waybillList', component: WaybillList},
+        {name: 'Noinvoice', path: '/noinvoice', component: Noinvoice},
+        {name: 'Trueinvoice', path: '/trueinvoice', component: Trueinvoice},
+
+        {name: 'Invoice', path: '/invoice', component: Invoice},
+        {name: 'List', path: '/list', component: List},
         // 参数管理
         { name: 'paramMagager', path: '/paramMagager', component: paramMagager }
       ]

+ 152 - 4
src/views/Home.vue

@@ -51,7 +51,7 @@
                 </el-menu>
               </template>
 
-              <template v-if="roleId == 2">
+              <template v-if="roleId == 0">
                 <el-menu
                   :default-active="$route.path"
                   unique-opened
@@ -72,7 +72,7 @@
                     <span slot="title">消费统计</span>
                   </el-menu-item> -->
                   <el-submenu
-                    v-for="item in menu"
+                    v-for="item in selfCarMenu"
                     :key="item.id"
                     :index="item.id + ''">
                     <template slot="title">
@@ -90,7 +90,7 @@
                 </el-menu>
               </template>
 
-              <template v-if="roleId == 3">
+              <template v-if="roleId == 2">
                 <el-menu
                   :default-active="$route.path"
                   unique-opened
@@ -107,7 +107,7 @@
                     <span slot="title">个人中心</span>
                   </el-menu-item>
                   <el-submenu
-                    v-for="item in menuList"
+                    v-for="item in noCarMenu"
                     :key="item.id"
                     :index="item.id + ''">
                     <template slot="title">
@@ -254,6 +254,154 @@ export default {
           ]
          }
       ],
+       noCarMenu: [
+        {
+          id: 3,
+          authName:"发票管理",
+          children:[
+            {
+              id:1,
+              path:"check",
+              authName:"发票列表"
+            },
+          ]
+        },
+        {
+          id: 4,
+          authName:"车辆备案管理",
+          children:[
+            {
+              id:2,
+              path:"carsuccess",
+              authName:"车辆备案列表"
+            },
+          ]
+        },
+        {
+          id: 5,
+          authName:"运单上传",
+          children:[
+            {
+              id:1,
+              path:"waybill",
+              authName:"实时运单上传"
+            },
+            {
+              id:2,
+              path:"over",
+              authName:"实时运单发票匹配"
+            },
+            {
+              id:3,
+              path:"history",
+              authName:"历史运单发票匹配"
+            },
+          ]
+        },
+        {
+          id: 6,
+          authName:"运单管理",
+          children:[
+            {
+              id:1,
+              path:"waybillList",
+              authName:"运单列表"
+            },
+            {
+              id:2,
+              path:"noinvoice",
+              authName:"开票中运单列表"
+            },
+            {
+              id:3,
+              path:"trueinvoice",
+              authName:"已开票运单列表"
+            },
+
+          ]
+        },
+        {
+          id: 7,
+          authName:"运单查询发票",
+          children:[
+            // {
+            //   id:1,
+            //   path:"invoice",
+            //   authName:"运单发票上传"
+            // },
+            {
+              id:2,
+              path:"list",
+              authName:"运单发票列表"
+            },
+
+          ]
+        },
+        // {
+        //   id: 8,
+        //   authName:"运单预估",
+        //   children:[
+        //
+        //     {
+        //       id:1,
+        //       path:"forecastdownload",
+        //       authName:"预估运单下载"
+        //     },
+        //   ]
+        // },
+
+      ],
+
+      selfCarMenu: [
+        {
+          id: 3,
+          authName:"发票管理",
+          children:[
+            {
+              id:1,
+              path:"check",
+              authName:"发票列表"
+            },
+          ]
+        },
+        {
+          id: 4,
+          authName:"车辆管理",
+          children:[
+            {
+              id:1,
+              path:"carbinding",
+              authName:"车辆绑定"
+            },
+            {
+              id:2,
+              path:"carbindinglist",
+              authName:"车辆绑定列表"
+            },
+          ]
+        },
+        {
+          id: 7,
+          authName:"交易管理",
+          children:[
+            {
+              id:1,
+              path:"apply",
+              authName:"申请开票"
+            },
+            {
+              id:2,
+              path:"already",
+              authName:"已开票查询"
+            },
+            {
+              id:3,
+              path:"packaging",
+              authName:"发票打包列表"
+            },
+          ]
+        },
+      ],
       roleId: '',
       userName: '',
       name: ''

+ 29 - 21
src/views/customer/Customer.vue

@@ -6,7 +6,7 @@
             <div class="top">
               <el-input  placeholder="客户名称" class="input-demo" v-model="formCondition.customName"></el-input>
                <el-button type="success" style="margin-left: 1%;" @click="loadData">查询</el-button>
-                <el-button type="success" style="margin-left: 1%;" @click="addCustomerShow = true">添加</el-button>
+                <!-- <el-button type="success" style="margin-left: 1%;" @click="addCustomerShow = true">添加</el-button> -->
                 <el-button type="primary" style="margin-left: 1%;" @click="exportExcel">导出报表</el-button>
 
             </div>
@@ -33,26 +33,27 @@
             prop="company"
             show-overflow-tooltip>
           </el-table-column>
-           <!-- <el-table-column
-            prop="invoiceTime"
-            label="开票时间"
+           <el-table-column
+            prop="fee"
+            label="etc卡月费"
             show-overflow-tooltip>
-          </el-table-column> -->
+          </el-table-column> 
            <el-table-column
-            prop="integrationType"
-            label="对接方式"
+            prop="bussinessType"
+            label="业务类型"
             show-overflow-tooltip>
              <template slot-scope="scope">
-              <span v-if="scope.row.integrationType == 0" >接口</span>
-              <span v-else-if="scope.row.integrationType == 1" >平台</span>
-              <span v-else-if="scope.row.integrationType == 3" >手工录入</span>
+              <span v-if="scope.row.bussinessType == 2" >无车</span>
+              <span v-else-if="scope.row.integrationType == 0" >自有车</span>
             </template>
           </el-table-column>
           <el-table-column
             prop="accountBalance"
             label="账号余额"
             show-overflow-tooltip>
-            
+            <template slot-scope="scope">
+               <span>{{scope.row.accountBalance| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="firstSign"
@@ -110,6 +111,9 @@
            <el-form-item label="客户主体" prop="customerCompany">
             <el-input v-model="customer.company" auto-complete="off" placeholder="请输入主体名称"></el-input>
           </el-form-item>
+           <el-form-item label="ETC卡月费" prop="customerCompany">
+            <el-input v-model="customer.fee" auto-complete="off" placeholder="etc卡月费用"></el-input>
+          </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
           <el-button @click="addCustomerShow = false" type="info">取 消</el-button>
@@ -226,7 +230,7 @@
              <template slot-scope="scope">
               <span v-if="scope.row.interType == 0">接口</span>
               <span v-if="scope.row.interType == 1">平台</span>
-              <span v-if="scope.row.interType == 3">手工录入</span>
+              <span v-if="scope.row.interType == 3">平台</span>
             </template>
           </el-table-column>
            <el-table-column
@@ -603,7 +607,7 @@
             <el-input v-model="customer.accountBalance" auto-complete="off" readonly=true></el-input>
           </el-form-item>
           <el-form-item label="充值金额">
-            <el-input v-model="customerRecharge.rechargeMony" auto-complete="off"></el-input>
+            <el-input v-model="customerRecharge.rechargeMony" @input="changeAmt" auto-complete="off"></el-input>
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -689,11 +693,20 @@ import XLSX from "xlsx";
           created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           showAddCustomerRec(){
             this.addCustomerRecShow1 =true;
             this.customerRec.customerName = this.customer.customerName;
           },
+          changeAmt(value){
+           value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '');
+           this.customerRecharge.rechargeMony = value;
+         },
           getBase64(file) {
                 this.customerRec.contractFileName = file.name;
                 this.$forceUpdate()
@@ -734,7 +747,6 @@ import XLSX from "xlsx";
           addCustomer(formName){
                 this.$refs[formName].validate(async (valid) => {
                 if(valid) {
-                  console.log(this.customer);
                   const response = await this.$http.post(`customer/addCustomer`, this.customer);
                   if(response.data.code === 0) {
                     this.loadData();
@@ -799,22 +811,20 @@ import XLSX from "xlsx";
           },
           async recInfo(recoder){
               this.recVis = true;
-            console.log(recoder);
+
 
             const response = await this.$http.post(`lowerService/customeRecQuery`, {"customerName":recoder.customerName,"companyName":recoder.companyName});
             if (response.data.code === 0) {
               this.customerRec = response.data.data;
             
-              this.disable = !((this.customerRec.interType ==3) && (this.customerRec.recStatus ==2));
-              console.log(this.disable)
+              this.disable = !((this.customerRec.interType ==3) && (this.customerRec.recStatus ==2 || this.customerRec.recStatus ==0));
+
             }
           },
           
           async concatInfo(recoder){
               //this.recVis = true;
               this.concatVis = true;
-            console.log(recoder);
-
             const response = await this.$http.post(`lowerService/customeRecQuery`, {"customerName":recoder.customerName,"companyName":recoder.companyName});
             if (response.data.code === 0) {
               this.customerRec = response.data.data;
@@ -853,7 +863,6 @@ import XLSX from "xlsx";
             }
           
             this.recVisList = true;
-            console.log(this.disable)
           },
           async carInfo(recoder){
             const response = await this.$http.post(`lowerService/customerCarRecQuery`, {"customerName":recoder.customerName});
@@ -956,7 +965,6 @@ import XLSX from "xlsx";
           handleSizeChange(val) {
             this.pagesize = val;
             this.loadData();
-            console.log(`每页 ${val} 条`);
           },
           handleCurrentChange(val) {
             this.current = val;

+ 8 - 0
src/views/customer/custRecMoney.vue

@@ -40,6 +40,9 @@
             prop="accountBalance"
             label="账号余额"
             show-overflow-tooltip>
+             <template slot-scope="scope">
+               <span>{{scope.row.accountBalance| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="accountBalanceValue"
@@ -82,6 +85,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+         filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 8 - 0
src/views/customer/customerRecharge.vue

@@ -31,6 +31,9 @@
             prop="rechargeMony"
             label="金额"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.rechargeMony| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="rechargeTime"
@@ -71,6 +74,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 8 - 0
src/views/noCar/billway.vue

@@ -94,6 +94,9 @@
             prop="fee"
             label="运单费用"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.fee/100| rounding}}</span>
+            </template>
           </el-table-column>
           
           <el-table-column
@@ -162,6 +165,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 5 - 0
src/views/noCar/billwayException.vue

@@ -133,6 +133,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 8 - 0
src/views/noCar/calculateInfo.vue

@@ -60,6 +60,9 @@
             prop="fee"
             label="费用"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.fee| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="calculateTime"
@@ -104,6 +107,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+         filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 9 - 1
src/views/noCar/hcInvoice.vue

@@ -6,7 +6,7 @@
             <div class="top">
               <!-- <el-input  placeholder="客户" class="input-demo" v-model="formCondition.customerName"></el-input> -->
               <el-input  placeholder="企业编号" class="input-demo" v-model="formCondition.companyNum"></el-input>
-              <el-date-picker v-model="formCondition.month" type="month" placeholder="选择月份"> </el-date-picker>
+              <el-date-picker v-model="formCondition.month" type="month" value-format="yyyy-MM" placeholder="选择月份"> </el-date-picker>
                <el-button type="success" style="margin-left: 1%;" @click="loadData">查询</el-button>
                <el-button type="primary" style="margin-left: 1%;" @click="exportExcel">导出报表</el-button>
             </div>
@@ -47,6 +47,9 @@
             prop="amount"
             label="金额"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.amount/100| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="rawInvoiceId"
@@ -83,6 +86,11 @@ import XLSX from "xlsx";
         created() {
           
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 20 - 0
src/views/noCar/invoice.vue

@@ -109,26 +109,41 @@
             prop="fee"
             label="交易金额"
             show-overflow-tooltip>
+             <template slot-scope="scope">
+               <span>{{scope.row.fee/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="totalAmount"
             label="价税合计"
             show-overflow-tooltip>
+             <template slot-scope="scope">
+               <span>{{scope.row.totalAmount/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="totalTaxAmount"
             label="税额"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.totalTaxAmount/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="amount"
             label="金额"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.amount/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="taxRate"
             label="税率"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.taxRate| rounding}}</span>
+            </template>
           </el-table-column>
          
          <el-table-column
@@ -174,6 +189,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+         filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 247 - 0
src/views/personal/personal.vue

@@ -0,0 +1,247 @@
+<template>
+  <div class="personal">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <div class="geren">个人中心</div>
+              <div class="line"></div>
+              <div class="from">
+                <table v-model="formUserList">
+                  <tr>
+                    <td><span>用户名</span></td>
+                    <td><span>{{formUserList.userName}}</span></td>
+                  </tr>
+
+                  <tr>
+                    <td><span>姓名</span></td>
+                    <td><span>{{formUserList.name}}</span></td>
+                  </tr>
+
+                  <tr>
+                    <td><span>企业名称</span></td>
+                    <td><span>{{formUserList.company}}</span></td>
+                  </tr>
+
+                  <tr>
+                    <td><span>手机号</span></td>
+                    <td><span>{{formUserList.phone}}</span></td>
+                  </tr>
+
+                  <tr>
+                    <td><span>余额</span></td>
+                     <td><span>{{formUserList.fee}}</span></td>
+                  </tr>
+
+                  <tr>
+                    <td><span>密码</span></td>
+                     <td><span style="color: blue; cursor:pointer;" @click="ChangeThePassword">修改密码</span></td>
+                  </tr>
+
+                </table>
+               </div>
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+      <!-- 重置密码 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="changepassword"
+        style="font-size: 0px;">
+        <div class="tou">用户--重置密码</div>
+        <div class="line"></div>
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formList">
+          <el-form-item label="用户名">
+            <el-input v-model="formList.userName" auto-complete="off" placeholder="请输入用户"></el-input>
+          </el-form-item>
+          <el-form-item label="新密码">
+            <el-input v-model="formList.password" type="password" auto-complete="off" placeholder="请输入新密码"></el-input>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="changepassword = false" type="info">取 消</el-button>
+          <el-button type="primary" @click="resetPassword">修 改</el-button>
+        </div>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      formUserList: {
+        "userName":"",
+        "password": "",
+        "price": "",
+        "id":"",
+        "name": "",
+        "phone":"",
+        "roleId": "",
+        "money": "",
+        "isLock":"",
+        "dutyParagraph": "",
+        "company": "",
+        "threshold": "",
+        "autoUpdate": ""
+      },
+      // autoUpdate: 1,
+      formupdateList: {
+        "id": "",
+        "autoUpdate": '',
+      },
+      formList: {
+        "id":"",
+        "userName":"",
+        "password": "",
+      },
+      formthresholdList: {
+        "id": "",
+        "threshold": ""
+      },
+      changepassword: false
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formupdateList.id = sessionStorage.getItem('userId');
+      this.formthresholdList.id = sessionStorage.getItem('userId');
+        const response = await this.$http.get(`user/${this.formUserList.userId}`);
+        if (response.data.code === 0) {
+          this.formUserList = response.data.data;
+          this.formupdateList.autoUpdate = response.data.data.autoUpdate;
+        };
+    },
+    // 打开修改密码的弹框
+    ChangeThePassword() {
+      this.changepassword = true;
+      this.formList.userName = this.formUserList.userName;
+      this.formList.id = this.formUserList.id;
+    },
+    // 修改是否自动更新开票中的发票信息
+    async updateInvoiceMessage() {
+      this.formupdateList.autoUpdate = this.formupdateList.autoUpdate;
+      const response = await this.$http.put(`user/auto`, this.formupdateList);
+      if(response.data.code === 0) {
+        this.loadData();
+        this.$message({
+          type: 'success',
+          message: '修改成功'
+        });
+      }else {
+        this.$message({
+          type: 'error',
+          message: '修改失败'
+        });
+      }
+    },
+    // 修改密码
+    async resetPassword() {
+      const response = await this.$http.put(`user/restPassword`, this.formList);
+      if(response.data.code === 0) {
+        this.loadData();
+        this.changepassword = false;
+        this.$router.push('/login');
+        this.$message({
+          type: 'success',
+          message: '修改成功'
+        });
+      }else {
+        this.$message({
+          type: 'error',
+          message: '修改失败'
+        });
+      }
+    },
+    //更改阈值
+    async changeThreshold() {
+      this.formthresholdList.id = this.formUserList.id;
+      this.formthresholdList.threshold = this.formUserList.threshold;
+      const response = await this.$http.put(`user`, this.formthresholdList);
+      if(response.data.code === 0) {
+        this.$message({
+          type: 'success',
+          message: '修改成功'
+        });
+      }else {
+        this.$message({
+          type: 'error',
+          message: '修改失败'
+        });
+      }
+    },
+    handleEditDialogClose() {
+      for (var key in this.formList) {
+        this.formList[key] = '';
+      };
+    },
+  }
+};
+</script>
+
+<style>
+.personal {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.personal .top {
+  padding: 20px;
+}
+.personal .geren {
+  font-size: 25px;
+  text-align: center;
+  padding-top: 15px;
+}
+.personal .line {
+  margin-top: 20px;
+  margin-bottom: 20px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.personal .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.personal .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+.personal  table {
+  width: 100%;
+  border-collapse:collapse;
+}
+.personal table th {
+  border: 1px solid #96989f;
+  text-align: center;
+  height: 40px;
+  line-height: 40px;
+}
+.personal table td {
+  width: 50%;
+  border: 1px solid #96989f;
+  text-align: left;
+  margin-left: 20px;
+  height: 40px;
+  line-height: 40px;
+}
+.personal table span {
+  margin-left: 30px;
+  font-size: 18px;
+}
+.personal .el-input__inner {
+  height: 30px !important;
+  line-height: 30px !important;
+}
+</style>

+ 196 - 0
src/views/platform/apply/already.vue

@@ -0,0 +1,196 @@
+<template>
+  <div class="already">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="请输入车牌号码" class="input-demo" v-model="formList.plateNum"></el-input>
+              <el-date-picker
+                v-model="formList.startInvoiceMakeTime"
+                type="datetime"
+                placeholder="选择开始日期时间"
+                style="margin-left: 1%;">
+              </el-date-picker>
+              <el-date-picker
+                v-model="formList.endInvoiceMakeTime"
+                type="datetime"
+                placeholder="选择结束日期时间"
+                style="margin-left: 1%;">
+              </el-date-picker>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook" v-loading.fullscreen.lock="fullscreenLoading">查询</el-button>
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+      <template>
+        <el-table
+          ref="multipleTable"
+          :data="usertabletwo"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            prop="cardId"
+            label="ETC卡号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="税额(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.totalTaxAmount / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="价税合计(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.totalAmount / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="sellerTaxpayerCode"
+            label="销方税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sellerName"
+            label="销方名称"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="plateNum"
+            label="车牌号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceNum"
+            label="发票号码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceCode"
+            label="发票代码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceMakeTime"
+            label="开票时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="enStationName"
+            label="入口收费站"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="exStationName"
+            label="出口收费站"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="交易金额(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="tradeId"
+            label="交易ID"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.invoiceUrl)">下载</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      fullscreenLoading: false,
+      usertabletwo: [],
+      roleId: '',
+      // codeNumber: '',
+      formList: {
+        "companyNum": "",
+        "userId": "",
+        "plateNum": "",
+        "startInvoiceMakeTime": "",
+        "endInvoiceMakeTime": "",
+      },
+
+    }
+  },
+  created() {
+    this.formList.companyNum = sessionStorage.getItem('companyNum');
+    this.formList.userId = sessionStorage.getItem('userId');
+    // this.loadData();
+  },
+  methods: {
+    // 查询已开发票数据
+    async queryLook() {
+      this.formList.companyNum = sessionStorage.getItem('companyNum');
+      this.formList.userId = sessionStorage.getItem('userId');
+      this.fullscreenLoading = true;
+      this.formList.startInvoiceMakeTime = (new Date(this.formList.startInvoiceMakeTime)).getTime();
+      this.formList.endInvoiceMakeTime = (new Date(this.formList.endInvoiceMakeTime)).getTime();
+      const response = await this.$http.post(`/b2bInvoiceQuery/query`, this.formList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0) {
+        this.usertabletwo = response.data.data;
+        this.fullscreenLoading = false;
+        this.formList.plateNum = '';
+        this.formList.startInvoiceMakeTime = '';
+        this.formList.endInvoiceMakeTime = '';
+      }else{
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+        this.formList.plateNum = '';
+        this.formList.startInvoiceMakeTime = '';
+        this.formList.endInvoiceMakeTime = '';
+      }
+    },
+    // 展示发票全部信息
+    checkLook(user) {
+      window.location.href= user;
+    },
+
+  }
+};
+</script>
+
+<style>
+.already {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.already .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.already .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+
+.already .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+
+</style>

+ 156 - 0
src/views/platform/apply/apply.vue

@@ -0,0 +1,156 @@
+<template>
+  <div class="apply">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="请输入车牌号码" class="input-demo" v-model="plateNum"></el-input>
+              <el-date-picker
+                v-model="startExTime"
+                type="datetime"
+                placeholder="选择开始日期时间"
+                style="margin-left: 1%;">
+               </el-date-picker>
+              <el-date-picker
+                v-model="endExTime"
+                type="datetime"
+                placeholder="选择结束日期时间"
+                style="margin-left: 1%;">
+               </el-date-picker>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="applyForTicket">全部开票</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+      <template>
+        <el-table
+          ref="multipleTable"
+          :data="usertabletwo"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="车牌号码"
+            prop="plateNum"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="cardId"
+            label="ETC卡号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="tradeId"
+            label="交易ID"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="exTime"
+            label="交易时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="交易金额"
+            show-overflow-tooltip>
+          </el-table-column>
+        </el-table>
+      </template>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      usertabletwo: [],
+      plateNum: '',
+      startExTime: '',
+      endExTime: '',
+      companyNum: '',
+      userId: '',
+      roleId: '',
+      // codeNumber: '',
+      formList: []
+    }
+  },
+  created() {
+    this.companyNum = sessionStorage.getItem('companyNum');
+    this.userId = sessionStorage.getItem('userId');
+  },
+  methods: {
+    // 查询交易数据
+    async queryLook() {
+      this.startExTime = (new Date(this.startExTime)).getTime();
+      this.endExTime = (new Date(this.endExTime)).getTime();
+      var object = new Object();
+      object.companyNum = this.companyNum;
+      object.userId = this.userId;
+      object.plateNum = this.plateNum;
+      object.startExTime = this.startExTime;
+      object.endExTime = this.endExTime;
+      this.formList.push(object);
+      const response = await this.$http.post(`/cardTrade/query`, this.formList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0) {
+        this.usertabletwo = response.data.data;
+        this.formList = [];
+      }else{
+        this.$message.error(msg);
+        this.formList = [];
+      }
+    },
+    //申请开票
+    async applyForTicket() {
+      this.startExTime = (new Date(this.startExTime)).getTime();
+      this.endExTime = (new Date(this.endExTime)).getTime();
+      var object = new Object();
+      object.companyNum = this.companyNum;
+      object.userId = this.userId;
+      object.plateNum = this.plateNum;
+      object.startExTime = this.startExTime;
+      object.endExTime = this.endExTime;
+      this.formList.push(object);
+      const response = await this.$http.post(`/b2bInvoice/apply`, this.formList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.$message({
+          type: 'success',
+          message: '开票成功'
+        });
+        this.formList = [];
+      }else{
+        this.$message.error(msg);
+        this.formList = [];
+      }
+    },
+
+  }
+};
+</script>
+
+<style>
+.apply {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.apply .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.apply .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.apply .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+
+</style>

+ 201 - 0
src/views/platform/apply/packaging.vue

@@ -0,0 +1,201 @@
+<template>
+  <div class="packaging">
+    <!-- 头部细节部分 -->
+      <div class="title">
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-date-picker
+                v-model="formPackList.makeMonth"
+                type="month"
+                placeholder="选择月"
+                style="margin-left: 1%;">
+              </el-date-picker>
+              <el-button type="success" style="margin-left: 1%;" @click="applyForTicket">发票打包</el-button>
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+      <template>
+        <el-table
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            prop="companyName"
+            label="企业名称"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="makeMonth"
+            label="发票开具月"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="csvUrl"
+            label="发票明细下载"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span v-if="scope.row.csvUrl != ''" style="cursor:pointer;" @click="DownloadTwo(scope.row.csvUrl)">下载</span>
+              <span v-if="scope.row.csvUrl == ''" >无</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="pdfUrl"
+            label="发票打包下载"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span v-if="scope.row.pdfUrl != ''" style="cursor:pointer;" @click="Download(scope.row.pdfUrl)">下载</span>
+              <span v-if="scope.row.pdfUrl == ''" >无</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      companyName: '',
+      usertable: [],
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      formList: {
+        "userId": "",
+        "roleId": ""
+      },
+      formPackList: {
+        "userId": "",
+        "companyNum": "",
+        "makeMonth": "",
+      }
+    }
+  },
+  created() {
+    this.loadData();
+    this.formPackList.companyNum = sessionStorage.getItem('companyNum');
+    this.formPackList.userId = sessionStorage.getItem('userId');
+  },
+  methods: {
+    //数据加载
+    async loadData() {
+      this.formList.userId = sessionStorage.getItem('userId');
+      this.formList.roleId = sessionStorage.getItem('roleId');
+
+      if(this.formList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        const response = await this.$http.post(`b2bInvoicePackage/page`, formData);
+        if (response.data.code === 0) {
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formList.userId);
+        const response = await this.$http.post(`b2bInvoicePackage/page`, formData);
+        if (response.data.code === 0) {
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    //发票打包
+    async applyForTicket() {
+      this.formPackList.makeMonth = (new Date(this.formPackList.makeMonth)).getTime();
+      const response = await this.$http.post(`/b2bInvoicePackage/package`, this.formPackList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        // console.log(response.data.data);
+        this.$message({
+          type: 'success',
+          message: '发票打包成功'
+        });
+        this.usertable = response.data.data;
+      }else{
+        this.$message.error(msg);
+      }
+    },
+    //下载打包
+    Download(url) {
+      window.location.href= url;
+    },
+
+    DownloadTwo(url) {
+      window.location.href= url;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.companyName !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.companyName !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+
+  }
+};
+</script>
+
+<style>
+.packaging {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.packaging .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.packaging .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.packaging  .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.packaging .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+
+</style>

+ 301 - 0
src/views/platform/car/carsuccess.vue

@@ -0,0 +1,301 @@
+<template>
+  <div class="carsuccess">
+    <!-- 头部细节部分 -->
+      <div class="title">
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+
+              <label style="margin-left: 1%;">车牌号:</label>
+              <el-input  placeholder="车牌号" class="input-demo" v-model="plateNumber"></el-input>
+              <label style="margin-left: 1%;">备案结果:</label>
+              <el-select v-model="isSuccess" placeholder="请选择备案结果">
+                <el-option
+                  v-for="item in optionone"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="exportOut">导出</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            prop="plateNumber"
+            label="车牌号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+              label="车牌颜色"
+              show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-if="scope.row.plateColor == 0">蓝色</span>
+                <span v-else-if="scope.row.plateColor == 1">黄色</span>
+                <span v-else-if="scope.row.plateColor == 2">黑色</span>
+                <span v-else-if="scope.row.plateColor == 3">白色</span>
+                <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+                <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+                <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+                <span v-else-if="scope.row.plateColor == 9">未确定</span>
+              </template>
+            </el-table-column>
+          <el-table-column
+            label="备案结果"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.isSuccess == 1">成功</span>
+              <span v-else-if="scope.row.isSuccess == 2">失败</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="errorMsg"
+            label="信息"
+            show-overflow-tooltip>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      userCompany: '',
+      plateNumber: '',
+      plateColor: '',
+      startTime: '',
+      endTime: '',
+      isSuccess: '',
+      optionone: [{
+          value: '1',
+          label: '成功'
+        }, {
+          value: '2',
+          label: '失败'
+        }],
+      current: 1,
+      pagesize: 10,
+      total: 0,
+      usertable: [],
+      formUserList: {
+       "userId": "",
+       "file": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('isSuccess', this.isSuccess);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+        };
+      };
+    },
+    //查询
+    async queryLook() {
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('isSuccess', this.isSuccess);
+        formData.append('userCompany', this.userCompany);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('plateColor', this.plateColor);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('isSuccess', this.isSuccess);
+        formData.append('userCompany', this.userCompany);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('plateColor', this.plateColor);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+        };
+      };
+    },
+    //导出功能
+    exportOut() {
+      var url = `http://invoice.back.jkcredit.com/carFreeCarrierRegister/export?userId=${this.formUserList.userId}`;
+      if (this.plateNumber !== '') {
+        url += `&plateNumber=${this.plateNumber}`;
+      }
+      if (this.isSuccess !== '') {
+        url += `&isSuccess=${this.isSuccess}`;
+      }
+      window.location.href= url;
+    },
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.plateNumber !== '' || this.isSuccess !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.plateNumber !== '' || this.isSuccess !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+
+  }
+};
+</script>
+
+<style>
+.carsuccess {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.carsuccess .upload-demo {
+  display: inline-block;
+}
+.carsuccess .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.carsuccess .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.carsuccess .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.carsuccess .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.carsuccess .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.carsuccess .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.carsuccess .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.carsuccess .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.carsuccess .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.carsuccess .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.carsuccess .el-dialog {
+  width: 90%;
+}
+.carsuccess .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 544 - 0
src/views/platform/car/carupload.vue

@@ -0,0 +1,544 @@
+<template>
+  <div class="carupload">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                action="http://invoice.back.jkcredit.com/"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :on-change="handleSuccess"
+                :auto-upload="false">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="batchUpload" v-loading.fullscreen.lock="fullscreenLoading">提交</el-button>
+                 <div style="margin-top: 10px;">导入文件:</div>
+              </el-upload>
+
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="用户名" class="input-demo" style="margin: 0;" v-model="userName"></el-input>
+              <el-input  placeholder="用户所在公司" class="input-demo" v-model="userCompany"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+              <el-button style="margin-left: 1%;" @click="DownloadTemplate">下载模板</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+       <!--        <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="用户名"
+            prop="userName"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="用户手机号"
+            prop="userPhone"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userCompany"
+            label="用户所在公司"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.id)">查看</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+    <!-- 查看 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="addList"
+        style="font-size: 0px;">
+        <template>
+          <div class="tou">无车承运人备案列表</div>
+          <div class="line"></div>
+          <div class="styleType">
+              <el-input  placeholder="用户手机号" class="theinput" v-model="userPhone"></el-input>
+              <el-input  placeholder="车牌号" class="theinput" v-model="plateNumber"></el-input>
+              <label>车牌颜色:</label>
+              <el-select v-model="plateColor" placeholder="请选择车牌颜色">
+                <el-option
+                  v-for="item in optionone"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              <!-- <el-input  placeholder="车牌颜色" class="theinput" ></el-input> -->
+              <el-button type="success" style="margin-left: 1%;" @click="queryLookTwo">查询</el-button>
+              <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            border
+            tooltip-effect="dark">
+            <el-table-column
+              label="用户名"
+              prop="userName"
+              show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column
+              label="用户手机号"
+              prop="userPhone"
+              show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column
+              prop="userCompany"
+              label="用户所在公司"
+              show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column
+              prop="plateNumber"
+              label="车牌号"
+              show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column
+              label="车牌颜色"
+              show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-if="scope.row.plateColor == 0">蓝色</span>
+                <span v-else-if="scope.row.plateColor == 1">黄色</span>
+                <span v-else-if="scope.row.plateColor == 2">黑色</span>
+                <span v-else-if="scope.row.plateColor == 3">白色</span>
+                <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+                <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+                <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+                <span v-else-if="scope.row.plateColor == 9">未确定</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="batchNumber"
+              label="批次号"
+              show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column
+              label="创建时间"
+              show-overflow-tooltip>
+              <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.createTime | fmtDate}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="是否备案成功"
+              show-overflow-tooltip>
+                <template slot-scope="scope">
+                <span v-if="scope.row.isSuccess == 1">备案成功(有ETC)</span>
+                <span v-else-if="scope.row.isSuccess == 2">备案失败(没有ETC)</span>
+                <span v-else-if="scope.row.isSuccess == 3">备案失败(车辆已备案)</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+      </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      userName: '',
+      userCompany: '',
+      batchNumber: '',
+      userPhone: '',
+      plateNumber: '',
+      plateColor: '',
+      optionone: [{
+          value: '0',
+          label: '蓝色'
+        }, {
+          value: '1',
+          label: '黄色'
+        }, {
+          value: '2',
+          label: '黑色'
+        }, {
+          value: '3',
+          label: '白色'
+        }, {
+          value: '4',
+          label: '渐变绿色'
+        }, {
+          value: '5',
+          label: '黄绿渐变色'
+        }, {
+          value: '6',
+          label: '蓝白渐变色'
+        }, {
+          value: '9',
+          label: '未确定'
+        }],
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      batch: '',
+      batchId: '',
+      usertable: [],
+      usertabletwo: [],
+      formUserList: {
+       "userId": "",
+       "file": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 1);
+        const response = await this.$http.post(`batch/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 1);
+        const response = await this.$http.post(`batch/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+        };
+      };
+    },
+    //查询
+    async queryLook() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 1);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 1);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+        };
+      };
+    },
+    // 下载模板
+    DownloadTemplate() {
+      var url = 'http://invoice.back.jkcredit.com/carFreeCarrierRegister/downTemp';
+
+      window.location.href= url;
+
+    },
+    // 批量上传模板信息
+    async batchUpload() {
+      this.fullscreenLoading = true;
+      const formData = new FormData();
+      formData.append('userId', this.formUserList.userId);
+      formData.append('file', this.formUserList.file);
+      const response = await this.$http.post(`carFreeCarrierRegister/excel`,formData);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.loadData();
+        this.fullscreenLoading = false;
+        this.$message.success('上传成功');
+      }else if(code === 1 && msg == null && data == null) {
+        this.fullscreenLoading = false;
+        this.$message.error('数据存在错误,请检查文件中数据');
+      }else {
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+      }
+    },
+    // 查看批次数据
+    async checkLook(id) {
+      this.addList = true;
+      this.batchId = id;
+      this.loadDataCar();
+    },
+    // 查看批次数据
+    async loadDataCar() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查看(二)
+    async queryLookTwo(){
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('userPhone', this.userPhone);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('plateColor', this.plateColor);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+          if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('userPhone', this.userPhone);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('plateColor', this.plateColor);
+        const response = await this.$http.post(`carFreeCarrierRegister/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+
+    // 清空表单数据
+    handleEditDialogClose() {
+      this.userPhone = '';
+      this.plateNumber = '';
+      this.plateColor = '';
+      this.current = 1;
+      this.pagesize = 8;
+      this.currenttwo = 1;
+      this.pagesizetwo = 8;
+    },
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.userPhone !== '' || this.plateNumber !== '' || this.plateColor !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.userPhone !== '' || this.plateNumber !== '' || this.plateColor !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.carupload {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.carupload .upload-demo {
+  display: inline-block;
+}
+.carupload .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.carupload .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.carupload .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.carupload .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.carupload .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.carupload .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.carupload .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.carupload .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.carupload .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.carupload .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.carupload .el-dialog {
+  width: 90%;
+}
+.carupload .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 353 - 0
src/views/platform/carbinding/carbinding.vue

@@ -0,0 +1,353 @@
+<template>
+  <div class="carbinding">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="请输入车牌号码" class="input-demo" v-model="plateNum"></el-input>
+              <el-select v-model="plateColor" placeholder="请选择车牌颜色">
+                <el-option
+                  v-for="item in optionone"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="checkLook">绑定</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+      <template>
+        <el-table
+          ref="multipleTable"
+          :data="usertabletwo"
+          height="370px"
+          border
+          tooltip-effect="dark"
+          @selection-change="handleSelectionChange">
+          <el-table-column
+          type="selection"
+          width="40">
+        </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNum"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="mobile"
+            label="手机号码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌颜色"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.plateColor == 0">蓝色</span>
+              <span v-else-if="scope.row.plateColor == 1">黄色</span>
+              <span v-else-if="scope.row.plateColor == 2">黑色</span>
+              <span v-else-if="scope.row.plateColor == 3">白色</span>
+              <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+              <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+              <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+              <span v-else-if="scope.row.plateColor == 9">未确定</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="cardId"
+            label="ETC卡号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <!-- <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor: pointer;" @click="checkLook(scope.row)">绑定</span>
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </template>
+
+    <!-- 绑定 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="binDing"
+        style="font-size: 0px;">
+        <div class="tou">ETC卡--绑定</div>
+        <div class="line"></div>
+        <el-form
+          label-position="right"
+          label-width="110px"
+          ref="ruleForm"
+          :model="formCodeList">
+          <el-form-item label="联系电话">
+            <el-input v-model="formCodeList.mobile" auto-complete="off" placeholder="请输入联系电话"></el-input>
+          </el-form-item>
+
+          <el-form-item label="验证码" prop="bankNumber">
+            <el-input v-model="codeNumber" auto-complete="off" placeholder="请输入验证码" style="width: 70%;"></el-input>
+            <el-button type="success" style="margin-left: 1%; width: 28%;" @click="getCode">获取验证码</el-button>
+          </el-form-item>
+
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="binDing = false" type="info">取 消</el-button>
+          <el-button type="primary" @click="BindingCard">绑 定</el-button>
+        </div>
+      </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      rules: {
+          bankNumber: [
+            { required: true, message: '请输入银行账号', trigger: 'blur' },
+            { min: 12, max: 20, message: '长度在 12 到 20 个字符', trigger: 'blur' }
+          ],
+          address: [
+            { required: true, message: '请输入公司地址', trigger: 'blur' },
+          ],
+          bankAddress : [
+            { required: true, message: '请输入开户行', trigger: 'blur' },
+          ],
+          phone: [
+            { required: true, message: '请输入手机号', trigger: 'blur' },
+            { min: 11, max: 11, message: '长度在 11 个字符', trigger: 'blur' }
+          ],
+          dutyParagraph:[
+            { required: true, message: '请输入税号', trigger: 'blur' },
+            { min: 15, max: 20, message: '长度在 15 到 20 个字符', trigger: 'blur' }
+          ],
+          company: [
+            { required: true, message: '请输入发票抬头', trigger: 'blur' },
+          ],
+        },
+      binDing: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      usertabletwo: [],
+      optionone: [{
+          value: '0',
+          label: '蓝色'
+        }, {
+          value: '1',
+          label: '黄色'
+        }, {
+          value: '2',
+          label: '黑色'
+        }, {
+          value: '3',
+          label: '白色'
+        }, {
+          value: '4',
+          label: '渐变绿色'
+        }, {
+          value: '5',
+          label: '黄绿渐变色'
+        }, {
+          value: '6',
+          label: '蓝白渐变色'
+        }, {
+          value: '9',
+          label: '未确定'
+      }],
+      plateNum: '',
+      plateColor: '',
+      roleId: '',
+      codeNumber: '',
+      multipleSelection: [],
+      formCodeList: {
+        "mobile": "",
+        "userId": "",
+        "companyNum": "",
+        "cardList": []
+      },
+      formBindingList: {
+        "mobile": "",
+        "userId": "",
+        "companyNum": "",
+      },
+      formList: {
+        "companyNum": "",
+        "userId": "",
+        "vehicleList": []
+      }
+    }
+  },
+  created() {
+    this.formList.companyNum = sessionStorage.getItem('companyNum');
+    this.formList.userId = sessionStorage.getItem('userId');
+  },
+  methods: {
+    // 查询银行卡数据
+    async queryLook() {
+      this.formList.companyNum = sessionStorage.getItem('companyNum');
+      this.formList.userId = sessionStorage.getItem('userId');
+      var object = new Object();
+      object.plateNum = this.plateNum;
+      object.plateColor = this.plateColor;
+      this.formList.vehicleList.push(object);
+      const response = await this.$http.post(`/carEtcCard/queryCard`, this.formList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.usertabletwo = response.data.data;
+        this.plateNum = '';
+        this.plateColor = '';
+        this.formList.companyNum = '';
+        this.formList.userId = '';
+        this.formList.vehicleList = [];
+      }else{
+        this.$message.error(msg);
+        this.plateNum = '';
+        this.plateColor = '';
+        this.formList.companyNum = '';
+        this.formList.userId = '';
+        this.formList.vehicleList = [];
+      }
+    },
+    // 当选择中列表前的小框时候
+    handleSelectionChange(val) {
+        this.multipleSelection = val;
+        // console.log(this.multipleSelection)
+    },
+    // 获取验证码数据
+    checkLook() {
+      this.formCodeList.companyNum = sessionStorage.getItem('companyNum');
+      this.formCodeList.userId = sessionStorage.getItem('userId');
+      this.formBindingList.companyNum = sessionStorage.getItem('companyNum');
+      this.formBindingList.userId = sessionStorage.getItem('userId');
+      var len = this.multipleSelection.length;
+
+      var flag = true;
+      for(var i = 0; i < len; i++) {
+        if(this.multipleSelection[0].mobile !== this.multipleSelection[i].mobile) {
+          flag = false;
+        }else{
+          var object = new Object();
+          object.cardId = this.multipleSelection[i].id;
+          this.formCodeList.cardList.push(object);
+        }
+      }
+      if(len === 0 ) {
+        this.$message.error('请选择需要绑定的ETC卡');
+      }
+      if(flag === true && len !== 0) {
+        this.binDing = true;
+      }else if(len !== 0){
+        this.$message.error('请选择相同手机号下的ETC卡');
+      }
+
+    },
+
+
+    // 获取验证码
+    async getCode() {
+      const response = await this.$http.post(`/carEtcCard/send`, this.formCodeList);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+
+      }else {
+        this.$message.error(msg);
+      }
+    },
+    //绑定银行卡
+    async BindingCard () {
+      this.formBindingList.mobile = this.formCodeList.mobile;
+      const response = await this.$http.post(`/carEtcCard/bind/${this.codeNumber}`, this.formBindingList);
+       var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.binDing = false;
+        for (var key in this.formBindingList) {
+          this.formBindingList[key] = '';
+        };
+        this.$message({
+          type: 'success',
+          message: '绑定成功'
+        });
+      }else{
+        this.$message.error(msg);
+      }
+    },
+
+    // 清空表单数据
+    handleEditDialogClose() {
+      for (var key in this.formList) {
+        this.formList[key] = '';
+      };
+      for (var key in this.formBindingList) {
+        this.formBindingList[key] = '';
+      };
+      this.formCodeList.cardList = [];
+      this.formCodeList.mobile = '';
+
+    },
+  }
+};
+</script>
+
+<style>
+.carbinding {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.carbinding .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.carbinding .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.carbinding .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.carbinding .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.carbinding .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+
+.carbinding .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.carbinding .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.carbinding .xinxi {
+  text-align: center;
+  margin: 15px auto;
+  font-size: 18px;
+}
+
+.carbinding .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+
+</style>

+ 199 - 0
src/views/platform/carbinding/carbindinglist.vue

@@ -0,0 +1,199 @@
+<template>
+  <div class="carbindinglist">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="请输入车牌号码" class="input-demo" v-model="plateNum"></el-input>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="车牌号码"
+            prop="plateNum"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="mobile"
+            label="手机号码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="绑定时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.bindTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="cardId"
+            label="ETC卡号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <!-- <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor: pointer;" @click="checkLook(scope.row)">绑定</span>
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </template>
+
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      usertable: [],
+      plateNum: '',
+      roleId: '',
+      formList: {
+        "userId": "",
+        "roleId": ""
+      },
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    //数据加载
+    async loadData() {
+      this.formList.userId = sessionStorage.getItem('userId');
+      this.formList.roleId = sessionStorage.getItem('roleId');
+      if(this.formList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        const response = await this.$http.post(`carEtcCard/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formList.userId);
+        const response = await this.$http.post(`carEtcCard/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    // 查询
+    async queryLook() {
+      if(this.formList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('plateNum', this.plateNum);
+        const response = await this.$http.post(`carEtcCard/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formList.userId);
+        formData.append('plateNum', this.plateNum);
+        const response = await this.$http.post(`carEtcCard/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.plateNum !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.plateNum !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+  }
+};
+</script>
+
+<style>
+.carbindinglist {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.carbindinglist .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.carbindinglist .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.carbindinglist .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.carbindinglist .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.carbindinglist .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+
+</style>

+ 432 - 0
src/views/platform/check/check.vue

@@ -0,0 +1,432 @@
+<template>
+  <div class="check">
+    <!-- 头部细节部分 -->
+    <div class="title">
+      <el-row>
+        <el-col :span="24">
+          <div class="top">
+            <el-input  placeholder="用户名" class="input-demo" v-model="userName"></el-input>
+            <el-input  placeholder="联系电话" class="input-demo" v-model="phone"></el-input>
+            <el-input  placeholder="税号" class="input-demo" v-model="dutyParagraph"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+
+      <el-row>
+        <el-col :span="24">
+          <div class="top">
+            <el-input  placeholder="发票抬头" class="input-demo" v-model="company"></el-input>
+            <el-button type="success" style="margin-left: 1%;" @click="addList = true;">新增</el-button>
+            <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+          </div>
+        </el-col>
+      </el-row>
+
+    </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+    <template>
+      <el-table
+        v-loading="loading"
+        ref="multipleTable"
+        :data="usertable"
+        height="370px"
+        border
+        tooltip-effect="dark">
+        <el-table-column
+          label="用户名"
+          prop="userName"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          label="用户手机号"
+          prop="userPhone"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="userCompany"
+          label="用户所在公司"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="buyerTel"
+          label="联系电话"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="dutyParagraph"
+          label="税号"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="company"
+          label="发票抬头"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="bankNumber"
+          label="银行账号"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="bankAddress"
+          label="开户行"
+          show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column
+          prop="address"
+          label="公司地址"
+          show-overflow-tooltip>
+        </el-table-column>
+      </el-table>
+    </template>
+
+    <!-- 分页 -->
+    <div class="block">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+
+    <!-- 添加 -->
+    <el-dialog
+      @close="handleEditDialogClose"
+      :visible.sync="addList"
+      style="font-size: 0px;">
+      <div class="tou">我的公司管理--添加</div>
+      <div class="line"></div>
+      <div class="xinxi">发票信息</div>
+      <el-form
+        label-position="right"
+        label-width="110px"
+        :rules="rules"
+        ref="ruleForm"
+        :model="formUserList">
+        <el-form-item label="用户名">
+          <el-input v-model="formUserList.userName" :disabled="true" auto-complete="off" placeholder="请输入用户名"></el-input>
+        </el-form-item>
+
+        <el-form-item label="税号" prop="dutyParagraph">
+          <el-input v-model="formUserList.dutyParagraph" auto-complete="off" placeholder="税号"></el-input>
+        </el-form-item>
+
+        <el-form-item label="发票抬头" prop="company">
+          <el-input v-model="formUserList.company" auto-complete="off" placeholder="发票抬头"></el-input>
+        </el-form-item>
+
+        <el-form-item label="开户行" prop="bankAddress">
+          <el-input v-model="formUserList.bankAddress" auto-complete="off" placeholder="开户行"></el-input>
+        </el-form-item>
+
+        <el-form-item label="银行账号" prop="bankNumber">
+          <el-input v-model="formUserList.bankNumber" auto-complete="off" placeholder="银行账号"></el-input>
+        </el-form-item>
+
+        <el-form-item label="购方电话" prop="buyerTel">
+          <el-input v-model="formUserList.buyerTel" auto-complete="off" placeholder="购方电话"></el-input>
+        </el-form-item>
+
+        <el-form-item label="公司地址" prop="address">
+          <el-input v-model="formUserList.address" auto-complete="off" placeholder="公司地址"></el-input>
+        </el-form-item>
+
+        <el-form-item label="联系人" prop="contact">
+          <el-input v-model="formUserList.contact" auto-complete="off" placeholder="联系人"></el-input>
+        </el-form-item>
+
+        <el-form-item label="联系电话" prop="contactTel">
+          <el-input v-model="formUserList.contactTel" auto-complete="off" placeholder="联系电话"></el-input>
+        </el-form-item>
+
+        <el-form-item label="经营范围" prop="operatingRangeType">
+          <el-select v-model="formUserList.operatingRangeType" placeholder="请选择经营范围" style="width: 100%">
+            <el-option
+              v-for="item in optionone"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+
+        <div class="line"></div>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="addList = false" type="info">取 消</el-button>
+        <el-button type="primary" @click="addData('ruleForm')">新 增</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+  export default{
+    data() {
+      return {
+        loading: false,
+        rules: {
+          bankNumber: [
+            { required: true, message: '请输入银行账号', trigger: 'blur' },
+            { min: 9, max: 30, message: '长度在 9 到 30 个字符', trigger: 'blur' }
+          ],
+          address: [
+            { required: true, message: '请输入公司地址', trigger: 'blur' },
+          ],
+          bankAddress : [
+            { required: true, message: '请输入开户行', trigger: 'blur' },
+          ],
+          contactTel: [
+            { required: true, message: '请输入正确联系方式', trigger: 'blur' },
+          ],
+          dutyParagraph:[
+            { required: true, message: '请输入税号', trigger: 'blur' },
+            { min: 15, max: 30, message: '长度在 15 到 30 个字符', trigger: 'blur' }
+          ],
+          company: [
+            { required: true, message: '请输入发票抬头', trigger: 'blur' },
+          ],
+          operatingRangeType: [
+            { required: true, message: '请选择经营范围', trigger: 'change' }
+          ],
+          contact: [
+            {required: true, message: '请输入联系人', trigger: 'blur'},
+          ],
+          buyerTel: [
+            {required: true, message: '请输入正确的购方电话', trigger: 'blur'},
+          ],
+        },
+        optionone: [{
+          value: '1',
+          label: '快递'
+        }, {
+          value: '2',
+          label: '速运'
+        },{
+          value: '3',
+          label: '货运代理'
+        },{
+          value: '4',
+          label: '普通货运'
+        },{
+          value: '5',
+          label: '专线运输'
+        },{
+          value: '6',
+          label: '其他'
+        }],
+        addList: false,
+        current: 1,
+        pagesize: 8,
+        total: 0,
+        usertable: [],
+        userName: "",
+        phone: "",
+        dutyParagraph: "",
+        company: "",
+        formUserList: {
+          "userName":"",
+          "phone": "",
+          "dutyParagraph":"",
+          "company":"",
+          "bankNumber":"",
+          "bankAddress":"",
+          "address":"",
+          "userId":"",
+          "operatingRangeType": "",
+          "roleId": "",
+          "contact": "",
+          "contactTel": "",
+          "buyerTel": ""
+        },
+      }
+    },
+    created() {
+     this.loadData();
+    },
+    methods: {
+      // 列表展示
+      async loadData() {
+        this.formUserList.userName = sessionStorage.getItem('userName');
+        this.formUserList.userId = sessionStorage.getItem('userId');
+        this.formUserList.roleId = sessionStorage.getItem('roleId');
+        if(this.formUserList.roleId == 1) {
+          const formData = new FormData();
+          formData.append('current', this.current);
+          formData.append('size', this.pagesize);
+          const response = await this.$http.post(`invoice/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+          };
+        }else {
+          const formData = new FormData();
+          formData.append('current', this.current);
+          formData.append('size', this.pagesize);
+          formData.append('userId', this.formUserList.userId);
+          const response = await this.$http.post(`invoice/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+          };
+        };
+      },
+
+      async queryLook(){
+        if(this.formUserList.roleId == 1) {
+          const formData = new FormData();
+          formData.append('current', this.current);
+          formData.append('size', this.pagesize);
+          formData.append('userName', this.userName);
+          formData.append('phone', this.phone);
+          formData.append('dutyParagraph', this.dutyParagraph);
+          formData.append('company', this.company);
+          const response = await this.$http.post(`invoice/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+          };
+        }else {
+          this.formUserList.userId = sessionStorage.getItem('userId');
+          const formData = new FormData();
+          formData.append('current', this.current);
+          formData.append('size', this.pagesize);
+          formData.append('userId', this.formUserList.userId);
+          formData.append('userName', this.userName);
+          formData.append('phone', this.phone);
+          formData.append('dutyParagraph', this.dutyParagraph);
+          formData.append('company', this.company);
+          const response = await this.$http.post(`invoice/list`, formData);
+          if (response.data.code === 0) {
+            this.loading = false;
+            this.usertable = response.data.data.records;
+            this.total = response.data.data.total;
+          };
+        };
+      },
+      // 新增发票信息
+      addData(formName) {
+        this.$refs[formName].validate(async (valid) => {
+          if(valid) {
+            const response = await this.$http.post(`invoice/add`, this.formUserList);
+            if(response.data.code === 0) {
+              this.loadData();
+              this.addList = false;
+              this.$message({
+                type: 'success',
+                message: '添加成功'
+              });
+              // for (var key in this.formUserList) {
+              //   this.formUserList[key] = '';
+              // };
+            }else {
+              this.$message({
+                type: 'error',
+                message: '添加失败'
+              });
+            }
+          }else {
+            this.$message.error('请查看是否有选项未填写或填错项');
+            return false;
+          }
+        })
+      },
+
+      // 清空表单数据
+      handleEditDialogClose() {
+        for (var key in this.formUserList) {
+          this.formUserList[key] = '';
+        };
+        this.formUserList.userName = sessionStorage.getItem('userName');
+      },
+      // 分页方法
+      handleSizeChange(val) {
+        this.pagesize = val;
+        if(this.userName !== '' || this.phone !== '' || this.dutyParagraph !== '' || this.company !== '') {
+          this.queryLook();
+        }else{
+          this.loadData();
+        };
+        console.log(`每页 ${val} 条`);
+      },
+      handleCurrentChange(val) {
+        this.current = val;
+        if(this.userName !== '' || this.phone !== '' || this.dutyParagraph !== '' || this.company !== '') {
+          this.queryLook();
+        }else{
+          this.loadData();
+        };
+        console.log(`当前页: ${val}`);
+      },
+
+    }
+  };
+</script>
+
+<style>
+  .check {
+    border: 1px solid #d9d9d9;
+    border-radius: 10px;
+  }
+  .check .title {
+    font-size: 5px;
+    margin-bottom: 20px;
+  }
+  .check .top {
+    padding-top: 20px;
+    padding-left: 20px;
+  }
+  .check .text {
+    display: inline-block;
+    color: #000;
+    font-size: 16px ;
+    margin-left: 1%;
+  }
+  .check .input-demo {
+    display: inline-block;
+    width: 20%;
+    margin-left: 1%;
+  }
+  .check .block {
+    font-size: 5px;
+    text-align: center;
+    margin-top: 15px;
+    margin-bottom: 20px;
+  }
+
+  .check .tou {
+    font-size: 20px;
+    height: 30px;
+    line-height: 30px;
+    padding-top: 15px;
+  }
+  .check .line {
+    margin-top: 15px;
+    margin-bottom: 15px;
+    width: 100%;
+    height: 2px;
+    background-color: #d9d9d9;
+  }
+  .check .xinxi {
+    text-align: center;
+    margin: 15px auto;
+    font-size: 18px;
+  }
+  .check .el-dialog__header, .el-dialog__body {
+    padding: 0 20px;
+  }
+  .check .el-dialog{
+    width: 70%;
+  }
+</style>

+ 423 - 0
src/views/platform/invoice/invoice.vue

@@ -0,0 +1,423 @@
+<template>
+  <div class="invoice">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                action="http://invoice.back.jkcredit.com/"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :on-change="handleSuccess"
+                :auto-upload="false">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="batchUpload" v-loading.fullscreen.lock="fullscreenLoading">提交</el-button>
+                 <div style="margin-top: 10px;">导入文件:</div>
+              </el-upload>
+
+            </div>
+            <div class="top">
+              <el-button @click="DownloadTemplate">下载模板</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+
+       <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="用户名"
+            prop="userName"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="用户手机号"
+            prop="userPhone"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userCompany"
+            label="用户所在公司"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.id)">查看</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="addList"
+        style="font-size: 0px;">
+        <template>
+          <div class="tou">运单列表</div>
+          <div class="line"></div>
+          <div class="styleType">
+            <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+            <el-button type="success" style="margin-left: 1%;" @click="queryLookTwo">查询</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+          </div>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            border
+            tooltip-effect="dark">
+            <el-table-column
+            label="批次号"
+            prop="batchNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="查询状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.isSuccess == 1">成功</span>
+              <span v-else-if="scope.row.isSuccess == 2">失败</span>
+              <span v-else-if="scope.row.isSuccess == 3">无结果</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="公司名称"
+            prop="userCompany"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userName"
+            label="用户名称"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userPhone"
+            label="用户手机号"
+            show-overflow-tooltip>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      usertable: [],
+      usertabletwo: [],
+      batchId: '',
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      num: '',
+      formUserList: {
+        "roleId": "",
+        "userId": "",
+        "file": ""
+      },
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 4);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 4);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+
+    },
+     // 查看批次数据
+    async checkLook(id) {
+      this.addList = true;
+      this.batchId = id;
+      this.loadDataCar();
+    },
+    // 查看实时数据
+    async loadDataCar() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        const response = await this.$http.post(`numInvoice/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        const response = await this.$http.post(`numInvoice/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查询
+    async queryLookTwo() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('num', this.num);
+        const response = await this.$http.post(`numInvoice/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('num', this.num);
+        const response = await this.$http.post(`numInvoice/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    // 下载模板
+    DownloadTemplate() {
+      var url = 'http://invoice.back.jkcredit.com/numInvoice/downTemp';
+
+      window.location.href= url;
+
+    },
+    // 批量上传模板信息
+    async batchUpload() {
+      this.fullscreenLoading = false;
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      const formData = new FormData();
+      formData.append('userId', this.formUserList.userId);
+      formData.append('file', this.formUserList.file);
+      const response = await this.$http.post(`numInvoice/excel`,formData);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.loadData();
+        this.fullscreenLoading = false;
+        this.$message.success('上传成功');
+        this.$refs.upload.clearFiles();
+      }else if(code === 1 && msg == null && data == null) {
+        this.fullscreenLoading = false;
+        this.$message.error('数据存在错误,请检查文件中数据');
+      }else {
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+      }
+    },
+
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+     // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      this.loadData();
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      this.loadData();
+      console.log(`当前页: ${val}`);
+    },
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.invoice {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.invoice .upload-demo {
+  display: inline-block;
+}
+.invoice .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.invoice .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.invoice .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.invoice .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.invoice .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.invoice .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.invoice .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.invoice .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.invoice .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.invoice .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.invoice .el-dialog {
+  width: 90%;
+}
+.invoice .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 450 - 0
src/views/platform/invoice/list.vue

@@ -0,0 +1,450 @@
+<template>
+  <div class="list">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="运单编号" class="input-demo" v-model="waybillNum"></el-input>
+              <el-input  placeholder="车牌号" class="input-demo" v-model="plateNum"></el-input>
+              <el-input  placeholder="发票号码" class="input-demo" v-model="invoiceNum"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+               <el-date-picker
+                class="input-demo"
+                v-model="startTime"
+                type="datetime"
+                placeholder="选择开始时间">
+              </el-date-picker>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="endTime"
+                type="datetime"
+                placeholder="选择结束时间">
+              </el-date-picker>
+
+              <label style="margin-left: 1%;">发票抬头:</label>
+              <el-select v-model="taxPlayerCode" placeholder="请选择发票抬头">
+                <el-option
+                  v-for="item in option"
+                  :key="item.dutyParagraph"
+                  :label="item.company"
+                  :value="item.dutyParagraph">
+                </el-option>
+              </el-select>
+
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="exportOut">导出</el-button>
+<!--              <el-button type="success" style="margin-left: 1%;" @click="packDownload"-->
+<!--                         v-loading.fullscreen.lock="fullscreenLoading">打包下载-->
+<!--              </el-button>-->
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <div class="tou">统计列表</div>
+        <el-table
+            v-loading="loading"
+            ref="multipleTabletwo"
+            :data="allmeterList"
+            border
+            tooltip-effect="dark"
+            style="margin-bottom: 20px;">
+            <el-table-column
+              label="总金额(元)"
+              show-overflow-tooltip>
+              <template slot-scope="scope" show-overflow-tooltip>
+                  <span>{{scope.row.fee / 100}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="抵税金额(元)"
+              show-overflow-tooltip>
+              <template slot-scope="scope" show-overflow-tooltip>
+                  <span>{{scope.row.totalTaxAmount / 100}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="transactionId"
+              label="计费条数"
+              show-overflow-tooltip>
+            </el-table-column>
+          </el-table>
+      </template>
+
+      <template>
+        <div class="tou">运单发票列表</div>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            prop="waybillNum"
+            label="运单编号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="税额(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.totalTaxAmount / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="价税合计(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.totalAmount / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="taxRate"
+            label="税率"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="exTime"
+            label="交易时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sellerTaxpayerCode"
+            label="销方税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sellerName"
+            label="销方名称"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="plateNum"
+            label="车牌号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceNum"
+            label="发票号码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceCode"
+            label="发票代码"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="invoiceMakeTime"
+            label="开票时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="enStation"
+            label="入口收费站"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="exStation"
+            label="出口收费站"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="交易金额(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="transactionId"
+            label="交易ID"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.invoiceUrl)">下载</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      usertable: [],
+      allmeterList: [],
+      option: [],
+      waybillNum: "",
+      taxPlayerCode: "",
+      plateNum: "",
+      invoiceNum: "",
+      startTime: "",
+      endTime: "",
+      batchNumber: '',
+      invoiceUrl: '',
+      formUserList: {
+        "userName":"",
+        "roleId":"",
+        "userId":""
+      },
+
+      multipleSelection: [],
+      packDownloadDisabled: false,
+    }
+  },
+  created() {
+    this.loadData();
+    this.loadInvoice();
+    this.loadAllMeter();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userName = sessionStorage.getItem('userName');
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        const response = await this.$http.post(`searchInvoiceResult/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      }else{
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`searchInvoiceResult/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    //查询发票抬头
+    async loadInvoice() {
+      const response = await this.$http.post(`invoice/${this.formUserList.userId}`);
+      if(response.data.code === 0) {
+        this.option = response.data.data;
+      }
+    },
+    //查询
+    async queryLook() {
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('waybillNum', this.waybillNum);
+        formData.append('plateNum', this.plateNum);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('invoiceNum', this.invoiceNum);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`searchInvoiceResult/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+          this.loadAllMeter();
+        };
+      }else{
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('waybillNum', this.waybillNum);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('plateNum', this.plateNum);
+        formData.append('invoiceNum', this.invoiceNum);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`searchInvoiceResult/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+          this.loadAllMeter();
+        };
+      };
+    },
+    //打包下载
+    async packDownload() {
+      this.fullscreenLoading = true;
+      var url = `http://invoice.back.jkcredit.com/package/download?&userId=${this.formUserList.userId}
+      &startTime=${this.startTime}&endTime=${this.endTime}&waybillNum=${this.waybillNum}&plateNum=${this.plateNum}
+      &invoiceNum=${this.invoiceNum}&taxpayerCode=${this.taxPlayerCode}&batchNumber=${this.batchNumber}`;
+      window.location.href = url;
+      this.packDownloadDisabled = true;
+      this.$message({type: 'info', message: '正在下载,请稍等,请勿重复下载。'});
+      this.fullscreenLoading = false;
+      // console.log(this.formList.nums);
+    },
+    // 点击表格选框时触发的事件
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    // 查询发票统计
+    async loadAllMeter() {
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('waybillNum', this.waybillNum);
+        formData.append('plateNum', this.plateNum);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('invoiceNum', this.invoiceNum);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`searchInvoiceResult/statistics`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.allmeterList = response.data.data;
+        };
+      }else{
+        const formData = new FormData();
+        formData.append('userId', this.formUserList.userId);
+        formData.append('waybillNum', this.waybillNum);
+        formData.append('plateNum', this.plateNum);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('invoiceNum', this.invoiceNum);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        const response = await this.$http.post(`searchInvoiceResult/statistics`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.allmeterList = response.data.data;
+        };
+      };
+    },
+    // 展示发票全部信息
+    checkLook(user) {
+      window.location.href= user;
+    },
+     //导出功能
+    exportOut() {
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+
+      var url = `http://invoice.back.jkcredit.com/searchInvoiceResult/export?&userId=${this.formUserList.userId}&waybillNum=${this.waybillNum}&batchNumber=${this.batchNumber}&startTime=${this.startTime}&endTime=${this.endTime}`;
+
+      window.location.href= url;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.waybillNum !== '' || this.plateNum !== '' || this.invoiceNum !== '' || this.batchNumber !== '' || this.startTime !== '' || this.endTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.waybillNum !== '' || this.plateNum !== '' || this.invoiceNum !== '' || this.batchNumber !== '' || this.startTime !== '' || this.endTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+
+  }
+};
+</script>
+
+<style>
+.list {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.list .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.list .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+
+.list .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.list .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.list .tou {
+  text-align: center;
+  margin-bottom: 10px;
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.list .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+</style>

+ 546 - 0
src/views/platform/waybill/history.vue

@@ -0,0 +1,546 @@
+<template>
+  <div class="history">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+               <span style="margin-top: 10px;">导入文件:</span>
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                action="http://invoice.back.jkcredit.com/"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :on-change="handleSuccess"
+                :auto-upload="false">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="batchUpload" v-loading.fullscreen.lock="fullscreenLoading">开票</el-button>
+              </el-upload>
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="用户名" class="input-demo" style="margin: 0;" v-model="userName"></el-input>
+              <el-input  placeholder="用户所在公司" class="input-demo" v-model="userCompany"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+              <el-button style="margin-left: 1%;" @click="DownloadTemplate">下载模板</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="用户名"
+            prop="userName"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="用户手机号"
+            prop="userPhone"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userCompany"
+            label="用户所在公司"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.id)">查看</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+    <!-- 查看 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="addList"
+        style="font-size: 0px;">
+        <template>
+          <div class="tou">运单历史列表</div>
+          <div class="line"></div>
+          <div class="styleType">
+            <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+            <el-input  placeholder="车牌号" class="theinput" v-model="plateNumber"></el-input>
+            <el-input  placeholder="税号" class="theinput" v-model="taxPlayerCode"></el-input>
+            <el-input  placeholder="运单状态" class="theinput" v-model="status"></el-input>
+            <el-select v-model="isSuccess" placeholder="请选择上传结果">
+              <el-option
+                v-for="item in optionone"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+            <el-button type="success" style="margin-left: 1%;" @click="queryLookTwo">查询</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+          </div>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            border
+            tooltip-effect="dark">
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="taxPlayerCode"
+            label="税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="startTime"
+            label="运单开始时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sourceAddr"
+            label="运单开始地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="destAddr"
+            label="运单目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="predictEndTime"
+            label="运单预计完成时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="运单费用(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.status == 1">未结束</span>
+                <span v-else-if="scope.row.status == 2">已结束运单</span>
+                <span v-else-if="scope.row.status == 3">已开发票</span>
+                <span v-else-if="scope.row.status == 4">开票中</span>
+                <span v-else-if="scope.row.status == 9">状态错误</span>
+              </template>
+          </el-table-column>
+           <el-table-column
+            label="是否成功"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.isSuccess == 1">成功</span>
+                <span v-else-if="scope.row.isSuccess == 2">失败</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="errorMsg"
+            label="失败原因"
+            show-overflow-tooltip>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+      </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      userName: '',
+      userCompany: '',
+      batchNumber: '',
+      num: '',
+      plateNumber: '',
+      taxPlayerCode: '',
+      status: '',
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      batch: '',
+      batchId: '',
+      usertable: [],
+      usertabletwo: [],
+      formUserList: {
+       "userId": "",
+       "file": "",
+       "roleId": ""
+      },
+      isSuccess: '',
+      optionone: [{
+        value: '1',
+        label: '成功'
+      }, {
+        value: '2',
+        label: '失败'
+      }],
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 3);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 3);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    //查询
+    async queryLook() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 3);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 3);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        };
+      };
+    },
+    // 下载模板
+    DownloadTemplate() {
+      var url = 'http://invoice.back.jkcredit.com/carFreeCarrierBill/downTemp';
+
+      window.location.href= url;
+
+    },
+    // 批量上传模板信息
+    async batchUpload() {
+      this.fullscreenLoading = true;
+      const formData = new FormData();
+      formData.append('userId', this.formUserList.userId);
+      formData.append('file', this.formUserList.file);
+      const response = await this.$http.post(`carFreeCarrierBill/historyBill`,formData);
+       var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.loadData();
+        this.fullscreenLoading = false;
+        this.$message.success('上传成功');
+      }else if(code === 1 && msg == null && data == null) {
+        this.fullscreenLoading = false;
+        this.$message.error('数据存在错误,请检查文件中数据');
+      }else {
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+      }
+    },
+    // 查看批次数据
+    async checkLook(id) {
+      this.addList = true;
+      this.batchId = id;
+      this.loadDataCar();
+    },
+    // 查看历史数据
+    async loadDataCar() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 2);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 2);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        };
+      };
+    },
+    //查询(二)
+    async queryLookTwo() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 2);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('status', this.status);
+        formData.append('isSuccess', this.isSuccess);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        };
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 2);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('status', this.status);
+        formData.append('isSuccess', this.isSuccess);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        };
+      };
+    },
+    // 清空表单数据
+    handleEditDialogClose() {
+      this.num = '';
+      this.plateNumber = '';
+      this.taxPlayerCode = '';
+      this.current = 1;
+      this.pagesize = 8;
+      this.currenttwo = 1;
+      this.pagesizetwo = 8;
+    },
+     handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '' || this.isSuccess !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      }
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '' || this.isSuccess !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      }
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.history {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.history .upload-demo {
+  display: inline-block;
+}
+.history .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.history .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.history .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.history .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.history .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.history .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.history .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.history .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.history .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.history .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.history .el-dialog {
+  width: 90%;
+}
+.history .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 476 - 0
src/views/platform/waybill/over.vue

@@ -0,0 +1,476 @@
+<template>
+  <div class="over">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+               <span style="margin-top: 10px;">导入文件:</span>
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                action="http://invoice.back.jkcredit.com/dishonestuser/upload"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :on-change="handleSuccess"
+                :auto-upload="false">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="batchUpload" v-loading.fullscreen.lock="fullscreenLoading">开票</el-button>
+              
+              </el-upload>
+
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="用户名" class="input-demo" style="margin: 0;" v-model="userName"></el-input>
+              <el-input  placeholder="用户所在公司" class="input-demo" v-model="userCompany"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+              <el-button style="margin-left: 1%;" @click="DownloadTemplate">下载模板</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="用户名"
+            prop="userName"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="用户手机号"
+            prop="userPhone"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userCompany"
+            label="用户所在公司"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.id)">查看</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+    <!-- 查看 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="addList"
+        style="font-size: 0px;">
+        <template>
+          <div class="tou">运单列表</div>
+          <div class="line"></div>
+          <div class="styleType">
+            <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+            <el-button type="success" style="margin-left: 1%;" @click="queryLookTwo">查询</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+          </div>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            border
+            tooltip-effect="dark">
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="realDestAddr"
+            label="目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="endTime"
+            label="结束时间"
+            show-overflow-tooltip>
+          </el-table-column>
+           <el-table-column
+            prop="isSuccess"
+            label="是否成功"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.isSuccess == 1">成功</span>
+                <span v-else-if="scope.row.isSuccess == 2">失败</span>
+            </template>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+      </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      userName: '',
+      userCompany: '',
+      batchNumber: '',
+      num: '',
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      batchId: '',
+      usertable: [],
+      usertabletwo: [],
+      formUserList: {
+       "userId": "",
+       "file": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 5);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 5);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }
+    },
+    //查询
+    async queryLook() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 5);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 5);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }
+    },
+    // 下载模板
+    DownloadTemplate() {
+      var url = 'http://invoice.back.jkcredit.com/carFreeCarrierBill/downEndTemp';
+
+      window.location.href= url;
+
+    },
+    // 批量上传模板信息
+    async batchUpload() {
+      this.fullscreenLoading = true;
+      const formData = new FormData();
+      formData.append('userId', this.formUserList.userId);
+      formData.append('file', this.formUserList.file);
+      const response = await this.$http.post(`carFreeCarrierBill/billEnd`,formData);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.loadData();
+        this.fullscreenLoading = false;
+        this.$message.success('上传成功');
+      }else if(code === 1 && msg == null && data == null) {
+        this.fullscreenLoading = false;
+        this.$message.error('数据存在错误,请检查文件中数据');
+      }else {
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+      }
+    },
+    // 查看批次数据
+    async checkLook(id) {
+      this.addList = true;
+      this.batchId = id;
+      this.loadDataCar();
+    },
+    // 查看实时数据
+    async loadDataCar() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/endList`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/endList`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查询(二)
+    async queryLookTwo() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        formData.append('num', this.num);
+        const response = await this.$http.post(`carFreeCarrierBill/endList`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        formData.append('num', this.num);
+        const response = await this.$http.post(`carFreeCarrierBill/endList`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    // 清空表单数据
+    handleEditDialogClose() {
+      this.num = '';
+      this.plateNumber = '';
+      this.taxPlayerCode = '';
+      this.current = 1;
+      this.pagesize = 8;
+      this.currenttwo = 1;
+      this.pagesizetwo = 8;
+    },
+     handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+
+  }
+};
+</script>
+
+<style>
+.over {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.over .upload-demo {
+  display: inline-block;
+}
+.over .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.over .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.over .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.over .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.over .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.over .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.over .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.over .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.over .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.over .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.over .el-dialog {
+  width: 90%;
+}
+.over .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 548 - 0
src/views/platform/waybill/waybill.vue

@@ -0,0 +1,548 @@
+<template>
+  <div class="waybill">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+               <span style="margin-top: 10px;">导入文件:</span>
+              <el-upload
+                class="upload-demo"
+                ref="upload"
+                action="http://invoice.back.jkcredit.com/dishonestuser/upload"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :on-change="handleSuccess"
+                :auto-upload="false">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="batchUpload" v-loading.fullscreen.lock="fullscreenLoading">提交</el-button>
+              </el-upload>
+
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="用户名" class="input-demo" style="margin: 0;" v-model="userName"></el-input>
+              <el-input  placeholder="用户所在公司" class="input-demo" v-model="userCompany"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+              <el-button style="margin-left: 1%;" @click="DownloadTemplate">下载模板</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+      <template>
+        <el-table
+          v-loading="loading"
+          ref="multipleTable"
+          :data="usertable"
+          height="370px"
+          border
+          tooltip-effect="dark">
+          <el-table-column
+            label="用户名"
+            prop="userName"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="用户手机号"
+            prop="userPhone"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="userCompany"
+            label="用户所在公司"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span>{{scope.row.createTime | fmtDate}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="80">
+            <template slot-scope="scope" show-overflow-tooltip>
+              <span style="cursor:pointer;" @click="checkLook(scope.row.id)">查看</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+
+    <!-- 分页 -->
+      <div class="block">
+        <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="current"
+        :page-sizes="[6, 8, 10]"
+        :page-size="pagesize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+        </el-pagination>
+      </div>
+
+    <!-- 查看 -->
+      <el-dialog
+        @close="handleEditDialogClose"
+        :visible.sync="addList"
+        style="font-size: 0px;">
+        <template>
+          <div class="tou">运单列表</div>
+          <div class="line"></div>
+          <div class="styleType">
+            <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+            <el-input  placeholder="车牌号" class="theinput" v-model="plateNumber"></el-input>
+            <el-input  placeholder="税号" class="theinput" v-model="taxPlayerCode"></el-input>
+            <el-input  placeholder="运单状态" class="theinput" v-model="status"></el-input>
+            <el-select v-model="isSuccess" placeholder="请选择上传结果">
+              <el-option
+                v-for="item in optionone"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+            <el-button type="success" style="margin-left: 1%;" @click="queryLookTwo">查询</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+          </div>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            border
+            tooltip-effect="dark">
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="taxPlayerCode"
+            label="税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="startTime"
+            label="运单开始时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sourceAddr"
+            label="运单开始地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="destAddr"
+            label="运单目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="predictEndTime"
+            label="运单预计完成时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="运单费用(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.status == 1">未结束</span>
+                <span v-else-if="scope.row.status == 2">已结束运单</span>
+                <span v-else-if="scope.row.status == 3">已开发票</span>
+                <span v-else-if="scope.row.status == 4">开票中</span>
+                <span v-else-if="scope.row.status == 9">状态错误</span>
+              </template>
+          </el-table-column>
+           <el-table-column
+            prop="isSuccess"
+            label="是否成功"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.isSuccess == 1">成功</span>
+                <span v-else-if="scope.row.isSuccess == 2">失败</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="errorMsg"
+            label="失败原因"
+            show-overflow-tooltip>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+      </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      userName: '',
+      userCompany: '',
+      batchNumber: '',
+      num: '',
+      plateNumber: '',
+      taxPlayerCode: '',
+      status: '',
+      addList: false,
+      current: 1,
+      pagesize: 8,
+      total: 0,
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      batchId: '',
+      usertable: [],
+      usertabletwo: [],
+      formUserList: {
+       "userId": "",
+       "file": "",
+       "roleId": ""
+      },
+      optionone: [{
+        value: '1',
+        label: '成功'
+      }, {
+        value: '2',
+        label: '失败'
+      }],
+      isSuccess: '',
+    }
+  },
+  created() {
+    this.loadData();
+  },
+  methods: {
+    // 列表展示
+    async loadData() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 2);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 2);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }
+    },
+    //查询
+    async queryLook() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('type', 2);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.current);
+        formData.append('size', this.pagesize);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('type', 2);
+        formData.append('userName', this.userName);
+        formData.append('userCompany', this.userCompany);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`batch/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertable = response.data.data.records;
+          this.total = response.data.data.total;
+        }
+      }
+    },
+    // 下载模板
+    DownloadTemplate() {
+      var url = 'http://invoice.back.jkcredit.com/carFreeCarrierBill/downTemp';
+
+      window.location.href= url;
+
+    },
+    // 批量上传模板信息
+    async batchUpload() {
+      this.fullscreenLoading = true;
+      const formData = new FormData();
+      formData.append('userId', this.formUserList.userId);
+      formData.append('file', this.formUserList.file);
+      const response = await this.$http.post(`carFreeCarrierBill/bill`,formData);
+      var {data: { code, msg, data }} = response;
+      if(code === 0 && msg === 'success') {
+        this.loadData();
+        this.fullscreenLoading = false;
+        this.$message.success('上传成功');
+      }else if(code === 1 && msg == null && data == null) {
+        this.fullscreenLoading = false;
+        this.$message.error('数据存在错误,请检查文件中数据');
+      }else {
+        this.fullscreenLoading = false;
+        this.$message.error(msg);
+      }
+    },
+    // 查看批次数据
+    async checkLook(id) {
+      this.addList = true;
+      this.batchId = id;
+      this.loadDataCar();
+    },
+    // 查看实时数据
+    async loadDataCar() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查询(二)
+    async queryLookTwo() {
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('status', this.status);
+        formData.append('isSuccess', this.isSuccess);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('batchId', this.batchId);
+        formData.append('isHistory', 1);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('taxPlayerCode', this.taxPlayerCode);
+        formData.append('status', this.status);
+        formData.append('isSuccess', this.isSuccess);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    // 清空表单数据
+    handleEditDialogClose() {
+      this.num = '';
+      this.plateNumber = '';
+      this.taxPlayerCode = '';
+      this.current = 1;
+      this.pagesize = 8;
+      this.currenttwo = 1;
+      this.pagesizetwo = 8;
+    },
+     handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess (a) {
+      this.formUserList.file = a.raw;
+    },
+    // 分页方法
+    handleSizeChange(val) {
+      this.pagesize = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.current = val;
+      if(this.userName !== '' || this.userCompany !== '' || this.batchNumber !== '') {
+        this.queryLook();
+      }else{
+        this.loadData();
+      };
+      console.log(`当前页: ${val}`);
+    },
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '' || this.isSuccess !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.taxPlayerCode !== '' || this.status !== '' || this.isSuccess !== '') {
+        this.queryLookTwo();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.waybill {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.waybill .upload-demo {
+  display: inline-block;
+}
+.waybill .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.waybill .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.waybill .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.waybill .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.waybill .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.waybill .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.waybill .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.waybill .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.waybill .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.waybill .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+.waybill .el-dialog {
+  width: 90%;
+}
+.waybill .el-dialog__header, .el-dialog__body {
+  padding: 0 20px;
+}
+</style>

+ 393 - 0
src/views/platform/waybillmanagement/noinvoice.vue

@@ -0,0 +1,393 @@
+<template>
+  <div class="noinvoice">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+              <el-input  placeholder="车牌号" class="theinput" v-model="plateNumber"></el-input>
+              <el-input  placeholder="批次号" class="theinput" v-model="batchNumber"></el-input>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <label style="margin-left: 1%;">是否历史运单:</label>
+              <el-select v-model="isHistory" placeholder="请选择">
+                <el-option
+                  v-for="item in optionone"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+
+              <!-- <label style="margin-left: 1%;">运单状态:</label>
+              <el-select v-model="status" placeholder="请选择"> -->
+                <!-- <el-option></el-option> -->
+            <!--     <el-option
+                  v-for="item in option"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select> -->
+            <!--   <el-input  placeholder="税号" class="theinput" v-model="taxPlayerCode"></el-input>
+              <el-input  placeholder="运单状态" class="theinput" v-model="status"></el-input> -->
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="makeInvoice" v-loading.fullscreen.lock="fullscreenLoading">开票</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+        <template>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            height="370px"
+            border
+            tooltip-effect="dark"
+            @selection-change="handleSelectionChange">
+          <el-table-column
+            type="selection"
+            width="40">
+          </el-table-column>
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="taxPlayerCode"
+            label="税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌颜色"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.plateColor == 0">蓝色</span>
+              <span v-else-if="scope.row.plateColor == 1">黄色</span>
+              <span v-else-if="scope.row.plateColor == 2">黑色</span>
+              <span v-else-if="scope.row.plateColor == 3">白色</span>
+              <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+              <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+              <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+              <span v-else-if="scope.row.plateColor == 9">未确定</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="startTime"
+            label="运单开始时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sourceAddr"
+            label="运单开始地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="destAddr"
+            label="运单目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="predictEndTime"
+            label="运单预计完成时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="运单费用(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.status == 1">未结束</span>
+                <span v-else-if="scope.row.status == 2">已结束运单</span>
+                <span v-else-if="scope.row.status == 3">开票完成</span>
+                <span v-else-if="scope.row.status == 4">开票中</span>
+                <span v-else-if="scope.row.status == 9">状态错误</span>
+            </template>
+          </el-table-column>
+
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[20, 30, 40]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      num: '',
+      plateNumber: '',
+      batchNumber: '',
+      isHistory: '',
+      status: '',
+      // taxPlayerCode: '',
+      // status: '',
+      currenttwo: 1,
+      pagesizetwo: 20,
+      totaltwo: 0,
+      optionone: [{
+          value: '1',
+          label: '实时运单'
+        }, {
+          value: '2',
+          label: '历史运单'
+        }],
+      option: [{
+          value: '2',
+          label: '已结束运单'
+        }, {
+          value: '4',
+          label: '开票中'
+        }],
+      // batch: '',
+      usertabletwo: [],
+      multipleSelection: [],
+      formList: {
+        userId: '',
+        nums: []
+      },
+      formUserList: {
+       "userId": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+   this.loadDataCar();
+  },
+  methods: {
+    // 列表展示
+    async loadDataCar() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('status', '2');
+        // formData.append('isSuccess', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/notFinish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('status', '2');
+        // formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`carFreeCarrierBill/notFinish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查看
+    async queryLook() {
+      if(this.status == '' ) {
+        this.status = '2';
+      }
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('num', this.num);
+        formData.append('status', this.status);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('isHistory', this.isHistory);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`carFreeCarrierBill/notFinish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('num', this.num);
+        formData.append('status', this.status);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('isHistory', this.isHistory);
+        formData.append('batchNumber', this.batchNumber);
+        const response = await this.$http.post(`carFreeCarrierBill/notFinish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+
+    //批量开票
+    async makeInvoice() {
+      this.fullscreenLoading = true;
+      this.formList.userId = Number(this.formUserList.userId);
+      for(var i = 0; i < this.multipleSelection.length; i++) {
+        this.formList.nums.push(this.multipleSelection[i].num);
+      }
+      // console.log(this.formList);
+      const formData = new FormData();
+        formData.append('userId', this.formList.userId);
+        formData.append('nums', this.formList.nums);
+      const response = await this.$http.post(`numInvoice/nums`, formData);
+        if (response.data.code === 0) {
+          this.$message({
+            type: 'success',
+            message: '开票成功'
+          })
+          this.fullscreenLoading = false;
+          this.loadDataCar();
+          this.formList.nums = [];
+          // console.log(this.formList.nums);
+        }else{
+           this.fullscreenLoading = false;
+          this.$message({
+            type: 'error',
+            message: '开票失败'
+          })
+        }
+    },
+    // 点击表格选框时触发的事件
+    handleSelectionChange(val) {
+        this.multipleSelection = val;
+    },
+    // 分页方法
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.isHistory !== '' || this.batchNumber !== '' || this.status !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.isHistory !== '' || this.batchNumber !== '' || this.status !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.noinvoice {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.noinvoice .upload-demo {
+  display: inline-block;
+}
+.noinvoice .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.noinvoice .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.noinvoice .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.noinvoice .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.noinvoice .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.noinvoice .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.noinvoice .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.noinvoice .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.noinvoice .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.noinvoice .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+
+</style>

+ 411 - 0
src/views/platform/waybillmanagement/trueinvoice.vue

@@ -0,0 +1,411 @@
+<template>
+  <div class="trueinvoice">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="运单编号" class="input-demo" v-model="num"></el-input>
+              <el-input  placeholder="车牌号" class="input-demo" v-model="plateNumber"></el-input>
+              <el-input  placeholder="批次号" class="input-demo" v-model="batchNumber"></el-input>
+              <el-select v-model="isHistory" placeholder="是否历史运单">
+                <el-option
+                  v-for="item in optionone"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <!-- <label style="margin-left: 1%;">运单导出状态:</label> -->
+              <el-select v-model="isExport"  class="input-demo" placeholder="运单导出状态">
+                <el-option
+                  v-for="item in option"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="startTime"
+                type="datetime"
+                placeholder="选择开始时间">
+              </el-date-picker>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="endTime"
+                type="datetime"
+                placeholder="选择结束时间">
+              </el-date-picker>
+            <el-select v-model="isLegacyData" placeholder="是否历史开票记录">
+                <el-option
+                  v-for="item in optiontwo"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+        <template>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            height="370px"
+            border
+            tooltip-effect="dark"
+            @selection-change="handleSelectionChange">
+          <el-table-column
+            type="selection"
+            width="40">
+          </el-table-column>
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="taxPlayerCode"
+            label="税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌颜色"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.plateColor == 0">蓝色</span>
+              <span v-else-if="scope.row.plateColor == 1">黄色</span>
+              <span v-else-if="scope.row.plateColor == 2">黑色</span>
+              <span v-else-if="scope.row.plateColor == 3">白色</span>
+              <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+              <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+              <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+              <span v-else-if="scope.row.plateColor == 9">未确定</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="startTime"
+            label="运单开始时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sourceAddr"
+            label="运单开始地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="destAddr"
+            label="运单目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="predictEndTime"
+            label="运单预计完成时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="运单费用(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.status == 1">未结束</span>
+                <span v-else-if="scope.row.status == 2">已结束运单</span>
+                <span v-else-if="scope.row.status == 3">开票完成</span>
+                <span v-else-if="scope.row.status == 4">开票中</span>
+                <span v-else-if="scope.row.status == 9">状态错误</span>
+              </template>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[20, 30, 40]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+      loading: false,
+      fullscreenLoading: false,
+      flag: 0,
+      num: '',
+      plateNumber: '',
+      batchNumber: '',
+      isHistory: '',
+      isExport: '',
+      startTime: '',
+      endTime: '',
+      isLegacyData: '',
+      // taxPlayerCode: '',
+      // status: '',
+      currenttwo: 1,
+      pagesizetwo: 20,
+      totaltwo: 0,
+      optionone: [{
+          value: '1',
+          label: '实时运单'
+        }, {
+          value: '2',
+          label: '历史运单'
+        }],
+      option: [{
+          value: '1',
+          label: '已导出'
+        }, {
+          value: '2',
+          label: '未导出'
+        }],
+      optiontwo: [{
+          value: '1',
+          label: '非历史开票记录'
+        }, {
+          value: '2',
+          label: '历史开票记录'
+        }],
+      // batch: '',
+      usertabletwo: [],
+      multipleSelection: [],
+      formList: {
+        userId: '',
+        nums: []
+      },
+      formUserList: {
+       "userId": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+   this.loadDataCar();
+  },
+  methods: {
+    // 列表展示
+    async loadDataCar() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/finish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`carFreeCarrierBill/finish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //查看
+    async queryLook() {
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('isHistory', this.isHistory);
+        formData.append('isExport', this.isExport);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        formData.append('isLegacyData', this.isLegacyData);
+        const response = await this.$http.post(`carFreeCarrierBill/finish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('isHistory', this.isHistory);
+        formData.append('isExport', this.isExport);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('startTime', this.startTime);
+        formData.append('endTime', this.endTime);
+        formData.append('isLegacyData', this.isLegacyData);
+        const response = await this.$http.post(`carFreeCarrierBill/finish`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }
+    },
+    //打包下载
+    async packDownload() {
+      this.fullscreenLoading = true;
+      if(this.startTime !== '' || this.endTime !== '') {
+        this.startTime = (new Date(this.startTime)).getTime();
+        this.endTime = (new Date(this.endTime)).getTime();
+      }
+      this.formList.userId = Number(this.formUserList.userId);
+      for(var i = 0; i < this.multipleSelection.length; i++) {
+        this.formList.nums.push(this.multipleSelection[i].num);
+      }
+      // console.log(this.formList.nums);
+      var url = `http://invoice.back.jkcredit.com/package/download?&userId=${this.formList.userId}&nums=${this.formList.nums}&startTime=${this.startTime}&endTime=${this.endTime}`;
+      window.location.href= url;
+      this.loadDataCar();
+      this.formList.nums = [];
+      this.fullscreenLoading = false;
+      // console.log(this.formList.nums);
+    },
+    // 点击表格选框时触发的事件
+    handleSelectionChange(val) {
+        this.multipleSelection = val;
+    },
+    // 分页方法
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.isHistory !== '' || this.isExport !== '' || this.batchNumber !== '' || this.startTime !== '' || this.endTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.isHistory !== '' || this.isExport !== '' || this.batchNumber !== '' || this.startTime !== '' || this.endTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.trueinvoice {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.trueinvoice .upload-demo {
+  display: inline-block;
+}
+.trueinvoice .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.trueinvoice .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.trueinvoice .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.trueinvoice .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.trueinvoice .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.trueinvoice .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.trueinvoice .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.trueinvoice .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.trueinvoice .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.trueinvoice .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+
+</style>

+ 367 - 0
src/views/platform/waybillmanagement/waybillList.vue

@@ -0,0 +1,367 @@
+<template>
+  <div class="waybillList">
+    <!-- 头部细节部分 -->
+      <div class="title">
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-input  placeholder="运单编号" class="theinput" v-model="num"></el-input>
+              <el-input  placeholder="车牌号" class="theinput" v-model="plateNumber"></el-input>
+              <el-input  placeholder="批次号" class="theinput" v-model="batchNumber"></el-input>
+            <!--   <el-input  placeholder="税号" class="theinput" v-model="taxPlayerCode"></el-input>
+              <el-input  placeholder="运单状态" class="theinput" v-model="status"></el-input> -->
+              <el-button type="success" style="margin-left: 1%;" @click="queryLook">查询</el-button>
+              <el-button type="success" style="margin-left: 1%;" @click="exportOut">导出</el-button>
+            <!-- <el-button type="info" style="margin-left: 1%;">重置</el-button> -->
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="24">
+            <div class="top">
+              <el-date-picker
+                v-model="billStartTime"
+                type="datetime"
+                placeholder="选择运单开始时间">
+              </el-date-picker>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="billEndTime"
+                type="datetime"
+                placeholder="选择运单结束时间">
+              </el-date-picker>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="createStartTime"
+                type="datetime"
+                placeholder="选择创建开始时间">
+              </el-date-picker>
+
+              <el-date-picker
+                class="input-demo"
+                v-model="createEndTime"
+                type="datetime"
+                placeholder="选择创建结束时间">
+              </el-date-picker>
+
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    <!-- 头部细节部分结束 -->
+    <!-- 表格部分 -->
+        <template>
+          <el-table
+            v-loading="loading"
+            ref="multipleTable"
+            :data="usertabletwo"
+            height="370px"
+            border
+            tooltip-effect="dark">
+          <el-table-column
+            label="运单编号"
+            prop="num"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="taxPlayerCode"
+            label="税号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="batchNumber"
+            label="批次号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌号码"
+            prop="plateNumber"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            label="车牌颜色"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.plateColor == 0">蓝色</span>
+              <span v-else-if="scope.row.plateColor == 1">黄色</span>
+              <span v-else-if="scope.row.plateColor == 2">黑色</span>
+              <span v-else-if="scope.row.plateColor == 3">白色</span>
+              <span v-else-if="scope.row.plateColor == 4">渐变绿色</span>
+              <span v-else-if="scope.row.plateColor == 5">黄绿渐变色</span>
+              <span v-else-if="scope.row.plateColor == 6">蓝白渐变色</span>
+              <span v-else-if="scope.row.plateColor == 9">未确定</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="startTime"
+            label="运单开始时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="sourceAddr"
+            label="运单开始地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="destAddr"
+            label="运单目的地址"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="predictEndTime"
+            label="运单预计完成时间"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
+            prop="fee"
+            label="运单费用(元)"
+            show-overflow-tooltip>
+            <template slot-scope="scope" show-overflow-tooltip>
+                <span>{{scope.row.fee / 100}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="运单状态"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.status == 1">未结束</span>
+                <span v-else-if="scope.row.status == 2">已结束运单</span>
+                <span v-else-if="scope.row.status == 3">开票完成</span>
+                <span v-else-if="scope.row.status == 4">开票中</span>
+                <span v-else-if="scope.row.status == 9">状态错误</span>
+              </template>
+          </el-table-column>
+           <el-table-column
+            prop="isSuccess"
+            label="是否成功"
+            show-overflow-tooltip>
+            <template slot-scope="scope">
+                <span v-if="scope.row.isSuccess == 1">成功</span>
+                <span v-else-if="scope.row.isSuccess == 2">失败</span>
+            </template>
+          </el-table-column>
+          </el-table>
+        </template>
+
+        <div class="blocks">
+          <el-pagination
+          @size-change="handleSize"
+          @current-change="handleCurrent"
+          :current-page="currenttwo"
+          :page-sizes="[6, 8, 10]"
+          :page-size="pagesizetwo"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totaltwo">
+          </el-pagination>
+        </div>
+
+
+  </div>
+</template>
+
+<script>
+export default{
+  data() {
+    return {
+
+      loading: false,
+      num: '',
+      plateNumber: '',
+      batchNumber: '',
+      billStartTime: '',
+      billEndTime: '',
+      createStartTime: '',
+      createEndTime: '',
+      // taxPlayerCode: '',
+      // status: '',
+      currenttwo: 1,
+      pagesizetwo: 8,
+      totaltwo: 0,
+      // batch: '',
+      usertabletwo: [],
+      formUserList: {
+       "userId": "",
+       "roleId": ""
+      },
+    }
+  },
+  created() {
+   this.loadDataCar();
+  },
+  methods: {
+    // 列表展示
+    async loadDataCar() {
+      this.formUserList.userId = sessionStorage.getItem('userId');
+      this.formUserList.roleId = sessionStorage.getItem('roleId');
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        // formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+
+        }
+      }
+    },
+    //查看
+    async queryLook() {
+      if(this.billStartTime !== '' || this.billEndTime !== '') {
+        this.billStartTime = (new Date(this.billStartTime)).getTime();
+        this.billEndTime = (new Date(this.billEndTime)).getTime();
+      }
+      if(this.createStartTime !== '' || this.createEndTime !== '') {
+        this.createStartTime = (new Date(this.createStartTime)).getTime();
+        this.createEndTime = (new Date(this.createEndTime)).getTime();
+      }
+
+      if(this.formUserList.roleId == 1) {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('isSuccess', 1);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('billStartTime', this.billStartTime);
+        formData.append('billEndTime', this.billEndTime);
+        formData.append('createStartTime', this.createStartTime);
+        formData.append('createEndTime', this.createEndTime);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+        }
+      }else {
+        const formData = new FormData();
+        formData.append('current', this.currenttwo);
+        formData.append('size', this.pagesizetwo);
+        formData.append('isSuccess', 1);
+        formData.append('userId', this.formUserList.userId);
+        formData.append('num', this.num);
+        formData.append('plateNumber', this.plateNumber);
+        formData.append('batchNumber', this.batchNumber);
+        formData.append('billStartTime', this.billStartTime);
+        formData.append('billEndTime', this.billEndTime);
+        formData.append('createStartTime', this.createStartTime);
+        formData.append('createEndTime', this.createEndTime);
+        const response = await this.$http.post(`carFreeCarrierBill/list`, formData);
+        if (response.data.code === 0) {
+          this.loading = false;
+          this.usertabletwo = response.data.data.records;
+          this.totaltwo = response.data.data.total;
+
+        }
+      }
+    },
+     //导出功能
+    exportOut() {
+      var url = `http://invoice.back.jkcredit.com/carFreeCarrierBill/billExport?&userId=${this.formUserList.userId}`;
+
+      window.location.href= url;
+    },
+
+    // 分页方法
+    handleSize(val) {
+      this.pagesizetwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.batchNumber !== '' || this.billStartTime !== '' || this.billEndTime !== '' || this.createStartTime !== '' || this.createEndTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrent(val) {
+      this.currenttwo = val;
+      if(this.num !== '' || this.plateNumber !== '' || this.batchNumber !== '' || this.billStartTime !== '' || this.billEndTime !== '' || this.createStartTime !== '' || this.createEndTime !== '') {
+        this.queryLook();
+      }else{
+        this.loadDataCar();
+      };
+      console.log(`当前页: ${val}`);
+    }
+  }
+};
+</script>
+
+<style>
+.waybillList {
+  border: 1px solid #d9d9d9;
+  border-radius: 10px;
+}
+.waybillList .upload-demo {
+  display: inline-block;
+}
+.waybillList .title {
+  font-size: 5px;
+  margin-bottom: 20px;
+}
+.waybillList .top {
+  padding-top: 20px;
+  padding-left: 20px;
+}
+.waybillList .text {
+  display: inline-block;
+  color: #000;
+  font-size: 16px ;
+  margin-left: 1%;
+}
+.waybillList .tou {
+  font-size: 20px;
+  height: 30px;
+  line-height: 30px;
+  padding-top: 15px;
+}
+.waybillList .line {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+  height: 2px;
+  background-color: #d9d9d9;
+}
+.waybillList .theinput {
+  display: inline-block;
+  width: 20%;
+}
+.waybillList .styleType {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.waybillList .input-demo {
+  display: inline-block;
+  width: 20%;
+  margin-left: 1%;
+}
+.waybillList .block {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 15px;
+  margin-bottom: 20px;
+}
+.waybillList .blocks {
+  font-size: 5px;
+  text-align: center;
+  margin-top: 20px;
+  padding-bottom: 20px;
+}
+
+</style>

+ 30 - 22
src/views/selfCar/calculateInfo.vue

@@ -4,10 +4,10 @@
         <el-row>
           <el-col :span="24">
             <div class="top">
-               <el-input  placeholder="企业" class="input-demo" v-model="formCondition.companyName"></el-input>
-               <el-input  placeholder="ETC" class="input-demo" v-model="formCondition.etcNum"></el-input>
-               <el-input  placeholder="开始年月" class="input-demo" v-model="formCondition.satrtTime"></el-input>
-               <el-input  placeholder="截止年月" class="input-demo" v-model="formCondition.endTime"></el-input>
+               <el-input  placeholder="客户名称" class="input-demo" v-model="formCondition.customId"></el-input>
+               <el-input  placeholder="税号" class="input-demo" v-model="formCondition.companyReferencenum"></el-input>
+               <el-input  placeholder="etc卡号" class="input-demo" v-model="formCondition.etcNum"></el-input>
+               <el-date-picker v-model="formCondition.calTime" type="monthrange" value-format="yyyy-MM" range-separator="至" start-placeholder="计费开始" end-placeholder="计费结束"></el-date-picker>
             </div>
             <div class="top">
                <el-button type="success" style="margin-left: 1%;" @click="loadData">查询</el-button>
@@ -27,34 +27,39 @@
           border
           tooltip-effect="dark">
           <el-table-column
+            prop="companyNum"
+            label="企业编号"
+            show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column
             label="客户名称"
             prop="customId"
             show-overflow-tooltip>
           </el-table-column>
-           <el-table-column
-            prop="companyNum"
-            label="公司名称"
+          <el-table-column
+            label="购方税号"
+            prop="companyReferencenum"
             show-overflow-tooltip>
           </el-table-column>
           <el-table-column
             prop="etcNum"
-            label="ETC卡"
+            label="ETC卡数量"
             show-overflow-tooltip>
           </el-table-column>
           <el-table-column
-            prop="fee"
-            label="费用"
+            prop="tradeIdNum"
+            label="交易id数量"
             show-overflow-tooltip>
           </el-table-column>
-          <el-table-column
-            prop="calTime"
-            label="计费时间"
+         <el-table-column
+            prop="feeNum"
+            label="计费条数"
             show-overflow-tooltip>
           </el-table-column>
         </el-table>
       </template> 
       <!-- 分页 -->
-      <div class="block">
+      <!-- <div class="block">
         <el-pagination
         @size-change="handleSizeChange"
         @current-change="handleCurrentChange"
@@ -64,7 +69,7 @@
         layout="total, sizes, prev, pager, next, jumper"
         :total="total">
         </el-pagination>
-      </div>
+      </div> -->
     </div>
 </template>
 <script type="text/javascript">
@@ -74,8 +79,6 @@ import XLSX from "xlsx";
         data(){
           return{
             formCondition:{
-              companyName:'',
-              etcNum:''
             },
             calculateInfo:[],
             current: 1,
@@ -86,17 +89,22 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {
             const formData = new FormData();
-            formData.append('current', this.current);
-            formData.append('size', this.pagesize);
+             for(var i in this.formCondition){
+                formData.append(i,this.formCondition[i]);
+            }
 
-            const response = await this.$http.post(`selfCar/findSelfcarCalculateInfo`, formData);
+            const response = await this.$http.post(`selfCar/findSelfcarCalculateInfoSta`, formData);
             if (response.data.code === 0) {
-              this.calculateInfo = response.data.data.records;
-              this.total = response.data.data.total;
+              this.calculateInfo = response.data.data;
             }
           },
           // 分页方法

+ 17 - 0
src/views/selfCar/invoice.vue

@@ -107,21 +107,33 @@
             prop="totalAmount"
             label="价税合计"
             show-overflow-tooltip>
+             <template slot-scope="scope">
+               <span>{{scope.row.totalAmount/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="totalTaxAmount"
             label="税额"
             show-overflow-tooltip>
+             <template slot-scope="scope">
+               <span>{{scope.row.totalTaxAmount/100| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="fee"
             label="金额"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.fee/100| rounding}}</span>
+            </template>
           </el-table-column>
            <el-table-column
             prop="taxRate"
             label="税率"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.taxRate| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="invoiceHtmlUrl"
@@ -167,6 +179,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 9 - 1
src/views/selfCar/selfCarTrade.vue

@@ -14,7 +14,7 @@
                  <el-date-picker v-model="formCondition.exTimeBegin" type="daterange" value-format="yyyy-MM-dd HH:mm:SS" range-separator="至" start-placeholder="交易时间始" end-placeholder="交易时间止"></el-date-picker>
                  <el-date-picker v-model="formCondition.aclTimeBegin" type="daterange" value-format="yyyy-MM-dd HH:mm:SS" range-separator="至" start-placeholder="申请开票时间始" end-placeholder="申请开票时间止"></el-date-picker>
                <el-button type="success" style="margin-left: 1%;" @click="loadData">查询</el-button>
-               <el-button type="success" style="margin-left: 1%;" >更新状态(待确认)</el-button>
+               <el-button type="success" style="margin-left: 1%;" >更新</el-button>
                               <el-button type="primary" style="margin-left: 1%;" @click="exportExcel">导出报表</el-button>
               </div>
             </div>
@@ -60,6 +60,9 @@
             prop="fee"
             label="交易费用"
             show-overflow-tooltip>
+            <template slot-scope="scope">
+               <span>{{scope.row.fee/100| rounding}}</span>
+            </template>
           </el-table-column>
           <el-table-column
             prop="exTime"
@@ -116,6 +119,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 5 - 0
src/views/selfCar/selfCarTradeException.vue

@@ -110,6 +110,11 @@ import XLSX from "xlsx";
         created() {
           this.loadData();
         },
+        filters: {
+            rounding (value) {
+              return value.toFixed(2)
+            }
+        },
         methods:{
           // 列表展示
           async loadData() {

+ 12 - 2
src/views/sys/user.vue

@@ -165,7 +165,7 @@
           </el-form-item>
 
           <el-form-item label="角色" prop="roleId">
-            <el-select v-model="formUserList.roleId" placeholder="请选择角色" style="width: 100%">
+            <el-select v-model="formUserList.roleId" @change="changeRow" placeholder="请选择角色" style="width: 100%">
               <el-option
                 v-for="item in roleList"
                 :key="item.id"
@@ -186,7 +186,9 @@
           <el-form-item label="企业名称" prop="company">
             <el-input v-model="formUserList.company" auto-complete="off" placeholder="请输入企业名称"></el-input>
           </el-form-item>
-
+          <el-form-item label="ETC卡月费" prop="fee" v-show="showEtcFee">
+            <el-input v-model="formUserList.fee" auto-complete="off" placeholder="etc卡月费用"></el-input>
+          </el-form-item>
           <el-form-item label="状态" prop="isLock">
             <el-select v-model="formUserList.isLock" placeholder="请选择状态" style="width: 100%">
               <el-option
@@ -400,6 +402,7 @@ export default{
       changeMoney: false,
       changelocks: false,
       changepassword: false,
+      showEtcFee:false
     }
   },
   created() {
@@ -426,6 +429,13 @@ export default{
         
       
     // },
+    changeRow(id){
+     if(id == 3){
+       this.showEtcFee =true
+     }else{
+       this.showEtcFee =false
+     }
+    },
     async changeRole(data,row){
         row.roleId ='';
         row.roleName = '无权限';