Просмотр исходного кода

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

@dongkboy 2 лет назад
Родитель
Сommit
08c8f32675

+ 2 - 0
src/views/Core/components/detailsDialog.vue

@@ -435,6 +435,8 @@
                 </el-table-column>
                 <el-table-column prop="deptPremiumsLevelFive" label="五级管理费">
                 </el-table-column>
+                <el-table-column prop="profitMarginPremiums" label="利润差值">
+                </el-table-column>
               </el-table>
             </div>
           </OpenCloseBox>

+ 223 - 174
src/views/Core/components/quotationDialog.vue

@@ -1,18 +1,10 @@
 <template>
-     <el-dialog
-      :visible.sync="dialogVisible"
-      width="1080px"
-      class="quotation_style"
-    >
+    <el-dialog :visible.sync="dialogVisible" width="1080px" class="quotation_style">
         <div id="pdfContentsDiv" style="padding: 25px;height: auto;" v-watermark='userId'>
             <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>
+                <img :src="queryOrders.logoImg" class="align" alt
+                    style="width: 28px; height: 28px;vertical-align: middle" />
+                <span>{{ queryOrders.inscompany }}-报价单</span>
             </div>
             <div class="vehicle">
                 <li>
@@ -34,7 +26,7 @@
                     <span>投保人姓名:</span>{{ queryOrders.applyinfo.name }}
                 </li>
                 <li>
-                    <span>车型:</span>{{ queryOrders.carinfo.modelcname  }}
+                    <span>车型:</span>{{ queryOrders.carinfo.modelcname }}
                 </li>
                 <li>
                     <span>座位数:</span>{{ queryOrders.carinfo.seatCount }}
@@ -45,140 +37,128 @@
                 <li style="width: 100%;">
                     <span>车辆交强险保险期间:</span>{{ queryOrders.jqstartdate }} 至 {{ queryOrders.jqenddate }}
                 </li>
-                <li style="width: 100%;" v-if="queryOrders.systartdate &&queryOrders.syenddate">
+                <li style="width: 100%;" v-if="queryOrders.systartdate && queryOrders.syenddate">
                     <span>车辆商业险保险期间:</span>{{ queryOrders.systartdate }} 至 {{ queryOrders.syenddate }}
                 </li>
             </div>
-            <el-descriptions  :column="5" border direction="vertical">
-                <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-item label="驾意险" >{{ queryOrders.jypremium?'¥'+ queryOrders.jypremium:'-' }}</el-descriptions-item>
-                <el-descriptions-item label="应缴金额" >
+            <!-- <el-descriptions :column="5" border direction="vertical">
+                <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-item label="驾意险">{{ queryOrders.jypremium ? '¥' + queryOrders.jypremium : '-'
+                }}</el-descriptions-item>
+                <el-descriptions-item label="应缴金额">
                     <span style="color:#D42426">¥{{ queryOrders.sumpremium }}</span>
                 </el-descriptions-item>
-            </el-descriptions>
-            <el-table
-                v-if="queryOrders.jqInsuranceType && queryOrders.jqInsuranceType.length>0"
-                :data="queryOrders.jqInsuranceType"
-                stripe
-                border
-                :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }"
-                style="width: 100%">
-                <el-table-column
-                prop="name"
-                align="center"
-                label="交强险名称">
-                <template  slot-scope="scope">
-                    <span style="color: #D42426;">{{ scope.row.name }}</span>
+            </el-descriptions> -->
+            <el-table :data="allProducts" stripe border :span-method="objectSpanMethod"
+                :header-cell-style="{ background: '#D42426 ', fontWeight: '500', color: '#fff' }" style="width: 100%">
+                <el-table-column width="100" prop="label" align="center" label="产品类型">
+                </el-table-column>
+                <el-table-column width="450" prop="name" align="center" label="险别/名称">
+                </el-table-column>
+                <el-table-column align="center" prop="amount" label="保额"></el-table-column>
+                <el-table-column align="center" prop="coveragePremium" label="保费(元)">
+                    <template slot-scope="scope">
+                        {{ scope.row.label=='商业险'?scope.row.coveragePremium:scope.row.label=='驾意险'?scope.row.premium:'-' }}
                     </template>
                 </el-table-column>
-                <el-table-column
-                prop="amount"
-                align="center"
-                label="保险金额">
-                <template  slot-scope="scope">
-                        <span >¥{{ scope.row.amount ?scope.row.amount:'-' }}</span>
+                <el-table-column align="center" prop="totalPremium" label="总计(元)">
+                    <template slot-scope="scope">
+                        <span style="color:#D42426;font-weight: bold;">{{ scope.row.totalPremium }}</span>
                     </template>
                 </el-table-column>
             </el-table>
-            <el-table
-                v-if="queryOrders.kindinfo && queryOrders.kindinfo.length>0"
-                :data="queryOrders.kindinfo"
-                stripe
-                border
-                :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }"
+            <div class="payable_amount">
+                <h3>
+                    <span v-if="queryOrders.sypremium">车辆商业险:{{  queryOrders.sypremium +  '元' }}</span>
+                    <span v-if="queryOrders.jqpremium">交强险:{{  queryOrders.jqpremium + '元' }}</span>
+                    <span v-if="queryOrders.taxamount">车船税:{{  queryOrders.taxamount +  '元' }}</span>
+                    <span v-if="queryOrders.jypremium">驾意险:{{  queryOrders.jypremium +  '元' }}</span>
+                </h3>
+                <h2>
+                    <span v-if="queryOrders.sumpremium">应缴金额:<b style="color:#D42426;font-size:26px">{{  queryOrders.sumpremium }}</b> <span style="color:#D42426;font-size:20px">元</span></span>
+                </h2>
+            </div>
+            <!-- <el-table v-if="queryOrders.jqInsuranceType && queryOrders.jqInsuranceType.length > 0"
+                :data="queryOrders.jqInsuranceType" stripe border
+                :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }" style="width: 100%">
+                <el-table-column prop="name" align="center" label="交强险名称">
+                    <template slot-scope="scope">
+                        <span style="color: #D42426;">{{ scope.row.name }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="amount" align="center" label="保险金额">
+                    <template slot-scope="scope">
+                        <span>¥{{ scope.row.amount ? scope.row.amount : '-' }}</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-table v-if="queryOrders.kindinfo && queryOrders.kindinfo.length > 0" :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>
+                <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 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>
+                <el-table-column align="center" prop="coveragePremium" label="保费">
+                    <template slot-scope="scope">
+                        <span>¥{{ scope.row.coveragePremium }}</span>
                     </template>
                 </el-table-column>
             </el-table>
-            <el-table
-                v-if="queryOrders.accidentInfo && queryOrders.accidentInfo.length>0"
-                :data="queryOrders.accidentInfo"
-                stripe
-                border
-                :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }"
+            <el-table v-if="queryOrders.accidentInfo && queryOrders.accidentInfo.length > 0" :data="queryOrders.accidentInfo"
+                stripe border :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '500', color: '#333333' }"
                 style="width: 100%">
-                <el-table-column
-                prop="name"
-                align="center"
-                label="驾意险名称">
-                <template  slot-scope="scope">
-                    <span style="color: #D42426;">{{ scope.row.name }}</span>
+                <el-table-column prop="name" align="center" label="驾意险名称">
+                    <template slot-scope="scope">
+                        <span style="color: #D42426;">{{ scope.row.name }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column
-                prop="amount"
-                align="center"
-                label="保险金额">
-                <template  slot-scope="scope">
-                        <span >¥{{ scope.row.amount ?scope.row.amount:'-' }}</span>
+                <el-table-column prop="amount" align="center" label="保险金额">
+                    <template slot-scope="scope">
+                        <span>¥{{ scope.row.amount ? scope.row.amount : '-' }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column
-                align="center"
-                prop="premium"
-                label="保费">
-                    <template  slot-scope="scope">
-                        <span >¥{{ scope.row.premium?scope.row.premium:'-' }}</span>
+                <el-table-column align="center" prop="premium" label="保费">
+                    <template slot-scope="scope">
+                        <span>¥{{ scope.row.premium ? scope.row.premium : '-' }}</span>
                     </template>
                 </el-table-column>
-            </el-table>
+            </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>
+        <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;allProducts=[]">关闭</el-button>
+        </span>
     </el-dialog>
 </template>
 <script>
@@ -186,98 +166,167 @@ import html2Canvas from "html2canvas";
 import Cookies from "js-cookie";
 
 export default {
-  name: "quotationDialog",
-    props:{
-        queryOrders:{
-            type:Object,
-            default:{}
+    name: "quotationDialog",
+    props: {
+        queryOrders: {
+            type: Object,
+            default: {}
         }
     },
-    data(){
-        return{
-            dialogVisible:false,
-            logoImg:'',
-            userId:Cookies.get("user")
+    data() {
+        return {
+            dialogVisible: false,
+            logoImg: '',
+            userId: Cookies.get("user"),
+            allProducts: []
         }
     },
-    created(){
+
+    created() {
+      
     },
-    methods:{
+    methods: {
         setBackupVisible: function (backupVisible) {
             this.dialogVisible = backupVisible
+            let data = JSON.parse(JSON.stringify(this.queryOrders))
+            data.jqInsuranceType.forEach(e => {e.label = '交强险';e.totalPremium=data.jqpremium});
+            if((data.kindinfo && data.kindinfo.length > 0)  || (data.accidentInfo && data.accidentInfo.length > 0)){
+                data.kindinfo && data.kindinfo.length > 0 ? data.kindinfo.forEach(el => {el.label = '商业险', el.name = el.kindName;el.totalPremium=data.sypremium}) : data.kindinfo
+                data.accidentInfo && data.accidentInfo.length > 0 ? data.accidentInfo.forEach(e => {e.label = '驾意险';e.totalPremium=data.jypremium}) : data.accidentInfo
+                this.allProducts =data.jqInsuranceType.concat(data.kindinfo, data.accidentInfo)
+            }
+            else{
+                this.allProducts=data.jqInsuranceType
+            }
         },
+        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+            if (columnIndex === 0) { // 假设我们要合并第三列(类型列)
+                const rows = this.allProducts;
+                let prevRow = rows[rowIndex - 1];
+                if (prevRow && row.label === prevRow.label) {
+                    return [1, 0]; // 上一行与当前行相同,合并当前单元格
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < rows.length; i++) {
+                        if (rows[i].label === row.label) {
+                            rowspan++;
+                        } else {
+                        break;
+                        }
+                    }
+                return [rowspan, 1]; // 返回行合并数目和列合并数目
+                }
+            }
+            if (columnIndex === 4) { // 假设我们要合并第三列(类型列)
+                const rows = this.allProducts;
+                let prevRow = rows[rowIndex - 1];
+                if (prevRow && row.totalPremium === prevRow.totalPremium) {
+                    return [1, 0]; // 上一行与当前行相同,合并当前单元格
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < rows.length; i++) {
+                        if (rows[i].totalPremium === row.totalPremium) {
+                            rowspan++;
+                        } else {
+                        break;
+                        }
+                    }
+                return [rowspan, 1]; // 返回行合并数目和列合并数目
+                }
+            }
+        },
+
         // 截图粘贴
-    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);
-      });
-    },
+        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{
+.vehicle {
+    li {
         width: 33%;
         padding-top: 13px;
         display: inline-block;
     }
-    span{
-       color: #868B98 ;
+
+    span {
+        color: #868B98;
     }
+
     margin: 10px 0 20px 0
 }
-.dialog-footer{
-    button{
+
+.dialog-footer {
+    button {
         width: 96px;
         text-align: center;
     }
 }
-.quotation-title{
+
+.quotation-title {
     color: var(--themeColor);
     font-weight: bold;
     font-size: 16px;
 }
+.payable_amount{
+    margin-top: 15px;
+    text-align: right;
+    padding: 5px 10px 0 0;
+    background: rgba(212,36,38,0.06);
+    border-bottom: 4px  #D42426 solid;
+    h3>span{
+        margin-left: 50px;
+    }
+}
 /deep/ {
-    .el-dialog__header{
-        padding: 0 ;
+    .el-dialog__header {
+        padding: 0;
 
     }
-    .el-dialog__body{
+
+    .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{
+
+    .el-descriptions__body {
+        padding: 0
+    }
+
+    .el-descriptions__body .el-descriptions__table .el-descriptions-item__cell {
         text-align: center;
     }
-    .el-descriptions-item__content{
-        color: #333333 ;
+
+    .el-descriptions-item__content {
+        color: #333333;
         font-weight: bold;
     }
-    .el-descriptions-item__label.is-bordered-label{
+
+    .el-descriptions-item__label.is-bordered-label {
         background: var(--themeColor);
         color: #fff;
     }

+ 87 - 2
src/views/Core/components/quotationDialogPro.vue

@@ -55,7 +55,7 @@
                     <span>车辆商业险保险期间:</span>{{ queryOrders.systartdate }} 至 {{ queryOrders.syenddate }}
                 </li>
             </div>
-            <div class="quotation-style tax-arrears" v-if="queryOrders.kindinfo && queryOrders.kindinfo.length>0">
+            <!-- <div class="quotation-style tax-arrears" v-if="queryOrders.kindinfo && queryOrders.kindinfo.length>0">
                 <b>商业险险别</b>
                 <b>保额(元)</b>
                 <b style=" border-right:0">保费(元)</b>
@@ -84,6 +84,35 @@
                 <div v-if="queryOrders.taxamount">车船税:<span>¥{{ queryOrders.taxamount }}</span></div>
                 <div v-if="queryOrders.jypremium">驾意险:<span>¥{{ queryOrders.jypremium }}</span></div>
                 <div style="font-weight: bold;">应缴金额:<span>¥{{ queryOrders.sumpremium }}</span></div>
+            </div> -->
+            <el-table :data="allProducts" stripe border :span-method="objectSpanMethod"
+                :header-cell-style="{ background: 'rgba(45,77,137,0.1) ', fontWeight: 'bold', color: '#333333' }" style="width: 100%">
+                <el-table-column width="100" prop="label" align="center" label="产品类型">
+                </el-table-column>
+                <el-table-column width="450" prop="name" align="center" label="险别/名称">
+                </el-table-column>
+                <el-table-column align="center" prop="amount" label="保额"></el-table-column>
+                <el-table-column align="center" prop="coveragePremium" label="保费(元)">
+                    <template slot-scope="scope">
+                        {{ scope.row.label=='商业险'?scope.row.coveragePremium:scope.row.label=='驾意险'?scope.row.premium:'-' }}
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" prop="totalPremium" label="总计(元)">
+                    <template slot-scope="scope">
+                        <span style="color:#2D4D89 ;font-weight: bold;">{{ scope.row.totalPremium }}</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <div class="payable_amount">
+                <h3>
+                    <span v-if="queryOrders.sypremium">车辆商业险:{{ '¥'+ queryOrders.sypremium  }}</span>
+                    <span v-if="queryOrders.jqpremium">交强险:{{ '¥'+  queryOrders.jqpremium }}</span>
+                    <span v-if="queryOrders.taxamount">车船税:{{ '¥'+  queryOrders.taxamount  }}</span>
+                    <span v-if="queryOrders.jypremium">驾意险:{{'¥'+   queryOrders.jypremium }}</span>
+                </h3>
+                <h2>
+                    <span v-if="queryOrders.sumpremium">应缴金额:<span style="color:#2D4D89;font-size:20px">¥</span><b style="color:#2D4D89 ;font-size:26px">{{  queryOrders.sumpremium }}</b> </span>
+                </h2>
             </div>
         </div>
         <div >注:本报价单仅供参考,最终以出单价格为准。</div>
@@ -109,7 +138,8 @@ export default {
     data(){
         return{
             dialogVisible:false,
-            logoImg:''
+            logoImg:'',
+            allProducts:[]
         }
     },
     created(){
@@ -117,6 +147,52 @@ export default {
     methods:{
         setBackupVisible: function (backupVisible) {
             this.dialogVisible = backupVisible
+            let data = JSON.parse(JSON.stringify(this.queryOrders))
+            data.jqInsuranceType.forEach(e => {e.label = '交强险';e.totalPremium=data.jqpremium});
+            if((data.kindinfo && data.kindinfo.length > 0)  || (data.accidentInfo && data.accidentInfo.length > 0)){
+                data.kindinfo && data.kindinfo.length > 0 ? data.kindinfo.forEach(el => {el.label = '商业险', el.name = el.kindName;el.totalPremium=data.sypremium}) : data.kindinfo
+                data.accidentInfo && data.accidentInfo.length > 0 ? data.accidentInfo.forEach(e => {e.label = '驾意险';e.totalPremium=data.jypremium}) : data.accidentInfo
+                this.allProducts =data.jqInsuranceType.concat(data.kindinfo, data.accidentInfo)
+            }
+            else{
+                this.allProducts=data.jqInsuranceType
+            }
+        },
+        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+            if (columnIndex === 0) { // 假设我们要合并第三列(类型列)
+                const rows = this.allProducts;
+                let prevRow = rows[rowIndex - 1];
+                if (prevRow && row.label === prevRow.label) {
+                    return [1, 0]; // 上一行与当前行相同,合并当前单元格
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < rows.length; i++) {
+                        if (rows[i].label === row.label) {
+                            rowspan++;
+                        } else {
+                        break;
+                        }
+                    }
+                return [rowspan, 1]; // 返回行合并数目和列合并数目
+                }
+            }
+            if (columnIndex === 4) { // 假设我们要合并第三列(类型列)
+                const rows = this.allProducts;
+                let prevRow = rows[rowIndex - 1];
+                if (prevRow && row.totalPremium === prevRow.totalPremium) {
+                    return [1, 0]; // 上一行与当前行相同,合并当前单元格
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < rows.length; i++) {
+                        if (rows[i].totalPremium === row.totalPremium) {
+                            rowspan++;
+                        } else {
+                        break;
+                        }
+                    }
+                return [rowspan, 1]; // 返回行合并数目和列合并数目
+                }
+            }
         },
         // 截图粘贴
     copybjd() {
@@ -222,6 +298,15 @@ export default {
         text-align: left;
     }
 }
+.payable_amount{
+    margin-top: 15px;
+    text-align: right;
+    padding-right: 10px;
+    // padding: 5px 10px 0 0;
+    h3>span{
+        margin-left: 50px;
+    }
+}
 /deep/ {
     .el-dialog__header{
         padding: 0 ;

+ 2 - 1
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -421,7 +421,6 @@ export default {
         agreementType: '2',
         isNotCar: '0',
         isOther:'0',
-        handlingFeesStatus:'0',
         isNotDocumentary:'0'
       },
       formData:{},
@@ -478,6 +477,8 @@ export default {
         partnerCompaniesId:this.batchData.partnerCompaniesId,
         companyId:this.batchData.companyId,
         isNotCar:'0',
+        ids:this.batchData.ids,
+
       }
       this.$api.task.batchInvoicing(data)
           .then(res => {

+ 10 - 10
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicedAndSettled.vue

@@ -1,7 +1,7 @@
 <template>
     <!--布局容器-->
     <div class="invoiceAnd" style="width: 99%; margin-top: 0px">
-        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+        <templateTable :formList="formList"  :tableConfig="tableConfig" :data="tableData"
             @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
             <template slot="data">
                 <yearMonthYay ref="yearMonthYay" @getYearData="getYearData" @getMonthData="getMonthData"
@@ -44,7 +44,6 @@ export default {
     },
     data() {
         return {
-            searchData: {},
             formList: [
                 {
                     label: "保险公司",
@@ -240,7 +239,8 @@ export default {
                     agreementType: '2',
                     isNotCar: '0',
                     isNotDocumentary: '0',
-                    handlingFeesStatus: '0'
+                    handlingFeesStatus: '0',
+                    isSettlement: '1',
                 })
                 .then(res => {
                     if (res.code == 200) {
@@ -293,18 +293,18 @@ export default {
             this.dialogVisiblerecord = true
         },
         // 查询
-        handleSearchList() {
-            this.findPage();
+        handleSearchList(data) {
+            this.findPage(data);
         },
         //列表数据
         findPage(data) {
-            if (data) {
-                this.pageData.pageNum = data.pageNum;
-                this.pageData.pageSize = data.pageSize;
-            }
+            // if (data) {
+            //     this.pageData.pageNum = data.pageNum;
+            //     this.pageData.pageSize = data.pageSize;
+            // }
             this.tableConfig.loading = true;
             this.$api.task
-                .totalBxAmount({ ...this.pageData, ...this.formData })
+                .totalBxAmount({ ...this.pageData, ...this.formData,...data })
                 .then(res => {
                     if (res.code == 200) {
                         this.tableData = res.data ? res.data : []

+ 1 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -568,6 +568,7 @@ export default {
         partnerCompaniesId:this.batchData.partnerCompaniesId,
         companyId:this.batchData.companyId,
         isNotCar:'1',
+        ids:this.batchData.ids,
       }
       // this.$api.task.batchInvoicing( {ids:this.batchData.ids,invoicId:this.invoicId})
       this.$api.task.batchInvoicing( data)

+ 10 - 10
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicedAndSettled.vue

@@ -223,18 +223,18 @@ export default {
             this.formData.day = val
         },
         // 查询
-        handleSearchList() {
-            this.findPage();
+        handleSearchList(data) {
+            this.findPage(data);
         },
         //列表数据
         findPage(data) {
-            if (data) {
-                this.pageData.pageNum = data.pageNum;
-                this.pageData.pageSize = data.pageSize;
-            }
+            // if (data) {
+            //     this.pageData.pageNum = data.pageNum;
+            //     this.pageData.pageSize = data.pageSize;
+            // }
             this.tableConfig.loading = true;
             this.$api.task
-                .totalBxAmount({ ...this.pageData, ...this.formData })
+                .totalBxAmount({ ...this.pageData, ...this.formData,...data })
                 .then(res => {
                     if (res.code == 200) {
                         this.tableData = res.data ? res.data : []
@@ -260,7 +260,7 @@ export default {
             this.formDetail = row
             this.findPageDetail(row)
         },
-        findPageDetail(data) {
+        s(data) {
             this.tableConfigDetail.loading = true
             this.$api.task
                 .invicdetai({
@@ -268,8 +268,8 @@ export default {
                     agreementType: '2',
                     isNotCar: '1',
                     isNotDocumentary: '0',
-                    handlingFeesStatus: '0'
-
+                    handlingFeesStatus: '0',
+                    isSettlement: '1',
                 })
                 .then(res => {
                     if (res.code == 200) {