Jelajahi Sumber

Merge branch 'master' of http://47.100.3.209:3000/gongdecai/wangluohuoyun-htqd

zhongtianhaoyuan 2 tahun lalu
induk
melakukan
0d492f194a

+ 1 - 0
public/index.html

@@ -4,6 +4,7 @@
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+    <!-- <meta http-equiv="Content-Security-Policy"> -->
     <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
     <title><%= webpackConfig.name %></title>

+ 1 - 1
src/permission.js

@@ -39,7 +39,7 @@ router.beforeEach(async (to, from, next) => {
       NProgress.done()
     } else {
       const hasGetUserInfo = store.getters.name
-      console.log(store.getters)
+      // console.log(store.getters)
       if (store.getters.token) {
         
         // if (!whiteList.includes(to.path)) {

+ 1 - 0
src/store/modules/permission.js

@@ -83,6 +83,7 @@ const actions = {
             const data = await getRoule().then().catch(error => {
                 clearStorage()
                 resetRouter()
+                window.location.href="https://admin.changyuntong56.com/#/login"
             })
             const roles = []
             handleRoles(data.data, roles, '')

+ 1 - 0
src/utils/request.js

@@ -47,6 +47,7 @@ service.interceptors.response.use(
      if(res.data instanceof Blob){
       return res.data
     }
+    console.log(res)
     if (res.code && res.code !== 200 && res.code !== '200') {
       Message({
         message: res.message || 'Error',

+ 20 - 2
src/views/cargoOwnerManagement/empowerExamine.vue

@@ -96,6 +96,13 @@
                     </div>
                     <div class="right">{{ item.amountMoney }}元</div>
                   </div>
+                  <div class="row1">
+                    <div class="left">
+                      <img v-if='item.rechargeUrl' style='width:20px;height:20px;' @click="enlarge(item.rechargeUrl)" :src="item.rechargeUrl" alt="">
+                      <div v-else>暂无图片</div>
+                    </div>
+                    <div class="right">{{ item.createDate }}</div>
+                  </div>
                   <!-- <div class="row2">
                     <div class="left">
                       支付预付款
@@ -126,8 +133,7 @@
               :disabled="scope.row.authenticationStatus != '审核中'">驳回</el-link>
             <el-divider direction="vertical"></el-divider>
             <el-link target="_blank" @click="recharge(scope.row)" type="primary" :underline="false"
-              :disabled="scope.row.authenticationStatus !='已认证'">充值
-            </el-link>
+              :disabled="scope.row.passOnce == '0'">充值</el-link>
             <el-divider direction="vertical"></el-divider>
             <el-link target="_blank" @click="newInfo(scope.row)" type="primary" :underline="false"
               :disabled="scope.row.authenticationStatus == '审核中'">消息</el-link>
@@ -971,4 +977,16 @@ export default {
 .find::v-deep input.el-input__inner {
   border-radius: 0;
 }
+.bill-item{
+  border-bottom:1px solid #ccc;
+}
+.bill-item:last-child{
+  border-bottom:1px solid transparent;
+}
+.row1{
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding:5px;
+}
 </style>

+ 2 - 2
src/views/driverManagement/identityExamine.vue

@@ -52,8 +52,8 @@
         </el-row>
       </div>
       <el-table :data="tableData" style="width: 98%; margin: 0 auto; border-radius: 10px" height="55.8vh" border highlight-current-row>
-        <el-table-column prop="driverName" label="司机姓名" min-width="110"></el-table-column>
-        <el-table-column prop="driverPhone" label="账号" min-width="90"></el-table-column>
+        <el-table-column prop="driverName" label="司机姓名" min-width="90"></el-table-column>
+        <el-table-column prop="driverPhone" label="账号" min-width="130"></el-table-column>
         <el-table-column prop="numberCard" label="身份证号" min-width="165"></el-table-column>
         <el-table-column prop="shipmentsNumber" label="承运次数">
           <template scope="scope">

+ 169 - 2
src/views/driverManagement/vehicleExamine.vue

@@ -93,6 +93,8 @@
             <el-divider direction="vertical"></el-divider>
             <el-link target="_blank" @click="reject(scope.row)" type="primary" :underline="false"
               :disabled="scope.row.status != '审核中'">驳回</el-link>
+              <el-divider direction="vertical"></el-divider>
+              <el-link target="_blank" @click="lookmessage(scope.row)" type="primary" :underline="false">查看</el-link>
           </template>
         </el-table-column>
       </el-table>
@@ -148,6 +150,8 @@
         <div class="file_tips">
           <span v-if="count == 3">有效期:{{file.drivingLicenseValidityDate}} </span><span v-if="count == 3"> 注册日期:{{file.drivingLicenseRegistrationDate}} </span> <span v-if="count == 3"> 发证日期:{{file.drivingLicenseIssueDate}} </span> <span v-if="count == 3"> 发证机关:{{file.lssuingAuthority}}</span>
           <span v-if="count == 5">有效期:{{file.trailerLicenseValidityDate}} </span><span v-if="count == 5"> 注册日期:{{file.trailerLicenseRegistrationDate}} </span> <span v-if="count == 5"> 发证日期:{{file.trailerLicenseIssueDate}} </span> <span v-if="count == 5"> 发证机关:{{file.guaLssuingAuthority}}</span>
+          <span v-if="count == 6"> 运输证号:{{file.operationCertificateNumber}} </span><span v-if="count == 6">有效期:{{file.operationCertificateValidityDate}} </span>
+          <span v-if="count == 7"> 挂车运输证号:{{file.trailerOperationCertificateNumber}} </span><span v-if="count == 7">有效期:{{file.trailerOperationCertificateValidityDate}} </span>
         </div>
         <div class="file_img">
           <img :src="img[index]" class="img_css" @click="enlarge(img[index])" />
@@ -183,6 +187,109 @@
         </div>
       </div>
     </el-dialog>
+    <el-drawer title="车辆详情" :visible.sync="rightSee" style="overflow-y: auto !important">
+      <div class="right_css">
+        <div style='height:80vh;overflow-y:scroll;'>
+          <!-- <div class="title_name">基本信息</div> -->
+          <div class="right_item">车型:{{costData.carCategory}}{{costData.carType}}</div>
+          <div class="right_title">道路运输证</div>
+          <div class="right_item">
+            <img :src="costData.operationCertificate" class="right_img_css" @click="enlarge(costData.operationCertificate)" />
+          </div>
+          <div class="right_title">道路运输证号</div>
+          <div class="right_item">{{costData.operationCertificateNumber}}</div>
+          <div class="right_title">道路运输证有效期</div>
+          <div class="right_item">{{costData.operationCertificateValidityDate}}</div>
+          <div class="right_title">挂车道路运输证</div>
+          <div class="right_item">
+            <img :src="costData.trailerOperationCertificate" class="right_img_css" @click="enlarge(costData.trailerOperationCertificate)" />
+          </div>
+          <div class="right_title">挂车道路运输证号</div>
+          <div class="right_item">{{costData.trailerOperationCertificateNumber}}</div>
+          <div class="right_title">挂车道路运输证有效期</div>
+          <div class="right_item">{{costData.trailerOperationCertificateValidityDate}}</div>
+          <div class="right_title">行驶证主页</div>
+          <div class="right_item">
+            <img :src="costData.drivingLicenseHomePage" class="right_img_css" @click="enlarge(costData.drivingLicenseHomePage)" />
+          </div>
+          <div class="right_title">行驶证副页</div>
+          <div class="right_item">
+            <img :src="costData.drivingLicenseBackPage" class="right_img_css" @click="enlarge(costData.drivingLicenseBackPage)" />
+          </div>
+          <div class="right_title">行驶证车辆类型</div>
+          <div class="right_item">{{costData.vehicleType}}</div>
+          <div class="right_title">行驶证档案编号</div>
+          <div class="right_item">{{costData.drivingLicenseNumber}}</div>
+          <div class="right_title">注册日期</div>
+          <div class="right_item">{{costData.drivingLicenseRegistrationDate}}</div>
+          <div class="right_title">发证日期</div>
+          <div class="right_item">{{costData.drivingLicenseIssueDate}}</div>
+          <div class="right_title">行驶证有效期</div>
+          <div class="right_item">{{costData.drivingLicenseValidityDate}}</div>
+          <div class="right_title">使用性质</div>
+          <div class="right_item">{{costData.useNature}}</div>
+          <div class="right_title">发证机关</div>
+          <div class="right_item">{{costData.lssuingAuthority}}</div>
+          <div class="right_title">车辆能源类型</div>
+          <div class="right_item">{{costData.energyType}}</div>
+          <div class="right_title">挂车行驶证主页</div>
+          <div class="right_item">
+            <img :src="costData.trailerLicenseHomePage" class="right_img_css" @click="enlarge(costData.drivingLicenseHomePage)" />
+          </div>
+           <div class="right_title">挂车行驶证副页</div>
+          <div class="right_item">
+            <img :src="costData.trailerLicenseBackPage" class="right_img_css" @click="enlarge(costData.drivingLicenseBackPage)" />
+          </div>
+          <div class="right_title">挂车行驶证档案编号</div>
+          <div class="right_item">{{costData.trailerLicenseNumber}}</div>
+          <div class="right_title">注册日期</div>
+          <div class="right_item">{{costData.trailerLicenseRegistrationDate}}</div>
+          <div class="right_title">发证日期</div>
+          <div class="right_item">{{costData.trailerLicenseIssueDate}}</div>
+          <div class="right_title">挂车行驶证有效期</div>
+          <div class="right_item">{{costData.trailerLicenseValidityDate}}</div>
+          <div class="right_title">使用性质</div>
+          <div class="right_item">{{costData.guaUseNature}}</div>
+          <div class="right_title">发证机关</div>
+          <div class="right_item">{{costData.guaLssuingAuthority}}</div>
+          <div class="right_title">车牌号</div>
+          <div class="right_item">{{costData.carNumber}}</div>
+          <div class="right_title">车牌颜色</div>
+          <div class="right_item">{{costData.carNumberColour}}</div>
+          <div class="right_title">车辆所属车主</div>
+          <div class="right_item">{{costData.owner}}</div>
+          <div class="right_title">总质量(千克)</div>
+          <div class="right_item">{{costData.carTotalWeight}}</div>
+          <div class="right_title">核定载质量(千克)</div>
+          <div class="right_item">{{costData.carApprovedWeight}}</div>
+          <div class="right_title">整备质量(千克)</div>
+          <div class="right_item">{{costData.servicingWeight}}</div>
+          <div class="right_title">外廓尺寸(毫米)</div>
+          <div class="right_item">{{costData.carLong}}-{{costData.carWidth}}-{{costData.carHeight}}</div>
+          <div class="right_title">上传人车合影</div>
+          <div class="right_item">
+            <img  v-for="item in costData.addressUrlArray" :src="item" class="right_img_css" @click="enlarge(item)" />
+          </div>
+          <div class="right_title">挂车车牌号</div>
+          <div class="right_item">{{costData.guaCarNumber}}</div>
+          <div class="right_title">挂车车辆所属车主</div>
+          <div class="right_item">{{costData.guaOwner}}</div>
+          <div class="right_title">挂车核定载质量(千克)</div>
+          <div class="right_item">{{costData.guaCarApprovedWeight}}</div>
+          <div class="right_title">挂车整备质量(千克)</div>
+          <div class="right_item">{{costData.guaServicingWeight}}</div>
+          <div class="right_title">挂车外廓尺寸(毫米)</div>
+          <div class="right_item">{{costData.guaCarLong}}-{{costData.guaCarWidth}}-{{costData.guaCarHeight}}</div>
+          <div class="right_title">上传人和挂车合影</div>
+          <div class="right_item">
+            <img  v-for="item in costData.guaAddressUrlArray" :src="item" class="right_img_css" @click="enlarge(item)" />
+          </div>
+        <div class="right_btn">
+          <el-button @click="rightSee = false">关闭</el-button>
+        </div>
+        </div>
+      </div>
+    </el-drawer>
     <el-image-viewer v-if="imgsVisible" :on-close="closeImgViewer" :url-list="srcList" style="z-index:9999" />
   </div>
 </template>
@@ -215,6 +322,7 @@
         carSee: {},
         //附件
         file: {},
+        rightSee:false,
         img: [],
         index: "0",
         count: "1",
@@ -223,6 +331,7 @@
         fujianInfo: false,
         //图片预览
         srcList: [],
+        costData:{},
         imgsVisible: false,
       };
     },
@@ -230,7 +339,12 @@
       this.getList()
     },
     methods: {
+      lookmessage(row){
+        this.costData=row
+        this.rightSee=true
+      },
       closeImgViewer() {
+        console.log(11111111111)
          this.srcList = []
         this.imgsVisible = false;
       },
@@ -297,6 +411,21 @@
         _obj.searchKeyWord = this.searchkeyWord
         _obj.searchType = this.search
         getCarList(_obj).then(response => {
+          if(response.data.records.length>0){
+            for(var i=0;i<response.data.records.length;i++){
+              if(response.data.records[i].addressUrl){
+                response.data.records[i].addressUrlArray=response.data.records[i].addressUrl.split(',')
+              }else{
+                response.data.records[i].addressUrlArray=[]
+              }
+              if(response.data.records[i].guaAddressUrl){
+                response.data.records[i].guaAddressUrlArray=response.data.records[i].guaAddressUrl.split(',')
+              }else{
+                response.data.records[i].guaAddressUrlArray=[]
+              }
+            }
+            
+          }
             this.tableData = response.data.records
             this.deptBudgetTotal = response.data.total
             this.listLoading = false
@@ -559,11 +688,49 @@
       margin-top: 10px;
     }
   }
+  
+   .right_css {
+    // overflow-y: auto !important;
+    min-height: 1266px;
+    padding: 0 20px;
+
+    .right_title {
+      color: #9D9D9D;
+      font-size: 14px;
+      margin-bottom: 4px;
+    }
 
+    .title_name {
+      margin-bottom: 10px;
+    }
+
+    .right_item {
+      color: #0D0D0D;
+      font-size: 14px;
+      margin-bottom: 10px;
+    }
+
+    .right_btn {
+      text-align: right;
+      margin: 10px 0;
+    }
+
+    .right_img_css {
+    width: 100px;
+    height: 80px;
+    margin-right: 5px;
+  }
+
+    .right_img {
+      width: 200px;
+      height: 120px;
+      margin-top: 10px;
+    }
+  }
   //查看附件
   .file {
     .fujian_css {
-      width: 620px;
+      width: 746px;
       display: flex;
       margin: 0 auto;
       text-align: center;
@@ -574,7 +741,7 @@
 
       .fujian_item {
         cursor: pointer;
-        width: 105px;
+        width: 135px;
         height: 32px;
         border-right: 1px solid #f0f1f2;
       }

+ 22 - 11
src/views/enterpriseManagement/enterpriseAudit.vue

@@ -43,7 +43,7 @@
       <el-table :data="tableData" style="width: 98%; margin: 0 auto; border-radius: 10px" height="55.8vh" border
         highlight-current-row>
         <el-table-column prop="companyName" label="企业名称" min-width="150"></el-table-column>
-        <el-table-column prop="unifiedSocialCreditCode" label="统一社会信用代码" min-width="140"></el-table-column>
+        <el-table-column prop="unifiedSocialCreditCode" label="统一社会信用代码" min-width="160"></el-table-column>
         <el-table-column prop="legalPersonName" label="法定代表人" min-width="91"></el-table-column>
         <el-table-column prop="accountNumber" label="账号" min-width="107"></el-table-column>
         <el-table-column prop="accountBalance" label="可用余额(元)" min-width="133"></el-table-column>
@@ -57,7 +57,14 @@
                     <div class="left">
                       {{ item.types }}
                     </div>
-                    <div class="right">{{ item.amountMoney }}</div>
+                    <div class="right">{{ item.amountMoney }}元</div>
+                  </div>
+                  <div class="row1">
+                    <div class="left">
+                      <img v-if='item.rechargeUrl' style='width:20px;height:20px;' @click="enlarge(item.rechargeUrl)" :src="item.rechargeUrl" alt="">
+                      <div v-else>暂无图片</div>
+                    </div>
+                    <div class="right">{{ item.createDate }}</div>
                   </div>
                   <!-- <div class="row2">
                     <div class="left">
@@ -91,7 +98,7 @@
             <el-link target="_blank" @click="seeInfo(scope.row)" type="primary" :underline="false">查看</el-link>
             <el-divider direction="vertical"></el-divider>
             <el-link target="_blank" @click="recharge(scope.row)" type="primary" :underline="false"
-              :disabled="scope.row.status != '已认证'">充值</el-link>
+              :disabled="scope.row.passOnce == '0'">充值</el-link>
             <!-- <span class="btn_css" @click="seeInfo(scope.row)"></span> -->
           </template>
         </el-table-column>
@@ -719,14 +726,18 @@ export default {
 }
 
 .bill-content {
-  .bill-item {
-
-    .row1,
-    .row2 {
-      display: flex;
-      justify-content: space-between;
-    }
-  }
+  .bill-item{
+  border-bottom:1px solid #ccc;
+}
+.bill-item:last-child{
+  border-bottom:1px solid transparent;
+}
+.row1{
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding:5px;
+}
 }
 
 .pay {

+ 61 - 6
src/views/login/index.vue

@@ -26,11 +26,11 @@
       </el-form-item>
       <el-form-item prop="code">
         <el-row :span="24" style="display: flex; align-items: center">
-          <el-col :span="12">
+          <el-col :span="20">
             <el-input v-model="loginForm.code" auto-complete="off" placeholder="请输入验证码" size=""
               @keyup.enter.native="submitForm('loginForm')"></el-input>
           </el-col>
-          <el-col :span="12" style="display: flex; justify-content: flex-end">
+          <el-col :span="4" style="display: flex; justify-content: flex-end">
             <div class="login-code" @click="refreshCode">
               <!--验证码组件-->
               <s-identify :identifyCode="identifyCode"></s-identify>
@@ -40,10 +40,10 @@
       </el-form-item>
       <el-form-item prop="checkCode">
         <el-row :span="24" style="display: flex; align-items: center">
-          <el-col :span="12">
+          <el-col :span="20">
             <el-input v-model="loginForm.checkCode" auto-complete="off" placeholder="请输入手机验证码"></el-input>
           </el-col>
-          <el-col :span="12" style="display: flex; justify-content: flex-end">
+          <el-col :span="4" style="display: flex; justify-content: flex-end">
             <div class="login-code" @click="checkClick">
               <el-button type="primary" style="width: 112px">{{
                 codeText
@@ -273,6 +273,62 @@
           this.$refs.password.focus();
         });
       },
+      // handleLogin() {
+      //   this.$refs.loginForm.validate(async (valid) => {
+      //     if (valid) {
+      //       this.loginForm.companyName = '黑龙江中天昊元贸易有限公司'
+      //       this.loading = true
+      //       // this.$store.dispatch('user/login', this.loginForm)
+      //       // const res = await this.$store.dispatch('user/login', this.loginForm)
+      //       const res = await this.login(this.loginForm)
+      //       debugger
+      //       localStorage.setItem('ws_login_type', 2)
+      //       Cookies.set('ws_login_companyShortName', this.loginForm.companyName, {
+      //         expires: 365,
+      //       })
+      //       Cookies.set('ws_login_account', this.loginForm.username, {
+      //         expires: 365,
+      //       })
+      //       if (this.rememberMe) {
+      //         Cookies.set('ws_login_pwd', this.loginForm.password, {
+      //           expires: 365,
+      //         })
+      //         Cookies.set('ws_login_rememberMe', 1, {
+      //           expires: 365
+      //         })
+      //       } else {
+      //         Cookies.remove('ws_login_companyShortName')
+      //         Cookies.remove('ws_login_account')
+      //         Cookies.remove('ws_login_pwd')
+      //         Cookies.set('ws_login_rememberMe', 0, {
+      //           expires: 365
+      //         })
+      //       }
+      //       const redirect = this.$route.query.redirect
+      //       if (redirect) {
+      //         this.$router.push(redirect)
+      //       } else {
+      //         this.$router.push('/')
+      //       }
+      //       // .then(response => {
+      //       //   localStorage.setItem('UserInfo', JSON.stringify(response.data))
+      //       //   this.$router.push({
+      //       //     path: this.redirect || '/'
+      //       //   })
+      //       //   this.loading = false
+      //       // })
+      //       // .catch(() => {
+      //       //   this.loading = false
+      //       // })
+      //     } else {
+      //       console.log('error submit!!')
+      //       return false
+      //     }
+      //   })
+      // },
+
+
+
       handleLogin() {
         let that = this
         this.$refs.loginForm.validate(async (valid) => {
@@ -286,9 +342,8 @@
               loginPassword: this.loginForm.password,
               compId: "2710b21efc1e4393930c5dc800010dc4",
             })
-
               if (res.code == 200) {
-                const res = await this.$store.dispatch('user/login', this.loginForm)
+                const res1 = await this.$store.dispatch('user/login', this.loginForm)
                 localStorage.setItem("ws_login_type", 2);
                 Cookies.set("ws_login_companyShortName", this.loginForm.companyName, {
                   expires: 365,

+ 21 - 8
src/views/orderManagement/orderAudit.vue

@@ -473,16 +473,29 @@
           if(response.data.records){
             for (let i = 0; i < response.data.records.length; i++) {
               if(response.data.records[i].cargoOwnerStatus=='已终止'){
-                if(response.data.records[i].terminationReason==1){
-                  response.data.records[i].content='原因:已与货主协商<br/>描述:'+response.data.records[i].terminationReasonDescription
-                }else if(response.data.records[i].terminationReason==2){
-                  response.data.records[i].content='原因:货主原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
-                }else if(response.data.records[i].terminationReason==3){
-                  response.data.records[i].content='原因:司机个人原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
-                }else if(response.data.records[i].terminationReason==4){
-                  response.data.records[i].content='原因:其他<br/>描述:'+response.data.records[i].terminationReasonDescription
+                if(response.data.records[i].terminator==1){
+                  if(response.data.records[i].terminationReason==1){
+                    response.data.records[i].content='原因:已与货主协商<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==2){
+                    response.data.records[i].content='原因:货主原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==3){
+                    response.data.records[i].content='原因:司机个人原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==4){
+                    response.data.records[i].content='原因:其他<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }
+                }else if(response.data.records[i].terminator==2){
+                  if(response.data.records[i].terminationReason==1){
+                    response.data.records[i].content='原因:已与司机协商<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==2){
+                    response.data.records[i].content='原因:司机原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==3){
+                    response.data.records[i].content='原因:司机个人原因终止<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }else if(response.data.records[i].terminationReason==4){
+                    response.data.records[i].content='原因:其他<br/>描述:'+response.data.records[i].terminationReasonDescription
+                  }
                 }
                 
+                
               }else{
                 response.data.records[i].content=''
               }

+ 162 - 7
src/views/settlementManagement/driverFeeSettlement.vue

@@ -5,7 +5,7 @@
         <el-row>
           <el-col :span="14">
           <el-button type="primary" @click="deferPay">暂缓支付</el-button>
-          <el-button type="primary" @click="batchpayment">批量付款</el-button>
+          <!-- <el-button type="primary" @click="batchpayment">批量付款</el-button> -->
           <el-date-picker class='date' v-model="value1" value-format="yyyy-MM-dd" @change="dateChange" type="daterange"
               range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
           </el-date-picker>
@@ -63,10 +63,15 @@
             <span>{{scope.row.bankDeposit}}-{{scope.row.bankDepositBranch}}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="bankCard" label="银行卡号" />
+        <el-table-column prop="bankCard" min-width="120" label="银行卡号" />
         <el-table-column prop="paymentType" label="付款类型" />
         <el-table-column prop="amountMoney" label="金额(元)" />
-        <el-table-column prop="paymentDate" label="付款时间" />
+        <el-table-column prop="paymentDate" min-width="120" label="付款时间" />
+        <el-table-column prop="paymentDate" label="支付凭证" >
+          <template scope="scope">
+            <el-link v-if='scope.row.paymentVoucher' target="_blank" type="primary" :underline="false" @click="paymentVoucher(scope.row)">查看</el-link>
+          </template>
+        </el-table-column>
         <el-table-column prop="status" label="状态" >
           <template scope="scope">
             <span>{{scope.row.status}}</span>
@@ -82,9 +87,49 @@
     <el-pagination :current-page="currentPage" style="text-align: center; margin-top: 10px"
       :page-size="deptCircularPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"
       @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+    <el-dialog :close-on-click-modal='false' title="支付凭证" :visible.sync="fujianInfo" width="830px" :before-close="fujianClose">
+      <div class="file">
+        <img :src="file.paymentVoucher" class="img_css" @click="enlarge(file.paymentVoucher)" />
+      </div>
+    </el-dialog>
+    <el-dialog :close-on-click-modal='false' :title="title" :visible.sync="paymentshow" width="830px" :before-close="paymentshowClose">
+      <div >
+        <el-form ref="form" auto-complete="on" :model="currectdata" :rules="Rules" label-width="100px">
+          <el-form-item label="收款人">
+            {{currectdata.driverName}}
+          </el-form-item>
+          <el-form-item label="卡号">
+           {{currectdata.bankCard}}
+          </el-form-item>
+          <el-form-item label="金额">
+           {{currectdata.amountMoney}}
+          </el-form-item>
+
+          <el-form-item label="流水号" prop='serialNumber'>
+            <el-input placeholder="输入流水号" v-model="currectdata.serialNumber"></el-input>
+            <!-- <el-input type="textarea" v-model="currectdata.serialNumber"></el-input> -->
+          </el-form-item>
+          <el-form-item label="支付凭证" prop='paymentVoucher'>
+            <el-upload ref='upload' class="avatar-uploader" :action="uploadPath" :show-file-list="false"
+              :on-success="uploadSuccess">
+              <img v-if="currectdata.paymentVoucher" :src="currectdata.paymentVoucher" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+            <!-- <el-input type="textarea" v-model="currectdata.serialNumber"></el-input> -->
+          </el-form-item>
+          <div class="btn">
+            <el-button @click="paymentsubmit">提交</el-button>
+          </div>
+        </el-form>
+      </div>
+      
+    </el-dialog>
   </div>
 </template>
 <script>
+  import {
+    uploadPath
+  } from '@/api/officialWebsiteManagement'
 import {
   getListdriverfreight,
   deferpay,
@@ -93,6 +138,7 @@ import {
   export default {
     data() {
       return {
+        uploadPath,
         startDate: '',
         endDate: '',
          value1: '',
@@ -103,10 +149,36 @@ import {
         pageSize: 10,
         deptBudgetTotal: 0,
         deptCircularPage: {},
+        Rules: {
+          serialNumber: [{
+              required: true,
+              message: "请输入流水号",
+              trigger: "blur",
+            },
+            {
+              min: 6,
+              max: 30,
+              message: "流水号输入错误",
+              trigger: "blur",
+            },
+          ],
+          paymentVoucher: [{
+              required: true,
+              type:'string',
+              message: "支付凭证不能为空",
+              trigger: "change",
+            }
+          ],
+        },
         multipleSelection:[],
         search: 1,
         searchType:'1',
+        file:{},
+        title:'',
         disabled: false,
+        fujianInfo:false,
+        paymentshow:false,
+        currectdata:{}
       }
     },
     mounted() {
@@ -114,6 +186,16 @@ import {
       this.getList()
     },
     methods: {
+      fujianClose(){
+        this.fujianInfo=false
+      },
+      uploadSuccess(res) {
+        console.log(res.data)
+        this.currectdata.paymentVoucher=res.data.url
+      },
+      paymentshowClose(){
+        this.paymentshow=false
+      },
       checkSelectable(row) {
         if(row.status!='已付款'){
           return true
@@ -190,6 +272,10 @@ import {
         }
        
       },
+      paymentVoucher(row){
+        this.file=row
+        this.fujianInfo=true
+      },
       batchpayment(){
         if(this.multipleSelection.length>0){
           var money=0
@@ -230,29 +316,75 @@ import {
           })
         }
       },
-      payment(row){
-        this.$confirm(`确定支付${row.driverName}运费${row.amountMoney}元?`, '提示', {
+      // payment(row){
+      //   this.$confirm(`确定支付${row.driverName}运费${row.amountMoney}元?`, '提示', {
+      //       confirmButtonText: '确定',
+      //       cancelButtonText: '取消',
+      //       type: 'warning'
+      //     })
+      //     .then(() => {
+      //       this.listLoading = true
+      //       var _obj = {}
+      //       _obj.hyFreightSettlementInfos = [row]
+      //       batchpay(_obj).then(response => {
+      //           this.$notify({
+      //             title: '成功',
+      //             message: '支付成功!',
+      //             type: 'success'
+      //           })
+      //           this.getList()
+      //           this.listLoading = false
+      //         })
+      //         .catch(() => {
+      //           this.loading = false
+      //         })
+      //     })
+      // },
+      paymentsubmit(){
+        this.$refs.form.validate(async (valid) => {
+          if (valid) {
+          this.$confirm(`确定提交付款信息?`, '提示', {
             confirmButtonText: '确定',
             cancelButtonText: '取消',
             type: 'warning'
           })
           .then(() => {
+            this.paymentshow=false
             this.listLoading = true
             var _obj = {}
-            _obj.hyFreightSettlementInfos = [row]
+            _obj.hyFreightSettlementInfos = [this.currectdata]
             batchpay(_obj).then(response => {
                 this.$notify({
                   title: '成功',
-                  message: '支付成功!',
+                  message: '提交成功!',
                   type: 'success'
                 })
+                
+                this.$refs.upload.clearFiles();
                 this.getList()
                 this.listLoading = false
               })
               .catch(() => {
+                // this.$notify({
+                //   title: '失败',
+                //   message: '提交失败!',
+                //   type: 'error'
+                // })
+                this.currectdata.paymentVoucher=''
+                this.$refs.upload.clearFiles();
                 this.loading = false
               })
           })
+          }else {
+            console.log('error submit!!');
+            return false;
+          }
+        })
+      },
+      payment(row){
+        this.title='支付'+row.paymentType
+        this.currectdata=row
+        this.paymentshow=true
       },
       handleSelectionChange(val) {
         this.multipleSelection = val;
@@ -582,4 +714,27 @@ import {
     padding: 2px;
     margin-left: 10px;
   }
+  .avatar-uploader::v-deep .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+  }
+  .avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+  }
+  .avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+  }
+  .avatar {
+    width: 178px;
+    height: 178px;
+    display: block;
+  }
 </style>

+ 1 - 0
vue.config.js

@@ -47,6 +47,7 @@ module.exports = {
     productionSourceMap: false,
     devServer: {
         port: port,
+        host:'0.0.0.0',
         disableHostCheck: true,
         open: false,
         overlay: {