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

+ 2 - 0
src/http/moudules/finance/settlement.js

@@ -65,3 +65,5 @@ export const filesdownload = (data) => {
 }
 
 
+
+

+ 469 - 365
src/http/moudules/task.js

@@ -2,11 +2,11 @@ import axios from '../axios'
 
 // 查询所有订单任务列表
 export const findPage = (data) => {
-    return axios({
-        url: '/order/taskPools/query',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/order/taskPools/query',
+    method: 'post',
+    data
+  })
 }
 
 //任务池操作校验
@@ -21,577 +21,681 @@ export const checkOrdersEdit = (data) => {
 
 // 根据任务号查询订单报价信息
 export const getOrderInfoByOrderno = (data) => {
-    return axios({
-        url: '/order/taskPools/queryOrderInfo',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/order/taskPools/queryOrderInfo',
+    method: 'post',
+    data
+  })
 }
 //添加影像信息
 export const yonganImage = (data) => {
-    return axios({
-        url: '/api/yongan/UploadImage',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/yongan/UploadImage',
+    method: 'post',
+    data
+  })
 }
 // 根据任务号查询影像信息
 export const findTaskImage = (data) => {
-    return axios({
-        url: 'insTaskImage/findById?imgtype='+data.imgtype+'&taskid='+data.taskid,
-        method: 'get'
-    })
+  return axios({
+    url: 'insTaskImage/findById?imgtype=' + data.imgtype + '&taskid=' + data.taskid,
+    method: 'get'
+  })
 }
 //提交核保
 export const yonganAudit = (data) => {
-    return axios({
-        url: '/api/yongan/audit?orderno='+data.orderno+'&jqappoint='+data.jqappoint +'&syappoint='+data.syappoint,
-        method: 'post'
-    })
+  return axios({
+    url: '/api/yongan/audit?orderno=' + data.orderno + '&jqappoint=' + data.jqappoint + '&syappoint=' + data.syappoint,
+    method: 'post'
+  })
 }
 //提交核保
 export const renbaoAudit = (data) => {
-    return axios({
-        url: '/api/insRenbao/audit?orderno='+data.orderno+'&jqappoint='+data.jqappoint +'&syappoint='+data.syappoint,
-        method: 'post'
-    })
+  return axios({
+    url: '/api/insRenbao/audit?orderno=' + data.orderno + '&jqappoint=' + data.jqappoint + '&syappoint=' + data.syappoint,
+    method: 'post'
+  })
 }
 //核保审核
 export const saveAudit = (data) => {
-    return axios({
-        url: '/insOrder/saveAudit',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrder/saveAudit',
+    method: 'post',
+    data
+  })
 }
 // 关闭订单
 export const closeOrderno = (data) => {
-    return axios({
-        url: '/insOrder/closeOrder?quoteno='+data.quoteno,
-        method: 'post'
-    })
+  return axios({
+    url: '/insOrder/closeOrder?quoteno=' + data.quoteno,
+    method: 'post'
+  })
 }
 // 提交线下缴费
 export const savePayType = (data) => {
-    return axios({
-        url: '/insOrder/savePayType',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrder/savePayType',
+    method: 'post',
+    data
+  })
 }
 // 确认线下缴费
 export const savePayment = (data) => {
-    return axios({
-        url: '/insOrder/savePayment',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrder/savePayment',
+    method: 'post',
+    data
+  })
 }
 // 确认承保
 export const savePolicy = (data) => {
-    return axios({
-        url: '/insOrder/savePolicy',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrder/savePolicy',
+    method: 'post',
+    data
+  })
 }
 // 费用清单查询(承保确认时会自动生成费用清单)
 export const insFeeFindPage = (data) => {
-    return axios({
-        url: '/insFeeDetail/findPage',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insFeeDetail/findPage',
+    method: 'post',
+    data
+  })
 }
 // 费用详细信息查询
 export const insFeeQueryDetail = (data) => {
-    return axios({
-        url: '/insFeeDetail/queryDetail?orderno='+data,
-        method: 'get'
-    })
+  return axios({
+    url: '/insFeeDetail/queryDetail?orderno=' + data,
+    method: 'get'
+  })
 }
 //审核费用
 export const feeAudit = (data) => {
-    return axios({
-        url: '/insFeeDetail/feeAudit?auditid='+data.auditid +'&ordernos='+data.ordernos,
-        method: 'post',
-    })
+  return axios({
+    url: '/insFeeDetail/feeAudit?auditid=' + data.auditid + '&ordernos=' + data.ordernos,
+    method: 'post',
+  })
 }
 //保险公司费用结算查询
 export const queryInsCompanyFee = (data) => {
-    return axios({
-        url: '/insFeeDetail/queryInsCompanyFee',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insFeeDetail/queryInsCompanyFee',
+    method: 'post',
+    data
+  })
 }
 //与保险公司结算凭证
 export const insFeeSettle = (data) => {
-    return axios({
-        url: '/insFeeDetail/insFeeSettle?ordernos='+data.ordernos+'&settleno='+data.settleno,
-        method: 'post',
-    })
+  return axios({
+    url: '/insFeeDetail/insFeeSettle?ordernos=' + data.ordernos + '&settleno=' + data.settleno,
+    method: 'post',
+  })
 }
 
 //与业务人员结算凭证
 export const userFeeSettle = (data) => {
-    return axios({
-        url: '/insFeeDetail/userFeeSettle?ordernos='+data,
-        method: 'post',
-    })
+  return axios({
+    url: '/insFeeDetail/userFeeSettle?ordernos=' + data,
+    method: 'post',
+  })
 }
 
 //与业务人员结算凭证
 export const payApplyFindPage = (data) => {
-    return axios({
-        url: '/insPayApply/findPage',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insPayApply/findPage',
+    method: 'post',
+    data
+  })
 }
 
 //可提现余额提现审核
 export const insPayApplyAudit = (data) => {
-    return axios({
-        url: '/insPayApply/saveAudit',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insPayApply/saveAudit',
+    method: 'post',
+    data
+  })
 }
 
 // 可提现余额查询
 export const payAccount = (data) => {
-    return axios({
-        url: '/insPayApply/payAccount?userid='+data,
-        method: 'get'
+  return axios({
+    url: '/insPayApply/payAccount?userid=' + data,
+    method: 'get'
 
-    })
+  })
 }
 
 //推广账户清单查询
 export const queryCommission = (data) => {
-    return axios({
-        url: '/insFeeDetail/queryCommission',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insFeeDetail/queryCommission',
+    method: 'post',
+    data
+  })
 }
 
 // 机构费用清单查询
 export const queryDeptFee = (data) => {
-    return axios({
-        url: '/insFeeDetail/queryDeptFee',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insFeeDetail/queryDeptFee',
+    method: 'post',
+    data
+  })
 }
 
 // 机构费用账户余额查询
 export const deptAccount = (data) => {
-    return axios({
-        url: '/insPayApply/deptAccount?deptid=' + data,
-        method: 'get'
-    })
+  return axios({
+    url: '/insPayApply/deptAccount?deptid=' + data,
+    method: 'get'
+  })
 }
 
 
 // 提现申请
 export const deptApply = (data) => {
-    return axios({
-        url: '/insPayApply/deptApply?amount=' + data.amount+'&deptid='+data.deptid,
-        method: 'post'
-    })
+  return axios({
+    url: '/insPayApply/deptApply?amount=' + data.amount + '&deptid=' + data.deptid,
+    method: 'post'
+  })
 }
 
 // 根据任务号查询订单轨迹信息
 export const queryOrderHistory = (data) => {
-    return axios({
-        url: '/insOrder/queryOrderHistory?orderno=' + data,
-        method: 'post'
-    })
+  return axios({
+    url: '/insOrder/queryOrderHistory?orderno=' + data,
+    method: 'post'
+  })
 }
 
 // 任务规则保存
 export const insOrderSaveTask = (data) => {
-    return axios({
-        url: '/insOrderTask/saveTask',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrderTask/saveTask',
+    method: 'post',
+    data
+  })
 }
 
 
 // 任务规则分页查询
 export const insOrderTaskPage = (data) => {
-    return axios({
-        url: '/insOrderTask/findPage',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insOrderTask/findPage',
+    method: 'post',
+    data
+  })
 }
 
 
 // 任务转发
 export const forwarding = (data) => {
-    return axios({
-        url: '/order/taskPools/forwarding' ,
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/order/taskPools/forwarding',
+    method: 'post',
+    data
+  })
 }
 
 //上传保单
-export const uploadMore = (dirId,data) => {
-    return axios({
-        url: '/insFile/uploadMore?dirId='+dirId,
-        method: 'post',
-        data
-    })
+export const uploadMore = (dirId, data) => {
+  return axios({
+    url: '/insFile/uploadMore?dirId=' + dirId,
+    method: 'post',
+    data
+  })
 }
 
 //下载保单
 export const queryUploadList = (dirId) => {
-    return axios({
-        url: '/insFile/queryList?dirId='+dirId,
-        method: 'get'
-    })
+  return axios({
+    url: '/insFile/queryList?dirId=' + dirId,
+    method: 'get'
+  })
 }
 
 //删除保单
 export const deleteFile = (fileId) => {
-    return axios({
-        url: '/insFile/deleteFile?fileId='+fileId,
-        method: 'get'
-    })
+  return axios({
+    url: '/insFile/deleteFile?fileId=' + fileId,
+    method: 'get'
+  })
 }
 
 
 // 机构余额查询
 export const deptAccountPage = (data) => {
-    return axios({
-        url: '/insPayApply/deptAccountPage',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insPayApply/deptAccountPage',
+    method: 'post',
+    data
+  })
 }
 
 // 账户余额分页查询
 export const findPageAccount = (data) => {
-    return axios({
-        url: '/insPayApply/findPageAccount',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/insPayApply/findPageAccount',
+    method: 'post',
+    data
+  })
 }
 
 
 // 证件识别
 export const imgAI = (data) => {
-    return axios({
-        url: '/api/huanong/imgAI',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/huanong/imgAI',
+    method: 'post',
+    data
+  })
 }
 
 // vin校验
 export const vinModelQuery = (data) => {
-    return axios({
-        url: '/api/tianan/modelQuery',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/tianan/modelQuery',
+    method: 'post',
+    data
+  })
 }
 
 
 // 华农车辆实际价值
 export const huanongActualValue = (data) => {
-    return axios({
-        url: '/api/huanong/actualValue',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/huanong/actualValue',
+    method: 'post',
+    data
+  })
 }
 
 // 华农报价
 export const huanongQuote = (data) => {
-    return axios({
-        url: '/api/huanong/quote',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/huanong/quote',
+    method: 'post',
+    data
+  })
 }
 
 // 恒邦车辆实际价值
 export const hengbangActualValue = (data) => {
-    return axios({
-        url: '/api/hengbang/actualValue',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/hengbang/actualValue',
+    method: 'post',
+    data
+  })
 }
 
 // 恒邦报价
 export const hengbangQuote = (data) => {
-    return axios({
-        url: '/api/hengbang/quote',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/hengbang/quote',
+    method: 'post',
+    data
+  })
 }
 
 // 恒邦报价
 export const zhongmeiQuote = (data) => {
-    return axios({
-        url: '/zm/QuotedPrice',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/zm/QuotedPrice',
+    method: 'post',
+    data
+  })
 }
 
 // 天安报价
 export const tiananQuote = (data) => {
-    return axios({
-        url: '/api/tianan/quote',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/api/tianan/quote',
+    method: 'post',
+    data
+  })
 }
 
 // 导出Excel文件
-export const excelExport = (data) =>{
-	return axios({
-		url:'/excel/v1/**',
-		method:"post",
-		data
-	})
+export const excelExport = (data) => {
+  return axios({
+    url: '/excel/v1/**',
+    method: "post",
+    data
+  })
 }
 
 //导入excel文件
-export const uploadExcel = (data,type) =>{
-	return axios({
-		url:'/excel/uploadExcel?type='+type,
-		method:'post',
-		data
-	})
+export const uploadExcel = (data, type) => {
+  return axios({
+    url: '/excel/uploadExcel?type=' + type,
+    method: 'post',
+    data
+  })
 }
 
 //查询excel数据
-export const queryZMExcel = (data)=>{
-	return axios({
-		url:'/excel/queryZMExcel',
-		method:'post',
-		data
-	})
+export const queryZMExcel = (data) => {
+  return axios({
+    url: '/excel/queryZMExcel',
+    method: 'post',
+    data
+  })
 }
 
 //订单认领
-export const claimOrder = (data)=>{
-	return axios({
-		url:'/excel/ClaimOrder',
-		method:'post',
-		data
-	})
+export const claimOrder = (data) => {
+  return axios({
+    url: '/excel/ClaimOrder',
+    method: 'post',
+    data
+  })
 }
 
 //上传线下订单
-export const  uploadOfflineExcel= (data)=>{
-	return axios({
-		url:'excel/uploadOfflineExcel',
-		method:'post',
-		data
-	})
+export const uploadOfflineExcel = (data) => {
+  return axios({
+    url: 'excel/uploadOfflineExcel',
+    method: 'post',
+    data
+  })
 }
 
 //查询线下订单
-export const  queryOfflineExcel= (data)=>{
-	return axios({
-		url:'excel/queryOfflineExcel',
-		method:'post',
-		data
-	})
+export const queryOfflineExcel = (data) => {
+  return axios({
+    url: 'excel/queryOfflineExcel',
+    method: 'post',
+    data
+  })
 }
 
 //导出线下订单
-export const  findOfflineExcel= (data)=>{
-	return axios({
-		url:'excel/findOfflineExcel',
-		method:'post',
-		data
-	})
+export const findOfflineExcel = (data) => {
+  return axios({
+    url: 'excel/findOfflineExcel',
+    method: 'post',
+    data
+  })
 }
 
 //删除线下订单
-export const  deleteExcel= (data)=>{
-	return axios({
-		url:'excel/delete',
-		method:'post',
-		data
-	})
+export const deleteExcel = (data) => {
+  return axios({
+    url: 'excel/delete',
+    method: 'post',
+    data
+  })
 }
 
 //更新线下订单
-export const  updateExcel= (data)=>{
-	return axios({
-		url:'excel/update',
-		method:'post',
-		data
-	})
+export const updateExcel = (data) => {
+  return axios({
+    url: 'excel/update',
+    method: 'post',
+    data
+  })
 }
 
 //图表查询
-export const  tongJiOffline= (data)=>{
-	return axios({
-		url:'excel/tongJiOffline',
-		method:'post',
-		data
-	})
+export const tongJiOffline = (data) => {
+  return axios({
+    url: 'excel/tongJiOffline',
+    method: 'post',
+    data
+  })
 }
 
 // 对账系统批量结算
-export const  batchUpdate= (data,flag)=>{
-	return axios({
-		url:'/excel/batchUpdate?flag='+flag,
-		method:'post',
-		data
-	})
+export const batchUpdate = (data, flag) => {
+  return axios({
+    url: '/excel/batchUpdate?flag=' + flag,
+    method: 'post',
+    data
+  })
 }
 //导入查询
-export const  daoruchaxun= (data)=>{
-	return axios({
-		url:'/excel/uploadOfflineFile_query',
-		method:'post',
-		data
-	})
+export const daoruchaxun = (data) => {
+  return axios({
+    url: '/excel/uploadOfflineFile_query',
+    method: 'post',
+    data
+  })
 }
 //批量修改
-export const  piliangupdate= (data)=>{
-	return axios({
-		url:'/excel/batchUpdate_other',
-		method:'post',
-		data
-	})
+export const piliangupdate = (data) => {
+  return axios({
+    url: '/excel/batchUpdate_other',
+    method: 'post',
+    data
+  })
 }
-export const addorder=(data)=>{
-    return axios({
-        url:"/insOrder/addOrder",
-        method:"post",
-        data
-    })
+export const addorder = (data) => {
+  return axios({
+    url: "/insOrder/addOrder",
+    method: "post",
+    data
+  })
 
 }
-export const updateorder=(data)=>{
-    return axios({
-        url:"/insOrder/updateOrder",
-        method:"post",
-        data
-    })
+export const updateorder = (data) => {
+  return axios({
+    url: "/insOrder/updateOrder",
+    method: "post",
+    data
+  })
 
 }
 //渠道结算模块
-export const  payableStatement= (data)=>{
-	return axios({
-		url:'/inv/payableStatement/import',
-		method:'post',
-		data
-	})
-}
-export const  payableStatementList= (pageNum,pageSize)=>{
-	return axios({
-		url:'/inv/payableStatement?pageNum='+pageNum+'&pageSize='+pageSize,
-		method:'get',
-	})
+export const payableStatement = (data) => {
+  return axios({
+    url: '/inv/payableStatement/import',
+    method: 'post',
+    data
+  })
+}
+export const payableStatementList = (pageNum, pageSize) => {
+  return axios({
+    url: '/inv/payableStatement?pageNum=' + pageNum + '&pageSize=' + pageSize,
+    method: 'get',
+  })
 }
 //轮播图模块
-export const banneradd=(data)=>{
-    return axios({
-        url:"/sys/carouse",
-        method:"post",
-        data
-    })
-}
-export const bannerQuery=()=>{
-    return axios({
-        url:"/sys/carouse",
-        method:"get",
-    })
-}
-export const bannerDelete=(id)=>{
-    return axios({
-        url:"/sys/carouse/"+id,
-        method:"delete",
-    })
-}
-export const bannerPut=(data,id)=>{
-    return axios({
-        url:"/sys/carouse/"+id,
-        method:"put",
-        data
-    })
-}
-export  const insZhongmeiverifyPayment=(data)=>{
-    return axios({
-        url:"/insZhongmei/verifyPayment",
-        method:"post",
-        data
-    })
-}
-export const esmInsCompanyselectList= (data)=>{
-    return axios({
-        url:"/esmInsCompany/selectList",
-        method:"post",
-        data
-    })
+export const banneradd = (data) => {
+  return axios({
+    url: "/sys/carouse",
+    method: "post",
+    data
+  })
+}
+export const bannerQuery = () => {
+  return axios({
+    url: "/sys/carouse",
+    method: "get",
+  })
+}
+export const bannerDelete = (id) => {
+  return axios({
+    url: "/sys/carouse/" + id,
+    method: "delete",
+  })
+}
+export const bannerPut = (data, id) => {
+  return axios({
+    url: "/sys/carouse/" + id,
+    method: "put",
+    data
+  })
+}
+export const insZhongmeiverifyPayment = (data) => {
+  return axios({
+    url: "/insZhongmei/verifyPayment",
+    method: "post",
+    data
+  })
+}
+export const esmInsCompanyselectList = (data) => {
+  return axios({
+    url: "/esmInsCompany/selectList",
+    method: "post",
+    data
+  })
 }
 
 //订单查询接口
-export const queryPageOrder= (data)=>{
-    return axios({
-        url:"/fnc/carSettle/queryPageOrder",
-        method:"post",
-        data
-    })
+export const queryPageOrder = (data) => {
+  return axios({
+    url: "/fnc/carSettle/queryPageOrder",
+    method: "post",
+    data
+  })
 }
 
 //审核页面查询接口
-export const feeDetail= (data)=>{
-    return axios({
-        url:"/fnc/carSettle/feeDetail",
-        method:"post",
-        data
-    })
+export const feeDetail = (data) => {
+  return axios({
+    url: "/fnc/carSettle/feeDetail",
+    method: "post",
+    data
+  })
 }
 
 //审核接口
-export const auditFee= (data)=>{
-    return axios({
-        url:"/fnc/carSettle/auditFee",
-        method:"post",
-        data
-    })
+export const auditFee = (data) => {
+  return axios({
+    url: "/fnc/carSettle/auditFee",
+    method: "post",
+    data
+  })
 }
 
 // 海报列表接口
 export const posterList = (data) => {
-    return axios({
-        url: '/sysPoster/posterList',
-        method: 'post',
-        data
-    })
+  return axios({
+    url: '/sysPoster/posterList',
+    method: 'post',
+    data
+  })
 }
 // 添加海报接口
 export const addPoster = (data) => {
-    return axios({
-        url: '/sysPoster/addPoster',
-        method:"post",
-        data
-    })
+  return axios({
+    url: '/sysPoster/addPoster',
+    method: "post",
+    data
+  })
 }
 // 删除海报接口
 export const delPoster = (data) => {
-    return axios({
-        url: '/sysPoster/delPoster?id='+data,
-        method:"post",
+  return axios({
+    url: '/sysPoster/delPoster?id=' + data,
+    method: "post",
+
+  })
+}
+// ** 财务对账--应收应付  */
+
+//插入渠道账户
+export const channelAccountAdd = (data) => {
+  return axios({
+    url: '/InvChannelAccount/insertAccount',
+    method: "post",
+    data
+  })
+}
+//删除渠道账户
+export const channelAccountDelete = (data) => {
+  return axios({
+    url: '/InvChannelAccount/' + data,
+    method: "delete",
+
+  })
+}
+
+//修改渠道列表
+export const channelAccountUpdate = (data) => {
+  return axios({
+    url: '/InvChannelAccount/updateAccount',
+    method: "post",
+    data
+  })
+}
+//获取渠道列表
+export const channelAccountQuery = (data) => {
+  return axios({
+    url: '/InvChannelAccount/getAccount',
+    method: "post",
+    data
+  })
+}
+//获取应收结果
+export const accountsResult = (data) => {
+  return axios({
+    url: '/InsReceivable/receivableResult?yearMonthStr=' + data,
+    method: "get",
+  })
+}
 
-    })
+//获取签单日期结算来源表
+export const signingSourceResult = (data) => {
+  return axios({
+    url: '/InsReceivable/signingSourceResult?yearMonthStr=' + data,
+    method: "get",
+  })
+}
+//获取结算日期结算来源表
+export const settlementSourceResult = (data) => {
+  return axios({
+    url: '/InsReceivable/settlementSourceResult?yearMonthStr=' + data,
+    method: "get",
+  })
+}
+//结算来源表导入
+export const settlementExcel = (data) => {
+  return axios({
+    url: "/SettlementSource/excel?file=" + data,
+    method: "get",
+  })
 }
+//结算来源数据查询
+export const settlementExcelpage = (data) => {
+  return axios({
+    url: "/InsReceivable/settlementPage",
+    method: "post",
+    data
+  })
+}
+//结算来源修改
+export const settlementUpdate = (data) => {
+  return axios({
+    url: "/InsReceivable/updateSettlement",
+    method: "post",
+    data
+  })
+}
+//来源表导入
+export const SourceExcel = (data) => {
+  return axios({
+    url: "/Source/excel?file=" + data,
+    method: "get",
+  })
+}
+//来源表导入
+export const SourceExcelPage = (data) => {
+  return axios({
+    url: "/InsReceivable/receivablePage",
+    method: "post",
+    data
+  })
+}
+//来源修改
+export const SourceUpdate = (data) => {
+  return axios({
+    url: "/InsReceivable/receivableUpdates",
+    method: "post",
+    data
+  })
+}
+

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

@@ -240,7 +240,7 @@ export default {
       // 分页信息
       pageRequest: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
       },
       loading: false, // 加载标识
       selections: [], // 列表选中列

+ 451 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/AccountsReceivable.vue

@@ -0,0 +1,451 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        :model="pageRequest"
+        size="small"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="月份选择:">
+              <el-date-picker
+                v-model="mounthTime"
+                type="month"
+                @change="mounthChange"
+                value-format="yyyy-MM"
+                placeholder="选择月"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="1">
+            <el-button type="primary" size="small" @click="Search"
+              >查询</el-button
+            >
+          </el-col>
+          <el-col :span="1">
+            <!-- <el-upload
+              class="upload-demo"
+              :auto-upload="false"
+              :on-change="writeOffUpload"
+              action="###"
+            >
+              <el-button type="primary" size="small">数据导入</el-button>
+            </el-upload> -->
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="true"
+        :operationWidth="150"
+        :showOperation="false"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量导出"
+        @handlePrint="handlePrint"
+        button1Name="修改"
+        button1Background="#E6A23C"
+        @handleButton1="accountUpdate"
+        button1Icon=""
+        button2Name="删除"
+        button2Background="#F56C6C"
+        @handleButton2="accountDelete"
+        button2Icon=""
+      >
+      </kt-common-table>
+    </el-main>
+
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+import { searchkey } from "@/utils/validate.js";
+import { regionData, codeToText } from "element-china-area-data";
+export default {
+  components: {
+    KtCommonTable,
+  },
+  data() {
+    return {
+      xlcell: 6,
+      lgcell: 12,
+      mdcell: 12,
+      smcell: 24,
+      xscell: 24,
+      mounthTime:"",
+      //地区编码数据
+      areaOptions: regionData,
+      regionalCode: [],
+      accountsRequest: {
+        //录入信息
+        employeeId: "", //工号
+        province: "", //省
+        city: "", //市
+        county: "", //区
+        group: "", //组
+        member: "", //组员
+        account: "", //收款人账户
+        payee: "", // 收款人名称
+        bank: "", // 收款人开户行
+      },
+      accountsRules: {
+        employeeId: [
+          { required: true, message: "请输入工号", trigger: "blur" },
+        ],
+        province: [
+          { required: true, message: "省市区必填", trigger: "change" },
+        ],
+        group: [{ required: true, message: "请输入组", trigger: "blur" }],
+        member: [{ required: true, message: "请输入组员", trigger: "blur" }],
+        account: [
+          { required: true, message: "收款人账户必填", trigger: "blur" },
+        ],
+        payee: [
+          {
+            required: true,
+            message: "收款人必填",
+            trigger: "blur",
+          },
+        ],
+        bank: [{ required: true, message: "开户行必填", trigger: "blur" }],
+      },
+      pageRequest: {
+        //查询的默认条件
+
+      },
+      yearMonthStr: "", //组员
+      dateTime: [],
+      companyList: [],
+      institutionOptions: [],
+      dialogVisible: false,
+      monthvalue: "",
+      docOrderid: "",
+      plyNoList: [],
+      // 右侧列表查询数据Start
+      pageResult: [],
+      columns: [
+        //数据列
+        { prop: "day", label: " 日期", minWidth: 160 },
+        { prop: "yearmonth", label: " 月份", minWidth: 160 },
+        { prop: "insuranceName", label: "保险公司名称", minWidth: 160 },
+        { prop: "jqPremiumTax", label: "交强", minWidth: 160 },
+        { prop: "syPremiumTax", label: "商业", minWidth: 160 },
+        { prop: "taxamount", label: "车船税", minWidth: 160 },
+        { prop: "nonCarPremiumTax", label: "非车", minWidth: 160 },
+        { prop: "totalPermium", label: "保费合计", minWidth: 160 },
+        { prop: "premium", label: "手续费", minWidth: 100 },
+        { prop: "nonCopying", label: "车跟单", minWidth: 160 },
+        { prop: "totalReceivable", label: "应收合计", minWidth: 160 },
+      ],
+    };
+  },
+  created() {},
+  mounted() {},
+  methods: {
+    //省市区
+    areahandleChange(event) {
+      if (event[0] != null && event[1] != null && event[2] != null) {
+        this.accountsRequest.province = codeToText[event[0]];
+        this.accountsRequest.city = codeToText[event[1]];
+        this.accountsRequest.county = codeToText[event[2]];
+      }
+    },
+    Search() {
+      this.findPage();
+    },
+    mounthChange(e){
+      this.yearMonthStr=e;
+    },
+      // 右侧列表的方法Start
+      findPage(data) {
+      // 获取分页数据
+      let that = this;
+      that.$api.task
+        .accountsResult(that.yearMonthStr)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+    //修改
+    accountUpdate({ row, column }) {
+      this.dialogType = "edit";
+      this.dialogTitle = "渠道账户修改";
+      this.accountsRequest = row;
+      const cityObject = {
+        province: row.province,
+        city: row.city,
+        county: row.county,
+      };
+      this.regionalCode = searchkey(Object.values(cityObject));
+      this.dialogVisible = true;
+    },
+    //删除
+    accountDelete({ row, column }) {
+      this.$confirm("此操作将永久删除, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "error",
+      })
+        .then(() => {
+          this.$api.task.channelAccountDelete(row.id).then((res) => {
+            if (res.code == "200") {
+              this.$message({
+                type: "success",
+                message: "删除成功!",
+              });
+              this.findPage();
+            } else {
+              this.$message({
+                type: "error",
+                message: res.msg,
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    // //导入
+    // writeOffUpload(file) {
+    //   var file = file.raw;
+    //   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.writeOffRequest.dirid = res.data.id;
+    //   //   }
+    //   // });
+    // },
+    //导出
+    handlePrint() {
+      this.$api.task.excelExport(this.pageRequest).then((res) => {
+        console.log(res);
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel",
+        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
+        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+        let a = document.createElement("a");
+        a.href = url;
+        a.download = "手续费管理清单.xlsx";
+        a.click();
+        // 5.释放这个临时的对象url
+        window.URL.revokeObjectURL(url);
+      });
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      console.log(val);
+      if (val.length !== 0) {
+        this.pageRequest.deptId = val.at(-1);
+      } else {
+        this.pageRequest.deptId = "";
+      }
+    },
+    //-- formatter begin--
+    agreetypeFormatter(row, column) {
+      //协议类型
+      let agreetype = row.agreetype;
+      return CommonUtil.getDataName({
+        dataList: this.agreementtypeoptions,
+        value: "value",
+        label: "label",
+        data: agreetype,
+      });
+    },
+    inscompanyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return CommonUtil.getDataName({
+        dataList: this.global.insCompanyList,
+        value: "code",
+        label: "name",
+        data: inscompany,
+      });
+    },
+    timeFormatter(row, column) {
+      let time = this.transformTime(row.createTime);
+      return time;
+    },
+    totalmoenyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return (row.feeamount + row.disamount).toFixed(2);
+    },
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+
+    exDetails({ row, index }) {
+      let params = {
+        orderNo: row.orderno,
+      };
+      this.$api.task.feeDetail(params).then((res) => {
+        if (res.code == 200) {
+          res.data.kindinfo.map((ele, index) => {
+            switch (ele.kindCode) {
+              case "A":
+                ele.amount = "投保";
+                break;
+              case "D4":
+              case "SY_FJ_YBW2":
+                ele.unitAmount = this.toChinesNum(ele.unitAmount);
+                break;
+              case "MJ1":
+              case "MJ2":
+              case "MJ3":
+              case "MJ4":
+                ele.deductibleRate = ele.deductibleRate + "%";
+                break;
+              default:
+                ele.amount = this.toChinesNum(ele.amount);
+            }
+            return ele;
+          });
+          this.orderInfo = res.data;
+          this.quotedetailsdialogVisible = true;
+        } else {
+          this.$message.error("订单获取失败");
+        }
+      });
+    },
+    transformTime(date) {
+      var d = new Date(date);
+      var strYear = d.getFullYear();
+      var strMonth = d.getMonth() + 1;
+      var strDay = d.getDate();
+      var hh = d.getHours();
+      var minutes = d.getMinutes(); // 分
+      var Seconds = d.getSeconds();
+      if (hh < 10) {
+        hh = "0" + hh;
+      }
+      if (minutes < 10) {
+        minutes = "0" + minutes;
+      }
+      if (Seconds < 10) {
+        Seconds = "0" + Seconds;
+      }
+      if (strMonth < 10) {
+        strMonth = "0" + strMonth;
+      }
+      if (strDay < 10) {
+        strDay = "0" + strDay;
+      }
+      var datetime =
+        strYear +
+        "-" +
+        strMonth +
+        "-" +
+        strDay +
+        " " +
+        hh +
+        ":" +
+        minutes +
+        ":" +
+        Seconds;
+      return datetime;
+    },
+    toChinesNum(num) {
+      let changeNum = ["零", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
+      let unit = ["", "0", "00", "000", "0000"];
+      num = parseInt(num);
+      let getWan = (temp) => {
+        let strArr = temp.toString().split("").reverse();
+        let newNum = "";
+        let newArr = [];
+        strArr.forEach((item, index) => {
+          newArr.unshift(
+            item === "0" ? changeNum[item] : changeNum[item] + unit[index]
+          );
+        });
+        let numArr = [];
+        newArr.forEach((m, n) => {
+          if (m !== "零") numArr.push(n);
+        });
+        if (newArr.length > 1) {
+          newArr.forEach((m, n) => {
+            if (newArr[newArr.length - 1] === "零") {
+              if (n <= numArr[numArr.length - 1]) {
+                newNum += m;
+              }
+            } else {
+              newNum += m;
+            }
+          });
+        } else {
+          newNum = newArr[0];
+        }
+        return newNum;
+      };
+      let overWan = Math.floor(num / 10000);
+      let noWan = num % 10000;
+      if (noWan.toString().length < 4) {
+        noWan = "0" + noWan;
+      }
+      return overWan ? getWan(overWan) + "万" + getWan(noWan) : getWan(num);
+    },
+    lastMonth() {
+      // 获取当前日期
+      var currentDate = new Date();
+      // 获取上个月的年份和月份
+      var year = currentDate.getFullYear();
+      var month = currentDate.getMonth() - 1;
+      // 如果当前是1月份,则年份减1,月份变为12月
+      if (month < 0) {
+        year--;
+        month = 11;
+      }
+      // 获取上个月的最后一天
+      var lastDayOfLastMonth = new Date(year, month + 1, 0);
+      // 格式化为两位数的字符串
+      var formatNumber = function (num) {
+        return num < 10 ? "0" + num : num;
+      };
+      // 上月1日的日期字符串
+      var startDate = year + "-" + formatNumber(month + 1) + "-01";
+      // 上月最后一日的日期字符串
+      var endDate =
+        year +
+        "-" +
+        formatNumber(month + 1) +
+        "-" +
+        formatNumber(lastDayOfLastMonth.getDate());
+      return [startDate, endDate];
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+

+ 604 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/ChannelAccount.vue

@@ -0,0 +1,604 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        :model="pageRequest"
+        size="small"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col
+            :xs="xscell"
+            :sm="smcell"
+            :md="mdcell"
+            :lg="lgcell"
+            :xl="xlcell"
+          >
+            <el-form-item label="组员:">
+              <el-input
+                v-model="pageRequest.member"
+                placeholder="请输入组员姓名"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col
+            :xs="xscell"
+            :sm="smcell"
+            :md="mdcell"
+            :lg="lgcell"
+            :xl="xlcell"
+          >
+            <el-form-item label="收款人名称:">
+              <el-input
+                v-model="pageRequest.payee"
+                placeholder="请输入收款人名称"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col
+            :xs="xscell"
+            :sm="smcell"
+            :md="mdcell"
+            :lg="lgcell"
+            :xl="xlcell"
+          >
+          <el-button type="primary" size="small" @click="Search"
+              >查询</el-button
+            >
+            <el-button type="primary" size="small" @click="handleAdd"
+              >数据录入</el-button
+            >
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="false"
+        :operationWidth="150"
+        :showOperation="true"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量生成"
+        @handleSettled="handleTableSettled"
+        @handlePrint="handlePrint"
+        button1Name="修改"
+        button1Background="#E6A23C"
+        @handleButton1="accountUpdate"
+        button1Icon=""
+        button2Name="删除"
+        button2Background="#F56C6C"
+        @handleButton2="accountDelete"
+        button2Icon=""
+      >
+      </kt-common-table>
+    </el-main>
+    <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="60%">
+      <el-form
+        :model="accountsRequest"
+        :inline="true"
+        label-width="130px"
+        size="small"
+        ref="accountsForm"
+        :rules="accountsRules"
+      >
+        <el-form-item label="工号:" prop="employeeId">
+          <el-input
+            v-model="accountsRequest.employeeId"
+            autocomplete="off"
+            class="widths"
+            placeholder="输入工号"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="省市县选择:" prop="province">
+          <el-cascader
+            v-model="regionalCode"
+            :options="areaOptions"
+            @change="areahandleChange"
+            class="widths"
+            placeholder="选择省市区"
+            style="width: 220px"
+          ></el-cascader>
+        </el-form-item>
+        <el-form-item label="组:" prop="group">
+          <el-input
+            type="number"
+            v-model="accountsRequest.group"
+            autocomplete="off"
+            placeholder="输入几组"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="组员:" prop="member">
+          <el-input
+            type="text"
+            v-model="accountsRequest.member"
+            autocomplete="off"
+            placeholder="输入姓名"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="收款人账户:" prop="account">
+          <el-input
+            v-model="accountsRequest.account"
+            autocomplete="off"
+            placeholder="输入收款人账户"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="收款人名称:" prop="payee">
+          <el-input
+            type="text"
+            v-model="accountsRequest.payee"
+            class="widths"
+            placeholder="输入收款人名称"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="收款人开户行:" prop="bank">
+          <el-input
+            type="text"
+            v-model="accountsRequest.bank"
+            placeholder="输入收款人开户行"
+            style="width: 350px"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          @click="accountsSubmit('accountsForm')"
+          >提交</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+import { searchkey } from "@/utils/validate.js";
+import { regionData, codeToText } from "element-china-area-data";
+export default {
+  components: {
+    KtCommonTable,
+  },
+  data() {
+    return {
+      xlcell: 6,
+      lgcell: 12,
+      mdcell: 12,
+      smcell: 24,
+      xscell: 24,
+      dialogType: "add",
+      dialogTitle: "渠道账户录入",
+      //地区编码数据
+      areaOptions: regionData,
+      regionalCode: [],
+      accountsRequest: {
+        //录入信息
+        employeeId: "", //工号
+        province: "", //省
+        city: "", //市
+        county: "", //区
+        group: "", //组
+        member: "", //组员
+        account: "", //收款人账户
+        payee: "", // 收款人名称
+        bank: "", // 收款人开户行
+      },
+      accountsRules: {
+        employeeId: [
+          { required: true, message: "请输入工号", trigger: "blur" },
+        ],
+        province: [
+          { required: true, message: "省市区必填", trigger: "change" },
+        ],
+        group: [{ required: true, message: "请输入组", trigger: "blur" }],
+        member: [{ required: true, message: "请输入组员", trigger: "blur" }],
+        account: [
+          { required: true, message: "收款人账户必填", trigger: "blur" },
+        ],
+        payee: [
+          {
+            required: true,
+            message: "收款人必填",
+            trigger: "blur",
+          },
+        ],
+        bank: [{ required: true, message: "开户行必填", trigger: "blur" }],
+      },
+      pageRequest: {
+        //查询的默认条件
+        member: "", //组员
+        payee: "", // 收款人名称
+        pageNum: 1,
+        pageSize: 20,
+      },
+      dateTime: [],
+      companyList: [],
+      institutionOptions: [],
+      dialogVisible: false,
+      monthvalue: "",
+      docOrderid: "",
+      plyNoList: [],
+      // 右侧列表查询数据Start
+      pageResult: [],
+      columns: [
+        //数据列
+        { prop: "id", label: " 编号", minWidth: 160 },
+        { prop: "employeeId", label: "工号", minWidth: 160 },
+        { prop: "province", label: "省", minWidth: 160 },
+        { prop: "city", label: "地级市", minWidth: 160 },
+        { prop: "county", label: "县级市", minWidth: 160 },
+        { prop: "group", label: "组", minWidth: 160 },
+        { prop: "member", label: "组员", minWidth: 160 },
+        { prop: "account", label: "收款人账户", minWidth: 100 },
+        { prop: "payee", label: "收款人名称", minWidth: 160 },
+        { prop: "bank", label: "收款人开户行", minWidth: 160 },
+        { prop: "createName", label: "创建人", minWidth: 160 },
+        { prop: "createTime", label: "创建时间", minWidth: 160 },
+        { prop: "updateName", label: "更新人", minWidth: 160 },
+        { prop: "updateTime", label: "更新时间", minWidth: 160 },
+        // {
+        //   prop: "companyName",
+        //   label: "保险公司",
+        //   minWidth: 100,
+        //   formatter: this.inscompanyFormatter,
+        // },
+      ],
+    };
+  },
+  created() {
+  },
+  mounted() {},
+  methods: {
+    //省市区
+    areahandleChange(event) {
+      if (event[0] != null && event[1] != null && event[2] != null) {
+        this.accountsRequest.province = codeToText[event[0]];
+        this.accountsRequest.city = codeToText[event[1]];
+        this.accountsRequest.county = codeToText[event[2]];
+      }
+    },
+    Search(){
+      this.findPage();
+    },
+    handleAdd() {
+      this.dialogType = "add";
+      Object.keys(this.accountsRequest).forEach((key) => {
+        this.accountsRequest[key] = "";
+      });
+      this.regionalCode = [];
+      this.dialogVisible = true;
+    },
+    //插入事件
+    accountsSubmit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.dialogType);
+          if (this.dialogType == "add") {
+            this.$api.task
+              .channelAccountAdd(this.accountsRequest)
+              .then((res) => {
+                if (res.code == "200") {
+                  this.$message({
+                    message: "插入成功",
+                    type: "success",
+                  });
+                  this.findPage();
+                  this.dialogVisible = false;
+                } else {
+                  this.$message({
+                    message: res.msg,
+                    type: "error",
+                  });
+                }
+              });
+          } else if (this.dialogType == "edit") {
+            this.$api.task
+              .channelAccountUpdate(this.accountsRequest)
+              .then((res) => {
+                if (res.code == "200") {
+                  this.$message({
+                    message: "修改成功",
+                    type: "success",
+                  });
+                  this.findPage();
+                  this.dialogVisible = false;
+                } else {
+                  this.$message({
+                    message: res.msg,
+                    type: "error",
+                  });
+                }
+              });
+          }
+        }
+      });
+    },
+    //修改
+    accountUpdate({ row, column }) {
+      this.dialogType = "edit";
+      this.dialogTitle = "渠道账户修改";
+      this.accountsRequest = row;
+      const cityObject = {
+        province: row.province,
+        city: row.city,
+        county: row.county,
+      };
+      this.regionalCode = searchkey(Object.values(cityObject));
+      this.dialogVisible = true;
+    },
+    //删除
+    accountDelete({ row, column }) {
+      this.$confirm("此操作将永久删除, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "error",
+      })
+        .then(() => {
+          this.$api.task.channelAccountDelete(row.id).then((res) => {
+            if (res.code == "200") {
+              this.$message({
+                type: "success",
+                message: "删除成功!",
+              });
+              this.findPage();
+            } else {
+              this.$message({
+                type: "error",
+                message: res.msg,
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    handleTableSettled(ids) {
+      this.plyNoList = ids;
+      this.dialogVisible11 = true;
+    },
+
+    handlePrint() {
+      this.$api.task.excelExport(this.pageRequest).then((res) => {
+        console.log(res);
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel",
+        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
+        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+        let a = document.createElement("a");
+        a.href = url;
+        a.download = "手续费管理清单.xlsx";
+        a.click();
+        // 5.释放这个临时的对象url
+        window.URL.revokeObjectURL(url);
+      });
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      console.log(val);
+      if (val.length !== 0) {
+        this.pageRequest.deptId = val.at(-1);
+      } else {
+        this.pageRequest.deptId = "";
+      }
+    },
+    //-- formatter begin--
+    agreetypeFormatter(row, column) {
+      //协议类型
+      let agreetype = row.agreetype;
+      return CommonUtil.getDataName({
+        dataList: this.agreementtypeoptions,
+        value: "value",
+        label: "label",
+        data: agreetype,
+      });
+    },
+    inscompanyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return CommonUtil.getDataName({
+        dataList: this.global.insCompanyList,
+        value: "code",
+        label: "name",
+        data: inscompany,
+      });
+    },
+    timeFormatter(row, column) {
+      let time = this.transformTime(row.createTime);
+      return time;
+    },
+    totalmoenyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return (row.feeamount + row.disamount).toFixed(2);
+    },
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      let that = this;
+      that.$api.task
+        .channelAccountQuery(that.pageRequest)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+    exDetails({ row, index }) {
+      let params = {
+        orderNo: row.orderno,
+      };
+      this.$api.task.feeDetail(params).then((res) => {
+        if (res.code == 200) {
+          res.data.kindinfo.map((ele, index) => {
+            switch (ele.kindCode) {
+              case "A":
+                ele.amount = "投保";
+                break;
+              case "D4":
+              case "SY_FJ_YBW2":
+                ele.unitAmount = this.toChinesNum(ele.unitAmount);
+                break;
+              case "MJ1":
+              case "MJ2":
+              case "MJ3":
+              case "MJ4":
+                ele.deductibleRate = ele.deductibleRate + "%";
+                break;
+              default:
+                ele.amount = this.toChinesNum(ele.amount);
+            }
+            return ele;
+          });
+          this.orderInfo = res.data;
+          this.quotedetailsdialogVisible = true;
+        } else {
+          this.$message.error("订单获取失败");
+        }
+      });
+    },
+    transformTime(date) {
+      var d = new Date(date);
+      var strYear = d.getFullYear();
+      var strMonth = d.getMonth() + 1;
+      var strDay = d.getDate();
+      var hh = d.getHours();
+      var minutes = d.getMinutes(); // 分
+      var Seconds = d.getSeconds();
+      if (hh < 10) {
+        hh = "0" + hh;
+      }
+      if (minutes < 10) {
+        minutes = "0" + minutes;
+      }
+      if (Seconds < 10) {
+        Seconds = "0" + Seconds;
+      }
+      if (strMonth < 10) {
+        strMonth = "0" + strMonth;
+      }
+      if (strDay < 10) {
+        strDay = "0" + strDay;
+      }
+      var datetime =
+        strYear +
+        "-" +
+        strMonth +
+        "-" +
+        strDay +
+        " " +
+        hh +
+        ":" +
+        minutes +
+        ":" +
+        Seconds;
+      return datetime;
+    },
+    toChinesNum(num) {
+      let changeNum = ["零", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
+      let unit = ["", "0", "00", "000", "0000"];
+      num = parseInt(num);
+      let getWan = (temp) => {
+        let strArr = temp.toString().split("").reverse();
+        let newNum = "";
+        let newArr = [];
+        strArr.forEach((item, index) => {
+          newArr.unshift(
+            item === "0" ? changeNum[item] : changeNum[item] + unit[index]
+          );
+        });
+        let numArr = [];
+        newArr.forEach((m, n) => {
+          if (m !== "零") numArr.push(n);
+        });
+        if (newArr.length > 1) {
+          newArr.forEach((m, n) => {
+            if (newArr[newArr.length - 1] === "零") {
+              if (n <= numArr[numArr.length - 1]) {
+                newNum += m;
+              }
+            } else {
+              newNum += m;
+            }
+          });
+        } else {
+          newNum = newArr[0];
+        }
+        return newNum;
+      };
+      let overWan = Math.floor(num / 10000);
+      let noWan = num % 10000;
+      if (noWan.toString().length < 4) {
+        noWan = "0" + noWan;
+      }
+      return overWan ? getWan(overWan) + "万" + getWan(noWan) : getWan(num);
+    },
+    lastMonth() {
+      // 获取当前日期
+      var currentDate = new Date();
+      // 获取上个月的年份和月份
+      var year = currentDate.getFullYear();
+      var month = currentDate.getMonth() - 1;
+      // 如果当前是1月份,则年份减1,月份变为12月
+      if (month < 0) {
+        year--;
+        month = 11;
+      }
+      // 获取上个月的最后一天
+      var lastDayOfLastMonth = new Date(year, month + 1, 0);
+      // 格式化为两位数的字符串
+      var formatNumber = function (num) {
+        return num < 10 ? "0" + num : num;
+      };
+      // 上月1日的日期字符串
+      var startDate = year + "-" + formatNumber(month + 1) + "-01";
+      // 上月最后一日的日期字符串
+      var endDate =
+        year +
+        "-" +
+        formatNumber(month + 1) +
+        "-" +
+        formatNumber(lastDayOfLastMonth.getDate());
+      return [startDate, endDate];
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+

+ 170 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/SettlementCollect.vue

@@ -0,0 +1,170 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        size="small"
+        :model="formInline"
+        class="demo-form-inline"
+      >
+        <el-form-item label="选择年份:">
+          <el-date-picker
+            v-model="formInline.monthValue"
+            type="year"
+            value-format="yyyy"
+            placeholder="选择年"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="formQuery">查询</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="false"
+        :operationWidth="150"
+        :showOperation="false"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量生成"
+        @handleSettled="handleTableSettled"
+      >
+      </kt-common-table>
+    </el-main>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtCommonTable,
+  },
+  data() {
+    return {
+      //地区编码数据
+      regionalCode: [],
+      formInline: {
+        monthValue: "",
+      },
+      pageRequest: {
+        //查询的默认条件
+      },
+      dateTime: [],
+      companyList: [],
+      institutionOptions: [],
+      dialogVisible: false,
+      docOrderid: "",
+      plyNoList: [],
+      // 右侧列表查询数据Start
+      pageResult: [],
+      columns: [
+        //数据列
+        { prop: "yearmonth", label: "结算日期", minWidth: 160 },
+        { prop: "jqPremiumTax", label: "交强保费", minWidth: 160 },
+        { prop: "syPremiumTax", label: "商业保费", minWidth: 160 },
+        { prop: "nonCarPremiumTax", label: "非车保费", minWidth: 160 },
+        { prop: "writtenPremium", label: "签单保费", minWidth: 160 },
+        { prop: "settlementAmount", label: "应收金额", minWidth: 160 },
+      ],
+    };
+  },
+  created() {},
+  mounted() {
+    this.formInline.monthValue=this.monthProcess();
+  },
+  methods: {
+    formQuery() {
+      this.$api.settlement
+        .settlementSourceResult(this.formInline.monthValue)
+        .then((res) => {
+          this.pageResult = res.data;
+        });
+    },
+    handleTableSettled(ids) {
+      this.plyNoList = ids;
+      this.dialogVisible11 = true;
+    },
+
+    inscompanyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return CommonUtil.getDataName({
+        dataList: this.global.insCompanyList,
+        value: "code",
+        label: "name",
+        data: inscompany,
+      });
+    },
+    timeFormatter(row, column) {
+      let time = this.transformTime(row.createTime);
+      return time;
+    },
+    totalmoenyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return (row.feeamount + row.disamount).toFixed(2);
+    },
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+    // 右侧列表的方法Start
+    findPage(data) {
+      let year=this.monthProcess();
+      // 获取分页数据
+      let that = this;
+      that.$api.task
+        .settlementSourceResult(year)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+    monthProcess() {
+      // 创建一个新的Date对象,默认构造函数会生成当前日期和时间
+      const now = new Date();
+      // 获取当前年份
+      const year = now.getFullYear();
+
+      // // 获取当前月份,加1得到常规表示的月份
+      // const month = now.getMonth() + 1;
+
+      // // 转换月份为两位数字符串
+      // const formattedMonth = month.toString().padStart(2, "0");
+
+      // // 合并年份和月份为"年-月"格式
+      return `${year}`;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+

+ 400 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/SettlementSource.vue

@@ -0,0 +1,400 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        :model="pageRequest"
+        size="small"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="车牌号:">
+              <el-input
+                v-model="pageRequest.licenseno"
+                placeholder="请输入车牌号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="交强保单号:">
+              <el-input
+                v-model="pageRequest.jqPolicyId"
+                placeholder="请输入交强保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="商业保单号:">
+              <el-input
+                v-model="pageRequest.jqPolicyId"
+                placeholder="请输入商业保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="非车保单号:">
+              <el-input
+                v-model="pageRequest.nonCarPolicyId"
+                placeholder="请输入非车保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div class="flex j-end" style="margin-right: 100px">
+        <el-button
+          type="primary"
+          size="small"
+          @click="Search"
+          style="margin-right: 20px"
+          >查询</el-button
+        >
+        <el-upload
+          class="upload-demo"
+          :auto-upload="false"
+          :on-change="writeOffUpload"
+          action="###"
+          :show-file-list="false"
+        >
+          <el-button size="small" type="primary">数据导入</el-button>
+        </el-upload>
+      </div>
+    </div>
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="false"
+        :operationWidth="150"
+        :showOperation="true"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量生成"
+        @handleSettled="handleTableSettled"
+        @handlePrint="handlePrint"
+        button1Name="修改"
+        button1Background="#E6A23C"
+        @handleButton1="sourceUpdate"
+        button1Icon=""
+      >
+      </kt-common-table>
+    </el-main>
+    <el-dialog title="信息修改" :visible.sync="dialogFormVisible" width="60%">
+      <el-form
+        :model="updateform"
+        :inline="true"
+        label-width="130px"
+        size="small"
+      >
+        <el-form-item label="渠道:">
+          <el-input
+            v-model="updateform.channel"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="车牌号:">
+          <el-input
+            v-model="updateform.licenseno"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="被保险人:">
+          <el-input
+            v-model="updateform.insuredName"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="险种:">
+          <el-input
+            v-model="updateform.insuranceType"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="业务归属:">
+          <el-input
+            v-model="updateform.businessOwner"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="交强保费:">
+          <el-input
+            v-model="updateform.jqPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="商业保费:">
+          <el-input
+            v-model="updateform.syPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="非车保费:">
+          <el-input
+            v-model="updateform.nonCarPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="交强应收比例:">
+          <el-input
+            v-model="updateform.compulsoryExportRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="商业应收比例:">
+          <el-input
+            v-model="updateform.commercialExportRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="非车应收比例:">
+          <el-input
+            v-model="updateform.nonVehicleExportRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false"
+          >取 消</el-button
+        >
+        <el-button size="small" type="primary" @click="updateSubmit"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import KtButton from "@/views/Core/KtButton";
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtCommonTable,
+    KtButton,
+  },
+  data() {
+    return {
+      pageRequest: {
+        //查询的默认条件
+        pageNum: 1,
+        pageSize: 20,
+        licenseno: "",
+        jqPolicyId: "",
+        syPolicyId: "",
+        nonCarPolicyId: "",
+      },
+      // 右侧列表查询数据Start
+      dialogFormVisible: false,
+      pageResult: [],
+      updateform: {
+        channel: "",
+        licenseno: "",
+        insuredName: "",
+        insuranceType: "",
+        businessOwner: "",
+        jqPremiumTax: "",
+        syPremiumTax: "",
+        nonCarPremiumTax: "",
+        compulsoryExportRatio: "",
+        commercialExportRatio: "",
+        nonVehicleExportRatio: "",
+      },
+      columns: [
+        //数据列
+        { prop: "id", label: " 编号", minWidth: 160 },
+        { prop: "operationsTeam", label: "运营小组", minWidth: 160 },
+        { prop: "channelClassification", label: "渠道分级", minWidth: 160 },
+        { prop: "channel", label: "渠道", minWidth: 160 },
+        { prop: "employeeId", label: "工号", minWidth: 160 },
+        { prop: "signDate", label: "签单日期", minWidth: 160 },
+        { prop: "licenseno", label: "车牌号", minWidth: 160 },
+        { prop: "insuredName", label: "被保险人", minWidth: 100 },
+        { prop: "insuranceCompany", label: "保险公司", minWidth: 160 },
+        { prop: "insuranceType", label: "险种", minWidth: 160 },
+        { prop: "businessOwner", label: "业务归属", minWidth: 160 },
+        {
+          prop: "jqPolicyId",
+          label: "交强保单号",
+          minWidth: 160,
+        },
+        { prop: "syPolicyId", label: "商业保单号", minWidth: 160 },
+        { prop: "nonCarPolicyId", label: "非车保单号", minWidth: 160 },
+        { prop: "jqPremiumTax", label: "交强保费", minWidth: 160 },
+        { prop: "vehicleTax", label: "车船税", minWidth: 160 },
+        { prop: "syPremiumTax", label: "商业保费", minWidth: 160 },
+        { prop: "nonCarPremiumTax", label: "非车保费", minWidth: 160 },
+        { prop: "compulsoryExportRatio", label: "交强出口比例", minWidth: 160 },
+        { prop: "commercialExportRatio", label: "商业出口比例", minWidth: 160 },
+        { prop: "nonVehicleExportRatio", label: "非车出口比例", minWidth: 160 },
+        { prop: "settlementAmount", label: "结算金额", minWidth: 160 },
+        { prop: "agencySettlementTime", label: "代理结算时间", minWidth: 160 },
+      ],
+    };
+  },
+  created() {},
+  mounted() {},
+  methods: {
+    //附件上传
+    writeOffUpload(file) {
+      var file = file.raw;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "settle");
+      this.$api.letter.uploadFile(params).then((res) => {
+        if (res.code == "200") {
+          let url = process.env.BASE_URL + res.data.url;
+          this.$api.task.settlementExcel(url).then((res) => {});
+        }
+      });
+    },
+    handleTableSettled(ids) {
+      this.plyNoList = ids;
+      this.dialogVisible11 = true;
+    },
+    sourceUpdate({ row, column }) {
+      this.dialogFormVisible = true;
+      this.updateform = row;
+    },
+    Search() {
+      this.findPage();
+    },
+    updateSubmit() {
+      this.$api.task.settlementUpdate(this.updateform).then((res) => {
+        if (res.code == "200") {
+          this.$message({
+            type: "success",
+            message: res.msg,
+          });
+          this.dialogFormVisible = false;
+          this.findPage();
+        } else {
+          this.$message({
+            type: "error",
+            message: res.msg,
+          });
+        }
+      });
+    },
+
+    handlePrint() {
+      this.$api.task.excelExport(this.pageRequest).then((res) => {
+        console.log(res);
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel",
+        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
+        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+        let a = document.createElement("a");
+        a.href = url;
+        a.download = "手续费管理清单.xlsx";
+        a.click();
+        // 5.释放这个临时的对象url
+        window.URL.revokeObjectURL(url);
+      });
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      console.log(val);
+      if (val.length !== 0) {
+        this.pageRequest.deptId = val.at(-1);
+      } else {
+        this.pageRequest.deptId = "";
+      }
+    },
+    //-- formatter begin--
+    agreetypeFormatter(row, column) {
+      //协议类型
+      let agreetype = row.agreetype;
+      return CommonUtil.getDataName({
+        dataList: this.agreementtypeoptions,
+        value: "value",
+        label: "label",
+        data: agreetype,
+      });
+    },
+    inscompanyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return CommonUtil.getDataName({
+        dataList: this.global.insCompanyList,
+        value: "code",
+        label: "name",
+        data: inscompany,
+      });
+    },
+    timeFormatter(row, column) {
+      let time = this.transformTime(row.createTime);
+      return time;
+    },
+    totalmoenyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return (row.feeamount + row.disamount).toFixed(2);
+    },
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      let that = this;
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      that.$api.task
+        .settlementExcelpage(that.pageRequest)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+

+ 169 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/SigningCollect.vue

@@ -0,0 +1,169 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        size="small"
+        :model="formInline"
+        class="demo-form-inline"
+      >
+        <el-form-item label="选择年份:">
+          <el-date-picker
+            v-model="formInline.monthValue"
+            type="year"
+            value-format="yyyy"
+            placeholder="选择年"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="formQuery">查询</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="false"
+        :operationWidth="150"
+        :showOperation="false"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量生成"
+        @handleSettled="handleTableSettled"
+      >
+      </kt-common-table>
+    </el-main>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtCommonTable,
+  },
+  data() {
+    return {
+      //地区编码数据
+      regionalCode: [],
+      formInline: {
+        monthValue: "2024",
+      },
+      pageRequest: {
+        //查询的默认条件
+      },
+      dateTime: [],
+      companyList: [],
+      institutionOptions: [],
+      dialogVisible: false,
+      docOrderid: "",
+      plyNoList: [],
+      // 右侧列表查询数据Start
+      pageResult: [],
+      columns: [
+        //数据列
+        { prop: "yearmonth", label: "签单日期", minWidth: 160 },
+        { prop: "jqPremiumTax", label: "交强保费", minWidth: 160 },
+        { prop: "syPremiumTax", label: "商业保费", minWidth: 160 },
+        { prop: "nonCarPremiumTax", label: "非车保费", minWidth: 160 },
+        { prop: "writtenPremium", label: "签单保费", minWidth: 160 },
+        { prop: "settlementAmount", label: "应收金额", minWidth: 160 },
+      ],
+    };
+  },
+  created() {},
+  mounted() {
+    this.formInline.monthValue=this.monthProcess();
+  },
+  methods: {
+    formQuery() {
+      this.$api.task
+        .signingSourceResult(this.formInline.monthValue)
+        .then((res) => {
+          this.pageResult = res.data;
+        });
+    },
+    handleTableSettled(ids) {
+      this.plyNoList = ids;
+      this.dialogVisible11 = true;
+    },
+
+    inscompanyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return CommonUtil.getDataName({
+        dataList: this.global.insCompanyList,
+        value: "code",
+        label: "name",
+        data: inscompany,
+      });
+    },
+    timeFormatter(row, column) {
+      let time = this.transformTime(row.createTime);
+      return time;
+    },
+    totalmoenyFormatter(row, column) {
+      //协议类型
+      let inscompany = row.inscompany;
+      return (row.feeamount + row.disamount).toFixed(2);
+    },
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+    // 右侧列表的方法Start
+    findPage(data) {
+        let year=this.monthProcess();
+      // 获取分页数据
+      let that = this;
+      that.$api.task
+        .signingSourceResult(year)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+    monthProcess() {
+      // 创建一个新的Date对象,默认构造函数会生成当前日期和时间
+      const now = new Date();
+      // 获取当前年份
+      const year = now.getFullYear();
+
+      // // 获取当前月份,加1得到常规表示的月份
+      // const month = now.getMonth() + 1;
+
+      // // 转换月份为两位数字符串
+      // const formattedMonth = month.toString().padStart(2, "0");
+
+      // // 合并年份和月份为"年-月"格式
+      return `${year}`;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+

+ 395 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/Source.vue

@@ -0,0 +1,395 @@
+<template>
+  <div>
+    <div class="p-2">
+      <el-form
+        :inline="true"
+        :model="pageRequest"
+        size="small"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="车牌号:">
+              <el-input
+                v-model="pageRequest.licenseno"
+                placeholder="请输入车牌号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="交强保单号:">
+              <el-input
+                v-model="pageRequest.jqPolicyId"
+                placeholder="请输入交强保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="商业保单号:">
+              <el-input
+                v-model="pageRequest.jqPolicyId"
+                placeholder="请输入商业保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="非车保单号:">
+              <el-input
+                v-model="pageRequest.nonCarPolicyId"
+                placeholder="请输入非车保单号"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div class="flex j-end" style="margin-right: 100px">
+        <el-button
+          type="primary"
+          size="small"
+          @click="Search"
+          style="margin-right: 20px"
+          >查询</el-button
+        >
+        <el-upload
+          class="upload-demo"
+          :auto-upload="false"
+          :on-change="writeOffUpload"
+          action="###"
+          :show-file-list="false"
+        >
+          <el-button size="small" type="primary">数据导入</el-button>
+        </el-upload>
+      </div>
+    </div>
+    <el-main ref="elMain" style="padding: 0px">
+      <kt-common-table
+        :SerialShow="false"
+        :operationWidth="150"
+        :showOperation="true"
+        permsDelete="sys:user:delete"
+        :showBatchDelete="false"
+        :showBatchSettled="false"
+        :showBatchPrint="false"
+        permsButton1="sys:user:edit"
+        permsButton2="sys:user:edit"
+        permsButton3="sys:user:edit"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        keyName="policyno"
+        settledName="批量生成"
+        @handleSettled="handleTableSettled"
+        @handlePrint="handlePrint"
+        button1Name="修改"
+        button1Background="#E6A23C"
+        @handleButton1="sourceUpdate"
+        button1Icon=""
+      >
+      </kt-common-table>
+    </el-main>
+    <el-dialog title="信息修改" :visible.sync="dialogFormVisible" width="60%">
+      <el-form
+        :model="updateform"
+        :inline="true"
+        label-width="130px"
+        size="small"
+      >
+        <el-form-item label="险种:">
+          <el-input
+            v-model="updateform.risk"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="交强保费:">
+          <el-input
+            v-model="updateform.jqPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="商业保费:">
+          <el-input
+            v-model="updateform.syPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="非车保费:">
+          <el-input
+            v-model="updateform.nonCarPremiumTax"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="被保险人:">
+          <el-input
+            v-model="updateform.insuredName"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="车牌号:">
+          <el-input
+            v-model="updateform.licenseno"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="交强应收比例:">
+          <el-input
+            v-model="updateform.jqReceivableRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="商业应收比例:">
+          <el-input
+            v-model="updateform.syReceivableRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="非车应收比例:">
+          <el-input
+            v-model="updateform.nonCarReceivableRatio"
+            autocomplete="off"
+            class="widths"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false"
+          >取 消</el-button
+        >
+        <el-button size="small" type="primary" @click="updateSubmit"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtCommonTable,
+  },
+  data() {
+    return {
+      pageRequest: {
+        //查询的默认条件
+        pageNum: 1,
+        pageSize: 20,
+        licenseno: "",
+        jqPolicyId: "",
+        syPolicyId: "",
+        nonCarPolicyId: "",
+      },
+      dialogFormVisible: false,
+      // 右侧列表查询数据Start
+      pageResult: [],
+      updateform: {
+        risk: "",
+        jqPremiumTax: "",
+        syPremiumTax: "",
+        nonCarPremiumTax: "",
+        insuredName: "",
+        licenseno: "",
+        jqReceivableRatio: "",
+        syReceivableRatio: "",
+        nonCarReceivableRatio: "",
+      },
+      columns: [
+        //数据列
+        { prop: "id", label: " 编号", minWidth: 160 },
+        { prop: "insuranceId", label: "保司编码", minWidth: 160 },
+        { prop: "insuranceName", label: "保司名称", minWidth: 160 },
+        { prop: "insuranceDept", label: "保司机构", minWidth: 160 },
+        { prop: "insuranceDeptId", label: "保司机构代码", minWidth: 100 },
+        { prop: "risk", label: "险种", minWidth: 160, editable: true },
+        { prop: "jqPolicyId", label: "交强保单号", minWidth: 160 },
+        { prop: "jqPremiumTax", label: "交强险保费", minWidth: 160 },
+        {
+          prop: "jqPremium",
+          label: "交强险保费不含税",
+          minWidth: 160,
+        },
+        { prop: "syPolicyId", label: "商业保单号", minWidth: 160 },
+        { prop: "syPremiumTax", label: "商业险保费", minWidth: 160 },
+        { prop: "syPremium", label: "商业险保费不含税", minWidth: 160 },
+        { prop: "nonCarPolicyId", label: "非车保单号", minWidth: 160 },
+        { prop: "nonCarPremiumTax", label: "非车保费", minWidth: 160 },
+        { prop: "nonCarPremium", label: "非车险保费不含税", minWidth: 160 },
+        { prop: "insuredName", label: "被保险人", minWidth: 160 },
+        { prop: "licenseno", label: "车牌号", minWidth: 160 },
+        { prop: "signingTime", label: "出单日期", minWidth: 160 },
+        { prop: "clearingTime", label: "结算日期", minWidth: 160 },
+        { prop: "taxamount", label: "车船税", minWidth: 160 },
+        { prop: "jqReceivableRatio", label: "交强应收比例", minWidth: 160 },
+        { prop: "jqPremiumRatio", label: "交强手续费比例", minWidth: 160 },
+        { prop: "jqNonCopyingRatio", label: "交强非跟单比例", minWidth: 160 },
+        { prop: "syReceivableRatio", label: "商业应收比例", minWidth: 160 },
+        { prop: "syPremiumRatio", label: "商业手续费比例", minWidth: 160 },
+        { prop: "syNonCopyingRatio", label: "商业非跟单比例", minWidth: 160 },
+        { prop: "nonCarReceivableRatio", label: "非车应收比例", minWidth: 160 },
+        { prop: "nonCarPremiumRatio", label: "非车手续费比例", minWidth: 160 },
+        {
+          prop: "nonCarNonCopyingRatio",
+          label: "非车非跟单比例",
+          minWidth: 160,
+        },
+        { prop: "premium", label: "手续费金额", minWidth: 160 },
+        { prop: "nonCopying", label: "非跟单金额", minWidth: 160 },
+        { prop: "receivable", label: "应收金额", minWidth: 160 },
+        {
+          prop: "maxJqReceivableRatio",
+          label: "最大交强应付比例",
+          minWidth: 160,
+        },
+        {
+          prop: "maxSyReceivableRatio",
+          label: "最大商业应付比例",
+          minWidth: 160,
+        },
+        {
+          prop: "maxNonCarReceivableRatio",
+          label: "最大非车应付比例",
+          minWidth: 160,
+        },
+        { prop: "maxReceivable", label: "最大应付金额", minWidth: 160 },
+        { prop: "clearingState", label: "结算状态", minWidth: 160 },
+      ],
+      row: {},
+    };
+  },
+  created() {},
+  mounted() {},
+  methods: {
+    //附件上传
+    writeOffUpload(file) {
+      var file = file.raw;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", "settle");
+      this.$api.letter.uploadFile(params).then((res) => {
+        if (res.code == "200") {
+          let url = process.env.BASE_URL + res.data.url;
+          this.$api.task.SourceExcel(url).then((res) => {
+            if (res.code == "200") {
+              this.$message({
+                type: "success",
+                message: res.msg,
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: res.msg,
+              });
+            }
+          });
+        }
+      });
+    },
+    handleTableSettled(ids) {
+      this.plyNoList = ids;
+      this.dialogVisible11 = true;
+    },
+    Search() {
+      this.findPage();
+    },
+    sourceUpdate({ row, column }) {
+      this.dialogFormVisible = true;
+      this.updateform = row;
+    },
+    updateSubmit() {
+      this.$api.task.SourceUpdate(this.updateform).then((res) => {
+        if (res.code == "200") {
+          this.$message({
+            type: "success",
+            message: res.msg,
+          });
+          this.dialogFormVisible = false;
+          this.findPage();
+        } else {
+          this.$message({
+            type: "error",
+            message: res.msg,
+          });
+        }
+      });
+    },
+    handlePrint() {
+      this.$api.task.excelExport(this.pageRequest).then((res) => {
+        console.log(res);
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel",
+        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
+        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+        let a = document.createElement("a");
+        a.href = url;
+        a.download = "手续费管理清单.xlsx";
+        a.click();
+        // 5.释放这个临时的对象url
+        window.URL.revokeObjectURL(url);
+      });
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      console.log(val);
+      if (val.length !== 0) {
+        this.pageRequest.deptId = val.at(-1);
+      } else {
+        this.pageRequest.deptId = "";
+      }
+    },
+    //-- formatter begin--
+    //点击查询按钮
+    //--数据字典 begin --
+    getDictItems: function (typeName) {
+      let that = this;
+      that.$api.dict
+        .findByLableName(typeName)
+        .then(function (res) {
+          console.log(res);
+          that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
+        })
+        .catch(function (error) {
+          that[typeName + "options"] = [];
+        });
+    },
+    //--数据字典 end --
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      let that = this;
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      that.$api.task
+        .SourceExcelPage(that.pageRequest)
+        .then((res) => {
+          that.pageResult = res.data;
+        })
+        .then(data != null ? data.callback : "");
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.widths {
+  width: 220px;
+}
+</style>
+