Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf-front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yuzhenWang
yd-csf-front
Commits
b6f33106
Commit
b6f33106
authored
May 14, 2026
by
yuzhenWang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wyz' into 'test'
优化3 See merge request
!146
parents
ab8422e3
0b805847
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
126 additions
and
87 deletions
+126
-87
src/api/financial/commission.js
+8
-0
src/components/Preview/filePreview.vue
+1
-1
src/views/financialCenter/financialBilling.vue
+31
-19
src/views/financialCenter/financialIncome.vue
+7
-5
src/views/financialCenter/financialSalary.vue
+2
-2
src/views/financialCenter/payroll.vue
+62
-45
src/views/financialCenter/receivables.vue
+15
-15
No files found.
src/api/financial/commission.js
View file @
b6f33106
...
...
@@ -556,3 +556,11 @@ export function editExchangeRateApi(data) {
data
:
data
})
}
// 批量设置出账年月实
export
function
batchActualPayoutDate
(
data
)
{
return
request
({
url
:
'/csf/api/fortune/edit/actual_payout_date/batch'
,
method
:
'post'
,
data
:
data
})
}
src/components/Preview/filePreview.vue
View file @
b6f33106
...
...
@@ -71,7 +71,7 @@ import { ZoomIn, ZoomOut, Document, Picture } from '@element-plus/icons-vue'
import
*
as
PDFJS
from
'pdfjs-dist'
// 配置 PDF.js worker
PDFJS
.
GlobalWorkerOptions
.
workerSrc
=
'/js/pdf.worker.min.mjs'
PDFJS
.
GlobalWorkerOptions
.
workerSrc
=
'/js/pdf.worker.min.mjs'
//在public/js/pdf.worker.min.mjs
// ---------- 内部状态 ----------
const
dialogVisible
=
ref
(
false
)
// 弹窗显示状态
...
...
src/views/financialCenter/financialBilling.vue
View file @
b6f33106
...
...
@@ -126,7 +126,7 @@
sortable
:formatter=
"row => formatCurrency(row.hkdAmount || 0)"
/>
<el-table-column
prop=
"
c
urrency"
label=
"出账币种"
width=
"130"
sortable
/>
<el-table-column
prop=
"
payoutC
urrency"
label=
"出账币种"
width=
"130"
sortable
/>
<el-table-column
prop=
"fortunePaidAmount"
label=
"已出账金额"
...
...
@@ -192,6 +192,13 @@
<div
class=
"tableOptionContainer"
>
<el-button
type=
"primary"
:icon=
"EditPen"
:disabled=
"updatePayRollStatusDisable"
@
click=
"batchSettingBillYearMonth"
>
批量设置出账年月(实)
</el-button
>
<el-button
type=
"primary"
:icon=
"Select"
:disabled=
"updatePayRollStatusDisable"
@
click=
"downloadPolicyFortuneAccountapi"
...
...
@@ -318,7 +325,7 @@ import CommonDialog from '@/components/commonDialog'
import
SearchForm
from
'@/components/SearchForm/SearchForm.vue'
import
{
ElMessage
}
from
'element-plus'
import
{
formatCurrency
,
calculateAmount
}
from
'@/utils/number'
import
{
Select
}
from
'@element-plus/icons-vue'
import
{
Select
,
EditPen
}
from
'@element-plus/icons-vue'
// 接口
import
{
...
...
@@ -329,7 +336,8 @@ import {
billSplitApi
,
commissionExchangeRateApi
,
actualPayoutDateApi
,
editExchangeRateApi
editExchangeRateApi
,
batchActualPayoutDate
}
from
'@/api/financial/commission'
import
useUserStore
from
'@/store/modules/user'
const
rateExchangeFormRef
=
ref
(
null
)
...
...
@@ -1462,13 +1470,13 @@ const submitSettingBillYearMonth = async () => {
if
(
billTimeType
.
value
==
'multiple'
)
{
//等后端接口
try
{
const
res
=
await
downloadPolicyFortuneAccount
({
const
res
=
await
batchActualPayoutDate
({
fortuneBizIdList
:
multipleSelection
.
value
.
map
(
item
=>
item
.
fortuneBizId
),
actualPayoutDate
:
settingBillTimeForm
.
value
.
actualPayoutDate
})
if
(
res
.
code
===
200
)
{
settingBillYearMonthFlag
.
value
=
false
ElMessage
.
success
(
'完成检核,等待关账'
)
ElMessage
.
success
(
res
.
data
)
const
params
=
await
searchFormRef
.
value
.
getFormData
()
loadTableData
(
params
)
}
...
...
@@ -1494,23 +1502,27 @@ const submitSettingBillYearMonth = async () => {
}
}
}
const
downloadPolicyFortuneAccountapi
=
async
data
=>
{
console
.
log
(
'生成出账清单:'
,
data
)
const
batchSettingBillYearMonth
=
()
=>
{
settingBillYearMonthFlag
.
value
=
true
settingBillTimeForm
.
value
=
{}
billTimeType
.
value
=
'multiple'
// try {
// const res = await downloadPolicyFortuneAccount({
// fortuneBizIdList: multipleSelection.value.map(item => item.fortuneBizId)
// })
// if (res.code === 200) {
// ElMessage.success('完成检核,等待关账')
// loadTableData()
// }
// } catch (error) {
// console.error('检核失败:', error)
// ElMessage.error(error.response?.data?.msg || '检核失败')
// }
}
const
downloadPolicyFortuneAccountapi
=
async
data
=>
{
console
.
log
(
'生成出账清单:'
,
data
)
try
{
const
res
=
await
downloadPolicyFortuneAccount
({
fortuneBizIdList
:
multipleSelection
.
value
.
map
(
item
=>
item
.
fortuneBizId
)
})
if
(
res
.
code
===
200
)
{
ElMessage
.
success
(
'完成检核,等待关账'
)
const
searchParams
=
await
searchFormRef
.
value
.
getFormData
()
loadTableData
(
searchParams
)
}
}
catch
(
error
)
{
console
.
error
(
'检核失败:'
,
error
)
ElMessage
.
error
(
error
.
response
?.
data
?.
msg
||
'检核失败'
)
}
}
import
FileUploadPreview
from
'@/components/fileUploadPreview/fileUploadPreview.vue'
...
...
src/views/financialCenter/financialIncome.vue
View file @
b6f33106
...
...
@@ -708,8 +708,8 @@ const confirmRecordCheck = async () => {
ElMessage
.
success
(
'修改检核记录成功'
)
recordCheckDialogFlag
.
value
=
false
updateDataFormRef
.
value
.
resetForm
()
loadTableData
()
const
searchParams
=
searchFormRef
.
value
.
getFormData
()
loadTableData
(
searchParams
)
}
catch
(
error
)
{
console
.
error
(
'操作失败'
,
error
)
ElMessage
.
error
(
'操作失败'
)
...
...
@@ -985,7 +985,7 @@ const handleReset = () => {
const
handleQuery
=
async
()
=>
{
currentPage
.
value
=
1
const
params
=
searchFormRef
.
value
.
getFormData
()
console
.
log
(
'查询:'
,
params
)
loadTableData
(
params
)
}
...
...
@@ -1151,7 +1151,8 @@ const setCompareStatusapi = async () => {
ElMessage
.
success
(
'设置比对状态成功'
)
setCompareStatusDialogFlag
.
value
=
false
setCompareStatusFormRef
.
value
.
resetForm
()
loadTableData
()
const
searchParams
=
searchFormRef
.
value
.
getFormData
()
loadTableData
(
searchParams
)
}
else
{
ElMessage
.
error
(
res
.
msg
||
'设置比对状态失败'
)
}
...
...
@@ -1247,7 +1248,8 @@ const confirmAccountedStatus = () => {
if
(
res
.
code
===
200
)
{
ElMessage
.
success
(
'状态修改成功'
)
accountedStatusFlag
.
value
=
false
loadTableData
()
// 重新加载表格
const
searchParams
=
searchFormRef
.
value
.
getFormData
()
loadTableData
(
searchParams
)
}
else
{
ElMessage
.
error
(
res
.
msg
||
'状态修改失败'
)
}
...
...
src/views/financialCenter/financialSalary.vue
View file @
b6f33106
...
...
@@ -43,7 +43,7 @@
>
<el-table-column
type=
"selection"
width=
"55"
:reserve-selection=
"true"
/>
<el-table-column
prop=
"businessNo"
label=
"业务编号"
min-width=
"120"
/>
<
el-table-column
prop=
"fortuneAccountBizId"
label=
"业务ID"
min-width=
"120"
sortable
/
>
<
!--
<el-table-column
prop=
"fortuneAccountBizId"
label=
"业务ID"
min-width=
"120"
sortable
/>
--
>
<el-table-column
prop=
"broker"
label=
"转介人"
min-width=
"120"
sortable
/>
<el-table-column
prop=
"team"
label=
"所属团队"
min-width=
"120"
sortable
/>
<el-table-column
prop=
"hkdAmount"
label=
"出账金额"
width=
"120"
sortable
>
...
...
@@ -373,7 +373,7 @@ const searchConfig = ref([
label
:
'转介人'
,
api
:
'/insurance/base/api/userSaleExpand/page'
,
keywordField
:
'realName'
,
requestParams
:
{
pageNo
:
1
,
pageSize
:
20
},
requestParams
:
{
pageNo
:
1
,
pageSize
:
9999
},
placeholder
:
'输入转介人名称搜索'
,
debounceWait
:
500
,
// 自定义防抖时间
valueKey
:
'clientUserBizId'
,
...
...
src/views/financialCenter/payroll.vue
View file @
b6f33106
<
template
>
<div
class=
'app-container'
>
<CommonPage
:operationBtnList=
'operationBtnList'
:visibleDefaultButtons=
'visibleDefaultButtons'
:showSearchForm=
'true'
:show-pagination=
'true'
:total=
'pageTotal'
:current-page=
'currentPage'
:page-size=
'pageSize'
@
size-change=
'handleSizeChange'
@
current-change=
'handleCurrentChange'
>
<div
class=
"app-container"
>
<CommonPage
:operationBtnList=
"operationBtnList"
:visibleDefaultButtons=
"visibleDefaultButtons"
:showSearchForm=
"true"
:show-pagination=
"true"
:total=
"pageTotal"
:current-page=
"currentPage"
:page-size=
"pageSize"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
>
<!-- 搜索区域 -->
<template
#
searchForm
>
<SearchForm
ref=
"searchFormRef"
:config=
"searchConfig"
/>
</
template
>
<!-- 列表区域 -->
<
template
#
table
>
<el-table
:data=
"tableData"
v-loading=
"loading"
ref=
"tableRef"
row-key=
"salarySplitNo"
:reserve-selection=
"true"
:border=
"true"
>
<el-table-column
v-for=
"(column, index) in tableColumns"
:key=
"index"
:fixed=
"column.fixed"
:prop=
"column.prop"
:label=
"column.label"
:width=
"column.width"
:sortable=
"column.sortable"
:formatter=
"column.formatter"
/>
<el-table
:data=
"tableData"
v-loading=
"loading"
ref=
"tableRef"
row-key=
"salarySplitNo"
:reserve-selection=
"true"
:border=
"true"
>
<el-table-column
v-for=
"(column, index) in tableColumns"
:key=
"index"
:fixed=
"column.fixed"
:prop=
"column.prop"
:label=
"column.label"
:width=
"column.width"
:sortable=
"column.sortable"
:formatter=
"column.formatter"
/>
</el-table>
</
template
>
</CommonPage>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
}
from
'vue'
import
CommonPage
from
'@/components/commonPage'
import
{
salarySummary
,
exportPayRoll
}
from
'@/api/financial/commission'
import
{
salarySummary
,
exportPayRoll
}
from
'@/api/financial/commission'
import
{
ElMessageBox
,
ElMessage
}
from
'element-plus'
import
SearchForm
from
'@/components/SearchForm/SearchForm.vue'
const
searchFormRef
=
ref
(
null
)
...
...
@@ -37,13 +56,13 @@ const searchConfig = ref([
label
:
'转介人'
,
api
:
'/insurance/base/api/userSaleExpand/page'
,
keywordField
:
'realName'
,
requestParams
:
{
pageNo
:
1
,
pageSize
:
20
},
requestParams
:
{
pageNo
:
1
,
pageSize
:
9999
},
placeholder
:
'输入转介人名称搜索'
,
debounceWait
:
500
,
// 自定义防抖时间
valueKey
:
'clientUserBizId'
,
labelKey
:
'realName'
,
multiple
:
true
,
transform
:
(
res
)
=>
{
transform
:
res
=>
{
return
res
?.
data
.
records
||
[]
}
},
...
...
@@ -57,26 +76,30 @@ const searchConfig = ref([
{
type
:
'input'
,
prop
:
'billOrg'
,
label
:
'出账机构'
,
label
:
'出账机构'
},
{
type
:
'input'
,
prop
:
'businessNo'
,
label
:
'业务编号'
}
])
const
tableColumns
=
ref
([
{
prop
:
'salarySplitNo'
,
label
:
'发放编号'
,
sortable
:
true
,
width
:
'150'
,
fixed
:
'left'
},
{
prop
:
'businessNo'
,
label
:
'业务编号'
,
width
:
'150'
,
fixed
:
'left'
},
{
prop
:
'brokerName'
,
label
:
'转介人'
,
sortable
:
true
,
width
:
'150'
,
fixed
:
'left'
},
{
prop
:
'internalNumber'
,
label
:
'内部编号'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'team'
,
label
:
'所属团队'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'fromAmount'
,
label
:
'原币种金额'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'currency'
,
label
:
'原币种'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'exchangeRate'
,
label
:
'汇率(原币种->目标币种)'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'toAmount'
,
label
:
'目标金额'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'toCurrency'
,
label
:
'目标币种'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'fortuneAccountMonth'
,
label
:
'出账月(实)'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'billOrg'
,
label
:
'出账机构'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'hkdAmount'
,
label
:
'本期总出账金额(原币种)'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'businessNo'
,
label
:
'业务编号'
,
width
:
'150'
,
fixed
:
'left'
},
{
prop
:
'brokerName'
,
label
:
'转介人'
,
sortable
:
true
,
width
:
'150'
,
fixed
:
'left'
},
{
prop
:
'internalNumber'
,
label
:
'内部编号'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'team'
,
label
:
'所属团队'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'fromAmount'
,
label
:
'原币种金额'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'currency'
,
label
:
'原币种'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'exchangeRate'
,
label
:
'汇率(原币种->目标币种)'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'toAmount'
,
label
:
'目标金额'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'toCurrency'
,
label
:
'目标币种'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'fortuneAccountMonth'
,
label
:
'出账月(实)'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'billOrg'
,
label
:
'出账机构'
,
sortable
:
true
,
width
:
'150'
},
{
prop
:
'hkdAmount'
,
label
:
'本期总出账金额(原币种)'
,
sortable
:
true
,
width
:
'150'
}
// { prop: 'fortuneAccountBizId', label: '出账记录业务id', sortable: true, width: '150'},
])
// 添加表格引用
const
tableRef
=
ref
()
...
...
@@ -90,27 +113,25 @@ const currentPage = ref(1)
const
pageSize
=
ref
(
10
)
const
pageTotal
=
ref
(
0
)
// 分页事件
const
handleSizeChange
=
(
val
)
=>
{
const
handleSizeChange
=
val
=>
{
pageSize
.
value
=
val
getList
()
}
const
handleCurrentChange
=
(
val
)
=>
{
const
handleCurrentChange
=
val
=>
{
currentPage
.
value
=
val
getList
()
}
// 获取数据列表
const
getList
=
async
(
searchParams
=
{})
=>
{
loading
.
value
=
true
try
{
const
params
=
{
...
searchParams
,
startMonth
:
searchParams
.
payoutMonth
?
searchParams
.
payoutMonth
[
0
]
:
''
,
endMonth
:
searchParams
.
payoutMonth
?
searchParams
.
payoutMonth
[
1
]
:
''
,
payoutMonth
:
undefined
,
startMonth
:
searchParams
.
payoutMonth
?
searchParams
.
payoutMonth
[
0
]
:
''
,
endMonth
:
searchParams
.
payoutMonth
?
searchParams
.
payoutMonth
[
1
]
:
''
,
payoutMonth
:
undefined
,
pageNo
:
currentPage
.
value
,
pageSize
:
pageSize
.
value
}
...
...
@@ -150,22 +171,19 @@ const handleExport = async () => {
let
params
=
searchFormRef
.
value
?.
getFormData
()
params
=
{
...
params
,
startMonth
:
params
.
payoutMonth
?
params
.
payoutMonth
[
0
]
:
''
,
endMonth
:
params
.
payoutMonth
?
params
.
payoutMonth
[
1
]
:
''
,
payoutMonth
:
undefined
,
startMonth
:
params
.
payoutMonth
?
params
.
payoutMonth
[
0
]
:
''
,
endMonth
:
params
.
payoutMonth
?
params
.
payoutMonth
[
1
]
:
''
,
payoutMonth
:
undefined
}
const
response
=
await
exportPayRoll
(
params
)
if
(
response
.
data
&&
response
.
data
.
url
)
{
if
(
response
.
data
&&
response
.
data
.
url
)
{
window
.
open
(
response
.
data
.
url
)
}
else
{
}
else
{
ElMessage
.
error
(
'导出失败'
)
}
}
const
visibleDefaultButtons
=
ref
([
'export'
,
'reset'
,
'query'
])
const
visibleDefaultButtons
=
ref
([
'export'
,
'reset'
,
'query'
])
// 按钮配置
const
operationBtnList
=
ref
([
{
...
...
@@ -184,7 +202,6 @@ const operationBtnList = ref([
click
:
handleExport
}
])
</
script
>
<
style
scoped
></
style
>
src/views/financialCenter/receivables.vue
View file @
b6f33106
...
...
@@ -695,21 +695,21 @@ const statisticsData = ref({
})
const
handleInputChange
=
async
(
formType
,
prop
,
value
,
item
)
=>
{
if
(
formType
==
'addReceivables'
)
{
await
nextTick
()
let
policyNo
=
addReceivablesFormModel
.
value
.
policyNo
let
commissionPeriod
=
addReceivablesFormModel
.
value
.
commissionPeriod
if
((
prop
==
'policyNo'
||
prop
==
'commissionPeriod'
)
&&
commissionPeriod
&&
policyNo
)
{
//等待后端接口
const
res
=
await
commissionExchangeRateApi
({
policyNo
:
policyNo
,
commissionPeriod
:
commissionPeriod
})
if
(
res
.
code
==
200
)
{
addReceivablesFormModel
.
value
.
exchangeRate
=
res
.
data
}
else
{
ElMessage
.
error
(
'查询结算汇率失败'
)
}
}
//
await nextTick()
//
let policyNo = addReceivablesFormModel.value.policyNo
//
let commissionPeriod = addReceivablesFormModel.value.commissionPeriod
//
if ((prop == 'policyNo' || prop == 'commissionPeriod') && commissionPeriod && policyNo) {
//
//等待后端接口
//
const res = await commissionExchangeRateApi({
//
policyNo: policyNo,
//
commissionPeriod: commissionPeriod
//
})
//
if (res.code == 200) {
//
addReceivablesFormModel.value.exchangeRate = res.data
//
} else {
//
ElMessage.error('查询结算汇率失败')
//
}
//
}
}
}
// 按钮事件处理
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment