Bladeren bron

1、报价单页面改版
2、订单查询页面改版

lihongxiao 2 jaren geleden
bovenliggende
commit
c96105cff6
3 gewijzigde bestanden met toevoegingen van 291 en 649 verwijderingen
  1. 23 277
      src/views/Letter/Letter.vue
  2. 41 372
      src/views/Letter/Orderlist.vue
  3. 227 0
      src/views/Letter/components/quotationDialog.vue

+ 23 - 277
src/views/Letter/Letter.vue

@@ -2416,167 +2416,7 @@
         <el-table-column prop="remark" label="配置" align="center"></el-table-column>
       </el-table>
     </el-dialog>
-    <el-dialog :visible.sync="bjddialogVisible" width="570px" top="1vh" v-if="queryOrders">
-      <div class="bjdbody" id="pdfContentsDiv">
-        <div class="bjdCarMessage">
-          <div class="bjdCarMessage1">
-            <img src="../../../static/bjdcar.png" class="align" alt style="width:60px;height:60px;" />
-            <div class="dis f-c" style="height:100%">
-              <span>{{ queryOrders.carinfo.licenseNo }}</span>
-              <span>{{ queryOrders.carinfo.modelcname }}</span>
-            </div>
-          </div>
-          <div class="bjdCarMessage2">
-            <ul>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>订单号:</span>
-                  <span>{{ queryOrders.orderno }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>车主姓名:</span>
-                  <span>{{ queryOrders.ownerinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>投保人姓名:</span>
-                  <span>{{ queryOrders.applyinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>被保人姓名:</span>
-                  <span>{{ queryOrders.insureinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>发动机号:</span>
-                  <span>{{ queryOrders.carinfo.engineNo }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>车架号:</span>
-                  <span>{{ queryOrders.carinfo.vinNo }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>座位数:</span>
-                  <span>{{ queryOrders.carinfo.seatCount }}</span>
-                </div>
-              </li>
-              <li v-show="queryOrders.jqstartdate">
-                <div class="bjdCarMessage2_car" style="flex-direction: column;">
-                  <span>车辆交强险保险期间:</span>
-                  <span
-                    style="margin-top:5px;"
-                  >{{ queryOrders.jqstartdate }} 至 {{ queryOrders.jqenddate }}</span>
-                </div>
-              </li>
-              <li v-show="queryOrders.systartdate">
-                <div class="bjdCarMessage2_car" style="flex-direction: column;">
-                  <span>车辆商业险保险期间:</span>
-                  <span
-                    style="margin-top:5px;"
-                  >{{ queryOrders.systartdate }} 至 {{ queryOrders.syenddate }}</span>
-                </div>
-              </li>
-            </ul>
-          </div>
-        </div>
-        <div class="bjdCarSum">
-          <div class="dis align jus">
-            <span>应缴金额</span>
-            <span style="color:rgb(255, 30, 7);font-size:16px;">¥{{ queryOrders.sumpremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jqpremium">
-            <span>交强险</span>
-            <span>¥{{ queryOrders.jqpremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.taxamount">
-            <span>车船税</span>
-            <span>¥{{ queryOrders.taxamount }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.sypremium">
-            <span>车辆商业险</span>
-            <span>¥{{ queryOrders.sypremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jypremium">
-            <span>驾意险</span>
-            <span>¥{{ queryOrders.jypremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jqdiscountrate">
-            <span>交强险优惠比例</span>
-            <span style="color:#ff8605;">{{ queryOrders.jqdiscountrate }}%</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.sydiscountrate">
-            <span>商业险优惠比例</span>
-            <span style="color:#ff8605;">{{ queryOrders.sydiscountrate }}%</span>
-          </div>
-          <div style="border:none;" v-show="queryOrders.sypremium">
-            <div class="Risk">
-              <div class="Risk_title dis align jus">
-                <div>
-                  <span>商业险险别</span>
-                </div>
-                <div>
-                  <span>保险金额</span>
-                </div>
-                <div>
-                  <span>保费</span>
-                </div>
-              </div>
-              <div
-                class="Risk_data dis align jus"
-                v-for="(kindinfoitem, kindinfoindex) in queryOrders.kindinfo"
-                :key="kindinfoindex"
-              >
-                <template>
-                  <div>
-                    <span>{{ kindinfoitem.kindName }}</span>
-                  </div>
-                  <div v-if="['D4', 'SY_FJ_YBW2'].includes(kindinfoitem.kindCode)">
-                    <span>{{ kindinfoitem.unitAmount }}</span>/
-                    <span>{{ queryOrders.carinfo.seatCount - 1 }}座</span>
-                  </div>
-                  <div v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(kindinfoitem.kindCode)">
-                    <span>{{ kindinfoitem.deductibleRate }}</span>
-                  </div>
-                  <div v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(kindinfoitem.kindCode)">
-                    <span>{{ kindinfoitem.serviceTimes }}/次</span>
-                  </div>
-                  <div v-else>
-                    <span>{{ kindinfoitem.amount }}</span>
-                  </div>
-                  <div>
-                    <span>¥{{ kindinfoitem.coveragePremium }}</span>
-                  </div>
-                </template>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class="flex f-c" style="padding:5px 0; color:#fff;margin-bottom:15px;">
-          <span style="margin-bottom:10px;">报价时间:</span>
-          <span>注:本报价单仅供参考,最终以出单价格为准。</span>
-        </div>
-        <div class="bjdfooter dis align">
-          <img :src="logoImg" class="align" alt style="width:60px;height:60px;" />
-          <div class="dis f-c jus" style="height:100%">
-            <span>{{ queryOrders.inscompany }}</span>
-          </div>
-        </div>
-      </div>
-      <div class="display">
-        <el-button size="small" style="width:100px;" @click="copybjd()">截图</el-button>
-        <el-button size="small" style="width:100px;" @click="bjddialogVisible = false">关闭</el-button>
-      </div>
-    </el-dialog>
+   
     <el-dialog
       :visible.sync="codedialogVisible"
       width="430px"
@@ -3411,6 +3251,8 @@
         <el-button v-else size="small" type="primary" @click="hbsubmit">提交核保</el-button>
       </span>
     </el-dialog>
+      <!-- 报价单 -->
+      <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
     <el-image-viewer
       v-if="showViewer"
       :on-close="closeViewer"
@@ -3421,7 +3263,6 @@
 </template>
 <script>
 let _self;
-import html2Canvas from 'html2canvas'
 import QRCode from "qrcodejs2";
 import Cookies from "js-cookie";
 import CommonUtil from "@/utils/comutil.js";
@@ -3432,6 +3273,8 @@ import { regionData, codeToText } from "element-china-area-data";
 import {
   base64ToPath
 } from '@/common/image-tools-base64.js';
+import quotationDialog from './components/quotationDialog.vue'
+
 export default {
   inject: ["reload"],
   name: "qrCode",
@@ -3616,7 +3459,6 @@ export default {
       chexingdialogVisible: false, //车型选择     显示/隐藏
       sbdmdialogVisible: false, //车型车辆识别代码选择     显示/隐藏
       quotedetailsdialogVisible: false, //报价详情     显示/隐藏
-      bjddialogVisible: false, //报价单     显示/隐藏
       codedialogVisible: false, //二维码     显示/隐藏
       uploadcardialogVisible: false, //行驶证识别     显示/隐藏
       uploaduserdialogVisible: false, //身份证识别     显示/隐藏
@@ -4789,6 +4631,7 @@ export default {
     },
   },
   components: {
+  quotationDialog,
     "el-image-viewer": () =>
       import("element-ui/packages/image/src/image-viewer")
   },
@@ -8494,10 +8337,9 @@ else{
               return ele;
             });
           }
+          data.logoImg = this.iconfftter(res.data.inscompany);
           this.queryOrders = data;
-          this.logoImg = this.iconfftter(res.data.inscompany)
-          this.bjddialogVisible = true;
-
+          this.$refs.quotationDialog.setBackupVisible(true)
         }
       });
     },
@@ -8895,95 +8737,6 @@ else{
 .jus {
   justify-content: space-between;
 }
-
-.bjdbody {
-  width: 100%;
-  height: auto;
-  background-color: rgb(199, 20, 45);
-  padding: 20px 10px 0 10px;
-  box-sizing: border-box;
-  border-radius: 8px;
-}
-
-.bjdCarMessage,
-.bjdCarSum {
-  width: 100%;
-  height: auto;
-  background-color: #fff;
-  border-radius: 8px;
-  margin-bottom: 10px;
-  padding-bottom: 10px;
-}
-
-.bjdfooter {
-  border-top: 1px solid #fff;
-  padding: 10px;
-  box-sizing: border-box;
-  color: #fff;
-}
-
-.bjdCarSum {
-  & > div {
-    width: 100%;
-    padding: 15px 20px;
-    box-sizing: border-box;
-    font-weight: bold;
-    color: #000;
-    border-bottom: 1px solid #f2f2f2;
-  }
-}
-
-.bjdCarMessage1 {
-  height: 80px;
-  padding: 16px;
-  box-sizing: border-box;
-  border-bottom: 1px solid #f2f2f2;
-  display: flex;
-  align-items: center;
-  color: #000;
-
-  .f-c {
-    & > span {
-      &:nth-child(1) {
-        font-size: 18px;
-        font-weight: bold;
-      }
-    }
-  }
-}
-
-.bjdCarMessage1 > img,
-.bjdfooter > img {
-  margin-right: 30px;
-}
-
-.bjdCarMessage1 .f-c > span:nth-child(2),
-.bjdCarMessage1 .f-c > span:nth-child(3) {
-  font-size: 12px;
-  margin-top: 5px;
-}
-
-.bjdCarMessage2_car {
-  & > span {
-    &:nth-child(1) {
-      color: #000;
-      font-weight: bold;
-    }
-
-    &:nth-child(2) {
-      color: #999;
-    }
-  }
-}
-
-.bjdCarMessage2 {
-  & > ul {
-    li {
-      margin: 20px 0;
-    }
-  }
-}
-
 .shangyexian {
   padding-left: 100px;
 }
@@ -9474,31 +9227,24 @@ else{
       color: #333;
     }
   }
+  // .el-radio__input.is-checked + .el-radio__label {
+  //   color: #ff7000;
+  // }
 
-  .el-descriptions__body {
-    padding: 10px 50px;
-    box-sizing: border-box;
-    color: rgb(226, 118, 10);
-  }
-
-  .el-radio__input.is-checked + .el-radio__label {
-    color: #ff7000;
-  }
-
-  .el-radio__input.is-checked .el-radio__inner {
-    border-color: #ff7000;
-    background: #ff7000;
-  }
+  // .el-radio__input.is-checked .el-radio__inner {
+  //   border-color: #ff7000;
+  //   background: #ff7000;
+  // }
 
-  .el-radio__inner {
-    &:hover {
-      border-color: #ff7000;
-    }
-  }
+  // .el-radio__inner {
+  //   &:hover {
+  //     border-color: #ff7000;
+  //   }
+  // }
 
-  .el-input--small .el-icon-date {
-    color: #ee6f00ce;
-  }
+  // .el-input--small .el-icon-date {
+  //   color: #ee6f00ce;
+  // }
 
   .el-select {
     width: 100%;

+ 41 - 372
src/views/Letter/Orderlist.vue

@@ -140,7 +140,7 @@
             v-for="(item, index) in scope.row.insAreaCompanyList"
             :key="index"
           >
-            <div style="width: 200px">
+            <div style="width: 12%;">
               {{ item.inscompany }}
               <span style="color: #D42426 ">({{ item.agreementName }})</span>
             </div>
@@ -165,15 +165,11 @@
             <div
               slot="reference"
               class="name-wrapper flex a-c j-c"
-              style="margin: 0 20px; width: 100px"
             >
-              <!-- <el-tag :type="capType(item.orderstatus)" size="medium">{{
-                item.orderstatus | cap
-              }}</el-tag> -->
-              <el-tag  style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);" effect="plain" v-if="item.orderstatus=='0'||scope.row.orderstatus=='1'" size="small">{{scope.row.orderstatus | cap}}</el-tag>
-              <el-tag type="danger" v-else effect="plain"  size="small">{{item.orderstatus | cap}}</el-tag>
+            <el-tag  style="color:#33A08D;border-color:#33A08D;background: rgba(51,160,141,0.1);"  v-if="item.orderstatus=='0'||item.orderstatus=='1'" size="small">{{item.orderstatus | cap}}</el-tag>
+              <el-tag type="danger" v-else  size="small">{{item.orderstatus | cap}}</el-tag>
             </div>
-            <div style="width: 220px" class="flex a-c j-end">
+            <div class="flex a-c">
               <el-button
                 size="mini"
                 type="text"
@@ -194,7 +190,7 @@
                     '紫金财险',
                   ].includes(item.inscompany) "
                 @click="refreshStatus(item)"
-                style="color: #f56c6c"
+                class="red_color"
                 >更新订单</el-button
               >
               <el-button
@@ -202,7 +198,7 @@
                 type="text"
                 v-if="item.orderstatus == '4' && item.inscompany == '华泰财险'"
                 @click="updateStatusHuatai(item)"
-                style="color: #f56c6c"
+                class="red_color"
                 >更新订单</el-button
               >
               <el-button
@@ -213,7 +209,7 @@
                   ['紫金财险'].includes(item.inscompany)
                 "
                 @click="cancelorder(item)"
-                style="color: #f56c6c"
+                class="red_color"
                 >撤单</el-button
               >
               <el-button
@@ -221,19 +217,19 @@
                 type="text"
                 v-if="item.orderstatus == '2'"
                 @click="carcode(scope.row, item)"
-                style="color: #f56c6c"
+                class="red_color"
                 >二维码</el-button
               >
               <el-button
                 size="mini"
                 type="text"
+                class="green_color"
                 @click="OrderDetails(scope.row, item)"
                 >查看详情</el-button
               >
               <el-button
                 size="mini"
                 type="text"
-                style="color: rgb(245, 182, 10)"
                 :loading="querystatusLoaing"
                 v-if="
                   item.orderstatus == '2' &&
@@ -252,6 +248,7 @@
                     '中煤财险',
                   ].includes(item.inscompany)
                 "
+                class="blue_color"
                 @click="querystatus(item, index)"
                 >状态更新</el-button
               >
@@ -259,21 +256,20 @@
                 v-if="item.orderstatus !== '2'"
                 size="mini"
                 type="text"
-                style="color: rgb(247, 191, 32)"
+                class="blue_color"
                 @click="orderTrajectory(scope.row, item)"
                 >订单轨迹</el-button
               >
               <el-button
-                type="text"
                 size="mini"
-                style="color: rgb(240, 12, 10)"
+                type="primary"
                 @click="bjdpreview(item.id)"
                 >报价单</el-button
               >
               <!-- <el-button size="mini" type="text" @click="CloseEdit(scope.$index, scope.row)">编辑</el-button> -->
               <el-button type="text" size="mini" v-if="item.orderstatus == '2'">
                 <el-dropdown trigger="click">
-                  <span class="el-dropdown-link">
+                  <span class="el-dropdown-link blue_color" >
                     更多<i class="el-icon-arrow-down el-icon--right"></i>
                   </span>
                   <el-dropdown-menu slot="dropdown">
@@ -281,6 +277,7 @@
                       <el-button
                         size="mini"
                         type="text"
+                        style="color: #2D4D89"
                         @click="orderTrajectory(scope.row, item)"
                         >订单轨迹</el-button
                       >
@@ -289,6 +286,7 @@
                       <el-button
                         type="text"
                         size="mini"
+                        style="color: #2D4D89"
                         @click="revokeCode(item.id)"
                         >撤销二维码</el-button
                       >
@@ -358,7 +356,6 @@
         label="操作"
         align="center"
         min-width="100"
-        fixed="right"
       >
         <template slot-scope="scope">
           <el-button
@@ -1043,215 +1040,6 @@
         >
       </span>
     </el-dialog>
-    <!-- 报价单 -->
-    <el-dialog
-      :visible.sync="bjddialogVisible"
-      width="570px"
-      top="1vh"
-      v-if="queryOrders"
-    >
-      <div class="bjdbody" id="pdfContentsDiv">
-        <div class="bjdCarMessage">
-          <div class="bjdCarMessage1">
-            <img
-              src="../../../static/bjdcar.png"
-              class="align"
-              alt
-              style="width: 60px; height: 60px"
-            />
-            <div class="dis f-c" style="height: 100%">
-              <span>{{ queryOrders.carinfo.licenseNo }}</span>
-              <span>{{ queryOrders.carinfo.modelcname }}</span>
-            </div>
-          </div>
-          <div class="bjdCarMessage2">
-            <ul>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>订单号:</span>
-                  <span>{{ queryOrders.orderno }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>车主姓名:</span>
-                  <span>{{ queryOrders.ownerinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>投保人姓名:</span>
-                  <span>{{ queryOrders.applyinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>被保人姓名:</span>
-                  <span>{{ queryOrders.insureinfo.name }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>发动机号:</span>
-                  <span>{{ queryOrders.carinfo.engineNo }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>车架号:</span>
-                  <span>{{ queryOrders.carinfo.vinNo }}</span>
-                </div>
-              </li>
-              <li>
-                <div class="bjdCarMessage2_car dis">
-                  <span>座位数:</span>
-                  <span>{{ queryOrders.carinfo.seatCount }}</span>
-                </div>
-              </li>
-              <li v-show="queryOrders.jqstartdate">
-                <div class="bjdCarMessage2_car" style="flex-direction: column">
-                  <span>车辆交强险保险期间:</span>
-                  <span style="margin-top: 5px"
-                    >{{ queryOrders.jqstartdate }} 至
-                    {{ queryOrders.jqenddate }}</span
-                  >
-                </div>
-              </li>
-              <li v-show="queryOrders.systartdate">
-                <div class="bjdCarMessage2_car" style="flex-direction: column">
-                  <span>车辆商业险保险期间:</span>
-                  <span style="margin-top: 5px"
-                    >{{ queryOrders.systartdate }} 至
-                    {{ queryOrders.syenddate }}</span
-                  >
-                </div>
-              </li>
-            </ul>
-          </div>
-        </div>
-        <div class="bjdCarSum">
-          <div class="dis align jus">
-            <span>应缴金额</span>
-            <span style="color: rgb(255, 30, 7); font-size: 16px"
-              >¥{{ queryOrders.sumpremium }}</span
-            >
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jqpremium">
-            <span>交强险</span>
-            <span>¥{{ queryOrders.jqpremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.taxamount">
-            <span>车船税</span>
-            <span>¥{{ queryOrders.taxamount }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.sypremium">
-            <span>车辆商业险</span>
-            <span>¥{{ queryOrders.sypremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jypremium">
-            <span>驾意险</span>
-            <span>¥{{ queryOrders.jypremium }}</span>
-          </div>
-          <div class="dis align jus" v-show="queryOrders.jqdiscountrate">
-            <span>交强险优惠比例</span>
-            <span style="color: #ff8605"
-              >{{ queryOrders.jqdiscountrate }}%</span
-            >
-          </div>
-          <div class="dis align jus" v-show="queryOrders.sydiscountrate">
-            <span>商业险优惠比例</span>
-            <span style="color: #ff8605"
-              >{{ queryOrders.sydiscountrate }}%</span
-            >
-          </div>
-          <div style="border: none" v-show="queryOrders.sypremium">
-            <div class="Risk">
-              <div class="Risk_title dis align jus">
-                <div>
-                  <span>商业险险别</span>
-                </div>
-                <div>
-                  <span>保险金额</span>
-                </div>
-                <div>
-                  <span>保费</span>
-                </div>
-              </div>
-              <div
-                class="Risk_data dis align jus"
-                v-for="(kindinfoitem, kindinfoindex) in queryOrders.kindinfo"
-                :key="kindinfoindex"
-              >
-                <template>
-                  <div>
-                    <span>{{ kindinfoitem.kindName }}</span>
-                  </div>
-                  <div
-                    v-if="['D4', 'SY_FJ_YBW2'].includes(kindinfoitem.kindCode)"
-                  >
-                    <span>{{ kindinfoitem.unitAmount }}</span
-                    >/<span>{{ queryOrders.carinfo.seatCount - 1 }}座</span>
-                  </div>
-                  <div
-                    v-else-if="
-                      ['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(
-                        kindinfoitem.kindCode
-                      )
-                    "
-                  >
-                    <span>{{ kindinfoitem.deductibleRate }}</span>
-                  </div>
-                  <div
-                    v-else-if="
-                      ['TY1', 'TY2', 'TY3', 'TY4'].includes(
-                        kindinfoitem.kindCode
-                      )
-                    "
-                  >
-                    <span>{{ kindinfoitem.serviceTimes }}/次</span>
-                  </div>
-                  <div v-else>
-                    <span>{{ kindinfoitem.amount }}</span>
-                  </div>
-                  <div>
-                    <span>¥{{ kindinfoitem.coveragePremium }}</span>
-                  </div>
-                </template>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div
-          class="flex f-c"
-          style="padding: 5px 0; color: #fff; margin-bottom: 15px"
-        >
-          <span style="margin-bottom: 10px">报价时间:</span>
-          <span>注:本报价单仅供参考,最终以出单价格为准。</span>
-        </div>
-        <div class="bjdfooter dis align">
-          <img
-            :src="logoImg"
-            class="align"
-            alt
-            style="width: 60px; height: 60px"
-          />
-          <div class="dis f-c jus" style="height: 100%">
-            <span>{{ queryOrders.inscompany }}</span>
-          </div>
-        </div>
-      </div>
-      <div class="display">
-        <el-button size="small" style="width: 100px" @click="copybjd()"
-          >截图</el-button
-        >
-        <el-button
-          size="small"
-          style="width: 100px"
-          @click="bjddialogVisible = false"
-          >关闭</el-button
-        >
-      </div>
-    </el-dialog>
     <!-- 订单轨迹 -->
     <el-dialog :visible.sync="ddgjdialogVisible">
       <div style="height: 300px; overflow-y: auto">
@@ -1427,23 +1215,24 @@
         </div>
       </div>
     </el-dialog>
+    <!-- 报价单 -->
+    <quotationDialog ref="quotationDialog" :queryOrders="queryOrders"></quotationDialog>
   </div>
 </template>
 <script>
 let _self;
 import { pathToBase64, base64ToPath } from "@/common/image-tools-base64.js";
-import html2Canvas from "html2canvas";
 import CommonUtil from "@/utils/comutil.js";
 import Cookies from "js-cookie";
 import QRCode from "qrcodejs2";
+import quotationDialog from './components/quotationDialog.vue'
 export default {
   data() {
     return {
       ddgjdialogVisible: false,
       trajectoryTable: [],
-      queryOrders: "",
+      queryOrders: {},
       logoImg: "", //报价单保险公司logo图
-      bjddialogVisible: false,
       value2: "",
       optionsStatus: [],
       codedialogVisible: false,
@@ -1519,6 +1308,7 @@ export default {
       natureOfVehicleUseoptions:[],
     };
   },
+  components:{quotationDialog},
   created() {
     this.getDicType("natureOfVehicleUse");//车辆使用性质
     this.$api.letter.gainTopList().then((res) => {
@@ -1628,66 +1418,6 @@ export default {
         return "danger";
       }
     },
-    // 截图粘贴
-    copybjd() {
-      let that = this;
-      html2Canvas(document.getElementById("pdfContentsDiv"), {
-        allowTaint: true,
-        taintTest: false,
-        // useCORS: true
-      }).then(function (canvas) {
-        let base64Data = "";
-        base64Data = canvas.toDataURL("image/png", 1);
-        const date = new Date();
-        const saveInfo = {
-          download: date.getTime() + `.png`,
-          href: base64Data,
-        };
-        const element = document.createElement("a");
-        element.style.display = "none";
-        for (const key in saveInfo) {
-          element.setAttribute(key, saveInfo[key]);
-        }
-        document.body.appendChild(element);
-        element.click();
-        setTimeout(() => {
-          document.body.removeChild(element);
-        }, 300);
-
-        // var format = 'image/png'
-        // var base64 = base64Data
-        // var code = window.atob(base64.split(',')[1])
-        // var aBuffer = new window.ArrayBuffer(code.length)
-        // var uBuffer = new window.Uint8Array(aBuffer)
-        // for (var i = 0; i < code.length; i++) {
-        //   uBuffer[i] = code.charCodeAt(i) & 0xff
-        // }
-        // try {
-        //   blob = new Blob([uBuffer], { type: format })
-        // } catch (e) {
-        //   window.BlobBuilder =
-        //     window.BlobBuilder ||
-        //     window.WebKitBlobBuilder ||
-        //     window.MozBlobBuilder ||
-        //     window.MSBlobBuilder
-        //   if (e.name == 'TypeError' && window.BlobBuilder) {
-        //     var bb = new window.BlobBuilder()
-        //     bb.append(uBuffer.buffer)
-        //     blob = bb.getBlob('image/png')
-        //   } else if (e.name == 'InvalidStateError') {
-        //     blob = new Blob([aBuffer], { type: format })
-        //   }
-        // }
-        // const clipboardItemInput = new ClipboardItem({
-        //   'image/png': blob,
-        // })
-        // navigator.clipboard.write([clipboardItemInput])
-        // that.$message({
-        //   message: '已截图并复制到粘贴板!',
-        //   type: 'success'
-        // });
-      });
-    },
     // 撤销二维码
     revokeCode(id) {
       this.$api.letter.getRevokeQrCode(id).then((res) => {
@@ -1734,9 +1464,9 @@ export default {
               return ele;
             });
           }
+          data.logoImg = this.iconfftter(res.data.inscompany);
           this.queryOrders = data;
-          this.logoImg = this.iconfftter(res.data.inscompany);
-          this.bjddialogVisible = true;
+          this.$refs.quotationDialog.setBackupVisible(true)
         }
       });
     },
@@ -2766,6 +2496,7 @@ export default {
 
           this.showInsureList = false;
           this.quotedetailsdialogVisible = true; //在页面上显示订单
+
         } else {
           this.$message.error("订单获取失败");
         }
@@ -2952,9 +2683,20 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.el-dropdown-link {
-  cursor: pointer;
-  color: #409eff;
+.green_color{
+  color: #068069;
+  border: 1px solid #068069;
+  padding: 7px 8px;
+}
+.red_color{
+  color: var(--themeColor);
+  border: 1px solid var(--themeColor);;
+  padding: 7px 8px;
+}
+.blue_color{
+  color: #2D4D89;
+  border: 1px solid #2D4D89;
+  padding: 7px 8px;
 }
 .el-dropdown {
   font-size: 12px;
@@ -2970,11 +2712,7 @@ export default {
   .el-table .row-expand-cover .cell .el-table__expand-icon {
     display: none;
   }
-  .el-descriptions__body {
-    padding: 10px 50px;
-    box-sizing: border-box;
-    color: rgb(226, 118, 10);
-  }
+
   .el-descriptions-item__label {
     &:not(.is-bordered-label) {
       color: #333;
@@ -3238,14 +2976,14 @@ export default {
 }
 
 .demo-table-expand {
-  width: 100%;
+  /* width:96vw; */
   height: auto;
   padding: 10px 20px 10px 50px;
   font-size: 14px;
 }
 
 .demo-table-expand-time {
-  width: 600px;
+  width: 40%;
 }
 
 .demo-table-expand-time > div {
@@ -3308,76 +3046,6 @@ export default {
   padding: 0 20px;
   box-sizing: border-box;
 }
-.bjdbody {
-  width: 100%;
-  height: auto;
-  background-color: rgb(199, 20, 45);
-  /* background-color:  #409EFF; */
-  padding: 20px 10px 0 10px;
-  box-sizing: border-box;
-  border-radius: 8px;
-}
-
-.bjdCarMessage,
-.bjdCarSum {
-  width: 100%;
-  height: auto;
-  background-color: #fff;
-  border-radius: 8px;
-  margin-bottom: 10px;
-  padding-bottom: 10px;
-}
-
-.bjdfooter {
-  border-top: 1px solid #fff;
-  padding: 10px;
-  box-sizing: border-box;
-  color: #fff;
-}
-
-.bjdCarSum > div {
-  width: 100%;
-  padding: 15px 20px;
-  box-sizing: border-box;
-  font-weight: bold;
-  color: #000;
-  border-bottom: 1px solid #f2f2f2;
-}
-
-.bjdCarMessage1 {
-  height: 80px;
-  padding: 16px;
-  box-sizing: border-box;
-  border-bottom: 1px solid #f2f2f2;
-  display: flex;
-  align-items: center;
-  color: #000;
-}
-.bjdCarMessage1 > .f-c > span:nth-child(1) {
-  font-size: 18px;
-  font-weight: bold;
-}
-.bjdCarMessage1 > img,
-.bjdfooter > img {
-  margin-right: 30px;
-}
-
-.bjdCarMessage1 .f-c > span:nth-child(2),
-.bjdCarMessage1 .f-c > span:nth-child(3) {
-  font-size: 12px;
-  margin-top: 5px;
-}
-
-.bjdCarMessage2_car > span:nth-child(1) {
-  color: #000;
-  font-weight: bold;
-}
-.bjdCarMessage2_car > span:nth-child(2) {
-  color: #999;
-}
-.bjdCarMessage2 > ul > li {
-  margin: 20px 0;
-}
 .Risk {
   width: 100%;
   height: auto;
@@ -3442,4 +3110,5 @@ export default {
   display: inline-block;
   text-align: center;
 }
+
 </style>

+ 227 - 0
src/views/Letter/components/quotationDialog.vue

@@ -0,0 +1,227 @@
+<template>
+     <el-dialog
+      :visible.sync="dialogVisible"
+      width="1080px"
+      class="quotation_style"
+    >
+        <div id="pdfContentsDiv" style="padding: 25px;">
+            <div slot="title" class="dialog-title quotation-title">
+                <img
+            :src="queryOrders.logoImg"
+            class="align"
+            alt
+            style="width: 28px; height: 28px;vertical-align: middle"
+          />
+                <span>{{queryOrders.inscompany}}-报价单</span>
+            </div>
+            <div class="vehicle">
+                <li>
+                    <span>订单号:</span>{{ queryOrders.orderno }}
+                </li>
+                <li>
+                    <span>发动机号:</span>{{ queryOrders.carinfo.engineNo }}
+                </li>
+                <li>
+                    <span>车主姓名:</span>{{ queryOrders.ownerinfo.name }}
+                </li>
+                <li>
+                    <span>车牌号:</span>{{ queryOrders.carinfo.licenseNo }}
+                </li>
+                <li>
+                    <span>车架号:</span>{{ queryOrders.carinfo.vinNo }}
+                </li>
+                <li>
+                    <span>投保人姓名:</span>{{ queryOrders.insureinfo.name }}
+                </li>
+                <li>
+                    <span>车型:</span>{{ queryOrders.carinfo.modelcname  }}
+                </li>
+                <li>
+                    <span>座位数:</span>{{ queryOrders.carinfo.seatCount }}
+                </li>
+                <li>
+                    <span>被保人姓名:</span>{{ queryOrders.insureinfo.name }}
+                </li>
+                <li style="width: 100%;">
+                    <span>车辆交强险保险期间:</span>{{ queryOrders.jqstartdate }} 至 {{ queryOrders.jqenddate }}
+                </li>
+                <li style="width: 100%;">
+                    <span>车辆商业险保险期间:</span>{{ queryOrders.systartdate }} 至 {{ queryOrders.syenddate }}
+                </li>
+            </div>
+            <el-descriptions  :column="4" border direction="vertical">
+                <el-descriptions-item label="应缴金额" >
+                    <span style="color:#D42426">¥{{ queryOrders.sumpremium }}</span>
+                </el-descriptions-item>
+                <el-descriptions-item label="交强险" >{{ queryOrders.jqpremium?'¥'+queryOrders.jqpremium:'-' }}</el-descriptions-item>
+                <el-descriptions-item label="车船税" >{{ queryOrders.taxamount?'¥'+ queryOrders.taxamount:'-' }}</el-descriptions-item>
+                <el-descriptions-item label="车辆商业险" >{{ queryOrders.sypremium?'¥'+ queryOrders.sypremium:'-' }}</el-descriptions-item>
+            </el-descriptions>
+            <el-table
+                v-if="queryOrders.kindinfo"
+                :data="queryOrders.kindinfo"
+                stripe
+                border
+                :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }"
+                style="width: 100%">
+                <el-table-column
+                prop="kindName"
+                align="center"
+                label="商业险险别">
+                <template  slot-scope="scope">
+                    <span style="color: #D42426;">{{ scope.row.kindName }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                prop="name"
+                align="center"
+                label="保险金额">
+                <template  slot-scope="scope">
+                    <div
+                    v-if="['D4', 'SY_FJ_YBW2'].includes(scope.row.kindCode)"
+                  >
+                    <span>{{ scope.row.unitAmount }}</span
+                    >/<span>{{ queryOrders.carinfo.seatCount - 1 }}座</span>
+                  </div>
+                  <div
+                    v-else-if="
+                      ['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(
+                        scope.row.kindCode
+                      )
+                    "
+                  >
+                    <span>{{ scope.row.deductibleRate }}</span>
+                  </div>
+                  <div
+                    v-else-if="
+                      ['TY1', 'TY2', 'TY3', 'TY4'].includes(
+                        scope.row.kindCode
+                      )
+                    "
+                  >
+                    <span>{{ scope.row.serviceTimes }}/次</span>
+                  </div>
+                  <div v-else>
+                    <span>{{ scope.row.amount }}</span>
+                  </div>
+                </template>
+                </el-table-column>
+                <el-table-column
+                align="center"
+                prop="coveragePremium"
+                label="保费">
+                    <template  slot-scope="scope">
+                        <span >¥{{ scope.row.coveragePremium }}</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <div style="margin: 10px 0;">报价时间:{{ queryOrders.createtime }}</div>
+            <div>注:本报价单仅供参考,最终以出单价格为准。</div>
+        </div>
+    <span slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" @click="copybjd()">截图</el-button>
+        <el-button size="small" type="primary" plain @click="dialogVisible = false">关闭</el-button>
+    </span>
+    </el-dialog>
+</template>
+<script>
+import html2Canvas from "html2canvas";
+
+export default {
+  name: "quotationDialog",
+    props:{
+        queryOrders:{
+            type:Object,
+            default:{}
+        }
+    },
+    data(){
+        return{
+            dialogVisible:false,
+            logoImg:''
+        }
+    },
+    created(){
+    },
+    methods:{
+        setBackupVisible: function (backupVisible) {
+            this.dialogVisible = backupVisible
+        },
+        // 截图粘贴
+    copybjd() {
+      html2Canvas(document.getElementById("pdfContentsDiv"), {
+        allowTaint: true,
+        taintTest: false,
+        // useCORS: true
+      }).then(function (canvas) {
+        let base64Data = "";
+        base64Data = canvas.toDataURL("image/png", 1);
+        const date = new Date();
+        const saveInfo = {
+          download: date.getTime() + `.png`,
+          href: base64Data,
+        };
+        const element = document.createElement("a");
+        element.style.display = "none";
+        for (const key in saveInfo) {
+          element.setAttribute(key, saveInfo[key]);
+        }
+        document.body.appendChild(element);
+        element.click();
+        setTimeout(() => {
+          document.body.removeChild(element);
+        }, 300);
+      });
+    },
+    }
+}
+</script>
+<style scoped lang="scss">
+.vehicle{
+    li{
+        width: 33%;
+        padding-top: 13px;
+        display: inline-block;
+    }
+    span{
+       color: #868B98 ;
+    }
+    margin: 10px 0 20px 0
+}
+.dialog-footer{
+    button{
+        width: 96px;
+        text-align: center;
+    }
+}
+.quotation-title{
+    color: var(--themeColor);
+    font-weight: bold;
+    font-size: 16px;
+}
+/deep/ {
+    .el-dialog__header{
+        padding: 0 ;
+
+    }
+    .el-dialog__body{
+        padding: 0;
+        border-bottom: 1px solid #EEF1F6 
+    }
+     .el-descriptions__body{
+        padding:0
+     }
+    .el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{
+        text-align: center;
+    }
+    .el-descriptions-item__content{
+        color: #333333 ;
+        font-weight: bold;
+    }
+    .el-descriptions-item__label.is-bordered-label{
+        background: var(--themeColor);
+        color: #fff;
+    }
+    
+}
+</style>