Kaynağa Gözat

复制费用,需求变更

@dongkboy 2 yıl önce
ebeveyn
işleme
2bc2c274b2

+ 8 - 0
src/http/moudules/insCompany.js

@@ -379,6 +379,14 @@ export const copySubmitInterface = (data) => {
     data
   })
 }
+//协议费用批量复制
+export const productContbatchCopy= (data) => {
+  return axios({
+    url: '/plt/new/agreement/costs/copyBatch',
+    method: "post",
+    data
+  })
+}
 /** 协议产品费用 */
 /** 费用审核 */
 

+ 286 - 106
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -7,12 +7,12 @@
         <el-row>
           <el-col :span="6">
             <el-form-item label="录入人">
-              <el-input :size="overSize" clearable v-model.trim="queryForm.creator"  placeholder="请输入录入人"></el-input>
+              <el-input :size="overSize" clearable v-model.trim="queryForm.creator" placeholder="请输入录入人"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="修改人">
-              <el-input :size="overSize" clearable v-model.trim="queryForm.modifiedBy"  placeholder="请输入"></el-input>
+              <el-input :size="overSize" clearable v-model.trim="queryForm.modifiedBy" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -25,16 +25,15 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="保险公司">
-              <el-cascader v-model="agreement.partnerCompaniesId" :size="overSize"
-                :show-all-levels="false" :options="ztreeNodes" :props="optionProps" @change="handleChange" clearable
-                filterable></el-cascader>
+              <el-cascader v-model="agreement.partnerCompaniesId" :size="overSize" :show-all-levels="false"
+                :options="ztreeNodes" :props="optionProps" @change="handleChange" clearable filterable></el-cascader>
             </el-form-item>
           </el-col>
         </el-row>
-          <el-row>
+        <el-row>
           <el-col :span="6">
             <el-form-item label="是否有效">
-              <el-select :size="overSize" v-model="queryForm.validStatus" placeholder="请选择" clearable >
+              <el-select :size="overSize" v-model="queryForm.validStatus" placeholder="请选择" clearable>
                 <el-option label="有效" :value="1"></el-option>
                 <el-option label="无效" :value="0"></el-option>
                 <el-option label="待审核" :value="2"></el-option>
@@ -43,43 +42,42 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="协议类型">
-              <el-select :size="overSize" v-model="queryForm.agreementType" placeholder="请选择" clearable style="width: 100%">
-                <el-option v-for="val in agreementTypeoptions" :key="val.dictValue" :label="val.dictTag" :value="val.dictValue"></el-option>
+              <el-select :size="overSize" v-model="queryForm.agreementType" placeholder="请选择" clearable
+                style="width: 100%">
+                <el-option v-for="val in agreementTypeoptions" :key="val.dictValue" :label="val.dictTag"
+                  :value="val.dictValue"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-          <el-form-item label="省市区" prop="areaCode">
-              <el-cascader
-              :size="overSize"
-                v-model="queryForm.areaCode"
-                :options="areaOptions"
-                :props="{label:'areaCname', value:'areaCode',children:'child',checkStrictly: true }"
-                clearable
-                ref="area"
-              ></el-cascader>
+            <el-form-item label="省市区" prop="areaCode">
+              <el-cascader :size="overSize" v-model="queryForm.areaCode" :options="areaOptions"
+                :props="{ label: 'areaCname', value: 'areaCode', children: 'child', checkStrictly: true }" clearable
+                ref="area"></el-cascader>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="录入时间">
-              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.date" style="width: 215px"  :size="overSize"
+              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.date" style="width: 215px" :size="overSize"
                 type="daterange" align="left" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
               </el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>
-          <el-row>
+        <el-row>
           <el-col :span="6">
             <el-form-item label="修改时间">
-              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.updateData" style="width: 215px"  :size="overSize"
-                type="daterange" align="left" @change="dateUpdateChange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
+              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.updateData" style="width: 215px"
+                :size="overSize" type="daterange" align="left" @change="dateUpdateChange" range-separator="至"
+                start-placeholder="开始日期" end-placeholder="结束日期">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="协议有限时间">
-              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.agreemenData" style="width: 215px" :size="overSize"
-                type="daterange" align="left" @change="agreemenChange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
+              <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.agreemenData" style="width: 215px"
+                :size="overSize" type="daterange" align="left" @change="agreemenChange" range-separator="至"
+                start-placeholder="开始日期" end-placeholder="结束日期">
               </el-date-picker>
             </el-form-item>
           </el-col>
@@ -99,20 +97,16 @@
         }">
         <el-table-column prop="id" label="编号" width="50" align="center"></el-table-column>
         <el-table-column prop="agreementCode" label="协议代码" align="center" width="180"></el-table-column>
-        <el-table-column prop="agreementName" label="协议名称" align="center" ></el-table-column>
-        <el-table-column prop="agreementType" label="协议类型" align="center"   width="150"
+        <el-table-column prop="agreementName" label="协议名称" align="center"></el-table-column>
+        <el-table-column prop="agreementType" label="协议类型" align="center" width="150"
           :formatter="agreementtypeFormatter"></el-table-column>
-        <el-table-column prop="startDate" label="协议生效日期" align="center" ></el-table-column>
+        <el-table-column prop="startDate" label="协议生效日期" align="center"></el-table-column>
         <el-table-column prop="endDate" label="协议失效日期" align="center"></el-table-column>
-        <el-table-column prop="matchType" label="匹配日期类型" align="center"
-          :formatter="matchtypeFormatter"></el-table-column>
-        <el-table-column prop="moneyTime" label="结算周期" align="center"
-          :formatter="moneytimeFormatter"></el-table-column>
-        <el-table-column prop="validStatus" label="状态" align="center"
-          :formatter="agreestatusFormatter"></el-table-column>
-        <el-table-column prop="updateTime" label="修改时间" align="center"
-          :formatter="updatetimeFormatter"></el-table-column>
-        <el-table-column prop="validStatus" label="是否有效" align="center" >
+        <el-table-column prop="matchType" label="匹配日期类型" align="center" :formatter="matchtypeFormatter"></el-table-column>
+        <el-table-column prop="moneyTime" label="结算周期" align="center" :formatter="moneytimeFormatter"></el-table-column>
+        <el-table-column prop="validStatus" label="状态" align="center" :formatter="agreestatusFormatter"></el-table-column>
+        <el-table-column prop="updateTime" label="修改时间" align="center" :formatter="updatetimeFormatter"></el-table-column>
+        <el-table-column prop="validStatus" label="是否有效" align="center">
           <template slot-scope="scope">
             <span :size="overSize" type="primary">{{
               scope.row.validStatus == 1 ? "有效" : "无效" }}</span>
@@ -288,10 +282,10 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="审核方式" >
+                <el-form-item label="审核方式">
                   <el-select v-model="agreement.auditType" placeholder="请选择审核方式" style="width: 100%">
-                    <el-option label="人工审核" value="1" ></el-option>
-                    <el-option label="自动审核" value="2" ></el-option>
+                    <el-option label="人工审核" value="1"></el-option>
+                    <el-option label="自动审核" value="2"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -407,14 +401,16 @@
         <el-form-item>
           <el-button type="primary" @click="productExpenseSearch">查询</el-button>
         </el-form-item>
+        <el-form-item>
+          <el-button type="success" @click="expenseCopy">费用复制</el-button>
+        </el-form-item>
       </el-form>
       <kt-common-table :tableHeights="700" :SerialShow="false" :operationWidth="250" :showOperation="true"
         :showBatchDelete="false" :showBatchSettled="false" :showBatchPrint="false" :data="productPageResult"
-        :columns="productColumns" @findPage="productCostFindPage" button1Name="费用复制" button1Background="#67C23A"
-        @handleButton1="expenseCopy" button1Icon="" button2Name="编辑" button2Background="#E6A23C"
-        @handleButton2="productUpdate" button2Icon="" button3Name="删除" permsButton1="agreement:input:productCost"
-        permsButton2="agreement:input:productCost" permsButton3="agreement:input:productCost" button3Background="#F56C6C"
-        @handleButton3="productDelete" button3Icon="">
+        :columns="productColumns" @findPage="productCostFindPage" button2Name="编辑" button2Background="#E6A23C"
+        @handleButton2="productUpdate" button2Icon="" button3Name="删除" permsButton2="agreement:input:productCost"
+        permsButton3="agreement:input:productCost" button3Background="#F56C6C" @handleButton3="productDelete"
+        button3Icon="">
       </kt-common-table>
     </el-dialog>
     <el-dialog :title="productCostAddDialogTitle" :visible.sync="productCostAddVehicleFactorVisible" width="80%" top="6vh"
@@ -679,9 +675,10 @@
       </kt-common-table>
     </el-dialog>
     <el-dialog title="协议历史记录" :visible.sync="agreementHistoryRecordDialogVisible" width="70%" :fullscreen="true">
-      <kt-common-table :tableHeights="700" :SerialShow="false" :operationWidth="200" :showOperation="true" button5Name="详情" @handleButton5="handleButtonHistory"
-        :showBatchDelete="false" :showBatchSettled="false" :showBatchPrint="false" :data="agreementHistoryRecordResult"
-        :columns="agreementHistoryRecordColumns" @findPage="agreementHistoryCostFindPage">
+      <kt-common-table :tableHeights="700" :SerialShow="false" :operationWidth="200" :showOperation="true"
+        button5Name="详情" @handleButton5="handleButtonHistory" :showBatchDelete="false" :showBatchSettled="false"
+        :showBatchPrint="false" :data="agreementHistoryRecordResult" :columns="agreementHistoryRecordColumns"
+        @findPage="agreementHistoryCostFindPage">
       </kt-common-table>
     </el-dialog>
     <el-dialog title="产品因子录入" :visible.sync="productCostFactorDialogVisible" :close-on-click-modal="false" width="70%"
@@ -690,20 +687,33 @@
         over-size="small" @saveForm="productCostFactorSaveForm"
         @cancelForm="productCostFactorCancelForm"></Product-Cost-Form>
     </el-dialog>
-    <el-dialog title="追加协议选择" class="dis a-c j-c" :visible.sync="productCostCopyDialogVisible"
-      :close-on-click-modal="false" width="20%">
-      <div class="flex a-c j-c">
-        <span style="margin-right: 10px;">选择同步协议</span>
-        <el-select size="small" v-model="copyProductCostInfo.newAgreementId" placeholder="请选择协议">
-          <el-option v-for="(item, index) in copyProductCostIds" :key="index" :label="item.agreementAbbreviation"
-            :value="item.id"></el-option>
-        </el-select>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="productCostCopyDialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="ProductsubmitInterface">确 定</el-button>
-      </span>
+    <el-dialog title="费用复制窗口" :visible.sync="productCostCopyDialogVisible" :close-on-click-modal="false"
+      :fullscreen="true">
+      <el-form :inline="true" :model="productcopyItemPageRequest" class="demo-form-inline" size="small"
+        label-width="80px">
+        <el-form-item label="选择协议">
+          <el-select v-model="productcopyItemPageRequest.agreementId" placeholder="请选择协议">
+            <el-option v-for="(item, index) in pageResult" :key="index" :label="item.agreementAbbreviation"
+              :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="产品">
+          <el-select v-model="productcopyItemPageRequest.productCode" placeholder="选择产品">
+            <el-option v-for="item in productsTypeoptions" :key="item.dictValue" :label="item.dictTag"
+              :value="item.dictValue"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="productcopyItemQuery">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <kt-common-table :tableHeights="700" :SerialShow="false" :operationWidth="250" :showOperation="false"
+        :customToolseletted="true" customToolName="批量复制" permscustomTool="agreement:input:productCost"
+        @customTool="customTool" :showBatchDelete="false" :showBatchSettled="false" :showBatchPrint="false"
+        :data="productcopyItemResult" :columns="productcopyItemColumns" @findPage="productcopyItemFindPage">
+      </kt-common-table>
     </el-dialog>
+
   </div>
 </template>
 <script>
@@ -724,7 +734,8 @@ export default {
   },
   data() {
     return {
-      areaOptions:[],
+      areaOptions: [],
+      productCostCopyInfo: {},
       agreementHistoryRecordColumns: [
         { prop: "agreementCode", label: "协议代码", minWidth: 180 },
         { prop: "agreementName", label: " 协议名称", minWidth: 160 },
@@ -1072,6 +1083,146 @@ export default {
 
         { prop: "priorityLevel", label: "方案优先级", minWidth: 120 },
       ],
+      productcopyItemColumns: [
+        //数据列
+        { prop: "productName", label: " 产品名称", minWidth: 160 },
+        { prop: "costsStartDate", label: "费用起期", minWidth: 160 },
+        { prop: "costsEndDate", label: "费用止期", minWidth: 160 },
+        { prop: "desc", label: "费用因子描述", minWidth: 520 },
+        {
+          prop: "jqCarCostsProportion",
+          label: "费用比例(交强)",
+          minWidth: 120,
+        },
+        {
+          prop: "jqCarOtherCostsProportion",
+          label: "其他费用比例(交强)",
+          minWidth: 160,
+        },
+        {
+          prop: "jqCostsProportion",
+          label: "总费用比例(交强)",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportRadioLevel1",
+          label: "交强出口比例一级",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportRadioLevel2",
+          label: "交强出口比例二级",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportRadioLevel3",
+          label: "交强出口比例三级",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportRadioLevel4",
+          label: "交强出口比例四级",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportRadioLevel5",
+          label: "交强出口比例五级",
+          minWidth: 160,
+        },
+        {
+          prop: "jqExportInvestmentRadio",
+          label: "交强出口加投比例",
+          minWidth: 160,
+        },
+        {
+          prop: "syCarCostsProportion",
+          label: "费用比例(商业)",
+          minWidth: 120,
+        },
+        {
+          prop: "syCarOtherCostsProportion",
+          label: "其他费用比例(商业)",
+          minWidth: 160,
+        },
+        {
+          prop: "syCostsProportion",
+          label: "总费用比例(商业)",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportRadioLevel1",
+          label: "商业出口比例一级",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportRadioLevel2",
+          label: "商业出口比例二级",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportRadioLevel3",
+          label: "商业出口比例三级",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportRadioLevel4",
+          label: "商业出口比例四级",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportRadioLevel5",
+          label: "商业出口比例五级",
+          minWidth: 160,
+        },
+        {
+          prop: "syExportInvestmentRadio",
+          label: "商业出口加投比例",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarCostsProportion",
+          label: "费用比例(非车)",
+          minWidth: 120,
+        },
+        {
+          prop: "noCarOtherCostsProportion",
+          label: "其他费用比例(非车)",
+          minWidth: 160,
+        },
+        {
+          prop: "noCostsProportion",
+          label: "总费用比例(非车)",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarExportRadioLevel1",
+          label: "非车出口比例一级",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarExportRadioLevel2",
+          label: "非车出口比例二级",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarExportRadioLevel3",
+          label: "非车出口比例三级",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarExportRadioLevel4",
+          label: "非车出口比例四级",
+          minWidth: 160,
+        },
+        {
+          prop: "noCarExportRadioLevel5",
+          label: "非车出口比例五级",
+          minWidth: 160,
+        },
+        { prop: "costsDescription", label: "费用描述", minWidth: 220 },
+
+        { prop: "priorityLevel", label: "方案优先级", minWidth: 120 },
+      ],
       labelWidth: "160px",
       factorDialogTitle: "承保规则录入", //配置因子弹框标题
       factorType: "1", //1 费用因子  2 核保因子
@@ -1141,7 +1292,7 @@ export default {
         withTax: "", //含增值税结算
         partnerCompaniesId: "", //合作公司
         serialNumber: 0, //序号
-        auditType:"",
+        auditType: "",
       },
       //产品费用
       productCostForm: {
@@ -1201,6 +1352,12 @@ export default {
         pageNum: 1,
         pageSize: 20,
       },
+      productcopyItemPageRequest: {
+        productCode: "",
+        agreementId: "",
+        pageNum: 1,
+        pageSize: 20,
+      },
       value1: [],
       vehicleCategoryList: [], //费用因子-车辆大类
       areanumberplateList: [], //费用因子-车牌号
@@ -1252,6 +1409,7 @@ export default {
       productPageResult: [], //产品费用集合
       underwritingRulesResult: [], //承保规则集合
       agreementhistoryRecordResult: [], //协议历史
+      productcopyItemResult: [],//协议费用列表
       pageRequest: {
         //查询的默认条件
         pageNum: 1,
@@ -1488,8 +1646,8 @@ export default {
       this.expenseAuditlist = res.data.content;
     })
     this.$api.dept.queryTree().then((res) => {
-      if(res.code==200){
-        this.areaOptions=res.data
+      if (res.code == 200) {
+        this.areaOptions = res.data
       }
     })
     this.agreement.partnerCompaniesId = "";
@@ -1531,40 +1689,58 @@ export default {
     this.findLeftTreeData();
   },
   methods: {
-    ProductsubmitInterface() {
-      this.$api.insCompany.copySubmitInterface(this.copyProductCostInfo).then((res) => {
-        if (res.code == '200') {
-            this.productCostCopyDialogVisible=false;
-          this.$message({
-            type: 'success',
-            message: "复制成功",
-          });
-        } else {
-          this.$message({
-            type: 'error',
-            message: res.msg,
-          });
+    customTool(ids) {
+      this.$confirm('是否确认提交?', '提示', {
+        confirmButtonText: '提交',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let params = {
+          newAgreementId: this.agreementId,
+          orgCostsIds: ids,
         }
+        this.$api.insCompany.productContbatchCopy(params).then((res) => {
+          if (res.code == '200') {
+            this.$message({
+              type: 'success',
+              message: "批量复制成功",
+            });
+            this.productCostCopyDialogVisible = false;
+          } else {
+            this.$message({
+              type: 'error',
+              message: res.msg,
+            });
+          }
+        });
+      }).catch(() => {
+
       });
+
+
+    },
+    productcopyItemQuery() {
+      this.productcopyItemFindPage();
     },
     productExpenseSearch() {
       this.productCostFindPage();
-    },    dateUpdateChange(e){
+    },
+    dateUpdateChange(e) {
       if (e == null) {
         this.queryForm.updateStarTime = ''
         this.queryForm.updateEndTime = ''
       } else {
-        this.queryForm.updateStarTime=e[0];
-        this.queryForm.updateEndTime=e[1];
+        this.queryForm.updateStarTime = e[0];
+        this.queryForm.updateEndTime = e[1];
       }
     },
-    agreemenChange(e){
+    agreemenChange(e) {
       if (e == null) {
         this.queryForm.agreementStartDate = ''
         this.queryForm.agreementEndDate = ''
       } else {
-        this.queryForm.agreementStartDate=e[0];
-        this.queryForm.agreementEndDate=e[1];
+        this.queryForm.agreementStartDate = e[0];
+        this.queryForm.agreementEndDate = e[1];
       }
     },
     // 协议历史记录里的详情
@@ -1575,7 +1751,7 @@ export default {
           obj.costsAttrLinks.map(val => {
             switch (val.attrType) {
               case 'inputNumber':
-              if (!val.operator) {
+                if (!val.operator) {
                   val.operator = '1';
                 }
                 break;
@@ -1718,6 +1894,17 @@ export default {
           this.productHistoryRecordResult = res.data;
         });
     },
+    productcopyItemFindPage(data) {
+      if (data && data.pageRequest) {
+        this.productcopyItemPageRequest.pageNum = data.pageRequest.pageNum;
+        this.productcopyItemPageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.$api.insCompany
+        .productCostQuery(this.productcopyItemPageRequest)
+        .then((res) => {
+          this.productcopyItemResult = res;
+        });
+    },
     underwritingRulesFindPage(data) {
       if (data && data.pageRequest) {
         this.productpageRequest.pageNum = data.pageRequest.pageNum;
@@ -1802,19 +1989,12 @@ export default {
         });
     },
     //产品费用复制
-    expenseCopy({ row, column }) {
-      this.copyProductCostInfo.orgCostsId = row.id;
-      this.$api.insCompany.companyAgreementCopyList(row.agreementId).then((res) => {
-        if (res.code == '200') {
-          this.copyProductCostIds = res.data;
-          this.productCostCopyDialogVisible = true;
-        } else {
-          this.$message({
-            type: 'error',
-            message: res.msg,
-          });
-        }
-      });
+    expenseCopy() {
+      this.productCostCopyDialogVisible = true;
+      this.productcopyItemPageRequest.agreementId="";
+      this.productcopyItemPageRequest.productCode="";
+      this.productcopyItemResult=[];
+
     },
     //产品编辑
     productUpdate({ row, column }) {
@@ -2246,15 +2426,15 @@ export default {
 
     // 右侧列表的方法Start
     findPage() {
-      let areaCode=''
-        if(this.queryForm.areaCode && this.queryForm.areaCode.length>0){
-           this.queryForm.level=this.$refs['area'].getCheckedNodes()[0].level
-            areaCode=this.queryForm.areaCode[this.queryForm.areaCode.length-1]
-        }
-        else{
-          this.queryForm.areaCode=''
-          this.queryForm.level=''
-        }
+      let areaCode = ''
+      if (this.queryForm.areaCode && this.queryForm.areaCode.length > 0) {
+        this.queryForm.level = this.$refs['area'].getCheckedNodes()[0].level
+        areaCode = this.queryForm.areaCode[this.queryForm.areaCode.length - 1]
+      }
+      else {
+        this.queryForm.areaCode = ''
+        this.queryForm.level = ''
+      }
       let parmas = {
         pageNum: this.pageNum,
         pageSize: this.pageSize,

+ 23 - 1
src/views/Core/KtCommonTable.vue

@@ -11,7 +11,7 @@
         color: '#606266',
       }" style="width: 100%" :row-class-name="tableRowClassName">
       <el-table-column type="selection" width="50" fixed align="center"
-        v-if="showBatchDelete || showBatchSettled || showBatchPrint"></el-table-column>
+        v-if="showBatchDelete || showBatchSettled || showBatchPrint || customToolseletted"></el-table-column>
       <el-table-column v-if="SerialShow" label="序号" type="index" width="50" align="center"></el-table-column>
       <template v-for="column in columns">
         <el-table-column header-align="center" align="center" :prop="column.prop" :label="column.label"
@@ -118,6 +118,9 @@
     <!--分页栏-->
     <!-- 底部分页 -->
     <div class="bottomFixed" ref="bottomFixed">
+      <kt-button  :label="customToolName" :perms="permscustomTool" :size="size" type="danger"
+        @click="customToolMethod()" :disabled="selections.length === 0" style="float: left"
+        v-if="customToolseletted" />
       <kt-button class="debutton" :label="deleteName" :perms="permsDelete" :size="size" type="danger"
         @click="handleBatchDelete()" :disabled="selections.length === 0" style="float: left"
         v-if="showBatchDelete & showOperation" />
@@ -158,6 +161,18 @@ export default {
       type: Boolean,
       default: true,
     },
+    customToolName: {
+      type: String,
+    },
+    permscustomTool: {
+      type: String,
+    },
+    customToolseletted: {
+      // 自定义操作组件
+      type: Boolean,
+      default: false,
+    },
+
     settledName: {
       //批量按钮name
       type: String,
@@ -321,6 +336,7 @@ export default {
       type: Boolean,
       default: false,
     },
+
   },
   data() {
     return {
@@ -534,6 +550,12 @@ export default {
       this.selections.map((item) => idlist.push(item.id));
       this.$emit("handleDelete", idlist);
     },
+    //自定义批量操作按钮
+    customToolMethod(){
+      let idlist = [];
+      this.selections.map((item) => idlist.push(item.id));
+      this.$emit("customTool", idlist);
+    },
     // 删除操作
     delete: function (ids) {
       var _keyName = "id";