Procházet zdrojové kódy

财务管理-费用核对-新增保司数据菜单

lihongxiao před 3 roky
rodič
revize
821312397e

+ 25 - 1
src/components/TemplateTable/index.vue

@@ -25,6 +25,17 @@
               ></el-option>
             </el-select>
           </template>
+          <template v-else-if="f.type === 'companyCheck'">
+            <el-select class="selectLength" multiple collapse-tags size="small"   v-model="searchDataClone[f.prop]" :placeholder="'请输入'+f.label">
+              <el-option label="不限" value v-if="f.selectAuto"></el-option>
+              <el-option
+                v-for="(s, i) in InsCompanyList"
+                :key="i"
+                :label="s.name"
+                :value="s.id"
+              ></el-option>
+            </el-select>
+          </template>
           <template v-else-if="f.type === 'select'">
             <el-select size="small" clearable  v-model="searchDataClone[f.prop]" :placeholder="'请输入'+f.label">
               <el-option label="不限" value v-if="f.selectAuto"></el-option>
@@ -306,4 +317,17 @@ export default {
     },
   }
 };
-</script>
+</script>
+<style scoped>
+.selectLength{
+  width: 230px;
+}
+.selectLength /deep/ .el-select__tags-text {
+  display: inline-block;
+  max-width: 120px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+</style>

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

@@ -50,6 +50,14 @@ export const getQueryPage = (data) => {
         data
     })
 }
+// 综合查询列表
+export const  multipleQueryPage = (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/synthesize",
+        method: "post",
+        data
+    })
+}
 //保司列表删除
 export const getDelete = (params) => {
     return axios({

+ 597 - 0
src/views/FinancialManagement/CostVerification/BaoshiData.vue

@@ -0,0 +1,597 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :btnGroup="btnGroup"
+      :data="tableData" @getList="getList" @handleSearchList="handleSearchList" :pagination="queryBatchFrom">
+      <template slot="excel导入" slot-scope="scope">
+        <div style="display:inline-block;margin:0 5px">
+          <el-upload class="upload" ref="upload" :show-file-list="false" :limit="1" action="#"
+            :http-request="carfrontChange" :multiple="false">
+            <el-button type="primary" size="small" @click="$refs.upload.clearFiles()">excel导入</el-button>
+          </el-upload>
+        </div>
+      </template>
+      <template slot="operate" slot-scope="scope">
+        <!-- <div style="display: inline-block;">
+            <el-upload
+              class="upload"
+              ref="reUpload"
+              :show-file-list="false"
+              v-if="scope.row.importStatus == 0"
+              action="#"
+              :http-request="reCarfrontChange"
+              :multiple="false"
+            >
+              <el-button
+              style="margin-right:5px"
+                size="mini"
+                type="primary"
+                @click="reImportFun(scope.row)"
+              >重新导入</el-button>
+            </el-upload>
+          </div> -->
+        <el-button size="mini" type="primary" @click="detailBatchFun(scope.row)">详情</el-button>
+        <el-button
+            v-if="scope.row.status == 0"
+            size="mini"
+            type="primary"
+            @click="mateFun(scope.row)"
+          >匹配</el-button>
+          <!-- <el-button
+              size="mini"
+              type="primary"
+              @click="modifyFun(scope.row)"
+            >修改</el-button> -->
+        <!--   <el-button
+            size="mini"
+            type="primary"
+            @click="deleteFun(scope.row)"
+          >删除</el-button>
+          <el-button
+            size="mini"
+            type="primary"
+            @click="exportNum(scope.row)"
+          >导出</el-button> -->
+      </template>
+    </templateTable>
+    <el-dialog v-dialogDrag title="修改" :visible.sync="dialogVisible" width="1200px" @close="closeVisible">
+      <div>
+        <el-form :model="formData" label-width="180px">
+          <el-row>
+            <!-- <el-col :span="8">
+              <el-form-item label="出单渠道:">
+                <el-input clearable size="small" placeholder="请输入出单渠道" v-model="formData.mlifta"></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :span="8">
+              <el-form-item label="交强险保费:">
+                <el-input clearable size="small" placeholder="请输入交强险保费" v-model="formData.mlifta"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="车船税:">
+                <el-input clearable size="small" placeholder="请输入车船税" v-model="formData.vavt"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="商业险保费:">
+                <el-input clearable size="small" placeholder="请输入商业险保费" v-model="formData.cip"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="其他保费:">
+                <el-input clearable size="small" placeholder="请输入其他保费" v-model="formData.other"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="清单数量:">
+                <el-input clearable size="small" placeholder="请输入清单数量" v-model="formData.inventoryQuantity"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="comfirmDialog">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog v-dialogDrag title="详情" :visible.sync="dialogBVatch" width="60%" @close="closdialogBVatchVisible">
+      <el-row style="margin-bottom:20px">
+        <el-col :span="6">批次号:{{ formBatchDetailData.batchNum }}</el-col>
+        <el-col :span="6">保险公司:{{ formBatchDetailData.insCompany }}</el-col>
+        <!-- <el-col :span="8">保单号:{{ formBatchDetailData.policyNum }}</el-col> -->
+        <el-col :span="6">车牌号:{{ formBatchDetailData.plateNum }}</el-col>
+        <el-col :span="6">被保险人:{{ formBatchDetailData.insured }}</el-col>
+      </el-row>
+      <el-row style="margin:20px 0">
+        <el-col :span="6">交强险保费:{{ formBatchDetailData.mlifta }}</el-col>
+        <el-col :span="6">商业险保费:{{ formBatchDetailData.cip }}</el-col>
+        <el-col :span="6">车船税:{{ formBatchDetailData.vavt }}</el-col>
+        <el-col :span="6">其他保费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6">险种:{{ formBatchDetailData.insCoverage }}</el-col>
+        <el-col :span="6">付款日期:{{ formBatchDetailData.payDate }}</el-col>
+      </el-row>
+    </el-dialog>
+     <!-- 匹配页面 -->
+     <el-dialog
+      v-dialogDrag
+      title=" "
+      :visible.sync="dialogMateVisible"
+      width="60%"
+      @close="closdialogMateVisible"
+    >
+      <div style="margin-bottom:20px">
+        <div class="mate-title">匹配数据</div>
+        <div style="width: 90%;height:1px;background:#ccc"></div>
+      </div>
+      <el-table
+        size="small"
+        :data="mateData"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns1">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" min-width="100"  >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="primary"
+              @click="detailBatchFun(scope.row)"
+            >详情</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+       <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePagematch1Change"
+        @current-change="tableCurrentmatch1Change"
+        :current-page="matchPage1.pageNum"
+        :page-size="matchPage1.pageSize"
+        :page-sizes="[10, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="matchPage1.totalSize"
+      ></el-pagination>
+    </div>
+      <div style="margin:20px 0">
+        <div class="mate-title" style="background-color: rgb(134, 27, 0);">未匹配数据</div>
+        <div style="width: 90%;height:1px;background:#ccc"></div>
+      </div>
+      <el-table
+        size="small"
+        :data="Unmatched"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns1">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="未匹配原因" align="center" prop="notMatchMsg"></el-table-column>
+        <el-table-column label="操作" align="center" min-width="100"  >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="primary"
+              @click="handleUnmatchedFun(scope.row)"
+            >处理</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+          <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePagematch2Change"
+        @current-change="tableCurrentmatch2Change"
+        :current-page="matchPage2.pageNum"
+        :page-size="matchPage2.pageSize"
+        :page-sizes="[10, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="matchPage2.totalSize"
+      ></el-pagination>
+    </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" :disabled='isDisabled' @click="confirmReceipt()">确定领取</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      title="详情匹配"
+      :visible.sync="dialogBVatchUpdata"
+      width="55%"
+      @close="closdialogBVatceVisible"
+    >
+      <el-form
+        class="demo-ruleForm"
+        :inline="true"
+        :model="mateform"
+        ref="userform"
+        label-width="160px"
+      >
+      <el-row>
+          <el-col :span="12">
+            <el-form-item label="车牌号(保司):">
+              <el-input :disabled="true" v-model="mateform.plateNum2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车牌号(渠道):">
+              <el-input :disabled="true" v-model="mateform.plateNum1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="商业保费(保司):">
+              <el-input :disabled="true" v-model="mateform.cip2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="商业保费(渠道):">
+              <el-input  v-model="mateform.cip1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="交强保费(保司):">
+              <el-input :disabled="true" v-model="mateform.mlifta2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="交强保费(渠道):">
+              <el-input v-model="mateform.mlifta1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车船税保费(保司):">
+              <el-input :disabled="true" v-model="mateform.vavt2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车船税保费(渠道):">
+              <el-input v-model="mateform.vavt1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="商业费用(保司):">
+              <el-input :disabled="true" v-model="mateform.cipCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="商业费用(渠道):">
+              <el-input v-model="mateform.cipCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="交强费用(保司):">
+              <el-input :disabled="true" v-model="mateform.mliftaCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="交强费用(渠道):">
+              <el-input v-model="mateform.mliftaCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车船税费用(保司):">
+              <el-input :disabled="true" v-model="mateform.vavtCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车船税费用(渠道):">
+              <el-input v-model="mateform.vavtCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogBVatchUpdata = false">取消修改</el-button>
+        <el-button size="small" type="primary" @click="mateSave()">确定修改</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { mixin } from "./components/mixins.js"
+import templateTable from '../../../components/TemplateTable/index.vue'
+
+export default {
+  name: "channel",
+  mixins: [mixin],
+  components: { templateTable },
+  created() {
+    // this.$api.cost.gainTopList().then(res => {
+    //   if (res.data) {
+    //     this.InsCompanyList = res.data;
+    //   }
+    // });
+    this.getList()
+  },
+  data() {
+    return {
+      InsCompany: "",
+      InsCompanyList: [],
+      queryBatchFrom: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      searchData: {},
+      batchNum: 0,
+      formData: {},
+      formBatchDetailData: {},
+      dialogVisible: false,
+      dialogBVatchVisible: false,
+      dialogBVatchUpdata: false,
+      tableData: [],
+      dialogBVatch: false,
+      batchNumDetailId: 0,
+      mateData: [],
+      mateform:{},
+      dialogMateVisible:false,
+      isDisabled:false,
+      matchPage1: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      matchPage2: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      Unmatched: [],
+
+    };
+  },
+  methods: {
+    closdialogBVatchVisible() {
+      this.dialogBVatch = false
+    },
+    // 修改保存页面
+    comfirmDialog() {
+      this.$api.cost
+        .getchanneEdit(this.formData)
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogVisible = false;
+            this.getList();
+          }
+        });
+    },
+
+    // 删除
+    deleteFun(row) {
+      this.$confirm("确认删除?")
+        .then(() => {
+          let flag = 2
+          this.$api.cost.getDelete({ batchNum: row.id, flag }).then(res => {
+            if (res.code == 200) {
+              this.$message({
+                message: "删除成功",
+                type: "success"
+              });
+              this.getList();
+            }
+          });
+        })
+        .catch(() => { });
+    },
+    closeVisible() {
+      this.dialogVisible = false;
+    },
+
+    templateDownload() {
+      let a = document.createElement('a')
+      a.href = `${process.env.BASE_URL}/template/finance_channel_model_A.xlsx`;
+      a.click();
+    },
+    getList(data) {
+      this.tableConfig.loading = true;
+      this.$api.cost
+        .getchanneQueryPageDetails({
+          ...this.queryBatchFrom, dto:data
+        })
+        .then(res => {
+          this.tableData = res.data.content;
+          this.queryBatchFrom.pageNum = res.data.pageNum;
+          this.queryBatchFrom.pageSize = res.data.pageSize;
+          this.queryBatchFrom.totalSize = res.data.totalSize;
+          this.tableConfig.loading = false;
+        });
+    },
+
+    // 批次详情查看接口
+    detailBatchFun(row) {
+      let id = row.id;
+      this.dialogBVatch = true;
+      this.$api.cost.detailschanneById(id).then(res => {
+        if (res.code == 200 && res.data) {
+          this.formBatchDetailData = res.data;
+        }
+      });
+    },
+    handleSearchList(data) {
+      this.getList(data)
+    },
+    tablePageBatchChange(val) {
+      this.queryBatchFrom.pageSize = val;
+      this.getList(val);
+    },
+    tableCurrentBatchChange(val) {
+      this.queryBatchFrom.pageNum = val;
+      this.getList();
+    },
+    uploadImport(file, isId,) {
+      const params = new FormData(); // 声明formData数据类型
+      params.append("file", file.file);
+      if (isId) {
+        params.append("batchNum", this.batchNum);
+      }
+      this.$api.cost.importData(params).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.getList();
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+     // 修改页面
+     modifyFun(row) {
+      this.dialogVisible = true;
+      this.formData = {
+        insCompanyId: row.insCompanyId,
+        mlifta: row.mlifta,
+        vavt: row.vavt,
+        other: row.other,
+        inventoryQuantity: row.inventoryQuantity,
+        id:row.id
+      };
+    },
+    // excel导入
+    carfrontChange(file) {
+      this.uploadImport(file);
+    },
+    reCarfrontChange(file) {
+      this.uploadImport(file, 1);
+    },
+    // 重新导入
+    reImportFun(row) {
+      this.batchNum = row.id;
+    },
+    mateFun(row) {
+      this.dialogMateVisible = true;
+      this.batchNumDetailId=row.id
+      this.mate1(row.id)
+      this.mate2(row.id)
+    },
+     // 匹配页面
+     mate1(batchNum){
+      this.$api.cost.getChannelMatchingIns({batchNum,isMatch:1,...this.matchPage1}).then(res => {
+        if (res.code == 200 && res.data) {
+          this.mateData = res.data.content;
+          this.matchPage1.pageNum=res.data.pageNum
+          this.matchPage1.pageSize=res.data.pageSize
+          this.matchPage1.totalSize=res.data.totalSize
+        }
+      });
+    },
+    mate2(batchNum){
+      this.$api.cost.getChannelMatchingIns({batchNum,isMatch:0,...this.matchPage2}).then(res => {
+        if (res.code == 200 && res.data) {
+          if(res.data.content&&res.data.content.length>0){
+            this.isDisabled=true
+          }
+          else{
+            this.isDisabled=false
+          }
+          this.Unmatched = res.data.content;
+          this.matchPage2.pageNum=res.data.pageNum
+          this.matchPage2.pageSize=res.data.pageSize
+          this.matchPage2.totalSize=res.data.totalSize
+        }
+      });
+    },
+   
+    closdialogBVatceVisible() {
+      this.dialogBVatchUpdata = false;
+    },
+    closdialogMateVisible(){
+      this.dialogMateVisible = false;
+    },
+    closdialogBVatchVisible(){
+      this.dialogBVatch = false;
+    },
+    mateSave(){
+      let obj={
+        cip:this.mateform.cip1,
+        mlifta:this.mateform.mlifta1,
+        vavt:this.mateform.vavt1,
+        id:this.mateform.id
+      }
+      this.$api.cost
+        .getchanneEdit(obj)
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogBVatchUpdata = false;
+            this.mate2(this.batchNumDetailId)
+          }
+        });
+    },
+    tableCurrentmatch2Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate2(this.batchNumDetailId);
+    },
+    tableCurrentmatch1Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate1(this.batchNumDetailId);
+    },
+    tablePagematch1Change(val) {
+      this.matchPage1.pageSize = val;
+      this.mate1(this.batchNumDetailId);
+    },
+    tablePagematch2Change(val) {
+      this.matchPage2.pageSize = val;
+      this.mate2(this.batchNumDetailId);
+      
+    },
+  }
+};
+</script>
+
+<style scoped>
+.detailStyle {
+  color: #666;
+  font-size: 16px;
+  margin-bottom: 20px;
+}
+
+.batchStyle {
+  cursor: pointer;
+}
+
+.batchStyle:hover {
+  color: #8b0000;
+  text-decoration: underline;
+}
+
+.mate-title {
+  display: inline-block;
+  width: 150px;
+  line-height: 35px;
+  background-color: rgb(105, 186, 15);
+  text-align: center;
+  color: #fff;
+}
+</style>

+ 325 - 33
src/views/FinancialManagement/CostVerification/Channel.vue

@@ -31,6 +31,12 @@
             </el-upload>
           </div> -->
         <el-button size="mini" type="primary" @click="detailBatchFun(scope.row)">详情</el-button>
+        <el-button
+            v-if="scope.row.status == 0"
+            size="mini"
+            type="primary"
+            @click="mateFun(scope.row)"
+          >匹配</el-button>
           <!-- <el-button
               size="mini"
               type="primary"
@@ -109,6 +115,199 @@
         <el-col :span="6">付款日期:{{ formBatchDetailData.payDate }}</el-col>
       </el-row>
     </el-dialog>
+     <!-- 匹配页面 -->
+     <el-dialog
+      v-dialogDrag
+      title=" "
+      :visible.sync="dialogMateVisible"
+      width="60%"
+      @close="closdialogMateVisible"
+    >
+      <div style="margin-bottom:20px">
+        <div class="mate-title">匹配数据</div>
+        <div style="width: 90%;height:1px;background:#ccc"></div>
+      </div>
+      <el-table
+        size="small"
+        :data="mateData"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns1">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" min-width="100"  >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="primary"
+              @click="detailBatchFun(scope.row)"
+            >详情</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+       <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePagematch1Change"
+        @current-change="tableCurrentmatch1Change"
+        :current-page="matchPage1.pageNum"
+        :page-size="matchPage1.pageSize"
+        :page-sizes="[10, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="matchPage1.totalSize"
+      ></el-pagination>
+    </div>
+      <div style="margin:20px 0">
+        <div class="mate-title" style="background-color: rgb(134, 27, 0);">未匹配数据</div>
+        <div style="width: 90%;height:1px;background:#ccc"></div>
+      </div>
+      <el-table
+        size="small"
+        :data="Unmatched"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns1">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="未匹配原因" align="center" prop="notMatchMsg"></el-table-column>
+        <el-table-column label="操作" align="center" min-width="100"  >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="primary"
+              @click="handleUnmatchedFun(scope.row)"
+            >处理</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+          <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePagematch2Change"
+        @current-change="tableCurrentmatch2Change"
+        :current-page="matchPage2.pageNum"
+        :page-size="matchPage2.pageSize"
+        :page-sizes="[10, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="matchPage2.totalSize"
+      ></el-pagination>
+    </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" :disabled='isDisabled' @click="confirmReceipt()">确定领取</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      title="详情匹配"
+      :visible.sync="dialogBVatchUpdata"
+      width="55%"
+      @close="closdialogBVatceVisible"
+    >
+      <el-form
+        class="demo-ruleForm"
+        :inline="true"
+        :model="mateform"
+        ref="userform"
+        label-width="160px"
+      >
+      <el-row>
+          <el-col :span="12">
+            <el-form-item label="车牌号(保司):">
+              <el-input :disabled="true" v-model="mateform.plateNum2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车牌号(渠道):">
+              <el-input :disabled="true" v-model="mateform.plateNum1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="商业保费(保司):">
+              <el-input :disabled="true" v-model="mateform.cip2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="商业保费(渠道):">
+              <el-input  v-model="mateform.cip1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="交强保费(保司):">
+              <el-input :disabled="true" v-model="mateform.mlifta2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="交强保费(渠道):">
+              <el-input v-model="mateform.mlifta1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车船税保费(保司):">
+              <el-input :disabled="true" v-model="mateform.vavt2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车船税保费(渠道):">
+              <el-input v-model="mateform.vavt1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="商业费用(保司):">
+              <el-input :disabled="true" v-model="mateform.cipCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="商业费用(渠道):">
+              <el-input v-model="mateform.cipCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="交强费用(保司):">
+              <el-input :disabled="true" v-model="mateform.mliftaCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="交强费用(渠道):">
+              <el-input v-model="mateform.mliftaCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车船税费用(保司):">
+              <el-input :disabled="true" v-model="mateform.vavtCost2" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="车船税费用(渠道):">
+              <el-input v-model="mateform.vavtCost1" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogBVatchUpdata = false">取消修改</el-button>
+        <el-button size="small" type="primary" @click="mateSave()">确定修改</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -120,11 +319,11 @@ export default {
   mixins: [mixin],
   components: { templateTable },
   created() {
-    this.$api.cost.gainTopList().then(res => {
-      if (res.data) {
-        this.InsCompanyList = res.data;
-      }
-    });
+    // this.$api.cost.gainTopList().then(res => {
+    //   if (res.data) {
+    //     this.InsCompanyList = res.data;
+    //   }
+    // });
     this.getList()
   },
   data() {
@@ -145,24 +344,26 @@ export default {
       dialogBVatchUpdata: false,
       tableData: [],
       dialogBVatch: false,
+      batchNumDetailId: 0,
+      mateData: [],
+      mateform:{},
+      dialogMateVisible:false,
+      isDisabled:false,
+      matchPage1: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      matchPage2: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      Unmatched: [],
+
     };
   },
   methods: {
-    // 查询
-    queryStaffInfo() {
-      if (
-        this.queryBatchFrom.importTime == undefined ||
-        this.queryBatchFrom.importTime == null ||
-        this.queryBatchFrom.importTime == ""
-      ) {
-        (this.queryBatchFrom.importStartTime = ""),
-          (this.queryBatchFrom.importEndTime = "");
-      } else {
-        this.queryBatchFrom.importStartTime = this.queryBatchFrom.importTime[0];
-        this.queryBatchFrom.importEndTime = this.queryBatchFrom.importTime[1];
-      }
-      this.getList();
-    },
     closdialogBVatchVisible() {
       this.dialogBVatch = false
     },
@@ -212,7 +413,7 @@ export default {
       this.tableConfig.loading = true;
       this.$api.cost
         .getchanneQueryPageDetails({
-          ...this.queryBatchFrom, ...data
+          ...this.queryBatchFrom, dto:data
         })
         .then(res => {
           this.tableData = res.data.content;
@@ -234,17 +435,6 @@ export default {
       });
     },
     handleSearchList(data) {
-      if (
-        data.importTime == undefined ||
-        data.importTime == null ||
-        data.importTime == ""
-      ) {
-        (data.importStartTime = ""),
-          (data.importEndTime = "");
-      } else {
-        data.importStartTime = data.importTime[0];
-        data.importEndTime = data.importTime[1];
-      }
       this.getList(data)
     },
     tablePageBatchChange(val) {
@@ -295,11 +485,113 @@ export default {
     // 重新导入
     reImportFun(row) {
       this.batchNum = row.id;
-    }
+    },
+    mateFun(row) {
+      this.dialogMateVisible = true;
+      this.batchNumDetailId=row.id
+      this.mate1(row.id)
+      this.mate2(row.id)
+    },
+     // 匹配页面
+     mate1(batchNum){
+      this.$api.cost.getChannelMatchingIns({batchNum,isMatch:1,...this.matchPage1}).then(res => {
+        if (res.code == 200 && res.data) {
+          this.mateData = res.data.content;
+          this.matchPage1.pageNum=res.data.pageNum
+          this.matchPage1.pageSize=res.data.pageSize
+          this.matchPage1.totalSize=res.data.totalSize
+        }
+      });
+    },
+    mate2(batchNum){
+      this.$api.cost.getChannelMatchingIns({batchNum,isMatch:0,...this.matchPage2}).then(res => {
+        if (res.code == 200 && res.data) {
+          if(res.data.content&&res.data.content.length>0){
+            this.isDisabled=true
+          }
+          else{
+            this.isDisabled=false
+          }
+          this.Unmatched = res.data.content;
+          this.matchPage2.pageNum=res.data.pageNum
+          this.matchPage2.pageSize=res.data.pageSize
+          this.matchPage2.totalSize=res.data.totalSize
+        }
+      });
+    },
+   
+    closdialogBVatceVisible() {
+      this.dialogBVatchUpdata = false;
+    },
+    closdialogMateVisible(){
+      this.dialogMateVisible = false;
+    },
+    closdialogBVatchVisible(){
+      this.dialogBVatch = false;
+    },
+    mateSave(){
+      let obj={
+        cip:this.mateform.cip1,
+        mlifta:this.mateform.mlifta1,
+        vavt:this.mateform.vavt1,
+        id:this.mateform.id
+      }
+      this.$api.cost
+        .getchanneEdit(obj)
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogBVatchUpdata = false;
+            this.mate2(this.batchNumDetailId)
+          }
+        });
+    },
+    tableCurrentmatch2Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate2(this.batchNumDetailId);
+    },
+    tableCurrentmatch1Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate1(this.batchNumDetailId);
+    },
+    tablePagematch1Change(val) {
+      this.matchPage1.pageSize = val;
+      this.mate1(this.batchNumDetailId);
+    },
+    tablePagematch2Change(val) {
+      this.matchPage2.pageSize = val;
+      this.mate2(this.batchNumDetailId);
+      
+    },
   }
 };
 </script>
 
 <style scoped>
+.detailStyle {
+  color: #666;
+  font-size: 16px;
+  margin-bottom: 20px;
+}
+
+.batchStyle {
+  cursor: pointer;
+}
+
+.batchStyle:hover {
+  color: #8b0000;
+  text-decoration: underline;
+}
 
+.mate-title {
+  display: inline-block;
+  width: 150px;
+  line-height: 35px;
+  background-color: rgb(105, 186, 15);
+  text-align: center;
+  color: #fff;
+}
 </style>

+ 29 - 34
src/views/FinancialManagement/CostVerification/CostVerification.vue

@@ -117,8 +117,8 @@ export default {
       formList: [
         {
           label: "保险公司",
-          prop: "insCompanyId",
-          type: "company",
+          prop: "insCompanyIdList",
+          type: "companyCheck",
         },
         {
           label: "批次号",
@@ -126,12 +126,17 @@ export default {
           type: 'input'
         },
         {
-          label: "导入日期",
-          prop: "importTime",
-          type: "datePicker",
-          dateType: 'daterange'
+          label: "车牌号",
+          prop: "plateNum",
+          type: 'input'
         },
         // {
+        //   label: "导入日期",
+        //   prop: "importTime",
+        //   type: "datePicker",
+        //   dateType: 'daterange'
+        // },
+        // {
         //   label: "支付状态",
         //   prop: "status",
         //   type: 'select',
@@ -159,22 +164,25 @@ export default {
             name: 'id',
           },
           {
-            prop: 'insCompanyName', label: '保险公司', type: 'text',
+            prop: 'insCompany', label: '保险公司', type: 'text',
+          },
+          {
+            prop: 'plateNum', label: '车牌号', type: 'text',
           },
           {
             prop: 'mlifta', label: '交强险保费', type: 'text',
           },
           {
-            prop: 'vavt', label: '车船税', type: 'text',
-          }, {
+            prop: 'mliftaCost', label: '交强险费用', type: 'text',
+          },
+          {
+            prop: 'vavt', label: '车船税保费', type: 'text',
+          }, 
+          {
+            prop: 'vavtCost', label: '车船税费用', type: 'text',
+          },{
             prop: 'other', label: '其他保费', type: 'text',
-          }, {
-            prop: 'inventoryQuantity', label: '清单数量', type: 'text',
-          }, {
-            prop: 'createTime', label: '导入日期', type: 'text',
-          }, {
-            prop: 'createBy', label: '操作人', type: 'text',
-          }
+          }, 
         ],
         loading: true,
         isPaginationShow: true,
@@ -259,18 +267,13 @@ export default {
   },
   created() {
     this.getList();
-    this.$api.cost.gainTopList().then(res => {
-      if (res.data) {
-        this.InsCompanyList = res.data;
-      }
-    });
   },
   methods: {
     //列表数据
     getList(data) {
       this.tableConfig.loading = true;
-      this.$api.cost.getQueryPage({ ...data, ...this.page, flag: 1 }).then(res => {
-        if (res.data) {
+      this.$api.cost.multipleQueryPage({ dto:data, ...this.page, }).then(res => {
+        if (res.code==200) {
           this.tableData = res.data.content;
           this.page.pageNum = res.data.pageNum;
           this.page.pageSize = res.data.pageSize;
@@ -278,23 +281,15 @@ export default {
           this.tableConfig.loading = false;
 
         } else {
+          this.tableData=[]
+          this.$message.error(res.msg)
+          this.page.totalSize =0;
           this.tableConfig.loading = false;
         }
       });
     },
     // 查询
     handleSearchList(data) {
-      if (
-        data.importTime == undefined ||
-        data.importTime == null ||
-        data.importTime == ""
-      ) {
-        (data.importStartTime = ""),
-          (data.importEndTime = "");
-      } else {
-        data.importStartTime = data.importTime[0];
-        data.importEndTime = data.importTime[1];
-      }
       this.getList(data)
     },
     // 修改保存页面

+ 49 - 10
src/views/FinancialManagement/CostVerification/components/mixins.js

@@ -43,29 +43,67 @@ export const mixin = {
                     label: "付款日期"
                 }
             ],
+            columns1: [
+                {
+                  prop: "plateNum1",
+                  label: "车牌号"
+                },
+                {
+                  prop: "insured",
+                  label: "被保险人"
+                },
+                {
+                  prop: "insCoverage",
+                  label: "险种"
+                },
+                {
+                  prop: "mlifta1",
+                  label: "交强险保费"
+                },
+                {
+                  prop: "vavt1",
+                  label: "车船税"
+                },
+                {
+                  prop: "cip1",
+                  label: "商业保险费"
+                },
+                // {
+                //   prop: "other",
+                //   label: "其他保费"
+                // },
+                {
+                  prop: "payDate",
+                  label: "付款日期"
+                }
+              ],
             formList: [
                 {
-                    label: "导入日期:",
-                    prop: "importTime",
-                    type: "datePicker",
-                    dateType: 'daterange'
+                    label: "保险公司",
+                    prop: "insCompanyIds",
+                    type: "companyCheck",
+                },
+                {
+                    label: "付款日期",
+                    prop: "payDate",
+                    type: "date",
                 },
                 {
-                    label: "车牌号",
                     prop: "plateNum",
-                    type: 'input'
+                    label: "车牌号",
+                    type: 'input',
                 },
                 {
-                    prop: "insCoverage",
-                    label: "险种",
+                    prop: "outChannel",
+                    label: "出单渠道",
                     type: 'input',
                 },
             ],
             tableConfig: {
                 columns: [
                     {
-                        prop: "batchNum",
-                        label: "id",
+                        prop: "insCompany",
+                        label: "保险公司",
                         type: 'text',
                     },
                     // {
@@ -116,6 +154,7 @@ export const mixin = {
                 loading: true,
                 operateShow: true,
                 isPaginationShow: true,
+                isCheckBox:true
                 // operationWidth:'150'
                 // optBtns:[
                 //   {