Procházet zdrojové kódy

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

lihongxiao před 2 roky
rodič
revize
0ae1bffd89

+ 19 - 3
src/http/moudules/expense.js

@@ -230,10 +230,11 @@ export const getAccountOperateDetail = (id) => {
  * 
  */
 //获取开票列表
-export const getInvAccountIncoice = () => {
+export const getInvAccountIncoice = (data) => {
     return axios({
-        url: '/invAccountIncoice',
-        method: "get"
+        url: '/invAccountIncoice/page',
+        method: "post",
+        data
     })
 }
 //新增开票
@@ -251,4 +252,19 @@ export const putInvAccountIncoice = (data) => {
         method: "put",
         data
     })
+}
+//撤销开票
+export const deleteInvAccountIncoice = (id) => {
+    return axios({
+        url: '/invAccountIncoice?id='+id,
+        method: "delete",
+    })
+}
+
+//开票详情
+export const detailInvAccountIncoice = (id) => {
+    return axios({
+        url: '/invAccountIncoice/byId/'+id,
+        method: "get",
+    })
 }

+ 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: [], // 列表选中列

+ 50 - 39
src/views/FinancialManagement/ExpenseManagement/ExpenseApplyFor.vue

@@ -118,8 +118,8 @@
                   placeholder="单位"
                 >
                   <el-option
-                    v-for="(item,index) in collectionData"
-                    :key="item.accountId+''+index"
+                    v-for="(item, index) in collectionData"
+                    :key="item.accountId + '' + index"
                     :label="item.name"
                     :value="item.bankCardNum"
                   >
@@ -128,9 +128,9 @@
               </el-form-item>
             </el-col>
             <el-col style="display: flex; justify-content: end" :span="12">
-              <el-button type="primary" @click="addUserFn" size="small"
+              <!-- <el-button type="primary" @click="addUserFn" size="small"
                 >新增账户信息</el-button
-              >
+              > -->
             </el-col>
           </el-row>
           <table
@@ -182,8 +182,8 @@
                   placeholder=""
                 >
                   <el-option
-                    v-for="(item,index) in collectionData"
-                    :key="item.accountId+'aa'+index"
+                    v-for="(item, index) in collectionData"
+                    :key="item.accountId + 'aa' + index"
                     :label="item.name"
                     :value="item.bankCardNum"
                   >
@@ -202,8 +202,8 @@
                     placeholder=""
                   >
                     <el-option
-                      v-for="(item,index) in collectionData"
-                      :key="item.accountId+'ac'+index"
+                      v-for="(item, index) in collectionData"
+                      :key="item.accountId + 'ac' + index"
                       :label="item.name"
                       :value="item.bankCardNum"
                     >
@@ -217,8 +217,8 @@
                     placeholder=""
                   >
                     <el-option
-                      v-for="(item,index) in collectionData"
-                      :key="item.accountId+'avb'+index"
+                      v-for="(item, index) in collectionData"
+                      :key="item.accountId + 'avb' + index"
                       :label="item.name"
                       :value="item.bankCardNum"
                     >
@@ -345,8 +345,18 @@
         }}</el-button>
       </div>
     </el-dialog>
+    <!-- <el-dialog
+      class="dialog"
+      :title="expendTitle"
+      :close-on-click-modal="false"
+      :before-close="resetForm"
+      :visible.sync="expenseaaa"
+      width="60%"
+    > -->
+      <!-- <ExpenseManagement></ExpenseManagement> -->
+    <!-- </el-dialog> -->
     <!-- 新增账户弹框 -->
-    <expense-component
+    <!-- <expense-component
       ref="expenseComponent"
       :formData="formData"
       :title="title"
@@ -356,18 +366,20 @@
       @setDateInterval="setDateInterval"
       @outChange="outChange"
       class="expense-component"
-    ></expense-component>
+    ></expense-component> -->
   </div>
 </template>
 <script>
 import ExpenseComponent from "./ExpenseComponent.vue"; //新增账户信息弹框
+// import ExpenseManagement from "./ExpenseManagement.vue"; //新增账户信息
 import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
 import { toChies } from "../../../utils/moneyTransition";
 export default {
   name: "ExpenseApplyFor",
-  components: { KtCommonTable, ExpenseComponent },
+  components: { KtCommonTable, ExpenseComponent,},
   data() {
     return {
+      expenseaaa:true,
       expendTitle: "新增资金使用申请单", //弹框标题
       operationWidth: 200, //操作单元格宽度
       queryFrom: {}, //查询form表单
@@ -659,13 +671,15 @@ export default {
       this.$api.expense
         .getAccountExcelById(row.excelAccountOperateId)
         .then((res) => {
-          console.log(res)
+          console.log(res);
           if (res.code == 200) {
             this.tableForm = JSON.parse(JSON.stringify(res.data));
             this.tableForm.payMethod = this.tableForm.payMethod.split(",");
             this.tableForm.collectionMessage = res.data.enterCardNum;
             this.tableForm.company = res.data.outCardNum;
-            this.tableForm.remark = this.use_fundsData.find(item=>item.label==res.data.remark).value
+            this.tableForm.remark = this.use_fundsData.find(
+              (item) => item.label == res.data.remark
+            ).value;
             let obj = this.fundFlowData.find((item) =>
               item.child.find(
                 (chidlItem) => chidlItem.category == this.tableForm.fundUse
@@ -858,7 +872,7 @@ export default {
     },
     //选择收款单位信息事件
     collectionChange(e) {
-      console.log(e)
+      console.log(e);
       if (e.length > 0) {
         let obj = this.collectionData
           .find((item) => item.bankCardNum == e[0])
@@ -871,24 +885,25 @@ export default {
         if (res.code == 200) {
           let arr = [];
           res.data.forEach((item, index) => {
-            item.invAccountCardList.forEach((it) => {
-              it.name =
-                (item.outerFlag == 0 ? "内部用户" : "外部用户") +
-                "   " +
-                (it.accountQuality == 0 ? "公户" : "私户") +
-                "   " +
-                item.accountName +
-                "   " +
-                it.bankCardNum +
-                "   " +
-                it.bank;
-              it.nameValue =
-                item.accountName + "   " + it.bankCardNum + "   " + it.bank;
-            });
-            arr.push(...item.invAccountCardList)
+            if (item.invAccountCardList != null) {
+              item.invAccountCardList.forEach((it) => {
+                it.name =
+                  (item.outerFlag == 0 ? "内部用户" : "外部用户") +
+                  "   " +
+                  (it.accountQuality == 0 ? "公户" : "私户") +
+                  "   " +
+                  item.accountName +
+                  "   " +
+                  it.bankCardNum +
+                  "   " +
+                  it.bank;
+                it.nameValue =
+                  item.accountName + "   " + it.bankCardNum + "   " + it.bank;
+              });
+              arr.push(...item.invAccountCardList);
+            }
           });
           this.collectionData = arr;
-          console.log(this.collectionData)
         }
       });
     },
@@ -944,13 +959,9 @@ export default {
         return;
       }
       params.payMethod = this.toPayment(params.payMethod); //支付方式转换
-      console.log(this.collectionData)
-      let companyItem = this.collectionData.find(
-        (item) => {
-          console.log(params.company, item.bankCardNum)
-         return  item.bankCardNum === params.company
-        }
-      );
+      let companyItem = this.collectionData.find((item) => {
+        return item.bankCardNum === params.company;
+      });
       let collectionMessageItem = this.collectionData.find(
         (item) => item.bankCardNum === params.collectionMessage
       );

+ 47 - 90
src/views/FinancialManagement/ExpenseManagement/ExpenseManagement.vue

@@ -65,6 +65,7 @@
       :data="accountData"
       border
       size="small"
+      ref="account"
       :header-cell-style="{
         background: '#F2F7FC',
         fontWeight: '900',
@@ -72,6 +73,7 @@
       }"
       height="600px"
       style="width: 100%; margin-top: 30px"
+      @expand-change="handleRowChange"
     >
       <el-table-column type="expand">
         <template slot-scope="scope">
@@ -132,7 +134,7 @@
                 <el-button
                   size="mini"
                   type="danger"
-                  @click="handleTableIncome(scope.row,scopes.row)"
+                  @click="handleTableIncome(scope.row, scopes.row)"
                   >收入</el-button
                 >
               </template>
@@ -231,7 +233,6 @@
       @resetForm="resetForm"
       @submitForm="submitForm"
       @setDateInterval="setDateInterval"
-      @outChange="outChange"
     ></expense-component>
     <!-- 支出弹框 -->
     <el-dialog
@@ -386,7 +387,7 @@ export default {
     this.business("use_funds"); //备注字典
   },
   mounted() {
-    this.findPage();
+    // this.findPage();
   },
   data() {
     return {
@@ -633,33 +634,6 @@ export default {
           sortable: false,
         },
       ],
-      formData: {
-        //账户form表单
-        // outerFlag: "0", //账户类别
-        // accountName: "", //户名
-        // accountQuality: "", //账户性质
-        // bankCardNum: "", //银行卡号
-        // bank: "", //开户行
-        // bankName: "", //开户行名称
-        // bankNum: "", //开户行号
-        // certExpirationDate: "", //证书有效期
-        // clearingProfit: "", //结算卡
-        // dayStrokeNum: "", //单日转账笔数限制
-        // exteriorProfit: "", //外部过账金额
-        // fiscalProfit: "", //财税公司利润
-        // insuranceProfit: "", //保险公司回款
-        // otherProfit: "", //其他利润
-        // parkProfit: "", //园区利润
-        // priDayLines: "", //对私单日限额
-        // priSingleLines: "", //对私单笔限额
-        // priYearExcess: "", //对私年剩余额度
-        // priYearLines: "", //对私年额度
-        // pubDayLines: "", //对公单日限额
-        // pubSingleLines: "", //对公单笔限额
-        // pubYearExcess: "", //对公年剩余额度
-        // pubYearLines: "", //对公年额度
-        // tianqinProfit: "", //天勤利润
-      },
       //账户信息form
       accountFormData: {
         outerFlag: "0", //账户类别
@@ -773,6 +747,25 @@ export default {
     },
   },
   methods: {
+    //展开事件
+    handleRowChange(e, row) {
+      console.log(e, row);
+      if (row.length > 0) {
+        //展开
+        if (
+          e.invAccountCardList != null &&
+          e.invAccountCardList != "" &&
+          e.invAccountCardList != undefined &&
+          e.invAccountCardList.length > 0
+        ) {
+        } else {
+          this.$message.error("暂无数据");
+          this.$refs.account.toggleRowExpansion(e, false);
+        }
+      } else {
+        
+      }
+    },
     // 换页刷新
     refreshPageRequest: function (pageNum) {
       this.pageRequest.pageNo = pageNum;
@@ -796,23 +789,24 @@ export default {
         if (res.code == 200) {
           let arr = [];
           let outArr = res.data.filter((item) => item.outerFlag == 1);
-          console.log(outArr);
           outArr.forEach((item, index) => {
-            item.invAccountCardList.forEach((it) => {
-              it.name =
-                (item.outerFlag == 0 ? "内部用户" : "外部用户") +
-                "   " +
-                (it.accountQuality == 0 ? "公户" : "私户") +
-                "   " +
-                item.accountName +
-                "   " +
-                it.bankCardNum +
-                "   " +
-                it.bank;
-              it.nameValue =
-                item.accountName + "   " + it.bankCardNum + "   " + it.bank;
-            });
-            arr.push(...item.invAccountCardList)
+            if (item.invAccountCardList != null) {
+              item.invAccountCardList.forEach((it) => {
+                it.name =
+                  (item.outerFlag == 0 ? "内部用户" : "外部用户") +
+                  "   " +
+                  (it.accountQuality == 0 ? "公户" : "私户") +
+                  "   " +
+                  item.accountName +
+                  "   " +
+                  it.bankCardNum +
+                  "   " +
+                  it.bank;
+                it.nameValue =
+                  item.accountName + "   " + it.bankCardNum + "   " + it.bank;
+              });
+              arr.push(...item.invAccountCardList);
+            }
           });
           this.collectionData = arr;
         }
@@ -823,46 +817,6 @@ export default {
       const item = this.collectionData.find((item) => item.accountId === val);
       this.companyItem = item;
     },
-    //选择账户类别
-    outChange(e) {
-      return
-      if (e == 1) {
-        this.formData = {
-          outerFlag: e, //账户类别
-          accountName: this.formData.accountName, //户名
-          accountQuality: this.formData.accountQuality, //账户性质
-          bankCardNum: this.formData.bankCardNum, //银行卡号
-          bank: this.formData.bank, //开户行
-        };
-      } else {
-        this.formData = {
-          outerFlag: e, //账户类别
-          accountName: this.formData.accountName, //户名
-          accountQuality: this.formData.accountQuality, //账户性质
-          bankCardNum: this.formData.bankCardNum, //银行卡号
-          bank: this.formData.bank, //开户行
-          bankName: "", //开户行名称
-          bankNum: "", //开户行号
-          certExpirationDate: "", //证书有效期
-          clearingProfit: 0, //结算卡
-          dayStrokeNum: 0, //单日转账笔数限制
-          exteriorProfit: 0, //外部过账金额
-          fiscalProfit: 0, //财税公司利润
-          insuranceProfit: 0, //保险公司回款
-          otherProfit: 0, //其他利润
-          parkProfit: 0, //园区利润
-          priDayLines: 0, //对私单日限额
-          priSingleLines: 0, //对私单笔限额
-          priYearExcess: 0, //对私年剩余额度
-          priYearLines: 0, //对私年额度
-          pubDayLines: 0, //对公单日限额
-          pubSingleLines: 0, //对公单笔限额
-          pubYearExcess: 0, //对公年剩余额度
-          pubYearLines: 0, //对公年额度
-          tianqinProfit: 0, //天勤利润
-        };
-      }
-    },
     //点击确认收入事件
     submitIncomeForm() {
       let obj = JSON.parse(JSON.stringify(this.inComeFormData));
@@ -884,8 +838,8 @@ export default {
       });
     },
     //点击页面收入按钮
-    handleTableIncome(row,rows) {
-      console.log(row,rows)
+    handleTableIncome(row, rows) {
+      console.log(row, rows);
       if (row.outerFlag == 1) {
         this.$message.error("请选择内部账户");
         return;
@@ -898,7 +852,7 @@ export default {
     },
     //点击页面支出按钮
     handleTableExpend(row) {
-      console.log(row)
+      console.log(row);
       if (row.outerFlag == 1) {
         this.$message.error("请选择内部账户");
         return;
@@ -1016,6 +970,9 @@ export default {
       this.$api.dict.findByLableName(typeName).then((res) => {
         // this.account_qualityData = res.data;
         this[typeName + "Data"] = res.data;
+        if (typeName == "account_quality" && this.accountData.length == 0) {
+          this.findPage();
+        }
       });
     },
     //用户性质转换
@@ -1089,7 +1046,7 @@ export default {
     resetForm() {
       this.dialogFormVisible = false;
       this.formDataId = "";
-      console.log(this.type)
+      console.log(this.type);
       if (this.type == 1) {
         this.accountFormData = {
           outerFlag: "0", //账户类别

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 321 - 452
src/views/FinancialManagement/ExpenseManagement/PaymentManagement.vue


+ 3 - 1
src/views/FinancialManagement/ExpenseManagement/TransferRecord.vue

@@ -104,7 +104,9 @@ export default {
         .getAccountOperate(this.pageRequest)
         .then((res) => {
           res.data.records.forEach((item) => {
-            item.revenueOutlayName = item.revenueOutlay == 0 ? "收入" : "支出";
+            if(item.revenueOutlay!=null&&item.revenueOutlay!=undefined&&item.revenueOutlay!=''){
+              item.revenueOutlayName = item.revenueOutlay == 0 ? "收入" : "支出";
+            }
           });
           this.pageResult = {
             content: res.data.records,

+ 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>
+

+ 6 - 0
src/views/Letter/Letter.vue

@@ -3849,9 +3849,15 @@ export default {
         cimodelclass: [
           { required: true, message: "请选择车辆种类", trigger: "blur" }
         ],
+        carnature: [
+          { required: true, message: "请选择使用性质", trigger: "blur" }
+        ],
         cartype: [
           { required: true, message: "请选择车辆类型", trigger: "blur" }
         ],
+        vehicleUse: [
+          { required: true, message: "请选择车辆用途", trigger: "blur" }
+        ],
         brandName: [
           { required: true, message: "请填写品牌型号", trigger: "blur" }
         ],

+ 1 - 0
src/views/Report/StatisticalReport/OrderVolumeAndCostStatistics.vue

@@ -165,6 +165,7 @@
     methods: {
       //返回上层
       returnUpper(){
+        this.queryForm.isDrilling="1";
         this.queryForm.isReturnBack="1";
         this.queryForm.deptId= this.returnForm.deptId;
         this.queryForm.teamCode= this.returnForm.teamCode;

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů