소스 검색

费用核对

lihongxiao 3 년 전
부모
커밋
7dab4ddc8d

+ 3 - 1
src/config/global.js

@@ -15,7 +15,9 @@
 // export const h5BaseUrl = 'http://test.baoxianzhanggui.com:8091'  // h5测试
 // export const h5BaseUrl = 'http://test.baoxianzhanggui.com:8091'  // h5测试
 // export const baseUrl = 'http://www.baoxianzhanggui.com:8080'   
 // export const baseUrl = 'http://www.baoxianzhanggui.com:8080'   
 // 新服务器
 // 新服务器
-export const baseUrl = 'http://39.98.239.48/web-api' //测试服务器
+// export const baseUrl = 'http://39.98.239.48/web-api' //测试服务器
+export const baseUrl = 'http://192.168.0.111:8080' //测试服务器
+
 export const h5BaseUrl = 'http://39.98.239.48/h5'  //h5测试
 export const h5BaseUrl = 'http://39.98.239.48/h5'  //h5测试
 
 
 // export const baseUrl = 'http://sxzgkj.baoxianzhanggui.com/web-api' //正式服务器
 // export const baseUrl = 'http://sxzgkj.baoxianzhanggui.com/web-api' //正式服务器

+ 3 - 1
src/http/api.js

@@ -36,6 +36,7 @@ import * as task from './moudules/task.js'
 
 
 // 分销
 // 分销
 import * as retail from './moudules/retail.js'
 import * as retail from './moudules/retail.js'
+import * as cost from './moudules/cost.js'
 
 
 // 默认全部导出
 // 默认全部导出
 export default {
 export default {
@@ -65,5 +66,6 @@ export default {
     poster,
     poster,
     policy,
     policy,
     salary,
     salary,
-    letter
+    letter,
+    cost, //费用核对 
 }
 }

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

@@ -0,0 +1,96 @@
+import axios from '../axios'
+
+//获取保险公司下拉列表
+export const gainTopList = () => {
+    return axios({
+        url: "/esmInsCompany/gainTopList",
+        method: "get",
+    })
+}
+//excel导入接口
+export const importDataAdd = (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/importDataAdd",
+        method: "post",
+        data
+    })
+}
+//excel重新导入接口
+export const importDataEdit = (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/importDataEdit",
+        method: "post",
+        data
+    })
+}
+
+//保司列表
+export const getQueryPage = (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/queryPage",
+        method: "post",
+        data
+    })
+}
+//保司列表删除
+export const getDelete = (params) => {
+    return axios({
+        url: "/api/inv/insExternalBills/deleteByBatchNum",
+        method: "DELETE",
+        params
+    })
+}
+//保司列表修改
+export const getEdit = (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/edit",
+        method: "post",
+        data
+    })
+}
+//保司批次列表
+export const getQueryPageDetails= (data) => {
+    return axios({
+        url: "/api/inv/insExternalBillsDetails/queryPage",
+        method: "post",
+        data
+    })
+}
+//保司批次列表详情
+export const detailsById= (id) => {
+    return axios({
+        url: "/api/inv/insExternalBillsDetails/detailsById?id="+id,
+        method: "get",
+    })
+}
+//渠道批次列表
+export const getchanneQueryPageDetails= (data) => {
+    return axios({
+        url: '/api/inv/channelsExternalBillsDetails/queryPage',
+        method: "post",
+        data
+    })
+}
+//渠道批次列表详情
+export const detailschanneById= (id) => {
+    return axios({
+        url: "/api/inv/channelsExternalBillsDetails/detailsById?id="+id,
+        method: "get",
+    })
+}
+//渠道列表修改
+export const getchanneEdit = (data) => {
+    return axios({
+        url: "/api/inv/channelsExternalBillsDetails/edit",
+        method: "post",
+        data
+    })
+}
+//渠道数据-匹配列表
+export const getChannelMatchingIns= (data) => {
+    return axios({
+        url: "/api/inv/insExternalBills/channelMatchingIns",
+        method: "post",
+        data
+    })
+}

+ 617 - 0
src/views/FinancialManagement/CostVerification/Baosi.vue

@@ -0,0 +1,617 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- 顶部查询 -->
+    <el-row class="top">
+      <el-form v-model="queryFrom" label-width="95px" class="form">
+        <el-row>
+          <el-col :span="7">
+            <el-form-item label="导入日期:">
+              <el-date-picker
+                style="width:20vw"
+                v-model="queryFrom.importTime"
+                size="small"
+                type="datetimerange"
+                range-separator="至"
+                start-placeholder="起导入日期"
+                end-placeholder="止导入日期"
+                value-format="yyyy-MM-dd"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item  label=" " prop="importStatus">
+              <el-radio-group v-model="queryFrom.importStatus" style="width:165px">
+                <el-radio :label="1">已导入</el-radio>
+                <el-radio :label="0">未导入</el-radio>
+              </el-radio-group>
+              <!-- <el-checkbox-group v-model="queryFrom.importStatus">
+                                <el-checkbox label="已导入">已导入</el-checkbox>
+                                <el-checkbox label="未导入">未导入</el-checkbox>
+              </el-checkbox-group>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label-width="95px">
+              <el-button type="primary" size="small">模板下载</el-button>
+              <el-button type="primary" size="small" @click="importFun">excel导入</el-button>
+              <el-button type="primary" size="small" @click="queryStaffInfo">查询</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-row>
+
+    <!-- 表格 -->
+    <el-table
+      size="small"
+      :data="tableData"
+      height="590"
+      border
+      v-loading="loading"
+      highlight-current-row
+      stripe
+      ref="expandTable"
+      :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+    >
+      <el-table-column prop="id" label="批次号" align="center">
+        <template slot-scope="scope">
+          <span class="batchStyle" @click="redirectDetail(scope.row)">{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="insCompanyName" label="保险公司" align="center"></el-table-column>
+      <el-table-column prop="mlifta" label="交强险保费" align="center"></el-table-column>
+      <el-table-column prop="vavt" label="车船税" align="center"></el-table-column>
+      <el-table-column prop="other" label="其他保费" align="center"></el-table-column>
+      <el-table-column prop="inventoryQuantity" label="清单数量" align="center"></el-table-column>
+      <el-table-column prop="createTime" label="导入日期" align="center"></el-table-column>
+      <el-table-column prop="createBy" label="操作人" align="center"  width="80"    ></el-table-column>
+      <el-table-column prop="importStatus" label="导入状态" align="center" width="80">
+        <template slot-scope="scope">
+          <span v-if="scope.row.importStatus == 1" style="color: green;">成功</span>
+          <span v-if="scope.row.importStatus == 0" style="color: red;">失败</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="错误信息" label="错误信息" align="center">
+        <template slot-scope="scope">
+          <el-popover
+            placement="bottom"
+            v-if="scope.row.importStatus == 0"
+            width="200"
+            trigger="click"
+            :content="scope.row.errorMsg"
+          >
+            <el-button slot="reference" type="primary" size="small">查看</el-button>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" min-width="100">
+        <template slot-scope="scope">
+          <el-button
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="modifyFun(scope.row)"
+          >修改</el-button>
+          <el-button
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="deleteFun(scope.row)"
+          >删除</el-button>
+          <div style="display: inline-block;">
+            <el-upload
+              class="upload"
+              ref="reUpload"
+              :show-file-list="false"
+              :limit="1"
+              action="#"
+              :http-request="reCarfrontChange"
+              :multiple="false"
+            >
+              <el-button
+                v-if="scope.row.importStatus == 0"
+                size="mini"
+                type="primary"
+                @click="reImportFun(scope.row)"
+              >重新导入</el-button>
+            </el-upload>
+          </div>
+
+          <!-- <el-button v-if="scope.row.importStatus == 0" size="mini" type="primary"
+          @click="reImportFun(scope.row)">重新导入</el-button>-->
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePageChange"
+        @current-change="tableCurrentChange"
+        :current-page="queryFrom.pageNum"
+        :page-size="queryFrom.pageSize"
+        :page-sizes="[20, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="queryFrom.totalSize"
+      ></el-pagination>
+    </div>
+    <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-select v-model="formData.insCompanyId" placeholder="请选择保险公司" filterable>
+                  <el-option
+                    v-for="(InsCompanyitem, InsCompanyindex) in InsCompanyList"
+                    :key="InsCompanyindex"
+                    :label="InsCompanyitem.name"
+                    :value="InsCompanyitem.id"
+                  ></el-option>
+                </el-select>
+              </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.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="dialogBVatchVisible"
+      width="80%"
+      @close="closeBVatchVisibleVisible"
+    >
+      <div class="detailStyle">
+        <el-row>
+          <el-col :span="4">交强险保费:{{formDetailData.mlifta}}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">商业险保费:{{ formDetailData.cip }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row style="margin:20px 0">
+          <el-col :span="4">车船税:{{ formDetailData.vavt }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">其他保费:{{ formDetailData.other }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="16" style="text-align: center;">合计手续费:</el-col>
+        </el-row>
+      </div>
+      <el-table
+        size="small"
+        :data="batchData"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" min-width="60">
+          <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="tablePageBatchChange"
+          @current-change="tableCurrentBatchChange"
+          :current-page="queryBatchFrom.pageNum"
+          :page-size="queryBatchFrom.pageSize"
+          :page-sizes="[20, 30, 50, 100]"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="queryBatchFrom.totalSize"
+        ></el-pagination>
+      </div>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      title="详情"
+      :visible.sync="dialogBVatch"
+      width="60%"
+      @close="closdialogBVatceVisible"
+    >
+      <el-row style="margin-bottom:20px">
+        <el-col :span="8">批次号:{{ formBatchDetailData.batchNum }}</el-col>
+        <el-col :span="4">保险公司:中煤保险</el-col>
+        <el-col :span="8">保单号:{{ formBatchDetailData.policyNum }}</el-col>
+        <el-col :span="4">车牌号:{{ formBatchDetailData.plateNum }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">被保险人:{{ formBatchDetailData.insured }}</el-col>
+        <el-col :span="4">险种:{{ formBatchDetailData.insKindName }}</el-col>
+        <el-col :span="8">付款日期:{{ formBatchDetailData.payDate }}</el-col>
+      </el-row>
+      <el-row style="margin:40px 0 20px 0">
+        <el-col :span="8">交强险保费:{{ formBatchDetailData.mlifta }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">商业险保费:{{ formBatchDetailData.cip }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">车船税:{{ formBatchDetailData.vavt }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">其他保费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+    </el-dialog>
+    <el-dialog v-dialogDrag :visible.sync="dialogImport" width="30%" @close="closeImportVisible">
+      保险公司 :
+      <el-select v-model="InsCompany" placeholder="请选择保险公司" style="width:300px" filterable>
+        <el-option
+          v-for="(InsCompanyitem, InsCompanyindex) in InsCompanyList"
+          :key="InsCompanyindex"
+          :label="InsCompanyitem.name"
+          :value="InsCompanyitem.id"
+        ></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogImport = false">取 消</el-button>
+        <div style="display:inline-block">
+          <el-upload
+            class="upload"
+            ref="upload"
+            :show-file-list="false"
+            :limit="1"
+            action="#"
+            :before-upload="beforeAvatarUpload"
+            :http-request="carfrontChange"
+            :multiple="false"
+          >
+            <el-button size="small" type="primary" @click="dialogImport = false">确 定</el-button>
+          </el-upload>
+        </div>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import batchDialog from './components/batchDialog.vue'
+export default {
+  name: "baosi",
+  components: { batchDialog },
+  created() {
+    this.$api.cost.gainTopList().then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.getList();
+  },
+  data() {
+    return {
+      InsCompanyList: [],
+      queryFrom: {
+        importTime: "",
+        importStartTime: "",
+        importEndTime: "",
+        importStatus: "",
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      queryBatchFrom: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      batchNum: 0,
+      batchNumId: 0,
+      tableData: [],
+      loading: false,
+      formData: {},
+      formDetailData: {},
+      formBatchDetailData: {},
+      dialogVisible: false,
+      dialogBVatchVisible: false,
+      columns: [
+        {
+          prop: "batchNum",
+          label: "批次号"
+        },
+        {
+          prop: "policyNum",
+          label: "保单号"
+        },
+        {
+          prop: "plateNum",
+          label: "车牌号"
+        },
+        {
+          prop: "insured",
+          label: "被保险人"
+        },
+        {
+          prop: "insKindName",
+          label: "险种"
+        },
+        {
+          prop: "mlifta",
+          label: "交强险保费"
+        },
+        {
+          prop: "vavt",
+          label: "车船税"
+        },
+        {
+          prop: "cip",
+          label: "商业保险费"
+        },
+        {
+          prop: "other",
+          label: "其他保费"
+        },
+        {
+          prop: "payDate",
+          label: "付款日期"
+        }
+      ],
+      batchData: [],
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      dialogBVatch: false,
+      dialogImport: false,
+      InsCompany: "",
+      fileList: []
+    };
+  },
+  methods: {
+    // 查询
+    queryStaffInfo() {
+      if (
+        this.queryFrom.importTime == undefined ||
+        this.queryFrom.importTime == null ||
+        this.queryFrom.importTime == ""
+      ) {
+        (this.queryFrom.importStartTime = ""),
+          (this.queryFrom.importEndTime = "");
+      } else {
+        this.queryFrom.importStartTime = this.queryFrom.importTime[0];
+        this.queryFrom.importEndTime = this.queryFrom.importTime[1];
+      }
+      this.getList();
+    },
+    //列表数据
+    getList() {
+      this.loading = true;
+      this.$api.cost.getQueryPage({ ...this.queryFrom, flag: 1 }).then(res => {
+        if (res.data) {
+          this.tableData = res.data.content;
+          this.queryFrom.pageNum = res.data.pageNum;
+          this.queryFrom.pageSize = res.data.pageSize;
+          this.queryFrom.totalSize = res.data.totalSize;
+          this.loading = false;
+        } else {
+          this.loading = false;
+        }
+      });
+    },
+    deleteFun(row) {
+      this.$confirm("确认删除?")
+        .then(() => {
+          let obj={
+            batchNum:row.id,
+            flag:1
+          }
+          this.$api.cost.getDelete(obj).then(res => {
+            if (res.code == 200) {
+              this.$message({
+                message: "删除成功",
+                type: "success"
+              });
+              this.getList();
+            }
+          });
+        })
+        .catch(() => {});
+    },
+
+    // 修改保存页面
+    comfirmDialog() {
+      let insCompanyName = this.InsCompanyList.filter(
+        val => val.id == this.formData.insCompanyId
+      )[0].name;
+      this.$api.cost
+        .getEdit({ ...this.formData, insCompanyName, id: this.batchNum,flag:1 })
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogVisible = false;
+            this.getList();
+          }
+        });
+    },
+    // 修改页面
+    modifyFun(row) {
+      this.dialogVisible = true;
+      this.batchNum = row.id;
+      this.formData = {
+        insCompanyId: row.insCompanyId,
+        mlifta: row.mlifta,
+        vavt: row.vavt,
+        other: row.other,
+        inventoryQuantity: row.inventoryQuantity
+      };
+    },
+    closeVisible() {
+      this.dialogVisible = false;
+    },
+    closeBVatchVisibleVisible() {
+      this.dialogBVatchVisible = false;
+    },
+    closdialogBVatceVisible() {
+      this.dialogBVatch = false;
+    },
+    getBachList() {
+      this.$api.cost
+        .getQueryPageDetails({
+          batchNum: this.batchNumId,
+          ...this.queryBatchFrom,
+        })
+        .then(res => {
+          this.batchData = res.data.content;
+          this.queryBatchFrom.pageNum = res.data.pageNum;
+          this.queryBatchFrom.pageSize = res.data.pageSize;
+          this.queryBatchFrom.totalSize = res.data.totalSize;
+        });
+    },
+    // 批次详情列表
+    redirectDetail(row) {
+      // this.$refs.batchDialog.open()
+      this.dialogBVatchVisible = true;  
+      this.formDetailData = row;
+      this.batchNumId = row.id;
+      this.getBachList();
+    },
+
+    // 批次详情查看接口
+    detailBatchFun(row) {
+      let id = row.id;
+      this.dialogBVatch = true;
+      this.$api.cost.detailsById(id).then(res => {
+        if (res.code == 200) {
+          this.formBatchDetailData = res.data;
+        }
+      });
+    },
+    handleTableDetail() {
+      this.dialogBVatchVisible = true;
+    },
+    // 选中保险公司
+    InsCompanychange(e) {
+      console.log(e);
+    },
+    importFun() {
+      this.dialogImport = true;
+      this.InsCompany = "";
+      this.$refs.upload.clearFiles();
+    },
+    // 重新导入
+    reImportFun(row) {
+      this.batchNum = row.id;
+    },
+    reCarfrontChange(file) {
+      const params = new FormData(); // 声明formData数据类型
+      params.append("file", file.file);
+      params.append("flag", "1");
+      params.append("batchNum", this.batchNum);
+      this.$api.cost.importDataEdit(params).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    closeImportVisible() {
+      this.dialogImport = false;
+    },
+    tablePageChange(val) {
+      this.queryFrom.pageSize = val;
+      this.getList();
+    },
+    tableCurrentChange(val) {
+      this.queryFrom.pageNum = val;
+      this.getList();
+    },
+    tablePageBatchChange(val) {
+      this.queryFrom.pageSize = val;
+      this.getBachList();
+    },
+    tableCurrentBatchChange(val) {
+      this.queryFrom.pageNum = val;
+      this.getBachList();
+    },
+    beforeUpload() {},
+    // excel导入前限制
+    beforeAvatarUpload() {},
+    // excel导入
+    carfrontChange(file) {
+      if (!this.InsCompany) {
+        this.$refs.upload.clearFiles();
+        this.$message.warning("请先选择保险公司!!!");
+        return;
+      }
+      const params = new FormData(); // 声明formData数据类型
+      params.append("file", file.file);
+      params.append("flag", "1");
+      params.append("insCompanyId", this.InsCompany);
+      this.$api.cost.importDataAdd(params).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.getList();
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    }
+  }
+};
+</script>
+  
+<style scoped>
+.detailStyle {
+  color: #666;
+  font-size: 16px;
+  margin-bottom: 20px;
+}
+.batchStyle {
+  cursor: pointer;
+}
+.batchStyle:hover {
+  color: #8b0000;
+  text-decoration: underline;
+}
+</style>
+  

+ 841 - 0
src/views/FinancialManagement/CostVerification/Channel.vue

@@ -0,0 +1,841 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- 顶部查询 -->
+    <el-row class="top">
+      <el-form v-model="queryFrom" label-width="95px" class="form">
+        <el-row>
+          <el-col :span="7">
+            <el-form-item label="导入日期:">
+              <el-date-picker
+                v-model="queryFrom.importTime"
+                size="small"
+                type="datetimerange"
+                range-separator="至"
+                start-placeholder="起导入日期"
+                end-placeholder="止导入日期"
+                value-format="yyyy-MM-dd"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label-width="95px">
+              <el-button type="primary" size="small">模板下载</el-button>
+              <div style="display:inline-block;margin:0 10px">
+                <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>
+              <el-button type="primary" size="small" @click="queryStaffInfo">查询</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-row>
+
+    <!-- 表格 -->
+    <el-table
+      size="small"
+      :data="tableData"
+      height="590"
+      border
+      v-loading="loading"
+      highlight-current-row
+      stripe
+      ref="expandTable"
+      :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+    >
+      <el-table-column prop="id" label="批次号" align="center">
+        <template slot-scope="scope">
+          <span class="batchStyle" @click="redirectDetail(scope.row)">{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="enterpriseName" label="出单渠道" align="center"></el-table-column>
+      <el-table-column prop="mlifta" label="交强险保费" align="center"></el-table-column>
+      <el-table-column prop="vavt" label="车船税" align="center"></el-table-column>
+      <el-table-column prop="cip" label="商业险保费" align="center"></el-table-column>
+      <el-table-column prop="other" label="其他保费" align="center"></el-table-column>
+      <el-table-column prop="inventoryQuantity" label="清单数量" align="center"></el-table-column>
+      <el-table-column prop="createTime" label="导入日期" align="center"></el-table-column>
+      <el-table-column prop="createBy" label="操作人" align="center"></el-table-column>
+      <el-table-column prop="importStatus" label="导入状态" align="center" width="80">
+        <template slot-scope="scope">
+          <span v-if="scope.row.importStatus == 1" style="color: green;">成功</span>
+          <span v-if="scope.row.importStatus == 0" style="color: red;">失败</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="错误信息" label="错误信息" align="center">
+        <template slot-scope="scope">
+          <el-popover
+            placement="bottom"
+            v-if="scope.row.importStatus == 0"
+            width="200"
+            trigger="click"
+            :content="scope.row.errorMsg"
+          >
+            <el-button slot="reference" type="primary" size="small">查看</el-button>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" min-width="150"  >
+        <template slot-scope="scope">
+          <el-button
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="mateFun(scope.row)"
+          >匹配</el-button>
+          <!-- <el-button
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="modifyFun(scope.row)"
+          >修改</el-button> -->
+          <el-button
+            v-if="scope.row.importStatus == 1"
+            size="mini"
+            type="primary"
+            @click="deleteFun( scope.row)"
+          >删除</el-button>
+          <div style="display: inline-block;">
+            <el-upload
+              class="upload"
+              ref="reUpload"
+              :show-file-list="false"
+              :limit="1"
+              action="#"
+              :http-request="reCarfrontChange"
+              :multiple="false"
+            >
+              <el-button
+                v-if="scope.row.importStatus == 0"
+                size="mini"
+                type="primary"
+                @click="reImportFun(scope.row)"
+              >重新导入</el-button>
+            </el-upload>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePageChange"
+        @current-change="tableCurrentChange"
+        :current-page="queryFrom.pageNum"
+        :page-size="queryFrom.pageSize"
+        :page-sizes="[20, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="queryFrom.totalSize"
+      ></el-pagination>
+    </div>
+    <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="dialogBVatchVisible"
+      width="80%"
+      @close="closeBVatchVisibleVisible"
+    >
+      <div class="detailStyle">
+        <el-row>
+          <el-col :span="4">交强险保费:{{formDetailData.mlifta}}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">商业险保费:{{ formDetailData.cip }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row style="margin:20px 0">
+          <el-col :span="4">车船税:{{ formDetailData.vavt }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">其他保费:{{ formDetailData.other }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="16" style="text-align: center;">合计手续费:</el-col>
+        </el-row>
+      </div>
+      <el-table
+        size="small"
+        :data="batchData"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" min-width="60">
+          <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="tablePageBatchChange"
+          @current-change="tableCurrentBatchChange"
+          :current-page="queryBatchFrom.pageNum"
+          :page-size="queryBatchFrom.pageSize"
+          :page-sizes="[20, 30, 50, 100]"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="queryBatchFrom.totalSize"
+        ></el-pagination>
+      </div>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      title="详情"
+      :visible.sync="dialogBVatch"
+      width="60%"
+      @close="closdialogBVatchVisible"
+    >
+      <el-row style="margin-bottom:20px">
+        <el-col :span="8">批次号:{{ formBatchDetailData.batchNum }}</el-col>
+        <el-col :span="4">保险公司:中煤保险</el-col>
+        <el-col :span="8">保单号:{{ formBatchDetailData.policyNum }}</el-col>
+        <el-col :span="4">车牌号:{{ formBatchDetailData.plateNum }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">被保险人:{{ formBatchDetailData.insured }}</el-col>
+        <el-col :span="4">险种:{{ formBatchDetailData.insKindName }}</el-col>
+        <el-col :span="8">付款日期:{{ formBatchDetailData.payDate }}</el-col>
+      </el-row>
+      <el-row style="margin:40px 0 20px 0">
+        <el-col :span="8">交强险保费:{{ formBatchDetailData.mlifta }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">商业险保费:{{ formBatchDetailData.cip }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">车船税:{{ formBatchDetailData.vavt }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">其他保费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</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="fieldName1"></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="dialogMateVisible=false">确定领取</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-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>
+
+export default {
+  name: "channel",
+  created() {
+    this.$api.cost.gainTopList().then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.getList();
+  },
+  data() {
+    return {
+      mateform: {},
+      InsCompany: "",
+      InsCompanyList: [],
+      queryFrom: {
+        importTime: "",
+        importStartTime: "",
+        importEndTime: "",
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      queryBatchFrom: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      matchPage1: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      matchPage2: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0
+      },
+      batchNum: 0,
+      batchNumId: 0,
+      tableData: [],
+      loading: false,
+      formData: {},
+      formDetailData: {},
+      formBatchDetailData: {},
+      dialogVisible: false,
+      dialogBVatchVisible: false,
+      dialogBVatchUpdata: false,
+      columns: [
+        {
+          prop: "batchNum",
+          label: "批次号"
+        },
+        {
+          prop: "policyNum",
+          label: "保单号"
+        },
+        {
+          prop: "plateNum",
+          label: "车牌号"
+        },
+        {
+          prop: "insured",
+          label: "被保险人"
+        },
+        {
+          prop: "insKindName",
+          label: "险种"
+        },
+        {
+          prop: "mlifta",
+          label: "交强险保费"
+        },
+        {
+          prop: "vavt",
+          label: "车船税"
+        },
+        {
+          prop: "cip",
+          label: "商业保险费"
+        },
+        {
+          prop: "other",
+          label: "其他保费"
+        },
+        {
+          prop: "payDate",
+          label: "付款日期"
+        }
+      ],
+      columns1: [
+        {
+          prop: "plateNum1",
+          label: "车牌号"
+        },
+        {
+          prop: "insured",
+          label: "被保险人"
+        },
+        {
+          prop: "insKindName",
+          label: "险种"
+        },
+        {
+          prop: "mlifta1",
+          label: "交强险保费"
+        },
+        {
+          prop: "vavt1",
+          label: "车船税"
+        },
+        {
+          prop: "cip1",
+          label: "商业保险费"
+        },
+        {
+          prop: "other",
+          label: "其他保费"
+        },
+        {
+          prop: "payDate",
+          label: "付款日期"
+        }
+      ],
+      batchData: [],
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      dialogBVatch: false,
+      dialogMateVisible: false,
+      mateData: [],
+      Unmatched: [],
+      isDisabled:false
+    };
+  },
+  methods: {
+    //列表数据
+    getList() {
+      this.loading = true;
+      this.$api.cost.getQueryPage({ ...this.queryFrom, flag: 2 }).then(res => {
+        if (res.data) {
+          this.tableData = res.data.content;
+          this.queryFrom.pageNum = res.data.pageNum;
+          this.queryFrom.pageSize = res.data.pageSize;
+          this.queryFrom.totalSize = res.data.totalSize;
+          this.loading = false;
+        } else {
+          this.loading = false;
+        }
+      });
+    },
+    // 查询
+    queryStaffInfo() {
+      if (
+        this.queryFrom.importTime == undefined ||
+        this.queryFrom.importTime == null ||
+        this.queryFrom.importTime == ""
+      ) {
+        (this.queryFrom.importStartTime = ""),
+          (this.queryFrom.importEndTime = "");
+      } else {
+        this.queryFrom.importStartTime = this.queryFrom.importTime[0];
+        this.queryFrom.importEndTime = this.queryFrom.importTime[1];
+      }
+      this.getList();
+    },
+    // 修改保存页面
+    comfirmDialog() {
+      this.$api.cost
+        .getchanneEdit(this.formData)
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogVisible = false;
+            this.getList();
+          }
+        });
+    },
+    // 修改页面
+    modifyFun(row) {
+      this.dialogVisible = true;
+      this.formData = row;
+    },
+    // 删除
+    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;
+    },
+    closeBVatchVisibleVisible() {
+      this.dialogBVatchVisible = false;
+    },
+    closdialogBVatceVisible() {
+      this.dialogBVatchUpdata = false;
+    },
+    closdialogMateVisible(){
+      this.dialogMateVisible = false;
+    },
+    closdialogBVatchVisible(){
+      this.dialogBVatch = false;
+    },
+    getBachList() {
+      this.$api.cost
+        .getchanneQueryPageDetails({
+          batchNum: this.batchNumId,
+          ...this.queryBatchFrom
+        })
+        .then(res => {
+          this.batchData = res.data.content;
+          this.queryBatchFrom.pageNum = res.data.pageNum;
+          this.queryBatchFrom.pageSize = res.data.pageSize;
+          this.queryBatchFrom.totalSize = res.data.totalSize;
+        });
+    },
+    // 批次详情列表
+    redirectDetail(row) {
+      this.dialogBVatchVisible = true;
+      this.formDetailData = row;
+      this.batchNumId = row.id;
+      this.getBachList();
+    },
+
+    // 批次详情查看接口
+    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;
+        }
+      });
+    },
+    handleTableDetail() {
+      this.dialogBVatchVisible = true;
+    },
+    beforeUpload() {},
+    httpRequest() {},
+    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()
+          }
+        });
+    },
+    // 匹配页面
+    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
+        }
+      });
+    },
+    mateFun(row) {
+      this.dialogMateVisible = true;
+      this.mate1(row.id)
+      this.mate2(row.id)
+    },
+    handleUnmatchedFun(row) {
+      this.dialogBVatchUpdata = true;
+      this.mateform=row
+    },
+    tablePageChange(val) {
+      this.queryFrom.pageSize = val;
+      this.getList();
+    },
+    tableCurrentChange(val) {
+      this.queryFrom.pageNum = val;
+      this.getList();
+    },
+    tablePageBatchChange(val) {
+      this.queryFrom.pageSize = val;
+      this.getBachList();
+    },
+    tableCurrentBatchChange(val) {
+      this.queryFrom.pageNum = val;
+      this.getBachList();
+    },
+    tablePagematch1Change(val) {
+      this.matchPage1.pageSize = val;
+      this.mate1();
+    },
+    tableCurrentmatch1Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate1();
+    },
+    tablePagematch2Change(val) {
+      this.matchPage2.pageSize = val;
+      this.mate2();
+    },
+    tableCurrentmatch2Change(val) {
+      this.matchPage2.pageNum = val;
+      this.mate2();
+    },
+    uploadImport(file, jiekou,isId,) {
+      const params = new FormData(); // 声明formData数据类型
+      params.append("file", file.file);
+      params.append("flag", "2");
+      if (isId) {
+        params.append("batchNum", this.batchNum);
+      }
+      jiekou(params).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            message: res.msg,
+            type: "success"
+          });
+          this.getList();
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    // excel导入
+    carfrontChange(file) {
+      this.uploadImport(file,this.$api.cost.importDataAdd);
+    },
+    reCarfrontChange(file) {
+      this.uploadImport(file, this.$api.cost.importDataEdit,1);
+    },
+    // 重新导入
+    reImportFun(row) {
+      this.batchNum = row.id;
+    }
+  }
+};
+</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>

+ 491 - 0
src/views/FinancialManagement/CostVerification/CostVerification.vue

@@ -0,0 +1,491 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- 顶部查询 -->
+    <el-row class="top">
+      <el-form v-model="queryFrom" label-width="95px" class="form">
+        <el-row>
+          <el-col :span="4">
+            <el-form-item label="保险公司:">
+              <el-select v-model="queryFrom.insCompanyId" placeholder="请选择保险公司" filterable>
+                <el-option
+                  v-for="(InsCompanyitem, InsCompanyindex) in InsCompanyList"
+                  :key="InsCompanyindex"
+                  :label="InsCompanyitem.name"
+                  :value="InsCompanyitem.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="出单渠道:">
+              <el-input clearable size="small" placeholder="请输入出单渠道" v-model="queryFrom.出单渠道"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="业务渠道:">
+              <el-input clearable size="small" placeholder="请输入业务渠道" v-model="queryFrom.业务渠道"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="车牌号:">
+              <el-input clearable size="small" placeholder="请输入车牌号" v-model="queryFrom.plateNum"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="导入日期:">
+              <el-date-picker
+                clearable
+                size="small"
+                style="width: 100%;"
+                v-model="queryFrom.importTime"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="请输入开始日期"
+                end-placeholder="请输入结束日期"
+                value-format="yyyy-MM-dd"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="签单日期:">
+              <el-date-picker
+                clearable
+                size="small"
+                style="width: 100%;"
+                v-model="queryFrom.签单日期"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="请输入开始日期"
+                end-placeholder="请输入结束日期"
+                value-format="yyyy-MM-dd"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="领取状态:">
+              <el-select size="small" clearable v-model="queryFrom.领取状态" placeholder="请选择领取状态">
+                <el-option label="已领取" value="1"></el-option>
+                <el-option label="未领取" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="批次号:">
+              <el-input clearable size="small" placeholder="请输入批次号" v-model="queryFrom.id"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item label="支付状态:">
+              <el-select size="small" clearable v-model="queryFrom.支付状态" placeholder="请选择支付状态">
+                <el-option label="已支付" value="1"></el-option>
+                <el-option label="未支付" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-form-item>
+              <el-button type="primary" size="small" @click="queryStaffInfo">查询</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-row>
+
+    <!-- 表格 -->
+    <el-table
+      size="small"
+      :data="tableData"
+      height="590"
+      border
+      v-loading="loading"
+      highlight-current-row
+      stripe
+      ref="expandTable"
+      :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+    >
+      <el-table-column prop="id" label="批次号" align="center">
+        <template slot-scope="scope">
+          <span class="batchStyle" @click="redirectDetail(scope.row)">{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="insCompanyName" label="保险公司" align="center"></el-table-column>
+      <el-table-column prop="mlifta" label="交强险保费" align="center"></el-table-column>
+      <el-table-column prop="vavt" label="车船税" align="center"></el-table-column>
+      <el-table-column prop="other" label="其他保费" align="center"></el-table-column>
+      <el-table-column prop="inventoryQuantity" label="清单数量" align="center"></el-table-column>
+      <el-table-column prop="createTime" label="导入日期" align="center"></el-table-column>
+      <el-table-column prop="createBy" label="操作人" align="center"></el-table-column>
+      <el-table-column prop="orderno" label="跟单费用" align="center"></el-table-column>
+      <el-table-column prop="orderno" label="支付日期" align="center"></el-table-column>
+      <el-table-column label="操作" align="center" min-width="100">
+        <template slot-scope="scope">
+          <el-button size="mini" type="primary" @click="modifyFun(scope.row)">修改</el-button>
+          <el-button size="mini" type="primary" @click="deleteFun( scope.row)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页功能 -->
+    <div class="block">
+      <el-pagination
+        @size-change="tablePageChange"
+        @current-change="tableCurrentChange"
+        :current-page="page.pageNum"
+        :page-size="page.pageSize"
+        :page-sizes="[20, 30, 50, 100]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="page.totalSize"
+      ></el-pagination>
+    </div>
+    <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-select v-model="formData.insCompanyId" placeholder="请选择保险公司" filterable>
+                  <el-option
+                    v-for="(InsCompanyitem, InsCompanyindex) in InsCompanyList"
+                    :key="InsCompanyindex"
+                    :label="InsCompanyitem.name"
+                    :value="InsCompanyitem.id"
+                  ></el-option>
+                </el-select>
+              </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.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="dialogBVatchVisible"
+      width="80%"
+      @close="closeBVatchVisibleVisible"
+    >
+      <div class="detailStyle">
+        <el-row>
+          <el-col :span="4">交强险保费:{{formDetailData.mlifta}}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">商业险保费:{{ formDetailData.cip }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row style="margin:20px 0">
+          <el-col :span="4">车船税:{{ formDetailData.vavt }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">其他保费:{{ formDetailData.other }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="16" style="text-align: center;">合计手续费:</el-col>
+        </el-row>
+      </div>
+      <el-table
+        size="small"
+        :data="batchData"
+        height="590"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns">
+          <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.$index, scope.row)"
+            >详情</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      title="详情"
+      :visible.sync="dialogBVatch"
+      width="60%"
+      @close="closdialogBVatceVisible"
+    >
+      <el-row style="margin-bottom:20px">
+        <el-col :span="8">批次号:{{ formBatchDetailData.batchNum }}</el-col>
+        <el-col :span="4">保险公司:中煤保险</el-col>
+        <el-col :span="8">保单号:{{ formBatchDetailData.policyNum }}</el-col>
+        <el-col :span="4">车牌号:{{ formBatchDetailData.plateNum }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">被保险人:{{ formBatchDetailData.insured }}</el-col>
+        <el-col :span="4">险种:{{ formBatchDetailData.insKindName }}</el-col>
+        <el-col :span="8">付款日期:{{ formBatchDetailData.payDate }}</el-col>
+      </el-row>
+      <el-row style="margin:40px 0 20px 0">
+        <el-col :span="8">交强险保费:{{ formBatchDetailData.mlifta }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">商业险保费:{{ formBatchDetailData.cip }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">车船税:{{ formBatchDetailData.vavt }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="8">其他保费:{{ formBatchDetailData.other }}</el-col>
+        <el-col :span="4">手续费:{{ formBatchDetailData.other }}</el-col>
+      </el-row>
+    </el-dialog>
+  </div>
+</template>
+<script>
+export default {
+  name: "costVerification",
+  created() {
+    this.getList();
+    this.$api.cost.gainTopList().then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+  },
+  data() {
+    return {
+      InsCompanyList: [],
+      queryFrom: {},
+      page: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      tableData: [
+        {
+          taxRate: "ZM-001",
+          错误信息: "111",
+          导入状态: 1
+        },
+        {
+          taxRate: "ZM-002",
+          错误信息: "111",
+          导入状态: 2
+        }
+      ],
+      loading: false,
+      formData: {},
+      formDetailData: {},
+      formBatchDetailData: {},
+      dialogVisible: false,
+      dialogBVatchVisible: false,
+      columns: [
+        {
+          prop: "fieldName1",
+          label: "批次号"
+        },
+        {
+          prop: "fieldName2",
+          label: "保单号"
+        },
+        {
+          prop: "fieldName1",
+          label: "车牌号"
+        },
+        {
+          prop: "fieldName1",
+          label: "被保险人"
+        },
+        {
+          prop: "fieldName1",
+          label: "险种"
+        },
+        {
+          prop: "fieldName1",
+          label: "交强险保费"
+        },
+        {
+          prop: "fieldName1",
+          label: "车船税"
+        },
+        {
+          prop: "fieldName1",
+          label: "商业保险费"
+        },
+        {
+          prop: "fieldName1",
+          label: "其他保费"
+        },
+        {
+          prop: "fieldName1",
+          label: "付款日期"
+        }
+      ],
+      batchData: [],
+      pageRequest: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      dialogBVatch: false,
+      InsCompany: "",
+      batchNum: 0
+    };
+  },
+  methods: {
+    //列表数据
+    getList() {
+      this.loading = true;
+      this.$api.cost.getQueryPage({...this.queryFrom,...this.page,flag:1}).then(res => {
+        if (res.data) {
+          this.tableData = res.data.content;
+          this.page.pageNum = res.data.pageNum;
+          this.page.pageSize = res.data.pageSize;
+          this.page.totalSize = res.data.totalSize;
+          this.loading = false;
+        } else {
+          this.loading = false;
+        }
+      });
+    },
+    // 查询
+    queryStaffInfo() {
+      if (
+        this.queryFrom.importTime||
+        this.queryFrom.importTime == undefined ||
+        this.queryFrom.importTime == null ||
+        this.queryFrom.importTime == ""
+      ) {
+        (this.queryFrom.importStartTime = ""),
+          (this.queryFrom.importEndTime = "");
+      } else {
+        this.queryFrom.importStartTime = this.queryFrom.importTime[0];
+        this.queryFrom.importEndTime = this.queryFrom.importTime[1];
+      }
+      this.getList();
+    },
+    // 修改保存页面
+    comfirmDialog() {
+      this.$api.cost
+        .getEdit({ ...this.formData, id: this.batchNum,flag:2 })
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "修改成功",
+              type: "success"
+            });
+            this.dialogVisible = false;
+            this.getList();
+          }
+        });
+    },
+    // 修改页面
+    modifyFun(row) {
+      this.dialogVisible = true;
+      this.batchNum = row.id;
+      this.formData = row;
+    },
+    // 删除
+    deleteFun(row) {
+      this.$confirm("确认删除?")
+        .then(() => {
+          this.$api.cost.getDelete({ id: row.id }).then(res => {
+            if (res.code == 200) {
+              this.$message({
+                message: "删除成功",
+                type: "success"
+              });
+              this.getList();
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    closeVisible() {
+      this.dialogVisible = false;
+    },
+    closeBVatchVisibleVisible() {
+      this.dialogBVatchVisible = false;
+    },
+    closdialogBVatceVisible() {
+      this.dialogBVatch = false;
+    },
+    // 批次详情
+    redirectDetail(row) {
+      this.dialogBVatchVisible = true;
+      this.findPage();
+    },
+    // 批次详情列表接口
+    findPage() {
+      this.$api.task
+        .queryOfflineExcel(this.pageRequest)
+        .then(res => {
+          this.batchData = res.data.content;
+          // this.totalSize = this.pageResult.totalSize;
+        })
+        .then(data != null ? data.callback : "");
+    },
+    // 批次详情查看接口
+    detailBatchFun(row) {
+      this.dialogBVatch = true;
+    },
+    tablePageChange(val) {
+      this.page.pageSize = val;
+      this.getList();
+    },
+    tableCurrentChange(val) {
+      this.page.pageNum = val;
+      this.getList();
+    }
+  }
+};
+</script>
+  
+<style scoped>
+.detailStyle {
+  color: #666;
+  font-size: 16px;
+  margin-bottom: 20px;
+}
+
+.batchStyle {
+  cursor: pointer;
+}
+
+.batchStyle:hover {
+  color: #8b0000;
+  text-decoration: underline;
+}
+</style>
+  

+ 164 - 0
src/views/FinancialManagement/CostVerification/components/batchDialog.vue

@@ -0,0 +1,164 @@
+<template>
+  <div>
+    <el-dialog
+      v-dialogDrag
+      title="批次详情"
+      :visible.sync="dialogVisible"
+      width="80%"
+      @close="closeVisible"
+    >
+      <div class="detailStyle">
+        <el-row>
+          <el-col :span="4">交强险保费:{{formData.mlifta}}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">商业险保费:{{ formData.cip }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row style="margin:20px 0">
+          <el-col :span="4">车船税:{{ formData.vavt }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+          <el-col :span="4">其他保费:{{ formData.other }}</el-col>
+          <el-col :span="4">手续费:</el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="16" style="text-align: center;">合计手续费:</el-col>
+        </el-row>
+      </div>
+      <el-table
+        size="small"
+        :data="tableData"
+        border
+        highlight-current-row
+        stripe
+        ref="expandTable"
+        v-loading="loading"
+        :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }"
+      >
+        <template v-for="(item,index) in columns">
+          <el-table-column :prop="item.prop" :label="item.label" :key="index"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" min-width="60">
+          <template slot-scope="scope">
+            <el-button size="mini" type="primary" @click="detailFun(scope.row)">详情</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="block">
+        <el-pagination
+          @size-change="tablePageChange"
+          @current-change="tableCurrentChange"
+          :current-page="page.pageNum"
+          :page-size="page.pageSize"
+          :page-sizes="[20, 30, 50, 100]"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="page.totalSize"
+        ></el-pagination>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      page: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0
+      },
+      loading:false,
+      columns: [
+        {
+          prop: "batchNum",
+          label: "批次号"
+        },
+        {
+          prop: "policyNum",
+          label: "保单号"
+        },
+        {
+          prop: "plateNum",
+          label: "车牌号"
+        },
+        {
+          prop: "insured",
+          label: "被保险人"
+        },
+        {
+          prop: "insKindName",
+          label: "险种"
+        },
+        {
+          prop: "mlifta",
+          label: "交强险保费"
+        },
+        {
+          prop: "vavt",
+          label: "车船税"
+        },
+        {
+          prop: "cip",
+          label: "商业保险费"
+        },
+        {
+          prop: "other",
+          label: "其他保费"
+        },
+        {
+          prop: "payDate",
+          label: "付款日期"
+        }
+      ],
+      tableData:[],
+      dialogVisible:false,
+    };
+  },
+  props:{
+    formData:{
+        type:Object,
+        default:{}
+    },
+    batchNum:{
+        type:Number,
+        default:0
+    }
+  },
+  created(){
+    this.getList();
+  },
+  methods: {
+     //列表数据
+     getList(batchNum) {
+      this.loading = true;
+      this.$api.cost.getQueryPageDetails({ ...this.page, batchNum }).then(res => {
+        if (res.data) {
+          this.tableData = res.data.content;
+          this.page.pageNum = res.data.pageNum;
+          this.page.pageSize = res.data.pageSize;
+          this.page.totalSize = res.data.totalSize;
+          this.loading = false;
+        } else {
+          this.loading = false;
+        }
+      });
+    },
+    tablePageChange(val){
+      this.page.pageSize = val;
+      this.getList();
+    },
+    tableCurrentChange(val){
+      this.page.pageNum = val;
+      this.getList();
+    },
+    closeVisible(){
+        this.dialogVisible=false
+    },
+    open(){
+        this.dialogVisible=true
+    },
+    detailFun(row){
+
+    }
+  }
+};
+</script>

+ 1 - 1
src/views/Login.vue

@@ -137,7 +137,7 @@ export default {
           } else {
           } else {
             Cookies.remove('accountInfo')
             Cookies.remove('accountInfo')
           }
           }
-          Cookies.set('token', res.data.token) // 放置token到Cookie
+          Cookies.set('token', res.data.token, { expires: 1, }) // 放置token到Cookie
           Cookies.set('user', userInfo.account) // 放置token到Cookie
           Cookies.set('user', userInfo.account) // 放置token到Cookie
           sessionStorage.setItem('user', userInfo.account) // 保存用户到本地会话
           sessionStorage.setItem('user', userInfo.account) // 保存用户到本地会话
           this.$store.commit('menuRouteLoaded', false) // 要求重新加载导航菜单
           this.$store.commit('menuRouteLoaded', false) // 要求重新加载导航菜单