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
d9ec28db
Commit
d9ec28db
authored
Jan 21, 2026
by
Sweet Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进
parent
b567c4f0
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
60 additions
and
44 deletions
+60
-44
src/components/FileUpload/index.vue
+6
-0
src/views/financialCenter/financialBilling.vue
+6
-10
src/views/financialCenter/financialIncome.vue
+17
-17
src/views/sign/FnaList/index.vue
+3
-2
src/views/sign/underwritingMain/policyDetail.vue
+28
-15
No files found.
src/components/FileUpload/index.vue
View file @
d9ec28db
...
...
@@ -15,6 +15,7 @@
class=
"upload-file-uploader"
ref=
"fileUpload"
:drag=
"drag"
:name=
"name"
v-if=
"!disabled"
>
<!-- 上传按钮 -->
...
...
@@ -49,6 +50,11 @@ import Sortable from 'sortablejs'
export
default
{
name
:
"FileUpload"
,
props
:
{
// 上传文件名称
name
:
{
type
:
String
,
default
:
"file"
},
// 上传按钮文字
uploadBtnText
:
{
type
:
String
,
...
...
src/views/financialCenter/financialBilling.vue
View file @
d9ec28db
...
...
@@ -87,7 +87,7 @@
<el-table-column
prop=
"fortuneUnpaidRatio"
label=
"剩余出账比例"
width=
"120"
sortable
:formatter=
"(row) => `${row.fortuneUnpaidRatio }%`"
/>
<el-table-column
prop=
"status"
label=
"出账状态"
width=
"120"
sortable
>
<
template
#
default=
"{ row }"
>
{{
getDictLabel
(
'csf_fortune_status'
,
row
.
status
)
}}
{{
selectDictLabel
(
csf_fortune_status
,
row
.
status
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"premium"
label=
"期交保费"
width=
"120"
sortable
/>
...
...
@@ -148,7 +148,10 @@ import { Select } from '@element-plus/icons-vue'
// 接口
import
{
getPolicyFortuneList
,
addCheckRecordaddBatch
,
updatePayoutAmount
,
downloadPolicyFortuneAccount
}
from
'@/api/financial/commission'
import
useUserStore
from
'@/store/modules/user'
import
{
loadDicts
,
getDictLabel
}
from
'@/utils/useDict'
const
{
proxy
}
=
getCurrentInstance
()
const
{
csf_fortune_status
}
=
proxy
.
useDict
(
'csf_fortune_status'
)
const
userStore
=
useUserStore
()
// 分页相关
...
...
@@ -535,15 +538,8 @@ const onSubmit = (data) => {
// 调用保存 API
}
// 获取入账状态,字典值转化方法
onMounted
(
async
()
=>
{
try
{
await
loadDicts
([
'csf_fortune_status'
])
}
catch
(
error
)
{
console
.
error
(
'字典加载失败'
,
error
)
}
finally
{
loading
.
value
=
false
}
})
</
script
>
...
...
src/views/financialCenter/financialIncome.vue
View file @
d9ec28db
...
...
@@ -91,7 +91,7 @@
<el-table-column
type=
"selection"
width=
"40"
:selectable=
"selectableFn"
/>
<el-table-column
prop=
"commissionStatus"
label=
"比对状态"
width=
"120"
sortable
fixed=
"left"
>
<template
#
default=
"
{ row }">
{{
getDictLabel
(
'csf_commission_status'
,
row
.
commissionStatus
)
}}
{{
selectDictLabel
(
csf_commission_status
,
row
.
commissionStatus
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"commissionBizType"
label=
"业务类型"
width=
"120"
sortable
>
...
...
@@ -103,8 +103,11 @@
<el-table-column
prop=
"policyNo"
label=
"保单号"
width=
"120"
sortable
/>
<el-table-column
prop=
"reconciliationCompany"
label=
"对账公司"
width=
"120"
sortable
/>
<el-table-column
prop=
"commissionDate"
label=
"入账日"
width=
"120"
sortable
/>
<el-table-column
prop=
"commissionExpectedStatus"
label=
"入账状态"
width=
"120"
sortable
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"commissionExpectedStatus"
label=
"入账状态"
width=
"120"
sortable
>
<
template
#
default=
"{ row }"
>
{{
selectDictLabel
(
csf_expected_commission_status
,
row
.
commissionExpectedStatus
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"currentCommissionRatio"
label=
"本次入账比例"
width=
"130"
sortable
:formatter=
"formatRatio"
/>
<el-table-column
prop=
"paidRatio"
label=
"累积入账比例"
width=
"130"
sortable
:formatter=
"formatRatio"
/>
<el-table-column
prop=
"pendingRatio"
label=
"待入账比例"
width=
"120"
sortable
:formatter=
"formatRatio"
/>
...
...
@@ -194,7 +197,7 @@
<el-table-column
prop=
"policyNo"
label=
"关联保单号"
width=
"120"
/>
<el-table-column
prop=
"commissionStatus"
label=
"比对状态"
width=
"120"
fixed=
"left"
>
<
template
#
default=
"{ row }"
>
{{
getDictLabel
(
'csf_commission_status'
,
row
.
commissionStatus
)
}}
{{
selectDictLabel
(
csf_commission_status
,
row
.
commissionStatus
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"commissionPeriod"
label=
"佣金期数"
width=
"120"
/>
...
...
@@ -296,6 +299,12 @@ import {
import
{
InfoFilled
,
Select
,
Upload
,
Plus
}
from
'@element-plus/icons-vue'
import
FileUpload
from
'@/components/FileUpload/index.vue'
import
{
loadDicts
,
getDictLabel
}
from
'@/utils/useDict'
const
{
proxy
}
=
getCurrentInstance
()
const
{
csf_expected_commission_status
}
=
proxy
.
useDict
(
'csf_expected_commission_status'
)
const
{
csf_commission_status
}
=
proxy
.
useDict
(
'csf_commission_status'
)
const
formatRatio
=
(
row
,
column
,
cellValue
,
index
)
=>
{
if
(
cellValue
==
null
||
cellValue
==
''
||
cellValue
==
0
)
{
return
'-'
...
...
@@ -478,20 +487,11 @@ const deletePolicyCommissionApi = async (row) => {
// 生成可出账记录按钮
const
updatePayRollStatusDisable
=
ref
(
true
)
// 获取入账状态,字典值转化方法
onMounted
(
async
()
=>
{
try
{
await
loadDicts
([
'csf_expected_commission_status'
,
'csf_commission_status'
])
}
catch
(
error
)
{
console
.
error
(
'字典加载失败'
,
error
)
}
finally
{
loading
.
value
=
false
}
})
// 格式化函数(每次渲染都会调用,所以能拿到最新字典)
const
formatStatus
=
(
row
,
column
,
cellValue
,
index
)
=>
{
return
getDictLabel
(
'csf_expected_commission_status'
,
cellValue
)
// 实时查缓存
}
// 应收单类型
const
commissionBizTypeOptions
=
[
{
value
:
'R'
,
label
:
'关联保单应收单'
},
...
...
@@ -651,7 +651,7 @@ const handleAddCheckRecord = async () => {
}
const
clearForm
=
(
type
)
=>
{
if
(
type
===
'addReceivablesFormModel'
)
if
(
addCheckRecordFormRef
.
value
)
{
if
(
addCheckRecordFormRef
.
value
)
{
addReceivablesFormModel
.
value
=
{}
addCheckRecordFormRef
.
value
.
resetForm
()
}
...
...
src/views/sign/FnaList/index.vue
View file @
d9ec28db
...
...
@@ -50,7 +50,7 @@
</el-col>
<el-col
:sm=
"12"
:lg=
"6"
:xs=
"24"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-form-item
label=
"
流程
状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in csf_fna_status"
...
...
@@ -77,8 +77,9 @@
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
label=
"客户姓名"
align=
"center"
prop=
"customerName"
width=
"100"
/>
<el-table-column
label=
"中文姓名"
align=
"center"
prop=
"customerNameCn"
width=
"100"
/>
<!--
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
width=
"100"
:formatter=
"getDictLabel('csf_fna_status')"
/>
-->
<el-table-column
label=
"状态"
sortable
align=
"center"
prop=
"status"
width=
"200"
>
<el-table-column
label=
"
流程
状态"
sortable
align=
"center"
prop=
"status"
width=
"200"
>
<template
#
default=
"scope"
>
<span>
{{
selectDictLabel
(
csf_fna_status
,
scope
.
row
.
status
)
}}
</span>
</
template
>
...
...
src/views/sign/underwritingMain/policyDetail.vue
View file @
d9ec28db
...
...
@@ -104,7 +104,7 @@
<div
v-else-if=
"activeTab === 'attachment'"
class=
"tab-content"
>
<div
class=
"section"
>
<h3
class=
"sectionTitle"
>
附件
</h3>
<el-button
type=
"primary"
@
click=
"
handleUpload
"
:disabled=
"props.mode === 'viewDetail'"
>
<el-button
type=
"primary"
@
click=
"
fileUploadDialogFlag = true
"
:disabled=
"props.mode === 'viewDetail'"
>
<el-icon
class=
"el-icon--right"
>
<Upload
/>
</el-icon>
上传附件
...
...
@@ -137,15 +137,25 @@
<el-button
type=
"primary"
size=
"default"
@
click=
"handleSubmit"
>
确认
</el-button>
</div>
</el-form>
<CommonDialog
dialogTitle=
'文件导入'
dialogWidth=
'80%'
:openDialog=
fileUploadDialogFlag
:showAction=
'true'
:showClose=
'true'
@
close=
'fileUploadDialogFlag = false; files = ""'
@
confirm=
'fileUploadDialogFlag = false; files = ""'
>
<FileUpload
v-model=
"files"
:data=
"{ obiectTableName: 'policy_follow',objectBizId: props.policyBizId }"
:file-type=
"['xlsx', 'xls', 'doc', 'docx', 'pdf', 'txt', 'jpg', 'jpeg', 'png', 'gif']"
:action=
"'/oss/api/oss/batch/upload'"
:limit=
"10"
:fileSize=
"15"
:name=
"'files'"
@
uploadEnd=
"handleUploadEnd"
/>
</CommonDialog>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
watch
,
nextTick
,
onMounted
,
computed
}
from
'vue'
import
SearchForm
from
'@/components/SearchForm/SearchForm.vue'
import
CommonDialog
from
'@/components/commonDialog'
import
{
ElMessage
}
from
'element-plus'
import
{
Delete
,
Edit
,
Search
,
Share
,
Upload
}
from
'@element-plus/icons-vue'
import
{
getPolicyfollow
,
getProductList
}
from
'@/api/sign/underwritingMain'
import
{
uploadOssFileList
}
from
'@/api/common'
import
{
uploadOssFileList
}
from
'@/api/common'
import
{
getProcessDetail
}
from
'@/api/sign/fna'
import
{
premiumReconciliationList
}
from
'@/api/sign/policy'
import
{
loadDicts
,
getDictLabel
}
from
'@/utils/useDict'
...
...
@@ -154,6 +164,8 @@ import EditableTable from '@/components/csf-common/EditableTable.vue'
import
useUserStore
from
'@/store/modules/user'
const
router
=
useRouter
()
const
userStore
=
useUserStore
()
const
files
=
ref
(
''
)
const
fileUploadDialogFlag
=
ref
(
false
)
// ===== Props & Emits =====
const
props
=
defineProps
({
modelValue
:
{
...
...
@@ -484,7 +496,7 @@ const basicPlanFormConfig = computed(() => {
projectBizId
:
userStore
.
projectInfo
.
projectBizId
||
''
,
fieldBizId
:
'field_olk1qZe81qHHKXbw'
,
fieldValueBizId
:
'field_value_uOfJH5ucA2YwJpbn'
,
categoryCodeList
:
[
basicPlanFormData
.
value
.
productCate
||
''
],
categoryCodeList
:
[
basicPlanFormData
.
value
.
insuranceCategoryBizId
||
''
],
insuranceCompanyBizIdList
:
[
basicPlanFormData
.
value
.
insuranceCompanyBizId
||
''
],
pageNo
:
1
,
pageSize
:
20
...
...
@@ -700,9 +712,10 @@ const postalFormConfig = ref([
const
relatedTableData
=
ref
([])
const
attachmentTableData
=
ref
([])
const
attachmentTableColumns
=
ref
([
{
prop
:
'o
bjectName'
,
label
:
'文件名'
,
sortable
:
true
,
width
:
'150'
,
formatter
:
(
row
)
=>
row
.
object
Name
||
'-'
},
{
prop
:
'o
riginalName'
,
label
:
'文件名'
,
sortable
:
true
,
width
:
'150'
,
formatter
:
(
row
)
=>
row
.
original
Name
||
'-'
},
{
prop
:
'fileType'
,
label
:
'文件类型'
,
sortable
:
true
,
width
:
'150'
,
formatter
:
(
row
)
=>
row
.
fileType
||
'-'
},
{
prop
:
'createTime'
,
label
:
'上传时间'
,
sortable
:
true
,
width
:
'150'
,
formatter
:
(
row
)
=>
row
.
createTime
||
'-'
},
{
prop
:
'creatorName'
,
label
:
'上传人'
,
sortable
:
true
,
width
:
'150'
,
formatter
:
(
row
)
=>
row
.
creatorName
||
'-'
},
])
// ===== 本地响应式数据 =====
...
...
@@ -744,15 +757,6 @@ watch(
const
formRef
=
ref
()
const
activeTab
=
ref
(
'basic'
)
// ===== 添加附加险计划方法 =====
const
addAdditionalPlan
=
()
=>
{
localData
.
additionalPlans
.
push
({})
}
const
deleteRow
=
(
index
)
=>
{
localData
.
additionalPlans
.
splice
(
index
,
1
)
}
const
handleTabClick
=
(
tab
)
=>
{
if
(
tab
.
props
.
name
===
'firstPayment'
)
{
firstPremiumFormConfig
.
value
=
firstPremiumFormConfig
?
applyViewMode
(
firstPremiumFormConfig
.
value
,
props
.
mode
)
:
[]
...
...
@@ -842,14 +846,23 @@ const getAttachmentListDetail = (policyBizId) => {
}
uploadOssFileList
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
attachmentTableData
.
value
=
res
.
data
.
records
||
[]
attachmentTableData
.
value
=
res
.
data
||
[]
console
.
log
(
'attachmentTableData'
,
res
.
data
)
}
})
}
// 附件上传方法
const
handleUploadEnd
=
(
code
)
=>
{
if
(
code
===
200
)
{
ElMessage
.
success
(
'上传文件成功'
)
fileUploadDialogFlag
.
value
=
false
files
.
value
=
''
getAttachmentListDetail
(
props
.
policyBizId
)
}
else
{
ElMessage
.
error
(
'上传文件失败'
)
}
}
// 组装表单数据
const
transformToFormData
=
(
apiData
,
formConfig
)
=>
{
...
...
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