Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
5cb86589
authored
Feb 25, 2024
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
CRM:完善回款 plan 列表
parent
f30f71b7
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
10 deletions
+90
-10
src/api/crm/receivable/plan/index.ts
+4
-0
src/views/crm/customer/CustomerImportForm.vue
+1
-0
src/views/crm/receivable/plan/index.vue
+85
-10
No files found.
src/api/crm/receivable/plan/index.ts
View file @
5cb86589
...
@@ -14,6 +14,10 @@ export interface ReceivablePlanVO {
...
@@ -14,6 +14,10 @@ export interface ReceivablePlanVO {
contractId
:
number
contractId
:
number
ownerUserId
:
number
ownerUserId
:
number
remark
:
string
remark
:
string
receivable
?:
{
price
:
number
returnTime
:
Date
}
}
}
// 查询回款计划列表
// 查询回款计划列表
...
...
src/views/crm/customer/CustomerImportForm.vue
View file @
5cb86589
...
@@ -81,6 +81,7 @@ const submitForm = async () => {
...
@@ -81,6 +81,7 @@ const submitForm = async () => {
const
formData
=
new
FormData
()
const
formData
=
new
FormData
()
formData
.
append
(
'updateSupport'
,
updateSupport
.
value
)
formData
.
append
(
'updateSupport'
,
updateSupport
.
value
)
formData
.
append
(
'file'
,
fileList
.
value
[
0
].
raw
)
formData
.
append
(
'file'
,
fileList
.
value
[
0
].
raw
)
// TODO @芋艿:后面是不是可以采用这种形式,去掉 uploadHeaders
await
CustomerApi
.
handleImport
(
formData
)
await
CustomerApi
.
handleImport
(
formData
)
}
}
...
...
src/views/crm/receivable/plan/index.vue
View file @
5cb86589
...
@@ -67,10 +67,27 @@
...
@@ -67,10 +67,27 @@
<!-- 列表 -->
<!-- 列表 -->
<ContentWrap>
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table-column
align=
"center"
label=
"客户名称"
prop=
"customerName"
width=
"150px"
/>
<el-table-column
align=
"center"
fixed=
"left"
label=
"客户名称"
prop=
"customerName"
width=
"150"
>
<template
#
default=
"scope"
>
<el-link
:underline=
"false"
type=
"primary"
@
click=
"openCustomerDetail(scope.row.customerId)"
>
{{
scope
.
row
.
customerName
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"合同编号"
prop=
"contractNo"
width=
"200px"
/>
<el-table-column
align=
"center"
label=
"合同编号"
prop=
"contractNo"
width=
"200px"
/>
<!-- TODO @puhui999:这里可以点到详情;最新版本,他有了单独的详情哈 -->
<el-table-column
align=
"center"
label=
"期数"
prop=
"period"
/>
<el-table-column
align=
"center"
label=
"期数"
prop=
"period"
/>
<el-table-column
align=
"center"
label=
"计划回款(元)"
prop=
"price"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"计划回款金额(元)"
prop=
"price"
width=
"160"
:formatter=
"erpPriceTableColumnFormatter"
/>
<el-table-column
<el-table-column
:formatter=
"dateFormatter2"
:formatter=
"dateFormatter2"
align=
"center"
align=
"center"
...
@@ -80,14 +97,52 @@
...
@@ -80,14 +97,52 @@
/>
/>
<el-table-column
align=
"center"
label=
"提前几天提醒"
prop=
"remindDays"
width=
"150"
/>
<el-table-column
align=
"center"
label=
"提前几天提醒"
prop=
"remindDays"
width=
"150"
/>
<el-table-column
<el-table-column
:formatter=
"dateFormatter2"
align=
"center"
align=
"center"
label=
"提醒日期"
label=
"提醒日期"
prop=
"remindTime"
prop=
"remindTime"
width=
"180px"
width=
"180px"
:formatter=
"dateFormatter2"
/>
/>
<el-table-column
label=
"负责人"
prop=
"ownerUserName"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"回款方式"
prop=
"returnType"
width=
"130px"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE"
:value=
"scope.row.returnType"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"备注"
prop=
"remark"
/>
<el-table-column
align=
"center"
label=
"备注"
prop=
"remark"
/>
<el-table-column
label=
"负责人"
prop=
"ownerUserName"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"实际回款金额(元)"
prop=
"receivable.price"
width=
"160"
>
<
template
#
default=
"scope"
>
<el-text
v-if=
"scope.row.receivable"
>
{{
erpPriceInputFormatter
(
scope
.
row
.
receivable
.
price
)
}}
</el-text>
<el-text
v-else
>
{{
erpPriceInputFormatter
(
0
)
}}
</el-text>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"实际回款日期"
prop=
"receivable.returnTime"
width=
"180px"
:formatter=
"dateFormatter2"
/>
<el-table-column
align=
"center"
label=
"实际回款金额(元)"
prop=
"receivable.price"
width=
"160"
>
<
template
#
default=
"scope"
>
<el-text
v-if=
"scope.row.receivable"
>
{{
erpPriceInputFormatter
(
scope
.
row
.
price
-
scope
.
row
.
receivable
.
price
)
}}
</el-text>
<el-text
v-else
>
{{
erpPriceInputFormatter
(
scope
.
row
.
price
)
}}
</el-text>
</
template
>
</el-table-column>
<el-table-column
<el-table-column
align=
"center"
align=
"center"
fixed=
"right"
fixed=
"right"
...
@@ -99,7 +154,23 @@
...
@@ -99,7 +154,23 @@
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.finishStatus"
/>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.finishStatus"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"更新时间"
prop=
"updateTime"
width=
"180px"
/>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"创建时间"
prop=
"createTime"
width=
"180px"
/>
<el-table-column
align=
"center"
label=
"创建人"
prop=
"creatorName"
width=
"100px"
/>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
width=
"130px"
>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
width=
"130px"
>
<!-- TODO @puhui999:新建回款 -->
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
<el-button
v-hasPermi=
"['crm:receivable-plan:update']"
v-hasPermi=
"['crm:receivable-plan:update']"
...
@@ -135,12 +206,12 @@
...
@@ -135,12 +206,12 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
dateFormatter2
}
from
'@/utils/formatTime'
import
{
dateFormatter
,
dateFormatter
2
}
from
'@/utils/formatTime'
import
download
from
'@/utils/download'
import
download
from
'@/utils/download'
import
*
as
ReceivablePlanApi
from
'@/api/crm/receivable/plan'
import
*
as
ReceivablePlanApi
from
'@/api/crm/receivable/plan'
import
ReceivablePlanForm
from
'./ReceivablePlanForm.vue'
import
ReceivablePlanForm
from
'./ReceivablePlanForm.vue'
import
*
as
UserApi
from
'@/api/system/user'
import
*
as
CustomerApi
from
'@/api/crm/customer'
import
*
as
CustomerApi
from
'@/api/crm/customer'
import
{
erpPriceInputFormatter
,
erpPriceTableColumnFormatter
}
from
'@/utils'
defineOptions
({
name
:
'ReceivablePlan'
})
defineOptions
({
name
:
'ReceivablePlan'
})
...
@@ -150,7 +221,6 @@ const { t } = useI18n() // 国际化
...
@@ -150,7 +221,6 @@ const { t } = useI18n() // 国际化
const
loading
=
ref
(
true
)
// 列表的加载中
const
loading
=
ref
(
true
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
total
=
ref
(
0
)
// 列表的总页数
const
list
=
ref
([])
// 列表的数据
const
list
=
ref
([])
// 列表的数据
const
userList
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户列表
const
queryParams
=
reactive
({
const
queryParams
=
reactive
({
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
...
@@ -159,6 +229,7 @@ const queryParams = reactive({
...
@@ -159,6 +229,7 @@ const queryParams = reactive({
})
})
const
queryFormRef
=
ref
()
// 搜索的表单
const
queryFormRef
=
ref
()
// 搜索的表单
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
customerList
=
ref
<
CustomerApi
.
CustomerVO
[]
>
([])
// 客户列表
/** 查询列表 */
/** 查询列表 */
const
getList
=
async
()
=>
{
const
getList
=
async
()
=>
{
...
@@ -217,12 +288,16 @@ const handleExport = async () => {
...
@@ -217,12 +288,16 @@ const handleExport = async () => {
exportLoading
.
value
=
false
exportLoading
.
value
=
false
}
}
}
}
const
customerList
=
ref
<
CustomerApi
.
CustomerVO
[]
>
([])
// 客户列表
/** 打开客户详情 */
const
{
push
}
=
useRouter
()
const
openCustomerDetail
=
(
id
:
number
)
=>
{
push
({
name
:
'CrmCustomerDetail'
,
params
:
{
id
}
})
}
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
// 获取用户列表
userList
.
value
=
await
UserApi
.
getSimpleUserList
()
// 获得客户列表
// 获得客户列表
customerList
.
value
=
await
CustomerApi
.
getCustomerSimpleList
()
customerList
.
value
=
await
CustomerApi
.
getCustomerSimpleList
()
})
})
...
...
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