فهرست منبع

手续费、跟单费功能

lihongxiao 2 سال پیش
والد
کامیت
9a45e2a6fb
17فایلهای تغییر یافته به همراه2897 افزوده شده و 1239 حذف شده
  1. 94 1
      src/http/moudules/task.js
  2. 226 423
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFees.vue
  3. 141 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesSettled.vue
  4. 166 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryUnsettled.vue
  5. 286 175
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue
  6. 168 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicedAndSettled.vue
  7. 167 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue
  8. 207 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/Notinvoiced.vue
  9. 97 429
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFees.vue
  10. 141 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesSettled.vue
  11. 167 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryUnsettled.vue
  12. 219 185
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue
  13. 168 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicedAndSettled.vue
  14. 167 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue
  15. 207 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/Notinvoiced.vue
  16. 275 25
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue
  17. 1 1
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/yearMonthYay.vue

+ 94 - 1
src/http/moudules/task.js

@@ -1122,4 +1122,97 @@ export const totalPinAmount = (data) => {
     data
   })
 }
-     
+  
+// 保险公司结算管理-车险
+export const totalBxAmount = (data) => {
+  return axios({
+    url: "/fnc/plyFee/totalBxAmount",
+    method: "post",
+    data
+  })
+}
+export const batchBxBalancet = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchBxBalancet",
+    method: "put",
+    data
+  })
+}
+export const batchBxBalance = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchBxBalance",
+    method: "put",
+    data
+  })
+}
+export const batchInvoicing = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchInvoicing",
+    method: "put",
+    data
+  })
+}
+export const batchInvoic = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchInvoic",
+    method: "put",
+    data
+  })
+}
+ 
+export const allOtherAmount = (data) => {
+  return axios({
+    url: "/fnc/plyFee/allOtherAmount",
+    method: "post",
+    data
+  })
+}
+export const bxHandlingExcel = (data) => {
+  return axios({
+    url: "/fnc/plyFee/bxHandlingExcel",
+    method: "post",
+    data
+  })
+}
+
+export const bxOtherExcel = (data) => {
+  return axios({
+    url: "/fnc/plyFee/bxOtherExcel",
+    method: "post",
+    data
+  })
+}
+export const pinHandlingExcel = (data) => {
+  return axios({
+    url: "/fnc/plyFee/pinHandlingExcel",
+    method: "post",
+    data
+  })
+}
+export const importData = (data) => {
+  return axios({
+    url: "/fnc/plyFee/importData",
+    method: "post",
+    data
+  })
+}
+export const plyFeeUpdate = (data) => {
+  return axios({
+    url: "/fnc/plyFee/update",
+    method: "put",
+    data
+  })
+}
+export const plyFeeNonSettldetail = (data) => {
+  return axios({
+    url: "/fnc/plyFee/NonSettldetail",
+    method: "post",
+    data
+  })
+}
+export const plyFeeId = (id) => {
+  return axios({
+    url: "/fnc/plyFee/getById/" +id,
+    method: "get",
+  })
+}

+ 226 - 423
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFees.vue

@@ -1,207 +1,34 @@
 <template>
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
-    <!-- <kt-common-table 
-    permsButton3="sys:handlingFees:balance"
-    :data="pageResult" 
-    :columns="columns"  
-    :button3Name="'结算'"
-    @handleButton3="balanceFun"
-    :showBatchDelete="false" 
-    @findPage="findPage" >
-    </kt-common-table> -->
-    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+    <templateTable ref="templateTable" :formList="formList"  :btnGroup="btnGroup" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
       @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+    <el-dialog
+      title="详情"
+      :visible.sync="dialogVisible"
+      width="80%"
+      :before-close="handleClose">
+      <templateTable ref="templateTable"   :tableConfig="tableConfigDetail" :data="formTableData"
+      @findPage="findPageDetail" >
     </templateTable>
-    <el-dialog v-dialogDrag title="结算" :visible.sync="dialogVisible" width="40%" @close="closdialogVisible">
-      选择年份:<el-date-picker v-model="year" type="year" @change="handleChange" value-format="yyyy" placeholder="选择年">
-      </el-date-picker>
-      <el-table v-if="year" ref="multipleTable" :data="insuranceTableData" border tooltip-effect="dark"
-        style="margin-top:15px">
-        <el-table-column prop="totalorders" label="总单数">
-        </el-table-column>
-        <el-table-column prop="monthSigdate" label="月份">
-        </el-table-column>
-        <el-table-column prop="allLOtherFeevalue" label="总单数">
-        </el-table-column>
-        <el-table-column fixed="right" label="操作" width="100">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">结算</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
-        <!-- <el-button size="small" type="primary" @click="submit()">确 定</el-button> -->
-      </span>
-    </el-dialog>
-    <el-dialog title="结算" :visible.sync="dialogVisiblepro" width="40%" @close="closdialogVisiblePro">
-      <el-form :model="formData" :rules="rules" ref="formData" :inline="true" size="small">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="凭证号" prop="voucherNumber">
-              <el-input v-model="formData.voucherNumber"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="合同号" prop="contractId">
-              <el-input v-model="formData.contractId"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="结算金额" prop="settlementAmount">
-              <el-input v-model="formData.settlementAmount"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="24">
-            <el-form-item label="合同附件" prop="contractFileId" style="width: 50%">
-              <el-upload v-model="formData.contractFileId" class="upload-demo" action="" name="DX_00"
-                :show-file-list="false" :http-request="httpRequest" :before-upload="beforeAvatarUpload">
-                <el-button size="small" type="primary">点击上传</el-button>
-                <div slot="tip" class="el-upload__tip">只能上传pdf/docx文件</div>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisiblepro = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
-      </span>
-    </el-dialog>
-    <el-dialog title="详情" :visible.sync="dialogVisibleDetail" width="80%" @close="closdialogVisibleDetail">
-      <el-button size="small" type="primary" icon="el-icon-plus" @click="addDetailData()">新增</el-button>
-      <el-table :data="DetailtableData" border style="margin-top:15px">
-        <el-table-column prop="orderno" label="订单号(子订单)">
-        </el-table-column>
-        <el-table-column prop="policyno" label="交强保单号">
-        </el-table-column>
-        <el-table-column prop="syPolicyno" label="商业保单号">
-        </el-table-column>
-        <el-table-column prop="noPolicyno" label="非车保单号">
-        </el-table-column>
-        <el-table-column prop="dept_id" label="机构">
-        </el-table-column>
-        <el-table-column prop="riskcode" label="险种">
-        </el-table-column>
-        <el-table-column prop="payDate" label="出单日期">
-        </el-table-column>
-        <template></template>
-        <el-table-column prop="signdate" label="签单日期">
-        </el-table-column>
-        <el-table-column prop="companyId" label="保险公司id">
-        </el-table-column>
-        <el-table-column prop="agreementId" label="协议号">
-        </el-table-column> <el-table-column prop="licenseno" label="车牌号">
-        </el-table-column> <el-table-column prop="taxamount" label="车船税">
-        </el-table-column>
-        <el-table-column prop="noTaxPremium" label="不含税保费">
-        </el-table-column>
-        <el-table-column prop="otherFeerate" label="其他费用比例">
-        </el-table-column>
-        <el-table-column prop="otherFeevalue" label="其他费用金额">
-        </el-table-column>
-        <el-table-column prop="allFeeValue" label="总费用">
-        </el-table-column>
-        <el-table-column fixed="right" width="180" label="操作">
-          <template slot-scope="scope">
-            <el-button @click="detailUpload(scope.row)" type="text">编辑</el-button>
-            <el-button @click="detailDetele(scope.row)" type="text">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisibleDetail = false">取 消</el-button>
-      </span>
-    </el-dialog>
-    <!-- 详情里的新增 -->
-    <el-dialog :title="titleDetail" :visible.sync="detailDialogVisible" width="60%" @close="detailclosdialogVisible">
-      <el-form :model="formDataAdd" :rules="rulesAdd" ref="formDataAdd" :inline="true" label-width="130px" size="small">
-        <el-row>
-          <!-- <el-col :span="8">
-            <el-form-item label="保险公司id" prop="companyId">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.companyId"></el-input>
-            </el-form-item>
-          </el-col> -->
-          <el-col :span="8">
-            <el-form-item label="交强保单号" prop="policyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.policyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="商业保单号" prop="syPolicyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.syPolicyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="非车保单号" prop="noPolicyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.noPolicyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="协议号" prop="agreementId">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.agreementId"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="险种" prop="riskcode">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.riskcode"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="出单日期" prop="payDate">
-              <el-date-picker :disabled="titleDetail == '编辑'" v-model="formDataAdd.payDate" type="date" placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col> <el-col :span="8">
-            <el-form-item label="签单日期" prop="signdate">
-              <el-date-picker :disabled="titleDetail == '编辑'" v-model="formDataAdd.signdate" type="date" placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col> <el-col :span="8">
-            <el-form-item label="车牌号" prop="licenseno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.licenseno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="不含税保费" prop="noTaxPremium">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.noTaxPremium"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="总费用" prop="allFeeValue">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.allFeeValue"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="跟单费比例" prop="otherFeerate">
-              <el-input v-model="formDataAdd.otherFeerate"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="跟单费金额" prop="otherFeevalue">
-              <el-input v-model="formDataAdd.otherFeevalue"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="detailDialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submitAdd('formDataAdd')">确 定</el-button>
-      </span>
-    </el-dialog>
+      <el-button  size="small" @click="dialogVisible = false">取消</el-button>
+    </span>
+  </el-dialog>
   </div>
 </template>
 <script>
-import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
 import templateTable from '@/components/TemplateTable/index.vue'
 import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
 
 export default {
   name: "baosi",
-  components: { KtCommonTable, templateTable },
+  components: {  templateTable,yearMonthYay },
   created() {
   },
   computed: {
@@ -212,157 +39,233 @@ export default {
   data() {
     return {
       year: '',
-      insuranceTableData: [],
       searchData: {},
+      formDataId:'',
+      dialogVisible:false,
       formList: [
-        {
-          label: "年份:",
-          prop: "orderno",
-          type: "year",
-        },
-      ],
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
       tableConfig: {
         columns: [
           {
-            prop: "companyId",
-            label: "保险id",
+            prop: "companyName",
+            label: "保险公司名称",
             type: "text"
           },
           {
-            prop: "totalorders",
-            label: "总单数",
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
             type: "text"
           },
           {
-            prop: "allLOtherFeevalue",
-            label: "跟单费总额",
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "noInvoicCommissionFeevalue",
+            label: "未开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "已开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "settleMentAmount",
+            label: "已开票已结算跟单费",
+            type: "text"
+          },
+          {
+            prop: "unSettledAmount",
+            label: "已开票未结算跟单费",
             type: "text"
           },
-
         ],
         loading: true,
         isPaginationShow: true,
         isShowIndex: true,
-        optBtns: [
+        optBtns:[
           {
-            type: 'primary',
-            label: '结算',
-            perm: 'sys:documentaryFees2:balance',
-            click: (row, index) => { return this.openBalanceFun(row) },
-          },
-          {
-            type: 'primary',
-            label: '详情',
-            click: (row, index) => { return this.openDetail(row) },
-          }
+            type:'primary',
+            label:'详情',
+            click:(row, index) => {return this.haldDetail(row)},
+        },
         ]
       },
+      btnGroup:[
+      {
+        name:'导出',
+        click:(row, index) => {return this.handExport()},
+      }
+    ],
       tableData: [],
       formData: {},
-      DetailtableData: [],
-      balanceRow: {},
-      formDataList: {},
-      formDataAdd: {},
-      dialogVisible: false,
-      dialogVisiblepro: false,
-      dialogVisibleDetail: false,
-      detailDialogVisible: false,
-      formDataDetailId: '',
       pageData: {
         pageNum: 1,
         pageSize: 20,
         agreementType: 2,
         isNotCar: '0',
-        isNotDocumentary: '1'
-      },
-      rules: {
-        voucherNumber: [
-          { required: true, message: '请输入凭证号', trigger: 'blur' },
-        ],
-        contractId: [
-          { required: true, message: '请输入合同号', trigger: 'blur' },
-        ],
-        contractFileId: [
-          { required: true, message: '请上传合同', trigger: 'blur' },
-        ],
+      isNotDocumentary: '1'
       },
-      rulesAdd: {
-        otherFeevalue: [
-          { required: true, message: '请输入跟单费金额', trigger: 'blur' },
-        ],
-        otherFeerate: [
-          { required: true, message: '请输入跟单费比例', trigger: 'blur' },
+      formTableData:[],
+      tableConfigDetail:{
+        columns: [
+          {
+            prop: "orderno",
+            label: "订单号(子订单)",
+            type: "text"
+          },
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "policyno",
+            label: "交强保单号",
+            type: "text"
+          },
+          {
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },
+          {
+            prop: "jqPremium",
+            label: "交强保费",
+            type: "text"
+          },
+          {
+            prop: "syPremium",
+            label: "商业保费",
+            type: "text"
+          },
+          {
+            prop: "jqNoTaxPremium",
+            label: "交强不含税保费",
+            type: "text"
+          },
+          {
+            prop: "syNoTaxPremium",
+            label: "商业不含税保费",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "跟单费金额",
+            type: "text"
+          },
+          {
+            prop: "otherFeerate",
+            label: "跟单费比例",
+            type: "text"
+          },
+          {
+            prop: "jqOtherCostsProportion",
+            label: "交强跟单比例",
+            type: "text"
+          },
+          {
+            prop: "syOtherCostsProportion",
+            label: "商业跟单比例",
+            type: "text"
+          },
+          {
+            prop: "jqOtherCostsPremium",
+            label: "交强跟单金额",
+            type: "text"
+          },
+          {
+            prop: "syOtherCostsPremium",
+            label: "商业跟单金额",
+            type: "text"
+          },
+        
         ],
-      },
-      titleDetail: "新增"
+        loading: true,
+      }
     };
   },
   created() {
     this.findPage();
   },
   methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
     // 查询
-    handleSearchList() {
-      this.findPage();
+    handleSearchList(data) {
+      this.findPage(data);
     },
     //列表数据
     findPage(data) {
+      let signDateStart=''
+        let signDateEnd=''
+      if(data&& data.signDate){
+          signDateStart=data.signDate[0]
+          signDateEnd=data.signDate[1]
+      }
+      else{
+        signDateStart=''
+        signDateEnd=''
+    }
       this.tableConfig.loading = true;
       this.$api.task
-        .NonSettlementQuery(this.pageData)
+        .allOtherAmount({...this.pageData,...data,...this.formData,signDateStart,signDateEnd})
         .then(res => {
-          if (res.data) {
-            this.tableData = res.data.content;
-            this.pageData.pageNum = res.data.pageNum;
-            this.pageData.pageSize = res.data.pageSize;
-            this.pageData.totalSize = res.data.totalSize;
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
             this.tableConfig.loading = false;
           }
+          else{
+            this.$message.error(res.msg)
+          }
         });
     },
-    closdialogVisible() {
-      this.dialogVisible = false;
-    },
-    closdialogVisiblePro() {
-      this.dialogVisiblepro = false;
-    },
-    closdialogVisibleDetail() {
-      this.dialogVisibleDetail = false;
-    },
-    detailclosdialogVisible() {
-      this.detailDialogVisible = false;
-    },
-    // 结算
-    openBalanceFun(row) {
-      this.dialogVisible = true
-      this.year = ''
-      this.formDataList = row
-    },
-    handleClick(row) {
-      this.balanceRow = row
-      this.formData = {}
-      this.dialogVisiblepro = true;
-    },
-    submit(formData) {
-      this.$refs[formData].validate((valid) => {
-        if (valid) {
-          this.$api.task.batchBalance({ ...this.formData, ids: this.formDataList.ids, totAmount: this.formDataList.allLOtherFeevalue }).then(res => {
-            if (res.code == "200") {
-              this.$message({
-                message: res.msg,
-                type: 'success'
-              })
-              this.dialogVisiblepro = false
-              this.year = ''
-            }
-            else {
-              this.$message.error(res.msg)
-            }
-          });
-        } else {
-          return false;
-        }
-      });
+    findPageDetail(data) {
+      this.tableConfigDetail.loading=true
+      this.$api.task
+        .plyFeeNonSettldetail(data)
+        .then(res => {
+          if (res.code==200) {
+            this.formTableData = res.data;
+            this.tableConfigDetail.loading = false;
+          }
+          else{
+            this.tableConfigDetail.loading = false;
+            this.$message.error(res.msg)
+          }
+        });
     },
     tablePageChange(val) {
       this.pageData.pageSize = val;
@@ -372,142 +275,42 @@ export default {
       this.pageData.pageNum = val;
       this.findPage();
     },
-    // 上传图片的方法Start
-    beforeAvatarUpload(file) {
-      // var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
-      // const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
-      // const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
-      // const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
-      // if (!extension && !extension1 && !extension2 ) {
-      //   this.$message({
-      //     message: "只允许上传PDF和Word文件!",
-      //     type: "warning",
-      //   });
-      // }
-      // return extension && extension1 && extension2
+    haldDetail(row){
+      this.formDataId=row.id
+      this.dialogVisible=true
+      this.findPageDetail(row)
     },
-    //上传影像
-    httpRequest(options) {
-      let file = options.file;
-      const params = new FormData(); // 声明formData数据类型
-      params.append("multipartFile", file);
-      params.append("type", 'settle');
-      this.$api.letter.uploadFile(params).then(res => {
-        if (res.code == "200") {
-          this.$message({
-            message: '上传成功',
-            type: 'success'
-          })
-          this.formData.contractFileId = res.data.id
+    handleClose(){
+      this.dialogVisible=false
+    },  
+    handExport(){
+      if( this.$refs.templateTable.searchDataClone){
+        let signDateStart=''
+        let signDateEnd=''
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
         }
-        else {
-          this.$message.error(res.msg)
-        }
-      });
-    },
-    handleChange(val) {
-      this.year = val
-      let obj = {
-        agreementType: '2',
-        isNotCar: '0',
-        isNotDocumentary: '1',
-        documentaryFeesStatus: '0',
-        year: val,
-        companyId: this.formDataList.companyId,
+      else{
+        signDateStart=''
+        signDateEnd=''
       }
-      this.$api.task.totalQuery(obj).then(res => {
-        if (res.code == "200") {
-          this.insuranceTableData = res.data.content
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    // 详情
-    openDetail(row) {
-      this.formDataList = row
-      this.formDataDetailId = row.ids
-      this.openDetailFun(row.ids)
-    },
-    openDetailFun(id) {
-      this.$api.task.NonSettldetail({ ids: id }).then(res => {
-        if (res.code == "200") {
-          this.DetailtableData = res.data
-          this.dialogVisibleDetail = true
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    addDetailData() {
-      // this.formDataAdd={}
-      this.titleDetail = '新增'
-      this.detailDialogVisible = true
-    },
-    detailUpload(row) {
-      this.$api.task.plyFeeUploadId(row.id).then(res => {
-        if (res.code == "200") {
-          this.$message({
-            message: res.msg,
-            type: 'success'
-          })
-
-          this.titleDetail = '编辑'
-          this.formDataAdd = res.data
-          this.detailDialogVisible = true
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    submitAdd(formDataAdd) {
-      this.$refs[formDataAdd].validate((valid) => {
-        if (valid) {
-          if (this.titleDetail == '新增') {
-            this.$api.task.plyFeeInsert({ ...this.formDataAdd,companyId:this.formDataList.companyId,isNotCar:'0' }).then(res => {
-              if (res.code == "200") {
-                 this.openDetailFun(res.msg)
-                this.detailDialogVisible = false
-              }
-              else {
-                this.$message.error(res.msg)
-              }
-            });
-          }
-          else{
-            this.$api.task.plyFeeUpload({...this.formDataAdd,companyId:this.formDataList.companyId}).then(res => {
-            if (res.code == "200") {
-                this.$message({
-                    message: res.msg,
-                    type: 'success'
-                })
-                this.openDetailFun(this.formDataDetailId)
-                this.detailDialogVisible=false
+      this.$api.task.bxOtherExcel({...this.pageData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
+          .then(res => {
+            if (res.code==200) {
+               let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+                let a = document.createElement("a");
+                a.href = url;
+                a.download = "导出文件.xlsx";
+                a.click();
+                window.URL.revokeObjectURL(url);
             }
             else{
-                this.$message.error(res.msg)
+              this.$message.error(res.msg)
             }
-            });
-          }
-
-        } else {
-          return false;
+          });
         }
-      });
     },
-    detailDetele(row) {
-      this.$api.task.plyFeeDelete({ id: row.id,isNotCar:'0', companyId:this.formDataList.companyId}).then(res => {
-        if (res.code == "200") {
-          this.openDetailFun(res.msg)
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      });
-    }
   }
 };
 </script>

+ 141 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesSettled.vue

@@ -0,0 +1,141 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+        
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "已开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "settleMentAmount",
+            label: "已开票已结算跟单费",
+            type: "text"
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+      },
+      tableData: [],
+      formData: {},
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '0',
+        isNotDocumentary: '1'
+      },
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 166 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryUnsettled.vue

@@ -0,0 +1,166 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+ 
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "未结算跟单费",
+            type: "text"
+          },
+          
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: 'primary',
+            label: '结算',
+            perm: 'sys:documentaryFees2:balance',
+            click: (row, index) => { return this.openBalanceFun(row) },
+          },
+        ]
+      },
+      tableData: [],
+      formData: {},
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '0',
+        isNotDocumentary: '1'
+      },
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList() {
+      this.findPage();
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    
+    // 结算
+    openBalanceFun(row) {
+      this.$api.task
+        .batchBalance(row)
+        .then(res => {
+          if (res.code==200) {
+            this.$message({
+              message: '操作成功' || res.msg,
+               type: 'success'
+            })
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 286 - 175
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -1,68 +1,67 @@
 <template>
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
-    <!-- <kt-common-table
-    permsButton3="sys:handlingFees:balance"
-    :data="pageResult"
-    :columns="columns"
-    :button3Name="'结算'"
-    @handleButton3="balanceFun"
-    :showBatchDelete="false"
-    @findPage="findPage" >
-    </kt-common-table> -->
     <templateTable
+    custom
       :formList="formList"
+    ref="templateTable"
       :searchData.sync="searchData"
       :tableConfig="tableConfig"
       :data="tableData"
+      :btnGroup="btnGroup"
       @findPage="findPage"
       @handleSearchList="handleSearchList"
       :pagination="pageData"
       @getList="getList"
     >
+    <div v-if="!Object.keys(moneyList).length == 0">
+    <el-row class="customStyle" >
+      <el-col :span="4">总手续费:{{moneyList.commissionFeevalue}}</el-col>
+      <el-col :span="4">未开票手续费:{{moneyList.noInvoicCommissionFeevalue}}</el-col>
+      <el-col :span="4">已开票已结算手续费:{{moneyList.readyCommissionFeevalue}}</el-col>
+      <el-col :span="4">已开票未结算手续费:{{moneyList.invoicCommissionFeevalue}}</el-col>
+    </el-row>
+  </div>
     </templateTable>
     <el-dialog
-      v-dialogDrag
-      title="结算"
-      :visible.sync="dialogVisible"
-      width="40%"
-      @close="closdialogVisible"
-    >
-    <el-form :model="formData" :rules="rules" ref="formData" :inline="true" label-width="130px" size="small">
-        <el-row>
-            <el-col :span="12">
-                <el-form-item label="凭证号" prop="voucherNumber">
-                    <el-input v-model="formData.voucherNumber" ></el-input>
-                </el-form-item>
-            </el-col>
-            <el-col :span="12">
-                <el-form-item label="合同号" prop="contractId">
-                    <el-input v-model="formData.contractId"></el-input>
-                </el-form-item>
-            </el-col>
-            <el-col :span="24">
-                <el-form-item label="合同附件"  prop="contractFileId" style="width: 50%">
-                    <el-upload
-                        v-model="formData.contractFileId"
-                        class="upload-demo"
-                        action=""
-                        name="DX_00"
-                        :show-file-list="false"
-                        :http-request="httpRequest"
-                        :before-upload="beforeAvatarUpload"
-                    >
-                    <el-button size="small" type="primary">点击上传</el-button>
-                    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
-                    </el-upload>
-                    </el-form-item>
-            </el-col>
-        </el-row>
+    title="编辑"
+    :visible.sync="dialogVisible"
+    width="55%"
+    :before-close="handleClose">
+    <el-form ref="form" :model="formDataList" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataList.commissionFeerate" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="交强手续费比例">
+              <el-input v-model="formDataList.jqSuperviseCostsProportion" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="商业手续费比例">
+              <el-input v-model="formDataList.sySuperviseCostsProportion" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="手续费金额">
+              <el-input v-model="formDataList.commissionFeevalue" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="应收金额">
+              <el-input v-model="formDataList.allFeeValue" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+      </el-row> 
     </el-form>
     <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
-      </span>
-    </el-dialog>
+    <el-button size="small" @click="dialogVisible = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmit">保存</el-button>
+  </span>
+</el-dialog>
   </div>
 </template>
   <script>
@@ -82,17 +81,82 @@ export default {
   },
   data() {
     return {
+      formDataList:{},
+      dialogVisible:false,
+      formDataId:'',
+      moneyList:{},
       searchData:{},
-        formList:[
+      formList:[
+       {
+          label: "车牌号",
+          prop: "licenseno",
+          type: "input",
+        },
         {
-          label: "订单号:",
-          prop: "orderno",
+          label: "被保人",
+          prop: "userId",
           type: "input",
-        },{
-          label: "车牌号:",
-          prop: "licenseno",
+        },
+        {
+          label: "保险公司",
+          prop: "companyName",
+          type: "company",
+        },
+       
+        {
+          label: "险种",
+          prop: "riskcode",
+          type: "input",
+        },
+        {
+          label: "保司机构",
+          prop: "partnerCompaniesName",
+          type: "input",
+        },
+       
+        {
+          label: "交强保单号",
+          prop: "policyno",
           type: "input",
         },
+        {
+          label: "商业保单号",
+          prop: "syPolicyno",
+          type: "input",
+        }, {
+          label: "非车保单号:",
+          prop: "noPolicyno",
+          type: "input",
+        },
+        {
+          label: "结算日期",
+          prop: "settlementTime",
+          type: "date",
+        }, {
+          label: "结算状态",
+          prop: "handlingFeesStatus",
+          type: "select",
+          options:[
+            {
+              label:'已结算',
+              value:'1'
+            },{
+              label:'未结算',
+              value:'0'
+            }
+          ],
+          
+        }, 
+        {
+          label: "创建日期",
+          prop: "createTime",
+          type: "date",
+        },
+        {
+          label: "签单日期",
+          prop: "signDate",
+          type: "datePicker",
+        },
     ],
     tableConfig:{
         columns: [
@@ -102,23 +166,23 @@ export default {
             type: "text"
           },
           {
-            prop: "noPolicyno",
-            label: "非车保单号",
+            prop: "signDate",
+            label: "签单日期",
             type: "text"
           },
           {
-            prop: "syPolicyno",
-            label: "商业保单号",
+            prop: "licenseno",
+            label: "车牌号",
             type: "text"
           },
           {
-            prop: "policyno",
-            label: "交强保单号",
+            prop: "userId",
+            label: "被保险人",
             type: "text"
           },
           {
-            prop: "deptId",
-            label: "机构",
+            prop: "companyName",
+            label: "保险公司",
             type: "text"
           },
           {
@@ -127,13 +191,8 @@ export default {
             type: "text"
           },
           {
-            prop: "payDate",
-            label: "出单时间",
-            type: "text"
-          },
-          {
-            prop: "Signdate",
-            label: "签单日期",
+            prop: "partnerCompaniesName",
+            label: "保司机构",
             type: "text"
           },
           {
@@ -146,63 +205,69 @@ export default {
             type: "text"
 
           },{
-            prop: "licenseno",
-            label: "车牌号",
+            prop: "policyno",
+            label: "交强保单号",
             type: "text"
 
+          },{
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },{
+            prop: "jqPremium",
+            label: "交强险保费",
+            type: "text"
           },{
             prop: "taxamount",
             label: "车船税",
             type: "text"
           },{
-            prop: "noTaxPremium",
-            label: "不含税保费",
+            prop: "syPremium",
+            label: "商业险保费",
             type: "text"
           },{
             prop: "commissionFeerate",
             label: "手续费比例",
             type: "text"
-
           },{
-            prop: "otherFeerate",
-            label: "其他费用比例",
+            prop: "jqSuperviseCostsProportion",
+            label: "交强手续费比例",
             type: "text"
-
           },{
-            prop: "commissionFeevalue",
-            label: "手续费金额",
+            prop: "sySuperviseCostsProportion",
+            label: "商业手续费比例",
             type: "text"
-
           },{
-            prop: "otherFeevalue",
-            label: "其他费用金额",
+            prop: "commissionFeevalue",
+            label: "手续费金额",
             type: "text"
 
           },{
             prop: "allFeeValue",
-            label: "总费用",
+            label: "应收金额",
             type: "text"
 
           },{
-            prop: "finalFeeValue",
-            label: "已结算费用",
+            prop: "createTime",
+            label: "创建日期",
             type: "text"
 
           },{
-            prop: "createTime",
-            label: "创建时间",
+            prop: "settlementTime",
+            label: "结算日期",
             type: "text"
+
           },{
-            prop: "voucherNumber",
-            label: "凭证号",
+            prop: "settlementUserId",
+            label: "结算人",
             type: "text"
           },{
-            prop: "contractId",
-            label: "合同号",
+            prop: "updateUserId",
+            label: "修改人",
             type: "text"
           },{
             prop: "handlingFeesStatus",
-            label: "手续费结算状态",
+            label: "结算状态",
             type: "statMap",
             options:[{
               value:'1',
@@ -213,29 +278,45 @@ export default {
             }]
           }
         ],
+        operationWidth:'200',
         loading:true,
         isPaginationShow:true,
         isShowIndex: true,
         optBtns:[
-        {
+          {
             type:'primary',
-            label:'结算',
-            hide:(row)=>{
-              return row.handlingFeesStatus == 0?true:false
-            },
-            click:(row, index) => {return this.balanceFun(row)},
-        }
+            label:'编辑',
+            click:(row, index) => {return this.haldUpload(row)},
+        },
+        // {
+        //     type:'primary',
+        //     label:'结算',
+        //     hide:(row)=>{
+        //       return row.handlingFeesStatus == 0?true:false
+        //     },
+        //     click:(row, index) => {return this.balanceFun(row)},
+        // }
         ]
     },
+    btnGroup:[
+      {
+        name:'批量开票',
+        click:(row, index) => {return this.balanceFunPro()},
+      },
+      {
+        name:'导出',
+        click:(row, index) => {return this.handExport()},
+      }
+    ],
     tableData: [],
-      formData: {},
       dialogVisible: false,
       pageData:{
         pageNum: 1,
         pageSize: 20,
         agreementType: '2',
         isNotCar: '0',
-        isOther:'0'
+        isOther:'0',
+        handlingFeesStatus:'0'
       },
       formData:{},
       rules: {
@@ -256,117 +337,147 @@ export default {
   },
   methods: {
     // 查询
-    handleSearchList() {
-      this.findPage();
+    handleSearchList(data) {
+      this.$api.task
+          .totalAmount({agreementType:2,isNotDocumentary:'0',isNotCar:'0',...data})
+          .then(res => {
+            if (res.code==200) {
+                this.moneyList=res.data
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+      this.findPage(data);
     },
     //列表数据
     findPage(data) {
-      if(data){
-        this.pageData.pageNum=data.pageNum;
-        this.pageData.pageSize=data.pageSize;
+      let signDateStart=''
+      let signDateEnd=''
+      if(data && data.signDate && data.signDate.length>0){
+        signDateStart=data.signDate[0]
+        signDateEnd=data.signDate[1]
+      }
+      else{
+        signDateStart=''
+        signDateEnd=''
       }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeeQuery(this.pageData)
+        .plyFeeQuery({...this.pageData,...data,signDateStart,signDateEnd})
         .then(res => {
-          if (res.data) {
-            // res.data.content.forEach(val=>val.handlingFeesStatus=val.handlingFeesStatus==1?'已结算':'未结算')
+          if (res.code==200) {
             this.tableData = res.data.content;
             this.pageData.pageNum = res.data.pageNum;
             this.pageData.pageSize = res.data.pageSize;
             this.pageData.totalSize = res.data.totalSize;
             this.tableConfig.loading = false;
           }
+          else{
+            this.tableConfig.loading = false;
+            this.$message.error(res.msg)
+          }
         });
     },
     getList(data){
       this.findPage(data)
     },
-    closdialogVisible() {
-      this.dialogVisible = false;
-    },
     // 结算
     balanceFun(row){
-        this.formData={
-            voucherNumber:'',
-            contractId:'',
-            contractFileId:'',
-            orderno:row.orderno,
-            policyno:row.policyno,
-            commissionFeevalue:row.commissionFeevalue,
-        }
-        this.dialogVisible=true
 
     },
-     // 上传图片的方法Start
-    beforeAvatarUpload(file) {
-      // var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
-      // const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
-      // const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
-      // const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
-      // if (!extension && !extension1 && !extension2 ) {
-      //   this.$message({
-      //     message: "只允许上传PDF和Word文件!",
-      //     type: "warning",
-      //   });
-      // }
-      // return extension && extension1 && extension2
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
     },
-    //上传影像
-    httpRequest(options) {
-      let file = options.file;
-      const params = new FormData(); // 声明formData数据类型
-      params.append("multipartFile", file);
-      params.append("type", 'settle');
-      this.$api.letter.uploadFile(params).then(res => {
-        if (res.code == "200") {
-            this.$message({
-                message: '上传成功',
-                type: 'success'
-            })
-            this.formData.contractFileId=res.data.id
-        }
-        else{
-            this.$message.error(res.msg)
-        }
-      });
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
     },
-    submit(formData){
-        this.$refs[formData].validate((valid) => {
-          if (valid) {
-            this.$api.task.plyFeebalance({...this.formData,id:this.formData.contractFileId}).then(res => {
-            if (res.code == "200") {
-                this.$message({
-                    message: res.msg,
+    handExport(){
+      this.assembly('bxHandlingExcel',1)
+    },
+    assembly(api,type){
+      if( this.$refs.templateTable.searchDataClone){
+        let signDateStart=''
+        let signDateEnd=''
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
+        }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
+      this.$api.task[api]({...this.pageData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
+          .then(res => {
+            if (res.code==200) {
+              if(type==1){
+               let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+                let a = document.createElement("a");
+                a.href = url;
+                a.download = "导出文件.xlsx";
+                a.click();
+                window.URL.revokeObjectURL(url);
+              }
+              this.$message({
+                    message: type==1?'导出成功':'批量开票成功' || res.msg,
                     type: 'success'
                 })
-                this.dialogVisible=false
                 this.findPage()
             }
             else{
-                this.$message.error(res.msg)
+              this.$message.error(res.msg)
             }
-            });
-            } else {
-                return false;
-            }
-        });
-
-
+          });
+        }
     },
-    tablePageChange(val) {
-      this.pageData.pageSize = val;
-      this.findPage();
+    balanceFunPro(){
+      this.assembly('batchInvoicing',2)
     },
-    tableCurrentChange(val) {
-      this.pageData.pageNum = val;
-      this.findPage();
+    haldUpload(row){
+      this.formDataId=row.id
+      this.dialogVisible=true
+      this.$api.task.plyFeeId(row.id)
+          .then(res => {
+            if (res.code==200) {
+              this.formDataList=res.data
+              }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
     },
+    handleClose(){
+      this.dialogVisible=false
+    },  
+    onSubmit(){
+      this.$api.task.plyFeeUpdate({...this.formDataList,id:this.formDataId})
+          .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message:  res.msg || '保存成功',
+                    type: 'success'
+                })
+                this.findPage()
+      this.dialogVisible=false
 
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    }
   }
 };
 </script>
 
   <style scoped>
-
+.customStyle{
+    margin-bottom: 20px;
+    font-size: 14px;
+}
+.inputType{
+  width:180px
+}
 </style>

+ 168 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicedAndSettled.vue

@@ -0,0 +1,168 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
+            <template slot="data">
+                <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+            </template>
+        </templateTable>
+    </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+    name: "baosi",
+    components: { KtCommonTable, templateTable,yearMonthYay },
+    created() {
+    },
+    computed: {
+        ...mapState({
+            perms: state => state.user.perms
+        })
+    },
+    data() {
+        return {
+            searchData: {},
+            formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+            tableConfig: {
+                columns: [
+                    {
+                        prop: "companyName",
+                        label: "保险公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "partnerCompaniesName",
+                        label: "合作公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "commissionFeevalue",
+                        label: "开票手续费",
+                        type: "text"
+                    },
+                    {
+                        prop: "invoicAmount",
+                        label: "结算手续费",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow: true,
+                isShowIndex: true,
+                // optBtns: [
+                //     {
+                //         type: 'primary',
+                //         label: '结算',
+                //         click: (row, index) => { return this.balanceFun(row) },
+                //     }
+                // ]
+            },
+            tableData: [],
+            pageData: {
+                pageNum: 1,
+                pageSize: 20,
+                agreementType: '2',
+                isNotCar: '0',
+                isNotDocumentary : '1',
+            },
+            formData: {},
+            
+        };
+    },
+    created() {
+        this.findPage();
+    },
+    methods: {
+        getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+        // 查询
+        handleSearchList() {
+            this.findPage();
+        },
+        //列表数据
+        findPage(data) {
+            if (data) {
+                this.pageData.pageNum = data.pageNum;
+                this.pageData.pageSize = data.pageSize;
+            }
+            this.tableConfig.loading = true;
+            this.$api.task
+                .totalBxAmount({...this.pageData,...this.formData})
+                .then(res => {
+                    if (res.code==200) {
+                        this.tableData = res.data;
+                        // this.pageData.pageNum = res.data.pageNum;
+                        // this.pageData.pageSize = res.data.pageSize;
+                        // this.pageData.totalSize = res.data.totalSize;
+                        this.tableConfig.loading = false;
+                    }
+                    else{
+                        this.tableConfig.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        getList(data) {
+            this.findPage(data)
+        },
+      
+        // 结算
+        balanceFun(row) {
+            this.$api.task
+                .batchBxBalance({ids:row.ids})
+                .then(res => {
+                    if (res.code==200) {
+                        this.$message({
+                            message: res.msg ||'操作成功',
+                            type: 'success'
+                        })
+                    }
+                    else{
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        tablePageChange(val) {
+            this.pageData.pageSize = val;
+            this.findPage();
+        },
+        tableCurrentChange(val) {
+            this.pageData.pageNum = val;
+            this.findPage();
+        },
+
+    }
+};
+</script>
+  
+<style scoped></style>
+  

+ 167 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue

@@ -0,0 +1,167 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
+            <template slot="data">
+                <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+            </template>
+        </templateTable>
+    </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+    name: "baosi",
+    components: {  templateTable,yearMonthYay },
+    created() {
+    },
+    computed: {
+        ...mapState({
+            perms: state => state.user.perms
+        })
+    },
+    data() {
+        return {
+            searchData: {},
+            formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+            tableConfig: {
+                columns: [
+                    {
+                        prop: "companyName",
+                        label: "保险公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "partnerCompaniesName",
+                        label: "合作公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "commissionFeevalue",
+                        label: "总手续费",
+                        type: "text"
+                    },
+                    {
+                        prop: "invoicCommissionFeevalue",
+                        label: "已开票未结算手续费",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow: true,
+                isShowIndex: true,
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '结算',
+                        click: (row, index) => { return this.balanceFun(row) },
+                    }
+                ]
+            },
+            tableData: [],
+            pageData: {
+                pageNum: 1,
+                pageSize: 20,
+                agreementType: '2',
+                isNotCar: '0',
+                isNotDocumentary : '0',
+            },
+            formData: {},
+            
+        };
+    },
+    created() {
+        this.findPage();
+    },
+    methods: {
+        getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+        // 查询
+        handleSearchList() {
+            this.findPage();
+        },
+        //列表数据
+        findPage(data) {
+            if (data) {
+                this.pageData.pageNum = data.pageNum;
+                this.pageData.pageSize = data.pageSize;
+            }
+            this.tableConfig.loading = true;
+            this.$api.task
+                .totalBxAmount({...this.pageData,...this.formData})
+                .then(res => {
+                    if (res.code==200) {
+                        this.tableData = res.data;
+                        // this.pageData.pageNum = res.data.pageNum;
+                        // this.pageData.pageSize = res.data.pageSize;
+                        // this.pageData.totalSize = res.data.totalSize;
+                        this.tableConfig.loading = false;
+                    }
+                    else{
+                        this.tableConfig.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        getList(data) {
+            this.findPage(data)
+        },
+      
+        // 结算
+        balanceFun(row) {
+            this.$api.task
+                .batchBxBalance({ids:row.ids})
+                .then(res => {
+                    if (res.code==200) {
+                        this.$message({
+                            message: res.msg ||'操作成功',
+                            type: 'success'
+                        })
+                    }
+                    else{
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        tablePageChange(val) {
+            this.pageData.pageSize = val;
+            this.findPage();
+        },
+        tableCurrentChange(val) {
+            this.pageData.pageNum = val;
+            this.findPage();
+        },
+
+    }
+};
+</script>
+  
+<style scoped></style>
+  

+ 207 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/Notinvoiced.vue

@@ -0,0 +1,207 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+    <el-dialog title="开票" :visible.sync="dialogVisible" width="40%" @close="closdialogVisible">
+      <el-form :model="InvoicingData" :rules="rules" ref="InvoicingData" :inline="true" size="small" label-width="80px">
+        <el-row>
+          <el-col :span="10">
+            <el-form-item label="开票号" prop="contractId">
+              <el-input v-model="InvoicingData.contractId"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label="开票金额" prop="settlementAmount">
+              <el-input v-model="InvoicingData.settlementAmount"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submit('InvoicingData')">确 定</el-button>
+      </span>
+    </el-dialog>
+ 
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "noInvoicCommissionFeevalue",
+            label: "未开票跟单费",
+            type: "text"
+          },
+          
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: 'primary',
+            label: '开票',
+            click: (row, index) => { return this.openBalanceFun(row) },
+          },
+        ]
+      },
+      tableData: [],
+      formData: {},
+      InvoicingData: {},
+      formDataList:{},
+      dialogVisible: false,
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '0',
+        isNotDocumentary: '1'
+        
+      },
+      rules: {
+        contractId: [
+            { required: true, message: '请输入开票号', trigger: 'blur' },
+          ],
+          settlementAmount: [
+            { required: true, message: '请输入开票金额', trigger: 'blur' },
+          ],
+      }
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else {
+              this.$message.error(res.msg)
+            }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    
+    // 开票
+    openBalanceFun(row) {
+      this.dialogVisible=true
+      this.formDataList=row
+      this.InvoicingData={}
+    },
+    submit(formData) {
+      this.$refs[formData].validate((valid) => {
+        if (valid) {
+            let data={ ...this.formDataList,...this.InvoicingData,}
+          this.$api.task.batchInvoic(data).then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: res.msg ||'操作成功',
+                type: 'success'
+              })
+              this.dialogVisible = false
+            }
+            else {
+              this.$message.error(res.msg)
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 97 - 429
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFees.vue

@@ -1,207 +1,22 @@
 <template>
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
-    <!-- <kt-common-table 
-    permsButton3="sys:handlingFees:balance"
-    :data="pageResult" 
-    :columns="columns"  
-    :button3Name="'结算'"
-    @handleButton3="balanceFun"
-    :showBatchDelete="false" 
-    @findPage="findPage" >
-    </kt-common-table> -->
-    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+    <templateTable  ref="templateTable" :btnGroup="btnGroup" :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
       @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
     </templateTable>
-    <el-dialog v-dialogDrag title="结算" :visible.sync="dialogVisible" width="40%" @close="closdialogVisible">
-      选择年份:<el-date-picker v-model="year" type="year" @change="handleChange" value-format="yyyy" placeholder="选择年">
-      </el-date-picker>
-      <el-table v-if="year" ref="multipleTable" :data="insuranceTableData" border tooltip-effect="dark"
-        style="margin-top:15px">
-        <el-table-column prop="totalorders" label="总单数">
-        </el-table-column>
-        <el-table-column prop="monthSigdate" label="月份">
-        </el-table-column>
-        <el-table-column prop="allLOtherFeevalue" label="总单数">
-        </el-table-column>
-        <el-table-column fixed="right" label="操作" width="100">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">结算</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
-        <!-- <el-button size="small" type="primary" @click="submit()">确 定</el-button> -->
-      </span>
-    </el-dialog>
-    <el-dialog title="结算" :visible.sync="dialogVisiblepro" width="40%" @close="closdialogVisiblePro">
-      <el-form :model="formData" :rules="rules" ref="formData" :inline="true" size="small">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="凭证号" prop="voucherNumber">
-              <el-input v-model="formData.voucherNumber"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="合同号" prop="contractId">
-              <el-input v-model="formData.contractId"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="结算金额" prop="settlementAmount">
-              <el-input v-model="formData.settlementAmount"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="24">
-            <el-form-item label="合同附件" prop="contractFileId" style="width: 50%">
-              <el-upload v-model="formData.contractFileId" class="upload-demo" action="" name="DX_00"
-                :show-file-list="false" :http-request="httpRequest" :before-upload="beforeAvatarUpload">
-                <el-button size="small" type="primary">点击上传</el-button>
-                <div slot="tip" class="el-upload__tip">只能上传pdf/docx文件</div>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisiblepro = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
-      </span>
-    </el-dialog>
-    <el-dialog title="详情" :visible.sync="dialogVisibleDetail" width="80%" @close="closdialogVisibleDetail">
-      <el-button size="small" type="primary" icon="el-icon-plus" @click="addDetailData()">新增</el-button>
-      <el-table :data="DetailtableData" border style="margin-top:15px">
-        <el-table-column prop="orderno" label="订单号(子订单)">
-        </el-table-column>
-        <el-table-column prop="policyno" label="交强保单号">
-        </el-table-column>
-        <el-table-column prop="syPolicyno" label="商业保单号">
-        </el-table-column>
-        <el-table-column prop="noPolicyno" label="非车保单号">
-        </el-table-column>
-        <el-table-column prop="dept_id" label="机构">
-        </el-table-column>
-        <el-table-column prop="riskcode" label="险种">
-        </el-table-column>
-        <el-table-column prop="payDate" label="出单日期">
-        </el-table-column>
-        <template></template>
-        <el-table-column prop="signdate" label="签单日期">
-        </el-table-column>
-        <el-table-column prop="companyId" label="保险公司id">
-        </el-table-column>
-        <el-table-column prop="agreementId" label="协议号">
-        </el-table-column> <el-table-column prop="licenseno" label="车牌号">
-        </el-table-column> <el-table-column prop="taxamount" label="车船税">
-        </el-table-column>
-        <el-table-column prop="noTaxPremium" label="不含税保费">
-        </el-table-column>
-        <el-table-column prop="otherFeerate" label="其他费用比例">
-        </el-table-column>
-        <el-table-column prop="otherFeevalue" label="其他费用金额">
-        </el-table-column>
-        <el-table-column prop="allFeeValue" label="总费用">
-        </el-table-column>
-        <el-table-column fixed="right" width="180" label="操作">
-          <template slot-scope="scope">
-            <el-button @click="detailUpload(scope.row)" type="text">编辑</el-button>
-            <el-button @click="detailDetele(scope.row)" type="text">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisibleDetail = false">取 消</el-button>
-      </span>
-    </el-dialog>
-    <!-- 详情里的新增 -->
-    <el-dialog :title="titleDetail" :visible.sync="detailDialogVisible" width="60%" @close="detailclosdialogVisible">
-      <el-form :model="formDataAdd" :rules="rulesAdd" ref="formDataAdd" :inline="true" label-width="130px" size="small">
-        <el-row>
-          <!-- <el-col :span="8">
-            <el-form-item label="保险公司id" prop="companyId">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.companyId"></el-input>
-            </el-form-item>
-          </el-col> -->
-          <el-col :span="8">
-            <el-form-item label="交强保单号" prop="policyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.policyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="商业保单号" prop="syPolicyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.syPolicyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="非车保单号" prop="noPolicyno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.noPolicyno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="协议号" prop="agreementId">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.agreementId"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="险种" prop="riskcode">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.riskcode"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="出单日期" prop="payDate">
-              <el-date-picker :disabled="titleDetail == '编辑'" v-model="formDataAdd.payDate" type="date" placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col> <el-col :span="8">
-            <el-form-item label="签单日期" prop="signdate">
-              <el-date-picker :disabled="titleDetail == '编辑'" v-model="formDataAdd.signdate" type="date" placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col> <el-col :span="8">
-            <el-form-item label="车牌号" prop="licenseno">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.licenseno"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="不含税保费" prop="noTaxPremium">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.noTaxPremium"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="总费用" prop="allFeeValue">
-              <el-input :disabled="titleDetail == '编辑'" v-model="formDataAdd.allFeeValue"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="跟单费比例" prop="otherFeerate">
-              <el-input v-model="formDataAdd.otherFeerate"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="跟单费金额" prop="otherFeevalue">
-              <el-input v-model="formDataAdd.otherFeevalue"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="detailDialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submitAdd('formDataAdd')">确 定</el-button>
-      </span>
-    </el-dialog>
   </div>
 </template>
 <script>
-import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
 import templateTable from '@/components/TemplateTable/index.vue'
 import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
 
 export default {
   name: "baosi",
-  components: { KtCommonTable, templateTable },
+  components: {  templateTable,yearMonthYay },
   created() {
   },
   computed: {
@@ -212,62 +27,74 @@ export default {
   data() {
     return {
       year: '',
-      insuranceTableData: [],
       searchData: {},
       formList: [
-        {
-          label: "年份:",
-          prop: "orderno",
-          type: "year",
-        },
-      ],
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
       tableConfig: {
         columns: [
           {
-            prop: "companyId",
-            label: "保险id",
+            prop: "companyName",
+            label: "保险公司名称",
             type: "text"
           },
           {
-            prop: "totalorders",
-            label: "总单数",
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
             type: "text"
           },
           {
-            prop: "allLOtherFeevalue",
-            label: "跟单费总额",
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "noInvoicCommissionFeevalue",
+            label: "未开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "已开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "settleMentAmount",
+            label: "已开票已结算跟单费",
+            type: "text"
+          },
+          {
+            prop: "unSettledAmount",
+            label: "已开票未结算跟单费",
             type: "text"
           },
-
         ],
         loading: true,
         isPaginationShow: true,
         isShowIndex: true,
-        optBtns: [
-          {
-            type: 'primary',
-            label: '结算',
-            perm: 'sys:documentaryFees2:balance',
-            click: (row, index) => { return this.openBalanceFun(row) },
-          },
-          {
-            type: 'primary',
-            label: '详情',
-            click: (row, index) => { return this.openDetail(row) },
-          }
-        ]
       },
+      btnGroup:[
+      {
+        name:'导出',
+        click:(row, index) => {return this.handExport()},
+      }
+    ],
       tableData: [],
       formData: {},
-      DetailtableData: [],
-      balanceRow: {},
-      formDataList: {},
-      formDataAdd: {},
-      dialogVisible: false,
-      dialogVisiblepro: false,
-      dialogVisibleDetail: false,
-      detailDialogVisible: false,
-      formDataDetailId: '',
       pageData: {
         pageNum: 1,
         pageSize: 20,
@@ -275,94 +102,70 @@ export default {
         isNotCar: '1',
         isNotDocumentary: '1'
       },
-      rules: {
-        voucherNumber: [
-          { required: true, message: '请输入凭证号', trigger: 'blur' },
-        ],
-        contractId: [
-          { required: true, message: '请输入合同号', trigger: 'blur' },
-        ],
-        contractFileId: [
-          { required: true, message: '请上传合同', trigger: 'blur' },
-        ],
-      },
-      rulesAdd: {
-        otherFeevalue: [
-          { required: true, message: '请输入跟单费金额', trigger: 'blur' },
-        ],
-        otherFeerate: [
-          { required: true, message: '请输入跟单费比例', trigger: 'blur' },
-        ],
-      },
-      titleDetail: "新增"
     };
   },
   created() {
     this.findPage();
   },
   methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
     // 查询
-    handleSearchList() {
-      this.findPage();
+    handleSearchList(data) {
+      this.findPage(data);
     },
     //列表数据
     findPage(data) {
       this.tableConfig.loading = true;
       this.$api.task
-        .NonSettlementQuery(this.pageData)
+        .allOtherAmount({...this.pageData,...data,...this.formData})
         .then(res => {
-          if (res.data) {
-            this.tableData = res.data.content;
-            this.pageData.pageNum = res.data.pageNum;
-            this.pageData.pageSize = res.data.pageSize;
-            this.pageData.totalSize = res.data.totalSize;
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
             this.tableConfig.loading = false;
           }
+          else{
+            this.$message.error(res.msg)
+          }
         });
     },
-    closdialogVisible() {
-      this.dialogVisible = false;
-    },
-    closdialogVisiblePro() {
-      this.dialogVisiblepro = false;
-    },
-    closdialogVisibleDetail() {
-      this.dialogVisibleDetail = false;
-    },
-    detailclosdialogVisible() {
-      this.detailDialogVisible = false;
-    },
-    // 结算
-    openBalanceFun(row) {
-      this.dialogVisible = true
-      this.year = ''
-      this.formDataList = row
-    },
-    handleClick(row) {
-      this.balanceRow = row
-      this.formData = {}
-      this.dialogVisiblepro = true;
-    },
-    submit(formData) {
-      this.$refs[formData].validate((valid) => {
-        if (valid) {
-          this.$api.task.batchBalance({ ...this.formData, ids: this.formDataList.ids, totAmount: this.formDataList.allLOtherFeevalue }).then(res => {
-            if (res.code == "200") {
-              this.$message({
-                message: res.msg,
-                type: 'success'
-              })
-              this.dialogVisiblepro = false
-              this.year = ''
+    handExport(){
+      let signDateStart=''
+        let signDateEnd=''
+      if( this.$refs.templateTable.searchDataClone){
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
+        }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
+      this.$api.task.bxOtherExcel({...this.pageData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
+          .then(res => {
+            if (res.code==200) {
+               let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+                let a = document.createElement("a");
+                a.href = url;
+                a.download = "导出文件.xlsx";
+                a.click();
+                window.URL.revokeObjectURL(url);
             }
-            else {
+            else{
               this.$message.error(res.msg)
             }
           });
-        } else {
-          return false;
         }
-      });
     },
     tablePageChange(val) {
       this.pageData.pageSize = val;
@@ -372,142 +175,7 @@ export default {
       this.pageData.pageNum = val;
       this.findPage();
     },
-    // 上传图片的方法Start
-    beforeAvatarUpload(file) {
-      // var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
-      // const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
-      // const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
-      // const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
-      // if (!extension && !extension1 && !extension2 ) {
-      //   this.$message({
-      //     message: "只允许上传PDF和Word文件!",
-      //     type: "warning",
-      //   });
-      // }
-      // return extension && extension1 && extension2
-    },
-    //上传影像
-    httpRequest(options) {
-      let file = options.file;
-      const params = new FormData(); // 声明formData数据类型
-      params.append("multipartFile", file);
-      params.append("type", 'settle');
-      this.$api.letter.uploadFile(params).then(res => {
-        if (res.code == "200") {
-          this.$message({
-            message: '上传成功',
-            type: 'success'
-          })
-          this.formData.contractFileId = res.data.id
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      });
-    },
-    handleChange(val) {
-      this.year = val
-      let obj = {
-        agreementType: '2',
-        isNotCar: '1',
-        isNotDocumentary: '1',
-        documentaryFeesStatus: '0',
-        year: val,
-        companyId: this.formDataList.companyId,
-      }
-      this.$api.task.totalQuery(obj).then(res => {
-        if (res.code == "200") {
-          this.insuranceTableData = res.data.content
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    // 详情
-    openDetail(row) {
-      this.formDataList = row
-      this.formDataDetailId = row.ids
-      this.openDetailFun(row.ids)
-    },
-    openDetailFun(id) {
-      this.$api.task.NonSettldetail({ ids: id }).then(res => {
-        if (res.code == "200") {
-          this.DetailtableData = res.data
-          this.dialogVisibleDetail = true
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    addDetailData() {
-      // this.formDataAdd={}
-      this.titleDetail = '新增'
-      this.detailDialogVisible = true
-    },
-    detailUpload(row) {
-      this.$api.task.plyFeeUploadId(row.id).then(res => {
-        if (res.code == "200") {
-          this.$message({
-            message: res.msg,
-            type: 'success'
-          })
-
-          this.titleDetail = '编辑'
-          this.formDataAdd = res.data
-          this.detailDialogVisible = true
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      })
-    },
-    submitAdd(formDataAdd) {
-      this.$refs[formDataAdd].validate((valid) => {
-        if (valid) {
-          if (this.titleDetail == '新增') {
-            this.$api.task.plyFeeInsert({ ...this.formDataAdd,companyId:this.formDataList.companyId,isNotCar:'1' }).then(res => {
-              if (res.code == "200") {
-                 this.openDetailFun(res.msg)
-                this.detailDialogVisible = false
-              }
-              else {
-                this.$message.error(res.msg)
-              }
-            });
-          }
-          else{
-            this.$api.task.plyFeeUpload({...this.formDataAdd,companyId:this.formDataList.companyId}).then(res => {
-            if (res.code == "200") {
-                this.$message({
-                    message: res.msg,
-                    type: 'success'
-                })
-                this.openDetailFun(this.formDataDetailId)
-                this.detailDialogVisible=false
-            }
-            else{
-                this.$message.error(res.msg)
-            }
-            });
-          }
-
-        } else {
-          return false;
-        }
-      });
-    },
-    detailDetele(row) {
-      this.$api.task.plyFeeDelete({ id: row.id,isNotCar:'1', companyId:this.formDataList.companyId}).then(res => {
-        if (res.code == "200") {
-          this.openDetailFun(res.msg)
-        }
-        else {
-          this.$message.error(res.msg)
-        }
-      });
-    }
+   
   }
 };
 </script>

+ 141 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesSettled.vue

@@ -0,0 +1,141 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+        
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "已开票跟单费",
+            type: "text"
+          },
+          {
+            prop: "settleMentAmount",
+            label: "已开票已结算跟单费",
+            type: "text"
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+      },
+      tableData: [],
+      formData: {},
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '1',
+        isNotDocumentary: '1'
+      },
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 167 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryUnsettled.vue

@@ -0,0 +1,167 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+ 
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "未结算跟单费",
+            type: "text"
+          },
+          
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: 'primary',
+            label: '结算',
+            perm: 'sys:documentaryFees2:balance',
+            click: (row, index) => { return this.openBalanceFun(row) },
+          },
+        ]
+      },
+      tableData: [],
+      formData: {},
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '1',
+        isNotDocumentary: '1'
+      },
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList() {
+      this.findPage();
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    
+    // 结算
+    openBalanceFun(row) {
+      this.$api.task
+        .batchBalance(row)
+        .then(res => {
+          if (res.code==200) {
+            this.$message({
+              message: '操作成功' || res.msg,
+               type: 'success'
+            })
+           
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 219 - 185
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -1,67 +1,28 @@
 <template>
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
-    <!-- <kt-common-table 
-    permsButton3="sys:handlingFees:balance"
-    :data="pageResult" 
-    :columns="columns"  
-    :button3Name="'结算'"
-    @handleButton3="balanceFun"
-    :showBatchDelete="false" 
-    @findPage="findPage" >
-    </kt-common-table> -->
     <templateTable
+    custom
       :formList="formList"
+    ref="templateTable"
       :searchData.sync="searchData"
       :tableConfig="tableConfig"
       :data="tableData"
+      :btnGroup="btnGroup"
       @findPage="findPage"
       @handleSearchList="handleSearchList"
       :pagination="pageData"
+      @getList="getList"
     >
+    <div v-if="!Object.keys(moneyList).length == 0">
+    <el-row class="customStyle" >
+      <el-col :span="4">总手续费:{{moneyList.commissionFeevalue}}</el-col>
+      <el-col :span="4">未开票手续费:{{moneyList.noInvoicCommissionFeevalue}}</el-col>
+      <el-col :span="4">已开票已结算手续费:{{moneyList.readyCommissionFeevalue}}</el-col>
+      <el-col :span="4">已开票未结算手续费:{{moneyList.invoicCommissionFeevalue}}</el-col>
+    </el-row>
+  </div>
     </templateTable>
-    <el-dialog
-      v-dialogDrag
-      title="结算"
-      :visible.sync="dialogVisible"
-      width="40%"
-      @close="closdialogVisible"
-    >
-    <el-form :model="formData" :rules="rules" ref="formData" :inline="true" label-width="130px" size="small">
-        <el-row>
-            <el-col :span="12">
-                <el-form-item label="凭证号" prop="voucherNumber">
-                    <el-input v-model="formData.voucherNumber" ></el-input>
-                </el-form-item>
-            </el-col>
-            <el-col :span="12">
-                <el-form-item label="合同号" prop="contractId">
-                    <el-input v-model="formData.contractId"></el-input>
-                </el-form-item>
-            </el-col>
-            <el-col :span="24">
-                <el-form-item label="合同附件"  prop="contractFileId" style="width: 50%">
-                    <el-upload
-                        v-model="formData.contractFileId"
-                        class="upload-demo"
-                        action=""
-                        name="DX_00"
-                        :show-file-list="false"
-                        :http-request="httpRequest"
-                        :before-upload="beforeAvatarUpload"
-                    >
-                    <el-button size="small" type="primary">点击上传</el-button>
-                    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
-                    </el-upload>
-                    </el-form-item>
-            </el-col>
-        </el-row>
-    </el-form>
-    <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
-      </span>
-    </el-dialog>
   </div>
 </template>
   <script>
@@ -81,17 +42,79 @@ export default {
   },
   data() {
     return {
+      moneyList:{},
       searchData:{},
-        formList:[
+      formList:[
+       {
+          label: "车牌号",
+          prop: "licenseno",
+          type: "input",
+        },
         {
-          label: "订单号:",
-          prop: "orderno",
+          label: "被保人",
+          prop: "userId",
           type: "input",
-        },{
-          label: "车牌号:",
-          prop: "licenseno",
+        },
+        {
+          label: "保险公司",
+          prop: "companyName",
+          type: "company",
+        },
+       
+        {
+          label: "险种",
+          prop: "riskcode",
+          type: "input",
+        },
+        {
+          label: "保司机构",
+          prop: "partnerCompaniesName",
           type: "input",
         },
+       
+        {
+          label: "交强保单号",
+          prop: "policyno",
+          type: "input",
+        },
+        {
+          label: "商业保单号",
+          prop: "syPolicyno",
+          type: "input",
+        }, {
+          label: "非车保单号:",
+          prop: "noPolicyno",
+          type: "input",
+        },
+        {
+          label: "结算日期",
+          prop: "settlementTime",
+          type: "date",
+        }, {
+          label: "结算状态",
+          prop: "handlingFeesStatus",
+          type: "select",
+          options:[
+            {
+              label:'已结算',
+              value:'1'
+            },{
+              label:'未结算',
+              value:'0'
+            }
+          ],
+          
+        }, 
+        {
+          label: "创建日期",
+          prop: "createTime",
+          type: "date",
+        },
+        {
+          label: "签单日期",
+          prop: "signDate",
+          type: "datePicker",
+        },
     ],
     tableConfig:{
         columns: [
@@ -101,23 +124,23 @@ export default {
             type: "text"
           },
           {
-            prop: "noPolicyno",
-            label: "非车保单号",
+            prop: "signDate",
+            label: "签单日期",
             type: "text"
           },
           {
-            prop: "syPolicyno",
-            label: "商业保单号",
+            prop: "licenseno",
+            label: "车牌号",
             type: "text"
           },
           {
-            prop: "policyno",
-            label: "交强保单号",
+            prop: "userId",
+            label: "被保险人",
             type: "text"
           },
           {
-            prop: "deptId",
-            label: "机构",
+            prop: "companyName",
+            label: "保险公司",
             type: "text"
           },
           {
@@ -126,13 +149,8 @@ export default {
             type: "text"
           },
           {
-            prop: "payDate",
-            label: "出单时间",
-            type: "text"
-          },
-          {
-            prop: "Signdate",
-            label: "签单日期",
+            prop: "partnerCompaniesName",
+            label: "保司机构",
             type: "text"
           },
           {
@@ -145,63 +163,69 @@ export default {
             type: "text"
 
           },{
-            prop: "licenseno",
-            label: "车牌号",
+            prop: "policyno",
+            label: "交强保单号",
             type: "text"
 
+          },{
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },{
+            prop: "jqPremium",
+            label: "交强险保费",
+            type: "text"
           },{
             prop: "taxamount",
             label: "车船税",
             type: "text"
           },{
-            prop: "noTaxPremium",
-            label: "不含税保费",
+            prop: "syPremium",
+            label: "商业险保费",
             type: "text"
           },{
             prop: "commissionFeerate",
             label: "手续费比例",
             type: "text"
-
           },{
-            prop: "otherFeerate",
-            label: "其他费用比例",
+            prop: "jqSuperviseCostsProportion",
+            label: "交强手续费比例",
             type: "text"
-
           },{
-            prop: "commissionFeevalue",
-            label: "手续费金额",
+            prop: "sySuperviseCostsProportion",
+            label: "商业手续费比例",
             type: "text"
-
           },{
-            prop: "otherFeevalue",
-            label: "其他费用金额",
+            prop: "commissionFeevalue",
+            label: "手续费金额",
             type: "text"
 
           },{
             prop: "allFeeValue",
-            label: "总费用",
+            label: "应收金额",
             type: "text"
 
           },{
-            prop: "finalFeeValue",
-            label: "已结算费用",
+            prop: "createTime",
+            label: "创建日期",
             type: "text"
 
           },{
-            prop: "createTime",
-            label: "创建时间",
+            prop: "settlementTime",
+            label: "结算日期",
             type: "text"
+
           },{
-            prop: "voucherNumber",
-            label: "凭证号",
+            prop: "settlementUserId",
+            label: "结算人",
             type: "text"
           },{
-            prop: "contractId",
-            label: "合同号",
+            prop: "updateUserId",
+            label: "修改人",
             type: "text"
           },{
             prop: "handlingFeesStatus",
-            label: "手续费结算状态",
+            label: "结算状态",
             type: "statMap",
             options:[{
               value:'1',
@@ -215,26 +239,36 @@ export default {
         loading:true,
         isPaginationShow:true,
         isShowIndex: true,
-        optBtns:[
-        {
-            type:'primary',
-            label:'结算',
-            hide:(row)=>{
-              return row.handlingFeesStatus == 0?true:false
-            },
-            click:(row, index) => {return this.balanceFun(row)},
-        }
-        ]
+        // optBtns:[
+        // {
+        //     type:'primary',
+        //     label:'结算',
+        //     hide:(row)=>{
+        //       return row.handlingFeesStatus == 0?true:false
+        //     },
+        //     click:(row, index) => {return this.balanceFun(row)},
+        // },
+        // ]
     },
+    btnGroup:[
+      {
+        name:'批量开票',
+        click:(row, index) => {return this.balanceFunPro()},
+      },
+      {
+        name:'导出',
+        click:(row, index) => {return this.handExport()},
+      }
+    ],
     tableData: [],
-      formData: {},
       dialogVisible: false,
       pageData:{
         pageNum: 1,
         pageSize: 20,
-        agreementType: 2,
-        isNotCar :'1',
-        isOther:'0'
+        agreementType: '2',
+        isNotCar: '1',
+        isOther:'0',
+        handlingFeesStatus:'0'
       },
       formData:{},
       rules: {
@@ -255,111 +289,111 @@ export default {
   },
   methods: {
     // 查询
-    handleSearchList() {
-      this.findPage();
+    handleSearchList(data) {
+      this.$api.task
+          .totalAmount({agreementType:2,isNotDocumentary:'0',isNotCar:'1',...data})
+          .then(res => {
+            if (res.code==200) {
+                this.moneyList=res.data
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+      this.findPage(data);
     },
     //列表数据
     findPage(data) {
+      let signDateStart=''
+      let signDateEnd=''
+      if(data && data.signDate && data.signDate.length>0){
+        signDateStart=data.signDate[0]
+        signDateEnd=data.signDate[1]
+      }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeequery(this.pageData, )
+        .plyFeeQuery({...this.pageData,...data,signDateStart,signDateEnd})
         .then(res => {
-          if (res.data) {
-            // res.data.content.forEach(val=>val.handlingFeesStatus=val.handlingFeesStatus==1?'已结算':'未结算')
+          if (res.code==200) {
             this.tableData = res.data.content;
             this.pageData.pageNum = res.data.pageNum;
             this.pageData.pageSize = res.data.pageSize;
             this.pageData.totalSize = res.data.totalSize;
             this.tableConfig.loading = false;
           }
+          else{
+            this.tableConfig.loading = false;
+            this.$message.error(res.msg)
+          }
         });
     },
-    closdialogVisible() {
-      this.dialogVisible = false;
+    getList(data){
+      this.findPage(data)
     },
     // 结算
     balanceFun(row){
-        this.formData={
-            voucherNumber:'',
-            contractId:'',
-            contractFileId:'',
-            orderno:row.orderno,
-            policyno:row.policyno,
-            commissionFeevalue:row.commissionFeevalue,
-        }
-        this.dialogVisible=true
-       
+
     },
-     // 上传图片的方法Start
-     beforeAvatarUpload(file) {
-      // var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
-      // const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
-      // const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
-      // const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
-      // if (!extension && !extension1 && !extension2 ) {
-      //   this.$message({
-      //     message: "只允许上传PDF和Word文件!",
-      //     type: "warning",
-      //   });
-      // }
-      // return extension && extension1 && extension2
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
     },
-    //上传影像
-    httpRequest(options) {
-      let file = options.file;
-      const params = new FormData(); // 声明formData数据类型
-      params.append("multipartFile", file);
-      params.append("type", 'settle');
-      this.$api.letter.uploadFile(params).then(res => {
-        if (res.code == "200") {
-            this.$message({
-                message: '上传成功',
-                type: 'success'
-            })
-            this.formData.contractFileId=res.data.id
-        }
-        else{
-            this.$message.error(res.msg)
-        }
-      });
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+    handExport(){
+      this.assembly('bxHandlingExcel',1)
     },
-    submit(formData){
-        this.$refs[formData].validate((valid) => {
-          if (valid) {
-            this.$api.task.plyFeebalance({...this.formData,id:this.formData.contractFileId}).then(res => {
-            if (res.code == "200") {
-                this.$message({
-                    message: res.msg,
+    assembly(api,type){
+      if( this.$refs.templateTable.searchDataClone){
+        let signDateStart=''
+        let signDateEnd=''
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
+        }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
+      this.$api.task[api]({...this.pageData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
+          .then(res => {
+            if (res.code==200) {
+              if(type==1){
+               let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+                let a = document.createElement("a");
+                a.href = url;
+                a.download = "导出文件.xlsx";
+                a.click();
+                window.URL.revokeObjectURL(url);
+              }
+              this.$message({
+                    message: type==1?'导出成功':'批量开票成功' || res.msg,
                     type: 'success'
                 })
-                this.dialogVisible=false
                 this.findPage()
             }
             else{
-                this.$message.error(res.msg)
-            }
-            });
-            } else {
-                return false;
+              this.$message.error(res.msg)
             }
-        });
-       
-        
-    },
-    tablePageChange(val) {
-      this.pageData.pageSize = val;
-      this.findPage();
-    },
-    tableCurrentChange(val) {
-      this.pageData.pageNum = val;
-      this.findPage();
+          });
+        }
     },
-  
+    balanceFunPro(){
+      this.assembly('batchInvoicing',2)
   }
+}
 };
 </script>
-    
-  <style scoped>
 
+  <style scoped>
+.customStyle{
+    margin-bottom: 20px;
+    font-size: 14px;
+}
 </style>
-    

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

@@ -0,0 +1,168 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
+            <template slot="data">
+                <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+            </template>
+        </templateTable>
+    </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+    name: "baosi",
+    components: { KtCommonTable, templateTable,yearMonthYay },
+    created() {
+    },
+    computed: {
+        ...mapState({
+            perms: state => state.user.perms
+        })
+    },
+    data() {
+        return {
+            searchData: {},
+            formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+            tableConfig: {
+                columns: [
+                    {
+                        prop: "companyName",
+                        label: "保险公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "partnerCompaniesName",
+                        label: "合作公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "commissionFeevalue",
+                        label: "开票手续费",
+                        type: "text"
+                    },
+                    {
+                        prop: "invoicAmount",
+                        label: "结算手续费",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow: true,
+                isShowIndex: true,
+                // optBtns: [
+                //     {
+                //         type: 'primary',
+                //         label: '结算',
+                //         click: (row, index) => { return this.balanceFun(row) },
+                //     }
+                // ]
+            },
+            tableData: [],
+            pageData: {
+                pageNum: 1,
+                pageSize: 20,
+                agreementType: '2',
+                isNotCar: '1',
+                isNotDocumentary : '0',
+            },
+            formData: {},
+            
+        };
+    },
+    created() {
+        this.findPage();
+    },
+    methods: {
+        getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+        // 查询
+        handleSearchList() {
+            this.findPage();
+        },
+        //列表数据
+        findPage(data) {
+            if (data) {
+                this.pageData.pageNum = data.pageNum;
+                this.pageData.pageSize = data.pageSize;
+            }
+            this.tableConfig.loading = true;
+            this.$api.task
+                .totalBxAmount({...this.pageData,...this.formData})
+                .then(res => {
+                    if (res.code==200) {
+                        this.tableData = res.data;
+                        // this.pageData.pageNum = res.data.pageNum;
+                        // this.pageData.pageSize = res.data.pageSize;
+                        // this.pageData.totalSize = res.data.totalSize;
+                        this.tableConfig.loading = false;
+                    }
+                    else{
+                        this.tableConfig.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        getList(data) {
+            this.findPage(data)
+        },
+      
+        // 结算
+        balanceFun(row) {
+            this.$api.task
+                .batchBxBalance({ids:row.ids})
+                .then(res => {
+                    if (res.code==200) {
+                        this.$message({
+                            message: res.msg ||'操作成功',
+                            type: 'success'
+                        })
+                    }
+                    else{
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        tablePageChange(val) {
+            this.pageData.pageSize = val;
+            this.findPage();
+        },
+        tableCurrentChange(val) {
+            this.pageData.pageNum = val;
+            this.findPage();
+        },
+
+    }
+};
+</script>
+  
+<style scoped></style>
+  

+ 167 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue

@@ -0,0 +1,167 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
+            <template slot="data">
+                <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+            </template>
+        </templateTable>
+    </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+    name: "baosi",
+    components: {  templateTable,yearMonthYay },
+    created() {
+    },
+    computed: {
+        ...mapState({
+            perms: state => state.user.perms
+        })
+    },
+    data() {
+        return {
+            searchData: {},
+            formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+            tableConfig: {
+                columns: [
+                    {
+                        prop: "companyName",
+                        label: "保险公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "partnerCompaniesName",
+                        label: "合作公司名称",
+                        type: "text"
+                    },
+                    {
+                        prop: "commissionFeevalue",
+                        label: "总手续费",
+                        type: "text"
+                    },
+                    {
+                        prop: "invoicCommissionFeevalue",
+                        label: "已开票未结算手续费",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow: true,
+                isShowIndex: true,
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '结算',
+                        click: (row, index) => { return this.balanceFun(row) },
+                    }
+                ]
+            },
+            tableData: [],
+            pageData: {
+                pageNum: 1,
+                pageSize: 20,
+                agreementType: '2',
+                isNotCar: '1',
+                isNotDocumentary : '0',
+            },
+            formData: {},
+            
+        };
+    },
+    created() {
+        this.findPage();
+    },
+    methods: {
+        getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+        // 查询
+        handleSearchList() {
+            this.findPage();
+        },
+        //列表数据
+        findPage(data) {
+            if (data) {
+                this.pageData.pageNum = data.pageNum;
+                this.pageData.pageSize = data.pageSize;
+            }
+            this.tableConfig.loading = true;
+            this.$api.task
+                .totalBxAmount({...this.pageData,...this.formData})
+                .then(res => {
+                    if (res.code==200) {
+                        this.tableData = res.data;
+                        // this.pageData.pageNum = res.data.pageNum;
+                        // this.pageData.pageSize = res.data.pageSize;
+                        // this.pageData.totalSize = res.data.totalSize;
+                        this.tableConfig.loading = false;
+                    }
+                    else{
+                        this.tableConfig.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        getList(data) {
+            this.findPage(data)
+        },
+      
+        // 结算
+        balanceFun(row) {
+            this.$api.task
+                .batchBxBalance({ids:row.ids})
+                .then(res => {
+                    if (res.code==200) {
+                        this.$message({
+                            message: res.msg ||'操作成功',
+                            type: 'success'
+                        })
+                    }
+                    else{
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
+        tablePageChange(val) {
+            this.pageData.pageSize = val;
+            this.findPage();
+        },
+        tableCurrentChange(val) {
+            this.pageData.pageNum = val;
+            this.findPage();
+        },
+
+    }
+};
+</script>
+  
+<style scoped></style>
+  

+ 207 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/Notinvoiced.vue

@@ -0,0 +1,207 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+      @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="data">
+          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+      </template>
+    </templateTable>
+    <el-dialog title="开票" :visible.sync="dialogVisible" width="40%" @close="closdialogVisible">
+      <el-form :model="InvoicingData" :rules="rules" ref="InvoicingData" :inline="true" size="small" label-width="80px">
+        <el-row>
+          <el-col :span="10">
+            <el-form-item label="开票号" prop="contractId">
+              <el-input v-model="InvoicingData.contractId"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label="开票金额" prop="settlementAmount">
+              <el-input v-model="InvoicingData.settlementAmount"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submit('InvoicingData')">确 定</el-button>
+      </span>
+    </el-dialog>
+ 
+  </div>
+</template>
+<script>
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
+
+export default {
+  name: "baosi",
+  components: {  templateTable,yearMonthYay },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      year: '',
+      searchData: {},
+      formList: [
+                {
+                    label: "保险公司",
+                    prop: "companyName",
+                    type: "company",
+                },
+                {
+                    label: "合作公司名称",
+                    prop: "partnerCompaniesName",
+                    type: "input",
+                },
+                {
+                    label: "年月日",
+                    name: "data",
+                    type: "slot",
+                    },
+            ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "总跟单费",
+            type: "text"
+          },
+          {
+            prop: "noInvoicCommissionFeevalue",
+            label: "未开票跟单费",
+            type: "text"
+          },
+          
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: 'primary',
+            label: '开票',
+            click: (row, index) => { return this.openBalanceFun(row) },
+          },
+        ]
+      },
+      tableData: [],
+      formData: {},
+      InvoicingData: {},
+      formDataList:{},
+      dialogVisible: false,
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2,
+        isNotCar: '1',
+        isNotDocumentary: '1'
+        
+      },
+      rules: {
+        contractId: [
+            { required: true, message: '请输入开票号', trigger: 'blur' },
+          ],
+          settlementAmount: [
+            { required: true, message: '请输入开票金额', trigger: 'blur' },
+          ],
+      }
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    getYearData(val){
+      this.formData.year=val
+    },
+    getMonthData(val){
+      this.formData.month=val
+    },
+    getDayData(val){
+      this.formData.day=val
+    },
+    // 查询
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .then(res => {
+          if (res.code==200) {
+            this.tableData = res.data;
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+          else {
+              this.$message.error(res.msg)
+            }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    
+    // 开票
+    openBalanceFun(row) {
+      this.dialogVisible=true
+      this.formDataList=row
+      this.InvoicingData={}
+    },
+    submit(formData) {
+      this.$refs[formData].validate((valid) => {
+        if (valid) {
+            let data={ ...this.formDataList,...this.InvoicingData,}
+          this.$api.task.batchInvoic(data).then(res => {
+            if (res.code == "200") {
+              this.$message({
+                message: res.msg ||'操作成功',
+                type: 'success'
+              })
+              this.dialogVisible = false
+            }
+            else {
+              this.$message.error(res.msg)
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+   
+  }
+};
+</script>
+    
+<style scoped></style>
+    

+ 275 - 25
src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue

@@ -2,6 +2,7 @@
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
     <templateTable
+    ref="templateTable"
       :formList="formList"
       custom
       :searchData.sync="searchData"
@@ -12,14 +13,24 @@
       @handleSearchList="handleSearchList"
       :pagination="pageData"
     >
-    <div v-if="!Object.keys(moneyList).length === 0">
+    <template slot="导入">
+      <el-upload
+        class="upload-demo"
+        action="#"
+        :show-file-list="false"
+        :auto-upload="false"
+        :on-change="handImport">
+        <el-button size="small" type="primary">导入</el-button>
+      </el-upload>
+    </template>
+    <div v-if="!Object.keys(moneyList).length == 0">
     <el-row class="customStyle" >
-      <el-col :span="4">预收金额:{{moneyList.totalFeevalue}}</el-col>
-      <el-col :span="4">手续费金额:{{moneyList.commissionFeevalue}}</el-col>
-      <el-col :span="4">跟单费金额:{{moneyList.otherFeevalue}}</el-col>
-      <el-col :span="4">未结算金额:{{moneyList.readyTotalFeevalue}}</el-col>
-      <el-col :span="4">未结算手续费金额:{{moneyList.readyCommissionFeevalue}}</el-col>
-      <el-col :span="4">未结算跟单金额:{{moneyList.readyOtherFeevalue}}</el-col>
+      <el-col :span="4">预收金额:{{moneyList.totalFeevalue}}</el-col>
+      <el-col :span="4">手续费金额:{{moneyList.commissionFeevalue}}</el-col>
+      <el-col :span="4">跟单费金额:{{moneyList.otherFeevalue}}</el-col>
+      <el-col :span="4">未结算金额:{{moneyList.readyTotalFeevalue}}</el-col>
+      <el-col :span="4">未结算手续费金额:{{moneyList.readyCommissionFeevalue}}</el-col>
+      <el-col :span="4">未结算跟单金额:{{moneyList.readyOtherFeevalue}}</el-col>
     </el-row>
   </div>
     <template slot="data">
@@ -88,6 +99,45 @@
         <el-button size="small" type="primary" @click="submit()">确 定</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      title="编辑"
+      :visible.sync="dialogVisibleDetail"
+      width="55%"
+      :before-close="handleClose">
+      <el-form ref="form" :model="formDataList" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataList.commissionFeerate" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="交强手续费比例">
+              <el-input v-model="formDataList.jqSuperviseCostsProportion" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="商业手续费比例">
+              <el-input v-model="formDataList.sySuperviseCostsProportion" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="手续费金额">
+              <el-input v-model="formDataList.commissionFeevalue" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="应收金额">
+              <el-input v-model="formDataList.allFeeValue" class="inputType"></el-input>
+            </el-form-item>
+        </el-col>
+      </el-row> 
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleDetail = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmit">保存</el-button>
+  </span>
+  </el-dialog>
   </div>
 </template>
   <script>
@@ -108,6 +158,9 @@ export default {
   },
   data() {
     return {
+      formDataList:{},
+      formDataId:'',
+      dialogVisibleDetail:false,
       moneyList:{},
       searchData:{},
       tableDataselect:[],
@@ -190,6 +243,15 @@ export default {
       {
         name:'批量结算',
         click:(row, index) => {return this.balanceFunPro()},
+      },
+      {
+        name:'导入',
+        slot:true,
+        // click:(row, index) => {return this.handImport()},
+      },
+      {
+        name:'导出',
+        click:(row, index) => {return this.handExport()},
       }
     ],
     tableConfig:{
@@ -358,17 +420,96 @@ export default {
         loading:true,
         isPaginationShow:true,
         isShowIndex: true,
-        // optBtns:[
-        // {
-        //     type:'primary',
-        //     label:'结算',
-        //     hide:(row)=>{
-        //       return row.handlingFeesStatus == 0?true:false
-        //     },
-        //     click:(row, index) => {return this.balanceFun(row)},
-        // }
-        // ]
+        optBtns:[
+          {
+            type:'primary',
+            label:'编辑',
+            click:(row, index) => {return this.haldUpload(row)},
+        },
+        ]
     },
+    formTableData:[],
+      tableConfigDetail:{
+        columns: [
+          {
+            prop: "orderno",
+            label: "订单号(子订单)",
+            type: "text"
+          },
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text"
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "合作公司名称",
+            type: "text"
+          },
+          {
+            prop: "policyno",
+            label: "交强保单号",
+            type: "text"
+          },
+          {
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },
+          {
+            prop: "jqPremium",
+            label: "交强保费",
+            type: "text"
+          },
+          {
+            prop: "syPremium",
+            label: "商业保费",
+            type: "text"
+          },
+          {
+            prop: "jqNoTaxPremium",
+            label: "交强不含税保费",
+            type: "text"
+          },
+          {
+            prop: "syNoTaxPremium",
+            label: "商业不含税保费",
+            type: "text"
+          },
+          {
+            prop: "otherFeevalue",
+            label: "跟单费金额",
+            type: "text"
+          },
+          {
+            prop: "otherFeerate",
+            label: "跟单费比例",
+            type: "text"
+          },
+          {
+            prop: "jqOtherCostsProportion",
+            label: "交强跟单比例",
+            type: "text"
+          },
+          {
+            prop: "syOtherCostsProportion",
+            label: "商业跟单比例",
+            type: "text"
+          },
+          {
+            prop: "jqOtherCostsPremium",
+            label: "交强跟单金额",
+            type: "text"
+          },
+          {
+            prop: "syOtherCostsPremium",
+            label: "商业跟单金额",
+            type: "text"
+          },
+        
+        ],
+        loading: true,
+      },
     tableData: [],
       formData: {},
       dialogVisible: false,
@@ -378,10 +519,12 @@ export default {
         agreementType: '1',
         isNotCar:'0',
         isOther:'0',
+
+
         handlingFeesStatus:'0'
       },
       dataValue:'',
-      selectionOption:[]
+      selectionOption:[],
     };
   },
   created(){
@@ -424,6 +567,18 @@ export default {
     },
     // 查询
     handleSearchList(data) {
+      // if( this.formData.year ||  this.formData.month ||  this.formData.date){
+        this.$api.task
+          .totalAmount({...this.formData,agreeType:1,...data})
+          .then(res => {
+            if (res.code==200) {
+                this.moneyList=res.data
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+        // }
       this.findPage(data);
     },
     //列表数据
@@ -435,11 +590,9 @@ export default {
         signDateEnd=data.signDate[1]
       }
       else{
-        // data.signDate=[]
         signDateStart=''
         signDateEnd=''
       }
-      console.log(this.moneyList,333333);
       this.tableConfig.loading = true;
       this.$api.task
         .plyFeeQuery({...this.pageData,...data,... this.formData,signDateStart,signDateEnd} )
@@ -460,22 +613,83 @@ export default {
     closdialogVisible() {
       this.dialogVisible = false;
     },
+    handExport(){
+      let signDateStart=''
+        let signDateEnd=''
+      if( this.$refs.templateTable.searchDataClone){
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
+        }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
+    }
+    this.$api.task
+          .pinHandlingExcel({...this.pageData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
+          .then(res => {
+            if (res.code==200) {
+              let url = process.env.BASE_URL  + res.data; // 3.创建一个临时的url指向blob对象
+                let a = document.createElement("a");
+                a.href = url;
+                a.download = "导出文件.xlsx";
+                a.click();
+                window.URL.revokeObjectURL(url);
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    },
     balanceFunPro(){
-      if( this.formData.year ||  this.formData.month ||  this.formData.date){
+      if(( this.formData.year ||  this.formData.month ||  this.formData.date ) && this.$refs.templateTable.searchDataClone){
+        let signDateStart=''
+        let signDateEnd=''
+        if(this.$refs.templateTable.searchDataClone && this.$refs.templateTable.searchDataClone.signDate && this.$refs.templateTable.searchDataClone.signDate.length>0){
+          signDateStart=this.$refs.templateTable.searchDataClone.signDate[0]
+          signDateEnd=this.$refs.templateTable.searchDataClone.signDate[1]
+        }
+      else{
+        signDateStart=''
+        signDateEnd=''
+      }
         this.$api.task
-          .totalAmount({...this.formData,agreeType:1})
+          .batchPinBalance({...this.formData,...this.$refs.templateTable.searchDataClone,signDateStart,signDateEnd})
           .then(res => {
             if (res.code==200) {
-                this.moneyList={}
+              this.$message({
+                    message: '批量结算成功',
+                    type: 'success'
+                })
             }
             else{
               this.$message.error(res.msg)
             }
           });
         }
+        else{
+          this.$message.error('请先输入年月日和搜索条件!!!')
+
+        }
       // this.dataValue=''
       // this.dialogVisible=true
     },
+    handImport(file){
+      var file = file.raw;
+      let files = window.URL.createObjectURL(file); //转临时路径
+      this.carfrontImg = files;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "image");
+      this.$api.task.importData(params).then(res => {
+        if (res.code == "200") {
+          this.$message({ message: '导入成功', type: "success" });
+        } else {
+          this.$message({ message: res.msg, type: "warning" });
+        }
+      });
+    },
     // 结算
     balanceFun(row){
         this.$api.task.plyFeebalance(row).then(res => {
@@ -492,7 +706,22 @@ export default {
             }
           })
     },
- 
+    onSubmit(){
+      this.$api.task.plyFeeUpdate({...this.formDataList,id:this.formDataId})
+          .then(res => {
+          if (res.code==200) {
+            this.$message({
+                  message:  res.msg || '保存成功',
+                  type: 'success'
+              })
+              this.findPage()
+              this.dialogVisibleDetail=false
+          }
+          else{
+            this.$message.error(res.msg)
+          }
+        });
+    },
     submit(){
       this.$api.task
         .batchPinBalance(this.selectionOption[0]?this.selectionOption[0]:{})
@@ -518,7 +747,22 @@ export default {
       this.pageData.pageNum = val;
       this.findPage();
     },
-  
+    handleClose(){
+      this.dialogVisibleDetail=false
+    },  
+    haldUpload(row){
+      this.formDataId=row.id
+      this.dialogVisibleDetail=true
+      this.$api.task.plyFeeId(row.id)
+      .then(res => {
+        if (res.code==200) {
+          this.formDataList=res.data
+          }
+        else{
+          this.$message.error(res.msg)
+        }
+      });
+    },
   }
 };
 </script>
@@ -532,5 +776,11 @@ export default {
   >>> .dataTable .el-table__header-wrapper .el-table__header .el-checkbox {
  	 display: none;
 }
+.upload-demo{
+  display: inline-block;
+}
+.inputType{
+  width:180px
+}
 </style>
     

+ 1 - 1
src/views/FinancialManagement/CarInsurance/PlatformSettlement/yearMonthYay.vue

@@ -109,6 +109,6 @@ export default {
 </script>
 <style scoped>
 .col-md-2{
-    width: 100px;
+    width: 80px;
 }
 </style>